diff options
Diffstat (limited to 'src')
31 files changed, 668 insertions, 353 deletions
diff --git a/src/main/.project b/src/main/.project new file mode 100644 index 00000000..d2f05ef9 --- /dev/null +++ b/src/main/.project @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>ConversationActivity</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/src/main/java/de/tzur/conversations/Settings.java b/src/main/java/de/tzur/conversations/Settings.java new file mode 100644 index 00000000..25079ea1 --- /dev/null +++ b/src/main/java/de/tzur/conversations/Settings.java @@ -0,0 +1,55 @@ +package de.tzur.conversations; + +import android.content.SharedPreferences; +import android.util.Log; + +/** + * This class is used to provide access to settings which have to be accessed frequently. + * Every setting in this class has to be updated using @see SettingsActivity#onSharedPreferenceChanged. + */ +public final class Settings { + + /** + * Initializes the settings provided via this static class. + * @param preferences the shared preferences of the app. + */ + public static void initSettingsClassWithPreferences(SharedPreferences preferences) { + Log.d("SETTING", "Initializing settings"); + String[] preferenceNames = { "parse_emoticons", "send_button_status" }; + for (String name : preferenceNames) { + Settings.synchronizeSettingsClassWithPreferences(preferences, name); + } + } + + /** + * Synchronizes the setting value in this class on settings update in SettingsActivity. + * @param preferences the shared preferences of the app. + * @param name the name of the setting to synchronize. + */ + public static void synchronizeSettingsClassWithPreferences(SharedPreferences preferences, String name) { + Log.d("SETTING", "Synchronizing settings"); + switch (name) { + case "parse_emoticons": + Settings.PARSE_EMOTICONS = preferences.getBoolean(name, Settings.PARSE_EMOTICONS); + break; + case "send_button_status": + Settings.SHOW_ONLINE_STATUS = preferences.getBoolean(name, Settings.SHOW_ONLINE_STATUS); + break; + } + } + /** + * Boolean if emoticons should be parsed to emoticons or not. + */ + public static boolean PARSE_EMOTICONS = false; + /** + * Boolean if online status should be shown or not. + */ + public static boolean SHOW_ONLINE_STATUS = false; + + /** + * This is a utility class - private constructor avoids any instantiation. + */ + private Settings() { + // Private constructor to avoid instantiation + } +} diff --git a/src/main/java/eu/siacs/conversations/Config.java b/src/main/java/eu/siacs/conversations/Config.java index 7a50c47f..81a68008 100644 --- a/src/main/java/eu/siacs/conversations/Config.java +++ b/src/main/java/eu/siacs/conversations/Config.java @@ -18,6 +18,8 @@ public final class Config { public static final int MESSAGE_MERGE_WINDOW = 20; + public static final boolean UTF8_EMOTICONS = false; + public static final int PAGE_SIZE = 50; public static final int MAX_NUM_PAGES = 3; diff --git a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java index 5bf3cdab..136108ef 100644 --- a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Locale; +import de.tzur.conversations.Settings; import eu.siacs.conversations.entities.Account; import android.content.SharedPreferences; @@ -58,28 +59,33 @@ public class SettingsActivity extends XmppActivity implements @Override public void onSharedPreferenceChanged(SharedPreferences preferences, String name) { - if (name.equals("resource")) { - String resource = preferences.getString("resource", "mobile") - .toLowerCase(Locale.US); - if (xmppConnectionServiceBound) { - for (Account account : xmppConnectionService.getAccounts()) { - account.setResource(resource); - if (!account.isOptionSet(Account.OPTION_DISABLED)) { - xmppConnectionService.reconnectAccount(account, false); + switch (name) { + case "resource": + String resource = preferences.getString("resource", "mobile") + .toLowerCase(Locale.US); + if (xmppConnectionServiceBound) { + for (Account account : xmppConnectionService.getAccounts()) { + account.setResource(resource); + if (!account.isOptionSet(Account.OPTION_DISABLED)) { + xmppConnectionService.reconnectAccount(account, false); + } + } + } + break; + case "keep_foreground_service": + xmppConnectionService.toggleForegroundService(); + break; + case "confirm_messages": + if (xmppConnectionServiceBound) { + for (Account account : xmppConnectionService.getAccounts()) { + if (!account.isOptionSet(Account.OPTION_DISABLED)) { + xmppConnectionService.sendPresence(account); + } } } - } - } else if (name.equals("keep_foreground_service")) { - xmppConnectionService.toggleForegroundService(); - } else if (name.equals("confirm_messages")) { - if (xmppConnectionServiceBound) { - for (Account account : xmppConnectionService.getAccounts()) { - if (!account.isOptionSet(Account.OPTION_DISABLED)) { - xmppConnectionService.sendPresence(account); - } - } - } - } + break; + } + Settings.synchronizeSettingsClassWithPreferences(getPreferences(), name); } } diff --git a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java index bf247787..1f1af09c 100644 --- a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java @@ -61,6 +61,7 @@ import java.util.Hashtable; import java.util.List; import java.util.concurrent.RejectedExecutionException; +import de.tzur.conversations.Settings; import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; @@ -306,6 +307,9 @@ public abstract class XmppActivity extends Activity { setTheme(this.mTheme); this.mUsingEnterKey = usingEnterKey(); mUseSubject = getPreferences().getBoolean("use_subject", true); + + Settings.initSettingsClassWithPreferences(getPreferences()); + final ActionBar ab = getActionBar(); if (ab!=null) { ab.setDisplayHomeAsUpEnabled(true); diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java index 38c321d0..e62aaf96 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java @@ -13,14 +13,28 @@ import android.widget.TextView; import java.util.List; +import de.tzur.conversations.Settings; +import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Downloadable; import eu.siacs.conversations.entities.DownloadableFile; import eu.siacs.conversations.entities.Message; +import eu.siacs.conversations.entities.Presences; import eu.siacs.conversations.ui.ConversationActivity; import eu.siacs.conversations.ui.XmppActivity; import eu.siacs.conversations.utils.UIHelper; +import android.content.Context; +import android.graphics.Color; +import android.graphics.Typeface; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; public class ConversationAdapter extends ArrayAdapter<Conversation> { @@ -62,6 +76,26 @@ public class ConversationAdapter extends ArrayAdapter<Conversation> { TextView mTimestamp = (TextView) view.findViewById(R.id.conversation_lastupdate); ImageView imagePreview = (ImageView) view.findViewById(R.id.conversation_lastimage); + if (Settings.SHOW_ONLINE_STATUS) { + TextView status = (TextView) view.findViewById(R.id.status); + + String color = "#000000"; + switch (conversation.getContact().getMostAvailableStatus()) { + case Presences.ONLINE: + case Presences.CHAT: + color = "#259B23"; + break; + case Presences.AWAY: + case Presences.XA: + color = "#FF9800"; + break; + case Presences.DND: + color = "#E51C23"; + break; + } + status.setBackgroundColor(Color.parseColor(color)); + } + Message message = conversation.getLatestMessage(); if (!conversation.isRead()) { @@ -102,4 +136,4 @@ public class ConversationAdapter extends ArrayAdapter<Conversation> { return view; } -}
\ No newline at end of file +} diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java index 442c6ecf..7fa05050 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java @@ -5,6 +5,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.Typeface; import android.net.Uri; +import android.preference.PreferenceManager; import android.text.Spannable; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; @@ -24,6 +25,7 @@ import android.widget.Toast; import java.util.List; +import de.tzur.conversations.Settings; import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; @@ -223,6 +225,10 @@ public class MessageAdapter extends ArrayAdapter<Message> { final String formattedBody = message.getMergedBody().replaceAll("^" + Message.ME_COMMAND, nick + " "); if (message.getType() != Message.TYPE_PRIVATE) { + boolean parseEmoticons = Settings.PARSE_EMOTICONS; + viewHolder.messageBody.setText(parseEmoticons ? UIHelper + .transformAsciiEmoticons(getContext(), message.getMergedBody()) + : message.getMergedBody()); if (message.hasMeCommand()) { final Spannable span = new SpannableString(formattedBody); span.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, nick.length(), diff --git a/src/main/java/eu/siacs/conversations/utils/UIHelper.java b/src/main/java/eu/siacs/conversations/utils/UIHelper.java index 235ef84c..333f6e27 100644 --- a/src/main/java/eu/siacs/conversations/utils/UIHelper.java +++ b/src/main/java/eu/siacs/conversations/utils/UIHelper.java @@ -1,9 +1,18 @@ package eu.siacs.conversations.utils; +import java.util.ArrayList; import java.net.URLConnection; import java.util.Calendar; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Map.Entry; +import java.util.regex.Pattern; +import java.util.regex.Matcher; +import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.Conversation; @@ -14,6 +23,9 @@ import eu.siacs.conversations.xmpp.jid.Jid; import android.content.Context; import android.text.format.DateFormat; import android.text.format.DateUtils; +import android.text.Spannable.Factory; +import android.text.style.ImageSpan; +import android.text.Spannable; import android.util.Pair; public class UIHelper { @@ -101,6 +113,136 @@ public class UIHelper { } } + public static final Map<Pattern, Integer> ANDROID_EMOTICONS = new HashMap<Pattern, Integer>(); + + private static final Factory spannableFactory = Spannable.Factory + .getInstance(); + + static { + addPattern(ANDROID_EMOTICONS, ":)", R.drawable.emo_im_happy); + addPattern(ANDROID_EMOTICONS, ":-)", R.drawable.emo_im_happy); + addPattern(ANDROID_EMOTICONS, ":(", R.drawable.emo_im_sad); + addPattern(ANDROID_EMOTICONS, ":-(", R.drawable.emo_im_sad); + addPattern(ANDROID_EMOTICONS, ";)", R.drawable.emo_im_winking); + addPattern(ANDROID_EMOTICONS, ";-)", R.drawable.emo_im_winking); + addPattern(ANDROID_EMOTICONS, ":P", + R.drawable.emo_im_tongue_sticking_out); + addPattern(ANDROID_EMOTICONS, ":-P", + R.drawable.emo_im_tongue_sticking_out); + addPattern(ANDROID_EMOTICONS, "=-O", R.drawable.emo_im_surprised); + addPattern(ANDROID_EMOTICONS, ":*", R.drawable.emo_im_kissing); + addPattern(ANDROID_EMOTICONS, ":-*", R.drawable.emo_im_kissing); + addPattern(ANDROID_EMOTICONS, ":O", R.drawable.emo_im_wtf); + addPattern(ANDROID_EMOTICONS, ":-O", R.drawable.emo_im_wtf); + addPattern(ANDROID_EMOTICONS, "B)", R.drawable.emo_im_cool); + addPattern(ANDROID_EMOTICONS, "B-)", R.drawable.emo_im_cool); + addPattern(ANDROID_EMOTICONS, "8)", R.drawable.emo_im_cool); + addPattern(ANDROID_EMOTICONS, "8-)", R.drawable.emo_im_cool); + addPattern(ANDROID_EMOTICONS, ":$", R.drawable.emo_im_money_mouth); + addPattern(ANDROID_EMOTICONS, ":-$", R.drawable.emo_im_money_mouth); + addPattern(ANDROID_EMOTICONS, ":-!", R.drawable.emo_im_foot_in_mouth); + addPattern(ANDROID_EMOTICONS, ":-[", R.drawable.emo_im_embarrassed); + addPattern(ANDROID_EMOTICONS, "O:)", R.drawable.emo_im_angel); + addPattern(ANDROID_EMOTICONS, "O:-)", R.drawable.emo_im_angel); + addPattern(ANDROID_EMOTICONS, ":\\", R.drawable.emo_im_undecided); + addPattern(ANDROID_EMOTICONS, ":-\\", R.drawable.emo_im_undecided); + addPattern(ANDROID_EMOTICONS, ":'(", R.drawable.emo_im_crying); + addPattern(ANDROID_EMOTICONS, ":D", R.drawable.emo_im_laughing); + addPattern(ANDROID_EMOTICONS, ":-D", R.drawable.emo_im_laughing); + addPattern(ANDROID_EMOTICONS, "O_o", R.drawable.emo_im_wtf); + addPattern(ANDROID_EMOTICONS, "o_O", R.drawable.emo_im_wtf); + addPattern(ANDROID_EMOTICONS, ">:O", R.drawable.emo_im_yelling); + addPattern(ANDROID_EMOTICONS, ">:0", R.drawable.emo_im_yelling); + addPattern(ANDROID_EMOTICONS, ":S", R.drawable.emo_im_lips_are_sealed); + addPattern(ANDROID_EMOTICONS, ":-S", R.drawable.emo_im_lips_are_sealed); + addPattern(ANDROID_EMOTICONS, "<3", R.drawable.emo_im_heart); + } + + private static void addPattern(Map<Pattern, Integer> map, String smile, + int resource) { + map.put(Pattern.compile(Pattern.quote(smile)), resource); + } + + private static boolean getSmiledText(Context context, Spannable spannable) { + boolean hasChanges = false; + Map<Pattern, Integer> emoticons = ANDROID_EMOTICONS; + for (Entry<Pattern, Integer> entry : emoticons.entrySet()) { + Matcher matcher = entry.getKey().matcher(spannable); + while (matcher.find()) { + boolean set = true; + for (ImageSpan span : spannable.getSpans(matcher.start(), + matcher.end(), ImageSpan.class)) + if (spannable.getSpanStart(span) >= matcher.start() + && spannable.getSpanEnd(span) <= matcher.end()) + spannable.removeSpan(span); + else { + set = false; + break; + } + if (set) { + spannable.setSpan(new ImageSpan(context, entry.getValue()), + matcher.start(), matcher.end(), + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + hasChanges = true; + } + } + } + return hasChanges; + } + + private final static class EmoticonPattern { + Pattern pattern; + String replacement; + + EmoticonPattern(String ascii, int unicode) { + this.pattern = Pattern.compile("(?<=(^|\\s))" + ascii + + "(?=(\\s|$))"); + this.replacement = new String(new int[] { unicode, }, 0, 1); + } + + String replaceAll(String body) { + return pattern.matcher(body).replaceAll(replacement); + } + } + + private static final EmoticonPattern[] patterns = new EmoticonPattern[] { + new EmoticonPattern(":-?D", 0x1f600), + new EmoticonPattern("\\^\\^", 0x1f601), + new EmoticonPattern(":'D", 0x1f602), + new EmoticonPattern("\\]-?D", 0x1f608), + new EmoticonPattern(";-?\\)", 0x1f609), + new EmoticonPattern(":-?\\)", 0x1f60a), + new EmoticonPattern("[B8]-?\\)", 0x1f60e), + new EmoticonPattern(":-?\\|", 0x1f610), + new EmoticonPattern(":-?[/\\\\]", 0x1f615), + new EmoticonPattern(":-?\\*", 0x1f617), + new EmoticonPattern(":-?[Ppb]", 0x1f61b), + new EmoticonPattern(":-?\\(", 0x1f61e), + new EmoticonPattern(":-?[0Oo]", 0x1f62e), + new EmoticonPattern("\\\\o/", 0x1F631), }; + + public static String transformAsciiEmoticonsToUtf8(String body) { + if (body != null) { + for (EmoticonPattern p : patterns) { + body = p.replaceAll(body); + } + body = body.trim(); + } + return body; + } + + public static Spannable transformAsciiEmoticons(Context context, String body) { + Spannable spannable; + if (Config.UTF8_EMOTICONS) { + spannable = spannableFactory.newSpannable(transformAsciiEmoticonsToUtf8(body)); + } + else { + spannable = spannableFactory.newSpannable(body); + getSmiledText(context, spannable); + } + return spannable; + } + public static int getColorForName(String name) { if (name.isEmpty()) { return 0xFF202020; diff --git a/src/main/project.properties b/src/main/project.properties new file mode 100644 index 00000000..4ab12569 --- /dev/null +++ b/src/main/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-19 diff --git a/src/main/res/drawable/emo_im_angel.png b/src/main/res/drawable/emo_im_angel.png Binary files differnew file mode 100644 index 00000000..c34dfa69 --- /dev/null +++ b/src/main/res/drawable/emo_im_angel.png diff --git a/src/main/res/drawable/emo_im_cool.png b/src/main/res/drawable/emo_im_cool.png Binary files differnew file mode 100644 index 00000000..d8eeb34e --- /dev/null +++ b/src/main/res/drawable/emo_im_cool.png diff --git a/src/main/res/drawable/emo_im_crying.png b/src/main/res/drawable/emo_im_crying.png Binary files differnew file mode 100644 index 00000000..1cafdb32 --- /dev/null +++ b/src/main/res/drawable/emo_im_crying.png diff --git a/src/main/res/drawable/emo_im_embarrassed.png b/src/main/res/drawable/emo_im_embarrassed.png Binary files differnew file mode 100644 index 00000000..e4db9634 --- /dev/null +++ b/src/main/res/drawable/emo_im_embarrassed.png diff --git a/src/main/res/drawable/emo_im_foot_in_mouth.png b/src/main/res/drawable/emo_im_foot_in_mouth.png Binary files differnew file mode 100644 index 00000000..09d1fba6 --- /dev/null +++ b/src/main/res/drawable/emo_im_foot_in_mouth.png diff --git a/src/main/res/drawable/emo_im_happy.png b/src/main/res/drawable/emo_im_happy.png Binary files differnew file mode 100644 index 00000000..b86602ae --- /dev/null +++ b/src/main/res/drawable/emo_im_happy.png diff --git a/src/main/res/drawable/emo_im_heart.png b/src/main/res/drawable/emo_im_heart.png Binary files differnew file mode 100644 index 00000000..d88bcccd --- /dev/null +++ b/src/main/res/drawable/emo_im_heart.png diff --git a/src/main/res/drawable/emo_im_kissing.png b/src/main/res/drawable/emo_im_kissing.png Binary files differnew file mode 100644 index 00000000..56378f6a --- /dev/null +++ b/src/main/res/drawable/emo_im_kissing.png diff --git a/src/main/res/drawable/emo_im_laughing.png b/src/main/res/drawable/emo_im_laughing.png Binary files differnew file mode 100644 index 00000000..980bf281 --- /dev/null +++ b/src/main/res/drawable/emo_im_laughing.png diff --git a/src/main/res/drawable/emo_im_lips_are_sealed.png b/src/main/res/drawable/emo_im_lips_are_sealed.png Binary files differnew file mode 100644 index 00000000..f2de993b --- /dev/null +++ b/src/main/res/drawable/emo_im_lips_are_sealed.png diff --git a/src/main/res/drawable/emo_im_money_mouth.png b/src/main/res/drawable/emo_im_money_mouth.png Binary files differnew file mode 100644 index 00000000..08c53fd6 --- /dev/null +++ b/src/main/res/drawable/emo_im_money_mouth.png diff --git a/src/main/res/drawable/emo_im_sad.png b/src/main/res/drawable/emo_im_sad.png Binary files differnew file mode 100644 index 00000000..31c08d06 --- /dev/null +++ b/src/main/res/drawable/emo_im_sad.png diff --git a/src/main/res/drawable/emo_im_surprised.png b/src/main/res/drawable/emo_im_surprised.png Binary files differnew file mode 100644 index 00000000..abe8c7ad --- /dev/null +++ b/src/main/res/drawable/emo_im_surprised.png diff --git a/src/main/res/drawable/emo_im_tongue_sticking_out.png b/src/main/res/drawable/emo_im_tongue_sticking_out.png Binary files differnew file mode 100644 index 00000000..6f0f47b0 --- /dev/null +++ b/src/main/res/drawable/emo_im_tongue_sticking_out.png diff --git a/src/main/res/drawable/emo_im_undecided.png b/src/main/res/drawable/emo_im_undecided.png Binary files differnew file mode 100644 index 00000000..eb4f8c5b --- /dev/null +++ b/src/main/res/drawable/emo_im_undecided.png diff --git a/src/main/res/drawable/emo_im_winking.png b/src/main/res/drawable/emo_im_winking.png Binary files differnew file mode 100644 index 00000000..568562ad --- /dev/null +++ b/src/main/res/drawable/emo_im_winking.png diff --git a/src/main/res/drawable/emo_im_wtf.png b/src/main/res/drawable/emo_im_wtf.png Binary files differnew file mode 100644 index 00000000..41dd47fc --- /dev/null +++ b/src/main/res/drawable/emo_im_wtf.png diff --git a/src/main/res/drawable/emo_im_yelling.png b/src/main/res/drawable/emo_im_yelling.png Binary files differnew file mode 100644 index 00000000..c3c8612b --- /dev/null +++ b/src/main/res/drawable/emo_im_yelling.png diff --git a/src/main/res/layout/conversation_list_row.xml b/src/main/res/layout/conversation_list_row.xml index 21147b4a..99f52c5d 100644 --- a/src/main/res/layout/conversation_list_row.xml +++ b/src/main/res/layout/conversation_list_row.xml @@ -11,12 +11,22 @@ android:layout_alignParentLeft="true" android:scaleType="centerCrop" /> + <TextView + android:layout_width="56dp" + android:layout_height="4dp" + android:textAppearance="?android:attr/textAppearanceSmall" + android:id="@+id/status" + android:layout_below="@+id/conversation_image" + android:paddingTop="8dp" + android:paddingRight="8dp"/> + <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toRightOf="@+id/conversation_image" - android:paddingLeft="8dp" > + android:paddingLeft="8dp" + android:id="@+id/relativeLayout"> <TextView android:id="@+id/conversation_name" diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index f1fe86c6..8cd837d2 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -1,376 +1,378 @@ <?xml version='1.0' encoding='UTF-8'?> <resources> - <string name="action_settings">Einstellungen</string> - <string name="action_add">Neue Unterhaltung</string> - <string name="action_accounts">Konten verwalten</string> - <string name="action_end_conversation">Unterhaltung beenden</string> - <string name="action_contact_details">Kontaktdetails</string> + <string name="action_settings">Einstellungen</string> + <string name="action_add">Neue Unterhaltung</string> + <string name="action_accounts">Konten verwalten</string> + <string name="action_end_conversation">Unterhaltung beenden</string> + <string name="action_contact_details">Kontaktdetails</string> <string name="action_muc_details">Konferenz-Details</string> - <string name="action_secure">Verschlüsselte Unterhaltung</string> - <string name="action_add_account">Konto hinzufügen</string> - <string name="action_edit_contact">Name bearbeiten</string> - <string name="action_add_phone_book">Zum Telefonbuch hinzufügen</string> - <string name="action_delete_contact">Aus Kontaktliste entfernen</string> - <string name="action_block_contact">Kontakt sperren</string> - <string name="action_unblock_contact">Kontakt entsperren</string> - <string name="action_block_domain">Domain sperren</string> - <string name="action_unblock_domain">Domain entsperren</string> - <string name="title_activity_manage_accounts">Konten verwalten</string> - <string name="title_activity_settings">Einstellungen</string> + <string name="action_secure">Verschlüsselte Unterhaltung</string> + <string name="action_add_account">Konto hinzufügen</string> + <string name="action_edit_contact">Name bearbeiten</string> + <string name="action_add_phone_book">Zum Telefonbuch hinzufügen</string> + <string name="action_delete_contact">Aus Kontaktliste entfernen</string> + <string name="action_block_contact">Kontakt sperren</string> + <string name="action_unblock_contact">Kontakt entsperren</string> + <string name="action_block_domain">Domain sperren</string> + <string name="action_unblock_domain">Domain entsperren</string> + <string name="title_activity_manage_accounts">Konten verwalten</string> + <string name="title_activity_settings">Einstellungen</string> <string name="title_activity_conference_details">Konferenz-Details</string> - <string name="title_activity_contact_details">Kontaktdetails</string> - <string name="title_activity_sharewith">Mit Unterhaltung teilen</string> - <string name="title_activity_start_conversation">Beginne Unterhaltung</string> - <string name="title_activity_choose_contact">Kontakt auswählen</string> - <string name="title_activity_block_list">Sperrliste</string> - <string name="just_now">gerade</string> - <string name="minute_ago">vor einer Minute</string> - <string name="minutes_ago">vor %d Minuten</string> - <string name="unread_conversations">ungelesene Unterhaltungen</string> + <string name="title_activity_contact_details">Kontaktdetails</string> + <string name="title_activity_sharewith">Mit Unterhaltung teilen</string> + <string name="title_activity_start_conversation">Beginne Unterhaltung</string> + <string name="title_activity_choose_contact">Kontakt auswählen</string> + <string name="title_activity_block_list">Sperrliste</string> + <string name="just_now">gerade</string> + <string name="minute_ago">vor einer Minute</string> + <string name="minutes_ago">vor %d Minuten</string> + <string name="unread_conversations">ungelesene Unterhaltungen</string> <string name="sending">Senden…</string> <string name="encrypted_message">Entschlüssele Nachricht. Bitte warten…</string> - <string name="nick_in_use">Nickname wird bereits verwendet</string> - <string name="admin">Administrator</string> - <string name="owner">Eigentümer</string> - <string name="moderator">Moderator</string> - <string name="participant">Teilnehmer</string> - <string name="visitor">Besucher</string> - <string name="remove_contact_text">Möchtest du %s von deiner Kontaktliste entfernen? Die Unterhaltung mit diesem Kontakt wird dabei nicht entfernt.</string> - <string name="block_contact_text">Möchtest du %s sperren und keine Nachrichten mehr erhalten?</string> - <string name="unblock_contact_text">Möchtest du %s entsperren und wieder Nachrichten empfangen?</string> - <string name="block_domain_text">Sperre alle Kontakte von %s?</string> - <string name="unblock_domain_text">Entsperre alle Kontakte %s?</string> - <string name="contact_blocked">Kontakt gesperrt</string> - <string name="remove_bookmark_text">Möchtest du das Lesezeichen %s entfernen? Die Unterhaltung mit diesem Lesezeichen wird dabei nicht entfernt.</string> - <string name="register_account">Neues Konto auf dem Server erstellen</string> - <string name="change_password_on_server">Passwort ändern</string> + <string name="nick_in_use">Nickname wird bereits verwendet</string> + <string name="admin">Administrator</string> + <string name="owner">Eigentümer</string> + <string name="moderator">Moderator</string> + <string name="participant">Teilnehmer</string> + <string name="visitor">Besucher</string> + <string name="remove_contact_text">Möchtest du %s von deiner Kontaktliste entfernen? Die Unterhaltung mit diesem Kontakt wird dabei nicht entfernt.</string> + <string name="block_contact_text">Möchtest du %s sperren und keine Nachrichten mehr erhalten?</string> + <string name="unblock_contact_text">Möchtest du %s entsperren und wieder Nachrichten empfangen?</string> + <string name="block_domain_text">Sperre alle Kontakte von %s?</string> + <string name="unblock_domain_text">Entsperre alle Kontakte %s?</string> + <string name="contact_blocked">Kontakt gesperrt</string> + <string name="remove_bookmark_text">Möchtest du das Lesezeichen %s entfernen? Die Unterhaltung mit diesem Lesezeichen wird dabei nicht entfernt.</string> + <string name="register_account">Neues Konto auf dem Server erstellen</string> + <string name="change_password_on_server">Passwort ändern</string> <string name="share_with">Teile mit…</string> - <string name="start_conversation">Beginne Unterhaltung</string> - <string name="invite_contact">Kontakt einladen</string> - <string name="contacts">Kontakte</string> - <string name="cancel">Abbrechen</string> - <string name="set">Einstellen</string> - <string name="add">Hinzufügen</string> - <string name="edit">Bearbeiten</string> - <string name="delete">Entfernen</string> - <string name="block">Sperren</string> - <string name="unblock">Entsperren</string> - <string name="save">Speichern</string> - <string name="ok">OK</string> - <string name="crash_report_title">Conversations ist abgestürzt</string> - <string name="crash_report_message">Durch das Einsenden von Fehlerberichten hilfst du bei der stetigen Verbesserung von Conversations.\n<b>Achtung:</b> Dies wird eines deiner XMPP-Konten benutzen, um den Entwickler zu kontaktieren.</string> - <string name="send_now">Jetzt abschicken</string> - <string name="send_never">Nie mehr nachfragen</string> - <string name="problem_connecting_to_account">Es gibt Probleme beim Verbindungsaufbau mit einem Konto</string> - <string name="problem_connecting_to_accounts">Es gibt Probleme beim Verbindungsaufbau mit mehreren Konten</string> - <string name="touch_to_fix">Drücke hier, um das Konto zu verwalten</string> - <string name="attach_file">Datei anfügen</string> - <string name="not_in_roster">Der Kontakt ist nicht in deiner Kontaktliste. Möchtest du ihn hinzufügen?</string> - <string name="add_contact">Kontakt hinzufügen</string> - <string name="send_failed">Zustellung nicht erfolgreich</string> - <string name="send_rejected">abgelehnt</string> - <string name="preparing_image">Bereite Bild für die Übertragung vor</string> - <string name="action_clear_history">Verlauf löschen</string> - <string name="clear_conversation_history">Unterhaltungsverlauf löschen</string> - <string name="clear_histor_msg">Möchtest du alle Nachrichten in dieser Unterhaltung löschen?\n\n<b>Achtung:</b> Dies beeinflusst nicht Nachrichten, die auf anderen Geräten oder Servern gespeichert sind.</string> - <string name="delete_messages">Nachrichten löschen</string> - <string name="also_end_conversation">Diese Unterhaltung danach beenden</string> - <string name="choose_presence">Ressource des Kontakts auswählen</string> - <string name="send_plain_text_message">Unverschlüsselt schreiben</string> - <string name="send_otr_message">OTR-verschlüsselt schreiben</string> - <string name="send_pgp_message">OpenPGP-verschlüsselt schreiben</string> - <string name="your_nick_has_been_changed">Dein Nickname wurde geändert</string> - <string name="download_image">Bild herunterladen</string> - <string name="send_unencrypted">Unverschlüsselt verschicken</string> - <string name="decryption_failed">Entschlüsselung fehlgeschlagen. Vielleicht hast du nicht den richtigen privaten Schlüssel.</string> - <string name="openkeychain_required">OpenKeychain</string> - <string name="openkeychain_required_long">Conversations benutzt eine Drittanwendung namens <b>OpenKeychain</b>, um Nachrichten zu ver- und entschlüsseln und um deine Schlüssel zu verwalten.\n\nOpenKeychain ist GPLv3-lizenziert und kann über F-Droid oder Google Play bezogen werden.\n\n<small>(Bitte starte Conversations danach neu.)</small></string> - <string name="restart">Neustarten</string> - <string name="install">Installieren</string> + <string name="start_conversation">Beginne Unterhaltung</string> + <string name="invite_contact">Kontakt einladen</string> + <string name="contacts">Kontakte</string> + <string name="cancel">Abbrechen</string> + <string name="set">Einstellen</string> + <string name="add">Hinzufügen</string> + <string name="edit">Bearbeiten</string> + <string name="delete">Entfernen</string> + <string name="block">Sperren</string> + <string name="unblock">Entsperren</string> + <string name="save">Speichern</string> + <string name="ok">OK</string> + <string name="crash_report_title">Conversations ist abgestürzt</string> + <string name="crash_report_message">Durch das Einsenden von Fehlerberichten hilfst du bei der stetigen Verbesserung von Conversations.\n<b>Achtung:</b> Dies wird eines deiner XMPP-Konten benutzen, um den Entwickler zu kontaktieren.</string> + <string name="send_now">Jetzt abschicken</string> + <string name="send_never">Nie mehr nachfragen</string> + <string name="problem_connecting_to_account">Es gibt Probleme beim Verbindungsaufbau mit einem Konto</string> + <string name="problem_connecting_to_accounts">Es gibt Probleme beim Verbindungsaufbau mit mehreren Konten</string> + <string name="touch_to_fix">Drücke hier, um das Konto zu verwalten</string> + <string name="attach_file">Datei anfügen</string> + <string name="not_in_roster">Der Kontakt ist nicht in deiner Kontaktliste. Möchtest du ihn hinzufügen?</string> + <string name="add_contact">Kontakt hinzufügen</string> + <string name="send_failed">Zustellung nicht erfolgreich</string> + <string name="send_rejected">abgelehnt</string> + <string name="preparing_image">Bereite Bild für die Übertragung vor</string> + <string name="action_clear_history">Verlauf löschen</string> + <string name="clear_conversation_history">Unterhaltungsverlauf löschen</string> + <string name="clear_histor_msg">Möchtest du alle Nachrichten in dieser Unterhaltung löschen?\n\n<b>Achtung:</b> Dies beeinflusst nicht Nachrichten, die auf anderen Geräten oder Servern gespeichert sind.</string> + <string name="delete_messages">Nachrichten löschen</string> + <string name="also_end_conversation">Diese Unterhaltung danach beenden</string> + <string name="choose_presence">Ressource des Kontakts auswählen</string> + <string name="send_plain_text_message">Unverschlüsselt schreiben</string> + <string name="send_otr_message">OTR-verschlüsselt schreiben</string> + <string name="send_pgp_message">OpenPGP-verschlüsselt schreiben</string> + <string name="your_nick_has_been_changed">Dein Nickname wurde geändert</string> + <string name="download_image">Bild herunterladen</string> + <string name="send_unencrypted">Unverschlüsselt verschicken</string> + <string name="decryption_failed">Entschlüsselung fehlgeschlagen. Vielleicht hast du nicht den richtigen privaten Schlüssel.</string> + <string name="openkeychain_required">OpenKeychain</string> + <string name="openkeychain_required_long">Conversations benutzt eine Drittanwendung namens <b>OpenKeychain</b>, um Nachrichten zu ver- und entschlüsseln und um deine Schlüssel zu verwalten.\n\nOpenKeychain ist GPLv3-lizenziert und kann über F-Droid oder Google Play bezogen werden.\n\n<small>(Bitte starte Conversations danach neu.)</small></string> + <string name="restart">Neustarten</string> + <string name="install">Installieren</string> <string name="offering">angeboten…</string> <string name="waiting">warten…</string> - <string name="no_pgp_key">Kein OpenPGP-Schlüssel gefunden</string> - <string name="contact_has_no_pgp_key">Conversations ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil dein Kontakt seinen oder ihren Schlüssel nicht preisgibt.\n\n<small>Bitte sag deinem Kontakt, er oder sie möge OpenPGP einrichten.</small></string> - <string name="no_pgp_keys">Keine OpenPGP-Schlüssel gefunden</string> - <string name="contacts_have_no_pgp_keys">Conversations ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil deine Kontakte ihre Schlüssel nicht preisgeben.\n\n<small>Bitte sag deinen Kontakten, sie mögen OpenPGP einrichten.</small></string> - <string name="encrypted_message_received"><i>Verschlüsselte Nachricht erhalten. Drücke hier, um sie anzuzeigen und zu entschlüsseln.</i></string> - <string name="pref_general">Allgemeines</string> - <string name="pref_xmpp_resource">XMPP-Ressource</string> - <string name="pref_xmpp_resource_summary">Der Name, mit dem sich der Client selbst identifiziert</string> - <string name="pref_accept_files">Dateiannahme</string> + <string name="no_pgp_key">Kein OpenPGP-Schlüssel gefunden</string> + <string name="contact_has_no_pgp_key">Conversations ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil dein Kontakt seinen oder ihren Schlüssel nicht preisgibt.\n\n<small>Bitte sag deinem Kontakt, er oder sie möge OpenPGP einrichten.</small></string> + <string name="no_pgp_keys">Keine OpenPGP-Schlüssel gefunden</string> + <string name="contacts_have_no_pgp_keys">Conversations ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil deine Kontakte ihre Schlüssel nicht preisgeben.\n\n<small>Bitte sag deinen Kontakten, sie mögen OpenPGP einrichten.</small></string> + <string name="encrypted_message_received"><i>Verschlüsselte Nachricht erhalten. Drücke hier, um sie anzuzeigen und zu entschlüsseln.</i></string> + <string name="pref_general">Allgemeines</string> + <string name="pref_xmpp_resource">XMPP-Ressource</string> + <string name="pref_xmpp_resource_summary">Der Name, mit dem sich der Client selbst identifiziert</string> + <string name="pref_accept_files">Dateiannahme</string> <string name="pref_accept_files_summary">Dateien, die kleiner sind als …, automatisch annehmen</string> - <string name="pref_notification_settings">Benachrichtigungen</string> - <string name="pref_notifications">Benachrichtigungen</string> - <string name="pref_notifications_summary">Benachrichtige mich, wenn eine neue Nachricht ankommt</string> - <string name="pref_vibrate">Vibrieren</string> - <string name="pref_vibrate_summary">Vibriere, wenn eine neue Nachricht ankommt</string> - <string name="pref_sound">Klingelton</string> - <string name="pref_sound_summary">Spiele Klingelton, wenn eine neue Nachricht ankommt</string> - <string name="pref_conference_notifications">Konferenz-Benachrichtigungen</string> + <string name="pref_notification_settings">Benachrichtigungen</string> + <string name="pref_notifications">Benachrichtigungen</string> + <string name="pref_notifications_summary">Benachrichtige mich, wenn eine neue Nachricht ankommt</string> + <string name="pref_vibrate">Vibrieren</string> + <string name="pref_vibrate_summary">Vibriere, wenn eine neue Nachricht ankommt</string> + <string name="pref_sound">Klingelton</string> + <string name="pref_sound_summary">Spiele Klingelton, wenn eine neue Nachricht ankommt</string> + <string name="pref_conference_notifications">Konferenz-Benachrichtigungen</string> <string name="pref_conference_notifications_summary">Benachrichtige mich bei jeder Konferenz-Nachricht und nicht nur, wenn ich angesprochen werde</string> - <string name="pref_notification_grace_period">Gnadenfrist</string> - <string name="pref_notification_grace_period_summary">Deaktiviere Benachrichtigungen für eine kurze Zeit nach Erhalt einer Nachricht, die von einem anderen deiner Clients kommt.</string> - <string name="pref_advanced_options">Erweiterte Optionen</string> - <string name="pref_never_send_crash">Sende niemals Absturzberichte</string> - <string name="pref_never_send_crash_summary">Wenn du Absturzberichte einschickst, hilfst du Conversations stetig zu verbessern</string> - <string name="pref_confirm_messages">Lesebestätigung senden</string> + <string name="pref_notification_grace_period">Gnadenfrist</string> + <string name="pref_notification_grace_period_summary">Deaktiviere Benachrichtigungen für eine kurze Zeit nach Erhalt einer Nachricht, die von einem anderen deiner Clients kommt.</string> + <string name="pref_advanced_options">Erweiterte Optionen</string> + <string name="pref_never_send_crash">Sende niemals Absturzberichte</string> + <string name="pref_never_send_crash_summary">Wenn du Absturzberichte einschickst, hilfst du Conversations stetig zu verbessern</string> + <string name="pref_confirm_messages">Lesebestätigung senden</string> <string name="pref_confirm_messages_summary">Informiere deine Kontakte, wenn du eine Nachricht empfangen und gelesen hast</string> - <string name="pref_ui_options">Benutzeroberfläche</string> - <string name="openpgp_error">Fehler mit OpenKeychain</string> - <string name="error_decrypting_file">Fehler beim Entschlüsseln der Datei</string> - <string name="accept">Annehmen</string> - <string name="error">Ein unbekannter Fehler ist aufgetreten</string> - <string name="pref_grant_presence_updates">Online-Status</string> - <string name="pref_grant_presence_updates_summary">Erlaube Kontakten, die von dir erstellt wurden, deinen Status zu sehen und frage um Erlaubnis, ihren sehen zu dürfen</string> - <string name="subscriptions">Abonnements</string> - <string name="your_account">Dein Konto</string> - <string name="keys">Schlüssel</string> - <string name="send_presence_updates">Anwesenheitsbenachrichtigungen senden</string> - <string name="receive_presence_updates">Empfange Anwesenheitsbenachrichtigungen</string> - <string name="ask_for_presence_updates">Frage um Erlaubnis, Anwesenheitsbenachrichtigungen sehen zu dürfen</string> + <string name="pref_ui_options">Benutzeroberfläche</string> + <string name="pref_parse_emoticons">Smilies ersetzen</string> + <string name="pref_parse_emoticons_summary">Zeige Smilie-Bilder anstelle von Emoticons.</string> + <string name="openpgp_error">Fehler mit OpenKeychain</string> + <string name="error_decrypting_file">Fehler beim Entschlüsseln der Datei</string> + <string name="accept">Annehmen</string> + <string name="error">Ein unbekannter Fehler ist aufgetreten</string> + <string name="pref_grant_presence_updates">Online-Status</string> + <string name="pref_grant_presence_updates_summary">Erlaube Kontakten, die von dir erstellt wurden, deinen Status zu sehen und frage um Erlaubnis, ihren sehen zu dürfen</string> + <string name="subscriptions">Abonnements</string> + <string name="your_account">Dein Konto</string> + <string name="keys">Schlüssel</string> + <string name="send_presence_updates">Anwesenheitsbenachrichtigungen senden</string> + <string name="receive_presence_updates">Empfange Anwesenheitsbenachrichtigungen</string> + <string name="ask_for_presence_updates">Frage um Erlaubnis, Anwesenheitsbenachrichtigungen sehen zu dürfen</string> <string name="attach_choose_picture">Bild auswählen</string> <string name="attach_take_picture">Bild aufnehmen</string> - <string name="preemptively_grant">Erlaube Statusanfrage vorab</string> - <string name="error_not_an_image_file">Die ausgewählte Datei ist kein Bild</string> - <string name="error_compressing_image">Fehler beim Umwandeln des Bildes</string> - <string name="error_file_not_found">Datei nicht gefunden</string> - <string name="error_io_exception">Allgemeiner Fehler. Vielleicht hast du keinen Speicherplatz mehr?</string> - <string name="error_security_exception_during_image_copy">Die App, mit der du das Bild ausgesucht hast, hat uns keine Rechte eingeräumt, das Bild zu betrachten.\n\n<small>Benutze einen anderen Dateimanager</small></string> - <string name="account_status_unknown">Unbekannt</string> - <string name="account_status_disabled">Vorübergehend abgeschaltet</string> - <string name="account_status_online">Online</string> - <string name="account_status_connecting">Verbinde\u2026</string> - <string name="account_status_offline">Offline</string> - <string name="account_status_unauthorized">Ungültige Zugangsdaten</string> - <string name="account_status_not_found">Server nicht gefunden</string> - <string name="account_status_no_internet">Keine Internetverbindung</string> - <string name="account_status_regis_fail">Registrierung fehlgeschlagen</string> - <string name="account_status_regis_conflict">Benutzername wird bereits verwendet</string> - <string name="account_status_regis_success">Registrierung abgeschlossen</string> - <string name="account_status_regis_not_sup">Der Server unterstützt keine Registrierung</string> - <string name="account_status_security_error">Sicherheitsfehler</string> - <string name="account_status_incompatible_server">Inkompatibler Server</string> - <string name="encryption_choice_none">Klartext</string> - <string name="encryption_choice_otr">OTR</string> - <string name="encryption_choice_pgp">OpenPGP</string> - <string name="mgmt_account_edit">Konto bearbeiten</string> - <string name="mgmt_account_delete">Löschen</string> - <string name="mgmt_account_disable">Vorübergehend abschalten</string> - <string name="mgmt_account_publish_avatar">Avatar veröffentlichen</string> - <string name="mgmt_account_publish_pgp">Öffentlichen OpenPGP-Schlüssel veröffentlichen</string> - <string name="mgmt_account_enable">Anschalten</string> - <string name="mgmt_account_are_you_sure">Bist du dir sicher?</string> + <string name="preemptively_grant">Erlaube Statusanfrage vorab</string> + <string name="error_not_an_image_file">Die ausgewählte Datei ist kein Bild</string> + <string name="error_compressing_image">Fehler beim Umwandeln des Bildes</string> + <string name="error_file_not_found">Datei nicht gefunden</string> + <string name="error_io_exception">Allgemeiner Fehler. Vielleicht hast du keinen Speicherplatz mehr?</string> + <string name="error_security_exception_during_image_copy">Die App, mit der du das Bild ausgesucht hast, hat uns keine Rechte eingeräumt, das Bild zu betrachten.\n\n<small>Benutze einen anderen Dateimanager</small></string> + <string name="account_status_unknown">Unbekannt</string> + <string name="account_status_disabled">Vorübergehend abgeschaltet</string> + <string name="account_status_online">Online</string> + <string name="account_status_connecting">Verbinde\u2026</string> + <string name="account_status_offline">Offline</string> + <string name="account_status_unauthorized">Ungültige Zugangsdaten</string> + <string name="account_status_not_found">Server nicht gefunden</string> + <string name="account_status_no_internet">Keine Internetverbindung</string> + <string name="account_status_regis_fail">Registrierung fehlgeschlagen</string> + <string name="account_status_regis_conflict">Benutzername wird bereits verwendet</string> + <string name="account_status_regis_success">Registrierung abgeschlossen</string> + <string name="account_status_regis_not_sup">Der Server unterstützt keine Registrierung</string> + <string name="account_status_security_error">Sicherheitsfehler</string> + <string name="account_status_incompatible_server">Inkompatibler Server</string> + <string name="encryption_choice_none">Klartext</string> + <string name="encryption_choice_otr">OTR</string> + <string name="encryption_choice_pgp">OpenPGP</string> + <string name="mgmt_account_edit">Konto bearbeiten</string> + <string name="mgmt_account_delete">Löschen</string> + <string name="mgmt_account_disable">Vorübergehend abschalten</string> + <string name="mgmt_account_publish_avatar">Avatar veröffentlichen</string> + <string name="mgmt_account_publish_pgp">Öffentlichen OpenPGP-Schlüssel veröffentlichen</string> + <string name="mgmt_account_enable">Anschalten</string> + <string name="mgmt_account_are_you_sure">Bist du dir sicher?</string> <string name="mgmt_account_delete_confirm_text">Wenn du dein Konto löschst, gehen alle Gesprächsverläufe verloren</string> - <string name="attach_record_voice">Sprache aufzeichnen</string> - <string name="account_settings_jabber_id">Jabber-ID:</string> - <string name="account_settings_password">Passwort:</string> - <string name="account_settings_example_jabber_id">benutzer@domain.de</string> - <string name="account_settings_confirm_password">Passwort bestätigen</string> - <string name="password">Passwort</string> - <string name="confirm_password">Passwort bestätigen</string> - <string name="passwords_do_not_match">Passwörter stimmen nicht überein</string> - <string name="invalid_jid">Ungültige Jabber-ID</string> - <string name="error_out_of_memory">Zu wenig Speicher vorhanden. Das Bild ist zu groß</string> - <string name="add_phone_book_text">Möchtest du %s zum Telefonbuch hinzufügen?</string> - <string name="contact_status_online">Online</string> - <string name="contact_status_free_to_chat">Bereit</string> - <string name="contact_status_away">Abwesend</string> - <string name="contact_status_extended_away">Abwesend (erweitert)</string> - <string name="contact_status_do_not_disturb">Nicht stören</string> - <string name="contact_status_offline">Offline</string> - <string name="muc_details_conference">Konferenz</string> - <string name="muc_details_other_members">Andere Mitglieder</string> - <string name="server_info_show_more">Server Info</string> - <string name="server_info_mam">XEP-0313: MAM</string> - <string name="server_info_carbon_messages">XEP-0280: Message Carbons</string> + <string name="attach_record_voice">Sprache aufzeichnen</string> + <string name="account_settings_jabber_id">Jabber-ID:</string> + <string name="account_settings_password">Passwort:</string> + <string name="account_settings_example_jabber_id">benutzer@domain.de</string> + <string name="account_settings_confirm_password">Passwort bestätigen</string> + <string name="password">Passwort</string> + <string name="confirm_password">Passwort bestätigen</string> + <string name="passwords_do_not_match">Passwörter stimmen nicht überein</string> + <string name="invalid_jid">Ungültige Jabber-ID</string> + <string name="error_out_of_memory">Zu wenig Speicher vorhanden. Das Bild ist zu groß</string> + <string name="add_phone_book_text">Möchtest du %s zum Telefonbuch hinzufügen?</string> + <string name="contact_status_online">Online</string> + <string name="contact_status_free_to_chat">Bereit</string> + <string name="contact_status_away">Abwesend</string> + <string name="contact_status_extended_away">Abwesend (erweitert)</string> + <string name="contact_status_do_not_disturb">Nicht stören</string> + <string name="contact_status_offline">Offline</string> + <string name="muc_details_conference">Konferenz</string> + <string name="muc_details_other_members">Andere Mitglieder</string> + <string name="server_info_show_more">Server Info</string> + <string name="server_info_mam">XEP-0313: MAM</string> + <string name="server_info_carbon_messages">XEP-0280: Message Carbons</string> <string name="server_info_csi">XEP-0352: CSI</string> - <string name="server_info_blocking">XEP-0191: Blocking Command</string> - <string name="server_info_roster_version">XEP-0237: Roster Versioning</string> - <string name="server_info_stream_management">XEP-0198: Stream Management</string> - <string name="server_info_pep">XEP-0163: PEP (Avatare)</string> + <string name="server_info_blocking">XEP-0191: Blocking Command</string> + <string name="server_info_roster_version">XEP-0237: Roster Versioning</string> + <string name="server_info_stream_management">XEP-0198: Stream Management</string> + <string name="server_info_pep">XEP-0163: PEP (Avatare)</string> <string name="server_info_available">ja</string> <string name="server_info_unavailable">nein</string> - <string name="missing_public_keys">Öffentlicher Schlüssel fehlt</string> - <string name="last_seen_now">online</string> - <string name="last_seen_min">vor einer Minute gesehen</string> - <string name="last_seen_mins">vor %d Minuten gesehen</string> - <string name="last_seen_hour">vor einer Stunde gesehen</string> - <string name="last_seen_hours">vor %d Stunden gesehen</string> - <string name="last_seen_day">vor einem Tag gesehen</string> - <string name="last_seen_days">vor %d Tagen gesehen</string> - <string name="never_seen">noch nie gesehen</string> - <string name="install_openkeychain">Verschlüsselte Nachricht. Bitte installiere OpenKeychain zur Entschlüsselung.</string> - <string name="unknown_otr_fingerprint">Unbekannter OTR-Fingerabdruck</string> - <string name="openpgp_messages_found">Verschlüsselte OpenPGP-Nachricht gefunden</string> - <string name="reception_failed">Empfang ist fehlgeschlagen</string> - <string name="your_fingerprint">Dein Fingerabdruck</string> - <string name="otr_fingerprint">OTR-Fingerabdruck</string> - <string name="verify">Verifizieren</string> - <string name="decrypt">Entschlüsseln</string> - <string name="conferences">Konferenzen</string> - <string name="search">Suche</string> - <string name="create_contact">Kontakt erstellen</string> + <string name="missing_public_keys">Öffentlicher Schlüssel fehlt</string> + <string name="last_seen_now">online</string> + <string name="last_seen_min">vor einer Minute gesehen</string> + <string name="last_seen_mins">vor %d Minuten gesehen</string> + <string name="last_seen_hour">vor einer Stunde gesehen</string> + <string name="last_seen_hours">vor %d Stunden gesehen</string> + <string name="last_seen_day">vor einem Tag gesehen</string> + <string name="last_seen_days">vor %d Tagen gesehen</string> + <string name="never_seen">noch nie gesehen</string> + <string name="install_openkeychain">Verschlüsselte Nachricht. Bitte installiere OpenKeychain zur Entschlüsselung.</string> + <string name="unknown_otr_fingerprint">Unbekannter OTR-Fingerabdruck</string> + <string name="openpgp_messages_found">Verschlüsselte OpenPGP-Nachricht gefunden</string> + <string name="reception_failed">Empfang ist fehlgeschlagen</string> + <string name="your_fingerprint">Dein Fingerabdruck</string> + <string name="otr_fingerprint">OTR-Fingerabdruck</string> + <string name="verify">Verifizieren</string> + <string name="decrypt">Entschlüsseln</string> + <string name="conferences">Konferenzen</string> + <string name="search">Suche</string> + <string name="create_contact">Kontakt erstellen</string> <string name="join_conference">Konferenz betreten</string> - <string name="delete_contact">Kontakt löschen</string> - <string name="view_contact_details">Kontaktdetails anzeigen</string> - <string name="block_contact">Kontakt sperren</string> + <string name="delete_contact">Kontakt löschen</string> + <string name="view_contact_details">Kontaktdetails anzeigen</string> + <string name="block_contact">Kontakt sperren</string> <string name="unblock_contact">Kontakt entsperren</string> - <string name="create">Erstellen</string> - <string name="contact_already_exists">Der Kontakt existiert bereits</string> - <string name="join">Beitreten</string> + <string name="create">Erstellen</string> + <string name="contact_already_exists">Der Kontakt existiert bereits</string> + <string name="join">Beitreten</string> <string name="conference_address">Konferenz-Adresse</string> - <string name="conference_address_example">raum@conference.example.com</string> - <string name="save_as_bookmark">Als Lesezeichen speichern</string> - <string name="delete_bookmark">Lesezeichen löschen</string> - <string name="bookmark_already_exists">Das Lesezeichen existiert bereits</string> - <string name="you">Du</string> + <string name="conference_address_example">raum@conference.example.com</string> + <string name="save_as_bookmark">Als Lesezeichen speichern</string> + <string name="delete_bookmark">Lesezeichen löschen</string> + <string name="bookmark_already_exists">Das Lesezeichen existiert bereits</string> + <string name="you">Du</string> <string name="action_edit_subject">Konferenz-Thema anpassen</string> - <string name="conference_not_found">Konferenz nicht gefunden</string> - <string name="leave">Verlassen</string> - <string name="contact_added_you">Der Kontakt hat dich zur Kontaktliste hinzugefügt</string> - <string name="add_back">Auch hinzufügen</string> - <string name="contact_has_read_up_to_this_point">%s hat bis zu diesem Punkt gelesen</string> - <string name="publish">Veröffentlichen</string> + <string name="conference_not_found">Konferenz nicht gefunden</string> + <string name="leave">Verlassen</string> + <string name="contact_added_you">Der Kontakt hat dich zur Kontaktliste hinzugefügt</string> + <string name="add_back">Auch hinzufügen</string> + <string name="contact_has_read_up_to_this_point">%s hat bis zu diesem Punkt gelesen</string> + <string name="publish">Veröffentlichen</string> <string name="touch_to_choose_picture">Hier klicken, um einen Avatar auszuwählen</string> - <string name="publish_avatar_explanation">Achtung: Jeder, der deinen Status sehen darf, sieht auch deinen Avatar.</string> + <string name="publish_avatar_explanation">Achtung: Jeder, der deinen Status sehen darf, sieht auch deinen Avatar.</string> <string name="publishing">Veröffentliche…</string> - <string name="error_publish_avatar_server_reject">Der Server hat die Veröffentlichung des Avatars abgelehnt.</string> - <string name="error_publish_avatar_converting">Bei der Konvertierung des Avatars lief etwas schief.</string> - <string name="error_saving_avatar">Kann Avatar nicht speichern.</string> - <string name="or_long_press_for_default">(Oder klicke lange, um Standard wiederherzustellen)</string> - <string name="error_publish_avatar_no_server_support">Dein Server unterstützt die Veröffentlichung von Avataren nicht.</string> - <string name="private_message">private Nachricht</string> + <string name="error_publish_avatar_server_reject">Der Server hat die Veröffentlichung des Avatars abgelehnt.</string> + <string name="error_publish_avatar_converting">Bei der Konvertierung des Avatars lief etwas schief.</string> + <string name="error_saving_avatar">Kann Avatar nicht speichern.</string> + <string name="or_long_press_for_default">(Oder klicke lange, um Standard wiederherzustellen)</string> + <string name="error_publish_avatar_no_server_support">Dein Server unterstützt die Veröffentlichung von Avataren nicht.</string> + <string name="private_message">private Nachricht</string> <string name="private_message_to">an %s:</string> - <string name="send_private_message_to">Sende private Nachricht an %s</string> - <string name="connect">Verbinden</string> - <string name="account_already_exists">Das Konto existiert bereits</string> - <string name="next">Weiter</string> + <string name="send_private_message_to">Sende private Nachricht an %s</string> + <string name="connect">Verbinden</string> + <string name="account_already_exists">Das Konto existiert bereits</string> + <string name="next">Weiter</string> <string name="server_info_session_established">Sitzung wiederhergestellt</string> - <string name="additional_information">Zusätzliche Informationen</string> - <string name="skip">Überspringen</string> - <string name="disable_notifications">Benachrichtigungen deaktivieren</string> - <string name="disable_notifications_for_this_conversation">Benachrichtigungen für diese Unterhaltung deaktivieren</string> - <string name="notifications_disabled">Benachrichtigungen sind deaktiviert</string> - <string name="enable">Aktivieren</string> - <string name="conference_requires_password">Konferenz ist passwortgeschützt</string> - <string name="enter_password">Passwort eingeben</string> - <string name="missing_presence_updates">Fehlender Online-Status vom Kontakt</string> - <string name="request_presence_updates">Bitte erst Anwesenheitsbenachrichtigungen vom Kontakt anfordern.\n\n</string> - <string name="request_now">Jetzt anfordern</string> - <string name="delete_fingerprint">Fingerabdruck löschen</string> - <string name="sure_delete_fingerprint">Soll dieser Fingerabdruck gelöscht werden?</string> - <string name="ignore">Ignorieren</string> - <string name="without_mutual_presence_updates"><b>Achtung:</b> Es kann zu unerwarteten Problemen führen, dies ohne gegenseitige Anwesenheitsbenachrichtigungen abzusenden.\n\n<small>Bitte die Online-Status-Abonnements in den Kontaktdetails prüfen.</small></string> - <string name="pref_encryption_settings">Verschlüsselungs-Einstellungen</string> - <string name="pref_force_encryption">Ende-zu-Ende-Verschlüsselung erzwingen</string> - <string name="pref_force_encryption_summary">Nachrichten immer verschlüsseln (außer für Konferenzen)</string> - <string name="pref_dont_save_encrypted">Verschlüsselte Nachrichten nicht speichern</string> - <string name="pref_dont_save_encrypted_summary">Achtung: kann zu Nachrichtenverlust führen</string> - <string name="pref_expert_options">Einstellungen für Experten</string> - <string name="pref_expert_options_summary">Hier bitte vorsichtig sein</string> - <string name="title_activity_about">Über Conversations</string> - <string name="pref_about_conversations_summary">Versions- und Lizenzinformationen</string> - <string name="title_pref_quiet_hours">Ruhige Stunden</string> - <string name="title_pref_quiet_hours_start_time">Beginn</string> - <string name="title_pref_quiet_hours_end_time">Ende</string> - <string name="title_pref_enable_quiet_hours">Aktiviere ruhige Stunden</string> - <string name="pref_quiet_hours_summary">Benachrichtigungen sind während der ruhigen Stunden stumm.</string> - <string name="pref_use_larger_font">Schrift vergrößern</string> - <string name="pref_use_larger_font_summary">Größere Schrift verwenden</string> - <string name="pref_use_send_button_to_indicate_status">Absende-Knopf zeigt Online-Status an</string> - <string name="pref_use_indicate_received">Anfrage für Nachrichten Empfang</string> - <string name="pref_use_indicate_received_summary">Empfangene Nachrichten werden mit einem grünen Häkchen markiert. Bitte beachte, dass dies nicht in allen Fällen funktioniert.</string> + <string name="additional_information">Zusätzliche Informationen</string> + <string name="skip">Überspringen</string> + <string name="disable_notifications">Benachrichtigungen deaktivieren</string> + <string name="disable_notifications_for_this_conversation">Benachrichtigungen für diese Unterhaltung deaktivieren</string> + <string name="notifications_disabled">Benachrichtigungen sind deaktiviert</string> + <string name="enable">Aktivieren</string> + <string name="conference_requires_password">Konferenz ist passwortgeschützt</string> + <string name="enter_password">Passwort eingeben</string> + <string name="missing_presence_updates">Fehlender Online-Status vom Kontakt</string> + <string name="request_presence_updates">Bitte erst Anwesenheitsbenachrichtigungen vom Kontakt anfordern.\n\n</string> + <string name="request_now">Jetzt anfordern</string> + <string name="delete_fingerprint">Fingerabdruck löschen</string> + <string name="sure_delete_fingerprint">Soll dieser Fingerabdruck gelöscht werden?</string> + <string name="ignore">Ignorieren</string> + <string name="without_mutual_presence_updates"><b>Achtung:</b> Es kann zu unerwarteten Problemen führen, dies ohne gegenseitige Anwesenheitsbenachrichtigungen abzusenden.\n\n<small>Bitte die Online-Status-Abonnements in den Kontaktdetails prüfen.</small></string> + <string name="pref_encryption_settings">Verschlüsselungs-Einstellungen</string> + <string name="pref_force_encryption">Ende-zu-Ende-Verschlüsselung erzwingen</string> + <string name="pref_force_encryption_summary">Nachrichten immer verschlüsseln (außer für Konferenzen)</string> + <string name="pref_dont_save_encrypted">Verschlüsselte Nachrichten nicht speichern</string> + <string name="pref_dont_save_encrypted_summary">Achtung: kann zu Nachrichtenverlust führen</string> + <string name="pref_expert_options">Einstellungen für Experten</string> + <string name="pref_expert_options_summary">Hier bitte vorsichtig sein</string> + <string name="title_activity_about">Über Conversations</string> + <string name="pref_about_conversations_summary">Versions- und Lizenzinformationen</string> + <string name="title_pref_quiet_hours">Ruhige Stunden</string> + <string name="title_pref_quiet_hours_start_time">Beginn</string> + <string name="title_pref_quiet_hours_end_time">Ende</string> + <string name="title_pref_enable_quiet_hours">Aktiviere ruhige Stunden</string> + <string name="pref_quiet_hours_summary">Benachrichtigungen sind während der ruhigen Stunden stumm.</string> + <string name="pref_use_larger_font">Schrift vergrößern</string> + <string name="pref_use_larger_font_summary">Größere Schrift verwenden</string> + <string name="pref_use_send_button_to_indicate_status">Absende-Knopf zeigt Online-Status an</string> + <string name="pref_use_indicate_received">Anfrage für Nachrichten Empfang</string> + <string name="pref_use_indicate_received_summary">Empfangene Nachrichten werden mit einem grünen Häkchen markiert. Bitte beachte, dass dies nicht in allen Fällen funktioniert.</string> <string name="pref_use_send_button_to_indicate_status_summary">Absende-Knopf einfärben, um den Online-Status des Kontakts zu signalisieren</string> - <string name="pref_expert_options_other">Sonstiges</string> - <string name="pref_conference_name">Konferenz-Name</string> - <string name="pref_conference_name_summary">Konferenz-Thema statt Raum-JID als Namen verwenden</string> - <string name="toast_message_otr_fingerprint">OTR-Fingerabdruck in die Zwischenablage kopiert!</string> + <string name="pref_expert_options_other">Sonstiges</string> + <string name="pref_conference_name">Konferenz-Name</string> + <string name="pref_conference_name_summary">Konferenz-Thema statt Raum-JID als Namen verwenden</string> + <string name="toast_message_otr_fingerprint">OTR-Fingerabdruck in die Zwischenablage kopiert!</string> <string name="conference_banned">Du wurdest von der Konferenz ausgeschlossen</string> <string name="conference_members_only">Die Konferenz ist nur für Mitglieder</string> <string name="conference_kicked">Du wurdest aus der Konferenz geworfen</string> - <string name="using_account">Verwende Konto %s</string> - <string name="checking_image">Prüfe Bild auf HTTP-Host</string> - <string name="image_file_deleted">Bild wurde gelöscht</string> - <string name="not_connected_try_again">Nicht verbunden, bitte später versuchen</string> - <string name="check_image_filesize">Bildgröße prüfen</string> - <string name="message_options">Nachrichtenoptionen</string> - <string name="copy_text">Text kopieren</string> - <string name="copy_original_url">Original-URL kopieren</string> - <string name="send_again">Erneut senden</string> - <string name="image_url">Bild-URL</string> - <string name="message_text">Nachrichtentext</string> - <string name="url_copied_to_clipboard">URL in Zwischenablage kopiert</string> - <string name="message_copied_to_clipboard">Nachricht in Zwischenablage kopiert</string> - <string name="image_transmission_failed">Bild-Übertragung fehlgeschlagen</string> - <string name="scan_qr_code">Scanne QR-Code</string> - <string name="show_qr_code">Zeige QR-Code</string> - <string name="show_block_list">Zeige Sperrliste</string> - <string name="account_details">Konto Details</string> - <string name="verify_otr">Prüfe OTR</string> - <string name="remote_fingerprint">Fingerabdruck der Gegenseite</string> - <string name="scan">Scanne</string> - <string name="or_touch_phones">(oder Touch-Handys)</string> - <string name="smp">Socialist Millionaire Protocol</string> - <string name="shared_secret_hint">Hinweis oder Frage</string> - <string name="shared_secret_secret">Gemeinsamer Schlüssel</string> - <string name="confirm">Bestätige</string> - <string name="in_progress">In Bearbeitung</string> - <string name="respond">Antworten</string> - <string name="failed">Fehlgeschlagen</string> - <string name="secrets_do_not_match">Schlüssel stimmen nicht überein</string> - <string name="try_again">Erneut versuchen</string> - <string name="finish">Fertig</string> - <string name="verified">Überprüft!</string> + <string name="using_account">Verwende Konto %s</string> + <string name="checking_image">Prüfe Bild auf HTTP-Host</string> + <string name="image_file_deleted">Bild wurde gelöscht</string> + <string name="not_connected_try_again">Nicht verbunden, bitte später versuchen</string> + <string name="check_image_filesize">Bildgröße prüfen</string> + <string name="message_options">Nachrichtenoptionen</string> + <string name="copy_text">Text kopieren</string> + <string name="copy_original_url">Original-URL kopieren</string> + <string name="send_again">Erneut senden</string> + <string name="image_url">Bild-URL</string> + <string name="message_text">Nachrichtentext</string> + <string name="url_copied_to_clipboard">URL in Zwischenablage kopiert</string> + <string name="message_copied_to_clipboard">Nachricht in Zwischenablage kopiert</string> + <string name="image_transmission_failed">Bild-Übertragung fehlgeschlagen</string> + <string name="scan_qr_code">Scanne QR-Code</string> + <string name="show_qr_code">Zeige QR-Code</string> + <string name="show_block_list">Zeige Sperrliste</string> + <string name="account_details">Konto Details</string> + <string name="verify_otr">Prüfe OTR</string> + <string name="remote_fingerprint">Fingerabdruck der Gegenseite</string> + <string name="scan">Scanne</string> + <string name="or_touch_phones">(oder Touch-Handys)</string> + <string name="smp">Socialist Millionaire Protocol</string> + <string name="shared_secret_hint">Hinweis oder Frage</string> + <string name="shared_secret_secret">Gemeinsamer Schlüssel</string> + <string name="confirm">Bestätige</string> + <string name="in_progress">In Bearbeitung</string> + <string name="respond">Antworten</string> + <string name="failed">Fehlgeschlagen</string> + <string name="secrets_do_not_match">Schlüssel stimmen nicht überein</string> + <string name="try_again">Erneut versuchen</string> + <string name="finish">Fertig</string> + <string name="verified">Überprüft!</string> <string name="smp_requested">Kontakt fordert eine Überprüfung an</string> - <string name="no_otr_session_found">Keine gültige OTR Sitzung gefunden!</string> - <string name="conversations_foreground_service">Conversations</string> - <string name="pref_keep_foreground_service">Den Dienst im Vordergrund ausführen.</string> + <string name="no_otr_session_found">Keine gültige OTR Sitzung gefunden!</string> + <string name="conversations_foreground_service">Conversations</string> + <string name="pref_keep_foreground_service">Den Dienst im Vordergrund ausführen.</string> <string name="pref_keep_foreground_service_summary">Verhindert, dass Android die Verbindung unterbricht</string> - <string name="choose_file">Datei auswählen</string> + <string name="choose_file">Datei auswählen</string> <string name="receiving_x_file">Empfange %1$s (%2$d%% abgeschlossen)</string> <string name="download_x_file">Lade %s herunter</string> <string name="file">Datei</string> <string name="open_x_file">Öffne %s</string> <string name="sending_file">Sende (%1$d%% gesendet)</string> - <string name="preparing_file">Bereite Datei für die Übertragung vor</string> + <string name="preparing_file">Bereite Datei für die Übertragung vor</string> <string name="x_file_offered_for_download">%s zum Herunterladen angeboten</string> - <string name="cancel_transmission">Datei-Übertragung abbrechen</string> - <string name="file_transmission_failed">Datei-Übertragung fehlgeschlagen</string> - <string name="file_deleted">Datei wurde gelöscht</string> - <string name="no_application_found_to_open_file">Keine Anwendung zum Öffnen der Datei gefunden</string> - <string name="could_not_verify_fingerprint">Kann Fingerabdruck nicht überprüfen</string> - <string name="manually_verify">Manuell überprüfen</string> - <string name="are_you_sure_verify_fingerprint">Bist du sicher, dass du den OTR-Fingerabdruck des Kontakts überprüfen willst?</string> - <string name="pref_show_dynamic_tags">Dynamische Tags anzeigen</string> - <string name="pref_show_dynamic_tags_summary">Zeige schreibgeschützte Tags unterhalb der Kontakte</string> - <string name="enable_notifications">Aktiviere Benachrichtigungen</string> + <string name="cancel_transmission">Datei-Übertragung abbrechen</string> + <string name="file_transmission_failed">Datei-Übertragung fehlgeschlagen</string> + <string name="file_deleted">Datei wurde gelöscht</string> + <string name="no_application_found_to_open_file">Keine Anwendung zum Öffnen der Datei gefunden</string> + <string name="could_not_verify_fingerprint">Kann Fingerabdruck nicht überprüfen</string> + <string name="manually_verify">Manuell überprüfen</string> + <string name="are_you_sure_verify_fingerprint">Bist du sicher, dass du den OTR-Fingerabdruck des Kontakts überprüfen willst?</string> + <string name="pref_show_dynamic_tags">Dynamische Tags anzeigen</string> + <string name="pref_show_dynamic_tags_summary">Zeige schreibgeschützte Tags unterhalb der Kontakte</string> + <string name="enable_notifications">Aktiviere Benachrichtigungen</string> <string name="conference_with">Starte Konferenz mit…</string> - <string name="no_conference_server_found">Konferenz-Server kann nicht gefunden werden</string> - <string name="conference_creation_failed">Starten der Konferenz fehlgeschlagen!</string> - <string name="conference_created">Konferenz erstellt!</string> - <string name="secret_accepted">Schlüssel akzeptiert!</string> - <string name="reset">Zurücksetzen</string> - <string name="account_image_description">Konto-Avatar</string> - <string name="copy_otr_clipboard_description">OTR-Fingerabdruck in Zwischenablage kopieren</string> + <string name="no_conference_server_found">Konferenz-Server kann nicht gefunden werden</string> + <string name="conference_creation_failed">Starten der Konferenz fehlgeschlagen!</string> + <string name="conference_created">Konferenz erstellt!</string> + <string name="secret_accepted">Schlüssel akzeptiert!</string> + <string name="reset">Zurücksetzen</string> + <string name="account_image_description">Konto-Avatar</string> + <string name="copy_otr_clipboard_description">OTR-Fingerabdruck in Zwischenablage kopieren</string> <string name="fetching_history_from_server">Lade Chatverlauf</string> <string name="no_more_history_on_server">Keine weiteren Nachrichten vorhanden</string> <string name="updating">Aktualisiere…</string> - <string name="password_changed">Passwort geändert.</string> - <string name="could_not_change_password">Passwort kann nicht geändert werden.</string> - <string name="otr_session_not_started">Sende eine Nachricht, um eine verschlüsselte Unterhaltung zu beginnen</string> - <string name="ask_question">Frage stellen</string> - <string name="smp_explain_question">Falls du mit deinem Kontakt ein gemeinsames Geheimnis hast (z.B. ein Insider-Witz oder was ihr zuletzt gemeinsam zum Mittag gegessen habt), kann dies zur gegenseitigen Überprüfung des Fingerabdrucks genutzt werden.\n\nDu stellst eine Frage oder gibst einen Hinweis und dein Kontakt gibt eine eindeutige Antwort.</string> - <string name="smp_explain_answer">Dein Kontakt möchte deinen Fingerabdruck mit Hilfe eines gemeinsamen Schlüssels überprüfen. Dein Kontakt hat dazu folgende Frage gestellt.</string> - <string name="shared_secret_hint_should_not_be_empty">Deine Frage darf nicht leer sein.</string> - <string name="shared_secret_can_not_be_empty">Dein gemeinsamer Schlüssel darf nicht leer sein</string> - <string name="manual_verification_explanation">Vergleiche den angezeigten Fingerabdruck sorgfältig mit dem deines Kontakts.\nDu kannst dazu einen sicheren Kommunikationsweg (z.B. verschlüsselte E-Mail oder Telefonanruf) zum Austausch nutzen.</string> - <string name="change_password">Passwort ändern</string> - <string name="current_password">Aktuelles Passwort</string> - <string name="new_password">Neues Passwort</string> - <string name="password_should_not_be_empty">Das Passwort darf nicht leer sein</string> - <string name="enable_all_accounts">Alle Konten anschalten</string> - <string name="disable_all_accounts">Alle Konten abschalten</string> - <string name="perform_action_with">Aktion durchführen mit</string> + <string name="password_changed">Passwort geändert.</string> + <string name="could_not_change_password">Passwort kann nicht geändert werden.</string> + <string name="otr_session_not_started">Sende eine Nachricht, um eine verschlüsselte Unterhaltung zu beginnen</string> + <string name="ask_question">Frage stellen</string> + <string name="smp_explain_question">Falls du mit deinem Kontakt ein gemeinsames Geheimnis hast (z.B. ein Insider-Witz oder was ihr zuletzt gemeinsam zum Mittag gegessen habt), kann dies zur gegenseitigen Überprüfung des Fingerabdrucks genutzt werden.\n\nDu stellst eine Frage oder gibst einen Hinweis und dein Kontakt gibt eine eindeutige Antwort.</string> + <string name="smp_explain_answer">Dein Kontakt möchte deinen Fingerabdruck mit Hilfe eines gemeinsamen Schlüssels überprüfen. Dein Kontakt hat dazu folgende Frage gestellt.</string> + <string name="shared_secret_hint_should_not_be_empty">Deine Frage darf nicht leer sein.</string> + <string name="shared_secret_can_not_be_empty">Dein gemeinsamer Schlüssel darf nicht leer sein</string> + <string name="manual_verification_explanation">Vergleiche den angezeigten Fingerabdruck sorgfältig mit dem deines Kontakts.\nDu kannst dazu einen sicheren Kommunikationsweg (z.B. verschlüsselte E-Mail oder Telefonanruf) zum Austausch nutzen.</string> + <string name="change_password">Passwort ändern</string> + <string name="current_password">Aktuelles Passwort</string> + <string name="new_password">Neues Passwort</string> + <string name="password_should_not_be_empty">Das Passwort darf nicht leer sein</string> + <string name="enable_all_accounts">Alle Konten anschalten</string> + <string name="disable_all_accounts">Alle Konten abschalten</string> + <string name="perform_action_with">Aktion durchführen mit</string> <string name="no_affiliation">Keine Zugehörigkeit</string> <string name="no_role">Keine Rolle</string> <string name="outcast">Ausgeschlossen</string> diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 9d3300d8..ccb4b67a 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -118,6 +118,8 @@ <string name="pref_confirm_messages">Confirm Messages</string> <string name="pref_confirm_messages_summary">Let your contact know when you have received and read a message</string> <string name="pref_ui_options">UI Options</string> + <string name="pref_parse_emoticons">Parse Emoticons</string> + <string name="pref_parse_emoticons_summary">Replace emoticons with smilies.</string> <string name="openpgp_error">OpenKeychain reported an error</string> <string name="error_decrypting_file">I/O Error decrypting file</string> <string name="accept">Accept</string> diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml index 7c92530f..2c666baa 100644 --- a/src/main/res/xml/preferences.xml +++ b/src/main/res/xml/preferences.xml @@ -28,6 +28,11 @@ android:key="confirm_messages" android:summary="@string/pref_confirm_messages_summary" android:title="@string/pref_confirm_messages" /> + <CheckBoxPreference + android:defaultValue="true" + android:key="parse_emoticons" + android:summary="@string/pref_parse_emoticons_summary" + android:title="Parse Emoticons"/> </PreferenceCategory> <PreferenceCategory android:title="@string/pref_notification_settings" > <CheckBoxPreference |