Merge pull request #2190 from Bilb/fix-i18n-with-dollars-sign

Fix i18n with dollars sign and window jumping on low message count
pull/2193/head
Audric Ackermann 3 years ago committed by GitHub
commit 111ec83bba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -16,7 +16,6 @@
"editMenuCut": "Cut",
"editMenuCopy": "Copy",
"editMenuPaste": "Paste",
"editMenuDelete": "Delete",
"editMenuDeleteContact": "Delete Contact",
"editMenuDeleteGroup": "Delete Group",
"editMenuSelectAll": "Select all",
@ -34,18 +33,12 @@
"joinOpenGroupAfterInvitationConfirmationDesc": "Are you sure you want to join the $roomName$ open group?",
"enterSessionIDOrONSName": "Enter Session ID or ONS name",
"loading": "Loading...",
"optimizingApplication": "Optimizing application...",
"done": "Done",
"me": "Me",
"view": "View",
"youLeftTheGroup": "You have left the group.",
"youGotKickedFromGroup": "You were removed from the group.",
"unreadMessage": "Unread Message",
"unreadMessages": "Unread Messages",
"debugLogExplanation": "This log will be saved to your desktop.",
"reportIssue": "Report an issue",
"gotIt": "Got it",
"submit": "Submit",
"markAllAsRead": "Mark All as Read",
"incomingError": "Error handling incoming message",
"media": "Media",
@ -66,19 +59,13 @@
"fileSizeWarning": "Attachment exceeds size limits for the type of message you're sending.",
"unableToLoadAttachment": "Sorry, there was an error setting your attachment.",
"offline": "Offline",
"checkNetworkConnection": "Check your network connection.",
"attemptingReconnection": "Attempting reconnect in $reconnect_duration_in_seconds$ seconds",
"submitDebugLog": "Debug log",
"debugLog": "Debug Log",
"showDebugLog": "Show Debug Log",
"goToReleaseNotes": "Go to Release Notes",
"goToSupportPage": "Go to Support Page",
"menuReportIssue": "Report an Issue",
"about": "About",
"speech": "Speech",
"show": "Show",
"sessionMessenger": "Session",
"search": "Search",
"noSearchResults": "No results found for \"$searchTerm$\"",
"conversationsHeader": "Contacts and Groups",
"contactsHeader": "Contacts",
@ -90,9 +77,6 @@
"replyToMessage": "Reply to message",
"replyingToMessage": "Replying to:",
"originalMessageNotFound": "Original message not found",
"originalMessageNotAvailable": "Original message no longer available",
"messageFoundButNotLoaded": "Original message found, but not loaded. Scroll up to load it.",
"recording": "Recording",
"you": "You",
"audioPermissionNeededTitle": "Microphone Access Required",
"audioPermissionNeeded": "You can enable microphone access under: Settings (Gear icon) => Privacy",
@ -133,14 +117,11 @@
"lightboxImageAlt": "Image sent in conversation",
"imageCaptionIconAlt": "Icon showing that this image has a caption",
"addACaption": "Add a caption...",
"copy": "Copy",
"copySessionID": "Copy Session ID",
"copyOpenGroupURL": "Copy Group's URL",
"save": "Save",
"saveLogToDesktop": "Save log to desktop",
"saved": "Saved",
"permissions": "Permissions",
"general": "General",
"tookAScreenshot": "$name$ took a screenshot",
"savedTheFile": "Media saved by $name$",
"linkPreviewsTitle": "Send Link Previews",
@ -151,7 +132,6 @@
"spellCheckTitle": "Spell Check",
"spellCheckDescription": "Enable spell check of text entered in message composition box",
"spellCheckDirty": "You must restart Session to apply your new settings",
"notifications": "Notifications",
"readReceiptSettingDescription": "See and share when messages have been read (enables read receipts in all sessions).",
"readReceiptSettingTitle": "Read Receipts",
"typingIndicatorsSettingDescription": "See and share when messages are being typed (applies to all sessions).",
@ -168,13 +148,7 @@
"notificationFrom": "From:",
"notificationMostRecent": "Most recent:",
"sendFailed": "Send Failed",
"expiredWarning": "This version of Session has expired. Please upgrade to the latest version to continue messaging.",
"upgrade": "Upgrade",
"mediaMessage": "Media message",
"timestamp_s": "Now",
"timestamp_m": "1 minute",
"timestamp_h": "1 hour",
"timestampFormat_M": "MMM D",
"messageBodyMissing": "Please enter a message body.",
"unblockToSend": "Unblock this contact to send a message.",
"unblockGroupToSend": "This group is blocked. Unlock it if you would like to send a message.",
@ -220,7 +194,6 @@
"startConversation": "Start New Conversation",
"invalidNumberError": "Invalid Session ID or ONS Name",
"failedResolveOns": "Failed to resolve ONS name",
"successUnlinked": "Your device was unlinked successfully",
"autoUpdateSettingTitle": "Auto Update",
"autoUpdateSettingDescription": "Automatically check for updates on startup",
"autoUpdateNewVersionTitle": "Session update available",
@ -245,7 +218,6 @@
"blocked": "Blocked",
"blockedSettingsTitle": "Blocked contacts",
"unbanUser": "Unban User",
"unbanUserConfirm": "Are you sure you want to unban this user?",
"userUnbanned": "User unbanned successfully",
"userUnbanFailed": "Unban failed!",
"banUser": "Ban User",
@ -276,7 +248,6 @@
"removeAccountPasswordDescription": "Remove the password associated with your account",
"enterPassword": "Please enter your password",
"confirmPassword": "Confirm password",
"pasteLongPasswordToastTitle": "The clipboard content exceeds the maximum password length of $max_pwd_len$ characters.",
"showRecoveryPhrasePasswordRequest": "Please enter your password",
"recoveryPhraseSavePromptMain": "Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and don't give it to anyone.",
"invalidOpenGroupUrl": "Invalid URL",
@ -329,7 +300,6 @@
"onlyAdminCanRemoveMembers": "You are not the creator",
"onlyAdminCanRemoveMembersDesc": "Only the creator of the group can remove users",
"createAccount": "Create account",
"signIn": "Sign In",
"startInTrayTitle": "Keep in System Tray",
"startInTrayDescription": "Session continues running in the background when you close the window",
"yourUniqueSessionID": "Say hello to your Session ID",
@ -342,7 +312,6 @@
"anonymous": "Anonymous",
"removeResidueMembers": "Clicking ok will also remove those members as they left the group.",
"enterDisplayName": "Enter a display name",
"enterOptionalPassword": "Enter password (optional)",
"continueYourSession": "Continue Your Session",
"linkDevice": "Link Device",
"restoreUsingRecoveryPhrase": "Restore your account",
@ -357,7 +326,6 @@
"usersCanShareTheir...": "Users can share their Session ID by going into their account settings and tapping \"Share Session ID\", or by sharing their QR code.",
"message": "Message",
"appearanceSettingsTitle": "Appearance",
"permissionSettingsTitle": "Permissions",
"privacySettingsTitle": "Privacy",
"notificationsSettingsTitle": "Notifications",
"recoveryPhraseEmpty": "Enter your recovery phrase",
@ -411,7 +379,6 @@
"pinConversationLimitTitle": "Pinned conversations limit",
"pinConversationLimitToastDescription": "You can only pin $number$ conversations",
"showUserDetails": "Show User Details",
"latestUnreadIsAbove": "First unread message is above",
"sendRecoveryPhraseTitle": "Sending Recovery Phrase",
"sendRecoveryPhraseMessage": "You are attempting to send your recovery phrase which can be used to access your account. Are you sure you want to send this message?",
"dialogClearAllDataDeletionFailedTitle": "Data not deleted",
@ -455,7 +422,6 @@
"callMissedNotApproved": "Call missed from '$name$' as you haven't approved this conversation yet. Send a message to them first.",
"callMediaPermissionsDescription": "Allows access to accept voice and video calls from other users",
"callMediaPermissionsDialogContent": "The current implementation of voice/video calls will expose your IP address to the Oxen Foundation servers and the calling/called user.",
"menuCall": "Call",
"startedACall": "You called $name$",
"answeredACall": "Call with $name$",
"trimDatabase": "Trim Database",

@ -7,7 +7,6 @@ exports.createTemplate = (options, messages) => {
const {
includeSetup,
openNewBugForm,
openReleaseNotes,
openSupportPage,
platform,
@ -56,7 +55,7 @@ exports.createTemplate = (options, messages) => {
},
{
role: 'delete',
label: messages.editMenuDelete,
label: messages.delete,
},
{
role: 'selectall',
@ -128,10 +127,6 @@ exports.createTemplate = (options, messages) => {
label: messages.goToSupportPage,
click: openSupportPage,
},
{
label: messages.menuReportIssue,
click: openNewBugForm,
},
{
type: 'separator',
},

@ -2344,6 +2344,9 @@ function getMessagesByConversation(conversationId, { messageId = null } = {}) {
// If messageId is null, it means we are just opening the convo to the last unread message, or at the bottom
const firstUnread = getFirstUnreadMessageIdInConversation(conversationId);
const numberOfMessagesInConvo = getMessagesCountByConversation(globalInstance, conversationId);
const floorLoadAllMessagesInConvo = 70;
if (messageId || firstUnread) {
const messageFound = getMessageById(messageId || firstUnread);
@ -2368,7 +2371,10 @@ function getMessagesByConversation(conversationId, { messageId = null } = {}) {
.all({
conversationId,
messageId: messageId || firstUnread,
limit: absLimit,
limit:
numberOfMessagesInConvo < floorLoadAllMessagesInConvo
? floorLoadAllMessagesInConvo
: absLimit,
});
return map(rows, row => jsonToObject(row.json));
@ -2378,7 +2384,10 @@ function getMessagesByConversation(conversationId, { messageId = null } = {}) {
);
}
const limit = 2 * absLimit;
const limit =
numberOfMessagesInConvo < floorLoadAllMessagesInConvo
? floorLoadAllMessagesInConvo
: 2 * absLimit;
const rows = globalInstance
.prepare(

@ -27,7 +27,7 @@
</div>
<textarea spellcheck='false' rows='5'></textarea>
<div class='buttons'>
<button class='grey submit'>{{ submit }}</button>
<button class='grey submit'>{{ saveLogToDesktop }}</button>
</div>
<div class='result'>
</div>

@ -66,15 +66,6 @@
window.log.info('background page reloaded');
window.log.info('environment:', window.getEnvironment());
const restartReason = localStorage.getItem('restart-reason');
if (restartReason === 'unlink') {
setTimeout(() => {
localStorage.removeItem('restart-reason');
window.libsession.Utils.ToastUtils.pushForceUnlinked();
}, 2000);
}
let initialLoadComplete = false;
let newVersion = false;

@ -17,10 +17,14 @@ exports.setup = (locale, messages) => {
}
if (Array.isArray(substitutions)) {
return substitutions.reduce(
(result, substitution) => result.replace(/\$.+?\$/, substitution),
message
const replacedNameDollarSign = message.replaceAll('$', 'ᅲ');
const substituted = substitutions.reduce(
(result, substitution) => result.replace(/ᅲ.+?ᅲ/, substitution),
replacedNameDollarSign
);
return substituted.replaceAll('ᅲ', '$');
} else if (substitutions) {
return message.replace(/\$.+?\$/, substitutions);
}

@ -38,19 +38,19 @@
});
},
events: {
'click .submit': 'submit',
'click .submit': 'saveLogToDesktop',
'click .close': 'close',
},
render_attributes: {
title: i18n('debugLog'),
cancel: i18n('cancel'),
submit: i18n('saveLogToDesktop'),
saveLogToDesktop: i18n('saveLogToDesktop'),
debugLogExplanation: i18n('debugLogExplanation'),
},
close() {
window.closeDebugLog();
},
async submit(e) {
async saveLogToDesktop(e) {
e.preventDefault();
const text = this.$('textarea').val();
if (text.length === 0) {

@ -442,9 +442,6 @@ function openReleaseNotes() {
);
}
function openNewBugForm() {
shell.openExternal('https://github.com/oxen-io/session-desktop/issues/new');
}
function openSupportPage() {
shell.openExternal('https://docs.oxen.io/products-built-on-oxen/session');
@ -720,7 +717,6 @@ function setupMenu(options) {
showWindow,
showAbout,
openReleaseNotes,
openNewBugForm,
openSupportPage,
platform,
});

@ -158,7 +158,6 @@
"@types/sinon": "9.0.4",
"@types/styled-components": "^5.1.4",
"@types/uuid": "3.4.4",
"@types/webpack": "^5.28.0",
"asar": "0.14.0",
"chai": "^4.3.4",
"chai-as-promised": "^7.1.1",
@ -189,15 +188,12 @@
"prettier": "1.19.0",
"run-script-os": "^1.1.6",
"sinon": "9.0.2",
"ts-loader": "4.1.0",
"ts-loader": "^9.2.7",
"ts-mock-imports": "^1.3.0",
"tslint": "5.19.0",
"tslint-microsoft-contrib": "6.0.0",
"tslint-react": "3.6.0",
"typescript": "4.5.4",
"webpack": "5.30.0",
"webpack-cli": "4.6.0",
"webpack-dev-server": "3.11.2"
"typescript": "4.5.4"
},
"engines": {
"node": "^14.16.0"

@ -215,24 +215,7 @@ window.getSeedNodeList = () => JSON.parse(config.seedNodeList);
const { locale: localFromEnv } = config;
window.i18n = i18n.setup(localFromEnv, localeMessages);
// moment does not support es-419 correctly (and cause white screen on app start)
window.moment = require('moment');
// Default to the locale from env. It will be overriden if moment
// does not recognize it with what moment knows which is the closest.
// i.e. es-419 will return 'es'.
// We just need to use what we got from moment on the updateLocale below
const localeSetForMoment = window.moment.locale(localFromEnv);
window.moment.updateLocale(localeSetForMoment, {
relativeTime: {
s: window.i18n('timestamp_s'),
m: window.i18n('timestamp_m'),
h: window.i18n('timestamp_h'),
},
});
window.libsession = require('./ts/session');
window.Signal.Data = require('./ts/data/data');

@ -22,6 +22,8 @@ with open(EN_FILE,'r') as jsonFile:
keys = data.keys()
stringToWrite += json.dumps(keys, sort_keys=True).replace(',', '\n |').replace('"', '\'')[1:-1]
stringToWrite += ';\n'
# print(stringToWrite)
with open(LOCALIZED_KEYS_FILE, "w") as typeFile:
typeFile.write(stringToWrite)

@ -99,10 +99,10 @@ export const AvatarPlaceHolder = (props: Props) => {
let initials = getInitials(name)?.toLocaleUpperCase() || '0';
if (name.indexOf(' ') === -1) {
initials = name.substr(0, 2);
initials = name.substring(0, 2);
}
const fontSize = diameter * (1 / (initials.length + 1));
const fontSize = Math.floor(initials.length > 1 ? diameter * 0.4 : diameter * 0.5);
const bgColorIndex = hash % avatarPlaceholderColors.length;
@ -129,6 +129,7 @@ export const AvatarPlaceHolder = (props: Props) => {
stroke="white"
strokeWidth={1}
alignmentBaseline="central"
height={fontSize}
>
{initials}
</text>

@ -46,7 +46,7 @@ export const Linkify = (props: Props): JSX.Element => {
title: window.i18n('linkVisitWarningTitle'),
message: window.i18n('linkVisitWarningMessage', url),
okText: window.i18n('open'),
cancelText: window.i18n('copy'),
cancelText: window.i18n('editMenuCopy'),
showExitIcon: true,
onClickOk: openLink,
onClickClose: () => {

@ -18,7 +18,6 @@ const deleteDbLocally = async () => {
await window.Signal.Data.close();
await window.Signal.Data.removeDB();
await window.Signal.Data.removeOtherData();
// 'unlink' => toast will be shown on app restart
window.localStorage.setItem('restart-reason', 'delete-account');
};

@ -114,7 +114,7 @@ const Seed = (props: SeedProps) => {
<SpacerLG />
<div className="session-modal__button-group">
<SessionButton
text={i18n('copy')}
text={i18n('editMenuCopy')}
buttonColor={SessionButtonColor.Green}
onClick={() => {
copyRecoveryPhrase(recoveryPhrase);

@ -71,7 +71,7 @@ export const UserDetailsDialog = (props: Props) => {
<div className="session-modal__button-group__center">
<SessionButton
text={window.i18n('copy')}
text={window.i18n('editMenuCopy')}
buttonType={SessionButtonType.Default}
buttonColor={SessionButtonColor.Primary}
onClick={() => {

@ -443,7 +443,7 @@ export const DisappearingMessageMenuItem = (): JSX.Element | null => {
return (
// Remove the && false to make context menu work with RTL support
<Submenu
label={window.i18n('disappearingMessages') as any}
label={window.i18n('disappearingMessages')}
// rtl={isRtlMode && false}
>
{timerOptions.map(item => (

@ -101,10 +101,6 @@ export function pushCopiedToClipBoard() {
pushToastInfo('copiedToClipboard', window.i18n('copiedToClipboard'));
}
export function pushForceUnlinked() {
pushToastInfo('successUnlinked', window.i18n('successUnlinked'));
}
export function pushRestartNeeded() {
pushToastInfo('restartNeeded', window.i18n('spellCheckDirty'));
}

@ -332,6 +332,8 @@ async function getMessages({
conversationKey: string;
messageId: string | null;
}): Promise<Array<MessageModelPropsWithoutConvoProps>> {
const beforeTimestamp = Date.now();
const conversation = getConversationController().get(conversationKey);
if (!conversation) {
// no valid conversation, early return
@ -346,6 +348,8 @@ async function getMessages({
const messageProps: Array<MessageModelPropsWithoutConvoProps> = messageSet.models.map(m =>
m.getMessageModelProps()
);
const time = Date.now() - beforeTimestamp;
window?.log?.info(`Loading ${messageProps.length} messages took ${time}ms to load.`);
return messageProps;
}
@ -376,13 +380,10 @@ export const fetchTopMessagesForConversation = createAsyncThunk(
window.log.info('fetchTopMessagesForConversation: we are already at the top');
return null;
}
const beforeTimestamp = Date.now();
const messagesProps = await getMessages({
conversationKey,
messageId: oldTopMessageId,
});
const time = Date.now() - beforeTimestamp;
window?.log?.info(`Loading ${messagesProps.length} messages took ${time}ms to load.`);
return {
conversationKey,
@ -408,7 +409,6 @@ export const fetchBottomMessagesForConversation = createAsyncThunk(
conversationKey: string;
oldBottomMessageId: string | null;
}): Promise<FetchedBottomMessageResults> => {
const beforeTimestamp = Date.now();
// no need to load more bottom if we are already at the bottom
const mostRecentMessage = await getLastMessageInConversation(conversationKey);
@ -420,8 +420,6 @@ export const fetchBottomMessagesForConversation = createAsyncThunk(
conversationKey,
messageId: oldBottomMessageId,
});
const time = Date.now() - beforeTimestamp;
window?.log?.info(`Loading ${messagesProps.length} messages took ${time}ms to load.`);
return {
conversationKey,

@ -1,8 +1,5 @@
export type LocalizerKeys =
| 'gotIt'
| 'removePassword'
| 'editMenuDelete'
| 'signIn'
| 'newClosedGroup'
| 'userUnbanFailed'
| 'changePassword'
@ -16,7 +13,6 @@ export type LocalizerKeys =
| 'requestsPlaceholder'
| 'closedGroupInviteFailMessage'
| 'noContactsForGroup'
| 'originalMessageNotAvailable'
| 'linkVisitWarningMessage'
| 'anonymous'
| 'viewMenuZoomOut'
@ -38,7 +34,6 @@ export type LocalizerKeys =
| 'autoUpdateLaterButtonLabel'
| 'maximumAttachments'
| 'deviceOnly'
| 'expiredWarning'
| 'beginYourSession'
| 'typingIndicatorsSettingDescription'
| 'changePasswordToastDescription'
@ -51,7 +46,6 @@ export type LocalizerKeys =
| 'openGroupURL'
| 'hideRequestBannerDescription'
| 'hideMenuBarDescription'
| 'search'
| 'pickClosedGroupMember'
| 'ByUsingThisService...'
| 'startConversation'
@ -77,7 +71,6 @@ export type LocalizerKeys =
| 'appMenuHideOthers'
| 'sendFailed'
| 'enterPassword'
| 'me'
| 'enterSessionIDOfRecipient'
| 'dialogClearAllDataDeletionFailedMultiple'
| 'pinConversationLimitToastDescription'
@ -132,7 +125,6 @@ export type LocalizerKeys =
| 'contextMenuNoSuggestions'
| 'recoveryPhraseRevealButtonText'
| 'banUser'
| 'permissions'
| 'answeredACall'
| 'sendMessage'
| 'recoveryPhraseRevealMessage'
@ -177,12 +169,10 @@ export type LocalizerKeys =
| 'message'
| 'mainMenuHelp'
| 'open'
| 'pasteLongPasswordToastTitle'
| 'nameAndMessage'
| 'autoUpdateDownloadedMessage'
| 'onionPathIndicatorTitle'
| 'unknown'
| 'submitDebugLog'
| 'mediaMessage'
| 'addAsModerator'
| 'closedGroupInviteFailTitlePlural'
@ -191,20 +181,17 @@ export type LocalizerKeys =
| 'incomingCallFrom'
| 'timerSetOnSync'
| 'deleteMessages'
| 'editMenuSelectAll'
| 'spellCheckTitle'
| 'translation'
| 'copy'
| 'editMenuSelectAll'
| 'messageBodyMissing'
| 'timerOption_12_hours_abbreviated'
| 'onlyAdminCanRemoveMembersDesc'
| 'recording'
| 'kickedFromTheGroup'
| 'windowMenuMinimize'
| 'debugLog'
| 'timerOption_0_seconds_abbreviated'
| 'timerOption_5_minutes_abbreviated'
| 'enterOptionalPassword'
| 'goToReleaseNotes'
| 'unpinConversation'
| 'viewMenuResetZoom'
@ -238,11 +225,9 @@ export type LocalizerKeys =
| 'show'
| 'cannotMixImageAndNonImageAttachments'
| 'viewMenuToggleFullScreen'
| 'optimizingApplication'
| 'goToSupportPage'
| 'passwordsDoNotMatch'
| 'createClosedGroupNamePrompt'
| 'upgrade'
| 'audioMessageAutoplayDescription'
| 'leaveAndRemoveForEveryone'
| 'previewThumbnail'
@ -263,7 +248,6 @@ export type LocalizerKeys =
| 'unableToLoadAttachment'
| 'cameraPermissionNeededTitle'
| 'editMenuRedo'
| 'view'
| 'changeNicknameMessage'
| 'close'
| 'deleteMessageQuestion'
@ -289,16 +273,13 @@ export type LocalizerKeys =
| 'originalMessageNotFound'
| 'autoUpdateRestartButtonLabel'
| 'deleteConversationConfirmation'
| 'unreadMessage'
| 'timerOption_6_hours_abbreviated'
| 'timerOption_1_week_abbreviated'
| 'timerSetTo'
| 'unbanUserConfirm'
| 'notificationSubtitle'
| 'youChangedTheTimer'
| 'updatedTheGroup'
| 'leaveGroup'
| 'menuReportIssue'
| 'continueYourSession'
| 'invalidGroupNameTooShort'
| 'notificationForConvo'
@ -317,13 +298,11 @@ export type LocalizerKeys =
| 'contactsHeader'
| 'openGroupInvitation'
| 'callMissedCausePermission'
| 'messageFoundButNotLoaded'
| 'mediaPermissionsDescription'
| 'media'
| 'noMembersInThisGroup'
| 'saveLogToDesktop'
| 'copyErrorAndQuit'
| 'speech'
| 'onlyAdminCanRemoveMembers'
| 'passwordTypeError'
| 'createClosedGroupPlaceholder'
@ -355,7 +334,6 @@ export type LocalizerKeys =
| 'dialogClearAllDataDeletionFailedTitle'
| 'loading'
| 'blockedSettingsTitle'
| 'checkNetworkConnection'
| 'appMenuHide'
| 'removeAccountPasswordTitle'
| 'recoveryPhraseEmpty'
@ -369,12 +347,11 @@ export type LocalizerKeys =
| 'removePasswordInvalid'
| 'password'
| 'usersCanShareTheir...'
| 'timestampFormat_M'
| 'nicknamePlaceholder'
| 'linkPreviewsTitle'
| 'continue'
| 'learnMore'
| 'successUnlinked'
| 'passwordCharacterError'
| 'autoUpdateSettingTitle'
| 'deleteForEveryone'
| 'createSessionID'
@ -395,7 +372,6 @@ export type LocalizerKeys =
| 'deleted'
| 'closedGroupMaxSize'
| 'messagesHeader'
| 'passwordCharacterError'
| 'joinOpenGroup'
| 'callMediaPermissionsDialogContent'
| 'timerOption_1_day_abbreviated'
@ -417,7 +393,6 @@ export type LocalizerKeys =
| 'timerOption_5_seconds_abbreviated'
| 'removeFromModerators'
| 'enterRecoveryPhrase'
| 'submit'
| 'stagedImageAttachment'
| 'thisWeek'
| 'savedTheFile'
@ -425,14 +400,10 @@ export type LocalizerKeys =
| 'linkVisitWarningTitle'
| 'invalidPassword'
| 'endCall'
| 'latestUnreadIsAbove'
| 'connectingToServer'
| 'notifications'
| 'settingsHeader'
| 'autoUpdateNewVersionMessage'
| 'oneNonImageAtATimeToast'
| 'menuCall'
| 'attemptingReconnection'
| 'removePasswordTitle'
| 'iAmSure'
| 'selectMessage'
@ -440,7 +411,6 @@ export type LocalizerKeys =
| 'delete'
| 'changePasswordInvalid'
| 'unblockGroupToSend'
| 'general'
| 'timerOption_6_hours'
| 'confirmPassword'
| 'downloadAttachment'
@ -453,7 +423,6 @@ export type LocalizerKeys =
| 'you'
| 'documentsEmptyState'
| 'unbanUser'
| 'permissionSettingsTitle'
| 'notificationForConvo_mentions_only'
| 'trustThisContactDialogDescription'
| 'unknownCountry'

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save