update translation to match android - part 2

This commit is contained in:
Audric Ackermann 2020-08-18 12:31:03 +10:00
parent 5739d78ada
commit 0b6c915f8f
No known key found for this signature in database
GPG key ID: 999F434D76324AD4
15 changed files with 302 additions and 259 deletions

View file

@ -32,7 +32,7 @@
"description": "The label that is used for the View menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination.",
"androidKey": "message_recipients_list_item__view",
"addStart": "&",
"camelCase": true
"wordCapitalize": true
},
"mainMenuWindow": {
"message": "&Window",
@ -64,7 +64,7 @@
"message": "Undo",
"description": "Edit menu command to remove recently-typed text",
"androidKey": "ConversationListFragment_undo",
"camelCase": true
"wordCapitalize": true
},
"editMenuRedo": {
"message": "Redo",
@ -232,7 +232,7 @@
"message": "View",
"description": "Used as a label on a button allowing user to see more information",
"androidKey": "message_recipients_list_item__view",
"camelCase": true
"wordCapitalize": true
},
"youLeftTheGroup": {
"message": "You have left the group.",
@ -907,12 +907,14 @@
"description": "action visible in MessageDetail screen"
},
"from": {
"message": "From",
"description": "Label for the sender of a message"
"message": "From:",
"description": "Label for the sender of a message",
"androidKey": "message_details_header__from"
},
"to": {
"message": "to",
"description": "Label for the receiver of a message"
"message": "To:",
"description": "Label for the receiver of a message",
"androidKey": "message_details_header__to"
},
"sent": {
"message": "Sent",
@ -925,25 +927,30 @@
"androidKey": "message_details_header__received"
},
"sendMessage": {
"message": " Type your message",
"message": "Message",
"description": "Placeholder text in the message entry field"
},
"sendMessageLeftGroup": {
"message": "You left this group"
"message": "You have left the group.",
"androidKey": "MessageRecord_left_group"
},
"sendMessageBlockedUser": {
"message": "You have blocked the user"
"message": "You have blocked this contact"
},
"groupMembers": {
"message": "Group members",
"androidKey": "ConversationActivity_group_members"
},
"resetSession": {
"message": "Reset Session",
"description": "This is a menu item for resetting the session, using the imperative case, as in a command."
"message": "Reset Secure Session",
"description": "This is a menu item for resetting the session, using the imperative case, as in a command.",
"androidKey": "conversation_secure_verified__menu_reset_secure_session",
"wordCapitalize": true
},
"showSafetyNumber": {
"message": "View Safety Number"
"message": "View Safety Number",
"androidKey": "recipient_preferences__view_safety_number",
"wordCapitalize": true
},
"verifyHelp": {
"message": "If you wish to verify the security of your end-to-end encryption with $name$, compare the numbers above with the numbers on their device.",
@ -964,9 +971,9 @@
},
"resend": {
"message": "Resend",
"description": "Shown on the drop-down menu for an indinvidaul message, but only if it is an outgoing message that failed to send",
"description": "Shown on the drop-down menu for an individual message, but only if it is an outgoing message that failed to send",
"androidKey": "message_recipients_list_item__resend",
"camelCase": true
"wordCapitalize": true
},
"deleteMessage": {
"message": "Delete Message",
@ -977,21 +984,21 @@
"message": "Delete Messages",
"description": "Menu item for deleting messages, title case."
},
"deleteMessagesForEveryone": {
"message": "Delete messages for everyone",
"deleteMessageForEveryone": {
"message": "Delete Message For Everyone",
"description": "Menu item for deleting messages, title case."
},
"deleteMessageForEveryone": {
"message": "Delete message for everyone",
"deleteMessagesForEveryone": {
"message": "Delete Messages For Everyone",
"description": "Menu item for deleting messages, title case."
},
"deleteForEveryone": {
"message": "Delete for everyone",
"message": "Delete For Everyone",
"description": "Menu item for deleting messages, title case."
},
"deletePublicConversationConfirmation": {
"message": "Permanently delete the messages locally from this public channel?",
"description": "Confirmation dialog text that asks the user if they really wish to delete the public channel messages locally. Answer buttons use the strings 'ok' and 'cancel'. The deletion is permanent, i.e. it cannot be undone."
"message": "Permanently delete the messages locally from this open group?",
"description": "Confirmation dialog text that asks the user if they really wish to delete the open group messages locally. Answer buttons use the strings 'ok' and 'cancel'. The deletion is permanent, i.e. it cannot be undone."
},
"deleteConversationConfirmation": {
"message": "Permanently delete the messages in this conversation?",
@ -1008,8 +1015,9 @@
"androidKey": "dialog_clear_all_data_explanation"
},
"deleteContactConfirmation": {
"message": "Permanently delete this contact and destroy all sessions?",
"description": "Confirmation dialog text that tells the user what will happen if they delete the contact."
"message": "Are you sure you want to delete this conversation?",
"description": "Confirmation dialog text that tells the user what will happen if they delete the contact.",
"androidKey": "activity_home_delete_conversation_dialog_message"
},
"sessionResetFailed": {
"message": "Secure session reset failed",
@ -1045,7 +1053,8 @@
},
"addACaption": {
"message": "Add a caption...",
"descripton": "Used as the placeholder text in the caption editor text field"
"descripton": "Used as the placeholder text in the caption editor text field",
"androidKey": "MediaSendActivity_add_a_caption"
},
"copy": {
"message": "Copy",
@ -1054,7 +1063,8 @@
},
"save": {
"message": "Save",
"descripton": "Used as a 'commit changes' button in the Caption Editor for outgoing image attachments"
"descripton": "Used as a 'commit changes' button in the Caption Editor for outgoing image attachments",
"androidKey": "media_preview__save_title"
},
"emojiAlt": {
"message": "Emoji image of '$title$'",
@ -1068,7 +1078,8 @@
},
"linkNewDevice": {
"message": "Link New Device",
"description": "The menu option shown in Signal iOS to add a new linked device"
"description": "The menu option shown in Signal iOS to add a new linked device",
"androidKey": "device_list_fragment__link_new_device"
},
"permissions": {
"message": "Permissions",
@ -1080,19 +1091,18 @@
},
"linkPreviewsTitle": {
"message": "Send Link Previews",
"description": "Option to control creation and send of link previews in setting screen"
"description": "Option to control creation and send of link previews in setting screen",
"androidKey": "preferences__send_link_previews",
"wordCapitalize": true
},
"linkPreviewDescription": {
"message": "Link previews supported for Imgur, Instagram, Pinterest, Reddit, and YouTube.",
"description": "Description shown for the Link Preview option "
},
"linkPreviewsConfirmTitle": {
"message": "Warning"
"message": "Previews are supported for Imgur, Instagram, Pinterest, Reddit, and YouTube links",
"description": "Description shown for the Link Preview option ",
"androidKey": "preferences__previews_are_supported_for"
},
"linkPreviewsConfirmMessage": {
"message": "You will not have full metadata protection when sending or receiving link previews."
},
"mediaPermissionsTitle": {
"message": "Microphone and Camera"
},
@ -1112,17 +1122,10 @@
"message": "You must restart Session to apply your new settings",
"description": "Shown when the user changes their spellcheck setting to indicate that they must restart Signal."
},
"clearDataHeader": {
"message": "Clear All Local Data",
"description": "Header in the settings dialog for the section dealing with data deletion"
},
"clearDataExplanation": {
"message": "This will clear all data in the application, removing all messages and saved account information.",
"description": "Text describing what the clear data button will do."
},
"notifications": {
"message": "Notifications",
"description": "Header for notification settings"
"description": "Header for notification settings",
"androidKey": "preferences__notifications"
},
"readReceiptSettingDescription": {
"message": "See and share when messages have been read (enables read receipts in all sessions).",
@ -1130,7 +1133,8 @@
},
"readReceiptSettingTitle": {
"message": "Read Receipts",
"description": "Title of the read receipts setting"
"description": "Title of the read receipts setting",
"androidKey": "preferences__read_receipts"
},
"typingIndicatorsSettingDescription": {
"message": "See and share when messages are being typed (applies to all sessions).",
@ -1138,7 +1142,9 @@
},
"typingIndicatorsSettingTitle": {
"message": "Typing Indicators",
"description": "Title of the typing indicators setting"
"description": "Title of the typing indicators setting",
"androidKey": "preferences__typing_indicators",
"wordCapitalize": true
},
"messageTTL": {
"message": "Message TTL",
@ -1157,8 +1163,9 @@
"description": "Explain the purpose of the notification settings"
},
"disableNotifications": {
"message": "Disable notifications",
"description": "Label for disabling notifications"
"message": "Mute notifications",
"description": "Label for disabling notifications",
"androidKey": "conversation_unmuted__mute_notifications"
},
"nameAndMessage": {
"message": "Name and content",
@ -1174,19 +1181,25 @@
},
"newMessage": {
"message": "New Message",
"description": "Displayed in notifications for only 1 message"
"description": "Displayed in notifications for only 1 message",
"androidKey": "activity_conversation_default_hint"
},
"newMessages": {
"message": "New Messages",
"description": "Displayed in notifications for multiple messages"
},
"notificationMostRecentFrom": {
"message": "Most recent from:",
"description": "Displayed in notifications when setting is 'name only' and more than one message is waiting"
"message": "Most recent from: $name$",
"description": "Displayed in notifications when setting is 'name only' and more than one message is waiting",
"androidKey": "MessageNotifier_most_recent_from_s",
"androidReplace": {
"%1$s": "$name$"
}
},
"notificationFrom": {
"message": "From:",
"description": "Displayed in notifications when setting is 'name only' and one message is waiting"
"description": "Displayed in notifications when setting is 'name only' and one message is waiting",
"androidKey": "message_details_header__from"
},
"notificationMostRecent": {
"message": "Most recent:",
@ -1194,7 +1207,8 @@
},
"sendFailed": {
"message": "Send failed",
"description": "Shown on outgoing message if it fails to send"
"description": "Shown on outgoing message if it fails to send",
"androidKey": "conversation_item_sent__send_failed_indicator_description"
},
"learnMore": {
"message": "Learn more about verifying safety numbers",
@ -1214,15 +1228,13 @@
},
"mediaMessage": {
"message": "Media message",
"description": "Description of a message that has an attachment and no text, displayed in the conversation list as a preview."
},
"sync": {
"message": "Contacts",
"description": "Label for contact and group sync settings"
"description": "Description of a message that has an attachment and no text, displayed in the conversation list as a preview.",
"androidKey": "ThreadRecord_media_message"
},
"timestamp_s": {
"message": "now",
"description": "Brief timestamp for messages sent less than a minute ago. Displayed in the conversation list and message bubble."
"description": "Brief timestamp for messages sent less than a minute ago. Displayed in the conversation list and message bubble.",
"androidKey": "DateUtils_just_now"
},
"timestamp_m": {
"message": "1 minute",
@ -1256,6 +1268,10 @@
"content": "$1",
"example": "10m"
}
},
"androidKey": "MessageRecord_you_set_disappearing_message_time_to_s",
"androidReplace": {
"%1$s": "$time$"
}
},
"timerSetOnSync": {
@ -1280,11 +1296,17 @@
"content": "$2",
"example": "10m"
}
},
"androidKey": "MessageRecord_s_set_disappearing_message_time_to_s",
"androidReplace": {
"%1$s": "$name$",
"%2$s": "$time$"
}
},
"timerOption_0_seconds": {
"message": "Off",
"description": "Label for option to turn off message expiration in the timer menu"
"description": "Label for option to turn off message expiration in the timer menu",
"androidKey": "expiration_off"
},
"timerOption_5_seconds": {
"message": "5 seconds",
@ -1332,7 +1354,8 @@
},
"disappearingMessages": {
"message": "Disappearing messages",
"description": "Conversation menu option to enable disappearing messages"
"description": "Conversation menu option to enable disappearing messages",
"androidKey": "conversation_expiring_off__disappearing_messages"
},
"changeNickname": {
"message": "Change Nickname",
@ -1344,7 +1367,8 @@
},
"timerOption_0_seconds_abbreviated": {
"message": "off",
"description": "Short format indicating current timer setting in the conversation list snippet"
"description": "Short format indicating current timer setting in the conversation list snippet",
"androidKey": "ApplicationPreferencesActivity_off"
},
"timerOption_5_seconds_abbreviated": {
"message": "5s",
@ -1392,7 +1416,8 @@
},
"disappearingMessagesDisabled": {
"message": "Disappearing messages disabled",
"description": "Displayed in the left pane when the timer is turned off"
"description": "Displayed in the left pane when the timer is turned off",
"androidKey": "ThreadRecord_disappearing_messages_disabled"
},
"disabledDisappearingMessages": {
"message": "$name$ disabled disappearing messages",
@ -1402,39 +1427,54 @@
"content": "$1",
"example": "John"
}
},
"androidKey": "MessageRecord_s_disabled_disappearing_messages",
"androidReplace": {
"%1$s": "$name$"
}
},
"youDisabledDisappearingMessages": {
"message": "You disabled disappearing messages",
"description": "Displayed in the conversation list when the timer is turned off"
"description": "Displayed in the conversation list when the timer is turned off",
"androidKey": "MessageRecord_you_disabled_disappearing_messages"
},
"timerSetTo": {
"message": "Timer set to $time$",
"message": "Disappearing message time set to $time$",
"description": "Displayed in the conversation list when the timer is updated by some automatic action, or in the left pane",
"placeholders": {
"time": {
"content": "$1",
"example": "1w"
}
},
"androidKey": "ThreadRecord_disappearing_message_time_updated_to_s",
"androidReplace": {
"%s": "$time$"
}
},
"safetyNumberChanged": {
"message": "Safety Number has changed",
"description": "A notification shown in the conversation when a contact reinstalls"
"message": "Safety number changed",
"description": "A notification shown in the conversation when a contact reinstalls",
"androidKey": "ThreadRecord_safety_number_changed"
},
"safetyNumberChangedGroup": {
"message": "Safety Number with $name$ has changed",
"message": "Your safety number with $name$ has changed.",
"description": "A notification shown in a group conversation when a contact reinstalls, showing the contact name",
"placeholders": {
"name": {
"content": "$1",
"example": "John"
}
},
"androidKey": "ThreadRecord_your_safety_number_with_s_has_changed",
"androidReplace": {
"%s": "$name$"
}
},
"verifyNewNumber": {
"message": "Verify Safety Number",
"description": "Label on button included with safety number change notification in the conversation"
"description": "Label on button included with safety number change notification in the conversation",
"androidKey": "AndroidManifest__verify_safety_number"
},
"yourSafetyNumberWith": {
"message": "Your safety number with $name$:",
@ -1447,14 +1487,16 @@
}
},
"themeToggleTitle": {
"message": "Light Mode"
"message": "Light",
"androidKey": "preferences__light_theme"
},
"themeToggleDescription": {
"message": "Choose the theme best suited to you"
},
"noteToSelf": {
"message": "Note to Self",
"description": "Name for the conversation with your own phone number"
"description": "Name for the conversation with your own phone number",
"androidKey": "note_to_self"
},
"hideMenuBarTitle": {
"message": "Hide Menu Bar",
@ -1470,19 +1512,12 @@
},
"invalidNumberError": {
"message": "Invalid public key",
"description": "When a person inputs a public key that is invalid"
},
"unlinkedWarning": {
"message": "Relink Session Desktop to your mobile device to continue messaging."
},
"unlinked": {
"message": "Unlinked"
"description": "When a person inputs a public key that is invalid",
"androidKey": "fragment_new_conversation_invalid_public_key_message"
},
"successUnlinked": {
"message": "Your device was unlinked successfully"
},
"relink": {
"message": "Relink"
"message": "Your device was unlinked successfully",
"androidKey": "activity_landing_device_unlinked_dialog_title"
},
"autoUpdateSettingTitle": {
"message": "Auto Update"
@ -1503,10 +1538,12 @@
"message": "Restart Session"
},
"autoUpdateLaterButtonLabel": {
"message": "Later"
"message": "Later",
"androidKey": "RatingManager_later"
},
"autoUpdateDownloadButtonLabel": {
"message": "Download"
"message": "Download",
"androidKey": "audio_view__download_accessibility_description"
},
"autoUpdateDownloadedMessage": {
"message": "The new update has been downloaded."
@ -1515,13 +1552,17 @@
"message": "Would you like to download the update?"
},
"leftTheGroup": {
"message": "$name$ left the group",
"message": "$name$ has left the group.",
"description": "Shown in the conversation history when a single person leaves the group",
"placeholders": {
"name": {
"content": "$1",
"example": "Bob"
}
},
"androidKey": "ConversationItem_group_action_left",
"androidReplace": {
"%1$s": "$name$"
}
},
"multipleLeftTheGroup": {
@ -1536,47 +1577,67 @@
},
"updatedTheGroup": {
"message": "Group updated",
"description": "Shown in the conversation history when someone updates the group"
"description": "Shown in the conversation history when someone updates the group",
"androidKey": "ThreadRecord_group_updated"
},
"titleIsNow": {
"comment": "Do not add a period here, used as a fragment and will break unit test",
"message": "Group name has been set to '$name$'",
"message": "Group name is now '$name$'.",
"description": "Shown in the conversation history when someone changes the title of the group",
"placeholders": {
"name": {
"content": "$1",
"example": "Book Club"
}
},
"androidKey": "GroupUtil_group_name_is_now",
"androidReplace": {
"%1$s": "$name$"
}
},
"joinedTheGroup": {
"message": "$name$ joined the group",
"message": "$name$ joined the group.",
"description": "Shown in the conversation history when a single person joins the group",
"placeholders": {
"name": {
"content": "$1",
"example": "Alice"
}
},
"androidKey": "GroupUtil_joined_the_group",
"androidKeyCount": "one",
"androidReplace": {
"%1$s": "$name$"
}
},
"multipleJoinedTheGroup": {
"message": "$names$ joined the group",
"message": "$names$ joined the group.",
"description": "Shown in the conversation history when more than one person joins the group",
"placeholders": {
"names": {
"content": "$1",
"example": "Alice, Bob"
}
},
"androidKey": "GroupUtil_joined_the_group",
"androidKeyCount": "other",
"androidReplace": {
"%1$s": "$name$"
}
},
"kickedFromTheGroup": {
"message": "$name$ was removed from the group",
"message": "$name$ was removed from the group.",
"description": "Shown in the conversation history when a single person is removed from the group",
"placeholders": {
"name": {
"content": "$1",
"example": "Alice"
}
},
"androidKey": "GroupUtil_removed_from_the_group",
"androidKeyCount": "one",
"androidReplace": {
"%1$s": "$name$"
}
},
"multipleKickedFromTheGroup": {
@ -1587,24 +1648,28 @@
"content": "$1",
"example": "Alice, Bob"
}
},
"androidKey": "GroupUtil_removed_from_the_group",
"androidKeyCount": "other",
"androidReplace": {
"%1$s": "$name$"
}
},
"blockUser": {
"message": "Block contact"
"message": "Block",
"androidKey": "RecipientPreferenceActivity_block"
},
"unblockUser": {
"message": "Unblock contact"
"message": "Unblock",
"androidKey": "RecipientPreferenceActivity_unblock"
},
"unblocked": {
"message": "Unblocked"
},
"blockedSettingsTitle": {
"message": "Blocked contacts",
"description": "Shown in the settings page as the heading for the blocked user settings"
},
"copyPublicKey": {
"message": "Copy Public Key",
"description": "Button action that the user can click to copy their public keys"
"description": "Shown in the settings page as the heading for the blocked user settings",
"androidKey": "preferences_app_protection__blocked_contacts"
},
"banUser": {
"message": "Ban User",
@ -1624,18 +1689,18 @@
},
"leaveGroup": {
"message": "Leave Group",
"description": "Button action that the user can click to leave the group"
},
"leaveClosedGroup": {
"message": "Leave Closed Group",
"description": "Button action that the user can click to leave the group"
"description": "Button action that the user can click to leave the group",
"androidKey": "conversation__menu_leave_group",
"wordCapitalize": true
},
"leaveGroupConfirmation": {
"message": "Are you sure you want to leave this group?",
"description": "Confirmation dialog text that tells the user what will happen if they leave the group."
"description": "Confirmation dialog text that tells the user what will happen if they leave the group.",
"androidKey": "activity_home_leave_group_dialog_message"
},
"noContactsForGroup": {
"message": "You don't have any contacts to start a group with."
"message": "You don't have any contacts yet",
"androidKey": "activity_create_closed_group_empty_state_message"
},
"copyMessage": {
"message": "Copy message text",
@ -1663,14 +1728,13 @@
}
},
"showRecoveryPhrase": {
"message": "Show Recovery Phrase",
"description": "Button action that the user can click to view their unique recovery phrase"
"message": "Recovery Phrase",
"description": "Button action that the user can click to view their unique recovery phrase",
"androidKey": "activity_settings_recovery_phrase_button_title"
},
"yourSessionID": {
"message": "Your Session ID"
},
"setStatus": {
"message": "Set a status..."
"message": "Your Session ID",
"androidKey": "your_session_id"
},
"setAccountPasswordTitle": {
"message": "Set Account Password",
@ -1711,34 +1775,35 @@
"description": "Request for user to enter password to show recovery phrase."
},
"recoveryPhraseSavePromptMain": {
"message": "Please save the recovery phrase below in a safe location.",
"description": "Prompt on recovery phrase modal requesting user to save their recovery phrase. Line one"
},
"recoveryPhraseSavePromptAlt": {
"message": "They can be used to restore your account if you lose access or migrate to a new device.",
"description": "Prompt on recovery phrase modal requesting user to save their recovery phrase. Line two"
"message": "Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and dont give it to anyone.",
"description": "Prompt on recovery phrase modal requesting user to save their recovery phrase. Line one",
"androidKey": "activity_seed_explanation"
},
"QRCodeTitle": {
"message": "View My QR Code",
"description": "Title given to QR Code modal"
"description": "Title given to QR Code modal",
"androidKey": "activity_qr_code_view_my_qr_code_tab_title"
},
"QRCodeDescription": {
"message": "This is <strong>your unique public QR Code.</strong><br/>Other users may scan this in order to begin a conversation with you.",
"description": "Description given to QRCode modal"
},
"invalidOpenGroupUrl": {
"message": "Please enter an open group URL",
"description": "Error message when no server url entered"
"message": "Invalid URL",
"description": "Error message when no server url entered",
"androidKey": "fragment_add_public_chat_invalid_url_message"
},
"copiedToClipboard": {
"message": "Copied to clipboard"
"message": "Copied to clipboard",
"androidKey": "copied_to_clipboard"
},
"passwordViewTitle": {
"message": "Type In Your Password",
"description": "The title shown when user needs to type in a password to unlock the messenger"
},
"unlock": {
"message": "Unlock"
"message": "Unlock",
"androidKey": "prompt_passphrase_activity__unlock"
},
"password": {
"message": "Password",
@ -1805,10 +1870,12 @@
"message": "You are already connected to this open group"
},
"connectToServerFail": {
"message": "Couldn't join group"
"message": "Couldn't join group",
"androidKey": "activity_join_public_chat_error"
},
"connectingToServer": {
"message": "Connecting to server..."
"message": "Connecting...",
"androidKey": "CallNotificationBuilder_connecting"
},
"connectToServerSuccess": {
"message": "Successfully connected to open group"
@ -1835,11 +1902,13 @@
"message": "Set"
},
"remove": {
"message": "Remove"
"message": "Remove",
"androidKey": "ClearProfileActivity_remove"
},
"invalidSessionId": {
"message": "Invalid Session ID",
"description": "Error string shown when user types an invalid pubkey hex string"
"description": "Error string shown when user types an invalid pubkey hex string",
"androidKey": "invalid_session_id"
},
"invalidPubkeyFormat": {
"message": "Invalid Pubkey Format",
@ -1857,22 +1926,23 @@
"message": "Not enough nodes currently active for LNS lookup"
},
"emptyGroupNameError": {
"message": "Group Name cannot be empty",
"description": "Error message displayed on empty group name"
"message": "Please enter a group name",
"description": "Error message displayed on empty group name",
"androidKey": "activity_create_closed_group_group_name_missing_error"
},
"nonAdminDeleteMember": {
"message": "Only group admin can remove members!"
},
"editProfileModalTitle": {
"message": "Profile",
"description": "Title for the Edit Profile modal"
},
"groupNamePlaceholder": {
"message": "Group Name"
"message": "Group Name",
"androidKey": "GroupCreateActivity_group_name_hint",
"wordCapitalize": true
},
"inviteContacts": {
"message": "Invite Contacts"
"message": "Invite Contacts",
"androidKey": "text_secure_normal__invite_friends",
"wordCapitalize": true
},
"addModerators": {
"message": "Add Moderators"
@ -1881,7 +1951,8 @@
"message": "Remove Moderators"
},
"add": {
"message": "Add"
"message": "Add",
"androidKey": "fragment_add_public_chat_add_button_title_1"
},
"groupInvitation": {
"message": "Group Invitation"
@ -1911,38 +1982,46 @@
}
},
"createAccount": {
"message": "Create Account"
"message": "Create Account",
"androidKey": "activity_display_name_title"
},
"signIn": {
"message": "Sign In"
},
"yourUniqueSessionID": {
"message": "Say hello to your Session ID"
"message": "Say hello to your Session ID",
"androidKey": "activity_register_title"
},
"allUsersAreRandomly...": {
"message": "Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design."
"message": "Your Session ID is the unique address people can use to contact you on Session. With no connection to your real identity, your Session ID is totally anonymous and private by design.",
"androidKey": "activity_register_explanation"
},
"getStarted": {
"message": "Get started"
},
"generateSessionID": {
"message": "Create Session ID"
"message": "Create Session ID",
"androidKey": "activity_landing_register_button_title"
},
"recoveryPhrase": {
"message": "Recovery Phrase"
"message": "Recovery Phrase",
"androidKey": "activity_settings_recovery_phrase_button_title"
},
"enterRecoveryPhrase": {
"message": "Enter Recovery Phrase"
"message": "Enter Recovery Phrase",
"androidKey": "activity_restore_seed_edit_text_hint"
},
"displayName": {
"message": "Display Name"
"message": "Display Name",
"androidKey": "activity_display_name_name_edit_text_label"
},
"anonymous": {
"message": "Anonymous",
"description": "The name of currently unidentified users"
},
"enterDisplayName": {
"message": "Enter a display name"
"message": "Enter a display name",
"androidKey": "activity_display_name_edit_text_hint"
},
"optionalPassword": {
"message": "Verify Password"
@ -1969,16 +2048,20 @@
"message": "Enter your <strong>Session ID</strong> below to link this device to your <strong>Session ID</strong>."
},
"enterSessionIDHere": {
"message": "Enter your Session ID"
"message": "Enter your Session ID",
"androidKey": "fragment_enter_session_id_edit_text_hint"
},
"continueYourSession": {
"message": "Continue Your Session"
"message": "Continue Your Session",
"androidKey": "activity_landing_restore_button_title"
},
"linkDevice": {
"message": "Link Device"
"message": "Link Device",
"androidKey": "activity_link_device_title"
},
"restoreUsingRecoveryPhrase": {
"message": "Restore From Recovery Phrase"
"message": "Restore your account",
"androidKey": "activity_restore_title"
},
"linkDeviceToExistingAccount": {
"message": "Link Device to Existing Session ID"
@ -1996,52 +2079,57 @@
"message": "Welcome to your Session"
},
"newSession": {
"message": "New Session"
"message": "New Session",
"androidKey": "activity_create_private_chat_title"
},
"searchFor...": {
"message": "Search for conversations, contacts, and messages"
"message": "Search for conversations, contacts, and messages",
"androidKey": "SearchToolbar_search_for_conversations_contacts_and_messages"
},
"enterSessionID": {
"message": "Enter Session ID"
"message": "Enter Session ID",
"androidKey": "activity_link_device_enter_session_id_tab_title"
},
"enterSessionIDOfRecipient": {
"message": "Enter Session ID of recipient"
"message": "Enter Session ID of recipient",
"androidKey": "fragment_enter_public_key_edit_text_hint"
},
"usersCanShareTheir...": {
"message": "Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code."
"message": "Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code.",
"androidKey": "fragment_enter_public_key_explanation"
},
"message": {
"message": "Message"
},
"edit": {
"message": "Edit"
},
"addContact": {
"message": "Add Contact"
},
"createGroup": {
"message": "Create Group"
},
"appearanceSettingsTitle": {
"message": "Appearance"
"message": "Appearance",
"androidKey": "preferences__appearance"
},
"permissionSettingsTitle": {
"message": "Permissions"
},
"privacySettingsTitle": {
"message": "Privacy"
"message": "Privacy",
"androidKey": "recipient_preferences__privacy"
},
"notificationsSettingsTitle": {
"message": "Notifications"
"message": "Notifications",
"androidKey": "preferences__notifications"
},
"devicesSettingsTitle": {
"message": "Devices"
"message": "Linked devices",
"androidKey": "preferences__linked_devices"
},
"recoveryPhraseEmpty": {
"message": "Recovery Phrase is mandatory"
"message": "Enter your recovery phrase",
"androidKey": "activity_restore_seed_edit_text_hint"
},
"displayNameEmpty": {
"message": "Display Name Is Mandatory"
"message": "Please pick a display name",
"androidKey": "activity_display_name_display_name_missing_error"
},
"members": {
"message": "$count$ members",
@ -2053,66 +2141,66 @@
}
},
"joinOpenGroup": {
"message": "Join Open Group"
"message": "Join Open Group",
"androidKey": "activity_join_public_chat_title"
},
"newClosedGroup": {
"message": "New Closed Group"
"message": "New Closed Group",
"androidKey": "activity_create_closed_group_title"
},
"newClosedGroupDescription": {
"message": "Closed groups support up to 10 members and provide the same privacy protections as one-on-one sessions."
"message": "Closed groups support up to 10 members and provide the same privacy protections as one-on-one sessions.",
"androidKey": "activity_create_closed_group_explanation"
},
"createClosedGroupNamePrompt": {
"message": "Group Name"
"message": "Group Name",
"androidKey": "GroupCreateActivity_group_name_hint"
},
"createClosedGroupPlaceholder": {
"message": "Enter a group name"
},
"closedGroupCreatedToastTitle": {
"message": "Group created successfully"
},
"enterOpenGroupURL": {
"message": "Enter Open Group URL"
"message": "Enter a group name",
"androidKey": "activity_create_closed_group_edit_text_hint"
},
"openGroupURL": {
"message": "Open Group URL"
"message": "Open Group URL",
"androidKey": "activity_join_public_chat_enter_group_url_tab_title"
},
"enterAnOpenGroupURL": {
"message": "Enter an open group URL"
"message": "Enter an open group URL",
"androidKey": "fragment_enter_chat_url_edit_text_hint"
},
"next": {
"message": "Next"
"message": "Next",
"androidKey": "RegistrationActivity_next"
},
"description": {
"message": "Description"
},
"secretWords": {
"message": "Secret words"
"message": "Please check that the words below match the ones shown on your other device",
"androidKey": "view_device_linking_explanation_2"
},
"pairingDevice": {
"message": "Linking Device"
"message": "Linking Device",
"androidKey": "DeviceProvisioningActivity_content_progress_title"
},
"devicePairedSuccessfully": {
"message": "Device linked successfully"
"message": "Your device has been linked successfully",
"androidKey": "view_device_linking_explanation_3"
},
"invalidGroupNameTooShort": {
"message": "Please enter a group name"
"message": "Please enter a group name",
"androidKey": "activity_create_closed_group_group_name_missing_error"
},
"invalidGroupNameTooLong": {
"message": "Please enter a shorter group name"
"message": "Please enter a shorter group name",
"androidKey": "activity_create_closed_group_group_name_too_long_error"
},
"pickClosedGroupMember": {
"message": "Please pick at least 2 group members"
"message": "Please pick at least 2 group members",
"androidKey": "activity_create_closed_group_not_enough_group_members_error"
},
"closedGroupMaxSize": {
"message": "A closed group cannot have more than 10 members"
},
"maxGroupMembersError": {
"message": "Max number of members for small group chats is $maxSize$",
"placeholders": {
"maxSize": {
"content": "$1",
"example": "10"
}
}
"message": "A closed group cannot have more than 10 members",
"androidKey": "activity_create_closed_group_too_many_group_members_error"
}
}

View file

@ -2310,10 +2310,8 @@
copyPublicKey() {
clipboard.writeText(this.id);
const copiedMessage = i18n('copiedToClipboard');
window.pushToast({
title: copiedMessage,
title: i18n('copiedToClipboard'),
type: 'success',
id: 'copiedToClipboard',
});

View file

@ -996,9 +996,9 @@
clipboard.writeText(this.get('body'));
window.pushToast({
title: i18n('copiedMessage'),
title: i18n('copiedToClipboard'),
type: 'success',
id: 'copiedMessage',
id: 'copiedToClipboard',
});
},

View file

@ -123,9 +123,7 @@
if (messagesNotificationCount === 1) {
message = `${i18n('notificationFrom')} ${lastMessageTitle}`;
} else {
message = `${i18n(
'notificationMostRecentFrom'
)} ${lastMessageTitle}`;
message = i18n('notificationMostRecentFrom', lastMessageTitle);
}
break;
}

View file

@ -83,7 +83,7 @@
window.CONSTANTS.SMALL_GROUP_SIZE_LIMIT
) {
const msg = window.i18n(
'maxGroupMembersError',
'closedGroupMaxSize',
window.CONSTANTS.SMALL_GROUP_SIZE_LIMIT
);

View file

@ -119,9 +119,9 @@ export class DevicePairingDialog extends React.Component<Props, State> {
{window.i18n('allowPairingWithDevice')}
</h4>
{this.renderErrors()}
<div className="subtle">{window.i18n('secretWords')}</div>
<div className="device-pairing-dialog__secret-words">
<label>{window.i18n('secretWords')}</label>
<div className="subtle">{secretWords}</div>
</div>

View file

@ -203,7 +203,7 @@ export class CreateGroupDialog extends React.Component<Props, State> {
updatedContacts.filter(d => d.checkmarked).length >
window.CONSTANTS.SMALL_GROUP_SIZE_LIMIT - 1
) {
const msg = `${this.props.i18n('maxGroupMembersError')} ${
const msg = `${this.props.i18n('closedGroupMaxSize')} ${
window.CONSTANTS.SMALL_GROUP_SIZE_LIMIT
}`;
this.onShowError(msg);

View file

@ -216,8 +216,7 @@ export class UpdateGroupMembersDialog extends React.Component<Props, State> {
private onMemberClicked(selected: any) {
if (selected.existingMember && !this.props.isAdmin) {
this.onShowError(this.props.i18n('nonAdminDeleteMember'));
window.console.warn('Only group admin can remove members!');
return;
}

View file

@ -49,21 +49,19 @@ export class UpdateGroupNameDialog extends React.Component<Props, State> {
}
public onClickOK() {
const { i18n, onSubmit } = this.props;
if (!this.state.groupName.trim()) {
this.onShowError(this.props.i18n('emptyGroupNameError'));
this.onShowError(i18n('emptyGroupNameError'));
return;
}
const avatar =
this.inputEl &&
this.inputEl.current &&
this.inputEl.current.files &&
this.inputEl.current.files.length > 0
this?.inputEl?.current?.files?.length > 0
? this.inputEl.current.files[0]
: null; // otherwise use the current avatar
this.props.onSubmit(this.state.groupName, avatar);
onSubmit(this.state.groupName, avatar);
this.closeDialog();
}

View file

@ -218,35 +218,16 @@ export class LeftPaneContactSection extends React.Component<Props, State> {
private renderBottomButtons(): JSX.Element {
const { selectedTab } = this.state;
const edit = window.i18n('edit');
const addContact = window.i18n('addContact');
const createGroup = window.i18n('createGroup');
const showEditButton = false;
return (
<div className="left-pane-contact-bottom-buttons">
{showEditButton && (
<SessionButton
text={edit}
buttonType={SessionButtonType.SquareOutline}
buttonColor={SessionButtonColor.White}
/>
)}
{selectedTab === 0 ? (
<SessionButton
text={addContact}
buttonType={SessionButtonType.SquareOutline}
buttonColor={SessionButtonColor.Green}
onClick={this.handleToggleOverlay}
/>
) : (
<SessionButton
text={createGroup}
buttonType={SessionButtonType.SquareOutline}
buttonColor={SessionButtonColor.Green}
onClick={this.handleToggleOverlay}
/>
)}
<SessionButton
text={addContact}
buttonType={SessionButtonType.SquareOutline}
buttonColor={SessionButtonColor.Green}
onClick={this.handleToggleOverlay}
/>
</div>
);
}

View file

@ -363,21 +363,11 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
}
private renderBottomButtons(): JSX.Element {
const edit = window.i18n('edit');
const joinOpenGroup = window.i18n('joinOpenGroup');
const newClosedGroup = window.i18n('newClosedGroup');
const showEditButton = false;
return (
<div className="left-pane-contact-bottom-buttons">
{showEditButton && (
<SessionButton
text={edit}
buttonType={SessionButtonType.SquareOutline}
buttonColor={SessionButtonColor.White}
/>
)}
<SessionButton
text={joinOpenGroup}
buttonType={SessionButtonType.SquareOutline}
@ -527,11 +517,6 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
senderKeys,
() => {
this.handleToggleOverlay(undefined);
ToastUtils.push({
title: window.i18n('closedGroupCreatedToastTitle'),
type: 'success',
});
}
);
}

View file

@ -53,13 +53,13 @@ export class SessionPasswordPrompt extends React.PureComponent<{}, State> {
? 'warning-info-area'
: 'password-info-area';
const infoTitle = this.state.clearDataView
? window.i18n('clearDataHeader')
? window.i18n('clearAllData')
: window.i18n('passwordViewTitle');
const buttonGroup = this.state.clearDataView
? this.renderClearDataViewButtons()
: this.renderPasswordViewButtons();
const featureElement = this.state.clearDataView ? (
<p className="text-center">{window.i18n('clearDataExplanation')}</p>
<p className="text-center">{window.i18n('deleteAccountWarning')}</p>
) : (
<input
id="password-prompt-input"

View file

@ -118,10 +118,6 @@ export class SessionSeedModal extends React.Component<Props, State> {
<div className="session-modal__centered text-center">
<p className="session-modal__description">
{i18n('recoveryPhraseSavePromptMain')}
<br />
<span className="subtle">
{i18n('recoveryPhraseSavePromptAlt')}
</span>
</p>
<div className="spacer-xs" />

View file

@ -9,7 +9,7 @@ interface Props {
// setting item in SessionSettings.tsx are like such:
// confirmationDialogParams: {
// shouldShowConfirm: false,
// title: window.i18n('linkPreviewsConfirmTitle'),
// title: window.i18n('linkPreviewsTitle'),
// message: window.i18n('linkPreviewsConfirmMessage'),
// okTheme: 'danger',
// }

View file

@ -387,7 +387,7 @@ export class SettingsView extends React.Component<SettingsViewProps, State> {
confirmationDialogParams: {
shouldShowConfirm: () =>
!window.getSettingValue('link-preview-setting'),
title: window.i18n('linkPreviewsConfirmTitle'),
title: window.i18n('linkPreviewsTitle'),
message: window.i18n('linkPreviewsConfirmMessage'),
okTheme: 'danger',
},