diff --git a/app/scripts/comp/settings-manager.js b/app/scripts/comp/settings-manager.js index c0383df6..dabffb98 100644 --- a/app/scripts/comp/settings-manager.js +++ b/app/scripts/comp/settings-manager.js @@ -63,7 +63,10 @@ const SettingsManager = { getBrowserLocale: function() { const language = navigator.languages && navigator.languages[0] || navigator.language; - return language ? language.substr(0, 2).toLowerCase() : null; + if (language && language.lastIndexOf('en', 0) === 0) { + return 'en'; + } + return language; } }; diff --git a/app/scripts/locales/de.json b/app/scripts/locales/de-DE.json old mode 100755 new mode 100644 similarity index 100% rename from app/scripts/locales/de.json rename to app/scripts/locales/de-DE.json diff --git a/app/scripts/locales/es.json b/app/scripts/locales/es-ES.json similarity index 100% rename from app/scripts/locales/es.json rename to app/scripts/locales/es-ES.json diff --git a/app/scripts/locales/fr.json b/app/scripts/locales/fr-FR.json old mode 100755 new mode 100644 similarity index 100% rename from app/scripts/locales/fr.json rename to app/scripts/locales/fr-FR.json diff --git a/app/scripts/locales/it.json b/app/scripts/locales/it-IT.json similarity index 100% rename from app/scripts/locales/it.json rename to app/scripts/locales/it-IT.json diff --git a/app/scripts/locales/nl.json b/app/scripts/locales/nl-NL.json similarity index 100% rename from app/scripts/locales/nl.json rename to app/scripts/locales/nl-NL.json diff --git a/app/scripts/locales/pl.json b/app/scripts/locales/pl.json old mode 100755 new mode 100644 diff --git a/app/scripts/locales/pt.json b/app/scripts/locales/pt-PT.json old mode 100755 new mode 100644 similarity index 100% rename from app/scripts/locales/pt.json rename to app/scripts/locales/pt-PT.json diff --git a/app/scripts/locales/ru.json b/app/scripts/locales/ru-RU.json similarity index 100% rename from app/scripts/locales/ru.json rename to app/scripts/locales/ru-RU.json diff --git a/app/scripts/locales/zh.json b/app/scripts/locales/zh-CN.json similarity index 100% rename from app/scripts/locales/zh.json rename to app/scripts/locales/zh-CN.json diff --git a/app/scripts/models/app-settings-model.js b/app/scripts/models/app-settings-model.js index 61137b93..2c04e6c0 100644 --- a/app/scripts/models/app-settings-model.js +++ b/app/scripts/models/app-settings-model.js @@ -60,9 +60,6 @@ const AppSettingsModel = Backbone.Model.extend({ if (data.rememberKeyFiles === true) { data.rememberKeyFiles = 'data'; } - if (data.locale && data.locale.length > 2) { - data.locale = data.locale.substr(0, 2); - } }, save: function() { diff --git a/app/scripts/views/settings/settings-general-view.js b/app/scripts/views/settings/settings-general-view.js index fcfa5c8d..afcf3170 100644 --- a/app/scripts/views/settings/settings-general-view.js +++ b/app/scripts/views/settings/settings-general-view.js @@ -58,16 +58,16 @@ const SettingsGeneralView = Backbone.View.extend({ }, allLocales: { - en: 'English', - de: 'Deutsch', - es: 'Español', - fr: 'Français', - it: 'Italiano', - nl: 'Nederlands', - pl: 'Polski', - pt: 'Português', - ru: 'Русский', - zh: '汉语' + 'en': 'English', + 'de-DE': 'Deutsch', + 'es-ES': 'Español', + 'fr-FR': 'Français', + 'it-IT': 'Italiano', + 'nl-NL': 'Nederlands', + 'pl': 'Polski', + 'pt-PT': 'Português', + 'ru-RU': 'Русский', + 'zh-CN': '汉语' }, initialize: function() { diff --git a/util/download-translations.js b/util/download-translations.js index 0b29aa90..453438c8 100644 --- a/util/download-translations.js +++ b/util/download-translations.js @@ -30,29 +30,28 @@ https.get(url, res => { return; } console.log('Response received, reading...'); - let data = []; + const data = []; res.on('data', chunk => data.push(chunk)); res.on('end', () => { console.log('Data received, parsing...'); - let json = Buffer.concat(data).toString('utf8'); - let languages = JSON.parse(json); + const json = Buffer.concat(data).toString('utf8'); + const languages = JSON.parse(json); let langCount = 0; let skipCount = 0; - let totalPhraseCount = Object.keys(languages['en-US'].translation).length; + const totalPhraseCount = Object.keys(languages['en-US'].translation).length; Object.keys(languages).forEach(lang => { - let languageTranslations = languages[lang].translation; - lang = lang.substr(0, 2); - if (lang === 'en' || !languageTranslations) { + const languageTranslations = languages[lang].translation; + if (lang === 'en-US' || !languageTranslations) { return; } - let langPhraseCount = Object.keys(languageTranslations).length; - let percentage = Math.round(langPhraseCount / totalPhraseCount * 100); - let included = percentage >= PHRASE_COUNT_THRESHOLD_PERCENT; - let action = included ? 'OK' : 'SKIP'; + const langPhraseCount = Object.keys(languageTranslations).length; + const percentage = Math.round(langPhraseCount / totalPhraseCount * 100); + const included = percentage >= PHRASE_COUNT_THRESHOLD_PERCENT; + const action = included ? 'OK' : 'SKIP'; console.log(`${lang}: ${langPhraseCount} / ${totalPhraseCount} (${percentage}%) -> ${action}`); if (included) { langCount++; - let languageJson = JSON.stringify(languageTranslations, null, 4); + const languageJson = JSON.stringify(languageTranslations, null, 4); fs.writeFileSync(`app/scripts/locales/${lang}.json`, languageJson); } else { skipCount++;