From 3221b0651e7e49b865e2fb3afc0ceee41e267c47 Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Fri, 18 Apr 2014 02:42:30 +0400 Subject: [PATCH] i18n + Small fixes --- README.md | 2 +- dev/ViewModels/MailBoxFolderListViewModel.js | 2 +- dev/ViewModels/MailBoxMessageListViewModel.js | 4 +- dev/ViewModels/MailBoxMessageViewViewModel.js | 17 ++-- .../PopupsComposeOpenPgpViewModel.js | 24 +++--- package.json | 4 +- .../Views/PopupsKeyboardShortcutsHelp.html | 81 ++++++++++--------- rainloop/v/0.0.0/langs/de.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/en.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/es.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/fr.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/hu.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/is.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/it.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/ja-jp.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/ko-kr.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/lv.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/nl.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/no.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/pl.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/pt-br.ini | 51 ++++++++++++ rainloop/v/0.0.0/langs/pt-pt.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/ro.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/ru.ini | 53 ++++++++++++ rainloop/v/0.0.0/langs/sk.ini | 52 ++++++++++++ rainloop/v/0.0.0/langs/zh-cn.ini | 52 ++++++++++++ rainloop/v/0.0.0/static/js/app.js | 47 ++++++----- rainloop/v/0.0.0/static/js/app.min.js | 18 ++--- 28 files changed, 1096 insertions(+), 91 deletions(-) diff --git a/README.md b/README.md index 26a83a6b3..650cfbd88 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Information about installing the product, check the [documentation page](http:// ## Attention This is **NOT** a stable version of RainLoop Webmail. -It's not recommended to use in production environment +It's not recommended to use in production environment. ## License diff --git a/dev/ViewModels/MailBoxFolderListViewModel.js b/dev/ViewModels/MailBoxFolderListViewModel.js index b09461145..717ebf078 100644 --- a/dev/ViewModels/MailBoxFolderListViewModel.js +++ b/dev/ViewModels/MailBoxFolderListViewModel.js @@ -114,7 +114,7 @@ MailBoxFolderListViewModel.prototype.onBuild = function (oDom) return false; }); - key('esc, tab, shift+tab', Enums.KeyState.FolderList, function () { + key('esc, tab, shift+tab, right', Enums.KeyState.FolderList, function () { self.folderList.focused(false); return false; }); diff --git a/dev/ViewModels/MailBoxMessageListViewModel.js b/dev/ViewModels/MailBoxMessageListViewModel.js index 57dfc2d45..afbc657b4 100644 --- a/dev/ViewModels/MailBoxMessageListViewModel.js +++ b/dev/ViewModels/MailBoxMessageListViewModel.js @@ -759,8 +759,8 @@ MailBoxMessageListViewModel.prototype.initShortcuts = function () }); // change focused state - key('tab, shift+tab', Enums.KeyState.MessageList, function (event, handler) { - if (event && handler && 'shift+tab' === handler.shortcut) + key('tab, shift+tab, left, right', Enums.KeyState.MessageList, function (event, handler) { + if (event && handler && 'shift+tab' === handler.shortcut || 'left' === handler.shortcut) { self.folderList.focused(true); } diff --git a/dev/ViewModels/MailBoxMessageViewViewModel.js b/dev/ViewModels/MailBoxMessageViewViewModel.js index 77150b236..45d0acc37 100644 --- a/dev/ViewModels/MailBoxMessageViewViewModel.js +++ b/dev/ViewModels/MailBoxMessageViewViewModel.js @@ -227,21 +227,22 @@ MailBoxMessageViewViewModel.prototype.pgpStatusVerifyMessage = function () var sResult = ''; switch (this.viewPgpSignedVerifyStatus()) { - // TODO i18n case Enums.SignedVerifyStatus.UnknownPublicKeys: - sResult = 'No public keys found'; + sResult = Utils.i18n('PGP_NOTIFICATIONS/NO_PUBLIC_KEYS_FOUND'); break; case Enums.SignedVerifyStatus.UnknownPrivateKey: - sResult = 'No private key found'; + sResult = Utils.i18n('PGP_NOTIFICATIONS/NO_PRIVATE_KEY_FOUND'); break; case Enums.SignedVerifyStatus.Unverified: - sResult = 'Unverified signature'; + sResult = Utils.i18n('PGP_NOTIFICATIONS/UNVERIFIRED_SIGNATURE'); break; case Enums.SignedVerifyStatus.Error: - sResult = 'OpenPGP decryption error'; + sResult = Utils.i18n('PGP_NOTIFICATIONS/DECRYPTION_ERROR'); break; case Enums.SignedVerifyStatus.Success: - sResult = 'Good signature from ' + this.viewPgpSignedVerifyUser(); + sResult = Utils.i18n('PGP_NOTIFICATIONS/GOOD_SIGNATURE', { + 'USER': this.viewPgpSignedVerifyUser() + }); break; } @@ -522,8 +523,8 @@ MailBoxMessageViewViewModel.prototype.initShortcuts = function () }); // change focused state - key('tab, shift+tab', Enums.KeyState.MessageView, function () { - if (!self.fullScreenMode() && self.message()) + key('tab, shift+tab, left', Enums.KeyState.MessageView, function () { + if (!self.fullScreenMode() && self.message() && Enums.Layout.NoPreview !== oData.layout()) { self.message.focused(false); } diff --git a/dev/ViewModels/PopupsComposeOpenPgpViewModel.js b/dev/ViewModels/PopupsComposeOpenPgpViewModel.js index 7ad2592a8..797e49ca8 100644 --- a/dev/ViewModels/PopupsComposeOpenPgpViewModel.js +++ b/dev/ViewModels/PopupsComposeOpenPgpViewModel.js @@ -40,8 +40,7 @@ function PopupsComposeOpenPgpViewModel() if (bResult && this.sign() && '' === this.from()) { - // TODO i18n - this.notification('Please specify FROM email address'); + this.notification(Utils.i18n('PGP_NOTIFICATIONS/SPECIFY_FROM_EMAIL')); bResult = false; } @@ -50,16 +49,17 @@ function PopupsComposeOpenPgpViewModel() oPrivateKey = oData.findPrivateKeyByEmail(this.from(), this.password()); if (!oPrivateKey) { - // TODO i18n - this.notification('No private key found for "' + this.from() + '" email'); + this.notification(Utils.i18n('PGP_NOTIFICATIONS/NO_PRIVATE_KEY_FOUND_FOR', { + 'EMAIL': this.from() + })); + bResult = false; } } if (bResult && this.encrypt() && 0 === this.to().length) { - // TODO i18n - this.notification('Please specify at least one recipient'); + this.notification(Utils.i18n('PGP_NOTIFICATIONS/SPECIFY_AT_LEAST_ONE_RECIPIENT')); bResult = false; } @@ -70,8 +70,10 @@ function PopupsComposeOpenPgpViewModel() var aKeys = oData.findPublicKeysByEmail(sEmail); if (0 === aKeys.length && bResult) { - // TODO i18n - self.notification('No public key found for "' + sEmail + '" email'); + this.notification(Utils.i18n('PGP_NOTIFICATIONS/NO_PUBLIC_KEYS_FOUND_FOR', { + 'EMAIL': sEmail + })); + bResult = false; } @@ -111,8 +113,10 @@ function PopupsComposeOpenPgpViewModel() } catch (e) { - // TODO i18n - self.notification('OpenPGP error: ' + e); + self.notification(Utils.i18n('PGP_NOTIFICATIONS/PGP_ERROR', { + 'ERROR': '' + e + })); + bResult = false; } } diff --git a/package.json b/package.json index bd676dc3b..7a6252342 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "RainLoop", "title": "RainLoop Webmail", - "version": "1.6.4", - "release": "895", + "version": "1.6.5", + "release": "899", "description": "Simple, modern & fast web-based email client", "homepage": "http://rainloop.net", "main": "Gruntfile.js", diff --git a/rainloop/v/0.0.0/app/templates/Views/PopupsKeyboardShortcutsHelp.html b/rainloop/v/0.0.0/app/templates/Views/PopupsKeyboardShortcutsHelp.html index 471c06d26..6b7a3dbbd 100644 --- a/rainloop/v/0.0.0/app/templates/Views/PopupsKeyboardShortcutsHelp.html +++ b/rainloop/v/0.0.0/app/templates/Views/PopupsKeyboardShortcutsHelp.html @@ -2,30 +2,35 @@