aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/eu/siacs/conversations/entities/MucOptions.java13
-rw-r--r--src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java4
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationActivity.java5
-rw-r--r--src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java2
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java142
-rw-r--r--src/main/java/eu/siacs/conversations/ui/XmppActivity.java10
-rw-r--r--src/main/java/eu/siacs/conversations/utils/FileUtils.java9
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java4
-rw-r--r--src/main/res/values-de/strings.xml4
-rw-r--r--src/main/res/values-eu/strings.xml6
-rw-r--r--src/main/res/values-ja/strings.xml6
-rw-r--r--src/main/res/values-pt/strings.xml500
-rw-r--r--src/main/res/values-ru/strings.xml24
-rw-r--r--src/main/res/values/strings.xml3
14 files changed, 553 insertions, 179 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/MucOptions.java b/src/main/java/eu/siacs/conversations/entities/MucOptions.java
index 4fe26743..db27810f 100644
--- a/src/main/java/eu/siacs/conversations/entities/MucOptions.java
+++ b/src/main/java/eu/siacs/conversations/entities/MucOptions.java
@@ -345,17 +345,8 @@ public class MucOptions {
}
public List<User> getUsers(int max) {
- ArrayList<User> users = new ArrayList<>();
- int i = 1;
- for(User user : this.users.values()) {
- users.add(user);
- if (i >= max) {
- break;
- } else {
- ++i;
- }
- }
- return users;
+ ArrayList<User> users = getUsers();
+ return users.subList(0, Math.min(max, users.size()));
}
public int getUserCount() {
diff --git a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
index c376fa73..e400095d 100644
--- a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
+++ b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
@@ -416,8 +416,10 @@ public class DatabaseBackend extends SQLiteOpenHelper {
Cursor cursor = db.query(ServiceDiscoveryResult.TABLENAME, null,
ServiceDiscoveryResult.HASH + "=? AND " + ServiceDiscoveryResult.VER + "=?",
selectionArgs, null, null, null);
- if (cursor.getCount() == 0)
+ if (cursor.getCount() == 0) {
+ cursor.close();
return null;
+ }
cursor.moveToFirst();
ServiceDiscoveryResult result = null;
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
index e991c2d2..175df041 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
@@ -1545,9 +1545,14 @@ public class ConversationActivity extends XmppActivity
protected void refreshUiReal() {
updateConversationList();
if (conversationList.size() > 0) {
+ if (!this.mConversationFragment.isAdded()) {
+ Log.d(Config.LOGTAG,"fragment NOT added to activity. detached="+Boolean.toString(mConversationFragment.isDetached()));
+ }
ConversationActivity.this.mConversationFragment.updateMessages();
updateActionBarTitle();
invalidateOptionsMenu();
+ } else {
+ Log.d(Config.LOGTAG,"not updating conversations fragment because conversations list size was 0");
}
}
diff --git a/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java b/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java
index 04868909..57fcf4e3 100644
--- a/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java
@@ -184,7 +184,7 @@ public class PublishProfilePictureActivity extends XmppActivity {
}
return true;
} else {
- return onOptionsItemSelected(item);
+ return super.onOptionsItemSelected(item);
}
}
diff --git a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
index 2aa1e89d..80e52ec2 100644
--- a/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
@@ -15,7 +15,9 @@ import android.widget.Toast;
import java.net.URLConnection;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.ui.dialogs.UserDecisionDialog;
@@ -26,11 +28,17 @@ import eu.siacs.conversations.R;
import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.entities.Conversation;
import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.services.XmppConnectionService;
import eu.siacs.conversations.ui.adapter.ConversationAdapter;
import eu.siacs.conversations.xmpp.jid.InvalidJidException;
import eu.siacs.conversations.xmpp.jid.Jid;
-public class ShareWithActivity extends XmppActivity {
+public class ShareWithActivity extends XmppActivity implements XmppConnectionService.OnConversationUpdate {
+
+ @Override
+ public void onConversationUpdate() {
+ refreshUi();
+ }
private class Share {
public List<Uri> uris = new ArrayList<>();
@@ -39,14 +47,17 @@ public class ShareWithActivity extends XmppActivity {
public String contact;
public String text;
public String uuid;
+ public boolean multiple = false;
}
private Share share;
private static final int REQUEST_START_NEW_CONVERSATION = 0x0501;
private ListView mListView;
+ private ConversationAdapter mAdapter;
private List<Conversation> mConversations = new ArrayList<>();
private Toast mToast;
+ private AtomicInteger attachmentCounter = new AtomicInteger(0);
private UiCallback<Message> attachFileCallback = new UiCallback<Message>() {
@@ -62,26 +73,52 @@ public class ShareWithActivity extends XmppActivity {
runOnUiThread(new Runnable() {
@Override
public void run() {
- if (mToast != null) {
- mToast.cancel();
- }
- if (share.uuid != null) {
- mToast = Toast.makeText(getApplicationContext(),
- getString(share.image ? R.string.shared_image_with_x : R.string.shared_file_with_x,message.getConversation().getName()),
- Toast.LENGTH_SHORT);
- mToast.show();
+ if (attachmentCounter.decrementAndGet() <=0 ) {
+ int resId;
+ if (share.image && share.multiple) {
+ resId = R.string.shared_images_with_x;
+ } else if (share.image) {
+ resId = R.string.shared_image_with_x;
+ } else {
+ resId = R.string.shared_file_with_x;
+ }
+ replaceToast(getString(resId, message.getConversation().getName()));
+ if (share.uuid != null) {
+ finish();
+ } else {
+ switchToConversation(message.getConversation());
+ }
}
}
});
}
@Override
- public void error(int errorCode, Message object) {
- // TODO Auto-generated method stub
-
+ public void error(final int errorCode, Message object) {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ replaceToast(getString(errorCode));
+ if (attachmentCounter.decrementAndGet() <=0 ) {
+ finish();
+ }
+ }
+ });
}
};
+ protected void hideToast() {
+ if (mToast != null) {
+ mToast.cancel();
+ }
+ }
+
+ protected void replaceToast(String msg) {
+ hideToast();
+ mToast = Toast.makeText(this, msg ,Toast.LENGTH_LONG);
+ mToast.show();
+ }
+
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_START_NEW_CONVERSATION
@@ -110,8 +147,7 @@ public class ShareWithActivity extends XmppActivity {
setTitle(getString(R.string.title_activity_sharewith));
mListView = (ListView) findViewById(R.id.choose_conversation_list);
- ConversationAdapter mAdapter = new ConversationAdapter(this,
- this.mConversations);
+ mAdapter = new ConversationAdapter(this, this.mConversations);
mListView.setAdapter(mAdapter);
mListView.setOnItemClickListener(new OnItemClickListener() {
@@ -149,23 +185,24 @@ public class ShareWithActivity extends XmppActivity {
return;
}
final String type = intent.getType();
- Log.d(Config.LOGTAG, "action: "+intent.getAction()+ ", type:"+type);
+ final String action = intent.getAction();
+ Log.d(Config.LOGTAG, "action: "+action+ ", type:"+type);
share.uuid = intent.getStringExtra("uuid");
- if (Intent.ACTION_SEND.equals(intent.getAction())) {
- final Uri uri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
- if (type != null && uri != null && !type.equalsIgnoreCase("text/plain")) {
+ if (Intent.ACTION_SEND.equals(action)) {
+ final String text = intent.getStringExtra(Intent.EXTRA_TEXT);
+ final Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
+ if (type != null && uri != null && text == null) {
this.share.uris.clear();
this.share.uris.add(uri);
this.share.image = type.startsWith("image/") || isImage(uri);
} else {
- this.share.text = getIntent().getStringExtra(Intent.EXTRA_TEXT);
+ this.share.text = text;
}
- } else if (Intent.ACTION_SEND_MULTIPLE.equals(intent.getAction())) {
+ } else if (Intent.ACTION_SEND_MULTIPLE.equals(action)) {
this.share.image = type != null && type.startsWith("image/");
if (!this.share.image) {
return;
}
-
this.share.uris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
}
if (xmppConnectionServiceBound) {
@@ -194,8 +231,7 @@ public class ShareWithActivity extends XmppActivity {
share();
return;
}
- xmppConnectionService.populateWithOrderedConversations(mConversations,
- this.share != null && this.share.uris.size() == 0);
+ refreshUiReal();
}
private void share() {
@@ -227,6 +263,7 @@ public class ShareWithActivity extends XmppActivity {
}
private void share(final Conversation conversation) {
+ mListView.setEnabled(false);
if (conversation.getNextEncryption() == Message.ENCRYPTION_PGP && !hasPgp()) {
if (share.uuid == null) {
showInstallPgpDialog();
@@ -237,35 +274,26 @@ public class ShareWithActivity extends XmppActivity {
return;
}
if (share.uris.size() != 0) {
- OnPresenceSelected callback;
- if (this.share.image) {
- callback = new OnPresenceSelected() {
- @Override
- public void onPresenceSelected() {
- ResizePictureUserDecisionListener userDecisionListener = new ShareWithResizePictureUserDecisionListener(ShareWithActivity.this, conversation, xmppConnectionService, share.uris);
- UserDecisionDialog userDecisionDialog = new UserDecisionDialog(ShareWithActivity.this, R.string.userdecision_question_resize_picture, userDecisionListener);
- userDecisionDialog.decide(ConversationsPlusPreferences.resizePicture());
- }
- };
- } else {
- callback = new OnPresenceSelected() {
- @Override
- public void onPresenceSelected() {
- mToast = Toast.makeText(getApplicationContext(),
- getText(R.string.preparing_file),
- Toast.LENGTH_LONG);
- mToast.show();
- ShareWithActivity.this.xmppConnectionService
- .attachFileToConversation(conversation, share.uris.get(0),
- attachFileCallback);
- if (share.uuid == null) {
- switchToConversation(conversation, null, true);
+ OnPresenceSelected callback = new OnPresenceSelected() {
+ @Override
+ public void onPresenceSelected() {
+ attachmentCounter.set(share.uris.size());
+ if (share.image) {
+ share.multiple = share.uris.size() > 1;
+ replaceToast(getString(share.multiple ? R.string.preparing_images : R.string.preparing_image));
+ for (Iterator<Uri> i = share.uris.iterator(); i.hasNext(); i.remove()) {
+ ShareWithActivity.this.xmppConnectionService
+ .attachImageToConversation(conversation, i.next(),
+ attachFileCallback);
+ }
+ } else {
+ replaceToast(getString(R.string.preparing_file));
+ ShareWithActivity.this.xmppConnectionService
+ .attachFileToConversation(conversation, share.uris.get(0),
+ attachFileCallback);
}
- finish();
- }
- };
- }
-
+ }
+ };
if (conversation.getAccount().httpUploadAvailable()) {
callback.onPresenceSelected();
} else {
@@ -273,13 +301,21 @@ public class ShareWithActivity extends XmppActivity {
}
} else {
switchToConversation(conversation, this.share.text, true);
- finish();
}
}
public void refreshUiReal() {
- //nothing to do. This Activity doesn't implement any listeners
+ xmppConnectionService.populateWithOrderedConversations(mConversations, this.share != null && this.share.uris.size() == 0);
+ mAdapter.notifyDataSetChanged();
}
+ @Override
+ public void onBackPressed() {
+ if (attachmentCounter.get() >= 1) {
+ replaceToast(getString(R.string.sharing_files_please_wait));
+ } else {
+ super.onBackPressed();
+ }
+ }
}
diff --git a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
index 0677fbd2..a01abb5b 100644
--- a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
@@ -744,7 +744,7 @@ public abstract class XmppActivity extends Activity {
case UNTRUSTED:
case TRUSTED:
case TRUSTED_X509:
- trustToggle.setChecked(trust.trusted());
+ trustToggle.setChecked(trust.trusted(), false);
trustToggle.setEnabled(trust != XmppAxolotlSession.Trust.TRUSTED_X509);
if (trust == XmppAxolotlSession.Trust.TRUSTED_X509) {
trustToggle.setOnClickListener(null);
@@ -753,7 +753,7 @@ public abstract class XmppActivity extends Activity {
keyType.setTextColor(getSecondaryTextColor());
break;
case UNDECIDED:
- trustToggle.setChecked(false);
+ trustToggle.setChecked(false, false);
trustToggle.setEnabled(false);
key.setTextColor(getPrimaryTextColor());
keyType.setTextColor(getSecondaryTextColor());
@@ -761,7 +761,7 @@ public abstract class XmppActivity extends Activity {
case INACTIVE_UNTRUSTED:
case INACTIVE_UNDECIDED:
trustToggle.setOnClickListener(null);
- trustToggle.setChecked(false);
+ trustToggle.setChecked(false, false);
trustToggle.setEnabled(false);
key.setTextColor(getTertiaryTextColor());
keyType.setTextColor(getTertiaryTextColor());
@@ -769,7 +769,7 @@ public abstract class XmppActivity extends Activity {
case INACTIVE_TRUSTED:
case INACTIVE_TRUSTED_X509:
trustToggle.setOnClickListener(null);
- trustToggle.setChecked(true);
+ trustToggle.setChecked(true, false);
trustToggle.setEnabled(false);
key.setTextColor(getTertiaryTextColor());
keyType.setTextColor(getTertiaryTextColor());
@@ -1181,7 +1181,7 @@ public abstract class XmppActivity extends Activity {
} else {
if (cancelPotentialWork(message, imageView)) {
imageView.setBackgroundColor(0xff333333);
-
+ imageView.setImageDrawable(null);
final BitmapWorkerTask task = new BitmapWorkerTask(imageView, setSize);
final AsyncDrawable asyncDrawable = new AsyncDrawable(
getResources(), null, task);
diff --git a/src/main/java/eu/siacs/conversations/utils/FileUtils.java b/src/main/java/eu/siacs/conversations/utils/FileUtils.java
index b12c990b..0edaf9a9 100644
--- a/src/main/java/eu/siacs/conversations/utils/FileUtils.java
+++ b/src/main/java/eu/siacs/conversations/utils/FileUtils.java
@@ -79,7 +79,14 @@ public final class FileUtils {
}
// MediaStore (and general)
else if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
- return getDataColumn(context, uri, null, null);
+ String path = getDataColumn(context, uri, null, null);
+ if (path != null) {
+ File file = new File(path);
+ if (!file.canRead()) {
+ return null;
+ }
+ }
+ return path;
}
// File
else if (ContentResolver.SCHEME_FILE.equals(uri.getScheme())) {
diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
index fa381668..9d167edd 100644
--- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
@@ -890,11 +890,11 @@ public class XmppConnection implements Runnable {
sendPostBindInitialization();
}
} else {
- Logging.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure");
+ Logging.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure. (no jid)");
disconnect(true);
}
} else {
- Logging.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure");
+ Logging.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure ("+packet.toString());
disconnect(true);
}
}
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index aff8affd..1d867c6a 100644
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -563,8 +563,8 @@
<string name="pref_away_when_screen_off_summary">Setzt deinen Status auf \"abwesend\", solange dein Bildschirm abgeschaltet ist</string>
<string name="pref_xa_on_silent_mode">Nicht verfügbar bei Stummschaltung</string>
<string name="pref_xa_on_silent_mode_summary">Setzt deinen Status auf \"nicht verfügbar\", solange dein Gerät lautlos ist</string>
- <string name="pref_treat_vibrate_as_silent">Behandle Vibration als Stumm</string>
- <string name="pref_treat_vibrate_as_silent_summary">Setze deinen Status auf \"nicht verfügbar\" solange dein Gerät auf \"vibrieren\" ist.</string>
+ <string name="pref_treat_vibrate_as_silent">Vibration als Lautlos behandeln</string>
+ <string name="pref_treat_vibrate_as_silent_summary">Setzt deinen Status auf \"nicht verfügbar\", solange das Gerät auf Vibration geschaltet ist</string>
<string name="pref_show_connection_options">Erweiterte Verbindungs-Optionen</string>
<string name="pref_show_connection_options_summary">Hostname- und Port-Optionen bei Kontoeinrichtung anzeigen</string>
<string name="hostname_example">xmpp.domain.de</string>
diff --git a/src/main/res/values-eu/strings.xml b/src/main/res/values-eu/strings.xml
index f04fd284..605af928 100644
--- a/src/main/res/values-eu/strings.xml
+++ b/src/main/res/values-eu/strings.xml
@@ -312,6 +312,7 @@
<string name="checking_x">%s egiaztatzen HTTP ostalarian</string>
<string name="not_connected_try_again">Ez zaude konektatuta. Saiatu beranduago berriz</string>
<string name="check_x_filesize">Egiaztatu %sren neurria</string>
+ <string name="check_x_filesize_on_host">Egiaztatu %1$sren neurria %2$s ostalarian</string>
<string name="message_options">Mezuaren aukerak</string>
<string name="copy_text">Testua kopiatu</string>
<string name="copy_original_url">Jatorrizko URLa kopiatu</string>
@@ -502,6 +503,8 @@
<string name="pref_away_when_screen_off_summary">Zure baliabidea urrun bezala markatzen du pantaila itzalita dagoenean</string>
<string name="pref_xa_on_silent_mode">Ez eskuragarri modu isilean</string>
<string name="pref_xa_on_silent_mode_summary">Zure baliabidea ez eskuragarri bezala markatzen du gailua modu isilean dagoenean</string>
+ <string name="pref_treat_vibrate_as_silent">Dardara modu isila bezala tratatu</string>
+ <string name="pref_treat_vibrate_as_silent_summary">Zure baliabidea ez eskuragarri bezala markatzen du gailua dardara moduan dagoenean</string>
<string name="pref_show_connection_options">Konexioaren ezarpen luzatuak</string>
<string name="pref_show_connection_options_summary">Ostalariaren izena eta ataka ezarpenak erakutsi kontu bat ezartzerakoan</string>
<string name="hostname_example">xmpp.adibidea.com</string>
@@ -557,4 +560,7 @@
<string name="selection_too_large">Hautatutako zatia handiegia da</string>
<string name="no_accounts">(Ez dago kontu aktiborik)</string>
<string name="this_field_is_required">Datu hau beharrezkoa da</string>
+ <string name="no_keys_just_confirm">Kontaktu honetaz fidatzen zara dagoeneko. \'Eginda\' hautatuz %s konferentzia honen kidea dela egiaztatzen duzu besterik gabe.</string>
+ <string name="select_image_and_crop">Irudia hautatu eta moztu</string>
+ <string name="this_account_is_disabled">Kontu hau ezgaitu duzu</string>
</resources>
diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml
index c20bd099..bb0d4f7b 100644
--- a/src/main/res/values-ja/strings.xml
+++ b/src/main/res/values-ja/strings.xml
@@ -312,6 +312,7 @@
<string name="checking_x">HTTP ホストの %s を確認中</string>
<string name="not_connected_try_again">接続されていません。後でもう一度お試しください</string>
<string name="check_x_filesize">%s サイズを確認</string>
+ <string name="check_x_filesize_on_host">%2$s で %1$s のサイズを確認</string>
<string name="message_options">メッセージオプション</string>
<string name="copy_text">テキストをコピー</string>
<string name="copy_original_url">元の URL をコピー</string>
@@ -500,6 +501,8 @@
<string name="pref_away_when_screen_off_summary">画面がオフになっているとき、リソースを離席としてマークします</string>
<string name="pref_xa_on_silent_mode">サイレントモード時は利用不可</string>
<string name="pref_xa_on_silent_mode_summary">デバイスがサイレントモードのとき、リソースが利用不可としてマークします</string>
+ <string name="pref_treat_vibrate_as_silent">バイブレートをサイレントモードとして扱う</string>
+ <string name="pref_treat_vibrate_as_silent_summary">デバイスがバイブレートのとき、リソースを利用不可としてマークします</string>
<string name="pref_show_connection_options">拡張接続設定</string>
<string name="pref_show_connection_options_summary">アカウントを設定するときにホスト名とポートの設定を表示します</string>
<string name="hostname_example">xmpp.example.com</string>
@@ -554,4 +557,7 @@
<string name="selection_too_large">選択した範囲が大きすぎます</string>
<string name="no_accounts">(アクティベートしたアカウントはありません)</string>
<string name="this_field_is_required">このフィールドは必須です</string>
+ <string name="no_keys_just_confirm">既にこの連絡先を信頼しています。\'完了\' を選択すると、%s がこの会議の参加者であることを確認します。</string>
+ <string name="select_image_and_crop">画像の選択とトリミング</string>
+ <string name="this_account_is_disabled">このアカウントを無効にしました</string>
</resources>
diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml
index 4164ca71..b66ecd5e 100644
--- a/src/main/res/values-pt/strings.xml
+++ b/src/main/res/values-pt/strings.xml
@@ -2,18 +2,20 @@
<resources>
<string name="action_settings">Configurações</string>
<string name="action_add">Nova conversa</string>
- <string name="action_accounts">Gerenciar contas</string>
+ <string name="action_accounts">Gerir contas</string>
<string name="action_end_conversation">Finalizar essa conversa</string>
<string name="action_contact_details">Detalhes do contato</string>
<string name="action_muc_details">Detalhes da conferência</string>
<string name="action_secure">Conversa segura</string>
<string name="action_add_account">Adicionar conta</string>
<string name="action_edit_contact">Editar nome</string>
+ <string name="action_add_phone_book">Adicionar ao livro de endereços</string>
+ <string name="action_delete_contact">Apagar da lista</string>
<string name="action_block_contact">Bloquear contato</string>
<string name="action_unblock_contact">Desbloquear contato</string>
<string name="action_block_domain">Bloquear domínio</string>
<string name="action_unblock_domain">Desbloquear domínio</string>
- <string name="title_activity_manage_accounts">Gerenciar contas</string>
+ <string name="title_activity_manage_accounts">Gerir contas</string>
<string name="title_activity_settings">Configurações</string>
<string name="title_activity_conference_details">Detalhes da conferência</string>
<string name="title_activity_contact_details">Detalhes do contato</string>
@@ -26,24 +28,27 @@
<string name="minutes_ago">%d minutos atrás</string>
<string name="unread_conversations">Conversas não lidas</string>
<string name="sending">enviando...</string>
+ <string name="message_decrypting">Decifrando a mensagem. Por favor aguarde...</string>
+ <string name="pgp_message">Mensagem cifrada OpenPGP</string>
<string name="nick_in_use">O apelido já está em uso</string>
<string name="admin">Administrador</string>
<string name="owner">Dono</string>
<string name="moderator">Moderador</string>
<string name="participant">Participante</string>
<string name="visitor">Visitante</string>
+ <string name="remove_contact_text">Deseja remover %s da sua lista? A conversa associada a este contacto não será removida.</string>
<string name="block_contact_text">Deseja bloquear o o recebimento de mensagens de %s?</string>
<string name="unblock_contact_text">Deseja desbloquear o recebimento de mensagens de %s?</string>
- <string name="block_domain_text">Bloquear todos os contatos de %s?</string>
- <string name="unblock_domain_text">Desbloquear todos os contatos de %s?</string>
- <string name="contact_blocked">Contato bloqueado</string>
- <string name="remove_bookmark_text">Você deseja remover %s dos favoritos? A conversa associada a esse favorito não será removida.</string>
- <string name="register_account">Registre uma nova conta no servidor</string>
+ <string name="block_domain_text">Bloquear todos os contactos de %s?</string>
+ <string name="unblock_domain_text">Desbloquear todos os contactos de %s?</string>
+ <string name="contact_blocked">Contacto bloqueado</string>
+ <string name="remove_bookmark_text">Deseja remover %s dos favoritos? A conversa associada a este favorito não será removida.</string>
+ <string name="register_account">Registe uma nova conta no servidor</string>
<string name="change_password_on_server">Altere a senha no servidor</string>
<string name="share_with">Compartilhar com...</string>
<string name="start_conversation">Iniciar conversa</string>
- <string name="invite_contact">Convidar contato</string>
- <string name="contacts">Contatos</string>
+ <string name="invite_contact">Convidar contacto</string>
+ <string name="contacts">Contactos</string>
<string name="cancel">Cancelar</string>
<string name="set">Definir</string>
<string name="add">Adicionar</string>
@@ -51,43 +56,52 @@
<string name="delete">Remover</string>
<string name="block">Bloquear</string>
<string name="unblock">Desbloquear</string>
- <string name="save">Salvar</string>
+ <string name="save">Guardar</string>
<string name="ok">OK</string>
- <string name="crash_report_title">A conversa foi interrompida</string>
+ <string name="crash_report_title">Conversations teve um problema e deixou de funcionar</string>
<string name="crash_report_message">Ao enviar os stack traces você ajudará o desenvolvimento do aplicativo\n<b>Atenção:</b> Isso usará a sua conta XMPP para enviar o stack trace para o desenvolvedor.</string>
<string name="send_now">Enviar agora</string>
- <string name="send_never">Não pergunte novamente</string>
- <string name="problem_connecting_to_account">Não foi possível se conectar à conta</string>
- <string name="problem_connecting_to_accounts">Não foi possível conectar a múltiplas contas</string>
- <string name="touch_to_fix">Toque aqui para gerenciar suas contas</string>
+ <string name="send_never">Não perguntar novamente</string>
+ <string name="problem_connecting_to_account">Não foi possível ligar-se à conta</string>
+ <string name="problem_connecting_to_accounts">Não foi possível ligar-se a múltiplas contas</string>
+ <string name="touch_to_fix">Toque aqui para gerir suas contas</string>
<string name="attach_file">Anexar arquivo</string>
- <string name="not_in_roster">O contato não está no seu rol</string>
- <string name="add_contact">Adicionar contato</string>
+ <string name="not_in_roster">O contacto não está na sua lista. Deseja adicioná-lo?</string>
+ <string name="add_contact">Adicionar contacto</string>
<string name="send_failed">a entrega falhou</string>
<string name="send_rejected">rejeitado</string>
<string name="preparing_image">Preparando a imagem para transmissão</string>
<string name="action_clear_history">Limpar histórico</string>
<string name="clear_conversation_history">Limpar o histórico de conversas</string>
- <string name="clear_histor_msg">Você deseja remover todas as mensagens nessa conversa?\n\n&lt;b&gt;Atenção:&lt;b&gt; Isso não irá influenciar mensagens salvas em outros dispositivos ou servidores.</string>
+ <string name="clear_histor_msg">Deseja remover todas as mensagens nesta conversa?\n\n&lt;b&gt;Aviso:&lt;b&gt; Isto não irá influenciar mensagens guardadas noutros dispositivos ou servidores.</string>
<string name="delete_messages">Remover mensagens</string>
- <string name="choose_presence">Escolha a presença do contato</string>
- <string name="send_otr_message">Enviar mensagem criptografada com OTR</string>
- <string name="send_pgp_message">Enviar mensagem criptografada com OpenPGP</string>
- <string name="your_nick_has_been_changed">Seu apelido foi alterado</string>
- <string name="send_unencrypted">Enviar sem criptografia</string>
- <string name="decryption_failed">A desencriptação falhou. Talvez você não tenha a chave privada correta.</string>
+ <string name="also_end_conversation">Terminar esta conversa depois</string>
+ <string name="choose_presence">Escolha a presença do contacto</string>
+ <string name="send_unencrypted_message">Enviar mensagem não cifrada</string>
+ <string name="send_otr_message">Enviar mensagem cifrada com OTR</string>
+ <string name="send_omemo_message">Enviar mensagem cifrada com OMEMO</string>
+ <string name="send_omemo_x509_message">Enviar mensagem cifrada com v\\OMEMO</string>
+ <string name="send_pgp_message">Enviar mensagem cifrada com OpenPGP</string>
+ <string name="your_nick_has_been_changed">O seu apelido foi alterado</string>
+ <string name="send_unencrypted">Enviar não cifrada</string>
+ <string name="decryption_failed">A decifragem falhou. Talvez não tenha a chave privada correta.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversas utiliza um aplicativo de terceiro chamado <b>OpenKeychain</b> para criptografar e descriptografar mensagens e gerenciar suas chaves públicas.\n\nOpenKeychain é licenciado sob a licença GPLv3 e está disponível no F-Droid e Google Play.\n\n<small>(Por favor reinicie Coversas em seguida)</small></string>
+ <string name="openkeychain_required_long">Conversations utiliza uma aplicação de terceiros chamada <b>OpenKeychain</b> para cifrar e decifrar mensagens e gerir as suas chaves públicas.\n\nOpenKeychain é licenciado sob a licença GPLv3 e está disponível no F-Droid e Google Play.\n\n<small>(Por favor reinicie Conversations em seguida)</small></string>
<string name="restart">Reiniciar</string>
<string name="install">Instalar</string>
+ <string name="openkeychain_not_installed">Por favor instale o OpenKeychain</string>
<string name="offering">oferecendo...</string>
<string name="waiting">aguardando...</string>
- <string name="no_pgp_key">Nenhuma chave OpenPGP encontrado</string>
+ <string name="no_pgp_key">Nenhuma chave OpenPGP encontrada</string>
+ <string name="contact_has_no_pgp_key">Conversations não é capaz de cifrar as suas mensagens porque o seu contacto não está a anunciar a sua chave pública.\n\n<small>Por favor peça ao seu contacto para configurar o OpenPGP.</small></string>
+ <string name="no_pgp_keys">Não foram encontradas chaves OpenPGP</string>
+ <string name="contacts_have_no_pgp_keys">Conversations não é capaz de cifrar as suas mensagens porque os seus contactos não estão a anunciar as suas chaves públicas.\n\n<small>Por favor peça aos seus contactos para configurarem o OpenPGP.</small></string>
<string name="pref_general">Geral</string>
<string name="pref_xmpp_resource">Recurso XMPP</string>
- <string name="pref_xmpp_resource_summary">O nome pelo qual esse cliente se identifica</string>
- <string name="pref_accept_files">Aceitar arquivos</string>
- <string name="pref_accept_files_summary">Automaticamente aceita arquivos menores que...</string>
+ <string name="pref_xmpp_resource_summary">O nome pelo qual este cliente se identifica</string>
+ <string name="pref_accept_files">Aceitar ficheiros</string>
+ <string name="pref_accept_files_summary">Automaticamente aceitar ficheiros menores que...</string>
+ <string name="pref_notification_settings">Notificação</string>
<string name="pref_notifications">Notificações</string>
<string name="pref_notifications_summary">Notificar quando uma nova mensagem for recebida</string>
<string name="pref_vibrate">Vibrar</string>
@@ -96,68 +110,87 @@
<string name="pref_sound_summary">Tocar um som com a notificação</string>
<string name="pref_notification_grace_period">Período de carência da notificação</string>
<string name="pref_notification_grace_period_summary">Desativar notificações por um curto período após a copia oculta ser recebida</string>
- <string name="pref_never_send_crash">Nunca enviar relatórios de quebra</string>
- <string name="pref_never_send_crash_summary">Ao enviar os stack traces você ajuda o desenvolvimento do aplicativo</string>
- <string name="pref_confirm_messages">Confirmar mensanges</string>
- <string name="pref_confirm_messages_summary">Permitir que um contato saiba quando você recebeu e leu uma mensagem</string>
- <string name="openpgp_error">O OpenKeychain informou um erro</string>
- <string name="error_decrypting_file">Erro de I/O de critpografia</string>
+ <string name="pref_advanced_options">Avançadas</string>
+ <string name="pref_never_send_crash">Nunca enviar relatórios de falhas</string>
+ <string name="pref_never_send_crash_summary">Ao enviar os stack traces você está a ajudar ao desenvolvimento contínuo de Conversations</string>
+ <string name="pref_confirm_messages">Confirmar mensagens</string>
+ <string name="pref_confirm_messages_summary">Permitir que um contacto saiba quando você recebeu e leu uma mensagem</string>
+ <string name="pref_ui_options">Interface do Utilizador</string>
+ <string name="openpgp_error">O OpenKeychain reportou um erro</string>
+ <string name="error_decrypting_file">Erro de I/O ao decifrar o ficheiro</string>
<string name="accept">Aceitar</string>
<string name="error">Ocorreu um erro</string>
<string name="pref_grant_presence_updates">Permitir atualizações de presença</string>
- <string name="subscriptions">Inscrições</string>
- <string name="your_account">Sua conta</string>
+ <string name="pref_grant_presence_updates_summary">Conceder ou pedir subscrição de presença antecipadamente para contactos que tenha criado.</string>
+ <string name="subscriptions">Subscrições</string>
+ <string name="your_account">A sua conta</string>
<string name="keys">Chaves</string>
<string name="send_presence_updates">Enviar atualizações de presença</string>
<string name="receive_presence_updates">Receber atualizações de presença</string>
<string name="ask_for_presence_updates">Pedir atualizações de presença</string>
<string name="attach_choose_picture">Escolher imagem</string>
<string name="attach_take_picture">Tirar foto</string>
+ <string name="preemptively_grant">Conceder pedido de subscrição antecipadamente</string>
<string name="error_not_an_image_file">O arquivo selecionado não é uma imagem</string>
- <string name="error_compressing_image">Erro ao converter o arquivo de imagem</string>
- <string name="error_file_not_found">Arquivo não encontrado</string>
+ <string name="error_compressing_image">Erro ao converter o ficheiro de imagem</string>
+ <string name="error_file_not_found">Ficheiro não encontrado</string>
+ <string name="error_io_exception">Erro de I/O genérico. Talvez tenha ficado sem espaço de armazenamento?</string>
+ <string name="error_security_exception_during_image_copy">A aplicação que usou para selecionar esta imagem não nos forneceu permissões suficientes para ler o ficheiro.\n\n<small>Utilize um gestor de ficheiros diferente para escolher uma imagem</small></string>
<string name="account_status_unknown">Desconhecido</string>
- <string name="account_status_disabled">Temporariamente desabilitado</string>
+ <string name="account_status_disabled">Temporariamente desativado</string>
<string name="account_status_online">Online</string>
<string name="account_status_connecting">Conectando\u2026</string>
<string name="account_status_offline">Offline</string>
<string name="account_status_unauthorized">Não autorizado</string>
<string name="account_status_not_found">Servidor não encontrado</string>
<string name="account_status_no_internet">Sem conectividade</string>
- <string name="account_status_regis_fail">O registro falhou</string>
- <string name="account_status_regis_conflict">O nome de usuário já está em uso</string>
- <string name="account_status_regis_success">Registro efetuado com sucesso</string>
- <string name="account_status_regis_not_sup">O servidor não aceita o registro</string>
+ <string name="account_status_regis_fail">O registo falhou</string>
+ <string name="account_status_regis_conflict">O nome de utilizador já está em uso</string>
+ <string name="account_status_regis_success">Registo efetuado com sucesso</string>
+ <string name="account_status_regis_not_sup">O servidor não aceita o registo</string>
<string name="account_status_security_error">Erro de segurança</string>
<string name="account_status_incompatible_server">Servidor incompatível</string>
+ <string name="encryption_choice_unencrypted">Não cifrado</string>
<string name="encryption_choice_otr">OTR</string>
<string name="encryption_choice_pgp">OpenPGP</string>
+ <string name="encryption_choice_omemo">OMEMO</string>
<string name="mgmt_account_edit">Editar conta</string>
<string name="mgmt_account_delete">Remover conta</string>
- <string name="mgmt_account_disable">Desabilitar temporariamente</string>
+ <string name="mgmt_account_disable">Desativar temporariamente</string>
<string name="mgmt_account_publish_avatar">Publicar o avatar</string>
<string name="mgmt_account_publish_pgp">Publicar chave pública OpenPGP</string>
<string name="mgmt_account_enable">Ativar conta</string>
- <string name="mgmt_account_are_you_sure">Tem certeza?</string>
+ <string name="mgmt_account_are_you_sure">Tem a certeza?</string>
+ <string name="mgmt_account_delete_confirm_text">Se apagar a sua conta o histórico completo das suas conversas será perdido</string>
<string name="attach_record_voice">Gravar voz</string>
<string name="account_settings_jabber_id">ID Jabber</string>
- <string name="account_settings_password">Senha</string>
- <string name="account_settings_example_jabber_id">nomedeusuario@exemplo.com</string>
- <string name="account_settings_confirm_password">Confirmar senha</string>
- <string name="password">Senha</string>
- <string name="confirm_password">Confirmar senha</string>
- <string name="passwords_do_not_match">As senhas não combina</string>
+ <string name="account_settings_password">Palavra-passe</string>
+ <string name="account_settings_example_jabber_id">nomedeutilizador@exemplo.com</string>
+ <string name="account_settings_confirm_password">Confirmar palavra-passe</string>
+ <string name="password">Palavra-passe</string>
+ <string name="confirm_password">Confirmar palavra-passe</string>
+ <string name="passwords_do_not_match">As palavras-passe não correspondem</string>
<string name="invalid_jid">Esse não é um ID Jabber válido</string>
<string name="error_out_of_memory">Memória insuficiente. A imagem é muito grande</string>
+ <string name="add_phone_book_text">Deseja adicionar %s aos seus contactos?</string>
<string name="contact_status_online">online</string>
- <string name="contact_status_free_to_chat">disponível para conversa</string>
- <string name="contact_status_away">fora</string>
+ <string name="contact_status_free_to_chat">disponível para conversar</string>
+ <string name="contact_status_away">ausente</string>
<string name="contact_status_extended_away">fora extendido</string>
- <string name="contact_status_do_not_disturb">não pertube</string>
+ <string name="contact_status_do_not_disturb">não perturbar</string>
<string name="contact_status_offline">offline</string>
<string name="muc_details_conference">Conferência</string>
<string name="muc_details_other_members">Outros Membros</string>
- <string name="server_info_show_more">Informações do servior</string>
+ <string name="server_info_show_more">Informações do servidor</string>
+ <string name="server_info_mam">XEP-0313: MAM</string>
+ <string name="server_info_carbon_messages">XEP-0280: Message Carbons</string>
+ <string name="server_info_csi">XEP-0352: Client State Indication</string>
+ <string name="server_info_blocking">XEP-0191: Blocking Command</string>
+ <string name="server_info_roster_version">XEP-0237: Roster Versioning</string>
+ <string name="server_info_stream_management">XEP-0198: Stream Management</string>
+ <string name="server_info_pep">XEP-0163: PEP (Avatars / OMEMO)</string>
+ <string name="server_info_http_upload">XEP-0363: HTTP File Upload</string>
+ <string name="server_info_push">XEP-0357: Push</string>
<string name="server_info_available">disponível</string>
<string name="server_info_unavailable">indisponível</string>
<string name="missing_public_keys">Anúncios de ausência de chave pública</string>
@@ -170,111 +203,374 @@
<string name="last_seen_days">visto %d dias atrás</string>
<string name="never_seen">nunca visto</string>
<string name="install_openkeychain">Mensagem criptografada. Por favor instale o OpenKeychain para desencriptar</string>
- <string name="unknown_otr_fingerprint">Impressão OTR inválida</string>
- <string name="openpgp_messages_found">Mensagens encriptadas com OpenPGP não encontrada</string>
+ <string name="unknown_otr_fingerprint">Impressão digital OTR desconhecida</string>
+ <string name="openpgp_messages_found">Mensagens encriptadas com OpenPGP encontradas</string>
<string name="reception_failed">A recepção falhou</string>
- <string name="your_fingerprint">Sua impressão</string>
- <string name="otr_fingerprint">Impressão OTR</string>
+ <string name="your_fingerprint">A sua impressão digital</string>
+ <string name="otr_fingerprint">Impressão digital OTR</string>
+ <string name="omemo_fingerprint">Impressão digital OMEMO</string>
+ <string name="omemo_fingerprint_x509">Impressão digital v\\OMEMO</string>
+ <string name="omemo_fingerprint_selected_message">Impressão digital OMEMO da mensagem</string>
+ <string name="omemo_fingerprint_x509_selected_message">Impressão digital v\\OMEMO da mensagem</string>
+ <string name="this_device_omemo_fingerprint">Impressão digital OMEMO própria</string>
+ <string name="other_devices">Outros dispositivos</string>
+ <string name="trust_omemo_fingerprints">Confiar nas impressões digitais OMEMO</string>
+ <string name="fetching_keys">Obtendo as chaves...</string>
+ <string name="done">Concluído</string>
<string name="verify">Verificar</string>
- <string name="decrypt">Desencriptar</string>
+ <string name="decrypt">Decifrar</string>
<string name="conferences">Conferências</string>
- <string name="search">Buscar</string>
- <string name="create_contact">Criar contato</string>
- <string name="join_conference">Se juntar à conferência</string>
- <string name="delete_contact">Remover contato</string>
- <string name="view_contact_details">Ver os detalhes dos contatos</string>
- <string name="block_contact">Bloquear contato</string>
- <string name="unblock_contact">Desbloquear contato</string>
+ <string name="search">Pesquisar</string>
+ <string name="create_contact">Criar Contacto</string>
+ <string name="enter_contact">Inserir Contacto</string>
+ <string name="join_conference">Juntar-se à Conferência</string>
+ <string name="delete_contact">Remover Contacto</string>
+ <string name="view_contact_details">Ver detalhes do contacto</string>
+ <string name="block_contact">Bloquear contacto</string>
+ <string name="unblock_contact">Desbloquear contacto</string>
<string name="create">Criar</string>
- <string name="contact_already_exists">O contato já existe</string>
+ <string name="select">Selecionar</string>
+ <string name="contact_already_exists">O contacto já existe</string>
<string name="join">Juntar</string>
<string name="conference_address">Endereço da conferência</string>
<string name="conference_address_example">sala@conferencia.example.com</string>
- <string name="save_as_bookmark">Salvar como favorito</string>
- <string name="delete_bookmark">Salvar favorito</string>
+ <string name="save_as_bookmark">Guardar como favorito</string>
+ <string name="delete_bookmark">Apagar favorito</string>
<string name="bookmark_already_exists">O favorito já existe</string>
<string name="you">Você</string>
<string name="action_edit_subject">Editar o assunto da conferência</string>
+ <string name="joining_conference">A juntar-se à conferência...</string>
<string name="leave">Sair</string>
- <string name="contact_added_you">Contato adicionado à sua lista de contato</string>
+ <string name="contact_added_you">Contacto adicionado à sua lista de contactos</string>
<string name="add_back">Adicionar novamente</string>
- <string name="contact_has_read_up_to_this_point">%s leu até esse ponto</string>
+ <string name="contact_has_read_up_to_this_point">%s leu até este ponto</string>
<string name="publish">Publicar</string>
- <string name="touch_to_choose_picture">Toque o avatar para escolher uma imagem da sua galeria</string>
- <string name="publish_avatar_explanation">Por favor observe: Todos inscritos na sua atualização de presença poderá ver essa imagem</string>
+ <string name="touch_to_choose_picture">Toque no avatar para escolher uma imagem da galeria</string>
+ <string name="publish_avatar_explanation">Por favor note: Todos os subscritos à suas atualizações de presença poderão ver esta imagem.</string>
<string name="publishing">Publicando...</string>
- <string name="error_publish_avatar_server_reject">O servidor rejeitou sua publicação</string>
- <string name="error_publish_avatar_converting">Algo deu errado ao converter sua imagem</string>
- <string name="error_saving_avatar">Não foi possível salvar o avatar no disco</string>
+ <string name="error_publish_avatar_server_reject">O servidor rejeitou a sua publicação</string>
+ <string name="error_publish_avatar_converting">Algo deu errado ao converter a sua imagem</string>
+ <string name="error_saving_avatar">Não foi possível guardar o avatar no disco</string>
<string name="or_long_press_for_default">(Ou mantenha pressionado por um tempo para voltar para o padrão)</string>
<string name="error_publish_avatar_no_server_support">O seu servidor não suporta a publicação de avatares</string>
- <string name="private_message">sussurado</string>
+ <string name="private_message">sussurrou</string>
<string name="private_message_to">para %s</string>
<string name="send_private_message_to">Enviar mensagem privada para %s</string>
<string name="connect">Conectar</string>
- <string name="account_already_exists">Essa conta já existe</string>
+ <string name="account_already_exists">Esta conta já existe</string>
<string name="next">Próximo</string>
<string name="server_info_session_established">Sessão atual estebelecida</string>
- <string name="additional_information">Informação adicional</string>
+ <string name="additional_information">Informação Adicional</string>
<string name="skip">Pular</string>
<string name="disable_notifications">Desativar notificações</string>
- <string name="disable_notifications_for_this_conversation">Desativar notificações para essa conversa</string>
+ <string name="disable_notifications_for_this_conversation">Desativar notificações para esta conversa</string>
<string name="enable">Ativar</string>
- <string name="conference_requires_password">Essa conferencia requer uma senha</string>
- <string name="enter_password">Informar a senha</string>
+ <string name="conference_requires_password">Esta conferência requer uma palavra-passe</string>
+ <string name="enter_password">Inserir palavra-passe</string>
<string name="missing_presence_updates">Atualizações de presença inexistente para o contato</string>
+ <string name="request_presence_updates">Por favor peça atualizações de presença ao seu contacto primeiro.\n\n<small>Isto irá ser utilizado para determinar que cliente(s) o seu contacto está a utilizar.</small></string>
<string name="request_now">Solicitar agora</string>
- <string name="delete_fingerprint">Remover impressão</string>
- <string name="sure_delete_fingerprint">Tem certeza que deseja remover essa assinatura?</string>
- <string name="pref_force_encryption">Forçar criptografia ponto-a-ponto</string>
- <string name="pref_force_encryption_summary">Sempre envie mensagem criptografada (exceto para conferências)</string>
- <string name="pref_dont_save_encrypted">Não salve mensagens criptografadas</string>
- <string name="pref_dont_save_encrypted_summary">Atenção: Isso pode levar a perda de mensagens</string>
- <string name="pref_expert_options_summary">Por favor tenha cuidado com essas</string>
- <string name="title_activity_about">Sobre Conversas</string>
+ <string name="delete_fingerprint">Remover impressão digital</string>
+ <string name="sure_delete_fingerprint">Tem a certeza que deseja remover esta impressão digital?</string>
+ <string name="ignore">Ignorar</string>
+ <string name="without_mutual_presence_updates"><b>Aviso:</b> Enviar isto sem atualizações de presença mútuas pode causar problemas inesperados.\n\n<small>Vá aos detalhes do contacto para verificar as suas subscrições de presença.</small></string>
+ <string name="pref_security_settings">Segurança</string>
+ <string name="pref_force_encryption">Forçar cifragem ponto-a-ponto</string>
+ <string name="pref_force_encryption_summary">Enviar sempre mensagens cifradas (exceto para conferências)</string>
+ <string name="pref_allow_message_correction">Permitir a correção de mensagens</string>
+ <string name="pref_allow_message_correction_summary">Permitir que os seus contactos editem as suas mensagens depois de enviadas</string>
+ <string name="pref_dont_save_encrypted">Não guardar mensagens cifradas</string>
+ <string name="pref_dont_save_encrypted_summary">Atenção: Isto pode levar à perda de mensagens</string>
+ <string name="pref_expert_options">Definições avançadas</string>
+ <string name="pref_expert_options_summary">Por favor tenha cuidado com estas</string>
+ <string name="title_activity_about">Sobre Conversations</string>
<string name="pref_about_conversations_summary">Informação de licença e construção</string>
<string name="title_pref_quiet_hours">Horas de tranquilidade</string>
<string name="title_pref_quiet_hours_start_time">Hora de início</string>
<string name="title_pref_quiet_hours_end_time">Hora de fim</string>
- <string name="title_pref_enable_quiet_hours">Habilitar hora de tranquilidade</string>
+ <string name="title_pref_enable_quiet_hours">Ativar horas de tranquilidade</string>
<string name="pref_quiet_hours_summary">Notificações serão silenciadas nas horas de tranquilidade</string>
<string name="pref_use_larger_font">Aumentar o tamanho da fonte</string>
- <string name="pref_use_larger_font_summary">Usar fontes maiores por todo aplicativo</string>
+ <string name="pref_use_larger_font_summary">Usar fontes maiores para toda a aplicação</string>
<string name="pref_use_send_button_to_indicate_status">O botão de enviar indica o estado</string>
<string name="pref_use_indicate_received">Solicitar recibo de mensagem</string>
- <string name="pref_use_indicate_received_summary">Mensagens recebidas serão marcadas com um check verde se suportado</string>
- <string name="pref_use_send_button_to_indicate_status_summary">Colorir o botão de enviar para indicar o estado do contato</string>
+ <string name="pref_use_indicate_received_summary">Mensagens recebidas serão marcadas com um visto verde se suportado</string>
+ <string name="pref_use_send_button_to_indicate_status_summary">Colorir o botão de enviar para indicar o estado do contacto</string>
<string name="pref_expert_options_other">Outros</string>
<string name="pref_conference_name">Nome da conferência</string>
<string name="pref_conference_name_summary">Use o assunto da sala ao invés do JID para identificar as conferências</string>
- <string name="toast_message_otr_fingerprint">Impressão OTR copiada para a área de transferência!</string>
+ <string name="pref_autojoin">Juntar-se automaticamente a conferências</string>
+ <string name="pref_autojoin_summary">Respeitar a flag autojoin nos favoritos de conferências</string>
+ <string name="toast_message_otr_fingerprint">Impressão digital OTR copiada para a área de transferência!</string>
+ <string name="toast_message_omemo_fingerprint">Impressão digital OMEMO copiada para a área de transferência!</string>
+ <string name="conference_banned">Está banido desta conferência</string>
+ <string name="conference_members_only">Esta conferência é apenas para membros</string>
+ <string name="conference_kicked">Foi banido desta conferência</string>
+ <string name="conference_shutdown">A conferência foi terminada</string>
+ <string name="conference_unknown_error">Já não se encontra nesta conferência</string>
+ <string name="using_account">utilizando a conta %s</string>
+ <string name="checking_x">Verificando %s no anfitrião HTTP</string>
+ <string name="not_connected_try_again">Não está ligado. Tente novamente mais tarde</string>
+ <string name="check_x_filesize">Verifique o tamanho de %s</string>
+ <string name="check_x_filesize_on_host">Verifique o tamanho de %1$s em %2$s</string>
+ <string name="message_options">Opções de mensagem</string>
+ <string name="copy_text">Copiar texto</string>
+ <string name="copy_original_url">Copiar o URL original</string>
+ <string name="send_again">Enviar novamente</string>
+ <string name="file_url">URL do ficheiro</string>
+ <string name="message_text">Texto da mensagem</string>
+ <string name="url_copied_to_clipboard">URL copiado para a área de transferência</string>
+ <string name="message_copied_to_clipboard">Mensagem copiada para a área de transferência</string>
+ <string name="image_transmission_failed">A transmissão da imagem falhou</string>
+ <string name="scan_qr_code">Ler código QR</string>
+ <string name="show_qr_code">Mostrar código QR</string>
+ <string name="show_block_list">Mostar lista de bloqueios</string>
+ <string name="account_details">Detalhes da conta</string>
+ <string name="verify_otr">Verificar OTR</string>
+ <string name="remote_fingerprint">Impressão digital remota</string>
+ <string name="scan">ler</string>
+ <string name="smp">Protocolo do Milionário Socialista</string>
+ <string name="shared_secret_hint">Dica ou Questão</string>
+ <string name="shared_secret_secret">Segredo Partilhado</string>
+ <string name="confirm">Confirmar</string>
+ <string name="in_progress">Em progresso</string>
+ <string name="respond">Responder</string>
+ <string name="failed">Falhou</string>
+ <string name="secrets_do_not_match">Os segredos não coincidem</string>
<string name="try_again">Tentar novamente</string>
<string name="finish">Finalizar</string>
+ <string name="verified">Verificado!</string>
+ <string name="smp_requested">O contacto pediu uma verificação SMP</string>
+ <string name="no_otr_session_found">Não foi encontrada nenhuma sessão OTR válida!</string>
+ <string name="conversations_foreground_service">Conversations</string>
+ <string name="pref_keep_foreground_service">Manter o serviço em primeiro plano</string>
+ <string name="pref_keep_foreground_service_summary">Previne o sistema operativo de terminar a sua conexão</string>
+ <string name="pref_export_logs">Exportar os Logs</string>
+ <string name="pref_export_logs_summary">Escrever os logs para o cartão SD</string>
+ <string name="notification_export_logs_title">A escrever os logs para o cartão SD</string>
+ <string name="choose_file">Escolher ficheiro</string>
+ <string name="receiving_x_file">A receber %1$s (%2$d%% concluído)</string>
+ <string name="download_x_file">Transferir %s</string>
+ <string name="file">ficheiro</string>
+ <string name="open_x_file">Abrir %s</string>
+ <string name="sending_file">a enviar (%1$d%% concluído)</string>
+ <string name="preparing_file">Preparando o ficheiro para a transmissão</string>
+ <string name="x_file_offered_for_download">%s oferecido para download</string>
+ <string name="cancel_transmission">Cancelar transmissão</string>
+ <string name="file_transmission_failed">A transmissão do ficheiro falhou</string>
+ <string name="file_deleted">O ficheiro foi eliminado</string>
+ <string name="no_application_found_to_open_file">Não foi encontrada nenhuma aplicação para abrir o ficheiro</string>
+ <string name="could_not_verify_fingerprint">Não foi possível verificar a impressão digital</string>
+ <string name="manually_verify">Verificar manualmente</string>
+ <string name="are_you_sure_verify_fingerprint">Tem a certeza que quer verificar a impressão digital OTR do seu contacto?</string>
+ <string name="pref_show_dynamic_tags">Mostrar tags dinâmicas</string>
+ <string name="pref_show_dynamic_tags_summary">Mostrar tags read-only debaixo dos contactos</string>
+ <string name="enable_notifications">Ativar notificações</string>
+ <string name="conference_with">Criar conferência com...</string>
+ <string name="no_conference_server_found">Não foi encontrado nenhum servidor de conferências</string>
+ <string name="conference_creation_failed">Criação de conferência falhou!</string>
+ <string name="conference_created">Conferência criada!</string>
+ <string name="secret_accepted">Segredo aceite!</string>
+ <string name="reset">Restaurar</string>
+ <string name="account_image_description">Avatar da conta</string>
+ <string name="copy_otr_clipboard_description">Copiar a impressão digital OTR para a área de transferência</string>
+ <string name="copy_omemo_clipboard_description">Copiar a impressão digital OMEMO para a área de transferência</string>
+ <string name="regenerate_omemo_key">Regenerar a chave OMEMO</string>
+ <string name="wipe_omemo_pep">Apagar outros dispositivos do PEP</string>
+ <string name="clear_other_devices">Apagar dispositivos</string>
+ <string name="clear_other_devices_desc">Tem a certeza que quer apagar todos os outros dispositivos do anúncio OMEMO? A próxima vez que os seus dispositivos se conectem, irão ser eles mesmos a fazerem o anúncio novamente, mas podem não receber as mensagems enviadas entretanto.</string>
+ <string name="purge_key">Remover chave</string>
+ <string name="purge_key_desc_part1">Tem a certeza que quer remover esta chave?</string>
+ <string name="purge_key_desc_part2">Irá ser considerada comprometida irreversivelmente, e não poderá construir uma sessão com ela novamente.</string>
+ <string name="error_no_keys_to_trust_server_error">Não existem chaves disponíveis para serem utilizadas para este contacto.\nNão foi possível obter chaves novas do servidor. Talvez exista algum problema com o seu servidor de contactos.</string>
+ <string name="error_no_keys_to_trust">Não existem chaves disponíveis para serem utilizadas para este contacto. Se removeu alguma das chaves dele, ele irá necessitar de gerar chaves novas. </string>
+ <string name="error_trustkeys_title">Erro</string>
+ <string name="fetching_history_from_server">Obtendo o histórico do servidor</string>
+ <string name="no_more_history_on_server">Não existe mais histórico no servidor</string>
+ <string name="updating">A atualizar...</string>
+ <string name="password_changed">Palavra-passe alterada!</string>
+ <string name="could_not_change_password">Não foi possível alterar a palavra-passe</string>
+ <string name="otr_session_not_started">Enviar uma mensagem para começar uma conversa cifrada</string>
+ <string name="ask_question">Fazer pergunta</string>
+ <string name="smp_explain_question">Se tiver um segredo em comum com o seu contacto que mais ninguém saiba (como uma piada entre vocês ou simplesmente o que comeram ao almoço da última vez que se encontraram) pode usar esse segredo para verificar as impressões digitais um do outro.\n\nForneça uma dica ou uma questão para o seu contacto que irá responder com uma resposta sensível a maiúsculas e minúsculas.</string>
+ <string name="smp_explain_answer">O seu contacto gostaria de verificar a sua impressão digital desafiando-o com um segredo partilhado. O seu contacto forneceu a seguinte dica ou questão para esse segredo.</string>
+ <string name="shared_secret_hint_should_not_be_empty">A sua dica não deve estar vazia</string>
+ <string name="shared_secret_can_not_be_empty">O seu segredo partilhado não pode estar vazio</string>
+ <string name="manual_verification_explanation">Compare cuidadosamente a impressão digital mostrada abaixo com a impressão digital do seu contacto.\nPode usar qualquer forma de comunicação como um e-mail cifrado ou uma chamada telefónica para as trocar.</string>
+ <string name="change_password">Alterar palavra-passe</string>
+ <string name="current_password">Palavra-passe atual</string>
+ <string name="new_password">Nova palavra-passe</string>
+ <string name="password_should_not_be_empty">A palavra-passe não deve estar vazia</string>
+ <string name="enable_all_accounts">Ativar todas as contas</string>
+ <string name="disable_all_accounts">Desativar todas as contas</string>
<string name="perform_action_with">Realizar a ação com</string>
<string name="no_affiliation">Sem afiliação</string>
<string name="no_role">Sem papel</string>
+ <string name="outcast">Banido</string>
<string name="member">Membro</string>
<string name="advanced_mode">Modo avançado</string>
+ <string name="grant_membership">Conceder filiação</string>
+ <string name="remove_membership">Revogar filiação</string>
+ <string name="grant_admin_privileges">Conceder privilégios de administração</string>
+ <string name="remove_admin_privileges">Revogar privilégios de administração</string>
+ <string name="remove_from_room">Remover da conferência</string>
+ <string name="could_not_change_affiliation">Não foi possível alterar a afiliação de %s</string>
+ <string name="ban_from_conference">Banir da conferência</string>
+ <string name="removing_from_public_conference">Está a tentar remover %s da conferência pública. A única maneira de fazer isso é remover esse utilizador para sempre.</string>
+ <string name="ban_now">Banir agora</string>
+ <string name="could_not_change_role">Não foi possível alterar o papel de %s</string>
+ <string name="public_conference">Conferência acessível publicamente</string>
+ <string name="private_conference">Privado, conferência apenas para membros</string>
+ <string name="conference_options">Opções da conferência</string>
+ <string name="members_only">Privado, apenas membros</string>
+ <string name="non_anonymous">Não-anónimo</string>
+ <string name="moderated">Moderado</string>
+ <string name="you_are_not_participating">Não está a participar</string>
+ <string name="modified_conference_options">Opções da conferência alteradas</string>
+ <string name="could_not_modify_conference_options">Não foi possível alterar as opções da conferência</string>
+ <string name="never">Nunca</string>
+ <string name="thirty_minutes">30 minutos</string>
<string name="one_hour">1 hora</string>
<string name="two_hours">2 horas</string>
<string name="eight_hours">8 horas</string>
<string name="until_further_notice">Até segunda ordem</string>
+ <string name="pref_input_options">Introdução</string>
<string name="pref_enter_is_send">O enter envia</string>
<string name="pref_enter_is_send_summary">Use o enter para enviar a mensagem</string>
<string name="pref_display_enter_key">Exibir tecla enter</string>
+ <string name="pref_display_enter_key_summary">Alterar a tecla dos emoticons para uma tecla enter</string>
<string name="audio">áudio</string>
<string name="video">vídeo</string>
<string name="image">imagem</string>
<string name="pdf_document">Documento PDF</string>
- <string name="apk">Aplicativo Android</string>
- <string name="vcard">Contato</string>
+ <string name="apk">Aplicação Android</string>
+ <string name="vcard">Contacto</string>
+ <string name="received_x_file">Recebeu %s</string>
+ <string name="disable_foreground_service">Desativar serviço em primeiro plano</string>
+ <string name="touch_to_open_conversations">Toque para abrir Conversations</string>
+ <string name="avatar_has_been_published">O avatar foi publicado!</string>
<string name="sending_x_file">Enviando %s</string>
<string name="offering_x_file">Oferecendo %s</string>
- <string name="contact_has_stopped_typing">%s parou de digitar</string>
- <string name="pref_chat_states">Notificações de digitação</string>
+ <string name="hide_offline">Ocultar offline</string>
+ <string name="disable_account">Desativar Conta</string>
+ <string name="contact_is_typing">%s está a escrever...</string>
+ <string name="contact_has_stopped_typing">%s parou de escrever</string>
+ <string name="pref_chat_states">Notificações de escrita</string>
+ <string name="pref_chat_states_summary">Permitir que um contacto saiba quando está a escrever uma nova mensagem</string>
<string name="send_location">Enviar localização</string>
<string name="show_location">Exibir localização</string>
+ <string name="no_application_found_to_display_location">Não foi encontrada nenhuma aplicação para mostrar a localização</string>
+ <string name="location">Localização</string>
+ <string name="received_location">Localização recebida</string>
+ <string name="title_undo_swipe_out_conversation">Conversa fechada</string>
+ <string name="title_undo_swipe_out_muc">Deixou a conferência</string>
+ <string name="pref_dont_trust_system_cas_title">Não confiar nas CAs do sistema</string>
+ <string name="pref_dont_trust_system_cas_summary">Todos os certificados têm que ser aprovados manualmente</string>
+ <string name="pref_remove_trusted_certificates_title">Remover certificados</string>
+ <string name="pref_remove_trusted_certificates_summary">Apagar certificados aprovados manualmente</string>
+ <string name="toast_no_trusted_certs">Não existem certificados aprovados manualmente</string>
+ <string name="dialog_manage_certs_title">Remover certificados</string>
+ <string name="dialog_manage_certs_positivebutton">Apagar seleção</string>
<string name="dialog_manage_certs_negativebutton">Cancelar</string>
+ <plurals name="toast_delete_certificates">
+ <item quantity="one">%d certificado apagado</item>
+ <item quantity="other">%d certificados apagados</item>
+ </plurals>
+ <plurals name="select_contact">
+ <item quantity="one">Selecionar %d contacto</item>
+ <item quantity="other">Selecionar %d contactos</item>
+ </plurals>
+ <string name="pref_quick_action_summary">Substituir botão enviar com ação rápida</string>
<string name="pref_quick_action">Ação rápida</string>
- <string name="none">Nada</string>
+ <string name="none">Nenhum</string>
+ <string name="recently_used">Usados mais recentemente</string>
+ <string name="choose_quick_action">Escolher ação rápida</string>
+ <string name="search_for_contacts_or_groups">Procurar contactos ou grupos</string>
+ <string name="send_private_message">Enviar mensagem privada</string>
+ <string name="user_has_left_conference">%s deixou a conferência!</string>
+ <string name="username">Nome de utilizador</string>
+ <string name="username_hint">Nome de utilizador</string>
+ <string name="invalid_username">Este não é um nome de utilizador válido</string>
+ <string name="conference_name">Nome da conferência</string>
+ <string name="invalid_conference_name">Este não é um nome de conferência válido</string>
+ <string name="download_failed_server_not_found">Transferência falhou: Servidor não encontrado</string>
+ <string name="download_failed_file_not_found">Transferência falhou: Ficheiro não encontrado</string>
+ <string name="download_failed_could_not_connect">Transferência falhou: Não foi possível conectar ao host</string>
+ <string name="pref_use_white_background">Usar fundo branco</string>
+ <string name="pref_use_white_background_summary">Mostrar mensagens recebidas como texto preto num fundo branco</string>
+ <string name="account_status_tor_unavailable">Rede Tor indisponível</string>
+ <string name="server_info_broken">Existe um problema</string>
+ <string name="pref_presence_settings">Presença</string>
+ <string name="pref_away_when_screen_off">Ausente quando o ecrã está desligado</string>
+ <string name="pref_away_when_screen_off_summary">Define o seu recurso como ausente quando o ecrã está desligado</string>
+ <string name="pref_xa_on_silent_mode">Não disponível no modo silencioso</string>
+ <string name="pref_xa_on_silent_mode_summary">Define o seu recurso como não disponível quando o dispositivo está em modo silencioso</string>
+ <string name="pref_treat_vibrate_as_silent">Tratar vibrar como modo silencioso</string>
+ <string name="pref_treat_vibrate_as_silent_summary">Define o seu recurso como não disponível quando o dispositivo está em modo vibrar</string>
+ <string name="pref_show_connection_options">Definições de conexão</string>
+ <string name="pref_show_connection_options_summary">Mostrar as definições do hostname e do porto ao configurar uma conta</string>
+ <string name="hostname_example">xmpp.exemplo.com</string>
+ <string name="action_add_account_with_certificate">Adicionar conta com certificado</string>
+ <string name="unable_to_parse_certificate">Não foi possível processar o certificado</string>
+ <string name="authenticate_with_certificate">Deixar vazio para autenticar com certificado</string>
+ <string name="mam_prefs">Preferências de arquivamento</string>
+ <string name="server_side_mam_prefs">Preferências de arquivamento do servidor</string>
+ <string name="fetching_mam_prefs">Obtendo as preferências de arquivamento. Por favor espere...</string>
+ <string name="unable_to_fetch_mam_prefs">Não foi possível obter as preferências de arquivamento</string>
+ <string name="captcha_ocr">Texto Captcha</string>
+ <string name="captcha_required">Captcha obrigatório</string>
+ <string name="captcha_hint">insira o texto da imagem</string>
+ <string name="certificate_chain_is_not_trusted">A cadeia de certificados não é confiável</string>
+ <string name="jid_does_not_match_certificate">O ID Jabber não coincide com o certificado</string>
+ <string name="action_renew_certificate">Renovar certificado</string>
+ <string name="error_fetching_omemo_key">Erro ao obter a chave OMEMO!</string>
+ <string name="verified_omemo_key_with_certificate">A chave OMEMO foi verificada com o certificado!</string>
+ <string name="device_does_not_support_certificates">O seu dispositivo não suporta a seleção de certificados de cliente!</string>
+ <string name="pref_connection_options">Conexão</string>
+ <string name="pref_use_tor">Conectar via TOR</string>
+ <string name="pref_use_tor_summary">Usar a rede Tor para todas as conexões. Requer a aplicação Orbot</string>
+ <string name="account_settings_hostname">Hostname</string>
+ <string name="account_settings_port">Porto</string>
+ <string name="hostname_or_onion">Servidor ou endereço .onion</string>
+ <string name="not_a_valid_port">Este não é um número de porto válido</string>
+ <string name="not_valid_hostname">Este não é um hostname válido</string>
+ <string name="connected_accounts">%1$d de %2$d contas conectadas</string>
+ <plurals name="x_messages">
+ <item quantity="one">%d mensagem</item>
+ <item quantity="other">%d mensagens</item>
+ </plurals>
+ <string name="load_more_messages">Carregar mais mensagens</string>
+ <string name="shared_file_with_x">Ficheiro partilhado com %s</string>
+ <string name="shared_image_with_x">Imagem partilhada com %s</string>
+ <string name="no_storage_permission">Conversations necessita de acesso ao armazenamento externo</string>
+ <string name="sync_with_contacts">Sincronizar com contactos</string>
+ <string name="sync_with_contacts_long">A aplicação Conversations deseja fazer a correspondência entre a sua lista de contactos XMPP e os seus contactos para mostrar os seus nomes completos e os seus avatares.\n\nA aplicação Conversations irá apenas ler os seus contactos e fazer a correspondência localmente sem enviar os dados para o seu servidor.\n\nIrá agora ser-lhe pedido para dar permissão para aceder aos seus contactos.</string>
+ <string name="certificate_information">Informação do Certificado</string>
+ <string name="certificate_subject">Assunto</string>
+ <string name="certificate_issuer">Emissor</string>
+ <string name="certificate_cn">Nome Comum</string>
+ <string name="certificate_o">Organização</string>
+ <string name="certificate_sha1">SHA-1</string>
+ <string name="certicate_info_not_available">(Não disponível)</string>
+ <string name="certificate_not_found">Nenhum certificado encontrado</string>
+ <string name="notify_on_all_messages">Notificar em todas as mensagens</string>
+ <string name="notify_only_when_highlighted">Notificar apenas quando destacado</string>
+ <string name="notify_never">Notificações desativadas</string>
+ <string name="notify_paused">Notificações interrompidas</string>
+ <string name="pref_picture_compression">Comprimir Imagens</string>
+ <string name="pref_picture_compression_summary">Redimensionar e comprimir fotografias</string>
+ <string name="always">Sempre</string>
+ <string name="automatically">Automaticamente</string>
+ <string name="battery_optimizations_enabled">Otimizações da bateria ativadas</string>
+ <string name="battery_optimizations_enabled_explained">O seu dispositivo está a fazer otimizações de bateria bastante agressivas na aplicação Conversations que poderão levar a notificações atrasadas ou até mesmo a perda de mensagens.\nÉ recomendado que as desative.</string>
+ <string name="battery_optimizations_enabled_dialog">O seu dispositivo está a fazer otimizações de bateria bastantes agressivas na aplicação Conversations que poderão levar a notificações atrasadas ou até mesmo perda de mensagens.\n\nIrá-lhe agora ser pedido para desativá-las.</string>
+ <string name="disable">Desativar</string>
+ <string name="selection_too_large">A área selecionada é demasiado grande</string>
+ <string name="no_accounts">(Nenhuma conta ativada)</string>
+ <string name="this_field_is_required">Este campo é obrigatório</string>
+ <string name="correct_message">Corrigir mensagem</string>
+ <string name="send_corrected_message">Enviar mensagem corrigida</string>
+ <string name="no_keys_just_confirm">Já confia neste contacto. Ao selecionar \'Concluído\' apenas está a confirmar que %s faz parte desta conferência.</string>
+ <string name="select_image_and_crop">Selecione imagem e corte</string>
+ <string name="this_account_is_disabled">Desativou esta conta</string>
</resources>
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index 1640e051..169e2cdb 100644
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -77,7 +77,7 @@
<string name="delete_messages">Удалить сообщения</string>
<string name="also_end_conversation">Закончить эту беседу впоследствии</string>
<string name="choose_presence">Укажите статус для контакта</string>
- <string name="send_unencrypted_message">Отправить незащифрованное сообщение</string>
+ <string name="send_unencrypted_message">Отправить не зашифрованное сообщение</string>
<string name="send_otr_message">Отправить OTR защифрованное сообщение</string>
<string name="send_omemo_message">Отправить OMEMO защифрованное сообщение</string>
<string name="send_omemo_x509_message">Послать v\\OMEMO зашифрованное сообщение</string>
@@ -101,6 +101,7 @@
<string name="pref_xmpp_resource_summary">Имя которым Conversations идентифицирует себя</string>
<string name="pref_accept_files">Принимать файлы</string>
<string name="pref_accept_files_summary">Автоматический прием файлов…</string>
+ <string name="pref_notification_settings">Уведомление</string>
<string name="pref_notifications">Уведомление</string>
<string name="pref_notifications_summary">Использовать звуковое уведомление когда приходят новые сообщения</string>
<string name="pref_vibrate">Вибрация</string>
@@ -109,10 +110,12 @@
<string name="pref_sound_summary">Выберите звуковой сигнал для сообщений</string>
<string name="pref_notification_grace_period">Отсрочка уведомлений</string>
<string name="pref_notification_grace_period_summary">Не использовать уведомления, если вы прочитали сообщение на другом устройстве</string>
+ <string name="pref_advanced_options">Дополнительно</string>
<string name="pref_never_send_crash">Отчеты об ошибках</string>
<string name="pref_never_send_crash_summary">Отправляя отчеты об ошибках, вы помогаете исправить и улучшить Conversations, поддерживая дальнейшее развитие программы</string>
<string name="pref_confirm_messages">Отчеты о получении</string>
<string name="pref_confirm_messages_summary">Разрешить уведомлять отправителя, когда вы получили и прочитали сообщение</string>
+ <string name="pref_ui_options">Интерфейс</string>
<string name="openpgp_error">Возникла ошибка в OpenKeychain</string>
<string name="error_decrypting_file">Ошибка расшифровки файла</string>
<string name="accept">Принять</string>
@@ -187,6 +190,7 @@
<string name="server_info_stream_management">XEP-0198: Управление потоками</string>
<string name="server_info_pep">XEP-0163: PEP (Аватары / OMEMO)</string>
<string name="server_info_http_upload">XEP-0363: Загрузка файлов по HTTP</string>
+ <string name="server_info_push">XEP-0357: Push уведомления</string>
<string name="server_info_available">доступен</string>
<string name="server_info_unavailable">недоступен</string>
<string name="missing_public_keys">Отсутствие анонсирования открытых ключей</string>
@@ -235,6 +239,7 @@
<string name="bookmark_already_exists">Такая закладка уже существует</string>
<string name="you">Вы</string>
<string name="action_edit_subject">Редактировать тему конференции</string>
+ <string name="joining_conference">Вход в конференцию...</string>
<string name="leave">Покинуть</string>
<string name="contact_added_you">Собеседник добавил вас в список контактов</string>
<string name="add_back">Добавить в ответ</string>
@@ -269,10 +274,13 @@
<string name="sure_delete_fingerprint">Вы уверены, что хотите удалить данную контрольную сумму?</string>
<string name="ignore">Отменить</string>
<string name="without_mutual_presence_updates"><b>Внимание:</b> Если обновления присутствия не включены на обеих сторонах, это может привести к возникновению неожиданных проблемам.\n\n<small>Уточните сведения о контакте, проверив настройки обновлений присутствия.</small></string>
+ <string name="pref_security_settings">Безопасность</string>
<string name="pref_force_encryption">Обязательное сквозное шифрование</string>
<string name="pref_force_encryption_summary">Всегда отправлять сообщения зашифрованными (за исключением конференций)</string>
+ <string name="pref_allow_message_correction">Разрешить исправление сообщений</string>
<string name="pref_dont_save_encrypted">Не сохранять зашифрованные сообщения</string>
<string name="pref_dont_save_encrypted_summary">Внимание: Это может привести к потере сообщений</string>
+ <string name="pref_expert_options">Расширенные настройки</string>
<string name="pref_expert_options_summary">Пожалуйста, будьте осторожны с данными настройками</string>
<string name="title_activity_about">О Conversations</string>
<string name="pref_about_conversations_summary">Информация о билде и лицензировании</string>
@@ -290,6 +298,8 @@
<string name="pref_expert_options_other">Другие</string>
<string name="pref_conference_name">Название конференции</string>
<string name="pref_conference_name_summary">Использовать тему беседы заместо JID для отображения конференций</string>
+ <string name="pref_autojoin">Автоматический вход в конференции</string>
+ <string name="pref_autojoin_summary">Автоматический вход в конференции</string>
<string name="toast_message_otr_fingerprint">OTR-отпечаток скопирован в буфер обмена!</string>
<string name="toast_message_omemo_fingerprint">OMEMO отпечаток скопирован в буфер обмена!</string>
<string name="conference_banned">Вы заблокированы в этой конференции</string>
@@ -419,6 +429,7 @@
<string name="two_hours">2 часа</string>
<string name="eight_hours">8 часов</string>
<string name="until_further_notice">До следующего уведомления</string>
+ <string name="pref_input_options">Ввод</string>
<string name="pref_enter_is_send">Отправить на \"Enter\"</string>
<string name="pref_enter_is_send_summary">Клавиша \"Enter\" отправляет сообщение</string>
<string name="pref_display_enter_key">Показывать клавишу ввода</string>
@@ -479,6 +490,8 @@
<string name="username">Имя пользователя</string>
<string name="username_hint">Имя пользователя</string>
<string name="invalid_username">Недопустимое имя пользователя</string>
+ <string name="conference_name">Название конференции</string>
+ <string name="invalid_conference_name">Недопустимое название конференции</string>
<string name="download_failed_server_not_found">Загрузка не удалась: сервер не найден</string>
<string name="download_failed_file_not_found">Загрузка не удалась: файл не найден</string>
<string name="download_failed_could_not_connect">Загрузка не удалась: не удалось подключиться к серверу</string>
@@ -487,9 +500,15 @@
<string name="pref_away_when_screen_off">Вышел когда экран выключен</string>
<string name="pref_away_when_screen_off_summary">Отмечает ваш ресурс как \"вышел\" когда экран выключен</string>
<string name="pref_xa_on_silent_mode">Не доступен в режиме без звука</string>
+ <string name="pref_xa_on_silent_mode_summary">Отмечает ваш ресурс как \"не доступен\", когда телефон в беззвучном режиме</string>
+ <string name="pref_treat_vibrate_as_silent_summary">Отмечает ваш ресурс как \"не доступен\", когда телефон в режиме вибрации</string>
+ <string name="pref_show_connection_options">Расширенные настройки подключения</string>
+ <string name="pref_show_connection_options_summary">Показывать имя сервера и порт в настройках аккаунтов</string>
+ <string name="hostname_example">xmpp.example.com</string>
<string name="action_add_account_with_certificate">Добавить аккаунт с сертификатом</string>
<string name="unable_to_parse_certificate">Невозможно разобрать сертификат</string>
<string name="authenticate_with_certificate">Оставить пустым для входа с сертификатом</string>
+ <string name="mam_prefs">Настройки архивирования</string>
<string name="captcha_ocr">Проверочный текст</string>
<string name="captcha_required">Необходима проверка</string>
<string name="captcha_hint">введите текст с картинки</string>
@@ -499,6 +518,7 @@
<string name="error_fetching_omemo_key">Ошибка при получении OMEMO ключа!</string>
<string name="verified_omemo_key_with_certificate">Проверен OMEMO ключ с сертификатом!</string>
<string name="device_does_not_support_certificates">Ваше устройство не поддерживает выбор клиентских сертификатов!</string>
+ <string name="pref_connection_options">Подключение</string>
<string name="account_settings_hostname">Имя сервера</string>
<string name="account_settings_port">Порт</string>
<string name="not_a_valid_port">Это недопустимый номер порта</string>
@@ -513,9 +533,11 @@
<string name="certificate_subject">Subject</string>
<string name="certificate_issuer">Выпустил</string>
<string name="certificate_o">Организация</string>
+ <string name="certificate_sha1">SHA-1</string>
<string name="certicate_info_not_available">(недоступно)</string>
<string name="certificate_not_found">Сертификатов не найдено</string>
<string name="notify_on_all_messages">Уведомлять о всех сообщениях</string>
+ <string name="notify_only_when_highlighted">Оповещение только при обращениях</string>
<string name="notify_never">Уведомления запрещены</string>
<string name="notify_paused">Уведомления приостановлены</string>
<string name="always">Всегда</string>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 8b34ecf1..11bed337 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -72,6 +72,8 @@
<string name="send_failed">delivery failed</string>
<string name="send_rejected">rejected</string>
<string name="preparing_image">Preparing image for transmission</string>
+ <string name="preparing_images">Preparing images for transmission</string>
+ <string name="sharing_files_please_wait">Sharing files. Please wait…</string>
<string name="action_clear_history">Clear history</string>
<string name="clear_conversation_history">Clear Conversation History</string>
<string name="clear_histor_msg">Do you want to delete all messages within this Conversation?\n\n<b>Warning:</b> This will not influence messages stored on other devices or servers.</string>
@@ -632,6 +634,7 @@
</plurals>
<string name="shared_file_with_x">Shared file with %s</string>
<string name="shared_image_with_x">Shared image with %s</string>
+ <string name="shared_images_with_x">Shared images with %s</string>
<string name="no_storage_permission">Conversations need access to external storage</string>
<string name="sync_with_contacts">Synchronize with contacts</string>
<string name="sync_with_contacts_long">Conversations wants to match your XMPP roster with your contacts to show their full names and avatars.\n\nConversations will only read your contacts and match them locally without uploading them to your server.\n\nYou will now be asked to grant permission to access your contacts.</string>