mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-09-15 01:24:23 +08:00
Cleanup and simplify i18n code
There's no need for I18N_NOTIFICATION_DATA and I18N_NOTIFICATION_MAP Also bugfix: NEW_PASSWORD_FORBIDDENT => NEW_PASSWORD_FORBIDDEN
This commit is contained in:
parent
950579c7f5
commit
0d13484cdc
20 changed files with 45 additions and 142 deletions
|
@ -8,7 +8,7 @@ import {
|
|||
|
||||
import { KeyState } from 'Common/Enums';
|
||||
import { rootAdmin, rootUser } from 'Common/Links';
|
||||
import { initOnStartOrLangChange, initNotificationLanguage } from 'Common/Translator';
|
||||
import { initOnStartOrLangChange } from 'Common/Translator';
|
||||
|
||||
import LanguageStore from 'Stores/Language';
|
||||
import ThemeStore from 'Stores/Theme';
|
||||
|
@ -94,7 +94,7 @@ class AbstractApp {
|
|||
ko.components.register('CheckboxSimple', require('Component/Checkbox').default);
|
||||
}
|
||||
|
||||
initOnStartOrLangChange(initNotificationLanguage);
|
||||
initOnStartOrLangChange();
|
||||
|
||||
if (!mobile) {
|
||||
// mobile
|
||||
|
|
|
@ -138,9 +138,9 @@ export const UploadErrorCode = {
|
|||
Normal: 0,
|
||||
FileIsTooBig: 1,
|
||||
FilePartiallyUploaded: 2,
|
||||
FileNoUploaded: 3,
|
||||
NoFileUploaded: 3,
|
||||
MissingTempFolder: 4,
|
||||
FileOnSaveingError: 5,
|
||||
OnSavingFile: 5,
|
||||
FileType: 98,
|
||||
Unknown: 99
|
||||
};
|
||||
|
@ -353,9 +353,6 @@ export const Notification = {
|
|||
AccessError: 103,
|
||||
ConnectionError: 104,
|
||||
CaptchaError: 105,
|
||||
SocialFacebookLoginAccessDisable: 106,
|
||||
SocialTwitterLoginAccessDisable: 107,
|
||||
SocialGoogleLoginAccessDisable: 108,
|
||||
DomainNotAllowed: 109,
|
||||
AccountNotAllowed: 110,
|
||||
|
||||
|
@ -416,8 +413,6 @@ export const Notification = {
|
|||
JsonParse: 952,
|
||||
// JsonTimeout: 953,
|
||||
|
||||
UnknownNotification: 999,
|
||||
UnknownNotification: 998,
|
||||
UnknownError: 999
|
||||
|
||||
,getKeyByValue: function(v) { return Object.keys(this).find(key => this[key] === v); }
|
||||
};
|
||||
|
|
|
@ -4,74 +4,7 @@ import { langLink } from 'Common/Links';
|
|||
|
||||
let I18N_DATA = window.rainloopI18N || {};
|
||||
|
||||
const doc = document,
|
||||
I18N_NOTIFICATION_DATA = {},
|
||||
I18N_NOTIFICATION_MAP = [
|
||||
[Notification.InvalidToken, 'NOTIFICATIONS/INVALID_TOKEN'],
|
||||
[Notification.InvalidToken, 'NOTIFICATIONS/INVALID_TOKEN'],
|
||||
[Notification.AuthError, 'NOTIFICATIONS/AUTH_ERROR'],
|
||||
[Notification.AccessError, 'NOTIFICATIONS/ACCESS_ERROR'],
|
||||
[Notification.ConnectionError, 'NOTIFICATIONS/CONNECTION_ERROR'],
|
||||
[Notification.CaptchaError, 'NOTIFICATIONS/CAPTCHA_ERROR'],
|
||||
[Notification.SocialFacebookLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE'],
|
||||
[Notification.SocialTwitterLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE'],
|
||||
[Notification.SocialGoogleLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE'],
|
||||
[Notification.DomainNotAllowed, 'NOTIFICATIONS/DOMAIN_NOT_ALLOWED'],
|
||||
[Notification.AccountNotAllowed, 'NOTIFICATIONS/ACCOUNT_NOT_ALLOWED'],
|
||||
|
||||
[Notification.AccountTwoFactorAuthRequired, 'NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED'],
|
||||
[Notification.AccountTwoFactorAuthError, 'NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR'],
|
||||
|
||||
[Notification.CouldNotSaveNewPassword, 'NOTIFICATIONS/COULD_NOT_SAVE_NEW_PASSWORD'],
|
||||
[Notification.CurrentPasswordIncorrect, 'NOTIFICATIONS/CURRENT_PASSWORD_INCORRECT'],
|
||||
[Notification.NewPasswordShort, 'NOTIFICATIONS/NEW_PASSWORD_SHORT'],
|
||||
[Notification.NewPasswordWeak, 'NOTIFICATIONS/NEW_PASSWORD_WEAK'],
|
||||
[Notification.NewPasswordForbidden, 'NOTIFICATIONS/NEW_PASSWORD_FORBIDDENT'],
|
||||
|
||||
[Notification.ContactsSyncError, 'NOTIFICATIONS/CONTACTS_SYNC_ERROR'],
|
||||
|
||||
[Notification.CantGetMessageList, 'NOTIFICATIONS/CANT_GET_MESSAGE_LIST'],
|
||||
[Notification.CantGetMessage, 'NOTIFICATIONS/CANT_GET_MESSAGE'],
|
||||
[Notification.CantDeleteMessage, 'NOTIFICATIONS/CANT_DELETE_MESSAGE'],
|
||||
[Notification.CantMoveMessage, 'NOTIFICATIONS/CANT_MOVE_MESSAGE'],
|
||||
[Notification.CantCopyMessage, 'NOTIFICATIONS/CANT_MOVE_MESSAGE'],
|
||||
|
||||
[Notification.CantSaveMessage, 'NOTIFICATIONS/CANT_SAVE_MESSAGE'],
|
||||
[Notification.CantSendMessage, 'NOTIFICATIONS/CANT_SEND_MESSAGE'],
|
||||
[Notification.InvalidRecipients, 'NOTIFICATIONS/INVALID_RECIPIENTS'],
|
||||
|
||||
[Notification.CantSaveFilters, 'NOTIFICATIONS/CANT_SAVE_FILTERS'],
|
||||
[Notification.CantGetFilters, 'NOTIFICATIONS/CANT_GET_FILTERS'],
|
||||
[Notification.FiltersAreNotCorrect, 'NOTIFICATIONS/FILTERS_ARE_NOT_CORRECT'],
|
||||
|
||||
[Notification.CantCreateFolder, 'NOTIFICATIONS/CANT_CREATE_FOLDER'],
|
||||
[Notification.CantRenameFolder, 'NOTIFICATIONS/CANT_RENAME_FOLDER'],
|
||||
[Notification.CantDeleteFolder, 'NOTIFICATIONS/CANT_DELETE_FOLDER'],
|
||||
[Notification.CantDeleteNonEmptyFolder, 'NOTIFICATIONS/CANT_DELETE_NON_EMPTY_FOLDER'],
|
||||
[Notification.CantSubscribeFolder, 'NOTIFICATIONS/CANT_SUBSCRIBE_FOLDER'],
|
||||
[Notification.CantUnsubscribeFolder, 'NOTIFICATIONS/CANT_UNSUBSCRIBE_FOLDER'],
|
||||
|
||||
[Notification.CantSaveSettings, 'NOTIFICATIONS/CANT_SAVE_SETTINGS'],
|
||||
[Notification.CantSavePluginSettings, 'NOTIFICATIONS/CANT_SAVE_PLUGIN_SETTINGS'],
|
||||
|
||||
[Notification.DomainAlreadyExists, 'NOTIFICATIONS/DOMAIN_ALREADY_EXISTS'],
|
||||
|
||||
[Notification.CantInstallPackage, 'NOTIFICATIONS/CANT_INSTALL_PACKAGE'],
|
||||
[Notification.CantDeletePackage, 'NOTIFICATIONS/CANT_DELETE_PACKAGE'],
|
||||
[Notification.InvalidPluginPackage, 'NOTIFICATIONS/INVALID_PLUGIN_PACKAGE'],
|
||||
[Notification.UnsupportedPluginPackage, 'NOTIFICATIONS/UNSUPPORTED_PLUGIN_PACKAGE'],
|
||||
|
||||
[Notification.DemoSendMessageError, 'NOTIFICATIONS/DEMO_SEND_MESSAGE_ERROR'],
|
||||
[Notification.DemoAccountError, 'NOTIFICATIONS/DEMO_ACCOUNT_ERROR'],
|
||||
|
||||
[Notification.AccountAlreadyExists, 'NOTIFICATIONS/ACCOUNT_ALREADY_EXISTS'],
|
||||
[Notification.AccountDoesNotExist, 'NOTIFICATIONS/ACCOUNT_DOES_NOT_EXIST'],
|
||||
|
||||
[Notification.MailServerError, 'NOTIFICATIONS/MAIL_SERVER_ERROR'],
|
||||
[Notification.InvalidInputArgument, 'NOTIFICATIONS/INVALID_INPUT_ARGUMENT'],
|
||||
[Notification.UnknownNotification, 'NOTIFICATIONS/UNKNOWN_ERROR'],
|
||||
[Notification.UnknownError, 'NOTIFICATIONS/UNKNOWN_ERROR']
|
||||
];
|
||||
const doc = document;
|
||||
|
||||
export const trigger = ko.observable(false);
|
||||
|
||||
|
@ -120,7 +53,9 @@ const i18nToNode = element => {
|
|||
element.textContent = i18n(key);
|
||||
}
|
||||
}
|
||||
};
|
||||
},
|
||||
getKeyByValue = (o, v) => Object.keys(o).find(key => o[key] === v);
|
||||
|
||||
|
||||
/**
|
||||
* @param {Object} elements
|
||||
|
@ -132,13 +67,6 @@ export function i18nToNodes(element) {
|
|||
, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {void}
|
||||
*/
|
||||
export function initNotificationLanguage() {
|
||||
I18N_NOTIFICATION_MAP.forEach(item => I18N_NOTIFICATION_DATA[item[0]] = i18n(item[1]));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Function} startCallback
|
||||
* @param {Function=} langCallback = null
|
||||
|
@ -149,6 +77,15 @@ export function initOnStartOrLangChange(startCallback, langCallback = null) {
|
|||
langCallback && trigger.subscribe(langCallback);
|
||||
}
|
||||
|
||||
function getNotificationMessage(code) {
|
||||
let key = getKeyByValue(Notification, code);
|
||||
if (key) {
|
||||
key = key.replace('CantCopyMessage', 'CantMoveMessage').replace('UnknownNotification', 'UnknownError');
|
||||
key = 'NOTIFICATIONS/' + key.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase();
|
||||
return I18N_DATA[key];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {number} code
|
||||
* @param {*=} message = ''
|
||||
|
@ -162,11 +99,9 @@ export function getNotification(code, message = '', defCode = null) {
|
|||
}
|
||||
|
||||
defCode = defCode ? parseInt(defCode, 10) || 0 : 0;
|
||||
return undefined === I18N_NOTIFICATION_DATA[code]
|
||||
? defCode && undefined === I18N_NOTIFICATION_DATA[defCode]
|
||||
? I18N_NOTIFICATION_DATA[defCode]
|
||||
: ''
|
||||
: I18N_NOTIFICATION_DATA[code];
|
||||
return getNotificationMessage(code)
|
||||
|| getNotificationMessage(defCode)
|
||||
|| '';
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -185,32 +120,19 @@ export function getNotificationFromResponse(response, defCode = Notification.Unk
|
|||
* @returns {string}
|
||||
*/
|
||||
export function getUploadErrorDescByCode(code) {
|
||||
let result = '';
|
||||
switch (parseInt(code, 10) || 0) {
|
||||
let result = 'UNKNOWN';
|
||||
code = parseInt(code, 10) || 0;
|
||||
switch (code) {
|
||||
case UploadErrorCode.FileIsTooBig:
|
||||
result = i18n('UPLOAD/ERROR_FILE_IS_TOO_BIG');
|
||||
break;
|
||||
case UploadErrorCode.FilePartiallyUploaded:
|
||||
result = i18n('UPLOAD/ERROR_FILE_PARTIALLY_UPLOADED');
|
||||
break;
|
||||
case UploadErrorCode.FileNoUploaded:
|
||||
result = i18n('UPLOAD/ERROR_NO_FILE_UPLOADED');
|
||||
break;
|
||||
case UploadErrorCode.NoFileUploaded:
|
||||
case UploadErrorCode.MissingTempFolder:
|
||||
result = i18n('UPLOAD/ERROR_MISSING_TEMP_FOLDER');
|
||||
break;
|
||||
case UploadErrorCode.FileOnSaveingError:
|
||||
result = i18n('UPLOAD/ERROR_ON_SAVING_FILE');
|
||||
break;
|
||||
case UploadErrorCode.OnSavingFile:
|
||||
case UploadErrorCode.FileType:
|
||||
result = i18n('UPLOAD/ERROR_FILE_TYPE');
|
||||
break;
|
||||
default:
|
||||
result = i18n('UPLOAD/ERROR_UNKNOWN');
|
||||
result = getKeyByValue(UploadErrorCode, code).replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase();
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
return i18n('UPLOAD/ERROR_' + result);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1112,7 +1112,7 @@ class ComposePopupView extends AbstractViewNext {
|
|||
.waiting(false)
|
||||
.uploading(false)
|
||||
.complete(true)
|
||||
.error(getUploadErrorDescByCode(UploadErrorCode.FileNoUploaded));
|
||||
.error(getUploadErrorDescByCode(UploadErrorCode.NoFileUploaded));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -9,9 +9,6 @@ class Notifications
|
|||
const AccessError = 103;
|
||||
const ConnectionError = 104;
|
||||
const CaptchaError = 105;
|
||||
const SocialFacebookLoginAccessDisable = 106;
|
||||
const SocialTwitterLoginAccessDisable = 107;
|
||||
const SocialGoogleLoginAccessDisable = 108;
|
||||
const DomainNotAllowed = 109;
|
||||
const AccountNotAllowed = 110;
|
||||
|
||||
|
@ -84,9 +81,6 @@ class Notifications
|
|||
self::AccessError => 'AccessError',
|
||||
self::ConnectionError => 'ConnectionError',
|
||||
self::CaptchaError => 'CaptchaError',
|
||||
self::SocialFacebookLoginAccessDisable => 'SocialFacebookLoginAccessDisable',
|
||||
self::SocialTwitterLoginAccessDisable => 'SocialTwitterLoginAccessDisable',
|
||||
self::SocialGoogleLoginAccessDisable => 'SocialGoogleLoginAccessDisable',
|
||||
self::DomainNotAllowed => 'DomainNotAllowed',
|
||||
self::AccountNotAllowed => 'AccountNotAllowed',
|
||||
self::AccountTwoFactorAuthRequired => 'AccountTwoFactorAuthRequired',
|
||||
|
|
|
@ -175,7 +175,7 @@ en:
|
|||
CURRENT_PASSWORD_INCORRECT: "Current password incorrect"
|
||||
NEW_PASSWORD_SHORT: "Password is too short"
|
||||
NEW_PASSWORD_WEAK: "Password is too easy"
|
||||
NEW_PASSWORD_FORBIDDENT: "Password contains forbidden characters"
|
||||
NEW_PASSWORD_FORBIDDEN: "Password contains forbidden characters"
|
||||
CONTACTS_SYNC_ERROR: "Contacts synchronization error"
|
||||
CANT_GET_MESSAGE_LIST: "Can't get message list"
|
||||
CANT_GET_MESSAGE: "Can't get message"
|
||||
|
|
|
@ -173,7 +173,7 @@ de_DE:
|
|||
CURRENT_PASSWORD_INCORRECT: "Aktuelles Passwort falsch"
|
||||
NEW_PASSWORD_SHORT: "Passwort ist zu kurz"
|
||||
NEW_PASSWORD_WEAK: "Passwort ist zu einfach"
|
||||
NEW_PASSWORD_FORBIDDENT: "Passwort enthält unzulässige Zeichen"
|
||||
NEW_PASSWORD_FORBIDDEN: "Passwort enthält unzulässige Zeichen"
|
||||
CONTACTS_SYNC_ERROR: "Fehler bei Kontakte-Synchronisierung"
|
||||
CANT_GET_MESSAGE_LIST: "Die Nachrichtenliste ist nicht verfügbar"
|
||||
CANT_GET_MESSAGE: "Diese Nachricht ist nicht verfügbar"
|
||||
|
|
|
@ -174,7 +174,7 @@ en_US:
|
|||
CURRENT_PASSWORD_INCORRECT: "Current password incorrect"
|
||||
NEW_PASSWORD_SHORT: "Password is too short"
|
||||
NEW_PASSWORD_WEAK: "Password is too easy"
|
||||
NEW_PASSWORD_FORBIDDENT: "Password contains forbidden characters"
|
||||
NEW_PASSWORD_FORBIDDEN: "Password contains forbidden characters"
|
||||
CONTACTS_SYNC_ERROR: "Contacts synchronization error"
|
||||
CANT_GET_MESSAGE_LIST: "Can't get message list"
|
||||
CANT_GET_MESSAGE: "Can't get message"
|
||||
|
|
|
@ -174,7 +174,7 @@ es_ES:
|
|||
CURRENT_PASSWORD_INCORRECT: "La contraseña actual es incorrecta"
|
||||
NEW_PASSWORD_SHORT: "La contraseña es muy corta"
|
||||
NEW_PASSWORD_WEAK: "La contraseña es muy fácil"
|
||||
NEW_PASSWORD_FORBIDDENT: "La contraseña contiene caracteres prohibidos"
|
||||
NEW_PASSWORD_FORBIDDEN: "La contraseña contiene caracteres prohibidos"
|
||||
CONTACTS_SYNC_ERROR: "Error de sincronización de Contactos"
|
||||
CANT_GET_MESSAGE_LIST: "No se puede obtener la lista de mensajes"
|
||||
CANT_GET_MESSAGE: "No se puede obtener el mensaje"
|
||||
|
|
|
@ -174,7 +174,7 @@ fr_FR:
|
|||
CURRENT_PASSWORD_INCORRECT: "Le mot de passe actuel est incorrect"
|
||||
NEW_PASSWORD_SHORT: "Le mot de passe est trop court"
|
||||
NEW_PASSWORD_WEAK: "Le mot de passe n'est pas assez fort"
|
||||
NEW_PASSWORD_FORBIDDENT: "Le mot de passe contient des caractères invalides"
|
||||
NEW_PASSWORD_FORBIDDEN: "Le mot de passe contient des caractères invalides"
|
||||
CONTACTS_SYNC_ERROR: "Erreur de synchronisation des contacts"
|
||||
CANT_GET_MESSAGE_LIST: "Impossible d'obtenir la liste des messages"
|
||||
CANT_GET_MESSAGE: "Impossible d'obtenir le message"
|
||||
|
|
|
@ -173,7 +173,7 @@ nl_NL:
|
|||
CURRENT_PASSWORD_INCORRECT: "Huidig wachtwoord is onjuist"
|
||||
NEW_PASSWORD_SHORT: "Wachtwoord is te kort"
|
||||
NEW_PASSWORD_WEAK: "Wachtwoord is te gemakkelijk"
|
||||
NEW_PASSWORD_FORBIDDENT: "Wachtwoord bevat verboden karakters"
|
||||
NEW_PASSWORD_FORBIDDEN: "Wachtwoord bevat verboden karakters"
|
||||
CONTACTS_SYNC_ERROR: "Contactpersonen synchronisatie fout"
|
||||
CANT_GET_MESSAGE_LIST: "Kan berichtenlijst niet ophalen"
|
||||
CANT_GET_MESSAGE: "Kan bericht niet ophalen"
|
||||
|
|
|
@ -174,7 +174,7 @@ zh_CN:
|
|||
CURRENT_PASSWORD_INCORRECT: "当前密码不正确"
|
||||
NEW_PASSWORD_SHORT: "密码太短"
|
||||
NEW_PASSWORD_WEAK: "密码过于简单"
|
||||
NEW_PASSWORD_FORBIDDENT: "密码包含禁止使用的字符"
|
||||
NEW_PASSWORD_FORBIDDEN: "密码包含禁止使用的字符"
|
||||
CONTACTS_SYNC_ERROR: "联系人同步错误"
|
||||
CANT_GET_MESSAGE_LIST: "无法获取邮件列表"
|
||||
CANT_GET_MESSAGE: "无法获取邮件"
|
||||
|
@ -221,4 +221,4 @@ zh_CN:
|
|||
BAD_BROWSER_TITLE: "您的浏览器过时了。"
|
||||
BAD_BROWSER_DESC: |
|
||||
为了使用所有特性,
|
||||
下载并安装其中一款浏览器:
|
||||
下载并安装其中一款浏览器:
|
||||
|
|
|
@ -425,7 +425,6 @@ en:
|
|||
LABEL_FILTERS_NAME: "Filters"
|
||||
LABEL_TEMPLATES_NAME: "Templates"
|
||||
LABEL_SECURITY_NAME: "Security"
|
||||
LABEL_SOCIAL_NAME: "Social"
|
||||
LABEL_THEMES_NAME: "Themes"
|
||||
LABEL_CHANGE_PASSWORD_NAME: "Password"
|
||||
LABEL_OPEN_PGP_NAME: "OpenPGP"
|
||||
|
@ -630,7 +629,7 @@ en:
|
|||
CURRENT_PASSWORD_INCORRECT: "Current password incorrect"
|
||||
NEW_PASSWORD_SHORT: "Password is too short"
|
||||
NEW_PASSWORD_WEAK: "Password is too easy"
|
||||
NEW_PASSWORD_FORBIDDENT: "Password contains forbidden characters"
|
||||
NEW_PASSWORD_FORBIDDEN: "Password contains forbidden characters"
|
||||
CONTACTS_SYNC_ERROR: "Contacts synchronization error"
|
||||
CANT_GET_MESSAGE_LIST: "Can't get message list"
|
||||
CANT_GET_MESSAGE: "Can't get message"
|
||||
|
|
|
@ -425,7 +425,6 @@ de_DE:
|
|||
LABEL_FILTERS_NAME: "Filter"
|
||||
LABEL_TEMPLATES_NAME: "Vorlagen"
|
||||
LABEL_SECURITY_NAME: "Sicherheit"
|
||||
LABEL_SOCIAL_NAME: "Social"
|
||||
LABEL_THEMES_NAME: "Themen"
|
||||
LABEL_CHANGE_PASSWORD_NAME: "Passwort"
|
||||
LABEL_OPEN_PGP_NAME: "OpenPGP"
|
||||
|
@ -629,7 +628,7 @@ de_DE:
|
|||
CURRENT_PASSWORD_INCORRECT: "Aktuelles Passwort falsch"
|
||||
NEW_PASSWORD_SHORT: "Passwort ist zu kurz"
|
||||
NEW_PASSWORD_WEAK: "Passwort ist zu einfach"
|
||||
NEW_PASSWORD_FORBIDDENT: "Passwort enthält unzulässige Zeichen"
|
||||
NEW_PASSWORD_FORBIDDEN: "Passwort enthält unzulässige Zeichen"
|
||||
CONTACTS_SYNC_ERROR: "Fehler bei Kontakte-Synchronisierung"
|
||||
CANT_GET_MESSAGE_LIST: "Die Nachrichtenliste ist nicht verfügbar"
|
||||
CANT_GET_MESSAGE: "Diese Nachricht ist nicht verfügbar"
|
||||
|
|
|
@ -425,7 +425,6 @@ en_GB:
|
|||
LABEL_FILTERS_NAME: "Filters"
|
||||
LABEL_TEMPLATES_NAME: "Templates"
|
||||
LABEL_SECURITY_NAME: "Security"
|
||||
LABEL_SOCIAL_NAME: "Social"
|
||||
LABEL_THEMES_NAME: "Themes"
|
||||
LABEL_CHANGE_PASSWORD_NAME: "Password"
|
||||
LABEL_OPEN_PGP_NAME: "OpenPGP"
|
||||
|
@ -630,7 +629,7 @@ en_GB:
|
|||
CURRENT_PASSWORD_INCORRECT: "Current password incorrect"
|
||||
NEW_PASSWORD_SHORT: "Password is too short"
|
||||
NEW_PASSWORD_WEAK: "Password is too easy"
|
||||
NEW_PASSWORD_FORBIDDENT: "Password contains forbidden characters"
|
||||
NEW_PASSWORD_FORBIDDEN: "Password contains forbidden characters"
|
||||
CONTACTS_SYNC_ERROR: "Contacts synchronization error"
|
||||
CANT_GET_MESSAGE_LIST: "Can't get message list"
|
||||
CANT_GET_MESSAGE: "Can't get message"
|
||||
|
|
|
@ -425,7 +425,6 @@ en_US:
|
|||
LABEL_FILTERS_NAME: "Filters"
|
||||
LABEL_TEMPLATES_NAME: "Templates"
|
||||
LABEL_SECURITY_NAME: "Security"
|
||||
LABEL_SOCIAL_NAME: "Social"
|
||||
LABEL_THEMES_NAME: "Themes"
|
||||
LABEL_CHANGE_PASSWORD_NAME: "Password"
|
||||
LABEL_OPEN_PGP_NAME: "OpenPGP"
|
||||
|
@ -630,7 +629,7 @@ en_US:
|
|||
CURRENT_PASSWORD_INCORRECT: "Current password incorrect"
|
||||
NEW_PASSWORD_SHORT: "Password is too short"
|
||||
NEW_PASSWORD_WEAK: "Password is too easy"
|
||||
NEW_PASSWORD_FORBIDDENT: "Password contains forbidden characters"
|
||||
NEW_PASSWORD_FORBIDDEN: "Password contains forbidden characters"
|
||||
CONTACTS_SYNC_ERROR: "Contacts synchronization error"
|
||||
CANT_GET_MESSAGE_LIST: "Can't get message list"
|
||||
CANT_GET_MESSAGE: "Can't get message"
|
||||
|
|
|
@ -426,7 +426,6 @@ es_ES:
|
|||
LABEL_FILTERS_NAME: "Filtros"
|
||||
LABEL_TEMPLATES_NAME: "Plantillas"
|
||||
LABEL_SECURITY_NAME: "Seguridad"
|
||||
LABEL_SOCIAL_NAME: "Social"
|
||||
LABEL_THEMES_NAME: "Temas"
|
||||
LABEL_CHANGE_PASSWORD_NAME: "Contraseña"
|
||||
LABEL_OPEN_PGP_NAME: "OpenPGP"
|
||||
|
@ -630,7 +629,7 @@ es_ES:
|
|||
CURRENT_PASSWORD_INCORRECT: "La contraseña actual es incorrecta"
|
||||
NEW_PASSWORD_SHORT: "La contraseña es muy corta"
|
||||
NEW_PASSWORD_WEAK: "La contraseña es muy fácil"
|
||||
NEW_PASSWORD_FORBIDDENT: "La contraseña contiene caracteres prohibidos"
|
||||
NEW_PASSWORD_FORBIDDEN: "La contraseña contiene caracteres prohibidos"
|
||||
CONTACTS_SYNC_ERROR: "Error de sincronización de Contactos"
|
||||
CANT_GET_MESSAGE_LIST: "No se puede obtener la lista de mensajes"
|
||||
CANT_GET_MESSAGE: "No se puede obtener el mensaje"
|
||||
|
|
|
@ -426,7 +426,6 @@ fr_FR:
|
|||
LABEL_FILTERS_NAME: "Filtres"
|
||||
LABEL_TEMPLATES_NAME: "Modèles"
|
||||
LABEL_SECURITY_NAME: "Sécurité"
|
||||
LABEL_SOCIAL_NAME: "Social"
|
||||
LABEL_THEMES_NAME: "Thèmes"
|
||||
LABEL_CHANGE_PASSWORD_NAME: "Mot de passe"
|
||||
LABEL_OPEN_PGP_NAME: "OpenPGP"
|
||||
|
@ -631,7 +630,7 @@ fr_FR:
|
|||
CURRENT_PASSWORD_INCORRECT: "Le mot de passe actuel est incorrect"
|
||||
NEW_PASSWORD_SHORT: "Le mot de passe est trop court"
|
||||
NEW_PASSWORD_WEAK: "Le mot de passe n'est pas assez fort"
|
||||
NEW_PASSWORD_FORBIDDENT: "Le mot de passe contient des caractères invalides"
|
||||
NEW_PASSWORD_FORBIDDEN: "Le mot de passe contient des caractères invalides"
|
||||
CONTACTS_SYNC_ERROR: "Erreur de synchronisation des contacts"
|
||||
CANT_GET_MESSAGE_LIST: "Impossible d'obtenir la liste des messages"
|
||||
CANT_GET_MESSAGE: "Impossible d'obtenir le message"
|
||||
|
|
|
@ -424,7 +424,6 @@ nl_NL:
|
|||
LABEL_FILTERS_NAME: "Filters"
|
||||
LABEL_TEMPLATES_NAME: "Templates"
|
||||
LABEL_SECURITY_NAME: "Beveiliging"
|
||||
LABEL_SOCIAL_NAME: "Social"
|
||||
LABEL_THEMES_NAME: "Thema's"
|
||||
LABEL_CHANGE_PASSWORD_NAME: "Wachtwoord"
|
||||
LABEL_OPEN_PGP_NAME: "OpenPGP"
|
||||
|
@ -628,7 +627,7 @@ nl_NL:
|
|||
CURRENT_PASSWORD_INCORRECT: "Huidig wachtwoord onjuist"
|
||||
NEW_PASSWORD_SHORT: "Wachtwoord is te kort"
|
||||
NEW_PASSWORD_WEAK: "Wachtwoord is te makkelijk"
|
||||
NEW_PASSWORD_FORBIDDENT: "Wachtwoord bevat verboden tekens"
|
||||
NEW_PASSWORD_FORBIDDEN: "Wachtwoord bevat verboden tekens"
|
||||
CONTACTS_SYNC_ERROR: "Contactpersonen synchronisatie fout"
|
||||
CANT_GET_MESSAGE_LIST: "Berichtenlijst kan niet worden opgehaald"
|
||||
CANT_GET_MESSAGE: "Bericht kan niet worden opgehaald"
|
||||
|
|
|
@ -423,7 +423,6 @@ zh_CN:
|
|||
LABEL_FILTERS_NAME: "筛选条件"
|
||||
LABEL_TEMPLATES_NAME: "模版"
|
||||
LABEL_SECURITY_NAME: "安全"
|
||||
LABEL_SOCIAL_NAME: "社交"
|
||||
LABEL_THEMES_NAME: "主题"
|
||||
LABEL_CHANGE_PASSWORD_NAME: "密码"
|
||||
LABEL_OPEN_PGP_NAME: "OpenPGP"
|
||||
|
@ -628,7 +627,7 @@ zh_CN:
|
|||
CURRENT_PASSWORD_INCORRECT: "当前密码不正确"
|
||||
NEW_PASSWORD_SHORT: "密码太短"
|
||||
NEW_PASSWORD_WEAK: "密码过于简单"
|
||||
NEW_PASSWORD_FORBIDDENT: "密码包含禁止使用的字符"
|
||||
NEW_PASSWORD_FORBIDDEN: "密码包含禁止使用的字符"
|
||||
CONTACTS_SYNC_ERROR: "联系人同步错误"
|
||||
CANT_GET_MESSAGE_LIST: "无法获取邮件列表"
|
||||
CANT_GET_MESSAGE: "无法获取邮件"
|
||||
|
|
Loading…
Add table
Reference in a new issue