Merge branch 'dev' of https://github.com/loki-project/session-android into zombie-handling-update

This commit is contained in:
Brice-W 2021-06-03 11:51:57 +10:00
commit 1a117b0189
66 changed files with 3486 additions and 1085 deletions

View File

@ -3,12 +3,11 @@ You can also preview your report before submitting it. You may remove sections t
Before we begin, please note that this tracker is only for issues. It is not for questions, comments, or feature requests.
If you are looking for support, please file an issue or:
or email team@loki.network
If you are looking for support, please file an issue or email team@oxen.io.
Let's begin with a checklist: Replace the empty checkboxes [ ] below with checked ones [x] accordingly. -->
- [ ] I have read and agree to adhere to the [Code of Conduct](https://github.com/oxen-io/session-android/blob/master/CODE_OF_CONDUCT.md).
- [ ] I have searched open and closed issues for duplicates
- [ ] I am submitting a bug report for existing functionality that does not work as intended
- [ ] This isn't a feature request or a discussion topic
@ -34,7 +33,6 @@ Describe here what should happen after you run the steps above (i.e. what would
### Screenshots
<!-- you can drag and drop images below -->
### Device info
<!-- replace the examples with your info -->

View File

@ -7,6 +7,10 @@ assignees: ''
---
**Code of conduct**
- [ ] I have read and agree to adhere to the [Code of Conduct](https://github.com/oxen-io/session-android/blob/master/CODE_OF_CONDUCT.md).
**Describe the bug**
A clear and concise description of what the bug is.

81
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,81 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone. We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
team@oxen.io.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@ -4,7 +4,7 @@
Add the [F-Droid repo](https://fdroid.getsession.org/)
[Grab the APK here](https://github.com/loki-project/session-android/releases/latest)
[Download the APK from here](https://github.com/loki-project/session-android/releases/latest)
## Summary

View File

@ -143,8 +143,8 @@ dependencies {
testImplementation 'org.robolectric:shadows-multidex:4.2'
}
def canonicalVersionCode = 174
def canonicalVersionName = "1.10.8"
def canonicalVersionCode = 180
def canonicalVersionName = "1.10.12"
def postFixSize = 10
def abiPostFix = ['armeabi-v7a' : 1,

View File

@ -69,7 +69,6 @@
android:label="@string/app_name"
android:largeHeap="true"
android:networkSecurityConfig="@xml/network_security_configuration"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true"
android:theme="@style/Theme.Session.DayNight"
tools:replace="android:allowBackup">

View File

@ -21,6 +21,7 @@ import android.os.AsyncTask;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import androidx.annotation.NonNull;
import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
@ -47,7 +48,6 @@ import org.session.libsignal.utilities.ThreadUtils;
import org.signal.aesgcmprovider.AesGcmProvider;
import org.thoughtcrime.securesms.components.TypingStatusSender;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.RecipientDatabase;
import org.thoughtcrime.securesms.dependencies.InjectableType;
import org.thoughtcrime.securesms.dependencies.SignalCommunicationModule;
import org.thoughtcrime.securesms.jobmanager.DependencyInjector;
@ -120,14 +120,12 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
private ProfileManager profileManager;
private ObjectGraph objectGraph;
private PersistentLogger persistentLogger;
// Loki
public MessageNotifier messageNotifier = null;
public Poller poller = null;
public Broadcaster broadcaster = null;
public SignalCommunicationModule communicationModule;
private Job firebaseInstanceIdJob;
private Handler threadNotificationHandler;
private Handler conversationListNotificationHandler;
private volatile boolean isAppVisible;
@ -135,8 +133,8 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
return (ApplicationContext) context.getApplicationContext();
}
public Handler getThreadNotificationHandler() {
return this.threadNotificationHandler;
public Handler getConversationListNotificationHandler() {
return this.conversationListNotificationHandler;
}
@Override
@ -153,7 +151,7 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
AppContext.INSTANCE.configureKovenant();
messageNotifier = new OptimizedMessageNotifier(new DefaultMessageNotifier());
broadcaster = new Broadcaster(this);
threadNotificationHandler = new Handler(Looper.getMainLooper());
conversationListNotificationHandler = new Handler(Looper.getMainLooper());
LokiAPIDatabase apiDB = DatabaseFactory.getLokiAPIDatabase(this);
MessagingModuleConfiguration.Companion.configure(this,
DatabaseFactory.getStorage(this),

View File

@ -353,11 +353,9 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity {
saveTask.executeOnExecutor(THREAD_POOL_EXECUTOR,
attachments.toArray(new SaveAttachmentTask.Attachment[attachments.size()]));
actionMode.finish();
// Sending a Data extraction notification (for incoming attachments only)
boolean containsIncoming = mediaRecords.parallelStream().anyMatch(m -> !m.isOutgoing());
if (containsIncoming) {
//TODO uncomment line below when Data extraction will be activated
//sendMediaSavedNotificationIfNeeded();
sendMediaSavedNotificationIfNeeded();
}
}
}.execute();
@ -366,11 +364,7 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity {
}, mediaRecords.size());
}
/**
* Send a MediaSaved notification to the recipient
*/
private void sendMediaSavedNotificationIfNeeded() {
// we don't send media saved notification for groups
if (recipient.isGroupRecipient()) return;
DataExtractionNotification message = new DataExtractionNotification(new DataExtractionNotification.Kind.MediaSaved(System.currentTimeMillis()));
MessageSender.send(message, recipient.getAddress());

View File

@ -39,8 +39,7 @@ import android.view.Window;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.Toast;
import org.session.libsession.messaging.messages.control.DataExtractionNotification;
import org.session.libsession.messaging.sending_receiving.MessageSender;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
@ -53,11 +52,14 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import org.session.libsession.messaging.messages.control.DataExtractionNotification;
import org.session.libsession.messaging.sending_receiving.MessageSender;
import org.session.libsession.messaging.sending_receiving.attachments.DatabaseAttachment;
import org.session.libsession.utilities.Address;
import org.session.libsession.utilities.Util;
import org.session.libsession.utilities.recipients.Recipient;
import org.session.libsession.utilities.recipients.RecipientModifiedListener;
import org.session.libsession.utilities.Util;
import org.session.libsignal.utilities.Log;
import org.thoughtcrime.securesms.components.MediaView;
import org.thoughtcrime.securesms.database.MediaDatabase.MediaRecord;
@ -352,21 +354,15 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im
saveTask.executeOnExecutor(
AsyncTask.THREAD_POOL_EXECUTOR,
new Attachment(mediaItem.uri, mediaItem.type, saveDate, null));
// Sending a Data extraction notification (for incoming attachments only)
if(!mediaItem.outgoing) {
//TODO uncomment line below when Data extraction will be activated
//sendMediaSavedNotificationIfNeeded();
if (!mediaItem.outgoing) {
sendMediaSavedNotificationIfNeeded();
}
})
.execute();
});
}
/**
* Send a MediaSaved notification to the recipient
*/
private void sendMediaSavedNotificationIfNeeded() {
// we don't send media saved notification for groups
if (conversationRecipient.isGroupRecipient()) return;
DataExtractionNotification message = new DataExtractionNotification(new DataExtractionNotification.Kind.MediaSaved(System.currentTimeMillis()));
MessageSender.send(message, conversationRecipient.getAddress());

View File

@ -741,10 +741,8 @@ public class ConversationFragment extends Fragment
if (!Util.isEmpty(attachments)) {
SaveAttachmentTask saveTask = new SaveAttachmentTask(getActivity());
saveTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, attachments.toArray(new SaveAttachmentTask.Attachment[0]));
// Sending a Data extraction notification (for incoming attachments only)
if(!message.isOutgoing()) {
//TODO uncomment line below when Data extraction will be activated
//sendMediaSavedNotificationIfNeeded();
if (!message.isOutgoing()) {
sendMediaSavedNotificationIfNeeded();
}
return;
}
@ -758,11 +756,7 @@ public class ConversationFragment extends Fragment
});
}
/**
* Send a MediaSaved notification to the recipient
*/
private void sendMediaSavedNotificationIfNeeded() {
// we don't send media saved notification for groups
if (recipient.isGroupRecipient()) return;
DataExtractionNotification message = new DataExtractionNotification(new DataExtractionNotification.Kind.MediaSaved(System.currentTimeMillis()));
MessageSender.send(message, recipient.getAddress());

View File

@ -45,9 +45,11 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.DimenRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.annimon.stream.Stream;
import org.session.libsession.messaging.contacts.Contact;
@ -58,17 +60,16 @@ import org.session.libsession.messaging.open_groups.OpenGroupV2;
import org.session.libsession.messaging.sending_receiving.attachments.AttachmentTransferProgress;
import org.session.libsession.messaging.sending_receiving.attachments.DatabaseAttachment;
import org.session.libsession.messaging.sending_receiving.link_preview.LinkPreview;
import org.session.libsession.utilities.recipients.Recipient;
import org.session.libsession.utilities.recipients.RecipientModifiedListener;
import org.session.libsession.messaging.utilities.UpdateMessageData;
import org.session.libsession.utilities.GroupUtil;
import org.session.libsession.utilities.Stub;
import org.session.libsession.utilities.TextSecurePreferences;
import org.session.libsession.utilities.ThemeUtil;
import org.session.libsession.utilities.Util;
import org.session.libsession.utilities.ViewUtil;
import org.session.libsession.utilities.Stub;
import org.session.libsignal.utilities.guava.Optional;
import org.session.libsession.utilities.recipients.Recipient;
import org.session.libsession.utilities.recipients.RecipientModifiedListener;
import org.session.libsignal.utilities.Log;
import org.session.libsignal.utilities.guava.Optional;
import org.thoughtcrime.securesms.BindableConversationItem;
import org.thoughtcrime.securesms.MediaPreviewActivity;
import org.thoughtcrime.securesms.MessageDetailsActivity;
@ -88,7 +89,6 @@ import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
import org.thoughtcrime.securesms.database.model.Quote;
import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil;
import org.thoughtcrime.securesms.loki.utilities.MentionUtilities;
import org.thoughtcrime.securesms.loki.utilities.OpenGroupUtilities;
import org.thoughtcrime.securesms.loki.views.MessageAudioView;
import org.thoughtcrime.securesms.loki.views.OpenGroupInvitationView;
import org.thoughtcrime.securesms.loki.views.ProfilePictureView;
@ -759,7 +759,6 @@ public class ConversationItem extends LinearLayout
String displayName = recipient.getName();
profilePictureView.setDisplayName(displayName);
profilePictureView.setAdditionalPublicKey(null);
profilePictureView.setRSSFeed(false);
profilePictureView.setGlide(glideRequests);
profilePictureView.update();
}

View File

@ -0,0 +1,37 @@
package org.thoughtcrime.securesms.database
import android.annotation.SuppressLint
import android.content.Context
import android.os.Handler
import android.os.Looper
import org.session.libsession.utilities.Debouncer
import org.thoughtcrime.securesms.ApplicationContext
class ConversationNotificationDebouncer(private val context: Context) {
private val threadIDs = mutableSetOf<Long>()
private val handler = Handler(Looper.getMainLooper())
private val debouncer = Debouncer(handler, 250);
companion object {
@SuppressLint("StaticFieldLeak")
lateinit var shared: ConversationNotificationDebouncer
fun get(context: Context): ConversationNotificationDebouncer {
if (::shared.isInitialized) { return shared }
shared = ConversationNotificationDebouncer(context)
return shared
}
}
fun notify(threadID: Long) {
threadIDs.add(threadID)
debouncer.publish { publish() }
}
private fun publish() {
for (threadID in threadIDs) {
context.contentResolver.notifyChange(DatabaseContentProviders.Conversation.getUriForThread(threadID), null)
}
threadIDs.clear()
}
}

View File

@ -35,13 +35,13 @@ public abstract class Database {
protected SQLCipherOpenHelper databaseHelper;
protected final Context context;
private final Debouncer threadNotificationDebouncer;
private final Debouncer conversationListNotificationDebouncer;
@SuppressLint("WrongConstant")
public Database(Context context, SQLCipherOpenHelper databaseHelper) {
this.context = context;
this.context = context;
this.databaseHelper = databaseHelper;
this.threadNotificationDebouncer = new Debouncer(ApplicationContext.getInstance(context).getThreadNotificationHandler(), 250);
this.conversationListNotificationDebouncer = new Debouncer(ApplicationContext.getInstance(context).getConversationListNotificationHandler(), 250);
}
protected void notifyConversationListeners(Set<Long> threadIds) {
@ -50,11 +50,11 @@ public abstract class Database {
}
protected void notifyConversationListeners(long threadId) {
context.getContentResolver().notifyChange(DatabaseContentProviders.Conversation.getUriForThread(threadId), null);
ConversationNotificationDebouncer.Companion.get(context).notify(threadId);
}
protected void notifyConversationListListeners() {
threadNotificationDebouncer.publish(()->context.getContentResolver().notifyChange(DatabaseContentProviders.ConversationList.CONTENT_URI, null));
conversationListNotificationDebouncer.publish(()->context.getContentResolver().notifyChange(DatabaseContentProviders.ConversationList.CONTENT_URI, null));
}
protected void notifyStickerListeners() {

View File

@ -46,7 +46,6 @@ import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
import org.thoughtcrime.securesms.database.model.MessageRecord;
import org.thoughtcrime.securesms.database.model.NotificationMmsMessageRecord;
import org.thoughtcrime.securesms.database.model.Quote;
import org.thoughtcrime.securesms.jobs.TrimThreadJob;
import org.session.libsession.messaging.messages.signal.IncomingMediaMessage;
import org.thoughtcrime.securesms.mms.MmsException;
import org.session.libsession.messaging.messages.signal.OutgoingExpirationUpdateMessage;
@ -668,7 +667,6 @@ public class MmsDatabase extends MessagingDatabase {
}
notifyConversationListeners(threadId);
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
return Optional.of(new InsertResult(messageId, threadId));
}
@ -812,7 +810,6 @@ public class MmsDatabase extends MessagingDatabase {
DatabaseFactory.getThreadDatabase(context).setLastSeen(threadId);
DatabaseFactory.getThreadDatabase(context).setHasSent(threadId, true);
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
return messageId;
}

View File

@ -35,7 +35,6 @@ import org.session.libsession.utilities.IdentityKeyMismatchList;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.database.model.MessageRecord;
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
import org.thoughtcrime.securesms.jobs.TrimThreadJob;
import org.session.libsession.messaging.messages.signal.IncomingGroupMessage;
import org.session.libsession.messaging.messages.signal.IncomingTextMessage;
import org.session.libsession.messaging.messages.signal.OutgoingTextMessage;
@ -414,7 +413,6 @@ public class SmsDatabase extends MessagingDatabase {
notifyConversationListeners(threadId);
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
return Optional.of(new InsertResult(messageId, threadId));
}
@ -484,7 +482,6 @@ public class SmsDatabase extends MessagingDatabase {
notifyConversationListeners(threadId);
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
return messageId;
}

View File

@ -1,10 +1,11 @@
package org.thoughtcrime.securesms.database
import android.app.job.JobScheduler
import android.content.Context
import android.net.Uri
import org.session.libsession.database.StorageProtocol
import org.session.libsession.messaging.jobs.*
import org.session.libsession.messaging.contacts.Contact
import org.session.libsession.messaging.jobs.*
import org.session.libsession.messaging.messages.control.ConfigurationMessage
import org.session.libsession.messaging.messages.signal.*
import org.session.libsession.messaging.messages.signal.IncomingTextMessage
@ -16,20 +17,15 @@ import org.session.libsession.messaging.sending_receiving.attachments.DatabaseAt
import org.session.libsession.messaging.sending_receiving.data_extraction.DataExtractionNotificationInfoMessage
import org.session.libsession.messaging.sending_receiving.link_preview.LinkPreview
import org.session.libsession.messaging.sending_receiving.quotes.QuoteModel
import org.session.libsession.utilities.Address
import org.session.libsession.utilities.Address.Companion.fromSerialized
import org.session.libsession.utilities.GroupRecord
import org.session.libsession.utilities.recipients.Recipient
import org.session.libsession.messaging.utilities.UpdateMessageData
import org.session.libsession.utilities.GroupUtil
import org.session.libsession.utilities.IdentityKeyUtil
import org.session.libsession.utilities.TextSecurePreferences
import org.session.libsession.utilities.ProfileKeyUtil
import org.session.libsession.utilities.*
import org.session.libsession.utilities.Address.Companion.fromSerialized
import org.session.libsession.utilities.recipients.Recipient
import org.session.libsignal.crypto.ecc.ECKeyPair
import org.session.libsignal.utilities.KeyHelper
import org.session.libsignal.utilities.guava.Optional
import org.session.libsignal.messages.SignalServiceAttachmentPointer
import org.session.libsignal.messages.SignalServiceGroup
import org.session.libsignal.utilities.KeyHelper
import org.session.libsignal.utilities.guava.Optional
import org.thoughtcrime.securesms.ApplicationContext
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper
import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob
@ -100,7 +96,7 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
override fun persist(message: VisibleMessage, quotes: QuoteModel?, linkPreview: List<LinkPreview?>, groupPublicKey: String?, openGroupID: String?, attachments: List<Attachment>): Long? {
var messageID: Long? = null
val senderAddress = Address.fromSerialized(message.sender!!)
val isUserSender = message.sender!! == getUserPublicKey()
val isUserSender = (message.sender!! == getUserPublicKey())
val group: Optional<SignalServiceGroup> = when {
openGroupID != null -> Optional.of(SignalServiceGroup(openGroupID.toByteArray(), SignalServiceGroup.GroupType.PUBLIC_CHAT))
groupPublicKey != null -> {
@ -120,14 +116,12 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
senderAddress
}
val targetRecipient = Recipient.from(context, targetAddress, false)
if (message.isMediaMessage() || attachments.isNotEmpty()) {
val quote: Optional<QuoteModel> = if (quotes != null) Optional.of(quotes) else Optional.absent()
val linkPreviews: Optional<List<LinkPreview>> = if (linkPreview.isEmpty()) Optional.absent() else Optional.of(linkPreview.mapNotNull { it!! })
val mmsDatabase = DatabaseFactory.getMmsDatabase(context)
val insertResult = if (message.sender == getUserPublicKey()) {
val mediaMessage = OutgoingMediaMessage.from(message, targetRecipient, pointerAttachments, quote.orNull(), linkPreviews.orNull()?.firstOrNull())
mmsDatabase.beginTransaction()
mmsDatabase.insertSecureDecryptedMessageOutbox(mediaMessage, message.threadID ?: -1, message.sentTimestamp!!)
} else {
// It seems like we have replaced SignalServiceAttachment with SessionServiceAttachment
@ -135,14 +129,11 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
it.toSignalPointer()
}
val mediaMessage = IncomingMediaMessage.from(message, senderAddress, targetRecipient.expireMessages * 1000L, group, signalServiceAttachments, quote, linkPreviews)
mmsDatabase.beginTransaction()
mmsDatabase.insertSecureDecryptedMessageInbox(mediaMessage, message.threadID ?: -1, message.receivedTimestamp ?: 0)
}
if (insertResult.isPresent) {
mmsDatabase.setTransactionSuccessful()
messageID = insertResult.get().messageId
}
mmsDatabase.endTransaction()
} else {
val smsDatabase = DatabaseFactory.getSmsDatabase(context)
val isOpenGroupInvitation = (message.openGroupInvitation != null)
@ -161,6 +152,11 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
messageID = result.messageId
}
}
val threadID = message.threadID
// open group trim thread job is scheduled after processing in OpenGroupPollerV2
if (openGroupID.isNullOrEmpty() && threadID != null && threadID >= 0) {
JobQueue.shared.add(TrimThreadJob(threadID))
}
return messageID
}
@ -539,6 +535,11 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
return threadDB.getLastUpdated(threadID)
}
override fun trimThread(threadID: Long, threadLimit: Int) {
val threadDB = DatabaseFactory.getThreadDatabase(context)
threadDB.trimThread(threadID, threadLimit)
}
override fun getAttachmentDataUri(attachmentId: AttachmentId): Uri {
return PartAuthority.getAttachmentDataUri(attachmentId)
}

View File

@ -423,6 +423,7 @@ public class ThreadDatabase extends Database {
DatabaseFactory.getSmsDatabase(context).deleteThread(threadId);
DatabaseFactory.getMmsDatabase(context).deleteThread(threadId);
DatabaseFactory.getDraftDatabase(context).clearDrafts(threadId);
DatabaseFactory.getLokiMessageDatabase(context).deleteThread(threadId);
deleteThread(threadId);
notifyConversationListeners(threadId);
notifyConversationListListeners();

View File

@ -1,5 +1,7 @@
package org.thoughtcrime.securesms.loki.activities
import android.animation.Animator
import android.animation.AnimatorListenerAdapter
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
@ -12,9 +14,14 @@ import android.view.*
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_create_private_chat.*
import kotlinx.android.synthetic.main.activity_create_private_chat.loader
import kotlinx.android.synthetic.main.activity_create_private_chat.tabLayout
import kotlinx.android.synthetic.main.activity_create_private_chat.viewPager
import kotlinx.android.synthetic.main.fragment_enter_public_key.*
import network.loki.messenger.R
import nl.komponents.kovenant.ui.failUi
import nl.komponents.kovenant.ui.successUi
import org.session.libsession.snode.SnodeAPI
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
import org.thoughtcrime.securesms.conversation.ConversationActivity
import org.session.libsession.utilities.Address
@ -48,6 +55,23 @@ class CreatePrivateChatActivity : PassphraseRequiredActionBarActivity(), ScanQRC
}
// endregion
// region Updating
private fun showLoader() {
loader.visibility = View.VISIBLE
loader.animate().setDuration(150).alpha(1.0f).start()
}
private fun hideLoader() {
loader.animate().setDuration(150).alpha(0.0f).setListener(object : AnimatorListenerAdapter() {
override fun onAnimationEnd(animation: Animator?) {
super.onAnimationEnd(animation)
loader.visibility = View.GONE
}
})
}
// endregion
// region Interaction
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId) {
@ -60,8 +84,27 @@ class CreatePrivateChatActivity : PassphraseRequiredActionBarActivity(), ScanQRC
createPrivateChatIfPossible(hexEncodedPublicKey)
}
fun createPrivateChatIfPossible(hexEncodedPublicKey: String) {
if (!PublicKeyValidation.isValid(hexEncodedPublicKey)) { return Toast.makeText(this, R.string.invalid_session_id, Toast.LENGTH_SHORT).show() }
fun createPrivateChatIfPossible(onsNameOrPublicKey: String) {
if (PublicKeyValidation.isValid(onsNameOrPublicKey)) {
createPrivateChat(onsNameOrPublicKey)
} else {
// This could be an ONS name
showLoader()
SnodeAPI.getSessionIDFor(onsNameOrPublicKey).successUi { hexEncodedPublicKey ->
hideLoader()
this.createPrivateChat(hexEncodedPublicKey)
}.failUi { exception ->
hideLoader()
var message = resources.getString(R.string.fragment_enter_public_key_error_message)
exception.localizedMessage?.let {
message = it
}
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
}
}
}
private fun createPrivateChat(hexEncodedPublicKey: String) {
val recipient = Recipient.from(this, Address.fromSerialized(hexEncodedPublicKey), false)
val intent = Intent(this, ConversationActivity::class.java)
intent.putExtra(ConversationActivity.ADDRESS_EXTRA, recipient.address)

View File

@ -51,17 +51,12 @@ import org.thoughtcrime.securesms.mms.GlideApp
import org.thoughtcrime.securesms.mms.GlideRequests
import java.io.IOException
class HomeActivity : PassphraseRequiredActionBarActivity(),
ConversationClickListener,
SeedReminderViewDelegate,
NewConversationButtonSetViewDelegate {
class HomeActivity : PassphraseRequiredActionBarActivity(), ConversationClickListener, SeedReminderViewDelegate, NewConversationButtonSetViewDelegate {
private lateinit var glide: GlideRequests
private var broadcastReceiver: BroadcastReceiver? = null
private val publicKey: String
get() {
return TextSecurePreferences.getLocalNumber(this)!!
}
get() = TextSecurePreferences.getLocalNumber(this)!!
// region Lifecycle
override fun onCreate(savedInstanceState: Bundle?, isReady: Boolean) {
@ -330,9 +325,6 @@ class HomeActivity : PassphraseRequiredActionBarActivity(),
// Delete the conversation
val v2OpenGroup = DatabaseFactory.getLokiThreadDatabase(context).getOpenGroupChat(threadID)
if (v2OpenGroup != null) {
val apiDB = DatabaseFactory.getLokiAPIDatabase(context)
apiDB.removeLastMessageServerID(v2OpenGroup.room, v2OpenGroup.server)
apiDB.removeLastDeletionServerID(v2OpenGroup.room, v2OpenGroup.server)
OpenGroupManager.delete(v2OpenGroup.server, v2OpenGroup.room, this@HomeActivity)
} else {
ThreadUtils.queue {

View File

@ -13,9 +13,6 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentPagerAdapter
import androidx.lifecycle.lifecycleScope
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.activity_create_private_chat.*
import kotlinx.android.synthetic.main.activity_create_private_chat.tabLayout
import kotlinx.android.synthetic.main.activity_create_private_chat.viewPager
import kotlinx.android.synthetic.main.activity_link_device.*
import kotlinx.android.synthetic.main.conversation_activity.*
import kotlinx.android.synthetic.main.fragment_recovery_phrase.*

View File

@ -12,25 +12,41 @@ class OpenGroupGuidelinesActivity : BaseActionBarActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_open_group_guidelines)
communityGuidelinesTextView.text = """
Welcome to Oxen.
Oxen believes privacy is an important part of our future. People have been safeguarding the right to privacy since the dawn of humanity, but the digital world has turned privacy into a privilege. Enough is enough. We're taking it back. For you. For us. For everyone.
Oxen is a private technology stack including the Oxen blockchain, Oxen service nodes (Sessions servers), the Oxen cryptocurrency, an onion-router called Lokinet, and Session itself.
Oxen is what makes Session possible Session is running on the Oxen network right now.
Find out more at https://oxen.io, or ask here!
In order for our open group to be a fun environment, full of robust and constructive discussion, please follow these four simple rules:
1. Keep conversations on-topic and add value to the discussion (no referral links, spamming, or off-topic discussion).
2. You don't have to love everyone, but be civil (no baiting, excessively partisan arguments, threats, and so on; use common sense).
1. Keep conversations on-topic and add value to the discussion.
(No referral links, spamming, or off-topic discussion)
2. You don't have to love everyone, but be civil.
(No baiting, excessively partisan arguments, threats, and so on. Use common sense.)
3. Do not be a shill. Comparison and criticism is reasonable, but blatant shilling is not.
4. Don't post explicit content, be it excessive offensive language, or content which is sexual or violent in nature.
If you break these rules, youll be warned by an admin. If your behaviour doesnt improve, you will be removed from the open group.
If you see or experience any destructive behaviour, please contact an admin.
SCAMMER WARNING
Trust only those with an admin tag in the chat. No admin will ever DM you first. No admin will ever message you for Oxen coins.
Trust only those with an admin crown in chat. No admin will ever DM you first. No admin will ever message you for Oxen coins.
""".trimIndent()
}
// endregion

View File

@ -89,7 +89,7 @@ object OpenGroupManager {
val openGroup = OpenGroupV2(server, room, info.name, publicKey)
threadDB.setOpenGroupChat(openGroup, threadID)
// Start the poller if needed
if (pollers[server] == null) {
pollers[server]?.startIfNeeded() ?: run {
val poller = OpenGroupPollerV2(server, executorService)
Util.runOnMain { poller.startIfNeeded() }
pollers[server] = poller
@ -111,9 +111,11 @@ object OpenGroupManager {
pollers.remove(server)
}
// Delete
storage.removeLastDeletionServerID(room, server)
storage.removeLastMessageServerID(room, server)
val lokiThreadDB = DatabaseFactory.getLokiThreadDatabase(context)
lokiThreadDB.removeOpenGroupChat(threadID)
ThreadUtils.queue {
storage.removeLastDeletionServerID(room, server)
storage.removeLastMessageServerID(room, server)
GroupManager.deleteGroup(groupID, context) // Must be invoked on a background thread
}
}

View File

@ -8,6 +8,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper
import org.thoughtcrime.securesms.loki.utilities.*
import org.session.libsignal.database.LokiMessageDatabaseProtocol
import org.session.libsignal.utilities.Log
class LokiMessageDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(context, helper), LokiMessageDatabaseProtocol {
@ -131,4 +132,26 @@ class LokiMessageDatabase(context: Context, helper: SQLCipherOpenHelper) : Datab
contentValues.put(Companion.errorMessage, errorMessage)
database.insertOrUpdate(errorMessageTable, contentValues, "${Companion.messageID} = ?", arrayOf(messageID.toString()))
}
fun deleteThread(threadId: Long) {
val database = databaseHelper.writableDatabase
try {
val messages = mutableSetOf<Pair<Long,Long>>()
database.get(messageThreadMappingTable, "${Companion.threadID} = ?", arrayOf(threadId.toString())) { cursor ->
// for each add
while (cursor.moveToNext()) {
messages.add(cursor.getLong(Companion.messageID) to cursor.getLong(Companion.serverID))
}
}
var deletedCount = 0L
database.beginTransaction()
messages.forEach { (messageId, serverId) ->
deletedCount += database.delete(messageIDTable, "${Companion.messageID} = ? AND ${Companion.serverID} = ?", arrayOf(messageId.toString(), serverId.toString()))
}
val mappingDeleted = database.delete(messageThreadMappingTable, "${Companion.threadID} = ?", arrayOf(threadId.toString()))
database.setTransactionSuccessful()
} finally {
database.endTransaction()
}
}
}

View File

@ -73,4 +73,12 @@ class LokiThreadDatabase(context: Context, helper: SQLCipherOpenHelper) : Databa
contentValues.put(publicChat, JsonUtil.toJson(openGroupV2.toJson()))
database.insertOrUpdate(publicChatTable, contentValues, "${Companion.threadID} = ?", arrayOf(threadID.toString()))
}
fun removeOpenGroupChat(threadID: Long) {
if (threadID < 0) return
val database = databaseHelper.writableDatabase
database.delete(publicChatTable,"${Companion.threadID} = ?", arrayOf(threadID.toString()))
}
}

View File

@ -35,13 +35,8 @@ class ConversationView : LinearLayout {
setUpViewHierarchy()
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {
setUpViewHierarchy()
}
private fun setUpViewHierarchy() {
LayoutInflater.from(context)
.inflate(R.layout.view_conversation, this)
LayoutInflater.from(context).inflate(R.layout.view_conversation, this)
}
// endregion
@ -75,7 +70,7 @@ class ConversationView : LinearLayout {
typingIndicatorView.visibility = if (isTyping) View.VISIBLE else View.GONE
statusIndicatorImageView.visibility = View.VISIBLE
when {
!thread.isOutgoing || thread.isVerificationStatusChange -> statusIndicatorImageView.visibility = View.GONE
!thread.isOutgoing -> statusIndicatorImageView.visibility = View.GONE
thread.isFailed -> statusIndicatorImageView.setImageResource(R.drawable.ic_error)
thread.isPending -> statusIndicatorImageView.setImageResource(R.drawable.ic_circle_dot_dot_dot)
thread.isRemoteRead -> statusIndicatorImageView.setImageResource(R.drawable.ic_filled_circle_check)

View File

@ -34,7 +34,6 @@ class MentionCandidateView(context: Context, attrs: AttributeSet?, defStyleAttr:
profilePictureView.publicKey = mentionCandidate.publicKey
profilePictureView.displayName = mentionCandidate.displayName
profilePictureView.additionalPublicKey = null
profilePictureView.isRSSFeed = false
profilePictureView.glide = glide!!
profilePictureView.update()
if (openGroupServer != null && openGroupRoom != null) {

View File

@ -20,17 +20,15 @@ import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.loki.utilities.AvatarPlaceholderGenerator
import org.thoughtcrime.securesms.mms.GlideRequests
// TODO: Look into a better way of handling different sizes. Maybe an enum (with associated values) encapsulating the different modes?
class ProfilePictureView : RelativeLayout {
lateinit var glide: GlideRequests
var publicKey: String? = null
var displayName: String? = null
var additionalPublicKey: String? = null
var additionalDisplayName: String? = null
var isRSSFeed = false
var isLarge = false
private val profilePicturesCached = mutableMapOf<String,String?>()
private val profilePicturesCache = mutableMapOf<String, String?>()
// region Lifecycle
constructor(context: Context) : super(context) {
@ -79,15 +77,11 @@ class ProfilePictureView : RelativeLayout {
val apk = randomUsers.getOrNull(1) ?: ""
additionalPublicKey = apk
additionalDisplayName = getUserDisplayName(apk)
isRSSFeed = recipient.name == "Loki News" ||
recipient.name == "Session Updates" ||
recipient.name == "Session Public Chat"
} else {
val publicKey = recipient.address.toString()
this.publicKey = publicKey
displayName = getUserDisplayName(publicKey)
additionalPublicKey = null
isRSSFeed = false
}
update()
}
@ -95,68 +89,47 @@ class ProfilePictureView : RelativeLayout {
fun update() {
val publicKey = publicKey ?: return
val additionalPublicKey = additionalPublicKey
doubleModeImageViewContainer.visibility = if (additionalPublicKey != null && !isRSSFeed) {
setProfilePictureIfNeeded(
doubleModeImageView1,
publicKey,
displayName,
R.dimen.small_profile_picture_size)
setProfilePictureIfNeeded(
doubleModeImageView2,
additionalPublicKey,
additionalDisplayName,
R.dimen.small_profile_picture_size)
View.VISIBLE
if (additionalPublicKey != null) {
setProfilePictureIfNeeded(doubleModeImageView1, publicKey, displayName, R.dimen.small_profile_picture_size)
setProfilePictureIfNeeded(doubleModeImageView2, additionalPublicKey, additionalDisplayName, R.dimen.small_profile_picture_size)
doubleModeImageViewContainer.visibility = View.VISIBLE
} else {
glide.clear(doubleModeImageView1)
glide.clear(doubleModeImageView2)
View.INVISIBLE
doubleModeImageViewContainer.visibility = View.INVISIBLE
}
singleModeImageViewContainer.visibility = if (additionalPublicKey == null && !isRSSFeed && !isLarge) {
setProfilePictureIfNeeded(
singleModeImageView,
publicKey,
displayName,
R.dimen.medium_profile_picture_size)
View.VISIBLE
if (additionalPublicKey == null && !isLarge) {
setProfilePictureIfNeeded(singleModeImageView, publicKey, displayName, R.dimen.medium_profile_picture_size)
singleModeImageView.visibility = View.VISIBLE
} else {
glide.clear(singleModeImageView)
View.INVISIBLE
singleModeImageView.visibility = View.INVISIBLE
}
largeSingleModeImageViewContainer.visibility = if (additionalPublicKey == null && !isRSSFeed && isLarge) {
setProfilePictureIfNeeded(
largeSingleModeImageView,
publicKey,
displayName,
R.dimen.large_profile_picture_size)
View.VISIBLE
if (additionalPublicKey == null && isLarge) {
setProfilePictureIfNeeded(largeSingleModeImageView, publicKey, displayName, R.dimen.large_profile_picture_size)
largeSingleModeImageView.visibility = View.VISIBLE
} else {
glide.clear(largeSingleModeImageView)
View.INVISIBLE
largeSingleModeImageView.visibility = View.INVISIBLE
}
rssImageView.visibility = if (isRSSFeed) View.VISIBLE else View.INVISIBLE
}
private fun setProfilePictureIfNeeded(imageView: ImageView, publicKey: String, displayName: String?, @DimenRes sizeResId: Int) {
if (publicKey.isNotEmpty()) {
val recipient = Recipient.from(context, Address.fromSerialized(publicKey), false)
if (profilePicturesCached.containsKey(publicKey) && profilePicturesCached[publicKey] == recipient.profileAvatar) return
if (profilePicturesCache.containsKey(publicKey) && profilePicturesCache[publicKey] == recipient.profileAvatar) return
val signalProfilePicture = recipient.contactPhoto
val avatar = (signalProfilePicture as? ProfileContactPhoto)?.avatarObject
if (signalProfilePicture != null && avatar != "0" && avatar != "") {
glide.clear(imageView)
glide.load(signalProfilePicture).diskCacheStrategy(DiskCacheStrategy.AUTOMATIC).circleCrop().into(imageView)
profilePicturesCached[publicKey] = recipient.profileAvatar
profilePicturesCache[publicKey] = recipient.profileAvatar
} else {
val sizeInPX = resources.getDimensionPixelSize(sizeResId)
glide.clear(imageView)
glide.load(AvatarPlaceholderGenerator.generate(
context,
sizeInPX,
publicKey,
displayName
)).diskCacheStrategy(DiskCacheStrategy.ALL).circleCrop().into(imageView)
profilePicturesCached[publicKey] = recipient.profileAvatar
glide.load(AvatarPlaceholderGenerator.generate(context, sizeInPX, publicKey, displayName))
.diskCacheStrategy(DiskCacheStrategy.ALL).circleCrop().into(imageView)
profilePicturesCache[publicKey] = recipient.profileAvatar
}
} else {
imageView.setImageDrawable(null)
@ -164,7 +137,7 @@ class ProfilePictureView : RelativeLayout {
}
fun recycle() {
profilePicturesCached.clear()
profilePicturesCache.clear()
}
// endregion
}

View File

@ -4,18 +4,21 @@ import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.text.SpannableStringBuilder;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
import android.text.SpannableStringBuilder;
import org.session.libsession.messaging.contacts.Contact;
import org.session.libsession.utilities.NotificationPrivacyPreference;
import org.session.libsession.utilities.TextSecurePreferences;
import org.session.libsession.utilities.Util;
import org.session.libsession.utilities.recipients.Recipient;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.loki.activities.HomeActivity;
import org.thoughtcrime.securesms.loki.database.SessionContactDatabase;
import org.session.libsession.utilities.NotificationPrivacyPreference;
import org.session.libsession.utilities.recipients.Recipient;
import org.session.libsession.utilities.TextSecurePreferences;
import org.session.libsession.utilities.Util;
import java.util.LinkedList;
import java.util.List;
@ -50,14 +53,7 @@ public class MultipleRecipientNotificationBuilder extends AbstractNotificationBu
public void setMostRecentSender(Recipient recipient, Recipient threadRecipient) {
String displayName = recipient.toShortString();
if (threadRecipient.isOpenGroupRecipient()) {
SessionContactDatabase contactDB = DatabaseFactory.getSessionContactDatabase(context);
String sessionID = recipient.getAddress().serialize();
Contact contact = contactDB.getContactWithSessionID(sessionID);
if (contact != null) {
displayName = contact.displayName(Contact.ContactContext.OPEN_GROUP);
} else {
displayName = sessionID;
}
displayName = getOpenGroupDisplayName(recipient);
}
if (privacy.isDisplayContact()) {
setContentText(context.getString(R.string.MessageNotifier_most_recent_from_s, displayName));
@ -79,14 +75,7 @@ public class MultipleRecipientNotificationBuilder extends AbstractNotificationBu
public void addMessageBody(@NonNull Recipient sender, Recipient threadRecipient, @Nullable CharSequence body) {
String displayName = sender.toShortString();
if (threadRecipient.isOpenGroupRecipient()) {
SessionContactDatabase contactDB = DatabaseFactory.getSessionContactDatabase(context);
String sessionID = sender.getAddress().serialize();
Contact contact = contactDB.getContactWithSessionID(sessionID);
if (contact != null) {
displayName = contact.displayName(Contact.ContactContext.OPEN_GROUP);
} else {
displayName = sessionID;
}
displayName = getOpenGroupDisplayName(sender);
}
if (privacy.isDisplayMessage()) {
SpannableStringBuilder builder = new SpannableStringBuilder();
@ -118,4 +107,17 @@ public class MultipleRecipientNotificationBuilder extends AbstractNotificationBu
return super.build();
}
/**
* @param recipient the * individual * recipient for which to get the open group display name.
*/
private String getOpenGroupDisplayName(Recipient recipient) {
SessionContactDatabase contactDB = DatabaseFactory.getSessionContactDatabase(context);
String sessionID = recipient.getAddress().serialize();
Contact contact = contactDB.getContactWithSessionID(sessionID);
if (contact == null) { return sessionID; }
String displayName = contact.displayName(Contact.ContactContext.OPEN_GROUP);
if (displayName == null) { return sessionID; }
return displayName;
}
}

View File

@ -119,18 +119,8 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
if (privacy.isDisplayContact() && threadRecipients.isOpenGroupRecipient()) {
String displayName;
SessionContactDatabase contactDB = DatabaseFactory.getSessionContactDatabase(context);
String sessionID = individualRecipient.getAddress().serialize();
Contact contact = contactDB.getContactWithSessionID(sessionID);
if (contact != null) {
displayName = contact.displayName(Contact.ContactContext.OPEN_GROUP);
} else {
displayName = sessionID;
}
if (displayName != null) {
stringBuilder.append(Util.getBoldedString(displayName + ": "));
}
String displayName = getOpenGroupDisplayName(individualRecipient);
stringBuilder.append(Util.getBoldedString(displayName + ": "));
}
if (privacy.isDisplayMessage()) {
@ -215,18 +205,8 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
if (privacy.isDisplayContact() && threadRecipient.isOpenGroupRecipient()) {
String displayName;
SessionContactDatabase contactDB = DatabaseFactory.getSessionContactDatabase(context);
String sessionID = individualRecipient.getAddress().serialize();
Contact contact = contactDB.getContactWithSessionID(sessionID);
if (contact != null) {
displayName = contact.displayName(Contact.ContactContext.OPEN_GROUP);
} else {
displayName = sessionID;
}
if (displayName != null) {
stringBuilder.append(Util.getBoldedString(displayName + ": "));
}
String displayName = getOpenGroupDisplayName(individualRecipient);
stringBuilder.append(Util.getBoldedString(displayName + ": "));
}
if (privacy.isDisplayMessage()) {
@ -342,4 +322,17 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
String displayName = recipient.getName();
return AvatarPlaceholderGenerator.generate(context, 128, publicKey, displayName);
}
/**
* @param recipient the * individual * recipient for which to get the open group display name.
*/
private String getOpenGroupDisplayName(Recipient recipient) {
SessionContactDatabase contactDB = DatabaseFactory.getSessionContactDatabase(context);
String sessionID = recipient.getAddress().serialize();
Contact contact = contactDB.getContactWithSessionID(sessionID);
if (contact == null) { return sessionID; }
String displayName = contact.displayName(Contact.ContactContext.OPEN_GROUP);
if (displayName == null) { return sessionID; }
return displayName;
}
}

View File

@ -178,6 +178,7 @@ public class ExpiringMessageManager implements SSKEnvironment.MessageExpirationM
}
private class LoadTask implements Runnable {
public void run() {
SmsDatabase.Reader smsReader = smsDatabase.readerFor(smsDatabase.getExpirationStartedMessages());
MmsDatabase.Reader mmsReader = mmsDatabase.getExpireStartedMessages();

View File

@ -6,6 +6,4 @@
<solid android:color="@color/profile_picture_background" />
<corners android:radius="38dp" />
<stroke android:width="@dimen/profile_picture_border_thickness" android:color="@color/border" />
</shape>

View File

@ -6,6 +6,4 @@
<solid android:color="@color/transparent" />
<corners android:radius="38dp" />
<stroke android:width="@dimen/profile_picture_border_thickness" android:color="@color/profile_picture_border" />
</shape>

View File

@ -6,6 +6,4 @@
<solid android:color="@color/profile_picture_background" />
<corners android:radius="23dp" />
<stroke android:width="@dimen/profile_picture_border_thickness" android:color="@color/profile_picture_border" />
</shape>

View File

@ -6,6 +6,4 @@
<solid android:color="@color/transparent" />
<corners android:radius="23dp" />
<stroke android:width="@dimen/profile_picture_border_thickness" android:color="@color/profile_picture_border" />
</shape>

View File

@ -6,6 +6,4 @@
<solid android:color="@color/profile_picture_background" />
<corners android:radius="23dp" />
<stroke android:width="@dimen/profile_picture_border_thickness" android:color="@color/profile_picture_border" />
</shape>

View File

@ -6,6 +6,4 @@
<solid android:color="@color/profile_picture_background" />
<corners android:radius="18dp" />
<stroke android:width="@dimen/profile_picture_border_thickness" android:color="@color/profile_picture_border" />
</shape>

View File

@ -1,14 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.viewpager.widget.ViewPager
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewPager"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
style="@style/Widget.Session.TabLayout"
android:id="@+id/tabLayout"
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="@dimen/tab_bar_height" />
android:layout_height="match_parent" >
</androidx.viewpager.widget.ViewPager>
<com.google.android.material.tabs.TabLayout
style="@style/Widget.Session.TabLayout"
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/tab_bar_height" />
</androidx.viewpager.widget.ViewPager>
<RelativeLayout
android:id="@+id/loader"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#A4000000"
android:visibility="gone"
android:alpha="0">
<com.github.ybq.android.spinkit.SpinKitView
style="@style/SpinKitView.Large.ThreeBounce"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_centerInParent="true"
app:SpinKit_Color="@android:color/white" />
</RelativeLayout>
</RelativeLayout>

View File

@ -1,97 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/doubleModeImageViewContainer"
android:layout_width="@dimen/medium_profile_picture_size"
android:layout_height="@dimen/medium_profile_picture_size">
<RelativeLayout
<ImageView
android:id="@+id/doubleModeImageView1"
android:layout_width="@dimen/small_profile_picture_size"
android:layout_height="@dimen/small_profile_picture_size"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true">
android:layout_alignParentTop="true"
android:background="@drawable/profile_picture_view_small_background" />
<ImageView
android:id="@+id/doubleModeImageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/profile_picture_view_small_background" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/profile_picture_view_small_foreground" />
</RelativeLayout>
<RelativeLayout
<ImageView
android:id="@+id/doubleModeImageView2"
android:layout_width="@dimen/small_profile_picture_size"
android:layout_height="@dimen/small_profile_picture_size"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true">
<ImageView
android:id="@+id/doubleModeImageView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/profile_picture_view_small_background" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/profile_picture_view_small_foreground" />
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
android:id="@+id/singleModeImageViewContainer"
android:layout_width="@dimen/medium_profile_picture_size"
android:layout_height="@dimen/medium_profile_picture_size">
<ImageView
android:id="@+id/singleModeImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/profile_picture_view_medium_background" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/profile_picture_view_medium_foreground" />
android:layout_alignParentBottom="true"
android:background="@drawable/profile_picture_view_small_background" />
</RelativeLayout>
<ImageView
android:id="@+id/rssImageView"
android:id="@+id/singleModeImageView"
android:layout_width="@dimen/medium_profile_picture_size"
android:layout_height="@dimen/medium_profile_picture_size"
android:gravity="center"
android:src="@drawable/session_logo_white"
android:padding="12dp"
android:background="@drawable/profile_picture_view_rss_medium_background" />
android:background="@drawable/profile_picture_view_medium_background" />
<RelativeLayout
android:id="@+id/largeSingleModeImageViewContainer"
<ImageView
android:id="@+id/largeSingleModeImageView"
android:layout_width="@dimen/large_profile_picture_size"
android:layout_height="@dimen/large_profile_picture_size">
<ImageView
android:id="@+id/largeSingleModeImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/profile_picture_view_large_background" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/profile_picture_view_large_foreground" />
</RelativeLayout>
android:layout_height="@dimen/large_profile_picture_size"
android:background="@drawable/profile_picture_view_large_background" />
</RelativeLayout>

View File

@ -0,0 +1,755 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">جلسة</string>
<string name="yes">نعم</string>
<string name="no">لا</string>
<string name="delete">حذف</string>
<string name="ban">حظر</string>
<string name="please_wait">الرجاء الانتظار...</string>
<string name="save">حفظ</string>
<string name="note_to_self">ملاحظة شخصية</string>
<string name="version_s">الإصدار %s</string>
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">رسالة جديدة</string>
<!-- AlbumThumbnailView -->
<string name="AlbumThumbnailView_plus">\+%d</string>
<!-- ApplicationPreferencesActivity -->
<plurals name="ApplicationPreferencesActivity_messages_per_conversation">
<item quantity="zero">%d رسالة في كل محادثة</item>
<item quantity="one">%d رسالة في كل محادثة</item>
<item quantity="two">%d رسائل في كل محادثة</item>
<item quantity="few">%d رسائل في كل محادثة</item>
<item quantity="many">%d</item>
<item quantity="other">%d رسائل في كل محادثة</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">احذف جميع الرسائل القديمة الآن؟</string>
<plurals name="ApplicationPreferencesActivity_this_will_immediately_trim_all_conversations_to_the_d_most_recent_messages">
<item quantity="zero">تقليم كل المحادثات إلى أحدث %d رسالة الآن.</item>
<item quantity="one">سوف يتم تقليم كل المحادثات إلى أحدث رسالة.</item>
<item quantity="two">سوف يتم تقليم كل المحادثات إلى أحدث %d رسالة الآن.</item>
<item quantity="few">سوف يتم تقليم كل المحادثات إلى أحدث %d رسالة الآن.</item>
<item quantity="many">سوف يتم تقليم كل المحادثات إلى أحدث %d رسالة الآن.</item>
<item quantity="other">سوف يتم تقليم كل المحادثات إلى أحدث %d رسالة الآن.</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete">حذف</string>
<string name="ApplicationPreferencesActivity_On">يعمل</string>
<string name="ApplicationPreferencesActivity_Off">مغلق</string>
<!-- DraftDatabase -->
<string name="DraftDatabase_Draft_image_snippet">(صورة)</string>
<string name="DraftDatabase_Draft_audio_snippet">(صوت)</string>
<string name="DraftDatabase_Draft_video_snippet">(فيديو)</string>
<string name="DraftDatabase_Draft_quote_snippet">(رَدّ)</string>
<!-- AttchmentManager -->
<string name="AttachmentManager_cant_open_media_selection">لم يتم العثور على تطبيق لاختيار ملف.</string>
<string name="AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio">يحتاج Session إلى إذن سعة التخزين من أجل إضافة الصور والمرفقات ولكن تم إيقاف الإذن على نحو دائم، رجاء زيارة إعدادات التطبيق ثم \"الأذونات\"، ثم تفعيل \"سعة التخزين\".</string>
<string name="AttachmentManager_signal_requires_contacts_permission_in_order_to_attach_contact_information">يحتاج Session إلى إذن جهات الاتصال من أجل إرفاق بيانات جهة اتصال ولكن تم إيقاف الإذن على نحو دائم، رجاء زيارة إعدادات التطبيق ثم \"الأذونات\"، ثم تفعيل \"جهات الاتصال\".</string>
<string name="AttachmentManager_signal_requires_the_camera_permission_in_order_to_take_photos_but_it_has_been_permanently_denied">يحتاج Session إلى إذن الكاميرا من أجل التقاط صور ولكن تم إيقاف الإذن على نحو دائم، رجاء زيارة إعدادات التطبيق ثم \"الأذونات\"، ثم تفعيل \"الكاميرا\".</string>
<!-- AudioSlidePlayer -->
<string name="AudioSlidePlayer_error_playing_audio">خطأ في تشغيل الصوت!</string>
<!-- BucketedThreadMedia -->
<string name="BucketedThreadMedia_Today">اليوم</string>
<string name="BucketedThreadMedia_Yesterday">البارحة</string>
<string name="BucketedThreadMedia_This_week">هذا الأسبوع</string>
<string name="BucketedThreadMedia_This_month">هذا الشهر</string>
<!-- CommunicationActions -->
<string name="CommunicationActions_no_browser_found">لم يتم العثور على متصفح ويب.</string>
<!-- ContactsCursorLoader -->
<string name="ContactsCursorLoader_groups">مجموعات</string>
<!-- ConversationItem -->
<string name="ConversationItem_error_not_delivered">فشل الإرسال , اضغط للحصول على معلومات</string>
<string name="ConversationItem_received_key_exchange_message_tap_to_process">تم استلام رسالة تبادل مفاتيح، أنقر للمتابعة.</string>
<string name="ConversationItem_group_action_left">%1$s تَرك المجموعة.</string>
<string name="ConversationItem_click_to_approve_unencrypted">فشل الإرسال، انقر للرد الغير آمن</string>
<string name="ConversationItem_unable_to_open_media">لم يتم العثور على تطبيق قادر على فتح الملف.</string>
<string name="ConversationItem_copied_text">تم نسخ %s</string>
<string name="ConversationItem_read_more">&#160; إقرأ المزيد</string>
<string name="ConversationItem_download_more">&#160; تنزيل المزيد</string>
<string name="ConversationItem_pending">&#160; في الإنتظار</string>
<!-- ConversationActivity -->
<string name="ConversationActivity_add_attachment">إضافة مرفقات</string>
<string name="ConversationActivity_select_contact_info">أختر بيانات جهة الاتصال</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">عذراً، حصل خطأ أثناء رفع المرفق.</string>
<string name="ConversationActivity_message">رسالة</string>
<string name="ConversationActivity_compose">إنشاء رسالة</string>
<string name="ConversationActivity_muted_until_date">كتم حتى %1$s</string>
<string name="ConversationActivity_member_count">%1$d عضو</string>
<string name="ConversationActivity_open_group_guidelines">إرشادات المستخدمين</string>
<string name="ConversationActivity_invalid_recipient">جهة اتصال غير صحيحة!</string>
<string name="ConversationActivity_added_to_home_screen">تمت الإضافة للشاشة الرئيسية</string>
<string name="ConversationActivity_leave_group">ترك المجموعة؟</string>
<string name="ConversationActivity_are_you_sure_you_want_to_leave_this_group">هل أنت متأكد من ترك المجموعة؟</string>
<string name="ConversationActivity_error_leaving_group">خطأ أثناء مغادرة المجموعة</string>
<string name="ConversationActivity_unblock_this_contact_question">إلغاء حظر جهة الاتصال؟</string>
<string name="ConversationActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">سوف تتمكن مرة أخرى من استقبال الرسائل والمكالمات من هذا المستخدم.</string>
<string name="ConversationActivity_unblock">إلغاء الحظر</string>
<string name="ConversationActivity_attachment_exceeds_size_limits">حجم المرفق تجاوز الحد المسموح بهذا النوع من الرسائل.</string>
<string name="ConversationActivity_unable_to_record_audio">تعذر تسجيل الصوت!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">لا يوجد تطبيق على الجهاز لمعالجة هذا الرابط.</string>
<string name="ConversationActivity_invite_to_open_group">إضافة أعضاء</string>
<string name="ConversationActivity_join_open_group">انضم %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">هل انت متأكد من انك تريد الإنضمام إلى المجموعة المفتوحة <b>%s</b>؟</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">لإرسال رسالة صوتية, برجاء السماح لSession بالوصول إلي المايكروفون</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">يحتاج Session إلى إذن الميكروفون من أجل الرسائل الصوتية ولكن تم إيقاف الإذن على نحو دائم، رجاء زيارة إعدادات التطبيق ثم \"الأذونات\"، ثم تفعيل \"الميكروفون\".</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">لإلتقاط صور و فيديوهات, برجاء السماح لSession بالوصول إلي الكاميرا.</string>
<string name="ConversationActivity_signal_needs_the_camera_permission_to_take_photos_or_video">يحتاج Session إلى إذن الكاميرا من أجل التقاط صور وفيديو ولكن تم إيقاف الإذن على نحو دائم، رجاء زيارة إعدادات التطبيق ثم \"الأذونات\"، ثم تفعيل \"الكاميرا\".</string>
<string name="ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video">يحتاج Session إلي إذن الكاميرا لالتقاط صور أو تسجيل فيديو</string>
<string name="ConversationActivity_quoted_contact_message">%1$s%2$s</string>
<string name="ConversationActivity_search_position">%1$d من %2$d</string>
<string name="ConversationActivity_no_results">لا توجد نتائج</string>
<!-- ConversationAdapter -->
<plurals name="ConversationAdapter_n_unread_messages">
<item quantity="zero">رسالة %d غير مقرؤة</item>
<item quantity="one">رسالة %d غير مقرؤة</item>
<item quantity="two">رسالتين %d غير مقرؤة</item>
<item quantity="few">%dرسائل غير مقرؤة </item>
<item quantity="many">%dرسائل غير مقرؤة </item>
<item quantity="other">%dرسائل غير مقرؤة</item>
</plurals>
<!-- ConversationFragment -->
<plurals name="ConversationFragment_delete_selected_messages">
<item quantity="zero">حذف المختار؟</item>
<item quantity="one">حذف الرسالة المختارة؟</item>
<item quantity="two">حذف الرسائل المختارة؟</item>
<item quantity="few">حذف الرسائل المختارة؟</item>
<item quantity="many">حذف الرسائل المختارة؟</item>
<item quantity="other">حذف الرسائل المختارة؟</item>
</plurals>
<plurals name="ConversationFragment_this_will_permanently_delete_all_n_selected_messages">
<item quantity="zero">سوف يتم حذف %1$d رسالة مختارة نهائيا.</item>
<item quantity="one">هذه العملية سوف تؤدي إلى حذف نهائي للرسالة الختارة.</item>
<item quantity="two">سوف يتم حذف %1$d رسالة مختارة نهائيا.</item>
<item quantity="few">سوف يتم حذف %1$d رسالة مختارة نهائيا.</item>
<item quantity="many">سوف يتم حذف %1$d رسالة مختارة نهائيا.</item>
<item quantity="other">سوف يتم حذف %1$d رسالة مختارة نهائيا.</item>
</plurals>
<string name="ConversationFragment_ban_selected_user">حظر هذا المستخدم؟</string>
<string name="ConversationFragment_save_to_sd_card">أحفظ في الذاكرة؟</string>
<plurals name="ConversationFragment_saving_n_media_to_storage_warning">
<item quantity="zero">حفظ %1$d وسيط في الذاكرة يسمح ﻷي تطبيق آخر على الهاتف من النفاذ له. \n\nاستمر؟</item>
<item quantity="one">حفظ الوسائط في الذاكرة يسمح ﻷي تطبيق آخر على الهاتف من النفاذ له. \n\nاستمر؟</item>
<item quantity="two">حفظ %1$d وسيط في الذاكرة يسمح ﻷي تطبيق آخر على الهاتف من النفاذ له. \n\nاستمر؟</item>
<item quantity="few">حفظ %1$d وسيط في الذاكرة يسمح ﻷي تطبيق آخر على الهاتف من النفاذ له. \n\nاستمر؟</item>
<item quantity="many">حفظ %1$d وسيط في الذاكرة يسمح ﻷي تطبيق آخر على الهاتف من النفاذ له. \n\nاستمر؟</item>
<item quantity="other">حفظ %1$d وسيط في الذاكرة يسمح ﻷي تطبيق آخر على الهاتف من النفاذ له. \n\nاستمر؟</item>
</plurals>
<plurals name="ConversationFragment_error_while_saving_attachments_to_sd_card">
<item quantity="zero">وقع خطأ أثناء حفظ المرفقات في مساحة التخزين!</item>
<item quantity="one">وقع خطأ أثناء حفظ المرفق في مساحة التخزين!</item>
<item quantity="two">وقع خطأ أثناء حفظ المرفقات في مساحة التخزين!</item>
<item quantity="few">وقع خطأ أثناء حفظ المرفقات في مساحة التخزين!</item>
<item quantity="many">وقع خطأ أثناء حفظ المرفقات في مساحة التخزين!</item>
<item quantity="other">وقع خطأ أثناء حفظ المرفقات في مساحة التخزين!</item>
</plurals>
<plurals name="ConversationFragment_saving_n_attachments">
<item quantity="zero">جارٍ حفظ %1$d مرفق</item>
<item quantity="one">جارٍ حفظ المرفق</item>
<item quantity="two">جارٍ حفظ %1$d مرفق</item>
<item quantity="few">جارٍ حفظ %1$d مرفق</item>
<item quantity="many">جارٍ حفظ %1$d مرفق</item>
<item quantity="other">جارٍ حفظ %1$d مرفق</item>
</plurals>
<plurals name="ConversationFragment_saving_n_attachments_to_sd_card">
<item quantity="zero">جارٍ حفظ %1$d مرفق في الذاكرة...</item>
<item quantity="one">جارٍ حفظ المرفق في الذاكرة...</item>
<item quantity="two">جارٍ حفظ %1$d مرفق في الذاكرة...</item>
<item quantity="few">جارٍ حفظ %1$d مرفق في الذاكرة...</item>
<item quantity="many">جارٍ حفظ %1$d مرفق في الذاكرة...</item>
<item quantity="other">جارٍ حفظ %1$d مرفق في الذاكرة...</item>
</plurals>
<string name="ConversationFragment_pending">معلق...</string>
<string name="ConversationFragment_push">بيانات (Session)</string>
<string name="ConversationFragment_mms">رسالة وسائط متعددة</string>
<string name="ConversationFragment_sms">رسالة نصية</string>
<string name="ConversationFragment_deleting">جارٍ الحذف</string>
<string name="ConversationFragment_deleting_messages">حذف الرسائل جارٍ...</string>
<string name="ConversationFragment_banning">حظر</string>
<string name="ConversationFragment_banning_user">حظر المستخدم…</string>
<string name="ConversationFragment_quoted_message_not_found">لم يتم العثور على الرسالة الأصلية</string>
<string name="ConversationFragment_quoted_message_no_longer_available">الرسالة الأصلية لم تعد متوفرة</string>
<!-- ConversationListItem -->
<string name="ConversationListItem_key_exchange_message">رسالة تبادل المفاتيح</string>
<!-- CreateProfileActivity -->
<string name="CreateProfileActivity_profile_photo">الصورة الشخصية</string>
<!-- CustomDefaultPreference -->
<string name="CustomDefaultPreference_using_custom">استخدام التخصيص: %s</string>
<string name="CustomDefaultPreference_using_default">الاستخدام الافتراضي: %s</string>
<string name="CustomDefaultPreference_none">لا شيء </string>
<!-- DateUtils -->
<string name="DateUtils_just_now">الآن</string>
<string name="DateUtils_minutes_ago">%d دقيقة</string>
<string name="DateUtils_today">اليوم</string>
<string name="DateUtils_yesterday">البارحة</string>
<!-- DeviceListItem -->
<string name="DeviceListItem_today">اليوم</string>
<!-- DocumentView -->
<string name="DocumentView_unknown_file">ملف مجهول</string>
<!-- GiphyActivity -->
<string name="GiphyActivity_error_while_retrieving_full_resolution_gif">خطأ أثناء جلب كامل دقة صورة GIF</string>
<!-- GiphyFragmentPageAdapter -->
<string name="GiphyFragmentPagerAdapter_gifs">صور GIF</string>
<string name="GiphyFragmentPagerAdapter_stickers">لصاقات</string>
<!-- CropImageActivity -->
<string name="CropImageActivity_profile_avatar">الصورة الرمزية</string>
<!-- InputPanel -->
<string name="InputPanel_tap_and_hold_to_record_a_voice_message_release_to_send">ألمس وأضغط لتسجيل رسالة صوتية. اسحب إصبعك للإرسال</string>
<!-- LongMessageActivity -->
<string name="LongMessageActivity_unable_to_find_message">لا يمكن العثور على الرسالة</string>
<string name="LongMessageActivity_message_from_s">رسالة من %1$s</string>
<string name="LongMessageActivity_your_message">رسالتك</string>
<!-- MediaOverviewActivity -->
<string name="MediaOverviewActivity_Media">الوسائط</string>
<plurals name="MediaOverviewActivity_Media_delete_confirm_title">
<item quantity="zero">حذف المحادثات المختارة؟</item>
<item quantity="one">حذف المحادثات المختارة؟</item>
<item quantity="two">حذف المحادثات المختارة؟</item>
<item quantity="few">حذف المحادثات المختارة؟</item>
<item quantity="many">حذف الرسائل المختارة؟</item>
<item quantity="other">حذف الرسائل المختارة؟</item>
</plurals>
<plurals name="MediaOverviewActivity_Media_delete_confirm_message">
<item quantity="zero">سوف يؤدي هذا إلى حذف الرسائل المحددة بشكل نهائي.</item>
<item quantity="one">This will permanently delete the selected message.</item>
<item quantity="two">This will permanently delete all %1$d selected messages.</item>
<item quantity="few">This will permanently delete all %1$d selected messages.</item>
<item quantity="many">This will permanently delete all %1$d selected messages.</item>
<item quantity="other">سوف يؤدي هذا إلى حذف رسائل %1$d بشكل نهائي.</item>
</plurals>
<string name="MediaOverviewActivity_Media_delete_progress_title">جارٍ الحذف</string>
<string name="MediaOverviewActivity_Media_delete_progress_message">حذف الرسائل جارٍ...</string>
<string name="MediaOverviewActivity_Documents">الوثائق</string>
<string name="MediaOverviewActivity_Select_all">أختر الكل</string>
<string name="MediaOverviewActivity_collecting_attachments">جارٍ جمع المرفقات...</string>
<!-- NotificationMmsMessageRecord -->
<string name="NotificationMmsMessageRecord_multimedia_message">رسالة وسائط متعددة</string>
<string name="NotificationMmsMessageRecord_downloading_mms_message">تنزيل رسالة الوسائط المتعددة</string>
<string name="NotificationMmsMessageRecord_error_downloading_mms_message">خطأ في تنزيل رسالة الوسائط المتعددة، انقر لاعادة المحاولة</string>
<!-- MediaPickerActivity -->
<string name="MediaPickerActivity_send_to">إرسال إلى %s</string>
<!-- MediaSendActivity -->
<string name="MediaSendActivity_add_a_caption">إضافة تعليق...</string>
<string name="MediaSendActivity_an_item_was_removed_because_it_exceeded_the_size_limit">تم إزالة عنصر لانه تجاوز الحجم المسموح</string>
<string name="MediaSendActivity_camera_unavailable">الكاميرا غير متوفرة.</string>
<string name="MediaSendActivity_message_to_s">رسالة إلى %s</string>
<plurals name="MediaSendActivity_cant_share_more_than_n_items">
<item quantity="zero">لا يمكنك مشاركة اكثر من %d عنصر.</item>
<item quantity="one">لا يمكنك مشاركة اكثر من %d عنصر.</item>
<item quantity="two">لا يمكنك مشاركة اكثر من %d عنصر.</item>
<item quantity="few">لا يمكنك مشاركة اكثر من %d عنصر.</item>
<item quantity="many">لا يمكنك مشاركة اكثر من %d عنصر.</item>
<item quantity="other">لا يمكنك مشاركة اكثر من %d عنصر.</item>
</plurals>
<!-- MediaRepository -->
<string name="MediaRepository_all_media">جميع الوسائط</string>
<!-- MessageRecord -->
<string name="MessageRecord_message_encrypted_with_a_legacy_protocol_version_that_is_no_longer_supported">لقد استلمت رسالة مشفرة من إصدارة Session قديمة وتوقف دعمها. من فضلك اطلب من الراسل الترقية إلي أحدث إصدار وإعادة إرسال الرسالة.</string>
<string name="MessageRecord_left_group">لقد تركت المجموعة.</string>
<string name="MessageRecord_you_updated_group">قمت بتحديث المحموعة.</string>
<string name="MessageRecord_s_updated_group">%s قام بتحديث المحموعة.</string>
<!-- ExpirationDialog -->
<string name="ExpirationDialog_disappearing_messages">الرسائل المختفية</string>
<string name="ExpirationDialog_your_messages_will_not_expire">صلاحية رسائلك لن تنتهي.</string>
<string name="ExpirationDialog_your_messages_will_disappear_s_after_they_have_been_seen">الرسائل الصادرة والواردة في هذه المحادثة سوف تختفي بعد %s من رؤيتهم.</string>
<!-- PassphrasePromptActivity -->
<string name="PassphrasePromptActivity_enter_passphrase">أدخل العبارة السرية</string>
<!-- RecipientPreferencesActivity -->
<string name="RecipientPreferenceActivity_block_this_contact_question">حظر جهة الاتصال؟</string>
<string name="RecipientPreferenceActivity_you_will_no_longer_receive_messages_and_calls_from_this_contact">لن تتلقى الرسائل أو المكالمات من هذا المستخدم مستقبلا.</string>
<string name="RecipientPreferenceActivity_block">حظر</string>
<string name="RecipientPreferenceActivity_unblock_this_contact_question">إلغاء حظر جهة الاتصال؟</string>
<string name="RecipientPreferenceActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">سوف تتمكن مرة أخرى من استقبال الرسائل والمكالمات من هذا المستخدم.</string>
<string name="RecipientPreferenceActivity_unblock">رفع الحظر</string>
<!-- Slide -->
<string name="Slide_image">صورة</string>
<string name="Slide_audio">صوت</string>
<string name="Slide_video">فيديو</string>
<!-- SmsMessageRecord -->
<string name="SmsMessageRecord_received_corrupted_key_exchange_message">تم استلام رسالة تبادل مفاتيح تالفة.</string>
<string name="SmsMessageRecord_received_key_exchange_message_for_invalid_protocol_version">تم استلام رسالة تبادل مفاتيح مع إصدارة بروتوكول غير صحيحة.</string>
<string name="SmsMessageRecord_received_message_with_new_safety_number_tap_to_process">تم استلام رسالة برقم أمان جديد. انقر للمعالجة والعرض.</string>
<string name="SmsMessageRecord_secure_session_reset">لقد قمت بإعادة ضبط تأمين المحادثة.</string>
<string name="SmsMessageRecord_secure_session_reset_s">%s أعاد ضبط تأمين المحادثة.</string>
<string name="SmsMessageRecord_duplicate_message">رسالة مكررة.</string>
<!-- ThreadRecord -->
<string name="ThreadRecord_group_updated">تم تحديث المحموعة</string>
<string name="ThreadRecord_left_the_group">غادر المجموعة</string>
<string name="ThreadRecord_secure_session_reset">إعادة ضبط جلسة آمنة.</string>
<string name="ThreadRecord_draft">مسودة:</string>
<string name="ThreadRecord_called">مكالمات صادرة</string>
<string name="ThreadRecord_called_you">مكالمات واردة</string>
<string name="ThreadRecord_missed_call">مكالمة فائتة</string>
<string name="ThreadRecord_media_message">رسالة وسائط متعددة</string>
<string name="ThreadRecord_s_is_on_signal">%sمتواجد على Session !</string>
<string name="ThreadRecord_disappearing_messages_disabled">تم تعطيل الرسائل المخفية</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">ضبط توقيت إخفاء الرسائل إلى %s</string>
<string name="ThreadRecord_s_took_a_screenshot">قام %s بتصوير الشاشة.</string>
<string name="ThreadRecord_media_saved_by_s">قام %s بحفظ الوسائط.</string>
<string name="ThreadRecord_safety_number_changed">تم تعديل رقم الأمان</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">تم تغيير رقم الأمان الخاص بك وبـ%s.</string>
<string name="ThreadRecord_you_marked_verified">لقد قمت بتصديق</string>
<string name="ThreadRecord_you_marked_unverified">لقد قمت بإلغاء التحقق</string>
<string name="ThreadRecord_empty_message">هذه المحادثة فارغة</string>
<string name="ThreadRecord_open_group_invitation">دعوة إلى مجموعة مفتوحة</string>
<!-- UpdateApkReadyListener -->
<string name="UpdateApkReadyListener_Signal_update">تحديث Session</string>
<string name="UpdateApkReadyListener_a_new_version_of_signal_is_available_tap_to_update">إصدار جديد لـ Session متوفر، أنقر لتحديثه</string>
<!-- MessageDisplayHelper -->
<string name="MessageDisplayHelper_bad_encrypted_message">رسالة مشفرة رديئة</string>
<string name="MessageDisplayHelper_message_encrypted_for_non_existing_session">الرسالة مشفرة دون وجود قناة اتصال...</string>
<!-- MmsMessageRecord -->
<string name="MmsMessageRecord_bad_encrypted_mms_message">رسالة مشفرة رديئة</string>
<string name="MmsMessageRecord_mms_message_encrypted_for_non_existing_session">الرسالة مشفرة دون وجود قناة اتصال...</string>
<!-- MuteDialog -->
<string name="MuteDialog_mute_notifications">كتم الإشعارات</string>
<!-- KeyCachingService -->
<string name="KeyCachingService_signal_passphrase_cached">المس للفتح.</string>
<string name="KeyCachingService_passphrase_cached">Session غير مقفول</string>
<string name="KeyCachingService_lock">إقفِل Session</string>
<!-- MediaPreviewActivity -->
<string name="MediaPreviewActivity_you">أنت</string>
<string name="MediaPreviewActivity_unssuported_media_type">غير مدعوم.</string>
<string name="MediaPreviewActivity_draft">مسودة:</string>
<string name="MediaPreviewActivity_signal_needs_the_storage_permission_in_order_to_write_to_external_storage_but_it_has_been_permanently_denied">يحتاج Session إلى إذن سعة التخزين من أجل استخدام الذاكرة الخارجية ولكن تم إيقاف الإذن على نحو دائم، رجاء زيارة إعدادات التطبيق ثم \"الأذونات\"، ثم تفعيل \"سعة التخزين\".</string>
<string name="MediaPreviewActivity_unable_to_write_to_external_storage_without_permission">لا يمكن الحفظ إلى الذاكرة الخارجية بدون أذونات</string>
<string name="MediaPreviewActivity_media_delete_confirmation_title">أَتريد حذف الرسالة ؟</string>
<string name="MediaPreviewActivity_media_delete_confirmation_message">سوف يقوم هذا بحذف الرسالة كُليًا.</string>
<!-- MessageNotifier -->
<string name="MessageNotifier_d_new_messages_in_d_conversations">%1$d رسائل جديدة في %2$d محادثات</string>
<string name="MessageNotifier_most_recent_from_s">الأحدث من: %1$s</string>
<string name="MessageNotifier_locked_message">رسالة مؤمنة</string>
<string name="MessageNotifier_message_delivery_failed">فشل توصيل الرسالة.</string>
<string name="MessageNotifier_failed_to_deliver_message">فشل توصيل الرسالة.</string>
<string name="MessageNotifier_error_delivering_message">خطأ بالارسال</string>
<string name="MessageNotifier_mark_all_as_read">اعتبر جميع الرسائل مقروءة</string>
<string name="MessageNotifier_mark_read">اعتبرها مقروءة</string>
<string name="MessageNotifier_reply">رَدّ</string>
<string name="MessageNotifier_pending_signal_messages">رسائل Session المعلقة</string>
<string name="MessageNotifier_you_have_pending_signal_messages">لديك رسائل جلسة معلّقة، انقر للفتح و الإستلام</string>
<string name="MessageNotifier_contact_message">%1$s%2$s</string>
<string name="MessageNotifier_unknown_contact_message">متصل</string>
<!-- Notification Channels -->
<string name="NotificationChannel_messages">افتراضي</string>
<string name="NotificationChannel_calls">المُكالمات</string>
<string name="NotificationChannel_failures">إخفاقات</string>
<string name="NotificationChannel_backups">النُسخ الإحتياطية</string>
<string name="NotificationChannel_locked_status">حالة القفل</string>
<string name="NotificationChannel_app_updates">تحديثات التطبيق</string>
<string name="NotificationChannel_other">أخرى</string>
<string name="NotificationChannel_group_messages">الرسائل</string>
<string name="NotificationChannel_missing_display_name">مجهول</string>
<!-- QuickResponseService -->
<string name="QuickResponseService_quick_response_unavailable_when_Signal_is_locked">الردود السريعة غير متاحة عند قفل Session!</string>
<string name="QuickResponseService_problem_sending_message">مشكلة في الإرسال!</string>
<!-- SaveAttachmentTask -->
<string name="SaveAttachmentTask_saved_to">تم الإحتفاظ به في %s</string>
<string name="SaveAttachmentTask_saved">تم الحفظ</string>
<!-- SearchToolbar -->
<string name="SearchToolbar_search">بحث</string>
<!-- ShortcutLauncherActivity -->
<string name="ShortcutLauncherActivity_invalid_shortcut">إختصار غير صالح</string>
<!-- SingleRecipientNotificationBuilder -->
<string name="SingleRecipientNotificationBuilder_signal">الجلسة</string>
<string name="SingleRecipientNotificationBuilder_new_message">رسالة جديدة</string>
<!-- TransferControlView -->
<plurals name="TransferControlView_n_items">
<item quantity="zero">%d Items</item>
<item quantity="one">%d Item</item>
<item quantity="two">%d Items</item>
<item quantity="few">%d Items</item>
<item quantity="many">%d عنصر</item>
<item quantity="other">%d Items</item>
</plurals>
<!-- VideoPlayer -->
<string name="VideoPlayer_error_playing_video">خطأ في تشغيل الفيديو</string>
<!-- attachment_type_selector -->
<string name="attachment_type_selector__audio">صوت</string>
<string name="attachment_type_selector__audio_description">صوت</string>
<string name="attachment_type_selector__contact">جهة اتصال</string>
<string name="attachment_type_selector__contact_description">متصل</string>
<string name="attachment_type_selector__camera">كاميرا</string>
<string name="attachment_type_selector__camera_description">كاميرا</string>
<string name="attachment_type_selector__location">الموقع</string>
<string name="attachment_type_selector__location_description">موقع جغرافي</string>
<string name="attachment_type_selector__gif">صورة GIF</string>
<string name="attachment_type_selector__gif_description">صورة Gif</string>
<string name="attachment_type_selector__gallery_description">صورة أو فيديو</string>
<string name="attachment_type_selector__file_description">ملف</string>
<string name="attachment_type_selector__gallery">عرض الصور</string>
<string name="attachment_type_selector__file">ملف</string>
<string name="attachment_type_selector__drawer_description">تفعيل أو تثبيط درج المرفقات</string>
<!-- contact_selection_group_activity -->
<string name="contact_selection_group_activity__finding_contacts">تحميل جهات الاتصال...</string>
<!-- conversation_activity -->
<string name="conversation_activity__send">أرسل</string>
<string name="conversation_activity__compose_description">تكوين الرسالة</string>
<string name="conversation_activity__emoji_toggle_description">تبديل لوحة مفاتيح الرموز التعبيرية</string>
<string name="conversation_activity__attachment_thumbnail">المصغّرة للمرفق</string>
<string name="conversation_activity__quick_attachment_drawer_toggle_camera_description">تفعيل أو تثبيط سريع لدرج مرفقات الكاميرا </string>
<string name="conversation_activity__quick_attachment_drawer_record_and_send_audio_description">تسجيل وإرسال مرفق صوتي</string>
<string name="conversation_activity__quick_attachment_drawer_lock_record_description">قفل تسجيل الملاحظات الصوتية</string>
<string name="conversation_activity__enable_signal_for_sms">تمكين سيقنـال للرسائل النصية</string>
<!-- conversation_input_panel -->
<string name="conversation_input_panel__slide_to_cancel">إسحب للإلغاء</string>
<string name="conversation_input_panel__cancel">إلغاء</string>
<!-- conversation_item -->
<string name="conversation_item__mms_image_description">رسالة وسائط متعددة</string>
<string name="conversation_item__secure_message_description">رسالة آمنة</string>
<!-- conversation_item_sent -->
<string name="conversation_item_sent__send_failed_indicator_description">الإرسال فشل</string>
<string name="conversation_item_sent__pending_approval_description">في انتظار الموافقة</string>
<string name="conversation_item_sent__delivered_description">تم تسليم الرسالة</string>
<string name="conversation_item_sent__message_read">تم قراءة الرسالة </string>
<!-- conversation_item_received -->
<string name="conversation_item_received__contact_photo_description">صورة جهة الاتصال</string>
<!-- audio_view -->
<string name="audio_view__play_accessibility_description">تشغيل</string>
<string name="audio_view__pause_accessibility_description">توقف</string>
<string name="audio_view__download_accessibility_description">تنزيل</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">إنضم</string>
<string name="open_group_invitation_view__open_group_invitation">دعوة المجموعة المفتوحة</string>
<string name="open_group_guidelines_pinned_message">الرسائل المثبّتة</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
<string name="open_group_guidelines_read">Read</string>
<!-- QuoteView -->
<string name="QuoteView_audio">صوت</string>
<string name="QuoteView_video">فيديو</string>
<string name="QuoteView_photo">صورة</string>
<string name="QuoteView_you">أنت</string>
<string name="QuoteView_original_missing">لم يتم العثور على الرسالة الأصلية</string>
<!-- conversation_fragment -->
<string name="conversation_fragment__scroll_to_the_bottom_content_description">النزول إلى الأسفل</string>
<!-- giphy_activity -->
<string name="giphy_activity_toolbar__search_gifs_and_stickers">ابحث في صور GIF واللصاقات</string>
<!-- giphy_fragment -->
<string name="giphy_fragment__nothing_found">لا يوجد شيء</string>
<!-- load_more_header -->
<string name="load_more_header__see_full_conversation">مطالعة المحادثة بالكامل</string>
<string name="load_more_header__loading">جارٍ التحميل</string>
<!-- media_overview_activity -->
<string name="media_overview_activity__no_media">لا يوجد وسيط</string>
<!-- message_recipients_list_item -->
<string name="message_recipients_list_item__resend">إعادة الإرسال</string>
<!-- recipient_preferences -->
<string name="recipient_preferences__block">حظر</string>
<!-- message_details_header -->
<string name="message_details_header__issues_need_your_attention">بعض المشاكل تتطلب انتباهك.</string>
<string name="message_details_header__sent">أرسلت</string>
<string name="message_details_header__received">استلمت</string>
<string name="message_details_header__disappears">الاختفاء</string>
<string name="message_details_header__via">بواسطة</string>
<string name="message_details_header__to">إلى:</string>
<string name="message_details_header__from">من:</string>
<string name="message_details_header__with">مع:</string>
<!-- AndroidManifest.xml -->
<string name="AndroidManifest__create_passphrase">إنشاء عبارة سرية</string>
<string name="AndroidManifest__select_contacts">اخر جهات الاتصال</string>
<string name="AndroidManifest__media_preview">معاينة الوسائط</string>
<!-- arrays.xml -->
<string name="arrays__use_default">استخدم الافتراضي</string>
<string name="arrays__use_custom">تخصيص</string>
<string name="arrays__mute_for_one_hour">كتم لمدة ساعة</string>
<string name="arrays__mute_for_two_hours">كتم لمدة ساعتين</string>
<string name="arrays__mute_for_one_day">كتم لمدة يوم</string>
<string name="arrays__mute_for_seven_days">كتم لمدة سبعة أيام</string>
<string name="arrays__mute_for_one_year">كتم لمدة عام واحد</string>
<string name="arrays__settings_default">الإعدادات الافتراضية</string>
<string name="arrays__enabled">مفعل</string>
<string name="arrays__disabled">معطل</string>
<string name="arrays__name_and_message">الاسم والرسالة</string>
<string name="arrays__name_only">الاسم فقط</string>
<string name="arrays__no_name_or_message">لا يوجد أسم أو رسالة</string>
<string name="arrays__images">صور</string>
<string name="arrays__audio">صوت</string>
<string name="arrays__video">فيديو</string>
<string name="arrays__documents">الوثائق</string>
<string name="arrays__small">صغيرة</string>
<string name="arrays__normal">طبيعي</string>
<string name="arrays__large">كبيرة</string>
<string name="arrays__extra_large">كبيرة جداً</string>
<string name="arrays__default">افتراضي</string>
<string name="arrays__high">عالي</string>
<string name="arrays__max">الأقصى</string>
<!-- plurals.xml -->
<plurals name="hours_ago">
<item quantity="zero">%d ساعة</item>
<item quantity="one">%d ساعة</item>
<item quantity="two">%d ساعتين</item>
<item quantity="few">%d ساعات</item>
<item quantity="many">%d ساعة</item>
<item quantity="other">%d ساعة</item>
</plurals>
<!-- preferences.xml -->
<string name="preferences__pref_enter_sends_title">مفتاح الدخول يقوم بالإرسال</string>
<string name="preferences__pressing_the_enter_key_will_send_text_messages">الضغط على مفتاح الدخول سيقوم بإرسال الرسالة</string>
<string name="preferences__send_link_previews">Send link previews</string>
<string name="preferences__previews_are_supported_for">Previews are supported for Imgur, Instagram, Pinterest, Reddit, and YouTube links</string>
<string name="preferences__screen_security">تأمين الشاشة</string>
<string name="preferences__disable_screen_security_to_allow_screen_shots">منع لقطات الشاشة داخل التطبيق</string>
<string name="preferences__notifications">الإشعارات</string>
<string name="preferences__led_color">لون ضوء التنبيه LED</string>
<string name="preferences__led_color_unknown">مجهول</string>
<string name="preferences__pref_led_blink_title">نمط وميض LED</string>
<string name="preferences__sound">صوت</string>
<string name="preferences__silent">صامت</string>
<string name="preferences__repeat_alerts">تكرار التنبيهات</string>
<string name="preferences__never">أبدا</string>
<string name="preferences__one_time">مرة واحدة</string>
<string name="preferences__two_times">مرتان</string>
<string name="preferences__three_times">ثلاث مرات</string>
<string name="preferences__five_times">خمس مرات</string>
<string name="preferences__ten_times">عشر مرات</string>
<string name="preferences__vibrate">هزاز</string>
<string name="preferences__green">أخضر</string>
<string name="preferences__red">أحمر</string>
<string name="preferences__blue">أزرق</string>
<string name="preferences__orange">برتقالي</string>
<string name="preferences__cyan">سماوي</string>
<string name="preferences__magenta">وردي</string>
<string name="preferences__white">أبيض</string>
<string name="preferences__none">لا شيء </string>
<string name="preferences__fast">سريع</string>
<string name="preferences__normal">طبيعي</string>
<string name="preferences__slow">بطىء</string>
<string name="preferences__automatically_delete_older_messages_once_a_conversation_exceeds_a_specified_length">حذف الرسائل القديمة بالمحادثة عند تجاوز أقصى طول محدد.</string>
<string name="preferences__delete_old_messages">احذف الرسائل القديمة</string>
<string name="preferences__conversation_length_limit">حد طول المحادثة</string>
<string name="preferences__trim_all_conversations_now">تقليم كل المحادثات الآن</string>
<string name="preferences__scan_through_all_conversations_and_enforce_conversation_length_limits">فحص وتقليم كل المحادثات وفق الحد الأقصى</string>
<string name="preferences__default">افتراضي</string>
<string name="preferences__incognito_keyboard">وضع التستّر للوحة المفاتيح</string>
<string name="preferences__read_receipts">قراءة تقارير الإستلام</string>
<string name="preferences__if_read_receipts_are_disabled_you_wont_be_able_to_see_read_receipts">لن يمكنك من استقبال مؤشر قراءة الرسائل من الآخرين إذا قمت بإلغاء مؤشر القراءة.</string>
<string name="preferences__typing_indicators">Typing indicators</string>
<string name="preferences__if_typing_indicators_are_disabled_you_wont_be_able_to_see_typing_indicators">If typing indicators are disabled, you won\'t be able to see typing indicators from others.</string>
<string name="preferences__request_keyboard_to_disable_personalized_learning">الطلب من لوحة المفاتيح تعطيل التعلم الذاتي</string>
<string name="preferences__light_theme">فاتح</string>
<string name="preferences__dark_theme">داكن</string>
<string name="preferences_chats__message_trimming">تقليم الرسالة</string>
<string name="preferences_advanced__use_system_emoji">استخدام الرموز التعبيرية بالنظام</string>
<string name="preferences_advanced__disable_signal_built_in_emoji_support">تعطيل الرموز التعبيرية المدمجة في Session</string>
<string name="preferences_app_protection__app_access">دخول البرنامج</string>
<string name="preferences_app_protection__communication">اتصال</string>
<string name="preferences_chats__chats">دردشة</string>
<string name="preferences_notifications__messages">الرسائل</string>
<string name="preferences_notifications__in_chat_sounds">أصوات خلال الدردشة</string>
<string name="preferences_notifications__show">اظهار</string>
<string name="preferences_notifications__priority">أولوية</string>
<!-- **************************************** -->
<!-- menus -->
<!-- **************************************** -->
<!-- contact_selection_list -->
<string name="contact_selection_list__unknown_contact">رسالة جديدة إلى...</string>
<!-- conversation_context -->
<string name="conversation_context__menu_message_details">تفاصيل الرسالة</string>
<string name="conversation_context__menu_copy_text">نسخ النص</string>
<string name="conversation_context__menu_delete_message">حذف الرسالة</string>
<string name="conversation_context__menu_ban_user">Ban user</string>
<string name="conversation_context__menu_resend_message">إعادة الإرسال</string>
<string name="conversation_context__menu_reply_to_message">الرَدّ على الرسالة</string>
<!-- conversation_context_image -->
<string name="conversation_context_image__save_attachment">حفظ المرفق</string>
<!-- conversation_expiring_off -->
<string name="conversation_expiring_off__disappearing_messages">الرسائل المختفية</string>
<!-- conversation_expiring_on -->
<string name="menu_conversation_expiring_on__messages_expiring">صلاحية الرسائل</string>
<!-- conversation_muted -->
<string name="conversation_muted__unmute">إلغاء الكتم.</string>
<!-- conversation_unmuted -->
<string name="conversation_unmuted__mute_notifications">كتم الإشعارات</string>
<!-- conversation -->
<string name="conversation__menu_edit_group">تدقيق المجموعة</string>
<string name="conversation__menu_leave_group">أترك المجموعة</string>
<string name="conversation__menu_view_all_media">جميع الوسائط</string>
<string name="conversation__menu_add_shortcut">Add to home screen</string>
<!-- conversation_popup -->
<string name="conversation_popup__menu_expand_popup">توسيع الإشعار</string>
<!-- conversation_group_options -->
<string name="conversation_group_options__delivery">تسليم</string>
<string name="conversation_group_options__conversation">محادثة</string>
<string name="conversation_group_options__broadcast">بث</string>
<!-- media_preview -->
<string name="media_preview__save_title">أحفظ</string>
<string name="media_preview__forward_title">إعادة توجيه</string>
<string name="media_preview__all_media_title">جميع الوسائط</string>
<!-- media_overview -->
<string name="media_overview_documents_fragment__no_documents_found">لا توجد ملفات</string>
<!-- media_preview_activity -->
<string name="media_preview_activity__media_content_description">معاينة الوسائط</string>
<!-- Trimmer -->
<string name="trimmer__deleting">جارٍ الحذف</string>
<string name="trimmer__deleting_old_messages">جار حذف الرسائل القديمة...</string>
<string name="trimmer__old_messages_successfully_deleted">تم حذف الرسائل القديمة بنجاح</string>
<!-- transport_selection_list_item -->
<string name="Permissions_permission_required">منح إحدى الأذونات مطلوب</string>
<string name="Permissions_continue">استمر</string>
<string name="Permissions_not_now">ليس الآن</string>
<string name="backup_enable_dialog__backups_will_be_saved_to_external_storage_and_encrypted_with_the_passphrase_below_you_must_have_this_passphrase_in_order_to_restore_a_backup">يتم حفظ النسخ الاحتياطية إلى سعة التخزين مشفرة بالعبارة السرية التالية، ومن الضروري حفظها من أجل استعادة قاعدة البيانات.</string>
<string name="backup_enable_dialog__i_have_written_down_this_passphrase">قمت بتدوين العبارة السرية، ولا يمكنني استعادة قاعدة البيانات بدونها.</string>
<string name="registration_activity__skip">تخطى</string>
<string name="RegistrationActivity_backup_failure_downgrade">Cannot import backups from newer versions of Session</string>
<string name="RegistrationActivity_incorrect_backup_passphrase">العبارة السرية غير صحيحة</string>
<string name="BackupDialog_enable_local_backups">أتريد تشغيل النُّسخ الإحتاطية المحلية ؟</string>
<string name="BackupDialog_enable_backups">تمكين النُسخ الإحتياطية</string>
<string name="BackupDialog_please_acknowledge_your_understanding_by_marking_the_confirmation_check_box">رجاء الإقرار بفهم الخاصية عبر اختيار علامة التأكيد.</string>
<string name="BackupDialog_delete_backups">هل تود حذف النسخ الإحتياطية ؟</string>
<string name="BackupDialog_disable_and_delete_all_local_backups">أتريد تعطيل و حذف كافة النُّسخ الإحتياطية المحلية ؟</string>
<string name="BackupDialog_delete_backups_statement">حذف النسخ الإحتياطية</string>
<string name="BackupDialog_copied_to_clipboard">نسخ إلى الحافظة</string>
<string name="LocalBackupJob_creating_backup">جارٍ إنشاء نسخة احتياطية...</string>
<string name="ProgressPreference_d_messages_so_far">%dرسالة إلى الآن</string>
<string name="BackupUtil_never">أبدا</string>
<string name="preferences_app_protection__screen_lock">قفل الشاشة</string>
<string name="preferences_app_protection__lock_signal_access_with_android_screen_lock_or_fingerprint">منع النفاذ إلى Session عبر تعيين قفل الشاشة أو بصمة الإصبع</string>
<string name="preferences_app_protection__screen_lock_inactivity_timeout">نفاذ مهلة قفل الشاشة</string>
<string name="AppProtectionPreferenceFragment_none">لا شيء </string>
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<!-- Session -->
<string name="continue_2">Continue</string>
<string name="copy">Copy</string>
<string name="invalid_url">Invalid URL</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="next">Next</string>
<string name="share">Share</string>
<string name="invalid_session_id">Invalid Session ID</string>
<string name="cancel">Cancel</string>
<string name="your_session_id">Your Session ID</string>
<string name="activity_landing_title_2">Your Session begins here...</string>
<string name="activity_landing_register_button_title">Create Session ID</string>
<string name="activity_landing_restore_button_title">Continue Your Session</string>
<string name="view_fake_chat_bubble_1">What\'s Session?</string>
<string name="view_fake_chat_bubble_2">It\'s a decentralized, encrypted messaging app</string>
<string name="view_fake_chat_bubble_3">So it doesn\'t collect my personal information or my conversation metadata? How does it work?</string>
<string name="view_fake_chat_bubble_4">Using a combination of advanced anonymous routing and end-to-end encryption technologies.</string>
<string name="view_fake_chat_bubble_5">Friends don\'t let friends use compromised messengers. You\'re welcome.</string>
<string name="activity_register_title">Say hello to your Session ID</string>
<string name="activity_register_explanation">Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.</string>
<string name="activity_restore_title">Restore your account</string>
<string name="activity_restore_explanation">Enter the recovery phrase that was given to you when you signed up to restore your account.</string>
<string name="activity_restore_seed_edit_text_hint">Enter your recovery phrase</string>
<string name="activity_display_name_title_2">Pick your display name</string>
<string name="activity_display_name_explanation">This will be your name when you use Session. It can be your real name, an alias, or anything else you like.</string>
<string name="activity_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_display_name_display_name_missing_error">Please pick a display name</string>
<string name="activity_display_name_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_pn_mode_recommended_option_tag">Recommended</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Please Pick an Option</string>
<string name="activity_home_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_home_empty_state_button_title">Start a Session</string>
<string name="activity_home_leave_group_dialog_message">Are you sure you want to leave this group?</string>
<string name="activity_home_leaving_group_failed_message">"Couldn't leave group"</string>
<string name="activity_home_delete_conversation_dialog_message">Are you sure you want to delete this conversation?</string>
<string name="activity_home_conversation_deleted_message">Conversation deleted</string>
<string name="activity_seed_title">Your Recovery Phrase</string>
<string name="activity_seed_title_2">Meet your recovery phrase</string>
<string name="activity_seed_explanation">Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and don\'t give it to anyone.</string>
<string name="activity_seed_reveal_button_title">انقر مطولاً للكشف</string>
<string name="view_seed_reminder_title">انت على وشك الإنتهاء! ٨٠٪</string>
<string name="view_seed_reminder_subtitle_1">أمّن حسابك بحفظ كلمات إسترجاع الحساب</string>
<string name="view_seed_reminder_subtitle_2">انقر بإستمرار على الكلمات المغطاة للكشف عن كلمات إسترداد حسابك، ثم قم بتخزينها بأمان للحفاظ على معرّف الجلسة الخاص بك.</string>
<string name="view_seed_reminder_subtitle_3">تأكد من الإحتفاظ بكلمات الإسترجاع الخاصة بك في مكان آمن</string>
<string name="activity_path_title">مسار</string>
<string name="activity_path_explanation">سيشن يخفي عنوان الآيبي الخاص بك عن طريق تمرير رسائلك عبر عدة سيرفرات في شبكة سيشن الغير مركزية. هذه الدول اللتي يتم تمرير اتصالك فيها حالياً:</string>
<string name="activity_path_device_row_title">أنت</string>
<string name="activity_path_guard_node_row_title">عقدة الدخول</string>
<string name="activity_path_service_node_row_title">عقدة الخدمة</string>
<string name="activity_path_destination_row_title">الوجهة</string>
<string name="activity_path_learn_more_button_title">لمعرفة المزيد</string>
<string name="activity_create_private_chat_title">جلسة جديدة</string>
<string name="activity_create_private_chat_enter_session_id_tab_title">أدخِل معرّف الجلسة</string>
<string name="activity_create_private_chat_scan_qr_code_tab_title">فحص كود QR</string>
<string name="activity_create_private_chat_scan_qr_code_explanation">إمسح كود QR المستخدم لبدء جلسة معه. يمكن الحصول على اكواد الـQR بالضغط على ايقونة كود الـQR في إعدادات الحساب.</string>
<string name="fragment_enter_public_key_edit_text_hint">ادخِل معرّف الجلسة للمستخدم</string>
<string name="fragment_enter_public_key_explanation">يمكن للمستخدمين مشاركة معرّف سيشن الخاص بهم بالذهاب إلى إعدادات حسابهم و الضغط على \"مشاركة معرف سيشن\"، او عبر مشاركة كود QR الخاص بهم.</string>
<string name="fragment_scan_qr_code_camera_access_explanation">تحتاج الجلسة إلى الوصول إلى الكاميرا لمسح رموز QR</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">منح صلاحية الكاميرا</string>
<string name="activity_create_closed_group_title">مجموعة مغلقة جديدة</string>
<string name="activity_create_closed_group_edit_text_hint">أدخل إسم المجموعة</string>
<string name="activity_create_closed_group_empty_state_message">لا يوجد لديك جهات إتصال حالياً</string>
<string name="activity_create_closed_group_empty_state_button_title">بدء جلسة</string>
<string name="activity_create_closed_group_group_name_missing_error">الرجاء إدخال إسم للمجموعة</string>
<string name="activity_create_closed_group_group_name_too_long_error">الرجاء إدخال إسم مجموعة أقصر</string>
<string name="activity_create_closed_group_not_enough_group_members_error">الرجاء إختيار 1 عضو على الأقل</string>
<string name="activity_create_closed_group_too_many_group_members_error">المجموعة المغلقة لا يمكن ان تحتوي على أكثر من ١٠٠ مستخدم</string>
<string name="activity_join_public_chat_title">الإنضمام إلى مجموعة مفتوحة</string>
<string name="activity_join_public_chat_error">تعذر الإنضمام إلى المجموعة</string>
<string name="activity_join_public_chat_enter_group_url_tab_title">فتح رابط المجموعة</string>
<string name="activity_join_public_chat_scan_qr_code_tab_title">فحص كود QR</string>
<string name="activity_join_public_chat_scan_qr_code_explanation">امسح كود QR المجموعة اللتي تريد الإنضمام إليها</string>
<string name="fragment_enter_chat_url_edit_text_hint">ادخل رابط المجموعة المفتوحة</string>
<string name="activity_settings_title">الإعدادات</string>
<string name="activity_settings_display_name_edit_text_hint">ادخِل إسم العرض</string>
<string name="activity_settings_display_name_missing_error">الرجاء إختيار إسم العرض</string>
<string name="activity_settings_display_name_too_long_error">الرجاء إختيار اسم عرض أقصر</string>
<string name="activity_settings_privacy_button_title">الخصوصية</string>
<string name="activity_settings_notifications_button_title">الإشعارات</string>
<string name="activity_settings_chats_button_title">المحادثات</string>
<string name="activity_settings_devices_button_title">الأجهزة</string>
<string name="activity_settings_invite_button_title">إرسال دعوة</string>
<string name="activity_settings_recovery_phrase_button_title">عبارة الإسترداد</string>
<string name="activity_settings_clear_all_data_button_title">مسح البيانات</string>
<string name="activity_settings_help_translate_session">ساعدنا في ترجمة سيشن</string>
<string name="activity_notification_settings_title">الإشعارات</string>
<string name="activity_notification_settings_style_section_title">طريقة الإشعارات</string>
<string name="activity_notification_settings_content_section_title">محتوى الإشعارات</string>
<string name="activity_privacy_settings_title">الخصوصية</string>
<string name="activity_chat_settings_title">Chats</string>
<string name="preferences_notifications_strategy_category_title">Notification Strategy</string>
<string name="fragment_device_list_bottom_sheet_change_name_button_title">Change name</string>
<string name="fragment_device_list_bottom_sheet_unlink_device_button_title">Unlink device</string>
<string name="dialog_seed_title">Your Recovery Phrase</string>
<string name="dialog_seed_explanation">This is your recovery phrase. With it, you can restore or migrate your Session ID to a new device.</string>
<string name="dialog_clear_all_data_title">Clear All Data</string>
<string name="dialog_clear_all_data_explanation">This will permanently delete your messages, sessions, and contacts.</string>
<string name="activity_qr_code_title">QR Code</string>
<string name="activity_qr_code_view_my_qr_code_tab_title">View My QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_explanation">Scan someone\'s QR code to start a conversation with them</string>
<string name="fragment_view_my_qr_code_title">Scan Me</string>
<string name="fragment_view_my_qr_code_explanation">This is your QR code. Other users can scan it to start a session with you.</string>
<string name="fragment_view_my_qr_code_share_title">Share QR Code</string>
<string name="fragment_contact_selection_contacts_title">Contacts</string>
<string name="fragment_contact_selection_closed_groups_title">Closed Groups</string>
<string name="fragment_contact_selection_open_groups_title">Open Groups</string>
<string name="fragment_contact_selection_empty_contacts">You don\'t have any contacts yet</string>
<!-- Next round of translation -->
<string name="menu_apply_button">Apply</string>
<string name="menu_done_button">Done</string>
<string name="activity_edit_closed_group_title">Edit Group</string>
<string name="activity_edit_closed_group_edit_text_hint">Enter a new group name</string>
<string name="activity_edit_closed_group_edit_members">Members</string>
<string name="activity_edit_closed_group_add_members">Add members</string>
<string name="activity_edit_closed_group_group_name_missing_error">Group name can\'t be empty</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Groups must have at least 1 group member</string>
<string name="fragment_edit_group_bottom_sheet_remove">Remove user from group</string>
<string name="activity_select_contacts_title">Select Contacts</string>
<string name="view_reset_secure_session_done_message">Secure session reset done</string>
<string name="dialog_ui_mode_title">Theme</string>
<string name="dialog_ui_mode_option_day">Day</string>
<string name="dialog_ui_mode_option_night">Night</string>
<string name="dialog_ui_mode_option_system_default">System default</string>
<string name="activity_conversation_menu_copy_session_id">Copy Session ID</string>
<string name="attachment">Attachment</string>
<string name="attachment_type_voice_message">Voice Message</string>
<string name="details">Details</string>
<string name="dialog_backup_activation_failed">Failed to activate backups. Please try again or contact support.</string>
<string name="activity_backup_restore_title">Restore backup</string>
<string name="activity_backup_restore_select_file">Select a file</string>
<string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string>
<string name="activity_backup_restore_passphrase">30-digit passphrase</string>
<string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string>
<string name="activity_link_device_link_device">Link a Device</string>
<string name="activity_join_public_chat_join_rooms">Or join one of these…</string>
<string name="activity_pn_mode_message_notifications">Message Notifications</string>
<string name="activity_pn_mode_explanation">There are two ways Session can notify you of new messages.</string>
<string name="activity_pn_mode_fast_mode">Fast Mode</string>
<string name="activity_pn_mode_slow_mode">الوضع البطيء</string>
<string name="activity_pn_mode_fast_mode_explanation">سوف يتم إشعارك بالرسائل بشكل موثوق و فوري بإستخدام خوادم جوجل للإشعارات.</string>
<string name="activity_pn_mode_slow_mode_explanation">سيقوم سيشن بالتحقق من وجود رسائل جديدة بشكل دوري في الخلفية.</string>
<string name="fragment_recovery_phrase_title">عبارة الإسترداد</string>
<string name="activity_prompt_passphrase_session_locked">إن سيشن مُقفَل</string>
<string name="activity_prompt_passphrase_tap_to_unlock">انقر للفتح</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
</resources>

View File

@ -0,0 +1,700 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Session</string>
<string name="yes">Да</string>
<string name="no">Не</string>
<string name="delete">Изтрий</string>
<string name="ban">Ban</string>
<string name="please_wait">Моля, изчакайте...</string>
<string name="save">Запази</string>
<string name="note_to_self">Бележка за Мен</string>
<string name="version_s">Version %s</string>
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">Ново съобщение</string>
<!-- AlbumThumbnailView -->
<string name="AlbumThumbnailView_plus">\+%d</string>
<!-- ApplicationPreferencesActivity -->
<plurals name="ApplicationPreferencesActivity_messages_per_conversation">
<item quantity="one">%dсъобщение на разговор</item>
<item quantity="other">%d съобщения на разговор</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">Изтрий всички стари съобщения сега?</string>
<plurals name="ApplicationPreferencesActivity_this_will_immediately_trim_all_conversations_to_the_d_most_recent_messages">
<item quantity="one">Това ще скъси всички разговори до най-новoто съобщение.</item>
<item quantity="other">Това ще скъси всички разговори до %dте най-нови съобщения.</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete">Изтрий</string>
<string name="ApplicationPreferencesActivity_On">Активирано</string>
<string name="ApplicationPreferencesActivity_Off">Деактивирано</string>
<!-- DraftDatabase -->
<string name="DraftDatabase_Draft_image_snippet">(изображение)</string>
<string name="DraftDatabase_Draft_audio_snippet">(аудио)</string>
<string name="DraftDatabase_Draft_video_snippet">(видео)</string>
<string name="DraftDatabase_Draft_quote_snippet">(отговори)</string>
<!-- AttchmentManager -->
<string name="AttachmentManager_cant_open_media_selection">Неуспешно откриване на папка за избор на файл.</string>
<string name="AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio">Session се нуждае от достъп до вградения диск, за да може да прикачва снимки, видеота или аудио, но той му е отказан. Моля, отидете в настройки в менюто и изберете \"Разрешения\" и \"Дискове\".</string>
<string name="AttachmentManager_signal_requires_contacts_permission_in_order_to_attach_contact_information">Session се нуждае от достъп до контактите Ви, за да може да прикачва информация за тях, но той му е отказан. Моля, отидете на настройки в менюто и изберете \"Разрешения\" и \"Контакти\".</string>
<string name="AttachmentManager_signal_requires_the_camera_permission_in_order_to_take_photos_but_it_has_been_permanently_denied">Session се нуждае от достъп до камерта Ви, за да може да прави снимки, но той му е отказан. Моля, отидете на настройки в менюто и изберете \"Разрешения\" и \"Камера\".</string>
<!-- AudioSlidePlayer -->
<string name="AudioSlidePlayer_error_playing_audio">Грешка при възпроизвеждане на аудио!</string>
<!-- BucketedThreadMedia -->
<string name="BucketedThreadMedia_Today">Днес</string>
<string name="BucketedThreadMedia_Yesterday">Вчера</string>
<string name="BucketedThreadMedia_This_week">Тази седмица</string>
<string name="BucketedThreadMedia_This_month">Този месец</string>
<!-- CommunicationActions -->
<string name="CommunicationActions_no_browser_found">Не е открит уеб браузър.</string>
<!-- ContactsCursorLoader -->
<string name="ContactsCursorLoader_groups">Групи</string>
<!-- ConversationItem -->
<string name="ConversationItem_error_not_delivered">Неуспешно изпращане, натиснете за повече информация</string>
<string name="ConversationItem_received_key_exchange_message_tap_to_process">Получи се съобщение за обмяна на ключове, натисни, за да продължиш.</string>
<string name="ConversationItem_group_action_left">%1$s напусна групата.</string>
<string name="ConversationItem_click_to_approve_unencrypted">Неуспешно изпращане, натиснете за изпращане по несигурен начин</string>
<string name="ConversationItem_unable_to_open_media">Неуспешно откриване на приложение за отваряне на този файл.</string>
<string name="ConversationItem_copied_text">%s e копирано</string>
<string name="ConversationItem_read_more">Прочети</string>
<string name="ConversationItem_download_more">Изтегли Повече</string>
<string name="ConversationItem_pending"> в Очакване</string>
<!-- ConversationActivity -->
<string name="ConversationActivity_add_attachment">Прикачване на файл</string>
<string name="ConversationActivity_select_contact_info">Посочи информация за контакта</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">За съжаление, настъпи грешка при прикачването.</string>
<string name="ConversationActivity_message">Message</string>
<string name="ConversationActivity_compose">Compose</string>
<string name="ConversationActivity_muted_until_date">Muted until %1$s</string>
<string name="ConversationActivity_member_count">%1$d members</string>
<string name="ConversationActivity_open_group_guidelines">Community Guidelines</string>
<string name="ConversationActivity_invalid_recipient">Невалиден получател!</string>
<string name="ConversationActivity_added_to_home_screen">Добавено на работния плот</string>
<string name="ConversationActivity_leave_group">Напускане на групата?</string>
<string name="ConversationActivity_are_you_sure_you_want_to_leave_this_group">Сигурен ли си, че искаш да напуснеш тази група?</string>
<string name="ConversationActivity_error_leaving_group">Грешка при напускане на групата</string>
<string name="ConversationActivity_unblock_this_contact_question">Отблокирване на този контакт?</string>
<string name="ConversationActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">Отново ще може да получавате съобщения и обаждания от този контакт.</string>
<string name="ConversationActivity_unblock">Отблокирване</string>
<string name="ConversationActivity_attachment_exceeds_size_limits">Размерът на прикачения файл надминава допустимия лимит за типа съобщение, който изпращате.</string>
<string name="ConversationActivity_unable_to_record_audio">Не може да бъде записано аудио!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">Нямате инсталирано приложение, което да може да използва тази препратка.</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">За да изпратите аудио съобщение, разрешете достъпа на Session до микрофона.</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">Session се нуждае от достъп до микрофона Ви, за да може да изпраща аудио съобщения, но той му е отказан. Моля, отидете в настройки в менюто и изберете \"Разрешения\" и \"Микрофон\".</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">За прави снимки и видеота, Session се нуждае от достъп до камерта Ви.</string>
<string name="ConversationActivity_signal_needs_the_camera_permission_to_take_photos_or_video">Session се нуждае от достъп до камерта Ви, за да може да прави снимки или видеота, но той му е отказан. Моля, отидете в настройки в менюто и изберете \"Разрешения\" и \"Камера\".</string>
<string name="ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video">Session се нуждае от достъп до камерата, за да прави снимки и видеота</string>
<string name="ConversationActivity_quoted_contact_message">%1$s %2$s</string>
<string name="ConversationActivity_search_position">%1$d от %2$d</string>
<string name="ConversationActivity_no_results">Няма резултати</string>
<!-- ConversationAdapter -->
<plurals name="ConversationAdapter_n_unread_messages">
<item quantity="one">%d непрочетено съобщение</item>
<item quantity="other">%d непрочетени съобщения</item>
</plurals>
<!-- ConversationFragment -->
<plurals name="ConversationFragment_delete_selected_messages">
<item quantity="one">Изтриване на избраното съобщение?</item>
<item quantity="other">Изтриване на избраните съобщения?</item>
</plurals>
<plurals name="ConversationFragment_this_will_permanently_delete_all_n_selected_messages">
<item quantity="one">Това ще изтрие невъзращаемо избраното съобщение.</item>
<item quantity="other">Това ще изтрие невъзвращаемо всичките %1$d избрани съобщения.</item>
</plurals>
<string name="ConversationFragment_ban_selected_user">Ban this user?</string>
<string name="ConversationFragment_save_to_sd_card">Запази в хранилището?</string>
<plurals name="ConversationFragment_saving_n_media_to_storage_warning">
<item quantity="one">Запазването на този медиен файл ще даде достъп до него на всички други приложения.\n\nПродължи?</item>
<item quantity="other">Запазването на всички %1$d медийни файла ще даде достъп до тях на всички други приложения.\n\nПродължи?</item>
</plurals>
<plurals name="ConversationFragment_error_while_saving_attachments_to_sd_card">
<item quantity="one">Грешка при запазването на прикаченият файл!</item>
<item quantity="other">Грешка при запазването на прикачените файлове!</item>
</plurals>
<plurals name="ConversationFragment_saving_n_attachments">
<item quantity="one">Запазване на прикачения файл</item>
<item quantity="other">Запазване на %1$d прикачени файла</item>
</plurals>
<plurals name="ConversationFragment_saving_n_attachments_to_sd_card">
<item quantity="one">Запазване на прикачения файл в хранилището...</item>
<item quantity="other">Запазване на %1$d прикачени файла в хранилището...</item>
</plurals>
<string name="ConversationFragment_pending">Предстоящ...</string>
<string name="ConversationFragment_push">Данни (Session)</string>
<string name="ConversationFragment_mms">MMS</string>
<string name="ConversationFragment_sms">SMS</string>
<string name="ConversationFragment_deleting">Изтриване</string>
<string name="ConversationFragment_deleting_messages">Изтриване на съобщения...</string>
<string name="ConversationFragment_banning">Banning</string>
<string name="ConversationFragment_banning_user">Banning user…</string>
<string name="ConversationFragment_quoted_message_not_found">Оригиналното съобщение не е открито</string>
<string name="ConversationFragment_quoted_message_no_longer_available">Оригиналното съобщение вече не е налично</string>
<!-- ConversationListItem -->
<string name="ConversationListItem_key_exchange_message">Съобщение за Изменя на ключожете</string>
<!-- CreateProfileActivity -->
<string name="CreateProfileActivity_profile_photo">Снимка на профила</string>
<!-- CustomDefaultPreference -->
<string name="CustomDefaultPreference_using_custom">Използване на специален: %s</string>
<string name="CustomDefaultPreference_using_default">Използване на подразбиращ се: %s</string>
<string name="CustomDefaultPreference_none">Нищо</string>
<!-- DateUtils -->
<string name="DateUtils_just_now">Току що</string>
<string name="DateUtils_minutes_ago">%d мин</string>
<string name="DateUtils_today">Днес</string>
<string name="DateUtils_yesterday">Вчера</string>
<!-- DeviceListItem -->
<string name="DeviceListItem_today">Днес</string>
<!-- DocumentView -->
<string name="DocumentView_unknown_file">Непознат файл</string>
<!-- GiphyActivity -->
<string name="GiphyActivity_error_while_retrieving_full_resolution_gif">Грешка при вземането на GIF в пълна резолюция</string>
<!-- GiphyFragmentPageAdapter -->
<string name="GiphyFragmentPagerAdapter_gifs">GIF-ове</string>
<string name="GiphyFragmentPagerAdapter_stickers">Стикери</string>
<!-- CropImageActivity -->
<string name="CropImageActivity_profile_avatar">Снимка</string>
<!-- InputPanel -->
<string name="InputPanel_tap_and_hold_to_record_a_voice_message_release_to_send">Натиснете и задръжте, за да запишете гласово съобщение, отпуснете, за да го изпратите</string>
<!-- LongMessageActivity -->
<string name="LongMessageActivity_unable_to_find_message">Съобщението не е намерено</string>
<string name="LongMessageActivity_message_from_s">Съобщение от %1$s</string>
<string name="LongMessageActivity_your_message">Вашето съобщение</string>
<!-- MediaOverviewActivity -->
<string name="MediaOverviewActivity_Media">Медия</string>
<plurals name="MediaOverviewActivity_Media_delete_confirm_title">
<item quantity="one">Изтриване на избраното съобщение?</item>
<item quantity="other">Изтриване на избраните съобщения?</item>
</plurals>
<plurals name="MediaOverviewActivity_Media_delete_confirm_message">
<item quantity="one">Това ще изтрие невъзвращаемо избраното съобщение.</item>
<item quantity="other">Това ще изтрие невъзвращаемо всичките %1$d избрани съобщения.</item>
</plurals>
<string name="MediaOverviewActivity_Media_delete_progress_title">Изтриване</string>
<string name="MediaOverviewActivity_Media_delete_progress_message">Изтриване на съобщения...</string>
<string name="MediaOverviewActivity_Documents">Документи</string>
<string name="MediaOverviewActivity_Select_all">Избери всичко</string>
<string name="MediaOverviewActivity_collecting_attachments">Събиране на прикачени файлове...</string>
<!-- NotificationMmsMessageRecord -->
<string name="NotificationMmsMessageRecord_multimedia_message">Мултимедийно съобщение</string>
<string name="NotificationMmsMessageRecord_downloading_mms_message">Изтегляне на MMS съобщение</string>
<string name="NotificationMmsMessageRecord_error_downloading_mms_message">Грешка при изтегляне на MMS съобщение, натиснете за да опитате повторно</string>
<!-- MediaPickerActivity -->
<string name="MediaPickerActivity_send_to">Изпрати на %s</string>
<!-- MediaSendActivity -->
<string name="MediaSendActivity_add_a_caption">Добави надпис...</string>
<string name="MediaSendActivity_an_item_was_removed_because_it_exceeded_the_size_limit">Един елемент бе премахнат, защото надхвърля ограничението за размер</string>
<string name="MediaSendActivity_camera_unavailable">Не е открита камера.</string>
<string name="MediaSendActivity_message_to_s">Изпрати на %s</string>
<plurals name="MediaSendActivity_cant_share_more_than_n_items">
<item quantity="one">Не можете да споделяте повече от %d елемент.</item>
<item quantity="other">Не можете да споделяте повече от %d елементи.</item>
</plurals>
<!-- MediaRepository -->
<string name="MediaRepository_all_media">Всички прикачените файлове</string>
<!-- MessageRecord -->
<string name="MessageRecord_message_encrypted_with_a_legacy_protocol_version_that_is_no_longer_supported">Получихте съобщение криптирано със стара версия на Session, която вече не се поддържа. Моля, помолете изпращача да обнови версията си и да препрати съобщението.</string>
<string name="MessageRecord_left_group">Напуснахте групата.</string>
<string name="MessageRecord_you_updated_group">Обновихте групата.</string>
<string name="MessageRecord_s_updated_group">%s обнови групата.</string>
<!-- ExpirationDialog -->
<string name="ExpirationDialog_disappearing_messages">Изчезващи съобщения</string>
<string name="ExpirationDialog_your_messages_will_not_expire">Съобщенията няма да изчезват.</string>
<string name="ExpirationDialog_your_messages_will_disappear_s_after_they_have_been_seen">Изпратени и получени съобщения в този разговор ще изчезнат %s след изпращането им.</string>
<!-- PassphrasePromptActivity -->
<string name="PassphrasePromptActivity_enter_passphrase">Въведете паролата</string>
<!-- RecipientPreferencesActivity -->
<string name="RecipientPreferenceActivity_block_this_contact_question">Блокиране на този контакт?</string>
<string name="RecipientPreferenceActivity_you_will_no_longer_receive_messages_and_calls_from_this_contact">Повече няма да получавате съобщения и обаждания от този контакт.</string>
<string name="RecipientPreferenceActivity_block">Блокиране</string>
<string name="RecipientPreferenceActivity_unblock_this_contact_question">Отблокиране на този контакт?</string>
<string name="RecipientPreferenceActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">Отново ще може да получавате съобщения и обаждания от този контакт.</string>
<string name="RecipientPreferenceActivity_unblock">Отблокиране</string>
<!-- Slide -->
<string name="Slide_image">Изображение</string>
<string name="Slide_audio">Аудио</string>
<string name="Slide_video">Видео</string>
<!-- SmsMessageRecord -->
<string name="SmsMessageRecord_received_corrupted_key_exchange_message">Съобщението за обмяна на ключ
е объркано!</string>
<string name="SmsMessageRecord_received_key_exchange_message_for_invalid_protocol_version">Съобщението за обмяна на ключа е с грешна версия на протокола.</string>
<string name="SmsMessageRecord_received_message_with_new_safety_number_tap_to_process">Получихте съобщение с нови числа за сигурност. Натиснете, за да ги видите и обработите.</string>
<string name="SmsMessageRecord_secure_session_reset">Вие рестартирахте сигурната сесия.</string>
<string name="SmsMessageRecord_secure_session_reset_s">%s рестартира сигурната сесия.</string>
<string name="SmsMessageRecord_duplicate_message">Дублирай съобщението.</string>
<!-- ThreadRecord -->
<string name="ThreadRecord_group_updated">Групата е обновена</string>
<string name="ThreadRecord_left_the_group">Напусна групата</string>
<string name="ThreadRecord_secure_session_reset">Започване на нова сигурна сесия.</string>
<string name="ThreadRecord_draft">Чернова:</string>
<string name="ThreadRecord_called">Вие се обадихте</string>
<string name="ThreadRecord_called_you">Ви се обади</string>
<string name="ThreadRecord_missed_call">Пропуснато обаждане</string>
<string name="ThreadRecord_media_message">Медийно съобщение</string>
<string name="ThreadRecord_s_is_on_signal">%s е в Session!</string>
<string name="ThreadRecord_disappearing_messages_disabled">Изчезващите съобщения са деактивирани</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">Времето за изчезване на съобщенията е %s</string>
<string name="ThreadRecord_s_took_a_screenshot">%s took a screenshot.</string>
<string name="ThreadRecord_media_saved_by_s">Media saved by %s.</string>
<string name="ThreadRecord_safety_number_changed">Числата за сигурност се промениха</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">Числата Ви за сигурност с %s са променени.</string>
<string name="ThreadRecord_you_marked_verified">Отбелязахте като потвърдено</string>
<string name="ThreadRecord_you_marked_unverified">Отбелязахте като непотвърдено</string>
<string name="ThreadRecord_empty_message">This conversation is empty</string>
<string name="ThreadRecord_open_group_invitation">Open group invitation</string>
<!-- UpdateApkReadyListener -->
<string name="UpdateApkReadyListener_Signal_update">Обновление на Session</string>
<string name="UpdateApkReadyListener_a_new_version_of_signal_is_available_tap_to_update">Има нова версия на Session, натиснете, за да обновите.</string>
<!-- MessageDisplayHelper -->
<string name="MessageDisplayHelper_bad_encrypted_message">Грешно криптирано съобщение</string>
<string name="MessageDisplayHelper_message_encrypted_for_non_existing_session">Съобщението е криптирано за несъществуаща сесия</string>
<!-- MmsMessageRecord -->
<string name="MmsMessageRecord_bad_encrypted_mms_message">Грешно криптирано MMS съобщение</string>
<string name="MmsMessageRecord_mms_message_encrypted_for_non_existing_session">MMS съобщението е криптирано за несъществуваща сесия</string>
<!-- MuteDialog -->
<string name="MuteDialog_mute_notifications">Тих режим за известия</string>
<!-- KeyCachingService -->
<string name="KeyCachingService_signal_passphrase_cached">Натиснете за отворяне.</string>
<string name="KeyCachingService_passphrase_cached">Session е отключен</string>
<string name="KeyCachingService_lock">Заключване на Session</string>
<!-- MediaPreviewActivity -->
<string name="MediaPreviewActivity_you">Ти</string>
<string name="MediaPreviewActivity_unssuported_media_type">Неподдържан медиен формат.</string>
<string name="MediaPreviewActivity_draft">Чернова</string>
<string name="MediaPreviewActivity_signal_needs_the_storage_permission_in_order_to_write_to_external_storage_but_it_has_been_permanently_denied">Session се нуждае от достъп до вградения диск, за да може да запазва на него, но той му е отказан. Моля, отидете в настройки в менюто и изберете \"Разрешения\" и \"Дискове\".</string>
<string name="MediaPreviewActivity_unable_to_write_to_external_storage_without_permission">Неуспешно запазване на външен диск без нуждното разрешение за достъп</string>
<string name="MediaPreviewActivity_media_delete_confirmation_title">Изтриване на съобщението?</string>
<string name="MediaPreviewActivity_media_delete_confirmation_message">Това ще изтрие невъзвращаемо текущото съобщение.</string>
<!-- MessageNotifier -->
<string name="MessageNotifier_d_new_messages_in_d_conversations">%1$d нови съобщения в %2$d чата</string>
<string name="MessageNotifier_most_recent_from_s">Най-скорошно от: %1$s</string>
<string name="MessageNotifier_locked_message">Заключено съобщение</string>
<string name="MessageNotifier_message_delivery_failed">Изпращането на съобщението неуспешно.</string>
<string name="MessageNotifier_failed_to_deliver_message">Неуспешно изпращането на съобщението.</string>
<string name="MessageNotifier_error_delivering_message">Грешка при изпращането на съобщението</string>
<string name="MessageNotifier_mark_all_as_read">Всички са прочетени</string>
<string name="MessageNotifier_mark_read">Прочетено</string>
<string name="MessageNotifier_reply">Отговори</string>
<string name="MessageNotifier_pending_signal_messages">Непрочетени Session съобщения</string>
<string name="MessageNotifier_you_have_pending_signal_messages">Имате непрочетени Session съобщения, натиснете, за да ги отворите и прегледате</string>
<string name="MessageNotifier_contact_message">%1$s %2$s</string>
<string name="MessageNotifier_unknown_contact_message">Контакт</string>
<!-- Notification Channels -->
<string name="NotificationChannel_messages">По подразбиране</string>
<string name="NotificationChannel_calls">Обаждания</string>
<string name="NotificationChannel_failures">Грешки</string>
<string name="NotificationChannel_backups">Архиви</string>
<string name="NotificationChannel_locked_status">Статус на заключването</string>
<string name="NotificationChannel_app_updates">Обновления на приложението</string>
<string name="NotificationChannel_other">Друг</string>
<string name="NotificationChannel_group_messages">Съобщения</string>
<string name="NotificationChannel_missing_display_name">Непознат</string>
<!-- QuickResponseService -->
<string name="QuickResponseService_quick_response_unavailable_when_Signal_is_locked">Бърз отговор не е възможен, когато Session е заключен!</string>
<string name="QuickResponseService_problem_sending_message">Проблем при изпрашане на съобщение!</string>
<!-- SaveAttachmentTask -->
<string name="SaveAttachmentTask_saved_to">Запзване в %s</string>
<string name="SaveAttachmentTask_saved">Запазено</string>
<!-- SearchToolbar -->
<string name="SearchToolbar_search">Търсене</string>
<!-- ShortcutLauncherActivity -->
<string name="ShortcutLauncherActivity_invalid_shortcut">Невалидена препратка</string>
<!-- SingleRecipientNotificationBuilder -->
<string name="SingleRecipientNotificationBuilder_signal">Session</string>
<string name="SingleRecipientNotificationBuilder_new_message">Ново съобщение</string>
<!-- TransferControlView -->
<plurals name="TransferControlView_n_items">
<item quantity="one">%d нещо</item>
<item quantity="other">%d неща</item>
</plurals>
<!-- VideoPlayer -->
<string name="VideoPlayer_error_playing_video">Грешка при пускане на видео</string>
<!-- attachment_type_selector -->
<string name="attachment_type_selector__audio">Аудио</string>
<string name="attachment_type_selector__audio_description">Аудио</string>
<string name="attachment_type_selector__contact">Контакт</string>
<string name="attachment_type_selector__contact_description">Контакт</string>
<string name="attachment_type_selector__camera">Камера</string>
<string name="attachment_type_selector__camera_description">Камера</string>
<string name="attachment_type_selector__location">Местоположение</string>
<string name="attachment_type_selector__location_description">Местоположение</string>
<string name="attachment_type_selector__gif">GIF</string>
<string name="attachment_type_selector__gif_description">Gif</string>
<string name="attachment_type_selector__gallery_description">Изображение или видео</string>
<string name="attachment_type_selector__file_description">Файл</string>
<string name="attachment_type_selector__gallery">Галерия</string>
<string name="attachment_type_selector__file">Файл</string>
<string name="attachment_type_selector__drawer_description">Затваряне/отваряне на чекмеджето с прикачени файлове</string>
<!-- contact_selection_group_activity -->
<string name="contact_selection_group_activity__finding_contacts">Зареждане на контакти...</string>
<!-- conversation_activity -->
<string name="conversation_activity__send">Изпращане</string>
<string name="conversation_activity__compose_description">Създаване на съобщение</string>
<string name="conversation_activity__emoji_toggle_description">Смени emoji клавиатурата</string>
<string name="conversation_activity__attachment_thumbnail">Изображение на прикачен файл</string>
<string name="conversation_activity__quick_attachment_drawer_toggle_camera_description">Затворяне/отворяне на чекмеджето за прикчаване на файл от камера</string>
<string name="conversation_activity__quick_attachment_drawer_record_and_send_audio_description">Записване и изпращане прикачено аудио</string>
<string name="conversation_activity__quick_attachment_drawer_lock_record_description">Lock recording of audio attachment</string>
<string name="conversation_activity__enable_signal_for_sms">Активиране на Session за SMS-и</string>
<!-- conversation_input_panel -->
<string name="conversation_input_panel__slide_to_cancel">Плъзнете за отказ</string>
<string name="conversation_input_panel__cancel">Отказ</string>
<!-- conversation_item -->
<string name="conversation_item__mms_image_description">Медийно съобщение</string>
<string name="conversation_item__secure_message_description">Подсигурено съобщение</string>
<!-- conversation_item_sent -->
<string name="conversation_item_sent__send_failed_indicator_description">Неуспешно Изпращане</string>
<string name="conversation_item_sent__pending_approval_description">Очаква Потвърждение</string>
<string name="conversation_item_sent__delivered_description">Доставено</string>
<string name="conversation_item_sent__message_read">Съобщението е прочетено</string>
<!-- conversation_item_received -->
<string name="conversation_item_received__contact_photo_description">Снимка на контакта</string>
<!-- audio_view -->
<string name="audio_view__play_accessibility_description">Пускане</string>
<string name="audio_view__pause_accessibility_description">Пауза</string>
<string name="audio_view__download_accessibility_description">Изтегляне</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">Join</string>
<string name="open_group_invitation_view__open_group_invitation">Open group invitation</string>
<string name="open_group_guidelines_pinned_message">Pinned message</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
<string name="open_group_guidelines_read">Read</string>
<!-- QuoteView -->
<string name="QuoteView_audio">Аудио</string>
<string name="QuoteView_video">Видео</string>
<string name="QuoteView_photo">Снимка</string>
<string name="QuoteView_you">Ти</string>
<string name="QuoteView_original_missing">Оригиналното съобщение не е открито</string>
<!-- conversation_fragment -->
<string name="conversation_fragment__scroll_to_the_bottom_content_description">Превъртане надолу</string>
<!-- giphy_activity -->
<string name="giphy_activity_toolbar__search_gifs_and_stickers">Търсене сред GIF-ове и стикери</string>
<!-- giphy_fragment -->
<string name="giphy_fragment__nothing_found">Няма нищо открито</string>
<!-- load_more_header -->
<string name="load_more_header__see_full_conversation">Разгледай целия разговор</string>
<string name="load_more_header__loading">Зареждане</string>
<!-- media_overview_activity -->
<string name="media_overview_activity__no_media">Без медия</string>
<!-- message_recipients_list_item -->
<string name="message_recipients_list_item__resend">ПОВТОРНО ИЗПРАЩАНЕ</string>
<!-- recipient_preferences -->
<string name="recipient_preferences__block">Блокиране</string>
<!-- message_details_header -->
<string name="message_details_header__issues_need_your_attention">Няколко проблема изискват вашето внимание.</string>
<string name="message_details_header__sent">Изпратен</string>
<string name="message_details_header__received">Получен</string>
<string name="message_details_header__disappears">Изчезва</string>
<string name="message_details_header__via">През</string>
<string name="message_details_header__to">До:</string>
<string name="message_details_header__from">От:</string>
<string name="message_details_header__with">С:</string>
<!-- AndroidManifest.xml -->
<string name="AndroidManifest__create_passphrase">Създай парола</string>
<string name="AndroidManifest__select_contacts">Избери контакти</string>
<string name="AndroidManifest__media_preview">Преглед на медията</string>
<!-- arrays.xml -->
<string name="arrays__use_default">Използване на подразбиращ се</string>
<string name="arrays__use_custom">Използване на специален</string>
<string name="arrays__mute_for_one_hour">Тих режим за 1 час</string>
<string name="arrays__mute_for_two_hours">Тих режим за 2 часа</string>
<string name="arrays__mute_for_one_day">Тих режим за 1 ден</string>
<string name="arrays__mute_for_seven_days">Тих режим за 7 дена</string>
<string name="arrays__mute_for_one_year">Тих режим за 1 година</string>
<string name="arrays__settings_default">Настройки по подразбиране</string>
<string name="arrays__enabled">Разрешено</string>
<string name="arrays__disabled">Деактивирано</string>
<string name="arrays__name_and_message">Име и съобщение</string>
<string name="arrays__name_only">Само име</string>
<string name="arrays__no_name_or_message">Няма име или съобщения</string>
<string name="arrays__images">Изображения</string>
<string name="arrays__audio">Аудио</string>
<string name="arrays__video">Видео</string>
<string name="arrays__documents">Документи</string>
<string name="arrays__small">Малък</string>
<string name="arrays__normal">Нормален</string>
<string name="arrays__large">Голям</string>
<string name="arrays__extra_large">Много голям</string>
<string name="arrays__default">По подразбиране</string>
<string name="arrays__high">Високо</string>
<string name="arrays__max">Максимално</string>
<!-- plurals.xml -->
<plurals name="hours_ago">
<item quantity="one">%d час</item>
<item quantity="other">%d часа</item>
</plurals>
<!-- preferences.xml -->
<string name="preferences__pref_enter_sends_title">Клавишът Enter се използва за изпращане</string>
<string name="preferences__pressing_the_enter_key_will_send_text_messages">Натискане на клавиша Enter ще изпрати текстово съобщене</string>
<string name="preferences__send_link_previews">Изпращане на визуализации на връзката</string>
<string name="preferences__previews_are_supported_for">Визуализации са поддържани за линкове към Imgur, Instagram, Pinterest, Reddit, и YouTube.</string>
<string name="preferences__screen_security">Сигурност на екрана</string>
<string name="preferences__disable_screen_security_to_allow_screen_shots">Забраняване на автоматично копиране на екрана в списка с често използвани програми и в самата програма.</string>
<string name="preferences__notifications">Известия</string>
<string name="preferences__led_color">LED цвят</string>
<string name="preferences__led_color_unknown">Непознат</string>
<string name="preferences__pref_led_blink_title">LED известяване</string>
<string name="preferences__sound">Мелодия</string>
<string name="preferences__silent">Тих</string>
<string name="preferences__repeat_alerts">Повтарящи се аларми</string>
<string name="preferences__never">Никога</string>
<string name="preferences__one_time">Само веднъж</string>
<string name="preferences__two_times">Два пъти</string>
<string name="preferences__three_times">Три пъти</string>
<string name="preferences__five_times">Пет пъти</string>
<string name="preferences__ten_times">Десет пъти</string>
<string name="preferences__vibrate">Вибрация</string>
<string name="preferences__green">Зелен</string>
<string name="preferences__red">Червен</string>
<string name="preferences__blue">Син</string>
<string name="preferences__orange">Оранжево</string>
<string name="preferences__cyan">Циан</string>
<string name="preferences__magenta">Маджента</string>
<string name="preferences__white">Бял</string>
<string name="preferences__none">Нищо</string>
<string name="preferences__fast">Бързо</string>
<string name="preferences__normal">Нормално</string>
<string name="preferences__slow">Бавно</string>
<string name="preferences__automatically_delete_older_messages_once_a_conversation_exceeds_a_specified_length">Автоматично изтрий най-старите съобщения, когато разговорът достигне определена дължина.</string>
<string name="preferences__delete_old_messages">Изтрий старите съобщения</string>
<string name="preferences__conversation_length_limit">Граница за дължина на разговора</string>
<string name="preferences__trim_all_conversations_now">Скъси всички разговори сега</string>
<string name="preferences__scan_through_all_conversations_and_enforce_conversation_length_limits">Сканирай всички разговори и приложи ограничението за дължина на разговори</string>
<string name="preferences__default">По подразбиране</string>
<string name="preferences__incognito_keyboard">Тайна клавиатура</string>
<string name="preferences__read_receipts">Потвърждения за прочитане</string>
<string name="preferences__if_read_receipts_are_disabled_you_wont_be_able_to_see_read_receipts">Ако Вашите потвърждения за прочитане са деактивирани няма да можете да видите потвържденията за прочитане от други.</string>
<string name="preferences__typing_indicators">Индикатори за писане</string>
<string name="preferences__if_typing_indicators_are_disabled_you_wont_be_able_to_see_typing_indicators">Ако индикаторите за писане са декативирани, няма да можете да видите индикаторите на другите хора.</string>
<string name="preferences__request_keyboard_to_disable_personalized_learning">Поискване на клавиатурата да деактивира персонализрано научаване</string>
<string name="preferences__light_theme">Светла</string>
<string name="preferences__dark_theme">Тъмна</string>
<string name="preferences_chats__message_trimming">Съкращаване на съобщенията</string>
<string name="preferences_advanced__use_system_emoji">Използване на вградените emoji-та</string>
<string name="preferences_advanced__disable_signal_built_in_emoji_support">Деактивирай вградена в Session подръжка на emoji-та</string>
<string name="preferences_app_protection__app_access">Достъп до приложението</string>
<string name="preferences_app_protection__communication">Комуникация</string>
<string name="preferences_chats__chats">Чатове</string>
<string name="preferences_notifications__messages">Съобщения</string>
<string name="preferences_notifications__in_chat_sounds">Звуци в чатове</string>
<string name="preferences_notifications__show">Показване</string>
<string name="preferences_notifications__priority">Приоритет</string>
<!-- **************************************** -->
<!-- menus -->
<!-- **************************************** -->
<!-- contact_selection_list -->
<string name="contact_selection_list__unknown_contact">Ново съобщение до...</string>
<!-- conversation_context -->
<string name="conversation_context__menu_message_details">Информация за съобщението</string>
<string name="conversation_context__menu_copy_text">Копирай текста</string>
<string name="conversation_context__menu_delete_message">Изтрий съобщението</string>
<string name="conversation_context__menu_ban_user">Ban user</string>
<string name="conversation_context__menu_resend_message">Повторно изпращане</string>
<string name="conversation_context__menu_reply_to_message">Отговор на съобщение</string>
<!-- conversation_context_image -->
<string name="conversation_context_image__save_attachment">Запази прикачения файл</string>
<!-- conversation_expiring_off -->
<string name="conversation_expiring_off__disappearing_messages">Изчезващи съобщения</string>
<!-- conversation_expiring_on -->
<string name="menu_conversation_expiring_on__messages_expiring">Съобщения, които изчеват</string>
<!-- conversation_muted -->
<string name="conversation_muted__unmute">Изключи тих режим</string>
<!-- conversation_unmuted -->
<string name="conversation_unmuted__mute_notifications">Тих режим за известия</string>
<!-- conversation -->
<string name="conversation__menu_edit_group">Промяна на групата</string>
<string name="conversation__menu_leave_group">Напускане на групата</string>
<string name="conversation__menu_view_all_media">Всички прикачените файлове</string>
<string name="conversation__menu_add_shortcut">Добавяне на работния плот</string>
<!-- conversation_popup -->
<string name="conversation_popup__menu_expand_popup">Разшири диалога</string>
<!-- conversation_group_options -->
<string name="conversation_group_options__delivery">Доставка</string>
<string name="conversation_group_options__conversation">Разговор</string>
<string name="conversation_group_options__broadcast">Предаване</string>
<!-- media_preview -->
<string name="media_preview__save_title">Запази</string>
<string name="media_preview__forward_title">Препращане</string>
<string name="media_preview__all_media_title">Всички прикачени файлове</string>
<!-- media_overview -->
<string name="media_overview_documents_fragment__no_documents_found">Няма документи</string>
<!-- media_preview_activity -->
<string name="media_preview_activity__media_content_description">Преглед на медията</string>
<!-- Trimmer -->
<string name="trimmer__deleting">Изтриване</string>
<string name="trimmer__deleting_old_messages">Изтриване на стари съобщения...</string>
<string name="trimmer__old_messages_successfully_deleted">Старите съобщения бяха успешно изтрити</string>
<!-- transport_selection_list_item -->
<string name="Permissions_permission_required">Нужда от разрешение за достъп</string>
<string name="Permissions_continue">Продължи</string>
<string name="Permissions_not_now">Не сега</string>
<string name="backup_enable_dialog__backups_will_be_saved_to_external_storage_and_encrypted_with_the_passphrase_below_you_must_have_this_passphrase_in_order_to_restore_a_backup">Архивите ще бъдат запазени на външно хранилище и криптирани с паролата задена по-долу. Трябва да използвате същата парола за въстановяване от архива.</string>
<string name="backup_enable_dialog__i_have_written_down_this_passphrase">Записах тази парола. Без нея, няма да мога да възстановя архива.</string>
<string name="registration_activity__skip">Пропусни</string>
<string name="RegistrationActivity_backup_failure_downgrade">Не е възможно внасянето на складирани съобщения от по-нов версия на Session.</string>
<string name="RegistrationActivity_incorrect_backup_passphrase">Невалидна парола за архива</string>
<string name="BackupDialog_enable_local_backups">Активиране на локални архиви?</string>
<string name="BackupDialog_enable_backups">Активиране на архиви</string>
<string name="BackupDialog_please_acknowledge_your_understanding_by_marking_the_confirmation_check_box">Моля, потвърдете съгласието си.</string>
<string name="BackupDialog_delete_backups">Изтриване на архивите?</string>
<string name="BackupDialog_disable_and_delete_all_local_backups">Деактивиране и изтриване на всички локални архиви?</string>
<string name="BackupDialog_delete_backups_statement">Изтриване на архиви</string>
<string name="BackupDialog_copied_to_clipboard">Копирано</string>
<string name="LocalBackupJob_creating_backup">Създаване на архив...</string>
<string name="ProgressPreference_d_messages_so_far">%d съобщения до тук</string>
<string name="BackupUtil_never">Никога</string>
<string name="preferences_app_protection__screen_lock">Заключен екран</string>
<string name="preferences_app_protection__lock_signal_access_with_android_screen_lock_or_fingerprint">Заключване на достъпа до Session с вградените в Андроид заключен екран или отпечатък</string>
<string name="preferences_app_protection__screen_lock_inactivity_timeout">Време за активирнае при неактивност</string>
<string name="AppProtectionPreferenceFragment_none">Нищо</string>
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<!-- Session -->
<string name="continue_2">Continue</string>
<string name="copy">Copy</string>
<string name="invalid_url">Invalid URL</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="next">Next</string>
<string name="share">Share</string>
<string name="invalid_session_id">Invalid Session ID</string>
<string name="cancel">Cancel</string>
<string name="your_session_id">Your Session ID</string>
<string name="activity_landing_title_2">Your Session begins here...</string>
<string name="activity_landing_register_button_title">Create Session ID</string>
<string name="activity_landing_restore_button_title">Continue Your Session</string>
<string name="view_fake_chat_bubble_1">What\'s Session?</string>
<string name="view_fake_chat_bubble_2">It\'s a decentralized, encrypted messaging app</string>
<string name="view_fake_chat_bubble_3">So it doesn\'t collect my personal information or my conversation metadata? How does it work?</string>
<string name="view_fake_chat_bubble_4">Using a combination of advanced anonymous routing and end-to-end encryption technologies.</string>
<string name="view_fake_chat_bubble_5">Friends don\'t let friends use compromised messengers. You\'re welcome.</string>
<string name="activity_register_title">Say hello to your Session ID</string>
<string name="activity_register_explanation">Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.</string>
<string name="activity_restore_title">Restore your account</string>
<string name="activity_restore_explanation">Enter the recovery phrase that was given to you when you signed up to restore your account.</string>
<string name="activity_restore_seed_edit_text_hint">Enter your recovery phrase</string>
<string name="activity_display_name_title_2">Pick your display name</string>
<string name="activity_display_name_explanation">This will be your name when you use Session. It can be your real name, an alias, or anything else you like.</string>
<string name="activity_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_display_name_display_name_missing_error">Please pick a display name</string>
<string name="activity_display_name_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_pn_mode_recommended_option_tag">Recommended</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Please Pick an Option</string>
<string name="activity_home_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_home_empty_state_button_title">Start a Session</string>
<string name="activity_home_leave_group_dialog_message">Are you sure you want to leave this group?</string>
<string name="activity_home_leaving_group_failed_message">"Couldn't leave group"</string>
<string name="activity_home_delete_conversation_dialog_message">Are you sure you want to delete this conversation?</string>
<string name="activity_home_conversation_deleted_message">Conversation deleted</string>
<string name="activity_seed_title">Your Recovery Phrase</string>
<string name="activity_seed_title_2">Meet your recovery phrase</string>
<string name="activity_seed_explanation">Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and don\'t give it to anyone.</string>
<string name="activity_seed_reveal_button_title">Hold to reveal</string>
<string name="view_seed_reminder_title">You\'re almost finished! 80%</string>
<string name="view_seed_reminder_subtitle_1">Secure your account by saving your recovery phrase</string>
<string name="view_seed_reminder_subtitle_2">Tap and hold the redacted words to reveal your recovery phrase, then store it safely to secure your Session ID.</string>
<string name="view_seed_reminder_subtitle_3">Make sure to store your recovery phrase in a safe place</string>
<string name="activity_path_title">Path</string>
<string name="activity_path_explanation">Session hides your IP by bouncing your messages through several Service Nodes in Session\'s decentralized network. These are the countries your connection is currently being bounced through:</string>
<string name="activity_path_device_row_title">You</string>
<string name="activity_path_guard_node_row_title">Entry Node</string>
<string name="activity_path_service_node_row_title">Service Node</string>
<string name="activity_path_destination_row_title">Destination</string>
<string name="activity_path_learn_more_button_title">Learn More</string>
<string name="activity_create_private_chat_title">New Session</string>
<string name="activity_create_private_chat_enter_session_id_tab_title">Enter Session ID</string>
<string name="activity_create_private_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_create_private_chat_scan_qr_code_explanation">Scan a user\'s QR code to start a session. QR codes can be found by tapping the QR code icon in account settings.</string>
<string name="fragment_enter_public_key_edit_text_hint">Enter Session ID of recipient</string>
<string name="fragment_enter_public_key_explanation">Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code.</string>
<string name="fragment_scan_qr_code_camera_access_explanation">Session needs camera access to scan QR codes</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">Grant Camera Access</string>
<string name="activity_create_closed_group_title">New Closed Group</string>
<string name="activity_create_closed_group_edit_text_hint">Enter a group name</string>
<string name="activity_create_closed_group_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_create_closed_group_empty_state_button_title">Start a Session</string>
<string name="activity_create_closed_group_group_name_missing_error">Please enter a group name</string>
<string name="activity_create_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_create_closed_group_not_enough_group_members_error">Please pick at least 1 group member</string>
<string name="activity_create_closed_group_too_many_group_members_error">A closed group cannot have more than 100 members</string>
<string name="activity_join_public_chat_title">Join Open Group</string>
<string name="activity_join_public_chat_error">Couldn\'t join group</string>
<string name="activity_join_public_chat_enter_group_url_tab_title">Open Group URL</string>
<string name="activity_join_public_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_join_public_chat_scan_qr_code_explanation">Scan the QR code of the open group you\'d like to join</string>
<string name="fragment_enter_chat_url_edit_text_hint">Enter an open group URL</string>
<string name="activity_settings_title">Settings</string>
<string name="activity_settings_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_settings_display_name_missing_error">Please pick a display name</string>
<string name="activity_settings_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_settings_privacy_button_title">Privacy</string>
<string name="activity_settings_notifications_button_title">Notifications</string>
<string name="activity_settings_chats_button_title">Chats</string>
<string name="activity_settings_devices_button_title">Devices</string>
<string name="activity_settings_invite_button_title">Invite</string>
<string name="activity_settings_recovery_phrase_button_title">Recovery Phrase</string>
<string name="activity_settings_clear_all_data_button_title">Clear Data</string>
<string name="activity_settings_help_translate_session">Help us Translate Session</string>
<string name="activity_notification_settings_title">Notifications</string>
<string name="activity_notification_settings_style_section_title">Notification Style</string>
<string name="activity_notification_settings_content_section_title">Notification Content</string>
<string name="activity_privacy_settings_title">Privacy</string>
<string name="activity_chat_settings_title">Chats</string>
<string name="preferences_notifications_strategy_category_title">Notification Strategy</string>
<string name="fragment_device_list_bottom_sheet_change_name_button_title">Change name</string>
<string name="fragment_device_list_bottom_sheet_unlink_device_button_title">Unlink device</string>
<string name="dialog_seed_title">Your Recovery Phrase</string>
<string name="dialog_seed_explanation">This is your recovery phrase. With it, you can restore or migrate your Session ID to a new device.</string>
<string name="dialog_clear_all_data_title">Clear All Data</string>
<string name="dialog_clear_all_data_explanation">This will permanently delete your messages, sessions, and contacts.</string>
<string name="activity_qr_code_title">QR Code</string>
<string name="activity_qr_code_view_my_qr_code_tab_title">View My QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_explanation">Scan someone\'s QR code to start a conversation with them</string>
<string name="fragment_view_my_qr_code_title">Scan Me</string>
<string name="fragment_view_my_qr_code_explanation">This is your QR code. Other users can scan it to start a session with you.</string>
<string name="fragment_view_my_qr_code_share_title">Share QR Code</string>
<string name="fragment_contact_selection_contacts_title">Contacts</string>
<string name="fragment_contact_selection_closed_groups_title">Closed Groups</string>
<string name="fragment_contact_selection_open_groups_title">Open Groups</string>
<string name="fragment_contact_selection_empty_contacts">You don\'t have any contacts yet</string>
<!-- Next round of translation -->
<string name="menu_apply_button">Apply</string>
<string name="menu_done_button">Done</string>
<string name="activity_edit_closed_group_title">Edit Group</string>
<string name="activity_edit_closed_group_edit_text_hint">Enter a new group name</string>
<string name="activity_edit_closed_group_edit_members">Members</string>
<string name="activity_edit_closed_group_add_members">Add members</string>
<string name="activity_edit_closed_group_group_name_missing_error">Group name can\'t be empty</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Groups must have at least 1 group member</string>
<string name="fragment_edit_group_bottom_sheet_remove">Remove user from group</string>
<string name="activity_select_contacts_title">Select Contacts</string>
<string name="view_reset_secure_session_done_message">Secure session reset done</string>
<string name="dialog_ui_mode_title">Theme</string>
<string name="dialog_ui_mode_option_day">Day</string>
<string name="dialog_ui_mode_option_night">Night</string>
<string name="dialog_ui_mode_option_system_default">System default</string>
<string name="activity_conversation_menu_copy_session_id">Copy Session ID</string>
<string name="attachment">Attachment</string>
<string name="attachment_type_voice_message">Voice Message</string>
<string name="details">Details</string>
<string name="dialog_backup_activation_failed">Failed to activate backups. Please try again or contact support.</string>
<string name="activity_backup_restore_title">Restore backup</string>
<string name="activity_backup_restore_select_file">Select a file</string>
<string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string>
<string name="activity_backup_restore_passphrase">30-digit passphrase</string>
<string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string>
<string name="activity_link_device_link_device">Link a Device</string>
<string name="activity_join_public_chat_join_rooms">Or join one of these…</string>
<string name="activity_pn_mode_message_notifications">Message Notifications</string>
<string name="activity_pn_mode_explanation">There are two ways Session can notify you of new messages.</string>
<string name="activity_pn_mode_fast_mode">Fast Mode</string>
<string name="activity_pn_mode_slow_mode">Slow Mode</string>
<string name="activity_pn_mode_fast_mode_explanation">Youll be notified of new messages reliably and immediately using Googles notification servers.</string>
<string name="activity_pn_mode_slow_mode_explanation">Session will occasionally check for new messages in the background.</string>
<string name="fragment_recovery_phrase_title">Recovery Phrase</string>
<string name="activity_prompt_passphrase_session_locked">Session is Locked</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Tap to Unlock</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
</resources>

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Session</string>
<string name="app_name">Sessió</string>
<string name="yes"></string>
<string name="no">No</string>
<string name="delete">Suprimeix</string>
<string name="ban">Ban</string>
<string name="ban">Bloca</string>
<string name="please_wait">Espereu, si us plau...</string>
<string name="save">Desa</string>
<string name="note_to_self">Notifica-m\'ho</string>
<string name="version_s">Version %s</string>
<string name="version_s">Versió %s</string>
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">Missatge nou</string>
<!-- AlbumThumbnailView -->
@ -48,7 +48,7 @@
<!-- ContactsCursorLoader -->
<string name="ContactsCursorLoader_groups">Grups</string>
<!-- ConversationItem -->
<string name="ConversationItem_error_not_delivered">Ha fallat l\'enviament. Toqueu per saber-ne més.</string>
<string name="ConversationItem_error_not_delivered">Ha fallat l\'enviament. Toqueu per a saber-ne més</string>
<string name="ConversationItem_received_key_exchange_message_tap_to_process">S\'ha rebut el missatge de l\'intercanvi de la clau, toqueu per a processar-lo.</string>
<string name="ConversationItem_group_action_left">%1$s ha abandonat el grup.</string>
<string name="ConversationItem_click_to_approve_unencrypted">Ha fallat l\'enviament. Toqueu per al mode no segur.</string>
@ -61,11 +61,11 @@
<string name="ConversationActivity_add_attachment">Afegeix un adjunt</string>
<string name="ConversationActivity_select_contact_info">Seleccioneu informació del contacte</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">S\'ha produït un error en afegir el fitxer adjunt.</string>
<string name="ConversationActivity_message">Message</string>
<string name="ConversationActivity_compose">Compose</string>
<string name="ConversationActivity_muted_until_date">Muted until %1$s</string>
<string name="ConversationActivity_member_count">%1$d members</string>
<string name="ConversationActivity_open_group_guidelines">Community Guidelines</string>
<string name="ConversationActivity_message">Missatge</string>
<string name="ConversationActivity_compose">Escriu</string>
<string name="ConversationActivity_muted_until_date">Silenciat fins %1$s</string>
<string name="ConversationActivity_member_count">%1$d membres</string>
<string name="ConversationActivity_open_group_guidelines">Directrius de la comunitat</string>
<string name="ConversationActivity_invalid_recipient">Destinatari no vàlid.</string>
<string name="ConversationActivity_added_to_home_screen">S\'ha afegit a la pantalla d\'inici.</string>
<string name="ConversationActivity_leave_group">Voleu abandonar el grup?</string>
@ -77,9 +77,9 @@
<string name="ConversationActivity_attachment_exceeds_size_limits">El fitxer adjunt excedeix la mida màxima per a aquest tipus de missatges.</string>
<string name="ConversationActivity_unable_to_record_audio">No s\'ha pogut enregistrar l\'àudio.</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">No hi ha cap aplicació que pugui obrir aquest enllaç.</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_invite_to_open_group">Afegeix membres</string>
<string name="ConversationActivity_join_open_group">Uneix-t\'hi %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Estàs segur que vols unir-te el grup obert <b>%s</b>?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">Per enviar missatges d\'àudio, permeteu que el Session tingui accés al micròfon.</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">El Session necessita el permís del micròfon per tal d\'enviar missatges d\'àudio, però s\'ha denegat permanentment. Si us plau, continueu cap al menú de configuració de l\'aplicació, seleccioneu Permisos i habiliteu-hi el micròfon.</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">Per captar fotografies i vídeos, permeteu que el Session tingui accés a la càmera.</string>
@ -102,7 +102,7 @@
<item quantity="one">Se suprimirà de manera permanent el missatge seleccionat.</item>
<item quantity="other">Se suprimiran de manera permanent els %1$d missatges seleccionats.</item>
</plurals>
<string name="ConversationFragment_ban_selected_user">Ban this user?</string>
<string name="ConversationFragment_ban_selected_user">Vols blocar aquest usuari?</string>
<string name="ConversationFragment_save_to_sd_card">Voleu desar-ho a l\'emmagatzematge?</string>
<plurals name="ConversationFragment_saving_n_media_to_storage_warning">
<item quantity="one">Desar aquest mitjà a emmagatzematge permetrà que qualsevol altra aplicació del dispositiu també hi pugui accedir.\n\nVoleu continuar?</item>
@ -126,8 +126,8 @@
<string name="ConversationFragment_sms">SMS</string>
<string name="ConversationFragment_deleting">Suprimint</string>
<string name="ConversationFragment_deleting_messages">Suprimint missatges...</string>
<string name="ConversationFragment_banning">Banning</string>
<string name="ConversationFragment_banning_user">Banning user</string>
<string name="ConversationFragment_banning">Blocant</string>
<string name="ConversationFragment_banning_user">Blocant usuari</string>
<string name="ConversationFragment_quoted_message_not_found">No s\'ha trobat el missatge original.</string>
<string name="ConversationFragment_quoted_message_no_longer_available">El missatge original ja no està disponible.</string>
<!-- ConversationListItem -->
@ -199,7 +199,7 @@
<string name="MessageRecord_s_updated_group">%s ha actualitzat el grup.</string>
<!-- ExpirationDialog -->
<string name="ExpirationDialog_disappearing_messages">Missatges efímers</string>
<string name="ExpirationDialog_your_messages_will_not_expire">El missatges no expiraran.</string>
<string name="ExpirationDialog_your_messages_will_not_expire">El missatges no caducaran.</string>
<string name="ExpirationDialog_your_messages_will_disappear_s_after_they_have_been_seen">Els missatges enviats i rebuts a aquesta conversa desapareixeran %s després que s\'hagin llegit.</string>
<!-- PassphrasePromptActivity -->
<string name="PassphrasePromptActivity_enter_passphrase">Introduïu la contrasenya</string>
@ -234,14 +234,14 @@ d\'intercanvi de claus!</string>
<string name="ThreadRecord_s_is_on_signal">%s és al Session!</string>
<string name="ThreadRecord_disappearing_messages_disabled">Missatges efímers inhabilitats</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">El temps del missatge efímer s\'ha establit a %s</string>
<string name="ThreadRecord_s_took_a_screenshot">%s took a screenshot.</string>
<string name="ThreadRecord_media_saved_by_s">Media saved by %s.</string>
<string name="ThreadRecord_s_took_a_screenshot">%s ha fet una captura de pantalla.</string>
<string name="ThreadRecord_media_saved_by_s">Mèdia desada per %s.</string>
<string name="ThreadRecord_safety_number_changed">El número de seguretat ha canviat</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">El número de seguretat amb %s ha canviat.</string>
<string name="ThreadRecord_you_marked_verified">Heu verificat</string>
<string name="ThreadRecord_you_marked_unverified">Heu tret la verificació</string>
<string name="ThreadRecord_empty_message">This conversation is empty</string>
<string name="ThreadRecord_open_group_invitation">Open group invitation</string>
<string name="ThreadRecord_empty_message">Aquesta conversa és buida</string>
<string name="ThreadRecord_open_group_invitation">Obre un convit de grup</string>
<!-- UpdateApkReadyListener -->
<string name="UpdateApkReadyListener_Signal_update">Actualització del Session</string>
<string name="UpdateApkReadyListener_a_new_version_of_signal_is_available_tap_to_update">Hi ha disponible una versió nova del Session. Toqueu per actualitzar-lo</string>
@ -281,7 +281,7 @@ d\'intercanvi de claus!</string>
<string name="MessageNotifier_unknown_contact_message">Contacte</string>
<!-- Notification Channels -->
<string name="NotificationChannel_messages">Per defecte</string>
<string name="NotificationChannel_calls">Trucades</string>
<string name="NotificationChannel_calls">Telefonades</string>
<string name="NotificationChannel_failures">Fallades</string>
<string name="NotificationChannel_backups">Còpies de seguretat</string>
<string name="NotificationChannel_locked_status">Estat del bloqueig</string>
@ -300,7 +300,7 @@ d\'intercanvi de claus!</string>
<!-- ShortcutLauncherActivity -->
<string name="ShortcutLauncherActivity_invalid_shortcut">Drecera no vàlida</string>
<!-- SingleRecipientNotificationBuilder -->
<string name="SingleRecipientNotificationBuilder_signal">Session</string>
<string name="SingleRecipientNotificationBuilder_signal">Sessió</string>
<string name="SingleRecipientNotificationBuilder_new_message">Missatge nou</string>
<!-- TransferControlView -->
<plurals name="TransferControlView_n_items">
@ -354,11 +354,11 @@ d\'intercanvi de claus!</string>
<string name="audio_view__pause_accessibility_description">Pausa</string>
<string name="audio_view__download_accessibility_description">Baixa</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">Join</string>
<string name="open_group_invitation_view__open_group_invitation">Open group invitation</string>
<string name="open_group_guidelines_pinned_message">Pinned message</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
<string name="open_group_guidelines_read">Read</string>
<string name="open_group_invitation_view__join_accessibility_description">Uneix-t\'hi</string>
<string name="open_group_invitation_view__open_group_invitation">Obre convit de grup</string>
<string name="open_group_guidelines_pinned_message">Missatge fixat</string>
<string name="open_group_guidelines_community_guidelines">Directrius de comunitat</string>
<string name="open_group_guidelines_read">Llegeix</string>
<!-- QuoteView -->
<string name="QuoteView_audio">Àudio</string>
<string name="QuoteView_video">Vídeo</string>
@ -466,7 +466,7 @@ d\'intercanvi de claus!</string>
<string name="preferences__if_read_receipts_are_disabled_you_wont_be_able_to_see_read_receipts">Si les confirmacions de recepció estan inhabilitades, no podreu veure les dels altres.</string>
<string name="preferences__typing_indicators">Indicadors de tecleig</string>
<string name="preferences__if_typing_indicators_are_disabled_you_wont_be_able_to_see_typing_indicators">Si els indicadors de tecleig estan inhabilitats, no podreu veure els indicadors de tecleig dels altres.</string>
<string name="preferences__request_keyboard_to_disable_personalized_learning">Demana el teclat per inhabilitar l\'aprenentatge personalitzat</string>
<string name="preferences__request_keyboard_to_disable_personalized_learning">Demana el teclat per a inhabilitar l\'aprenentatge personalitzat</string>
<string name="preferences__light_theme">Clar</string>
<string name="preferences__dark_theme">Fosc</string>
<string name="preferences_chats__message_trimming">Escapçament de missatges</string>
@ -488,7 +488,7 @@ d\'intercanvi de claus!</string>
<string name="conversation_context__menu_message_details">Detalls del missatge</string>
<string name="conversation_context__menu_copy_text">Copia el text</string>
<string name="conversation_context__menu_delete_message">Suprimeix el missatge</string>
<string name="conversation_context__menu_ban_user">Ban user</string>
<string name="conversation_context__menu_ban_user">Bloca l\'usuari</string>
<string name="conversation_context__menu_resend_message">Torna a enviar el missatge</string>
<string name="conversation_context__menu_reply_to_message">Respon el missatge</string>
<!-- conversation_context_image -->
@ -548,153 +548,153 @@ d\'intercanvi de claus!</string>
<string name="preferences_app_protection__screen_lock_inactivity_timeout">Temps d\'inactivitat per al bloqueig de pantalla</string>
<string name="AppProtectionPreferenceFragment_none">Cap</string>
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<string name="activity_conversation_copy_public_key_button_title">Copia la clau pública</string>
<!-- Session -->
<string name="continue_2">Continue</string>
<string name="copy">Copy</string>
<string name="invalid_url">Invalid URL</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="next">Next</string>
<string name="share">Share</string>
<string name="invalid_session_id">Invalid Session ID</string>
<string name="cancel">Cancel</string>
<string name="your_session_id">Your Session ID</string>
<string name="activity_landing_title_2">Your Session begins here...</string>
<string name="activity_landing_register_button_title">Create Session ID</string>
<string name="activity_landing_restore_button_title">Continue Your Session</string>
<string name="view_fake_chat_bubble_1">What\'s Session?</string>
<string name="view_fake_chat_bubble_2">It\'s a decentralized, encrypted messaging app</string>
<string name="view_fake_chat_bubble_3">So it doesn\'t collect my personal information or my conversation metadata? How does it work?</string>
<string name="view_fake_chat_bubble_4">Using a combination of advanced anonymous routing and end-to-end encryption technologies.</string>
<string name="view_fake_chat_bubble_5">Friends don\'t let friends use compromised messengers. You\'re welcome.</string>
<string name="activity_register_title">Say hello to your Session ID</string>
<string name="activity_register_explanation">Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.</string>
<string name="activity_restore_title">Restore your account</string>
<string name="activity_restore_explanation">Enter the recovery phrase that was given to you when you signed up to restore your account.</string>
<string name="activity_restore_seed_edit_text_hint">Enter your recovery phrase</string>
<string name="activity_display_name_title_2">Pick your display name</string>
<string name="activity_display_name_explanation">This will be your name when you use Session. It can be your real name, an alias, or anything else you like.</string>
<string name="activity_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_display_name_display_name_missing_error">Please pick a display name</string>
<string name="activity_display_name_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_pn_mode_recommended_option_tag">Recommended</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Please Pick an Option</string>
<string name="activity_home_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_home_empty_state_button_title">Start a Session</string>
<string name="activity_home_leave_group_dialog_message">Are you sure you want to leave this group?</string>
<string name="activity_home_leaving_group_failed_message">"Couldn't leave group"</string>
<string name="activity_home_delete_conversation_dialog_message">Are you sure you want to delete this conversation?</string>
<string name="activity_home_conversation_deleted_message">Conversation deleted</string>
<string name="activity_seed_title">Your Recovery Phrase</string>
<string name="activity_seed_title_2">Meet your recovery phrase</string>
<string name="activity_seed_explanation">Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and don\'t give it to anyone.</string>
<string name="activity_seed_reveal_button_title">Hold to reveal</string>
<string name="view_seed_reminder_title">You\'re almost finished! 80%</string>
<string name="view_seed_reminder_subtitle_1">Secure your account by saving your recovery phrase</string>
<string name="view_seed_reminder_subtitle_2">Tap and hold the redacted words to reveal your recovery phrase, then store it safely to secure your Session ID.</string>
<string name="view_seed_reminder_subtitle_3">Make sure to store your recovery phrase in a safe place</string>
<string name="activity_path_title">Path</string>
<string name="activity_path_explanation">Session hides your IP by bouncing your messages through several Service Nodes in Session\'s decentralized network. These are the countries your connection is currently being bounced through:</string>
<string name="activity_path_device_row_title">You</string>
<string name="activity_path_guard_node_row_title">Entry Node</string>
<string name="activity_path_service_node_row_title">Service Node</string>
<string name="activity_path_destination_row_title">Destination</string>
<string name="activity_path_learn_more_button_title">Learn More</string>
<string name="activity_create_private_chat_title">New Session</string>
<string name="activity_create_private_chat_enter_session_id_tab_title">Enter Session ID</string>
<string name="activity_create_private_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_create_private_chat_scan_qr_code_explanation">Scan a user\'s QR code to start a session. QR codes can be found by tapping the QR code icon in account settings.</string>
<string name="fragment_enter_public_key_edit_text_hint">Enter Session ID of recipient</string>
<string name="fragment_enter_public_key_explanation">Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code.</string>
<string name="fragment_scan_qr_code_camera_access_explanation">Session needs camera access to scan QR codes</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">Grant Camera Access</string>
<string name="activity_create_closed_group_title">New Closed Group</string>
<string name="activity_create_closed_group_edit_text_hint">Enter a group name</string>
<string name="activity_create_closed_group_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_create_closed_group_empty_state_button_title">Start a Session</string>
<string name="activity_create_closed_group_group_name_missing_error">Please enter a group name</string>
<string name="activity_create_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_create_closed_group_not_enough_group_members_error">Please pick at least 1 group member</string>
<string name="activity_create_closed_group_too_many_group_members_error">A closed group cannot have more than 100 members</string>
<string name="activity_join_public_chat_title">Join Open Group</string>
<string name="activity_join_public_chat_error">Couldn\'t join group</string>
<string name="activity_join_public_chat_enter_group_url_tab_title">Open Group URL</string>
<string name="activity_join_public_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_join_public_chat_scan_qr_code_explanation">Scan the QR code of the open group you\'d like to join</string>
<string name="fragment_enter_chat_url_edit_text_hint">Enter an open group URL</string>
<string name="activity_settings_title">Settings</string>
<string name="activity_settings_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_settings_display_name_missing_error">Please pick a display name</string>
<string name="activity_settings_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_settings_privacy_button_title">Privacy</string>
<string name="activity_settings_notifications_button_title">Notifications</string>
<string name="activity_settings_chats_button_title">Chats</string>
<string name="activity_settings_devices_button_title">Devices</string>
<string name="activity_settings_invite_button_title">Invite</string>
<string name="activity_settings_recovery_phrase_button_title">Recovery Phrase</string>
<string name="activity_settings_clear_all_data_button_title">Clear Data</string>
<string name="activity_settings_help_translate_session">Help us Translate Session</string>
<string name="activity_notification_settings_title">Notifications</string>
<string name="activity_notification_settings_style_section_title">Notification Style</string>
<string name="activity_notification_settings_content_section_title">Notification Content</string>
<string name="activity_privacy_settings_title">Privacy</string>
<string name="activity_chat_settings_title">Chats</string>
<string name="preferences_notifications_strategy_category_title">Notification Strategy</string>
<string name="fragment_device_list_bottom_sheet_change_name_button_title">Change name</string>
<string name="fragment_device_list_bottom_sheet_unlink_device_button_title">Unlink device</string>
<string name="dialog_seed_title">Your Recovery Phrase</string>
<string name="dialog_seed_explanation">This is your recovery phrase. With it, you can restore or migrate your Session ID to a new device.</string>
<string name="dialog_clear_all_data_title">Clear All Data</string>
<string name="dialog_clear_all_data_explanation">This will permanently delete your messages, sessions, and contacts.</string>
<string name="activity_qr_code_title">QR Code</string>
<string name="activity_qr_code_view_my_qr_code_tab_title">View My QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_explanation">Scan someone\'s QR code to start a conversation with them</string>
<string name="fragment_view_my_qr_code_title">Scan Me</string>
<string name="fragment_view_my_qr_code_explanation">This is your QR code. Other users can scan it to start a session with you.</string>
<string name="fragment_view_my_qr_code_share_title">Share QR Code</string>
<string name="fragment_contact_selection_contacts_title">Contacts</string>
<string name="fragment_contact_selection_closed_groups_title">Closed Groups</string>
<string name="fragment_contact_selection_open_groups_title">Open Groups</string>
<string name="fragment_contact_selection_empty_contacts">You don\'t have any contacts yet</string>
<string name="continue_2">Continua</string>
<string name="copy">Copia</string>
<string name="invalid_url">URL invàlida</string>
<string name="copied_to_clipboard">Copiat al porta-retalls</string>
<string name="next">Següent</string>
<string name="share">Comparteix</string>
<string name="invalid_session_id">ID de Session invàlid</string>
<string name="cancel">Cancel·la</string>
<string name="your_session_id">El teu ID de Session</string>
<string name="activity_landing_title_2">El teu Session comença aquí...</string>
<string name="activity_landing_register_button_title">Crea un ID de Session</string>
<string name="activity_landing_restore_button_title">Continua el teu Session</string>
<string name="view_fake_chat_bubble_1">Què és Session?</string>
<string name="view_fake_chat_bubble_2">És una app xifrada i descentralitzada</string>
<string name="view_fake_chat_bubble_3">Per tant, no agafa les meves dades personals o les metadades de les meves converses? Com funciona?</string>
<string name="view_fake_chat_bubble_4">Fent servir una combinació de tecnologies d\'encaminament anònim avançat i un xifratge d\'extrem a extrem.</string>
<string name="view_fake_chat_bubble_5">Amics no deixis que els amics facin servir missatgeries compromeses. Sigueu benvinguts.</string>
<string name="activity_register_title">Digues hola al teu ID de Session</string>
<string name="activity_register_explanation">El teu ID de Session és l\'adreça única que els usuaris poden utilitzar per a contactar-te a Session. Sense cap connexió amb la teva identitat real, el teu ID de Session ID per disseny és totalment anònim i privat.</string>
<string name="activity_restore_title">Restableix el teu compte</string>
<string name="activity_restore_explanation">Introdueix la frase de recuperació que se\'t va proporcionar quan et vas registrar per a restaurar el compte.</string>
<string name="activity_restore_seed_edit_text_hint">Introdueix la frase de recuperació</string>
<string name="activity_display_name_title_2">Tria el nom que es mostrarà</string>
<string name="activity_display_name_explanation">Aquest serà el teu nom quan facis servir Session. Pot ser el teu nom real, un àlies o qualsevol altra cosa que t\'agradi.</string>
<string name="activity_display_name_edit_text_hint">Escriu el nom a mostrar</string>
<string name="activity_display_name_display_name_missing_error">Tria un nom a mostrar, si us plau</string>
<string name="activity_display_name_display_name_too_long_error">Selecciona un nom de visualització més curt</string>
<string name="activity_pn_mode_recommended_option_tag">Recomanat</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Selecciona una opció, si us plau</string>
<string name="activity_home_empty_state_message">Encara no tens cap contacte</string>
<string name="activity_home_empty_state_button_title">Enceta un Session</string>
<string name="activity_home_leave_group_dialog_message">Segur que vols abandonar aquest grup?</string>
<string name="activity_home_leaving_group_failed_message">"No s'ha pogut marxar del grup"</string>
<string name="activity_home_delete_conversation_dialog_message">Estàs segur que vols esborrar aquesta conversa?</string>
<string name="activity_home_conversation_deleted_message">S\'ha suprimit la conversa</string>
<string name="activity_seed_title">La teva frase de recuperació</string>
<string name="activity_seed_title_2">Coneix la teva frase de recuperació</string>
<string name="activity_seed_explanation">La teva frase de recuperació és la clau principal del teu ID de Session — pots fer-la servir per a restaurar la teva ID de Session si perds l\'accés al dispositiu. Emmagatzema la frase de recuperació en un lloc segur i no la donis a ningú.</string>
<string name="activity_seed_reveal_button_title">Mantingues premut per a revelar</string>
<string name="view_seed_reminder_title">Gairebé has acabat! 80%</string>
<string name="view_seed_reminder_subtitle_1">Protegeix el teu compte desant la frase de recuperació</string>
<string name="view_seed_reminder_subtitle_2">Mantingues premudes les paraules redactades per a mostrar la teva frase de recuperació. Desa-la de manera segura per a protegir la teva ID de Session.</string>
<string name="view_seed_reminder_subtitle_3">Assegura\'t d\'emmagatzemar la frase de recuperació en un lloc segur</string>
<string name="activity_path_title">Ruta</string>
<string name="activity_path_explanation">Session amaga la teva IP rebotant els teus missatges a través de diversos nodes de servei de la xarxa descentralitzada de Session. Aquests són els països en què s\'està rebotant la teva connexió actualment:</string>
<string name="activity_path_device_row_title">Tu</string>
<string name="activity_path_guard_node_row_title">Node d\'entrada</string>
<string name="activity_path_service_node_row_title">Node de servei</string>
<string name="activity_path_destination_row_title">Destinació</string>
<string name="activity_path_learn_more_button_title">Aprèn-ne més</string>
<string name="activity_create_private_chat_title">Nova sessió</string>
<string name="activity_create_private_chat_enter_session_id_tab_title">Introdueix la teva ID de Session</string>
<string name="activity_create_private_chat_scan_qr_code_tab_title">Escaneja el codi QR</string>
<string name="activity_create_private_chat_scan_qr_code_explanation">Escaneja el codi QR dun usuari per a iniciar una sessió. Es poden trobar codis QR tocant la icona de codi QR a la configuració del compte.</string>
<string name="fragment_enter_public_key_edit_text_hint">Introdueix la ID de Session del destinatari</string>
<string name="fragment_enter_public_key_explanation">Els usuaris poden compartir el seu ID de Session accedint a la configuració del compte i tocant \'Comparteix la ID de Session\' o compartint el seu codi QR.</string>
<string name="fragment_scan_qr_code_camera_access_explanation">Session necessita accés a la càmera per escanejar codis QR</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">Permet accés a la càmera</string>
<string name="activity_create_closed_group_title">Nou grup tancat</string>
<string name="activity_create_closed_group_edit_text_hint">Introdueix un nom de grup</string>
<string name="activity_create_closed_group_empty_state_message">Encara no tens cap contacte</string>
<string name="activity_create_closed_group_empty_state_button_title">Enceta un Session</string>
<string name="activity_create_closed_group_group_name_missing_error">Entra un nom de grup, si us plau</string>
<string name="activity_create_closed_group_group_name_too_long_error">Entra un nom de grup més curt, si us plau</string>
<string name="activity_create_closed_group_not_enough_group_members_error">Com a mínim, tria 1 membre per al grup, si us plau</string>
<string name="activity_create_closed_group_too_many_group_members_error">Un grup tancat no pot tenir més de 100 membres</string>
<string name="activity_join_public_chat_title">Uneix-te a un Grup Obert</string>
<string name="activity_join_public_chat_error">No t\'has pogut unir al grup</string>
<string name="activity_join_public_chat_enter_group_url_tab_title">URL de Grup Obert</string>
<string name="activity_join_public_chat_scan_qr_code_tab_title">Escaneja el codi QR</string>
<string name="activity_join_public_chat_scan_qr_code_explanation">Escaneja el codi QR del grup obert que t\'agradaria unir-t\'hi</string>
<string name="fragment_enter_chat_url_edit_text_hint">Entra la URL d\'un grup obert</string>
<string name="activity_settings_title">Configuració</string>
<string name="activity_settings_display_name_edit_text_hint">Entre un nom a mostrar</string>
<string name="activity_settings_display_name_missing_error">Tria un nom a mostrar, si us plau</string>
<string name="activity_settings_display_name_too_long_error">Tria un nom a mostra més curt, si us plau</string>
<string name="activity_settings_privacy_button_title">Privadesa</string>
<string name="activity_settings_notifications_button_title">Notificacions</string>
<string name="activity_settings_chats_button_title">Xats</string>
<string name="activity_settings_devices_button_title">Dispositius</string>
<string name="activity_settings_invite_button_title">Convida</string>
<string name="activity_settings_recovery_phrase_button_title">Frase de recuperació</string>
<string name="activity_settings_clear_all_data_button_title">Neteja les dades</string>
<string name="activity_settings_help_translate_session">Ajuda\'ns a traduir Session</string>
<string name="activity_notification_settings_title">Notificacions</string>
<string name="activity_notification_settings_style_section_title">Estil de notificacions</string>
<string name="activity_notification_settings_content_section_title">Contingut de notificacions</string>
<string name="activity_privacy_settings_title">Privadesa</string>
<string name="activity_chat_settings_title">Xats</string>
<string name="preferences_notifications_strategy_category_title">Estratègia de les notificacions</string>
<string name="fragment_device_list_bottom_sheet_change_name_button_title">Canvia el nom</string>
<string name="fragment_device_list_bottom_sheet_unlink_device_button_title">Desenllaça el dispositiu</string>
<string name="dialog_seed_title">La teva frase de recuperació</string>
<string name="dialog_seed_explanation">Aquesta és la teva frase de recuperació. Pots restaurar-ne o migrar-ne la teva ID de Session cap a un nou dispositiu.</string>
<string name="dialog_clear_all_data_title">Esborra totes les dades</string>
<string name="dialog_clear_all_data_explanation">Això esborrarà tots els missatges, sessions i contactes permanentment.</string>
<string name="activity_qr_code_title">Codi QR</string>
<string name="activity_qr_code_view_my_qr_code_tab_title">Mostra el meu codi QR</string>
<string name="activity_qr_code_view_scan_qr_code_tab_title">Escaneja el codi QR</string>
<string name="activity_qr_code_view_scan_qr_code_explanation">Escaneja el codi QR d\'algú altre per a encetar-hi una conversa</string>
<string name="fragment_view_my_qr_code_title">Escaneja\'m</string>
<string name="fragment_view_my_qr_code_explanation">Aquest és el teu codi QR. Els altres usuaris el poden escanejar per a encetar una conversa amb tu.</string>
<string name="fragment_view_my_qr_code_share_title">Comparteix un codi QR</string>
<string name="fragment_contact_selection_contacts_title">Contactes</string>
<string name="fragment_contact_selection_closed_groups_title">Grups tancats</string>
<string name="fragment_contact_selection_open_groups_title">Grups oberts</string>
<string name="fragment_contact_selection_empty_contacts">Encara no hi tens cap contacte</string>
<!-- Next round of translation -->
<string name="menu_apply_button">Apply</string>
<string name="menu_done_button">Done</string>
<string name="activity_edit_closed_group_title">Edit Group</string>
<string name="activity_edit_closed_group_edit_text_hint">Enter a new group name</string>
<string name="activity_edit_closed_group_edit_members">Members</string>
<string name="activity_edit_closed_group_add_members">Add members</string>
<string name="activity_edit_closed_group_group_name_missing_error">Group name can\'t be empty</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Groups must have at least 1 group member</string>
<string name="fragment_edit_group_bottom_sheet_remove">Remove user from group</string>
<string name="activity_select_contacts_title">Select Contacts</string>
<string name="view_reset_secure_session_done_message">Secure session reset done</string>
<string name="dialog_ui_mode_title">Theme</string>
<string name="dialog_ui_mode_option_day">Day</string>
<string name="dialog_ui_mode_option_night">Night</string>
<string name="dialog_ui_mode_option_system_default">System default</string>
<string name="activity_conversation_menu_copy_session_id">Copy Session ID</string>
<string name="attachment">Attachment</string>
<string name="attachment_type_voice_message">Voice Message</string>
<string name="details">Details</string>
<string name="dialog_backup_activation_failed">Failed to activate backups. Please try again or contact support.</string>
<string name="activity_backup_restore_title">Restore backup</string>
<string name="activity_backup_restore_select_file">Select a file</string>
<string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string>
<string name="activity_backup_restore_passphrase">30-digit passphrase</string>
<string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string>
<string name="activity_link_device_link_device">Link a Device</string>
<string name="activity_join_public_chat_join_rooms">Or join one of these</string>
<string name="activity_pn_mode_message_notifications">Message Notifications</string>
<string name="activity_pn_mode_explanation">There are two ways Session can notify you of new messages.</string>
<string name="activity_pn_mode_fast_mode">Fast Mode</string>
<string name="activity_pn_mode_slow_mode">Slow Mode</string>
<string name="activity_pn_mode_fast_mode_explanation">Youll be notified of new messages reliably and immediately using Googles notification servers.</string>
<string name="activity_pn_mode_slow_mode_explanation">Session will occasionally check for new messages in the background.</string>
<string name="fragment_recovery_phrase_title">Recovery Phrase</string>
<string name="activity_prompt_passphrase_session_locked">Session is Locked</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Tap to Unlock</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
<string name="menu_apply_button">Aplica</string>
<string name="menu_done_button">Fet</string>
<string name="activity_edit_closed_group_title">Edita el Grup</string>
<string name="activity_edit_closed_group_edit_text_hint">Introdueix un nou nom del grup</string>
<string name="activity_edit_closed_group_edit_members">Membres</string>
<string name="activity_edit_closed_group_add_members">Afegeix membres</string>
<string name="activity_edit_closed_group_group_name_missing_error">El Nom del grup no pot ser buit</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Introdueix un nom de grup mes curt, si us plau</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Els grups han de tenir com a mínim 1 membre</string>
<string name="fragment_edit_group_bottom_sheet_remove">Elimina l\'usuari del grup</string>
<string name="activity_select_contacts_title">Selecciona contactes</string>
<string name="view_reset_secure_session_done_message">S\'ha fet el restabliment de la sessió segura</string>
<string name="dialog_ui_mode_title">Tema</string>
<string name="dialog_ui_mode_option_day">Dia</string>
<string name="dialog_ui_mode_option_night">Nit</string>
<string name="dialog_ui_mode_option_system_default">Per defecte del sistema</string>
<string name="activity_conversation_menu_copy_session_id">Copia la ID de Session</string>
<string name="attachment">Adjunt</string>
<string name="attachment_type_voice_message">Missatge de veu</string>
<string name="details">Detalls</string>
<string name="dialog_backup_activation_failed">No s\'ha pogut activar la llicència. Torneu-ho a intentar o poseu-vos en contacte amb el servei de suport.</string>
<string name="activity_backup_restore_title">Restaura la còpia de seguretat</string>
<string name="activity_backup_restore_select_file">Selecciona un fitxer</string>
<string name="activity_backup_restore_explanation_1">Selecciona un fitxer de còpia de seguretat i entra la frase de pas amb el qual va ser creat.</string>
<string name="activity_backup_restore_passphrase">Frase de pas de 30 dígits</string>
<string name="activity_link_device_skip_prompt">Això triga un xic, t\'ho vols saltar?</string>
<string name="activity_link_device_link_device">Enllaça un dispositiu</string>
<string name="activity_join_public_chat_join_rooms">O uneix-te a alguns d\'aquests</string>
<string name="activity_pn_mode_message_notifications">Notificacions de missatge</string>
<string name="activity_pn_mode_explanation">Hi ha dues maneres per les quals Session et pot notificar els missatges nous.</string>
<string name="activity_pn_mode_fast_mode">Mode ràpid</string>
<string name="activity_pn_mode_slow_mode">Mode lent</string>
<string name="activity_pn_mode_fast_mode_explanation">Es notificaran els missatges de forma immediata i fiable fent servir els servidors de notificació de Google.</string>
<string name="activity_pn_mode_slow_mode_explanation">Session ocasionalment comprovarà en pla secundari si hi ha nous missatges.</string>
<string name="fragment_recovery_phrase_title">Frase de recuperació</string>
<string name="activity_prompt_passphrase_session_locked">El Session està blocat</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Toca per a desblocar</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Introdueix una sobrenom</string>
<string name="invalid_public_key">Clau pública invàlida</string>
</resources>

View File

@ -4,7 +4,7 @@
<string name="yes">Ja</string>
<string name="no">Nej</string>
<string name="delete">Slet</string>
<string name="ban">Ban</string>
<string name="ban">Udeluk</string>
<string name="please_wait">Vent venligst...</string>
<string name="save">Gem</string>
<string name="note_to_self">Egen note</string>
@ -18,7 +18,7 @@
<item quantity="one">%d besked pr. samtale</item>
<item quantity="other">%d beskeder pr. samtale</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">Slet alle gamle beskeder?</string>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">Slet alle gamle beskeder nu?</string>
<plurals name="ApplicationPreferencesActivity_this_will_immediately_trim_all_conversations_to_the_d_most_recent_messages">
<item quantity="one">Dette vil øjeblikkeligt reducere alle samtaler til den nyeste besked.</item>
<item quantity="other">Dette vil øjeblikkeligt reducere alle samtaler til de %d nyeste beskeder</item>
@ -61,11 +61,11 @@
<string name="ConversationActivity_add_attachment">Vedhæft fil</string>
<string name="ConversationActivity_select_contact_info">Vælg kontaktinformation</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">Beklager, der opstod en fejl ved vedhæftning af fil</string>
<string name="ConversationActivity_message">Message</string>
<string name="ConversationActivity_compose">Compose</string>
<string name="ConversationActivity_muted_until_date">Muted until %1$s</string>
<string name="ConversationActivity_member_count">%1$d members</string>
<string name="ConversationActivity_open_group_guidelines">Community Guidelines</string>
<string name="ConversationActivity_message">Besked</string>
<string name="ConversationActivity_compose">Ny meddelelse</string>
<string name="ConversationActivity_muted_until_date">Lydløs indtil %1$s</string>
<string name="ConversationActivity_member_count">%1$d medlemmer</string>
<string name="ConversationActivity_open_group_guidelines">Retningslinjer For Fællesskabet</string>
<string name="ConversationActivity_invalid_recipient">Ugyldig modtager!</string>
<string name="ConversationActivity_added_to_home_screen">Føjet til startskærm</string>
<string name="ConversationActivity_leave_group">Forlad gruppe?</string>
@ -77,14 +77,14 @@
<string name="ConversationActivity_attachment_exceeds_size_limits">Vedhæftningen overskrider max. grænsen for filstørrelser, for den type af meddelelse du sender</string>
<string name="ConversationActivity_unable_to_record_audio">Fejl ved lydoptagelse!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">Der er ingen app tilgængelig på enheden, der kan åbne linket</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_invite_to_open_group">Tilføj medlemmer</string>
<string name="ConversationActivity_join_open_group">Tilmeld dig %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Er du sikker på, at du vil deltage i den åbne gruppe <b>%s</b>?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">For at sende talebeskeder skal du give Session tilladelse til at tilgå mikrofonen</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">Session kræver tilladelse til at tilgå mikrofonen for at kunne sende lydfiler, hvilket det er blevet nægtet. Gå venligst via appens menu til Indstillinger, vælg \"Tilladelser\" og tilvælg \"Mikrofon\"</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">Session kræver tilladelse til at tilgå dit kamera, for at kunne tage billeder og optage video</string>
<string name="ConversationActivity_signal_needs_the_camera_permission_to_take_photos_or_video">Session kræver tilladelse til at tilgå dit kamera, for at kunne tage billeder eller optage video, hvilket det er blevet nægtet. Gå venligst via appens menu til Indstillinger, vælg \"Tilladelser\" og tilvælg \"Kamera\"</string>
<string name="ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video">Session kræver tilladelse til at tilgå kameraet, for at tage billeder og video</string>
<string name="ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video">Session kræver tilladelse til at tilgå kameraet, for at kunne tage billeder eller videoer.</string>
<string name="ConversationActivity_quoted_contact_message">%1$s%2$s</string>
<string name="ConversationActivity_search_position">%1$d af %2$d</string>
<string name="ConversationActivity_no_results">Ingen resultater</string>
@ -102,7 +102,7 @@
<item quantity="one">Dette vil slette den valgte besked permanent.</item>
<item quantity="other">Dette sletter %1$d valgte beskeder permanent</item>
</plurals>
<string name="ConversationFragment_ban_selected_user">Ban this user?</string>
<string name="ConversationFragment_ban_selected_user">Udeluk denne bruger?</string>
<string name="ConversationFragment_save_to_sd_card">Gem i hukommelsen?</string>
<plurals name="ConversationFragment_saving_n_media_to_storage_warning">
<item quantity="one">At gemme denne fil på disk vil tillade alle andre apps at tilgå den.\n\nFortsæt?</item>
@ -126,8 +126,8 @@
<string name="ConversationFragment_sms">SMS</string>
<string name="ConversationFragment_deleting">Sletter</string>
<string name="ConversationFragment_deleting_messages">Sletter beskeder...</string>
<string name="ConversationFragment_banning">Banning</string>
<string name="ConversationFragment_banning_user">Banning user…</string>
<string name="ConversationFragment_banning">Udelukker</string>
<string name="ConversationFragment_banning_user">Udelukker bruger…</string>
<string name="ConversationFragment_quoted_message_not_found">Original besked blev ikke fundet</string>
<string name="ConversationFragment_quoted_message_no_longer_available">Original besked er ikke længere tilgængelig</string>
<!-- ConversationListItem -->
@ -140,7 +140,7 @@
<string name="CustomDefaultPreference_none">Ingen</string>
<!-- DateUtils -->
<string name="DateUtils_just_now">Nu</string>
<string name="DateUtils_minutes_ago">%d min</string>
<string name="DateUtils_minutes_ago">%d min.</string>
<string name="DateUtils_today">I dag</string>
<string name="DateUtils_yesterday">I går</string>
<!-- DeviceListItem -->
@ -234,14 +234,14 @@ udveksel besked!</string>
<string name="ThreadRecord_s_is_on_signal">%s er på Session!</string>
<string name="ThreadRecord_disappearing_messages_disabled">Beskeder med tidsudløb deaktiveret</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">Beskeder udløber efter %s</string>
<string name="ThreadRecord_s_took_a_screenshot">%s took a screenshot.</string>
<string name="ThreadRecord_s_took_a_screenshot">%s tog et screenshot.</string>
<string name="ThreadRecord_media_saved_by_s">Media saved by %s.</string>
<string name="ThreadRecord_safety_number_changed">Sikkerhedsnummer ændret</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">Dit sikkerhedsnummer med %s er ændret</string>
<string name="ThreadRecord_you_marked_verified">Markerét som verificeret</string>
<string name="ThreadRecord_you_marked_unverified">Markerét som ubekræftet</string>
<string name="ThreadRecord_empty_message">This conversation is empty</string>
<string name="ThreadRecord_open_group_invitation">Open group invitation</string>
<string name="ThreadRecord_empty_message">Denne samtale er tom</string>
<string name="ThreadRecord_open_group_invitation">Åben gruppe invitation</string>
<!-- UpdateApkReadyListener -->
<string name="UpdateApkReadyListener_Signal_update">Session opdatering</string>
<string name="UpdateApkReadyListener_a_new_version_of_signal_is_available_tap_to_update">En ny version af Session er tilgængelig, tap for at opdatere</string>
@ -283,7 +283,7 @@ udveksel besked!</string>
<string name="NotificationChannel_messages">Standard</string>
<string name="NotificationChannel_calls">Opkald</string>
<string name="NotificationChannel_failures">Registrerede fejl</string>
<string name="NotificationChannel_backups">Backups</string>
<string name="NotificationChannel_backups">Sikkerhedskopier</string>
<string name="NotificationChannel_locked_status">Låse status</string>
<string name="NotificationChannel_app_updates">App opdateringer</string>
<string name="NotificationChannel_other">Andet</string>
@ -352,11 +352,11 @@ udveksel besked!</string>
<!-- audio_view -->
<string name="audio_view__play_accessibility_description">Spil</string>
<string name="audio_view__pause_accessibility_description">Pause</string>
<string name="audio_view__download_accessibility_description">Download</string>
<string name="audio_view__download_accessibility_description">Hent</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">Join</string>
<string name="open_group_invitation_view__open_group_invitation">Open group invitation</string>
<string name="open_group_guidelines_pinned_message">Pinned message</string>
<string name="open_group_invitation_view__join_accessibility_description">Deltag</string>
<string name="open_group_invitation_view__open_group_invitation">Åben gruppe invitation</string>
<string name="open_group_guidelines_pinned_message">Fastgjort besked</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
<string name="open_group_guidelines_read">Read</string>
<!-- QuoteView -->
@ -448,7 +448,7 @@ udveksel besked!</string>
<string name="preferences__red">Rød</string>
<string name="preferences__blue">Blå</string>
<string name="preferences__orange">Orange</string>
<string name="preferences__cyan">Cyan</string>
<string name="preferences__cyan">Turkis</string>
<string name="preferences__magenta">Magenta</string>
<string name="preferences__white">Hvid</string>
<string name="preferences__none">Ingen</string>
@ -488,7 +488,7 @@ udveksel besked!</string>
<string name="conversation_context__menu_message_details">Besked detaljer</string>
<string name="conversation_context__menu_copy_text">Kopiér tekst</string>
<string name="conversation_context__menu_delete_message">Slet besked</string>
<string name="conversation_context__menu_ban_user">Ban user</string>
<string name="conversation_context__menu_ban_user">Udeluk bruger</string>
<string name="conversation_context__menu_resend_message">Send besked igen</string>
<string name="conversation_context__menu_reply_to_message">Svar på besked</string>
<!-- conversation_context_image -->
@ -548,28 +548,28 @@ udveksel besked!</string>
<string name="preferences_app_protection__screen_lock_inactivity_timeout">Timeout for inaktiv skærmlås</string>
<string name="AppProtectionPreferenceFragment_none">Ingen</string>
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<string name="activity_conversation_copy_public_key_button_title">Kopiér offentlig nøgle</string>
<!-- Session -->
<string name="continue_2">Continue</string>
<string name="copy">Copy</string>
<string name="invalid_url">Invalid URL</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="next">Next</string>
<string name="share">Share</string>
<string name="invalid_session_id">Invalid Session ID</string>
<string name="cancel">Cancel</string>
<string name="your_session_id">Your Session ID</string>
<string name="continue_2">Fortsæt</string>
<string name="copy">Kopiér</string>
<string name="invalid_url">Ugyldig Webadresse</string>
<string name="copied_to_clipboard">Kopieret til udklipsholder</string>
<string name="next">Næste</string>
<string name="share">Del</string>
<string name="invalid_session_id">Ugyltigt Sessions-ID</string>
<string name="cancel">Annuller</string>
<string name="your_session_id">Dit Sessions-ID</string>
<string name="activity_landing_title_2">Your Session begins here...</string>
<string name="activity_landing_register_button_title">Create Session ID</string>
<string name="activity_landing_register_button_title">Opret Session-ID</string>
<string name="activity_landing_restore_button_title">Continue Your Session</string>
<string name="view_fake_chat_bubble_1">What\'s Session?</string>
<string name="view_fake_chat_bubble_2">It\'s a decentralized, encrypted messaging app</string>
<string name="view_fake_chat_bubble_3">So it doesn\'t collect my personal information or my conversation metadata? How does it work?</string>
<string name="view_fake_chat_bubble_4">Using a combination of advanced anonymous routing and end-to-end encryption technologies.</string>
<string name="view_fake_chat_bubble_5">Friends don\'t let friends use compromised messengers. You\'re welcome.</string>
<string name="activity_register_title">Say hello to your Session ID</string>
<string name="view_fake_chat_bubble_1">Hvad er Session?</string>
<string name="view_fake_chat_bubble_2">Det er en decentraliseret, krypteret besked app</string>
<string name="view_fake_chat_bubble_3">Så den indsamler ikke mine personlige oplysninger eller min samtale metadata? Hvordan virker det?</string>
<string name="view_fake_chat_bubble_4">Ved hjælp af en kombination af avanceret anonym routing og end-to-end krypteringsteknologier.</string>
<string name="view_fake_chat_bubble_5">Venner lader ikke venner bruge usikre besked tjenester. Du er velkommen.</string>
<string name="activity_register_title">Sig hej til dit sessions-ID</string>
<string name="activity_register_explanation">Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.</string>
<string name="activity_restore_title">Restore your account</string>
<string name="activity_restore_title">Gendan din konto</string>
<string name="activity_restore_explanation">Enter the recovery phrase that was given to you when you signed up to restore your account.</string>
<string name="activity_restore_seed_edit_text_hint">Enter your recovery phrase</string>
<string name="activity_display_name_title_2">Pick your display name</string>

View File

@ -301,7 +301,7 @@
<!-- ShortcutLauncherActivity -->
<string name="ShortcutLauncherActivity_invalid_shortcut">Μη έγκυρη συντόμευση</string>
<!-- SingleRecipientNotificationBuilder -->
<string name="SingleRecipientNotificationBuilder_signal">Συνεδρία</string>
<string name="SingleRecipientNotificationBuilder_signal">Session</string>
<string name="SingleRecipientNotificationBuilder_new_message">Νέο μήνυμα</string>
<!-- TransferControlView -->
<plurals name="TransferControlView_n_items">
@ -553,7 +553,7 @@
<!-- Session -->
<string name="continue_2">Συνέχεια</string>
<string name="copy">Αντιγραφή</string>
<string name="invalid_url">Μη έγκυρη διεύθυνση URL</string>
<string name="invalid_url">Μη έγκυρη διεύθυνση</string>
<string name="copied_to_clipboard">Αντιγράφηκε στο πρόχειρο</string>
<string name="next">Επόμενο</string>
<string name="share">Διαμοιρασμός</string>
@ -634,7 +634,7 @@
<string name="activity_settings_invite_button_title">Πρόσκληση</string>
<string name="activity_settings_recovery_phrase_button_title">Φράση Ανάκτησης</string>
<string name="activity_settings_clear_all_data_button_title">Εκκαθάριση Δεδομένων</string>
<string name="activity_settings_help_translate_session">Βοηθήστε μας να μεταφράσουμε τη συνεδρία</string>
<string name="activity_settings_help_translate_session">Βοηθήστε μας να μεταφράσουμε τo Session</string>
<string name="activity_notification_settings_title">Ειδοποιήσεις</string>
<string name="activity_notification_settings_style_section_title">Στυλ ειδοποιήσεων</string>
<string name="activity_notification_settings_content_section_title">Περιεχόμενο Ειδοποιήσεων</string>
@ -696,6 +696,6 @@
<string name="fragment_recovery_phrase_title">Φράση Ανάκτησης</string>
<string name="activity_prompt_passphrase_session_locked">Το Session είναι κλειδωμένο</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Πατήστε για ξεκλείδωμα</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Εισαγωγή ψευδώνυμου</string>
<string name="invalid_public_key">Μη έγκυρο δημόσιο κλειδί</string>
</resources>

View File

@ -4,11 +4,11 @@
<string name="yes"></string>
<string name="no">No</string>
<string name="delete">Eliminar</string>
<string name="ban">Ban</string>
<string name="ban">Banear</string>
<string name="please_wait">Por favor, espera ...</string>
<string name="save">Guardar</string>
<string name="note_to_self">Notas personales</string>
<string name="version_s">Version %s</string>
<string name="version_s">Versión %s</string>
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">Nuevo mensaje</string>
<!-- AlbumThumbnailView -->
@ -37,7 +37,7 @@
<string name="AttachmentManager_signal_requires_contacts_permission_in_order_to_attach_contact_information">Session necesita acceso a los contactos en tu teléfono para adjuntar información de contactos en tus chats. Por favor, ve al menú de configuración de la aplicación, selecciona «Permisos» y activa «Contactos».</string>
<string name="AttachmentManager_signal_requires_the_camera_permission_in_order_to_take_photos_but_it_has_been_permanently_denied">Session necesita acceso a la cámara para tomar fotos y verificar las cifras de seguridad de tus chats. Por favor, ve al menú de configuración de la aplicación, selecciona «Permisos» y activa «Cámara».</string>
<!-- AudioSlidePlayer -->
<string name="AudioSlidePlayer_error_playing_audio">¡Fallo al reproducir sonido!</string>
<string name="AudioSlidePlayer_error_playing_audio">¡Fallo al reproducir el audio!</string>
<!-- BucketedThreadMedia -->
<string name="BucketedThreadMedia_Today">Hoy</string>
<string name="BucketedThreadMedia_Yesterday">Ayer</string>
@ -61,11 +61,11 @@
<string name="ConversationActivity_add_attachment">Añadir archivo adjunto</string>
<string name="ConversationActivity_select_contact_info">Seleccionar información de contacto</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">Lo sentimos, ha habido un fallo al adjuntar el archivo.</string>
<string name="ConversationActivity_message">Message</string>
<string name="ConversationActivity_compose">Compose</string>
<string name="ConversationActivity_muted_until_date">Muted until %1$s</string>
<string name="ConversationActivity_member_count">%1$d members</string>
<string name="ConversationActivity_open_group_guidelines">Community Guidelines</string>
<string name="ConversationActivity_message">Mensaje</string>
<string name="ConversationActivity_compose">Escribir</string>
<string name="ConversationActivity_muted_until_date">Silenciado hasta %1$s</string>
<string name="ConversationActivity_member_count">%1$d miembros</string>
<string name="ConversationActivity_open_group_guidelines">Normas de la Comunidad</string>
<string name="ConversationActivity_invalid_recipient">¡Destinatario inválido!</string>
<string name="ConversationActivity_added_to_home_screen">Añadido a la pantalla de inicio</string>
<string name="ConversationActivity_leave_group">¿Abandonar grupo?</string>
@ -77,9 +77,9 @@
<string name="ConversationActivity_attachment_exceeds_size_limits">El adjunto excede los límites de tamaño para el mensaje.</string>
<string name="ConversationActivity_unable_to_record_audio">¡No se ha podido grabar la nota de voz!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">No hay ninguna aplicación disponible para abrir este enlace.</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_invite_to_open_group">Añadir miembros</string>
<string name="ConversationActivity_join_open_group">Unirse a %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">¿Estás seguro de que quieres unirte al grupo abierto <b>%s</b>?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">Para enviar notas de voz y hacer llamadas, permite a Session acceder al micrófono.</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">Session necesita acceso al micrófono para enviar notas de voz. Por favor, ve al menú de configuración de la aplicación, selecciona «Permisos» y activa «Micrófono».</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">Para hacer fotos y vídeos, permite el acceso de Session a la cámara.</string>
@ -102,7 +102,7 @@
<item quantity="one">Esto eliminará de forma permanente el mensaje seleccionado.</item>
<item quantity="other">Esto eliminará de forma permanente los %1$d mensajes seleccionados.</item>
</plurals>
<string name="ConversationFragment_ban_selected_user">Ban this user?</string>
<string name="ConversationFragment_ban_selected_user">¿Banear a este usuario?</string>
<string name="ConversationFragment_save_to_sd_card">¿Guardar en el almacenamiento?</string>
<plurals name="ConversationFragment_saving_n_media_to_storage_warning">
<item quantity="one">Guardar este archivo multimedia en el almacenamiento del teléfono permitirá que cualquier otra aplicación en tu dispositivo acceda a él.\n\n¿Continuar?</item>
@ -126,8 +126,8 @@
<string name="ConversationFragment_sms">SMS</string>
<string name="ConversationFragment_deleting">Eliminar</string>
<string name="ConversationFragment_deleting_messages">Eliminando mensajes ...</string>
<string name="ConversationFragment_banning">Banning</string>
<string name="ConversationFragment_banning_user">Banning user</string>
<string name="ConversationFragment_banning">Baneando</string>
<string name="ConversationFragment_banning_user">Baneando usuario</string>
<string name="ConversationFragment_quoted_message_not_found">No se encuentra el mensaje original </string>
<string name="ConversationFragment_quoted_message_no_longer_available">El mensaje original ya no está disponible</string>
<!-- ConversationListItem -->
@ -234,14 +234,14 @@ de intercambio de claves!</string>
<string name="ThreadRecord_s_is_on_signal">¡%s usa Session!</string>
<string name="ThreadRecord_disappearing_messages_disabled">Desaparición de mensajes desactivada.</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">El tiempo de desaparición de mensajes se ha fijado en %s</string>
<string name="ThreadRecord_s_took_a_screenshot">%s took a screenshot.</string>
<string name="ThreadRecord_media_saved_by_s">Media saved by %s.</string>
<string name="ThreadRecord_s_took_a_screenshot">%s hizo una captura de pantalla.</string>
<string name="ThreadRecord_media_saved_by_s">Medios guardados por %s.</string>
<string name="ThreadRecord_safety_number_changed">Las cifras de seguridad han cambiado</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">Tus cifras de seguridad con %s han cambiado.</string>
<string name="ThreadRecord_you_marked_verified">Marcado como verificado</string>
<string name="ThreadRecord_you_marked_unverified">Marca de verificación retirada</string>
<string name="ThreadRecord_empty_message">This conversation is empty</string>
<string name="ThreadRecord_open_group_invitation">Open group invitation</string>
<string name="ThreadRecord_empty_message">Esta conversación está vacía</string>
<string name="ThreadRecord_open_group_invitation">Abrir invitación del grupo</string>
<!-- UpdateApkReadyListener -->
<string name="UpdateApkReadyListener_Signal_update">Actualizar Session</string>
<string name="UpdateApkReadyListener_a_new_version_of_signal_is_available_tap_to_update">Una nueva versión de Session está disponible. Toca para actualizar.</string>
@ -354,11 +354,11 @@ de intercambio de claves!</string>
<string name="audio_view__pause_accessibility_description">Pausa</string>
<string name="audio_view__download_accessibility_description">Descargar</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">Join</string>
<string name="open_group_invitation_view__open_group_invitation">Open group invitation</string>
<string name="open_group_guidelines_pinned_message">Pinned message</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
<string name="open_group_guidelines_read">Read</string>
<string name="open_group_invitation_view__join_accessibility_description">Unirse</string>
<string name="open_group_invitation_view__open_group_invitation">Abrir invitación del grupo</string>
<string name="open_group_guidelines_pinned_message">Mensaje fijado</string>
<string name="open_group_guidelines_community_guidelines">Normas de la comunidad</string>
<string name="open_group_guidelines_read">Leer</string>
<!-- QuoteView -->
<string name="QuoteView_audio">Audio</string>
<string name="QuoteView_video">Vídeo</string>
@ -488,7 +488,7 @@ de intercambio de claves!</string>
<string name="conversation_context__menu_message_details">Detalles del mensaje</string>
<string name="conversation_context__menu_copy_text">Copiar texto</string>
<string name="conversation_context__menu_delete_message">Eliminar mensaje</string>
<string name="conversation_context__menu_ban_user">Ban user</string>
<string name="conversation_context__menu_ban_user">Banear usuario</string>
<string name="conversation_context__menu_resend_message">Reenviar mensaje</string>
<string name="conversation_context__menu_reply_to_message">Responder al mensaje</string>
<!-- conversation_context_image -->
@ -548,7 +548,7 @@ de intercambio de claves!</string>
<string name="preferences_app_protection__screen_lock_inactivity_timeout">Tiempo de inactividad para el bloqueo de pantalla</string>
<string name="AppProtectionPreferenceFragment_none">Ninguno</string>
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<string name="activity_conversation_copy_public_key_button_title">Copiar clave pública</string>
<!-- Session -->
<string name="continue_2">Continuar</string>
<string name="copy">Copiar</string>
@ -589,15 +589,15 @@ de intercambio de claves!</string>
<string name="activity_seed_title_2">Guarda tu frase de recuperación</string>
<string name="activity_seed_explanation">Tu frase de recuperación es la llave maestra de tu ID de Session, puedes usarla para recuperar tu ID de Session en caso de pérdida de acceso a tu dispositivo. Guarda tu frase de recuperación en un lugar seguro y no se la digas a nadie.</string>
<string name="activity_seed_reveal_button_title">Mantén pulsado para revelar</string>
<string name="view_seed_reminder_title">You\'re almost finished! 80%</string>
<string name="view_seed_reminder_title">¡Ya casi has terminado! 80%</string>
<string name="view_seed_reminder_subtitle_1">Protege tu cuenta guardando tu frase de recuperación</string>
<string name="view_seed_reminder_subtitle_2">Toca y mantén presionadas las palabras redactadas para revelar tu frase de recuperación, después guárdala de manera segura para proteger tu ID de Session.</string>
<string name="view_seed_reminder_subtitle_3">Asegúrate de guardar tu frase de recuperación en un lugar seguro</string>
<string name="activity_path_title">Ruta</string>
<string name="activity_path_explanation">Session oculta tu dirección IP haciendo rebotar tus mensajes a través de los Nodos de servicio de la red descentralizada de Session. Estos son los países por los que tu conexión está siendo rebotada actualmente.</string>
<string name="activity_path_device_row_title"></string>
<string name="activity_path_guard_node_row_title">Entry Node</string>
<string name="activity_path_service_node_row_title">Service Node</string>
<string name="activity_path_guard_node_row_title">Nodo de Entrada</string>
<string name="activity_path_service_node_row_title">Nodo de Servicio</string>
<string name="activity_path_destination_row_title">Destino</string>
<string name="activity_path_learn_more_button_title">Saber Más</string>
<string name="activity_create_private_chat_title">Nueva Session</string>
@ -614,8 +614,8 @@ de intercambio de claves!</string>
<string name="activity_create_closed_group_empty_state_button_title">Empezar una Session</string>
<string name="activity_create_closed_group_group_name_missing_error">Por favor, ingresa un nombre de grupo</string>
<string name="activity_create_closed_group_group_name_too_long_error">Por favor, ingresa un nombre de grupo más corto</string>
<string name="activity_create_closed_group_not_enough_group_members_error">Please pick at least 1 group member</string>
<string name="activity_create_closed_group_too_many_group_members_error">A closed group cannot have more than 100 members</string>
<string name="activity_create_closed_group_not_enough_group_members_error">Por favor, elige al menos 1 miembro del grupo</string>
<string name="activity_create_closed_group_too_many_group_members_error">Un grupo cerrado no puede tener más de 100 miembros</string>
<string name="activity_join_public_chat_title">Únete al grupo abierto</string>
<string name="activity_join_public_chat_error">No te pudiste unir al grupo</string>
<string name="activity_join_public_chat_enter_group_url_tab_title">URL de grupo abierto</string>
@ -630,10 +630,10 @@ de intercambio de claves!</string>
<string name="activity_settings_notifications_button_title">Notificaciones</string>
<string name="activity_settings_chats_button_title">Chats</string>
<string name="activity_settings_devices_button_title">Dispositivos</string>
<string name="activity_settings_invite_button_title">Invite</string>
<string name="activity_settings_invite_button_title">Invitar</string>
<string name="activity_settings_recovery_phrase_button_title">Frase de recuperación</string>
<string name="activity_settings_clear_all_data_button_title">Borrar datos</string>
<string name="activity_settings_help_translate_session">Help us Translate Session</string>
<string name="activity_settings_help_translate_session">Ayúdanos a traducir Session</string>
<string name="activity_notification_settings_title">Notificaciones</string>
<string name="activity_notification_settings_style_section_title">Estilo de Notificación</string>
<string name="activity_notification_settings_content_section_title">Contenido de Notificación</string>
@ -650,51 +650,51 @@ de intercambio de claves!</string>
<string name="activity_qr_code_view_my_qr_code_tab_title">Ver mi código QR</string>
<string name="activity_qr_code_view_scan_qr_code_tab_title">Escanear código QR</string>
<string name="activity_qr_code_view_scan_qr_code_explanation">Escanea el código QR de una persona para comenzar una conversación con ella</string>
<string name="fragment_view_my_qr_code_title">Scan Me</string>
<string name="fragment_view_my_qr_code_title">Escanéame</string>
<string name="fragment_view_my_qr_code_explanation">Este es tu código QR. Otros usuarios pueden escanearlo para empezar una sesión contigo.</string>
<string name="fragment_view_my_qr_code_share_title">Compartir código QR</string>
<string name="fragment_contact_selection_contacts_title">Contactos</string>
<string name="fragment_contact_selection_closed_groups_title">Grupos cerrados</string>
<string name="fragment_contact_selection_open_groups_title">Grupos abiertos</string>
<string name="fragment_contact_selection_empty_contacts">You don\'t have any contacts yet</string>
<string name="fragment_contact_selection_empty_contacts">Aún no tienes contactos</string>
<!-- Next round of translation -->
<string name="menu_apply_button">Apply</string>
<string name="menu_done_button">Done</string>
<string name="activity_edit_closed_group_title">Edit Group</string>
<string name="activity_edit_closed_group_edit_text_hint">Enter a new group name</string>
<string name="activity_edit_closed_group_edit_members">Members</string>
<string name="activity_edit_closed_group_add_members">Add members</string>
<string name="activity_edit_closed_group_group_name_missing_error">Group name can\'t be empty</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Groups must have at least 1 group member</string>
<string name="fragment_edit_group_bottom_sheet_remove">Remove user from group</string>
<string name="activity_select_contacts_title">Select Contacts</string>
<string name="view_reset_secure_session_done_message">Secure session reset done</string>
<string name="dialog_ui_mode_title">Theme</string>
<string name="dialog_ui_mode_option_day">Day</string>
<string name="dialog_ui_mode_option_night">Night</string>
<string name="dialog_ui_mode_option_system_default">System default</string>
<string name="activity_conversation_menu_copy_session_id">Copy Session ID</string>
<string name="attachment">Attachment</string>
<string name="attachment_type_voice_message">Voice Message</string>
<string name="details">Details</string>
<string name="dialog_backup_activation_failed">Failed to activate backups. Please try again or contact support.</string>
<string name="activity_backup_restore_title">Restore backup</string>
<string name="activity_backup_restore_select_file">Select a file</string>
<string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string>
<string name="activity_backup_restore_passphrase">30-digit passphrase</string>
<string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string>
<string name="activity_link_device_link_device">Link a Device</string>
<string name="activity_join_public_chat_join_rooms">Or join one of these</string>
<string name="activity_pn_mode_message_notifications">Message Notifications</string>
<string name="activity_pn_mode_explanation">There are two ways Session can notify you of new messages.</string>
<string name="activity_pn_mode_fast_mode">Fast Mode</string>
<string name="activity_pn_mode_slow_mode">Slow Mode</string>
<string name="activity_pn_mode_fast_mode_explanation">Youll be notified of new messages reliably and immediately using Googles notification servers.</string>
<string name="activity_pn_mode_slow_mode_explanation">Session will occasionally check for new messages in the background.</string>
<string name="fragment_recovery_phrase_title">Recovery Phrase</string>
<string name="activity_prompt_passphrase_session_locked">Session is Locked</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Tap to Unlock</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
<string name="menu_apply_button">Aplicar</string>
<string name="menu_done_button">Hecho</string>
<string name="activity_edit_closed_group_title">Editar grupo</string>
<string name="activity_edit_closed_group_edit_text_hint">Ingresa el nombre del nuevo grupo</string>
<string name="activity_edit_closed_group_edit_members">Miembros</string>
<string name="activity_edit_closed_group_add_members">Añadir miembros</string>
<string name="activity_edit_closed_group_group_name_missing_error">El nombre del grupo no puede estar vacío</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Por favor, ingresa un nombre de grupo más corto</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Los grupos deben tener al menos 1 miembro</string>
<string name="fragment_edit_group_bottom_sheet_remove">Eliminar usuario del grupo</string>
<string name="activity_select_contacts_title">Elegir contactos</string>
<string name="view_reset_secure_session_done_message">Reinicio seguro de sesión hecho</string>
<string name="dialog_ui_mode_title">Tema</string>
<string name="dialog_ui_mode_option_day">Día</string>
<string name="dialog_ui_mode_option_night">Noche</string>
<string name="dialog_ui_mode_option_system_default">Predeterminado del sistema</string>
<string name="activity_conversation_menu_copy_session_id">Copiar ID de Session</string>
<string name="attachment">Adjunto</string>
<string name="attachment_type_voice_message">Mensaje de voz</string>
<string name="details">Detalles</string>
<string name="dialog_backup_activation_failed">Error al activar las copias de seguridad. Por favor, inténtalo de nuevo o contacta con el soporte.</string>
<string name="activity_backup_restore_title">Restaurar copia de seguridad</string>
<string name="activity_backup_restore_select_file">Seleccionar archivo</string>
<string name="activity_backup_restore_explanation_1">Seleccione un archivo de copia de seguridad e introduzca la clave de acceso con la que fue creada.</string>
<string name="activity_backup_restore_passphrase">Clave de acceso de 30 dígitos</string>
<string name="activity_link_device_skip_prompt">Esto está tomando un tiempo, ¿te gustaría saltarlo?</string>
<string name="activity_link_device_link_device">Vincular un Dispositivo</string>
<string name="activity_join_public_chat_join_rooms">O únete a uno de estos</string>
<string name="activity_pn_mode_message_notifications">Notificaciones de Mensajes</string>
<string name="activity_pn_mode_explanation">Hay dos maneras en las que Session puede notificarle de nuevos mensajes.</string>
<string name="activity_pn_mode_fast_mode">Modo Rápido</string>
<string name="activity_pn_mode_slow_mode">Modo Lento</string>
<string name="activity_pn_mode_fast_mode_explanation">Se le notificará de los nuevos mensajes de forma fiable e inmediata usando los servidores de notificaciones de Google.</string>
<string name="activity_pn_mode_slow_mode_explanation">Session comprobará ocasionalmente si hay nuevos mensajes en segundo plano.</string>
<string name="fragment_recovery_phrase_title">Frase de recuperación</string>
<string name="activity_prompt_passphrase_session_locked">Session está Bloqueado</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Toca para Desbloquear</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Escriba un apodo</string>
<string name="invalid_public_key">Clave pública no válida</string>
</resources>

View File

@ -1,34 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Session</string>
<string name="app_name">نشست</string>
<string name="yes">بله</string>
<string name="no">خیر</string>
<string name="delete">حذف</string>
<string name="ban">Ban</string>
<string name="please_wait">لطفاً صبر کنید...</string>
<string name="ban">مسدود</string>
<string name="please_wait">لطفاً شکیبا باشید...</string>
<string name="save">ذخیره</string>
<string name="note_to_self">یادداشت به خود</string>
<string name="version_s">Version %s</string>
<string name="version_s">نگارش %s</string>
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">پیام جدید</string>
<!-- AlbumThumbnailView -->
<string name="AlbumThumbnailView_plus">\+%d</string>
<string name="AlbumThumbnailView_plus">%d+\</string>
<!-- ApplicationPreferencesActivity -->
<plurals name="ApplicationPreferencesActivity_messages_per_conversation">
<item quantity="one">%d پیام در هر گفتگو</item>
<item quantity="other">%d پیام در هر گفتگو</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">همه ی پیام‌های قدیمی حذف شوند؟</string>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">همهی پیام‌های قدیمی حذف شوند؟</string>
<plurals name="ApplicationPreferencesActivity_this_will_immediately_trim_all_conversations_to_the_d_most_recent_messages">
<item quantity="one">این گزینه ، بلافاصله تمامی مکالمات شما را به %d پیام آخر ، کاهش خواهد داد.</item>
<item quantity="other">این گزینه ، بلافاصله تمامی مکالمات شما را به %d پیام آخر ، کاهش خواهد داد.</item>
<item quantity="other">این گزینه فورا تمامی مکالمات شما را به %d پیام آخر کاهش خواهد داد.</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete">حذف</string>
<string name="ApplicationPreferencesActivity_On">روشن</string>
<string name="ApplicationPreferencesActivity_Off">خاموش</string>
<string name="ApplicationPreferencesActivity_On">فعال</string>
<string name="ApplicationPreferencesActivity_Off">غیرفعال</string>
<!-- DraftDatabase -->
<string name="DraftDatabase_Draft_image_snippet">(تصویر)</string>
<string name="DraftDatabase_Draft_audio_snippet">وتی)</string>
<string name="DraftDatabase_Draft_audio_snippet">دا)</string>
<string name="DraftDatabase_Draft_video_snippet">(ویدئو)</string>
<string name="DraftDatabase_Draft_quote_snippet">(پاسخ)</string>
<!-- AttchmentManager -->
@ -61,32 +61,32 @@
<string name="ConversationActivity_add_attachment">پیوست فایل</string>
<string name="ConversationActivity_select_contact_info">انتخاب اطلاعات تماس</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">متأسفم، در تنظیم فایل پیوست شما خطا وجود دارد.</string>
<string name="ConversationActivity_message">Message</string>
<string name="ConversationActivity_compose">Compose</string>
<string name="ConversationActivity_muted_until_date">Muted until %1$s</string>
<string name="ConversationActivity_member_count">%1$d members</string>
<string name="ConversationActivity_open_group_guidelines">Community Guidelines</string>
<string name="ConversationActivity_message">پیام</string>
<string name="ConversationActivity_compose">نوشتن</string>
<string name="ConversationActivity_muted_until_date">بی صدا تا %1$s</string>
<string name="ConversationActivity_member_count">%1$d عضو</string>
<string name="ConversationActivity_open_group_guidelines">راهنمای انجمن</string>
<string name="ConversationActivity_invalid_recipient">گیرنده نامعتبر است!</string>
<string name="ConversationActivity_added_to_home_screen">اضافه شده به صفحه اصلی</string>
<string name="ConversationActivity_added_to_home_screen">به صفحه اصلی اضافه شد</string>
<string name="ConversationActivity_leave_group">ترک گروه؟</string>
<string name="ConversationActivity_are_you_sure_you_want_to_leave_this_group">آیا شما مطمئن هستید که میخواهید این گروه را ترک کنید؟</string>
<string name="ConversationActivity_are_you_sure_you_want_to_leave_this_group">آیا مطمئن هستید که میخواهید این گروه را ترک کنید؟</string>
<string name="ConversationActivity_error_leaving_group">خطا در ترک کردن گروه</string>
<string name="ConversationActivity_unblock_this_contact_question">رفع انسداد این مخاطب؟</string>
<string name="ConversationActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">دریافت پیام و تماس از این مخاطب مجددا برای شما فعال شده است.</string>
<string name="ConversationActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">دریافت پیام و تماس از این مخاطب دوباره برای شما فعال خواهد شد.</string>
<string name="ConversationActivity_unblock">رفع انسداد</string>
<string name="ConversationActivity_attachment_exceeds_size_limits">حجم فایل پیوست شده بیشتر از اندازه مجاز تعیین شده برای این نوع پیام است.</string>
<string name="ConversationActivity_unable_to_record_audio">قادر به ضبط صدا نیست!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">هیچ برنامه ای به منظور پشتیبانی از لینک برروی دستگاه شما وجود ندارد.</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_attachment_exceeds_size_limits">اندازه‌ی پیوست بیشتر از حد این نوع پیام ارسالی است.</string>
<string name="ConversationActivity_unable_to_record_audio">عدم توانایی ضبط صدا!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">هیچ برنامه ای برای اجرای این لینک روی دستگاه شما در دسترس نیست.</string>
<string name="ConversationActivity_invite_to_open_group">افزودن اعضا</string>
<string name="ConversationActivity_join_open_group">پیوستن به %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">آیا اطمینان دارید که می‌خواهید به گروه باز <b>%s</b> بپیوندید؟</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">برای ارسال صدا، به Session اجازه دهید به میکروفن شما دسترسی پیدا کند.</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">Session برای ارسال صدا، نیازمند دسترسی به میکروفن دارد ولی این دسترسی قطع شده است. لطفا برای ادامه دادن، به بخش منوی تنظیمات برنامه رفته، \"اجازه ها\" را انتخاب کرده و گزینه ی \"میکروفن\" را فعال نمایید.</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">برای گرفتن تصاویر و ویدیو، به Session اجازه دسترسی دوربین را بدهید.</string>
<string name="ConversationActivity_signal_needs_the_camera_permission_to_take_photos_or_video">Session برای گرفتن عکس و فیلم، نیازمند دسترسی به دوربین دارد ولی این دسترسی برای همیشه قطع شده است. لطفا برای ادامه دادن، به بخش منوی تنظیمات برنامه رفته، \"اجازه ها\" را انتخاب کرده و گزینه ی \"دوربین\" را فعال نمایید.</string>
<string name="ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video">Session برای عکس گرفتن یا ضبط ویدیو نیاز به دسترسی به دوربین دارد</string>
<string name="ConversationActivity_quoted_contact_message">%1$s %2$s</string>
<string name="ConversationActivity_search_position">%1$d of %2$d</string>
<string name="ConversationActivity_search_position">%1$d از %2$d</string>
<string name="ConversationActivity_no_results">بدون نتیجه</string>
<!-- ConversationAdapter -->
<plurals name="ConversationAdapter_n_unread_messages">
@ -102,7 +102,7 @@
<item quantity="one">این به صورت دائم %1$d پیامهای انتخاب شده را حذف میکند.</item>
<item quantity="other">این به صورت دائم %1$d پیامهای انتخاب شده را حذف میکند.</item>
</plurals>
<string name="ConversationFragment_ban_selected_user">Ban this user?</string>
<string name="ConversationFragment_ban_selected_user">این کاربر مسدود شود؟</string>
<string name="ConversationFragment_save_to_sd_card">ذخیره درحافظه؟</string>
<plurals name="ConversationFragment_saving_n_media_to_storage_warning">
<item quantity="one">ذخیره همه %1$d رسانه ها به حافظه دستگاه ، باعث خواهد شد که همه برنامه های دیگر نصب شده در دستگاه شما ، به این اطلاعات دسترسی پیدا کنند. \n\n آیا مایل به ادامه هستید؟</item>
@ -126,8 +126,8 @@
<string name="ConversationFragment_sms">پیامک</string>
<string name="ConversationFragment_deleting">در حال حذف کردن</string>
<string name="ConversationFragment_deleting_messages">حذف پیام ها...</string>
<string name="ConversationFragment_banning">Banning</string>
<string name="ConversationFragment_banning_user">Banning user</string>
<string name="ConversationFragment_banning">مسدودسازی</string>
<string name="ConversationFragment_banning_user">مسدودسازی</string>
<string name="ConversationFragment_quoted_message_not_found">پیام اصلی یافت نشد</string>
<string name="ConversationFragment_quoted_message_no_longer_available">پیام اصلی دیگر در دسترس نیست</string>
<!-- ConversationListItem -->
@ -183,7 +183,7 @@
<string name="MediaPickerActivity_send_to">ارسال به %s</string>
<!-- MediaSendActivity -->
<string name="MediaSendActivity_add_a_caption">یک عنوان اضافه کنید...</string>
<string name="MediaSendActivity_an_item_was_removed_because_it_exceeded_the_size_limit">An item was removed because it exceeded the size limit</string>
<string name="MediaSendActivity_an_item_was_removed_because_it_exceeded_the_size_limit">یک مورد به دلیل بزرگتراز حد بودن پاک شد</string>
<string name="MediaSendActivity_camera_unavailable">دوربین در دسترس نیست</string>
<string name="MediaSendActivity_message_to_s">پیام به %s </string>
<plurals name="MediaSendActivity_cant_share_more_than_n_items">
@ -234,14 +234,14 @@
<string name="ThreadRecord_s_is_on_signal">%s در Session است!</string>
<string name="ThreadRecord_disappearing_messages_disabled">پیام های نابود شونده غیر فعال شد</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">زمان پنهان شدن پیام بر روی %s تنظیم شد</string>
<string name="ThreadRecord_s_took_a_screenshot">%s took a screenshot.</string>
<string name="ThreadRecord_media_saved_by_s">Media saved by %s.</string>
<string name="ThreadRecord_s_took_a_screenshot">%s از صفحه یک عکس گرفت.</string>
<string name="ThreadRecord_media_saved_by_s">رسانه توسط %s ذخیره شد.</string>
<string name="ThreadRecord_safety_number_changed">شماره امنیتی تغییر یافت</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">شماره امنیتی شما با %s تغییر یافت.</string>
<string name="ThreadRecord_you_marked_verified">شما به عنوان تایید شده علامت زدید</string>
<string name="ThreadRecord_you_marked_unverified">شما به عنوان تایید نشده علامت زدید</string>
<string name="ThreadRecord_empty_message">This conversation is empty</string>
<string name="ThreadRecord_open_group_invitation">Open group invitation</string>
<string name="ThreadRecord_empty_message">این مکالمه خالی است</string>
<string name="ThreadRecord_open_group_invitation">بازکردن دعوتنامه گروه</string>
<!-- UpdateApkReadyListener -->
<string name="UpdateApkReadyListener_Signal_update">بروزرسانی Session</string>
<string name="UpdateApkReadyListener_a_new_version_of_signal_is_available_tap_to_update">نسخه جدید Session در دسترس است، برای آپدیت اینجا را تپ کنید</string>
@ -261,8 +261,8 @@
<string name="MediaPreviewActivity_you">شما</string>
<string name="MediaPreviewActivity_unssuported_media_type">نوع رسانه پشتیبانی نشده</string>
<string name="MediaPreviewActivity_draft">پیش نویس</string>
<string name="MediaPreviewActivity_signal_needs_the_storage_permission_in_order_to_write_to_external_storage_but_it_has_been_permanently_denied">Session needs the Storage permission in order to save to external storage, but it has been permanently denied. Please continue to app settings, select \"Permissions\", and enable \"Storage\".</string>
<string name="MediaPreviewActivity_unable_to_write_to_external_storage_without_permission">Unable to save to external storage without permissions</string>
<string name="MediaPreviewActivity_signal_needs_the_storage_permission_in_order_to_write_to_external_storage_but_it_has_been_permanently_denied">Session برای ذخیره در حافظه‌ی خارجی نیاز به دسترسی به حافظه دارد اما این دسترسی به طور همیشگی رد شده است. لطفا به بخش برنامه در تنظیمات تلفن همراه خود رفته و پس از یافتن Session وارد بخش دسترسی ها شده و گزینه حافظه را فعال کنید.</string>
<string name="MediaPreviewActivity_unable_to_write_to_external_storage_without_permission">نمی‌توان بدون دسترسی‌ها در حافظه‌ی خارجی ذخیره‌سازی نمود</string>
<string name="MediaPreviewActivity_media_delete_confirmation_title">حذف پیام؟</string>
<string name="MediaPreviewActivity_media_delete_confirmation_message">این باعث حذف این پیام به صورت دائم خواهد شد.</string>
<!-- MessageNotifier -->
@ -282,10 +282,10 @@
<!-- Notification Channels -->
<string name="NotificationChannel_messages">پیش فرض</string>
<string name="NotificationChannel_calls">تماس ها</string>
<string name="NotificationChannel_failures">Failures</string>
<string name="NotificationChannel_failures">شکست‌ها</string>
<string name="NotificationChannel_backups">پشتیبان ها</string>
<string name="NotificationChannel_locked_status">وضعیت قفل</string>
<string name="NotificationChannel_app_updates">App updates</string>
<string name="NotificationChannel_app_updates">به‌روزآوری‌های برنامه</string>
<string name="NotificationChannel_other">دیگر</string>
<string name="NotificationChannel_group_messages">پیام ها</string>
<string name="NotificationChannel_missing_display_name">ناشناخته</string>
@ -293,14 +293,14 @@
<string name="QuickResponseService_quick_response_unavailable_when_Signal_is_locked">پاسخگوی سریع هنگامی که نرم‌افزار Session قفل باشد غیرفعال می‌شود.</string>
<string name="QuickResponseService_problem_sending_message">بروز خطا در ارسال پیام!</string>
<!-- SaveAttachmentTask -->
<string name="SaveAttachmentTask_saved_to">Saved to %s</string>
<string name="SaveAttachmentTask_saved_to">در %s ذخیره شد</string>
<string name="SaveAttachmentTask_saved">ذخیره شد</string>
<!-- SearchToolbar -->
<string name="SearchToolbar_search">جستجو</string>
<!-- ShortcutLauncherActivity -->
<string name="ShortcutLauncherActivity_invalid_shortcut">میانبر نامعتبر</string>
<!-- SingleRecipientNotificationBuilder -->
<string name="SingleRecipientNotificationBuilder_signal">Session</string>
<string name="SingleRecipientNotificationBuilder_signal">نشست</string>
<string name="SingleRecipientNotificationBuilder_new_message">پیام جدید</string>
<!-- TransferControlView -->
<plurals name="TransferControlView_n_items">
@ -334,10 +334,10 @@
<string name="conversation_activity__attachment_thumbnail">پیوست تصویر کوچک</string>
<string name="conversation_activity__quick_attachment_drawer_toggle_camera_description">تغییر حالت نگه دارنده پیوست دوربین سریع</string>
<string name="conversation_activity__quick_attachment_drawer_record_and_send_audio_description">فایل صوتی خود را ضبط کرده و ارسال کنید.</string>
<string name="conversation_activity__quick_attachment_drawer_lock_record_description">Lock recording of audio attachment</string>
<string name="conversation_activity__quick_attachment_drawer_lock_record_description">قفل کردن پیوست صدای ضبط شده</string>
<string name="conversation_activity__enable_signal_for_sms">فعال کردن Session برای SMS</string>
<!-- conversation_input_panel -->
<string name="conversation_input_panel__slide_to_cancel">Slide to cancel</string>
<string name="conversation_input_panel__slide_to_cancel">برای لغو بکشید</string>
<string name="conversation_input_panel__cancel">لغو</string>
<!-- conversation_item -->
<string name="conversation_item__mms_image_description">پیام رسانه</string>
@ -354,11 +354,11 @@
<string name="audio_view__pause_accessibility_description">مکث</string>
<string name="audio_view__download_accessibility_description">دریافت</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">Join</string>
<string name="open_group_invitation_view__open_group_invitation">Open group invitation</string>
<string name="open_group_guidelines_pinned_message">Pinned message</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
<string name="open_group_guidelines_read">Read</string>
<string name="open_group_invitation_view__join_accessibility_description">\"پیوستن\"</string>
<string name="open_group_invitation_view__open_group_invitation">بازکردن دعوتنامه گروه</string>
<string name="open_group_guidelines_pinned_message">پیام سنجاق شده</string>
<string name="open_group_guidelines_community_guidelines">راهنمای انجمن</string>
<string name="open_group_guidelines_read">خواندن</string>
<!-- QuoteView -->
<string name="QuoteView_audio">صوت</string>
<string name="QuoteView_video">ویدئو</string>
@ -463,10 +463,10 @@
<string name="preferences__default">پیش فرض</string>
<string name="preferences__incognito_keyboard">کیبورد ناشناس</string>
<string name="preferences__read_receipts">خواندن رسید ها</string>
<string name="preferences__if_read_receipts_are_disabled_you_wont_be_able_to_see_read_receipts">If read receipts are disabled, you won\'t be able to see read receipts from others.</string>
<string name="preferences__if_read_receipts_are_disabled_you_wont_be_able_to_see_read_receipts">اگر رسید خواندن غیرفعال باشد، شما نمی‌توانید رسید خواندن دیگران را ببینید.</string>
<string name="preferences__typing_indicators">نشانگر های نوشته</string>
<string name="preferences__if_typing_indicators_are_disabled_you_wont_be_able_to_see_typing_indicators">اگر نشانگر های نوشته غیرفعال می باشند، شما قادر نخواهید بود تا نشانگر های نوشته سایرین را ببینید.</string>
<string name="preferences__request_keyboard_to_disable_personalized_learning">Request keyboard to disable personalized learning</string>
<string name="preferences__request_keyboard_to_disable_personalized_learning">درخواست غیرفعال‌سازی یادگیری شخصی از صفحه‌کلید</string>
<string name="preferences__light_theme">روشن</string>
<string name="preferences__dark_theme">تیره</string>
<string name="preferences_chats__message_trimming">برش دادن پیام</string>
@ -488,7 +488,7 @@
<string name="conversation_context__menu_message_details">جزییات پیام</string>
<string name="conversation_context__menu_copy_text">کپی متن</string>
<string name="conversation_context__menu_delete_message">حذف پیام</string>
<string name="conversation_context__menu_ban_user">Ban user</string>
<string name="conversation_context__menu_ban_user">مسدود کردن کاربر</string>
<string name="conversation_context__menu_resend_message">پیام فرستادن مجدد</string>
<string name="conversation_context__menu_reply_to_message">پاسخ به پیام</string>
<!-- conversation_context_image -->
@ -529,13 +529,13 @@
<string name="Permissions_continue">ادامه</string>
<string name="Permissions_not_now">حالا نه</string>
<string name="backup_enable_dialog__backups_will_be_saved_to_external_storage_and_encrypted_with_the_passphrase_below_you_must_have_this_passphrase_in_order_to_restore_a_backup">پشتیبان ها روی یک حافظه خارجی ذخیره خواهند شد و با عبارت عبور زیر رمزنگاری خواهند شد. شما باید عبارت عبور زیر را داشته باشید تا پشتیبان خود را بازیابی کنید.</string>
<string name="backup_enable_dialog__i_have_written_down_this_passphrase">I have written down this passphrase. Without it, I will be unable to restore a backup.</string>
<string name="backup_enable_dialog__i_have_written_down_this_passphrase">من این گذرمتن را نوشته‌ام. بدون آن نخواهم توانست یک پشتیبان را بازگردانی کنم.</string>
<string name="registration_activity__skip">پرش</string>
<string name="RegistrationActivity_backup_failure_downgrade">Cannot import backups from newer versions of Session</string>
<string name="RegistrationActivity_incorrect_backup_passphrase">Incorrect backup passphrase</string>
<string name="RegistrationActivity_backup_failure_downgrade">نمی‌توان از نگارش‌های جدید نشست پشتیبان‌ها را وارد کرد</string>
<string name="RegistrationActivity_incorrect_backup_passphrase">گذرمتن پشتیبان اشتباه است</string>
<string name="BackupDialog_enable_local_backups">فعال سازی پشتیبان های محلی؟</string>
<string name="BackupDialog_enable_backups">فعال سازی پشتیبان ها</string>
<string name="BackupDialog_please_acknowledge_your_understanding_by_marking_the_confirmation_check_box">Please acknowledge your understanding by marking the confirmation check box.</string>
<string name="BackupDialog_please_acknowledge_your_understanding_by_marking_the_confirmation_check_box">لطفا با علامت زدن تأیید آگاهی خود را نشان دهید.</string>
<string name="BackupDialog_delete_backups">حذف پشتیبان ها؟</string>
<string name="BackupDialog_disable_and_delete_all_local_backups">غیرفعال سازی و پاک کردن همه پشتیبان های محلی؟</string>
<string name="BackupDialog_delete_backups_statement">حذف پشتیبان ها</string>
@ -544,11 +544,11 @@
<string name="ProgressPreference_d_messages_so_far">%d پیام تا به الان</string>
<string name="BackupUtil_never">هرگز</string>
<string name="preferences_app_protection__screen_lock">قفل صفحه</string>
<string name="preferences_app_protection__lock_signal_access_with_android_screen_lock_or_fingerprint">Lock Session access with Android screen lock or fingerprint</string>
<string name="preferences_app_protection__screen_lock_inactivity_timeout">Screen lock inactivity timeout</string>
<string name="preferences_app_protection__lock_signal_access_with_android_screen_lock_or_fingerprint">قفل کردن دسترسی به نشست با قفل صفحه اندروید با اثر انگشت</string>
<string name="preferences_app_protection__screen_lock_inactivity_timeout">زمان قفل صفحه هنگام عدم فعالیت</string>
<string name="AppProtectionPreferenceFragment_none">هیچ کدام</string>
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<string name="activity_conversation_copy_public_key_button_title">رونوشت کلید عمومی</string>
<!-- Session -->
<string name="continue_2">ادامه </string>
<string name="copy">کپی کردن</string>
@ -589,7 +589,7 @@
<string name="activity_seed_title_2">این عبارت بازیابی شماست</string>
<string name="activity_seed_explanation">عبارت بازیابی شما کلید اصلی شناسه‌ی Session شما است - در صورت عدم دسترسی به دستگاه خود می توانید از آن برای بازگرداندن شناسه‌ی Session خود استفاده کنید. عبارت بازیابی خود را در مکانی امن ذخیره کنید و آن را به کسی ندهید.</string>
<string name="activity_seed_reveal_button_title">نگه دارید تا نشان داده شود</string>
<string name="view_seed_reminder_title">You\'re almost finished! 80%</string>
<string name="view_seed_reminder_title">شما تقریبا تمام کردید! ۸۰٪</string>
<string name="view_seed_reminder_subtitle_1">با ذخیره کردن عبارت بازیابی، از حساب خود را محافظت کنید</string>
<string name="view_seed_reminder_subtitle_2">برای فاش کردن عبارت بازیابی، بر روی کلمات redacted ضربه زده و نگه دارید، سپس با خیال راحت آن را ذخیره کنید تا از شناسه‌ی Session خود محافظت نمایید.</string>
<string name="view_seed_reminder_subtitle_3">حتماً عبارت بازیابی خود را در مکانی امن ذخیره کنید</string>
@ -614,8 +614,8 @@
<string name="activity_create_closed_group_empty_state_button_title">شروع Session</string>
<string name="activity_create_closed_group_group_name_missing_error">لطفا یک نام گروه وارد کنید</string>
<string name="activity_create_closed_group_group_name_too_long_error">لطفا نام گروه کوتاه‌تری وارد کنید</string>
<string name="activity_create_closed_group_not_enough_group_members_error">Please pick at least 1 group member</string>
<string name="activity_create_closed_group_too_many_group_members_error">A closed group cannot have more than 100 members</string>
<string name="activity_create_closed_group_not_enough_group_members_error">لطفا حداقل یک عضو گروه انتخاب کنید</string>
<string name="activity_create_closed_group_too_many_group_members_error">یک گروه خصوصی نمی‌تواند بیش از ۱۰۰ عضو داشته باشد</string>
<string name="activity_join_public_chat_title">به گروه باز بپیوندید</string>
<string name="activity_join_public_chat_error">امکان پیوستن به گروه نیست</string>
<string name="activity_join_public_chat_enter_group_url_tab_title">آدرس اینترنتی گروه را باز کنید</string>
@ -630,10 +630,10 @@
<string name="activity_settings_notifications_button_title">اعلان‌ها</string>
<string name="activity_settings_chats_button_title">گفت‌وگوها</string>
<string name="activity_settings_devices_button_title">دستگاه‌ها</string>
<string name="activity_settings_invite_button_title">Invite</string>
<string name="activity_settings_invite_button_title">دعوت کردن</string>
<string name="activity_settings_recovery_phrase_button_title">عبارت بازیابی</string>
<string name="activity_settings_clear_all_data_button_title">پاک کردن اطلاعات</string>
<string name="activity_settings_help_translate_session">Help us Translate Session</string>
<string name="activity_settings_help_translate_session">به ما کمک کنید که سشن را ترجمه کنیم</string>
<string name="activity_notification_settings_title">اعلان‌ها</string>
<string name="activity_notification_settings_style_section_title">نحوه اطلاع‌رسانی</string>
<string name="activity_notification_settings_content_section_title">محتوای اعلان</string>
@ -650,51 +650,51 @@
<string name="activity_qr_code_view_my_qr_code_tab_title">مشاهده کد QR من</string>
<string name="activity_qr_code_view_scan_qr_code_tab_title">اسکن کد QR</string>
<string name="activity_qr_code_view_scan_qr_code_explanation">برای شروع مکالمه با دیگران، کد QR شخصی را اسکن کنید</string>
<string name="fragment_view_my_qr_code_title">Scan Me</string>
<string name="fragment_view_my_qr_code_title">مرا اسکن کن</string>
<string name="fragment_view_my_qr_code_explanation">این کد QR شماست. سایر کاربران می‌توانند برای شروع Session با شما آن را اسکن کنند.</string>
<string name="fragment_view_my_qr_code_share_title">کد QR را به اشتراک بگذارید</string>
<string name="fragment_contact_selection_contacts_title">مخاطبین</string>
<string name="fragment_contact_selection_closed_groups_title">گروه‌های خصوصی</string>
<string name="fragment_contact_selection_open_groups_title">گروه‌های باز</string>
<string name="fragment_contact_selection_empty_contacts">You don\'t have any contacts yet</string>
<string name="fragment_contact_selection_empty_contacts">شما هنوز هیچ مخاطبی ندارید</string>
<!-- Next round of translation -->
<string name="menu_apply_button">Apply</string>
<string name="menu_done_button">Done</string>
<string name="activity_edit_closed_group_title">Edit Group</string>
<string name="activity_edit_closed_group_edit_text_hint">Enter a new group name</string>
<string name="activity_edit_closed_group_edit_members">Members</string>
<string name="activity_edit_closed_group_add_members">Add members</string>
<string name="activity_edit_closed_group_group_name_missing_error">Group name can\'t be empty</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Groups must have at least 1 group member</string>
<string name="fragment_edit_group_bottom_sheet_remove">Remove user from group</string>
<string name="activity_select_contacts_title">Select Contacts</string>
<string name="view_reset_secure_session_done_message">Secure session reset done</string>
<string name="dialog_ui_mode_title">Theme</string>
<string name="dialog_ui_mode_option_day">Day</string>
<string name="dialog_ui_mode_option_night">Night</string>
<string name="dialog_ui_mode_option_system_default">System default</string>
<string name="activity_conversation_menu_copy_session_id">Copy Session ID</string>
<string name="attachment">Attachment</string>
<string name="attachment_type_voice_message">Voice Message</string>
<string name="details">Details</string>
<string name="dialog_backup_activation_failed">Failed to activate backups. Please try again or contact support.</string>
<string name="activity_backup_restore_title">Restore backup</string>
<string name="activity_backup_restore_select_file">Select a file</string>
<string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string>
<string name="activity_backup_restore_passphrase">30-digit passphrase</string>
<string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string>
<string name="activity_link_device_link_device">Link a Device</string>
<string name="activity_join_public_chat_join_rooms">Or join one of these</string>
<string name="activity_pn_mode_message_notifications">Message Notifications</string>
<string name="activity_pn_mode_explanation">There are two ways Session can notify you of new messages.</string>
<string name="activity_pn_mode_fast_mode">Fast Mode</string>
<string name="activity_pn_mode_slow_mode">Slow Mode</string>
<string name="activity_pn_mode_fast_mode_explanation">Youll be notified of new messages reliably and immediately using Googles notification servers.</string>
<string name="activity_pn_mode_slow_mode_explanation">Session will occasionally check for new messages in the background.</string>
<string name="fragment_recovery_phrase_title">Recovery Phrase</string>
<string name="activity_prompt_passphrase_session_locked">Session is Locked</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Tap to Unlock</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
<string name="menu_apply_button">اعمال</string>
<string name="menu_done_button">انجام شد</string>
<string name="activity_edit_closed_group_title">ویرایش گروه</string>
<string name="activity_edit_closed_group_edit_text_hint">نام گروهی جدید وارد کنید</string>
<string name="activity_edit_closed_group_edit_members">اعضا</string>
<string name="activity_edit_closed_group_add_members">افزودن اعضا</string>
<string name="activity_edit_closed_group_group_name_missing_error">نام گروه نمی‌تواند خالی باشد</string>
<string name="activity_edit_closed_group_group_name_too_long_error">لطفا نام گروه کوتاه‌تری وارد کنید</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">گروه‌ها باید حداقل ۱ عضو داشته باشند</string>
<string name="fragment_edit_group_bottom_sheet_remove">پاک کردن عضو از گروه</string>
<string name="activity_select_contacts_title">انتخاب مخاطب‌ها</string>
<string name="view_reset_secure_session_done_message">تنظیم مجدد جلسه امن انجام شد</string>
<string name="dialog_ui_mode_title">قالب</string>
<string name="dialog_ui_mode_option_day">روز</string>
<string name="dialog_ui_mode_option_night">شب</string>
<string name="dialog_ui_mode_option_system_default">پیش فرض سیستم</string>
<string name="activity_conversation_menu_copy_session_id">رونوشت شناسه نشست شما</string>
<string name="attachment">پیوست</string>
<string name="attachment_type_voice_message">پیام صوتی</string>
<string name="details">جزئيات</string>
<string name="dialog_backup_activation_failed">فعال‌سازی پشتیبان‌ها شکست خورد. لطفا دوباره امتحان کنید یا با پشتیبانی تماس بگیرید.</string>
<string name="activity_backup_restore_title">بازگردانی پشتیبان</string>
<string name="activity_backup_restore_select_file">انتخاب فایل</string>
<string name="activity_backup_restore_explanation_1">یک فایل پشتیبان انتخاب و گذرمتنی که با آن ساخته شده است را وارد کنید.</string>
<string name="activity_backup_restore_passphrase">گذرمتن ۳۰رقمی</string>
<string name="activity_link_device_skip_prompt">این مقداری طول می‌کشد، دوست دارید ردش کنید؟</string>
<string name="activity_link_device_link_device">اتصال به یک دستگاه</string>
<string name="activity_join_public_chat_join_rooms">یا به یکی از این‌ها بپیوندید</string>
<string name="activity_pn_mode_message_notifications">اعلان‌های پیام</string>
<string name="activity_pn_mode_explanation">دو راه برای اطلاع رسانی شما از پیام‌های جدید در نشست وجود دارد.</string>
<string name="activity_pn_mode_fast_mode">حالت سریع</string>
<string name="activity_pn_mode_slow_mode">حالت آهسته</string>
<string name="activity_pn_mode_fast_mode_explanation">شما سریع و مطمئن با استفاده از سرور‌های اطلاع‌رسانی گوگل از پیام‌های جدید مطلع می‌شوید.</string>
<string name="activity_pn_mode_slow_mode_explanation">نشست هرازگاهی در پس زمینه وجود پیام‌های جدید را بررسی می‌کند.</string>
<string name="fragment_recovery_phrase_title">متن بازیابی</string>
<string name="activity_prompt_passphrase_session_locked">نشست قفل شده‌است</string>
<string name="activity_prompt_passphrase_tap_to_unlock"> ﺑﺮﺍﯼ ﮔﺸﻮﺩﻥ ﺿﺮﺑﻪ ﺑﺰﻧﻴﺪ</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">یک نام مستعار وارد کنید</string>
<string name="invalid_public_key">کلید عمومی نامعتبر</string>
</resources>

View File

@ -3,32 +3,32 @@
<string name="app_name">सेशन</string>
<string name="yes">हाँ </string>
<string name="no">नहीं</string>
<string name="delete">मिटा</string>
<string name="delete">मिटाएं</string>
<string name="ban">प्रतिबंध</string>
<string name="please_wait">कृपया इंतज़ार कीजिए </string>
<string name="please_wait">कृपया इंतज़ार कीजिए...</string>
<string name="save">संरक्षित करें</string>
<string name="note_to_self">अपने लिए नोट</string>
<string name="version_s">वर्ज़न %s</string>
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">नया Session सन्देश</string>
<string name="AbstractNotificationBuilder_new_message">नया मेसेज</string>
<!-- AlbumThumbnailView -->
<string name="AlbumThumbnailView_plus">\+%d</string>
<!-- ApplicationPreferencesActivity -->
<plurals name="ApplicationPreferencesActivity_messages_per_conversation">
<item quantity="one">%d बातचीत प्रति संदेश</item>
<item quantity="other">%d बातचीत प्रति संदेश</item>
<item quantity="one">%d संदेश प्रति बातचीत</item>
<item quantity="other">%d संदेश प्रति बातचीत</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">सभी पुरानी संदेश अभी नष्ट करूँ?</string>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">सभी पुरानी संदेश अभी नष्ट करें?</string>
<plurals name="ApplicationPreferencesActivity_this_will_immediately_trim_all_conversations_to_the_d_most_recent_messages">
<item quantity="one">यह तुरंत सभी वार्तालापों को हाल ही के संदेश में ट्रिम कर देगा।</item>
<item quantity="other">यह तुरंत सभी वार्तालापों को हाल ही के संदेश में ट्रिम कर देगा।%d</item>
<item quantity="other">यह तुरंत सभी वार्तालापों को हाल ही के %d संदेशों में ट्रिम कर देगा।</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete">नष्ट कर</string>
<string name="ApplicationPreferencesActivity_delete">नष्ट करें</string>
<string name="ApplicationPreferencesActivity_On">पर</string>
<string name="ApplicationPreferencesActivity_Off">बंद </string>
<string name="ApplicationPreferencesActivity_Off">ऑफ</string>
<!-- DraftDatabase -->
<string name="DraftDatabase_Draft_image_snippet">(तस्वीर)</string>
<string name="DraftDatabase_Draft_audio_snippet">(श्रव्य)</string>
<string name="DraftDatabase_Draft_audio_snippet">(ऑडियो)</string>
<string name="DraftDatabase_Draft_video_snippet">(वीडियो)</string>
<string name="DraftDatabase_Draft_quote_snippet">( उत्तर ) </string>
<!-- AttchmentManager -->
@ -64,34 +64,34 @@
<string name="ConversationActivity_message">मैसेज</string>
<string name="ConversationActivity_compose">लिखें</string>
<string name="ConversationActivity_muted_until_date">%s तक मौन किया</string>
<string name="ConversationActivity_member_count">%1$d members</string>
<string name="ConversationActivity_open_group_guidelines">Community Guidelines</string>
<string name="ConversationActivity_member_count">%1$dसदस्य</string>
<string name="ConversationActivity_open_group_guidelines">सामुदायिक दिशानिर्देश</string>
<string name="ConversationActivity_invalid_recipient">अवैध प्राप्तकर्ता</string>
<string name="ConversationActivity_added_to_home_screen">होम स्क्रीन में जोड़ा गया</string>
<string name="ConversationActivity_leave_group">समूह छोड़ दें?</string>
<string name="ConversationActivity_are_you_sure_you_want_to_leave_this_group">क्या आप वाकई इस समूह को छोड़ना चाहते हैं?</string>
<string name="ConversationActivity_error_leaving_group">समूह छोड़ने में त्रुटि</string>
<string name="ConversationActivity_unblock_this_contact_question">इस संपर्क को अनवरोधित करें?</string>
<string name="ConversationActivity_unblock_this_contact_question">इस संपर्क को अनब्लॉक करें?</string>
<string name="ConversationActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">आप एक बार फिर से इस संपर्क से संदेश और कॉल प्राप्त करने में सक्षम होंगे।</string>
<string name="ConversationActivity_unblock">अनब्लॉक करें</string>
<string name="ConversationActivity_attachment_exceeds_size_limits">आपके द्वारा भेजे जा रहे संदेश के प्रकार के लिए अनुलग्नक आकार सीमा से अधिक है।</string>
<string name="ConversationActivity_attachment_exceeds_size_limits">आपके द्वारा भेजा जा रहा संदेश आकार सीमा से अधिक है।</string>
<string name="ConversationActivity_unable_to_record_audio">ऑडियो रिकॉर्ड करने में असमर्थ</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">आपके डिवाइस पर इस लिंक को संभालने के लिए कोई ऐप उपलब्ध नहीं है।</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">ऑडियो संदेश भेजने के लिए, अपने माइक्रोफ़ोन पर Session पहुंच की अनुमति दें।</string>
<string name="ConversationActivity_invite_to_open_group">सदस्य जोड़ें</string>
<string name="ConversationActivity_join_open_group">%s से जुड़ें</string>
<string name="ConversationActivity_join_open_group_confirmation_message">क्या आप <b>%s</b> open ग्रुप से जुड़ना चाहते हैं?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">ऑडियो संदेश भेजने के लिए माइक्रोफोन की अनुमति Session को दें।</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">ऑडियो संदेशों को भेजने के लिए Session को माइक्रोफ़ोन अनुमति की आवश्यकता होती है, लेकिन इसे स्थायी रूप से अस्वीकार कर दिया गया है। कृपया ऐप सेटिंग्स जारी रखें, \"अनुमतियां\" चुनें, और \"माइक्रोफ़ोन\" सक्षम करें।</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">फोटो और वीडियो कैप्चर करने के लिए, कैमरे को Session पहुंच की अनुमति दें।</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">फोटो और वीडियो कैप्चर करने के लिए Session को कैमरे की अनुमति दें।</string>
<string name="ConversationActivity_signal_needs_the_camera_permission_to_take_photos_or_video">Session को फ़ोटो या वीडियो लेने के लिए कैमरा अनुमति की आवश्यकता होती है, लेकिन इसे स्थायी रूप से अस्वीकार कर दिया गया है। कृपया ऐप सेटिंग्स जारी रखें, \"अनुमतियां\" चुनें, और \"कैमरा\" सक्षम करें।</string>
<string name="ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video">Session को फ़ोटो या वीडियो लेने के लिए कैमरा अनुमतियां चाहिए</string>
<string name="ConversationActivity_quoted_contact_message">%1$s%2$s</string>
<string name="ConversationActivity_search_position">%1$d of %2$d</string>
<string name="ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video">Session को फ़ोटो या वीडियो लेने के लिए कैमरा अनुमति चाहिए</string>
<string name="ConversationActivity_quoted_contact_message">%1$s %2$s</string>
<string name="ConversationActivity_search_position">%2$d का %1$d</string>
<string name="ConversationActivity_no_results">कोई परिणाम नहीं</string>
<!-- ConversationAdapter -->
<plurals name="ConversationAdapter_n_unread_messages">
<item quantity="one">%d अपठित संदेश</item>
<item quantity="other">%dअपठित संदेश </item>
<item quantity="other">%d अपठित संदेश</item>
</plurals>
<!-- ConversationFragment -->
<plurals name="ConversationFragment_delete_selected_messages">
@ -102,32 +102,32 @@
<item quantity="one">यह सभी चयनित वार्तालापों को स्थायी रूप से हटा देगा।</item>
<item quantity="other">यह सभी %1$d चयनित वार्तालापों को स्थायी रूप से हटा देगा।</item>
</plurals>
<string name="ConversationFragment_ban_selected_user">Ban this user?</string>
<string name="ConversationFragment_save_to_sd_card">इसे भंडारण में सहेजें?</string>
<string name="ConversationFragment_ban_selected_user">सदस्य को बैन करें?</string>
<string name="ConversationFragment_save_to_sd_card">इसे स्टोरेज में सहेजें?</string>
<plurals name="ConversationFragment_saving_n_media_to_storage_warning">
<item quantity="one">भी मीडिया को स्टोरेज में सहेजने से आपके डिवाइस पर किसी अन्य ऐप को एक्सेस करने की अनुमति मिल जाएगी। \n\n जारी रखें?</item>
<item quantity="other">सभी %1$d मीडिया को स्टोरेज में सहेजने से आपके डिवाइस पर किसी अन्य ऐप को एक्सेस करने की अनुमति मिल जाएगी। \n\n जारी रखें?</item>
<item quantity="one">स मीडिया को स्टोरेज में सहेजने से आपके डिवाइस पर किसी अन्य ऐप को इसे एक्सेस करने की अनुमति मिल जाएगी। \n\n जारी रखें?</item>
<item quantity="other">सभी %1$d मीडिया को स्टोरेज में सहेजने से आपके डिवाइस पर किसी अन्य ऐप को इन्हें एक्सेस करने की अनुमति मिल जाएगी। \n\n जारी रखें?</item>
</plurals>
<plurals name="ConversationFragment_error_while_saving_attachments_to_sd_card">
<item quantity="one">संग्रहण में संलग्नक सहेजते समय त्रुटि!</item>
<item quantity="other">संग्रहण में संलग्नक सहेजते समय त्रुटि!</item>
<item quantity="one">संग्रहण में संलग्नक को सहेजते समय त्रुटि!</item>
<item quantity="other">संग्रहण में संलग्नक को सहेजते समय त्रुटि!</item>
</plurals>
<plurals name="ConversationFragment_saving_n_attachments">
<item quantity="one">नुलग्नक सहेजा जा रहा है</item>
<item quantity="other">%1$dअनुलग्नक सहेजा जा रहा है </item>
<item quantity="one">टैचमेंट सहेजा जा रहा है</item>
<item quantity="other">%1$d अटैचमेंट सहेजे जा रहे हैं</item>
</plurals>
<plurals name="ConversationFragment_saving_n_attachments_to_sd_card">
<item quantity="one">स्टोरेज में अनुलग्नक सहेजा जा रहा है</item>
<item quantity="other">स्टोरेज में %1$d अनुलग्नक सहेज रहा है</item>
<item quantity="one">स्टोरेज में अटैचमेंट सहेजा जा रहा है</item>
<item quantity="other">स्टोरेज में %1$d अटैचमेंट सहेज रहे हैं</item>
</plurals>
<string name="ConversationFragment_pending">रूका हुआ</string>
<string name="ConversationFragment_pending">बाकी...</string>
<string name="ConversationFragment_push">डेटा (Session)</string>
<string name="ConversationFragment_mms">एमएमएस</string>
<string name="ConversationFragment_sms">एसएमएस</string>
<string name="ConversationFragment_deleting">हटा दिया जा रहा है</string>
<string name="ConversationFragment_deleting_messages">संदेश हटाए जा रहे हैं</string>
<string name="ConversationFragment_banning">Banning</string>
<string name="ConversationFragment_banning_user">Banning user…</string>
<string name="ConversationFragment_banning">बैन कर रहे हैं</string>
<string name="ConversationFragment_banning_user">सदस्य को बैन कर रहे हैं...</string>
<string name="ConversationFragment_quoted_message_not_found">मूल संदेश नहीं मिला</string>
<string name="ConversationFragment_quoted_message_no_longer_available">मूल संदेश अब उपलब्ध नहीं है</string>
<!-- ConversationListItem -->
@ -150,16 +150,16 @@
<!-- GiphyActivity -->
<string name="GiphyActivity_error_while_retrieving_full_resolution_gif">पूर्ण रिज़ॉल्यूशन जीआईएफ पुनर्प्राप्त करते समय त्रुटि</string>
<!-- GiphyFragmentPageAdapter -->
<string name="GiphyFragmentPagerAdapter_gifs">जीआईएफ</string>
<string name="GiphyFragmentPagerAdapter_gifs">GIFs</string>
<string name="GiphyFragmentPagerAdapter_stickers">स्टिकर</string>
<!-- CropImageActivity -->
<string name="CropImageActivity_profile_avatar">Photo</string>
<string name="CropImageActivity_profile_avatar">तस्वीर</string>
<!-- InputPanel -->
<string name="InputPanel_tap_and_hold_to_record_a_voice_message_release_to_send">वॉइस संदेश रिकॉर्ड करने के लिए टैप करें और दबाएं और भेजने के लिए रिलीज़ करें</string>
<!-- LongMessageActivity -->
<string name="LongMessageActivity_unable_to_find_message">Unable to find message</string>
<string name="LongMessageActivity_message_from_s">Message from %1$s</string>
<string name="LongMessageActivity_your_message">Your message</string>
<string name="LongMessageActivity_unable_to_find_message">संदेश ढूंढने में असमर्थ</string>
<string name="LongMessageActivity_message_from_s">%1$s से संदेश</string>
<string name="LongMessageActivity_your_message">आपका संदेश</string>
<!-- MediaOverviewActivity -->
<string name="MediaOverviewActivity_Media">मीडिया</string>
<plurals name="MediaOverviewActivity_Media_delete_confirm_title">
@ -174,21 +174,21 @@
<string name="MediaOverviewActivity_Media_delete_progress_message">संदेश हटाए जा रहे हैं</string>
<string name="MediaOverviewActivity_Documents">दस्तावेज़</string>
<string name="MediaOverviewActivity_Select_all">सभी को चुन लो स`</string>
<string name="MediaOverviewActivity_collecting_attachments">Collecting attachments...</string>
<string name="MediaOverviewActivity_collecting_attachments">अटैचमेंट्स इकट्ठे कर रहे हैं...</string>
<!-- NotificationMmsMessageRecord -->
<string name="NotificationMmsMessageRecord_multimedia_message">मल्टीमीडिया संदेश</string>
<string name="NotificationMmsMessageRecord_downloading_mms_message">एमएमएस संदेश डाउनलोड किया जा रहा है</string>
<string name="NotificationMmsMessageRecord_error_downloading_mms_message">एमएमएस संदेश डाउनलोड करने में त्रुटि, पुनः प्रयास करने के लिए टैप करें</string>
<!-- MediaPickerActivity -->
<string name="MediaPickerActivity_send_to">Send to %s</string>
<string name="MediaPickerActivity_send_to">%s को भेजें</string>
<!-- MediaSendActivity -->
<string name="MediaSendActivity_add_a_caption">Add a caption...</string>
<string name="MediaSendActivity_an_item_was_removed_because_it_exceeded_the_size_limit">An item was removed because it exceeded the size limit</string>
<string name="MediaSendActivity_camera_unavailable">Camera unavailable.</string>
<string name="MediaSendActivity_message_to_s">Message to %s</string>
<string name="MediaSendActivity_add_a_caption">शीर्षक जोड़ें...</string>
<string name="MediaSendActivity_an_item_was_removed_because_it_exceeded_the_size_limit">एक वस्तु को आकार बड़ा होने कि वजह से हटाया गया</string>
<string name="MediaSendActivity_camera_unavailable">कैमरा अनुपलब्ध.</string>
<string name="MediaSendActivity_message_to_s">%s को संदेश</string>
<plurals name="MediaSendActivity_cant_share_more_than_n_items">
<item quantity="one">You can\'t share more than %d item.</item>
<item quantity="other">You can\'t share more than %d items.</item>
<item quantity="one">आप %d से ज्यादा चीजें शेयर नहीं कर सकते</item>
<item quantity="other">आप %d से ज्यादा चीजें शेयर नहीं कर सकते</item>
</plurals>
<!-- MediaRepository -->
<string name="MediaRepository_all_media">सभी मीडिया</string>
@ -216,7 +216,7 @@
<string name="Slide_video">वीडियो </string>
<!-- SmsMessageRecord -->
<string name="SmsMessageRecord_received_corrupted_key_exchange_message">दूषित कुंजी प्राप्त की
         संदेश का आदान-प्रदान करें!</string>
संदेश का आदान-प्रदान करें!</string>
<string name="SmsMessageRecord_received_key_exchange_message_for_invalid_protocol_version">अमान्य प्रोटोकॉल संस्करण के लिए कुंजी एक्सचेंज संदेश प्राप्त हुआ।</string>
<string name="SmsMessageRecord_received_message_with_new_safety_number_tap_to_process">नए सुरक्षा नंबर के साथ संदेश प्राप्त हुआ। प्रक्रिया और प्रदर्शित करने के लिए टैप करें।</string>
<string name="SmsMessageRecord_secure_session_reset">आपने सुरक्षित सत्र रीसेट कर दिया है।</string>
@ -234,14 +234,14 @@
<string name="ThreadRecord_s_is_on_signal">%sअब Session पर हैं! </string>
<string name="ThreadRecord_disappearing_messages_disabled">संदेश जो गायब हो जाते हैं अक्षम</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">गायब संदेश समय %s तक सेट हो गया</string>
<string name="ThreadRecord_s_took_a_screenshot">%s took a screenshot.</string>
<string name="ThreadRecord_media_saved_by_s">Media saved by %s.</string>
<string name="ThreadRecord_s_took_a_screenshot">%s ने एक स्क्रीनशॉट लिया.</string>
<string name="ThreadRecord_media_saved_by_s">%s द्वारा मीडिया सेव किया गया।</string>
<string name="ThreadRecord_safety_number_changed">सुरक्षा संख्या बदल गई</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">%s के साथ आपका सुरक्षा नंबर बदल गया है।</string>
<string name="ThreadRecord_you_marked_verified">आपने सत्यापित चिह्नित किया है</string>
<string name="ThreadRecord_you_marked_unverified">आपने असत्यापित चिह्नित किया है</string>
<string name="ThreadRecord_empty_message">This conversation is empty</string>
<string name="ThreadRecord_open_group_invitation">Open group invitation</string>
<string name="ThreadRecord_empty_message">यह वार्तालाप खाली है</string>
<string name="ThreadRecord_open_group_invitation">ग्रुप आमंत्रण खोलें</string>
<!-- UpdateApkReadyListener -->
<string name="UpdateApkReadyListener_Signal_update">Session अपडेट</string>
<string name="UpdateApkReadyListener_a_new_version_of_signal_is_available_tap_to_update">Session का एक नया संस्करण उपलब्ध है, अपडेट करने के लिए टैप करें</string>
@ -250,7 +250,7 @@
<string name="MessageDisplayHelper_message_encrypted_for_non_existing_session">गैर-मौजूदा सत्र के लिए संदेश एन्क्रिप्ट किया गया</string>
<!-- MmsMessageRecord -->
<string name="MmsMessageRecord_bad_encrypted_mms_message">खराब एन्क्रिप्टेड एमएमएस संदेश</string>
<string name="MmsMessageRecord_mms_message_encrypted_for_non_existing_session">गैर-मौजूदा सत्र के लिए एमएमएस संदेश एन्क्रिप्ट किया गया </string>
<string name="MmsMessageRecord_mms_message_encrypted_for_non_existing_session">गैर-मौजूदा सत्र के लिए एमएमएस संदेश एन्क्रिप्ट किया गया </string>
<!-- MuteDialog -->
<string name="MuteDialog_mute_notifications">नोटिफिकेशन म्यूट करें</string>
<!-- KeyCachingService -->
@ -294,18 +294,18 @@
<string name="QuickResponseService_problem_sending_message">संदेश भेजने में दिक्कत हुआ </string>
<!-- SaveAttachmentTask -->
<string name="SaveAttachmentTask_saved_to">%s के लिए सहेजा गया</string>
<string name="SaveAttachmentTask_saved">Saved</string>
<string name="SaveAttachmentTask_saved">सेव किया गया</string>
<!-- SearchToolbar -->
<string name="SearchToolbar_search">सर्च</string>
<!-- ShortcutLauncherActivity -->
<string name="ShortcutLauncherActivity_invalid_shortcut">अमान्य शॉर्टकट</string>
<!-- SingleRecipientNotificationBuilder -->
<string name="SingleRecipientNotificationBuilder_signal">Session</string>
<string name="SingleRecipientNotificationBuilder_signal">सैशन</string>
<string name="SingleRecipientNotificationBuilder_new_message">नया Session सन्देश</string>
<!-- TransferControlView -->
<plurals name="TransferControlView_n_items">
<item quantity="one">%d Item</item>
<item quantity="other">%d Items</item>
<item quantity="one">%d वस्तु</item>
<item quantity="other">%d वस्तुएं</item>
</plurals>
<!-- VideoPlayer -->
<string name="VideoPlayer_error_playing_video">वीडियो खोलने में त्रुटि</string>
@ -334,10 +334,10 @@
<string name="conversation_activity__attachment_thumbnail">अटैचमेंट थंबनेल </string>
<string name="conversation_activity__quick_attachment_drawer_toggle_camera_description">त्वरित कैमरा अनुलग्नक दराज टॉगल करें</string>
<string name="conversation_activity__quick_attachment_drawer_record_and_send_audio_description">रिकॉर्ड करें और ऑडियो अटैचमेंट भेजें</string>
<string name="conversation_activity__quick_attachment_drawer_lock_record_description">Lock recording of audio attachment</string>
<string name="conversation_activity__quick_attachment_drawer_lock_record_description">ऑडियो अटैचमेंट की रिकॉर्डिंग लॉक करें</string>
<string name="conversation_activity__enable_signal_for_sms">एसएमएस के लिए Session सक्षम करें</string>
<!-- conversation_input_panel -->
<string name="conversation_input_panel__slide_to_cancel">Slide to cancel</string>
<string name="conversation_input_panel__slide_to_cancel">रद्द करने के लिए स्लाइड करें</string>
<string name="conversation_input_panel__cancel">रद्द करें</string>
<!-- conversation_item -->
<string name="conversation_item__mms_image_description">मीडिया संदेश</string>
@ -354,11 +354,11 @@
<string name="audio_view__pause_accessibility_description">रोको</string>
<string name="audio_view__download_accessibility_description">डाउनलोड</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">Join</string>
<string name="open_group_invitation_view__open_group_invitation">Open group invitation</string>
<string name="open_group_guidelines_pinned_message">Pinned message</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
<string name="open_group_guidelines_read">Read</string>
<string name="open_group_invitation_view__join_accessibility_description">ज्वॉइन करें</string>
<string name="open_group_invitation_view__open_group_invitation">ग्रुप आमंत्रण खोलें</string>
<string name="open_group_guidelines_pinned_message">पिन किया संदेश</string>
<string name="open_group_guidelines_community_guidelines">सामुदायिक निर्देश</string>
<string name="open_group_guidelines_read">पढ़ें</string>
<!-- QuoteView -->
<string name="QuoteView_audio">ऑडियो</string>
<string name="QuoteView_video">वीडियो </string>
@ -426,8 +426,8 @@
<!-- preferences.xml -->
<string name="preferences__pref_enter_sends_title">दर्ज कुंजी भेजता है</string>
<string name="preferences__pressing_the_enter_key_will_send_text_messages">एंटर कुंजी दबाकर टेक्स्ट संदेश भेजे जाएंगे</string>
<string name="preferences__send_link_previews">Send link previews</string>
<string name="preferences__previews_are_supported_for">Previews are supported for Imgur, Instagram, Pinterest, Reddit, and YouTube links</string>
<string name="preferences__send_link_previews">लिंक प्रिव्यू भेजें</string>
<string name="preferences__previews_are_supported_for">Imgur, Instagram, Pinterest, Reddit, और YouTube के लिए लिंक प्रिव्यू उपलब्ध हैं</string>
<string name="preferences__screen_security">स्क्रीन सुरक्षा</string>
<string name="preferences__disable_screen_security_to_allow_screen_shots">रीसेंट सूची में और ऐप के अंदर स्क्रीनशॉट ब्लॉक करें</string>
<string name="preferences__notifications">सूचनाएं</string>
@ -464,8 +464,8 @@
<string name="preferences__incognito_keyboard">गुप्त कीबोर्ड</string>
<string name="preferences__read_receipts">पढ़ने की रसीदें</string>
<string name="preferences__if_read_receipts_are_disabled_you_wont_be_able_to_see_read_receipts">यदि रीड रसीद अक्षम हैं, तो आप दूसरों से पढ़ने की रसीदें नहीं देख पाएंगे।</string>
<string name="preferences__typing_indicators">Typing indicators</string>
<string name="preferences__if_typing_indicators_are_disabled_you_wont_be_able_to_see_typing_indicators">If typing indicators are disabled, you won\'t be able to see typing indicators from others.</string>
<string name="preferences__typing_indicators">टाइपिंग सूचक</string>
<string name="preferences__if_typing_indicators_are_disabled_you_wont_be_able_to_see_typing_indicators">अगर टाइपिंग सूचक बंद हैं तो आप दूसरों के टाइपिंग सूचक नहीं देख पाएंगे।</string>
<string name="preferences__request_keyboard_to_disable_personalized_learning">व्यक्तिगत सीखने को अक्षम करने के लिए कीबोर्ड को अनुरोध करें</string>
<string name="preferences__light_theme">रोशनी </string>
<string name="preferences__dark_theme">अँधेरा </string>
@ -488,7 +488,7 @@
<string name="conversation_context__menu_message_details">संदेश का विवरण</string>
<string name="conversation_context__menu_copy_text">कॉपी टेक्स्ट</string>
<string name="conversation_context__menu_delete_message"> डिलीट मेसिज</string>
<string name="conversation_context__menu_ban_user">Ban user</string>
<string name="conversation_context__menu_ban_user">प्रतिबंध उपयोगकर्ता</string>
<string name="conversation_context__menu_resend_message">संदेश दोबारा भेजें</string>
<string name="conversation_context__menu_reply_to_message">संदेश का जवाब</string>
<!-- conversation_context_image -->
@ -531,7 +531,7 @@
<string name="backup_enable_dialog__backups_will_be_saved_to_external_storage_and_encrypted_with_the_passphrase_below_you_must_have_this_passphrase_in_order_to_restore_a_backup">बैकअप को बाहरी स्टोरेज में सहेजा जाएगा और नीचे पासफ्रेज से एन्क्रिप्ट किया जाएगा। बैकअप को पुनर्स्थापित करने के लिए आपके पास यह पासफ्रेज़ होना चाहिए।</string>
<string name="backup_enable_dialog__i_have_written_down_this_passphrase">मैंने इस पासफ्रेज को लिखा है। इसके बिना, मैं बैकअप को पुनर्स्थापित करने में असमर्थ हूं।</string>
<string name="registration_activity__skip">छोड़ दे </string>
<string name="RegistrationActivity_backup_failure_downgrade">Cannot import backups from newer versions of Session</string>
<string name="RegistrationActivity_backup_failure_downgrade">सेशन के नए वर्जन से बैकअप लाने में असमर्थ</string>
<string name="RegistrationActivity_incorrect_backup_passphrase">गलत बैकअप पासफ्रेज</string>
<string name="BackupDialog_enable_local_backups">स्थानीय बैकअप सक्षम करें?</string>
<string name="BackupDialog_enable_backups">बैकअप सक्षम करें</string>
@ -548,153 +548,153 @@
<string name="preferences_app_protection__screen_lock_inactivity_timeout">स्क्रीन लॉक निष्क्रियता टाइमआउट</string>
<string name="AppProtectionPreferenceFragment_none">कुछ नहीं</string>
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<string name="activity_conversation_copy_public_key_button_title">पब्लिक की कॉपी करें</string>
<!-- Session -->
<string name="continue_2">Continue</string>
<string name="copy">Copy</string>
<string name="invalid_url">Invalid URL</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="next">Next</string>
<string name="share">Share</string>
<string name="invalid_session_id">Invalid Session ID</string>
<string name="cancel">Cancel</string>
<string name="your_session_id">Your Session ID</string>
<string name="activity_landing_title_2">Your Session begins here...</string>
<string name="activity_landing_register_button_title">Create Session ID</string>
<string name="activity_landing_restore_button_title">Continue Your Session</string>
<string name="view_fake_chat_bubble_1">What\'s Session?</string>
<string name="view_fake_chat_bubble_2">It\'s a decentralized, encrypted messaging app</string>
<string name="view_fake_chat_bubble_3">So it doesn\'t collect my personal information or my conversation metadata? How does it work?</string>
<string name="view_fake_chat_bubble_4">Using a combination of advanced anonymous routing and end-to-end encryption technologies.</string>
<string name="view_fake_chat_bubble_5">Friends don\'t let friends use compromised messengers. You\'re welcome.</string>
<string name="activity_register_title">Say hello to your Session ID</string>
<string name="activity_register_explanation">Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.</string>
<string name="activity_restore_title">Restore your account</string>
<string name="activity_restore_explanation">Enter the recovery phrase that was given to you when you signed up to restore your account.</string>
<string name="activity_restore_seed_edit_text_hint">Enter your recovery phrase</string>
<string name="activity_display_name_title_2">Pick your display name</string>
<string name="activity_display_name_explanation">This will be your name when you use Session. It can be your real name, an alias, or anything else you like.</string>
<string name="activity_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_display_name_display_name_missing_error">Please pick a display name</string>
<string name="activity_display_name_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_pn_mode_recommended_option_tag">Recommended</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Please Pick an Option</string>
<string name="activity_home_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_home_empty_state_button_title">Start a Session</string>
<string name="activity_home_leave_group_dialog_message">Are you sure you want to leave this group?</string>
<string name="activity_home_leaving_group_failed_message">"Couldn't leave group"</string>
<string name="activity_home_delete_conversation_dialog_message">Are you sure you want to delete this conversation?</string>
<string name="activity_home_conversation_deleted_message">Conversation deleted</string>
<string name="activity_seed_title">Your Recovery Phrase</string>
<string name="activity_seed_title_2">Meet your recovery phrase</string>
<string name="activity_seed_explanation">Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and don\'t give it to anyone.</string>
<string name="activity_seed_reveal_button_title">Hold to reveal</string>
<string name="view_seed_reminder_title">You\'re almost finished! 80%</string>
<string name="view_seed_reminder_subtitle_1">Secure your account by saving your recovery phrase</string>
<string name="view_seed_reminder_subtitle_2">Tap and hold the redacted words to reveal your recovery phrase, then store it safely to secure your Session ID.</string>
<string name="view_seed_reminder_subtitle_3">Make sure to store your recovery phrase in a safe place</string>
<string name="activity_path_title">Path</string>
<string name="activity_path_explanation">Session hides your IP by bouncing your messages through several Service Nodes in Session\'s decentralized network. These are the countries your connection is currently being bounced through:</string>
<string name="activity_path_device_row_title">You</string>
<string name="activity_path_guard_node_row_title">Entry Node</string>
<string name="activity_path_service_node_row_title">Service Node</string>
<string name="activity_path_destination_row_title">Destination</string>
<string name="activity_path_learn_more_button_title">Learn More</string>
<string name="activity_create_private_chat_title">New Session</string>
<string name="activity_create_private_chat_enter_session_id_tab_title">Enter Session ID</string>
<string name="activity_create_private_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_create_private_chat_scan_qr_code_explanation">Scan a user\'s QR code to start a session. QR codes can be found by tapping the QR code icon in account settings.</string>
<string name="fragment_enter_public_key_edit_text_hint">Enter Session ID of recipient</string>
<string name="fragment_enter_public_key_explanation">Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code.</string>
<string name="fragment_scan_qr_code_camera_access_explanation">Session needs camera access to scan QR codes</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">Grant Camera Access</string>
<string name="activity_create_closed_group_title">New Closed Group</string>
<string name="activity_create_closed_group_edit_text_hint">Enter a group name</string>
<string name="activity_create_closed_group_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_create_closed_group_empty_state_button_title">Start a Session</string>
<string name="activity_create_closed_group_group_name_missing_error">Please enter a group name</string>
<string name="activity_create_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_create_closed_group_not_enough_group_members_error">Please pick at least 1 group member</string>
<string name="activity_create_closed_group_too_many_group_members_error">A closed group cannot have more than 100 members</string>
<string name="activity_join_public_chat_title">Join Open Group</string>
<string name="activity_join_public_chat_error">Couldn\'t join group</string>
<string name="activity_join_public_chat_enter_group_url_tab_title">Open Group URL</string>
<string name="activity_join_public_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_join_public_chat_scan_qr_code_explanation">Scan the QR code of the open group you\'d like to join</string>
<string name="fragment_enter_chat_url_edit_text_hint">Enter an open group URL</string>
<string name="activity_settings_title">Settings</string>
<string name="activity_settings_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_settings_display_name_missing_error">Please pick a display name</string>
<string name="activity_settings_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_settings_privacy_button_title">Privacy</string>
<string name="activity_settings_notifications_button_title">Notifications</string>
<string name="activity_settings_chats_button_title">Chats</string>
<string name="activity_settings_devices_button_title">Devices</string>
<string name="activity_settings_invite_button_title">Invite</string>
<string name="activity_settings_recovery_phrase_button_title">Recovery Phrase</string>
<string name="activity_settings_clear_all_data_button_title">Clear Data</string>
<string name="activity_settings_help_translate_session">Help us Translate Session</string>
<string name="activity_notification_settings_title">Notifications</string>
<string name="activity_notification_settings_style_section_title">Notification Style</string>
<string name="activity_notification_settings_content_section_title">Notification Content</string>
<string name="activity_privacy_settings_title">Privacy</string>
<string name="activity_chat_settings_title">Chats</string>
<string name="preferences_notifications_strategy_category_title">Notification Strategy</string>
<string name="fragment_device_list_bottom_sheet_change_name_button_title">Change name</string>
<string name="fragment_device_list_bottom_sheet_unlink_device_button_title">Unlink device</string>
<string name="dialog_seed_title">Your Recovery Phrase</string>
<string name="dialog_seed_explanation">This is your recovery phrase. With it, you can restore or migrate your Session ID to a new device.</string>
<string name="dialog_clear_all_data_title">Clear All Data</string>
<string name="dialog_clear_all_data_explanation">This will permanently delete your messages, sessions, and contacts.</string>
<string name="activity_qr_code_title">QR Code</string>
<string name="activity_qr_code_view_my_qr_code_tab_title">View My QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_explanation">Scan someone\'s QR code to start a conversation with them</string>
<string name="fragment_view_my_qr_code_title">Scan Me</string>
<string name="fragment_view_my_qr_code_explanation">This is your QR code. Other users can scan it to start a session with you.</string>
<string name="fragment_view_my_qr_code_share_title">Share QR Code</string>
<string name="fragment_contact_selection_contacts_title">Contacts</string>
<string name="fragment_contact_selection_closed_groups_title">Closed Groups</string>
<string name="fragment_contact_selection_open_groups_title">Open Groups</string>
<string name="fragment_contact_selection_empty_contacts">You don\'t have any contacts yet</string>
<string name="continue_2">जारी रखें</string>
<string name="copy">कॉपी करें</string>
<string name="invalid_url">अमान्य यूआरएल</string>
<string name="copied_to_clipboard">क्लिपबोर्ड पर कॉपी किया गया है</string>
<string name="next">अगला</string>
<string name="share">साझा करें</string>
<string name="invalid_session_id">अमान्य सेशन आईडी</string>
<string name="cancel">रद्द करें</string>
<string name="your_session_id">आपकी सेशन आईडी</string>
<string name="activity_landing_title_2">आपका सेशन यहां आरंभ होता है...</string>
<string name="activity_landing_register_button_title">सेशन आईडी बनाएं</string>
<string name="activity_landing_restore_button_title">अपना सेशन जारी रखें</string>
<string name="view_fake_chat_bubble_1">सेशन क्या है?</string>
<string name="view_fake_chat_bubble_2">यह एक decentralized, encrypted मेसेजिंग ऐप है</string>
<string name="view_fake_chat_bubble_3">इसलिए यह मेरी निजी जानकारी या बातचीत का metadata इकठ्ठा नहीं करता? यह कैसे काम करता है?</string>
<string name="view_fake_chat_bubble_4">एडवांस्ड anonymous routing और end-to-end encryption के मिश्रण का प्रयोग करके।</string>
<string name="view_fake_chat_bubble_5">दोस्त दोस्तों को असुरक्षित मैसेंजर नहीं उपयोग करने देते। आपका स्वागत है।</string>
<string name="activity_register_title">अपनी सेशन आईडी को हेल्लो कहें</string>
<string name="activity_register_explanation">आपकी Session ID एक ऐसा अनोखा पता है जिसका उपयोग करके लोग आपसे Session पर संपर्क कर सकते हैं। आपकी वास्तविक पहचान से कोई संबंध नहीं होने के कारण, आपका Session ID डिज़ाइन द्वारा पूरी तरह से गुमनाम और निजी है |</string>
<string name="activity_restore_title">अकाउंट रिस्टोर करें</string>
<string name="activity_restore_explanation">अकाउंट बनाते समय बनाया गया अपना रिकवरी वाक्य डालें।</string>
<string name="activity_restore_seed_edit_text_hint">अपना पुनर्प्राप्ति वाक्यांश लिखें</string>
<string name="activity_display_name_title_2">अपना प्रदर्शन नाम चुनें</string>
<string name="activity_display_name_explanation">यह सेशन इस्तेमाल करते समय आपका नाम होगा। यह आपका असली नाम, उपनाम या कुछ और भी हो सकता है।</string>
<string name="activity_display_name_edit_text_hint">डिस्प्ले नाम डालें</string>
<string name="activity_display_name_display_name_missing_error">कृपया एक डिस्प्ले नाम चुनें</string>
<string name="activity_display_name_display_name_too_long_error">कृपया एक छोटा डिसप्ले नाम चुनें</string>
<string name="activity_pn_mode_recommended_option_tag">सुझाया गया</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">कृपया एक विकल्प चुनें।</string>
<string name="activity_home_empty_state_message">अभी तक आपके पास कोई कॉन्टैक्ट्स नहीं हैं</string>
<string name="activity_home_empty_state_button_title">एक सेशन प्रारंभ करें</string>
<string name="activity_home_leave_group_dialog_message">क्या आप यह ग्रुप छोड़ना चाहते हैं?</string>
<string name="activity_home_leaving_group_failed_message">"ग्रुप नहीं छोड़ सके"</string>
<string name="activity_home_delete_conversation_dialog_message">क्या वाकई आप इस वार्तालाप को हटाना चाहते हैं?</string>
<string name="activity_home_conversation_deleted_message">बातचीत हटाई गई</string>
<string name="activity_seed_title">आपका पुनर्प्राप्ति वाक्यांश</string>
<string name="activity_seed_title_2">अपने पुनर्प्राप्ति वाक्यांश से मिलें</string>
<string name="activity_seed_explanation">आपका रिकवरी फ्रेज आपके Session Id की मास्टर कीय है — आप इसका इस्तेमाल अपनी Session ID को वापिस पाने के लिए कर सकते है अगर आपका फ़ोन गुम हो गया है | अपने रिकवरी फ्रेज को एक सुरक्षित जगह रखे और इसे किसी के साथ शेयर न करे |</string>
<string name="activity_seed_reveal_button_title">देखने के लिए दबाएं</string>
<string name="view_seed_reminder_title">पूर्ण होने वाला है! 80%</string>
<string name="view_seed_reminder_subtitle_1">अकाउंट सुरक्षित रखने के लिए अपनी पुनर्व्यप्ती वाक्यांश को सेव करके रखें</string>
<string name="view_seed_reminder_subtitle_2">अपना पुनर्प्राप्ति वाक्यांश प्रकट करने के लिए संशोधित शब्दों को टैप और होल्ड करें, फिर अपनी Session ID को सुरक्षित करने के लिए इसे सुरक्षित रूप से संग्रहीत करें।</string>
<string name="view_seed_reminder_subtitle_3">अपने रिकवरी फ्रेज को एक सुरक्षित जगह रखे</string>
<string name="activity_path_title">पथ</string>
<string name="activity_path_explanation">सेशन आपके मैसेज को सेशन के डेंटरलिज़्ड नेटवर्क की बहुत साडी सर्विस नोड्स में भेज देता है जो आपकी IP को छुपाती है.</string>
<string name="activity_path_device_row_title">आप</string>
<string name="activity_path_guard_node_row_title">प्रवेश नोड</string>
<string name="activity_path_service_node_row_title">सर्विस नोड</string>
<string name="activity_path_destination_row_title">गंतव्य</string>
<string name="activity_path_learn_more_button_title">अधिक जानें</string>
<string name="activity_create_private_chat_title">नया सेशन</string>
<string name="activity_create_private_chat_enter_session_id_tab_title">सेशन आईडी डालें</string>
<string name="activity_create_private_chat_scan_qr_code_tab_title">QR कोड को स्कैन करें</string>
<string name="activity_create_private_chat_scan_qr_code_explanation">सेशन शुरू करने के लिए यूजर के क्यूआर कोड को स्कैन करें। क्यूआर कोड को अकाउंट सेटिंग में क्यूआर कोड आइकन पर टैप करके पाया जा सकता है।</string>
<string name="fragment_enter_public_key_edit_text_hint">रेसिपिएंट का Session आईडी दर्ज करें</string>
<string name="fragment_enter_public_key_explanation">यूजर अपनी अकाउंट सेटिंग में जाकर और \"शेयर Session आईडी\" टैप करके, या अपना क्यूआर कोड शेयर कर सकते है।</string>
<string name="fragment_scan_qr_code_camera_access_explanation">क्यूआर कोड स्कैन करने के लिए Session को कैमरा एक्सेस की आवश्यकता है</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">कैमरा केउपयोग को प्रदान करें</string>
<string name="activity_create_closed_group_title">नया Closed Group</string>
<string name="activity_create_closed_group_edit_text_hint">ग्रुप का नाम डालें</string>
<string name="activity_create_closed_group_empty_state_message">अभी तक आपके पास कोई कॉन्टैक्ट्स नहीं हैं</string>
<string name="activity_create_closed_group_empty_state_button_title">एक सेशन प्रारंभ करें</string>
<string name="activity_create_closed_group_group_name_missing_error">कृपया ग्रुप नाम डालें</string>
<string name="activity_create_closed_group_group_name_too_long_error">कृपया एक छोटा ग्रुप नाम डालें</string>
<string name="activity_create_closed_group_not_enough_group_members_error">कृपया कम से कम एक ग्रुप सदस्य चुनें</string>
<string name="activity_create_closed_group_too_many_group_members_error">एक क्लोज्ड ग्रुप में 100 से अधिक सदस्य नहीं हो सकते हैं</string>
<string name="activity_join_public_chat_title">Open ग्रुप से जुड़ें</string>
<string name="activity_join_public_chat_error">ग्रुप नहीं ज्वाइन कर सके</string>
<string name="activity_join_public_chat_enter_group_url_tab_title">ग्रुप URL खोलें</string>
<string name="activity_join_public_chat_scan_qr_code_tab_title">QR कोड को स्कैन करें</string>
<string name="activity_join_public_chat_scan_qr_code_explanation">उस ओपन ग्रुप का क्यूआर कोड स्कैन करें जिसमें आप शामिल होना चाहते हैं</string>
<string name="fragment_enter_chat_url_edit_text_hint">Open ग्रुप URL दर्ज करें</string>
<string name="activity_settings_title">सेटिंग्स</string>
<string name="activity_settings_display_name_edit_text_hint">डिस्प्ले नाम डालें</string>
<string name="activity_settings_display_name_missing_error">कृपया एक डिस्प्ले नाम चुनें</string>
<string name="activity_settings_display_name_too_long_error">कृपया एक छोटा डिसप्ले नाम चुनें</string>
<string name="activity_settings_privacy_button_title">गोपनियता</string>
<string name="activity_settings_notifications_button_title">सूचनाएं</string>
<string name="activity_settings_chats_button_title">चैट</string>
<string name="activity_settings_devices_button_title">डिवाइसेज़</string>
<string name="activity_settings_invite_button_title">आमंत्रण</string>
<string name="activity_settings_recovery_phrase_button_title">पुनर्प्राप्ति वाक्यांश</string>
<string name="activity_settings_clear_all_data_button_title">डेटा हटाएं</string>
<string name="activity_settings_help_translate_session">सेशन का अनुवाद करने में सहायता करें</string>
<string name="activity_notification_settings_title">सूचनाएं</string>
<string name="activity_notification_settings_style_section_title">अधिसूचना शैली</string>
<string name="activity_notification_settings_content_section_title">सूचना विषय सूची</string>
<string name="activity_privacy_settings_title">गोपनियता</string>
<string name="activity_chat_settings_title">चैट</string>
<string name="preferences_notifications_strategy_category_title">सूचना रणनीति</string>
<string name="fragment_device_list_bottom_sheet_change_name_button_title">नाम बदलें</string>
<string name="fragment_device_list_bottom_sheet_unlink_device_button_title">डिवाइस को अनलिंक करें</string>
<string name="dialog_seed_title">आपका पुनर्प्राप्ति वाक्यांश</string>
<string name="dialog_seed_explanation">यह आपका रिकवरी फ्रेज है | इसके साथ, आप अपनी Session ID को किसी नए डिवाइस पर माइग्रेट कर सकते हैं।</string>
<string name="dialog_clear_all_data_title">सभी डेटा हटाएं</string>
<string name="dialog_clear_all_data_explanation">यह आपके मैसेजस, सेशन और कॉन्टैक्टस को स्थायी रूप से हटा देगा।</string>
<string name="activity_qr_code_title">QR कोड</string>
<string name="activity_qr_code_view_my_qr_code_tab_title">मेरा QR कोड देखें</string>
<string name="activity_qr_code_view_scan_qr_code_tab_title">QR कोड को स्कैन करें</string>
<string name="activity_qr_code_view_scan_qr_code_explanation">किसी के साथ बातचीत शुरू करने के लिए उसका क्यूआर कोड स्कैन करें</string>
<string name="fragment_view_my_qr_code_title">मुझे स्कैन करें</string>
<string name="fragment_view_my_qr_code_explanation">यह आपका क्यूआर कोड है। अन्य उपयोगकर्ता आपके साथ सेशन शुरू करने के लिए इसे स्कैन कर सकते हैं।</string>
<string name="fragment_view_my_qr_code_share_title">QR कोड साझा करे</string>
<string name="fragment_contact_selection_contacts_title">संपर्क</string>
<string name="fragment_contact_selection_closed_groups_title">बंद ग्रुप</string>
<string name="fragment_contact_selection_open_groups_title">खुले ग्रुप</string>
<string name="fragment_contact_selection_empty_contacts">अभी तक आपके पास कोई कॉन्टैक्ट्स नहीं हैं</string>
<!-- Next round of translation -->
<string name="menu_apply_button">Apply</string>
<string name="menu_done_button">Done</string>
<string name="activity_edit_closed_group_title">Edit Group</string>
<string name="activity_edit_closed_group_edit_text_hint">Enter a new group name</string>
<string name="activity_edit_closed_group_edit_members">Members</string>
<string name="activity_edit_closed_group_add_members">Add members</string>
<string name="activity_edit_closed_group_group_name_missing_error">Group name can\'t be empty</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Groups must have at least 1 group member</string>
<string name="fragment_edit_group_bottom_sheet_remove">Remove user from group</string>
<string name="activity_select_contacts_title">Select Contacts</string>
<string name="view_reset_secure_session_done_message">Secure session reset done</string>
<string name="dialog_ui_mode_title">Theme</string>
<string name="dialog_ui_mode_option_day">Day</string>
<string name="dialog_ui_mode_option_night">Night</string>
<string name="dialog_ui_mode_option_system_default">System default</string>
<string name="activity_conversation_menu_copy_session_id">Copy Session ID</string>
<string name="attachment">Attachment</string>
<string name="attachment_type_voice_message">Voice Message</string>
<string name="details">Details</string>
<string name="dialog_backup_activation_failed">Failed to activate backups. Please try again or contact support.</string>
<string name="activity_backup_restore_title">Restore backup</string>
<string name="activity_backup_restore_select_file">Select a file</string>
<string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string>
<string name="activity_backup_restore_passphrase">30-digit passphrase</string>
<string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string>
<string name="activity_link_device_link_device">Link a Device</string>
<string name="activity_join_public_chat_join_rooms">Or join one of these…</string>
<string name="activity_pn_mode_message_notifications">Message Notifications</string>
<string name="activity_pn_mode_explanation">There are two ways Session can notify you of new messages.</string>
<string name="activity_pn_mode_fast_mode">Fast Mode</string>
<string name="activity_pn_mode_slow_mode">Slow Mode</string>
<string name="activity_pn_mode_fast_mode_explanation">Youll be notified of new messages reliably and immediately using Googles notification servers.</string>
<string name="activity_pn_mode_slow_mode_explanation">Session will occasionally check for new messages in the background.</string>
<string name="fragment_recovery_phrase_title">Recovery Phrase</string>
<string name="activity_prompt_passphrase_session_locked">Session is Locked</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Tap to Unlock</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
<string name="menu_apply_button">लागू करें</string>
<string name="menu_done_button">पूरा हुआ</string>
<string name="activity_edit_closed_group_title">ग्रुप बदलें</string>
<string name="activity_edit_closed_group_edit_text_hint">ग्रुप का नया नाम डालें</string>
<string name="activity_edit_closed_group_edit_members">सदस्य</string>
<string name="activity_edit_closed_group_add_members">सदस्य जोड़ें</string>
<string name="activity_edit_closed_group_group_name_missing_error">ग्रुप नाम रिक्त नहीं हो सकता।</string>
<string name="activity_edit_closed_group_group_name_too_long_error">कृपया एक छोटा ग्रुप नाम डालें</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">ग्रुप में कम से कम 1 सदस्य होना चाहिए</string>
<string name="fragment_edit_group_bottom_sheet_remove">उपयोगकर्ता को ग्रुप से निकालें</string>
<string name="activity_select_contacts_title">कांटेक्ट चुनें</string>
<string name="view_reset_secure_session_done_message">सुरक्षित सेशन रीसेट कर दिया गया है</string>
<string name="dialog_ui_mode_title">थीम</string>
<string name="dialog_ui_mode_option_day">हलका</string>
<string name="dialog_ui_mode_option_night">अंधेरा</string>
<string name="dialog_ui_mode_option_system_default">सिस्टम डिफ़ॉल्ट का इस्तेमाल करें</string>
<string name="activity_conversation_menu_copy_session_id">कापी सेशन आईडी</string>
<string name="attachment">अटैचमेंट</string>
<string name="attachment_type_voice_message">वौइस् मैसेज</string>
<string name="details">विस्तार</string>
<string name="dialog_backup_activation_failed">बैकअप सक्रिय करने में विफल। कृपया पुन: प्रयास करें या समर्थन से संपर्क करें।</string>
<string name="activity_backup_restore_title">बैकअप रिस्टोर करें</string>
<string name="activity_backup_restore_select_file">फाइल चुनें</string>
<string name="activity_backup_restore_explanation_1">एक बैकअप फ़ाइल चुनें और वह पासफ़्रेज़ दर्ज करें जिसके साथ इसे बनाया गया था।</string>
<string name="activity_backup_restore_passphrase">30 अंक का पासफ्रेस</string>
<string name="activity_link_device_skip_prompt">यह समय ले रहा है, इसे छोड़ दें?</string>
<string name="activity_link_device_link_device">डिवाइस को लिंक करें</string>
<string name="activity_join_public_chat_join_rooms">या इनमें से एक को जोड़ें...</string>
<string name="activity_pn_mode_message_notifications">संदेश सूचनाएं</string>
<string name="activity_pn_mode_explanation">सेशन आपको नए संदेश के बारे में दो तरीकों से बता सकता है</string>
<string name="activity_pn_mode_fast_mode">फास्ट मोड</string>
<string name="activity_pn_mode_slow_mode">स्लो मोड</string>
<string name="activity_pn_mode_fast_mode_explanation">आपको नई सूचनाओं के बारे में google के नोटीफिकेशन servers से तत्काल सूचित किया जाएगा।</string>
<string name="activity_pn_mode_slow_mode_explanation">Session कभी-कभी पृष्ठभूमि में नए संदेशों की जांच करेगा।</string>
<string name="fragment_recovery_phrase_title">पुनर्प्राप्ति वाक्यांश</string>
<string name="activity_prompt_passphrase_session_locked">Session लॉक है</string>
<string name="activity_prompt_passphrase_tap_to_unlock">अनलॉक करने के लिए टैप करें</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">उपनाम चुनें</string>
<string name="invalid_public_key">अमान्य सार्वजनिक कुंजी</string>
</resources>

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Session</string>
<string name="app_name">Ülés</string>
<string name="yes">Igen</string>
<string name="no">Nem</string>
<string name="delete">Törlés</string>
<string name="ban">Ban</string>
<string name="ban">Kitiltás</string>
<string name="please_wait">Kérlek várj...</string>
<string name="save">Mentés</string>
<string name="note_to_self">Privát feljegyzés</string>
<string name="version_s">Version %s</string>
<string name="version_s">Verzió %s</string>
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">Új üzenet</string>
<!-- AlbumThumbnailView -->
@ -61,11 +61,11 @@
<string name="ConversationActivity_add_attachment">Melléklet csatolása</string>
<string name="ConversationActivity_select_contact_info">Válassz kontakt infót</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">Sajnos hiba történt a melléklet csatolása során.</string>
<string name="ConversationActivity_message">Message</string>
<string name="ConversationActivity_compose">Compose</string>
<string name="ConversationActivity_muted_until_date">Muted until %1$s</string>
<string name="ConversationActivity_member_count">%1$d members</string>
<string name="ConversationActivity_open_group_guidelines">Community Guidelines</string>
<string name="ConversationActivity_message">Üzenet</string>
<string name="ConversationActivity_compose">Összeállít</string>
<string name="ConversationActivity_muted_until_date">Eddig van némítva %1$s</string>
<string name="ConversationActivity_member_count">%1$d tagok</string>
<string name="ConversationActivity_open_group_guidelines">Közösségi irányelvek</string>
<string name="ConversationActivity_invalid_recipient">Érvénytelen címzett!</string>
<string name="ConversationActivity_added_to_home_screen">Hozzáadva a kezdőképernyőhöz</string>
<string name="ConversationActivity_leave_group">Kilépsz a csoportból?</string>
@ -77,9 +77,9 @@
<string name="ConversationActivity_attachment_exceeds_size_limits">A melléklet mérete meghaladja az adott típushoz tartozó mérethatárt.</string>
<string name="ConversationActivity_unable_to_record_audio">Nem lehet hangot rögzíteni!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">Nem található eszközödön megfelelő alkalmazás a hivatkozás kezeléséhez.</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_invite_to_open_group">Tagok hozzáadása</string>
<string name="ConversationActivity_join_open_group">Csatlakozott %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Biztosan csatlakozni szeretne a(z) <b>%s</b> nyitott csoportban?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">Hangüzenetek küldéséhez engedélyezd, hogy a Session hozzáférhessen a mikrofonhoz!</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">A Session-nak szüksége van a Mikrofon engedélyre, hogy hangüzeneteket küldhessen, de ez jelenleg nincs megadva. Kérlek menj az alkalmazásbeállításokhoz, válaszd az \"Engedélyek\"-et és engedélyezd az \"Mikrofon\"-t.</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">Fotók és videók készítéséhez engedélyezd a Session-nak a kamerához való hozzáférést!</string>
@ -102,7 +102,7 @@
<item quantity="one">Ez végelegesen törölni fogja a kiválasztott üzenetet.</item>
<item quantity="other">Ez véglegesen törölni fogja mind a(z) %1$d db kiválasztott üzenetet.</item>
</plurals>
<string name="ConversationFragment_ban_selected_user">Ban this user?</string>
<string name="ConversationFragment_ban_selected_user">Kitiltja ezt a felhasználót?</string>
<string name="ConversationFragment_save_to_sd_card">Mentés tárolóra?</string>
<plurals name="ConversationFragment_saving_n_media_to_storage_warning">
<item quantity="one">Ez a média mentése a tárolóra lehetővé teszi bármelyik másik alkalmazásnak a készülékeden, hogy hozzáférjen.\n\nFolytatod?</item>
@ -126,8 +126,8 @@
<string name="ConversationFragment_sms">SMS</string>
<string name="ConversationFragment_deleting">Törlés</string>
<string name="ConversationFragment_deleting_messages">Üzenetek törlése...</string>
<string name="ConversationFragment_banning">Banning</string>
<string name="ConversationFragment_banning_user">Banning user</string>
<string name="ConversationFragment_banning">Kitiltás</string>
<string name="ConversationFragment_banning_user">Felhasználó kitiltása</string>
<string name="ConversationFragment_quoted_message_not_found">Az eredeti üzenet nem található</string>
<string name="ConversationFragment_quoted_message_no_longer_available">Az eredeti üzenet már nem érhető el</string>
<!-- ConversationListItem -->
@ -236,14 +236,14 @@
<string name="ThreadRecord_s_is_on_signal">%s a Session-on van!</string>
<string name="ThreadRecord_disappearing_messages_disabled">Eltűnő üzenetek letiltva</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">Eltűnő üzenet ideje beállítva erre: %s</string>
<string name="ThreadRecord_s_took_a_screenshot">%s took a screenshot.</string>
<string name="ThreadRecord_media_saved_by_s">Media saved by %s.</string>
<string name="ThreadRecord_s_took_a_screenshot">%s készített egy képernyőképet.</string>
<string name="ThreadRecord_media_saved_by_s">Média mentve ide %s.</string>
<string name="ThreadRecord_safety_number_changed">Megváltozott a biztonsági szám</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">Megváltozott a biztonsági számod vele: %s.</string>
<string name="ThreadRecord_you_marked_verified">Megerősítettnek jelölted</string>
<string name="ThreadRecord_you_marked_unverified">Megerősítetlennek jelölted</string>
<string name="ThreadRecord_empty_message">This conversation is empty</string>
<string name="ThreadRecord_open_group_invitation">Open group invitation</string>
<string name="ThreadRecord_empty_message">Ez a beszélgetés üres</string>
<string name="ThreadRecord_open_group_invitation">Nyilvános csoport meghívó</string>
<!-- UpdateApkReadyListener -->
<string name="UpdateApkReadyListener_Signal_update">Session frissítés</string>
<string name="UpdateApkReadyListener_a_new_version_of_signal_is_available_tap_to_update">A Session egy új verziója érhető el, koppints a frissítéshez</string>
@ -302,7 +302,7 @@
<!-- ShortcutLauncherActivity -->
<string name="ShortcutLauncherActivity_invalid_shortcut">Érvénytelen parancsikon</string>
<!-- SingleRecipientNotificationBuilder -->
<string name="SingleRecipientNotificationBuilder_signal">Session</string>
<string name="SingleRecipientNotificationBuilder_signal">Ülés</string>
<string name="SingleRecipientNotificationBuilder_new_message">Új üzenet</string>
<!-- TransferControlView -->
<plurals name="TransferControlView_n_items">
@ -356,11 +356,11 @@
<string name="audio_view__pause_accessibility_description">Szünet</string>
<string name="audio_view__download_accessibility_description">Letöltés</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">Join</string>
<string name="open_group_invitation_view__open_group_invitation">Open group invitation</string>
<string name="open_group_guidelines_pinned_message">Pinned message</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
<string name="open_group_guidelines_read">Read</string>
<string name="open_group_invitation_view__join_accessibility_description">Csatlalkozás</string>
<string name="open_group_invitation_view__open_group_invitation">Nyilvános csoport meghívó</string>
<string name="open_group_guidelines_pinned_message">Kitűzött üzenet</string>
<string name="open_group_guidelines_community_guidelines">Közösségi irányelvek</string>
<string name="open_group_guidelines_read">Olvas</string>
<!-- QuoteView -->
<string name="QuoteView_audio">Hang</string>
<string name="QuoteView_video">Videó</string>
@ -552,17 +552,17 @@
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<!-- Session -->
<string name="continue_2">Continue</string>
<string name="copy">Copy</string>
<string name="invalid_url">Invalid URL</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="next">Next</string>
<string name="share">Share</string>
<string name="invalid_session_id">Invalid Session ID</string>
<string name="cancel">Cancel</string>
<string name="your_session_id">Your Session ID</string>
<string name="continue_2">Folytatás</string>
<string name="copy">Másolás</string>
<string name="invalid_url">Érvénytelen URL</string>
<string name="copied_to_clipboard">Vágólapra másolva</string>
<string name="next">Következő</string>
<string name="share">Megosztás</string>
<string name="invalid_session_id">Érvénytelen Session azonosító</string>
<string name="cancel">Mégse</string>
<string name="your_session_id">Az ön Session azonosítója</string>
<string name="activity_landing_title_2">Your Session begins here...</string>
<string name="activity_landing_register_button_title">Create Session ID</string>
<string name="activity_landing_register_button_title">Session azonosító létrehozása</string>
<string name="activity_landing_restore_button_title">Continue Your Session</string>
<string name="view_fake_chat_bubble_1">What\'s Session?</string>
<string name="view_fake_chat_bubble_2">It\'s a decentralized, encrypted messaging app</string>
@ -574,11 +574,11 @@
<string name="activity_restore_title">Restore your account</string>
<string name="activity_restore_explanation">Enter the recovery phrase that was given to you when you signed up to restore your account.</string>
<string name="activity_restore_seed_edit_text_hint">Enter your recovery phrase</string>
<string name="activity_display_name_title_2">Pick your display name</string>
<string name="activity_display_name_explanation">This will be your name when you use Session. It can be your real name, an alias, or anything else you like.</string>
<string name="activity_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_display_name_display_name_missing_error">Please pick a display name</string>
<string name="activity_display_name_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_display_name_title_2">Válassza ki a megjelenítendő nevet</string>
<string name="activity_display_name_explanation">Ez lesz az ön neve, amikor használja a Session alkalmazást. Ez lehet a valódi neve, álneve, vagy bármi más, ami tetszik.</string>
<string name="activity_display_name_edit_text_hint">Írja be a megjelenítendő nevet</string>
<string name="activity_display_name_display_name_missing_error">Kérjük, válassza ki a megjelenítendő nevet</string>
<string name="activity_display_name_display_name_too_long_error">Válasszon rövidebb megjelenítési nevet</string>
<string name="activity_pn_mode_recommended_option_tag">Recommended</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Please Pick an Option</string>
<string name="activity_home_empty_state_message">You don\'t have any contacts yet</string>
@ -597,7 +597,7 @@
<string name="view_seed_reminder_subtitle_3">Make sure to store your recovery phrase in a safe place</string>
<string name="activity_path_title">Path</string>
<string name="activity_path_explanation">Session hides your IP by bouncing your messages through several Service Nodes in Session\'s decentralized network. These are the countries your connection is currently being bounced through:</string>
<string name="activity_path_device_row_title">You</string>
<string name="activity_path_device_row_title">Te</string>
<string name="activity_path_guard_node_row_title">Entry Node</string>
<string name="activity_path_service_node_row_title">Service Node</string>
<string name="activity_path_destination_row_title">Destination</string>
@ -611,11 +611,11 @@
<string name="fragment_scan_qr_code_camera_access_explanation">Session needs camera access to scan QR codes</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">Grant Camera Access</string>
<string name="activity_create_closed_group_title">New Closed Group</string>
<string name="activity_create_closed_group_edit_text_hint">Enter a group name</string>
<string name="activity_create_closed_group_edit_text_hint">Írja be a csoport nevét</string>
<string name="activity_create_closed_group_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_create_closed_group_empty_state_button_title">Start a Session</string>
<string name="activity_create_closed_group_group_name_missing_error">Please enter a group name</string>
<string name="activity_create_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_create_closed_group_group_name_missing_error">Kérjük, adja meg a csoport nevét</string>
<string name="activity_create_closed_group_group_name_too_long_error">Írjon be rövidebb csoportnevet</string>
<string name="activity_create_closed_group_not_enough_group_members_error">Please pick at least 1 group member</string>
<string name="activity_create_closed_group_too_many_group_members_error">A closed group cannot have more than 100 members</string>
<string name="activity_join_public_chat_title">Join Open Group</string>
@ -624,25 +624,25 @@
<string name="activity_join_public_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_join_public_chat_scan_qr_code_explanation">Scan the QR code of the open group you\'d like to join</string>
<string name="fragment_enter_chat_url_edit_text_hint">Enter an open group URL</string>
<string name="activity_settings_title">Settings</string>
<string name="activity_settings_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_settings_display_name_missing_error">Please pick a display name</string>
<string name="activity_settings_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_settings_privacy_button_title">Privacy</string>
<string name="activity_settings_notifications_button_title">Notifications</string>
<string name="activity_settings_chats_button_title">Chats</string>
<string name="activity_settings_devices_button_title">Devices</string>
<string name="activity_settings_invite_button_title">Invite</string>
<string name="activity_settings_title">Beállítások</string>
<string name="activity_settings_display_name_edit_text_hint">Írja be a megjelenítendő nevet</string>
<string name="activity_settings_display_name_missing_error">Válasszon megjelenítési nevet</string>
<string name="activity_settings_display_name_too_long_error">Válasszon rövidebb megjelenítési nevet</string>
<string name="activity_settings_privacy_button_title">Adatvédelem</string>
<string name="activity_settings_notifications_button_title">Értesítések</string>
<string name="activity_settings_chats_button_title">Beszélgetések</string>
<string name="activity_settings_devices_button_title">Eszközök</string>
<string name="activity_settings_invite_button_title">Meghívás</string>
<string name="activity_settings_recovery_phrase_button_title">Recovery Phrase</string>
<string name="activity_settings_clear_all_data_button_title">Clear Data</string>
<string name="activity_settings_help_translate_session">Help us Translate Session</string>
<string name="activity_settings_clear_all_data_button_title">Adataid törlése</string>
<string name="activity_settings_help_translate_session">Segítsen nekünk a Session lefordításában</string>
<string name="activity_notification_settings_title">Notifications</string>
<string name="activity_notification_settings_style_section_title">Notification Style</string>
<string name="activity_notification_settings_style_section_title">Értesítések stílusa</string>
<string name="activity_notification_settings_content_section_title">Notification Content</string>
<string name="activity_privacy_settings_title">Privacy</string>
<string name="activity_chat_settings_title">Chats</string>
<string name="activity_privacy_settings_title">Adatvédelem</string>
<string name="activity_chat_settings_title">Beszélgetések</string>
<string name="preferences_notifications_strategy_category_title">Notification Strategy</string>
<string name="fragment_device_list_bottom_sheet_change_name_button_title">Change name</string>
<string name="fragment_device_list_bottom_sheet_change_name_button_title">Név módosítása</string>
<string name="fragment_device_list_bottom_sheet_unlink_device_button_title">Unlink device</string>
<string name="dialog_seed_title">Your Recovery Phrase</string>
<string name="dialog_seed_explanation">This is your recovery phrase. With it, you can restore or migrate your Session ID to a new device.</string>
@ -655,34 +655,34 @@
<string name="fragment_view_my_qr_code_title">Scan Me</string>
<string name="fragment_view_my_qr_code_explanation">This is your QR code. Other users can scan it to start a session with you.</string>
<string name="fragment_view_my_qr_code_share_title">Share QR Code</string>
<string name="fragment_contact_selection_contacts_title">Contacts</string>
<string name="fragment_contact_selection_contacts_title">Kapcsolatok</string>
<string name="fragment_contact_selection_closed_groups_title">Closed Groups</string>
<string name="fragment_contact_selection_open_groups_title">Open Groups</string>
<string name="fragment_contact_selection_empty_contacts">You don\'t have any contacts yet</string>
<!-- Next round of translation -->
<string name="menu_apply_button">Apply</string>
<string name="menu_done_button">Done</string>
<string name="activity_edit_closed_group_title">Edit Group</string>
<string name="activity_edit_closed_group_edit_text_hint">Enter a new group name</string>
<string name="activity_edit_closed_group_edit_members">Members</string>
<string name="activity_edit_closed_group_add_members">Add members</string>
<string name="activity_edit_closed_group_group_name_missing_error">Group name can\'t be empty</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="menu_apply_button">Alkalmaz</string>
<string name="menu_done_button">Kész</string>
<string name="activity_edit_closed_group_title">Csoport szerkesztése</string>
<string name="activity_edit_closed_group_edit_text_hint">Írjon be egy új csoportnevet</string>
<string name="activity_edit_closed_group_edit_members">Tagok</string>
<string name="activity_edit_closed_group_add_members">Tagok hozzáadása</string>
<string name="activity_edit_closed_group_group_name_missing_error">A csoport neve nem lehet üres</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Írjon be rövidebb csoportnevet</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Groups must have at least 1 group member</string>
<string name="fragment_edit_group_bottom_sheet_remove">Remove user from group</string>
<string name="activity_select_contacts_title">Select Contacts</string>
<string name="view_reset_secure_session_done_message">Secure session reset done</string>
<string name="dialog_ui_mode_title">Theme</string>
<string name="dialog_ui_mode_option_day">Day</string>
<string name="dialog_ui_mode_option_night">Night</string>
<string name="dialog_ui_mode_title">Téma</string>
<string name="dialog_ui_mode_option_day">Ki</string>
<string name="dialog_ui_mode_option_night">Be</string>
<string name="dialog_ui_mode_option_system_default">System default</string>
<string name="activity_conversation_menu_copy_session_id">Copy Session ID</string>
<string name="activity_conversation_menu_copy_session_id">Az ön Session azonosító kimásolása</string>
<string name="attachment">Attachment</string>
<string name="attachment_type_voice_message">Voice Message</string>
<string name="details">Details</string>
<string name="dialog_backup_activation_failed">Failed to activate backups. Please try again or contact support.</string>
<string name="activity_backup_restore_title">Restore backup</string>
<string name="activity_backup_restore_select_file">Select a file</string>
<string name="activity_backup_restore_select_file">Fájl kiválasztása</string>
<string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string>
<string name="activity_backup_restore_passphrase">30-digit passphrase</string>
<string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string>
@ -690,13 +690,13 @@
<string name="activity_join_public_chat_join_rooms">Or join one of these…</string>
<string name="activity_pn_mode_message_notifications">Message Notifications</string>
<string name="activity_pn_mode_explanation">There are two ways Session can notify you of new messages.</string>
<string name="activity_pn_mode_fast_mode">Fast Mode</string>
<string name="activity_pn_mode_slow_mode">Slow Mode</string>
<string name="activity_pn_mode_fast_mode">Gyorsított mód</string>
<string name="activity_pn_mode_slow_mode">Lassított mód</string>
<string name="activity_pn_mode_fast_mode_explanation">Youll be notified of new messages reliably and immediately using Googles notification servers.</string>
<string name="activity_pn_mode_slow_mode_explanation">Session will occasionally check for new messages in the background.</string>
<string name="fragment_recovery_phrase_title">Recovery Phrase</string>
<string name="activity_prompt_passphrase_session_locked">Session is Locked</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Tap to Unlock</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Koppintson a feloldáshoz</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Írjon be egy becenevet</string>
<string name="invalid_public_key">Érvénytelen nyilvános kulcs</string>
</resources>

View File

@ -3,35 +3,35 @@
<string name="app_name">Session</string>
<string name="yes">Ya</string>
<string name="no">Tidak</string>
<string name="delete">Delete</string>
<string name="ban">Ban</string>
<string name="please_wait">Please wait...</string>
<string name="delete">Hapus</string>
<string name="ban">Larang</string>
<string name="please_wait">Mohon Tunggu...</string>
<string name="save">Simpan</string>
<string name="note_to_self">Catatan Pribadi</string>
<string name="version_s">Versi %s</string>
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">Pesan baru</string>
<!-- AlbumThumbnailView -->
<string name="AlbumThumbnailView_plus">\+%d</string>
<string name="AlbumThumbnailView_plus">\+ %d</string>
<!-- ApplicationPreferencesActivity -->
<plurals name="ApplicationPreferencesActivity_messages_per_conversation">
<item quantity="other">%d messages per conversation</item>
<item quantity="other">%d pesan tiap percakapan</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">Delete all old messages now?</string>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">Hapus semua pesan lama?</string>
<plurals name="ApplicationPreferencesActivity_this_will_immediately_trim_all_conversations_to_the_d_most_recent_messages">
<item quantity="other">This will immediately trim all conversations to the %d most recent messages.</item>
<item quantity="other">Ini akan memangkas semua percakapan menjadi %d percakapan terbaru.</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete">Hapus</string>
<string name="ApplicationPreferencesActivity_On">On</string>
<string name="ApplicationPreferencesActivity_Off">Off</string>
<string name="ApplicationPreferencesActivity_On">Nyala</string>
<string name="ApplicationPreferencesActivity_Off">Mati</string>
<!-- DraftDatabase -->
<string name="DraftDatabase_Draft_image_snippet">(image)</string>
<string name="DraftDatabase_Draft_audio_snippet">(audio)</string>
<string name="DraftDatabase_Draft_video_snippet">(video)</string>
<string name="DraftDatabase_Draft_quote_snippet">(reply)</string>
<string name="DraftDatabase_Draft_image_snippet">(gambar)</string>
<string name="DraftDatabase_Draft_audio_snippet">(suara)</string>
<string name="DraftDatabase_Draft_video_snippet">(videi)</string>
<string name="DraftDatabase_Draft_quote_snippet">(balas)</string>
<!-- AttchmentManager -->
<string name="AttachmentManager_cant_open_media_selection">Can\'t find an app to select media.</string>
<string name="AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio">Session requires the Storage permission in order to attach photos, videos, or audio, but it has been permanently denied. Please continue to the app settings menu, select \"Permissions\", and enable \"Storage\".</string>
<string name="AttachmentManager_cant_open_media_selection">Tidak menemukan aplikasi untuk memilih media.</string>
<string name="AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio">Session membutuhkan izin penyimpanan untuk melampirkan foto, video, atau audio, namun izin tersebut telah ditolak secara permanen. Harap melanjutkan ke menu pengaturan aplikasi, pilih \"Perizinan\", dan izinkan \"Penyimpanan\".</string>
<string name="AttachmentManager_signal_requires_contacts_permission_in_order_to_attach_contact_information">Session requires Contacts permission in order to attach contact information, but it has been permanently denied. Please continue to the app settings menu, select \"Permissions\", and enable \"Contacts\".</string>
<string name="AttachmentManager_signal_requires_the_camera_permission_in_order_to_take_photos_but_it_has_been_permanently_denied">Session requires the Camera permission in order to take photos, but it has been permanently denied. Please continue to the app settings menu, select \"Permissions\", and enable \"Camera\".</string>
<!-- AudioSlidePlayer -->

View File

@ -61,7 +61,7 @@
<string name="ConversationActivity_add_attachment">Aggiungi allegato</string>
<string name="ConversationActivity_select_contact_info">Seleziona informazioni dei contatti</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">Attenzione, c\'è stato un errore nell\'inviare il tuo allegato.</string>
<string name="ConversationActivity_message">Message</string>
<string name="ConversationActivity_message">Messaggio</string>
<string name="ConversationActivity_compose">Compose</string>
<string name="ConversationActivity_muted_until_date">Muted until %1$s</string>
<string name="ConversationActivity_member_count">%1$d members</string>
@ -607,7 +607,7 @@ scambia un altro messaggio!</string>
<string name="fragment_enter_public_key_edit_text_hint">Inserisci la Sessione ID del destinatario</string>
<string name="fragment_enter_public_key_explanation">Gli utenti possono condividere la propria Sessione ID accedendo alle impostazioni del proprio account e toccando Condividi la Sessione ID o condividendo il proprio codice QR.</string>
<string name="fragment_scan_qr_code_camera_access_explanation">La Sessione richiede l\'accesso alla fotocamera per scansionare i codici QR</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">Concedi l\'accesso alla fotocamera</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">Consenti Accesso Fotocamera</string>
<string name="activity_create_closed_group_title">Nuovo gruppo chiuso</string>
<string name="activity_create_closed_group_edit_text_hint">Inserisci un nome per il gruppo</string>
<string name="activity_create_closed_group_empty_state_message">Non hai ancora nessun contatto</string>

View File

@ -723,6 +723,6 @@
<string name="fragment_recovery_phrase_title">Секретная фраза</string>
<string name="activity_prompt_passphrase_session_locked">Session заблокирован</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Разблокировать</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Введите ник</string>
<string name="invalid_public_key">Неверный публичный ключ</string>
</resources>

View File

@ -81,7 +81,7 @@
<string name="ConversationActivity_attachment_exceeds_size_limits">Príloha presahuje limit veľkosti pre tento typ správy.</string>
<string name="ConversationActivity_unable_to_record_audio">Nemôžem zaznamenať zvuk!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">Vo vašom zariadení nie je aplikácia schopná otvoriť tento odkaz.</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_invite_to_open_group">Pridať členov</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">Pre posielanie zvukových správ potrebuje Session prístup k mikrofónu.</string>
@ -158,7 +158,7 @@
<string name="CustomDefaultPreference_none">Žiadna</string>
<!-- DateUtils -->
<string name="DateUtils_just_now">Teraz</string>
<string name="DateUtils_minutes_ago">%d min</string>
<string name="DateUtils_minutes_ago">%d minút</string>
<string name="DateUtils_today">Dnes</string>
<string name="DateUtils_yesterday">Včera</string>
<!-- DeviceListItem -->
@ -258,7 +258,7 @@ výmeny kľúčov.</string>
<string name="ThreadRecord_s_is_on_signal">%s je na Sessione!</string>
<string name="ThreadRecord_disappearing_messages_disabled">Miznúce správy vypnuté</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">Čas miznúcich správ bol nastavený na %s</string>
<string name="ThreadRecord_s_took_a_screenshot">%s took a screenshot.</string>
<string name="ThreadRecord_s_took_a_screenshot">%s urobil snímok obrazovky.</string>
<string name="ThreadRecord_media_saved_by_s">Media saved by %s.</string>
<string name="ThreadRecord_safety_number_changed">Bezpečnostné číslo sa zmenilo</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">Vaše bezpečnostné číslo s %s sa zmenilo.</string>
@ -380,7 +380,7 @@ výmeny kľúčov.</string>
<string name="audio_view__pause_accessibility_description">Pozastaviť</string>
<string name="audio_view__download_accessibility_description">Stiahnuť</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">Join</string>
<string name="open_group_invitation_view__join_accessibility_description">Pripojiť sa</string>
<string name="open_group_invitation_view__open_group_invitation">Open group invitation</string>
<string name="open_group_guidelines_pinned_message">Pinned message</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
@ -516,7 +516,7 @@ výmeny kľúčov.</string>
<string name="conversation_context__menu_message_details">Podrobnosti správy</string>
<string name="conversation_context__menu_copy_text">Kopírovať text</string>
<string name="conversation_context__menu_delete_message">Zmazať správu</string>
<string name="conversation_context__menu_ban_user">Ban user</string>
<string name="conversation_context__menu_ban_user">Zablokovať užívateľa</string>
<string name="conversation_context__menu_resend_message">Odoslať správu znovu</string>
<string name="conversation_context__menu_reply_to_message">Odpovedať na správu</string>
<!-- conversation_context_image -->
@ -578,14 +578,14 @@ výmeny kľúčov.</string>
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<!-- Session -->
<string name="continue_2">Continue</string>
<string name="copy">Copy</string>
<string name="invalid_url">Invalid URL</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="next">Next</string>
<string name="share">Share</string>
<string name="continue_2">Pokračovať</string>
<string name="copy">Kopírovať</string>
<string name="invalid_url">Neplatná URL adresa</string>
<string name="copied_to_clipboard">Skopírované do schránky</string>
<string name="next">Ďalej</string>
<string name="share">Zdieľať</string>
<string name="invalid_session_id">Invalid Session ID</string>
<string name="cancel">Cancel</string>
<string name="cancel">Zrušiť</string>
<string name="your_session_id">Your Session ID</string>
<string name="activity_landing_title_2">Your Session begins here...</string>
<string name="activity_landing_register_button_title">Create Session ID</string>

View File

@ -61,7 +61,7 @@
<string name="ConversationActivity_add_attachment">Bifoga fil</string>
<string name="ConversationActivity_select_contact_info">Välj kontaktinformation</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">Tyvärr uppstod det ett fel vid bifogning av din fil.</string>
<string name="ConversationActivity_message">Message</string>
<string name="ConversationActivity_message">Meddelande</string>
<string name="ConversationActivity_compose">Compose</string>
<string name="ConversationActivity_muted_until_date">Muted until %1$s</string>
<string name="ConversationActivity_member_count">%1$d members</string>
@ -77,8 +77,8 @@
<string name="ConversationActivity_attachment_exceeds_size_limits">Den bifogade filen är för stor för den typ av meddelande du försöker skicka.</string>
<string name="ConversationActivity_unable_to_record_audio">Kunde inte spela in ljud!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">Det finns ingen app på din enhet som kan hantera den här länken.</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_invite_to_open_group">Lägg till medlemmar</string>
<string name="ConversationActivity_join_open_group">Gå med %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">För att skicka ljudmeddelanden, vänligen ge Session tillgång till din mikrofon.</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">Session behöver behörigheten Mikrofon för att skicka ljudmeddelanden men har nekats den permanent. Fortsätt till inställningsmenyn för Appar och aviseringar, välj \"Behörigheter\" och aktivera \"Mikrofon\".</string>
@ -551,10 +551,10 @@ för nyckelutbyte!</string>
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<!-- Session -->
<string name="continue_2">Continue</string>
<string name="copy">Copy</string>
<string name="copy">Kopiera</string>
<string name="invalid_url">Invalid URL</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="next">Next</string>
<string name="next">Nästa</string>
<string name="share">Share</string>
<string name="invalid_session_id">Invalid Session ID</string>
<string name="cancel">Cancel</string>

View File

@ -0,0 +1,699 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Session</string>
<string name="yes">Ndio</string>
<string name="no">Hapana</string>
<string name="delete">Futa</string>
<string name="ban">Ban</string>
<string name="please_wait">Tafadhali Subiri...</string>
<string name="save">Hifadhi</string>
<string name="note_to_self">Kumbuka kwake</string>
<string name="version_s">Version %s</string>
<!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">Ujumbe mpya</string>
<!-- AlbumThumbnailView -->
<string name="AlbumThumbnailView_plus">/+ 1%d</string>
<!-- ApplicationPreferencesActivity -->
<plurals name="ApplicationPreferencesActivity_messages_per_conversation">
<item quantity="one">%d message per conversation</item>
<item quantity="other">%d messages per conversation</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete_all_old_messages_now">Futa sasa meseji zote za zamani </string>
<plurals name="ApplicationPreferencesActivity_this_will_immediately_trim_all_conversations_to_the_d_most_recent_messages">
<item quantity="one">This will immediately trim all conversations to the most recent message.</item>
<item quantity="other">This will immediately trim all conversations to the %d most recent messages.</item>
</plurals>
<string name="ApplicationPreferencesActivity_delete">Futa</string>
<string name="ApplicationPreferencesActivity_On">Waka</string>
<string name="ApplicationPreferencesActivity_Off">Zima</string>
<!-- DraftDatabase -->
<string name="DraftDatabase_Draft_image_snippet">(picha)</string>
<string name="DraftDatabase_Draft_audio_snippet">(sauti)</string>
<string name="DraftDatabase_Draft_video_snippet">(video)</string>
<string name="DraftDatabase_Draft_quote_snippet">(jibu)</string>
<!-- AttchmentManager -->
<string name="AttachmentManager_cant_open_media_selection">Nashindwa kupata app ya kuchagua habari</string>
<string name="AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio">Session inahitaji idhini ya Hifadhi ili kuunganisha picha, video, au sauti, lakini imekataliwa kabisa. Tafadhali endelea kwenye orodha ya mipangilio ya programu, chagua \"Ruhusa\", na uwawezesha \"Hifadhi\".</string>
<string name="AttachmentManager_signal_requires_contacts_permission_in_order_to_attach_contact_information">Session inahitaji idhini ya Mawasiliano ili kuunganisha maelezo ya mawasiliano, lakini imekataliwa kabisa. Tafadhali endelea kwenye orodha ya mipangilio ya programu, chagua \"Ruhusa\", na uwawezesha \"Mawasiliano\".</string>
<string name="AttachmentManager_signal_requires_the_camera_permission_in_order_to_take_photos_but_it_has_been_permanently_denied">Session inahitaji ruhusa ya Kamera ili kuchukua picha, lakini imekataliwa kabisa. Tafadhali endelea kwenye orodha ya mipangilio ya programu, chagua \"Ruhusa\", na uwawezesha \"Kamera\".</string>
<!-- AudioSlidePlayer -->
<string name="AudioSlidePlayer_error_playing_audio">Hitilafu ya kucheza sauti!</string>
<!-- BucketedThreadMedia -->
<string name="BucketedThreadMedia_Today">leo</string>
<string name="BucketedThreadMedia_Yesterday">jana</string>
<string name="BucketedThreadMedia_This_week">Wiki hii</string>
<string name="BucketedThreadMedia_This_month">Mwezi huu</string>
<!-- CommunicationActions -->
<string name="CommunicationActions_no_browser_found">hakuna kivinjari cha web kilichopatikana</string>
<!-- ContactsCursorLoader -->
<string name="ContactsCursorLoader_groups">Makundi</string>
<!-- ConversationItem -->
<string name="ConversationItem_error_not_delivered">imefeli kutuma, gusa kwa taarifa</string>
<string name="ConversationItem_received_key_exchange_message_tap_to_process">umepokea ujumbe uliobadilishwa, gusa kuendelea na mchakato</string>
<string name="ConversationItem_group_action_left">%1$s ameondoka kwenye kundi</string>
<string name="ConversationItem_click_to_approve_unencrypted">imefeli kutuma, gusa kwa isiyo salama ili kuanguka nyuma</string>
<string name="ConversationItem_unable_to_open_media">Haiwezi kupata programu inayoweza kufungua media hii.</string>
<string name="ConversationItem_copied_text">nakala 1%s</string>
<string name="ConversationItem_read_more">&#160; Read More</string>
<string name="ConversationItem_download_more">&#160; Download More</string>
<string name="ConversationItem_pending">&#160; Pending</string>
<!-- ConversationActivity -->
<string name="ConversationActivity_add_attachment">Ongeza Kiambatanisho</string>
<string name="ConversationActivity_select_contact_info">Chagua taarifa za mawasiliano</string>
<string name="ConversationActivity_sorry_there_was_an_error_setting_your_attachment">Samahani, tatizo lilitokea kwenye kuweka kiambatanisho chako.</string>
<string name="ConversationActivity_message">Message</string>
<string name="ConversationActivity_compose">Compose</string>
<string name="ConversationActivity_muted_until_date">Muted until %1$s</string>
<string name="ConversationActivity_member_count">%1$d members</string>
<string name="ConversationActivity_open_group_guidelines">Community Guidelines</string>
<string name="ConversationActivity_invalid_recipient">Mpokeaji sio sahihi</string>
<string name="ConversationActivity_added_to_home_screen">omeongezwa kwenye skiirini ya mwanzo</string>
<string name="ConversationActivity_leave_group">toka kwenye kundi</string>
<string name="ConversationActivity_are_you_sure_you_want_to_leave_this_group">unauhakika unataka kutoka katika kundi hili</string>
<string name="ConversationActivity_error_leaving_group">kosa la kuondoka kwenye kundi</string>
<string name="ConversationActivity_unblock_this_contact_question">Fungua mawasiliano hii?</string>
<string name="ConversationActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">Utapata tena ujumbe na wito kutoka kwa anwani hii.</string>
<string name="ConversationActivity_unblock">Fungua</string>
<string name="ConversationActivity_attachment_exceeds_size_limits">Kiambatisho kimezidi ukubwa wa aina ya ujumbe unaotuma</string>
<string name="ConversationActivity_unable_to_record_audio">Haiwezi kurekodi sauti!</string>
<string name="ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device">hakuna programu ya kuweza kushughulikia kiungo hiki kwenye kifaa chako</string>
<string name="ConversationActivity_invite_to_open_group">Add members</string>
<string name="ConversationActivity_join_open_group">Join %s</string>
<string name="ConversationActivity_join_open_group_confirmation_message">Are you sure you want to join the <b>%s</b> open group?</string>
<string name="ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone">Kutuma ujumbe wa sauti, kuruhusu ufikiaji wa Session kwenye kipaza sauti yako.</string>
<string name="ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages">Session inahitaji idhini ya Kipaza sauti ili kutuma ujumbe wa sauti, lakini imekataliwa kabisa. Tafadhali endelea kwenye mipangilio ya programu, chagua \"Ruhusa\", na uwawezesha \"Kipaza sauti\".</string>
<string name="ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera">Ili kukamata picha na video, kuruhusu upatikanaji wa Session kwa kamera.</string>
<string name="ConversationActivity_signal_needs_the_camera_permission_to_take_photos_or_video">Session inahitaji kibali cha Kamera kuchukua picha au video, lakini imekataliwa kabisa. Tafadhali endelea kwenye mipangilio ya programu, chagua \"Ruhusa\", na uwawezesha \"Kamera\".</string>
<string name="ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video">Session inahitaji uruhusu kamera kuchukua picha na video</string>
<string name="ConversationActivity_quoted_contact_message">%1$s %2$s</string>
<string name="ConversationActivity_search_position">%1$d of %2$d</string>
<string name="ConversationActivity_no_results">No results</string>
<!-- ConversationAdapter -->
<plurals name="ConversationAdapter_n_unread_messages">
<item quantity="one">%d unread message</item>
<item quantity="other">%d unread messages</item>
</plurals>
<!-- ConversationFragment -->
<plurals name="ConversationFragment_delete_selected_messages">
<item quantity="one">Futa ujumbe uliochaguliwa?</item>
<item quantity="other">Futa </item>
</plurals>
<plurals name="ConversationFragment_this_will_permanently_delete_all_n_selected_messages">
<item quantity="one">This will permanently delete the selected message.</item>
<item quantity="other">This will permanently delete all %1$d selected messages.</item>
</plurals>
<string name="ConversationFragment_ban_selected_user">Ban this user?</string>
<string name="ConversationFragment_save_to_sd_card">Hifadhi kwa kuhifadhi</string>
<plurals name="ConversationFragment_saving_n_media_to_storage_warning">
<item quantity="one">Saving this media to storage will allow any other apps on your device to access it.\n\nContinue?</item>
<item quantity="other">Saving all %1$d media to storage will allow any other apps on your device to access them.\n\nContinue?</item>
</plurals>
<plurals name="ConversationFragment_error_while_saving_attachments_to_sd_card">
<item quantity="one">kosa wakati wa kuhifadhi kiambatisho kwenye stoo</item>
<item quantity="other">kosa </item>
</plurals>
<plurals name="ConversationFragment_saving_n_attachments">
<item quantity="one">Saving attachment</item>
<item quantity="other">Saving %1$d attachments</item>
</plurals>
<plurals name="ConversationFragment_saving_n_attachments_to_sd_card">
<item quantity="one">Saving attachment to storage...</item>
<item quantity="other">Saving %1$d attachments to storage...</item>
</plurals>
<string name="ConversationFragment_pending">Subirisha</string>
<string name="ConversationFragment_push">Taarifa</string>
<string name="ConversationFragment_mms">Ujumbe wa picha</string>
<string name="ConversationFragment_sms">Ujumbe wa maneno</string>
<string name="ConversationFragment_deleting">Kufuta</string>
<string name="ConversationFragment_deleting_messages">Kufuta meseji</string>
<string name="ConversationFragment_banning">Banning</string>
<string name="ConversationFragment_banning_user">Banning user…</string>
<string name="ConversationFragment_quoted_message_not_found">Meseji halisi haipatikani</string>
<string name="ConversationFragment_quoted_message_no_longer_available">Meseji halisi haipo tena</string>
<!-- ConversationListItem -->
<string name="ConversationListItem_key_exchange_message">Ujumbe wa kubadilishana muhimu</string>
<!-- CreateProfileActivity -->
<string name="CreateProfileActivity_profile_photo">picha ya wasifu</string>
<!-- CustomDefaultPreference -->
<string name="CustomDefaultPreference_using_custom">tumia desturi: 1%s</string>
<string name="CustomDefaultPreference_using_default">Using default: %s</string>
<string name="CustomDefaultPreference_none">Hakuna</string>
<!-- DateUtils -->
<string name="DateUtils_just_now">Sasa</string>
<string name="DateUtils_minutes_ago">%ddk</string>
<string name="DateUtils_today">Leo</string>
<string name="DateUtils_yesterday">Jana</string>
<!-- DeviceListItem -->
<string name="DeviceListItem_today">Leo</string>
<!-- DocumentView -->
<string name="DocumentView_unknown_file">Faili lisilojulikana</string>
<!-- GiphyActivity -->
<string name="GiphyActivity_error_while_retrieving_full_resolution_gif">Hitilafu wakati wa kurejesha GIF kamili ya azimio</string>
<!-- GiphyFragmentPageAdapter -->
<string name="GiphyFragmentPagerAdapter_gifs">GIFs</string>
<string name="GiphyFragmentPagerAdapter_stickers">Stika</string>
<!-- CropImageActivity -->
<string name="CropImageActivity_profile_avatar">Photo</string>
<!-- InputPanel -->
<string name="InputPanel_tap_and_hold_to_record_a_voice_message_release_to_send">Tap and hold to record a voice message, release to send</string>
<!-- LongMessageActivity -->
<string name="LongMessageActivity_unable_to_find_message">imeshindikana kutafuta ujumbe</string>
<string name="LongMessageActivity_message_from_s">Message from %1$s</string>
<string name="LongMessageActivity_your_message">ujumbe wako</string>
<!-- MediaOverviewActivity -->
<string name="MediaOverviewActivity_Media">Vyombo vya habari</string>
<plurals name="MediaOverviewActivity_Media_delete_confirm_title">
<item quantity="one">Delete selected message?</item>
<item quantity="other">Delete selected messages?</item>
</plurals>
<plurals name="MediaOverviewActivity_Media_delete_confirm_message">
<item quantity="one">This will permanently delete the selected message.</item>
<item quantity="other">This will permanently delete all %1$d selected messages.</item>
</plurals>
<string name="MediaOverviewActivity_Media_delete_progress_title">Inafutwa</string>
<string name="MediaOverviewActivity_Media_delete_progress_message">Kufuta meseji</string>
<string name="MediaOverviewActivity_Documents">nyaraka</string>
<string name="MediaOverviewActivity_Select_all">Chagua vyote</string>
<string name="MediaOverviewActivity_collecting_attachments">kukusanya viambatisho</string>
<!-- NotificationMmsMessageRecord -->
<string name="NotificationMmsMessageRecord_multimedia_message">Ujumbe wa Multimedia</string>
<string name="NotificationMmsMessageRecord_downloading_mms_message">kupakua ujumbe wa mms</string>
<string name="NotificationMmsMessageRecord_error_downloading_mms_message">Hitilafu kupakua ujumbe wa MMS, bomba ili ujaribu tena</string>
<!-- MediaPickerActivity -->
<string name="MediaPickerActivity_send_to">tuma kwa 1%s</string>
<!-- MediaSendActivity -->
<string name="MediaSendActivity_add_a_caption">ongeza maelezo</string>
<string name="MediaSendActivity_an_item_was_removed_because_it_exceeded_the_size_limit">An item was removed because it exceeded the size limit</string>
<string name="MediaSendActivity_camera_unavailable">kamera haipatikani</string>
<string name="MediaSendActivity_message_to_s">Message to %s</string>
<plurals name="MediaSendActivity_cant_share_more_than_n_items">
<item quantity="one">You can\'t share more than %d item.</item>
<item quantity="other">You can\'t share more than %d items.</item>
</plurals>
<!-- MediaRepository -->
<string name="MediaRepository_all_media">Vyombo vyote vya habari</string>
<!-- MessageRecord -->
<string name="MessageRecord_message_encrypted_with_a_legacy_protocol_version_that_is_no_longer_supported">Imepokea ujumbe uliofichwa kwa kutumia toleo la zamani la Session ambayo haitumiki tena. Tafadhali kumwomba mtumaji kuwasasishe kwa toleo la hivi karibuni na kurejesha ujumbe.</string>
<string name="MessageRecord_left_group">umetoka kwenye kundi</string>
<string name="MessageRecord_you_updated_group">Umesasisha kikundi</string>
<string name="MessageRecord_s_updated_group">1%s amesasisha kikundi</string>
<!-- ExpirationDialog -->
<string name="ExpirationDialog_disappearing_messages">Ukumbe uliotoweka</string>
<string name="ExpirationDialog_your_messages_will_not_expire">Ujumbe wako hautopitwa na wakati</string>
<string name="ExpirationDialog_your_messages_will_disappear_s_after_they_have_been_seen">Messages sent and received in this conversation will disappear %s after they have been seen.</string>
<!-- PassphrasePromptActivity -->
<string name="PassphrasePromptActivity_enter_passphrase">Ingiza nenosiri</string>
<!-- RecipientPreferencesActivity -->
<string name="RecipientPreferenceActivity_block_this_contact_question">Zuia hii anwani?</string>
<string name="RecipientPreferenceActivity_you_will_no_longer_receive_messages_and_calls_from_this_contact">Hautopokea tena ujumbe na simu kutoka kwa anwani hii</string>
<string name="RecipientPreferenceActivity_block">Zuia</string>
<string name="RecipientPreferenceActivity_unblock_this_contact_question">Fungua mawasiliano hii?</string>
<string name="RecipientPreferenceActivity_you_will_once_again_be_able_to_receive_messages_and_calls_from_this_contact">Utapata tena ujumbe na wito kutoka kwa anwani hii.</string>
<string name="RecipientPreferenceActivity_unblock">Fungua</string>
<!-- Slide -->
<string name="Slide_image">picha</string>
<string name="Slide_audio">Sauti</string>
<string name="Slide_video">Video</string>
<!-- SmsMessageRecord -->
<string name="SmsMessageRecord_received_corrupted_key_exchange_message">kupokea key iliyoharibika badilishana ujumbe</string>
<string name="SmsMessageRecord_received_key_exchange_message_for_invalid_protocol_version">Nimepokea ujumbe wa kubadilishana funguo kwa toleo la protocol sio halali.</string>
<string name="SmsMessageRecord_received_message_with_new_safety_number_tap_to_process">ujumbe uliopokelewa pamoja na namba ya usalama. Gusa kuchakata na kuonyesha.</string>
<string name="SmsMessageRecord_secure_session_reset">umerekebisha salama kipindi</string>
<string name="SmsMessageRecord_secure_session_reset_s">1%s kupanga tena kipindi salama</string>
<string name="SmsMessageRecord_duplicate_message">kutoa nakala ya ujumbe</string>
<!-- ThreadRecord -->
<string name="ThreadRecord_group_updated">Kikundi kilichosasishwa</string>
<string name="ThreadRecord_left_the_group">kujitoa katika kundi</string>
<string name="ThreadRecord_secure_session_reset">rekebisha salama kipindi</string>
<string name="ThreadRecord_draft">rasimu</string>
<string name="ThreadRecord_called">wewe uliita</string>
<string name="ThreadRecord_called_you">ulipigiwa simu</string>
<string name="ThreadRecord_missed_call">Simu zilizopotea</string>
<string name="ThreadRecord_media_message">Ujumbe wa vyombo vya habari</string>
<string name="ThreadRecord_s_is_on_signal">1%s yupo Session</string>
<string name="ThreadRecord_disappearing_messages_disabled">Uumbe zilizopotea imezuiliwa</string>
<string name="ThreadRecord_disappearing_message_time_updated_to_s">Ujumbe unapotea kwa mpangilio wa muda kwa 1%s</string>
<string name="ThreadRecord_s_took_a_screenshot">%s took a screenshot.</string>
<string name="ThreadRecord_media_saved_by_s">Media saved by %s.</string>
<string name="ThreadRecord_safety_number_changed">namba salama zimebadilika</string>
<string name="ThreadRecord_your_safety_number_with_s_has_changed">namba yako ya usalama pamoja na 1%s imebadilika</string>
<string name="ThreadRecord_you_marked_verified">umeweka kuthibitishwa?</string>
<string name="ThreadRecord_you_marked_unverified">umeweka haukuthibitishwa</string>
<string name="ThreadRecord_empty_message">This conversation is empty</string>
<string name="ThreadRecord_open_group_invitation">Open group invitation</string>
<!-- UpdateApkReadyListener -->
<string name="UpdateApkReadyListener_Signal_update">Session iliyosasishwa</string>
<string name="UpdateApkReadyListener_a_new_version_of_signal_is_available_tap_to_update">Toleo jipya la Session inapatikana, bomba ili uhakikishe</string>
<!-- MessageDisplayHelper -->
<string name="MessageDisplayHelper_bad_encrypted_message">ujumbe mbaya encrypted</string>
<string name="MessageDisplayHelper_message_encrypted_for_non_existing_session">Message encrypted for non-existing session</string>
<!-- MmsMessageRecord -->
<string name="MmsMessageRecord_bad_encrypted_mms_message">Bad encrypted MMS message</string>
<string name="MmsMessageRecord_mms_message_encrypted_for_non_existing_session">MMS message encrypted for non-existing session</string>
<!-- MuteDialog -->
<string name="MuteDialog_mute_notifications">Arifa za bubu</string>
<!-- KeyCachingService -->
<string name="KeyCachingService_signal_passphrase_cached">gusa kufungua</string>
<string name="KeyCachingService_passphrase_cached">Session imefunguliwa</string>
<string name="KeyCachingService_lock">zuia Session</string>
<!-- MediaPreviewActivity -->
<string name="MediaPreviewActivity_you">Wewe</string>
<string name="MediaPreviewActivity_unssuported_media_type">aina ya vyombo vya habari ambazo hazijaungwa mkono</string>
<string name="MediaPreviewActivity_draft">rasimu</string>
<string name="MediaPreviewActivity_signal_needs_the_storage_permission_in_order_to_write_to_external_storage_but_it_has_been_permanently_denied">Session inahitaji ruhusa ya Hifadhi ili kuokoa kwenye hifadhi ya nje, lakini imekataliwa kabisa. Tafadhali endelea kwenye mipangilio ya programu, chagua \"Ruhusa\", na uwezesha \"Uhifadhi\".</string>
<string name="MediaPreviewActivity_unable_to_write_to_external_storage_without_permission">haiwezekani kuhifadhi kwenye external storage bila ruhusa</string>
<string name="MediaPreviewActivity_media_delete_confirmation_title">futa ujumbe?</string>
<string name="MediaPreviewActivity_media_delete_confirmation_message">hii itafuta ujumbe kwa kudumu</string>
<!-- MessageNotifier -->
<string name="MessageNotifier_d_new_messages_in_d_conversations">1%1$d ujumbe mpya kwa 2%2$d mazungumzo</string>
<string name="MessageNotifier_most_recent_from_s">ya hivi karibuni kutoka: 1%1$s</string>
<string name="MessageNotifier_locked_message">ujumbe umefungiwa</string>
<string name="MessageNotifier_message_delivery_failed">utoaji wa ujumbe umefeli</string>
<string name="MessageNotifier_failed_to_deliver_message">imefeli kutoa ujumbe</string>
<string name="MessageNotifier_error_delivering_message">hitilafu kupokea ujumbe</string>
<string name="MessageNotifier_mark_all_as_read">nakili yote kama haijasomeka</string>
<string name="MessageNotifier_mark_read">soma nakili</string>
<string name="MessageNotifier_reply">jibu</string>
<string name="MessageNotifier_pending_signal_messages">Ujumbe wa Session inasubiri</string>
<string name="MessageNotifier_you_have_pending_signal_messages">una ujumbe wa Session unasubiri, gusa kufungua na kurudi</string>
<string name="MessageNotifier_contact_message">%1$s %2$s</string>
<string name="MessageNotifier_unknown_contact_message">Mawasiliano</string>
<!-- Notification Channels -->
<string name="NotificationChannel_messages">Chaguo Msingi</string>
<string name="NotificationChannel_calls">wito</string>
<string name="NotificationChannel_failures">Kushindwa</string>
<string name="NotificationChannel_backups">Rudisha taarifa</string>
<string name="NotificationChannel_locked_status">Hali ya kufunga</string>
<string name="NotificationChannel_app_updates">Sasisho za programu</string>
<string name="NotificationChannel_other">ingine</string>
<string name="NotificationChannel_group_messages">ujumbe</string>
<string name="NotificationChannel_missing_display_name">Isiyojulikana</string>
<!-- QuickResponseService -->
<string name="QuickResponseService_quick_response_unavailable_when_Signal_is_locked">Jibu la haraka halipatikani wakati Session imefungwa!</string>
<string name="QuickResponseService_problem_sending_message">Tatizo kutuma ujumbe</string>
<!-- SaveAttachmentTask -->
<string name="SaveAttachmentTask_saved_to">imehifadhiwa kwa 1%s</string>
<string name="SaveAttachmentTask_saved">imehifadhiwa</string>
<!-- SearchToolbar -->
<string name="SearchToolbar_search">Tafuta</string>
<!-- ShortcutLauncherActivity -->
<string name="ShortcutLauncherActivity_invalid_shortcut">Mkato wa batili</string>
<!-- SingleRecipientNotificationBuilder -->
<string name="SingleRecipientNotificationBuilder_signal">Alama</string>
<string name="SingleRecipientNotificationBuilder_new_message">Ujumbe mpya</string>
<!-- TransferControlView -->
<plurals name="TransferControlView_n_items">
<item quantity="one">%d Item</item>
<item quantity="other">%d Items</item>
</plurals>
<!-- VideoPlayer -->
<string name="VideoPlayer_error_playing_video">Kasoro kwenye kuchezesha video</string>
<!-- attachment_type_selector -->
<string name="attachment_type_selector__audio">Sauti</string>
<string name="attachment_type_selector__audio_description">Sauti</string>
<string name="attachment_type_selector__contact">Mawasiliano</string>
<string name="attachment_type_selector__contact_description">Mawasiliano</string>
<string name="attachment_type_selector__camera">Kamera</string>
<string name="attachment_type_selector__camera_description">Kamera</string>
<string name="attachment_type_selector__location">eneo</string>
<string name="attachment_type_selector__location_description">eneo</string>
<string name="attachment_type_selector__gif">GIF</string>
<string name="attachment_type_selector__gif_description">gif</string>
<string name="attachment_type_selector__gallery_description">picha au video</string>
<string name="attachment_type_selector__file_description">jalada</string>
<string name="attachment_type_selector__gallery">nyumba ya sanaa</string>
<string name="attachment_type_selector__file">jalada</string>
<string name="attachment_type_selector__drawer_description">Toggle kiambatisho drawer</string>
<!-- contact_selection_group_activity -->
<string name="contact_selection_group_activity__finding_contacts">kupakia mawasiliano</string>
<!-- conversation_activity -->
<string name="conversation_activity__send">Tuma</string>
<string name="conversation_activity__compose_description">utungaji wa ujumbe</string>
<string name="conversation_activity__emoji_toggle_description">Toggle katuni kibodi</string>
<string name="conversation_activity__attachment_thumbnail">kiambatanisho thumbnail</string>
<string name="conversation_activity__quick_attachment_drawer_toggle_camera_description">Toggle haraka kamera kiambatisho drawer</string>
<string name="conversation_activity__quick_attachment_drawer_record_and_send_audio_description">Rekodi na tuma kiambatisho cha sauti</string>
<string name="conversation_activity__quick_attachment_drawer_lock_record_description">Lock recording of audio attachment</string>
<string name="conversation_activity__enable_signal_for_sms">Wezesha Session kwa meseji</string>
<!-- conversation_input_panel -->
<string name="conversation_input_panel__slide_to_cancel">Slide to cancel</string>
<string name="conversation_input_panel__cancel">futa</string>
<!-- conversation_item -->
<string name="conversation_item__mms_image_description">Ujumbe wa vyombo vya habari</string>
<string name="conversation_item__secure_message_description">ujumbe salama</string>
<!-- conversation_item_sent -->
<string name="conversation_item_sent__send_failed_indicator_description">imefeli kutuma</string>
<string name="conversation_item_sent__pending_approval_description">inasubiri idhini</string>
<string name="conversation_item_sent__delivered_description">imefika</string>
<string name="conversation_item_sent__message_read">soma ujumbe</string>
<!-- conversation_item_received -->
<string name="conversation_item_received__contact_photo_description">wasiliana na picha</string>
<!-- audio_view -->
<string name="audio_view__play_accessibility_description">cheza</string>
<string name="audio_view__pause_accessibility_description">pumzika</string>
<string name="audio_view__download_accessibility_description">pakua</string>
<!-- open_group_invitation_view -->
<string name="open_group_invitation_view__join_accessibility_description">Join</string>
<string name="open_group_invitation_view__open_group_invitation">Open group invitation</string>
<string name="open_group_guidelines_pinned_message">Pinned message</string>
<string name="open_group_guidelines_community_guidelines">Community guidelines</string>
<string name="open_group_guidelines_read">Read</string>
<!-- QuoteView -->
<string name="QuoteView_audio">Sauti</string>
<string name="QuoteView_video">Video</string>
<string name="QuoteView_photo">picha</string>
<string name="QuoteView_you">Wewe</string>
<string name="QuoteView_original_missing">Meseji halisi haipatikani</string>
<!-- conversation_fragment -->
<string name="conversation_fragment__scroll_to_the_bottom_content_description">sogeza hadi chini</string>
<!-- giphy_activity -->
<string name="giphy_activity_toolbar__search_gifs_and_stickers">tafuta GIF na stika</string>
<!-- giphy_fragment -->
<string name="giphy_fragment__nothing_found">hakuna kilichopatikana</string>
<!-- load_more_header -->
<string name="load_more_header__see_full_conversation">Angalia mazungumzo yote</string>
<string name="load_more_header__loading">Kupakia</string>
<!-- media_overview_activity -->
<string name="media_overview_activity__no_media">hakuna vyombo vya habari</string>
<!-- message_recipients_list_item -->
<string name="message_recipients_list_item__resend">TUMA TENA</string>
<!-- recipient_preferences -->
<string name="recipient_preferences__block">Zuia</string>
<!-- message_details_header -->
<string name="message_details_header__issues_need_your_attention">baadhi ya masuala yanahitaji umakini wako</string>
<string name="message_details_header__sent">Imetumwa</string>
<string name="message_details_header__received">Imepokelewa</string>
<string name="message_details_header__disappears">kutoweka</string>
<string name="message_details_header__via">Kupitia</string>
<string name="message_details_header__to">Kuelekea:</string>
<string name="message_details_header__from">Kutoka:</string>
<string name="message_details_header__with">Pamoja:</string>
<!-- AndroidManifest.xml -->
<string name="AndroidManifest__create_passphrase">kuunda phassphrase</string>
<string name="AndroidManifest__select_contacts">chagua mawasiliano</string>
<string name="AndroidManifest__media_preview">Uhakiki wa vyombo vya habari</string>
<!-- arrays.xml -->
<string name="arrays__use_default">Tumia chaguo msingi</string>
<string name="arrays__use_custom">tumia desturi</string>
<string name="arrays__mute_for_one_hour">nyamaza kwa saa 1</string>
<string name="arrays__mute_for_two_hours">nyamaza kwa masaa 2</string>
<string name="arrays__mute_for_one_day">toa sauti kwa siku moja</string>
<string name="arrays__mute_for_seven_days">toa sauti kwa siku 7</string>
<string name="arrays__mute_for_one_year">Simamisha kwa mwaka 1</string>
<string name="arrays__settings_default">Vipimo vya chaguo msingi</string>
<string name="arrays__enabled">wezesha</string>
<string name="arrays__disabled">kuzuia</string>
<string name="arrays__name_and_message">jina na ujumbe</string>
<string name="arrays__name_only">jina tu</string>
<string name="arrays__no_name_or_message">hakuna jina wala ujumbe</string>
<string name="arrays__images">picha</string>
<string name="arrays__audio">Sauti</string>
<string name="arrays__video">Video</string>
<string name="arrays__documents">nyaraka</string>
<string name="arrays__small">ndogo</string>
<string name="arrays__normal">Kawaida</string>
<string name="arrays__large">kubwa</string>
<string name="arrays__extra_large">kubwa zaidi</string>
<string name="arrays__default">Chaguo Msingi</string>
<string name="arrays__high">juu</string>
<string name="arrays__max">mwisho</string>
<!-- plurals.xml -->
<plurals name="hours_ago">
<item quantity="one">%d hour</item>
<item quantity="other">%d hours</item>
</plurals>
<!-- preferences.xml -->
<string name="preferences__pref_enter_sends_title">Ingiza kutuma muhimu</string>
<string name="preferences__pressing_the_enter_key_will_send_text_messages">bonyeza kibodi ya kuingia ili kutuma ujumbe wa maandishi</string>
<string name="preferences__send_link_previews">tuma kiungo kilichoonekana</string>
<string name="preferences__previews_are_supported_for">Previews are supported for Imgur, Instagram, Pinterest, Reddit, and YouTube links</string>
<string name="preferences__screen_security">usalamaa wa skrini</string>
<string name="preferences__disable_screen_security_to_allow_screen_shots">Zima viwambo vya skrini katika orodha ya rekodi na ndani ya programu</string>
<string name="preferences__notifications">Arifa</string>
<string name="preferences__led_color">Rangi za LED</string>
<string name="preferences__led_color_unknown">Isiyojulikana</string>
<string name="preferences__pref_led_blink_title">Mfano wa LED blink</string>
<string name="preferences__sound">Sauti</string>
<string name="preferences__silent">Kimya</string>
<string name="preferences__repeat_alerts">rudia tahadhari</string>
<string name="preferences__never">Haiwezekani</string>
<string name="preferences__one_time">Mara moja</string>
<string name="preferences__two_times">Mara mbili</string>
<string name="preferences__three_times">Mara tatu</string>
<string name="preferences__five_times">Mara tano</string>
<string name="preferences__ten_times">Mara kumi</string>
<string name="preferences__vibrate">vibrate</string>
<string name="preferences__green">Kijani</string>
<string name="preferences__red">Nyekundu</string>
<string name="preferences__blue">Buluu</string>
<string name="preferences__orange">Njano</string>
<string name="preferences__cyan">cyan</string>
<string name="preferences__magenta">magenta</string>
<string name="preferences__white">Nyeupe</string>
<string name="preferences__none">Hakuna</string>
<string name="preferences__fast">Haraka</string>
<string name="preferences__normal">Kawaida</string>
<string name="preferences__slow">Polepole</string>
<string name="preferences__automatically_delete_older_messages_once_a_conversation_exceeds_a_specified_length">Futa moja kwa moja ujumbe wa zamani mara moja mazungumzo yanazidi urefu uliojulikana</string>
<string name="preferences__delete_old_messages">Futa ujumbe wa zamani</string>
<string name="preferences__conversation_length_limit">mwisho wa urefu wa maongezi</string>
<string name="preferences__trim_all_conversations_now">Piga mazungumzo yote sasa</string>
<string name="preferences__scan_through_all_conversations_and_enforce_conversation_length_limits">Pitia kupitia mazungumzo yote na uimarishe mipaka ya urefu wa mazungumzo</string>
<string name="preferences__default">Chaguo Msingi</string>
<string name="preferences__incognito_keyboard">Kibodi cha kuingia</string>
<string name="preferences__read_receipts">Soma stakabadhi</string>
<string name="preferences__if_read_receipts_are_disabled_you_wont_be_able_to_see_read_receipts">Ikiwa stakabadhi zilizosomwa zimezuiliwa, huwezi kuona stakabadhi zilizosomwa kutoka kwa wengine</string>
<string name="preferences__typing_indicators">andika viashiria</string>
<string name="preferences__if_typing_indicators_are_disabled_you_wont_be_able_to_see_typing_indicators">Ikiwa viashiria vya kuandika vimezimwa, huwezi kuona viashiria vya kuandika kutoka kwa wengine.</string>
<string name="preferences__request_keyboard_to_disable_personalized_learning">Omba kibodi ili kuzima kujifunza kwa kibinafsi</string>
<string name="preferences__light_theme">Mwanga</string>
<string name="preferences__dark_theme">Giza</string>
<string name="preferences_chats__message_trimming">ujumbe unapunguza</string>
<string name="preferences_advanced__use_system_emoji">kutumia emoji mfumo</string>
<string name="preferences_advanced__disable_signal_built_in_emoji_support">kuzuia Session iliyojengwa kusaidia emoji</string>
<string name="preferences_app_protection__app_access">kutumia programu</string>
<string name="preferences_app_protection__communication">mawasiliano</string>
<string name="preferences_chats__chats">mazungumzo</string>
<string name="preferences_notifications__messages">ujumbe</string>
<string name="preferences_notifications__in_chat_sounds">sauti wakati wa mazungumzo</string>
<string name="preferences_notifications__show">onyesha</string>
<string name="preferences_notifications__priority">Kipaumbele</string>
<!-- **************************************** -->
<!-- menus -->
<!-- **************************************** -->
<!-- contact_selection_list -->
<string name="contact_selection_list__unknown_contact">Ujumbe mpya kuelekea..</string>
<!-- conversation_context -->
<string name="conversation_context__menu_message_details">Maelezo ya ujumbe</string>
<string name="conversation_context__menu_copy_text">Nakala ya nakala</string>
<string name="conversation_context__menu_delete_message">Futa ujumbe</string>
<string name="conversation_context__menu_ban_user">Ban user</string>
<string name="conversation_context__menu_resend_message">Tuma tena ujumbe</string>
<string name="conversation_context__menu_reply_to_message">Jibu ujumbe</string>
<!-- conversation_context_image -->
<string name="conversation_context_image__save_attachment">Hifadhi attachment</string>
<!-- conversation_expiring_off -->
<string name="conversation_expiring_off__disappearing_messages">Ukumbe uliotoweka</string>
<!-- conversation_expiring_on -->
<string name="menu_conversation_expiring_on__messages_expiring">Ujumbe umepitwa na wakati</string>
<!-- conversation_muted -->
<string name="conversation_muted__unmute">Usifute</string>
<!-- conversation_unmuted -->
<string name="conversation_unmuted__mute_notifications">Arifa za bubu</string>
<!-- conversation -->
<string name="conversation__menu_edit_group">Hariri kikundi</string>
<string name="conversation__menu_leave_group">Toka kwenye kikundi</string>
<string name="conversation__menu_view_all_media">Vyombo vyote vya habari</string>
<string name="conversation__menu_add_shortcut">Ongeza kwenye skrini ya nyumbani</string>
<!-- conversation_popup -->
<string name="conversation_popup__menu_expand_popup">Kupanua popup</string>
<!-- conversation_group_options -->
<string name="conversation_group_options__delivery">utoaji</string>
<string name="conversation_group_options__conversation">Mazungumzo</string>
<string name="conversation_group_options__broadcast">Kutangaza</string>
<!-- media_preview -->
<string name="media_preview__save_title">Hifadhi</string>
<string name="media_preview__forward_title">Mbele</string>
<string name="media_preview__all_media_title">Vyombo vyote vya habari</string>
<!-- media_overview -->
<string name="media_overview_documents_fragment__no_documents_found">Hakuna nyaraka</string>
<!-- media_preview_activity -->
<string name="media_preview_activity__media_content_description">Uhakiki wa vyombo vya habari</string>
<!-- Trimmer -->
<string name="trimmer__deleting">Kufuta</string>
<string name="trimmer__deleting_old_messages">futa ujumbe wa zamani</string>
<string name="trimmer__old_messages_successfully_deleted">Ujumbe wa zamani umefutwa kwa ufanisi</string>
<!-- transport_selection_list_item -->
<string name="Permissions_permission_required">Ruhusa inahitajika</string>
<string name="Permissions_continue">Endelea</string>
<string name="Permissions_not_now">sio sasa</string>
<string name="backup_enable_dialog__backups_will_be_saved_to_external_storage_and_encrypted_with_the_passphrase_below_you_must_have_this_passphrase_in_order_to_restore_a_backup">Backups itahifadhiwa kwenye hifadhi ya nje na imetambulishwa na nenosiri chini. Lazima uwe na chapisho hili ili urejeshe upya.</string>
<string name="backup_enable_dialog__i_have_written_down_this_passphrase">Nimeandika neno hili la kupitisha. Bila hivyo, sitashindwa kurejesha salama.</string>
<string name="registration_activity__skip">ruka</string>
<string name="RegistrationActivity_backup_failure_downgrade">Haiwezi kuingiza backups kutoka kwa matoleo mapya ya Session</string>
<string name="RegistrationActivity_incorrect_backup_passphrase">Sahihi ya kupitisha safu ya salama</string>
<string name="BackupDialog_enable_local_backups">kuwezesha salama ya ndani?</string>
<string name="BackupDialog_enable_backups">Rudisha salama</string>
<string name="BackupDialog_please_acknowledge_your_understanding_by_marking_the_confirmation_check_box">Tafadhali kukubali ufahamu wako kwa kuashiria sanduku la uthibitisho la kuthibitisha.</string>
<string name="BackupDialog_delete_backups">Futa vifungo?</string>
<string name="BackupDialog_disable_and_delete_all_local_backups">Zima na kufuta salama zote za ndani?</string>
<string name="BackupDialog_delete_backups_statement">Futa salama</string>
<string name="BackupDialog_copied_to_clipboard">Ilikopishwa kwenye ubao wa video</string>
<string name="LocalBackupJob_creating_backup">Kujenga salama</string>
<string name="ProgressPreference_d_messages_so_far">1%d ujumbe hadi sasa</string>
<string name="BackupUtil_never">Haiwezekani</string>
<string name="preferences_app_protection__screen_lock">safi ya skrini</string>
<string name="preferences_app_protection__lock_signal_access_with_android_screen_lock_or_fingerprint">Funga ufikiaji wa Signal na lock ya Android au alama za vidole</string>
<string name="preferences_app_protection__screen_lock_inactivity_timeout">Funga muda wa kuacha kuingia</string>
<string name="AppProtectionPreferenceFragment_none">Hakuna</string>
<!-- Conversation activity -->
<string name="activity_conversation_copy_public_key_button_title">Copy public key</string>
<!-- Session -->
<string name="continue_2">Continue</string>
<string name="copy">Copy</string>
<string name="invalid_url">Invalid URL</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="next">Next</string>
<string name="share">Share</string>
<string name="invalid_session_id">Invalid Session ID</string>
<string name="cancel">Cancel</string>
<string name="your_session_id">Your Session ID</string>
<string name="activity_landing_title_2">Your Session begins here...</string>
<string name="activity_landing_register_button_title">Create Session ID</string>
<string name="activity_landing_restore_button_title">Continue Your Session</string>
<string name="view_fake_chat_bubble_1">What\'s Session?</string>
<string name="view_fake_chat_bubble_2">It\'s a decentralized, encrypted messaging app</string>
<string name="view_fake_chat_bubble_3">So it doesn\'t collect my personal information or my conversation metadata? How does it work?</string>
<string name="view_fake_chat_bubble_4">Using a combination of advanced anonymous routing and end-to-end encryption technologies.</string>
<string name="view_fake_chat_bubble_5">Friends don\'t let friends use compromised messengers. You\'re welcome.</string>
<string name="activity_register_title">Say hello to your Session ID</string>
<string name="activity_register_explanation">Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.</string>
<string name="activity_restore_title">Restore your account</string>
<string name="activity_restore_explanation">Enter the recovery phrase that was given to you when you signed up to restore your account.</string>
<string name="activity_restore_seed_edit_text_hint">Enter your recovery phrase</string>
<string name="activity_display_name_title_2">Pick your display name</string>
<string name="activity_display_name_explanation">This will be your name when you use Session. It can be your real name, an alias, or anything else you like.</string>
<string name="activity_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_display_name_display_name_missing_error">Please pick a display name</string>
<string name="activity_display_name_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_pn_mode_recommended_option_tag">Recommended</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Please Pick an Option</string>
<string name="activity_home_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_home_empty_state_button_title">Start a Session</string>
<string name="activity_home_leave_group_dialog_message">Are you sure you want to leave this group?</string>
<string name="activity_home_leaving_group_failed_message">"Couldn't leave group"</string>
<string name="activity_home_delete_conversation_dialog_message">Are you sure you want to delete this conversation?</string>
<string name="activity_home_conversation_deleted_message">Conversation deleted</string>
<string name="activity_seed_title">Your Recovery Phrase</string>
<string name="activity_seed_title_2">Meet your recovery phrase</string>
<string name="activity_seed_explanation">Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and don\'t give it to anyone.</string>
<string name="activity_seed_reveal_button_title">Hold to reveal</string>
<string name="view_seed_reminder_title">You\'re almost finished! 80%</string>
<string name="view_seed_reminder_subtitle_1">Secure your account by saving your recovery phrase</string>
<string name="view_seed_reminder_subtitle_2">Tap and hold the redacted words to reveal your recovery phrase, then store it safely to secure your Session ID.</string>
<string name="view_seed_reminder_subtitle_3">Make sure to store your recovery phrase in a safe place</string>
<string name="activity_path_title">Path</string>
<string name="activity_path_explanation">Session hides your IP by bouncing your messages through several Service Nodes in Session\'s decentralized network. These are the countries your connection is currently being bounced through:</string>
<string name="activity_path_device_row_title">You</string>
<string name="activity_path_guard_node_row_title">Entry Node</string>
<string name="activity_path_service_node_row_title">Service Node</string>
<string name="activity_path_destination_row_title">Destination</string>
<string name="activity_path_learn_more_button_title">Learn More</string>
<string name="activity_create_private_chat_title">New Session</string>
<string name="activity_create_private_chat_enter_session_id_tab_title">Enter Session ID</string>
<string name="activity_create_private_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_create_private_chat_scan_qr_code_explanation">Scan a user\'s QR code to start a session. QR codes can be found by tapping the QR code icon in account settings.</string>
<string name="fragment_enter_public_key_edit_text_hint">Enter Session ID of recipient</string>
<string name="fragment_enter_public_key_explanation">Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code.</string>
<string name="fragment_scan_qr_code_camera_access_explanation">Session needs camera access to scan QR codes</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">Grant Camera Access</string>
<string name="activity_create_closed_group_title">New Closed Group</string>
<string name="activity_create_closed_group_edit_text_hint">Enter a group name</string>
<string name="activity_create_closed_group_empty_state_message">You don\'t have any contacts yet</string>
<string name="activity_create_closed_group_empty_state_button_title">Start a Session</string>
<string name="activity_create_closed_group_group_name_missing_error">Please enter a group name</string>
<string name="activity_create_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_create_closed_group_not_enough_group_members_error">Please pick at least 1 group member</string>
<string name="activity_create_closed_group_too_many_group_members_error">A closed group cannot have more than 100 members</string>
<string name="activity_join_public_chat_title">Join Open Group</string>
<string name="activity_join_public_chat_error">Couldn\'t join group</string>
<string name="activity_join_public_chat_enter_group_url_tab_title">Open Group URL</string>
<string name="activity_join_public_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_join_public_chat_scan_qr_code_explanation">Scan the QR code of the open group you\'d like to join</string>
<string name="fragment_enter_chat_url_edit_text_hint">Enter an open group URL</string>
<string name="activity_settings_title">Settings</string>
<string name="activity_settings_display_name_edit_text_hint">Enter a display name</string>
<string name="activity_settings_display_name_missing_error">Please pick a display name</string>
<string name="activity_settings_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_settings_privacy_button_title">Privacy</string>
<string name="activity_settings_notifications_button_title">Notifications</string>
<string name="activity_settings_chats_button_title">Chats</string>
<string name="activity_settings_devices_button_title">Devices</string>
<string name="activity_settings_invite_button_title">Invite</string>
<string name="activity_settings_recovery_phrase_button_title">Recovery Phrase</string>
<string name="activity_settings_clear_all_data_button_title">Clear Data</string>
<string name="activity_settings_help_translate_session">Help us Translate Session</string>
<string name="activity_notification_settings_title">Notifications</string>
<string name="activity_notification_settings_style_section_title">Notification Style</string>
<string name="activity_notification_settings_content_section_title">Notification Content</string>
<string name="activity_privacy_settings_title">Privacy</string>
<string name="activity_chat_settings_title">Chats</string>
<string name="preferences_notifications_strategy_category_title">Notification Strategy</string>
<string name="fragment_device_list_bottom_sheet_change_name_button_title">Change name</string>
<string name="fragment_device_list_bottom_sheet_unlink_device_button_title">Unlink device</string>
<string name="dialog_seed_title">Your Recovery Phrase</string>
<string name="dialog_seed_explanation">This is your recovery phrase. With it, you can restore or migrate your Session ID to a new device.</string>
<string name="dialog_clear_all_data_title">Clear All Data</string>
<string name="dialog_clear_all_data_explanation">This will permanently delete your messages, sessions, and contacts.</string>
<string name="activity_qr_code_title">QR Code</string>
<string name="activity_qr_code_view_my_qr_code_tab_title">View My QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_qr_code_view_scan_qr_code_explanation">Scan someone\'s QR code to start a conversation with them</string>
<string name="fragment_view_my_qr_code_title">Scan Me</string>
<string name="fragment_view_my_qr_code_explanation">This is your QR code. Other users can scan it to start a session with you.</string>
<string name="fragment_view_my_qr_code_share_title">Share QR Code</string>
<string name="fragment_contact_selection_contacts_title">Contacts</string>
<string name="fragment_contact_selection_closed_groups_title">Closed Groups</string>
<string name="fragment_contact_selection_open_groups_title">Open Groups</string>
<string name="fragment_contact_selection_empty_contacts">You don\'t have any contacts yet</string>
<!-- Next round of translation -->
<string name="menu_apply_button">Apply</string>
<string name="menu_done_button">Done</string>
<string name="activity_edit_closed_group_title">Edit Group</string>
<string name="activity_edit_closed_group_edit_text_hint">Enter a new group name</string>
<string name="activity_edit_closed_group_edit_members">Members</string>
<string name="activity_edit_closed_group_add_members">Add members</string>
<string name="activity_edit_closed_group_group_name_missing_error">Group name can\'t be empty</string>
<string name="activity_edit_closed_group_group_name_too_long_error">Please enter a shorter group name</string>
<string name="activity_edit_closed_group_not_enough_group_members_error">Groups must have at least 1 group member</string>
<string name="fragment_edit_group_bottom_sheet_remove">Remove user from group</string>
<string name="activity_select_contacts_title">Select Contacts</string>
<string name="view_reset_secure_session_done_message">Secure session reset done</string>
<string name="dialog_ui_mode_title">Theme</string>
<string name="dialog_ui_mode_option_day">Day</string>
<string name="dialog_ui_mode_option_night">Night</string>
<string name="dialog_ui_mode_option_system_default">System default</string>
<string name="activity_conversation_menu_copy_session_id">Copy Session ID</string>
<string name="attachment">Attachment</string>
<string name="attachment_type_voice_message">Voice Message</string>
<string name="details">Details</string>
<string name="dialog_backup_activation_failed">Failed to activate backups. Please try again or contact support.</string>
<string name="activity_backup_restore_title">Restore backup</string>
<string name="activity_backup_restore_select_file">Select a file</string>
<string name="activity_backup_restore_explanation_1">Select a backup file and enter the passphrase it was created with.</string>
<string name="activity_backup_restore_passphrase">30-digit passphrase</string>
<string name="activity_link_device_skip_prompt">This is taking a while, would you like to skip?</string>
<string name="activity_link_device_link_device">Link a Device</string>
<string name="activity_join_public_chat_join_rooms">Or join one of these…</string>
<string name="activity_pn_mode_message_notifications">Message Notifications</string>
<string name="activity_pn_mode_explanation">There are two ways Session can notify you of new messages.</string>
<string name="activity_pn_mode_fast_mode">Fast Mode</string>
<string name="activity_pn_mode_slow_mode">Slow Mode</string>
<string name="activity_pn_mode_fast_mode_explanation">Youll be notified of new messages reliably and immediately using Googles notification servers.</string>
<string name="activity_pn_mode_slow_mode_explanation">Session will occasionally check for new messages in the background.</string>
<string name="fragment_recovery_phrase_title">Recovery Phrase</string>
<string name="activity_prompt_passphrase_session_locked">Session is Locked</string>
<string name="activity_prompt_passphrase_tap_to_unlock">Tap to Unlock</string>
<string name="fragment_user_details_bottom_sheet_edit_text_hint">Enter a nickname</string>
<string name="invalid_public_key">Invalid public key</string>
</resources>

View File

@ -719,8 +719,9 @@
<string name="activity_create_private_chat_scan_qr_code_tab_title">Scan QR Code</string>
<string name="activity_create_private_chat_scan_qr_code_explanation">Scan a user\'s QR code to start a session. QR codes can be found by tapping the QR code icon in account settings.</string>
<string name="fragment_enter_public_key_edit_text_hint">Enter Session ID of recipient</string>
<string name="fragment_enter_public_key_edit_text_hint">Enter Session ID or ONS name</string>
<string name="fragment_enter_public_key_explanation">Users can share their Session ID by going into their account settings and tapping "Share Session ID", or by sharing their QR code.</string>
<string name="fragment_enter_public_key_error_message">Please check the Session ID or ONS name and try again.</string>
<string name="fragment_scan_qr_code_camera_access_explanation">Session needs camera access to scan QR codes</string>
<string name="fragment_scan_qr_code_grant_camera_access_button_title">Grant Camera Access</string>

View File

@ -12,8 +12,8 @@ import org.session.libsession.messaging.messages.visible.Attachment
import org.session.libsession.messaging.messages.visible.VisibleMessage
import org.session.libsession.messaging.open_groups.OpenGroupV2
import org.session.libsession.messaging.sending_receiving.attachments.AttachmentId
import org.session.libsession.messaging.sending_receiving.data_extraction.DataExtractionNotificationInfoMessage
import org.session.libsession.messaging.sending_receiving.attachments.DatabaseAttachment
import org.session.libsession.messaging.sending_receiving.data_extraction.DataExtractionNotificationInfoMessage
import org.session.libsession.messaging.sending_receiving.link_preview.LinkPreview
import org.session.libsession.messaging.sending_receiving.quotes.QuoteModel
import org.session.libsession.utilities.Address
@ -130,6 +130,7 @@ interface StorageProtocol {
fun getThreadId(recipient: Recipient): Long?
fun getThreadIdForMms(mmsId: Long): Long
fun getLastUpdated(threadID: Long): Long
fun trimThread(threadID: Long, threadLimit: Int)
// Contacts
fun getContactWithSessionID(sessionID: String): Contact?

View File

@ -37,9 +37,9 @@ class JobQueue : JobDelegate {
init {
// Process jobs
scope.launch {
val rxQueue = Channel<Job>(capacity = 1024)
val txQueue = Channel<Job>(capacity = 1024)
val attachmentQueue = Channel<Job>(capacity = 1024)
val rxQueue = Channel<Job>(capacity = 4096)
val txQueue = Channel<Job>(capacity = 4096)
val attachmentQueue = Channel<Job>(capacity = 4096)
val receiveJob = processWithDispatcher(rxQueue, rxDispatcher)
val txJob = processWithDispatcher(txQueue, txDispatcher)
@ -50,7 +50,7 @@ class JobQueue : JobDelegate {
when (job) {
is NotifyPNServerJob, is AttachmentUploadJob, is MessageSendJob -> txQueue.send(job)
is AttachmentDownloadJob -> attachmentQueue.send(job)
is MessageReceiveJob -> rxQueue.send(job)
is MessageReceiveJob, is TrimThreadJob -> rxQueue.send(job)
else -> throw IllegalStateException("Unexpected job type.")
}
}

View File

@ -10,7 +10,8 @@ class SessionJobManagerFactories {
AttachmentUploadJob.KEY to AttachmentUploadJob.Factory(),
MessageReceiveJob.KEY to MessageReceiveJob.Factory(),
MessageSendJob.KEY to MessageSendJob.Factory(),
NotifyPNServerJob.KEY to NotifyPNServerJob.Factory()
NotifyPNServerJob.KEY to NotifyPNServerJob.Factory(),
TrimThreadJob.KEY to TrimThreadJob.Factory()
)
}
}

View File

@ -0,0 +1,44 @@
package org.session.libsession.messaging.jobs
import org.session.libsession.messaging.MessagingModuleConfiguration
import org.session.libsession.messaging.utilities.Data
import org.session.libsession.utilities.TextSecurePreferences
class TrimThreadJob(val threadId: Long) : Job {
override var delegate: JobDelegate? = null
override var id: String? = null
override var failureCount: Int = 0
override val maxFailureCount: Int = 1
companion object {
const val KEY: String = "TrimThreadJob"
const val THREAD_ID = "thread_id"
}
override fun execute() {
val context = MessagingModuleConfiguration.shared.context
val trimmingEnabled = TextSecurePreferences.isThreadLengthTrimmingEnabled(context)
val threadLengthLimit = TextSecurePreferences.getThreadTrimLength(context)
if (trimmingEnabled) {
MessagingModuleConfiguration.shared.storage.trimThread(threadId, threadLengthLimit)
}
delegate?.handleJobSucceeded(this)
}
override fun serialize(): Data {
return Data.Builder()
.putLong(THREAD_ID, threadId)
.build()
}
override fun getFactoryKey(): String = "TrimThreadJob"
class Factory : Job.Factory<TrimThreadJob> {
override fun create(data: Data): TrimThreadJob {
return TrimThreadJob(data.getLong(THREAD_ID))
}
}
}

View File

@ -1,5 +1,6 @@
package org.session.libsession.messaging.open_groups
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.PropertyNamingStrategy
import com.fasterxml.jackson.databind.annotation.JsonNaming
import com.fasterxml.jackson.databind.type.TypeFactory
@ -17,14 +18,9 @@ import org.session.libsession.messaging.sending_receiving.pollers.OpenGroupPolle
import org.session.libsession.snode.OnionRequestAPI
import org.session.libsession.utilities.AESGCM
import org.session.libsession.utilities.TextSecurePreferences
import org.session.libsignal.utilities.HTTP
import org.session.libsignal.utilities.HTTP.Verb.*
import org.session.libsignal.utilities.removing05PrefixIfNeeded
import org.session.libsignal.utilities.toHexString
import org.session.libsignal.utilities.*
import org.session.libsignal.utilities.Base64.*
import org.session.libsignal.utilities.Hex
import org.session.libsignal.utilities.JsonUtil
import org.session.libsignal.utilities.Log
import org.session.libsignal.utilities.HTTP.Verb.*
import org.whispersystems.curve25519.Curve25519
import java.util.*
@ -63,11 +59,13 @@ object OpenGroupAPIV2 {
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy::class)
data class CompactPollRequest(val roomID: String, val authToken: String, val fromDeletionServerID: Long?, val fromMessageServerID: Long?)
data class CompactPollResult(val messages: List<OpenGroupMessageV2>, val deletions: List<Long>, val moderators: List<String>)
data class CompactPollResult(val messages: List<OpenGroupMessageV2>, val deletions: List<MessageDeletion>, val moderators: List<String>)
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy::class)
data class MessageDeletion
@JvmOverloads constructor(val id: Long = 0, val deletedMessageId: Long = 0
data class MessageDeletion(
@JsonProperty("id")
val id: Long = 0,
@JsonProperty("deleted_message_id")
val deletedMessageServerID: Long = 0
) {
companion object {
@ -237,7 +235,10 @@ object OpenGroupAPIV2 {
return send(request).map { json ->
@Suppress("UNCHECKED_CAST") val rawMessage = json["message"] as? Map<String, Any>
?: throw Error.ParsingFailed
OpenGroupMessageV2.fromJSON(rawMessage) ?: throw Error.ParsingFailed
val result = OpenGroupMessageV2.fromJSON(rawMessage) ?: throw Error.ParsingFailed
val storage = MessagingModuleConfiguration.shared.storage
storage.addReceivedMessageTimestamp(result.sentTimestamp)
result
}
}
// endregion
@ -258,9 +259,6 @@ object OpenGroupAPIV2 {
}
private fun parseMessages(room: String, server: String, rawMessages: List<Map<*, *>>): List<OpenGroupMessageV2> {
val storage = MessagingModuleConfiguration.shared.storage
val lastMessageServerID = storage.getLastMessageServerID(room, server) ?: 0
var currentLastMessageServerID = lastMessageServerID
val messages = rawMessages.mapNotNull { json ->
json as Map<String, Any>
try {
@ -275,15 +273,11 @@ object OpenGroupAPIV2 {
Log.d("Loki", "Ignoring message with invalid signature.")
return@mapNotNull null
}
if (message.serverID > lastMessageServerID) {
currentLastMessageServerID = message.serverID
}
message
} catch (e: Exception) {
null
}
}
storage.setLastMessageServerID(room, server, currentLastMessageServerID)
return messages
}
// endregion
@ -403,18 +397,13 @@ object OpenGroupAPIV2 {
// Deletions
val type = TypeFactory.defaultInstance().constructCollectionType(List::class.java, MessageDeletion::class.java)
val idsAsString = JsonUtil.toJson(json["deletions"])
val deletedServerIDs = JsonUtil.fromJson<List<MessageDeletion>>(idsAsString, type) ?: throw Error.ParsingFailed
val lastDeletionServerID = storage.getLastDeletionServerID(roomID, server) ?: 0
val serverID = deletedServerIDs.maxByOrNull { it.id } ?: MessageDeletion.empty
if (serverID.id > lastDeletionServerID) {
storage.setLastDeletionServerID(roomID, server, serverID.id)
}
val deletions = JsonUtil.fromJson<List<MessageDeletion>>(idsAsString, type) ?: throw Error.ParsingFailed
// Messages
val rawMessages = json["messages"] as? List<Map<String, Any>> ?: return@mapNotNull null
val messages = parseMessages(roomID, server, rawMessages)
roomID to CompactPollResult(
messages = messages,
deletions = deletedServerIDs.map { it.deletedMessageId },
deletions = deletions,
moderators = moderators
)
}.toMap()

View File

@ -234,7 +234,7 @@ fun MessageReceiver.handleVisibleMessage(message: VisibleMessage, proto: SignalS
}
// Cancel any typing indicators if needed
cancelTypingIndicatorsIfNeeded(message.sender!!)
//Notify the user if needed
// Notify the user if needed
SSKEnvironment.shared.notificationManager.updateNotification(context, threadID)
}
//endregion

View File

@ -5,6 +5,7 @@ import nl.komponents.kovenant.functional.map
import org.session.libsession.messaging.MessagingModuleConfiguration
import org.session.libsession.messaging.jobs.JobQueue
import org.session.libsession.messaging.jobs.MessageReceiveJob
import org.session.libsession.messaging.jobs.TrimThreadJob
import org.session.libsession.messaging.open_groups.OpenGroupAPIV2
import org.session.libsession.messaging.open_groups.OpenGroupMessageV2
import org.session.libsession.utilities.Address
@ -15,6 +16,7 @@ import org.session.libsignal.utilities.successBackground
import java.util.concurrent.ScheduledExecutorService
import java.util.concurrent.ScheduledFuture
import java.util.concurrent.TimeUnit
import kotlin.math.max
class OpenGroupPollerV2(private val server: String, private val executorService: ScheduledExecutorService?) {
var hasStarted = false
@ -44,8 +46,8 @@ class OpenGroupPollerV2(private val server: String, private val executorService:
return OpenGroupAPIV2.compactPoll(rooms, server).successBackground { responses ->
responses.forEach { (room, response) ->
val openGroupID = "$server.$room"
handleNewMessages(openGroupID, response.messages, isBackgroundPoll)
handleDeletedMessages(openGroupID, response.deletions)
handleNewMessages(room, openGroupID, response.messages, isBackgroundPoll)
handleDeletedMessages(room, openGroupID, response.deletions)
if (secondToLastJob == null && !isCaughtUp) {
isCaughtUp = true
}
@ -55,8 +57,13 @@ class OpenGroupPollerV2(private val server: String, private val executorService:
}.map { }
}
private fun handleNewMessages(openGroupID: String, messages: List<OpenGroupMessageV2>, isBackgroundPoll: Boolean) {
if (!hasStarted) { return }
private fun handleNewMessages(room: String, openGroupID: String, messages: List<OpenGroupMessageV2>, isBackgroundPoll: Boolean) {
val storage = MessagingModuleConfiguration.shared.storage
val groupID = GroupUtil.getEncodedOpenGroupID(openGroupID.toByteArray())
// check thread still exists
val threadId = storage.getThreadId(Address.fromSerialized(groupID)) ?: -1
val threadExists = threadId >= 0
if (!hasStarted || !threadExists) { return }
var latestJob: MessageReceiveJob? = null
messages.sortedBy { it.serverID!! }.forEach { message ->
try {
@ -82,22 +89,33 @@ class OpenGroupPollerV2(private val server: String, private val executorService:
Log.e("Loki", "Exception parsing message", e)
}
}
val currentLastMessageServerID = storage.getLastMessageServerID(room, server) ?: 0
val actualMax = max(messages.mapNotNull { it.serverID }.maxOrNull() ?: 0, currentLastMessageServerID)
if (actualMax > 0) {
storage.setLastMessageServerID(room, server, actualMax)
}
JobQueue.shared.add(TrimThreadJob(threadId))
}
private fun handleDeletedMessages(openGroupID: String, deletedMessageServerIDs: List<Long>) {
private fun handleDeletedMessages(room: String, openGroupID: String, deletions: List<OpenGroupAPIV2.MessageDeletion>) {
val storage = MessagingModuleConfiguration.shared.storage
val dataProvider = MessagingModuleConfiguration.shared.messageDataProvider
val groupID = GroupUtil.getEncodedOpenGroupID(openGroupID.toByteArray())
val threadID = storage.getThreadId(Address.fromSerialized(groupID)) ?: return
val deletedMessageIDs = deletedMessageServerIDs.mapNotNull { serverID ->
val messageID = dataProvider.getMessageID(serverID, threadID)
val deletedMessageIDs = deletions.mapNotNull { deletion ->
val messageID = dataProvider.getMessageID(deletion.deletedMessageServerID, threadID)
if (messageID == null) {
Log.d("Loki", "Couldn't find message ID for message with serverID: $serverID.")
Log.d("Loki", "Couldn't find message ID for message with serverID: ${deletion.deletedMessageServerID}.")
}
messageID
}
deletedMessageIDs.forEach { (messageId, isSms) ->
MessagingModuleConfiguration.shared.messageDataProvider.deleteMessage(messageId, isSms)
}
val currentMax = storage.getLastDeletionServerID(room, server) ?: 0L
val latestMax = deletions.map { it.id }.maxOrNull() ?: 0L
if (latestMax > currentMax && latestMax != 0L) {
storage.setLastDeletionServerID(room, server, latestMax)
}
}
}

View File

@ -430,7 +430,7 @@ object OnionRequestAPI {
/**
* Sends an onion request to `snode`. Builds new paths as needed.
*/
internal fun sendOnionRequest(method: Snode.Method, parameters: Map<*, *>, snode: Snode, publicKey: String): Promise<Map<*, *>, Exception> {
internal fun sendOnionRequest(method: Snode.Method, parameters: Map<*, *>, snode: Snode, publicKey: String? = null): Promise<Map<*, *>, Exception> {
val payload = mapOf( "method" to method.rawValue, "params" to parameters )
return sendOnionRequest(Destination.Snode(snode), payload).recover { exception ->
val httpRequestFailedException = exception as? HTTP.HTTPRequestFailedException

View File

@ -3,24 +3,29 @@
package org.session.libsession.snode
import android.os.Build
import com.goterl.lazysodium.LazySodiumAndroid
import com.goterl.lazysodium.SodiumAndroid
import com.goterl.lazysodium.exceptions.SodiumException
import com.goterl.lazysodium.interfaces.AEAD
import com.goterl.lazysodium.interfaces.GenericHash
import com.goterl.lazysodium.interfaces.PwHash
import com.goterl.lazysodium.interfaces.SecretBox
import com.goterl.lazysodium.utils.Key
import nl.komponents.kovenant.*
import nl.komponents.kovenant.functional.bind
import nl.komponents.kovenant.functional.map
import org.session.libsession.messaging.utilities.MessageWrapper
import org.session.libsignal.crypto.getRandomElement
import org.session.libsignal.protos.SignalServiceProtos
import org.session.libsignal.utilities.Snode
import org.session.libsignal.utilities.HTTP
import org.session.libsignal.database.LokiAPIDatabaseProtocol
import org.session.libsignal.utilities.Broadcaster
import org.session.libsignal.utilities.prettifiedDescription
import org.session.libsignal.utilities.removing05PrefixIfNeeded
import org.session.libsignal.utilities.retryIfNeeded
import org.session.libsignal.protos.SignalServiceProtos
import org.session.libsignal.utilities.*
import org.session.libsignal.utilities.Log
import org.session.libsignal.utilities.Base64
import java.security.SecureRandom
import java.util.*
object SnodeAPI {
private val sodium by lazy { LazySodiumAndroid(SodiumAndroid()) }
private val database: LokiAPIDatabaseProtocol
get() = SnodeModule.shared.storage
private val broadcaster: Broadcaster
@ -54,10 +59,14 @@ object SnodeAPI {
internal sealed class Error(val description: String) : Exception(description) {
object Generic : Error("An error occurred.")
object ClockOutOfSync : Error("Your clock is out of sync with the Service Node network.")
// ONS
object DecryptionFailed : Error("Couldn't decrypt ONS name.")
object HashingFailed : Error("Couldn't compute ONS name hash.")
object ValidationFailed : Error("ONS name validation failed.")
}
// Internal API
internal fun invoke(method: Snode.Method, snode: Snode, publicKey: String, parameters: Map<String, String>): RawResponsePromise {
internal fun invoke(method: Snode.Method, snode: Snode, publicKey: String? = null, parameters: Map<String, Any>): RawResponsePromise {
val url = "${snode.address}:${snode.port}/storage_rpc/v1"
if (useOnionRequests) {
return OnionRequestAPI.sendOnionRequest(method, parameters, snode, publicKey)
@ -153,6 +162,91 @@ object SnodeAPI {
}
// Public API
fun getSessionIDFor(onsName: String): Promise<String, Exception> {
val deferred = deferred<String, Exception>()
val promise = deferred.promise
val validationCount = 3
val sessionIDByteCount = 33
// Hash the ONS name using BLAKE2b
val onsName = onsName.toLowerCase(Locale.ENGLISH)
val nameAsData = onsName.toByteArray()
val nameHash = ByteArray(GenericHash.BYTES)
if (!sodium.cryptoGenericHash(nameHash, nameHash.size, nameAsData, nameAsData.size.toLong())) {
deferred.reject(Error.HashingFailed)
return promise
}
val base64EncodedNameHash = Base64.encodeBytes(nameHash)
// Ask 3 different snodes for the Session ID associated with the given name hash
val parameters = mapOf(
"endpoint" to "ons_resolve",
"params" to mapOf( "type" to 0, "name_hash" to base64EncodedNameHash )
)
val promises = (1..validationCount).map {
getRandomSnode().bind { snode ->
retryIfNeeded(maxRetryCount) {
invoke(Snode.Method.OxenDaemonRPCCall, snode, null, parameters)
}
}
}
all(promises).success { results ->
val sessionIDs = mutableListOf<String>()
for (json in results) {
val intermediate = json["result"] as? Map<*, *>
val hexEncodedCiphertext = intermediate?.get("encrypted_value") as? String
if (hexEncodedCiphertext != null) {
val ciphertext = Hex.fromStringCondensed(hexEncodedCiphertext)
val isArgon2Based = (intermediate["nonce"] == null)
if (isArgon2Based) {
// Handle old Argon2-based encryption used before HF16
val salt = ByteArray(PwHash.SALTBYTES)
val key: ByteArray
val nonce = ByteArray(SecretBox.NONCEBYTES)
val sessionIDAsData = ByteArray(sessionIDByteCount)
try {
key = Key.fromHexString(sodium.cryptoPwHash(onsName, SecretBox.KEYBYTES, salt, PwHash.OPSLIMIT_MODERATE, PwHash.MEMLIMIT_MODERATE, PwHash.Alg.PWHASH_ALG_ARGON2ID13)).asBytes
} catch (e: SodiumException) {
deferred.reject(Error.HashingFailed)
return@success
}
if (!sodium.cryptoSecretBoxOpenEasy(sessionIDAsData, ciphertext, ciphertext.size.toLong(), nonce, key)) {
deferred.reject(Error.DecryptionFailed)
return@success
}
sessionIDs.add(Hex.toStringCondensed(sessionIDAsData))
} else {
val hexEncodedNonce = intermediate["nonce"] as? String
if (hexEncodedNonce == null) {
deferred.reject(Error.Generic)
return@success
}
val nonce = Hex.fromStringCondensed(hexEncodedNonce)
val key = ByteArray(GenericHash.BYTES)
if (!sodium.cryptoGenericHash(key, key.size, nameAsData, nameAsData.size.toLong(), nameHash, nameHash.size)) {
deferred.reject(Error.HashingFailed)
return@success
}
val sessionIDAsData = ByteArray(sessionIDByteCount)
if (!sodium.cryptoAeadXChaCha20Poly1305IetfDecrypt(sessionIDAsData, null, null, ciphertext, ciphertext.size.toLong(), null, 0, nonce, key)) {
deferred.reject(Error.DecryptionFailed)
return@success
}
sessionIDs.add(Hex.toStringCondensed(sessionIDAsData))
}
} else {
deferred.reject(Error.Generic)
return@success
}
}
if (sessionIDs.size == validationCount && sessionIDs.toSet().size == 1) {
deferred.resolve(sessionIDs.first())
} else {
deferred.reject(Error.ValidationFailed)
}
}
return promise
}
fun getTargetSnodes(publicKey: String): Promise<List<Snode>, Exception> {
// SecureRandom() should be cryptographically secure
return getSwarm(publicKey).map { it.shuffled(SecureRandom()).take(targetSwarmSnodeCount) }

View File

@ -12,7 +12,6 @@ import android.os.Handler;
* See http://rxmarbles.com/#debounce
*/
public class Debouncer {
private final Handler handler;
private final long threshold;

View File

@ -321,6 +321,7 @@ object Util {
@JvmStatic
fun getBoldedString(value: String?): CharSequence {
if (value.isNullOrEmpty()) { return "" }
val spanned = SpannableString(value)
spanned.setSpan(StyleSpan(Typeface.BOLD), 0,
spanned.length,

View File

@ -6,7 +6,8 @@ class Snode(val address: String, val port: Int, val publicKeySet: KeySet?) {
public enum class Method(val rawValue: String) {
GetSwarm("get_snodes_for_pubkey"),
GetMessages("retrieve"),
SendMessage("store")
SendMessage("store"),
OxenDaemonRPCCall("oxend_request")
}
data class KeySet(val ed25519Key: String, val x25519Key: String)