Merge branch 'hotfix/2.16.1'

This commit is contained in:
Matthew Chen 2017-09-19 17:25:24 -04:00
commit 3367292ba0
21 changed files with 2187 additions and 3493 deletions

View File

@ -221,6 +221,7 @@
45DF5DF21DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DF5DF11DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift */; };
45DF5DF31DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DF5DF11DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift */; };
45E2E9201E153B3D00457AA0 /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E2E91F1E153B3D00457AA0 /* Strings.swift */; };
45E5A6991F61E6DE001E4A8A /* MarqueeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E5A6981F61E6DD001E4A8A /* MarqueeLabel.swift */; };
45E615161E8C590B0018AD52 /* DisplayableTextFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E615151E8C590B0018AD52 /* DisplayableTextFilter.swift */; };
45E615171E8C59100018AD52 /* DisplayableTextFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E615151E8C590B0018AD52 /* DisplayableTextFilter.swift */; };
45E7A6A81E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E7A6A61E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift */; };
@ -639,6 +640,8 @@
45666F7A1D9C0533008FE134 /* OWSDatabaseMigration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSDatabaseMigration.m; path = Migrations/OWSDatabaseMigration.m; sourceTree = "<group>"; };
45666F7C1D9C0814008FE134 /* OWSDatabaseMigrationRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSDatabaseMigrationRunner.h; path = Migrations/OWSDatabaseMigrationRunner.h; sourceTree = "<group>"; };
45666F7D1D9C0814008FE134 /* OWSDatabaseMigrationRunner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSDatabaseMigrationRunner.m; path = Migrations/OWSDatabaseMigrationRunner.m; sourceTree = "<group>"; };
456D0FD51F63094D008499CD /* km */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = km; path = translations/km.lproj/Localizable.strings; sourceTree = "<group>"; };
456D0FD81F631F4E008499CD /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = translations/lt.lproj/Localizable.strings; sourceTree = "<group>"; };
456F6E2E1E261D1000FD2210 /* PeerConnectionClientTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerConnectionClientTest.swift; sourceTree = "<group>"; };
4574A5D51DD6704700C6B692 /* CallService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = CallService.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
4579431C1E7C8CE9008ED0C0 /* Pastelog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pastelog.h; sourceTree = "<group>"; };
@ -687,6 +690,7 @@
45E282DF1D08E6CC00ADD4C8 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = translations/id.lproj/Localizable.strings; sourceTree = "<group>"; };
45E2E91E1E13EE3500457AA0 /* OWSCallNotificationsAdaptee.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = OWSCallNotificationsAdaptee.h; path = UserInterface/OWSCallNotificationsAdaptee.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
45E2E91F1E153B3D00457AA0 /* Strings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; name = Strings.swift; path = UserInterface/Strings.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
45E5A6981F61E6DD001E4A8A /* MarqueeLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarqueeLabel.swift; sourceTree = "<group>"; };
45E615151E8C590B0018AD52 /* DisplayableTextFilter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DisplayableTextFilter.swift; sourceTree = "<group>"; };
45E7A6A61E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DisplayableTextFilterTest.swift; sourceTree = "<group>"; };
45F170AB1E2F0351003FC1F2 /* CallAudioSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallAudioSession.swift; sourceTree = "<group>"; };
@ -1481,6 +1485,7 @@
76EB052B18170B33006006FC /* Views */ = {
isa = PBXGroup;
children = (
45E5A6981F61E6DD001E4A8A /* MarqueeLabel.swift */,
452EA09D1EA7ABE00078744B /* AttachmentPointerView.swift */,
34E3E5671EC4B19400495BAC /* AudioProgressView.swift */,
45F3AEB51DFDE7900080CE33 /* AvatarImageView.swift */,
@ -1959,7 +1964,6 @@
zh_CN,
hr,
ro,
fa,
sn,
id,
gl,
@ -1968,6 +1972,8 @@
bg,
Base,
ar,
km,
lt,
);
mainGroup = D221A07E169C9E5E00537ABF;
productRefGroup = D221A08A169C9E5E00537ABF /* Products */;
@ -2401,6 +2407,7 @@
346B66311F4E29B200E5122F /* CropScaleImageViewController.swift in Sources */,
76EB058818170B33006006FC /* PropertyListPreferences.m in Sources */,
34330A611E788EA900DF2FB9 /* AttachmentUploadView.m in Sources */,
45E5A6991F61E6DE001E4A8A /* MarqueeLabel.swift in Sources */,
34B3F87D1E8DF1700035BE1A /* FullImageViewController.m in Sources */,
45666F7B1D9C0533008FE134 /* OWSDatabaseMigration.m in Sources */,
B90418E6183E9DD40038554A /* DateUtil.m in Sources */,
@ -2557,6 +2564,8 @@
4597E94E1D8313C100040CDE /* sq */,
4597E94F1D8313CB00040CDE /* bg */,
3495BC911F1426B800B478F5 /* ar */,
456D0FD51F63094D008499CD /* km */,
456D0FD81F631F4E008499CD /* lt */,
);
name = Localizable.strings;
sourceTree = "<group>";

View File

@ -38,7 +38,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.16.0</string>
<string>2.16.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
@ -55,7 +55,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>2.16.0.20</string>
<string>2.16.1.2</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LOGS_EMAIL</key>

View File

@ -105,6 +105,8 @@ static NSString *const kURLHostVerifyPrefix = @"verify";
[AppVersion instance];
[self startupLogging];
// Set the seed the generator for rand().
//
// We should always use arc4random() instead of rand(), but we
@ -171,6 +173,24 @@ static NSString *const kURLHostVerifyPrefix = @"verify";
return YES;
}
- (void)startupLogging
{
DDLogInfo(@"iOS Version: %@", [UIDevice currentDevice].systemVersion);
NSString *localeIdentifier = [NSLocale.currentLocale objectForKey:NSLocaleIdentifier];
if (localeIdentifier.length > 0) {
DDLogInfo(@"Locale Identifier: %@", localeIdentifier);
}
NSString *countryCode = [NSLocale.currentLocale objectForKey:NSLocaleCountryCode];
if (countryCode.length > 0) {
DDLogInfo(@"Country Code: %@", countryCode);
}
NSString *languageCode = [NSLocale.currentLocale objectForKey:NSLocaleLanguageCode];
if (languageCode.length > 0) {
DDLogInfo(@"Language Code: %@", languageCode);
}
}
- (UIViewController *)loadingRootViewController
{
UIViewController *viewController =
@ -784,6 +804,10 @@ static NSString *const kURLHostVerifyPrefix = @"verify";
{
DDLogInfo(@"databaseViewRegistrationComplete");
if ([TSAccountManager isRegistered]) {
DDLogInfo(@"localNumber: %@", [TSAccountManager localNumber]);
}
[DeviceSleepManager.sharedInstance removeBlockWithBlockObject:self];
[AppVersion.instance appLaunchDidComplete];

View File

@ -89,9 +89,9 @@ NS_ASSUME_NONNULL_BEGIN
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) {
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
picker.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeImage, nil];
[self.delegate.fromViewController presentViewController:picker
animated:YES

View File

@ -31,7 +31,7 @@ class CallViewController: OWSViewController, CallObserver, CallServiceObserver,
// MARK: Contact Views
var contactNameLabel: UILabel!
var contactNameLabel: MarqueeLabel!
var contactAvatarView: AvatarImageView!
var callStatusLabel: UILabel!
var callDurationTimer: Timer?
@ -188,7 +188,7 @@ class CallViewController: OWSViewController, CallObserver, CallServiceObserver,
override func viewDidLoad() {
super.viewDidLoad()
contactNameLabel.text = contactsManager.displayName(forPhoneIdentifier: thread.contactIdentifier())
contactNameLabel.text = contactsManager.stringForConversationTitle(withPhoneIdentifier: thread.contactIdentifier())
updateAvatarImage()
NotificationCenter.default.addObserver(forName: .OWSContactsManagerSignalAccountsDidChange, object: nil, queue: nil) { [weak self] _ in
guard let strongSelf = self else { return }
@ -243,12 +243,25 @@ class CallViewController: OWSViewController, CallObserver, CallServiceObserver,
}
func createContactViews() {
contactNameLabel = UILabel()
contactNameLabel = MarqueeLabel()
// marquee config
contactNameLabel.type = .continuous
// This feels pretty slow when you're initially waiting for it, but when you're overlaying video calls, anything faster is distracting.
contactNameLabel.speed = .duration(30.0)
contactNameLabel.animationCurve = .linear
contactNameLabel.fadeLength = 10.0
contactNameLabel.animationDelay = 5
// Add trailing space after the name scrolls before it wraps around and scrolls back in.
contactNameLabel.trailingBuffer = ScaleFromIPhone5(80.0)
// label config
contactNameLabel.font = UIFont.ows_lightFont(withSize:ScaleFromIPhone5To7Plus(32, 40))
contactNameLabel.textColor = UIColor.white
contactNameLabel.layer.shadowOffset = CGSize.zero
contactNameLabel.layer.shadowOpacity = 0.35
contactNameLabel.layer.shadowRadius = 4
self.view.addSubview(contactNameLabel)
callStatusLabel = UILabel()
@ -723,6 +736,9 @@ class CallViewController: OWSViewController, CallObserver, CallServiceObserver,
return
}
// Marquee scrolling is distractingn during a video call, disable it.
contactNameLabel.labelize = call.hasLocalVideo
audioModeMuteButton.isSelected = call.isMuted
videoModeMuteButton.isSelected = call.isMuted
audioModeVideoButton.isSelected = call.hasLocalVideo

View File

@ -21,6 +21,7 @@ final class CallKitCallUIAdaptee: NSObject, CallUIAdaptee, CXProviderDelegate {
private let callManager: CallKitCallManager
internal let callService: CallService
internal let notificationsAdapter: CallNotificationsAdapter
internal let contactsManager: OWSContactsManager
private let provider: CXProvider
// CallKit handles incoming ringer stop/start for us. Yay!
@ -48,13 +49,14 @@ final class CallKitCallUIAdaptee: NSObject, CallUIAdaptee, CXProviderDelegate {
return providerConfiguration
}
init(callService: CallService, notificationsAdapter: CallNotificationsAdapter) {
init(callService: CallService, contactsManager: OWSContactsManager, notificationsAdapter: CallNotificationsAdapter) {
AssertIsOnMainThread()
Logger.debug("\(self.TAG) \(#function)")
self.callManager = CallKitCallManager()
self.callService = callService
self.contactsManager = contactsManager
self.notificationsAdapter = notificationsAdapter
self.provider = CXProvider(configuration: type(of: self).providerConfiguration)
@ -104,13 +106,14 @@ final class CallKitCallUIAdaptee: NSObject, CallUIAdaptee, CXProviderDelegate {
let callKitId = CallKitCallManager.kAnonymousCallHandlePrefix + call.localId.uuidString
update.remoteHandle = CXHandle(type: .generic, value: callKitId)
TSStorageManager.shared().setPhoneNumber(call.remotePhoneNumber, forCallKitId:callKitId)
update.localizedCallerName = NSLocalizedString("CALLKIT_ANONYMOUS_CONTACT_NAME", comment: "The generic name used for calls if CallKit privacy is enabled")
} else {
update.localizedCallerName = self.contactsManager.stringForConversationTitle(withPhoneIdentifier: call.remotePhoneNumber)
update.remoteHandle = CXHandle(type: .phoneNumber, value: call.remotePhoneNumber)
}
update.hasVideo = call.hasLocalVideo
// Update the name used in the CallKit UI for incoming calls.
update.localizedCallerName = NSLocalizedString("CALLKIT_ANONYMOUS_CONTACT_NAME", comment: "The generic name used for calls if CallKit privacy is enabled")
disableUnsupportedFeatures(callUpdate: update)
// Report the incoming call to the system

View File

@ -91,7 +91,7 @@ extension CallUIAdaptee {
adaptee = NonCallKitCallUIAdaptee(callService: callService, notificationsAdapter: notificationsAdapter)
} else if #available(iOS 10.0, *), Environment.getCurrent().preferences.isCallKitEnabled() {
Logger.info("\(TAG) choosing callkit adaptee for iOS10+")
adaptee = CallKitCallUIAdaptee(callService: callService, notificationsAdapter: notificationsAdapter)
adaptee = CallKitCallUIAdaptee(callService: callService, contactsManager: contactsManager, notificationsAdapter: notificationsAdapter)
} else {
Logger.info("\(TAG) choosing non-callkit adaptee")
adaptee = NonCallKitCallUIAdaptee(callService: callService, notificationsAdapter: notificationsAdapter)

View File

@ -69,6 +69,7 @@ extern NSString *const OWSContactsManagerSignalAccountsDidChangeNotification;
- (nullable NSString *)formattedProfileNameForRecipientId:(NSString *)recipientId;
- (nullable NSString *)profileNameForRecipientId:(NSString *)recipientId;
- (nullable NSString *)nameFromSystemContactsForRecipientId:(NSString *)recipientId;
- (NSString *)stringForConversationTitleWithPhoneIdentifier:(NSString *)recipientId;
- (nullable UIImage *)imageForPhoneIdentifier:(nullable NSString *)identifier;
- (NSAttributedString *)formattedDisplayNameForSignalAccount:(SignalAccount *)signalAccount font:(UIFont *_Nonnull)font;

View File

@ -615,6 +615,34 @@ NSString *const kTSStorageManager_AccountLastNames = @"kTSStorageManager_Account
return [[NSAttributedString alloc] initWithString:recipientId];
}
// TODO refactor attributed counterparts to use this as a helper method?
- (NSString *)stringForConversationTitleWithPhoneIdentifier:(NSString *)recipientId
{
// Prefer a saved name from system contacts, if available
NSString *_Nullable savedContactName = [self cachedDisplayNameForRecipientId:recipientId];
if (savedContactName.length > 0) {
return savedContactName;
}
NSString *formattedPhoneNumber =
[PhoneNumber bestEffortFormatPartialUserSpecifiedTextToLookLikeAPhoneNumber:recipientId];
NSString *_Nullable profileName = [self.profileManager profileNameForRecipientId:recipientId];
if (profileName.length > 0) {
NSString *numberAndProfileNameFormat = NSLocalizedString(@"PROFILE_NAME_AND_PHONE_NUMBER_LABEL_FORMAT",
@"Label text combining the phone number and profile name separated by a simple demarcation character. "
@"Phone number should be most prominent. '%1$@' is replaced with {{phone number}} and '%2$@' is replaced "
@"with {{profile name}}");
NSString *numberAndProfileName =
[NSString stringWithFormat:numberAndProfileNameFormat, formattedPhoneNumber, profileName];
return numberAndProfileName;
}
// else fall back phone number
return formattedPhoneNumber;
}
- (nullable SignalAccount *)signalAccountForRecipientId:(NSString *)recipientId
{
OWSAssert(recipientId.length > 0);

File diff suppressed because it is too large Load Diff

View File

@ -62,7 +62,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ في المجموعة %@: %@";
/* Text prompting user to edit their profile name. */
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Enter your name";
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "أدخل إسمك";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number.}}. */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "النسخة %@ غير متواجدة بمتجر الآب ستور";
@ -206,7 +206,7 @@
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "حظر %@؟";
/* Label for generic done button. */
"BUTTON_DONE" = "Done";
"BUTTON_DONE" = "تم";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "من أجل إجراء المكالمات وتسجيل الرسائل الصوتية يحتاج تطبيق سجنال السماح بإستخدام الميكروفون. بإمكانك منح هذا الإذن من خلال تطبيق الإعدادات.";
@ -368,16 +368,16 @@
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER" = "مشاركة ملفك الشخصي";
/* Message shown in conversation view that offers to add an unknown user to your phone's contacts. */
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Add to Contacts";
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "أضف إلى جهات الاتصال";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile With This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "شارك ملفك الشخصي مع هذا المستخدم";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "This user is not in your contacts.";
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "هذا المستخدم غير موجود في جهات الاتصال الخاصة بك.";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Block This User";
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "حجب هذا المستخدم";
/* ActionSheet title */
"CORRUPTED_SESSION_DESCRIPTION" = "إعادة تعيين جلستك سيسمح لك باستقبال الرسائل الحديثة من %@, لكن لن تتمكن من استعادة أي من الرسائل التالفة.";
@ -389,7 +389,7 @@
"CREATE_NEW_GROUP" = "انشاء مجموعة جديدة";
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Move and Scale";
"CROP_SCALE_IMAGE_VIEW_TITLE" = "تحريك و تغير المقياس ";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "قد يستغرق ذلك بضع دقائق.";
@ -821,7 +821,7 @@
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "لقد حظرت %@ من أعضاء هذه المجموعة.";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "هل ترغب في مشاركة ملفك الشخصي مع هذه المجموعة؟";
/* Indicates that more than one member of this group conversation is no longer verified. */
"MESSAGES_VIEW_N_MEMBERS_NO_LONGER_VERIFIED" = "لم يعد هناك دلالة تحقق لأكثر من عضو في هذه المجموعة. انقر للحصول على خيارات.";
@ -883,7 +883,7 @@
"MUTE_BEHAVIOR_EXPLANATION" = "لن تستلم تنبيهات من المحادثات التي تم كتمها.";
/* A button to skip a view. */
"NAVIGATION_ITEM_SKIP_BUTTON" = "Skip";
"NAVIGATION_ITEM_SKIP_BUTTON" = "تخطى";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "من فضلك تأكد من اتصالك بالانترنت وحاول مرة أخرى.";
@ -1085,10 +1085,10 @@
"PROCEED_BUTTON" = "تقدم";
/* Label text combining the phone number and profile name separated by a simple demarcation character. Phone number should be most prominent. '%1$@' is replaced with {{phone number}} and '%2$@' is replaced with {{profile name}} */
"PROFILE_NAME_AND_PHONE_NUMBER_LABEL_FORMAT" = "%1$@ ~%2$@";
"PROFILE_NAME_AND_PHONE_NUMBER_LABEL_FORMAT" = "%1$@ ~ %2$@";
/* Prepend a simple marker to differentiate the profile name, embeds the contact's {{profile name}}. */
"PROFILE_NAME_LABEL_FORMAT" = "~%@";
"PROFILE_NAME_LABEL_FORMAT" = "~ %@";
/* Action Sheet title prompting the user for a profile avatar */
"PROFILE_VIEW_AVATAR_ACTIONSHEET_TITLE" = "تعيين الصورة الرمزية للملف الشخصي";
@ -1097,31 +1097,31 @@
"PROFILE_VIEW_CLEAR_AVATAR" = "مسح الصورة الرمزية";
/* Error message shown when user tries to update profile with a profile name that is too long. */
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Your profile name is too long.";
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "اسم ملفك الشخصي طويل جدا.";
/* Error message shown when a profile update fails. */
"PROFILE_VIEW_ERROR_UPDATE_FAILED" = "أخفقت عملية تحديث الملف الشخصي.";
/* Default text for the profile name field of the profile view. */
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Enter your name";
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "أدخل إسمك";
/* Label for the profile avatar field of the profile view. */
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Avatar";
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "الصورة الرمزية";
/* Description of the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Your Signal Profile will be visible to your contacts, when you initiate new conversations, and when you share it with other users and groups.";
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "سيكون ملف سيجنال الخاص بك مرئيا لجهات اتصالك عند بدء محادثات جديدة، وعند مشاركتها مع مستخدمين آخرين أو المجموعات.";
/* Link to more information about the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Tap here to learn more.";
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "انقر هنا لمعرفة المزيد.";
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Profile Name";
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "اسم الشخصية";
/* Button to save the profile view in the profile view. */
"PROFILE_VIEW_SAVE_BUTTON" = "Save";
"PROFILE_VIEW_SAVE_BUTTON" = "حفظ";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving...";
"PROFILE_VIEW_SAVING" = "في جراء الحفظ...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "الملف الشخصي";
@ -1517,13 +1517,13 @@
"UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "تصفح بسلاسة لتعرف الإجابة ببساطة";
/* button label shown one time, after user upgrades app */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Set up Your Profile";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "إعداد الملف الشخصي";
/* Description of new profile feature for upgrading (existing) users */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "You can now share a profile photo and name with your friends on Signal.";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "يمكنك الآن مشاركة صورة و إسم الملف الشخصي الخاص بكمع أصدقائك على تطبيق سيجنال.";
/* Header for upgrade experience */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Ready for Your Closeup?";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "هل انت على استعداد لتطوير الواجهة؟";
/* Description of video calling to upgrading (existing) users */
"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "تدعم Signal حالياً إتصال الفيديو الآمن. إِبدأ بمجرد إجراء الاتصال الهاتفي المعتاد، وانقر على زرّ الكاميرا، ثم لوِّح لتلقي التحية. ";

View File

@ -17,13 +17,13 @@
"ADD_GROUP_MEMBER_VIEW_TITLE" = "Добави Член";
/* Message shown in conversation view that offers to share your profile with a group. */
"ADD_GROUP_TO_PROFILE_WHITELIST_OFFER" = "Would you like to share your profile with this group?";
"ADD_GROUP_TO_PROFILE_WHITELIST_OFFER" = "Желаете ли да споделите профила си с тази група?";
/* Message shown in conversation view that offers to add an unknown user to your phone's contacts. */
"ADD_TO_CONTACTS_OFFER" = "Искате ли да добавите този потребител в контактите си?";
/* Message shown in conversation view that offers to share your profile with a user. */
"ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Would you like to share your profile with this user?";
"ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Желаете ли да споделите профила си с този потребител?";
/* The label for the 'discard' button in alerts and action sheets. */
"ALERT_DISCARD_BUTTON" = "Откажи";
@ -62,16 +62,16 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ група %@: %@";
/* Text prompting user to edit their profile name. */
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Enter your name";
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Въведете името си";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number.}}. */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Version %@ is now available in the App Store.";
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Версия %@ е налична в App Store.";
/* Title for the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_TITLE" = "A New Version of Signal is Available";
"APP_UPDATE_NAG_ALERT_TITLE" = "Налична е нова версия на Сигнал";
/* Label for the 'update' button in the 'new app version available' alert. */
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Update";
"APP_UPDATE_NAG_ALERT_UPDATE_BUTTON" = "Обновяване";
/* Name of application */
"APPLICATION_NAME" = "Сигнал";
@ -149,10 +149,10 @@
"ATTACHMENT_TYPE_VOICE_MESSAGE" = "Гласово Съобщение";
/* action sheet button title to enable built in speaker during a call */
"AUDIO_ROUTE_BUILT_IN_SPEAKER" = "Speaker";
"AUDIO_ROUTE_BUILT_IN_SPEAKER" = "Говорител";
/* An explanation of the consequences of blocking another user. */
"BLOCK_BEHAVIOR_EXPLANATION" = "Блокирания потребител не може да ви се обажда или да ви изпраща съобщения.";
"BLOCK_BEHAVIOR_EXPLANATION" = "Блокиран потребител не може да ви се обажда или да ви изпраща съобщения.";
/* Button label for the 'block' button */
"BLOCK_LIST_BLOCK_BUTTON" = "Блокиране";
@ -206,7 +206,7 @@
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Блокирай %@ ?";
/* Label for generic done button. */
"BUTTON_DONE" = "Done";
"BUTTON_DONE" = "Готово";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "Сигнал се нуждае от достъп до микрофона ви за да извършвате повиквания и за гласови съобщения. Можете да разрешите това от Настройки на телефона.";
@ -281,16 +281,16 @@
"CONFIRM_LINK_NEW_DEVICE_ACTION" = "Свържи Ново Устройство";
/* Action sheet body presented when a user's SN have recently changed. Embeds {{contact's name or phone nubmer}} */
"CONFIRM_SENDING_TO_CHANGED_IDENTITY_BODY_FORMAT" = "%@ may have reinstalled or changed devices. Verify your safety number with them to ensure privacy.";
"CONFIRM_SENDING_TO_CHANGED_IDENTITY_BODY_FORMAT" = "%@ може да е преинсталирал или сменил устройството си. Потвърдете номерата за сигурност.";
/* Action sheet title presented when a users's SN have recently changed. Embeds {{contact's name or phone number}} */
"CONFIRM_SENDING_TO_CHANGED_IDENTITY_TITLE_FORMAT" = "Safety number with %@ has changed";
"CONFIRM_SENDING_TO_CHANGED_IDENTITY_TITLE_FORMAT" = "Номера за безопасност с %@ се променени.";
/* Generic button text to proceed with an action */
"CONFIRMATION_TITLE" = "Потвърждение";
/* An indicator that a contact has been blocked. */
"CONTACT_CELL_IS_BLOCKED" = "Блокиран";
"CONTACT_CELL_IS_BLOCKED" = "Блокиране";
/* An indicator that a contact is no longer verified. */
"CONTACT_CELL_IS_NO_LONGER_VERIFIED" = "Непроверен";
@ -308,7 +308,7 @@
"CONVERSATION_SETTINGS" = "Настройки на Разговор";
/* Label for 'new contact' button in conversation settings view. */
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Add to Existing Contact";
"CONVERSATION_SETTINGS_ADD_TO_EXISTING_CONTACT" = "Добави към съществуващ контакт";
/* table cell label in conversation settings */
"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Блокирай потребителя";
@ -347,37 +347,37 @@
"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "до %@";
/* Label for 'new contact' button in conversation settings view. */
"CONVERSATION_SETTINGS_NEW_CONTACT" = "Create New Contact";
"CONVERSATION_SETTINGS_NEW_CONTACT" = "Създай Нов Контакт";
/* Label for button to unmute a thread. */
"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Премахни заглушаването";
/* Indicates that user's profile has been shared with a group. */
"CONVERSATION_SETTINGS_VIEW_PROFILE_IS_SHARED_WITH_GROUP" = "This group can see your profile.";
"CONVERSATION_SETTINGS_VIEW_PROFILE_IS_SHARED_WITH_GROUP" = "Тази група може да вижда профила ви.";
/* Indicates that user's profile has been shared with a user. */
"CONVERSATION_SETTINGS_VIEW_PROFILE_IS_SHARED_WITH_USER" = "This user can see your profile.";
"CONVERSATION_SETTINGS_VIEW_PROFILE_IS_SHARED_WITH_USER" = "Този потребител може да вижда профила ви.";
/* Button to confirm that user wants to share their profile with a user or group. */
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE" = "Share Profile";
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE" = "Сподели Профил";
/* Action that shares user profile with a group. */
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_GROUP" = "Share Your Profile";
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_GROUP" = "Споделете профила си";
/* Action that shares user profile with a user. */
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER" = "Share Your Profile";
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER" = "Споделете профила си";
/* Message shown in conversation view that offers to add an unknown user to your phone's contacts. */
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Add to Contacts";
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Добави към Контакти";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile With This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Споделете профила си с този потребител";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "This user is not in your contacts.";
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Този потребител не е в контактите ви.";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Block This User";
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Блокирай потребителя";
/* ActionSheet title */
"CORRUPTED_SESSION_DESCRIPTION" = "Нулиране на вашата сесия ще ви позволи да получите бъдещи съобщения от %@, но няма да се възстановят вече повредени съобщения.";
@ -389,7 +389,7 @@
"CREATE_NEW_GROUP" = "Създай нова група";
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Move and Scale";
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Преместване и мащабиране";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "Това може да отнеме няколко минути.";
@ -452,7 +452,7 @@
"EDIT_GROUP_UPDATE_BUTTON" = "Обнови";
/* The alert message if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "You've changed this group. Would you like to save these changes?";
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Вие променихте групата. Искате ли да запазите промените?";
/* The alert title if user tries to exit update group view without saving changes. */
"EDIT_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Незапазени Промени";
@ -518,13 +518,13 @@
"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Не може да се изпрати поради остаряли лични данни.";
/* Error mesage indicating that message send failed due to block list */
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "Failed to message user because you blocked them.";
"ERROR_DESCRIPTION_MESSAGE_SEND_FAILED_DUE_TO_BLOCK_LIST" = "Съобщението не е изпратено защото сте блокирали потребителя.";
/* Generic error used whenver Signal can't contact the server */
"ERROR_DESCRIPTION_NO_INTERNET" = "Сигнал не успя да се свърже с интернет. Моля, опитайте от друга WiFi мрежа или чрез използване на мобилни данни.";
/* Error indicating that an outgoing message had no valid recipients. */
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Message send failed due to a lack of valid recipients.";
"ERROR_DESCRIPTION_NO_VALID_RECIPIENTS" = "Съобщението не беше изпратено успешно поради липса на валидни получатели.";
/* Error message when attempting to send message */
"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Вашето устройство вече не е регистрирано към този номер. Трябва да изтриете и преинсталирате Сигнал.";
@ -590,7 +590,7 @@
"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Твърде много провали с този контакт. Моля, опитайте отново след малко.";
/* action sheet header when re-sending message which failed because of untrusted identity keys */
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Your safety number with %@ has recently changed. You may wish to verify before resending.";
"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Номерата ви за безопасност с %@ са променени. Потвърдете ги преди повторно изпращане.";
/* alert title */
"FAILED_VERIFICATION_TITLE" = "Неуспех при Проверка на Номерата за Безопасност!";
@ -620,7 +620,7 @@
"GROUP_CREATING" = "Създай нова група";
/* Message shown in conversation view that indicates there were issues with group creation. */
"GROUP_CREATION_FAILED" = "Not all members could be added to the group. Tap to retry.";
"GROUP_CREATION_FAILED" = "Не всички потребители могат да се добавят в групата. Докосни за повторен опит.";
/* Conversation settings table section title */
"GROUP_MANAGEMENT_SECTION" = "Управление на Група";
@ -638,16 +638,16 @@
"GROUP_MEMBERS_CALL" = "Повикване";
/* Label for the button that clears all verification errors in the 'group members' view. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Clear Verification For All";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED" = "Изчисти грешките от проверките";
/* Label for the 'reset all no-longer-verified group members' confirmation alert. */
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "This will clear the verification of all group members whose safety numbers have changed since they were last verified.";
"GROUP_MEMBERS_RESET_NO_LONGER_VERIFIED_ALERT_MESSAGE" = "Това ще изчисти всички съобщения за проверки на номерата за безопасност.";
/* Title for the 'members' section of the 'group members' view. */
"GROUP_MEMBERS_SECTION_TITLE_MEMBERS" = "Членове";
/* Title for the 'no longer verified' section of the 'group members' view. */
"GROUP_MEMBERS_SECTION_TITLE_NO_LONGER_VERIFIED" = "No Longer Marked as Verified";
"GROUP_MEMBERS_SECTION_TITLE_NO_LONGER_VERIFIED" = "Не е маркиран като проверен";
/* Button label for the 'send message to group member' button */
"GROUP_MEMBERS_SEND_MESSAGE" = "Изпрати Съобщение";
@ -686,10 +686,10 @@
"IN_CALL_TERMINATED" = "Обаждането Приключи.";
/* Label reminding the user that they are in archive mode. */
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "You are viewing your archived messages. Tap to return to your Inbox.";
"INBOX_VIEW_ARCHIVE_MODE_REMINDER" = "Вие преглеждате архивираните си съобщения. Докоснете за да се върнете при входящите съобщения.";
/* Multiline label explaining how to show names instead of phone numbers in your inbox */
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "To see the names of your contacts, update your system settings to allow contact access.";
"INBOX_VIEW_MISSING_CONTACTS_PERMISSION" = "За да видите номерата на контактите си, обновете системните си настройки и разрешете достъп до контактите.";
/* notification body */
"INCOMING_CALL" = "Входящо повикване";
@ -698,22 +698,22 @@
"INCOMING_CALL_FROM" = "Входящо повикване от %@";
/* info message recorded in conversation history when local user declined a call */
"INCOMING_DECLINED_CALL" = "You declined a call";
"INCOMING_DECLINED_CALL" = "Отказахте обаждане";
/* No comment provided by engineer. */
"INCOMING_INCOMPLETE_CALL" = "Непълно входящо повикване от";
/* info message text shown in conversation view */
"INFO_MESSAGE_MISSED_CALL_DUE_TO_CHANGED_IDENITY" = "Missed call because their safety number has changed.";
"INFO_MESSAGE_MISSED_CALL_DUE_TO_CHANGED_IDENITY" = "Пропуснато обаждане защото номера за безопасност са променени.";
/* Message for the alert indicating that an audio file is invalid. */
"INVALID_AUDIO_FILE_ALERT_ERROR_MESSAGE" = "Невалиден аудио файл.";
/* Alert body when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "To invite your contacts, you need to allow Signal access to your contacts in the Settings app.";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_BODY" = "За да поканите контакти, трябва да разрешите достъп на Сигнал до контактите ви в настройките на телефона си.";
/* Alert title when contacts disabled while trying to invite contacts to signal */
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Allow Contact Access";
"INVITE_FLOW_REQUIRES_CONTACT_ACCESS_TITLE" = "Разреши Достъп до Контактите";
/* Label for the cell that presents the 'invite contacts' workflow. */
"INVITE_FRIENDS_CONTACT_TABLE_BUTTON" = "Покани приятели в Сигнал";
@ -800,13 +800,13 @@
"MESSAGE_STATUS_UPLOADING" = "Качване...";
/* Indicates that one member of this group conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
"MESSAGES_VIEW_1_MEMBER_NO_LONGER_VERIFIED_FORMAT" = "%@ вече не е отбелязан като проверен. Докоснете за настройки.";
/* Indicates that this 1:1 conversation has been blocked. */
"MESSAGES_VIEW_CONTACT_BLOCKED" = "Вие сте блокирали потребителя";
/* Indicates that this 1:1 conversation is no longer verified. Embeds {{user's name or phone number}}. */
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ is no longer marked as verified. Tap for options.";
"MESSAGES_VIEW_CONTACT_NO_LONGER_VERIFIED_FORMAT" = "%@ вече не е отбелязан като проверен. Докоснете за настройки.";
/* Action sheet title after tapping on failed download. */
"MESSAGES_VIEW_FAILED_DOWNLOAD_ACTIONSHEET_TITLE" = "Изтеглянето се провали.";
@ -815,16 +815,16 @@
"MESSAGES_VIEW_FAILED_DOWNLOAD_RETRY_ACTION" = "Повторно Изтегляне";
/* Indicates that a single member of this group has been blocked. */
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "You Blocked 1 Member of this Group";
"MESSAGES_VIEW_GROUP_1_MEMBER_BLOCKED" = "Вие сте блокирали 1 потребител на тази група.";
/* Indicates that some members of this group has been blocked. Embeds {{the number of blocked users in this group}}. */
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "You Blocked %@ Members of this Group";
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Вие сте блокирали %@ потребителя на тази група.";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Споделете профила си с тази група.";
/* Indicates that more than one member of this group conversation is no longer verified. */
"MESSAGES_VIEW_N_MEMBERS_NO_LONGER_VERIFIED" = "More than one member of this group is no longer marked as verified. Tap for options.";
"MESSAGES_VIEW_N_MEMBERS_NO_LONGER_VERIFIED" = "Няколко потребителя вече не са отбелязани като проверени. Докоснете за настройки.";
/* The subtitle for the messages view title indicates that the title can be tapped to access settings for this conversation. */
"MESSAGES_VIEW_TITLE_SUBTITLE" = "Докосни тук за настройки";
@ -833,19 +833,19 @@
"MESSAGES_VIEW_UNREAD_INDICATOR" = "Непрочетени Съобщения";
/* Messages that indicates that there are more unseen messages including safety number changes that be revealed by tapping the 'load earlier messages' button. Embeds {{the name of the 'load earlier messages' button}}. */
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES_AND_SAFETY_NUMBER_CHANGES_FORMAT" = "There are more unread messages (including safety number changes) above. Tap \"%@\" to see them.";
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES_AND_SAFETY_NUMBER_CHANGES_FORMAT" = "Има няколко непрочетени съобщения (включително номерата за безопасност са променени). Докоснете \"%@\" за да ги видите.";
/* Messages that indicates that there are more unseen messages that be revealed by tapping the 'load earlier messages' button. Embeds {{the name of the 'load earlier messages' button}} */
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES_FORMAT" = "There are more unread messages above. Tap \"%@\" to see them.";
"MESSAGES_VIEW_UNREAD_INDICATOR_HAS_MORE_UNSEEN_MESSAGES_FORMAT" = "Има няколко непрочетени съобщения . Докоснете \"%@\" за да ги видите.";
/* notification title */
"MISSED_CALL" = "Пропуснато обаждане";
/* notification title. Embeds {{caller's name or phone number}} */
"MISSED_CALL_WITH_CHANGED_IDENTITY_BODY_WITH_CALLER_NAME" = "Missed call from %@ because their safety number changed.";
"MISSED_CALL_WITH_CHANGED_IDENTITY_BODY_WITH_CALLER_NAME" = "Пропуснато обаждане от %@ защото номера за безопасност са променени.";
/* notification title */
"MISSED_CALL_WITH_CHANGED_IDENTITY_BODY_WITHOUT_CALLER_NAME" = "Missed call because the caller's safety number changed.";
"MISSED_CALL_WITH_CHANGED_IDENTITY_BODY_WITHOUT_CALLER_NAME" = "Пропуснато обаждане защото номера за безопасност са променени.";
/* Alert body
Alert body when camera is not authorized */
@ -856,7 +856,7 @@
"MISSING_CAMERA_PERMISSION_TITLE" = "Signal се нуждае от достъп до камерата ви.";
/* No comment provided by engineer. */
"MSGVIEW_MISSED_CALL_BECAUSE_OF_CHANGED_IDENTITY" = "Missed call because their safety number has changed.";
"MSGVIEW_MISSED_CALL_BECAUSE_OF_CHANGED_IDENTITY" = "Пропуснато обаждане защото номера за безопасност са променени.";
/* notification title. Embeds {{caller's name or phone number}} */
"MSGVIEW_MISSED_CALL_WITH_NAME" = "Пропуснато обаждане от %@.";
@ -880,10 +880,10 @@
"MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Вие сте достигнали максимума на устройства които можете да сдвоите с вашия акаунт. Моля, премахнете дадено устройство или опитайте отново да го сдвоите по-късно.";
/* An explanation of the consequences of muting a thread. */
"MUTE_BEHAVIOR_EXPLANATION" = "You will not receive notifications for muted conversations.";
"MUTE_BEHAVIOR_EXPLANATION" = "Няма да получавате известия за заглушени разговори.";
/* A button to skip a view. */
"NAVIGATION_ITEM_SKIP_BUTTON" = "Skip";
"NAVIGATION_ITEM_SKIP_BUTTON" = "Пропусни";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Моля проверете дали сте онлайн и опитайте от ново.";
@ -928,7 +928,7 @@
"NEW_GROUP_NON_CONTACTS_SECTION_TITLE" = "Други Потребители";
/* The alert message if user tries to exit the new group view without saving changes. */
"NEW_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Would you like to discard these changes?";
"NEW_GROUP_VIEW_UNSAVED_CHANGES_MESSAGE" = "Искате ли да откажете тези промени?";
/* The alert title if user tries to exit the new group view without saving changes. */
"NEW_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Незапазени Промени";
@ -986,7 +986,7 @@
"OUTGOING_CALL" = "Изходящо повикване";
/* No comment provided by engineer. */
"OUTGOING_INCOMPLETE_CALL" = "Unanswered outgoing call";
"OUTGOING_INCOMPLETE_CALL" = "Неотговорено изходящо обаждане";
/* A display format for oversize text messages. */
"OVERSIZE_TEXT_DISPLAY_FORMAT" = "%@ ... [Докосни за Още]";
@ -1034,13 +1034,13 @@
"PHONE_NUMBER_TYPE_WORK_FAX" = "Служебен Факс";
/* Label indicating that the user is not verified. Embeds {{the user's name or phone number}}. */
"PRIVACY_IDENTITY_IS_NOT_VERIFIED_FORMAT" = "You have not marked %@ as verified.";
"PRIVACY_IDENTITY_IS_NOT_VERIFIED_FORMAT" = "Не сте маркирали %@ като проверен";
/* Badge indicating that the user is verified. */
"PRIVACY_IDENTITY_IS_VERIFIED_BADGE" = "Проверен";
/* Label indicating that the user is verified. Embeds {{the user's name or phone number}}. */
"PRIVACY_IDENTITY_IS_VERIFIED_FORMAT" = "%@ is verified.";
"PRIVACY_IDENTITY_IS_VERIFIED_FORMAT" = "%@ е проверен.";
/* Label for a link to more information about safety numbers and verification. */
"PRIVACY_SAFETY_NUMBERS_LEARN_MORE" = "Научи Още";
@ -1049,7 +1049,7 @@
"PRIVACY_TAP_TO_SCAN" = "Докосни за Сканиране";
/* Button that lets user mark another user's identity as unverified. */
"PRIVACY_UNVERIFY_BUTTON" = "Clear Verification";
"PRIVACY_UNVERIFY_BUTTON" = "Изчисти грешките от проверки";
/* Alert body when verifying with {{contact name}} */
"PRIVACY_VERIFICATION_FAILED_I_HAVE_WRONG_KEY_FOR_THEM" = "Това не приличат на номерата ви за сигурност с %@. Сигурни ли сте, че това е правилният контакт?";
@ -1085,46 +1085,46 @@
"PROCEED_BUTTON" = "Продължи";
/* Label text combining the phone number and profile name separated by a simple demarcation character. Phone number should be most prominent. '%1$@' is replaced with {{phone number}} and '%2$@' is replaced with {{profile name}} */
"PROFILE_NAME_AND_PHONE_NUMBER_LABEL_FORMAT" = "%1$@ ~%2$@";
"PROFILE_NAME_AND_PHONE_NUMBER_LABEL_FORMAT" = "%1$@~%2$@";
/* Prepend a simple marker to differentiate the profile name, embeds the contact's {{profile name}}. */
"PROFILE_NAME_LABEL_FORMAT" = "~%@";
/* Action Sheet title prompting the user for a profile avatar */
"PROFILE_VIEW_AVATAR_ACTIONSHEET_TITLE" = "Set Profile Avatar";
"PROFILE_VIEW_AVATAR_ACTIONSHEET_TITLE" = "Задай снимка на профила";
/* Label for action that clear's the user's profile avatar */
"PROFILE_VIEW_CLEAR_AVATAR" = "Clear Avatar";
"PROFILE_VIEW_CLEAR_AVATAR" = "Премахни снимката";
/* Error message shown when user tries to update profile with a profile name that is too long. */
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Your profile name is too long.";
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Името на профила ви е прекалено дълго.";
/* Error message shown when a profile update fails. */
"PROFILE_VIEW_ERROR_UPDATE_FAILED" = "Profile update failed.";
"PROFILE_VIEW_ERROR_UPDATE_FAILED" = "Обновяването на профила се провали.";
/* Default text for the profile name field of the profile view. */
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Enter your name";
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Въведете името си";
/* Label for the profile avatar field of the profile view. */
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Avatar";
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Снимка";
/* Description of the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Your Signal Profile will be visible to your contacts, when you initiate new conversations, and when you share it with other users and groups.";
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Вашия профил в Сигнал ще е видим за контактите ви, когато инициирате нов разговор, и когато го споделите с други потребители и групи.";
/* Link to more information about the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Tap here to learn more.";
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Докоснете тук, за да научите повече.";
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Profile Name";
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Име на профила";
/* Button to save the profile view in the profile view. */
"PROFILE_VIEW_SAVE_BUTTON" = "Save";
"PROFILE_VIEW_SAVE_BUTTON" = "Запази";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving...";
"PROFILE_VIEW_SAVING" = "Запазване..";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profile";
"PROFILE_VIEW_TITLE" = "Профил";
/* No comment provided by engineer. */
"PUSH_MANAGER_MARKREAD" = "Маркирай като прочетено";
@ -1202,16 +1202,16 @@
"REGISTRATION_VERIFY_DEVICE" = "Активирай Устройството";
/* Message of alert indicating that users needs to enter a valid phone number to register. */
"REGISTRATION_VIEW_INVALID_PHONE_NUMBER_ALERT_MESSAGE" = "Please enter a valid phone number to register.";
"REGISTRATION_VIEW_INVALID_PHONE_NUMBER_ALERT_MESSAGE" = "Моля, въведете валиден телефонен номер, за да се регистрирате.";
/* Title of alert indicating that users needs to enter a valid phone number to register. */
"REGISTRATION_VIEW_INVALID_PHONE_NUMBER_ALERT_TITLE" = "Invalid Phone Number";
"REGISTRATION_VIEW_INVALID_PHONE_NUMBER_ALERT_TITLE" = "Невалиден Телефонен Номер";
/* Message of alert indicating that users needs to enter a phone number to register. */
"REGISTRATION_VIEW_NO_PHONE_NUMBER_ALERT_MESSAGE" = "Please enter a phone number to register.";
"REGISTRATION_VIEW_NO_PHONE_NUMBER_ALERT_MESSAGE" = "Моля, въведете валиден телефонен номер, за да се регистрирате.";
/* Title of alert indicating that users needs to enter a phone number to register. */
"REGISTRATION_VIEW_NO_PHONE_NUMBER_ALERT_TITLE" = "No Phone Number";
"REGISTRATION_VIEW_NO_PHONE_NUMBER_ALERT_TITLE" = "Няма Телефонен Номер";
/* No comment provided by engineer. */
"REJECT_CALL_BUTTON_TITLE" = "Отхвърли";
@ -1226,13 +1226,13 @@
"RETRY_BUTTON_TEXT" = "Опитай Отново";
/* button title to confirm adding a recipient to a group when their safety number has recently changed */
"SAFETY_NUMBER_CHANGED_CONFIRM_ADD_TO_GROUP_ACTION" = "Add to Group Anyway";
"SAFETY_NUMBER_CHANGED_CONFIRM_ADD_TO_GROUP_ACTION" = "Добави към групата въпреки това";
/* alert button text to confirm placing an outgoing call after the recipients Safety Number has changed. */
"SAFETY_NUMBER_CHANGED_CONFIRM_CALL_ACTION" = "Call Anyway";
"SAFETY_NUMBER_CHANGED_CONFIRM_CALL_ACTION" = "Повикване";
/* button title to confirm sending to a recipient whose safety number recently changed */
"SAFETY_NUMBER_CHANGED_CONFIRM_SEND_ACTION" = "Send Anyway";
"SAFETY_NUMBER_CHANGED_CONFIRM_SEND_ACTION" = "Изпрати";
/* Snippet to share {{safety number}} with a friend. sent e.g. via SMS */
"SAFETY_NUMBER_SHARE_FORMAT" = "Нашите Сигнал Номера за Безопасност\n%@";
@ -1259,7 +1259,7 @@
"SEND_BUTTON_TITLE" = "Изпрати";
/* Header title for the 'send external file' view. */
"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Select a Recipient for:";
"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Изберете получател за:";
/* Title for the 'send external file' view. */
"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Изпрати Файл";
@ -1271,7 +1271,7 @@
"SEND_INVITE_SUCCESS" = "Вие поканихте приятелят си да използва Сигнал!";
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the receipient's phone number. */
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Invite via SMS: %@";
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Покани с СМС: %@";
/* No comment provided by engineer. */
"SEND_SMS_CONFIRM_TITLE" = "Покани прияте с не толкова сигурният СМС?";
@ -1286,7 +1286,7 @@
"SETTINGS_ADD_TO_BLOCK_LIST_BLOCK_CONTACT_TITLE" = "Блокирай Контакт";
/* Title for the 'block phone number' section of the 'add to block list' view. */
"SETTINGS_ADD_TO_BLOCK_LIST_BLOCK_PHONE_NUMBER_TITLE" = "Block Phone Number";
"SETTINGS_ADD_TO_BLOCK_LIST_BLOCK_PHONE_NUMBER_TITLE" = "Блокирай Телефонен Номер";
/* Title for the 'add to block list' view. */
"SETTINGS_ADD_TO_BLOCK_LIST_TITLE" = "Блокиране";
@ -1295,19 +1295,19 @@
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION" = "Забрана за цензура";
/* Label for the 'manual censorship circumvention' country. Embeds {{the manual censorship circumvention country}}. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_COUNTRY_FORMAT" = "Location: %@";
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_COUNTRY_FORMAT" = "Местоположение: %@";
/* Table footer for the 'censorship circumvention' section when censorship circumvention can be manually enabled. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER" = "If enabled, Signal will attempt to circumvent censorship. Do not enable this feature unless you are in a location where Signal is censored.";
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER" = "Ако е активирано, Сигнал ще се опита да заобиколи цензурата. Не разрешавайте тази функция, освен ако не сте на място, където Сигнал е цензуриран.";
/* Table footer for the 'censorship circumvention' section shown when censorship circumvention has been auto-enabled based on local phone number. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_AUTO_ENABLED" = "Censorship circumvention has been activated based on your account's phone number.";
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_AUTO_ENABLED" = "Заобикалянето на цензурата е активирано въз основа на телефонния номер на профила Ви.";
/* Table footer for the 'censorship circumvention' section shown when the app is not connected to the internet. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_NO_CONNECTION" = "Censorship circumvention can only be activated when connected to the internet.";
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_NO_CONNECTION" = "Заобикалянето на цензура може да се активира само когато е свързано към интернет.";
/* Table footer for the 'censorship circumvention' section shown when the app is connected to the Signal service. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_WEBSOCKET_CONNECTED" = "Censorship circumvention is not necessary; you are already connected to the Signal service.";
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_FOOTER_WEBSOCKET_CONNECTED" = "Не е необходимо заобикаляне на цензурата; вече сте свързани към услугата за Сигнал.";
/* Table header for the 'censorship circumvention' section. */
"SETTINGS_ADVANCED_CENSORSHIP_CIRCUMVENTION_HEADER" = "Забрана за цензура";
@ -1325,10 +1325,10 @@
"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Добави...";
/* A label that indicates the user has no Signal contacts. */
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "You have no contacts on Signal.";
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "Нямате контакти в Сигнал.";
/* A label that indicates the user's search has no matching results. */
"SETTINGS_BLOCK_LIST_NO_SEARCH_RESULTS" = "No Search Results";
"SETTINGS_BLOCK_LIST_NO_SEARCH_RESULTS" = "Няма намерени резултати";
/* Label for the block list section of the settings view */
"SETTINGS_BLOCK_LIST_TITLE" = "Блокиран";
@ -1352,7 +1352,7 @@
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Изтрий Профил";
/* Alert message before user confirms clearing history */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all your history (messages, attachments, call history …) ? This action cannot be reverted.";
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Наистина ли искате да изтриете цялата си история (съобщения, прикачени файлове, история на обажданията ...)? Това действие не може да бъде върнато.";
/* No comment provided by engineer. */
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "Да.";
@ -1427,37 +1427,37 @@
"SMS_INVITE_BODY" = "Предлагам ти да си инсталираш Сигнал! Ето линка:";
/* Alert body after verifying privacy with {{other user's name}} */
"SUCCESSFUL_VERIFICATION_DESCRIPTION" = "Your safety number with %@ matches. You can mark this contact as verified.";
"SUCCESSFUL_VERIFICATION_DESCRIPTION" = "Номерата ви за безопасност с %@ съвпадат. Можете да маркирате този контакт като проверен.";
/* No comment provided by engineer. */
"SUCCESSFUL_VERIFICATION_TITLE" = "Номерата за Безопасност Съвпадат!";
/* {{number of days}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 days}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_DAYS" = "%@ days";
"TIME_AMOUNT_DAYS" = "%@ дена";
/* {{number of hours}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 hours}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_HOURS" = "%@ hours";
"TIME_AMOUNT_HOURS" = "%@ часа";
/* {{number of minutes}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 minutes}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_MINUTES" = "%@ minutes";
"TIME_AMOUNT_MINUTES" = "%@ минути";
/* {{number of seconds}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 seconds}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SECONDS" = "%@ seconds";
"TIME_AMOUNT_SECONDS" = "%@ секунди";
/* {{1 day}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 day}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SINGLE_DAY" = "%@ day";
"TIME_AMOUNT_SINGLE_DAY" = "%@ дни";
/* {{1 hour}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 hour}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SINGLE_HOUR" = "%@ hour";
"TIME_AMOUNT_SINGLE_HOUR" = "%@ час";
/* {{1 minute}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 minute}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SINGLE_MINUTE" = "%@ minute";
"TIME_AMOUNT_SINGLE_MINUTE" = "%@ минута";
/* {{1 week}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 week}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_SINGLE_WEEK" = "%@ week";
"TIME_AMOUNT_SINGLE_WEEK" = "%@ седмица";
/* {{number of weeks}}, embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 weeks}}'. See other *_TIME_AMOUNT strings */
"TIME_AMOUNT_WEEKS" = "%@ weeks";
"TIME_AMOUNT_WEEKS" = "%@ седмици";
/* Label for the cancel button in an alert or action sheet. */
"TXT_CANCEL_TITLE" = "Откажи";
@ -1472,7 +1472,7 @@
"UNKNOWN_ATTACHMENT_LABEL" = "Непознат прикачен файл";
/* Message shown in conversation view that offers to block an unknown user. */
"UNKNOWN_CONTACT_BLOCK_OFFER" = "User not in your contacts. Would you like to block this user?";
"UNKNOWN_CONTACT_BLOCK_OFFER" = "Потребителят не е в контактите ви. Искате ли да блокирате този потребител?";
/* Displayed if for some reason we can't determine a contacts phone number *or* name */
"UNKNOWN_CONTACT_NAME" = "Непознат Контакт";
@ -1502,10 +1502,10 @@
"UNSUPPORTED_FEATURE_ERROR" = "Вашето устройство не поддържа тази функция.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "You cannot remove group members. They will either have to leave, or you can create a new group without this member.";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_MESSAGE" = "Не можете да премахнете членовете на групата. Или ще трябва да напуснат или да създадете нова група без този член.";
/* Title for alert indicating that group members can't be removed. */
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Not Allowed";
"UPDATE_GROUP_CANT_REMOVE_MEMBERS_ALERT_TITLE" = "Не е разрешено";
/* Description of CallKit to upgrading (existing) users */
"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Приемането на входящи повиквания от заключен екран е удобно с iOS интегриране на повикванията. Данните за повикване са скрити по подразбиране така, че е и поверително.";
@ -1517,13 +1517,13 @@
"UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "Просто Плъзни за Отговор";
/* button label shown one time, after user upgrades app */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Set up Your Profile";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Настройте профила си";
/* Description of new profile feature for upgrading (existing) users */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "You can now share a profile photo and name with your friends on Signal.";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "Вече можете да споделяте с приятелите си снимка и име на профил в Сигнал.";
/* Header for upgrade experience */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Ready for Your Closeup?";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Готови ли сте за селфи?";
/* Description of video calling to upgrading (existing) users */
"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Сигнал вече поддържа сигурни видео повиквания. Просто стартирайте повикването като нормално такова, докоснете бутона за камера и помахайте за здрасти.";
@ -1532,10 +1532,10 @@
"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Здравейте Безопасни Видео Обаждания!";
/* Message for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_MESSAGE" = "Signal will soon require iOS 9 or later. Please upgrade in Settings app >> General >> Software Update.";
"UPGRADE_IOS_ALERT_MESSAGE" = "Сигнал скоро ще изисква iOS 9 или по-нова. Моля, надстройте от Settings >> General >> Software Update.";
/* Title for the alert indicating that user should upgrade iOS. */
"UPGRADE_IOS_ALERT_TITLE" = "Upgrade iOS";
"UPGRADE_IOS_ALERT_TITLE" = "Надстройте iOS";
/* No comment provided by engineer. */
"Upgrading Signal ..." = "Обновяване на Сигнал ...";
@ -1556,22 +1556,22 @@
"VERIFICATION_CHALLENGE_SUBMIT_CODE" = "Изпрати кода за потвърждение";
/* Label indicating the phone number currently being verified. */
"VERIFICATION_PHONE_NUMBER_FORMAT" = "Enter the verification code we sent to %@.";
"VERIFICATION_PHONE_NUMBER_FORMAT" = "Въведете кода за потвърждение изпратен до %@";
/* Format for info message indicating that the verification state was unverified on this device. Embeds {{user's name or phone number}}. */
"VERIFICATION_STATE_CHANGE_FORMAT_NOT_VERIFIED_LOCAL" = "You marked %@ as not verified.";
"VERIFICATION_STATE_CHANGE_FORMAT_NOT_VERIFIED_LOCAL" = "Маркирахте %@ като проверен.";
/* Format for info message indicating that the verification state was unverified on another device. Embeds {{user's name or phone number}}. */
"VERIFICATION_STATE_CHANGE_FORMAT_NOT_VERIFIED_OTHER_DEVICE" = "You marked %@ as not verified on another device.";
"VERIFICATION_STATE_CHANGE_FORMAT_NOT_VERIFIED_OTHER_DEVICE" = "Маркирахте %@ като не проверен на друго устройство.";
/* Format for info message indicating that the verification state was verified on this device. Embeds {{user's name or phone number}}. */
"VERIFICATION_STATE_CHANGE_FORMAT_VERIFIED_LOCAL" = "You marked %@ as verified.";
"VERIFICATION_STATE_CHANGE_FORMAT_VERIFIED_LOCAL" = "Маркирахте %@ като проверен.";
/* Format for info message indicating that the verification state was verified on another device. Embeds {{user's name or phone number}}. */
"VERIFICATION_STATE_CHANGE_FORMAT_VERIFIED_OTHER_DEVICE" = "You marked %@ as verified on another device.";
"VERIFICATION_STATE_CHANGE_FORMAT_VERIFIED_OTHER_DEVICE" = "Маркирахте %@ като проверен на друго устройство.";
/* Generic message indicating that verification state changed for a given user. */
"VERIFICATION_STATE_CHANGE_GENERIC" = "Verification state changed.";
"VERIFICATION_STATE_CHANGE_GENERIC" = "Проверката е променена.";
/* Label for button or row which allows users to verify the safety number of another user. */
"VERIFY_PRIVACY" = "Покажи номера за сигурност";
@ -1606,16 +1606,16 @@
// Strings Copied in from JSQMessagesViewController
"load_earlier_messages" = "Load Earlier Messages";
"load_earlier_messages" = "Зареждане на по-ранни съобщения";
"send" = "Send";
"send" = "Изпрати";
"new_message" = "New Message";
"new_message" = "Ново Съобщение";
"text_message_accessibility_label" = "%@: %@";
"text_message_accessibility_label" = "%@:%@";
"media_message_accessibility_label" = "%@: media message";
"media_message_accessibility_label" = "%@: медийно съобщение";
"accessory_button_accessibility_label" = "Share media";
"accessory_button_accessibility_label" = "Сподели медия";
"new_message_received_accessibility_announcement" = "New message received";
"new_message_received_accessibility_announcement" = "Получено Ново Съобщение";

File diff suppressed because it is too large Load Diff

View File

@ -62,7 +62,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ ryhmässä %@: %@";
/* Text prompting user to edit their profile name. */
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Enter your name";
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Syötä nimesi";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number.}}. */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Versio %@ on nyt saatavilla App Storesta.";
@ -206,7 +206,7 @@
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Estä %@?";
/* Label for generic done button. */
"BUTTON_DONE" = "Done";
"BUTTON_DONE" = "Valmis";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal tarvitsee lupaa käyttää laitteesi mikrofonia puheluja ja ääniviestejä varten. Voit antaa tämän käyttöoikeuden laitteesi Asetuksista.";
@ -368,16 +368,16 @@
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER" = "Jaa profiilisi";
/* Message shown in conversation view that offers to add an unknown user to your phone's contacts. */
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Add to Contacts";
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Lisää yhteystietoihin";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile With This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Jaa profiilikuvasi tämän käyttäjän kanssa";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "This user is not in your contacts.";
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Tämä käyttäjä ei ole yhteystiedoissasi";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Block This User";
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Estä tämä käyttäjä";
/* ActionSheet title */
"CORRUPTED_SESSION_DESCRIPTION" = "Istunnon alustaminen mahdollistaa uusien viestien vastaanottamisen yhteystiedolta %@. Vanhoja, jo korruptoituneita viestejä ei kuitenkaan ole mahdollista enää palauttaa.";
@ -389,7 +389,7 @@
"CREATE_NEW_GROUP" = "Luo uusi ryhmä";
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Move and Scale";
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Liikuta ja skaalaa";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "Tämä saattaa viedä muutaman minuutin.";
@ -821,7 +821,7 @@
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Estit %@ jäsentä tästä ryhmästä";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Jaa profiilisi tämän ryhmän kanssa?";
/* Indicates that more than one member of this group conversation is no longer verified. */
"MESSAGES_VIEW_N_MEMBERS_NO_LONGER_VERIFIED" = "Useampi kuin yksi tämän ryhmän jäsenistä ei ole enää merkitty varmennetuksi. Lisätietoja napsauttamalla.";
@ -883,7 +883,7 @@
"MUTE_BEHAVIOR_EXPLANATION" = "Et saa ilmoituksia mykistetyistä keskusteluista.";
/* A button to skip a view. */
"NAVIGATION_ITEM_SKIP_BUTTON" = "Skip";
"NAVIGATION_ITEM_SKIP_BUTTON" = "Ohita";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Tarkista että verkkoyhteytesi on päällä ja yritä uudelleen.";
@ -1097,31 +1097,31 @@
"PROFILE_VIEW_CLEAR_AVATAR" = "Poista kuva";
/* Error message shown when user tries to update profile with a profile name that is too long. */
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Your profile name is too long.";
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Profiilinimesi on liian pitkä.";
/* Error message shown when a profile update fails. */
"PROFILE_VIEW_ERROR_UPDATE_FAILED" = "Profiilin päivitys epäonnistui";
/* Default text for the profile name field of the profile view. */
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Enter your name";
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Syötä nimesi";
/* Label for the profile avatar field of the profile view. */
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Avatar";
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Kuvake";
/* Description of the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Your Signal Profile will be visible to your contacts, when you initiate new conversations, and when you share it with other users and groups.";
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Signal-profiilisi näkyy kaikille yhteystiedoillesi, kun aloitat uusia keskusteluja ja kun jaat sen muiden käyttäjien ja ryhmien kanssa.";
/* Link to more information about the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Tap here to learn more.";
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Lisätietoja napauttamalla tästä";
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Profile Name";
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Profiilin nimi";
/* Button to save the profile view in the profile view. */
"PROFILE_VIEW_SAVE_BUTTON" = "Save";
"PROFILE_VIEW_SAVE_BUTTON" = "Tallenna";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving...";
"PROFILE_VIEW_SAVING" = "Tallennetaan...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profiili";
@ -1517,13 +1517,13 @@
"UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "Pyyhkäise vastataksesi";
/* button label shown one time, after user upgrades app */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Set up Your Profile";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Aseta profiilisi";
/* Description of new profile feature for upgrading (existing) users */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "You can now share a profile photo and name with your friends on Signal.";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "Voit nyt jakaa profiilikuvasi ja -nimesi ystäviesi kanssa Signalissa.";
/* Header for upgrade experience */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Ready for Your Closeup?";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Oletko valmis kuvaa varten?";
/* Description of video calling to upgrading (existing) users */
"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Signal tukee nyt turvallisia videopuheluita. Aloita puhelu kuten ennenkin, sitten vain napauta kamerakuvaketta ja vilkuta hei.";

View File

@ -62,7 +62,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ dans le groupe %@: %@";
/* Text prompting user to edit their profile name. */
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Enter your name";
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Entrez votre nom";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number.}}. */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "La Version%@est maintenant disponible dans l'App Store.";
@ -206,7 +206,7 @@
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Bloquer %@?";
/* Label for generic done button. */
"BUTTON_DONE" = "Done";
"BUTTON_DONE" = "Terminé";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "Le signal nécessite l'accès à votre microphone pour effectuer des appels et enregistrer des messages vocaux. Vous pouvez accorder cette autorisation dans l'application Paramètres.";
@ -368,16 +368,16 @@
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER" = "Partager votre profil";
/* Message shown in conversation view that offers to add an unknown user to your phone's contacts. */
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Add to Contacts";
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Ajouter aux contacts";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile With This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Partagez votre profil avec cet utilisateur";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "This user is not in your contacts.";
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Cet utilisateur n'est pas dans vos contacts.";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Block This User";
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Bloquer cet utilisateur";
/* ActionSheet title */
"CORRUPTED_SESSION_DESCRIPTION" = "La réinitialisation de votre session vous permettra de recevoir des messages futurs de %@ , mais elle ne récupérera pas les messages déjà corrompus.";
@ -389,7 +389,7 @@
"CREATE_NEW_GROUP" = "Créer un nouveau groupe";
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Move and Scale";
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Bouger et décaler";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "Cela peut prendre quelques minutes.";
@ -821,7 +821,7 @@
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Vous avez bloqué %@ Membres de ce groupe";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Partager votre profil avec ce groupe?";
/* Indicates that more than one member of this group conversation is no longer verified. */
"MESSAGES_VIEW_N_MEMBERS_NO_LONGER_VERIFIED" = "Plus d'un membre de ce groupe n'est plus marqué comme vérifié. Appuyez dessus pour les options.";
@ -883,7 +883,7 @@
"MUTE_BEHAVIOR_EXPLANATION" = "Vous ne recevrez pas de notifications pour les conversations silencieuses.";
/* A button to skip a view. */
"NAVIGATION_ITEM_SKIP_BUTTON" = "Skip";
"NAVIGATION_ITEM_SKIP_BUTTON" = "Passer";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Merci de vérifier que vous êtes en ligne et essayer à nouveau.";
@ -1088,7 +1088,7 @@
"PROFILE_NAME_AND_PHONE_NUMBER_LABEL_FORMAT" = "%1$@ ~%2$@";
/* Prepend a simple marker to differentiate the profile name, embeds the contact's {{profile name}}. */
"PROFILE_NAME_LABEL_FORMAT" = "~%@";
"PROFILE_NAME_LABEL_FORMAT" = " ~%@";
/* Action Sheet title prompting the user for a profile avatar */
"PROFILE_VIEW_AVATAR_ACTIONSHEET_TITLE" = "Définir l'avatar du profil";
@ -1097,31 +1097,31 @@
"PROFILE_VIEW_CLEAR_AVATAR" = "Effacer l'avatar";
/* Error message shown when user tries to update profile with a profile name that is too long. */
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Your profile name is too long.";
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Le nom de votre profil est trop long.";
/* Error message shown when a profile update fails. */
"PROFILE_VIEW_ERROR_UPDATE_FAILED" = "La mise à jour du profil a échoué.";
/* Default text for the profile name field of the profile view. */
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Enter your name";
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Entrez votre nom";
/* Label for the profile avatar field of the profile view. */
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Avatar";
/* Description of the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Your Signal Profile will be visible to your contacts, when you initiate new conversations, and when you share it with other users and groups.";
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Votre profil Signal sera visible pour vos contacts, lorsque vous lancez de nouvelles conversations et lorsque vous les partagez avec d'autres utilisateurs et groupes.";
/* Link to more information about the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Tap here to learn more.";
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Cliquez ici pour en savoir plus.";
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Profile Name";
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Nom de profil";
/* Button to save the profile view in the profile view. */
"PROFILE_VIEW_SAVE_BUTTON" = "Save";
"PROFILE_VIEW_SAVE_BUTTON" = "Sauvegarder";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving...";
"PROFILE_VIEW_SAVING" = "Sauvegarde...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profil";
@ -1517,13 +1517,13 @@
"UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "Glissez juste pour répondre";
/* button label shown one time, after user upgrades app */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Set up Your Profile";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Configurez votre profil";
/* Description of new profile feature for upgrading (existing) users */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "You can now share a profile photo and name with your friends on Signal.";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "Vous pouvez maintenant partager une photo et un nom avec vos amis sur Signal.";
/* Header for upgrade experience */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Ready for Your Closeup?";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Prêt pour votre gros plan?";
/* Description of video calling to upgrading (existing) users */
"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Signal prend désormais en charge les appels vidéo sécurisés. Il suffit de commencer un appel normal, appuyez sur le bouton de l'appareil photo, et dites vous bonjour.";

File diff suppressed because it is too large Load Diff

View File

@ -359,7 +359,7 @@
"CONVERSATION_SETTINGS_VIEW_PROFILE_IS_SHARED_WITH_USER" = "このユーザにはあなたのプロフィールが見えます";
/* Button to confirm that user wants to share their profile with a user or group. */
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE" = "プロフィールの共有";
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE" = "プロフィールを共有する";
/* Action that shares user profile with a group. */
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_GROUP" = "プロフィールを共有する";
@ -419,7 +419,7 @@
"DISAPPEARING_MESSAGES_LABEL" = "メッセージが消える時間の設定";
/* Short text to dismiss current modal / actionsheet / screen */
"DISMISS_BUTTON_TEXT" = "消す";
"DISMISS_BUTTON_TEXT" = "キャンセル";
/* Section title for the 'domain fronting country' view. */
"DOMAIN_FRONTING_COUNTRY_VIEW_SECTION_HEADER" = "検閲回避場所";
@ -1112,7 +1112,7 @@
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "プロフィールは新しく会話を始める際に相手に見えますし,プロフィールを共有するユーザーやグループにも見えます。";
/* Link to more information about the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "詳しくはここを押してください";
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "詳細はここにあります。";
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "プロフィール名";

View File

@ -1523,7 +1523,7 @@
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "Du kan nå dele profilbilde og navn med vennene dine i Signal";
/* Header for upgrade experience */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Klar for ditt nærbilde?";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Klar for å ta profilbilde?";
/* Description of video calling to upgrading (existing) users */
"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Signal har nå støtte for sikre videosamtaler. Bare start en lydsamtale som vanlig, trykk på kamera-knappen, og si hei også med levende bilder.";

View File

@ -62,7 +62,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ no grupo %@: %@";
/* Text prompting user to edit their profile name. */
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Enter your name";
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Informe seu nome";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number.}}. */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "A versão %@ está disponível na App Store.";
@ -206,7 +206,7 @@
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Bloquear %@?";
/* Label for generic done button. */
"BUTTON_DONE" = "Done";
"BUTTON_DONE" = "Pronto";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "O Signal necessita de acesso ao seu microfone para fazer chamadas e gravar mensagens de voz. Você pode conseguir esta permissão no app Configurações.";
@ -368,16 +368,16 @@
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER" = "Compartilhar o Seu Perfil";
/* Message shown in conversation view that offers to add an unknown user to your phone's contacts. */
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Add to Contacts";
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Adicionar aos Contatos";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile With This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Compartilhar seu Perfil com este usuário";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "This user is not in your contacts.";
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Este usuário não se encontra em seus contatos.";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Block This User";
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Bloquear este usuário";
/* ActionSheet title */
"CORRUPTED_SESSION_DESCRIPTION" = "Restabelecer sua sessão lhe permitirá receber mensagens futuras de %@, mas não recuperará qualquer mensagem que já esteja corrompida.";
@ -821,7 +821,7 @@
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Você Bloqueou %@ Membros deste Grupo";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Você Deseja Compartilhar o Seu Perfil com Esse Grupo?";
/* Indicates that more than one member of this group conversation is no longer verified. */
"MESSAGES_VIEW_N_MEMBERS_NO_LONGER_VERIFIED" = "Ao menos um membro deste grupo não está mais marcado como verificado. Toque para ver as opções.";
@ -883,7 +883,7 @@
"MUTE_BEHAVIOR_EXPLANATION" = "Você não receberá notificações para conversas silenciadas.";
/* A button to skip a view. */
"NAVIGATION_ITEM_SKIP_BUTTON" = "Skip";
"NAVIGATION_ITEM_SKIP_BUTTON" = "Pular";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Por favor, verifique se você está online e tente de novo.";
@ -1097,31 +1097,31 @@
"PROFILE_VIEW_CLEAR_AVATAR" = "Apagar Avatar";
/* Error message shown when user tries to update profile with a profile name that is too long. */
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Your profile name is too long.";
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "O nome do seu perfil é demasiado longo.";
/* Error message shown when a profile update fails. */
"PROFILE_VIEW_ERROR_UPDATE_FAILED" = "A atualização do perfil falhou.";
/* Default text for the profile name field of the profile view. */
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Enter your name";
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Informe seu nome";
/* Label for the profile avatar field of the profile view. */
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Avatar";
/* Description of the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Your Signal Profile will be visible to your contacts, when you initiate new conversations, and when you share it with other users and groups.";
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "O seu Perfil no Signal será visível aos seus contatos quando você iniciar conversas e quando você compartilhá-la com outros membros do grupo.";
/* Link to more information about the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Tap here to learn more.";
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Toque aqui para saber mais.";
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Profile Name";
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Nome do Perfil";
/* Button to save the profile view in the profile view. */
"PROFILE_VIEW_SAVE_BUTTON" = "Save";
"PROFILE_VIEW_SAVE_BUTTON" = "Salvar";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving...";
"PROFILE_VIEW_SAVING" = "Salvando...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Perfil";
@ -1517,7 +1517,7 @@
"UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "Deslize para atender";
/* button label shown one time, after user upgrades app */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Set up Your Profile";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Configurar o Seu Perfil";
/* Description of new profile feature for upgrading (existing) users */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "You can now share a profile photo and name with your friends on Signal.";

View File

@ -62,7 +62,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ i grupp %@: %@";
/* Text prompting user to edit their profile name. */
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Enter your name";
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Ange ditt namn";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number.}}. */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "Version %@ finns nu tillgänglig i App Store.";
@ -206,7 +206,7 @@
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Blockera %@?";
/* Label for generic done button. */
"BUTTON_DONE" = "Done";
"BUTTON_DONE" = "Klar";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal behöver åtkomst till mikrofonen för samtal och röstmeddelanden. Du kan tillåta det i appen Inställningar.";
@ -368,16 +368,16 @@
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER" = "Dela din profil";
/* Message shown in conversation view that offers to add an unknown user to your phone's contacts. */
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Add to Contacts";
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Lägg till i kontakter";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile With This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Dela din profil med användaren";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "This user is not in your contacts.";
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "Användaren finns inte bland dina kontakter.";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Block This User";
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Blockera användaren";
/* ActionSheet title */
"CORRUPTED_SESSION_DESCRIPTION" = "Att återställa din session låter dig ta emot nya meddelanden från %@, men kommer inte att återställa meddelanden som redan är korrupta.";
@ -389,7 +389,7 @@
"CREATE_NEW_GROUP" = "Skapa ny grupp";
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Move and Scale";
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Flytta och skala";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "Det här kan ta några minuter.";
@ -821,7 +821,7 @@
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Du blockerade %@ medlemmar ur den här gruppen";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Dela din profil med gruppen?";
/* Indicates that more than one member of this group conversation is no longer verified. */
"MESSAGES_VIEW_N_MEMBERS_NO_LONGER_VERIFIED" = "Mer än en medlem i denna grupp är inte längre markerad som verifierad. Tryck för alternativ.";
@ -883,7 +883,7 @@
"MUTE_BEHAVIOR_EXPLANATION" = "Du kommer inte få notiser för tystade konversationer.";
/* A button to skip a view. */
"NAVIGATION_ITEM_SKIP_BUTTON" = "Skip";
"NAVIGATION_ITEM_SKIP_BUTTON" = "Hoppa över";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "Kontrollera att du är online och försök igen.";
@ -1097,31 +1097,31 @@
"PROFILE_VIEW_CLEAR_AVATAR" = "Ta bort avatar";
/* Error message shown when user tries to update profile with a profile name that is too long. */
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Your profile name is too long.";
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Namnet på din profil är för långt.";
/* Error message shown when a profile update fails. */
"PROFILE_VIEW_ERROR_UPDATE_FAILED" = "Kunde inte uppdatera profilen.";
/* Default text for the profile name field of the profile view. */
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Enter your name";
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Ange ditt namn";
/* Label for the profile avatar field of the profile view. */
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Avatar";
/* Description of the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Your Signal Profile will be visible to your contacts, when you initiate new conversations, and when you share it with other users and groups.";
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Dina kontakter kommer kunna se din Signalprofil när du startar nya konversationer och när du delar den med andra användare eller grupper.";
/* Link to more information about the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Tap here to learn more.";
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Tryck här för att veta mer. ";
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Profile Name";
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Profilnamn";
/* Button to save the profile view in the profile view. */
"PROFILE_VIEW_SAVE_BUTTON" = "Save";
"PROFILE_VIEW_SAVE_BUTTON" = "Spara";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving...";
"PROFILE_VIEW_SAVING" = "Sparar...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "Profil";
@ -1517,13 +1517,13 @@
"UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "Svep för att svara";
/* button label shown one time, after user upgrades app */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Set up Your Profile";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Skapa din profil";
/* Description of new profile feature for upgrading (existing) users */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "You can now share a profile photo and name with your friends on Signal.";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "Du kan nu dela ett profilfoto och namn med dina vänner på Signal.";
/* Header for upgrade experience */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Ready for Your Closeup?";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Redo för en närbild?";
/* Description of video calling to upgrading (existing) users */
"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Signal har nu stöd för säkra videosamtal. Påbörja ett samtal som vanligt, tryck på kameraknappen och vinka hej.";

View File

@ -62,7 +62,7 @@
"APN_MESSAGE_IN_GROUP_DETAILED" = "%@ 在 %@ 群组:%@";
/* Text prompting user to edit their profile name. */
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "Enter your name";
"APP_SETTINGS_EDIT_PROFILE_NAME_PROMPT" = "输入您的名称";
/* Message format for the 'new app version available' alert. Embeds: {{The latest app version number.}}. */
"APP_UPDATE_NAG_ALERT_MESSAGE_FORMAT" = "%@ 版已在 App Store 上线";
@ -206,7 +206,7 @@
"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "将 %@ 加入黑名单";
/* Label for generic done button. */
"BUTTON_DONE" = "Done";
"BUTTON_DONE" = "完成";
/* Alert message when calling and permissions for microphone are missing */
"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal需要访问您的麦克风用于通话和录取语音消息。您可以在系统设置中授予访问权限。";
@ -368,16 +368,16 @@
"CONVERSATION_SETTINGS_VIEW_SHARE_PROFILE_WITH_USER" = "共享您的资料";
/* Message shown in conversation view that offers to add an unknown user to your phone's contacts. */
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "Add to Contacts";
"CONVERSATION_VIEW_ADD_TO_CONTACTS_OFFER" = "添加到联系人";
/* Message shown in conversation view that offers to share your profile with a user. */
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "Share Your Profile With This User";
"CONVERSATION_VIEW_ADD_USER_TO_PROFILE_WHITELIST_OFFER" = "与该用户共享您的资料";
/* Title for the group of buttons show for unknown contacts offering to add them to contacts, etc. */
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "This user is not in your contacts.";
"CONVERSATION_VIEW_CONTACTS_OFFER_TITLE" = "该用户不在您的联系人列表中。";
/* Message shown in conversation view that offers to block an unknown user. */
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "Block This User";
"CONVERSATION_VIEW_UNKNOWN_CONTACT_BLOCK_OFFER" = "屏蔽该用户";
/* ActionSheet title */
"CORRUPTED_SESSION_DESCRIPTION" = "重置session后可以收到来自 %@的消息, 但是无法恢复已经被破坏的消息.";
@ -389,7 +389,7 @@
"CREATE_NEW_GROUP" = "创建新的组群";
/* Title for the 'crop/scale image' dialog. */
"CROP_SCALE_IMAGE_VIEW_TITLE" = "Move and Scale";
"CROP_SCALE_IMAGE_VIEW_TITLE" = "移动与缩放";
/* Subtitle shown while the app is updating its database. */
"DATABASE_VIEW_OVERLAY_SUBTITLE" = "这需要耗费 1 分钟左右。";
@ -821,7 +821,7 @@
"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "群组中%@个成员已在您的黑名单中";
/* Text for banner in group conversation view that offers to share your profile with this group. */
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "Share Your Profile With This Group?";
"MESSAGES_VIEW_GROUP_PROFILE_WHITELIST_BANNER" = "是否与该群组共享您的资料?";
/* Indicates that more than one member of this group conversation is no longer verified. */
"MESSAGES_VIEW_N_MEMBERS_NO_LONGER_VERIFIED" = "该群组多个成员不再标记为已验证。点击打开选项。";
@ -883,7 +883,7 @@
"MUTE_BEHAVIOR_EXPLANATION" = "无有效接收人,消息发送失败。";
/* A button to skip a view. */
"NAVIGATION_ITEM_SKIP_BUTTON" = "Skip";
"NAVIGATION_ITEM_SKIP_BUTTON" = "跳过";
/* No comment provided by engineer. */
"NETWORK_ERROR_RECOVERY" = "请检查您的网络连接并重试。";
@ -1097,31 +1097,31 @@
"PROFILE_VIEW_CLEAR_AVATAR" = "清除头像";
/* Error message shown when user tries to update profile with a profile name that is too long. */
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "Your profile name is too long.";
"PROFILE_VIEW_ERROR_PROFILE_NAME_TOO_LONG" = "您的资料名称太长。";
/* Error message shown when a profile update fails. */
"PROFILE_VIEW_ERROR_UPDATE_FAILED" = "资料更新失败。";
/* Default text for the profile name field of the profile view. */
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "Enter your name";
"PROFILE_VIEW_NAME_DEFAULT_TEXT" = "输入您的名称";
/* Label for the profile avatar field of the profile view. */
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "Avatar";
"PROFILE_VIEW_PROFILE_AVATAR_FIELD" = "头像";
/* Description of the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "Your Signal Profile will be visible to your contacts, when you initiate new conversations, and when you share it with other users and groups.";
"PROFILE_VIEW_PROFILE_DESCRIPTION" = "您的Signal资料在以下情况将可见您已有的联系人在建立新对话时以及您与其它用户群组分享时。";
/* Link to more information about the user profile. */
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "Tap here to learn more.";
"PROFILE_VIEW_PROFILE_DESCRIPTION_LINK" = "点击了解更多资讯。";
/* Label for the profile name field of the profile view. */
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "Profile Name";
"PROFILE_VIEW_PROFILE_NAME_FIELD" = "资料名称";
/* Button to save the profile view in the profile view. */
"PROFILE_VIEW_SAVE_BUTTON" = "Save";
"PROFILE_VIEW_SAVE_BUTTON" = "保存";
/* Alert title that indicates the user's profile view is being saved. */
"PROFILE_VIEW_SAVING" = "Saving...";
"PROFILE_VIEW_SAVING" = "正在保存...";
/* Title for the profile view. */
"PROFILE_VIEW_TITLE" = "资料";
@ -1517,13 +1517,13 @@
"UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "滑动即可应答";
/* button label shown one time, after user upgrades app */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "Set up Your Profile";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_BUTTON" = "设置您的资料";
/* Description of new profile feature for upgrading (existing) users */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "You can now share a profile photo and name with your friends on Signal.";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_DESCRIPTION" = "您现在可以与您的Signal好友分享分享资料照片和名称。";
/* Header for upgrade experience */
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "Ready for Your Closeup?";
"UPGRADE_EXPERIENCE_INTRODUCING_PROFILES_TITLE" = "准备好来张特写了吗?";
/* Description of video calling to upgrading (existing) users */
"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Signal 已开始支持安全的视频通话。正常的开始Signal通话点击相机按钮对方即可看到您。";