diff --git a/Signal/src/audio/AppAudioManager.m b/Signal/src/audio/AppAudioManager.m index 90f5635e3..d901e7616 100644 --- a/Signal/src/audio/AppAudioManager.m +++ b/Signal/src/audio/AppAudioManager.m @@ -154,12 +154,12 @@ AppAudioManager *sharedAppAudioManager; - (void)requestRequiredPermissionsIfNeededWithCompletion:(PermissionBlock)permissionBlock incoming:(BOOL)isIncoming { [AVAudioSession.sharedInstance requestRecordPermission:^(BOOL granted) { if (!granted) { - UIAlertView *alertView = - [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ACTION_REQUIRED_TITLE", @"") - message:NSLocalizedString(@"AUDIO_PERMISSION_MESSAGE", @"") - delegate:nil - cancelButtonTitle:NSLocalizedString(@"TXT_CANCEL_TITLE", @"") - otherButtonTitles:NSLocalizedString(@"SETTINGS_NAV_BAR_TITLE", nil), nil]; + UIAlertView *alertView = [[UIAlertView alloc] + initWithTitle:NSLocalizedString(@"ACTION_REQUIRED_TITLE", @"") + message:NSLocalizedString(@"AUDIO_PERMISSION_MESSAGE", @"") + delegate:nil + cancelButtonTitle:NSLocalizedString(@"TXT_CANCEL_TITLE", @"") + otherButtonTitles:NSLocalizedString(@"SETTINGS_NAV_BAR_TITLE", @"Title for settings activity"), nil]; [alertView setDelegate:self]; diff --git a/Signal/src/environment/LocalizableText.h b/Signal/src/environment/LocalizableText.h index f8a6f5c8d..59c6ea870 100644 --- a/Signal/src/environment/LocalizableText.h +++ b/Signal/src/environment/LocalizableText.h @@ -2,98 +2,5 @@ #import "CallProgress.h" #import "CallTermination.h" -#define TXT_IN_CALL_CONNECTING NSLocalizedString(@"IN_CALL_CONNECTING", @"") -#define TXT_IN_CALL_RINGING NSLocalizedString(@"IN_CALL_RINGING", @"") -#define TXT_IN_CALL_SECURING NSLocalizedString(@"IN_CALL_SECURING", @"") -#define TXT_IN_CALL_TALKING NSLocalizedString(@"IN_CALL_TALKING", @"") -#define TXT_IN_CALL_TERMINATED NSLocalizedString(@"IN_CALL_TERMINATED", @"") - -#define TXT_END_CALL_LOGIN_FAILED NSLocalizedString(@"END_CALL_LOGIN_FAILED", @"") -#define TXT_END_CALL_STALE_SESSION NSLocalizedString(@"END_CALL_STALE_SESSION", @"") -#define TXT_END_CALL_NO_SUCH_USER NSLocalizedString(@"END_CALL_NO_SUCH_USER", @"") -#define TXT_END_CALL_RESPONDER_IS_BUSY NSLocalizedString(@"END_CALL_RESPONDER_IS_BUSY", @"") -#define TXT_END_CALL_REJECTED_LOCAL NSLocalizedString(@"END_CALL_REJECTED_LOCAL", @"") -#define TXT_END_CALL_REJECTED_REMOTE NSLocalizedString(@"END_CALL_REJECTED_REMOTE", @"") -#define TXT_END_CALL_RECIPIENT_UNAVAILABLE NSLocalizedString(@"END_CALL_RECIPIENT_UNAVAILABLE", @"") -#define TXT_END_CALL_UNCATEGORIZED_FAILURE NSLocalizedString(@"END_CALL_UNCATEGORIZED_FAILURE", @"") -#define TXT_END_CALL_BAD_INTERACTION_WITH_SERVER NSLocalizedString(@"END_CALL_BAD_INTERACTION_WITH_SERVER", @"") -#define TXT_END_CALL_HANDSHAKE_FAILED NSLocalizedString(@"END_CALL_HANDSHAKE_FAILED", @"") -#define TXT_END_CALL_HANGUP_REMOTE NSLocalizedString(@"END_CALL_HANGUP_REMOTE", @"") -#define TXT_END_CALL_HANGUP_LOCAL NSLocalizedString(@"END_CALL_HANGUP_LOCAL", @"") -#define TXT_END_CALL_REPLACED_BY_NEXT NSLocalizedString(@"END_CALL_REPLACED_BY_NEXT", @"") -#define TXT_END_CALL_MESSAGE_FROM_SERVER_PREFIX NSLocalizedString(@"END_CALL_MESSAGE_FROM_SERVER_PREFIX", @"") - -#pragma mark - View Controller Titles -#define SETTINGS_NAV_BAR_TITLE NSLocalizedString(@"SETTINGS_NAV_BAR_TITLE", @"Title for recent calls view controller") - -#define DIALER_CALL_BUTTON_TITLE NSLocalizedString(@"DIALER_CALL_BUTTON_TITLE", @"") - -#pragma mark - General Purpose - -#define TXT_CANCEL_TITLE NSLocalizedString(@"TXT_CANCEL_TITLE", @"") -#define TXT_SEARCH_PLACEHOLDER_TEXT NSLocalizedString(@"TXT_SEARCH_PLACEHOLDER_TEXT", @"") - -#pragma mark - Inbox View - -#define INBOX_VIEW_TUTORIAL_LABEL_TOP NSLocalizedString(@"INBOX_VIEW_TUTORIAL_LABEL_TOP", @"") -#define INBOX_VIEW_TUTORIAL_LABEL_MIDDLE NSLocalizedString(@"INBOX_VIEW_TUTORIAL_LABEL_MIDDLE", @"") - -#define TABLE_SECTION_TITLE_REGISTERED NSLocalizedString(@"TABLE_SECTION_TITLE_REGISTERED", @"") -#define TABLE_SECTION_TITLE_UNREGISTERED NSLocalizedString(@"TABLE_SECTION_TITLE_UNREGISTERED", @"") - -#pragma mark - Home View footer cell - -#define HOME_FOOTER_FIRST_MESSAGE_CALLS_UNSORTED NSLocalizedString(@"HOME_FOOTER_FIRST_MESSAGE_CALLS_UNSORTED", @"") -#define HOME_FOOTER_SECOND_MESSAGE_CALLS_UNSORTED NSLocalizedString(@"HOME_FOOTER_SECOND_MESSAGE_CALLS_UNSORTED", @"") -#define HOME_FOOTER_SECOND_MESSAGE_CALL_UNSORTED NSLocalizedString(@"HOME_FOOTER_SECOND_MESSAGE_CALL_UNSORTED", @"") -#define HOME_FOOTER_FIRST_MESSAGE_CALLS_NIL NSLocalizedString(@"HOME_FOOTER_FIRST_MESSAGE_CALLS_NIL", @"") -#define HOME_FOOTER_SECOND_MESSAGE_CALLS_NIL NSLocalizedString(@"HOME_FOOTER_SECOND_MESSAGE_CALLS_NIL", @"") - -#pragma mark - Settings View - -#define SETTINGS_NUMBER_PREFIX NSLocalizedString(@"SETTINGS_NUMBER_PREFIX", @"") -#define SETTINGS_LOG_CLEAR_TITLE NSLocalizedString(@"SETTINGS_LOG_CLEAR_TITLE", @"") -#define SETTINGS_LOG_CLEAR_MESSAGE NSLocalizedString(@"SETTINGS_LOG_CLEAR_MESSAGE", @"") -#define SETTINGS_LOG_CLEAR_CONFIRM NSLocalizedString(@"OK", @"") - -#define SETTINGS_SENDLOG NSLocalizedString(@"SETTINGS_SENDLOG", @"") - -#define SETTINGS_SENDLOG_WAITING NSLocalizedString(@"SETTINGS_SENDLOGS_WAITING", @"") -#define SETTINGS_SENDLOG_ALERT_TITLE NSLocalizedString(@"SETTINGS_SENDLOG", @"") - -#pragma mark - Registration - -#define REGISTER_CC_ERR_ALERT_VIEW_TITLE NSLocalizedString(@"REGISTER_CC_ERR_ALERT_VIEW_TITLE", @"") -#define REGISTER_CC_ERR_ALERT_VIEW_MESSAGE NSLocalizedString(@"REGISTER_CC_ERR_ALERT_VIEW_MESSAGE", @"") -#define REGISTER_CC_ERR_ALERT_VIEW_DISMISS NSLocalizedString(@"OK", @"") - -#define END_CALL_BUTTON_TITLE NSLocalizedString(@"END_CALL_BUTTON_TITLE", @"") -#define ANSWER_CALL_BUTTON_TITLE NSLocalizedString(@"ANSWER_CALL_BUTTON_TITLE", @"") -#define REJECT_CALL_BUTTON_TITLE NSLocalizedString(@"REJECT_CALL_BUTTON_TITLE", @"") - -#define REGISTER_ERROR_ALERT_VIEW_TITLE NSLocalizedString(@"REGISTRATION_ERROR", @"") -#define REGISTER_ERROR_ALERT_VIEW_BODY NSLocalizedString(@"REGISTRATION_BODY", @"") -#define REGISTER_ERROR_ALERT_VIEW_DISMISS NSLocalizedString(@"OK", @"") - -#define REGISTER_CHALLENGE_ALERT_VIEW_TITLE NSLocalizedString(@"REGISTER_CHALLENGE_ALERT_VIEW_TITLE", @"") -#define REGISTER_CHALLENGE_ALERT_VIEW_BODY NSLocalizedString(@"REGISTER_CHALLENGE_ALERT_VIEW_BODY", @"") - -#pragma mark - Invite Users - -#define INVITE_USERS_ACTION_SHEET_TITLE NSLocalizedString(@"INVITE_USERS_ACTION_SHEET_TITLE", @""); -#define INVITE_USERS_MESSAGE NSLocalizedString(@"INVITE_USERS_MESSAGE", @""); - -#pragma mark - Invite User Modal - -#define INVITE_USER_MODAL_TITLE NSLocalizedString(@"INVITE_USER_MODAL_TITLE", @"") -#define INVITE_USER_MODAL_BUTTON_CANCEL NSLocalizedString(@"INVITE_USER_MODAL_BUTTON_CANCEL", @"") -#define INVITE_USER_MODAL_BUTTON_INVITE NSLocalizedString(@"INVITE_USER_MODAL_BUTTON_INVITE", @"") -#define INVITE_USER_MODAL_TEXT NSLocalizedString(@"INVITE_USER_MODAL_TEXT", @"") - -#pragma mark - Contact Intersection - -#define TIMEOUT NSLocalizedString(@"ERROR_WAS_DETECTED_TITLE", @"") -#define TIMEOUT_CONTACTS_DETAIL NSLocalizedString(@"TIMEOUT_CONTACTS_DETAIL", @"") - NSDictionary *makeCallProgressLocalizedTextDictionary(void); NSDictionary *makeCallTerminationLocalizedTextDictionary(void); diff --git a/Signal/src/environment/LocalizableText.m b/Signal/src/environment/LocalizableText.m index 6b37eddf7..28e542f67 100644 --- a/Signal/src/environment/LocalizableText.m +++ b/Signal/src/environment/LocalizableText.m @@ -11,28 +11,29 @@ CallProgress *cp(enum CallProgressType t) { NSDictionary *makeCallProgressLocalizedTextDictionary(void) { return @{ - cp(CallProgressType_Connecting) : TXT_IN_CALL_CONNECTING, - cp(CallProgressType_Ringing) : TXT_IN_CALL_RINGING, - cp(CallProgressType_Securing) : TXT_IN_CALL_SECURING, - cp(CallProgressType_Talking) : TXT_IN_CALL_TALKING, - cp(CallProgressType_Terminated) : TXT_IN_CALL_TERMINATED + cp(CallProgressType_Connecting) : NSLocalizedString(@"IN_CALL_CONNECTING", @"Call setup status label"), + cp(CallProgressType_Ringing) : NSLocalizedString(@"IN_CALL_RINGING", @"Call setup status label"), + cp(CallProgressType_Securing) : NSLocalizedString(@"IN_CALL_SECURING", @"Call setup status label"), + cp(CallProgressType_Talking) : NSLocalizedString(@"IN_CALL_TALKING", @"Call setup status label"), + cp(CallProgressType_Terminated) : NSLocalizedString(@"IN_CALL_TERMINATED", @"Call setup status label") }; } NSDictionary *makeCallTerminationLocalizedTextDictionary(void) { return @{ - ct(CallTerminationType_NoSuchUser) : TXT_END_CALL_NO_SUCH_USER, - ct(CallTerminationType_LoginFailed) : TXT_END_CALL_LOGIN_FAILED, - ct(CallTerminationType_ResponderIsBusy) : TXT_END_CALL_RESPONDER_IS_BUSY, - ct(CallTerminationType_StaleSession) : TXT_END_CALL_STALE_SESSION, - ct(CallTerminationType_UncategorizedFailure) : TXT_END_CALL_UNCATEGORIZED_FAILURE, - ct(CallTerminationType_ReplacedByNext) : TXT_END_CALL_REPLACED_BY_NEXT, - ct(CallTerminationType_RecipientUnavailable) : TXT_END_CALL_RECIPIENT_UNAVAILABLE, - ct(CallTerminationType_BadInteractionWithServer) : TXT_END_CALL_BAD_INTERACTION_WITH_SERVER, - ct(CallTerminationType_HandshakeFailed) : TXT_END_CALL_HANDSHAKE_FAILED, - ct(CallTerminationType_HangupRemote) : TXT_END_CALL_HANGUP_REMOTE, - ct(CallTerminationType_HangupLocal) : TXT_END_CALL_HANGUP_LOCAL, - ct(CallTerminationType_ServerMessage) : TXT_END_CALL_MESSAGE_FROM_SERVER_PREFIX, - ct(CallTerminationType_RejectedLocal) : TXT_END_CALL_REJECTED_LOCAL, - ct(CallTerminationType_RejectedRemote) : TXT_END_CALL_REJECTED_REMOTE + ct(CallTerminationType_NoSuchUser) : NSLocalizedString(@"END_CALL_NO_SUCH_USER", @""), + ct(CallTerminationType_LoginFailed) : NSLocalizedString(@"END_CALL_LOGIN_FAILED", @""), + ct(CallTerminationType_ResponderIsBusy) : NSLocalizedString(@"END_CALL_RESPONDER_IS_BUSY", @""), + ct(CallTerminationType_StaleSession) : NSLocalizedString(@"END_CALL_STALE_SESSION", @""), + ct(CallTerminationType_UncategorizedFailure) : NSLocalizedString(@"END_CALL_UNCATEGORIZED_FAILURE", @""), + ct(CallTerminationType_ReplacedByNext) : NSLocalizedString(@"END_CALL_REPLACED_BY_NEXT", @""), + ct(CallTerminationType_RecipientUnavailable) : NSLocalizedString(@"END_CALL_RECIPIENT_UNAVAILABLE", @""), + ct(CallTerminationType_BadInteractionWithServer) : + NSLocalizedString(@"END_CALL_BAD_INTERACTION_WITH_SERVER", @""), + ct(CallTerminationType_HandshakeFailed) : NSLocalizedString(@"END_CALL_HANDSHAKE_FAILED", @""), + ct(CallTerminationType_HangupRemote) : NSLocalizedString(@"END_CALL_HANGUP_REMOTE", @""), + ct(CallTerminationType_HangupLocal) : NSLocalizedString(@"END_CALL_HANGUP_LOCAL", @""), + ct(CallTerminationType_ServerMessage) : NSLocalizedString(@"END_CALL_MESSAGE_FROM_SERVER_PREFIX", @""), + ct(CallTerminationType_RejectedLocal) : NSLocalizedString(@"END_CALL_REJECTED_LOCAL", @""), + ct(CallTerminationType_RejectedRemote) : NSLocalizedString(@"END_CALL_REJECTED_REMOTE", @"") }; } diff --git a/Signal/src/view controllers/CodeVerificationViewController.m b/Signal/src/view controllers/CodeVerificationViewController.m index 24e7314ba..5d40bcbbf 100644 --- a/Signal/src/view controllers/CodeVerificationViewController.m +++ b/Signal/src/view controllers/CodeVerificationViewController.m @@ -238,7 +238,7 @@ UIAlertView *registrationErrorAV = [[UIAlertView alloc] initWithTitle:registrationError.localizedDescription message:registrationError.localizedRecoverySuggestion delegate:nil - cancelButtonTitle:REGISTER_ERROR_ALERT_VIEW_DISMISS + cancelButtonTitle:NSLocalizedString(@"OK", @"") otherButtonTitles:nil, nil]; [registrationErrorAV show]; diff --git a/Signal/src/view controllers/InCallViewController.m b/Signal/src/view controllers/InCallViewController.m index b477c9f3b..5d10fc1dc 100644 --- a/Signal/src/view controllers/InCallViewController.m +++ b/Signal/src/view controllers/InCallViewController.m @@ -110,9 +110,9 @@ } - (void)localizeButtons { - [_endButton setTitle:END_CALL_BUTTON_TITLE forState:UIControlStateNormal]; - [_answerButton setTitle:ANSWER_CALL_BUTTON_TITLE forState:UIControlStateNormal]; - [_rejectButton setTitle:REJECT_CALL_BUTTON_TITLE forState:UIControlStateNormal]; + [_endButton setTitle:NSLocalizedString(@"END_CALL_BUTTON_TITLE", @"") forState:UIControlStateNormal]; + [_answerButton setTitle:NSLocalizedString(@"ANSWER_CALL_BUTTON_TITLE", @"") forState:UIControlStateNormal]; + [_rejectButton setTitle:NSLocalizedString(@"REJECT_CALL_BUTTON_TITLE", @"") forState:UIControlStateNormal]; } - (void)setPotentiallyKnownContact:(Contact *)potentiallyKnownContact { diff --git a/Signal/src/view controllers/MessageComposeTableViewController.m b/Signal/src/view controllers/MessageComposeTableViewController.m index eb367b4b7..e2eaa3ac0 100644 --- a/Signal/src/view controllers/MessageComposeTableViewController.m +++ b/Signal/src/view controllers/MessageComposeTableViewController.m @@ -474,14 +474,15 @@ } failure:^(NSError *error) { dispatch_async(dispatch_get_main_queue(), ^{ - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:TIMEOUT - message:TIMEOUT_CONTACTS_DETAIL - delegate:nil - cancelButtonTitle:NSLocalizedString(@"OK", @"") - otherButtonTitles:nil]; + UIAlertView *alert = + [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ERROR_WAS_DETECTED_TITLE", @"") + message:NSLocalizedString(@"TIMEOUT_CONTACTS_DETAIL", @"") + delegate:nil + cancelButtonTitle:NSLocalizedString(@"OK", @"") + otherButtonTitles:nil]; [alert show]; [self updateAfterRefreshTry]; - }); + }); }]; if ([self.contacts count] == 0) { diff --git a/Signal/src/view controllers/RegistrationViewController.m b/Signal/src/view controllers/RegistrationViewController.m index 02b14894f..cbcf1bb5a 100644 --- a/Signal/src/view controllers/RegistrationViewController.m +++ b/Signal/src/view controllers/RegistrationViewController.m @@ -108,11 +108,13 @@ static NSString *const kCodeSentSegue = @"codeSent"; } - (void)presentInvalidCountryCodeError { - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:REGISTER_CC_ERR_ALERT_VIEW_TITLE - message:REGISTER_CC_ERR_ALERT_VIEW_MESSAGE - delegate:nil - cancelButtonTitle:REGISTER_CC_ERR_ALERT_VIEW_DISMISS - otherButtonTitles:nil]; + UIAlertView *alertView = + [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"REGISTER_CC_ERR_ALERT_VIEW_TITLE", @"") + message:NSLocalizedString(@"REGISTER_CC_ERR_ALERT_VIEW_MESSAGE", @"") + delegate:nil + cancelButtonTitle:NSLocalizedString(@"DISMISS_BUTTON_TEXT", + @"Generic short text for button to dismiss a dialog") + otherButtonTitles:nil]; [alertView show]; } diff --git a/Signal/src/view controllers/SettingsTableViewController.m b/Signal/src/view controllers/SettingsTableViewController.m index 6375e39b8..689e18760 100644 --- a/Signal/src/view controllers/SettingsTableViewController.m +++ b/Signal/src/view controllers/SettingsTableViewController.m @@ -73,7 +73,7 @@ typedef enum { [self initializeObserver]; [TSSocketManager sendNotification]; - self.title = NSLocalizedString(@"SETTINGS_NAV_BAR_TITLE", @""); + self.title = NSLocalizedString(@"SETTINGS_NAV_BAR_TITLE", @"Title for settings activity"); self.networkStatusHeader.text = NSLocalizedString(@"NETWORK_STATUS_HEADER", @""); self.privacyLabel.text = NSLocalizedString(@"SETTINGS_PRIVACY_TITLE", @""); self.advancedLabel.text = NSLocalizedString(@"SETTINGS_ADVANCED_TITLE", @""); diff --git a/Signal/translations/ar.lproj/Localizable.strings b/Signal/translations/ar.lproj/Localizable.strings index 5bfecdaf2..245efe5c7 100644 Binary files a/Signal/translations/ar.lproj/Localizable.strings and b/Signal/translations/ar.lproj/Localizable.strings differ diff --git a/Signal/translations/az_AZ.lproj/Localizable.strings b/Signal/translations/az_AZ.lproj/Localizable.strings index bc2b8ae00..7d756164b 100644 Binary files a/Signal/translations/az_AZ.lproj/Localizable.strings and b/Signal/translations/az_AZ.lproj/Localizable.strings differ diff --git a/Signal/translations/bg.lproj/Localizable.strings b/Signal/translations/bg.lproj/Localizable.strings index 25133ed2a..b6ef32307 100644 Binary files a/Signal/translations/bg.lproj/Localizable.strings and b/Signal/translations/bg.lproj/Localizable.strings differ diff --git a/Signal/translations/bin/auto-genstrings b/Signal/translations/bin/auto-genstrings new file mode 100755 index 000000000..2800914fb --- /dev/null +++ b/Signal/translations/bin/auto-genstrings @@ -0,0 +1,33 @@ +#!/bin/bash +TARGETS="Signal/src Pods/SignalServiceKit Pods/JSQMessagesViewController" +TMP="$(mktemp -d)" +STRINGFILE="Signal/translations/en.lproj/Localizable.strings" + +# Make sure we are in the right place +if [ ! -d "Signal/src" ]; then + echo "Please run this tool from the repository's base directory" + exit 1 +fi + +# Search directories for .m & .h files and collect string definitions with genstrings +find $TARGETS -name "*.m" -print0 -name "*.h" -print0 | xargs -0 genstrings -o $TMP + +# We have to convert the old and new .strings files to UTF-8 in order to deal with them +OLDUTF8=$(iconv -f UTF-16 -t UTF-8 $STRINGFILE) +NEWUTF8=$(iconv -f UTF-16 -t UTF-8 $TMP/Localizable.strings) + +# Let's merge the old with the new .strings file: +# 1. Select old string definition lines +# 2. Setup field separators +# 3. Read old string definitions as associative array +# 4. In new file, if possible, insert old definition +# 5. Add separator and semicolon only for string definition lines +# 6. Convert output back to UTF-16 to final location +echo "$OLDUTF8" | grep -Eo '^".*"' | \ + awk 'BEGIN {FS = "[ ]*=[ ]*"; OFS = ""} \ + NR == FNR {a[$1] = $2; next} \ + {$2 = ($1 in a ? a[$1] : $2); \ + if($2 ~ /"[;]*$/){$2 = " = "$2}; \ + if($2 ~ /"$/){$2 = $2";"}; \ + print}' - <(echo "$NEWUTF8") | \ + iconv -f UTF-8 -t UTF-16 > $STRINGFILE diff --git a/Signal/translations/bs.lproj/Localizable.strings b/Signal/translations/bs.lproj/Localizable.strings index 0db3a97f9..3ff5b240f 100644 Binary files a/Signal/translations/bs.lproj/Localizable.strings and b/Signal/translations/bs.lproj/Localizable.strings differ diff --git a/Signal/translations/ca.lproj/Localizable.strings b/Signal/translations/ca.lproj/Localizable.strings index f02886d09..033c2699d 100644 Binary files a/Signal/translations/ca.lproj/Localizable.strings and b/Signal/translations/ca.lproj/Localizable.strings differ diff --git a/Signal/translations/cs.lproj/Localizable.strings b/Signal/translations/cs.lproj/Localizable.strings index ec004de51..13207e53c 100644 Binary files a/Signal/translations/cs.lproj/Localizable.strings and b/Signal/translations/cs.lproj/Localizable.strings differ diff --git a/Signal/translations/da.lproj/Localizable.strings b/Signal/translations/da.lproj/Localizable.strings index 070b7871b..dd82a5d91 100644 Binary files a/Signal/translations/da.lproj/Localizable.strings and b/Signal/translations/da.lproj/Localizable.strings differ diff --git a/Signal/translations/de.lproj/Localizable.strings b/Signal/translations/de.lproj/Localizable.strings index 30f70e9bd..19210befc 100644 Binary files a/Signal/translations/de.lproj/Localizable.strings and b/Signal/translations/de.lproj/Localizable.strings differ diff --git a/Signal/translations/el_GR.lproj/Localizable.strings b/Signal/translations/el_GR.lproj/Localizable.strings index daa7bccae..2dc09459c 100644 Binary files a/Signal/translations/el_GR.lproj/Localizable.strings and b/Signal/translations/el_GR.lproj/Localizable.strings differ diff --git a/Signal/translations/en.lproj/Localizable.strings b/Signal/translations/en.lproj/Localizable.strings index 0a80e8e1c..e02120f31 100644 Binary files a/Signal/translations/en.lproj/Localizable.strings and b/Signal/translations/en.lproj/Localizable.strings differ diff --git a/Signal/translations/es.lproj/Localizable.strings b/Signal/translations/es.lproj/Localizable.strings index 532701fe3..0722d28dd 100644 Binary files a/Signal/translations/es.lproj/Localizable.strings and b/Signal/translations/es.lproj/Localizable.strings differ diff --git a/Signal/translations/fa.lproj/Localizable.strings b/Signal/translations/fa.lproj/Localizable.strings index 058ca2033..fe283a675 100644 Binary files a/Signal/translations/fa.lproj/Localizable.strings and b/Signal/translations/fa.lproj/Localizable.strings differ diff --git a/Signal/translations/fi.lproj/Localizable.strings b/Signal/translations/fi.lproj/Localizable.strings index 55444ecd5..0bd35e616 100644 Binary files a/Signal/translations/fi.lproj/Localizable.strings and b/Signal/translations/fi.lproj/Localizable.strings differ diff --git a/Signal/translations/fil.lproj/Localizable.strings b/Signal/translations/fil.lproj/Localizable.strings index f3d32f55b..6bfc34d47 100644 Binary files a/Signal/translations/fil.lproj/Localizable.strings and b/Signal/translations/fil.lproj/Localizable.strings differ diff --git a/Signal/translations/fr.lproj/Localizable.strings b/Signal/translations/fr.lproj/Localizable.strings index ae438e453..1a4237a6f 100644 Binary files a/Signal/translations/fr.lproj/Localizable.strings and b/Signal/translations/fr.lproj/Localizable.strings differ diff --git a/Signal/translations/gl.lproj/Localizable.strings b/Signal/translations/gl.lproj/Localizable.strings index 77bd10753..d7f38aa8e 100644 Binary files a/Signal/translations/gl.lproj/Localizable.strings and b/Signal/translations/gl.lproj/Localizable.strings differ diff --git a/Signal/translations/he.lproj/Localizable.strings b/Signal/translations/he.lproj/Localizable.strings index 7b5e9b609..9c65cf013 100644 Binary files a/Signal/translations/he.lproj/Localizable.strings and b/Signal/translations/he.lproj/Localizable.strings differ diff --git a/Signal/translations/hr.lproj/Localizable.strings b/Signal/translations/hr.lproj/Localizable.strings index ad6f53a98..3f6d8bbfe 100644 Binary files a/Signal/translations/hr.lproj/Localizable.strings and b/Signal/translations/hr.lproj/Localizable.strings differ diff --git a/Signal/translations/hu.lproj/Localizable.strings b/Signal/translations/hu.lproj/Localizable.strings index 329da5d21..9161024b6 100644 Binary files a/Signal/translations/hu.lproj/Localizable.strings and b/Signal/translations/hu.lproj/Localizable.strings differ diff --git a/Signal/translations/id.lproj/Localizable.strings b/Signal/translations/id.lproj/Localizable.strings index f2bbd7ac1..b90254d93 100644 Binary files a/Signal/translations/id.lproj/Localizable.strings and b/Signal/translations/id.lproj/Localizable.strings differ diff --git a/Signal/translations/it_IT.lproj/Localizable.strings b/Signal/translations/it_IT.lproj/Localizable.strings index 75c37922d..42f204882 100644 Binary files a/Signal/translations/it_IT.lproj/Localizable.strings and b/Signal/translations/it_IT.lproj/Localizable.strings differ diff --git a/Signal/translations/ja_JP.lproj/Localizable.strings b/Signal/translations/ja_JP.lproj/Localizable.strings index eebbf4f5f..de3ec3b67 100644 Binary files a/Signal/translations/ja_JP.lproj/Localizable.strings and b/Signal/translations/ja_JP.lproj/Localizable.strings differ diff --git a/Signal/translations/ko_KR.lproj/Localizable.strings b/Signal/translations/ko_KR.lproj/Localizable.strings index 8ff9cbeb7..c9a99e528 100644 Binary files a/Signal/translations/ko_KR.lproj/Localizable.strings and b/Signal/translations/ko_KR.lproj/Localizable.strings differ diff --git a/Signal/translations/lv.lproj/Localizable.strings b/Signal/translations/lv.lproj/Localizable.strings index c2a536298..93ad5ec86 100644 Binary files a/Signal/translations/lv.lproj/Localizable.strings and b/Signal/translations/lv.lproj/Localizable.strings differ diff --git a/Signal/translations/mk.lproj/Localizable.strings b/Signal/translations/mk.lproj/Localizable.strings index b59c6a180..a2e9e881f 100644 Binary files a/Signal/translations/mk.lproj/Localizable.strings and b/Signal/translations/mk.lproj/Localizable.strings differ diff --git a/Signal/translations/nb_NO.lproj/Localizable.strings b/Signal/translations/nb_NO.lproj/Localizable.strings index 9562873de..bdcf8511e 100644 Binary files a/Signal/translations/nb_NO.lproj/Localizable.strings and b/Signal/translations/nb_NO.lproj/Localizable.strings differ diff --git a/Signal/translations/nl.lproj/Localizable.strings b/Signal/translations/nl.lproj/Localizable.strings index f0ac2daca..ad281eedf 100644 Binary files a/Signal/translations/nl.lproj/Localizable.strings and b/Signal/translations/nl.lproj/Localizable.strings differ diff --git a/Signal/translations/pl.lproj/Localizable.strings b/Signal/translations/pl.lproj/Localizable.strings index e284f5ca1..2944cb419 100644 Binary files a/Signal/translations/pl.lproj/Localizable.strings and b/Signal/translations/pl.lproj/Localizable.strings differ diff --git a/Signal/translations/pt_BR.lproj/Localizable.strings b/Signal/translations/pt_BR.lproj/Localizable.strings index 46346bd45..b3677eee0 100644 Binary files a/Signal/translations/pt_BR.lproj/Localizable.strings and b/Signal/translations/pt_BR.lproj/Localizable.strings differ diff --git a/Signal/translations/pt_PT.lproj/Localizable.strings b/Signal/translations/pt_PT.lproj/Localizable.strings index c1a74d312..150ca118f 100644 Binary files a/Signal/translations/pt_PT.lproj/Localizable.strings and b/Signal/translations/pt_PT.lproj/Localizable.strings differ diff --git a/Signal/translations/ro.lproj/Localizable.strings b/Signal/translations/ro.lproj/Localizable.strings index 2b7f84f6d..d8949ff82 100644 Binary files a/Signal/translations/ro.lproj/Localizable.strings and b/Signal/translations/ro.lproj/Localizable.strings differ diff --git a/Signal/translations/ru.lproj/Localizable.strings b/Signal/translations/ru.lproj/Localizable.strings index 03d50009c..67dc75865 100644 Binary files a/Signal/translations/ru.lproj/Localizable.strings and b/Signal/translations/ru.lproj/Localizable.strings differ diff --git a/Signal/translations/sl.lproj/Localizable.strings b/Signal/translations/sl.lproj/Localizable.strings index 8802c107e..4b752edbd 100644 Binary files a/Signal/translations/sl.lproj/Localizable.strings and b/Signal/translations/sl.lproj/Localizable.strings differ diff --git a/Signal/translations/sn.lproj/Localizable.strings b/Signal/translations/sn.lproj/Localizable.strings index b568eab2b..0b9552c6f 100644 Binary files a/Signal/translations/sn.lproj/Localizable.strings and b/Signal/translations/sn.lproj/Localizable.strings differ diff --git a/Signal/translations/sq.lproj/Localizable.strings b/Signal/translations/sq.lproj/Localizable.strings index 3d16a8791..f7bd29a6a 100644 Binary files a/Signal/translations/sq.lproj/Localizable.strings and b/Signal/translations/sq.lproj/Localizable.strings differ diff --git a/Signal/translations/sv_SE.lproj/Localizable.strings b/Signal/translations/sv_SE.lproj/Localizable.strings index 5dcdce4a3..de166efae 100644 Binary files a/Signal/translations/sv_SE.lproj/Localizable.strings and b/Signal/translations/sv_SE.lproj/Localizable.strings differ diff --git a/Signal/translations/th_TH.lproj/Localizable.strings b/Signal/translations/th_TH.lproj/Localizable.strings index 90a500554..a6c7995a2 100644 Binary files a/Signal/translations/th_TH.lproj/Localizable.strings and b/Signal/translations/th_TH.lproj/Localizable.strings differ diff --git a/Signal/translations/tr_TR.lproj/Localizable.strings b/Signal/translations/tr_TR.lproj/Localizable.strings index f619580b9..b8b39e313 100644 Binary files a/Signal/translations/tr_TR.lproj/Localizable.strings and b/Signal/translations/tr_TR.lproj/Localizable.strings differ diff --git a/Signal/translations/zh_CN.lproj/Localizable.strings b/Signal/translations/zh_CN.lproj/Localizable.strings index a5d6f8251..0f27d7b73 100644 Binary files a/Signal/translations/zh_CN.lproj/Localizable.strings and b/Signal/translations/zh_CN.lproj/Localizable.strings differ