Threema 4 年 前
コミット
3e1bd32d4b
44 ファイル変更750 行追加1101 行削除
  1. 2 2
      app/build.gradle
  2. 4 16
      app/src/main/AndroidManifest.xml
  3. 8 1
      app/src/main/java/ch/threema/app/backuprestore/BackupChatServiceImpl.java
  4. 9 4
      app/src/main/java/ch/threema/app/fragments/ComposeMessageFragment.java
  5. 23 16
      app/src/main/java/ch/threema/app/fragments/MessageSectionFragment.java
  6. 3 1
      app/src/main/java/ch/threema/app/fragments/WorkUserListFragment.java
  7. 0 83
      app/src/main/java/ch/threema/app/receivers/AcknowledgeActionBroadcastReceiver.java
  8. 0 83
      app/src/main/java/ch/threema/app/receivers/DeclineActionBroadcastReceiver.java
  9. 0 77
      app/src/main/java/ch/threema/app/receivers/MarkReadActionBroadcastReceiver.java
  10. 0 110
      app/src/main/java/ch/threema/app/receivers/ReplyActionBroadcastReceiver.java
  11. 1 0
      app/src/main/java/ch/threema/app/services/BrowserDetectionService.java
  12. 3 1
      app/src/main/java/ch/threema/app/services/BrowserDetectionServiceImpl.java
  13. 182 0
      app/src/main/java/ch/threema/app/services/NotificationActionService.java
  14. 65 66
      app/src/main/java/ch/threema/app/services/NotificationServiceImpl.java
  15. 2 1
      app/src/main/java/ch/threema/app/voip/Config.java
  16. 14 0
      app/src/main/java/ch/threema/app/webclient/adapters/SessionListAdapter.java
  17. 8 5
      app/src/main/java/ch/threema/app/webclient/services/instance/message/receiver/ClientInfoRequestHandler.java
  18. 10 0
      app/src/main/res/drawable/browser_desktop.xml
  19. 10 0
      app/src/main/res/drawable/browser_desktop_dark.xml
  20. 10 0
      app/src/main/res/drawable/browser_desktop_light.xml
  21. 0 215
      app/src/main/res/layout-v21/activity_verification_level.xml
  22. 6 5
      app/src/main/res/layout/item_user_list_directory_header.xml
  23. 2 2
      app/src/main/res/layout/item_webclient_session_list.xml
  24. 25 25
      app/src/main/res/values-ca/strings.xml
  25. 128 153
      app/src/main/res/values-cs/strings.xml
  26. 4 4
      app/src/main/res/values-cs/webclient_strings.xml
  27. 2 2
      app/src/main/res/values-de/strings.xml
  28. 20 17
      app/src/main/res/values-de/webclient_strings.xml
  29. 19 19
      app/src/main/res/values-es/webclient_strings.xml
  30. 1 1
      app/src/main/res/values-fr/strings.xml
  31. 19 19
      app/src/main/res/values-fr/webclient_strings.xml
  32. 1 1
      app/src/main/res/values-it/strings.xml
  33. 19 19
      app/src/main/res/values-nl-rNL/webclient_strings.xml
  34. 19 19
      app/src/main/res/values-pl/webclient_strings.xml
  35. 1 1
      app/src/main/res/values-pt-rBR/strings.xml
  36. 19 19
      app/src/main/res/values-pt-rBR/webclient_strings.xml
  37. 1 1
      app/src/main/res/values-rm/strings.xml
  38. 18 18
      app/src/main/res/values-ru/webclient_strings.xml
  39. 28 31
      app/src/main/res/values-sk/strings.xml
  40. 19 19
      app/src/main/res/values-zh-rCN/webclient_strings.xml
  41. 2 2
      app/src/main/res/values-zh-rTW/strings.xml
  42. 19 19
      app/src/main/res/values-zh-rTW/webclient_strings.xml
  43. 4 4
      app/src/main/res/values/strings.xml
  44. 20 20
      app/src/main/res/values/webclient_strings.xml

+ 2 - 2
app/build.gradle

@@ -11,7 +11,7 @@ if (getGradle().getStartParameter().getTaskRequests().toString().contains("Hms")
 }
 
 // version codes
-def app_version = "4.581"
+def app_version = "4.59"
 def beta_suffix = "" // with leading dash
 
 /**
@@ -86,7 +86,7 @@ android {
         vectorDrawables.useSupportLibrary = true
         applicationId "ch.threema.app"
         testApplicationId 'ch.threema.app.test'
-        versionCode 698
+        versionCode 699
         versionName "${app_version}${beta_suffix}"
         resValue "string", "app_name", "Threema"
         // package name used for sync adapter

+ 4 - 16
app/src/main/AndroidManifest.xml

@@ -818,6 +818,10 @@
 			android:name=".webclient.services.StopSessionsAndroidService"
 			android:enabled="true"
 			android:exported="false"/>
+		<service
+			android:name=".services.NotificationActionService"
+			android:enabled="true"
+			android:exported="false"/>
 		<service
 			android:name=".jobs.WorkSyncJobService"
 			android:enabled="true"
@@ -859,22 +863,6 @@
 				<action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
 			</intent-filter>
 		</receiver>
-		<receiver
-			android:name=".receivers.MarkReadActionBroadcastReceiver"
-			android:exported="false">
-		</receiver>
-		<receiver
-			android:name=".receivers.ReplyActionBroadcastReceiver"
-			android:exported="false">
-		</receiver>
-		<receiver
-			android:name=".receivers.AcknowledgeActionBroadcastReceiver"
-			android:exported="false">
-		</receiver>
-		<receiver
-			android:name=".receivers.DeclineActionBroadcastReceiver"
-			android:exported="false">
-		</receiver>
 		<receiver
 			android:name=".receivers.ReSendMessagesBroadcastReceiver"
 			android:exported="false">

+ 8 - 1
app/src/main/java/ch/threema/app/backuprestore/BackupChatServiceImpl.java

@@ -26,7 +26,6 @@ import android.text.format.DateUtils;
 
 import net.lingala.zip4j.io.outputstream.ZipOutputStream;
 
-import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -44,6 +43,7 @@ import ch.threema.app.services.MessageService;
 import ch.threema.app.utils.FileUtil;
 import ch.threema.app.utils.GeoLocationUtil;
 import ch.threema.app.utils.NameUtil;
+import ch.threema.app.utils.StringConversionUtil;
 import ch.threema.app.utils.TestUtil;
 import ch.threema.app.utils.ZipUtil;
 import ch.threema.app.voicemessage.VoiceRecorderActivity;
@@ -129,6 +129,13 @@ public class BackupChatServiceImpl implements BackupChatService {
 					case LOCATION:
 						messageLine += " <" + GeoLocationUtil.getLocationUri(m) + ">";
 						break;
+					case VOIP_STATUS:
+						if (m.getVoipStatusData().getDuration() != null) {
+							messageLine += " <" + StringConversionUtil.secondsToString(
+								m.getVoipStatusData().getDuration(),
+								false) + ">";
+						}
+						break;
 					default:
 				}
 

+ 9 - 4
app/src/main/java/ch/threema/app/fragments/ComposeMessageFragment.java

@@ -386,6 +386,7 @@ public class ComposeMessageFragment extends Fragment implements
 	private int listInstancePosition = AbsListView.INVALID_POSITION;
 	private int listInstanceTop = 0;
 	private String listInstanceReceiverId = null;
+	private String conversationUid = null;
 	private int unreadCount = 0;
 	private final QuoteInfo quoteInfo = new QuoteInfo();
 	private TextView searchCounter;
@@ -1225,6 +1226,11 @@ public class ComposeMessageFragment extends Fragment implements
 			// start media players again
 			this.messagePlayerService.resumeAll(getActivity(), this.messageReceiver, SOURCE_LIFECYCLE);
 
+			// make sure to remark the active chat
+			if (ConfigUtils.isTabletLayout()) {
+				ListenerManager.chatListener.handle(listener -> listener.onChatOpened(this.conversationUid));
+			}
+
 			// restore scroll position after orientation change
 			if (getActivity() != null) {
 				Intent intent = getActivity().getIntent();
@@ -1902,7 +1908,6 @@ public class ComposeMessageFragment extends Fragment implements
 	@UiThread
 	private void handleIntent(Intent intent) {
 		logger.debug("handleIntent");
-		String conversationUid;
 		this.isGroupChat = false;
 		this.isDistributionListChat = false;
 		this.currentPageReferenceId = null;
@@ -1935,7 +1940,7 @@ public class ComposeMessageFragment extends Fragment implements
 			intent.removeExtra(ThreemaApplication.INTENT_DATA_GROUP);
 //			}
 			this.messageReceiver = this.groupService.createReceiver(this.groupModel);
-			conversationUid = ConversationUtil.getGroupConversationUid(this.groupId);
+			this.conversationUid = ConversationUtil.getGroupConversationUid(this.groupId);
 		} else if (intent.hasExtra(ThreemaApplication.INTENT_DATA_DISTRIBUTION_LIST) || this.distributionListId != 0) {
 			this.isDistributionListChat = true;
 
@@ -1962,7 +1967,7 @@ public class ComposeMessageFragment extends Fragment implements
 				logger.error("Exception", e);
 				return;
 			}
-			conversationUid = ConversationUtil.getDistributionListConversationUid(this.distributionListId);
+			this.conversationUid = ConversationUtil.getDistributionListConversationUid(this.distributionListId);
 		} else {
 			if (TestUtil.empty(this.identity)) {
 				this.identity = intent.getStringExtra(ThreemaApplication.INTENT_DATA_CONTACT);
@@ -2001,7 +2006,7 @@ public class ComposeMessageFragment extends Fragment implements
 			}
 			this.messageReceiver = this.contactService.createReceiver(this.contactModel);
 			this.typingIndicatorTextWatcher = new TypingIndicatorTextWatcher(this.userService, contactModel);
-			conversationUid = ConversationUtil.getIdentityConversationUid(this.identity);
+			this.conversationUid = ConversationUtil.getIdentityConversationUid(this.identity);
 		}
 
 		if (this.messageReceiver == null) {

+ 23 - 16
app/src/main/java/ch/threema/app/fragments/MessageSectionFragment.java

@@ -695,7 +695,7 @@ public class MessageSectionFragment extends MainFragment
 
 	@SuppressLint("StaticFieldLeak")
 	private void reallyHideChat(ConversationModel conversationModel) {
-		new AsyncTask<Void, Void, Void>() {
+		new AsyncTask<Void, Void, Boolean>() {
 			@Override
 			protected void onPreExecute() {
 				if (resumePauseHandler != null) {
@@ -704,24 +704,31 @@ public class MessageSectionFragment extends MainFragment
 			}
 
 			@Override
-			protected Void doInBackground(Void... params) {
-				hiddenChatsListService.add(conversationModel.getReceiver().getUniqueIdString(), DeadlineListService.DEADLINE_INDEFINITE);
-				fireReceiverUpdate(conversationModel.getReceiver());
-				return null;
+			protected Boolean doInBackground(Void... params) {
+				if (conversationModel != null && conversationModel.getReceiver() != null) {
+					hiddenChatsListService.add(conversationModel.getReceiver().getUniqueIdString(), DeadlineListService.DEADLINE_INDEFINITE);
+					fireReceiverUpdate(conversationModel.getReceiver());
+					return true;
+				}
+				return false;
 			}
 
 			@Override
-			protected void onPostExecute(Void aVoid) {
-				messageListAdapter.clearSelections();
-				if (getView() != null) {
-					Snackbar.make(getView(), R.string.chat_hidden, Snackbar.LENGTH_SHORT).show();
-				}
-				if (resumePauseHandler != null) {
-					resumePauseHandler.onResume();
-				}
-				updateHiddenMenuVisibility();
-				if (ConfigUtils.hasProtection(preferenceService) && preferenceService.isPrivateChatsHidden()) {
-					updateList(null, null, new Thread(() -> fireSecretReceiverUpdate()));
+			protected void onPostExecute(Boolean success) {
+				if (success) {
+					messageListAdapter.clearSelections();
+					if (getView() != null) {
+						Snackbar.make(getView(), R.string.chat_hidden, Snackbar.LENGTH_SHORT).show();
+					}
+					if (resumePauseHandler != null) {
+						resumePauseHandler.onResume();
+					}
+					updateHiddenMenuVisibility();
+					if (ConfigUtils.hasProtection(preferenceService) && preferenceService.isPrivateChatsHidden()) {
+						updateList(null, null, new Thread(() -> fireSecretReceiverUpdate()));
+					}
+				} else {
+					Toast.makeText(ThreemaApplication.getAppContext(), R.string.an_error_occurred, Toast.LENGTH_SHORT).show();
 				}
 			}
 		}.execute();

+ 3 - 1
app/src/main/java/ch/threema/app/fragments/WorkUserListFragment.java

@@ -44,6 +44,7 @@ import ch.threema.app.collections.Functional;
 import ch.threema.app.collections.IPredicateNonNull;
 import ch.threema.app.services.ContactService;
 import ch.threema.app.utils.ConfigUtils;
+import ch.threema.app.utils.TestUtil;
 import ch.threema.storage.models.ContactModel;
 
 public class WorkUserListFragment extends RecipientListFragment {
@@ -83,9 +84,10 @@ public class WorkUserListFragment extends RecipientListFragment {
 
 		if (ConfigUtils.isWorkRestricted() && !multiSelect && view != null && ConfigUtils.isWorkDirectoryEnabled()) {
 			ListView listView = view.findViewById(android.R.id.list);
+			String orgaName = preferenceService.getWorkOrganization().getName();
 
 			RelativeLayout header = (RelativeLayout) getLayoutInflater().inflate(R.layout.item_user_list_directory_header, listView, false);
-			((TextView) header.findViewById(R.id.name)).setText(preferenceService.getWorkOrganization().getName());
+			((TextView) header.findViewById(R.id.name)).setText(TestUtil.empty(orgaName) ? getString(R.string.directory_title) : orgaName);
 			((ImageView) header.findViewById(R.id.avatar)).setImageResource(R.drawable.ic_business);
 			header.setOnClickListener(new View.OnClickListener() {
 				@Override

+ 0 - 83
app/src/main/java/ch/threema/app/receivers/AcknowledgeActionBroadcastReceiver.java

@@ -1,83 +0,0 @@
-/*  _____ _
- * |_   _| |_  _ _ ___ ___ _ __  __ _
- *   | | | ' \| '_/ -_) -_) '  \/ _` |_
- *   |_| |_||_|_| \___\___|_|_|_\__,_(_)
- *
- * Threema for Android
- * Copyright (c) 2015-2021 Threema GmbH
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package ch.threema.app.receivers;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.AsyncTask;
-import android.widget.Toast;
-
-import ch.threema.app.R;
-import ch.threema.app.messagereceiver.MessageReceiver;
-import ch.threema.app.utils.IntentDataUtil;
-import ch.threema.storage.models.AbstractMessageModel;
-
-public class AcknowledgeActionBroadcastReceiver extends ActionBroadcastReceiver {
-	@Override
-	public void onReceive(final Context context, final Intent intent) {
-		final PendingResult pendingResult = goAsync();
-
-		new AsyncTask<Void, Void, Boolean>() {
-
-			MessageReceiver messageReceiver = null;
-			AbstractMessageModel messageModel = null;
-
-			@Override
-			protected void onPreExecute() {
-				super.onPreExecute();
-
-				messageReceiver = IntentDataUtil.getMessageReceiverFromIntent(context, intent);
-
-				if (messageReceiver != null) {
-					messageModel = IntentDataUtil.getMessageModelFromReceiver(intent, messageReceiver);
-				}
-			}
-
-			@Override
-			protected Boolean doInBackground(Void... params) {
-				if (messageModel != null) {
-					// we need to make sure there's a connection during delivery
-					lifetimeService.acquireConnection(TAG);
-
-					messageService.sendUserAcknowledgement(messageModel);
-					messageService.markMessageAsRead(messageModel, notificationService);
-
-					lifetimeService.releaseConnectionLinger(TAG, WEARABLE_CONNECTION_LINGER);
-
-					return true;
-				}
-				return false;
-			}
-
-			@Override
-			protected void onPostExecute(Boolean success) {
-				if (success != null) {
-					Toast.makeText(context, success ? R.string.message_acknowledged : R.string.an_error_occurred, Toast.LENGTH_LONG).show();
-				}
-
-				notificationService.cancel(messageReceiver);
-
-				pendingResult.finish();
-			}
-		}.execute();
-	}
-}

+ 0 - 83
app/src/main/java/ch/threema/app/receivers/DeclineActionBroadcastReceiver.java

@@ -1,83 +0,0 @@
-/*  _____ _
- * |_   _| |_  _ _ ___ ___ _ __  __ _
- *   | | | ' \| '_/ -_) -_) '  \/ _` |_
- *   |_| |_||_|_| \___\___|_|_|_\__,_(_)
- *
- * Threema for Android
- * Copyright (c) 2015-2021 Threema GmbH
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package ch.threema.app.receivers;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.AsyncTask;
-import android.widget.Toast;
-
-import ch.threema.app.R;
-import ch.threema.app.messagereceiver.MessageReceiver;
-import ch.threema.app.utils.IntentDataUtil;
-import ch.threema.storage.models.AbstractMessageModel;
-
-public class DeclineActionBroadcastReceiver extends ActionBroadcastReceiver {
-	@Override
-	public void onReceive(final Context context, final Intent intent) {
-
-		final PendingResult pendingResult = goAsync();
-
-		new AsyncTask<Void, Void, Boolean>() {
-
-			MessageReceiver messageReceiver = null;
-			AbstractMessageModel messageModel = null;
-
-			@Override
-			protected void onPreExecute() {
-				super.onPreExecute();
-
-				messageReceiver = IntentDataUtil.getMessageReceiverFromIntent(context, intent);
-
-				if (messageReceiver != null) {
-					messageModel = IntentDataUtil.getMessageModelFromReceiver(intent, messageReceiver);
-				}
-			}
-
-			@Override
-			protected Boolean doInBackground(Void... params) {
-				if (messageModel != null) {
-					// we need to make sure there's a connection during delivery
-					lifetimeService.acquireConnection(TAG);
-
-					messageService.sendUserDecline(messageModel);
-					messageService.markMessageAsRead(messageModel, notificationService);
-
-					lifetimeService.releaseConnectionLinger(TAG, WEARABLE_CONNECTION_LINGER);
-
-					return true;
-				}
-				return false;
-			}
-
-			@Override
-			protected void onPostExecute(Boolean success) {
-				if (success != null) {
-					Toast.makeText(context, success ?  R.string.message_declined : R.string.an_error_occurred, Toast.LENGTH_LONG).show();
-				}
-				notificationService.cancel(messageReceiver);
-
-				pendingResult.finish();
-			}
-		}.execute();
-	}
-}

+ 0 - 77
app/src/main/java/ch/threema/app/receivers/MarkReadActionBroadcastReceiver.java

@@ -1,77 +0,0 @@
-/*  _____ _
- * |_   _| |_  _ _ ___ ___ _ __  __ _
- *   | | | ' \| '_/ -_) -_) '  \/ _` |_
- *   |_| |_||_|_| \___\___|_|_|_\__,_(_)
- *
- * Threema for Android
- * Copyright (c) 2015-2021 Threema GmbH
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package ch.threema.app.receivers;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.AsyncTask;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import ch.threema.app.messagereceiver.MessageReceiver;
-import ch.threema.app.utils.IntentDataUtil;
-
-public class MarkReadActionBroadcastReceiver extends ActionBroadcastReceiver {
-	private static final Logger logger = LoggerFactory.getLogger(ActionBroadcastReceiver.class);
-
-	@Override
-	public void onReceive(final Context context, final Intent intent) {
-		final PendingResult pendingResult = goAsync();
-
-		new AsyncTask<Void, Void, Boolean>() {
-			MessageReceiver messageReceiver = null;
-
-			@Override
-			protected void onPreExecute() {
-				super.onPreExecute();
-
-				messageReceiver = IntentDataUtil.getMessageReceiverFromIntent(context, intent);
-			}
-
-			@Override
-			protected Boolean doInBackground(Void... params) {
-
-				if (messageReceiver != null) {
-					lifetimeService.acquireConnection(TAG);
-					messageService.markConversationAsRead(messageReceiver, notificationService);
-					lifetimeService.releaseConnectionLinger(TAG, WEARABLE_CONNECTION_LINGER);
-
-					return true;
-				}
-				return false;
-			}
-
-			@Override
-			protected void onPostExecute(Boolean success) {
-				if (success) {
-					logger.debug("Conversation read: " + messageReceiver.getUniqueIdString());
-				}
-
-				notificationService.cancel(messageReceiver);
-
-				pendingResult.finish();
-			}
-		}.execute();
-	}
-}
-

+ 0 - 110
app/src/main/java/ch/threema/app/receivers/ReplyActionBroadcastReceiver.java

@@ -1,110 +0,0 @@
-/*  _____ _
- * |_   _| |_  _ _ ___ ___ _ __  __ _
- *   | | | ' \| '_/ -_) -_) '  \/ _` |_
- *   |_| |_||_|_| \___\___|_|_|_\__,_(_)
- *
- * Threema for Android
- * Copyright (c) 2015-2021 Threema GmbH
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package ch.threema.app.receivers;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.content.Intent;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.widget.Toast;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import androidx.core.app.RemoteInput;
-import ch.threema.app.R;
-import ch.threema.app.ThreemaApplication;
-import ch.threema.app.messagereceiver.MessageReceiver;
-import ch.threema.app.utils.IntentDataUtil;
-import ch.threema.storage.models.AbstractMessageModel;
-
-public class ReplyActionBroadcastReceiver extends ActionBroadcastReceiver {
-	private static final Logger logger = LoggerFactory.getLogger(ReplyActionBroadcastReceiver.class);
-
-	@SuppressLint("StaticFieldLeak")
-	@Override
-	public void onReceive(final Context context, final Intent intent) {
-		if (!requiredInstances()) {
-			Toast.makeText(context, R.string.verify_failed, Toast.LENGTH_LONG).show();
-			return;
-		}
-
-		final PendingResult pendingResult = goAsync();
-
-		new AsyncTask<Void, Void, Boolean>() {
-			MessageReceiver messageReceiver = null;
-			AbstractMessageModel messageModel = null;
-			CharSequence message = null;
-
-			@Override
-			protected void onPreExecute() {
-				super.onPreExecute();
-
-				messageReceiver = IntentDataUtil.getMessageReceiverFromIntent(context, intent);
-
-				if (messageReceiver != null) {
-					messageModel = IntentDataUtil.getMessageModelFromReceiver(intent, messageReceiver);
-					message = getMessageText(intent);
-				}
-			}
-
-			@Override
-			protected Boolean doInBackground(Void... params) {
-				if (messageModel != null && message != null) {
-					// we need to make sure there's a connection during delivery
-					lifetimeService.acquireConnection(TAG);
-
-					try {
-						messageService.sendText(message.toString(), messageReceiver);
-						messageService.markConversationAsRead(messageReceiver, notificationService);
-						lifetimeService.releaseConnectionLinger(TAG, WEARABLE_CONNECTION_LINGER);
-						logger.debug("Message replied: " + messageModel.getUid());
-						return true;
-					} catch (Exception e) {
-						logger.error("Exception", e);
-					}
-				}
-				lifetimeService.releaseConnectionLinger(TAG, WEARABLE_CONNECTION_LINGER);
-				return false;
-			}
-
-			@Override
-			protected void onPostExecute(Boolean success) {
-				if (success != null) {
-					Toast.makeText(context, success ? R.string.message_sent : R.string.verify_failed, Toast.LENGTH_LONG).show();
-				}
-				notificationService.cancel(messageReceiver);
-
-				pendingResult.finish();
-			}
-		}.execute();
-	}
-
-	private CharSequence getMessageText(Intent intent) {
-		Bundle remoteInput =RemoteInput.getResultsFromIntent(intent);
-		if (remoteInput != null) {
-			return remoteInput.getCharSequence(ThreemaApplication.EXTRA_VOICE_REPLY);
-		}
-		return null;
-	}
-}

+ 1 - 0
app/src/main/java/ch/threema/app/services/BrowserDetectionService.java

@@ -31,6 +31,7 @@ public interface BrowserDetectionService {
 		OPERA,
 		EDGE,
 		SAFARI,
+		WEBTOP,
 		UNKNOWN,
 	}
 	Browser detectBrowser(String userAgent);

+ 3 - 1
app/src/main/java/ch/threema/app/services/BrowserDetectionServiceImpl.java

@@ -26,7 +26,9 @@ final public class BrowserDetectionServiceImpl implements BrowserDetectionServic
 	public Browser detectBrowser(String userAgent) {
 		if (userAgent != null && userAgent.length() > 0) {
 			final String desc = userAgent.toLowerCase().trim();
-			if (desc.contains("mozilla") && desc.contains("applewebkit")
+			if (desc.contains("threemadesktop")) {
+				return Browser.WEBTOP;
+			} else if (desc.contains("mozilla") && desc.contains("applewebkit")
 					&& desc.contains("chrome") && desc.contains("safari")
 					&& desc.contains("opr")) {
 				return Browser.OPERA;

+ 182 - 0
app/src/main/java/ch/threema/app/services/NotificationActionService.java

@@ -0,0 +1,182 @@
+/*  _____ _
+ * |_   _| |_  _ _ ___ ___ _ __  __ _
+ *   | | | ' \| '_/ -_) -_) '  \/ _` |_
+ *   |_| |_||_|_| \___\___|_|_|_\__,_(_)
+ *
+ * Threema for Android
+ * Copyright (c) 2021 Threema GmbH
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package ch.threema.app.services;
+
+import android.app.IntentService;
+import android.app.UiModeManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.widget.Toast;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.core.app.RemoteInput;
+import ch.threema.app.BuildConfig;
+import ch.threema.app.R;
+import ch.threema.app.ThreemaApplication;
+import ch.threema.app.managers.ServiceManager;
+import ch.threema.app.messagereceiver.MessageReceiver;
+import ch.threema.app.utils.IntentDataUtil;
+import ch.threema.app.utils.RuntimeUtil;
+import ch.threema.app.utils.TestUtil;
+import ch.threema.storage.models.AbstractMessageModel;
+
+public class NotificationActionService extends IntentService {
+
+	private static final Logger logger = LoggerFactory.getLogger(NotificationActionService.class);
+
+	private static final String TAG = "NotificationAction";
+	public static final String ACTION_REPLY = BuildConfig.APPLICATION_ID + ".REPLY";
+	public static final String ACTION_MARK_AS_READ = BuildConfig.APPLICATION_ID + ".MARK_AS_READ";
+	public static final String ACTION_ACK = BuildConfig.APPLICATION_ID + ".ACK";
+	public static final String ACTION_DEC = BuildConfig.APPLICATION_ID + ".DEC";
+
+	private static final int NOTIFICATION_ACTION_CONNECTION_LINGER = 1000 * 5;
+
+	private MessageService messageService;
+	private LifetimeService lifetimeService;
+	private NotificationService notificationService;
+
+	public NotificationActionService() {
+		super(TAG);
+
+		ServiceManager serviceManager = ThreemaApplication.getServiceManager();
+		if (serviceManager != null) {
+			try {
+				this.messageService = serviceManager.getMessageService();
+				this.lifetimeService = serviceManager.getLifetimeService();
+				this.notificationService = serviceManager.getNotificationService();
+			} catch (Exception e) {
+				logger.error("Exception", e);
+			}
+		}
+	}
+
+
+	@Override
+	protected void onHandleIntent(@Nullable Intent intent) {
+		if (intent != null) {
+			MessageReceiver messageReceiver = IntentDataUtil.getMessageReceiverFromIntent(this, intent);
+			if (messageReceiver != null) {
+				String action = intent.getAction();
+
+				if (action != null) {
+					AbstractMessageModel messageModel = IntentDataUtil.getMessageModelFromReceiver(intent, messageReceiver);
+
+					switch (action) {
+						case ACTION_REPLY:
+							if (reply(messageReceiver, intent)) {
+								return;
+							}
+							break;
+						case ACTION_MARK_AS_READ:
+							markAsRead(messageReceiver);
+							return;
+						case ACTION_ACK:
+							if (messageModel != null) {
+								ack(messageModel);
+								return;
+							}
+							break;
+						case ACTION_DEC:
+							if (messageModel != null) {
+								dec(messageModel);
+								return;
+							}
+							break;
+						default:
+							logger.info("Unknown action {}", action);
+					}
+				}
+			}
+		}
+		showToast(R.string.verify_failed);
+		logger.info("Failed to handle notification action");
+	}
+
+	private void ack(@NonNull AbstractMessageModel messageModel) {
+		lifetimeService.acquireConnection(TAG);
+
+		messageService.sendUserAcknowledgement(messageModel);
+		messageService.markMessageAsRead(messageModel, notificationService);
+
+		showToast(R.string.message_acknowledged);
+
+		lifetimeService.releaseConnectionLinger(TAG, NOTIFICATION_ACTION_CONNECTION_LINGER);
+	}
+
+	private void dec(@NonNull AbstractMessageModel messageModel) {
+		lifetimeService.acquireConnection(TAG);
+
+		messageService.sendUserDecline(messageModel);
+		messageService.markMessageAsRead(messageModel, notificationService);
+
+		showToast(R.string.message_declined);
+
+		lifetimeService.releaseConnectionLinger(TAG, NOTIFICATION_ACTION_CONNECTION_LINGER);
+	}
+
+	private boolean reply(@NonNull MessageReceiver messageReceiver, @NonNull Intent intent) {
+		Bundle results = RemoteInput.getResultsFromIntent(intent);
+
+		String message = results.getString(ThreemaApplication.EXTRA_VOICE_REPLY);
+		if (!TestUtil.empty(message)) {
+			lifetimeService.acquireConnection(TAG);
+
+			try {
+				messageService.sendText(message, messageReceiver);
+				messageService.markConversationAsRead(messageReceiver, notificationService);
+				notificationService.cancel(messageReceiver);
+
+				showToast(R.string.message_sent);
+				return true;
+			} catch (Exception e) {
+				logger.error("Failed to send message", e);
+			}
+			lifetimeService.releaseConnectionLinger(TAG, NOTIFICATION_ACTION_CONNECTION_LINGER);
+		}
+		logger.info("Reply message is empty");
+		return false;
+	}
+
+	private void markAsRead(@NonNull MessageReceiver messageReceiver) {
+		lifetimeService.acquireConnection(TAG);
+		messageService.markConversationAsRead(messageReceiver, notificationService);
+		lifetimeService.releaseConnectionLinger(TAG, NOTIFICATION_ACTION_CONNECTION_LINGER);
+		notificationService.cancel(messageReceiver);
+	}
+
+	private void showToast(final @StringRes int stringRes) {
+		UiModeManager uiModeManager = (UiModeManager) getSystemService(Context.UI_MODE_SERVICE);
+		if (uiModeManager != null && uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_CAR) {
+			logger.info("Toast suppressed due to car connection: {}", getString(stringRes));
+		} else {
+			RuntimeUtil.runOnUiThread(() -> Toast.makeText(NotificationActionService.this, stringRes, Toast.LENGTH_LONG).show());
+		}
+	}
+}

+ 65 - 66
app/src/main/java/ch/threema/app/services/NotificationServiceImpl.java

@@ -85,11 +85,7 @@ import ch.threema.app.messagereceiver.ContactMessageReceiver;
 import ch.threema.app.messagereceiver.GroupMessageReceiver;
 import ch.threema.app.messagereceiver.MessageReceiver;
 import ch.threema.app.notifications.NotificationBuilderWrapper;
-import ch.threema.app.receivers.AcknowledgeActionBroadcastReceiver;
-import ch.threema.app.receivers.DeclineActionBroadcastReceiver;
-import ch.threema.app.receivers.MarkReadActionBroadcastReceiver;
 import ch.threema.app.receivers.ReSendMessagesBroadcastReceiver;
-import ch.threema.app.receivers.ReplyActionBroadcastReceiver;
 import ch.threema.app.utils.ConfigUtils;
 import ch.threema.app.utils.DNDUtil;
 import ch.threema.app.utils.IntentDataUtil;
@@ -130,6 +126,7 @@ public class NotificationServiceImpl implements NotificationService {
 
 	private final NotificationManagerCompat notificationManagerCompat;
 	private final NotificationManager notificationManager;
+	private final int pendingIntentFlags;
 
 	private final LinkedList<ConversationNotification> conversationNotifications = new LinkedList<>();
 	private MessageReceiver visibleConversationReceiver;
@@ -199,6 +196,14 @@ public class NotificationServiceImpl implements NotificationService {
 		this.notificationManagerCompat = NotificationManagerCompat.from(context);
 		this.notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
 
+		// poor design by Google, as usual...
+		if (ThreemaApplication.getAppContext().getApplicationInfo().targetSdkVersion >= 31 &&
+			Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+			this.pendingIntentFlags = PendingIntent.FLAG_UPDATE_CURRENT | 0x02000000; // FLAG_MUTABLE
+		} else {
+			this.pendingIntentFlags = PendingIntent.FLAG_UPDATE_CURRENT;
+		}
+
 		ServiceManager serviceManager = ThreemaApplication.getServiceManager();
 		if (serviceManager != null) {
 			try {
@@ -485,50 +490,31 @@ public class NotificationServiceImpl implements NotificationService {
 			notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_USER_ACTION);
 			PendingIntent openPendingIntent = createPendingIntentWithTaskStack(notificationIntent);
 
-			// Create an intent for the ack action
-			// Intent for ack action
-			Intent ackIntent = new Intent(context, AcknowledgeActionBroadcastReceiver.class);
-			newestGroup.getMessageReceiver().prepareIntent(ackIntent);
-			ackIntent.putExtra(ThreemaApplication.INTENT_DATA_MESSAGE_ID, conversationNotification.getId());
+			/************* ANDROID AUTO **************/
 
-			PendingIntent ackPendingIntent = PendingIntent.getBroadcast(
-					context,
-					getRandomRequestCode(), // http://stackoverflow.com/questions/19031861/pendingintent-not-opening-activity-in-android-4-3
-					ackIntent,
-					PendingIntent.FLAG_UPDATE_CURRENT);
-
-			// Create an intent for the dec action
-			// Intent for dec action
-			Intent decIntent = new Intent(context, DeclineActionBroadcastReceiver.class);
-			newestGroup.getMessageReceiver().prepareIntent(decIntent);
-			decIntent.putExtra(ThreemaApplication.INTENT_DATA_MESSAGE_ID, conversationNotification.getId());
+			int conversationId = newestGroup.getNotificationId() * 10;
 
-			PendingIntent decPendingIntent = PendingIntent.getBroadcast(
-					context,
-					getRandomRequestCode(),
-					decIntent,
-					PendingIntent.FLAG_UPDATE_CURRENT);
-
-			// Intent for reply action
-			Intent replyIntent = new Intent(context, ReplyActionBroadcastReceiver.class);
-			newestGroup.getMessageReceiver().prepareIntent(replyIntent);
-			replyIntent.putExtra(ThreemaApplication.INTENT_DATA_MESSAGE_ID, conversationNotification.getId());
+			Intent replyIntent = new Intent(context, NotificationActionService.class);
+			replyIntent.setAction(NotificationActionService.ACTION_REPLY);
+			IntentDataUtil.addMessageReceiverToIntent(replyIntent, newestGroup.getMessageReceiver());
+			PendingIntent replyPendingIntent = PendingIntent.getService(context, conversationId, replyIntent, pendingIntentFlags);
 
-			PendingIntent replyPendingIntent = PendingIntent.getBroadcast(
-					context,
-					getRandomRequestCode(),
-					replyIntent,
-					PendingIntent.FLAG_UPDATE_CURRENT);
+			Intent markReadIntent = new Intent(context, NotificationActionService.class);
+			markReadIntent.setAction(NotificationActionService.ACTION_MARK_AS_READ);
+			IntentDataUtil.addMessageReceiverToIntent(markReadIntent, newestGroup.getMessageReceiver());
+			PendingIntent markReadPendingIntent = PendingIntent.getService(context, conversationId + 1, markReadIntent, pendingIntentFlags);
 
-			// Intent for "Mark read" action
-			Intent markReadIntent = new Intent(context, MarkReadActionBroadcastReceiver.class);
-			newestGroup.getMessageReceiver().prepareIntent(markReadIntent);
+			Intent ackIntent = new Intent(context, NotificationActionService.class);
+			ackIntent.setAction(NotificationActionService.ACTION_ACK);
+			IntentDataUtil.addMessageReceiverToIntent(ackIntent, newestGroup.getMessageReceiver());
+			ackIntent.putExtra(ThreemaApplication.INTENT_DATA_MESSAGE_ID, conversationNotification.getId());
+			PendingIntent ackPendingIntent = PendingIntent.getService(context, conversationId + 2, ackIntent, pendingIntentFlags);
 
-			PendingIntent markReadPendingIntent = PendingIntent.getBroadcast(
-				context,
-				getRandomRequestCode(),
-				markReadIntent,
-				PendingIntent.FLAG_UPDATE_CURRENT);
+			Intent decIntent = new Intent(context, NotificationActionService.class);
+			decIntent.setAction(NotificationActionService.ACTION_DEC);
+			IntentDataUtil.addMessageReceiverToIntent(decIntent, newestGroup.getMessageReceiver());
+			decIntent.putExtra(ThreemaApplication.INTENT_DATA_MESSAGE_ID, conversationNotification.getId());
+			PendingIntent decPendingIntent = PendingIntent.getService(context, conversationId + 3, decIntent, pendingIntentFlags);
 
 			long timestamp = System.currentTimeMillis();
 			boolean onlyAlertOnce = (timestamp - newestGroup.getLastNotificationDate()) < NOTIFY_AGAIN_TIMEOUT;
@@ -691,7 +677,9 @@ public class NotificationServiceImpl implements NotificationService {
 	private NotificationCompat.MessagingStyle getMessagingStyle(ConversationNotificationGroup group, ArrayList<ConversationNotification> notifications) {
 		String chatName = group.getName();
 		boolean isGroupChat = group.getMessageReceiver() instanceof GroupMessageReceiver;
-		Person.Builder builder = new Person.Builder().setName(context.getString(R.string.me_myself_and_i)).setKey(contactService.getUniqueIdString(contactService.getMe()));
+		Person.Builder builder = new Person.Builder()
+			.setName(context.getString(R.string.me_myself_and_i))
+			.setKey(contactService.getUniqueIdString(contactService.getMe()));
 
 		Bitmap avatar = contactService.getAvatar(contactService.getMe(), false);
 		if (avatar != null) {
@@ -702,11 +690,9 @@ public class NotificationServiceImpl implements NotificationService {
 
 		NotificationCompat.MessagingStyle messagingStyle = new NotificationCompat.MessagingStyle(me);
 
-		if (isGroupChat) {
-			// bug: setting a conversation title implies a group chat
-			messagingStyle.setConversationTitle(chatName);
-			messagingStyle.setGroupConversation(isGroupChat);
-		}
+		// bug: setting a conversation title implies a group chat
+		messagingStyle.setConversationTitle(chatName);
+		messagingStyle.setGroupConversation(isGroupChat);
 
 		for(int i = notifications.size() < MAXIMUM_RETAINED_MESSAGES ? notifications.size() - 1 : MAXIMUM_RETAINED_MESSAGES -1 ;
 		    i >= 0; i-- ) {
@@ -719,9 +705,11 @@ public class NotificationServiceImpl implements NotificationService {
 			// hack to show full name in non-group chats
 			if (!isGroupChat) {
 				if (person == null) {
-					person = new Person.Builder().setName(chatName).build();
+					person = new Person.Builder()
+						.setName(chatName).build();
 				} else {
-					person = person.toBuilder().setName(chatName).build();
+					person = person.toBuilder()
+						.setName(chatName).build();
 				}
 			}
 
@@ -764,6 +752,8 @@ public class NotificationServiceImpl implements NotificationService {
 
 	private void addConversationNotificationActions(NotificationCompat.Builder builder, PendingIntent replyPendingIntent, PendingIntent ackPendingIntent, PendingIntent markReadPendingIntent, ConversationNotification conversationNotification, int unreadMessagesCount, int unreadGroupsCount, String uniqueId, ConversationNotificationGroup newestGroup) {
 		// add action buttons
+		boolean showMarkAsReadAction = false;
+
 		if (preferenceService.isShowMessagePreview() && !hiddenChatsListService.has(uniqueId)) {
 			if (ConfigUtils.canDoGroupedNotifications()) {
 				RemoteInput remoteInput = new RemoteInput.Builder(ThreemaApplication.EXTRA_VOICE_REPLY)
@@ -784,12 +774,6 @@ public class NotificationServiceImpl implements NotificationService {
 				builder.addAction(replyAction);
 			}
 
-			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-				builder.addInvisibleAction(new NotificationCompat.Action.Builder(R.drawable.ic_mark_read_bitmap, context.getString(R.string.mark_read), markReadPendingIntent)
-					.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ)
-					.setShowsUserInterface(false).build());
-			}
-
 			if (newestGroup.getMessageReceiver() instanceof GroupMessageReceiver) {
 				builder.addAction(getMarkAsReadAction(markReadPendingIntent));
 			} else if (newestGroup.getMessageReceiver() instanceof ContactMessageReceiver) {
@@ -806,26 +790,41 @@ public class NotificationServiceImpl implements NotificationService {
 							context,
 							getRandomRequestCode(), // http://stackoverflow.com/questions/19031861/pendingintent-not-opening-activity-in-android-4-3
 							callActivityIntent,
-							PendingIntent.FLAG_UPDATE_CURRENT);
+							this.pendingIntentFlags);
 					if (unreadGroupsCount == 1 || ConfigUtils.canDoGroupedNotifications()) {
 						builder.addAction(
 							new NotificationCompat.Action.Builder(R.drawable.ic_call_white_24dp, context.getString(R.string.voip_return_call), callPendingIntent)
-								.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_CALL).build());
+								.setShowsUserInterface(true)
+								.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_CALL)
+								.build());
 					}
 				} else {
 					if (unreadMessagesCount == 1) {
 						builder.addAction(new NotificationCompat.Action.Builder(R.drawable.ic_thumb_up_white_24dp, context.getString(R.string.acknowledge), ackPendingIntent)
-								.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_UP).build());
+							.setShowsUserInterface(false)
+							.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_UP)
+							.build());
 					}
-					builder.addAction(getMarkAsReadAction(markReadPendingIntent));
+
+					showMarkAsReadAction = true;
 				}
 			}
 		}
+
+		if (showMarkAsReadAction) {
+			builder.addAction(getMarkAsReadAction(markReadPendingIntent));
+		} else {
+			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+				builder.addInvisibleAction(getMarkAsReadAction(markReadPendingIntent));
+			}
+		}
 	}
 
 	private NotificationCompat.Action getMarkAsReadAction(PendingIntent markReadPendingIntent) {
 		return new NotificationCompat.Action.Builder(R.drawable.ic_mark_read_bitmap, context.getString(R.string.mark_read_short), markReadPendingIntent)
-			.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ).build();
+			.setShowsUserInterface(false)
+			.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ)
+			.build();
 	}
 
 	private void createSingleNotification(ConversationNotificationGroup newestGroup,
@@ -1489,7 +1488,7 @@ public class NotificationServiceImpl implements NotificationService {
 
 				PackageManager packageManager = context.getPackageManager();
 				if (notificationIntent.resolveActivity(packageManager) != null) {
-					PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+					PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, this.pendingIntentFlags);
 					createPendingIntentWithTaskStack(notificationIntent);
 					builder.setContentIntent(pendingIntent);
 
@@ -1570,7 +1569,7 @@ public class NotificationServiceImpl implements NotificationService {
 
 		TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
 		stackBuilder.addNextIntentWithParentStack(intent);
-		return stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
+		return stackBuilder.getPendingIntent(0, this.pendingIntentFlags);
 	}
 
 	private PendingIntent getPendingIntentForActivity(Class<? extends Activity> activityClass) {
@@ -1591,7 +1590,7 @@ public class NotificationServiceImpl implements NotificationService {
 					context,
 					ThreemaApplication.UNSENT_MESSAGE_NOTIFICATION_ID,
 					sendIntent,
-					PendingIntent.FLAG_UPDATE_CURRENT);
+					this.pendingIntentFlags);
 
 			NotificationCompat.Action tryAgainAction =
 					new NotificationCompat.Action.Builder(R.drawable.ic_wear_full_retry,
@@ -1739,7 +1738,7 @@ public class NotificationServiceImpl implements NotificationService {
 		//make sure that pending intent is also cancelled to allow to check for active conversation notifications pre SDK 23
 		Intent intent = new Intent(context, ComposeMessageActivity.class);
 		if (id == ThreemaApplication.NEW_MESSAGE_NOTIFICATION_ID){
-			PendingIntent pendingConversationIntent = PendingIntent.getActivity(context, ThreemaApplication.NEW_MESSAGE_NOTIFICATION_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+			PendingIntent pendingConversationIntent = PendingIntent.getActivity(context, ThreemaApplication.NEW_MESSAGE_NOTIFICATION_ID, intent, this.pendingIntentFlags);
 			if (pendingConversationIntent != null){
 				pendingConversationIntent.cancel();
 			}

+ 2 - 1
app/src/main/java/ch/threema/app/voip/Config.java

@@ -36,7 +36,8 @@ public class Config {
 	@NonNull private final static String[] HW_AEC_EXCLUSION_LIST = new String[] {
 		"Fairphone;FP2",
 		"ZUK;ZUK Z1", // Ticket #286367
-        "bq;Aquaris X" // Ticket #494934
+        "bq;Aquaris X", // Ticket #494934
+		"samsung;SM-G970F", // Roman
 	};
 
 	/**

+ 14 - 0
app/src/main/java/ch/threema/app/webclient/adapters/SessionListAdapter.java

@@ -23,6 +23,7 @@ package ch.threema.app.webclient.adapters;
 
 import android.content.Context;
 import android.graphics.PorterDuff;
+import android.os.Build;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -38,6 +39,7 @@ import ch.threema.app.ThreemaApplication;
 import ch.threema.app.adapters.AbstractRecyclerAdapter;
 import ch.threema.app.services.BrowserDetectionService.Browser;
 import ch.threema.app.services.PreferenceService;
+import ch.threema.app.utils.ConfigUtils;
 import ch.threema.app.utils.LocaleUtil;
 import ch.threema.app.utils.TestUtil;
 import ch.threema.app.utils.ViewUtil;
@@ -233,10 +235,22 @@ public class SessionListAdapter extends AbstractRecyclerAdapter<WebClientSession
 					case EDGE:
 						browserId = R.drawable.browser_edge;
 						break;
+					case WEBTOP:
+						if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
+							browserId = R.drawable.browser_desktop;
+						} else {
+							if (ConfigUtils.getAppTheme(context) == ConfigUtils.THEME_DARK) {
+								browserId = R.drawable.browser_desktop_dark;
+							} else {
+								browserId = R.drawable.browser_desktop_light;
+							}
+						}
+						break;
 					default:
 						browserId = R.drawable.browser_unknown;
 						break;
 				}
+
 				ViewUtil.showAndSet(holder.browserIcon, browserId);
 
 				break;

+ 8 - 5
app/src/main/java/ch/threema/app/webclient/services/instance/message/receiver/ClientInfoRequestHandler.java

@@ -76,11 +76,14 @@ public class ClientInfoRequestHandler extends MessageReceiver {
 	@Override
 	protected void receive(Map<String, Value> message) throws MessagePackException {
 		logger.info("Received client information request");
-		Map<String, Value> data = this.getData(message, false, new String[] {
-			Protocol.ARGUMENT_USER_AGENT,
-			Protocol.ARGUMENT_BROWSER_NAME,
-			Protocol.ARGUMENT_BROWSER_VERSION,
-		});
+		final Map<String, Value> data = this.getData(
+			message,
+			false,
+			new String[] { Protocol.ARGUMENT_USER_AGENT }
+		);
+
+		// Note: Right now we only use the user agent for browser detection,
+		// not the browserName or browserVersion fields.
 
 		if (this.listener != null) {
 			// TODO: Store detected browser!

+ 10 - 0
app/src/main/res/drawable/browser_desktop.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="48dp"
+    android:height="48dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="m18.3221,16.7296c0.8693,0 1.5726,-0.7112 1.5726,-1.5805l0.0079,-7.9026c0,-0.8693 -0.7112,-1.5805 -1.5805,-1.5805H5.6779c-0.8693,0 -1.5805,0.7112 -1.5805,1.5805v7.9026c0,0.8693 0.7112,1.5805 1.5805,1.5805H2.5168v1.5805H21.4832V16.7296ZM5.6779,7.2464H18.3221V15.1491H5.6779Z"
+      android:strokeWidth="0.7902649"
+      android:fillColor="?attr/textColorSecondary"/>
+</vector>

+ 10 - 0
app/src/main/res/drawable/browser_desktop_dark.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="48dp"
+    android:height="48dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="m18.3221,16.7296c0.8693,0 1.5726,-0.7112 1.5726,-1.5805l0.0079,-7.9026c0,-0.8693 -0.7112,-1.5805 -1.5805,-1.5805H5.6779c-0.8693,0 -1.5805,0.7112 -1.5805,1.5805v7.9026c0,0.8693 0.7112,1.5805 1.5805,1.5805H2.5168v1.5805H21.4832V16.7296ZM5.6779,7.2464H18.3221V15.1491H5.6779Z"
+      android:strokeWidth="0.7902649"
+      android:fillColor="@color/dark_text_color_secondary"/>
+</vector>

+ 10 - 0
app/src/main/res/drawable/browser_desktop_light.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="48dp"
+    android:height="48dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="m18.3221,16.7296c0.8693,0 1.5726,-0.7112 1.5726,-1.5805l0.0079,-7.9026c0,-0.8693 -0.7112,-1.5805 -1.5805,-1.5805H5.6779c-0.8693,0 -1.5805,0.7112 -1.5805,1.5805v7.9026c0,0.8693 0.7112,1.5805 1.5805,1.5805H2.5168v1.5805H21.4832V16.7296ZM5.6779,7.2464H18.3221V15.1491H5.6779Z"
+      android:strokeWidth="0.7902649"
+      android:fillColor="@color/text_color_secondary"/>
+</vector>

+ 0 - 215
app/src/main/res/layout-v21/activity_verification_level.xml

@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
-	xmlns:tools="http://schemas.android.com/tools"
-	android:id="@+id/linear_block"
-	android:layout_width="match_parent"
-	android:layout_height="match_parent"
-	android:orientation="vertical"
-	xmlns:android="http://schemas.android.com/apk/res/android">
-
-	<include layout="@layout/toolbar_view" />
-
-	<ScrollView
-		android:layout_width="match_parent"
-		android:layout_height="match_parent"
-		android:clipToPadding="false"
-		android:background="?android:windowBackground">
-
-		<androidx.constraintlayout.widget.ConstraintLayout
-			android:id="@+id/constraint_layout"
-			android:layout_width="match_parent"
-			android:layout_height="wrap_content"
-			android:clipToPadding="false"
-			android:background="?android:windowBackground">
-
-			<TextView
-				android:id="@+id/verification_description"
-				android:layout_width="match_parent"
-				android:layout_height="wrap_content"
-				android:layout_marginEnd="16dp"
-				android:layout_marginStart="16dp"
-				android:layout_marginTop="16dp"
-				android:text="@string/verification_settings_desc"
-				android:textAppearance="@style/Threema.TextAppearance.Body1"
-				android:textColor="?android:textColorPrimary"
-				app:layout_constraintEnd_toEndOf="parent"
-				app:layout_constraintStart_toStartOf="parent"
-				app:layout_constraintTop_toTopOf="parent" />
-
-			<LinearLayout
-				android:layout_width="match_parent"
-				android:layout_height="wrap_content"
-				android:orientation="vertical"
-				android:clipToPadding="false"
-				app:layout_constraintTop_toBottomOf="@id/verification_description"
-				android:paddingTop="16dp"
-				android:paddingBottom="16dp">
-
-				<com.google.android.material.card.MaterialCardView
-					android:id="@+id/verification_level_3_container"
-					android:layout_width="match_parent"
-					android:layout_height="wrap_content"
-					android:layout_marginLeft="16dp"
-					android:layout_marginRight="16dp"
-					android:clickable="false"
-					android:focusable="false"
-					app:cardBackgroundColor="?attr/cardview_background"
-					app:cardCornerRadius="@dimen/cardview_border_radius"
-					app:cardElevation="4dp"
-					app:layout_constraintEnd_toEndOf="parent"
-					app:layout_constraintTop_toBottomOf="@id/verification_description">
-
-					<androidx.constraintlayout.widget.ConstraintLayout
-						android:layout_width="match_parent"
-						android:layout_height="wrap_content"
-						android:orientation="vertical">
-
-						<!-- Media -->
-						<ImageView
-							android:id="@+id/verification_level_3_img"
-							android:layout_width="0dp"
-							android:layout_height="wrap_content"
-							android:layout_gravity="center"
-							android:layout_margin="24dp"
-							android:adjustViewBounds="true"
-							android:contentDescription="@string/verification_level3_explain"
-							android:scaleType="centerCrop"
-							app:layout_constraintEnd_toEndOf="parent"
-							app:layout_constraintStart_toStartOf="parent"
-							app:layout_constraintTop_toTopOf="parent"
-							app:layout_constraintWidth_percent="0.4"
-							app:srcCompat="@drawable/ic_verification_full" />
-
-						<TextView
-							android:id="@+id/verification_level_3_txt"
-							android:layout_width="0dp"
-							android:layout_height="wrap_content"
-							android:layout_gravity="center"
-							android:layout_margin="24dp"
-							app:layout_constraintWidth_percent="0.8"
-							android:gravity="center"
-							android:text="@string/verification_level3_explain"
-							android:textAppearance="@style/Threema.TextAppearance.Body1"
-							android:textColor="?android:attr/textColorSecondary"
-							app:layout_constraintEnd_toEndOf="parent"
-							app:layout_constraintStart_toStartOf="parent"
-							app:layout_constraintBottom_toBottomOf="parent"
-							app:layout_constraintTop_toBottomOf="@id/verification_level_3_img" />
-
-					</androidx.constraintlayout.widget.ConstraintLayout>
-
-				</com.google.android.material.card.MaterialCardView>
-
-				<com.google.android.material.card.MaterialCardView
-					android:id="@+id/verfication_level_2_container"
-					android:layout_width="match_parent"
-					android:layout_height="wrap_content"
-					android:layout_margin="16dp"
-					android:clickable="false"
-					android:focusable="false"
-					app:cardBackgroundColor="?attr/cardview_background"
-					app:cardCornerRadius="@dimen/cardview_border_radius"
-					app:cardElevation="4dp">
-
-					<androidx.constraintlayout.widget.ConstraintLayout
-						android:layout_width="match_parent"
-						android:layout_height="wrap_content"
-						android:orientation="vertical">
-
-						<!-- Media -->
-						<ImageView
-							android:id="@+id/verification_level_2_img"
-							android:layout_width="0dp"
-							android:layout_height="wrap_content"
-							android:layout_gravity="center"
-							android:layout_margin="24dp"
-							android:adjustViewBounds="true"
-							android:contentDescription="@string/verification_level2_explain"
-							android:scaleType="centerCrop"
-							app:layout_constraintEnd_toEndOf="parent"
-							app:layout_constraintStart_toStartOf="parent"
-							app:layout_constraintTop_toTopOf="parent"
-							app:layout_constraintWidth_percent="0.4"
-							app:srcCompat="@drawable/ic_verification_server" />
-
-						<TextView
-							android:id="@+id/verification_level_2_txt"
-							android:layout_width="0dp"
-							android:layout_height="wrap_content"
-							android:layout_gravity="center"
-							android:layout_margin="24dp"
-							app:layout_constraintWidth_percent="0.8"
-							android:gravity="center"
-							android:text="@string/verification_level2_explain"
-							android:textAppearance="@style/Threema.TextAppearance.Body1"
-							android:textColor="?android:attr/textColorSecondary"
-							app:layout_constraintEnd_toEndOf="parent"
-							app:layout_constraintStart_toStartOf="parent"
-							app:layout_constraintBottom_toBottomOf="parent"
-							app:layout_constraintTop_toBottomOf="@id/verification_level_2_img" />
-
-					</androidx.constraintlayout.widget.ConstraintLayout>
-
-				</com.google.android.material.card.MaterialCardView>
-
-				<com.google.android.material.card.MaterialCardView
-					android:id="@+id/verfication_level_1_container"
-					android:layout_width="match_parent"
-					android:layout_height="wrap_content"
-					android:layout_marginLeft="16dp"
-					android:layout_marginRight="16dp"
-					android:clickable="false"
-					android:focusable="false"
-					app:cardBackgroundColor="?attr/cardview_background"
-					app:cardCornerRadius="@dimen/cardview_border_radius"
-					app:cardElevation="4dp">
-
-					<androidx.constraintlayout.widget.ConstraintLayout
-						android:layout_width="match_parent"
-						android:layout_height="wrap_content"
-						android:orientation="vertical">
-
-						<!-- Media -->
-						<ImageView
-							android:id="@+id/verification_level_1_img"
-							android:layout_width="0dp"
-							android:layout_height="wrap_content"
-							android:layout_gravity="center"
-							android:layout_margin="24dp"
-							android:adjustViewBounds="true"
-							android:contentDescription="@string/verification_level1_explain"
-							android:scaleType="centerCrop"
-							app:layout_constraintEnd_toEndOf="parent"
-							app:layout_constraintStart_toStartOf="parent"
-							app:layout_constraintTop_toTopOf="parent"
-							app:layout_constraintWidth_percent="0.4"
-							app:srcCompat="@drawable/ic_verification_none" />
-
-						<TextView
-							android:id="@+id/verification_level_1_txt"
-							android:layout_width="0dp"
-							android:layout_height="wrap_content"
-							android:layout_gravity="center"
-							android:layout_margin="24dp"
-							app:layout_constraintWidth_percent="0.8"
-							android:gravity="center"
-							android:text="@string/verification_level1_explain"
-							android:textAppearance="@style/Threema.TextAppearance.Body1"
-							android:textColor="?android:attr/textColorSecondary"
-							app:layout_constraintEnd_toEndOf="parent"
-							app:layout_constraintStart_toStartOf="parent"
-							app:layout_constraintBottom_toBottomOf="parent"
-							app:layout_constraintTop_toBottomOf="@id/verification_level_1_img" />
-
-					</androidx.constraintlayout.widget.ConstraintLayout>
-
-				</com.google.android.material.card.MaterialCardView>
-
-			</LinearLayout>
-
-		</androidx.constraintlayout.widget.ConstraintLayout>
-
-	</ScrollView>
-
-</LinearLayout>

+ 6 - 5
app/src/main/res/layout/item_user_list_directory_header.xml

@@ -23,6 +23,8 @@
 			android:layout_height="@dimen/avatar_size_small"
 			android:clickable="false"
 			app:srcCompat="@drawable/ic_business"
+			app:tint="?attr/textColorSecondary"
+			android:importantForAccessibility="no"
 			android:visibility="visible"
 			android:focusable="false"/>
 
@@ -45,8 +47,7 @@
 			android:ellipsize="marquee"
 			android:singleLine="true"
 			android:text="Company"
-			android:textAppearance="?android:attr/textAppearanceMedium"
-			android:textColor="?android:textColorPrimary"/>
+			android:textAppearance="@style/Threema.TextAppearance.List.FirstLine.Bold" />
 
 		<TextView
 			android:id="@+id/subject"
@@ -58,7 +59,7 @@
 			android:fontFamily="sans-serif-light"
 			android:singleLine="true"
 			android:text="@string/directory_search"
-			android:textAppearance="?android:attr/textAppearanceSmall"/>
+			android:textAppearance="@style/Threema.TextAppearance.List.SecondLine"/>
 
 	</RelativeLayout>
 
@@ -71,9 +72,9 @@
 		android:layout_alignParentRight="true"
 		android:layout_marginLeft="16dp"
 		app:srcCompat="@drawable/ic_keyboard_arrow_right_black_24dp"
-		android:tint="?attr/textColorSecondary"
 		android:layout_centerVertical="true"
-		android:visibility="visible"/>
+		android:visibility="visible"
+		app:tint="?attr/textColorSecondary" />
 
 </RelativeLayout>
 

+ 2 - 2
app/src/main/res/layout/item_webclient_session_list.xml

@@ -57,8 +57,8 @@
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
 			android:layout_centerVertical="true"
-			android:layout_marginLeft="12dp"
-			android:layout_marginRight="12dp"
+			android:layout_marginLeft="16dp"
+			android:layout_marginRight="16dp"
 			android:layout_toLeftOf="@+id/connection_status"
 			android:layout_toRightOf="@+id/icon_container"
 			android:layout_alignWithParentIfMissing="true"

+ 25 - 25
app/src/main/res/values-ca/strings.xml

@@ -37,7 +37,7 @@
     <string name="prefs_sum_sync_contacts_on">Sincronitzar els usuaris de Threema amb la llibreta d\'adreces del vostre dispositiu</string>
     <string name="prefs_sum_sync_contacts_off">No sincronitzar els usuaris de Threema amb la llibreta d\'adreces del vostre dispositiu</string>
     <string name="prefs_title_sync_contacts">Sincr. contactes</string>
-    <string name="prefs_sum_block_unknown_off">Tothom us pot enviar un missatge. Els contactes nous s\'afegiran automàticament 
+    <string name="prefs_sum_block_unknown_off">Tothom us pot enviar un missatge. Els contactes nous s\'afegiran automàticament
 quan arribi el primer missatge.</string>
     <string name="prefs_sum_block_unknown_on">Només la gent de la vostra llista de contactes us pot enviar un missatge.</string>
     <string name="prefs_title_block_unknown">Bloquejar desconeguts</string>
@@ -129,7 +129,7 @@ per aquesta ID. Això significa que algú ha manipulat el codi escanejat, i que
     <string name="whoaaa">Notícia de Threema</string>
     <string name="really_delete_message_title">Eliminar missatge</string>
     <string name="really_delete_thread">Eliminar xat</string>
-    <string name="really_delete_thread_message" tools:ignore="PluralsCandidate">Realment voleu eliminar %d xat(s)? No podreu recuperar 
+    <string name="really_delete_thread_message" tools:ignore="PluralsCandidate">Realment voleu eliminar %d xat(s)? No podreu recuperar
 els missatges.</string>
     <string name="really_delete_contact">Realment voleu eliminar aquest contacte i tots els missatges associats?</string>
     <string name="image_placeholder">Imatge</string>
@@ -162,12 +162,12 @@ els missatges.</string>
     <string name="password_hint">Contrasenya</string>
     <string name="generating_backup_data">Generant dades de còpia de seguretat</string>
     <string name="backup_id_title">La vostra exportació d\'ID</string>
-    <string name="backup_id_summary">La cadena de text o el codi QR mostrats a sobre, juntament amb la contrasenya que heu 
-escollit, poden ser utilitzats per restaurar la vostra ID en un altre dispositiu. Hauríeu de copiar-lo en un lloc adient, compartir-lo per 
+    <string name="backup_id_summary">La cadena de text o el codi QR mostrats a sobre, juntament amb la contrasenya que heu
+escollit, poden ser utilitzats per restaurar la vostra ID en un altre dispositiu. Hauríeu de copiar-lo en un lloc adient, compartir-lo per
 correu electrònic o escanejar el codi QR utilitzant un altre dispositiu.</string>
     <string name="support">Ajuda</string>
     <string name="support_url">https://threema.ch/android/support/</string>
-    <string name="backup_share_content">La següent cadena de text es pot utilitzar conjuntament amb la contrasenya escollida per 
+    <string name="backup_share_content">La següent cadena de text es pot utilitzar conjuntament amb la contrasenya escollida per
 restaurar la vostra ID de Threema.</string>
     <string name="backup_share_subject">Exportació d\'ID de Threema per</string>
     <string name="add_attachment">Nou Adjunt</string>
@@ -178,7 +178,7 @@ restaurar la vostra ID de Threema.</string>
     <string name="prefs_title_masterkey_passphrase">Contrasenya</string>
     <string name="setting_masterkey_passphrase">Configurant la contrasenya de la clau mestra</string>
     <string name="masterkey_passphrase_title">Contrasenya de la Clau Mestra</string>
-    <string name="masterkey_passphrase_summary">Definiu una contrasenya per protegir la vostra clau mestra. Tingueu en compte 
+    <string name="masterkey_passphrase_summary">Definiu una contrasenya per protegir la vostra clau mestra. Tingueu en compte
 que l\'haureu d\'entrar cada vegada que Threema es reinicialitzi.</string>
     <string name="masterkey_passphrase_again_summary">Torneu a entrar la contrasenya</string>
     <string name="masterkey_passphrase_hint">Contrasenya</string>
@@ -199,7 +199,7 @@ que l\'haureu d\'entrar cada vegada que Threema es reinicialitzi.</string>
 la clau.</string>
     <string name="masterkey_unlocking">Desbloquejant la clau mestra</string>
     <string name="verify_phonecall_text">Demanar una trucada</string>
-    <string name="prepare_call_message">Si procediu, intentarem trucar-vos immediatament. El vostre codi de verificació 
+    <string name="prepare_call_message">Si procediu, intentarem trucar-vos immediatament. El vostre codi de verificació
 us serà llegit dues vegades. Tingueu en compte que només farem un intent, per tant assegureu-vos que esteu a punt abans
 de continuar.</string>
     <string name="enter_code_hint">Entreu el codi</string>
@@ -234,7 +234,7 @@ de continuar.</string>
     <string name="masterkey_is_unlocked">La clau mestra està desbloquejada</string>
     <string name="file_too_large">El fitxer és més gran que el màxim de 50 MB</string>
     <string name="deleting_thread">Esborrant el xat</string>
-    <string name="enter_serial_body">Entreu la vostra clau de llicència de la botiga per obtenr la vostra clau: 
+    <string name="enter_serial_body">Entreu la vostra clau de llicència de la botiga per obtenr la vostra clau:
 https://shop.threema.ch/retrieve_keys</string>
     <string name="enter_serial_title">Desbloquejar Threema</string>
     <string name="serial_required_want_exit">La clau de llicència no és vàlida. Voleu intentar-ho de nou o tancar Threema?</string>
@@ -263,15 +263,15 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="new_unprocessed_messages">Nous missatges disponibles</string>
     <string name="new_unprocessed_messages_description">Toqueu per rebre i veure els nous missatges entrants.</string>
     <string name="prefs_title_masterkey_notification_newmsg">Notificacions de missatges nous</string>
-    <string name="prefs_masterkey_notification_newmsg_off">Els missatges nous no disparen una notificació quan la clau 
+    <string name="prefs_masterkey_notification_newmsg_off">Els missatges nous no disparen una notificació quan la clau
 mestra està bloquejada</string>
-    <string name="prefs_masterkey_notification_newmsg_on">Els missatges nous disparen una notificació genèrica quan la clau 
+    <string name="prefs_masterkey_notification_newmsg_on">Els missatges nous disparen una notificació genèrica quan la clau
 mestra està bloquejada</string>
     <string name="chat_history_attached">S\'ha adjuntat el registre de la conversa.</string>
     <string name="new_message">1 nou missatge</string>
     <string name="new_messages">nous missatges</string>
     <string name="backup_data_title">Còpia de les dades</string>
-    <string name="backup_data_password_msg">Les vostres dades es guardaran en un fitxer ZIP en la vostra memòria interna USB i podran ser restaurades en qualsevols dispositiu Android. Entreu una contrasenya per protegir 
+    <string name="backup_data_password_msg">Les vostres dades es guardaran en un fitxer ZIP en la vostra memòria interna USB i podran ser restaurades en qualsevols dispositiu Android. Entreu una contrasenya per protegir
 les dades de la vostra còpia de seguretat.</string>
     <string name="restore_data_password_msg">Entreu la contrasenya que vau utilitzar per crear aquesta còpia de seguretat.</string>
     <string name="backup_data_media">Incloure fitxers multimèdia grans (vídeo, documents, fotos de mida original)</string>
@@ -339,7 +339,7 @@ les dades de la vostra còpia de seguretat.</string>
     <string name="can_not_send_no_group_members">No podeu enviar un missatge a un grup buit</string>
     <string name="you_are_not_a_member_of_this_group">No sou membre d\'aquest grup</string>
     <string name="can_not_delete_not_valid">No es pot eliminar un objecte no vàlid</string>
-    <string name="can_not_delete_contact_until_in_group">El contacte continua essent un membre o creador d\'un grup 
+    <string name="can_not_delete_contact_until_in_group">El contacte continua essent un membre o creador d\'un grup
 de conversa i per això no pot ser eliminat. Sortiu o elimineu tots els grup que incloguin aquest contacte i torneu-ho a
 intentar.</string>
     <string name="can_not_delete_contact">No es pot eliminar el contacte</string>
@@ -352,7 +352,7 @@ intentar.</string>
     <string name="prefs_title_black_list">Llista negra</string>
     <string name="prefs_sum_black_list">Els missatges de les ID llistades aquí s\'ignoraran.</string>
     <string name="verified">Verificat</string>
-    <string name="want_to_add_to_exclude_list">Aquest contacte està enllaçat amb una entrada de la llibreta d\'adreces del vostre telèfon. 
+    <string name="want_to_add_to_exclude_list">Aquest contacte està enllaçat amb una entrada de la llibreta d\'adreces del vostre telèfon.
 Si l\'elimineu de Threema tornarà a aparèixer després d\'una sincronització de contactes.\nVoleu excloure\'l de la sincronització?</string>
     <string name="no">No</string>
     <string name="yes">Sí</string>
@@ -364,7 +364,7 @@ Si l\'elimineu de Threema tornarà a aparèixer després d\'una sincronització
     <string name="prefs_contact_list_title">Llista de contactes</string>
     <string name="prefs_default_contact_picture_colored">Fotos dels contactes</string>
     <string name="prefs_show_inactive_contacts">Mostrar IDs inactives</string>
-    <string name="prefs_sum_default_contact_picture_colored_on">Mostrar contenidors multicolor si no hi ha foto 
+    <string name="prefs_sum_default_contact_picture_colored_on">Mostrar contenidors multicolor si no hi ha foto
 de contacte</string>
     <string name="prefs_sum_default_contact_picture_colored_off">Utilitzar contenidors grisos si no hi ha foto de contacte</string>
     <string name="prefs_sum_show_inactive_contacts_on">Mostrar totes les ID de Threema a la llista de contactes</string>
@@ -648,20 +648,20 @@ de contacte</string>
 el parell de claus associades amb la vostra nova i única ID de Threema. El parell de claus està format per una <b>clau pública</b> que es distribueix als
 vostres amics i una <b>clau privada</b> que s\'emmagatzema de forma segura al vostres telèfon.
 Els vostres amics xifraran els missatges que us enviïn amb la vostra clau pública. Només el propietari de la clau privada i ningú més és capaç de desxifrar aquests missatges.</string>
-    <string name="new_wizard_info_id">També heu creat un parell de claus. La clau pública s\'ha transmès de forma segura als nostres 
+    <string name="new_wizard_info_id">També heu creat un parell de claus. La clau pública s\'ha transmès de forma segura als nostres
 servidors. La clau privada mai surt del vostre dispositiu. Això assegura que ningú més pot llegir els vostres missatges.</string>
-    <string name="new_wizard_info_sync_contacts">Si activeu aquesta opció, Threema xifra unidireccionalment (hashes) les adreces de correu electrònic i els números de telèfon 
-abans d\'enviar-los al servidor per buscar contactes coincidents. Nosaltres no guardem cap 
+    <string name="new_wizard_info_sync_contacts">Si activeu aquesta opció, Threema xifra unidireccionalment (hashes) les adreces de correu electrònic i els números de telèfon
+abans d\'enviar-los al servidor per buscar contactes coincidents. Nosaltres no guardem cap
 dada de la llibreta d\'adreces.</string>
-    <string name="new_wizard_info_link">Facilitant el vostre número de telèfon i adreça de correu electrònic, Threema pot ajudar els vostres amics 
-a trobar-vos automàticament si us tenen a la seva llibreta d\'adreces del telèfon. Les dades s\'emmagatzemaran d\'una 
-forma xifrada unidireccionalment (hashed) en el nostre servidor. Simplement podeu obviar aquest pas si voleu utilitzar Threema 
+    <string name="new_wizard_info_link">Facilitant el vostre número de telèfon i adreça de correu electrònic, Threema pot ajudar els vostres amics
+a trobar-vos automàticament si us tenen a la seva llibreta d\'adreces del telèfon. Les dades s\'emmagatzemaran d\'una
+forma xifrada unidireccionalment (hashed) en el nostre servidor. Simplement podeu obviar aquest pas si voleu utilitzar Threema
 de forma completament anònima.</string>
-    <string name="new_wizard_info_link_phone_only">Facilitant el vostre número de telèfon, Threema pot ajudar els vostres amics 
-a trobar-vos automàticament si us tenen a la seva llibreta d\'adreces del telèfon. El número s\'emmagatzemarà d\'una 
-forma xifrada unidireccionalment (hashed) en el nostre servidor. Simplement podeu obviar aquest pas si voleu utilitzar Threema 
+    <string name="new_wizard_info_link_phone_only">Facilitant el vostre número de telèfon, Threema pot ajudar els vostres amics
+a trobar-vos automàticament si us tenen a la seva llibreta d\'adreces del telèfon. El número s\'emmagatzemarà d\'una
+forma xifrada unidireccionalment (hashed) en el nostre servidor. Simplement podeu obviar aquest pas si voleu utilitzar Threema
 de forma completament anònima.</string>
-    <string name="new_wizard_info_nickname">El sobrenom s\'utilitza a les notificacions push en alguns dispositius com una forma addicional per identificar-vos als usuaris que no us tenen encara a la seva llibreta d\'adreces. Recomanem 
+    <string name="new_wizard_info_nickname">El sobrenom s\'utilitza a les notificacions push en alguns dispositius com una forma addicional per identificar-vos als usuaris que no us tenen encara a la seva llibreta d\'adreces. Recomanem
 donar només el vostre nom o un pseudònim. Si no definiu un sobrenom utilitzarem la vostra ID de Threema per defecte.</string>
     <string name="not_linked">sense enllaçar</string>
     <string name="linked">enllaçada</string>
@@ -874,7 +874,7 @@ donar només el vostre nom o un pseudònim. Si no definiu un sobrenom utilitzare
     <string name="no_matching_work_contacts">No s\'han trobat contactes de Threema Work verificats per l\'administrador</string>
     <string name="all">Tots</string>
     <string name="webclient_session_stop_all">Tancar tots</string>
-    <string name="webclient_running_sessions">%d sessió(ns) de Threema Web actives</string>
+    <string name="webclient_running_sessions">%d sessió(ns) actives</string>
     <string name="passphrase_service_name">Contrasenya del servei</string>
     <string name="passphrase_service_description">Notificació quan la contrasenya s\'ha desbloquejat</string>
     <string name="webclient_service_description">Notificació quan una sessió de Threema Web està activa</string>

+ 128 - 153
app/src/main/res/values-cs/strings.xml

@@ -44,7 +44,7 @@
     <string name="prefs_title_typing_indicator">Odesílat indikaci psaní</string>
     <string name="prefs_media_title">Média a úložiště</string>
     <string name="prefs_sum_media_title">Nastavení médií a úložiště</string>
-    <string name="prefs_image_size">Rozměr obrázků</string>
+    <string name="prefs_image_size">Rozměr obrázku</string>
     <string name="prefs_notification_sound">Zvuk oznámení</string>
     <string name="prefs_sum_notification_sound">Výchozí systémový</string>
     <string name="prefs_vibrate">Vibrace</string>
@@ -190,7 +190,7 @@
     <string name="masterkey_body">Váš hlavní klíč aplikace Threema je chráněn heslem. Abyste jej mohli odemknout, musíte toto heslo zadat.</string>
     <string name="masterkey_unlocking">Odemykání hlavního klíče</string>
     <string name="verify_phonecall_text">Požádat o hovor</string>
-    <string name="prepare_call_message">Budete-li pokračovat, pokusíme se Vám okamžitě zavolat. Váš ověřovací kód vám bude nadiktován dvakrát. Budete mít pouze jeden pokus, proto prosím, ujistěte se, že jste připraveni (máte tužku a papír.)</string>
+    <string name="prepare_call_message">Budete‑li pokračovat, pokusíme se vám okamžitě zavolat. Váš ověřovací kód vám bude nadiktován dvakrát. Budete mít pouze jeden pokus, proto se prosím ujistěte, že jste připraveni, než začnete.</string>
     <string name="enter_code_hint">Zadejte kód</string>
     <string name="enter_code_sum">Zadejte prosím kód z ověřovací SMS nebo z telefonního hovoru.</string>
     <string name="no_matching_contacts">Nebyly nalezeny žádné kontakty.</string>
@@ -258,8 +258,7 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="new_message">1 nová zpráva</string>
     <string name="new_messages">nové zprávy</string>
     <string name="backup_data_title">Záloha dat</string>
-    <string name="backup_data_password_msg">"Vaše data budou komprimována do ZIP souboru na vašem interním úložišti a mohou být obnovena na libovolném Android zařízení. Zadejte prosím heslo, které bude chránit Vaši zálohu dat.
-"</string>
+    <string name="backup_data_password_msg">Vaše data budou komprimována do souboru ZIP na vašem vnitřním úložišti a mohou být obnovena na libovolném Android zařízení. Zadejte prosím heslo, které bude chránit zálohu vašich dat.</string>
     <string name="restore_data_password_msg">Zadejte heslo, které bylo použito při tvorbě této zálohy.</string>
     <string name="backup_data_media">Zahrnout i velké mediální soubory (videa, dokumenty, původní velikost obrázků)</string>
     <string name="backup_data_new">Vytvořit zálohu dat</string>
@@ -283,7 +282,7 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="prefs_group_notifications">Skupinové konverzace</string>
     <string name="add_group_members_list">Členové skupiny</string>
     <string name="group_select_at_least_two">Chcete‑li pokračovat, musíte vybrat alespoň jednoho člena</string>
-    <string name="group_select_max" tools:ignore="PluralsCandidate">Nemůžete vybrat více než %1$d členů skupiny</string>
+    <string name="group_select_max" tools:ignore="PluralsCandidate">Nemůžete vybrat více než %1$d členů skupiny</string>
     <string name="search">Najít</string>
     <string name="hint_search_keyword">Najít klíčové slovo</string>
     <string name="add_group_owner">Zakladatel skupiny</string>
@@ -315,8 +314,8 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="no_recent_conversations">Konverzace nenalezeny</string>
     <string name="save_changes">Uložit</string>
     <string name="group_created_confirm">Skupina byla úspěšně vytvořena</string>
-    <string name="creating_group">Vytvoření skupiny</string>
-    <string name="updating_group">Úprava skupiny</string>
+    <string name="creating_group">Probíhá vytváření skupiny</string>
+    <string name="updating_group">Probíhá úprava skupiny</string>
     <string name="status_create_group">Skupina byla vytvořena.</string>
     <string name="status_rename_group">Skupina byla přejmenována na: „%1$s“</string>
     <string name="status_group_new_photo">Skupina byla upravena.</string>
@@ -351,7 +350,7 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="prefs_sum_default_contact_picture_colored_on">Pokud ke kontaktu není přiřazen obrázek, budou zobrazeny vícebarevné zástupné symboly</string>
     <string name="prefs_sum_default_contact_picture_colored_off">Pokud ke kontaktu není přiřazen obrázek, budou použity šedé zástupné symboly</string>
     <string name="prefs_sum_show_inactive_contacts_on">Zobrazí ve vašem seznamu kontaktů všechna Threema ID</string>
-    <string name="prefs_sum_show_inactive_contacts_off">Skryje neaktivní nebo odvolaná Threema ID</string>
+    <string name="prefs_sum_show_inactive_contacts_off">Skryje neaktivní nebo zrušená/odvolaná Threema ID</string>
     <string name="contact_sorting_first_name">Podle jména</string>
     <string name="contact_sorting_last_name">Podle příjmení</string>
     <string name="contact_format_first_name_last_name">Jméno Příjmení</string>
@@ -365,13 +364,13 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="do_unlink_contact">Odpojit kontakt</string>
     <string name="do_choose_other_contact">Vyberte další kontakt</string>
     <string name="touch_to_link">(žádný)</string>
-    <string name="prefs_validate_contacts">Ověření odkazů na kontakty</string>
-    <string name="prefs_validate_contacts_loading">Ověřuji odkazy na kontakty</string>
-    <string name="prefs_sum_validate_contacts">Ověří provázanost Threema kontaktů s Android adresářem</string>
+    <string name="prefs_validate_contacts">Ověřit odkazy na kontakty</string>
+    <string name="prefs_validate_contacts_loading">Ověřují se odkazy na kontakty</string>
+    <string name="prefs_sum_validate_contacts">Ověří provázanost Threema kontaktů s Android adresářem</string>
     <string name="prefs_title_fullscreen_ime">Celoobrazovková klávesnice</string>
-    <string name="prefs_sum_fullscreen_ime_on">Pokud je zařízení v poloze na šířku, klávesnice zakrývá celou plochu. Zobrazen je pouze text psané zprávy.</string>
+    <string name="prefs_sum_fullscreen_ime_on">Pokud bude zařízení v poloze na šířku, klávesnice zakryje celou plochu</string>
     <string name="prefs_sum_fullscreen_ime_off">Pokud zbývá místo, zobrazí se náhled konverzace nad klávesnicí</string>
-    <string name="add_acount_from_within_threema">"Upravuje Vaše změny související s Threema ID
+    <string name="add_acount_from_within_threema">"Spravujte své Threema ID přímo v aplikaci Threema.
 "</string>
     <string name="save_image">Uložit obrázek</string>
     <string name="share_image">Sdílet obrázek</string>
@@ -386,7 +385,7 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="title_edit_distribution_list">Upravit distribuční seznam</string>
     <string name="really_delete_distribution_list">Odstranit distribuční seznam</string>
     <string name="really_delete_distribution_list_message">Skutečně si přejete odstranit tento seznam včetně všech zpráv, které obsahuje?</string>
-    <string name="enter_distribution_list_name">Zvol jméno pro tento seznam</string>
+    <string name="enter_distribution_list_name">Zvolte název pro tento seznam</string>
     <string name="distribution_list">Distribuční seznam</string>
     <string name="title_tab_distribution_list">Distribuční seznamy</string>
     <string name="no_matching_distribution_lists">Žádné odpovídající distribuční seznamy</string>
@@ -395,9 +394,9 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="push_not_available_text">Na vašem zařízení nebyla nalezena služba push, protože v něm nejsou nainstalovány Služby Google Play nebo nejsou aktuální. Aplikace Threema bude kontrolovat nové zprávy každých 15 minut.</string>
     <string name="backup_in_progress">Vytváří se záloha</string>
     <string name="backup_or_restore_success_body">Záloha dat proběhla úspěšně</string>
-    <string name="backup_or_restore_error">Threema zálohy</string>
-    <string name="backup_or_restore_error_body">Data se nezdařilo zazálohovat</string>
-    <string name="could_not_download_message">Nelze stáhnout zprávu</string>
+    <string name="backup_or_restore_error">Threema záloha</string>
+    <string name="backup_or_restore_error_body">Zálohování neproběhlo úspěšně</string>
+    <string name="could_not_download_message">Zprávu se nezdařilo stáhnout</string>
     <string name="info">Informace</string>
     <string name="resync_group">Synchronizovat skupinu</string>
     <string name="edit_name">Úprava názvu a obrázku</string>
@@ -405,10 +404,10 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="group_was_synchronized">Skupina synchronizována.</string>
     <string name="verification_level2_work_explain">"Interní kontakt, předem obsazený vaší organizací.
 "</string>
-    <string name="verification_level3_work_explain">Interní kontakt, jehož identitu a veřejný klíč jste osobně ověřili naskenováním jejich QR kódu</string>
-    <string name="verification_level3_explain">Interní kontakt, jehož identitu a veřejný klíč jste osobně ověřili naskenováním jejich QR kódu.</string>
-    <string name="verification_level2_explain">Kontakt, jehož telefonní číslo nebo e-mailová adresa je ve vašem adresáři.</string>
-    <string name="verification_level1_explain">Neznámý kontakt; buď tento kontakt nepřipojil telefonní číslo ani e-mailovou adresu ke svému ID, nebo váš adresář údaje o tomto kontaktu neobsahuje.</string>
+    <string name="verification_level3_work_explain">Interní kontakt, jehož identitu a veřejný klíč jste osobně ověřili naskenováním jejich QR kódu.</string>
+    <string name="verification_level3_explain">Kontakt, jehož identitu a veřejný klíč jste osobně ověřili naskenováním QR kódu.</string>
+    <string name="verification_level2_explain">Kontakt, jehož telefonní číslo a/nebo e‑mailová adresa je ve vašem adresáři.</string>
+    <string name="verification_level1_explain">Neznámý kontakt; buď tento kontakt nepropojil telefonní číslo ani e‑mailovou adresu ke svému ID, nebo váš adresář údaje o tomto kontaktu neobsahuje.</string>
     <string name="state_dialog_received">Přijato</string>
     <string name="prefs_title_hide_screenshots">Zakázat snímky obrazovky a náhledy</string>
     <string name="prefs_summary_hide_screenshots">Nezobrazovat náhledy aplikace v přehledu běžících aplikací a znemožnit vytváření snímků obrazovky na vybraných obrazovkách</string>
@@ -418,7 +417,7 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="media_gallery_all">Vše</string>
     <string name="media_gallery_pictures">Obrázky</string>
     <string name="media_gallery_videos">Video soubory</string>
-    <string name="group_membership_title">Člen uvedených skupin</string>
+    <string name="group_membership_title">Je členem uvedených skupin</string>
     <string name="num_items_sected">Vybráno položek: %s</string>
     <string name="really_delete_media" tools:ignore="PluralsCandidate">Skutečně si přejete odstranit následující počet mediálních zpráv: %d?</string>
     <string name="check_updates">Kontrola aktualizací</string>
@@ -432,9 +431,9 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="contact_now_unblocked">Kontakt odblokován</string>
     <string name="not_enough_disk_space_title">Nedostatek místa na úložišti</string>
     <string name="not_enough_disk_space_text">Uvolněte alespoň %1$s, abyste mohli obdržet zprávu</string>
-    <string name="sending_images">Odeslání obrázků</string>
-    <string name="share_conversation_body">Pro rozbalení je třeba aktualizovaný dekompresní program ZIP s podporou šifrování AES, např.
-http://www.7-zip.org or https://itunes.apple.com/us/app/the-unarchiver/id425424353</string>
+    <string name="sending_images">Odesílání obrázků</string>
+    <string name="share_conversation_body">Pro rozbalení je potřeba dekompresní program ZIP s podporou šifrování typu AES, např.
+http://www.7-zip.org nebo https://itunes.apple.com/us/app/the-unarchiver/id425424353</string>
     <string name="enter_zip_password_body">Konverzace bude odeslána jako zašifrovaný soubor ZIP. Zvolte si prosím heslo:</string>
     <string name="new_messages_in_chats" tools:ignore="PluralsCandidate">Počet nových zpráv: %1$d v(e) %2$d konverzacích</string>
     <string name="ballot_create">Vytvořte anketu</string>
@@ -466,7 +465,7 @@ http://www.7-zip.org or https://itunes.apple.com/us/app/the-unarchiver/id4254243
     <string name="ballot_add_choices">Přidejte možnosti</string>
     <string name="blocked_cannot_send">Blokovanému kontaktu nelze odesílat zprávy</string>
     <string name="really_block_contact">Budoucí zprávy od tohoto kontaktu budou zahazovány. Přejete si přesto pokračovat?</string>
-    <string name="ballot_result_final">Konečný výsledek</string>
+    <string name="ballot_result_final">Výsledek ankety</string>
     <string name="invalid_cannot_send">Nemůžete odesílat zprávy neplatnému kontaktu</string>
     <string name="ballot_answer_count_error">Zadejte prosím do ankety alespoň dvě odpovědi.</string>
     <string name="ballot_one_contact_not_supported">Upozornění: %1$s se nebude moci zúčastnit vaší ankety.</string>
@@ -482,7 +481,7 @@ http://www.7-zip.org or https://itunes.apple.com/us/app/the-unarchiver/id4254243
     <string name="ballot_intermediate_results_show">Zobrazovat průběžné výsledky</string>
     <string name="converting_video">Zpracování videa</string>
     <string name="video_size_small">Velká (náhledová kvalita)</string>
-    <string name="video_size_large">Malá (kvalitnější obraz)</string>
+    <string name="video_size_large">Mírná (kvalitnější obraz)</string>
     <string name="video_size_original">Žádná (datově náročná)</string>
     <string name="prefs_video_size">Komprese videa</string>
     <string name="show_contact">Zobrazit kontakt</string>
@@ -491,7 +490,7 @@ http://www.7-zip.org or https://itunes.apple.com/us/app/the-unarchiver/id4254243
     <string name="show_as_qrcode">Zobrazit jako QR kód</string>
     <string name="qr_code">QR kód</string>
     <string name="really_leave_id_export">Pokud jste tak ještě neučinili, uložte textový záložní řetězec vašeho ID nebo jemu odpovídající QR kód na bezpečné místo, nebo jej vytiskněte. Threema ID je vaše identita, která nemůže být bez zálohy nijak obnovena.</string>
-    <string name="revocation_key_title">Zrušení/odvolání ID</string>
+    <string name="revocation_key_title">Zrušení/odvolání ID</string>
     <string name="revocation_key_not_set">Není nastaveno žádné heslo pro odvolání ID</string>
     <string name="revocation_key_set_at">Heslo nastaveno %1$s</string>
     <string name="prefs_sum_remove_wallpapers">Odstraní všechny individuální tapety</string>
@@ -499,9 +498,8 @@ http://www.7-zip.org or https://itunes.apple.com/us/app/the-unarchiver/id4254243
     <string name="really_remove_wallpapers">Skutečně si přejete odstranit všechny tapety?</string>
     <string name="wallpapers_removed">Tapety byly odstraněny</string>
     <string name="invalid_backup">Neplatná data zálohy. Nelze je obnovit.</string>
-    <string name="revocation_explain">V případě nutnosti zrušit/odvolat Vaše Threema ID použijte tuto stránku, kde zadáte ID a zde vytvořené heslo.
-https://myid.threema.ch/revoke
-Např. v případě ztráty mobilu, odcizení ID.</string>
+    <string name="revocation_explain">V případě nutnosti zrušit/odvolat vaše Threema ID (například v případě ztráty nebo odcizení) použijte tento odkaz, kde zadáte ID a zde vytvořené heslo.
+https://myid.threema.ch/revoke</string>
     <string name="no_unread_messages">Žádné nepřečtené zprávy nebo je aktivován zámek PIN</string>
     <string name="send_media">Odeslat média</string>
     <string name="rotate">Otočit</string>
@@ -615,35 +613,32 @@ možné je obnovit.</string>
     <string name="new_wizard_welcome">Vítejte v aplikaci Threema!</string>
     <string name="new_wizard_move_finger">Posouvejte náhodně prstem po obrazovce</string>
     <string name="new_wizard_this_is_your_id">Toto je vaše Threema ID:</string>
-    <string name="new_wizard_works_like_phone_number">Threema ID lze připodobnit k telefonnímu číslu.\nVaši přátelé Vás mohou prostřednictvím tohoto ID kontaktovat.</string>
+    <string name="new_wizard_works_like_phone_number">Threema ID lze připodobnit k telefonnímu číslu.\nVaši přátelé vás mohou prostřednictvím tohoto ID kontaktovat.</string>
     <string name="new_wizard_choose_nickname">Zadejte svoji přezdívku</string>
     <string name="new_wizard_nickname_explain">Vaši přátelé v oznámeních uvidí vaši přezdívku</string>
     <string name="new_wizard_hint_enter_nickname">Zadejte přezdívku</string>
     <string name="new_wizard_help_your_friends_find_you">Pomozte svým přátelům, aby vás mohli vyhledat!</string>
-    <string name="new_wizard_link_mobile">Propojte své mobilní číslo a / nebo svůj e-mail s Vašim ID Threema.</string>
-    <string name="new_wizard_link_mobile_only">Propojte sv\u00e9 mobiln\u00ed \u010d\u00edslo se sv\u00fdm Threema ID.</string>
+    <string name="new_wizard_link_mobile">Propojte své mobilní číslo a/nebo e‑mail se svým Threema ID.</string>
+    <string name="new_wizard_link_mobile_only">Propojte sv\u00e9 mobiln\u00ed \u010d\u00edslo se sv\u00fdm Threema\u00a0ID.</string>
     <string name="new_wizard_hint_mobile_number">Číslo mobilního telefonu (nepovinné)</string>
-    <string name="new_wizard_hint_email">E-mail (nepovinné)</string>
+    <string name="new_wizard_hint_email">E‑mail (volitelné)</string>
     <string name="new_wizard_find_friends">Najděte vaše přátele na Threemě</string>
-    <string name="new_wizard_sync_contacts_explain">Zapněte, abyste viděli, kteří přátelé používají Threemu.</string>
-    <string name="new_wizard_done_title">Hotovo! Je vše správně?</string>
+    <string name="new_wizard_sync_contacts_explain">Můžete zapnout synchronizaci, abyste viděli, kteří přátelé používají aplikaci Threema.</string>
+    <string name="new_wizard_done_title">Hotovo!\nJe vše správně?</string>
     <string name="new_wizard_linked_to">Propojeno s</string>
     <string name="new_wizard_need_internet">K vytvoření vašeho unikátního Threema ID je vyžadováno stabilní připojení k internetu. Zkuste to prosím znovu.</string>
     <string name="new_wizard_more_information">Více informací</string>
-    <string name="new_wizard_use_id_as_nickname">Chcete Vaše Threema ID použít i jako přezdívku?</string>
-    <string name="new_wizard_phone_email_invalid">Telefonní číslo nebo e-mailová adresa, kterou jste zadali, nejsou platné.\nOpravte a potvrďte znovu.</string>
-    <string name="new_wizard_phone_invalid">Vámi zadané telefonní číslo není platné.\nOpravte jej prosím a zkuste to znovu.</string>
-    <string name="new_wizard_info_fingerprint">Přejížděním prstem po displeji vytvoříte náhodná data (tzv. entropii), která se využijí k vygenerování páru šifrovacích klíčů svázaných s vaším Threema ID. Dvojice šifrovacích klíčů se skládá z <b>veřejného klíče</b>, který je distribuován vašim přátelům, a ze <b>soukromého klíče</b>, který je bezpečně uložen pouze ve vašem zařízení. Zprávy, které vám odešlou vaši přátelé, budou zašifrovány vaším veřejným klíčem. Tyto zprávy může dešifrovat pouze ten, kdo vlastní soukromý klíč.</string>
+    <string name="new_wizard_use_id_as_nickname">Chcete své Threema ID použít i jako přezdívku?</string>
+    <string name="new_wizard_phone_email_invalid">Telefonní číslo nebo e‑mailová adresa, kterou jste zadali, nejsou platné.\nOpravte prosím zadaná data a zkuste to znovu.</string>
+    <string name="new_wizard_phone_invalid">Vámi zadané telefonní číslo není platné.\nOpravte jej prosím a zkuste to znovu.</string>
+    <string name="new_wizard_info_fingerprint">Přejížděním prstem po displeji vytvoříte náhodná data (tzv. entropii), která se využijí k vygenerování páru šifrovacích klíčů svázaných s vaším Threema ID. Dvojice šifrovacích klíčů se skládá z <b>veřejného klíče</b>, který je distribuován vašim kontaktům, a ze <b>soukromého klíče</b>, který je bezpečně uložen pouze ve vašem zařízení. Zprávy, které vám odešlou vaše kontakty, budou zašifrovány vaším veřejným klíčem. Tyto zprávy může dešifrovat pouze ten, kdo vlastní soukromý klíč.</string>
     <string name="new_wizard_info_id">Vytvořili jste dvojici šifrovacích klíčů. Veřejný klíč byl bezpečně přenesen na naše servery. Soukromý klíč nikdy neopustí vaše zařízení. Tím je zajištěno, že nikdo nepovolaný se nebude moci dostat k vašim zprávám.</string>
-    <string name="new_wizard_info_sync_contacts">Pokud tuto možnost povolíte, odešlou se jednosměrné šifrované (hashované) e-mailové adresy a telefonní čísla z vašich kontaktů na náš server. Zde se porovnají s kontakty ostatních uživatelů. V případě shody se Vám kontakt zobrazí v adresáři.
-Trvale na serverech neukládáme žádná data z Vašeho adresáře.</string>
-    <string name="new_wizard_info_link">Poskytnutím svého čísla a e-mailové adresy může Threema Vašim kontaktům zajistit automatické přidání Vašeho ID do jejich adresářů. Vaše číslo i adresa bude uložena jednosměrně šifrovaná (hashovaná) na Threema serveru. Tento krok můžete přeskočit, pokud chcete používat Threemu anonymně. Lze změnit i později.</string>
-    <string name="new_wizard_info_link_phone_only">Poskytnete-li aplikaci Threema své telefonní číslo, umožníte tak svým
-přátelům vás automaticky vyhledat, pokud vás mají v adresáři svého telefonu. Číslo bude na našem serveru
-uložené v jednosměrně šifrované podobě (hashované). Pokud chcete používat aplikaci Threema zcela anonymně,
-můžete tento krok přeskočit.</string>
-    <string name="new_wizard_info_nickname">Přezdívka se používá při oush upozorňování na některých zařízeních nebo jako další možnost, jak vás identifikovat uživatelům, kteří vás dosud nemají ve svém adresáři. Doporučujeme
-zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou přezdívku, použijeme ve výchozím nastavení vaše Threema ID. Toto lze kdykoliv změnit.</string>
+    <string name="new_wizard_info_sync_contacts">Pokud tuto možnost povolíte, odešlou se jednosměrně šifrované (hashované) e‑mailové adresy a telefonní čísla z vašich kontaktů na náš server. Zde se porovnají s kontakty ostatních uživatelů. V případě shody se u vás kontakt zobrazí v adresáři.
+Na našich serverech neukládáme žádná data z vašeho adresáře.</string>
+    <string name="new_wizard_info_link">Poskytnete‑li svoje telefonní číslo a e‑mailovou adresu, může Threema vašim kontaktům zajistit automatické přidání vašeho ID do jejich adresářů. Data budou uložena jednosměrně šifrovaná (hashovaná) na našem serveru. Tento krok můžete přeskočit, pokud chcete používat aplikaci Threema zcela anonymně. Toto nastavení lze později změnit.</string>
+    <string name="new_wizard_info_link_phone_only">Poskytnete‑li aplikaci Threema své telefonní číslo, umožníte tak svým
+přátelům vás automaticky vyhledat, pokud vás mají v adresáři svého telefonu. Číslo bude na našem serveru uložené v jednosměrně šifrované podobě (hashované). Jestliže chcete používat aplikaci Threema zcela anonymně, můžete tento krok přeskočit.</string>
+    <string name="new_wizard_info_nickname">Přezdívka se na některých zařízeních používá pro push oznámení nebo jako další možnost vaší identifikace uživatelům, kteří vás dosud nemají ve svém adresáři. Doporučujeme zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou přezdívku, použijeme ve výchozím nastavení vaše Threema ID. Toto nastavení lze později změnit.</string>
     <string name="not_linked">nepropojené</string>
     <string name="linked">propojené</string>
     <string name="pending_sms_verification_notice">Vaše číslo mobilního telefonu zatím nebylo ověřeno.</string>
@@ -657,19 +652,19 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="restore">Obnovit</string>
     <string name="new_wizard_anonymous_confirm">Nezadali jste ani číslo mobilního telefonu, ani e‑mailovou adresu, které mohou být propojené s vaším Threema ID. Nebudete se proto zobrazovat v seznamu kontaktů vašich přátel. Skutečně si přejete používat aplikaci Threema anonymně?</string>
     <string name="new_wizard_anonymous_confirm_phone_only">Nezadali jste číslo mobilního telefonu, které může být propojeno s vaším Threema ID. Nebudete se proto zobrazovat v seznamu kontaktů vašich přátel. Skutečně si přejete používat aplikaci Threema anonymně?</string>
-    <string name="new_wizard_scan_id_backup">Nebo naskenujte QR zálohu Vašeho ID</string>
+    <string name="new_wizard_scan_id_backup">Nebo naskenujte QR kód z exportu vašeho ID</string>
     <string name="error_saving_file">Chyba během ukládání souboru. Zkontrolujte oprávnění.</string>
-    <string name="wait_one_minute">Počkejte nejméně 10 minut, než přijde SMS. Až následně použijte záložní funkci ověření voláním.</string>
+    <string name="wait_one_minute">Počkejte prosím nejméně 10 minut, než přijde SMS. Až následně zkuste použít záložní funkci ověření telefonním hovorem.</string>
     <string name="backup_id">Exportované ID</string>
     <string name="backup_data">Záloha dat</string>
-    <string name="really_leave_group_admin_message">Jste správcem této skupiny. Pokud z ní vystoupíte, bude bez správce. Ostatní členové budou moci dále chatovat, ale jakékoliv změny již nebudou možné.</string>
+    <string name="really_leave_group_admin_message">Jste správcem této skupiny. Pokud ji opustíte, zůstane bez správce. Ostatní členové mezi sebou budou moci nadále komunikovat, ale provést jakékoliv změny již nebude možné.</string>
     <string name="action_delete_group">Odstranit skupinu</string>
     <string name="delete_my_group_message">Skutečně si přejete tuto skupinu zcela odstranit? Všechny zprávy v ní obsažené budou odstraněny a členové této skupiny ji nadále nebudou moci používat.</string>
     <string name="error_out_of_memory">Pro dokončení této akce nezbývá dostatečné množství paměti</string>
-    <string name="configure">Nastavení</string>
+    <string name="configure">Konfigurovat</string>
     <string name="file_is_not_audio">Nejde o zvukový soubor</string>
     <!-- restrictions -->
-    <string name="disabled_by_policy">Některá nastavení byla deaktivována bezpečnostními zásadami zařízení</string>
+    <string name="disabled_by_policy">Některá nastavení byla zakázána bezpečnostními zásadami zařízení</string>
     <string name="select_all">Vybrat vše</string>
     <string name="deleting_messages">Odstraňování zpráv</string>
     <string name="media_gallery_files">Soubory</string>
@@ -679,17 +674,17 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="clone_group_message">Tímto vytvoříte kopii této skupiny, ve které budete správcem. Přejete si pokračovat?</string>
     <string name="prefs_proximity_sensor">Zohlednit senzor přiblížení</string>
     <string name="prefs_proximity_sensor_explain">Pokud je snímač přiblížení zakryt, použije se pro přehrávání hlasových zpráv sluchátko</string>
-    <string name="error_creating_group">Chyba při vytvoření skupiny</string>
+    <string name="error_creating_group">Chyba během vytváření/úpravy skupiny</string>
     <string name="no_media_found_generic">V této konverzaci nebyly nalezeny žádné mediální soubory</string>
     <string name="max_images_reached" tools:ignore="PluralsCandidate">Najednou může být upraveno maximálně %d položek</string>
-    <string name="enter_description">Prosím, popište zde problém/chybu.</string>
+    <string name="enter_description">Zde prosím popište problém/chybu.</string>
     <string name="add_caption_hint">Přidejte volitelný komentář</string>
     <string name="disable">Vypnout</string>
     <string name="continue_anyway">Přesto pokračovat</string>
     <string name="invalid_input">Chybné zadání</string>
-    <string name="already_licensed">Licence uplatněná</string>
+    <string name="already_licensed">Licence již byla uplatněna</string>
     <string name="hide_chat">Soukromé konverzace</string>
-    <string name="really_hide_chat_message">Chcete tento chat označit jako soukromý? Pomocí nabídky můžete přepínat viditelnost soukromých chatů v seznamu zpráv.</string>
+    <string name="really_hide_chat_message">Chcete tuto konverzaci označit jako soukromou? Pomocí nabídky můžete přepínat viditelnost soukromých konverzací v seznamu konverzací.</string>
     <string name="chat_hidden">Konverzace označena jako soukromá</string>
     <string name="title_show_private_chats">Zobrazit soukromé konverzace</string>
     <string name="title_hide_private_chats">Skrýt soukromé konverzace</string>
@@ -698,10 +693,10 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="lock_option_none">Žádný</string>
     <string name="lock_option_pin">PIN</string>
     <string name="lock_option_screenlock">Systémový zámek obrazovky</string>
-    <string name="hide_chat_message_explain">Threema Vám umožňuje chránit i jen jednotlivé chaty pomocí PIN kódu. Označené chaty budou dočasně skryty ze seznamu konverzací. Chcete-li aktivovat tuto funkci, nejprve v hlavním Nastavení-Zabezpečení nastavte Ochranu přístupu kódem PIN nebo aktivujte systémový zámek (platí pro systém Android 6.0+).</string>
+    <string name="hide_chat_message_explain">Aplikace Threema vám umožňuje chránit také jednotlivé konverzace pomocí PIN kódu a dočasně je skrýt ze seznamu konverzací. Chcete‑li aktivovat tuto funkci – soukromé konverzace, nastavte prosím PIN nebo aktivujte systémový zámek (platí pro systém Android 6.0+) v nastavení zařízení.</string>
     <string name="set_lock">Nastavit</string>
     <string name="prefs_title_access_protection">Ochrana přístupu</string>
-    <string name="private_chat_subject">Soukromé</string>
+    <string name="private_chat_subject">Soukromá</string>
     <string name="grace_thirty_seconds">30 sekund</string>
     <string name="grace_one_minute">1 minuta</string>
     <string name="grace_two_minutes">2 minuty</string>
@@ -710,15 +705,15 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="grace_thirty_minutes">30 minut</string>
     <string name="grace_never">Nikdy (ručně)</string>
     <string name="never">Nikdy</string>
-    <string name="unhide_chats_confirm">Pokud nyní odstraníte ochranu přístupu, vaše soukromé chaty budou opět viditelné.</string>
+    <string name="unhide_chats_confirm">Pokud nyní odstraníte ochranu přístupu, vaše soukromé konverzace budou opět viditelné.</string>
     <string name="selection_counter_label" tools:ignore="PluralsCandidate">Počet vybraných obrázků: %d</string>
     <string name="verification_started">Ověřování bylo zahájeno</string>
-    <string name="cannot_open_file">Soubor nelze otevřít</string>
-    <string name="prefs_title_image_attach_previews">Rychlý výběr obrázků</string>
-    <string name="prefs_sum_image_attach_previews">Zobrazit seznam nedávno přidaných obrázků v rozbalovací nabídce příloh</string>
+    <string name="cannot_open_file">Soubor se nepodařilo otevřít</string>
+    <string name="prefs_title_image_attach_previews">Rychlý výběr médií</string>
+    <string name="prefs_sum_image_attach_previews">Zobrazí seznam nedávno přidaných obrázků v rozbalovací nabídce příloh</string>
     <string name="prefs_title_direct_share">Přímé sdílení</string>
-    <string name="prefs_sum_direct_share">Umožní z jiných aplikací odesílat data přímo do konrétního chatu</string>
-    <string name="restore_disable_energy_saving">Připojte zařízení k nabíječce a deaktivujte všechny možnosti úspory energie. Tím zabráníte případnému přerušení procesu zálohování nebo obnovení dat.</string>
+    <string name="prefs_sum_direct_share">Umožní z ostatních aplikací sdílet data přímo do konkrétních konverzací</string>
+    <string name="restore_disable_energy_saving">Připojte prosím zařízení ke zdroji napájení a zakažte všechny možnosti úspory energie. Tím zabráníte případnému přerušení procesu zálohování nebo obnovení dat.</string>
     <string name="draft">Koncept</string>
     <string name="prefs_bigger_single_emojis">Větší samostatné emoji</string>
     <string name="wizard1_sync_work">Synchronizují se data Threema Work…</string>
@@ -742,14 +737,14 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="discard">Vyřadit</string>
     <string name="android_backup_restart_threema">Vydržte. Aplikace bude restartována během několika sekund.</string>
     <string name="battery_optimizations_title">Vypnutí optimalizace baterie</string>
-    <string name="battery_optimizations_explain">Optimalizace baterie zabraňuje funkci %1$s pracovat správně ve chvíli, kdy vaše zařízení přejde do režimu spánku. Vypněte prosím optimalizaci baterie aplikace %2$s.</string>
+    <string name="battery_optimizations_explain">Optimalizace baterie zabraňuje funkci %1$s pracovat správně ve chvíli, kdy vaše zařízení přejde do režimu spánku. Vypněte prosím optimalizaci baterie pro aplikaci %2$s.</string>
     <string name="battery_optimizations_disable_guide">V rozbalovací nabídce vyberte možnost „Všechny aplikace“</string>
     <string name="battery_optimizations_disable_guide_ctd">Vyhledejte v seznamu aplikaci %s a vypněte pro ni optimalizaci baterie</string>
     <string name="battery_optimizations_disable_confirm">Skutečně si přejete ponechat aplikaci %1$s optimalizaci baterie zapnutou? %2$s nebude pracovat správně.</string>
     <string name="enter_text_hint">Zadejte text</string>
     <string name="backup_explain_text">Pokud mobil vyměníte nebo ho ztratíte, nikdo již nedokáže obnovit vaše Threema ID ani konverzace bez provedené zálohy. Pravidelně proto pomocí odpovídajících možností zálohy vytvářejte a ukládejte je na bezpečné místo.</string>
     <string name="data_backup_explain">Zálohovaná data obsahují: \n\n&#9679; Vaše ID a šifrovací klíče \n&#9679; Kontakty a jejich úrovně ověření \n&#9679; Členství ve skupinách \n&#9679; Konverzace \n&#9679; Obrázky a jiné soubory (volitelné)\n\nData budou uložena do šifrovaného souboru ZIP. Po úspěšném vytvoření zálohy doporučujeme tento soubor překopírovat do jiného zařízení.</string>
-    <string name="draw">Editace</string>
+    <string name="draw">Kreslit</string>
     <string name="edit">Upravit</string>
     <string name="discard_changes">Přejete si zahodit provedené změny?</string>
     <string name="prefs_title_network">Síť</string>
@@ -769,8 +764,8 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="play">Spustit</string>
     <string name="pause">Pozastavit</string>
     <string name="retry">Opakovat</string>
-    <string name="voice_message_record">Nahrajte hlasovou zprávu</string>
-    <string name="open_navdrawer">Otevřete navigační box</string>
+    <string name="voice_message_record">Nahrát hlasovou zprávu</string>
+    <string name="open_navdrawer">Otevřít navigační box</string>
     <string name="profile_picture">Profilový obrázek</string>
     <string name="profile_picture_release">Kdo může vidět váš profilový obrázek?</string>
     <string name="picrelease_nobody">Nikdo</string>
@@ -812,11 +807,11 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="prefs_title_device_info">Informace o zařízení</string>
     <string name="notifications_disabled_title">Oznámení vypnuta</string>
     <string name="notifications_disabled_text">Oznámení z aplikace Threema jsou zakázána v nastavení systému. Nebudete upozorňováni na nové zprávy.</string>
-    <string name="notifications_disabled_settings">Upravte nastavení systému</string>
+    <string name="notifications_disabled_settings">Upravit nastavení systému</string>
     <string name="error_attaching_files">Nezdařilo se přidat přílohy.</string>
-    <string name="prefs_fix_powermanager_problems">Vypnutí úsporného režimu</string>
+    <string name="prefs_fix_powermanager_problems">Zakázat úsporný režim</string>
     <string name="prefs_fix_powermanager_problems_desc">Povolit aplikaci Threema běžet na pozadí, aby mohla přijímat zprávy i když není aktivní (na popředí).</string>
-    <string name="disable_powermanager_explain">Na následující obrazovce se ujistěte, že «%s» je nemonitorovaná (vyloučená) nebo chráněna z omezení správy napájení vašeho telefonu. Až budete hotovi, klepněte na tlačítko «zpět».</string>
+    <string name="disable_powermanager_explain">Na následující obrazovce se ujistěte, že je aplikace „%s“ nemonitorovaná (vyloučená) nebo ochráněná z omezení správy napájení vašeho telefonu. Až budete hotovi, klepněte na tlačítko „zpět“.</string>
     <string name="disable_autostart_explain">Ujistěte se, že na následující obrazovce je aplikace „%s“ zahrnuta v seznamu aplikací, které se spouští automaticky. Jakmile budete hotovi, klepněte na tlačítko „zpět“.</string>
     <string name="notification_priority_default">Nízká</string>
     <string name="notification_priority_high">Vysoká</string>
@@ -825,10 +820,10 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="pin">Připnout</string>
     <string name="unpin">Odepnout</string>
     <string name="location_services_disabled">Služby určování polohy jsou zakázány. Přejete si je nyní povolit?</string>
-    <string name="send_location">Odeslání polohy</string>
+    <string name="send_location">Odeslat polohu</string>
     <string name="unknown_address">Neznámá adresa</string>
     <string name="your_location">Vaše poloha</string>
-    <string name="network_blocked_title">Data na pozadí jsou zakázána</string>
+    <string name="network_blocked_title">Využití dat na pozadí je zakázáno</string>
     <string name="network_blocked_body">%s nemůže přijímat zprávy na pozadí. Klepnutím sem v nastavení systému povolíte data na pozadí.</string>
     <string name="reply_later">Ozvu se později</string>
     <string name="reply_on_my_way">Jsem na cestě</string>
@@ -838,7 +833,7 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="prefs_auto_download_wifi">Přes Wi‑Fi</string>
     <string name="prefs_auto_download_mobile">Přes mobilní data</string>
     <string name="rate_intro">Jak hodnotíte aplikaci Threema?</string>
-    <string name="rate_feedback_intro">Pokud chcete, dejte nám prosím vědět, co můžeme zlepšit.</string>
+    <string name="rate_feedback_intro">Pokud chcete, dejte nám prosím vědět, co můžeme zlepšit (volitelné).</string>
     <string name="rate_positive">Odeslat hodnocení</string>
     <string name="rate_title">Ohodnoťte Threemu</string>
     <string name="rate_thank_you">Děkujeme vám za hodnocení!</string>
@@ -852,64 +847,64 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="switched_off">Vyp.</string>
     <string name="switched_on">Zap.</string>
     <string name="title_tab_work_users">Uživatelé Threema Work</string>
-    <string name="no_matching_work_contacts">Nenalezen ověřený Threema Work kontakt</string>
+    <string name="no_matching_work_contacts">Nebyly nalezeny žádné správcem ověřené Threema Work kontakty</string>
     <string name="all">Vše</string>
     <string name="webclient_session_stop_all">Zavřít vše</string>
-    <string name="webclient_running_sessions">Je navázáno %d Threema Web relací</string>
+    <string name="webclient_running_sessions">Je navázán tento počet Threema Web relací: %d</string>
     <string name="passphrase_service_name">Správa hesel</string>
     <string name="passphrase_service_description">Zobrazit oznámení, pokud je heslo odemknuto</string>
-    <string name="webclient_service_description">Upozornění, pokud je Threema Web relace aktivní</string>
-    <string name="prefs_title_accept_privacy_policy">Přijmout zásady ochrany osobních údajů</string>
+    <string name="webclient_service_description">Zobrazit oznámení, pokud je relace Threema Web aktivní</string>
+    <string name="prefs_title_accept_privacy_policy">Přijmout Zásady ochrany osobních údajů</string>
     <string name="privacy_policy_explain">%1$s dbá na vaše soukromí přísněji než kterýkoliv jiný komunikátor. Zjistěte více v našem ustanovení %2$s.</string>
     <string name="privacy_policy_check_confirm">Před použitím aplikace %s prosím odsouhlaste Zásady ochrany osobních údajů.\n\n(Vyžadováno směrnicí EU 2016/679.)</string>
     <string name="prefs_title_incognito_keyboard">Požádat o inkognito klávesnici</string>
     <string name="prefs_sum_incognito_keyboard">Zakázat sběr dat pro personalizované návrhy (pokud je funkce podporována klávesnicí ve vašem zařízení)</string>
-    <string name="tooltip_mentions">Zadejte na klávesnici znak @, pro výběr člena skupiny jako adresáta nebo pro jeho zmínění v textu.</string>
-    <string name="tooltip_imagepaint">Buďte kreativní! Klepnutím na tlačítko kouzelné hůlky můžete před odesláním přidat samolepku i text do obrázku.</string>
+    <string name="tooltip_mentions">Zadejte na klávesnici znak @ pro výběr člena skupiny jako adresáta nebo pro jeho zmínění v textu.</string>
+    <string name="tooltip_imagepaint">Buďte kreativní! Klepnutím na tlačítko kouzelné hůlky můžete před odesláním do obrázku něco načmárat nebo přidat samolepky a text.</string>
     <string name="call_ongoing">Probíhá volání</string>
     <string name="ballot_received_votes">Počet přijatých hlasů: %1$d/%2$d</string>
     <string name="quote_not_found">Citovaná zpráva nebyla nalezena</string>
     <string name="ballot_secret">tajné</string>
     <string name="password_too_short_generic">Heslo je příliš krátké</string>
     <string name="passwords_dont_match">Hesla se neshodují</string>
-    <string name="test_unsuccessful">Test neúspěšný</string>
+    <string name="test_unsuccessful">Test nebyl úspěšný</string>
     <string name="preparing_threema_safe">Připravuje se Threema Safe</string>
     <string name="disable_powermanager_title">Úsporný režim</string>
     <string name="disable_autostart_title">Autom. spuštění</string>
     <string name="unchanged">beze změny</string>
     <string name="safe_learn_more_button">Zjistit více</string>
     <string name="safe_enable_explain">Vše, co se týká konverzací, je uloženo pouze ve vašem zařízení. Nemáte u nás účet a nemůžeme vám pomoci, pokud ztratíte svůj telefon nebo nechtěně odstraníte svá data.\nThreema Safe vytváří automatické zálohy všech důležitých dat včetně vašich šifrovacích klíčů, seznamu kontaktů a členství ve skupinách (ale bez obsahu zpráv) anonymně a na zabezpečeném serveru podle vašeho výběru.</string>
-    <string name="safe_disable_confirm">Skutečně si přejete pokračovat bez aktivace Threema Safe?</string>
+    <string name="safe_disable_confirm">Skutečně si přejete pokračovat bez povolení Threema Safe?</string>
     <string name="safe_configure_choose_password">Zvolte si prosím silné heslo. Toto heslo budete v budoucnu potřebovat k obnovení dat ze zálohy Threema Safe.</string>
-    <string name="safe_configure_choose_server">Vyberte Threema Safe server</string>
+    <string name="safe_configure_choose_server">Vyberte server pro Threema Safe</string>
     <string name="safe_configure_server_explain">Můžete použít server společnosti Threema nebo pro zálohy určit server třetí strany.</string>
     <string name="safe_use_default_server">Použít výchozí server</string>
     <string name="safe_test_server">Otestovat server</string>
     <string name="safe_advanced_options">Expertní nastavení</string>
-    <string name="safe_enter_password">Zadejte Vaše Threema Safe heslo</string>
+    <string name="safe_enter_password">Zadejte prosím vaše heslo pro Threema Safe</string>
     <string name="safe_threema_id">Vaše Threema ID</string>
-    <string name="safe_restore_enter_id">Zadejte prosím Threema ID, které chcete obnovit</string>
-    <string name="safe_search_id_title">Zadejte prosím mobilní číslo nebo e-mailovou adresu propojenou s vaším ID</string>
-    <string name="safe_id_lookup">Vyhledává se Threema ID</string>
-    <string name="safe_no_id_found">Threema ID nenalezeno</string>
+    <string name="safe_restore_enter_id">Zadejte prosím Threema ID, které si přejete obnovit</string>
+    <string name="safe_search_id_title">Zadejte prosím číslo mobilního telefonu nebo e‑mailovou adresu propojenou s vaším ID</string>
+    <string name="safe_id_lookup">Vyhledává se Threema ID</string>
+    <string name="safe_no_id_found">Žádné Threema ID nebylo nalezeno</string>
     <string name="safe_no_backup_found">Na serveru nebyla nalezena žádná záloha. Zkontrolujte ID a heslo.</string>
-    <string name="safe_select_id">Bylo nalezeno více dat s tímto Threema ID. Vyberte ID, které chcete použít:</string>
+    <string name="safe_select_id">Bylo nalezeno více Threema ID. Vyberte prosím ID, které chcete použít:</string>
     <string name="safe_backup_now">Zálohovat</string>
     <string name="safe_enable_explain_short">Povolením Threema Safe vytvoříte automatické zabezpečené a anonymní zálohy všech vašich důležitých dat.</string>
     <string name="safe_deleting">Odstraňuje se záloha Threema Safe</string>
     <string name="safe_delete_error">Chyba při odstraňování zálohy: %s</string>
     <string name="safe_delete_success">Záloha byla ze serveru úspěšně odstraněna</string>
-    <string name="safe_error_preparing">Chyba během přípravy zálohy Threema Safe</string>
+    <string name="safe_error_preparing">Během přípravy zálohy Threema Safe nastala chyba</string>
     <string name="safe_configure_choose_password_force">Zadejte prosím silné heslo pro zabezpečení vašeho Threema ID funkcí Threema Safe. Zadané heslo si dobře zapamatujte!</string>
-    <string name="safe_deactivate">Deaktivace Threema Safe</string>
+    <string name="safe_deactivate">Vypnutí Threema Safe</string>
     <string name="safe_deactivate_explain">Jestliže zakážete službu Threema Safe, budou ze serveru odstraněny všechny existující zálohy. Přejete si pokračovat?</string>
     <string name="add_group_members">Přidat člena</string>
     <string name="contact_add_confirm">Přejete si přidat nový kontakt „%1$s“ do vašeho seznamu kontaktů?</string>
-    <string name="password_bad">Slabé heslo</string>
+    <string name="password_bad">Heslo je příliš slabé</string>
     <string name="prefs_fix_background_data">Povolit využití dat na pozadí</string>
-    <string name="prefs_fix_background_data_desc">Aby Threema mohla přijímat zprávy i když běží na pozadí, je nutné zapnout obě volby. Tj. \"využití dat na pozadí\" a \"i při spořiči dat\".</string>
-    <string name="prefs_fix_device">Oprava potíží s konfigurací systému</string>
-    <string name="safe_successful">Hotovo</string>
+    <string name="prefs_fix_background_data_desc">Aby aplikace Threema mohla přijímat zprávy i když běží na pozadí, je potřeba zapnout obě volby – „Využití dat na pozadí“ a „Neomezená data“.</string>
+    <string name="prefs_fix_device">Oprava potíží s konfigurací zařízení</string>
+    <string name="safe_successful">Úspěšná</string>
     <string name="safe_unsuccessful">Selhala</string>
     <string name="safe_upload_failed">Nahrávání selhalo</string>
     <string name="safe_upload_size_exceeded">Byla překročena velikost nahrávaných dat</string>
@@ -918,16 +913,16 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="safe_max_backup_size">Maximální velikost zálohy</string>
     <string name="safe_retention">Uchování zálohy</string>
     <string name="safe_result">Stav zálohy</string>
-    <string name="number_of_days">%d dnů</string>
+    <string name="number_of_days">počet dnů: %d</string>
     <string name="backup_other_restore_options">Další možnosti obnovení</string>
     <string name="safe_size">Velikost zálohy</string>
-    <string name="safe_version_mismatch">Verze této zálohy je vyšší než verze podporovaná. Aktualizujte prosím aplikaci Threema.</string>
-    <string name="safe_restore_failed">Obnova neúspěšná</string>
+    <string name="safe_version_mismatch">Verze této zálohy je vyšší než verze podporovaná. Aktualizujte prosím aplikaci Threema na nejnovější verzi.</string>
+    <string name="safe_restore_failed">Obnova selhala</string>
     <string name="safe_failed_notification">Záloha Threema Safe se nezdařila %d dní po sobě. Klepněte sem pro další informace.</string>
     <string name="safe_restore">Obnovení Threema Safe</string>
-    <string name="backup_restore_in_progress">Zálohování nebo obnovení probíhá. Průběh sledujte v notifikační liště.</string>
+    <string name="backup_restore_in_progress">Zálohování nebo obnovení právě probíhá. Průběh sledujte v panelu oznámení.</string>
     <string name="restore_error_body">Obnovení dat neproběhlo úspěšně</string>
-    <string name="forgot_your_id">Zapomněli jste své ID?</string>
+    <string name="forgot_your_id">Zapomněli jste své ID?</string>
     <string name="restore_success_body">Obnovení dat bylo úspěšně dokončeno</string>
     <string name="work_data_sync">Synchronizace dat</string>
     <string name="private_contact">Soukromý kontakt</string>
@@ -953,15 +948,15 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="restore_data_cancelled">Obnova dat byla přerušena</string>
     <string name="safe_change_password">Změna hesla</string>
     <string name="safe_configure_choose_password_title">Zvolte heslo</string>
-    <string name="password_bad_explain">Vybrané heslo pro Threema Safe není bezpečné, lze ho snadno odhadnout útočníky. Zvolte prosím jiné. Tip: Použijte heslo složené z několika samostatných slov.</string>
+    <string name="password_bad_explain">Zvolené heslo pro Threema Safe není bezpečné, protože ho útočníci mohou snadno odhadnout. Zvolte prosím jiné. Tip: Použijte heslo sestávající se z několika samostatných slov.</string>
     <string name="safe_password_updated">Heslo Threema Safe bylo aktualizováno.</string>
-    <string name="safe_activated">Threema Safe je aktivní.</string>
+    <string name="safe_activated">Threema Safe je nyní aktivní.</string>
     <string name="restore_zip_invalid_file">Soubor se zálohou dat je neplatný.</string>
     <string name="push_token_cleared">Push token byl vymazán</string>
     <string name="insert_date">Vložit datum</string>
     <string name="add_answer">Přidat odpověď</string>
     <string name="title_cannot_be_empty">Kolonka pro název ankety nemůže zůstat prázdná</string>
-    <string name="voip_disabled">Threema volání je vypnuté</string>
+    <string name="voip_disabled">Threema volání je zakázané</string>
     <string name="hide_chat_enter_message_explain">Tato konverzace je označena jako soukromá. Chcete‑li do ní vstoupit, nastavte nejdříve ochranu přístupu.</string>
     <string name="unknown">Neznámý</string>
     <string name="miui_notification_title">Důležité upozornění týkající se systému oznámení v systému MIUI</string>
@@ -971,19 +966,19 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="miui_notification_prefs">Nastavení MIUI</string>
     <string name="threema_safe_upload_successful">Záloha Threema Safe byla úspěšně nahrána</string>
     <string name="time_remaining">Zbývá %s</string>
-    <string name="safe_configure_server_credentials_title">Ověření (volitené)</string>
-    <string name="username_hint">Uživ. jméno</string>
+    <string name="safe_configure_server_credentials_title">Ověření (volitelné)</string>
+    <string name="username_hint">Uživatelské jméno</string>
     <string name="lock_option_biometric">Biometrický</string>
     <string name="biometric_enter_authentication">Chcete‑li odemknout aplikaci, proveďte prosím ověření</string>
     <string name="biometric_authentication_failed">Ověření se nezdařilo</string>
-    <string name="biometric_authentication_successful">Úspěšně ověřeno</string>
-    <string name="work_safe_forced_explain">Váš správce povolil službu Threema Safe pro vaše zařízení.</string>
+    <string name="biometric_authentication_successful">Ověření bylo úspěšné</string>
+    <string name="work_safe_forced_explain">Váš správce pro vaše zařízení povolil službu Threema Safe.</string>
     <string name="pin_locked_cannot_send">Nelze odeslat. Aplikace je uzamčena.</string>
     <string name="prefs_summary_hide_screenshots_notice">Z důvodu ochrany soukromí se nebudou vytvářet miniatury obrázků a nebude možné pořizovat snímky obrazovky, jestliže bude v nastavení zabezpečení povolen „Zámek aplikace“.</string>
-    <string name="work_select_categories">Volba kategorie</string>
+    <string name="work_select_categories">Vyberte kategorie</string>
     <string name="my_profile">Můj profil</string>
     <string name="message_too_long">Zpráva je příliš dlouhá. Nelze ji odeslat.</string>
-    <string name="database_migration_no_space">Migrace databáze se nezdařila: Nedostatek místa v úložišti zařízení.</string>
+    <string name="database_migration_no_space">Migrace databáze se nezdařila: Nedostatek místa v úložišti zařízení.</string>
     <string name="advanced_options">Pokročilé možnosti</string>
     <string name="url_warning_body">Odkaz, který se chystáte otevřít, je podezřelý:\n\nZobrazená adresa: <b>%s</b>\nSkutečná adresa: <b>%s</b>\n\nMůže se jednat o pokus přimět vás otevřít falešnou webovou stránku.\n\nPřejete si i přesto pokračovat?</string>
     <string name="url_warning_title">Varování před phishingem</string>
@@ -1001,7 +996,7 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="lp_search_place">Zadejte město nebo adresu</string>
     <string name="lp_no_nearby_places_found">Žádná blízká místa nebyla nalezena</string>
     <string name="select_directory_for_backup">Uložit sem</string>
-    <string name="data_backup_headline">Záloha všech dat, včetně konverzací a médií.</string>
+    <string name="data_backup_headline">Vytvořte zálohu všech vašich dat, včetně konverzací a médií.</string>
     <string name="data_backup_save_path">Cesta pro zálohu dat</string>
     <string name="change">Změnit</string>
     <string name="data_backup_last_date">Poslední úspěšná záloha dat</string>
@@ -1017,30 +1012,10 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="notification_contact_has_joined">Kontakt %1$s se připojil do aplikace %2$s. Klepnutím sem mu odešlete zprávu.</string>
     <string name="notification_contact_has_joined_multiple">Do aplikace %2$s se připojilo více kontaktů (%1$d): %3$s. Klepnutím sem jim odešlete zprávu.</string>
     <string name="system_default">Systémové nastavení</string>
-    <string name="open_in_maps_app">Zobrazit v externí mapě</string>
+    <string name="open_in_maps_app">Otevřít v aplikaci Mapy</string>
     <string name="delete">Odstranit</string>
     <string name="num_archived_chats">Archivovaných konverzací: %d</string>
     <string name="continue_recording">Pokračovat v nahrávání</string>
-    <string name="whatsnew_title">What’s new in %s 4.56?</string>
-    <string name="whatsnew_headline">The contact synchronization has been completely rewritten for increased performance and stability. As a consequence, manual linking of system contacts had to be removed and a separate validation option in settings is no longer necessary.\n\nIf you notice any problems with names or avatars of synchronized contacts or other unexpected behavior, please contact us through the usual bug reporting channels.\n\nThanks for testing %s!</string>
-    <string name="whatsnew2_title">Co je nového?</string>
-    <string name="whatsnew2_body">"&lt;p&gt;<b>Adresář galerie</b>: Klepnutím na ikonu sponky můžete procházet obrázky v rolovacím seznamu. Pokud nechcete, aby se seznam s nejnovějšími médii automaticky otevíral, deaktivujte možnost rychlého výběru obrazků v nastavení chatu v<i> Nastavení / Chat</i>.&lt;/p&gt;
-&lt;p&gt;<b>Hledání obrázků</b>: Vyhledejte ve svých obrázcích běžné objekty, aktivity a místa.&lt;br&gt; Rozpoznávání obrázků je založeno na modelu místního strojového učení. Neposílá data na server Threema ani žádné jiné externí službě. Protože analýza obrázků je poměrně náročný úkol a může trvat dlouho, je tato možnost ve výchozím nastavení zakázána. Najdete ji v<i> Nastavení / Média a uložení / Hledání obrázků</i>.&lt;/p&gt;
-
-&lt;p&gt;<b>Odesílání mediálních souborů</b>: Odesílejte obrázky s individuálním rozlišením, aniž byste museli měnit globální nastavení.&lt;/p&gt;
-
-&lt;p&gt;<b>Editor videa</b>: Ořízněte videa před odesláním. Kromě toho byl vylepšen proces překódování videa, který nyní funguje na pozadí.&lt;/p&gt;
-
-&lt;p&gt;<b>Ukládání do galerie</b>: V systému Android 10 a novějším se média ukládají do systémových složek<i> Obrázky, Videa, Hudba</i> a <i>Dokumenty</i>. Toto je vyžadováno v novou směrnicí «Pravidla pro úložiště» od společnosti Google.&lt;/p&gt;
-
-&lt;p&gt;<b>Globální vyhledávání</b>: Hledání textu ve všech chatech. Jednoduše klepněte na<i> Nabídka / Globální vyhledávání</i>, když jste na úvodní obrazovce v aplikaci %1$s.&lt;/p&gt;
-
-&lt;p&gt;<b>Citace</b>: %1$s vám nyní umožňuje citovat jakýkoli typ média, včetně obrázků, videí i hlasových zpráv.&lt;/p&gt;
-
-&lt;p&gt;<b>100 nových smajlíků</b>: Podívejte se na dlouho očekávané fondue &#129749;&lt;/p&gt;
-
-&lt;p&gt;<b>Dlouhé texty</b>: Pro lepší přehlednost jsou delší texty zobrazené pouze zkráceně v bublině chatu. Poklepem se zobrazí kompletní text.&lt;/p&gt;
-"</string>
     <string name="tooltip_identity_popup">Klepnutím sem zobrazíte vaše Threema ID nebo naskenujete ID ostatních uživatelů</string>
     <string name="tap_to_start">Klepnutím sem spustíte aplikaci %s.</string>
     <string name="two_years">2 roky</string>
@@ -1048,9 +1023,9 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="backup_data_no_permission">Do tohoto adresáře nelze zapisovat. Vyberte prosím jiný.</string>
     <string name="prefs_sum_show_unread_badge">Zobrazit ve spodních navigačních záložkách puntíky</string>
     <string name="prefs_title_show_unread_badge">Puntíky</string>
-    <string name="pinning_not_trusted">Selhání při komunikaci s certifikátem. Zkontrolujte, zda je v úložišti vašeho zařízení (credentials storage) nainstalován a aktivován certifikát «Entrust Root Certification Authority - G2».</string>
+    <string name="pinning_not_trusted">Selhání při komunikaci s certifikátem. Zkontrolujte, zda je v úložišti vašeho zařízení (credentials storage) nainstalován a aktivován certifikát „Entrust Root Certification Authority - G2“.</string>
     <string name="pinning_failed">Selhání při komunikaci s certifikátem. Může probíhat útok Man‑in‑the‑middle. Pokud máte nainstalovaný blokátor reklam, filtr obsahu nebo aplikaci s firewallem, například „AdGuard“, zakažte ji prosím pro aplikaci Threema.</string>
-    <string name="open_myid_popup">Otevřete vyskakovací okno pro podrobnosti</string>
+    <string name="open_myid_popup">Otevře vyskakovací okno s podrobnostmi</string>
     <string name="logo">Logo / Skok na začátek</string>
     <string name="quote_subj_end">Ukončit citaci</string>
     <string name="quote_subj">Citace</string>
@@ -1060,7 +1035,7 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="and">a</string>
     <string name="edit_type_content_description">Zobrazit nebo upravit %1$s %2$s</string>
     <string name="group">Skupina</string>
-    <string name="send_location_privacy_policy_v4_0"><![CDATA[<p>Naše zásady ochrany osobních údajů byly aktualizovány tak, aby odpovídaly následující změně:</p><p>Údaje aplikace %1$s již nejsou závislé na službě Google Play a Mapách Google. Nejsou poskytována mapová data a zajímavá místa.</p>Celé znění zásad ochrany osobních údajů najdete <a href="%2$s">zde</a>.]]></string>
+    <string name="send_location_privacy_policy_v4_0"><![CDATA[<p>Naše zásady ochrany osobních údajů byly aktualizovány tak, aby odpovídaly následující změně:</p><p>Údaje aplikace %1$s již nejsou závislé na službě Google Play a Mapách Google. Nejsou poskytována data z map a ze zajímavých míst.</p>Celé znění zásad ochrany osobních údajů najdete <a href="%2$s">zde</a>.]]></string>
     <string name="play_services_not_installed_unable_to_use_push">Služby Google Play nejsou nainstalovány. Nelze tak použít push oznámení.</string>
     <string name="unable_to_get_current_location">Nelze určit aktuální polohu.</string>
     <string name="lp_search_place_min_chars">Chcete‑li vyhledat místo, zadejte alespoň tři znaky.</string>
@@ -1079,7 +1054,7 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="sending_media">Odesílání médií</string>
     <string name="permission_record_video_audio_required">Chcete‑li nahrát video, povolte prosím přístup k mikrofonu</string>
     <string name="media_files">Soubory</string>
-    <string name="auto_download_limit_explain">Poznámka: Videa a soubory větší než %s budou vždy staženy až na vyžádání</string>
+    <string name="auto_download_limit_explain">Videa a soubory větší než %s budou staženy vždy až na vyžádání</string>
     <string name="quoted_message_deleted">Citovaná zpráva již není dostupná</string>
     <string name="searching">Vyhledávání…</string>
     <string name="prefs_work_life_balance">Nerušit</string>
@@ -1090,23 +1065,23 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="prefs_work_time_end">Konec pracovní doby</string>
     <string name="prefs_work_time_end_sum">Čas ukončení</string>
     <string name="prefs_working_days_enable_title">Volba po pracovní době</string>
-    <string name="prefs_working_days_enable_sum">Deaktivovat oznámení a odmítat hovory mimo pracovní dobu</string>
-    <string name="work_life_dnd_active">Aktivní po pracovní době</string>
+    <string name="prefs_working_days_enable_sum">Zakázat oznámení a odmítat hovory mimo pracovní dobu</string>
+    <string name="work_life_dnd_active">Pravidla po pracovní době aktivní</string>
     <string name="pencil">Tužka</string>
     <string name="warning">Varování</string>
-    <string name="password_remember_warning">Pamatujte, co zde zadáte! Protože %s neukládá hesla na serverech, nemůžeme vám pomoci, pokud zapomenete svůj PIN nebo přístupovou frázi.</string>
+    <string name="password_remember_warning">Pamatujte si, co zde zadáte! Vzhledem k tomu, že aplikace %s neukládá žádná hesla na serverech, nemůžeme vám pomoci, pokud zapomenete svůj PIN nebo heslo.</string>
     <string name="safe_backup_tap_to_restart">Klepnutím na zobrazené oznámení restartujete aplikaci ihned. Jestliže oznámení nevidíte, přejeďte prosím na vašem zařízení dolů přes panel oznámení.</string>
     <string name="send_to_support">Odeslat podpoře Threema</string>
-    <string name="menu_legal">Právní</string>
+    <string name="menu_legal">Právní ustanovení</string>
     <string name="tooltip_work_hint">Tento kontakt používá Threema Work.</string>
-    <string name="video_camera_on">Kamera pro video aktivována</string>
-    <string name="video_camera_off">Kamera pro video deaktivována</string>
+    <string name="video_camera_on">Snímač pro video byl povolen</string>
+    <string name="video_camera_off">Snímač pro video byl zakázán</string>
     <string name="enable_picture_in_picture">Spustit režim Obraz v obrazu</string>
     <string name="call_with">Volat kontaktu %s</string>
     <string name="picture_in_picture_disabled_in_setting">Režim Obraz v obrazu je pro aplikaci %s zakázán. Povolte jej prosím v nastavení systému.</string>
     <string name="delete_everything">Odstranit vše</string>
-    <string name="prefs_title_voip_video_enable">Povolit videohovory Threema</string>
-    <string name="video_calls">Videohovory Threema</string>
+    <string name="prefs_title_voip_video_enable">Povolit videohovory</string>
+    <string name="video_calls">Videohovory</string>
     <string name="prefs_videocall_profile">Upřednostňovaná kvalita obrazu</string>
     <string name="videocall_profile_auto">Vyvážená (doporučeno)</string>
     <string name="videocall_profile_low_bandwidth">Nízká spotřeba dat</string>
@@ -1123,26 +1098,26 @@ zadat pouze vaše křestní jméno nebo pseudonym. Pokud nenastavíte žádnou p
     <string name="translators_thanks">Mnohokrát děkujeme našim dobrovolným překladatelům:\n%s</string>
     <string name="ballot_window_hide">Skrýt probíhající ankety</string>
     <string name="ballot_window_show">Zobr. probíhající ankety</string>
-    <string name="tooltip_video_call">Kromě hlasových volání odolných proti odposlechu, nyní Threema nabízí i šifrované videohovory typu end-to-end.</string>
+    <string name="tooltip_video_call">Kromě hlasových hovorů odolných proti odposlechu nyní Threema nabízí i šifrované videohovory typu end‑to‑end.</string>
     <string name="tooltip_voip_other_party_video_on">Protistrana zahájila videohovor. Klepnutím sem zapnete fotoaparát.</string>
-    <string name="tooltip_voip_other_party_video_disabled">Druhá strana nepoužívá aktuální verzi aplikace nebo nepovoluje videohovory.</string>
+    <string name="tooltip_voip_other_party_video_disabled">Druhá strana nepoužívá aktuální verzi aplikace nebo nepovole videohovory.</string>
     <string name="video_calls_new">Novinka: Videohovory</string>
-    <string name="biometrics_not_enrolled">Do systému nejsou zapsány žádné biometrické údaje.</string>
-    <string name="biometrics_not_avilable">Biometriky nejsou v tomto systému k dispozici.</string>
+    <string name="biometrics_not_enrolled">systému nejsou zapsány žádné biometrické údaje.</string>
+    <string name="biometrics_not_avilable">Biometrické údaje v tomto systému nejsou k dispozici.</string>
     <string name="biometrics_no_permission">Nebylo povoleno oprávnění k přístupu k biometrickým datům nebo hardwaru.</string>
     <string name="verification_settings_desc">Barevné puntíky označují úroveň ověření kontaktu.</string>
     <string name="verification_levels_title">Úrovně ověření</string>
     <string name="work_verification_levels_title">Kontakty ve vaší organizaci</string>
     <string name="external_verification_levels_title">Další kontakty</string>
-    <string name="switch_flash">Volba použití blesku</string>
+    <string name="switch_flash">Volba režimu blesku</string>
     <string name="message_not_found">Zpráva nebyla nalezena</string>
     <string name="insert_datetime">Zadejte datum a čas</string>
     <string name="prefs_sum_disable_smart_replies">Zakázat Chytré odpovědi v oznámeních Androidu</string>
     <string name="prefs_title_disable_smart_replies">Zakázat Chytré odpovědi</string>
-    <string name="url_warning_body_alt">Název hostitele odkazu, který se chystáte otevřít, je podezřelý.\n\n\nMůže to být pokus přimět vás k otevření webu, který předstírá, že je něco jiného.\n\n\nChcete přesto pokračovat?</string>
+    <string name="url_warning_body_alt">Odkaz, který se chystáte otevřít, je podezřelý.\n\nMůže se jednat o pokus přimět vás otevřít falešnou webovou stránku.\n\nPřejete si i přesto pokračovat?</string>
     <string name="read_on">Číst dál…</string>
     <string name="forward_text">Přeposlat text</string>
-    <string name="an_error_occurred_during_send">Při odesílání jedné nebo více zpráv došlo k chybě.</string>
+    <string name="an_error_occurred_during_send">Při odesílání jedné nebo více zpráv došlo k chybě.</string>
     <string name="state_processing">zpracovává se</string>
     <string name="passphrase_locked">Heslo je uzamčeno</string>
     <string name="selected_media">Váš výběr</string>

+ 4 - 4
app/src/main/res/values-cs/webclient_strings.xml

@@ -6,7 +6,7 @@
     <string name="webclient_last_usage">Poslední použití: %s</string>
     <string name="webclient_created_at">Vytvořena: %1$s (%2$s)</string>
     <string name="webclient_active_since">Aktivní od: %s</string>
-    <string name="webclient_enable">Zapnout funkci Threema Web</string>
+    <string name="webclient_enable">Zapnout aplikaci pro desktop / webový klient</string>
     <string name="webclient_no_sessions_found">Chcete‑li se připojit, otevřete <b>https://web.threema.ch</b> ve webovém prohlížeči ve vašem počítači a po klepnutí na tlačítko níže naskenujte QR kód.</string>
     <string name="webclient_session_rename">Přejmenovat relaci</string>
     <string name="webclient_session_label">Nový název</string>
@@ -17,7 +17,7 @@
     <string name="webclient_unnamed_session">Nepojmenovaná relace</string>
     <string name="webclient_session_remove">Odstranit relaci</string>
     <string name="webclient_welcome_title">Konverzujte z počítače!</string>
-    <string name="webclient_welcome_explain">Threema Web vám umožní konverzovat z počítače nebo notebooku a zároveň vám poskytne plný přístup ke všem vašim kontaktům, médiím, konverzacím a také k historii konverzací.\n\n<b>Veškerá komunikace mezi mobilním telefonem a počítačem je plně šifrovaná end‑to‑end šifrováním</b> a využívá přímé spojení, pokud jsou obě zařízení připojená ke stejné lokální síti.\n\nUpozornění: Používání funkce Threema Web může zvýšit spotřebu baterie. Můžete ji kdykoliv zapnout nebo vypnout.</string>
+    <string name="webclient_welcome_explain">Aplikace pro desktop a webový klient vám umožní konverzovat z počítače nebo notebooku a zároveň vám poskytne plný přístup ke všem vašim kontaktům, médiím, konverzacím a také k historii konverzací.\n\n<b>Veškerá komunikace mezi mobilním telefonem a počítačem je plně šifrovaná end‑to‑end šifrováním</b> a využívá přímé spojení, pokud jsou obě zařízení připojená ke stejné lokální síti.\n\nUpozornění: Používání aplikace pro desktop / webového klientu může zvýšit spotřebu baterie. Můžete je kdykoliv zapnout nebo vypnout.</string>
     <string name="webclient_launch">Spustit Threema Web</string>
     <string name="webclient_qr_scan_message">Naskenujte prosím QR kód zobrazený na obrazovce počítače.</string>
     <string name="webclient_invalid_qr_code">Neplatný Threema Web QR kód</string>
@@ -30,11 +30,11 @@
     <string name="webclient_really_start_webclient_by_payload_body">Přejete si nyní spustit tuto relaci Threema Web?</string>
     <string name="webclient_cannot_restore">Relaci Threema Web nelze obnovit</string>
     <string name="webclient_disabled">Funkce Threema Web není zapnuta</string>
-    <string name="webclient_cannot_start">Relaci Threema Web nelze spustit</string>
+    <string name="webclient_cannot_start">Relaci nelze spustit</string>
     <string name="webclient_constrained_by_mdm">Server není schválený správcem.</string>
     <string name="webclient_clear_all_sessions">Odstranit všechny relace</string>
     <string name="webclient_clear_all_sessions_confirm">Jste si jisti, že chcete ukončit a odstranit všechny relace Threema Web?</string>
-    <string name="webclient_prefs_debug_tool_summary">Spuštění tohoto nástroje vám umožní hledat zdroj problémů s nastavením spojení Threema Web</string>
+    <string name="webclient_prefs_debug_tool_summary">Spuštění tohoto nástroje vám umožní hledat zdroj problémů s nastavením spojení s aplikací pro desktop nebo s webovým klientem</string>
     <string name="webclient_diagnostics">Diagnostika funkce Threema Web</string>
     <string name="webclient_diagnostics_start">Spustit</string>
     <string name="webclient_diagnostics_intro">Stiskem tlačítka „Spustit“ zahájíte test.</string>

+ 2 - 2
app/src/main/res/values-de/strings.xml

@@ -972,10 +972,10 @@ sicheren Ort gesichert oder ausgedruckt haben.</string>
 	<string name="no_matching_work_contacts">Keine vom Administrator überprüften Threema Work-Kontakte gefunden</string>
 	<string name="all">Alle</string>
 	<string name="webclient_session_stop_all">Alle beenden</string>
-	<string name="webclient_running_sessions">%d laufende Threema Web-Sitzung(en)</string>
+	<string name="webclient_running_sessions">%d laufende Sitzung(en)</string>
 	<string name="passphrase_service_name">Passphrase-Dienst</string>
 	<string name="passphrase_service_description">Benachrichtigung, wenn die Passphrase entsperrt ist</string>
-	<string name="webclient_service_description">Benachrichtigung, wenn eine Threema Web-Sitzung aktiv ist</string>
+	<string name="webclient_service_description">Benachrichtigung, wenn eine Web-/Desktop-Sitzung aktiv ist</string>
 	<string name="prefs_title_accept_privacy_policy">Datenschutzerklärung akzeptieren</string>
 	<string name="privacy_policy_explain">%1$s schützt Ihre Privatsphäre so konsequent wie kein anderer Messenger. In unserer %2$s erfahren Sie mehr.</string>
 	<string name="privacy_policy_check_confirm">Bitte akzeptieren Sie die Datenschutzerklärung, um %s nutzen zu können.\n\n(Anforderung gemäss EU-Verordnung 2016/679)</string>

+ 20 - 17
app/src/main/res/values-de/webclient_strings.xml

@@ -2,12 +2,12 @@
 <resources>
 	<string name="webclient_qr_scan_error">QR-Code ungültig</string>
 	<string name="webclient_init_session">Neue Sitzung einleiten</string>
-	<string name="webclient_sessions_really_delete">Möchten Sie diese Threema Web-Sitzung wirklich löschen?</string>
+	<string name="webclient_sessions_really_delete">Möchten Sie diese Sitzung wirklich löschen?</string>
 	<string name="webclient_last_usage">Zuletzt genutzt: %s</string>
 	<string name="webclient_active_since">Aktiv seit: %s</string>
 	<string name="webclient_created_at">Erstellt am: %1$s (%2$s)</string>
-	<string name="webclient_enable">Threema Web aktivieren</string>
-	<string name="webclient_no_sessions_found">Zum Verbinden, öffnen Sie den Internet-Browser auf Ihrem PC und rufen Sie https://web.threema.ch auf. Tippen Sie auf den untenstehenden Button, um den angezeigten Code zu scannen.</string>
+	<string name="webclient_enable">Desktop-App/Web-Client aktivieren</string>
+	<string name="webclient_no_sessions_found">Laden Sie am Computer die Desktop-App herunter (https://threema.ch/download), oder öffnen Sie den Web-Client (https://web.threema.ch/). Tippen Sie anschliessend auf den untenstehenden Button, um den angezeigten QR-Code zu scannen.</string>
 	<string name="webclient_session_rename">Sitzung umbenennen</string>
 	<string name="webclient_session_label">Neuer Name</string>
 	<string name="webclient_session_start">Sitzung starten</string>
@@ -17,23 +17,26 @@
 	<string name="webclient_disposable">nicht gespeichert</string>
 	<string name="webclient_session_remove">Sitzung entfernen</string>
 	<string name="webclient_welcome_title">Vom PC aus chatten</string>
-	<string name="webclient_welcome_explain">Mit Threema Web können Sie bequem von Ihrem PC oder Notebook aus chatten. Dabei haben Sie vollen Zugriff auf alle Kontakte, Medien und Chats, auch auf frühere Unterhaltungen.\n\n<b>Die gesamte Kommunikation zwischen Handy und PC ist vollständig Ende-zu-Ende verschlüsselt</b> und benutzt eine direkte Verbindung, wenn sich beide Geräte im gleichen Netzwerk befinden.\n\nHinweis: Wenn Threema Web aktiv ist, kann der Batterieverbrauch höher sein. Sie können die Funktion aber jederzeit ein- oder ausschalten.</string>
-	<string name="webclient_launch">Threema Web starten</string>
+	<string name="webclient_welcome_explain">Mit der Desktop-App und dem Web-Client können Sie bequem von Ihrem PC oder Notebook aus chatten. Dabei haben Sie vollen Zugriff auf alle Kontakte, Medien und Chats, auch auf frühere Unterhaltungen.\n\n<b>Die gesamte Kommunikation zwischen Handy und PC ist vollständig Ende-zu-Ende-verschlüsselt</b> und benutzt eine direkte Verbindung, wenn sich beide Geräte in demselben Netzwerk befinden.\n\nHinweis: Wenn die Desktop-App bzw. der Web-Client aktiv ist, kann der Batterieverbrauch höher sein. Sie können die Funktion jederzeit ein- oder ausschalten.</string>
+	<string name="webclient_launch">Desktop-App/Web-Client starten</string>
 	<string name="webclient_qr_scan_message">Scannen Sie den QR-Code, der auf dem PC angezeigt wird.</string>
-	<string name="webclient_invalid_qr_code">Ungültiger Threema Web QR Code</string>
-	<string name="webclient_new_connection_toast">Threema Web-Sitzung gestartet</string>
+	<string name="webclient_invalid_qr_code">Ungültiger QR-Code</string>
+	<string name="webclient_new_connection_toast">Desktop-/Web-Sitzung gestartet</string>
 	<string name="webclient_protocol_error">Protokoll-Fehler</string>
-	<string name="webclient_protocol_version_to_old">Threema Web ist nicht kompatibel mit dieser App. Bitte aktualisieren Sie Threema auf die neueste Version.</string>
-	<string name="webclient_really_start_webclient_by_payload_body">Möchten Sie diese Threema Web-Sitzung jetzt starten?</string>
-	<string name="webclient_cannot_restore">Kann die Threema Web-Sitzung nicht wieder aufnehmen</string>
-	<string name="webclient_disabled">Threema Web ist deaktiviert</string>
+	<string name="webclient_protocol_version_to_old">Die Desktop-App / der Web-Client ist nicht kompatibel mit dieser Android-App. Bitte aktualisieren Sie Threema für Android auf die neueste Version.</string>
+	<string name="webclient_protocol_version_too_new_selfhosted">Ihre App unterstützt diese Version der Desktop-App / von Threema Web nicht. Bitten Sie den Administrator Ihrer Threema-Web-Instanz, auf die neuesten Version von Threema Web zu aktualisieren.</string>
+	<string name="webclient_protocol_version_too_new_threema">Ihre App unterstützt diese Version diese Version der Desktop-App / von Threema Web nicht. Bitte benutzen Sie eine neuere Version von Threema Web / der Desktop-App.</string>
+	<string name="webclient_session_already_exists">Eine Sitzung für diesen QR-Code existiert bereits. Bitte starten Sie Ihren Browser / Ihre Desktop-App neu.</string>
+	<string name="webclient_really_start_webclient_by_payload_body">Möchten Sie diese Sitzung jetzt starten?</string>
+	<string name="webclient_cannot_restore">Kann die Sitzung nicht wieder aufnehmen</string>
+	<string name="webclient_disabled">Desktop/Web ist deaktiviert</string>
 	<string name="webclient_clear_all_sessions">Alle Sitzungen löschen</string>
-	<string name="webclient_clear_all_sessions_confirm">Möchten Sie wirklich alle Threema Web-Sitzungen löschen?</string>
-	<string name="webclient_prefs_debug_tool_summary">Werkzeug, um Probleme beim Aufbau der Threema Web-Verbindung zu analysieren</string>
-	<string name="webclient_diagnostics">Threema Web Diagnose</string>
+	<string name="webclient_clear_all_sessions_confirm">Möchten Sie wirklich alle Sitzungen löschen?</string>
+	<string name="webclient_prefs_debug_tool_summary">Werkzeug, um Probleme beim Aufbau der Desktop-/Web-Verbindung zu analysieren</string>
+	<string name="webclient_diagnostics">Desktop-/Web-Diagnose</string>
 	<string name="webclient_diagnostics_start">Start</string>
-	<string name="webclient_diagnostics_intro">Tippen Sie auf den «Start»-Button um den Test zu starten.</string>
-	<string name="webclient_diagnostics_done">Beendet. Falls Probleme beim Aufbau der Threema Web-Verbindung haben, senden Sie dieses Log bitte an den Threema-Support.</string>
-	<string name="webclient_cannot_start">Threema Web-Sitzung kann nicht gestartet werden</string>
+	<string name="webclient_diagnostics_intro">Tippen Sie auf den «Start»-Button, um den Test zu starten.</string>
+	<string name="webclient_diagnostics_done">Beendet. Falls Probleme beim Aufbau der Desktop-/Web-Verbindung auftreten, senden Sie dieses Log bitte an den Threema-Support.</string>
+	<string name="webclient_cannot_start">Desktop-/Web-Sitzung kann nicht gestartet werden</string>
 	<string name="webclient_constrained_by_mdm">Server wurde nicht durch den Administrator freigegeben.</string>
 </resources>

+ 19 - 19
app/src/main/res/values-es/webclient_strings.xml

@@ -2,12 +2,12 @@
 <resources>
     <string name="webclient_qr_scan_error">Datos de código QR no válidos</string>
     <string name="webclient_init_session">Iniciar sesión</string>
-    <string name="webclient_sessions_really_delete">¿Seguro que quiere borrar esta sesión de Threema Web?</string>
+    <string name="webclient_sessions_really_delete">¿Seguro que quiere eliminar esta sesión de escritorio/web?</string>
     <string name="webclient_last_usage">Usado la última vez: %s</string>
     <string name="webclient_created_at">Creado el: %1$s (%2$s)</string>
     <string name="webclient_active_since">"Activa desde: %s "</string>
-    <string name="webclient_enable">Activar Threema Web</string>
-    <string name="webclient_no_sessions_found">Para conectarse, abra <b>https://web.threema.ch</b> en el navegador del PC y toque en el icono bajo este texto para escanear el código.</string>
+    <string name="webclient_enable">Habilitar aplicación de escritorio/cliente web</string>
+    <string name="webclient_no_sessions_found">Para conectarse, descargue la aplicación de escritorio (<b>https://threema.ch/download</b>) o abra el cliente web (<b>https://web.threema.ch</b>) en su equipo y toque el botón bajo este texto para escanear el código QR que aparece en la pantalla del equipo.</string>
     <string name="webclient_session_rename">Renombrar sesión</string>
     <string name="webclient_session_label">Nuevo nombre</string>
     <string name="webclient_session_start">Comenzar sesión</string>
@@ -17,26 +17,26 @@
     <string name="webclient_unnamed_session">Sesión sin nombre</string>
     <string name="webclient_session_remove">Eliminar sesión</string>
     <string name="webclient_welcome_title">¡Chatee desde el PC!</string>
-    <string name="webclient_welcome_explain">Threema Web le permite chatear desde el PC o portátil ofreciéndole acceso total a todos sus contactos, contenido multimedia y chats, incluso las conversaciones antiguas.\n\n<b>Todas las comunicaciones entre el teléfono y el PC están totalmente encriptadas de extremo a extremo</b> y emplean conexión directa si ambos dispositivos se encuentran en la misma red.\n\nTenga en cuenta que, mientras está activo, Threema Web puede ocasionar un consumo adicional de la batería. Puede activar o desactivar el servicio en todo momento.</string>
-    <string name="webclient_launch">Iniciar Threema Web ahora</string>
+    <string name="webclient_welcome_explain">La aplicación de escritorio y el cliente web le permiten chatear desde el PC o portátil ofreciéndole acceso total a todos sus contactos, contenido multimedia y chats, incluso las conversaciones antiguas.\n\n<b>Todas las comunicaciones entre el teléfono y el PC están totalmente encriptadas de extremo a extremo</b> y emplean conexión directa si ambos dispositivos se encuentran en la misma red.\n\nTenga en cuenta que la aplicación de escritorio y el cliente web pueden ocasionar un consumo adicional de la batería. Puede activar o desactivar el servicio en todo momento.</string>
+    <string name="webclient_launch">Iniciar aplicación de escritorio o cliente web ahora</string>
     <string name="webclient_qr_scan_message">Escanee el código QR mostrado en el PC.</string>
-    <string name="webclient_invalid_qr_code">Código QR de Threema Web no válido</string>
-    <string name="webclient_new_connection_toast">Sesión de Threema Web iniciada</string>
+    <string name="webclient_invalid_qr_code">Código QR no válido</string>
+    <string name="webclient_new_connection_toast">Sesión de escritorio/web iniciada</string>
     <string name="webclient_protocol_error">Error de protocolo</string>
-    <string name="webclient_protocol_version_to_old">La versión de Threema que utiliza no sporta esta versión de Threema Web. Actualice Threema a la última versión.</string>
-    <string name="webclient_protocol_version_too_new_selfhosted">Tu aplicación no admite esta versión de Threema Web. Pide al administrador de tu instancia de Threema Web que actualice a la versión más reciente.</string>
-    <string name="webclient_protocol_version_too_new_threema">Tu aplicación no admite esta versión de Threema Web. Usa una versión más reciente de Threema Web.</string>
-    <string name="webclient_session_already_exists">La sesión del código QR escaneado ya existe. Recargue Threema Web en su navegador e inténtelo de nuevo.</string>
-    <string name="webclient_really_start_webclient_by_payload_body">¿Quieres iniciar esta sesión de Threema Web ahora?</string>
-    <string name="webclient_cannot_restore">No se puede restablecer la sesión de Threema Web</string>
-    <string name="webclient_disabled">Threema Web no está habilitado</string>
-    <string name="webclient_cannot_start">No se puede iniciar la sesión de Threema Web</string>
+    <string name="webclient_protocol_version_to_old">Su aplicación no admite esta versión de la aplicación de escritorio o cliente web. Actualice Threema para Android a la última versión.</string>
+    <string name="webclient_protocol_version_too_new_selfhosted">Su aplicación no admite esta versión de la aplicación de escritorio o cliente web. Descargue la versión más reciente de la aplicación de escritorio o pida al administrador de su cliente web que actualice a la versión más reciente.</string>
+    <string name="webclient_protocol_version_too_new_threema">Su aplicación no admite esta versión de la aplicación de escritorio o cliente web. Use la versión actual de la aplicación de escritorio o cliente web.</string>
+    <string name="webclient_session_already_exists">La sesión del código QR escaneado ya existe. Vuelva a iniciar la aplicación de escritorio o recargue el cliente web e inténtelo de nuevo.</string>
+    <string name="webclient_really_start_webclient_by_payload_body">¿Quiere iniciar esta sesión ahora?</string>
+    <string name="webclient_cannot_restore">No se puede restablecer la sesión</string>
+    <string name="webclient_disabled">Escritorio/Web no está habilitado</string>
+    <string name="webclient_cannot_start">No se puede iniciar la sesión</string>
     <string name="webclient_constrained_by_mdm">Servidor no aprobado por el administrador.</string>
     <string name="webclient_clear_all_sessions">Borra todas las sesiones</string>
-    <string name="webclient_clear_all_sessions_confirm">¿Seguro que quieres detener y eliminar todas las sesiones de Threema Web?</string>
-    <string name="webclient_prefs_debug_tool_summary">Inicie esta herramienta para depurar problemas al preparar una conexión a Threema Web.</string>
-    <string name="webclient_diagnostics">Diagnóstico de Threema Web</string>
+    <string name="webclient_clear_all_sessions_confirm">¿Seguro que quiere detener y eliminar todas las sesiones?</string>
+    <string name="webclient_prefs_debug_tool_summary">Inicia esta herramienta para depurar problemas al establecer una conexión a la aplicación de escritorio o cliente web.</string>
+    <string name="webclient_diagnostics">Diagnóstico de escritorio/web</string>
     <string name="webclient_diagnostics_start">Empezar</string>
     <string name="webclient_diagnostics_intro">Pulsa el botón Empezar para iniciar la prueba.</string>
-    <string name="webclient_diagnostics_done">Listo. Si tiene problemas al establecer la conexión a Threema Web, envíe este registro al servicio de asistencia de Threema.</string>
+    <string name="webclient_diagnostics_done">Listo. Si tiene problemas al establecer la conexión a la aplicación de escritorio o cliente web, envíe este registro al servicio de asistencia de Threema.</string>
 </resources>

+ 1 - 1
app/src/main/res/values-fr/strings.xml

@@ -848,7 +848,7 @@ Veuillez saisir une question pour votre enquête.</string>
     <string name="no_matching_work_contacts">Aucun contact Theema Work vérifié par un administrateur n\'a été trouvé</string>
     <string name="all">Tout</string>
     <string name="webclient_session_stop_all">Tout fermer</string>
-    <string name="webclient_running_sessions">%d session(s) Threema Web active(s)</string>
+    <string name="webclient_running_sessions">%d session(s) active(s)</string>
     <string name="passphrase_service_name">Service de phrase secrète</string>
     <string name="passphrase_service_description">Une notification lorsque la phrase secrète est déverrouillée</string>
     <string name="webclient_service_description">Une notification lorsqu\'une session Threema Web est active</string>

+ 19 - 19
app/src/main/res/values-fr/webclient_strings.xml

@@ -2,12 +2,12 @@
 <resources>
     <string name="webclient_qr_scan_error">Données de code QR invalides</string>
     <string name="webclient_init_session">Initier une nouvelle session</string>
-    <string name="webclient_sessions_really_delete">Voulez-vous vraiment supprimer cette session de Threema Web ?</string>
+    <string name="webclient_sessions_really_delete">Voulez-vous vraiment supprimer cette session Desktop/Web ?</string>
     <string name="webclient_last_usage">Dernière utilisation : %s</string>
     <string name="webclient_created_at">Créé le : %1$s (%2$s)</string>
     <string name="webclient_active_since">Actif depuis : %s</string>
-    <string name="webclient_enable">Activer Threema Web</string>
-    <string name="webclient_no_sessions_found">Pour vous connectez, ouvrez <b>https://web.threema.ch</b> dans le navigateur de votre PC et touchez le bouton ci-dessous pour scanner le code.</string>
+    <string name="webclient_enable">Activer l\'application Desktop/le client Web</string>
+    <string name="webclient_no_sessions_found">Pour vous connecter, téléchargez l\'application Desktop (<b>https://threema.ch/download</b>) ou ouvrez le client Web (<b>https://web.threema.ch</b>) sur votre ordinateur et touchez le bouton ci-dessous pour scanner le code QR affiché sur l\'écran de votre ordinateur.</string>
     <string name="webclient_session_rename">Renommer la session</string>
     <string name="webclient_session_label">Nouveau nom</string>
     <string name="webclient_session_start">Commencer la session</string>
@@ -17,26 +17,26 @@
     <string name="webclient_unnamed_session">Session sans nom</string>
     <string name="webclient_session_remove">Retirer la session</string>
     <string name="webclient_welcome_title">Discutez depuis votre PC !</string>
-    <string name="webclient_welcome_explain">Threema Web vous permet de discuter depuis votre PC ou votre ordinateur portable et d\'accéder à l\'ensemble de vos contacts, fichiers multimédias et conversations, et même à l\'historique de vos conversations.\n\n<b>Toutes les communications entre le téléphone et le PC sont chiffrées de bout en bout</b> et utilisent une connexion directe si le téléphone et le PC se trouvent sur le même réseau.\n\nRemarque : L\'application Threema Web peut vider rapidement la batterie quand elle est active. Vous pouvez l\'activer ou le désactiver à tout moment.</string>
-    <string name="webclient_launch">Lancer Threema Web maintenant</string>
+    <string name="webclient_welcome_explain">L\'application Desktop et le client Web vous permettent de discuter depuis votre PC de bureau ou PC portable et d\'accéder à l\'ensemble de vos contacts, fichiers multimédias et conversations, et même à l\'historique de vos conversations.\n\n<b>Toutes les communications entre le téléphone et le PC sont chiffrées de bout en bout</b> et utilisent une connexion directe si le téléphone et le PC se trouvent sur le même réseau.\n\nRemarque : L\'application Desktop et le client Web peuvent vider rapidement la batterie pendant leur activité. Vous pouvez activer ou désactiver chacun d\'entre eux à tout moment.</string>
+    <string name="webclient_launch">Lancer l\'application Desktop/le client Web</string>
     <string name="webclient_qr_scan_message">Veuillez scanner le code QR affiché sur le PC.</string>
-    <string name="webclient_invalid_qr_code">Code QR Threema Web invalide</string>
-    <string name="webclient_new_connection_toast">Session Threema Web lancée</string>
+    <string name="webclient_invalid_qr_code">Code QR invalide</string>
+    <string name="webclient_new_connection_toast">Session Desktop/Web lancée</string>
     <string name="webclient_protocol_error">Erreur de protocole</string>
-    <string name="webclient_protocol_version_to_old">Votre application ne prend pas en charge cette version de Threema Web. Veuillez mettre à jour vers la dernière version de Threema.</string>
-    <string name="webclient_protocol_version_too_new_selfhosted">Votre application ne prend pas en charge cette version de Threema Web. Veuillez demander à l\'administrateur de votre instance Threema Web de passer à la dernière version.</string>
-    <string name="webclient_protocol_version_too_new_threema">Votre application ne prend pas en charge cette version de Threema Web. Veuillez utiliser une version plus récente de Threema Web.</string>
-    <string name="webclient_session_already_exists">La session du code QR que vous avez scanné existe déjà. Veuillez recharger Threema Web dans votre navigateur web et réessayer.</string>
-    <string name="webclient_really_start_webclient_by_payload_body">Voulez-vous lancer cette session Threema Web maintenant ?</string>
-    <string name="webclient_cannot_restore">Impossible de restaurer la session Threema Web</string>
-    <string name="webclient_disabled">Threema Web n\'est pas activé</string>
-    <string name="webclient_cannot_start">Impossible de lancer la session Threema Web</string>
+    <string name="webclient_protocol_version_to_old">Votre application ne prend pas en charge cette version de l\'application Desktop ou du client Web. Veuillez mettre à jour vers la dernière version de Threema pour Android.</string>
+    <string name="webclient_protocol_version_too_new_selfhosted">Votre application ne prend pas en charge cette version de l\'application Desktop ou du client Web. Veuillez télécharger la dernière version de l\'application Desktop ou demandez à l\'administrateur de votre client web de passer à la dernière version.</string>
+    <string name="webclient_protocol_version_too_new_threema">Votre application ne prend pas en charge cette version de l\'application Desktop ou du client Web. Veuillez utiliser la version actuelle de l\'application Desktop ou du client Web.</string>
+    <string name="webclient_session_already_exists">La session du code QR que vous avez scanné existe déjà. Veuillez relancer l\'application Desktop ou actualiser le client Web puis réessayer.</string>
+    <string name="webclient_really_start_webclient_by_payload_body">Voulez-vous lancer cette session maintenant ?</string>
+    <string name="webclient_cannot_restore">Impossible de restaurer la session</string>
+    <string name="webclient_disabled">Desktop/Web non activé</string>
+    <string name="webclient_cannot_start">Impossible de lancer la session</string>
     <string name="webclient_constrained_by_mdm">Le serveur n\'est pas approuvé par l\'administrateur.</string>
     <string name="webclient_clear_all_sessions">Retirer toutes les sessions</string>
-    <string name="webclient_clear_all_sessions_confirm">Voulez-vous vraiment arrêter et retirer toutes les sessions Threema Web ?</string>
-    <string name="webclient_prefs_debug_tool_summary">Lancez cet outil pour déboguer les problèmes de configuration d\'une connexion Threema Web</string>
-    <string name="webclient_diagnostics">Diagnostics Threema Web</string>
+    <string name="webclient_clear_all_sessions_confirm">Voulez-vous vraiment arrêter et retirer toutes les sessions ?</string>
+    <string name="webclient_prefs_debug_tool_summary">Lancez cet outil pour déboguer les problèmes de configuration d\'une connexion à l\'application Desktop ou au client Web</string>
+    <string name="webclient_diagnostics">Diagnostics Desktop/Web</string>
     <string name="webclient_diagnostics_start">Commencer</string>
     <string name="webclient_diagnostics_intro">Appuyez sur le bouton « Commencer » pour lancer le test.</string>
-    <string name="webclient_diagnostics_done">Terminé. Si vous rencontrez des problèmes lors de l\'établissement d\'une connexion Threema Web, veuillez envoyer ce journal à l\'assistance de Threema.</string>
+    <string name="webclient_diagnostics_done">Terminé. Si vous rencontrez des problèmes lors de l\'établissement d\'une connexion à l\'application Desktop ou au client Web, veuillez envoyer ce journal à l\'assistance de Threema.</string>
 </resources>

+ 1 - 1
app/src/main/res/values-it/strings.xml

@@ -868,7 +868,7 @@ messaggi ogni 15 minuti.</string>
     <string name="no_matching_work_contacts">Non è stato trovato nessun contatto Threema Work verificato dall\'amministrazione</string>
     <string name="all">Tutto</string>
     <string name="webclient_session_stop_all">Chiudi tutto</string>
-    <string name="webclient_running_sessions">%d sessione/i Threema Web attiva/e</string>
+    <string name="webclient_running_sessions">%d sessione/i attiva/e</string>
     <string name="passphrase_service_name">Servizio passphrase</string>
     <string name="passphrase_service_description">Notifica in caso di sblocco di passphrase</string>
     <string name="webclient_service_description">Notifica quando è attiva una sessione Threema Web</string>

+ 19 - 19
app/src/main/res/values-nl-rNL/webclient_strings.xml

@@ -2,12 +2,12 @@
 <resources>
     <string name="webclient_qr_scan_error">Ongeldige QR-codegegevens</string>
     <string name="webclient_init_session">Nieuwe sessie beginnen</string>
-    <string name="webclient_sessions_really_delete">Weet u zeker dat u deze Threema Web-sessie wilt verwijderen?</string>
+    <string name="webclient_sessions_really_delete">Weet u zeker dat u deze desktop-/web-sessie wilt verwijderen?</string>
     <string name="webclient_last_usage">Laatste gebruik: %s</string>
     <string name="webclient_created_at">Aangemaakt op: %1$s (%2$s)</string>
     <string name="webclient_active_since">Actief sinds: %s</string>
-    <string name="webclient_enable">Threema Web inschakelen</string>
-    <string name="webclient_no_sessions_found">Om te verbinden, open <b>https://web.threema.ch</b> in de browser op uw pc en tik op de knop hieronder om de code te scannen.</string>
+    <string name="webclient_enable">Desktop-app/Webclient inschakelen</string>
+    <string name="webclient_no_sessions_found">Om te verbinden, download de desktop-app (<b>https://threema.ch/download</b> of open de webclient (<b>https://web.threema.ch</b> op uw pc en tik op de knop hieronder om de QR-code op het computerscherm te scannen.</string>
     <string name="webclient_session_rename">Sessie hernoemen</string>
     <string name="webclient_session_label">Nieuwe naam</string>
     <string name="webclient_session_start">Sessie starten</string>
@@ -17,26 +17,26 @@
     <string name="webclient_unnamed_session">Anonieme sessie</string>
     <string name="webclient_session_remove">Sessie verwijderen</string>
     <string name="webclient_welcome_title">Chatten via uw pc!</string>
-    <string name="webclient_welcome_explain">Met Threema Web kunt u chatten via uw pc of notebook terwijl u volledig toegang hebt tot uw contactpersonen, media en chats, zelfs eerdere gesprekken.\n\n<b>Alle communicatie tussen de telefoon en pc is volledig end-to-end versleuteld</b> en verloopt via een directe verbinding als de telefoon en pc deel uitmaken van hetzelfde netwerk.\n\nLet op: Threema Web zorgt voor extra batterijverbruik als het actief is. U kunt het op elk moment in- of uitschakelen.</string>
-    <string name="webclient_launch">Threema Web opstarten</string>
+    <string name="webclient_welcome_explain">Met de desktop-app en de webclient kunt u chatten via uw pc of notebook terwijl u volledig toegang hebt tot uw contactpersonen, media en chats, zelfs eerdere gesprekken.\n\n<b>Alle communicatie tussen de telefoon en pc is volledig end-to-end versleuteld</b> en verloopt via een directe verbinding als de telefoon en pc deel uitmaken van hetzelfde netwerk.\n\nLet op: de desktop-app/webclient zorgt voor extra batterijverbruik als het actief is. U kunt deze op elk moment in- of uitschakelen.</string>
+    <string name="webclient_launch">Desktop-app/Webclient opstarten</string>
     <string name="webclient_qr_scan_message">Scan de QR-code die op de pc wordt weergegeven.</string>
-    <string name="webclient_invalid_qr_code">Ongeldige QR-code voor Threema Web</string>
-    <string name="webclient_new_connection_toast">Threema Web-sessie gestart</string>
+    <string name="webclient_invalid_qr_code">Ongeldige QR-code</string>
+    <string name="webclient_new_connection_toast">Desktop-/Websessie gestart</string>
     <string name="webclient_protocol_error">Protocolfout</string>
-    <string name="webclient_protocol_version_to_old">Uw app ondersteunt deze versie van Threema Web niet. Werk Threema a.u.b. bij naar de laatste versie.</string>
-    <string name="webclient_protocol_version_too_new_selfhosted">Uw app ondersteunt deze versie van Threema Web niet. Vraag uw administrator om uw instance van Threema Web naar de laatste versie bij te werken.</string>
-    <string name="webclient_protocol_version_too_new_threema">Uw app ondersteunt deze versie van Threema Web niet. Gebruik een nieuwere versie van Threema Web.</string>
-    <string name="webclient_session_already_exists">De sessie van de gescande QR-code bestaat al. Herlaad Threema Web in uw webbrowser en probeer het opnieuw.</string>
-    <string name="webclient_really_start_webclient_by_payload_body">Wilt u deze Threema Web-sessie starten?</string>
-    <string name="webclient_cannot_restore">Kan Threema Web-sessie niet herstellen</string>
-    <string name="webclient_disabled">Threema Web is niet ingeschakeld</string>
-    <string name="webclient_cannot_start">Kan Threema Web-sessie niet starten</string>
+    <string name="webclient_protocol_version_to_old">Uw app ondersteunt deze versie van de desktop-app/webclient niet. Werk Threema voor Android a.u.b. bij naar de laatste versie.</string>
+    <string name="webclient_protocol_version_too_new_selfhosted">Uw app ondersteunt deze versie van de desktop-app/webclient niet. Download de laatste versie van de desktop-app of vraag uw administrator om uw webclient naar de laatste versie op te waarderen.</string>
+    <string name="webclient_protocol_version_too_new_threema">Uw app ondersteunt deze versie van de desktop-app/webclient niet. Gebruik de nieuwste versie van de desktop-app/webclient.</string>
+    <string name="webclient_session_already_exists">De sessie van de gescande QR-code bestaat al. Herlaad de desktop-app/de webclient en probeer het opnieuw.</string>
+    <string name="webclient_really_start_webclient_by_payload_body">Wilt u deze sessie starten?</string>
+    <string name="webclient_cannot_restore">Kan de sessie niet herstellen</string>
+    <string name="webclient_disabled">Desktop/Web is niet ingeschakeld</string>
+    <string name="webclient_cannot_start">Kan de sessie niet starten</string>
     <string name="webclient_constrained_by_mdm">Server is niet goedgekeurd door de administrator.</string>
     <string name="webclient_clear_all_sessions">Alle sessies wissen</string>
-    <string name="webclient_clear_all_sessions_confirm">Weet u zeker dat u wilt stoppen en alle sessies van Threema Web wilt verwijderen?</string>
-    <string name="webclient_prefs_debug_tool_summary">Gebruik dit hulpprogramma om problemen met het configureren van een Threema Web-verbindingen op te lossen</string>
-    <string name="webclient_diagnostics">Threema Web Diagnostics</string>
+    <string name="webclient_clear_all_sessions_confirm">Weet u zeker dat u wilt stoppen en alle sessies wilt verwijderen?</string>
+    <string name="webclient_prefs_debug_tool_summary">Gebruik dit hulpprogramma om problemen met het configureren van een verbindingen met de desktop-app of webclient op te lossen.</string>
+    <string name="webclient_diagnostics">Desktop-/Web-diagnostics</string>
     <string name="webclient_diagnostics_start">Start</string>
     <string name="webclient_diagnostics_intro">Druk op de knop Start om de test uit te voeren.</string>
-    <string name="webclient_diagnostics_done">Klaar. Als u problemen ondervindt met het opzetten van een Threema Web-verbinding, stuur dit logbestand dan naar de Threema-klantenservice.</string>
+    <string name="webclient_diagnostics_done">Klaar. Als u problemen ondervindt met het opzetten van de verbinding met de desktop-app of webclient, stuur dit logbestand dan naar de Threema-klantenservice.</string>
 </resources>

+ 19 - 19
app/src/main/res/values-pl/webclient_strings.xml

@@ -2,12 +2,12 @@
 <resources>
     <string name="webclient_qr_scan_error">Nieprawidłowe dane kodu QR</string>
     <string name="webclient_init_session">Rozpocznij nową sesję*</string>
-    <string name="webclient_sessions_really_delete">Czy na pewno chcesz usunąć tę sesję Threema Web?</string>
+    <string name="webclient_sessions_really_delete">Na pewno chcesz usunąć tę sesję Desktop/Web?</string>
     <string name="webclient_last_usage">Ostatnia wizyta: %s</string>
     <string name="webclient_created_at">Utworzono: %1$s (%2$s)</string>
     <string name="webclient_active_since">Aktywny od: %s</string>
-    <string name="webclient_enable">Włącz Threema Web</string>
-    <string name="webclient_no_sessions_found">Aby się połączyć, odwiedź adres <b>https://web.threema.ch</b> w przeglądarce swojego komputera i dotknij przycisku poniżej, aby zeskanować kod.</string>
+    <string name="webclient_enable">Włącz aplikację komputerową/ klienta sieciowego</string>
+    <string name="webclient_no_sessions_found">Aby się połączyć, pobierz aplikację komputerową (<b>https://threema.ch/download</b>) lub otwórz klienta sicieowego(<b>https://web.threema.ch</b>) w swoim komputerze i dotknij poniższego przycisku, aby zeskanować kod QR wyświetlony na ekranie Twojego komputera.</string>
     <string name="webclient_session_rename">Zmień nazwę sesji</string>
     <string name="webclient_session_label">Nowa nazwa</string>
     <string name="webclient_session_start">Rozpocznij sesję</string>
@@ -17,26 +17,26 @@
     <string name="webclient_unnamed_session">Sesja bez nazwy</string>
     <string name="webclient_session_remove">Usuń sesję</string>
     <string name="webclient_welcome_title">Rozmawiaj ze swojego komputera!</string>
-    <string name="webclient_welcome_explain">Threema Web pozwala Ci rozmawiać ze swojego komputera stacjonarnego lub notebooka, dając Ci jednocześnie dostęp do wszystkich Twoich kontaktów, multimediów, chatów, a nawet wcześniejszych konwersacji.\n\n<b>Wszystkie transmisje danych pomiędzy telefonem i komputerem są w pełni szyfrowane na zasadzie end to end</b> i wykorzystują bezpośrednie połączenie, jeśli telefon i komputer znajdują się w tej samej sieci.\n\nUwaga: W czasie aktywności Threema Web może powodować większe zużycie baterii. Możesz włączyć lub wyłączyć aplikację w dowolnej chwili.</string>
-    <string name="webclient_launch">Uruchom Threema Web teraz</string>
+    <string name="webclient_welcome_explain">Aplikacja komputerowa i klient sieciowy umożliwiają rozmowy  z komputera stacjonarnego lub notebooka, dając jednocześnie użytkownikowi dostęp do wszystkich kontaktów, multimediów, chatów, a nawet wcześniejszych rozmów.\n\n<b>Wszystkie transmisje danych pomiędzy telefonem i komputerem są w całości szyfrowane od końca do końca</b> i wykorzystują bezpośrednie połączenie, jeśli telefon i komputer są w tej samej sieci.\n\nUwaga: W czasie aktywności Web Desktop/ klienta sieciowego może dojść do większego  zużycia baterii. Możesz włączyć lub wyłączyć tę aplikację w każdej chwili.</string>
+    <string name="webclient_launch">Uruchom aplikację komputerową / klienta sieci teraz</string>
     <string name="webclient_qr_scan_message">Zeskanuj kod QR wyświetlony w komputerze.</string>
-    <string name="webclient_invalid_qr_code">Nieprawidłowy kod QR Threema Web</string>
-    <string name="webclient_new_connection_toast">Sesja Threema Web rozpoczęta</string>
+    <string name="webclient_invalid_qr_code">Nieprawidłowy kod QR</string>
+    <string name="webclient_new_connection_toast">Zainicjowano sesję Desktop/Web</string>
     <string name="webclient_protocol_error">Błąd protokołu</string>
-    <string name="webclient_protocol_version_to_old">Twoja aplikacja nie obsługuje tej wersji Threema Web. Zaktualizuj Threema do najnowszej wersji.</string>
-    <string name="webclient_protocol_version_too_new_selfhosted">Twoja aplikacja nie obsługuje tej wersji Threema Web. Poproś administratora twojej kopii Threema Web o dokonanie aktualizacji do najnowszej wersji.</string>
-    <string name="webclient_protocol_version_too_new_threema">Twoja aplikacja nie obsługuje tej wersji Threema Web. Użyj nowej wersji Threema Web.</string>
-    <string name="webclient_session_already_exists">Sesja zeskanowanego kodu QR już istnieje. Przeładuj Threema Web w przeglądarce i spróbuj ponownie.</string>
-    <string name="webclient_really_start_webclient_by_payload_body">Czy chcesz teraz rozpocząć tę sesję Threema Web?</string>
-    <string name="webclient_cannot_restore">Nie można przywrócić sesji Threema Web</string>
-    <string name="webclient_disabled">Threema Web nie jest włączona</string>
-    <string name="webclient_cannot_start">Nie można uruchomić sesji Threema Web</string>
+    <string name="webclient_protocol_version_to_old">Twoja aplikacja nie obsługuje tej wersji Web Desktop/klienta sieciowego. Zaktualizuj Threema dla systemu Android do najnowszej wersji.</string>
+    <string name="webclient_protocol_version_too_new_selfhosted">Twoja aplikacja nie obsługuje tej wersji aplikacji komputerowej/ klienta sieciowego. Pobierz najnowszą wersję aplikacji komputerowej lub poproś administratora klienta sieciowego o zaktualizowanie go do najnowszej wersji.</string>
+    <string name="webclient_protocol_version_too_new_threema">Twoja aplikacja nie obsługuje tej wersji aplikacji komputerowej/klienta sieciowego. Użyj aktualnej wersji Web/ Desktop/klienta sieciowego.</string>
+    <string name="webclient_session_already_exists">Trwa już sesja dla zeskanowanego kodu QR. uruchom ponownie aplikację komputerową/ przeładuj klienta sieciowego i spróbuj ponownie.</string>
+    <string name="webclient_really_start_webclient_by_payload_body">Chcesz teraz zainicjować tę sesję?</string>
+    <string name="webclient_cannot_restore">Nie można przywrócić sesji</string>
+    <string name="webclient_disabled">Desktop/Web nie jest włączona</string>
+    <string name="webclient_cannot_start">Nie można zainicjować sesji</string>
     <string name="webclient_constrained_by_mdm">Serwer nie został zatwierdzony przez administratora.</string>
     <string name="webclient_clear_all_sessions">Wyczyść wszystkie sesje</string>
-    <string name="webclient_clear_all_sessions_confirm">Czy na pewno chcesz zatrzymać i usunąć wszystkie sesje Threema Web?</string>
-    <string name="webclient_prefs_debug_tool_summary">Uruchom to narzędzie, aby rozpoznać problemy z połączeniem Threema Web</string>
-    <string name="webclient_diagnostics">Diagnostyka Threema Web</string>
+    <string name="webclient_clear_all_sessions_confirm">Na pewno chcesz przerwać i usunąć wszystkie sesje?</string>
+    <string name="webclient_prefs_debug_tool_summary">Uruchom to narzędzie, aby usunąć problemy z nawiązywaniem połączenia z aplikacją komputerową lub klientem sieciowym.</string>
+    <string name="webclient_diagnostics">Diagnostyka Desktop/Web</string>
     <string name="webclient_diagnostics_start">Start</string>
     <string name="webclient_diagnostics_intro">Wciśnij przycisk Start, aby rozpocząć test.</string>
-    <string name="webclient_diagnostics_done">Gotowe. Jeśli masz problemy z ustanowieniem połączenia Threema Web, wyślij ten wyniki do działu wsparcia Threema.</string>
+    <string name="webclient_diagnostics_done">Gotowe. W razie problemów z nawiązaniem połączenia z aplikacją komputerową lub klientem sieciowym  skontaktuj się z działem pomocy Threema.</string>
 </resources>

+ 1 - 1
app/src/main/res/values-pt-rBR/strings.xml

@@ -853,7 +853,7 @@ ficará órfã. Os outros membros ainda poderão conversar, mas não serão mais
     <string name="no_matching_work_contacts">Nenhum contato do Threema Work verificado por adm. encontrado</string>
     <string name="all">Tudo</string>
     <string name="webclient_session_stop_all">Fechar tudo</string>
-    <string name="webclient_running_sessions">%d sessão(s) do Threema Web em operação</string>
+    <string name="webclient_running_sessions">%d sessão(s) em operação</string>
     <string name="passphrase_service_name">Serviço de frase secreta</string>
     <string name="passphrase_service_description">Notificar quando a frase secreta for desbloqueada</string>
     <string name="webclient_service_description">Notificar quando a sessão do Threema Web estiver ativa</string>

+ 19 - 19
app/src/main/res/values-pt-rBR/webclient_strings.xml

@@ -2,12 +2,12 @@
 <resources>
     <string name="webclient_qr_scan_error">Dados inválidos do código QR</string>
     <string name="webclient_init_session">Iniciar nova sessão</string>
-    <string name="webclient_sessions_really_delete">Deseja realmente excluir esta sessão do Threema Web?</string>
+    <string name="webclient_sessions_really_delete">Deseja mesmo excluir esta sessão de desktop/web?</string>
     <string name="webclient_last_usage">Última utilização: %s</string>
     <string name="webclient_created_at">Criado em: %1$s (%2$s)</string>
     <string name="webclient_active_since">Ativo desde: %s</string>
-    <string name="webclient_enable">Ativar Threema Web</string>
-    <string name="webclient_no_sessions_found">Para conectar, abra <b>https://web.threema.ch</b> no navegador do seu PC e toque no botão abaixo para escanear o código.</string>
+    <string name="webclient_enable">Ativar aplicativo para desktop/cliente web</string>
+    <string name="webclient_no_sessions_found">Para conectar, baixe o aplicativo para desktop (<b>https://threema.ch/download</b>) ou abra o cliente web <b>https://web.threema.ch</b> no seu computador e toque no botão abaixo para escanear o código QR exibido na tela do seu computador.</string>
     <string name="webclient_session_rename">Renomear sessão</string>
     <string name="webclient_session_label">Novo nome</string>
     <string name="webclient_session_start">Iniciar sessão</string>
@@ -17,26 +17,26 @@
     <string name="webclient_unnamed_session">Sessão sem nome</string>
     <string name="webclient_session_remove">Remover sessão</string>
     <string name="webclient_welcome_title">Converse de seu PC!</string>
-    <string name="webclient_welcome_explain">O Threema Web possibilita que você bata-papo de seu PC ou notebook enquanto fornece acesso completo a todos os seus contatos, mídia e bate-papos, inclusive conversas antigas.\n\n<b>Toda a comunicação entre telefone e PC é integralmente criptografada ponta a ponta</b> e usa uma conexão direta se tanto o seu telefone quanto o seu PC estiverem na mesma rede.\n\nObservação: o Threema Web pode causar uso adicional da bateria enquanto estiver ativo. Você pode ativar ou desativa-lo a qualquer momento.</string>
-    <string name="webclient_launch">Abra o Threema Web agora</string>
+    <string name="webclient_welcome_explain">O aplicativo para desktop e o cliente web possibilitam que você envie mensagens do seu PC ou notebook enquanto fornece acesso completo a todos os seus contatos, mídia e conversas, inclusive conversas antigas.\n\n<b>Toda a comunicação entre telefone e PC é integralmente criptografada de ponta a ponta</b> e usa uma conexão direta caso seu celular e PC estejam na mesma rede.\n\nObservação: o aplicativo para desktop/cliente web pode causar uso adicional da bateria enquanto estiver ativo. Você pode ativar ou desativa-lo a qualquer momento.</string>
+    <string name="webclient_launch">Abra o aplicativo para desktop/cliente web agora</string>
     <string name="webclient_qr_scan_message">Escaneie o código QR exibido no PC.</string>
-    <string name="webclient_invalid_qr_code">Código QR inválido do Threema Web</string>
-    <string name="webclient_new_connection_toast">Sessão do Threema Web iniciada</string>
+    <string name="webclient_invalid_qr_code">Código QR inválido</string>
+    <string name="webclient_new_connection_toast">Sessão de desktop/web iniciada</string>
     <string name="webclient_protocol_error">Erro de protocolo</string>
-    <string name="webclient_protocol_version_to_old">Seu aplicativo não suporta esta versão do Threema Web. Atualize o Threema à versão mais recente.</string>
-    <string name="webclient_protocol_version_too_new_selfhosted">Seu aplicativo não suporta essa versão do Threema Web. Peça para o administrador da sua instância dou Threema Web atualizar para a versão mais recente.</string>
-    <string name="webclient_protocol_version_too_new_threema">Seu aplicativo não suporta essa versão do Threema Web. Use uma versão mais nova do Threema Web.</string>
-    <string name="webclient_session_already_exists">A sessão do código QR que você escaneou já existe. Recarregue o Threema Web no seu navegador e tente novamente.</string>
-    <string name="webclient_really_start_webclient_by_payload_body">Gostaria de iniciar a sessão do Threema Web agora?</string>
-    <string name="webclient_cannot_restore">Não é possível restaurar a sessão do Threema</string>
-    <string name="webclient_disabled">O Threema Web não está ativado</string>
-    <string name="webclient_cannot_start">Não é possível iniciar a sessão do Threema Web</string>
+    <string name="webclient_protocol_version_to_old">Seu aplicativo não suporta esta versão do aplicativo para desktop/cliente web. Baixe a versão mais recente do Threema para Android.</string>
+    <string name="webclient_protocol_version_too_new_selfhosted">Seu aplicativo não suporta essa versão do aplicativo para desktop/cliente web. Baixe a versão mais recente do aplicativo para desktop ou peça para o administrador do seu cliente web para instalar a versão mais recente.</string>
+    <string name="webclient_protocol_version_too_new_threema">Seu aplicativo não suporta essa versão do aplicativo para desktop/cliente web. Use a versão mais nova do aplicativo para desktop/cliente web.</string>
+    <string name="webclient_session_already_exists">A sessão do código QR que você escaneou já existe. Recarregue o aplicativo para desktop/cliente web e tente novamente.</string>
+    <string name="webclient_really_start_webclient_by_payload_body">Gostaria de iniciar esta sessão agora?</string>
+    <string name="webclient_cannot_restore">Não é possível restaurar a sessão</string>
+    <string name="webclient_disabled">Desktop/Web não ativado</string>
+    <string name="webclient_cannot_start">Impossível iniciar a sessão</string>
     <string name="webclient_constrained_by_mdm">O servidor não está aprovado pelo administrador.</string>
     <string name="webclient_clear_all_sessions">Limpar todas as sessões</string>
-    <string name="webclient_clear_all_sessions_confirm">Tem certeza de que deseja interromper e remover todas as sessões do Threema Web?</string>
-    <string name="webclient_prefs_debug_tool_summary">Inicie essa ferramenta para depurar problemas com a configuração de uma conexão do Threema Web</string>
-    <string name="webclient_diagnostics">Diagnóstico Threema Web</string>
+    <string name="webclient_clear_all_sessions_confirm">Tem certeza de que deseja interromper e remover todas as sessões?</string>
+    <string name="webclient_prefs_debug_tool_summary">Inicie essa ferramenta para depurar problemas com a configuração de uma conexão com o aplicativo para desktop ou o cliente web</string>
+    <string name="webclient_diagnostics">"Diagnóstico para Desktop/Web "</string>
     <string name="webclient_diagnostics_start">Iniciar</string>
     <string name="webclient_diagnostics_intro">Pressione o botão Iniciar para começar o teste.</string>
-    <string name="webclient_diagnostics_done">Pronto. Se você tiver problemas com o estabelecimento da conexão do Threema Web, envie esse registro para o suporte do Threema.</string>
+    <string name="webclient_diagnostics_done">Pronto. Se você tiver problemas com o estabelecimento da conexão com o aplicativo para desktop ou com o cliente web, envie este log para o suporte do Threema.</string>
 </resources>

+ 1 - 1
app/src/main/res/values-rm/strings.xml

@@ -843,7 +843,7 @@ Endatescha in pled-clav per tes backup da datas.</string>
     <string name="no_matching_work_contacts">Chattà nagins contacts da Threema Work controllads da l\'administratur</string>
     <string name="all">Tuts</string>
     <string name="webclient_session_stop_all">Terminar tuts</string>
-    <string name="webclient_running_sessions">%d sesida(s) da Threema Web activa(s)</string>
+    <string name="webclient_running_sessions">%d sesida(s) activa(s)</string>
     <string name="passphrase_service_name">Servetsch da la frasa secreta</string>
     <string name="passphrase_service_description">Avisar, en cas che la frasa secreta vegn debloccada</string>
     <string name="webclient_service_description">Avisar, sch\'ina sesida da Threema Web è activa</string>

+ 18 - 18
app/src/main/res/values-ru/webclient_strings.xml

@@ -2,12 +2,12 @@
 <resources>
     <string name="webclient_qr_scan_error">Недействительные данные QR кода</string>
     <string name="webclient_init_session">Начать новую сессию</string>
-    <string name="webclient_sessions_really_delete">Вы действительно хотите удалить эту сессию Threema Web?</string>
+    <string name="webclient_sessions_really_delete">Вы действительно хотите удалить эту сессию версии для ПК/веб-версии?</string>
     <string name="webclient_last_usage">Последнее использование: %s</string>
     <string name="webclient_created_at">Время создания: %1$s (%2$s)</string>
     <string name="webclient_active_since">Активно с: %s</string>
-    <string name="webclient_enable">Включить Threema Web</string>
-    <string name="webclient_no_sessions_found">Для подключения, зайдите на сайт <b>https://web.threema.ch</b> с вашего компьютера и нажмите кнопку для сканирования QR-кода.</string>
+    <string name="webclient_enable">Включить приложение для ПК / веб-клиент</string>
+    <string name="webclient_no_sessions_found">Для подключения загрузите приложение для ПК (<b>https://threema.ch/download</b>) или откройте веб-клиент (<b>https://web.threema.ch</b>) на компьютере и нажмите кнопку ниже, чтобы сканировать QR-код на экране компьютера.</string>
     <string name="webclient_session_rename">Переименовать сессию</string>
     <string name="webclient_session_label">Новое имя</string>
     <string name="webclient_session_start">Начать сессию</string>
@@ -17,26 +17,26 @@
     <string name="webclient_unnamed_session">Безымянная сессия</string>
     <string name="webclient_session_remove">Удалить сессию</string>
     <string name="webclient_welcome_title">Общайтесь с вашего компьютера!</string>
-    <string name="webclient_welcome_explain">Threema Web позволяет общаться с вашего компьютера или ноутбука, давая вам полный доступ ко всем контактам, мультимедиа и чатам.\n\n<b>Все коммуникации между телефоном и компьютером защищены сквозным шифрованием</b> и используют прямое подключение, если телефон и компьютер находятся в одной сети.\n\nОбратите внимание: Threema Web может вызвать дополнительный разряд батареи, пока она активна. Вы можете включить или отключить ее в любое время.</string>
-    <string name="webclient_launch">Запустить Threema Web</string>
+    <string name="webclient_welcome_explain">Приложение для ПК и веб-клиент позволяют общаться с вашего компьютера или ноутбука, давая вам полный доступ ко всем контактам, мультимедиа и чатам.\n\n<b>Все коммуникации между телефоном и компьютером защищены сквозным шифрованием</b> и используют прямое подключение, если телефон и компьютер находятся в одной сети.\n\nОбратите внимание: приложение для ПК / веб-клиент может вызвать дополнительный разряд батареи, пока сессия активна. Вы можете включить или отключить приложение в любое время.</string>
+    <string name="webclient_launch">Запустить приложение для ПК / веб-клиент</string>
     <string name="webclient_qr_scan_message">Пожалуйста, отсканируйте QR-код, отображаемый на компьютере.</string>
     <string name="webclient_invalid_qr_code">Неправильный QR-код</string>
-    <string name="webclient_new_connection_toast">Сессия Threema Web запущена</string>
+    <string name="webclient_new_connection_toast">Сессия приложения для ПК/веб-клиента запущена</string>
     <string name="webclient_protocol_error">Ошибка протокола</string>
-    <string name="webclient_protocol_version_to_old">Ваше приложение не поддерживает данную версию Threema Web. Пожалуйста, обновите Threema до последней версии.</string>
-    <string name="webclient_protocol_version_too_new_selfhosted">Ваше приложение не поддерживает эту версию Threema Web. Попросите администратора своего экземпляра Threema Web перейти на последнюю версию.</string>
-    <string name="webclient_protocol_version_too_new_threema">Ваше приложение не поддерживает эту версию Threema Web. Используйте более новую версию Threema Web.</string>
-    <string name="webclient_session_already_exists">Сеанс, соответствующий сканированному вами QR-коду, уже существует. Перезагрузите Threema Web в веб-браузере и повторите попытку.</string>
-    <string name="webclient_really_start_webclient_by_payload_body">Хотите запустить эту сессию Threema Web?</string>
-    <string name="webclient_cannot_restore">Не удается восстановить сессию Threema Web</string>
-    <string name="webclient_disabled">служба Threema Web не активирована</string>
-    <string name="webclient_cannot_start">Не удается запустить сеанс Threema Web</string>
+    <string name="webclient_protocol_version_to_old">Ваше приложение не поддерживает данную версию приложения для ПК / веб-клиента. Обновите Threema для Android до последней версии.</string>
+    <string name="webclient_protocol_version_too_new_selfhosted">Ваше приложение не поддерживает данную версию данную версию приложения для ПК / веб-клиента. Загрузите последнюю версию приложения для ПК или попросите администратора веб-клиента перейти на последнюю версию.</string>
+    <string name="webclient_protocol_version_too_new_threema">Ваше приложение не поддерживает данную версию приложения для ПК / веб-клиента. Используйте более новую версию приложения для ПК / веб-клиента.</string>
+    <string name="webclient_session_already_exists">Сессия, соответствующая сканированному вами QR-коду, уже существует. Перезапустите приложение для ПК / перезагрузите веб-клиент и повторите попытку.</string>
+    <string name="webclient_really_start_webclient_by_payload_body">Хотите запустить эту сессию?</string>
+    <string name="webclient_cannot_restore">Не удается восстановить сессию</string>
+    <string name="webclient_disabled">Программа для ПК/веб-версия не активирована</string>
+    <string name="webclient_cannot_start">Не удается запустить сессию</string>
     <string name="webclient_constrained_by_mdm">Сервер не утвержден администратором.</string>
     <string name="webclient_clear_all_sessions">Очистить все сессии</string>
-    <string name="webclient_clear_all_sessions_confirm">Действительно остановить и удалить все сессии Threema Web?</string>
-    <string name="webclient_prefs_debug_tool_summary">Запустите это средство для отладки неполадок с настройкой соединения Threema Web</string>
-    <string name="webclient_diagnostics">Диагностика Threema Web</string>
+    <string name="webclient_clear_all_sessions_confirm">Действительно остановить и удалить все сессии?</string>
+    <string name="webclient_prefs_debug_tool_summary">Запустите это средство для отладки неполадок с настройкой соединения с приложением для ПК или веб-клиентом</string>
+    <string name="webclient_diagnostics">Диагностика приложения для ПК/веб-клиента</string>
     <string name="webclient_diagnostics_start">Пуск</string>
     <string name="webclient_diagnostics_intro">Нажмите кнопку «Пуск» для запуска теста</string>
-    <string name="webclient_diagnostics_done">Готово. Если у вас возникают неполадки с настройкой соединения Threema Web, отправьте данные в службу поддержки Threema.</string>
+    <string name="webclient_diagnostics_done">Готово! Если у вас возникают неполадки с настройкой соединения с приложением для ПК или веб-клиентом, отправьте данные в службу поддержки Threema.</string>
 </resources>

+ 28 - 31
app/src/main/res/values-sk/strings.xml

@@ -2,7 +2,7 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
     <string name="title_section2">Kontakty</string>
     <string name="title_section1">Konverzácie</string>
-    <string name="title_compose_message">Začať konverzáciu</string>
+    <string name="title_compose_message">Nová konverzácia</string>
     <string name="title_choose_recipient">Vybrať príjemcu</string>
     <string name="title_keyfingerprint">Odtlačok kľúča</string>
     <string name="title_mythreemaid">Moje Threema ID</string>
@@ -50,7 +50,7 @@
     <string name="prefs_vibrate">Vibrovať</string>
     <string name="prefs_sum_vibrate">Vibrovať po prijatí správy</string>
     <string name="prefs_light">Svetlo oznámenia</string>
-    <string name="prefs_sum_light">Biela</string>
+    <string name="prefs_sum_light">Biele</string>
     <string name="prefs_title_wallpaper">Vyberte tapetu</string>
     <string name="prefs_sum_wallpaper">Vyberte obrázok pozadia</string>
     <string name="prefs_title_wallpaper_switch">Tapeta</string>
@@ -85,15 +85,15 @@
     <string name="image_size_large">Veľký (1600x1600)</string>
     <string name="image_size_xlarge">Extra veľký (2592×2592)</string>
     <string name="image_size_original">Povodná veľkosť</string>
-    <string name="color_none">Žiadna</string>
-    <string name="color_orange">Oranžová</string>
-    <string name="color_red">Červená</string>
-    <string name="color_green">Zelená</string>
-    <string name="color_blue">Modrá</string>
-    <string name="color_cyan">Azúrová</string>
-    <string name="color_magenta">Purpurová</string>
-    <string name="color_yellow">Žltá</string>
-    <string name="color_white">Biela</string>
+    <string name="color_none">Žiadne</string>
+    <string name="color_orange">Oranžové</string>
+    <string name="color_red">Červené</string>
+    <string name="color_green">Zelené</string>
+    <string name="color_blue">Modré</string>
+    <string name="color_cyan">Azúrové</string>
+    <string name="color_magenta">Purpurové</string>
+    <string name="color_yellow">Žlté</string>
+    <string name="color_white">Biele</string>
     <string name="next">Ďalší</string>
     <string name="finish">Dokončiť</string>
     <string name="please_wait">Prosím čakajte...</string>
@@ -152,7 +152,7 @@
     <string name="delete_id_title">Vymazať ID</string>
     <string name="delete_id_message">Pokiaľ ste nevytvorili zálohu tohto ID, alebo ho nevyexportovali a neuložili, nebudete už nikdy môcť odosielať alebo prijímať správy s touto identitou.\n\nAk už nezamýšlate toto ID naďalej používať, mali by ste u neho najprv zrušiť prepojenie e‑mailovej adresy / telefónneho čísla skôr, než ho zmažete.</string>
     <string name="delete_id_message2">Posledné varovanie: naozaj chcete z tohto zariadenia vymazať vaše ID?</string>
-    <string name="delete_id_sum">Trvalo z tohto zariadenia odstráni vaše ID a všetky údaje aplikácie Threema</string>
+    <string name="delete_id_sum">Z tohto zariadenia sa natrvalo odstráni vaše ID a všetky údaje aplikácie Threema</string>
     <string name="backup_password_summary">Export vášho ID bude šifrovaný heslom. Použite kombináciu písmen, čísiel a symbolov. Toto heslo nesmiete zabudnúť!</string>
     <string name="backup_password_again_summary">Vložte heslo znovu</string>
     <string name="password_hint">Heslo</string>
@@ -252,8 +252,8 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="new_unprocessed_messages">Nové správy sú dostupné</string>
     <string name="new_unprocessed_messages_description">Kliknutím stiahnete a zobrazíte nové prichádzajucie správy</string>
     <string name="prefs_title_masterkey_notification_newmsg">Upozornenie na novú správu</string>
-    <string name="prefs_masterkey_notification_newmsg_off">Nové správy nebudú oznámené, ak je hlavný kľúč uzamknutý</string>
-    <string name="prefs_masterkey_notification_newmsg_on">Nové správy budú oznámené, i keď je hlavný kľúč uzamknutý</string>
+    <string name="prefs_masterkey_notification_newmsg_off">Po uzamknutí hlavným kľúčom nebudete upozornený na nové správy</string>
+    <string name="prefs_masterkey_notification_newmsg_on">Po uzamknutí hlavným kľúčom budete upozornený na nové správy iba všeobecnou notifikáciou.</string>
     <string name="chat_history_attached">Záznam konverzácie je pripojený</string>
     <string name="new_message">1 nová správa</string>
     <string name="new_messages">nové správy</string>
@@ -264,7 +264,7 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="backup_data_new">Vytvoriť zálohu údajov</string>
     <string name="pinentry_enter_pin">Pre pokračovanie zadajte váš Threema PIN</string>
     <string name="pinentry_wrong_pin">PIN je nesprávny</string>
-    <string name="prefs_sum_security_pin">Uzamknúť prístup do UI aplikácie Threema</string>
+    <string name="prefs_sum_security_pin">Uzamknúť prístup do rozhrania aplikácie Threema</string>
     <string name="prefs_title_pin_switch">Zámok aplikácie</string>
     <string name="prefs_title_pin_code">Nastaviť PIN</string>
     <string name="prefs_pin_grace">Čas do uzamknutia</string>
@@ -329,12 +329,12 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="can_not_delete_contact">Kontakt nie je možné odstrániť</string>
     <string name="title_public_nickname">Prezývka</string>
     <string name="prefs_sum_excluded_sync_identities">Tu uvedené ID budú ignorované počas synchronizácie kontaktov</string>
-    <string name="prefs_title_excluded_sync_identities">Zoznam vylúčených</string>
+    <string name="prefs_title_excluded_sync_identities">Vylúčené ID</string>
     <string name="synchronize_contact">Synchronizácia adresára kontakto</string>
     <string name="exclude_contact">Vyňať z automat. synchronizácie</string>
     <string name="prefs_header_lists">Zoznamy</string>
     <string name="prefs_title_black_list">Blokované ID</string>
-    <string name="prefs_sum_black_list">Správy od ID tu uvedených budú ignorované.</string>
+    <string name="prefs_sum_black_list">Správy od tu uvedených ID budú ignorované.</string>
     <string name="verified">Overené</string>
     <string name="want_to_add_to_exclude_list">Tento kontakt je prepojený s adresárom telefónu. Ak ho zmažete, v aplikácii Threema sa objaví znovu po synchronizácii kontaktov.\nChcete ho vylúčiť zo synchronizácie?</string>
     <string name="no">Nie</string>
@@ -407,7 +407,7 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="verification_level2_explain">Kontakt, ktorého telefónne číslo a/alebo e-mailová adresa sa nachádza v zozname kontaktov.</string>
     <string name="verification_level1_explain">Neznámy kontakt: buď tento kontakt nepripojil telefónne číslo ani e-mailovú adresu ku svojmu ID, alebo váš adresár neobsahuje detaily o tomto kontakte.</string>
     <string name="state_dialog_received">Prijaté</string>
-    <string name="prefs_title_hide_screenshots">Zakázať snímky obrazovky a náhľady</string>
+    <string name="prefs_title_hide_screenshots">Zakázať snímky obrazovky a náhľad</string>
     <string name="prefs_summary_hide_screenshots">Nezobrazovať náhľady aplikácie v prehľade běžiacich aplikácií a znemožniť vytvárať snímky obrazovky</string>
     <string name="media_gallery">Galéria médií</string>
     <string name="media_file_not_found">Mediálny súbor nie je možné otvoriť. Buď bol odstránený, alebo nebol stiahnutý ze serveru.</string>
@@ -490,13 +490,13 @@ Naplánujte udalosti, vytvorte prieskum, alebo sa niečo spýtajte svojich priat
     <string name="really_leave_id_export">Pokiaľ ste tak ešte neurobili, uložte si váš vyexportovaný ID textový reťazec alebo jemu zodpovedajúci QR kód na bezpečné miesto, alebo si ho vytlačte. Bez tejto zálohy nebude možné váš Threema ID obnoviť.</string>
     <string name="revocation_key_title">Zrušenie ID</string>
     <string name="revocation_key_not_set">Heslo pre zrušenie ID nenastavené</string>
-    <string name="revocation_key_set_at">Heslo pre %1$s</string>
+    <string name="revocation_key_set_at">Heslo nastavené %1$s</string>
     <string name="prefs_sum_remove_wallpapers">Vymazať všetky individuálne tapety</string>
     <string name="prefs_title_remove_wallpapers">Odstrániť všetky tapety</string>
     <string name="really_remove_wallpapers">Naozaj chcete odstrániť všetky tapety?</string>
     <string name="wallpapers_removed">Tapety odstránené</string>
     <string name="invalid_backup">Poškodené údaje zálohy. Nie je možné obnoviť.</string>
-    <string name="revocation_explain">Heslo, ktoré tu zadáte vám umožní odvolať vaše ID na stránke https://myid.threema.ch/revoke v prípade, že svoje ID stratíte, alebo bude odcudzené</string>
+    <string name="revocation_explain">Heslo, ktoré tu zadáte vám umožní odvolať vaše ID na stránke https://myid.threema.ch/revoke v prípade, že ho ID stratíte, alebo bude odcudzené</string>
     <string name="no_unread_messages">Žiadne neprečítané správy, alebo je aktivovaný zámok PIN</string>
     <string name="send_media">Odoslať média</string>
     <string name="rotate">Otočenie</string>
@@ -629,11 +629,11 @@ Už ich nebude možné obnoviť.</string>
     <string name="new_wizard_phone_email_invalid">Telefónne číslo alebo e-mailová adresa, ktorú ste zadali, nie sú platné.\nOpravte to a pokračujte.\n</string>
     <string name="new_wizard_phone_invalid">Telefónne číslo, ktoré ste zadali, nie je platné.\nOpravte ho a pokračujte.</string>
     <string name="new_wizard_info_fingerprint">Posúvaním prstom po displeji vytvoríte náhodné údaje (tzv. entropia), které sa použijú k vygenerovaniu páru šifrovacích kľúčov zviazaných s vaším Threema ID. Dvojica šifrovacích kľúčov sa skládá z <b>verejného kľúča</b>, ktorý je distribuovaný vaším priateľom a zo <b>súkromého kľúča</b>, ktorý je bezpečne uložený len vo vašom zariadení. Správy, ktoré vám odošlú vaši priatelia budú zašifrované vaším verejným kľúčom. Tieto správy môže dešifrovať iba ten, kto vlastní súkromný kľúč, nikto iný.</string>
-    <string name="new_wizard_info_id">Vytvorili jste dvojicu šifrovacích kľúčov. Verejný kľúč bol bezpečne prenesený na naše servery. Súkromný kľúč nikdy neopustí vaše zariadenie. Tým je zaistené, že nikdo nepovolaný se nebude môcť dostať k vaším správam.</string>
+    <string name="new_wizard_info_id">Vytvorili jste dvojicu šifrovacích kľúčov. Verejný kľúč bol bezpečne prenesený na naše servery. Súkromný kľúč nikdy neopustí vaše zariadenie. Tým je zaistené, že nikto nepovolaný se nebude môcť dostať k vašim správam.</string>
     <string name="new_wizard_info_sync_contacts">Pokiaľ túto možnosť povolíte, odošlú sa jednosmerne šifrované (hashe) e-mailové adresy a telefónne čísla na náš server. Tu sa porovnajú s kontaktmi ostatných užívateľov. Neukladáme žiadne údaje z vášho adresára.</string>
     <string name="new_wizard_info_link">Poskytnutím svojho telefónneho čísla a e-mailovej adresy môže Threema pomôcť vašim kontaktom automaticky pridať vaše ID do ich adresára, ak vás majú v zozname. Údaje budú jednosmerne šifrované (hashované) a uložené na našom serveri. Tento krok môžete preskočiť, ak chcete používať Threemu výlučne anonymne.</string>
     <string name="new_wizard_info_link_phone_only">Poskytnutím svojho telefónneho čísla môže Threema pomôcť vašim kontaktom automaticky pridať vaše ID do ich adresára, ak vás majú v zozname. Číslo bude jednosmerne šifrované (hashované) a uložené na našom serveri. Tento krok môžete preskočiť, ak chcete používať Threemu výlučne anonymne.</string>
-    <string name="new_wizard_info_nickname">Prezývka sa používa na niektorých zariadeniach pri push upozorneniach, alebo ako ďalšia možnosť, ako vás identifikovať užívateľom, ktorí vás nemajú vo svojom adresári. Doporučujeme zadať iba vaše krstné meno alebo pseudonym. Ak nenastavíte prezývku, použijeme vo východzom nastavení vaše Threema ID.</string>
+    <string name="new_wizard_info_nickname">Prezývka sa používa na niektorých zariadeniach pri push upozorneniach, alebo ako ďalšia možnosť, ako vás identifikovať užívateľom, ktorí vás nemajú vo svojom adresári. Doporučujeme zadať iba vaše krstné meno alebo pseudonym. Ak prezývku nenastavíte, použijeme vo východzom nastavení vaše Threema ID.</string>
     <string name="not_linked">neprepojené</string>
     <string name="linked">prepojené</string>
     <string name="pending_sms_verification_notice">Vaše mobilné číslo ešte nie je overené.</string>
@@ -663,7 +663,7 @@ Už ich nebude možné obnoviť.</string>
     <string name="select_all">Vybrať všetko</string>
     <string name="deleting_messages">Správy sa odstraňujú</string>
     <string name="media_gallery_files">Súbory</string>
-    <string name="prefs_gif_autoplay">Automaticky prehrať animované GIFy</string>
+    <string name="prefs_gif_autoplay">Prehrávať animované GIF obrázky</string>
     <string name="media_gallery_audio">Hlasové správy</string>
     <string name="action_clone_group">Klonovať skupinu</string>
     <string name="clone_group_message">Týmto vytvoríte kópiu tejto skupiny s vami ako administrátorom. Pokračovať?</string>
@@ -999,22 +999,19 @@ Vykonajte prosím zálohú vašich údajov vhodnou metódou.</string>
     <string name="archived">Archivované</string>
     <string name="to_archive">Archivovať</string>
     <string name="message_archived">Archivovaných konverzácií: %d</string>
-    <string name="archived_chats">Koverzácie archivované</string>
+    <string name="archived_chats">"Archivované konverzácie "</string>
     <string name="unarchive">Zrušiť archiváciu</string>
-    <string name="no_archived_chats">Žiadne archivované konverzácie.\nAk chcete konverzáciu archivovať, v zozname správ s ňou potiahnite doľava</string>
+    <string name="no_archived_chats">Nemáte žiadne archivované konverzácie.\n\nAk chcete konverzáciu archivovať, v zozname správ s ňou potiahnite doľava</string>
     <string name="add_contact_enter_id_hint">Ak chcete pridať kontakt, zadajte jeho Threema ID</string>
     <string name="notification_channel_new_contact">Nové kontakty</string>
     <string name="notification_channel_new_contact_desc">Upozornenie na nové kontakty</string>
     <string name="notification_contact_has_joined">%1$s používa aplikáciu %2$s. Kliknutím sem mu odošlete správu.</string>
     <string name="notification_contact_has_joined_multiple">%1$d kontaktov používa aplikáciu %2$s: %3$s. Kliknutím sem im odošlete správu.</string>
-    <string name="system_default">Predvolená systémom</string>
+    <string name="system_default">Predvolený systémom</string>
     <string name="open_in_maps_app">Otvoriť v aplikácii Mapy</string>
     <string name="delete">Odstrániť</string>
     <string name="num_archived_chats">Archivované konverzácie: %d</string>
     <string name="continue_recording">Pokračovať v nahrávaní</string>
-    <string name="whatsnew_title">What’s new in %s 4.56?</string>
-    <string name="whatsnew_headline">The contact synchronization has been completely rewritten for increased performance and stability. As a consequence, manual linking of system contacts had to be removed and a separate validation option in settings is no longer necessary.\n\nIf you notice any problems with names or avatars of synchronized contacts or other unexpected behavior, please contact us through the usual bug reporting channels.\n\nThanks for testing %s!</string>
-    <string name="whatsnew2_title">" "</string>
     <string name="tooltip_identity_popup">Kliknutím sem zobrazíte vaše Threema ID, alebo oskenujete ID ostatných užívateľov</string>
     <string name="tap_to_start">Kliknutím sem spustíte aplikáciu %s.</string>
     <string name="two_years">2 roky</string>
@@ -1094,10 +1091,10 @@ Vykonajte prosím zálohú vašich údajov vhodnou metódou.</string>
     <string name="ballot_open">Otvorené ankety</string>
     <string name="translators">Prekladatelia</string>
     <string name="credits">Kredity</string>
-    <string name="translators_thanks">Veľké poďakovanie naším dobrovoľným prekladateľom:\n%s</string>
+    <string name="translators_thanks">Veľké poďakovanie našim dobrovoľným prekladateľom:\n%s</string>
     <string name="ballot_window_hide">Skryť otvorené ankety</string>
     <string name="ballot_window_show">Zobraziť otvorené ankety</string>
-    <string name="tooltip_video_call">Okrem hlasových hovorov odolných proti odposluch teraz Threema ponúka šifrované video hovory typu end-to-end.</string>
+    <string name="tooltip_video_call">Okrem hlasových hovorov odolných proti odposluchu teraz Threema ponúka šifrované video hovory typu end-to-end.</string>
     <string name="tooltip_voip_other_party_video_on">Protistrana zahájila videohovor. Kliknutím sem zapnete kameru.</string>
     <string name="tooltip_voip_other_party_video_disabled">Protistrana buď nepoužíva aktuálnu verziu aplikácie, alebo nepodporuje videohovory.</string>
     <string name="video_calls_new">Novinka: Video hovory</string>

+ 19 - 19
app/src/main/res/values-zh-rCN/webclient_strings.xml

@@ -2,12 +2,12 @@
 <resources>
     <string name="webclient_qr_scan_error">无效的二维码数据</string>
     <string name="webclient_init_session">发起新的会话</string>
-    <string name="webclient_sessions_really_delete">您确定要删除 Threema 网页版会话吗?</string>
+    <string name="webclient_sessions_really_delete">您确定要删除桌面版/网页版会话吗?</string>
     <string name="webclient_last_usage">上次使用:%s</string>
     <string name="webclient_created_at">创建于: %1$s (%2$s)</string>
     <string name="webclient_active_since">活动时间:%s</string>
-    <string name="webclient_enable">启动 Threema 网页版</string>
-    <string name="webclient_no_sessions_found">如要进行连接,请在 PC 浏览器中打开<b> https://web.threema.ch </b>,然后点击下面的按钮以扫描代码</string>
+    <string name="webclient_enable">启动桌面版应用程序/网页版</string>
+    <string name="webclient_no_sessions_found">如要进行连接,请先下载桌面版应用程序 (<b>https://threema.ch/download</b>) 或打开网页版 (<b>https://web.threema.ch</b>),然后点击下面的按钮,扫描屏幕上的二维码。</string>
     <string name="webclient_session_rename">重命名会话</string>
     <string name="webclient_session_label">新名字</string>
     <string name="webclient_session_start">开始会话</string>
@@ -17,26 +17,26 @@
     <string name="webclient_unnamed_session">未命名的会话</string>
     <string name="webclient_session_remove">删除会话</string>
     <string name="webclient_welcome_title">在您的电脑上聊天!</string>
-    <string name="webclient_welcome_explain">Threema 网页版可让您在台式机或笔记本电脑上聊天,同时拥有对所有联系人,媒体和聊天甚至过去对话记录的完全访问权限。\n\n<b>手机和电脑之间的所有通信都是完全端到端加密的</b>,如果手机和电脑都在同一网络上,则使用直接连接。\n\n请注意:当 Threema 网页版运行时,可能会消耗更多电量。您可以随时启用或禁用。</string>
-    <string name="webclient_launch">立即启动 Threema 网页版</string>
+    <string name="webclient_welcome_explain">桌面版应用程序/网页版可让您在台式机或笔记本电脑上聊天,同时拥有对所有联系人,媒体和聊天甚至过去对话记录的完全访问权限。\n\n<b>手机和电脑之间的所有通信都是完全端到端加密的</b>,如果手机和电脑都在同一网络上,则使用直接连接。\n\n请注意:当桌面版应用程序/网页版运行时,可能会消耗更多电量。您可以随时启用或禁用。</string>
+    <string name="webclient_launch">立即启动桌面版应用程序/网页版</string>
     <string name="webclient_qr_scan_message">请扫描屏幕上显示的二维码。</string>
-    <string name="webclient_invalid_qr_code">Threema 网页版上的二维码无效</string>
-    <string name="webclient_new_connection_toast">Threema 网页版会话开始</string>
+    <string name="webclient_invalid_qr_code">二维码无效</string>
+    <string name="webclient_new_connection_toast">桌面版/网页版会话已开始</string>
     <string name="webclient_protocol_error">协议错误</string>
-    <string name="webclient_protocol_version_to_old">您的应用程序不支持此版本的 Threema 网页版。请更新 Threema 为最新版本。</string>
-    <string name="webclient_protocol_version_too_new_selfhosted">您的应用程序不支持此版本的 Threema 网页版。请要求您的Threema 网页版实例的管理员升级到最新版本。</string>
-    <string name="webclient_protocol_version_too_new_threema">您的应用程序不支持此版本的Threema 网页版。请使用较新版本的Threema 网页版。</string>
-    <string name="webclient_session_already_exists">您扫描的二维码会话已经存在。请在您的浏览器中重新加载 Threema 网页版,然后重试。</string>
-    <string name="webclient_really_start_webclient_by_payload_body">您想立即开始这个 Threema 网页版会话吗?</string>
-    <string name="webclient_cannot_restore">无法还原 Threema 网页版会话</string>
-    <string name="webclient_disabled">Threema 网页版未启用</string>
-    <string name="webclient_cannot_start">无法启动 Threema 网页版会话</string>
+    <string name="webclient_protocol_version_to_old">您的应用程序不支持此版本的桌面版应用程序/网页版。请更新 Android 版 Threema 为最新版本。</string>
+    <string name="webclient_protocol_version_too_new_selfhosted">您的应用程序不支持此版本的桌面版应用程序/网页版。请下载最新版本的桌面版应用程序,或要求您的网络客户端的管理员升级到最新版本。</string>
+    <string name="webclient_protocol_version_too_new_threema">您的应用程序不支持此版本的桌面版应用程序/网页版。请使用最新版本的桌面版应用程序/网页版。</string>
+    <string name="webclient_session_already_exists">您扫描的二维码会话已经存在。请在您的浏览器中重新加载桌面版应用程序/网页版,然后重试。</string>
+    <string name="webclient_really_start_webclient_by_payload_body">您想立即开始这个会话吗?</string>
+    <string name="webclient_cannot_restore">无法还原会话</string>
+    <string name="webclient_disabled">桌面版/网页版未启用</string>
+    <string name="webclient_cannot_start">无法启动会话</string>
     <string name="webclient_constrained_by_mdm">服务器未经管理员批准。</string>
     <string name="webclient_clear_all_sessions">清除所有会话</string>
-    <string name="webclient_clear_all_sessions_confirm">您确定要停止并删除所有 Threema 网页版会话吗?</string>
-    <string name="webclient_prefs_debug_tool_summary">启动此工具调试与设置 Threema 网页版连接有关的问题</string>
-    <string name="webclient_diagnostics">Threema 网页版诊断</string>
+    <string name="webclient_clear_all_sessions_confirm">您确定要停止并删除所有会话吗?</string>
+    <string name="webclient_prefs_debug_tool_summary">启动此工具以调试与设置桌面版应用程序/网页版连接有关的问题</string>
+    <string name="webclient_diagnostics">桌面版/网页版诊断</string>
     <string name="webclient_diagnostics_start">开始</string>
     <string name="webclient_diagnostics_intro">点击 “开始” 启动测试。</string>
-    <string name="webclient_diagnostics_done">大功告成。如果您遇到 Threema 网页版连接建立问题,请将此日志发送给 Threema 支持。</string>
+    <string name="webclient_diagnostics_done">大功告成。如果您在桌面版应用程序或网页版连接遇到问题,请将此日志发送给 Threema 支持。</string>
 </resources>

+ 2 - 2
app/src/main/res/values-zh-rTW/strings.xml

@@ -38,7 +38,7 @@
     <string name="prefs_sum_sync_contacts_off">不要將 Threema 使用者與裝置通訊錄同步</string>
     <string name="prefs_title_sync_contacts">聯絡人同步</string>
     <string name="prefs_sum_block_unknown_off">任何人都可以向您傳送訊息。
-當您收到第一訊息時,新的聯絡人將被自動新增。</string>
+當您收到第一訊息時,新的聯絡人將被自動新增。</string>
     <string name="prefs_sum_block_unknown_on">只有在您的聯絡人名單中的人才能向您傳送訊息。</string>
     <string name="prefs_title_block_unknown">封鎖未知聯絡人</string>
     <string name="prefs_title_read_receipts">傳送已讀標記</string>
@@ -393,7 +393,7 @@ https://shop.threema.ch/retrieve_keys</string>
     <string name="file_saved">%d 個檔案已成功儲存。</string>
     <string name="token_register_failed">更新推播服務失敗,請稍後再試。</string>
     <string name="internet_connection_required">沒有網路連線。</string>
-    <string name="sending_message_failed" tools:ignore="PluralsCandidate">無法傳送%1$d訊息</string>
+    <string name="sending_message_failed" tools:ignore="PluralsCandidate">無法傳送%1$d訊息</string>
     <string name="prefs_sum_save_media">以未加密的形式儲存收到的圖片和影片,以及傳送的相機圖片。</string>
     <string name="prefs_save_media">自動儲存至圖片庫</string>
     <string name="title_add_distribution_list">建立通訊群組清單</string>

+ 19 - 19
app/src/main/res/values-zh-rTW/webclient_strings.xml

@@ -2,12 +2,12 @@
 <resources>
     <string name="webclient_qr_scan_error">無效的QR碼資料</string>
     <string name="webclient_init_session">發起新工作階段</string>
-    <string name="webclient_sessions_really_delete">您確定要刪除 Threema 網頁版工作階段嗎?</string>
+    <string name="webclient_sessions_really_delete">您確定要刪除桌面版/網頁版工作階段嗎?</string>
     <string name="webclient_last_usage">上次使用:%s</string>
     <string name="webclient_created_at">建立於:%1$s(%2$s)</string>
     <string name="webclient_active_since">活動時間:%s</string>
-    <string name="webclient_enable">開啟 Threema 網頁版</string>
-    <string name="webclient_no_sessions_found">如要進行連結,請在 PC 瀏覽器中開啟 <b>https://web.threema.ch</b>,然後點擊下面的按鈕以掃描QR碼。</string>
+    <string name="webclient_enable">開啟桌面版應用程式/網頁版</string>
+    <string name="webclient_no_sessions_found">如要進行連結,請先下載桌面版應用程式 (<b>https://threema.ch/download</b>) 或開啟網頁版 (<b>https://web.threema.ch</b>),然後點擊下面的按鈕,掃描螢幕上的QR碼。</string>
     <string name="webclient_session_rename">重新命名工作階段</string>
     <string name="webclient_session_label">新名稱</string>
     <string name="webclient_session_start">開始工作階段</string>
@@ -17,26 +17,26 @@
     <string name="webclient_unnamed_session">未命名工作階段</string>
     <string name="webclient_session_remove">移除工作階段</string>
     <string name="webclient_welcome_title">在您的電腦上聊天!</string>
-    <string name="webclient_welcome_explain">Threema 網頁版可讓您在桌上型電腦或筆記型電腦上聊天,同时擁有對所有聯絡人,多媒體和聊天甚至過去對話記錄的完全取用權限。\n\n<b>電話和電腦之間的所有通訊都是完全端到端加密的</b>,如果電話和電腦都在同一網路上,則使用直接連線。\n\n請注意:當 Threema 網頁版執行時,可能會消耗更多電量。您可以隨時開啟或停用。</string>
-    <string name="webclient_launch">立即啟動 Threema 網頁版</string>
+    <string name="webclient_welcome_explain">桌面版應用程式/網頁版可讓您在桌上型電腦或筆記型電腦上聊天,同时擁有對所有聯絡人,多媒體和聊天甚至過去對話記錄的完全取用權限。\n\n<b>電話和電腦之間的所有通訊都是完全端到端加密的</b>,如果電話和電腦都在同一網路上,則使用直接連線。\n\n請注意:當桌面版應用程式/網頁版執行時,可能會消耗更多電量。您可以隨時開啟或停用。</string>
+    <string name="webclient_launch">立即啟動桌面版應用程式/網頁版</string>
     <string name="webclient_qr_scan_message">請掃描螢幕上顯示的QR碼。</string>
-    <string name="webclient_invalid_qr_code">Threema 網頁版上的QR碼無效</string>
-    <string name="webclient_new_connection_toast">Threema 網頁版工作階段已開始</string>
+    <string name="webclient_invalid_qr_code">QR碼無效</string>
+    <string name="webclient_new_connection_toast">桌面版/網頁版工作階段已開始</string>
     <string name="webclient_protocol_error">協定錯誤</string>
-    <string name="webclient_protocol_version_to_old">您的應用程式不支援此版本的 Threema 網頁版。請更新 Threema 至最新版本。</string>
-    <string name="webclient_protocol_version_too_new_selfhosted">您的應用程式不支援此版本的 Threema 網頁版。請要求您的 Threema 網頁版實例的管理員升級至最新版本。</string>
-    <string name="webclient_protocol_version_too_new_threema">您的應用程式不支援此版本的 Threema 網頁版。請使用較新版本的 Threema 網頁版。</string>
-    <string name="webclient_session_already_exists">您掃描的QR碼工作階段已經存在。請在您的瀏覽器中重新載入 Threema 網頁版,然後再試一次。</string>
-    <string name="webclient_really_start_webclient_by_payload_body">您想立即開始這個 Threema 網頁版工作階段嗎?</string>
-    <string name="webclient_cannot_restore">無法還原 Threema 網頁版工作階段</string>
-    <string name="webclient_disabled">Threema 網頁版未開啟</string>
-    <string name="webclient_cannot_start">無法開始 Threema 網頁版工作階段</string>
+    <string name="webclient_protocol_version_to_old">您的應用程式不支援此版本的桌面版應用程式/網頁版。請更新 Android 版 Threema 至最新版本。</string>
+    <string name="webclient_protocol_version_too_new_selfhosted">您的應用程式不支援此版本的桌面版應用程式/網頁版。請下載最新版本的桌面版應用程式,或要求您的網路用戶端的管理員升級至最新版本。</string>
+    <string name="webclient_protocol_version_too_new_threema">您的應用程式不支援此版本的桌面版應用程式/網頁版。請使用最新版本的桌面版應用程式/網頁版。</string>
+    <string name="webclient_session_already_exists">您掃描的QR碼工作階段已經存在。請在您的瀏覽器中重新載入桌面版應用程式/網頁版,然後再試一次。</string>
+    <string name="webclient_really_start_webclient_by_payload_body">您想立即開始這個工作階段嗎?</string>
+    <string name="webclient_cannot_restore">無法還原工作階段</string>
+    <string name="webclient_disabled">桌面版/網頁版未開啟</string>
+    <string name="webclient_cannot_start">無法開始工作階段</string>
     <string name="webclient_constrained_by_mdm">伺服器未經管理員批准。</string>
     <string name="webclient_clear_all_sessions">清除所有工作階段</string>
-    <string name="webclient_clear_all_sessions_confirm">您確定要停止並移除所有 Threema 網頁版工作階段嗎?</string>
-    <string name="webclient_prefs_debug_tool_summary">啟動此工具以調試與設定 Threema 網頁版連接有關的問題</string>
-    <string name="webclient_diagnostics">Threema 網頁版診斷</string>
+    <string name="webclient_clear_all_sessions_confirm">您確定要停止並移除所有工作階段嗎?</string>
+    <string name="webclient_prefs_debug_tool_summary">啟動此工具以調試與設定桌面版應用程式/網頁版連接有關的問題</string>
+    <string name="webclient_diagnostics">桌面版/網頁版診斷</string>
     <string name="webclient_diagnostics_start">開始</string>
     <string name="webclient_diagnostics_intro">點擊「開始」以啟動測試。</string>
-    <string name="webclient_diagnostics_done">大功告成。如果您遇到 Threema 網頁版連線建立問題,請將此日誌傳送至 Threema 支援。</string>
+    <string name="webclient_diagnostics_done">大功告成。如果您在桌面版應用程式或網頁版連線遇到問題,請將此日誌傳送至 Threema 支援。</string>
 </resources>

+ 4 - 4
app/src/main/res/values/strings.xml

@@ -531,7 +531,7 @@
 	<string name="remove">Remove</string>
 	<string name="image_already_added">This image has already been added.</string>
 	<string name="password_too_short" tools:ignore="PluralsCandidate">%d characters min.</string>
-	<string name="mark_read">Mark read</string>
+	<string name="mark_read">Mark as read</string>
 	<string name="attach_document">File</string>
 	<string name="parent_directory">Parent</string>
 	<string name="file_placeholder">File</string>
@@ -898,10 +898,10 @@
 	<string name="no_matching_work_contacts">No admin-verified Threema Work contacts found</string>
 	<string name="all">All</string>
 	<string name="webclient_session_stop_all">Close all</string>
-	<string name="webclient_running_sessions">%d Threema Web session(s) running</string>
+	<string name="webclient_running_sessions">%d session(s) running</string>
 	<string name="passphrase_service_name">Passphrase Service</string>
 	<string name="passphrase_service_description">Notification when passphrase is unlocked</string>
-	<string name="webclient_service_description">Notification when a Threema Web session is active</string>
+	<string name="webclient_service_description">Notification when Web/Desktop session is active</string>
 	<string name="prefs_title_accept_privacy_policy">Accept Privacy Policy</string>
 	<string name="privacy_policy_explain">%1$s protects your privacy more rigorously than any other messenger. Find out more in our %2$s.</string>
 	<string name="privacy_policy_check_confirm">To use %s, please accept the Privacy Policy.\n\n(Requirement as per EU regulation 2016/679)</string>
@@ -1222,7 +1222,7 @@
 	<string name="status_create_notes_off">*You’re no longer alone in this chat*\nNew messages will be sent to all group members.</string>
 	<string name="note_group_howto">Hint: If you don’t add any group members, messages to this group will stay local. That’s ideal for securely storing notes, media or documents or transferring them to the desktop.</string>
 	<string name="mark_unread">Mark as unread</string>
-	<string name="mark_read_short">Read</string>
+	<string name="mark_read_short">Mark read</string>
 	<string name="unread">Unread</string>
 	<string name="missing_app_licence">The app store was unable to validate your purchase. If you use Google Play, please clear the data of the Google Play Store App and reboot your device.</string>
 	<string name="set_backup_path">Set backup path</string>

+ 20 - 20
app/src/main/res/values/webclient_strings.xml

@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-	<string name="webclient" translatable="false">Threema Web</string>
+	<string name="webclient" translatable="false">Desktop/Web</string>
 	<string name="webclient_qr_scan_error">Invalid QR code data</string>
 	<string name="webclient_init_session">Initiate new session</string>
-	<string name="webclient_sessions_really_delete">Do you really want to delete this Threema Web session?</string>
+	<string name="webclient_sessions_really_delete">Do you really want to delete this desktop/web session?</string>
 	<string name="webclient_last_usage">Last usage: %s</string>
 	<string name="webclient_created_at">Created at: %1$s (%2$s)</string>
 	<string name="webclient_active_since">Active since: %s</string>
-	<string name="webclient_enable">Enable Threema Web</string>
-	<string name="webclient_no_sessions_found">To connect, open <b>https://web.threema.ch</b> in the browser of your PC and tap the button below to scan the code.</string>
+	<string name="webclient_enable">Enable desktop app / web client</string>
+	<string name="webclient_no_sessions_found">To connect, download the desktop app (<b>https://threema.ch/download</b>) or open the web client (<b>https://web.threema.ch</b>) on your computer, and tap the button below to scan the QR code displayed on your computer screen.</string>
 	<string name="webclient_session_rename">Rename session</string>
 	<string name="webclient_session_label">New name</string>
 	<string name="webclient_session_start">Start session</string>
@@ -18,26 +18,26 @@
 	<string name="webclient_unnamed_session">Unnamed Session</string>
 	<string name="webclient_session_remove">Remove session</string>
 	<string name="webclient_welcome_title">Chat from your PC!</string>
-	<string name="webclient_welcome_explain">Threema Web allows you to chat from your PC or notebook while giving you full access to all your contacts, media and chats, even past conversations.\n\n<b>All communication between phone and PC is fully end-to-end encrypted</b> and uses a direct connection if both phone and PC are on the same network.\n\nPlease note: Threema Web may cause some additional battery drain while it is active. You can enable or disable it at any time.</string>
-	<string name="webclient_launch">Start Threema Web now</string>
+	<string name="webclient_welcome_explain">The desktop app and the web client allow you to chat from your PC or notebook while giving you full access to all your contacts, media and chats, even past conversations.\n\n<b>All communication between phone and PC is fully end-to-end encrypted</b> and uses a direct connection if both phone and PC are on the same network.\n\nPlease note: The desktop app / web client may cause some additional battery drain while it is active. You can enable or disable it at any time.</string>
+	<string name="webclient_launch">Start desktop app / web client now</string>
 	<string name="webclient_qr_scan_message">Please scan the QR code displayed on the PC.</string>
-	<string name="webclient_invalid_qr_code">Invalid Threema Web QR code</string>
-	<string name="webclient_new_connection_toast">Threema Web session started</string>
+	<string name="webclient_invalid_qr_code">Invalid QR code</string>
+	<string name="webclient_new_connection_toast">Desktop/Web session started</string>
 	<string name="webclient_protocol_error">Protocol Error</string>
-	<string name="webclient_protocol_version_to_old">Your app does not support this version of Threema Web. Please update Threema to the latest version.</string>
-	<string name="webclient_protocol_version_too_new_selfhosted">Your app does not support this version of Threema Web. Please ask the administrator of your Threema Web instance to upgrade to the latest version.</string>
-	<string name="webclient_protocol_version_too_new_threema">Your app does not support this version of Threema Web. Please use a newer version of Threema Web.</string>
-	<string name="webclient_session_already_exists">The session of the QR code you scanned already exists. Please reload Threema Web in your web browser and try again.</string>
-	<string name="webclient_really_start_webclient_by_payload_body">Would you like to start this Threema Web session now?</string>
-	<string name="webclient_cannot_restore">Cannot restore Threema Web session</string>
-	<string name="webclient_disabled">Threema Web is not enabled</string>
-	<string name="webclient_cannot_start">Cannot start Threema Web session</string>
+	<string name="webclient_protocol_version_to_old">Your app does not support this version of the desktop app / web client. Please update Threema for Android to the latest version.</string>
+	<string name="webclient_protocol_version_too_new_selfhosted">Your app does not support this version of the desktop app / web client. Please download the latest version of the desktop app, or ask the administrator of your web client to upgrade to the latest version.</string>
+	<string name="webclient_protocol_version_too_new_threema">Your app does not support this version of the desktop app / web client. Please use the current version of the desktop app / web client.</string>
+	<string name="webclient_session_already_exists">The session of the QR code you scanned already exists. Please relaunch the desktop app / reload the web client, and try again.</string>
+	<string name="webclient_really_start_webclient_by_payload_body">Would you like to start this session now?</string>
+	<string name="webclient_cannot_restore">Cannot restore session</string>
+	<string name="webclient_disabled">Desktop/Web is not enabled</string>
+	<string name="webclient_cannot_start">Cannot start session</string>
 	<string name="webclient_constrained_by_mdm">Server is not approved by the administrator.</string>
 	<string name="webclient_clear_all_sessions">Clear all sessions</string>
-	<string name="webclient_clear_all_sessions_confirm">Are you sure that you want to stop and remove all Threema Web sessions?</string>
-	<string name="webclient_prefs_debug_tool_summary">Start this tool to debug problems with setting up a Threema Web connection</string>
-	<string name="webclient_diagnostics">Threema Web Diagnostics</string>
+	<string name="webclient_clear_all_sessions_confirm">Are you sure that you want to stop and remove all  sessions?</string>
+	<string name="webclient_prefs_debug_tool_summary">Start this tool to debug problems with setting up a connection to the desktop app or the web client</string>
+	<string name="webclient_diagnostics">Desktop/Web Diagnostics</string>
 	<string name="webclient_diagnostics_start">Start</string>
 	<string name="webclient_diagnostics_intro">Tap on «Start» to launch the test.</string>
-	<string name="webclient_diagnostics_done">Done. If you experience problems with Threema Web connection build-up, please send this log to Threema support.</string>
+	<string name="webclient_diagnostics_done">Done. If you experience problems with the connection build-up to the desktop app or the web client, please send this log to Threema support.</string>
 </resources>