mirror of https://github.com/keeweb/keeweb.git
use browser language as default locale
This commit is contained in:
parent
cff110fde5
commit
a832768668
|
@ -5,7 +5,7 @@ const Locale = require('./locale');
|
|||
|
||||
const SettingsManager = {
|
||||
neutralLocale: null,
|
||||
activeLocale: null,
|
||||
activeLocale: 'en',
|
||||
|
||||
setBySettings: function(settings) {
|
||||
if (settings.get('theme')) {
|
||||
|
@ -14,8 +14,13 @@ const SettingsManager = {
|
|||
if (settings.get('fontSize')) {
|
||||
this.setFontSize(settings.get('fontSize'));
|
||||
}
|
||||
if (settings.get('locale') && settings.get('locale') !== 'en') {
|
||||
let locale = settings.get('locale');
|
||||
if (locale) {
|
||||
this.setLocale(settings.get('locale'));
|
||||
} else {
|
||||
try {
|
||||
this.setLocale(this.getBrowserLocale());
|
||||
} catch (ex) {}
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -40,20 +45,25 @@ const SettingsManager = {
|
|||
document.documentElement.style.fontSize = fontSize ? (12 + fontSize * 2) + 'px' : '';
|
||||
},
|
||||
|
||||
setLocale(locale) {
|
||||
setLocale(loc) {
|
||||
if (!loc || loc === this.activeLocale) {
|
||||
return;
|
||||
}
|
||||
let localeValues;
|
||||
if (loc !== 'en') {
|
||||
localeValues = require('../locales/' + loc + '.json');
|
||||
}
|
||||
if (!this.neutralLocale) {
|
||||
this.neutralLocale = _.clone(Locale);
|
||||
}
|
||||
let activeLocale = locale && locale !== 'en' ? locale : null;
|
||||
if (activeLocale !== this.activeLocale) {
|
||||
_.extend(Locale, this.neutralLocale);
|
||||
if (activeLocale) {
|
||||
let localeValues = require('../locales/' + locale + '.json');
|
||||
_.extend(Locale, localeValues);
|
||||
}
|
||||
this.activeLocale = activeLocale;
|
||||
Backbone.trigger('set-locale', activeLocale);
|
||||
}
|
||||
_.extend(Locale, this.neutralLocale, localeValues);
|
||||
this.activeLocale = loc;
|
||||
Backbone.trigger('set-locale', loc);
|
||||
},
|
||||
|
||||
getBrowserLocale: function() {
|
||||
let language = navigator.languages && navigator.languages[0] || navigator.language;
|
||||
return language ? language.substr(0, 2).toLowerCase() : null;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ var Backbone = require('backbone'),
|
|||
Storage = require('../../storage'),
|
||||
FeatureDetector = require('../../util/feature-detector'),
|
||||
Locale = require('../../util/locale'),
|
||||
SettingsManager = require('../../util/settings-manager'),
|
||||
Links = require('../../const/links');
|
||||
|
||||
var SettingsGeneralView = Backbone.View.extend({
|
||||
|
@ -58,11 +59,11 @@ var SettingsGeneralView = Backbone.View.extend({
|
|||
|
||||
allLocales: {
|
||||
en: 'English',
|
||||
'de-DE': 'Deutsch',
|
||||
'fr-FR': 'Français',
|
||||
'it-IT': 'Italiano',
|
||||
'pl': 'Polski',
|
||||
'pt-PT': 'Português'
|
||||
de: 'Deutsch',
|
||||
fr: 'Français',
|
||||
it: 'Italiano',
|
||||
pl: 'Polski',
|
||||
pt: 'Português'
|
||||
},
|
||||
|
||||
initialize: function() {
|
||||
|
@ -80,7 +81,7 @@ var SettingsGeneralView = Backbone.View.extend({
|
|||
themes: this.allThemes,
|
||||
activeTheme: AppSettingsModel.instance.get('theme'),
|
||||
locales: this.allLocales,
|
||||
activeLocale: AppSettingsModel.instance.get('locale') || 'en',
|
||||
activeLocale: SettingsManager.activeLocale,
|
||||
fontSize: AppSettingsModel.instance.get('fontSize'),
|
||||
expandGroups: AppSettingsModel.instance.get('expandGroups'),
|
||||
canClearClipboard: !!Launcher,
|
||||
|
@ -187,9 +188,6 @@ var SettingsGeneralView = Backbone.View.extend({
|
|||
|
||||
changeLocale: function(e) {
|
||||
var locale = e.target.value;
|
||||
if (locale === 'en') {
|
||||
locale = null;
|
||||
}
|
||||
if (locale === '...') {
|
||||
e.target.value = AppSettingsModel.instance.get('locale') || 'en';
|
||||
Alerts.info({
|
||||
|
|
|
@ -3,6 +3,7 @@ Release notes
|
|||
##### v1.4.0 (WIP)
|
||||
`+` password generator usability improvements
|
||||
`+` warning about several tabs
|
||||
`+` use browser language as default locale
|
||||
|
||||
##### v1.3.3 (2016-09-20)
|
||||
`+` translations: fr, pl, pt
|
||||
|
|
Loading…
Reference in New Issue