commit
0c611170b2
@ -0,0 +1,164 @@
|
||||
import React, { useState } from 'react';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import styled from 'styled-components';
|
||||
import { clearOurAvatar, uploadOurAvatar } from '../../interactions/conversationInteractions';
|
||||
import { ToastUtils } from '../../session/utils';
|
||||
import { editProfileModal, updateEditProfilePictureModel } from '../../state/ducks/modalDialog';
|
||||
import { pickFileForAvatar } from '../../types/attachments/VisualAttachment';
|
||||
import { SessionWrapperModal } from '../SessionWrapperModal';
|
||||
import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton';
|
||||
import { SessionSpinner } from '../basic/SessionSpinner';
|
||||
import { SpacerLG } from '../basic/Text';
|
||||
import { SessionIconButton } from '../icon';
|
||||
import { ProfileAvatar } from './EditProfileDialog';
|
||||
|
||||
const StyledAvatarContainer = styled.div`
|
||||
cursor: pointer;
|
||||
`;
|
||||
const UploadImageButton = () => {
|
||||
return (
|
||||
<div style={{ position: 'relative' }}>
|
||||
<div style={{ borderRadius: '50%', overflow: 'hidden' }}>
|
||||
<SessionIconButton
|
||||
iconType="thumbnail"
|
||||
iconSize="max"
|
||||
iconPadding="16px"
|
||||
backgroundColor="var(--chat-buttons-background-color)"
|
||||
/>
|
||||
</div>
|
||||
<SessionIconButton
|
||||
iconType="plusFat"
|
||||
iconSize="medium"
|
||||
iconColor="var(--modal-background-content-color)"
|
||||
iconPadding="4.5px"
|
||||
borderRadius="50%"
|
||||
backgroundColor="var(--primary-color)"
|
||||
style={{ position: 'absolute', bottom: 0, right: 0 }}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const uploadProfileAvatar = async (scaledAvatarUrl: string | null) => {
|
||||
if (scaledAvatarUrl?.length) {
|
||||
try {
|
||||
const blobContent = await (await fetch(scaledAvatarUrl)).blob();
|
||||
if (!blobContent || !blobContent.size) {
|
||||
throw new Error('Failed to fetch blob content from scaled avatar');
|
||||
}
|
||||
await uploadOurAvatar(await blobContent.arrayBuffer());
|
||||
} catch (error) {
|
||||
if (error.message && error.message.length) {
|
||||
ToastUtils.pushToastError('edit-profile', error.message);
|
||||
}
|
||||
window.log.error(
|
||||
'showEditProfileDialog Error ensuring that image is properly sized:',
|
||||
error && error.stack ? error.stack : error
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export type EditProfilePictureModalProps = {
|
||||
avatarPath: string | null;
|
||||
profileName: string | undefined;
|
||||
ourId: string;
|
||||
};
|
||||
|
||||
export const EditProfilePictureModal = (props: EditProfilePictureModalProps) => {
|
||||
const dispatch = useDispatch();
|
||||
|
||||
const [newAvatarObjectUrl, setNewAvatarObjectUrl] = useState<string | null>(props.avatarPath);
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
if (!props) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const { avatarPath, profileName, ourId } = props;
|
||||
|
||||
const closeDialog = () => {
|
||||
dispatch(updateEditProfilePictureModel(null));
|
||||
dispatch(editProfileModal({}));
|
||||
};
|
||||
|
||||
const handleAvatarClick = async () => {
|
||||
const updatedAvatarObjectUrl = await pickFileForAvatar();
|
||||
if (updatedAvatarObjectUrl) {
|
||||
setNewAvatarObjectUrl(updatedAvatarObjectUrl);
|
||||
}
|
||||
};
|
||||
|
||||
const handleUpload = async () => {
|
||||
setLoading(true);
|
||||
if (newAvatarObjectUrl === avatarPath) {
|
||||
window.log.debug('Avatar Object URL has not changed!');
|
||||
return;
|
||||
}
|
||||
|
||||
await uploadProfileAvatar(newAvatarObjectUrl);
|
||||
setLoading(false);
|
||||
dispatch(updateEditProfilePictureModel(null));
|
||||
};
|
||||
|
||||
const handleRemove = async () => {
|
||||
setLoading(true);
|
||||
await clearOurAvatar();
|
||||
setNewAvatarObjectUrl(null);
|
||||
setLoading(false);
|
||||
dispatch(updateEditProfilePictureModel(null));
|
||||
};
|
||||
|
||||
return (
|
||||
<SessionWrapperModal
|
||||
title={window.i18n('setDisplayPicture')}
|
||||
onClose={closeDialog}
|
||||
showHeader={true}
|
||||
showExitIcon={true}
|
||||
>
|
||||
<div
|
||||
className="avatar-center"
|
||||
role="button"
|
||||
onClick={() => void handleAvatarClick()}
|
||||
data-testid={'image-upload-click'}
|
||||
>
|
||||
<StyledAvatarContainer className="avatar-center-inner">
|
||||
{newAvatarObjectUrl || avatarPath ? (
|
||||
<ProfileAvatar
|
||||
newAvatarObjectUrl={newAvatarObjectUrl}
|
||||
avatarPath={avatarPath}
|
||||
profileName={profileName}
|
||||
ourId={ourId}
|
||||
/>
|
||||
) : (
|
||||
<UploadImageButton />
|
||||
)}
|
||||
</StyledAvatarContainer>
|
||||
</div>
|
||||
|
||||
{loading ? (
|
||||
<SessionSpinner loading={loading} />
|
||||
) : (
|
||||
<>
|
||||
<SpacerLG />
|
||||
<div className="session-modal__button-group">
|
||||
<SessionButton
|
||||
text={window.i18n('save')}
|
||||
buttonType={SessionButtonType.Simple}
|
||||
onClick={handleUpload}
|
||||
disabled={newAvatarObjectUrl === avatarPath}
|
||||
dataTestId="save-button-profile-update"
|
||||
/>
|
||||
<SessionButton
|
||||
text={window.i18n('remove')}
|
||||
buttonColor={SessionButtonColor.Danger}
|
||||
buttonType={SessionButtonType.Simple}
|
||||
onClick={handleRemove}
|
||||
disabled={!avatarPath}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</SessionWrapperModal>
|
||||
);
|
||||
};
|
@ -1,512 +1,513 @@
|
||||
export type LocalizerKeys =
|
||||
| 'copyErrorAndQuit'
|
||||
| 'unknown'
|
||||
| 'databaseError'
|
||||
| 'mainMenuFile'
|
||||
| 'mainMenuEdit'
|
||||
| 'mainMenuView'
|
||||
| 'mainMenuWindow'
|
||||
| 'mainMenuHelp'
|
||||
| 'ByUsingThisService...'
|
||||
| 'about'
|
||||
| 'accept'
|
||||
| 'activeMembers'
|
||||
| 'add'
|
||||
| 'addACaption'
|
||||
| 'addAsModerator'
|
||||
| 'addModerators'
|
||||
| 'addingContacts'
|
||||
| 'allUsersAreRandomly...'
|
||||
| 'anonymous'
|
||||
| 'answeredACall'
|
||||
| 'appMenuHide'
|
||||
| 'appMenuHideOthers'
|
||||
| 'appMenuUnhide'
|
||||
| 'appMenuQuit'
|
||||
| 'editMenuUndo'
|
||||
| 'editMenuRedo'
|
||||
| 'editMenuCut'
|
||||
| 'editMenuCopy'
|
||||
| 'editMenuPaste'
|
||||
| 'editMenuDeleteContact'
|
||||
| 'editMenuDeleteGroup'
|
||||
| 'editMenuSelectAll'
|
||||
| 'windowMenuClose'
|
||||
| 'windowMenuMinimize'
|
||||
| 'windowMenuZoom'
|
||||
| 'viewMenuResetZoom'
|
||||
| 'viewMenuZoomIn'
|
||||
| 'viewMenuZoomOut'
|
||||
| 'viewMenuToggleFullScreen'
|
||||
| 'viewMenuToggleDevTools'
|
||||
| 'contextMenuNoSuggestions'
|
||||
| 'openGroupInvitation'
|
||||
| 'joinOpenGroupAfterInvitationConfirmationTitle'
|
||||
| 'joinOpenGroupAfterInvitationConfirmationDesc'
|
||||
| 'couldntFindServerMatching'
|
||||
| 'enterSessionIDOrONSName'
|
||||
| 'startNewConversationBy...'
|
||||
| 'loading'
|
||||
| 'done'
|
||||
| 'youLeftTheGroup'
|
||||
| 'youGotKickedFromGroup'
|
||||
| 'unreadMessages'
|
||||
| 'debugLogExplanation'
|
||||
| 'reportIssue'
|
||||
| 'markAllAsRead'
|
||||
| 'incomingError'
|
||||
| 'media'
|
||||
| 'mediaEmptyState'
|
||||
| 'document'
|
||||
| 'documents'
|
||||
| 'documentsEmptyState'
|
||||
| 'today'
|
||||
| 'yesterday'
|
||||
| 'thisWeek'
|
||||
| 'thisMonth'
|
||||
| 'voiceMessage'
|
||||
| 'stagedPreviewThumbnail'
|
||||
| 'previewThumbnail'
|
||||
| 'stagedImageAttachment'
|
||||
| 'oneNonImageAtATimeToast'
|
||||
| 'cannotMixImageAndNonImageAttachments'
|
||||
| 'maximumAttachments'
|
||||
| 'fileSizeWarning'
|
||||
| 'unableToLoadAttachment'
|
||||
| 'offline'
|
||||
| 'debugLog'
|
||||
| 'showDebugLog'
|
||||
| 'shareBugDetails'
|
||||
| 'goToReleaseNotes'
|
||||
| 'goToSupportPage'
|
||||
| 'about'
|
||||
| 'show'
|
||||
| 'sessionMessenger'
|
||||
| 'noSearchResults'
|
||||
| 'conversationsHeader'
|
||||
| 'contactsHeader'
|
||||
| 'messagesHeader'
|
||||
| 'searchMessagesHeader'
|
||||
| 'settingsHeader'
|
||||
| 'typingAlt'
|
||||
| 'contactAvatarAlt'
|
||||
| 'downloadAttachment'
|
||||
| 'replyToMessage'
|
||||
| 'replyingToMessage'
|
||||
| 'originalMessageNotFound'
|
||||
| 'you'
|
||||
| 'audioPermissionNeededTitle'
|
||||
| 'audioPermissionNeeded'
|
||||
| 'image'
|
||||
| 'appMenuUnhide'
|
||||
| 'appearanceSettingsTitle'
|
||||
| 'areYouSureClearDevice'
|
||||
| 'areYouSureDeleteDeviceOnly'
|
||||
| 'areYouSureDeleteEntireAccount'
|
||||
| 'audio'
|
||||
| 'video'
|
||||
| 'photo'
|
||||
| 'audioMessageAutoplayDescription'
|
||||
| 'audioMessageAutoplayTitle'
|
||||
| 'audioNotificationsSettingsTitle'
|
||||
| 'audioPermissionNeeded'
|
||||
| 'audioPermissionNeededTitle'
|
||||
| 'autoUpdateDownloadButtonLabel'
|
||||
| 'autoUpdateDownloadInstructions'
|
||||
| 'autoUpdateDownloadedMessage'
|
||||
| 'autoUpdateLaterButtonLabel'
|
||||
| 'autoUpdateNewVersionInstructions'
|
||||
| 'autoUpdateNewVersionMessage'
|
||||
| 'autoUpdateNewVersionTitle'
|
||||
| 'autoUpdateRestartButtonLabel'
|
||||
| 'autoUpdateSettingDescription'
|
||||
| 'autoUpdateSettingTitle'
|
||||
| 'banUser'
|
||||
| 'banUserAndDeleteAll'
|
||||
| 'beginYourSession'
|
||||
| 'blindedMsgReqsSettingDesc'
|
||||
| 'blindedMsgReqsSettingTitle'
|
||||
| 'block'
|
||||
| 'blocked'
|
||||
| 'blockedSettingsTitle'
|
||||
| 'callMediaPermissionsDescription'
|
||||
| 'callMediaPermissionsDialogContent'
|
||||
| 'callMediaPermissionsDialogTitle'
|
||||
| 'callMediaPermissionsTitle'
|
||||
| 'callMissed'
|
||||
| 'callMissedCausePermission'
|
||||
| 'callMissedNotApproved'
|
||||
| 'callMissedTitle'
|
||||
| 'cameraPermissionNeeded'
|
||||
| 'cameraPermissionNeededTitle'
|
||||
| 'cancel'
|
||||
| 'cannotMixImageAndNonImageAttachments'
|
||||
| 'cannotRemoveCreatorFromGroup'
|
||||
| 'cannotRemoveCreatorFromGroupDesc'
|
||||
| 'cannotUpdate'
|
||||
| 'cannotUpdateDetail'
|
||||
| 'ok'
|
||||
| 'cancel'
|
||||
| 'changeAccountPasswordDescription'
|
||||
| 'changeAccountPasswordTitle'
|
||||
| 'changeNickname'
|
||||
| 'changeNicknameMessage'
|
||||
| 'changePassword'
|
||||
| 'changePasswordInvalid'
|
||||
| 'changePasswordTitle'
|
||||
| 'changePasswordToastDescription'
|
||||
| 'chooseAnAction'
|
||||
| 'classicDarkThemeTitle'
|
||||
| 'classicLightThemeTitle'
|
||||
| 'clear'
|
||||
| 'clearAll'
|
||||
| 'clearAllConfirmationBody'
|
||||
| 'clearAllConfirmationTitle'
|
||||
| 'clearAllData'
|
||||
| 'clearAllReactions'
|
||||
| 'clearDataSettingsTitle'
|
||||
| 'clearDevice'
|
||||
| 'clearNickname'
|
||||
| 'clickToTrustContact'
|
||||
| 'close'
|
||||
| 'closedGroupInviteFailMessage'
|
||||
| 'closedGroupInviteFailMessagePlural'
|
||||
| 'closedGroupInviteFailTitle'
|
||||
| 'closedGroupInviteFailTitlePlural'
|
||||
| 'closedGroupInviteOkText'
|
||||
| 'closedGroupInviteSuccessMessage'
|
||||
| 'closedGroupInviteSuccessTitle'
|
||||
| 'closedGroupInviteSuccessTitlePlural'
|
||||
| 'closedGroupMaxSize'
|
||||
| 'confirmNewPassword'
|
||||
| 'confirmPassword'
|
||||
| 'connectToServerFail'
|
||||
| 'connectToServerSuccess'
|
||||
| 'connectingToServer'
|
||||
| 'contactAvatarAlt'
|
||||
| 'contactsHeader'
|
||||
| 'contextMenuNoSuggestions'
|
||||
| 'continue'
|
||||
| 'error'
|
||||
| 'continueYourSession'
|
||||
| 'conversationsHeader'
|
||||
| 'conversationsSettingsTitle'
|
||||
| 'copiedToClipboard'
|
||||
| 'copyErrorAndQuit'
|
||||
| 'copyMessage'
|
||||
| 'copyOpenGroupURL'
|
||||
| 'copySessionID'
|
||||
| 'couldntFindServerMatching'
|
||||
| 'create'
|
||||
| 'createAccount'
|
||||
| 'createClosedGroupNamePrompt'
|
||||
| 'createClosedGroupPlaceholder'
|
||||
| 'createConversationNewContact'
|
||||
| 'createConversationNewGroup'
|
||||
| 'createGroup'
|
||||
| 'createPassword'
|
||||
| 'createSessionID'
|
||||
| 'databaseError'
|
||||
| 'debugLog'
|
||||
| 'debugLogExplanation'
|
||||
| 'decline'
|
||||
| 'declineRequestMessage'
|
||||
| 'delete'
|
||||
| 'messageDeletionForbidden'
|
||||
| 'deleteJustForMe'
|
||||
| 'deleteAccountFromLogin'
|
||||
| 'deleteAccountWarning'
|
||||
| 'deleteContactConfirmation'
|
||||
| 'deleteConversation'
|
||||
| 'deleteConversationConfirmation'
|
||||
| 'deleteForEveryone'
|
||||
| 'deleteMessagesQuestion'
|
||||
| 'deleteJustForMe'
|
||||
| 'deleteMessageQuestion'
|
||||
| 'deleteMessages'
|
||||
| 'deleteConversation'
|
||||
| 'deleteMessagesQuestion'
|
||||
| 'deleted'
|
||||
| 'messageDeletedPlaceholder'
|
||||
| 'from'
|
||||
| 'to'
|
||||
| 'sent'
|
||||
| 'received'
|
||||
| 'sendMessage'
|
||||
| 'groupMembers'
|
||||
| 'moreInformation'
|
||||
| 'resend'
|
||||
| 'deleteConversationConfirmation'
|
||||
| 'clear'
|
||||
| 'clearAllData'
|
||||
| 'deleteAccountWarning'
|
||||
| 'deleteAccountFromLogin'
|
||||
| 'deleteContactConfirmation'
|
||||
| 'quoteThumbnailAlt'
|
||||
| 'imageAttachmentAlt'
|
||||
| 'videoAttachmentAlt'
|
||||
| 'lightboxImageAlt'
|
||||
| 'imageCaptionIconAlt'
|
||||
| 'addACaption'
|
||||
| 'copySessionID'
|
||||
| 'copyOpenGroupURL'
|
||||
| 'save'
|
||||
| 'saveLogToDesktop'
|
||||
| 'saved'
|
||||
| 'tookAScreenshot'
|
||||
| 'savedTheFile'
|
||||
| 'linkPreviewsTitle'
|
||||
| 'linkPreviewDescription'
|
||||
| 'linkPreviewsConfirmMessage'
|
||||
| 'mediaPermissionsTitle'
|
||||
| 'mediaPermissionsDescription'
|
||||
| 'spellCheckTitle'
|
||||
| 'spellCheckDescription'
|
||||
| 'spellCheckDirty'
|
||||
| 'readReceiptSettingDescription'
|
||||
| 'readReceiptSettingTitle'
|
||||
| 'typingIndicatorsSettingDescription'
|
||||
| 'typingIndicatorsSettingTitle'
|
||||
| 'zoomFactorSettingTitle'
|
||||
| 'themesSettingTitle'
|
||||
| 'primaryColor'
|
||||
| 'primaryColorGreen'
|
||||
| 'primaryColorBlue'
|
||||
| 'primaryColorYellow'
|
||||
| 'primaryColorPink'
|
||||
| 'primaryColorPurple'
|
||||
| 'primaryColorOrange'
|
||||
| 'primaryColorRed'
|
||||
| 'classicDarkThemeTitle'
|
||||
| 'classicLightThemeTitle'
|
||||
| 'oceanDarkThemeTitle'
|
||||
| 'oceanLightThemeTitle'
|
||||
| 'pruneSettingTitle'
|
||||
| 'pruneSettingDescription'
|
||||
| 'enable'
|
||||
| 'keepDisabled'
|
||||
| 'notificationSettingsDialog'
|
||||
| 'nameAndMessage'
|
||||
| 'noNameOrMessage'
|
||||
| 'nameOnly'
|
||||
| 'newMessage'
|
||||
| 'createConversationNewContact'
|
||||
| 'createConversationNewGroup'
|
||||
| 'joinACommunity'
|
||||
| 'chooseAnAction'
|
||||
| 'newMessages'
|
||||
| 'notificationMostRecentFrom'
|
||||
| 'notificationFrom'
|
||||
| 'notificationMostRecent'
|
||||
| 'sendFailed'
|
||||
| 'mediaMessage'
|
||||
| 'messageBodyMissing'
|
||||
| 'messageBody'
|
||||
| 'unblockToSend'
|
||||
| 'youChangedTheTimer'
|
||||
| 'timerSetOnSync'
|
||||
| 'theyChangedTheTimer'
|
||||
| 'timerOption_0_seconds'
|
||||
| 'timerOption_5_seconds'
|
||||
| 'timerOption_10_seconds'
|
||||
| 'timerOption_30_seconds'
|
||||
| 'timerOption_1_minute'
|
||||
| 'timerOption_5_minutes'
|
||||
| 'timerOption_30_minutes'
|
||||
| 'timerOption_1_hour'
|
||||
| 'timerOption_6_hours'
|
||||
| 'timerOption_12_hours'
|
||||
| 'timerOption_1_day'
|
||||
| 'timerOption_1_week'
|
||||
| 'timerOption_2_weeks'
|
||||
| 'destination'
|
||||
| 'device'
|
||||
| 'deviceOnly'
|
||||
| 'dialogClearAllDataDeletionFailedDesc'
|
||||
| 'dialogClearAllDataDeletionFailedMultiple'
|
||||
| 'dialogClearAllDataDeletionFailedTitle'
|
||||
| 'dialogClearAllDataDeletionFailedTitleQuestion'
|
||||
| 'dialogClearAllDataDeletionQuestion'
|
||||
| 'disabledDisappearingMessages'
|
||||
| 'disappearingMessages'
|
||||
| 'changeNickname'
|
||||
| 'clearNickname'
|
||||
| 'nicknamePlaceholder'
|
||||
| 'changeNicknameMessage'
|
||||
| 'timerOption_0_seconds_abbreviated'
|
||||
| 'timerOption_5_seconds_abbreviated'
|
||||
| 'timerOption_10_seconds_abbreviated'
|
||||
| 'timerOption_30_seconds_abbreviated'
|
||||
| 'timerOption_1_minute_abbreviated'
|
||||
| 'timerOption_5_minutes_abbreviated'
|
||||
| 'timerOption_30_minutes_abbreviated'
|
||||
| 'timerOption_1_hour_abbreviated'
|
||||
| 'timerOption_6_hours_abbreviated'
|
||||
| 'timerOption_12_hours_abbreviated'
|
||||
| 'timerOption_1_day_abbreviated'
|
||||
| 'timerOption_1_week_abbreviated'
|
||||
| 'timerOption_2_weeks_abbreviated'
|
||||
| 'disappearingMessagesDisabled'
|
||||
| 'disabledDisappearingMessages'
|
||||
| 'youDisabledDisappearingMessages'
|
||||
| 'timerSetTo'
|
||||
| 'noteToSelf'
|
||||
| 'hideMenuBarTitle'
|
||||
| 'displayName'
|
||||
| 'displayNameEmpty'
|
||||
| 'displayNameTooLong'
|
||||
| 'document'
|
||||
| 'documents'
|
||||
| 'documentsEmptyState'
|
||||
| 'done'
|
||||
| 'downloadAttachment'
|
||||
| 'editGroup'
|
||||
| 'editGroupName'
|
||||
| 'editMenuCopy'
|
||||
| 'editMenuCut'
|
||||
| 'editMenuDeleteContact'
|
||||
| 'editMenuDeleteGroup'
|
||||
| 'editMenuPaste'
|
||||
| 'editMenuRedo'
|
||||
| 'editMenuSelectAll'
|
||||
| 'editMenuUndo'
|
||||
| 'editProfileModalTitle'
|
||||
| 'emptyGroupNameError'
|
||||
| 'enable'
|
||||
| 'endCall'
|
||||
| 'enterAnOpenGroupURL'
|
||||
| 'enterDisplayName'
|
||||
| 'enterNewPassword'
|
||||
| 'enterPassword'
|
||||
| 'enterRecoveryPhrase'
|
||||
| 'enterSessionID'
|
||||
| 'enterSessionIDOfRecipient'
|
||||
| 'enterSessionIDOrONSName'
|
||||
| 'entireAccount'
|
||||
| 'error'
|
||||
| 'establishingConnection'
|
||||
| 'expandedReactionsText'
|
||||
| 'failedResolveOns'
|
||||
| 'failedToAddAsModerator'
|
||||
| 'failedToRemoveFromModerator'
|
||||
| 'faq'
|
||||
| 'fileSizeWarning'
|
||||
| 'from'
|
||||
| 'getStarted'
|
||||
| 'goToReleaseNotes'
|
||||
| 'goToSupportPage'
|
||||
| 'groupMembers'
|
||||
| 'groupNamePlaceholder'
|
||||
| 'helpSettingsTitle'
|
||||
| 'helpUsTranslateSession'
|
||||
| 'hideBanner'
|
||||
| 'hideMenuBarDescription'
|
||||
| 'startConversation'
|
||||
| 'hideMenuBarTitle'
|
||||
| 'hideRequestBanner'
|
||||
| 'hideRequestBannerDescription'
|
||||
| 'iAmSure'
|
||||
| 'image'
|
||||
| 'imageAttachmentAlt'
|
||||
| 'imageCaptionIconAlt'
|
||||
| 'incomingCallFrom'
|
||||
| 'incomingError'
|
||||
| 'invalidGroupNameTooLong'
|
||||
| 'invalidGroupNameTooShort'
|
||||
| 'invalidNumberError'
|
||||
| 'failedResolveOns'
|
||||
| 'autoUpdateSettingTitle'
|
||||
| 'autoUpdateSettingDescription'
|
||||
| 'autoUpdateNewVersionTitle'
|
||||
| 'autoUpdateNewVersionMessage'
|
||||
| 'autoUpdateNewVersionInstructions'
|
||||
| 'autoUpdateRestartButtonLabel'
|
||||
| 'autoUpdateLaterButtonLabel'
|
||||
| 'autoUpdateDownloadButtonLabel'
|
||||
| 'autoUpdateDownloadedMessage'
|
||||
| 'autoUpdateDownloadInstructions'
|
||||
| 'leftTheGroup'
|
||||
| 'multipleLeftTheGroup'
|
||||
| 'updatedTheGroup'
|
||||
| 'titleIsNow'
|
||||
| 'invalidOldPassword'
|
||||
| 'invalidOpenGroupUrl'
|
||||
| 'invalidPassword'
|
||||
| 'invalidPubkeyFormat'
|
||||
| 'invalidSessionId'
|
||||
| 'inviteContacts'
|
||||
| 'join'
|
||||
| 'joinACommunity'
|
||||
| 'joinOpenGroup'
|
||||
| 'joinOpenGroupAfterInvitationConfirmationDesc'
|
||||
| 'joinOpenGroupAfterInvitationConfirmationTitle'
|
||||
| 'joinedTheGroup'
|
||||
| 'multipleJoinedTheGroup'
|
||||
| 'keepDisabled'
|
||||
| 'kickedFromTheGroup'
|
||||
| 'multipleKickedFromTheGroup'
|
||||
| 'block'
|
||||
| 'unblock'
|
||||
| 'unblocked'
|
||||
| 'blocked'
|
||||
| 'blockedSettingsTitle'
|
||||
| 'conversationsSettingsTitle'
|
||||
| 'unbanUser'
|
||||
| 'userUnbanned'
|
||||
| 'userUnbanFailed'
|
||||
| 'banUser'
|
||||
| 'banUserAndDeleteAll'
|
||||
| 'userBanned'
|
||||
| 'userBanFailed'
|
||||
| 'leaveGroup'
|
||||
| 'learnMore'
|
||||
| 'leaveAndRemoveForEveryone'
|
||||
| 'leaveGroup'
|
||||
| 'leaveGroupConfirmation'
|
||||
| 'leaveGroupConfirmationAdmin'
|
||||
| 'cannotRemoveCreatorFromGroup'
|
||||
| 'cannotRemoveCreatorFromGroupDesc'
|
||||
| 'noContactsForGroup'
|
||||
| 'failedToAddAsModerator'
|
||||
| 'failedToRemoveFromModerator'
|
||||
| 'copyMessage'
|
||||
| 'selectMessage'
|
||||
| 'editGroup'
|
||||
| 'editGroupName'
|
||||
| 'updateGroupDialogTitle'
|
||||
| 'showRecoveryPhrase'
|
||||
| 'yourSessionID'
|
||||
| 'setAccountPasswordTitle'
|
||||
| 'setAccountPasswordDescription'
|
||||
| 'changeAccountPasswordTitle'
|
||||
| 'changeAccountPasswordDescription'
|
||||
| 'removeAccountPasswordTitle'
|
||||
| 'removeAccountPasswordDescription'
|
||||
| 'enterPassword'
|
||||
| 'confirmPassword'
|
||||
| 'enterNewPassword'
|
||||
| 'confirmNewPassword'
|
||||
| 'showRecoveryPhrasePasswordRequest'
|
||||
| 'recoveryPhraseSavePromptMain'
|
||||
| 'invalidOpenGroupUrl'
|
||||
| 'copiedToClipboard'
|
||||
| 'passwordViewTitle'
|
||||
| 'password'
|
||||
| 'setPassword'
|
||||
| 'changePassword'
|
||||
| 'createPassword'
|
||||
| 'removePassword'
|
||||
| 'leftTheGroup'
|
||||
| 'lightboxImageAlt'
|
||||
| 'linkDevice'
|
||||
| 'linkPreviewDescription'
|
||||
| 'linkPreviewsConfirmMessage'
|
||||
| 'linkPreviewsTitle'
|
||||
| 'linkVisitWarningMessage'
|
||||
| 'linkVisitWarningTitle'
|
||||
| 'loading'
|
||||
| 'mainMenuEdit'
|
||||
| 'mainMenuFile'
|
||||
| 'mainMenuHelp'
|
||||
| 'mainMenuView'
|
||||
| 'mainMenuWindow'
|
||||
| 'markAllAsRead'
|
||||
| 'markUnread'
|
||||
| 'maxPasswordAttempts'
|
||||
| 'typeInOldPassword'
|
||||
| 'invalidOldPassword'
|
||||
| 'invalidPassword'
|
||||
| 'noGivenPassword'
|
||||
| 'passwordsDoNotMatch'
|
||||
| 'setPasswordInvalid'
|
||||
| 'changePasswordInvalid'
|
||||
| 'removePasswordInvalid'
|
||||
| 'setPasswordTitle'
|
||||
| 'changePasswordTitle'
|
||||
| 'removePasswordTitle'
|
||||
| 'setPasswordToastDescription'
|
||||
| 'changePasswordToastDescription'
|
||||
| 'removePasswordToastDescription'
|
||||
| 'publicChatExists'
|
||||
| 'connectToServerFail'
|
||||
| 'connectingToServer'
|
||||
| 'connectToServerSuccess'
|
||||
| 'setPasswordFail'
|
||||
| 'passwordLengthError'
|
||||
| 'passwordTypeError'
|
||||
| 'passwordCharacterError'
|
||||
| 'remove'
|
||||
| 'invalidSessionId'
|
||||
| 'invalidPubkeyFormat'
|
||||
| 'emptyGroupNameError'
|
||||
| 'editProfileModalTitle'
|
||||
| 'groupNamePlaceholder'
|
||||
| 'inviteContacts'
|
||||
| 'addModerators'
|
||||
| 'removeModerators'
|
||||
| 'addAsModerator'
|
||||
| 'removeFromModerators'
|
||||
| 'add'
|
||||
| 'addingContacts'
|
||||
| 'noContactsToAdd'
|
||||
| 'noMembersInThisGroup'
|
||||
| 'noModeratorsToRemove'
|
||||
| 'onlyAdminCanRemoveMembers'
|
||||
| 'onlyAdminCanRemoveMembersDesc'
|
||||
| 'createAccount'
|
||||
| 'startInTrayTitle'
|
||||
| 'startInTrayDescription'
|
||||
| 'yourUniqueSessionID'
|
||||
| 'allUsersAreRandomly...'
|
||||
| 'getStarted'
|
||||
| 'createSessionID'
|
||||
| 'recoveryPhrase'
|
||||
| 'enterRecoveryPhrase'
|
||||
| 'displayName'
|
||||
| 'anonymous'
|
||||
| 'removeResidueMembers'
|
||||
| 'enterDisplayName'
|
||||
| 'continueYourSession'
|
||||
| 'linkDevice'
|
||||
| 'restoreUsingRecoveryPhrase'
|
||||
| 'or'
|
||||
| 'ByUsingThisService...'
|
||||
| 'beginYourSession'
|
||||
| 'welcomeToYourSession'
|
||||
| 'searchFor...'
|
||||
| 'searchForContactsOnly'
|
||||
| 'enterSessionID'
|
||||
| 'enterSessionIDOfRecipient'
|
||||
| 'message'
|
||||
| 'appearanceSettingsTitle'
|
||||
| 'privacySettingsTitle'
|
||||
| 'notificationsSettingsTitle'
|
||||
| 'audioNotificationsSettingsTitle'
|
||||
| 'notificationsSettingsContent'
|
||||
| 'notificationPreview'
|
||||
| 'recoveryPhraseEmpty'
|
||||
| 'displayNameEmpty'
|
||||
| 'displayNameTooLong'
|
||||
| 'maximumAttachments'
|
||||
| 'media'
|
||||
| 'mediaEmptyState'
|
||||
| 'mediaMessage'
|
||||
| 'mediaPermissionsDescription'
|
||||
| 'mediaPermissionsTitle'
|
||||
| 'members'
|
||||
| 'activeMembers'
|
||||
| 'join'
|
||||
| 'joinOpenGroup'
|
||||
| 'createGroup'
|
||||
| 'create'
|
||||
| 'createClosedGroupNamePrompt'
|
||||
| 'createClosedGroupPlaceholder'
|
||||
| 'openGroupURL'
|
||||
| 'enterAnOpenGroupURL'
|
||||
| 'message'
|
||||
| 'messageBody'
|
||||
| 'messageBodyMissing'
|
||||
| 'messageDeletedPlaceholder'
|
||||
| 'messageDeletionForbidden'
|
||||
| 'messageRequestAccepted'
|
||||
| 'messageRequestAcceptedOurs'
|
||||
| 'messageRequestAcceptedOursNoName'
|
||||
| 'messageRequestPending'
|
||||
| 'messageRequests'
|
||||
| 'messagesHeader'
|
||||
| 'moreInformation'
|
||||
| 'multipleJoinedTheGroup'
|
||||
| 'multipleKickedFromTheGroup'
|
||||
| 'multipleLeftTheGroup'
|
||||
| 'mustBeApproved'
|
||||
| 'nameAndMessage'
|
||||
| 'nameOnly'
|
||||
| 'newMessage'
|
||||
| 'newMessages'
|
||||
| 'next'
|
||||
| 'invalidGroupNameTooShort'
|
||||
| 'invalidGroupNameTooLong'
|
||||
| 'pickClosedGroupMember'
|
||||
| 'closedGroupMaxSize'
|
||||
| 'nicknamePlaceholder'
|
||||
| 'noAudioInputFound'
|
||||
| 'noAudioOutputFound'
|
||||
| 'noBlockedContacts'
|
||||
| 'userAddedToModerators'
|
||||
| 'userRemovedFromModerators'
|
||||
| 'orJoinOneOfThese'
|
||||
| 'helpUsTranslateSession'
|
||||
| 'closedGroupInviteFailTitle'
|
||||
| 'closedGroupInviteFailTitlePlural'
|
||||
| 'closedGroupInviteFailMessage'
|
||||
| 'closedGroupInviteFailMessagePlural'
|
||||
| 'closedGroupInviteOkText'
|
||||
| 'closedGroupInviteSuccessTitlePlural'
|
||||
| 'closedGroupInviteSuccessTitle'
|
||||
| 'closedGroupInviteSuccessMessage'
|
||||
| 'noCameraFound'
|
||||
| 'noContactsForGroup'
|
||||
| 'noContactsToAdd'
|
||||
| 'noGivenPassword'
|
||||
| 'noMediaUntilApproved'
|
||||
| 'noMembersInThisGroup'
|
||||
| 'noMessageRequestsPending'
|
||||
| 'noMessagesInBlindedDisabledMsgRequests'
|
||||
| 'noMessagesInEverythingElse'
|
||||
| 'noMessagesInNoteToSelf'
|
||||
| 'noMessagesInReadOnly'
|
||||
| 'noModeratorsToRemove'
|
||||
| 'noNameOrMessage'
|
||||
| 'noSearchResults'
|
||||
| 'noteToSelf'
|
||||
| 'notificationForConvo'
|
||||
| 'notificationForConvo_all'
|
||||
| 'notificationForConvo_disabled'
|
||||
| 'notificationForConvo_mentions_only'
|
||||
| 'onionPathIndicatorTitle'
|
||||
| 'notificationFrom'
|
||||
| 'notificationMostRecent'
|
||||
| 'notificationMostRecentFrom'
|
||||
| 'notificationPreview'
|
||||
| 'notificationSettingsDialog'
|
||||
| 'notificationSubtitle'
|
||||
| 'notificationsSettingsContent'
|
||||
| 'notificationsSettingsTitle'
|
||||
| 'oceanDarkThemeTitle'
|
||||
| 'oceanLightThemeTitle'
|
||||
| 'offline'
|
||||
| 'ok'
|
||||
| 'oneNonImageAtATimeToast'
|
||||
| 'onionPathIndicatorDescription'
|
||||
| 'unknownCountry'
|
||||
| 'device'
|
||||
| 'destination'
|
||||
| 'learnMore'
|
||||
| 'linkVisitWarningTitle'
|
||||
| 'linkVisitWarningMessage'
|
||||
| 'onionPathIndicatorTitle'
|
||||
| 'onlyAdminCanRemoveMembers'
|
||||
| 'onlyAdminCanRemoveMembersDesc'
|
||||
| 'open'
|
||||
| 'audioMessageAutoplayTitle'
|
||||
| 'audioMessageAutoplayDescription'
|
||||
| 'clickToTrustContact'
|
||||
| 'trustThisContactDialogTitle'
|
||||
| 'trustThisContactDialogDescription'
|
||||
| 'openGroupInvitation'
|
||||
| 'openGroupURL'
|
||||
| 'openMessageRequestInbox'
|
||||
| 'openMessageRequestInboxDescription'
|
||||
| 'or'
|
||||
| 'orJoinOneOfThese'
|
||||
| 'originalMessageNotFound'
|
||||
| 'otherPlural'
|
||||
| 'otherSingular'
|
||||
| 'password'
|
||||
| 'passwordCharacterError'
|
||||
| 'passwordLengthError'
|
||||
| 'passwordTypeError'
|
||||
| 'passwordViewTitle'
|
||||
| 'passwordsDoNotMatch'
|
||||
| 'permissionsSettingsTitle'
|
||||
| 'photo'
|
||||
| 'pickClosedGroupMember'
|
||||
| 'pinConversation'
|
||||
| 'unpinConversation'
|
||||
| 'markUnread'
|
||||
| 'showUserDetails'
|
||||
| 'sendRecoveryPhraseTitle'
|
||||
| 'sendRecoveryPhraseMessage'
|
||||
| 'dialogClearAllDataDeletionFailedTitle'
|
||||
| 'dialogClearAllDataDeletionFailedDesc'
|
||||
| 'dialogClearAllDataDeletionFailedTitleQuestion'
|
||||
| 'dialogClearAllDataDeletionFailedMultiple'
|
||||
| 'dialogClearAllDataDeletionQuestion'
|
||||
| 'clearDevice'
|
||||
| 'tryAgain'
|
||||
| 'areYouSureClearDevice'
|
||||
| 'deviceOnly'
|
||||
| 'entireAccount'
|
||||
| 'areYouSureDeleteDeviceOnly'
|
||||
| 'areYouSureDeleteEntireAccount'
|
||||
| 'iAmSure'
|
||||
| 'recoveryPhraseSecureTitle'
|
||||
| 'recoveryPhraseRevealMessage'
|
||||
| 'pleaseWaitOpenAndOptimizeDb'
|
||||
| 'previewThumbnail'
|
||||
| 'primaryColor'
|
||||
| 'primaryColorBlue'
|
||||
| 'primaryColorGreen'
|
||||
| 'primaryColorOrange'
|
||||
| 'primaryColorPink'
|
||||
| 'primaryColorPurple'
|
||||
| 'primaryColorRed'
|
||||
| 'primaryColorYellow'
|
||||
| 'privacySettingsTitle'
|
||||
| 'pruneSettingDescription'
|
||||
| 'pruneSettingTitle'
|
||||
| 'publicChatExists'
|
||||
| 'quoteThumbnailAlt'
|
||||
| 'rateLimitReactMessage'
|
||||
| 'reactionListCountPlural'
|
||||
| 'reactionListCountSingular'
|
||||
| 'reactionNotification'
|
||||
| 'reactionPopup'
|
||||
| 'reactionPopupMany'
|
||||
| 'reactionPopupOne'
|
||||
| 'reactionPopupThree'
|
||||
| 'reactionPopupTwo'
|
||||
| 'readReceiptSettingDescription'
|
||||
| 'readReceiptSettingTitle'
|
||||
| 'received'
|
||||
| 'recoveryPhrase'
|
||||
| 'recoveryPhraseEmpty'
|
||||
| 'recoveryPhraseRevealButtonText'
|
||||
| 'notificationSubtitle'
|
||||
| 'surveyTitle'
|
||||
| 'faq'
|
||||
| 'support'
|
||||
| 'clearAll'
|
||||
| 'clearDataSettingsTitle'
|
||||
| 'messageRequests'
|
||||
| 'blindedMsgReqsSettingTitle'
|
||||
| 'blindedMsgReqsSettingDesc'
|
||||
| 'requestsSubtitle'
|
||||
| 'recoveryPhraseRevealMessage'
|
||||
| 'recoveryPhraseSavePromptMain'
|
||||
| 'recoveryPhraseSecureTitle'
|
||||
| 'remove'
|
||||
| 'removeAccountPasswordDescription'
|
||||
| 'removeAccountPasswordTitle'
|
||||
| 'removeFromModerators'
|
||||
| 'removeModerators'
|
||||
| 'removePassword'
|
||||
| 'removePasswordInvalid'
|
||||
| 'removePasswordTitle'
|
||||
| 'removePasswordToastDescription'
|
||||
| 'removeResidueMembers'
|
||||
| 'replyToMessage'
|
||||
| 'replyingToMessage'
|
||||
| 'reportIssue'
|
||||
| 'requestsPlaceholder'
|
||||
| 'hideRequestBannerDescription'
|
||||
| 'incomingCallFrom'
|
||||
| 'requestsSubtitle'
|
||||
| 'resend'
|
||||
| 'respondingToRequestWarning'
|
||||
| 'restoreUsingRecoveryPhrase'
|
||||
| 'ringing'
|
||||
| 'establishingConnection'
|
||||
| 'accept'
|
||||
| 'decline'
|
||||
| 'endCall'
|
||||
| 'permissionsSettingsTitle'
|
||||
| 'helpSettingsTitle'
|
||||
| 'cameraPermissionNeededTitle'
|
||||
| 'cameraPermissionNeeded'
|
||||
| 'unableToCall'
|
||||
| 'unableToCallTitle'
|
||||
| 'callMissed'
|
||||
| 'callMissedTitle'
|
||||
| 'noCameraFound'
|
||||
| 'noAudioInputFound'
|
||||
| 'noAudioOutputFound'
|
||||
| 'callMediaPermissionsTitle'
|
||||
| 'callMissedCausePermission'
|
||||
| 'callMissedNotApproved'
|
||||
| 'callMediaPermissionsDescription'
|
||||
| 'callMediaPermissionsDialogContent'
|
||||
| 'callMediaPermissionsDialogTitle'
|
||||
| 'save'
|
||||
| 'saveLogToDesktop'
|
||||
| 'saved'
|
||||
| 'savedTheFile'
|
||||
| 'searchFor...'
|
||||
| 'searchForContactsOnly'
|
||||
| 'searchMessagesHeader'
|
||||
| 'selectMessage'
|
||||
| 'sendFailed'
|
||||
| 'sendMessage'
|
||||
| 'sendRecoveryPhraseMessage'
|
||||
| 'sendRecoveryPhraseTitle'
|
||||
| 'sent'
|
||||
| 'sessionMessenger'
|
||||
| 'setAccountPasswordDescription'
|
||||
| 'setAccountPasswordTitle'
|
||||
| 'setDisplayPicture'
|
||||
| 'setPassword'
|
||||
| 'setPasswordFail'
|
||||
| 'setPasswordInvalid'
|
||||
| 'setPasswordTitle'
|
||||
| 'setPasswordToastDescription'
|
||||
| 'settingsHeader'
|
||||
| 'shareBugDetails'
|
||||
| 'show'
|
||||
| 'showDebugLog'
|
||||
| 'showRecoveryPhrase'
|
||||
| 'showRecoveryPhrasePasswordRequest'
|
||||
| 'showUserDetails'
|
||||
| 'someOfYourDeviceUseOutdatedVersion'
|
||||
| 'spellCheckDescription'
|
||||
| 'spellCheckDirty'
|
||||
| 'spellCheckTitle'
|
||||
| 'stagedImageAttachment'
|
||||
| 'stagedPreviewThumbnail'
|
||||
| 'startConversation'
|
||||
| 'startInTrayDescription'
|
||||
| 'startInTrayTitle'
|
||||
| 'startNewConversationBy...'
|
||||
| 'startedACall'
|
||||
| 'answeredACall'
|
||||
| 'support'
|
||||
| 'surveyTitle'
|
||||
| 'themesSettingTitle'
|
||||
| 'theyChangedTheTimer'
|
||||
| 'thisMonth'
|
||||
| 'thisWeek'
|
||||
| 'timerOption_0_seconds'
|
||||
| 'timerOption_0_seconds_abbreviated'
|
||||
| 'timerOption_10_seconds'
|
||||
| 'timerOption_10_seconds_abbreviated'
|
||||
| 'timerOption_12_hours'
|
||||
| 'timerOption_12_hours_abbreviated'
|
||||
| 'timerOption_1_day'
|
||||
| 'timerOption_1_day_abbreviated'
|
||||
| 'timerOption_1_hour'
|
||||
| 'timerOption_1_hour_abbreviated'
|
||||
| 'timerOption_1_minute'
|
||||
| 'timerOption_1_minute_abbreviated'
|
||||
| 'timerOption_1_week'
|
||||
| 'timerOption_1_week_abbreviated'
|
||||
| 'timerOption_2_weeks'
|
||||
| 'timerOption_2_weeks_abbreviated'
|
||||
| 'timerOption_30_minutes'
|
||||
| 'timerOption_30_minutes_abbreviated'
|
||||
| 'timerOption_30_seconds'
|
||||
| 'timerOption_30_seconds_abbreviated'
|
||||
| 'timerOption_5_minutes'
|
||||
| 'timerOption_5_minutes_abbreviated'
|
||||
| 'timerOption_5_seconds'
|
||||
| 'timerOption_5_seconds_abbreviated'
|
||||
| 'timerOption_6_hours'
|
||||
| 'timerOption_6_hours_abbreviated'
|
||||
| 'timerSetOnSync'
|
||||
| 'timerSetTo'
|
||||
| 'titleIsNow'
|
||||
| 'to'
|
||||
| 'today'
|
||||
| 'tookAScreenshot'
|
||||
| 'trimDatabase'
|
||||
| 'trimDatabaseDescription'
|
||||
| 'trimDatabaseConfirmationBody'
|
||||
| 'pleaseWaitOpenAndOptimizeDb'
|
||||
| 'messageRequestPending'
|
||||
| 'messageRequestAccepted'
|
||||
| 'messageRequestAcceptedOurs'
|
||||
| 'messageRequestAcceptedOursNoName'
|
||||
| 'declineRequestMessage'
|
||||
| 'respondingToRequestWarning'
|
||||
| 'hideRequestBanner'
|
||||
| 'openMessageRequestInbox'
|
||||
| 'noMessageRequestsPending'
|
||||
| 'noMediaUntilApproved'
|
||||
| 'mustBeApproved'
|
||||
| 'trimDatabaseDescription'
|
||||
| 'trustThisContactDialogDescription'
|
||||
| 'trustThisContactDialogTitle'
|
||||
| 'tryAgain'
|
||||
| 'typeInOldPassword'
|
||||
| 'typingAlt'
|
||||
| 'typingIndicatorsSettingDescription'
|
||||
| 'typingIndicatorsSettingTitle'
|
||||
| 'unableToCall'
|
||||
| 'unableToCallTitle'
|
||||
| 'unableToLoadAttachment'
|
||||
| 'unbanUser'
|
||||
| 'unblock'
|
||||
| 'unblockToSend'
|
||||
| 'unblocked'
|
||||
| 'unknown'
|
||||
| 'unknownCountry'
|
||||
| 'unpinConversation'
|
||||
| 'unreadMessages'
|
||||
| 'updateGroupDialogTitle'
|
||||
| 'updatedTheGroup'
|
||||
| 'userAddedToModerators'
|
||||
| 'userBanFailed'
|
||||
| 'userBanned'
|
||||
| 'userRemovedFromModerators'
|
||||
| 'userUnbanFailed'
|
||||
| 'userUnbanned'
|
||||
| 'video'
|
||||
| 'videoAttachmentAlt'
|
||||
| 'viewMenuResetZoom'
|
||||
| 'viewMenuToggleDevTools'
|
||||
| 'viewMenuToggleFullScreen'
|
||||
| 'viewMenuZoomIn'
|
||||
| 'viewMenuZoomOut'
|
||||
| 'voiceMessage'
|
||||
| 'welcomeToYourSession'
|
||||
| 'windowMenuClose'
|
||||
| 'windowMenuMinimize'
|
||||
| 'windowMenuZoom'
|
||||
| 'yesterday'
|
||||
| 'you'
|
||||
| 'youChangedTheTimer'
|
||||
| 'youDisabledDisappearingMessages'
|
||||
| 'youGotKickedFromGroup'
|
||||
| 'youHaveANewFriendRequest'
|
||||
| 'clearAllConfirmationTitle'
|
||||
| 'clearAllConfirmationBody'
|
||||
| 'noMessagesInReadOnly'
|
||||
| 'noMessagesInBlindedDisabledMsgRequests'
|
||||
| 'noMessagesInNoteToSelf'
|
||||
| 'noMessagesInEverythingElse'
|
||||
| 'hideBanner'
|
||||
| 'someOfYourDeviceUseOutdatedVersion'
|
||||
| 'openMessageRequestInboxDescription'
|
||||
| 'clearAllReactions'
|
||||
| 'expandedReactionsText'
|
||||
| 'reactionNotification'
|
||||
| 'rateLimitReactMessage'
|
||||
| 'otherSingular'
|
||||
| 'otherPlural'
|
||||
| 'reactionPopup'
|
||||
| 'reactionPopupOne'
|
||||
| 'reactionPopupTwo'
|
||||
| 'reactionPopupThree'
|
||||
| 'reactionPopupMany'
|
||||
| 'reactionListCountSingular'
|
||||
| 'reactionListCountPlural';
|
||||
| 'youLeftTheGroup'
|
||||
| 'yourSessionID'
|
||||
| 'yourUniqueSessionID'
|
||||
| 'zoomFactorSettingTitle';
|
||||
|
Loading…
Reference in New Issue