diff --git a/Signal/Signal-Info.plist b/Signal/Signal-Info.plist index 774f23f51..f2248eec4 100644 --- a/Signal/Signal-Info.plist +++ b/Signal/Signal-Info.plist @@ -38,7 +38,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.11.1 + 2.11.2 CFBundleSignature ???? CFBundleURLTypes @@ -55,7 +55,7 @@ CFBundleVersion - 2.11.1.5 + 2.11.2.1 ITSAppUsesNonExemptEncryption LOGS_EMAIL diff --git a/Signal/src/ViewControllers/CallViewController.swift b/Signal/src/ViewControllers/CallViewController.swift index 8aa45c91d..bd14b7095 100644 --- a/Signal/src/ViewControllers/CallViewController.swift +++ b/Signal/src/ViewControllers/CallViewController.swift @@ -944,14 +944,15 @@ class CallViewController: UIViewController, CallObserver, CallServiceObserver, R self.dismiss(animated: false, completion:completion) } } - + // MARK: - CallServiceObserver internal func didUpdateCall(call: SignalCall?) { // Do nothing. } - internal func didUpdateVideoTracks(localVideoTrack: RTCVideoTrack?, + internal func didUpdateVideoTracks(call: SignalCall?, + localVideoTrack: RTCVideoTrack?, remoteVideoTrack: RTCVideoTrack?) { AssertIsOnMainThread() diff --git a/Signal/src/ViewControllers/InboxTableViewCell.m b/Signal/src/ViewControllers/InboxTableViewCell.m index 631afec80..fb7afd9fd 100644 --- a/Signal/src/ViewControllers/InboxTableViewCell.m +++ b/Signal/src/ViewControllers/InboxTableViewCell.m @@ -98,15 +98,19 @@ NS_ASSUME_NONNULL_BEGIN : [UIColor lightGrayColor]), }]]; } - [snippetText appendAttributedString:[[NSAttributedString alloc] initWithString:[[DisplayableTextFilter new] displayableText:thread.lastMessageLabel] - attributes:@{ - NSFontAttributeName : (thread.hasUnreadMessages - ? [UIFont ows_mediumFontWithSize:12] - : [UIFont ows_regularFontWithSize:12]), - NSForegroundColorAttributeName : (thread.hasUnreadMessages - ? [UIColor ows_blackColor] - : [UIColor lightGrayColor]), - }]]; + NSString *displayableText = [[DisplayableTextFilter new] displayableText:thread.lastMessageLabel]; + if (displayableText) { + [snippetText appendAttributedString:[[NSAttributedString alloc] + initWithString:displayableText + attributes:@{ + NSFontAttributeName : (thread.hasUnreadMessages + ? [UIFont ows_mediumFontWithSize:12] + : [UIFont ows_regularFontWithSize:12]), + NSForegroundColorAttributeName : + (thread.hasUnreadMessages ? [UIColor ows_blackColor] + : [UIColor lightGrayColor]), + }]]; + } } NSAttributedString *attributedDate = [self dateAttributedString:thread.lastMessageDate]; diff --git a/Signal/src/call/CallAudioService.swift b/Signal/src/call/CallAudioService.swift index 56bb8ea1f..7f73df383 100644 --- a/Signal/src/call/CallAudioService.swift +++ b/Signal/src/call/CallAudioService.swift @@ -87,7 +87,13 @@ import AVFoundation ensureIsEnabled(call: call) } - private func ensureIsEnabled(call: SignalCall) { + private func ensureIsEnabled(call: SignalCall?) { + guard let call = call else { + setAudioSession(category: AVAudioSessionCategoryPlayback, + mode: AVAudioSessionModeDefault) + return + } + // Auto-enable speakerphone when local video is enabled. if call.hasLocalVideo { setAudioSession(category: AVAudioSessionCategoryPlayAndRecord, @@ -105,6 +111,12 @@ import AVFoundation // MARK: - Service action handlers + public func didUpdateVideoTracks(call: SignalCall?) { + Logger.verbose("\(TAG) in \(#function)") + + self.ensureIsEnabled(call: call) + } + public func handleState(call: SignalCall) { assert(Thread.isMainThread) @@ -151,6 +163,7 @@ import AVFoundation private func handleAnswering(call: SignalCall) { Logger.debug("\(TAG) \(#function)") stopPlayingAnySounds() + self.ensureIsEnabled(call: call) } private func handleRemoteRinging(call: SignalCall) { diff --git a/Signal/src/call/CallService.swift b/Signal/src/call/CallService.swift index bf25f7a36..a5145e008 100644 --- a/Signal/src/call/CallService.swift +++ b/Signal/src/call/CallService.swift @@ -91,7 +91,8 @@ protocol CallServiceObserver: class { /** * Fired whenever the local or remote video track become active or inactive. */ - func didUpdateVideoTracks(localVideoTrack: RTCVideoTrack?, + func didUpdateVideoTracks(call: SignalCall?, + localVideoTrack: RTCVideoTrack?, remoteVideoTrack: RTCVideoTrack?) } @@ -901,13 +902,6 @@ protocol CallServiceObserver: class { func setIsMuted(isMuted: Bool) { AssertIsOnMainThread() - guard let peerConnectionClient = self.peerConnectionClient else { - // This should never happen; return to a known good state. - assertionFailure("\(TAG) peerConnectionClient was unexpectedly nil in \(#function)") - handleFailedCurrentCall(error: .assertionError(description:"\(TAG) peerConnectionClient unexpectedly nil in \(#function)")) - return - } - guard let call = self.call else { // This should never happen; return to a known good state. assertionFailure("\(TAG) call was unexpectedly nil in \(#function)") @@ -916,6 +910,12 @@ protocol CallServiceObserver: class { } call.isMuted = isMuted + + guard let peerConnectionClient = self.peerConnectionClient else { + // The peer connection might not be created yet. + return + } + peerConnectionClient.setAudioEnabled(enabled: !isMuted) } @@ -957,13 +957,6 @@ protocol CallServiceObserver: class { return } - guard let peerConnectionClient = self.peerConnectionClient else { - // This should never happen; return to a known good state. - assertionFailure("\(TAG) peerConnectionClient was unexpectedly nil in \(#function)") - handleFailedCurrentCall(error: .assertionError(description:"\(TAG) peerConnectionClient unexpectedly nil in \(#function)")) - return - } - guard let call = self.call else { // This should never happen; return to a known good state. assertionFailure("\(TAG) call was unexpectedly nil in \(#function)") @@ -972,6 +965,12 @@ protocol CallServiceObserver: class { } call.hasLocalVideo = hasLocalVideo + + guard let peerConnectionClient = self.peerConnectionClient else { + // The peer connection might not be created yet. + return + } + peerConnectionClient.setLocalVideoEnabled(enabled: shouldHaveLocalVideoTrack()) } @@ -1296,9 +1295,11 @@ protocol CallServiceObserver: class { observers.append(Weak(value: observer)) // Synchronize observer with current call state + let call = self.call let localVideoTrack = self.localVideoTrack let remoteVideoTrack = self.isRemoteVideoEnabled ? self.remoteVideoTrack : nil - observer.didUpdateVideoTracks(localVideoTrack:localVideoTrack, + observer.didUpdateVideoTracks(call:call, + localVideoTrack:localVideoTrack, remoteVideoTrack:remoteVideoTrack) } @@ -1321,11 +1322,13 @@ protocol CallServiceObserver: class { private func fireDidUpdateVideoTracks() { AssertIsOnMainThread() + let call = self.call let localVideoTrack = self.localVideoTrack let remoteVideoTrack = self.isRemoteVideoEnabled ? self.remoteVideoTrack : nil for observer in observers { - observer.value?.didUpdateVideoTracks(localVideoTrack:localVideoTrack, + observer.value?.didUpdateVideoTracks(call:call, + localVideoTrack:localVideoTrack, remoteVideoTrack:remoteVideoTrack) } } diff --git a/Signal/src/call/UserInterface/CallUIAdapter.swift b/Signal/src/call/UserInterface/CallUIAdapter.swift index 9759b2173..125c68b5a 100644 --- a/Signal/src/call/UserInterface/CallUIAdapter.swift +++ b/Signal/src/call/UserInterface/CallUIAdapter.swift @@ -217,11 +217,11 @@ extension CallUIAdaptee { call?.addObserverAndSyncState(observer: audioService) } - internal func didUpdateVideoTracks(localVideoTrack: RTCVideoTrack?, + internal func didUpdateVideoTracks(call: SignalCall?, + localVideoTrack: RTCVideoTrack?, remoteVideoTrack: RTCVideoTrack?) { AssertIsOnMainThread() - // Do nothing. + audioService.didUpdateVideoTracks(call:call) } - } diff --git a/Signal/translations/ar.lproj/Localizable.strings b/Signal/translations/ar.lproj/Localizable.strings index 52f1b5e10..920b552e5 100644 --- a/Signal/translations/ar.lproj/Localizable.strings +++ b/Signal/translations/ar.lproj/Localizable.strings @@ -1,8 +1,8 @@ /* No comment provided by engineer. */ -"AB_PERMISSION_MISSING_ACTION" = "امنح الوصول"; +"AB_PERMISSION_MISSING_ACTION" = "امنح الصلاحيات"; /* No comment provided by engineer. */ -"AB_PERMISSION_MISSING_BODY" = "يحتاج Signal للوصول إلى جهات الاتصال الخاصة بك. لن يتم تخزين جهات الاتصال الخاصة بك على خوادمنا."; +"AB_PERMISSION_MISSING_BODY" = " تطبيق Signal يتطلب للوصول إلى جهات الاتصال الخاصة بك. لن يتم تخزين جهات الاتصال الخاصة بك على خوادمنا."; /* Alert title when contacts disabled */ "AB_PERMISSION_MISSING_TITLE" = "عذرًا!"; @@ -98,7 +98,7 @@ "ATTACHMENT_HINT" = "اختر أو إلتقط صورة ثمّ أرسلها"; /* Accessibility label for attaching photos */ -"ATTACHMENT_LABEL" = "مرفقة"; +"ATTACHMENT_LABEL" = "المرفق"; /* Alert title when picking a document fails for an unknown reason */ "ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Failed to choose document."; @@ -236,7 +236,7 @@ "CONTACT_DETAIL_COMM_TYPE_INSECURE" = "رقم غير مسجّل"; /* table cell subtitle when contact card has no email */ -"CONTACT_PICKER_NO_EMAILS_AVAILABLE" = "لا يوجد عنوان إيميل."; +"CONTACT_PICKER_NO_EMAILS_AVAILABLE" = "لا يوجد عنوان بريد إلكتروني."; /* table cell subtitle when contact card has no known phone number */ "CONTACT_PICKER_NO_PHONE_NUMBERS_AVAILABLE" = "لا يوجد رقم هاتف."; @@ -281,7 +281,7 @@ "CORRUPTED_SESSION_DESCRIPTION" = "إعادة تعيين جلستك سيسمح لك باستقبال الرسائل الحديثة من %@, لكن لن تتمكن من استعادة أي من الرسائل التالفة."; /* No comment provided by engineer. */ -"COUNTRYCODE_SELECT_TITLE" = "اختيار رمز الدولة"; +"COUNTRYCODE_SELECT_TITLE" = "اختر رمز الدولة"; /* Accessibility label for the create group new group button */ "CREATE_NEW_GROUP" = "Create new group"; diff --git a/Signal/translations/es.lproj/Localizable.strings b/Signal/translations/es.lproj/Localizable.strings index 57adc94cc..d62a6319b 100644 --- a/Signal/translations/es.lproj/Localizable.strings +++ b/Signal/translations/es.lproj/Localizable.strings @@ -245,7 +245,7 @@ "CONVERSATION_SETTINGS" = "Ajustes del chat"; /* table cell label in conversation settings */ -"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloquear este contacto"; +"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloquear contacto"; /* Title of the 'mute this thread' action sheet. */ "CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Silenciar"; @@ -938,7 +938,7 @@ "SEND_BUTTON_TITLE" = "Enviar"; /* Header title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Selecciona un contacto para:"; +"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Selecciona un contacto para enviar:"; /* Title for the 'send external file' view. */ "SEND_EXTERNAL_FILE_VIEW_TITLE" = "Enviar archivo"; diff --git a/Signal/translations/fi.lproj/Localizable.strings b/Signal/translations/fi.lproj/Localizable.strings index 7671d2a30..56b9ee68f 100644 --- a/Signal/translations/fi.lproj/Localizable.strings +++ b/Signal/translations/fi.lproj/Localizable.strings @@ -56,43 +56,43 @@ "ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "Tiedoston tyyppi: %@"; /* Format string for file size label in call interstitial view. Embeds: {{file size as 'N mb' or 'N kb'}}. */ -"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Size: %@"; +"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Koko: %@"; /* Label for 'send' button in the 'attachment approval' dialog. */ "ATTACHMENT_APPROVAL_SEND_BUTTON" = "Lähetä"; /* Generic filename for an attachment with no known name */ -"ATTACHMENT_DEFAULT_FILENAME" = "Attachment"; +"ATTACHMENT_DEFAULT_FILENAME" = "Liitetiedosto"; /* Status label when an attachment download has failed. */ -"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Failed. Tap to retry."; +"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Virhe. Yritä uudelleen napauttamalla."; /* Status label when an attachment is currently downloading */ -"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Downloading..."; +"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Ladataan..."; /* Status label when an attachment is enqueued, but hasn't yet started downloading */ -"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "Queued"; +"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "Jonossa"; /* The title of the 'attachment error' alert. */ -"ATTACHMENT_ERROR_ALERT_TITLE" = "Error Sending Attachment"; +"ATTACHMENT_ERROR_ALERT_TITLE" = "Virhe liitteen lähettämisessä"; /* Attachment error message for image attachments which could not be converted to JPEG */ -"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Image attachment could not be resized."; +"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Kuvan koon muuttaminen epäonnistui."; /* Attachment error message for image attachments which cannot be parsed */ -"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Image attachment could not be parsed."; +"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Kuvatiedostoa ei voitu lukea."; /* Attachment error message for attachments whose data exceed file size limits */ -"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Attachment is too large."; +"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Liitetiedosto on liian suuri."; /* Attachment error message for attachments with invalid data */ -"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment has invalid contents."; +"ATTACHMENT_ERROR_INVALID_DATA" = "Liitetiedoston sisältö on virheellinen."; /* Attachment error message for attachments with an invalid file format */ -"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has invalid file format."; +"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Liitetiedoston muoto on virheellinen."; /* Attachment error message for attachments without any data */ -"ATTACHMENT_ERROR_MISSING_DATA" = "Attachment is empty."; +"ATTACHMENT_ERROR_MISSING_DATA" = "Liitetiedosto on tyhjä."; /* Accessibility hint describing what you can do with the attachment button */ "ATTACHMENT_HINT" = "Valitse tai ota kuva ja lähetä se"; @@ -101,82 +101,82 @@ "ATTACHMENT_LABEL" = "Liitetiedosto"; /* Alert title when picking a document fails for an unknown reason */ -"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Failed to choose document."; +"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Tiedoston valinta epäonnistui."; /* Alert body when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try zipping it before sending."; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal ei osaa käsitellä tätä tiedostoa sellaisenaan. Kokeile sen pakkaamista ja lähetä uudelleen."; /* Alert title when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Unsupported File"; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Tiedostotyyppiä ei tueta"; /* An explanation of the consequences of blocking another user. */ -"BLOCK_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages."; +"BLOCK_BEHAVIOR_EXPLANATION" = "Estetyt käyttäjät eivät pysty soittamaan sinulle tai lähettämään sinulle viestejä."; /* Button label for the 'block' button */ -"BLOCK_LIST_BLOCK_BUTTON" = "Block"; +"BLOCK_LIST_BLOCK_BUTTON" = "Estä"; /* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Block %@?"; +"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Estä %@?"; /* Button label for the 'unblock' button */ -"BLOCK_LIST_UNBLOCK_BUTTON" = "Unblock"; +"BLOCK_LIST_UNBLOCK_BUTTON" = "Poista esto"; /* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?"; +"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Poista esto yhteystiedolta %@?"; /* A format for the message of the alert if user tries to block a user who is already blocked. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ is already blocked."; +"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ on jo estetty."; /* A title of the alert if user tries to block a user who is already blocked. */ -"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_TITLE" = "Already Blocked"; +"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_TITLE" = "Estetty jo aiemmin"; /* A label for the block button in the block list view */ -"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Block"; +"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Estä"; /* The title of the 'block user failed' alert. */ -"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Failed to Block User."; +"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Käytäjän estäminen epäonnistui."; /* The title of the 'block user failed' alert. */ -"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error"; +"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Virhe"; /* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked"; +"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ on nyt estetty."; /* The title of the 'user blocked' alert. */ -"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked"; +"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Käyttäjä estetty"; /* The message of the 'You can't block yourself' alert. */ -"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "You can't block yourself."; +"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Et voi estää itseäsi."; /* The title of the 'You can't block yourself' alert. */ -"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error"; +"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Virhe"; /* A title for the contacts section of the block list view. */ -"BLOCK_LIST_VIEW_CONTACTS_SECTION_TITLE" = "Contacts"; +"BLOCK_LIST_VIEW_CONTACTS_SECTION_TITLE" = "Yhteystiedot"; /* The title of the 'unblock user failed' alert. */ -"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Failed to Unblock User."; +"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Käyttäjän estäminen epäonnistui."; /* The title of the 'unblock user failed' alert. */ -"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error"; +"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Virhe"; /* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been unblocked."; +"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "Yhteystiedon %@ esto on poistettu."; /* The title of the 'user unblocked' alert. */ -"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "User Unblocked"; +"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Esto poistettu"; /* Action sheet that will block an unknown user. */ -"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Block"; +"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Estä"; /* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */ -"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Block %@?"; +"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Estä %@?"; /* Alert message when calling and permissions for microphone are missing */ -"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal requires access to your microphone to make calls. You can grant this permission in the Settings app."; +"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal tarvitsee lupaa käyttää laitteesi mikrofonia puheluja varten. Voit antaa tämän käyttöoikeuden laitteesi Asetuksista."; /* Alert title when calling and permissions for microphone are missing */ -"CALL_AUDIO_PERMISSION_TITLE" = "Microphone Access Required"; +"CALL_AUDIO_PERMISSION_TITLE" = "Mikrofonin käyttöoikeutta tarvitaan"; /* Accessibilty label for placing call button */ "CALL_LABEL" = "Soita"; @@ -227,10 +227,10 @@ "CONFIRMATION_TITLE" = "Vahvista"; /* An indicator that a contact has been blocked. */ -"CONTACT_CELL_IS_BLOCKED" = "Blocked"; +"CONTACT_CELL_IS_BLOCKED" = "Estetty"; /* An indicator that a contact is a member of the current group. */ -"CONTACT_CELL_IS_IN_GROUP" = "Group Member"; +"CONTACT_CELL_IS_IN_GROUP" = "Ryhmän jäsen"; /* No comment provided by engineer. */ "CONTACT_DETAIL_COMM_TYPE_INSECURE" = "Rekisteröimätön numero"; @@ -245,37 +245,37 @@ "CONVERSATION_SETTINGS" = "Keskustelun asetukset"; /* table cell label in conversation settings */ -"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block this user"; +"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Estä tämä käyttäjä"; /* Title of the 'mute this thread' action sheet. */ -"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Mute"; +"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Mykistä"; /* label for 'mute thread' cell in conversation settings */ -"CONVERSATION_SETTINGS_MUTE_LABEL" = "Mute"; +"CONVERSATION_SETTINGS_MUTE_LABEL" = "Mykistä"; /* Indicates that the current thread is not muted. */ -"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "Not muted"; +"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "Ei mykistetty"; /* Label for button to mute a thread for a day. */ -"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "Mute for one day"; +"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "Mykistä yhdeksi päiväksi"; /* Label for button to mute a thread for a hour. */ -"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "Mute for one hour"; +"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "Mykistä yhdeksi tunniksi"; /* Label for button to mute a thread for a minute. */ -"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "Mute for one minute"; +"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "Mykistä yhdeksi minuutiksi"; /* Label for button to mute a thread for a week. */ -"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "Mute for one week"; +"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "Mykistä yhdeksi viikoksi"; /* Label for button to mute a thread for a year. */ -"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "Mute for one year"; +"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "Mykistä yhdeksi vuodeksi"; /* Indicates that this thread is muted until a given date or time. Embeds {{The date or time which the thread is muted until}}. */ -"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "until %@"; +"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "%@ asti"; /* Label for button to unmute a thread. */ -"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Unmute"; +"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Poista mykistys"; /* ActionSheet title */ "CORRUPTED_SESSION_DESCRIPTION" = "Istunnon alustaminen mahdollistaa uusien viestien vastaanottamisen yhteystiedolta %@. Vanhoja, jo korruptoituneita viestejä ei kuitenkaan ole mahdollista enää palauttaa."; @@ -317,10 +317,10 @@ "EDIT_GROUP_ACTION" = "Muokkaa ryhmää"; /* A format for the message of the alert if user tries to add a user to a group who is already in the group. Embeds {{the blocked user's name or phone number}}. */ -"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_MESSAGE_FORMAT" = "%@ is already a member of this group."; +"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_MESSAGE_FORMAT" = "%@ on jo tämän ryhmän jäsen."; /* A title of the alert if user tries to add a user to a group who is already in the group. */ -"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_TITLE" = "Already a Group Member"; +"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_TITLE" = "Ryhmän jäsenen lisääminen"; /* Short name for edit menu item to copy contents of media message. */ "EDIT_ITEM_COPY_ACTION" = "Kopioi"; @@ -380,13 +380,13 @@ "ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Lähettäminen ei onnistu vanhentuneiden yksityisyystietojen vuoksi."; /* 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" = "Viestin lähettäminen ei onnistunut, koska olet estänyt kyseisen yhteystiedon."; /* Generic error used whenver Signal can't contact the server */ "ERROR_DESCRIPTION_NO_INTERNET" = "Signal ei saanut yhteyttä internetiin. Yritä uudelleen toisesta WiFi-verkosta tai kokeile mobiiliyhteyttä."; /* 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" = "Viestin lähettäminen ei onnistunut, koska vastaanottajatiedoissa on virhe."; /* Error message when attempting to send message */ "ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Laitteesi ei ole enää rekisteröity puhelinnumerollesi. Sinun täytyy poistaa ja asentaa Signal uudelleen."; @@ -431,19 +431,19 @@ "EXISTING_USER_REGISTRATION_ALERT_TITLE" = "Jos otat käyttöön tämän %@-laitteen, Signalia ei voi enää käyttää muulla laitteella, joka käyttää tätä samaa puhelinnumeroa."; /* Message for the alert indicating the 'export with signal' file had an invalid filename. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Invalid filename."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Virheellinen tiedostonnimi."; /* Message for the alert indicating the 'export with signal' attachment couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Tiedoston lataaminen epäonnistui."; /* Message for the alert indicating the 'export with signal' data couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Tiedoston lataaminen epäonnistui."; /* Message for the alert indicating the 'export with signal' file had unknown type. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Unknown file type."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Tuntematon tiedostotyyppi."; /* Title for the alert indicating the 'export with signal' attachment had an error. */ -"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Error"; +"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Virhe"; /* action sheet header when re-sending message which failed because of too many attempts */ "FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Viestien lähetys tälle yhteystiedolle epäonnistui liian monta kertaa. Yritä myöhemmin uudelleen."; @@ -464,7 +464,7 @@ "GENERIC_ATTACHMENT_DEFAULT_TYPE" = "?"; /* A label for generic attachments. */ -"GENERIC_ATTACHMENT_LABEL" = "Attachment"; +"GENERIC_ATTACHMENT_LABEL" = "Liitetiedosto"; /* No comment provided by engineer. */ "GROUP_AVATAR_CHANGED" = "Kuvake päivitetty."; @@ -488,16 +488,16 @@ "GROUP_MEMBER_LEFT" = "%@ lähti ryhmästä."; /* Button label for the 'call group member' button */ -"GROUP_MEMBERS_CALL" = "Call"; +"GROUP_MEMBERS_CALL" = "Soita"; /* header for table which lists the members of this group thread */ "GROUP_MEMBERS_HEADER" = "Ryhmän jäsenet"; /* Button label for the 'send message to group member' button */ -"GROUP_MEMBERS_SEND_MESSAGE" = "Send Message"; +"GROUP_MEMBERS_SEND_MESSAGE" = "Lähetä viesti"; /* Button label for the 'show contact info' button */ -"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contact Info"; +"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Yhteystiedot"; /* No comment provided by engineer. */ "GROUP_REMOVING" = "Poistutaan ryhmästä %@"; @@ -515,7 +515,7 @@ "GROUP_YOU_LEFT" = "Olet poistunut ryhmästä."; /* A label for conversations with blocked users. */ -"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocked"; +"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Estetty"; /* {{number of hours}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 hours}}'. See other *_TIME_AMOUNT strings */ "HOURS_TIME_AMOUNT" = "%u tuntia"; @@ -614,7 +614,7 @@ "MEDIA_FROM_CAMERA_BUTTON" = "Kamera"; /* action sheet button title when choosing attachment type */ -"MEDIA_FROM_DOCUMENT_PICKER_BUTTON" = "Document"; +"MEDIA_FROM_DOCUMENT_PICKER_BUTTON" = "Dokumentti"; /* media picker option to choose from library */ "MEDIA_FROM_LIBRARY_BUTTON" = "Kameran rulla"; @@ -635,19 +635,19 @@ "MESSAGE_STATUS_UPLOADING" = "Lähetetään..."; /* Indicates that this 1:1 conversation has been blocked. */ -"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked this User"; +"MESSAGES_VIEW_CONTACT_BLOCKED" = "Olet estänyt tämän käyttäjän"; /* Action sheet title after tapping on failed download. */ -"MESSAGES_VIEW_FAILED_DOWNLOAD_ACTIONSHEET_TITLE" = "Download Failed."; +"MESSAGES_VIEW_FAILED_DOWNLOAD_ACTIONSHEET_TITLE" = "Lataaminen epäonnistui"; /* Action sheet button text */ -"MESSAGES_VIEW_FAILED_DOWNLOAD_RETRY_ACTION" = "Download Again"; +"MESSAGES_VIEW_FAILED_DOWNLOAD_RETRY_ACTION" = "Lataa uudelleen"; /* 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" = "Estit 1 käyttäjän tästä ryhmästä"; /* 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 %d Members of this Group"; +"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Estit %d käyttäjää tästä ryhmästä"; /* The subtitle for the messages view title indicates that the title can be tapped to access settings for this conversation. */ "MESSAGES_VIEW_TITLE_SUBTITLE" = "Napsauta tästä asetuksiin"; @@ -691,7 +691,7 @@ "MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Sinulla on nyt käytössä enimmäismäärä yhdistettyjä laitteita, etkä voi lisätä enempää, ellet poista joitakin aiemmin yhdistämistäsi laitteista."; /* An explanation of the consequences of muting a thread. */ -"MUTE_BEHAVIOR_EXPLANATION" = "You will not receive notifications for muted conversations."; +"MUTE_BEHAVIOR_EXPLANATION" = "Et saa ilmoituksia mykistetyistä keskusteluista."; /* No comment provided by engineer. */ "NETWORK_ERROR_RECOVERY" = "Tarkista että verkkoyhteytesi on päällä ja yritä uudelleen."; @@ -776,10 +776,10 @@ "OUTGOING_INCOMPLETE_CALL" = "Keskeneräinen lähtevä puhelu"; /* A display format for oversize text messages. */ -"OVERSIZE_TEXT_DISPLAY_FORMAT" = "%@… [Tap For More]"; +"OVERSIZE_TEXT_DISPLAY_FORMAT" = "%@... [Näytä lisää napauttamalla]"; /* The title of the 'oversize text message' view. */ -"OVERSIZE_TEXT_MESSAGE_VIEW_TITLE" = "Message"; +"OVERSIZE_TEXT_MESSAGE_VIEW_TITLE" = "Viesti"; /* Alert body when verifying with {{contact name}} */ "PRIVACY_VERIFICATION_FAILED_I_HAVE_WRONG_KEY_FOR_THEM" = "Tämä ei näytä olevan sinun ja yhteystiedon %@ turvanumero. Tarkista että olet varmentamassa oikeaa yhteystietoa."; @@ -854,7 +854,7 @@ "REGISTER_CONTACTS_WELCOME" = "Tervetuloa!"; /* No comment provided by engineer. */ -"REGISTER_FAILED_TRY_AGAIN" = "Try Again"; +"REGISTER_FAILED_TRY_AGAIN" = "Yritä uudelleen"; /* No comment provided by engineer. */ "REGISTER_RATE_LIMITING_BODY" = "Olet yrittänyt liian monta kertaa. Yritä uudelleen jonkin minuutin päästä."; @@ -932,16 +932,16 @@ "SECURE_SESSION_RESET" = "Suojattu istunto alustettu."; /* No comment provided by engineer. */ -"SEND_AGAIN_BUTTON" = "Send Again"; +"SEND_AGAIN_BUTTON" = "Lähetä uudelleen"; /* No comment provided by engineer. */ "SEND_BUTTON_TITLE" = "Lähetä"; /* Header title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Select a Recipient for:"; +"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Valitse vastaanottaja liitteelle:"; /* Title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Send File"; +"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Lähetä tiedosto"; /* Alert body after invite failed */ "SEND_INVITE_FAILURE" = "Kutsun lähettäminen epäonnistui. Yritä myöhemmin uudelleen."; @@ -962,13 +962,13 @@ "SETTINGS_ABOUT" = "Tietoja ohjelmasta"; /* Title for the 'block contact' section of the 'add to block list' view. */ -"SETTINGS_ADD_TO_BLOCK_LIST_BLOCK_CONTACT_TITLE" = "Block Contact"; +"SETTINGS_ADD_TO_BLOCK_LIST_BLOCK_CONTACT_TITLE" = "Estä yhteystieto"; /* 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" = "Estä puhelinnumero"; /* Title for the 'add to block list' view. */ -"SETTINGS_ADD_TO_BLOCK_LIST_TITLE" = "Block"; +"SETTINGS_ADD_TO_BLOCK_LIST_TITLE" = "Estä"; /* No comment provided by engineer. */ "SETTINGS_ADVANCED_DEBUGLOG" = "Virheenkorjausloki"; @@ -980,13 +980,13 @@ "SETTINGS_ADVANCED_TITLE" = "Lisäasetukset"; /* A label for the 'add phone number' button in the block list table. */ -"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add…"; +"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Lisää..."; /* 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" = "Sinulla ei ole yhteystietoja Signalissa."; /* Label for the block list section of the settings view */ -"SETTINGS_BLOCK_LIST_TITLE" = "Blocked"; +"SETTINGS_BLOCK_LIST_TITLE" = "Estetty"; /* User settings section footer, a detailed explanation */ "SETTINGS_BLOCK_ON_IDENITY_CHANGE_DETAIL" = "Aina kun jonkun yhteystietoni turvanumero on vaihtunut, vaadi sen erillistä hyväksyntää, ennen kuin voin jatkaa viestittelyä. Yleensä turvanumero vaihtuu, kun joku uudelleenasentaa Signalin."; @@ -1118,7 +1118,7 @@ "UNKNOWN_ATTACHMENT_LABEL" = "Tuntematon liitetiedosto"; /* No comment provided by engineer. */ -"UNKNOWN_CONTACT_BLOCK_OFFER" = "User not in your contacts. Would you like to block this user?"; +"UNKNOWN_CONTACT_BLOCK_OFFER" = "Käyttäjä ei ole yhteystiedoissasi. Haluatko estää tämän käyttäjän?"; /* Displayed if for some reason we can't determine a contacts phone number *or* name */ "UNKNOWN_CONTACT_NAME" = "Tuntematon yhteystieto"; @@ -1184,7 +1184,7 @@ "VERIFICATION_CHALLENGE_SUBMIT_CODE" = "Lähetä vahvistuskoodi"; /* Label indicating the phone number currently being verified. */ -"VERIFICATION_PHONE_NUMBER_FORMAT" = "Enter the verification code we sent to %@."; +"VERIFICATION_PHONE_NUMBER_FORMAT" = "Syötä vahvistuskoodi, jonka lähetimme numeroon %@."; /* table cell label in conversation settings */ "VERIFY_PRIVACY" = "Varmenna turvanumero"; diff --git a/Signal/translations/fr.lproj/Localizable.strings b/Signal/translations/fr.lproj/Localizable.strings index f5095be00..fb84ac942 100644 --- a/Signal/translations/fr.lproj/Localizable.strings +++ b/Signal/translations/fr.lproj/Localizable.strings @@ -104,10 +104,10 @@ "ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Impossible de choisir le document."; /* Alert body when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try zipping it before sending."; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal ne peut pas procéder au traitement de ce fichier tel quel. Veuillez essayer de le compresser avant de l'envoyer"; /* Alert title when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Unsupported File"; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Fichier non supporté"; /* An explanation of the consequences of blocking another user. */ "BLOCK_BEHAVIOR_EXPLANATION" = "Les utilisateurs bloqués ne pourront pas vous appeler ou vous envoyer des messages."; @@ -431,19 +431,19 @@ "EXISTING_USER_REGISTRATION_ALERT_TITLE" = "L'activation de ce %@ désactive Signal sur tout autre périphérique actuellement associé à ce numéro de téléphone."; /* Message for the alert indicating the 'export with signal' file had an invalid filename. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Invalid filename."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Nom du fichier invalide"; /* Message for the alert indicating the 'export with signal' attachment couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Impossible de charger le fichier"; /* Message for the alert indicating the 'export with signal' data couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Impossible de charger le fichier"; /* Message for the alert indicating the 'export with signal' file had unknown type. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Unknown file type."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Type de fichier inconnu"; /* Title for the alert indicating the 'export with signal' attachment had an error. */ -"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Error"; +"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Erreur"; /* action sheet header when re-sending message which failed because of too many attempts */ "FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Trop de défaillances avec ce contact. Veuillez réessayer prochainement."; @@ -938,10 +938,10 @@ "SEND_BUTTON_TITLE" = "Envoyer"; /* Header title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Select a Recipient for:"; +"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Choisir un destinataire pour :"; /* Title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Send File"; +"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Envoyer le fichier"; /* Alert body after invite failed */ "SEND_INVITE_FAILURE" = "Échec de l'envoi de l'invitation. Veuillez réessayer plus tard. "; diff --git a/Signal/translations/gl.lproj/Localizable.strings b/Signal/translations/gl.lproj/Localizable.strings index fcfc40490..6506b30f5 100644 --- a/Signal/translations/gl.lproj/Localizable.strings +++ b/Signal/translations/gl.lproj/Localizable.strings @@ -8,7 +8,7 @@ "AB_PERMISSION_MISSING_TITLE" = "Sentímolo!"; /* Action sheet item */ -"ACCEPT_NEW_IDENTITY_ACTION" = "Accept new safety number"; +"ACCEPT_NEW_IDENTITY_ACTION" = "Aceptar a nova chave de identificación"; /* No comment provided by engineer. */ "ACTION_REQUIRED_TITLE" = "Acción obrigatoria"; @@ -20,7 +20,7 @@ "ADDRESSBOOK_RESTRICTED_ALERT_BUTTON" = "Pechar"; /* registration button text */ -"ALREADY_HAVE_ACCOUNT_BUTTON" = "Already have a Signal account?"; +"ALREADY_HAVE_ACCOUNT_BUTTON" = "Xa tes unha conta de Signal?"; /* No comment provided by engineer. */ "ANSWER_CALL_BUTTON_TITLE" = "Responder"; @@ -50,292 +50,292 @@ "ATTACHMENT" = "Anexo"; /* Title for the 'attachment approval' dialog. */ -"ATTACHMENT_APPROVAL_DIALOG_TITLE" = "Attachment"; +"ATTACHMENT_APPROVAL_DIALOG_TITLE" = "Anexo"; /* Format string for file extension label in call interstitial view */ -"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "File type: %@"; +"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "Tipo de ficheiro: %@"; /* Format string for file size label in call interstitial view. Embeds: {{file size as 'N mb' or 'N kb'}}. */ -"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Size: %@"; +"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Tamaño: %@"; /* Label for 'send' button in the 'attachment approval' dialog. */ -"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Send"; +"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Enviar"; /* Generic filename for an attachment with no known name */ -"ATTACHMENT_DEFAULT_FILENAME" = "Attachment"; +"ATTACHMENT_DEFAULT_FILENAME" = "Anexo"; /* Status label when an attachment download has failed. */ -"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Failed. Tap to retry."; +"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Erro. Toca para intentar de novo."; /* Status label when an attachment is currently downloading */ -"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Downloading..."; +"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Descargando..."; /* Status label when an attachment is enqueued, but hasn't yet started downloading */ -"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "Queued"; +"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "En cola"; /* The title of the 'attachment error' alert. */ -"ATTACHMENT_ERROR_ALERT_TITLE" = "Error Sending Attachment"; +"ATTACHMENT_ERROR_ALERT_TITLE" = "Erro ao enviar o anexo"; /* Attachment error message for image attachments which could not be converted to JPEG */ -"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Image attachment could not be resized."; +"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "A imaxe anexa non se pudo redimensionar."; /* Attachment error message for image attachments which cannot be parsed */ -"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Image attachment could not be parsed."; +"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "A imaxe anexa non se pudo convertir."; /* Attachment error message for attachments whose data exceed file size limits */ -"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Attachment is too large."; +"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "O anexo é demasiado grande."; /* Attachment error message for attachments with invalid data */ -"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment has invalid contents."; +"ATTACHMENT_ERROR_INVALID_DATA" = "O anexo ten contidos non válidos."; /* Attachment error message for attachments with an invalid file format */ -"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has invalid file format."; +"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "O formato do anexo non é valido."; /* Attachment error message for attachments without any data */ -"ATTACHMENT_ERROR_MISSING_DATA" = "Attachment is empty."; +"ATTACHMENT_ERROR_MISSING_DATA" = "O anexo está baleiro."; /* Accessibility hint describing what you can do with the attachment button */ -"ATTACHMENT_HINT" = "Choose or take a picture and then send it"; +"ATTACHMENT_HINT" = "Selecciona ou saca unha foto para enviala"; /* Accessibility label for attaching photos */ -"ATTACHMENT_LABEL" = "Attachment"; +"ATTACHMENT_LABEL" = "Anexo"; /* Alert title when picking a document fails for an unknown reason */ -"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Failed to choose document."; +"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Erro ao seleccionar documento."; /* Alert body when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try zipping it before sending."; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal non pode procesar o ficheiro. Procura comprimilo antes de envialo."; /* Alert title when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Unsupported File"; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Ficheiro non soportado."; /* An explanation of the consequences of blocking another user. */ -"BLOCK_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages."; +"BLOCK_BEHAVIOR_EXPLANATION" = "Usuarios bloqueados non poderán chamarte ou enviarte mensaxes."; /* Button label for the 'block' button */ -"BLOCK_LIST_BLOCK_BUTTON" = "Block"; +"BLOCK_LIST_BLOCK_BUTTON" = "Bloquear"; /* A format for the 'block user' action sheet title. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Block %@?"; +"BLOCK_LIST_BLOCK_TITLE_FORMAT" = "Bloquear: %@?"; /* Button label for the 'unblock' button */ -"BLOCK_LIST_UNBLOCK_BUTTON" = "Unblock"; +"BLOCK_LIST_UNBLOCK_BUTTON" = "Desbloquear"; /* A format for the 'unblock user' action sheet title. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Unblock %@?"; +"BLOCK_LIST_UNBLOCK_TITLE_FORMAT" = "Desbloquear: %@?"; /* A format for the message of the alert if user tries to block a user who is already blocked. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ is already blocked."; +"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ xa está bloqueado."; /* A title of the alert if user tries to block a user who is already blocked. */ -"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_TITLE" = "Already Blocked"; +"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_TITLE" = "Xa está bloqueado"; /* A label for the block button in the block list view */ -"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Block"; +"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Bloquear"; /* The title of the 'block user failed' alert. */ -"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Failed to Block User."; +"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Erro ao bloquear usuario."; /* The title of the 'block user failed' alert. */ -"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error"; +"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Erro"; /* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked"; +"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ bloqueado"; /* The title of the 'user blocked' alert. */ -"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked"; +"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Usuario bloqueado"; /* The message of the 'You can't block yourself' alert. */ -"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "You can't block yourself."; +"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Non te podes bloquear a ti mesmo."; /* The title of the 'You can't block yourself' alert. */ -"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error"; +"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Erro"; /* A title for the contacts section of the block list view. */ -"BLOCK_LIST_VIEW_CONTACTS_SECTION_TITLE" = "Contacts"; +"BLOCK_LIST_VIEW_CONTACTS_SECTION_TITLE" = "Contactos"; /* The title of the 'unblock user failed' alert. */ -"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Failed to Unblock User."; +"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Erro ao desbloquear usuario."; /* The title of the 'unblock user failed' alert. */ -"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error"; +"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Erro"; /* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been unblocked."; +"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ desbloqueado."; /* The title of the 'user unblocked' alert. */ -"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "User Unblocked"; +"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Usuario desbloqueado"; /* Action sheet that will block an unknown user. */ -"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Block"; +"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Bloquear"; /* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */ -"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Block %@?"; +"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Bloquear: %@?"; /* Alert message when calling and permissions for microphone are missing */ -"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal requires access to your microphone to make calls. You can grant this permission in the Settings app."; +"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal precisa acceso ao teu micrófono para facer chamadas. Podes dar permiso a través da aplicación Axustes de iOS."; /* Alert title when calling and permissions for microphone are missing */ -"CALL_AUDIO_PERMISSION_TITLE" = "Microphone Access Required"; +"CALL_AUDIO_PERMISSION_TITLE" = "Acceso ao micrófono requerido"; /* Accessibilty label for placing call button */ -"CALL_LABEL" = "Call"; +"CALL_LABEL" = "Chamar"; /* Call setup status label after outgoing call times out */ -"CALL_SCREEN_STATUS_NO_ANSWER" = "No Answer."; +"CALL_SCREEN_STATUS_NO_ANSWER" = "Sen resposta."; /* embeds {{Call Status}} in call screen label. For ongoing calls, {{Call Status}} is a seconds timer like 01:23, otherwise {{Call Status}} is a short text like 'Ringing', 'Busy', or 'Failed Call' */ "CALL_STATUS_FORMAT" = "Signal %@"; /* Reminder to the user of the benefits of enabling CallKit and disabling CallKit privacy. */ -"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "You can answer calls directly from your lock screen and see the name and phone number for incoming calls if you change your settings.\n\nSee the privacy settings for details."; +"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_ALL" = "Podes responder ás chamadas directamente dende a pantalla de bloqueo e ver o nome e o número de télefono das chamadas entrantes se cambias os teus axustes.\n\nPara máis detalles accede aos axustes de privacidade."; /* Reminder to the user of the benefits of disabling CallKit privacy. */ -"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "You can see the name and phone number for incoming calls if you change your settings.\n\nSee the privacy settings for details."; +"CALL_VIEW_SETTINGS_NAG_DESCRIPTION_PRIVACY" = "Podes ver o nome e o número de teléfono das chamadas entrantes se cambias os teus axustes.\n\nPara máis detalles accede aos axustes de privacidade."; /* Label for button that dismiss the call view's settings nag. */ -"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "Not Now"; +"CALL_VIEW_SETTINGS_NAG_NOT_NOW_BUTTON" = "Agora non"; /* Label for button that shows the privacy settings */ -"CALL_VIEW_SETTINGS_NAG_SHOW_CALL_SETTINGS" = "Show Privacy Settings"; +"CALL_VIEW_SETTINGS_NAG_SHOW_CALL_SETTINGS" = "Amosar Axustes de Privacidade"; /* notification action */ "CALLBACK_BUTTON_TITLE" = "Devolver chamada"; /* The generic name used for calls if CallKit privacy is enabled */ -"CALLKIT_ANONYMOUS_CONTACT_NAME" = "Signal User"; +"CALLKIT_ANONYMOUS_CONTACT_NAME" = "Usuario de Signal"; /* Activity Sheet label */ -"COMPARE_SAFETY_NUMBER_ACTION" = "Compare with Clipboard"; +"COMPARE_SAFETY_NUMBER_ACTION" = "Comprarar co Portapapeis"; /* No comment provided by engineer. */ -"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "Esta acción restablecerá a aplicación borrará as túas mensaxes e darate de baixa no servidor. A aplicación pecharase despois da eliminación dos datos."; +"CONFIRM_ACCOUNT_DESTRUCTION_TEXT" = "Esta acción restablecerá a aplicación, borrando as túas mensaxes e dándote de baixa no servidor. A aplicación pecharase despois da eliminación dos datos."; /* No comment provided by engineer. */ "CONFIRM_ACCOUNT_DESTRUCTION_TITLE" = "Tes a certeza de querer eliminar a túa conta?"; /* Alert body */ -"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "You will no longer be able to send or receive messages in this group."; +"CONFIRM_LEAVE_GROUP_DESCRIPTION" = "Xa non poderás enviar ou recibir mensaxes neste grupo."; /* Alert title */ -"CONFIRM_LEAVE_GROUP_TITLE" = "Do you really want to leave?"; +"CONFIRM_LEAVE_GROUP_TITLE" = "Estás seguro de que queres abandonar o grupo?"; /* Button text */ -"CONFIRM_LINK_NEW_DEVICE_ACTION" = "Link New Device"; +"CONFIRM_LINK_NEW_DEVICE_ACTION" = "Vincular un novo dispositivo"; /* No comment provided by engineer. */ "CONFIRMATION_TITLE" = "Confirmar"; /* An indicator that a contact has been blocked. */ -"CONTACT_CELL_IS_BLOCKED" = "Blocked"; +"CONTACT_CELL_IS_BLOCKED" = "Bloqueado"; /* An indicator that a contact is a member of the current group. */ -"CONTACT_CELL_IS_IN_GROUP" = "Group Member"; +"CONTACT_CELL_IS_IN_GROUP" = "Membro do grupo"; /* No comment provided by engineer. */ "CONTACT_DETAIL_COMM_TYPE_INSECURE" = "Número non rexistrado"; /* table cell subtitle when contact card has no email */ -"CONTACT_PICKER_NO_EMAILS_AVAILABLE" = "No email available."; +"CONTACT_PICKER_NO_EMAILS_AVAILABLE" = "Correo electrónico non dispoñible."; /* table cell subtitle when contact card has no known phone number */ -"CONTACT_PICKER_NO_PHONE_NUMBERS_AVAILABLE" = "No phone number available."; +"CONTACT_PICKER_NO_PHONE_NUMBERS_AVAILABLE" = "Número de teléfono non dispoñible."; /* title for conversation settings screen */ -"CONVERSATION_SETTINGS" = "Conversation Settings"; +"CONVERSATION_SETTINGS" = "Axustes de conversa"; /* table cell label in conversation settings */ -"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block this user"; +"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Bloquear este usuario"; /* Title of the 'mute this thread' action sheet. */ -"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Mute"; +"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Silenciar"; /* label for 'mute thread' cell in conversation settings */ -"CONVERSATION_SETTINGS_MUTE_LABEL" = "Mute"; +"CONVERSATION_SETTINGS_MUTE_LABEL" = "Silenciar"; /* Indicates that the current thread is not muted. */ -"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "Not muted"; +"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "Non silenciada"; /* Label for button to mute a thread for a day. */ -"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "Mute for one day"; +"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "Silenciar durante 1 día"; /* Label for button to mute a thread for a hour. */ -"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "Mute for one hour"; +"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "Silenciar durante 1 hora"; /* Label for button to mute a thread for a minute. */ -"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "Mute for one minute"; +"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "Silenciar durante 1 minuto"; /* Label for button to mute a thread for a week. */ -"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "Mute for one week"; +"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "Silenciar durante 1 semana"; /* Label for button to mute a thread for a year. */ -"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "Mute for one year"; +"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "Silenciar durante 1 ano"; /* Indicates that this thread is muted until a given date or time. Embeds {{The date or time which the thread is muted until}}. */ -"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "until %@"; +"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "ata %@"; /* Label for button to unmute a thread. */ -"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Unmute"; +"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Desilenciar"; /* ActionSheet title */ -"CORRUPTED_SESSION_DESCRIPTION" = "Resetting your session will allow you to receive future messages from %@, but it will not recover any already corrupted messages."; +"CORRUPTED_SESSION_DESCRIPTION" = "Reiniciar a túa sesión permitirache recibir mensaxes futuras de %@, pero non recuperará as mensaxes xa corruptas."; /* No comment provided by engineer. */ "COUNTRYCODE_SELECT_TITLE" = "Seleccionar código de país"; /* Accessibility label for the create group new group button */ -"CREATE_NEW_GROUP" = "Create new group"; +"CREATE_NEW_GROUP" = "Crear un novo grupo"; /* {{number of days}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 days}}'. See other *_TIME_AMOUNT strings */ -"DAYS_TIME_AMOUNT" = "%u days"; +"DAYS_TIME_AMOUNT" = "%u días"; /* {{Short Date}} when device last communicated with Signal Server. */ -"DEVICE_LAST_ACTIVE_AT_LABEL" = "Last active: %@"; +"DEVICE_LAST_ACTIVE_AT_LABEL" = "Activo por última vez: %@"; /* {{Short Date}} when device was linked. */ -"DEVICE_LINKED_AT_LABEL" = "Linked: %@"; +"DEVICE_LINKED_AT_LABEL" = "Vinculado: %@"; /* Alert title that can occur when viewing device manager. */ -"DEVICE_LIST_UPDATE_FAILED_TITLE" = "Failed to update device list."; +"DEVICE_LIST_UPDATE_FAILED_TITLE" = "Erro ao actualizar a lista de dispositivos"; /* table cell label in conversation settings */ -"DISAPPEARING_MESSAGES" = "Disappearing Messages"; +"DISAPPEARING_MESSAGES" = "Mensaxes con caducidad"; /* subheading in conversation settings */ -"DISAPPEARING_MESSAGES_DESCRIPTION" = "When enabled, messages sent and received in this conversation will disappear after they have been seen."; +"DISAPPEARING_MESSAGES_DESCRIPTION" = "Ao activar, as mensaxes enviadas e recibidas nesta conversa desaprecerán nada máis ser vistas."; /* Accessibility hint that contains current timeout information */ -"DISAPPEARING_MESSAGES_HINT" = "Currently messages disappear after %@"; +"DISAPPEARING_MESSAGES_HINT" = "As mensaxes caducarán despois de %@"; /* Accessibility label for disappearing messages */ -"DISAPPEARING_MESSAGES_LABEL" = "Disappearing messages settings"; +"DISAPPEARING_MESSAGES_LABEL" = "Axustes de mensaxes con caducidad"; /* Generic short text for button to dismiss a dialog */ -"DISMISS_BUTTON_TEXT" = "Dismiss"; +"DISMISS_BUTTON_TEXT" = "Rexeitar"; /* table cell label in conversation settings */ -"EDIT_GROUP_ACTION" = "Edit Group"; +"EDIT_GROUP_ACTION" = "Editar Grupo"; /* A format for the message of the alert if user tries to add a user to a group who is already in the group. Embeds {{the blocked user's name or phone number}}. */ -"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_MESSAGE_FORMAT" = "%@ is already a member of this group."; +"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_MESSAGE_FORMAT" = "%@ xa é membro deste grupo."; /* A title of the alert if user tries to add a user to a group who is already in the group. */ -"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_TITLE" = "Already a Group Member"; +"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_TITLE" = "Xa é membro do grupo"; /* Short name for edit menu item to copy contents of media message. */ -"EDIT_ITEM_COPY_ACTION" = "Copy"; +"EDIT_ITEM_COPY_ACTION" = "Copiar"; /* Short name for edit menu item to save contents of media message. */ -"EDIT_ITEM_SAVE_ACTION" = "Save"; +"EDIT_ITEM_SAVE_ACTION" = "Gardar"; /* Short name for edit menu item to share contents of media message. */ -"EDIT_ITEM_SHARE_ACTION" = "Share"; +"EDIT_ITEM_SHARE_ACTION" = "Compartir"; /* body of email sent to contacts when inviting to install Signal. Embeds {{link to install Signal}} and {{link to WhisperSystems home page}} */ -"EMAIL_INVITE_BODY" = "Hey,\n\nLately I've been using Signal to keep the conversations on my iPhone private. I'd like you to install it too, so we can be confident that only you and I can read our messages or hear our calls.\n\nSignal is available for iPhones and Android. Get it here: %@\n\nSignal works like your existing messaging app. We can send pictures and video, make calls, and start group chats. The best part is, no one else can see any of it, not even the people who make Signal!\n\nYou can read more about Open Whisper Systems, the people who make Signal, here: %@"; +"EMAIL_INVITE_BODY" = "Ola:\n\nUltimamente estou usando Signal no meu iPhone para poder ter conversas privadas. Gustaríame que ti tamén o instalases, para así estar seguros de que tan só ti e máis eu podemos ler as nosas mensaxes ou escoitar as nosas chamadas.\n\nSignal está dispoñible para iPhones e Android. Descárgao aquí: %@\n\nSignal funciona como a túa aplicación para mensaxes estándar. Podemos enviar fotos e vídeos, facer chamadas, e ter conversas en grupo. O mellor de todo é que nadie pode ver o contido das nosas conversas, nin sequera a xente que desarrolla Signal!\n\nPodes aprender máis sobre Open Whisper Systems, a xente que desarrolla Signal, aquí: %@"; /* subject of email sent to contacts when inviting to install Signal */ -"EMAIL_INVITE_SUBJECT" = "Let's switch to Signal"; +"EMAIL_INVITE_SUBJECT" = "Imos cambiar a Signal"; /* No comment provided by engineer. */ "EMPTY_ARCHIVE_FIRST_TEXT" = "Toca no botón para escribir."; @@ -350,10 +350,10 @@ "EMPTY_ARCHIVE_TITLE" = "LImpar as túas conversas"; /* Full width label displayed when attempting to compose message */ -"EMPTY_CONTACTS_LABEL_LINE1" = "None of your contacts have Signal."; +"EMPTY_CONTACTS_LABEL_LINE1" = "Ningún dos teus contactos usa Signal."; /* Full width label displayed when attempting to compose message */ -"EMPTY_CONTACTS_LABEL_LINE2" = "Why don't you invite someone?"; +"EMPTY_CONTACTS_LABEL_LINE2" = "Por qué non convidas a alguén?"; /* No comment provided by engineer. */ "EMPTY_INBOX_FIRST_TEXT" = "Consello: engade unha conversa como recordatorio!"; @@ -368,37 +368,37 @@ "EMPTY_INBOX_TITLE" = "Limpo coma unha patena."; /* Call setup status label */ -"END_CALL_RESPONDER_IS_BUSY" = "Busy."; +"END_CALL_RESPONDER_IS_BUSY" = "Ocupado."; /* Call setup status label */ -"END_CALL_UNCATEGORIZED_FAILURE" = "Call Failed."; +"END_CALL_UNCATEGORIZED_FAILURE" = "Erro na chamada."; /* Generic notice when message failed to send. */ -"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "Failed to send message."; +"ERROR_DESCRIPTION_CLIENT_SENDING_FAILURE" = "Erro ao enviar a mensaxe."; /* Error mesage indicating that message send is disabled due to prekey update failures */ -"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Unable to send due to stale privacy data."; +"ERROR_DESCRIPTION_MESSAGE_SEND_DISABLED_PREKEY_UPDATE_FAILURES" = "Mensaxe non enviada: chaves de cifrado obsoletas."; /* 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" = "Non se pode enviar a mensaxe porque bloqueaches ao usuario."; /* Generic error used whenver Signal can't contact the server */ -"ERROR_DESCRIPTION_NO_INTERNET" = "Signal was unable to connect to the internet. Please try from another WiFi network or use mobile data."; +"ERROR_DESCRIPTION_NO_INTERNET" = "Signal non se pode conectar a Internet. Procura conectarte a outra rede WiFi ou utiliza os datos móbiles."; /* 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" = "Erro ao enviar a mensaxe: destinatarios non válidos."; /* Error message when attempting to send message */ -"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Your device is no longer registered for your phone number. You must remove and reinstall Signal."; +"ERROR_DESCRIPTION_SENDING_UNAUTHORIZED" = "Este dispositivo xa non está rexistrado co teu número de teléfono. Deberás eliminar e reinstalar Signal."; /* Generic server error */ -"ERROR_DESCRIPTION_SERVER_FAILURE" = "Server Error. Please try again later."; +"ERROR_DESCRIPTION_SERVER_FAILURE" = "Erro do servidor. Téntao de novo máis tarde."; /* Worst case generic error message */ -"ERROR_DESCRIPTION_UNKNOWN_ERROR" = "An unknown error occured."; +"ERROR_DESCRIPTION_UNKNOWN_ERROR" = "Erro descoñecido."; /* Error message when attempting to send message */ -"ERROR_DESCRIPTION_UNREGISTERED_RECIPIENT" = "Contact is not a Signal user."; +"ERROR_DESCRIPTION_UNREGISTERED_RECIPIENT" = "Este contacto non usa Signal."; /* No comment provided by engineer. */ "ERROR_MESSAGE_DUPLICATE_MESSAGE" = "Recibida unha mensaxe duplicada."; @@ -407,7 +407,7 @@ "ERROR_MESSAGE_INVALID_KEY_EXCEPTION" = "A chave do destinatario non é válida."; /* No comment provided by engineer. */ -"ERROR_MESSAGE_INVALID_MESSAGE" = "Received message was out of sync. Tap to reset your secure session."; +"ERROR_MESSAGE_INVALID_MESSAGE" = "A mensaxe recibida non se sincronizou. Toca para reiniciar unha sesión segura."; /* No comment provided by engineer. */ "ERROR_MESSAGE_INVALID_VERSION" = "Recibida unha mensaxe cunha versión non compatible."; @@ -416,61 +416,61 @@ "ERROR_MESSAGE_NO_SESSION" = "Ningunha sesión dispoñible para este contacto."; /* No comment provided by engineer. */ -"ERROR_MESSAGE_NON_BLOCKING_IDENTITY_CHANGE" = "Safety number changed."; +"ERROR_MESSAGE_NON_BLOCKING_IDENTITY_CHANGE" = "Chave de identidade cambiada."; /* No comment provided by engineer. */ "ERROR_MESSAGE_UNKNOWN_ERROR" = "Produciuse un erro descoñecido."; /* No comment provided by engineer. */ -"ERROR_MESSAGE_WRONG_TRUSTED_IDENTITY_KEY" = "Safety number changed. Tap to verify."; +"ERROR_MESSAGE_WRONG_TRUSTED_IDENTITY_KEY" = "Chave de identidade cambiada. Toca para verificar."; /* during registration */ -"EXISTING_USER_REGISTRATION_ALERT_BODY" = "At this time Signal can only be active on one mobile device per phone number."; +"EXISTING_USER_REGISTRATION_ALERT_BODY" = "O teu número de teléfono só pode estar rexistrado con Signal nun único dispositivo móbil."; /* during registration, embeds {{device type}}, e.g. \"iPhone\" or \"iPad\" */ -"EXISTING_USER_REGISTRATION_ALERT_TITLE" = "Activating this %@ will disable Signal on any other device currently associated with this phone number."; +"EXISTING_USER_REGISTRATION_ALERT_TITLE" = "Activar %@ desactivará Signal en calquera outro dispositivo que xa esté asociado con este número de teléfono."; /* Message for the alert indicating the 'export with signal' file had an invalid filename. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Invalid filename."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Nome de ficheiro non válido."; /* Message for the alert indicating the 'export with signal' attachment couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Non se pudo cargar o ficheiro."; /* Message for the alert indicating the 'export with signal' data couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Non se pudo cargar o ficheiro."; /* Message for the alert indicating the 'export with signal' file had unknown type. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Unknown file type."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Tipo de ficheiro descoñecido."; /* Title for the alert indicating the 'export with signal' attachment had an error. */ -"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Error"; +"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Erro"; /* action sheet header when re-sending message which failed because of too many attempts */ -"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Too many failures with this contact. Please try again shortly."; +"FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Demasiadas tentativas para este contacto. Téntao de novo máis tarde."; /* action sheet header when re-sending message which failed because of untrusted identity keys */ -"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "You must accept the new safety number before you will be able to send."; +"FAILED_SENDING_BECAUSE_UNTRUSTED_IDENTITY_KEY" = "Deberás aceptar a nova chave de identidade antes de que podas enviar mensaxes."; /* alert title */ -"FAILED_VERIFICATION_TITLE" = "Failed to Verify Safety Number!"; +"FAILED_VERIFICATION_TITLE" = "Erro ao verificar a chave de identidade!"; /* No comment provided by engineer. */ "FINGERPRINT_SHRED_KEYMATERIAL_BUTTON" = "Restablecer esta sesión."; /* Accessibilty label for finishing new group */ -"FINISH_GROUP_CREATION_LABEL" = "Finish creating group"; +"FINISH_GROUP_CREATION_LABEL" = "Termina de crear o grupo"; /* A default label for attachment whose file extension cannot be determined. */ "GENERIC_ATTACHMENT_DEFAULT_TYPE" = "?"; /* A label for generic attachments. */ -"GENERIC_ATTACHMENT_LABEL" = "Attachment"; +"GENERIC_ATTACHMENT_LABEL" = "Anexo"; /* No comment provided by engineer. */ "GROUP_AVATAR_CHANGED" = "Avatar cambiado."; /* No comment provided by engineer. */ -"GROUP_CREATED" = "Group created."; +"GROUP_CREATED" = "Grupo creado."; /* No comment provided by engineer. */ "GROUP_CREATING" = "Creando novo grupo"; @@ -479,7 +479,7 @@ "GROUP_CREATING_FAILED" = "Erro ao crear o grupo"; /* Conversation settings table section title */ -"GROUP_MANAGEMENT_SECTION" = "Group Management"; +"GROUP_MANAGEMENT_SECTION" = "Administración do grupo"; /* No comment provided by engineer. */ "GROUP_MEMBER_JOINED" = " %@ uniuse ao grupo. "; @@ -488,16 +488,16 @@ "GROUP_MEMBER_LEFT" = " %@ abandonou o grupo. "; /* Button label for the 'call group member' button */ -"GROUP_MEMBERS_CALL" = "Call"; +"GROUP_MEMBERS_CALL" = "Chamar"; /* header for table which lists the members of this group thread */ "GROUP_MEMBERS_HEADER" = "Membros do grupo"; /* Button label for the 'send message to group member' button */ -"GROUP_MEMBERS_SEND_MESSAGE" = "Send Message"; +"GROUP_MEMBERS_SEND_MESSAGE" = "Enviar mensaxe"; /* Button label for the 'show contact info' button */ -"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contact Info"; +"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Información de contacto"; /* No comment provided by engineer. */ "GROUP_REMOVING" = "Abandonando o grupo %@"; @@ -515,10 +515,10 @@ "GROUP_YOU_LEFT" = "Abandonaches o grupo."; /* A label for conversations with blocked users. */ -"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocked"; +"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Bloqueado"; /* {{number of hours}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 hours}}'. See other *_TIME_AMOUNT strings */ -"HOURS_TIME_AMOUNT" = "%u hours"; +"HOURS_TIME_AMOUNT" = "%u horas"; /* Call setup status label */ "IN_CALL_CONNECTING" = "Conectando..."; @@ -533,7 +533,7 @@ "IN_CALL_TALKING" = "Segura. Activa."; /* Call setup status label */ -"IN_CALL_TERMINATED" = "Call Ended."; +"IN_CALL_TERMINATED" = "Chamada finalizada."; /* notification body */ "INCOMING_CALL" = "Chamada recibida"; @@ -542,61 +542,61 @@ "INCOMING_CALL_FROM" = "Chamada recibida de %@"; /* No comment provided by engineer. */ -"INCOMING_INCOMPLETE_CALL" = "Incomplete incoming call from"; +"INCOMING_INCOMPLETE_CALL" = "Chamada recibida incompleta"; /* Text for button at the top of the contact picker */ -"INVITE_FRIENDS_CONTACT_TABLE_BUTTON" = "Invite Friends to Signal"; +"INVITE_FRIENDS_CONTACT_TABLE_BUTTON" = "Convidar amizades a Signal"; /* Search */ -"INVITE_FRIENDS_PICKER_SEARCHBAR_PLACEHOLDER" = "Search"; +"INVITE_FRIENDS_PICKER_SEARCHBAR_PLACEHOLDER" = "Buscar"; /* Navbar title */ -"INVITE_FRIENDS_PICKER_TITLE" = "Invite Friends"; +"INVITE_FRIENDS_PICKER_TITLE" = "Convidar amizades"; /* Slider label embeds {{TIME_AMOUNT}}, e.g. '2 hours'. See *_TIME_AMOUNT strings for examples. */ -"KEEP_MESSAGES_DURATION" = "Messages disappear after %@."; +"KEEP_MESSAGES_DURATION" = "As mensaxes caducan despois de %@"; /* Slider label when disappearing messages is off */ -"KEEP_MESSAGES_FOREVER" = "Messages do not disappear."; +"KEEP_MESSAGES_FOREVER" = "As mensaxes non caducan."; /* Confirmation button within contextual alert */ "LEAVE_BUTTON_TITLE" = "Abandonar"; /* table cell label in conversation settings */ -"LEAVE_GROUP_ACTION" = "Leave Group"; +"LEAVE_GROUP_ACTION" = "Abandonar o grupo"; /* report an invalid linking code */ -"LINK_DEVICE_INVALID_CODE_BODY" = "This QR code is not valid, make sure you are scanning the QR code displayed on the device you want to link."; +"LINK_DEVICE_INVALID_CODE_BODY" = "Este código QR non é válido, asegúrate de escanear o código QR que se amosa no dispositivo que queres vincular."; /* report an invalid linking code */ -"LINK_DEVICE_INVALID_CODE_TITLE" = "Linking Device Failed"; +"LINK_DEVICE_INVALID_CODE_TITLE" = "Erro ao vincular o dispositivo"; /* confirm the users intent to link a new device */ -"LINK_DEVICE_PERMISSION_ALERT_BODY" = "This device will be able to see your groups and contacts, read all your messages, and send messages in your name."; +"LINK_DEVICE_PERMISSION_ALERT_BODY" = "Este dispositvo poderá ver os teus grupos e contactos, ler as túas mensaxes, e enviar mensaxes baixo o teu nome."; /* confirm the users intent to link a new device */ -"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "Link this device?"; +"LINK_DEVICE_PERMISSION_ALERT_TITLE" = "Vincular este dispositivo?"; /* attempt another linking */ -"LINK_DEVICE_RESTART" = "Retry"; +"LINK_DEVICE_RESTART" = "Tentar de novo"; /* QR Scanning screen instructions, placed alongside a camera view for scanning QRCodes */ -"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Scan the QR code displayed on the device to link."; +"LINK_DEVICE_SCANNING_INSTRUCTIONS" = "Para vincular, escanea o código QR que se amosa no dispositivo."; /* Subheading for 'Link New Device' navigation */ -"LINK_NEW_DEVICE_SUBTITLE" = "Scan QR Code"; +"LINK_NEW_DEVICE_SUBTITLE" = "Escanea o código QR"; /* Navigation title when scanning QR code to add new device. */ -"LINK_NEW_DEVICE_TITLE" = "Link New Device"; +"LINK_NEW_DEVICE_TITLE" = "Vincula un novo dispositivo"; /* Menu item and navbar title for the device manager */ -"LINKED_DEVICES_TITLE" = "Linked Devices"; +"LINKED_DEVICES_TITLE" = "Dispositivos vinculados"; /* Alert Title */ -"LINKING_DEVICE_FAILED_TITLE" = "Linking Device Failed"; +"LINKING_DEVICE_FAILED_TITLE" = "Erro ao vincular o dispositivo"; /* table cell label in conversation settings */ -"LIST_GROUP_MEMBERS_ACTION" = "List Group Members"; +"LIST_GROUP_MEMBERS_ACTION" = "Membros do grupo"; /* No comment provided by engineer. */ "LOADING_CONTACTS_LABEL_LINE1" = "Cargando os teus contactos."; @@ -611,78 +611,78 @@ "ME_STRING" = "Eu"; /* media picker option to take photo or video */ -"MEDIA_FROM_CAMERA_BUTTON" = "Camera"; +"MEDIA_FROM_CAMERA_BUTTON" = "Cámara"; /* action sheet button title when choosing attachment type */ -"MEDIA_FROM_DOCUMENT_PICKER_BUTTON" = "Document"; +"MEDIA_FROM_DOCUMENT_PICKER_BUTTON" = "Documento"; /* media picker option to choose from library */ -"MEDIA_FROM_LIBRARY_BUTTON" = "Photo Library"; +"MEDIA_FROM_LIBRARY_BUTTON" = "Galería de imaxes"; /* No comment provided by engineer. */ "MESSAGE_COMPOSEVIEW_TITLE" = "Nova mensaxe"; /* message footer for delivered messages */ -"MESSAGE_STATUS_DELIVERED" = "Delivered"; +"MESSAGE_STATUS_DELIVERED" = "Entregado"; /* message footer for failed messages */ -"MESSAGE_STATUS_FAILED" = "Sending failed. Tap to retry."; +"MESSAGE_STATUS_FAILED" = "Erro ao enviar. Toca para tentar de novo."; /* message footer for sent messages */ -"MESSAGE_STATUS_SENT" = "Sent"; +"MESSAGE_STATUS_SENT" = "Enviado"; /* message footer while attachment is uploading */ -"MESSAGE_STATUS_UPLOADING" = "Uploading..."; +"MESSAGE_STATUS_UPLOADING" = "Cargando..."; /* Indicates that this 1:1 conversation has been blocked. */ -"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked this User"; +"MESSAGES_VIEW_CONTACT_BLOCKED" = "Bloqueaches a este usuario"; /* Action sheet title after tapping on failed download. */ -"MESSAGES_VIEW_FAILED_DOWNLOAD_ACTIONSHEET_TITLE" = "Download Failed."; +"MESSAGES_VIEW_FAILED_DOWNLOAD_ACTIONSHEET_TITLE" = "Erro ao descargar."; /* Action sheet button text */ -"MESSAGES_VIEW_FAILED_DOWNLOAD_RETRY_ACTION" = "Download Again"; +"MESSAGES_VIEW_FAILED_DOWNLOAD_RETRY_ACTION" = "Descargar de novo"; /* 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" = "Bloqueaches a 1 membro deste grupo"; /* 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 %d Members of this Group"; +"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Bloqueaches %d membros deste grupo"; /* The subtitle for the messages view title indicates that the title can be tapped to access settings for this conversation. */ -"MESSAGES_VIEW_TITLE_SUBTITLE" = "Tap here for settings"; +"MESSAGES_VIEW_TITLE_SUBTITLE" = "Toca para acceder aos axustes"; /* {{number of minutes}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 minutes}}'. See other *_TIME_AMOUNT strings */ -"MINUTES_TIME_AMOUNT" = "%u minutes"; +"MINUTES_TIME_AMOUNT" = "%u minutos"; /* notification title */ "MISSED_CALL" = "Chamada perdida"; /* Alert body Alert body when camera is not authorized */ -"MISSING_CAMERA_PERMISSION_MESSAGE" = "Signal needs access to your camera for video calls. You can grant this permission in the Settings app >> Privacy >> Camera >> Signal"; +"MISSING_CAMERA_PERMISSION_MESSAGE" = "Signal precisa acceso á túa cámara para facer videochamadas. Podes dar permiso a través da aplicacion Axustes >> Privacidade >> Cámara >> Signal"; /* Alert title Alert title when camera is not authorized */ -"MISSING_CAMERA_PERMISSION_TITLE" = "Signal needs to access your camera."; +"MISSING_CAMERA_PERMISSION_TITLE" = "Signal precisa acceder á túa cámara."; /* notification title. Embeds {{Caller's Name}} */ -"MSGVIEW_MISSED_CALL_WITH_NAME" = "Missed call from %@."; +"MSGVIEW_MISSED_CALL_WITH_NAME" = "Chamada perdida de %@."; /* notification title. */ -"MSGVIEW_MISSED_CALL_WITHOUT_NAME" = "Missed call from Signal User."; +"MSGVIEW_MISSED_CALL_WITHOUT_NAME" = "Chamada perdida dun usuario de Signal."; /* No comment provided by engineer. */ "MSGVIEW_RECEIVED_CALL" = "Recibiches unha chamada de %@."; /* No comment provided by engineer. */ -"MSGVIEW_THEY_TRIED_TO_CALL_YOU" = "%@ tried to call you."; +"MSGVIEW_THEY_TRIED_TO_CALL_YOU" = "%@ tentou chamarte."; /* No comment provided by engineer. */ "MSGVIEW_YOU_CALLED" = "Chamaches a %@."; /* No comment provided by engineer. */ -"MSGVIEW_YOU_TRIED_TO_CALL" = "You tried to call %@."; +"MSGVIEW_YOU_TRIED_TO_CALL" = "Tentaches chamar a %@."; /* No comment provided by engineer. */ "MULTIDEVICE_PAIRING_MAX_DESC" = "Non podes asociar máis dispositivos."; @@ -691,7 +691,7 @@ "MULTIDEVICE_PAIRING_MAX_RECOVERY" = "Alcanzaches o máximo de dispositivos que actualmente podes asociar á túa conta. Elimina, por favor, algún e téntao de novo máis tarde."; /* An explanation of the consequences of muting a thread. */ -"MUTE_BEHAVIOR_EXPLANATION" = "You will not receive notifications for muted conversations."; +"MUTE_BEHAVIOR_EXPLANATION" = "Non recibirás notificacións de conversas silenciadas."; /* No comment provided by engineer. */ "NETWORK_ERROR_RECOVERY" = "Comproba, por favor, que estás conectado/a e vólveo tentar."; @@ -712,10 +712,10 @@ "NETWORK_STATUS_TEXT" = "Podes comprobar o estado da conexión mirando na barra superior á caixa de entrada."; /* Text for button to start a new conversation with a non-contact */ -"NEW_CONVERSATION_FOR_NON_CONTACT_FORMAT" = "New conversation with %@"; +"NEW_CONVERSATION_FOR_NON_CONTACT_FORMAT" = "Nova conversa con %@"; /* Action Sheet title prompting the user for a group avatar */ -"NEW_GROUP_ADD_PHOTO_ACTION" = "Set Group Photo"; +"NEW_GROUP_ADD_PHOTO_ACTION" = "Seleccionar foto de grupo"; /* No comment provided by engineer. */ "NEW_GROUP_DEFAULT_TITLE" = "Novo grupo"; @@ -727,7 +727,7 @@ "NEW_GROUP_REQUEST_ADDPEOPLE" = "Engadir persoas"; /* Label for a button that lets users search for contacts by phone number */ -"NO_CONTACTS_SEARCH_BY_PHONE_NUMBER" = "Find Contacts by Phone Number"; +"NO_CONTACTS_SEARCH_BY_PHONE_NUMBER" = "Atopar contactos por número de teléfono"; /* No comment provided by engineer. */ "NOTIFICATION_SEND_FAILED" = "Erro ao enviar a túa mensaxe a %@."; @@ -761,52 +761,52 @@ /* Button text which opens the settings app Label for button which opens the settings UI */ -"OPEN_SETTINGS_BUTTON" = "Settings"; +"OPEN_SETTINGS_BUTTON" = "Axustes"; /* Info Message when {{other user}} disables or doesn't support disappearing messages */ -"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ disabled disappearing messages."; +"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ desactivou a caducidade de mensaxes."; /* Info Message when {{other user}} updates message expiration to {{time amount}}, see the *_TIME_AMOUNT strings for context. */ -"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ set disappearing message time to %@."; +"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ estableceu a caducidade das mensaxes en %@."; /* No comment provided by engineer. */ -"OUTGOING_CALL" = "Chamada realizada"; +"OUTGOING_CALL" = "Chamada saínte"; /* No comment provided by engineer. */ -"OUTGOING_INCOMPLETE_CALL" = "Incomplete outgoing call"; +"OUTGOING_INCOMPLETE_CALL" = "Chamada saínte incompleta"; /* A display format for oversize text messages. */ -"OVERSIZE_TEXT_DISPLAY_FORMAT" = "%@… [Tap For More]"; +"OVERSIZE_TEXT_DISPLAY_FORMAT" = "%@... [toca para ver máis]"; /* The title of the 'oversize text message' view. */ -"OVERSIZE_TEXT_MESSAGE_VIEW_TITLE" = "Message"; +"OVERSIZE_TEXT_MESSAGE_VIEW_TITLE" = "Mensaxe"; /* Alert body when verifying with {{contact name}} */ -"PRIVACY_VERIFICATION_FAILED_I_HAVE_WRONG_KEY_FOR_THEM" = "This doesn't look like your safety number with %@. Are you verifying the correct contact?"; +"PRIVACY_VERIFICATION_FAILED_I_HAVE_WRONG_KEY_FOR_THEM" = "Estas non son as chaves de identificación con %@. Estás a verificar o contacto correcto?"; /* Alert body */ -"PRIVACY_VERIFICATION_FAILED_MISMATCHED_SAFETY_NUMBERS_IN_CLIPBOARD" = "The number in your clipboard doesn't look like the correct safety number for this conversation."; +"PRIVACY_VERIFICATION_FAILED_MISMATCHED_SAFETY_NUMBERS_IN_CLIPBOARD" = "A chave no teu portapapeis non é a chave de identificación correcta para esta conversa."; /* Alert body for user error */ -"PRIVACY_VERIFICATION_FAILED_NO_SAFETY_NUMBERS_IN_CLIPBOARD" = "Signal couldn't find any safety number in your clipboard. Have you copied it correctly?"; +"PRIVACY_VERIFICATION_FAILED_NO_SAFETY_NUMBERS_IN_CLIPBOARD" = "Signal non pudo atopar ningunha chave de identificación no teu portapapeis. Copíaches a chave correctamente?"; /* Alert body when verifying with {{contact name}} */ -"PRIVACY_VERIFICATION_FAILED_THEY_HAVE_WRONG_KEY_FOR_ME" = "Every pair of Signal users shares a distinct safety number. Double-check that %@ is displaying *your* distinct safety number."; +"PRIVACY_VERIFICATION_FAILED_THEY_HAVE_WRONG_KEY_FOR_ME" = "As conversas entre usuarios de Signal comparten unhas chaves de identificación únicas. Comproba de novo que %@ amosa a \"vosa\" chave de identificación."; /* alert body */ -"PRIVACY_VERIFICATION_FAILED_WITH_OLD_LOCAL_VERSION" = "You're running an old version of Signal. You need to update before you can verify."; +"PRIVACY_VERIFICATION_FAILED_WITH_OLD_LOCAL_VERSION" = "Estás a usar unha versión antigua de Signal. Tes que actualizar a túa versión antes de que podas facer a verificación."; /* alert body */ -"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "Your partner is running an old version of Signal. They need to update before you can verify."; +"PRIVACY_VERIFICATION_FAILED_WITH_OLD_REMOTE_VERSION" = "O teu contacto está a usar unha versión antigua de Signal. Necesita actualizar a súa versión antes de que poda verificar."; /* alert body */ -"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "The scanned code doesn't look like a safety number code. Are you both on an up-to-date version of Signal?"; +"PRIVACY_VERIFICATION_FAILURE_INVALID_QRCODE" = "O código escaneado non é unha chave de identificación. Estades ti e máis o teu contacto a usar a última versión dispoñible de Signal?"; /* Paragraph(s) shown alongside the safety number when verifying privacy with {{contact name}} */ -"PRIVACY_VERIFICATION_INSTRUCTIONS" = "If you wish to verify the security of your end-to-end encryption with %@, compare the numbers above with the numbers on their device.\n\nAlternatively, you can scan the code on their phone, or ask them to scan your code."; +"PRIVACY_VERIFICATION_INSTRUCTIONS" = "Se desexas verificar a seguridade do cifrado punto a punto con %@, compara ós números de arriba cos números amosados no dispositivo do teu contacto.\n\nTamén podes escanear o código no dispositivo do teu contacto ou permitir que o teu contacto escanee o teu código."; /* Navbar title */ -"PRIVACY_VERIFICATION_TITLE" = "Verify Safety Number"; +"PRIVACY_VERIFICATION_TITLE" = "Verificar a chave de identificación"; /* No comment provided by engineer. */ "PROCEED_BUTTON" = "Continuar"; @@ -818,10 +818,10 @@ "PUSH_MANAGER_REPLY" = "Responder"; /* Alert title */ -"PUSH_REGISTER_SUCCESS" = "Successfully re-registered for push notifications."; +"PUSH_REGISTER_SUCCESS" = "Rexistrado de novo para recibir notificacións automáticas"; /* Used in table section header and alert view title contexts */ -"PUSH_REGISTER_TITLE" = "Notificacións de inserción (push)"; +"PUSH_REGISTER_TITLE" = "Notificacións automáticas"; /* No comment provided by engineer. */ "PUSH_SETTINGS_MESSAGE" = "Para funcionar correctamente Signal precisa activar as alertas e sons. Por favor, cambia isto en Axustes >> Centro de notificacións >> Signal."; @@ -854,16 +854,16 @@ "REGISTER_CONTACTS_WELCOME" = "Benvido/a!"; /* No comment provided by engineer. */ -"REGISTER_FAILED_TRY_AGAIN" = "Try Again"; +"REGISTER_FAILED_TRY_AGAIN" = "Téntao de novo"; /* No comment provided by engineer. */ -"REGISTER_RATE_LIMITING_BODY" = "You have tried too often. Please wait a minute before trying again."; +"REGISTER_RATE_LIMITING_BODY" = "Tentáchelo moitas veces. Por favor agarda un momentiño antes de tentalo de novo."; /* No comment provided by engineer. */ -"REGISTERED_NUMBER_TEXT" = "Registered Number"; +"REGISTERED_NUMBER_TEXT" = "Número rexistrado"; /* Alert title */ -"REGISTRATION_BODY" = "Failed to re-register for push notifications."; +"REGISTRATION_BODY" = "Erro ao rexistrarse de novo para recibir notificatións automáticas."; /* Label for the country code field */ "REGISTRATION_DEFAULT_COUNTRY_NAME" = "Código do país"; @@ -875,7 +875,7 @@ "REGISTRATION_ERROR" = "Erro no rexistro"; /* alert body during registration */ -"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "We can't activate your account until you verify the code we sent you."; +"REGISTRATION_ERROR_BLANK_VERIFICATION_CODE" = "Non podemos activar a túa conta ata que verifiques a chave que te enviamos."; /* No comment provided by engineer. */ "REGISTRATION_NON_VALID_NUMBER" = "Este formato de número telefónico non está admitido; contacta co soporte."; @@ -890,13 +890,13 @@ "REGISTRATION_TITLE_LABEL" = "O teu número de teléfono"; /* Alert view title */ -"REGISTRATION_VERIFICATION_FAILED_TITLE" = "Verification Failed"; +"REGISTRATION_VERIFICATION_FAILED_TITLE" = "Erro ao verificar."; /* Alert body, during registration */ -"REGISTRATION_VERIFICATION_FAILED_WRONG_CODE_DESCRIPTION" = "The numbers you submitted don't match what we sent. Want to double check?"; +"REGISTRATION_VERIFICATION_FAILED_WRONG_CODE_DESCRIPTION" = "O código que enviaches non coincide co código que enviamos previamente. Poderías asegurarte?"; /* No comment provided by engineer. */ -"REGISTRATION_VERIFY_DEVICE" = "Activate This Device"; +"REGISTRATION_VERIFY_DEVICE" = "Activa este dispositivo"; /* No comment provided by engineer. */ "REJECT_CALL_BUTTON_TITLE" = "Rexeitar"; @@ -905,52 +905,52 @@ "RELAY_REGISTERED_ERROR_RECOVERY" = "O número de teléfono que estás tentando rexistrar xa está rexistrado noutro servidor. Dáo de baixa e despois volve tentalo."; /* No comment provided by engineer. */ -"REREGISTER_FOR_PUSH" = "Volver rexistrar para notificacións push"; +"REREGISTER_FOR_PUSH" = "Volver rexistrar para notificacións automáticas"; /* Generic text for button that retries whatever the last action was. */ -"RETRY_BUTTON_TEXT" = "Retry"; +"RETRY_BUTTON_TEXT" = "Tentar de novo"; /* Snippet to share {{safety number}} with a friend. sent e.g. via SMS */ -"SAFETY_NUMBER_SHARE_FORMAT" = "Our Signal Safety Number:\n%@"; +"SAFETY_NUMBER_SHARE_FORMAT" = "A nosa chave de identificación de Signal:\n%@"; /* Action sheet heading */ -"SAFETY_NUMBERS_ACTIONSHEET_TITLE" = "Your safety number with %@ has changed. You may wish to verify it."; +"SAFETY_NUMBERS_ACTIONSHEET_TITLE" = "A túa chave de identificación con %@ cambiou. Deberías verificala."; /* Button label presented with camera icon while verifying privacy credentials. Shows the camera interface. */ -"SCAN_CODE_ACTION" = "Scan Code"; +"SCAN_CODE_ACTION" = "Escanear o código"; /* label presented once scanning (camera) view is visible. */ -"SCAN_CODE_INSTRUCTIONS" = "Scan the QR Code on your contact's device."; +"SCAN_CODE_INSTRUCTIONS" = "Escanear o código QR no dispositivo do teu contacto."; /* No comment provided by engineer. */ "SEARCH_BYNAMEORNUMBER_PLACEHOLDER_TEXT" = "Procurar por nome ou número"; /* {{number of seconds}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 seconds}}'. See other *_TIME_AMOUNT strings */ -"SECONDS_TIME_AMOUNT" = "%u seconds"; +"SECONDS_TIME_AMOUNT" = "%u segundos"; /* No comment provided by engineer. */ "SECURE_SESSION_RESET" = "Sesión segura restablecida."; /* No comment provided by engineer. */ -"SEND_AGAIN_BUTTON" = "Send Again"; +"SEND_AGAIN_BUTTON" = "Enviar de novo"; /* No comment provided by engineer. */ "SEND_BUTTON_TITLE" = "Enviar"; /* Header title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Select a Recipient for:"; +"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Seleccionar destinatario para:"; /* Title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Send File"; +"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Enviar ficheiro:"; /* Alert body after invite failed */ -"SEND_INVITE_FAILURE" = "Sending invite failed, please try again later."; +"SEND_INVITE_FAILURE" = "Erro ao eviar o convite, téntao de novo máis tarde."; /* Alert body after invite succeeded */ -"SEND_INVITE_SUCCESS" = "You've invited your friend to use Signal!"; +"SEND_INVITE_SUCCESS" = "Convidaches unha amizade a usar Signal!"; /* Text for button to send a Signal invite via SMS. %@ is placeholder for the receipient's phone number. */ -"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Send Invite via SMS to: %@"; +"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Enviar convite vía SMS a: %@"; /* No comment provided by engineer. */ "SEND_SMS_CONFIRM_TITLE" = "Convidar unha amizade vía SMS non segura?"; @@ -962,13 +962,13 @@ "SETTINGS_ABOUT" = "Acerca de"; /* Title for the 'block contact' section of the 'add to block list' view. */ -"SETTINGS_ADD_TO_BLOCK_LIST_BLOCK_CONTACT_TITLE" = "Block Contact"; +"SETTINGS_ADD_TO_BLOCK_LIST_BLOCK_CONTACT_TITLE" = "Bloquear contacto"; /* 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" = "Bloquear número de teléfono"; /* Title for the 'add to block list' view. */ -"SETTINGS_ADD_TO_BLOCK_LIST_TITLE" = "Block"; +"SETTINGS_ADD_TO_BLOCK_LIST_TITLE" = "Bloquear"; /* No comment provided by engineer. */ "SETTINGS_ADVANCED_DEBUGLOG" = "Activar rexistro de depuración"; @@ -980,28 +980,28 @@ "SETTINGS_ADVANCED_TITLE" = "Avanzado"; /* A label for the 'add phone number' button in the block list table. */ -"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add…"; +"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Engadir..."; /* 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" = "Non tes contactos en Signal."; /* Label for the block list section of the settings view */ -"SETTINGS_BLOCK_LIST_TITLE" = "Blocked"; +"SETTINGS_BLOCK_LIST_TITLE" = "Bloqueado"; /* User settings section footer, a detailed explanation */ -"SETTINGS_BLOCK_ON_IDENITY_CHANGE_DETAIL" = "Requires your approval before communicating with someone who has a new safety number, commonly from a reinstall of Signal."; +"SETTINGS_BLOCK_ON_IDENITY_CHANGE_DETAIL" = "Precisa o teu permiso antes de comunicarse con alguén que teña unha nova chave de identificación, normalmente causado por unha nova instalación de Signal."; /* Table cell label */ -"SETTINGS_BLOCK_ON_IDENTITY_CHANGE_TITLE" = "Require Approval on Change"; +"SETTINGS_BLOCK_ON_IDENTITY_CHANGE_TITLE" = "Precisar de permiso ao cambiar"; /* Accessibility hint for the settings button */ -"SETTINGS_BUTTON_ACCESSIBILITY" = "Settings"; +"SETTINGS_BUTTON_ACCESSIBILITY" = "Axustes"; /* Table cell label */ -"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Always Relay Calls"; +"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE" = "Sempre redirixir as chamadas"; /* User settings section footer, a detailed explanation */ -"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Relay all calls through the Signal server to avoid revealing your IP address to your contact. Enabling will reduce call quality."; +"SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL" = "Redirixir todas as chamadas a través do servidor de Signal para evitar amosar a túa dirección IP ao teu contacto. Se activas esta opción a calidade da chamada será reducida."; /* No comment provided by engineer. */ "SETTINGS_CLEAR_HISTORY" = "Borrar rexistros de historial"; @@ -1028,10 +1028,10 @@ "SETTINGS_INFORMATION_HEADER" = "Información"; /* Settings table view cell label */ -"SETTINGS_INVITE_TITLE" = "Invite Your Friends"; +"SETTINGS_INVITE_TITLE" = "Convida ás túas amizades"; /* content of tweet when inviting via twitter */ -"SETTINGS_INVITE_TWITTER_TEXT" = "You can reach me using Signal by @WhisperSystems, get it now."; +"SETTINGS_INVITE_TWITTER_TEXT" = "Podes contactarme usando Signal de @WhisperSystems, instálao agora."; /* Title for settings activity */ "SETTINGS_NAV_BAR_TITLE" = "Axustes"; @@ -1040,28 +1040,28 @@ "SETTINGS_NOTIFICATIONS" = "Notificacións"; /* Label for 'CallKit privacy' preference */ -"SETTINGS_PRIVACY_CALLKIT_PRIVACY_TITLE" = "Show Caller's Name & Number"; +"SETTINGS_PRIVACY_CALLKIT_PRIVACY_TITLE" = "Amosar nome e número"; /* Short table cell label */ -"SETTINGS_PRIVACY_CALLKIT_TITLE" = "iOS Call Integration"; +"SETTINGS_PRIVACY_CALLKIT_TITLE" = "Integración de chamadas con iOS"; /* No comment provided by engineer. */ "SETTINGS_PRIVACY_TITLE" = "Privacidade"; /* Section header */ -"SETTINGS_PRIVACY_VERIFICATION_TITLE" = "Safety Numbers Approval"; +"SETTINGS_PRIVACY_VERIFICATION_TITLE" = "Permisos para chaves de identificación"; /* No comment provided by engineer. */ "SETTINGS_SCREEN_SECURITY" = "Activar pantalla de seguranza"; /* No comment provided by engineer. */ -"SETTINGS_SCREEN_SECURITY_DETAIL" = "Prevent Signal previews from appearing in the app switcher."; +"SETTINGS_SCREEN_SECURITY_DETAIL" = "Evita que se amosen vistas preliminares no xestor de aplicacións."; /* Settings table section footer. */ -"SETTINGS_SECTION_CALL_KIT_DESCRIPTION" = "iOS Call Integration shows Signal calls on your lock screen and in the system's call history. You may optionally show your contact's name and number. If iCloud is enabled, this call history will be shared with Apple."; +"SETTINGS_SECTION_CALL_KIT_DESCRIPTION" = "A integración de chamdas de iOS amosa chamadas de Signal na túa pantalla de bloqueo e no historial de chamadas do sistema. Como opción, podes tamén amosar o nome e número do contacto. Se tes activado iCloud, o historial destas chamadas é compartido con Apple."; /* settings topic header for table section */ -"SETTINGS_SECTION_TITLE_CALLING" = "Calling"; +"SETTINGS_SECTION_TITLE_CALLING" = "Chamando"; /* Section header */ "SETTINGS_SECURITY_TITLE" = "Pantalla de seguranza"; @@ -1073,37 +1073,37 @@ "SETTINGS_VERSION" = "Versión"; /* action sheet item to open native mail app */ -"SHARE_ACTION_MAIL" = "Mail"; +"SHARE_ACTION_MAIL" = "Correo electrónico"; /* action sheet item to open native messages app */ -"SHARE_ACTION_MESSAGE" = "Message"; +"SHARE_ACTION_MESSAGE" = "Mensaxe"; /* action sheet item */ "SHARE_ACTION_TWEET" = "Twitter"; /* Action sheet item */ -"SHOW_SAFETY_NUMBER_ACTION" = "Show new safety number"; +"SHOW_SAFETY_NUMBER_ACTION" = "Amosar nova chave de identificación"; /* {{1 day}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 day}}'. See other *_TIME_AMOUNT strings */ -"SINGLE_DAY_TIME_AMOUNT" = "%u day"; +"SINGLE_DAY_TIME_AMOUNT" = "%u día"; /* {{1 hour}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 hour}}'. See other *_TIME_AMOUNT strings */ -"SINGLE_HOUR_TIME_AMOUNT" = "%u hour"; +"SINGLE_HOUR_TIME_AMOUNT" = "%u hora"; /* {{1 minute}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 minute}}'. See other *_TIME_AMOUNT strings */ -"SINGLE_MINUTE_TIME_AMOUNT" = "%u minute"; +"SINGLE_MINUTE_TIME_AMOUNT" = "%u minuto"; /* {{1 week}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{1 week}}'. See other *_TIME_AMOUNT strings */ -"SINGLE_WEEK_TIME_AMOUNT" = "%u week"; +"SINGLE_WEEK_TIME_AMOUNT" = "%u semana"; /* body sent to contacts when inviting to Install Signal */ "SMS_INVITE_BODY" = "Convídote a instalares Signal! Velaquí a ligazón:"; /* Alert body after verifying privacy with {{other user's name}} */ -"SUCCESSFUL_VERIFICATION_DESCRIPTION" = "Your safety number with %@ has been verified. You can be confident your communication is private."; +"SUCCESSFUL_VERIFICATION_DESCRIPTION" = "A túa chave de identificación con %@ verificouse. Podes estar seguro de que a comunicación é privada."; /* No comment provided by engineer. */ -"SUCCESSFUL_VERIFICATION_TITLE" = "Safety Number Verified!"; +"SUCCESSFUL_VERIFICATION_TITLE" = "Chave de identificación verificada!"; /* No comment provided by engineer. */ "TXT_CANCEL_TITLE" = "Cancelar"; @@ -1115,28 +1115,28 @@ "UNARCHIVE_ACTION" = "Desarquivar"; /* In Inbox view, last message label for thread with corrupted attachment. */ -"UNKNOWN_ATTACHMENT_LABEL" = "Unknown attachment"; +"UNKNOWN_ATTACHMENT_LABEL" = "Anexo descoñecido"; /* No comment provided by engineer. */ -"UNKNOWN_CONTACT_BLOCK_OFFER" = "User not in your contacts. Would you like to block this user?"; +"UNKNOWN_CONTACT_BLOCK_OFFER" = "Este usuario non está na túa lista de contactos. Desexas bloquear a este usuario?"; /* Displayed if for some reason we can't determine a contacts phone number *or* name */ -"UNKNOWN_CONTACT_NAME" = "Unknown Contact"; +"UNKNOWN_CONTACT_NAME" = "Contacto descoñecido"; /* button title for unlinking a device */ -"UNLINK_ACTION" = "Unlink"; +"UNLINK_ACTION" = "Desvincular"; /* Alert message to confirm unlinking a device */ -"UNLINK_CONFIRMATION_ALERT_BODY" = "By unlinking this device, it will no longer be able to send or receive messages."; +"UNLINK_CONFIRMATION_ALERT_BODY" = "Se desvinculas este dispositivo, non poderás enviar ou recibir mensaxes."; /* Alert title for confirming device deletion */ -"UNLINK_CONFIRMATION_ALERT_TITLE" = "Unlink \"%@\"?"; +"UNLINK_CONFIRMATION_ALERT_TITLE" = "Desvincular \"%@\"?"; /* Alert title when unlinking device fails */ -"UNLINKING_FAILED_ALERT_TITLE" = "Signal was unable to unlink your device."; +"UNLINKING_FAILED_ALERT_TITLE" = "Signal non pudo desvincular o teu dispositivo"; /* Label text in device manager for a device with no name */ -"UNNAMED_DEVICE" = "Unnamed Device"; +"UNNAMED_DEVICE" = "Dispositivo sen nome"; /* No comment provided by engineer. */ "UNREGISTER_SIGNAL_FAIL" = "Erro ao darse de baixa en Signal."; @@ -1151,55 +1151,55 @@ "UPDATE_BUTTON_TITLE" = "Actualizar"; /* Description of CallKit to upgrading (existing) users */ -"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Answering calls from your lock screen is easy with iOS call integration. We anonymize your caller by default, so it's private too."; +"UPGRADE_EXPERIENCE_CALLKIT_DESCRIPTION" = "Responder chamadas dende a pantalla de bloqueo é sinxelo coa integración de chamadas en iOS. As chamadas entrantes son anonimizadas por defecto, así que eso tamén é privado."; /* button label shown once when when user upgrades app, in context of call kit */ -"UPGRADE_EXPERIENCE_CALLKIT_PRIVACY_SETTINGS_BUTTON" = "Learn more in your privacy settings."; +"UPGRADE_EXPERIENCE_CALLKIT_PRIVACY_SETTINGS_BUTTON" = "Aprende máis nos teus axustes de privacidade."; /* Header for upgrade experience */ -"UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "Just Swipe to Answer"; +"UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "Só desliza para responder"; /* Description of video calling to upgrading (existing) users */ -"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Signal now supports secure video calling. Just start a call like normal, tap the camera button, and wave hello."; +"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Signal agora soporta chamadas de video seguras. Comeza a chamar como normalmente farías en Signal, toca o botón da cámara, e saúda."; /* Header for upgrade experience */ -"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Hello Secure Video Calls!"; +"UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Ola videochamadas seguras!"; /* No comment provided by engineer. */ -"Upgrading Signal ..." = "Upgrading Signal ..."; +"Upgrading Signal ..." = "Actualizando Signal..."; /* button text for back button on verification view */ -"VERIFICATION_BACK_BUTTON" = "Back"; +"VERIFICATION_BACK_BUTTON" = "Volver"; /* Text field placeholder for SMS verification code during registration */ "VERIFICATION_CHALLENGE_DEFAULT_TEXT" = "Código de verificación"; /* button text during registration to request phone number verification be done via phone call */ -"VERIFICATION_CHALLENGE_SEND_VIA_VOICE" = "Call Me Instead"; +"VERIFICATION_CHALLENGE_SEND_VIA_VOICE" = "Recibir chamada con código"; /* button text during registration to request another SMS code be sent */ -"VERIFICATION_CHALLENGE_SUBMIT_AGAIN" = "Resend Code by SMS"; +"VERIFICATION_CHALLENGE_SUBMIT_AGAIN" = "Envia un novo código por SMS"; /* button text during registration to submit your SMS verification code */ "VERIFICATION_CHALLENGE_SUBMIT_CODE" = "Enviar código de verificación"; /* Label indicating the phone number currently being verified. */ -"VERIFICATION_PHONE_NUMBER_FORMAT" = "Enter the verification code we sent to %@."; +"VERIFICATION_PHONE_NUMBER_FORMAT" = "Introduce o código de verificación que enviamos a %@"; /* table cell label in conversation settings */ -"VERIFY_PRIVACY" = "Verify Safety Number"; +"VERIFY_PRIVACY" = "Verifica a chave de identificación"; /* Activity indicator title, shown upon returning to the device manager, until you complete the provisioning process on desktop */ -"WAITING_TO_COMPLETE_DEVICE_LINK_TEXT" = "Complete setup on Signal Desktop."; +"WAITING_TO_COMPLETE_DEVICE_LINK_TEXT" = "Completa a instalación en Signal Desktop"; /* {{number of weeks}}, embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 weeks}}'. See other *_TIME_AMOUNT strings */ -"WEEKS_TIME_AMOUNT" = "%u weeks"; +"WEEKS_TIME_AMOUNT" = "%u semanas"; /* No comment provided by engineer. */ "WHISPER_NAV_BAR_TITLE" = "Caixa de entrada"; /* Info Message when you disable disappearing messages */ -"YOU_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "You disabled disappearing messages."; +"YOU_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "Desactivaches a caducidade de mensaxes"; /* Info message embedding a {{time amount}}, see the *_TIME_AMOUNT strings for context. */ -"YOU_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "You set disappearing message time to %@."; +"YOU_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "Seleccionaches a caducidade do mensaxe a %@"; diff --git a/Signal/translations/ja_JP.lproj/Localizable.strings b/Signal/translations/ja_JP.lproj/Localizable.strings index a77857642..dbefa771c 100644 --- a/Signal/translations/ja_JP.lproj/Localizable.strings +++ b/Signal/translations/ja_JP.lproj/Localizable.strings @@ -104,10 +104,10 @@ "ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "文書の選択に失敗しました"; /* Alert body when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try zipping it before sending."; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "そのファイルはそのままでは扱えません。圧縮してください。"; /* Alert title when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Unsupported File"; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "扱えないファイル"; /* An explanation of the consequences of blocking another user. */ "BLOCK_BEHAVIOR_EXPLANATION" = "拒否すると通話もメッセージも受け付けません"; @@ -431,19 +431,19 @@ "EXISTING_USER_REGISTRATION_ALERT_TITLE" = "この%@を有効にすると,この電話番号に関係する他の端末のSignalは無効になります。"; /* Message for the alert indicating the 'export with signal' file had an invalid filename. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Invalid filename."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "ファイル名が不正"; /* Message for the alert indicating the 'export with signal' attachment couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "ファイルを取り込めませんでした"; /* Message for the alert indicating the 'export with signal' data couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "ファイルを取り込めませんでした"; /* Message for the alert indicating the 'export with signal' file had unknown type. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Unknown file type."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "ファイルの種類が不明"; /* Title for the alert indicating the 'export with signal' attachment had an error. */ -"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Error"; +"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "エラー"; /* action sheet header when re-sending message which failed because of too many attempts */ "FAILED_SENDING_BECAUSE_RATE_LIMIT" = "この連絡先との連絡に失敗しました。しばらくしてから再度試してください。"; @@ -938,10 +938,10 @@ "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" = "Send File"; +"SEND_EXTERNAL_FILE_VIEW_TITLE" = "ファイルを送る"; /* Alert body after invite failed */ "SEND_INVITE_FAILURE" = "招待の送信に失敗しました。後でもう一度行ってください。"; diff --git a/Signal/translations/nb_NO.lproj/Localizable.strings b/Signal/translations/nb_NO.lproj/Localizable.strings index 9b087382e..a6bd872e0 100644 --- a/Signal/translations/nb_NO.lproj/Localizable.strings +++ b/Signal/translations/nb_NO.lproj/Localizable.strings @@ -104,10 +104,10 @@ "ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Kunne ikke velge dokument."; /* Alert body when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try zipping it before sending."; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal kan ikke håndtere filen som den den er. Forsøk å zippe den før sending."; /* Alert title when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Unsupported File"; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Usupportert fil"; /* An explanation of the consequences of blocking another user. */ "BLOCK_BEHAVIOR_EXPLANATION" = "Blokkerte brukere vil ikke kunne ringe deg eller sende deg meldinger."; @@ -158,7 +158,7 @@ "BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Kunne ikke fjerne blokkeringen."; /* The title of the 'unblock user failed' alert. */ -"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Feil"; +"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Feilmelding"; /* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */ "BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ er ikke lenger blokkert."; @@ -431,19 +431,19 @@ "EXISTING_USER_REGISTRATION_ALERT_TITLE" = "Aktivering av denne %@ vil deaktivere Signal på andre enheter knyttet til dette telefonnummeret."; /* Message for the alert indicating the 'export with signal' file had an invalid filename. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Invalid filename."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Ugyldig filnavn."; /* Message for the alert indicating the 'export with signal' attachment couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Kunne ikke laste filen."; /* Message for the alert indicating the 'export with signal' data couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Kunne ikke laste filen."; /* Message for the alert indicating the 'export with signal' file had unknown type. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Unknown file type."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Ukjent filtype."; /* Title for the alert indicating the 'export with signal' attachment had an error. */ -"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Error"; +"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Feil"; /* action sheet header when re-sending message which failed because of too many attempts */ "FAILED_SENDING_BECAUSE_RATE_LIMIT" = "For mange feil med denne kontakten. Vennligst prøv igjen om kort tid."; @@ -938,10 +938,10 @@ "SEND_BUTTON_TITLE" = "Send"; /* Header title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Select a Recipient for:"; +"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Velg en mottaker for:"; /* Title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Send File"; +"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Send fil"; /* Alert body after invite failed */ "SEND_INVITE_FAILURE" = "Sending av invitasjon mislyktes, vennligst prøv igjen senere."; diff --git a/Signal/translations/pl.lproj/Localizable.strings b/Signal/translations/pl.lproj/Localizable.strings index 1bbeee7d8..34b102a0a 100644 --- a/Signal/translations/pl.lproj/Localizable.strings +++ b/Signal/translations/pl.lproj/Localizable.strings @@ -107,7 +107,7 @@ "ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try zipping it before sending."; /* Alert title when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Unsupported File"; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Nieobsługiwany plik"; /* An explanation of the consequences of blocking another user. */ "BLOCK_BEHAVIOR_EXPLANATION" = "Zablokowani użytkownicy nie będą mogli do ciebie dzwonić ani wysyłać ci wiadomości."; @@ -431,19 +431,19 @@ "EXISTING_USER_REGISTRATION_ALERT_TITLE" = "Activating this %@ will disable Signal on any other device currently associated with this phone number."; /* Message for the alert indicating the 'export with signal' file had an invalid filename. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Invalid filename."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Niewłaściwa nazwa pliku"; /* Message for the alert indicating the 'export with signal' attachment couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Nie można załadować pliku."; /* Message for the alert indicating the 'export with signal' data couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Nie można załadować pliku."; /* Message for the alert indicating the 'export with signal' file had unknown type. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Unknown file type."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Nieznany typ pliku."; /* Title for the alert indicating the 'export with signal' attachment had an error. */ -"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Error"; +"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Błąd"; /* action sheet header when re-sending message which failed because of too many attempts */ "FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Zbyt dużo nieudanych prób dla tego kontaktu. Proszę spróbować za chwilę."; @@ -938,10 +938,10 @@ "SEND_BUTTON_TITLE" = "Wyślij"; /* Header title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Select a Recipient for:"; +"SEND_EXTERNAL_FILE_HEADER_TITLE" = "Wybierz odbiorcę dla:"; /* Title for the 'send external file' view. */ -"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Send File"; +"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Wyślij plik"; /* Alert body after invite failed */ "SEND_INVITE_FAILURE" = "Wysyłanie zaproszenia nie powiodło się, spróbuj później."; diff --git a/Signal/translations/ru.lproj/Localizable.strings b/Signal/translations/ru.lproj/Localizable.strings index b4f94c481..36b353ea9 100644 --- a/Signal/translations/ru.lproj/Localizable.strings +++ b/Signal/translations/ru.lproj/Localizable.strings @@ -50,49 +50,49 @@ "ATTACHMENT" = "Вложение"; /* Title for the 'attachment approval' dialog. */ -"ATTACHMENT_APPROVAL_DIALOG_TITLE" = "Attachment"; +"ATTACHMENT_APPROVAL_DIALOG_TITLE" = "Вложение"; /* Format string for file extension label in call interstitial view */ -"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "File type: %@"; +"ATTACHMENT_APPROVAL_FILE_EXTENSION_FORMAT" = "Тип файла: %@"; /* Format string for file size label in call interstitial view. Embeds: {{file size as 'N mb' or 'N kb'}}. */ -"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Size: %@"; +"ATTACHMENT_APPROVAL_FILE_SIZE_FORMAT" = "Размер: %@"; /* Label for 'send' button in the 'attachment approval' dialog. */ -"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Send"; +"ATTACHMENT_APPROVAL_SEND_BUTTON" = "Отправить"; /* Generic filename for an attachment with no known name */ -"ATTACHMENT_DEFAULT_FILENAME" = "Attachment"; +"ATTACHMENT_DEFAULT_FILENAME" = "Вложение"; /* Status label when an attachment download has failed. */ -"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Failed. Tap to retry."; +"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Не удалось загрузить вложение. Нажмите, чтобы попробовать ещё раз."; /* Status label when an attachment is currently downloading */ -"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Downloading..."; +"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Скачивание..."; /* Status label when an attachment is enqueued, but hasn't yet started downloading */ -"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "Queued"; +"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "В очереди"; /* The title of the 'attachment error' alert. */ -"ATTACHMENT_ERROR_ALERT_TITLE" = "Error Sending Attachment"; +"ATTACHMENT_ERROR_ALERT_TITLE" = "Ошибка отправки вложения"; /* Attachment error message for image attachments which could not be converted to JPEG */ -"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Image attachment could not be resized."; +"ATTACHMENT_ERROR_COULD_NOT_CONVERT_TO_JPEG" = "Не удалось изменить размер прикреплённого изображения."; /* Attachment error message for image attachments which cannot be parsed */ -"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Image attachment could not be parsed."; +"ATTACHMENT_ERROR_COULD_NOT_PARSE_IMAGE" = "Не удалось обработать вложенное изображение."; /* Attachment error message for attachments whose data exceed file size limits */ -"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Attachment is too large."; +"ATTACHMENT_ERROR_FILE_SIZE_TOO_LARGE" = "Вложение слишком большое."; /* Attachment error message for attachments with invalid data */ -"ATTACHMENT_ERROR_INVALID_DATA" = "Attachment has invalid contents."; +"ATTACHMENT_ERROR_INVALID_DATA" = "Во вложении находится неподдерживаемое содержимое."; /* Attachment error message for attachments with an invalid file format */ -"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Attachment has invalid file format."; +"ATTACHMENT_ERROR_INVALID_FILE_FORMAT" = "Формат файла вложения не поддерживается."; /* Attachment error message for attachments without any data */ -"ATTACHMENT_ERROR_MISSING_DATA" = "Attachment is empty."; +"ATTACHMENT_ERROR_MISSING_DATA" = "Вложение пустое."; /* Accessibility hint describing what you can do with the attachment button */ "ATTACHMENT_HINT" = "Сделать новую фотографию или выбрать одну из существующих и отправить её"; @@ -101,16 +101,16 @@ "ATTACHMENT_LABEL" = "Добавить вложение"; /* Alert title when picking a document fails for an unknown reason */ -"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Failed to choose document."; +"ATTACHMENT_PICKER_DOCUMENTS_FAILED_ALERT_TITLE" = "Не удалось выбрать документ."; /* Alert body when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal can't handle that file as is. Try zipping it before sending."; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_BODY" = "Signal не поддерживает такие файлы. Поместите этот файл в архив *.zip и повторите отправку."; /* Alert title when picking a document fails because user picked a directory/bundle */ -"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Unsupported File"; +"ATTACHMENT_PICKER_DOCUMENTS_PICKED_DIRECTORY_FAILED_ALERT_TITLE" = "Неподдерживаемый файл"; /* An explanation of the consequences of blocking another user. */ -"BLOCK_BEHAVIOR_EXPLANATION" = "Blocked users will not be able to call you or send you messages."; +"BLOCK_BEHAVIOR_EXPLANATION" = "Заблокированные пользователь не смогут звонить или отправлять сообщения Вам."; /* Button label for the 'block' button */ "BLOCK_LIST_BLOCK_BUTTON" = "Заблокировать"; @@ -128,55 +128,55 @@ "BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_MESSAGE_FORMAT" = "Контакт \"%@\" уже заблокирован."; /* A title of the alert if user tries to block a user who is already blocked. */ -"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_TITLE" = "Already Blocked"; +"BLOCK_LIST_VIEW_ALREADY_BLOCKED_ALERT_TITLE" = "Уже заблокирован"; /* A label for the block button in the block list view */ -"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Block"; +"BLOCK_LIST_VIEW_BLOCK_BUTTON" = "Заблокировать"; /* The title of the 'block user failed' alert. */ -"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Failed to Block User."; +"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_MESSAGE" = "Не удалось заблокировать пользователя"; /* The title of the 'block user failed' alert. */ -"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Error"; +"BLOCK_LIST_VIEW_BLOCK_FAILED_ALERT_TITLE" = "Ошибка"; /* The message format of the 'user blocked' alert. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been blocked"; +"BLOCK_LIST_VIEW_BLOCKED_ALERT_MESSAGE_FORMAT" = "%@ был заблокирован"; /* The title of the 'user blocked' alert. */ -"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "User Blocked"; +"BLOCK_LIST_VIEW_BLOCKED_ALERT_TITLE" = "Пользователь заблокирован"; /* The message of the 'You can't block yourself' alert. */ -"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "You can't block yourself."; +"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_MESSAGE" = "Вы не можете заблокировать самого себя."; /* The title of the 'You can't block yourself' alert. */ -"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Error"; +"BLOCK_LIST_VIEW_CANT_BLOCK_SELF_ALERT_TITLE" = "Ошибка"; /* A title for the contacts section of the block list view. */ -"BLOCK_LIST_VIEW_CONTACTS_SECTION_TITLE" = "Contacts"; +"BLOCK_LIST_VIEW_CONTACTS_SECTION_TITLE" = "Контакты"; /* The title of the 'unblock user failed' alert. */ -"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Failed to Unblock User."; +"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_MESSAGE" = "Не удалось разблокировать пользователя."; /* The title of the 'unblock user failed' alert. */ -"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Error"; +"BLOCK_LIST_VIEW_UNBLOCK_FAILED_ALERT_TITLE" = "Ошибка"; /* The message format of the 'user unblocked' alert. Embeds {{the blocked user's name or phone number}}. */ -"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ has been unblocked."; +"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_MESSAGE_FORMAT" = "%@ был разблокирован."; /* The title of the 'user unblocked' alert. */ -"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "User Unblocked"; +"BLOCK_LIST_VIEW_UNBLOCKED_ALERT_TITLE" = "Пользователь разблокирован"; /* Action sheet that will block an unknown user. */ -"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Block"; +"BLOCK_OFFER_ACTIONSHEET_BLOCK_ACTION" = "Блокировка"; /* Title format for action sheet that offers to block an unknown user.Embeds {{the unknown user's name or phone number}}. */ -"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Block %@?"; +"BLOCK_OFFER_ACTIONSHEET_TITLE_FORMAT" = "Заблокировать %@?"; /* Alert message when calling and permissions for microphone are missing */ -"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal requires access to your microphone to make calls. You can grant this permission in the Settings app."; +"CALL_AUDIO_PERMISSION_MESSAGE" = "Signal необходимы доступы к Вашему микрофону для совершения звонков. Вы можете включить данное разрешение в настройках устройства."; /* Alert title when calling and permissions for microphone are missing */ -"CALL_AUDIO_PERMISSION_TITLE" = "Microphone Access Required"; +"CALL_AUDIO_PERMISSION_TITLE" = "Требуется доступ к микрофону"; /* Accessibilty label for placing call button */ "CALL_LABEL" = "Позвонить"; @@ -227,10 +227,10 @@ "CONFIRMATION_TITLE" = "Подтвердите"; /* An indicator that a contact has been blocked. */ -"CONTACT_CELL_IS_BLOCKED" = "Blocked"; +"CONTACT_CELL_IS_BLOCKED" = "Заблокирован"; /* An indicator that a contact is a member of the current group. */ -"CONTACT_CELL_IS_IN_GROUP" = "Group Member"; +"CONTACT_CELL_IS_IN_GROUP" = "Участник группы"; /* No comment provided by engineer. */ "CONTACT_DETAIL_COMM_TYPE_INSECURE" = "Незарегистрированный номер"; @@ -245,37 +245,37 @@ "CONVERSATION_SETTINGS" = "Настройки разговоров"; /* table cell label in conversation settings */ -"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Block this user"; +"CONVERSATION_SETTINGS_BLOCK_THIS_USER" = "Заблокировать этого пользователя"; /* Title of the 'mute this thread' action sheet. */ -"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Mute"; +"CONVERSATION_SETTINGS_MUTE_ACTION_SHEET_TITLE" = "Беззвучный режим"; /* label for 'mute thread' cell in conversation settings */ -"CONVERSATION_SETTINGS_MUTE_LABEL" = "Mute"; +"CONVERSATION_SETTINGS_MUTE_LABEL" = "Беззвучный режим"; /* Indicates that the current thread is not muted. */ -"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "Not muted"; +"CONVERSATION_SETTINGS_MUTE_NOT_MUTED" = "Звук уведомлений включен"; /* Label for button to mute a thread for a day. */ -"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "Mute for one day"; +"CONVERSATION_SETTINGS_MUTE_ONE_DAY_ACTION" = "Беззвучный режим на 1 день"; /* Label for button to mute a thread for a hour. */ -"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "Mute for one hour"; +"CONVERSATION_SETTINGS_MUTE_ONE_HOUR_ACTION" = "Беззвучный режим на 1 час"; /* Label for button to mute a thread for a minute. */ -"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "Mute for one minute"; +"CONVERSATION_SETTINGS_MUTE_ONE_MINUTE_ACTION" = "Беззвучный режим на 1 минуту"; /* Label for button to mute a thread for a week. */ -"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "Mute for one week"; +"CONVERSATION_SETTINGS_MUTE_ONE_WEEK_ACTION" = "Беззвучный режим на 1 неделю"; /* Label for button to mute a thread for a year. */ -"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "Mute for one year"; +"CONVERSATION_SETTINGS_MUTE_ONE_YEAR_ACTION" = "Беззвучный режим на год"; /* Indicates that this thread is muted until a given date or time. Embeds {{The date or time which the thread is muted until}}. */ -"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "until %@"; +"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT" = "до %@"; /* Label for button to unmute a thread. */ -"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Unmute"; +"CONVERSATION_SETTINGS_UNMUTE_ACTION" = "Включить звук"; /* ActionSheet title */ "CORRUPTED_SESSION_DESCRIPTION" = "Перезапуск рабочей сессии исправит получение сообщений от пользователя %@ в дальнейшем, но не обеспечит доступ к уже скомпрометированным сообщениям."; @@ -317,10 +317,10 @@ "EDIT_GROUP_ACTION" = "Изменить группу"; /* A format for the message of the alert if user tries to add a user to a group who is already in the group. Embeds {{the blocked user's name or phone number}}. */ -"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_MESSAGE_FORMAT" = "%@ is already a member of this group."; +"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_MESSAGE_FORMAT" = "%@ уже является участником этой группы."; /* A title of the alert if user tries to add a user to a group who is already in the group. */ -"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_TITLE" = "Already a Group Member"; +"EDIT_GROUP_VIEW_ALREADY_IN_GROUP_ALERT_TITLE" = "Пользователь уже в группе"; /* Short name for edit menu item to copy contents of media message. */ "EDIT_ITEM_COPY_ACTION" = "Скопировать"; @@ -380,13 +380,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" = "Устройство больше не связано с вашим номером телефона. Необходимо удалить и переустановить Signal."; @@ -431,19 +431,19 @@ "EXISTING_USER_REGISTRATION_ALERT_TITLE" = "Активация данного %@ отключит Signal на другом устройстве, использующем этот номер телефона."; /* Message for the alert indicating the 'export with signal' file had an invalid filename. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Invalid filename."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_INVALID_FILENAME" = "Некорректное имя файла."; /* Message for the alert indicating the 'export with signal' attachment couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_ATTACHMENT" = "Невозможно загрузить файл."; /* Message for the alert indicating the 'export with signal' data couldn't be loaded. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Couldn't load file."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_MISSING_DATA" = "Невозможно загрузить файл."; /* Message for the alert indicating the 'export with signal' file had unknown type. */ -"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Unknown file type."; +"EXPORT_WITH_SIGNAL_ERROR_MESSAGE_UNKNOWN_TYPE" = "Неизвестный тип файла."; /* Title for the alert indicating the 'export with signal' attachment had an error. */ -"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Error"; +"EXPORT_WITH_SIGNAL_ERROR_TITLE" = "Ошибка"; /* action sheet header when re-sending message which failed because of too many attempts */ "FAILED_SENDING_BECAUSE_RATE_LIMIT" = "Слишком много ошибок отправки. Пожалуйста, попробуйте позже."; @@ -464,7 +464,7 @@ "GENERIC_ATTACHMENT_DEFAULT_TYPE" = "?"; /* A label for generic attachments. */ -"GENERIC_ATTACHMENT_LABEL" = "Attachment"; +"GENERIC_ATTACHMENT_LABEL" = "Вложение"; /* No comment provided by engineer. */ "GROUP_AVATAR_CHANGED" = "Аватар изменён."; @@ -488,16 +488,16 @@ "GROUP_MEMBER_LEFT" = "%@ покинул группу."; /* Button label for the 'call group member' button */ -"GROUP_MEMBERS_CALL" = "Call"; +"GROUP_MEMBERS_CALL" = "Позвонить"; /* header for table which lists the members of this group thread */ "GROUP_MEMBERS_HEADER" = "Участники группы"; /* Button label for the 'send message to group member' button */ -"GROUP_MEMBERS_SEND_MESSAGE" = "Send Message"; +"GROUP_MEMBERS_SEND_MESSAGE" = "Отправить сообщение"; /* Button label for the 'show contact info' button */ -"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Contact Info"; +"GROUP_MEMBERS_VIEW_CONTACT_INFO" = "Информация о контакте"; /* No comment provided by engineer. */ "GROUP_REMOVING" = "Покидаем группу «%@»"; @@ -515,7 +515,7 @@ "GROUP_YOU_LEFT" = "Вы покинули группу."; /* A label for conversations with blocked users. */ -"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Blocked"; +"HOME_VIEW_BLOCKED_CONTACT_CONVERSATION" = "Заблокированные"; /* {{number of hours}} embedded in strings, e.g. 'Alice updated disappearing messages expiration to {{5 hours}}'. See other *_TIME_AMOUNT strings */ "HOURS_TIME_AMOUNT" = "%u час."; @@ -614,7 +614,7 @@ "MEDIA_FROM_CAMERA_BUTTON" = "Камера"; /* action sheet button title when choosing attachment type */ -"MEDIA_FROM_DOCUMENT_PICKER_BUTTON" = "Document"; +"MEDIA_FROM_DOCUMENT_PICKER_BUTTON" = "Документ"; /* media picker option to choose from library */ "MEDIA_FROM_LIBRARY_BUTTON" = "Библиотека фотографий"; @@ -626,7 +626,7 @@ "MESSAGE_STATUS_DELIVERED" = "Доставлено"; /* message footer for failed messages */ -"MESSAGE_STATUS_FAILED" = "Sending failed. Tap to retry."; +"MESSAGE_STATUS_FAILED" = "Отправка не удалась. Нажмите, чтобы попробовать отправить ещё раз."; /* message footer for sent messages */ "MESSAGE_STATUS_SENT" = "Отправлено"; @@ -635,19 +635,19 @@ "MESSAGE_STATUS_UPLOADING" = "Загрузка..."; /* Indicates that this 1:1 conversation has been blocked. */ -"MESSAGES_VIEW_CONTACT_BLOCKED" = "You Blocked this User"; +"MESSAGES_VIEW_CONTACT_BLOCKED" = "Вы заблокировали этого пользователя"; /* Action sheet title after tapping on failed download. */ -"MESSAGES_VIEW_FAILED_DOWNLOAD_ACTIONSHEET_TITLE" = "Download Failed."; +"MESSAGES_VIEW_FAILED_DOWNLOAD_ACTIONSHEET_TITLE" = "Скачивание не удалось."; /* Action sheet button text */ -"MESSAGES_VIEW_FAILED_DOWNLOAD_RETRY_ACTION" = "Download Again"; +"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 %d Members of this Group"; +"MESSAGES_VIEW_GROUP_N_MEMBERS_BLOCKED_FORMAT" = "Вы заблокировали %d участников в этой группе"; /* The subtitle for the messages view title indicates that the title can be tapped to access settings for this conversation. */ "MESSAGES_VIEW_TITLE_SUBTITLE" = "Прикoснитесь чтобы открыть настройки"; @@ -670,7 +670,7 @@ "MSGVIEW_MISSED_CALL_WITH_NAME" = "Пропущенный звонок от %@."; /* notification title. */ -"MSGVIEW_MISSED_CALL_WITHOUT_NAME" = "Missed call from Signal User."; +"MSGVIEW_MISSED_CALL_WITHOUT_NAME" = "Пропущенный звонок от пользователя Signal."; /* No comment provided by engineer. */ "MSGVIEW_RECEIVED_CALL" = "Вы приняли звонок от %@."; @@ -691,7 +691,7 @@ "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" = "Вы не будете получать уведомления для бесед в беззвучном режиме."; /* No comment provided by engineer. */ "NETWORK_ERROR_RECOVERY" = "Пожалуйста, убедитесь, что вы в сети, и попробуйте снова."; @@ -776,10 +776,10 @@ "OUTGOING_INCOMPLETE_CALL" = "Незавершенный исходящий звонок"; /* A display format for oversize text messages. */ -"OVERSIZE_TEXT_DISPLAY_FORMAT" = "%@… [Tap For More]"; +"OVERSIZE_TEXT_DISPLAY_FORMAT" = "%@... [Нажмите для получения подробностей]"; /* The title of the 'oversize text message' view. */ -"OVERSIZE_TEXT_MESSAGE_VIEW_TITLE" = "Message"; +"OVERSIZE_TEXT_MESSAGE_VIEW_TITLE" = "Сообщение"; /* Alert body when verifying with {{contact name}} */ "PRIVACY_VERIFICATION_FAILED_I_HAVE_WRONG_KEY_FOR_THEM" = "Это не код безопасности для %@. Убедитесь, что подтверждаете соединение с верным пользователем."; @@ -854,7 +854,7 @@ "REGISTER_CONTACTS_WELCOME" = "Добро пожаловать!"; /* No comment provided by engineer. */ -"REGISTER_FAILED_TRY_AGAIN" = "Try Again"; +"REGISTER_FAILED_TRY_AGAIN" = "Попробуйте ещё раз"; /* No comment provided by engineer. */ "REGISTER_RATE_LIMITING_BODY" = "Слишком часто. Попробуйте через минуту"; @@ -932,16 +932,16 @@ "SECURE_SESSION_RESET" = "Безопасный сеанс связи был сброшен."; /* No comment provided by engineer. */ -"SEND_AGAIN_BUTTON" = "Send Again"; +"SEND_AGAIN_BUTTON" = "Отправить ещё раз"; /* No comment provided by engineer. */ "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" = "Send File"; +"SEND_EXTERNAL_FILE_VIEW_TITLE" = "Отправить файл"; /* Alert body after invite failed */ "SEND_INVITE_FAILURE" = "Ошибка отправки приглашения, пожалуйста, повторить попытку."; @@ -962,13 +962,13 @@ "SETTINGS_ABOUT" = "О программе"; /* Title for the 'block contact' section of the 'add to block list' view. */ -"SETTINGS_ADD_TO_BLOCK_LIST_BLOCK_CONTACT_TITLE" = "Block Contact"; +"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" = "Block"; +"SETTINGS_ADD_TO_BLOCK_LIST_TITLE" = "Заблокировать"; /* No comment provided by engineer. */ "SETTINGS_ADVANCED_DEBUGLOG" = "Включить журнал отладки"; @@ -980,13 +980,13 @@ "SETTINGS_ADVANCED_TITLE" = "Расширенные"; /* A label for the 'add phone number' button in the block list table. */ -"SETTINGS_BLOCK_LIST_ADD_BUTTON" = "Add…"; +"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" = "К сожалению, у Вас нет ни одного контакта, пользующегося Signal."; /* Label for the block list section of the settings view */ -"SETTINGS_BLOCK_LIST_TITLE" = "Blocked"; +"SETTINGS_BLOCK_LIST_TITLE" = "Заблокированные"; /* User settings section footer, a detailed explanation */ "SETTINGS_BLOCK_ON_IDENITY_CHANGE_DETAIL" = "Требуется подтверждение соединения, так как код безопасности собеседника изменился, скорее всего из-за переустановки Signal."; @@ -1058,7 +1058,7 @@ "SETTINGS_SCREEN_SECURITY_DETAIL" = "Запретить предпросмотр в переключателе приложений iOS"; /* Settings table section footer. */ -"SETTINGS_SECTION_CALL_KIT_DESCRIPTION" = "iOS Call Integration shows Signal calls on your lock screen and in the system's call history. You may optionally show your contact's name and number. If iCloud is enabled, this call history will be shared with Apple."; +"SETTINGS_SECTION_CALL_KIT_DESCRIPTION" = "Встроенная система звонков iOS отображает звонки на заблокированном экране и сохраняет их в истории звонков. Обратите внимание, что если на Вашем устройстве включен iCloud, то в этом случае информация о звонках может быть отправлена в Apple. Отключить интеграцию со звонками iOS Вы можете в настройках приложения."; /* settings topic header for table section */ "SETTINGS_SECTION_TITLE_CALLING" = "Звонки"; @@ -1118,7 +1118,7 @@ "UNKNOWN_ATTACHMENT_LABEL" = "Неизвестное вложение"; /* No comment provided by engineer. */ -"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" = "Неизвестный контакт"; @@ -1160,7 +1160,7 @@ "UPGRADE_EXPERIENCE_CALLKIT_TITLE" = "Просто перетащите на Ответ"; /* Description of video calling to upgrading (existing) users */ -"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Теперь Signal поддерживает приватные видео звонки. Просто начните вызов, прикоснитесь к кнопке камеры и смахните."; +"UPGRADE_EXPERIENCE_VIDEO_DESCRIPTION" = "Теперь Signal поддерживает приватные видеозвонки. Просто начните вызов как обычно и нажмите кнопку с изображением камеры на экране."; /* Header for upgrade experience */ "UPGRADE_EXPERIENCE_VIDEO_TITLE" = "Добро пожаловать в Видео Звонки!"; @@ -1184,7 +1184,7 @@ "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" = "Введите код подтверждения, который мы отправим %@"; /* table cell label in conversation settings */ "VERIFY_PRIVACY" = "Подтвердить код безопасности";