fix locale storage in cookie
This commit is contained in:
parent
b33a2f84f2
commit
db038b1e57
4 changed files with 21 additions and 21 deletions
|
@ -1,5 +1,4 @@
|
||||||
import Ember from 'ember';
|
import Ember from 'ember';
|
||||||
/* global webshim */
|
|
||||||
|
|
||||||
export default Ember.Component.extend({
|
export default Ember.Component.extend({
|
||||||
tagName: 'select',
|
tagName: 'select',
|
||||||
|
@ -9,15 +8,19 @@ export default Ember.Component.extend({
|
||||||
current: Ember.computed.readOnly('i18n.locale'),
|
current: Ember.computed.readOnly('i18n.locale'),
|
||||||
|
|
||||||
locales: Ember.computed('i18n.locales', function() {
|
locales: Ember.computed('i18n.locales', function() {
|
||||||
|
var currentLocale = this.get('i18n.locale');
|
||||||
|
|
||||||
return this.get('i18n.locales').map(function (locale) {
|
return this.get('i18n.locales').map(function (locale) {
|
||||||
return { id: locale, text: locale };
|
return {
|
||||||
|
id: locale,
|
||||||
|
selected: locale === currentLocale,
|
||||||
|
text: locale
|
||||||
|
};
|
||||||
});
|
});
|
||||||
}),
|
}),
|
||||||
|
|
||||||
change() {
|
change() {
|
||||||
var locale = this.$().val();
|
var locale = this.$().val();
|
||||||
this.get('i18n').set('locale', locale);
|
this.get('i18n').set('locale', locale);
|
||||||
this.get('moment').changeLocale(locale);
|
|
||||||
webshim.activeLang(locale);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,18 +1,4 @@
|
||||||
import Ember from "ember";
|
import Ember from "ember";
|
||||||
/* global moment */
|
|
||||||
|
|
||||||
export default Ember.Controller.extend({
|
export default Ember.Controller.extend({
|
||||||
i18n: Ember.inject.service(),
|
|
||||||
|
|
||||||
languageChanged: function() {
|
|
||||||
// change language
|
|
||||||
var language = this.get('i18n.locale');
|
|
||||||
|
|
||||||
// save language in cookie
|
|
||||||
document.cookie="language=" + language + ";" +
|
|
||||||
// give cookie a lifetime of one year
|
|
||||||
"max-age=" + 60*60*24*356 + ";";
|
|
||||||
|
|
||||||
moment.locale(language);
|
|
||||||
}.observes('i18n.locale')
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -11,13 +11,24 @@ export default {
|
||||||
i18n.set('locale', locale);
|
i18n.set('locale', locale);
|
||||||
moment.changeLocale(locale);
|
moment.changeLocale(locale);
|
||||||
webshim.activeLang(locale);
|
webshim.activeLang(locale);
|
||||||
|
|
||||||
|
i18n.addObserver('locale', i18n, function() {
|
||||||
|
var locale = this.get('locale');
|
||||||
|
moment.changeLocale(locale);
|
||||||
|
webshim.activeLang(locale);
|
||||||
|
|
||||||
|
// save selected locale in cookie
|
||||||
|
document.cookie="language=" + locale + ";" +
|
||||||
|
// give cookie a lifetime of one year
|
||||||
|
"max-age=" + 60*60*24*356 + ";";
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function getLocale(availableLocales) {
|
function getLocale(availableLocales) {
|
||||||
var methods = [
|
var methods = [
|
||||||
getLocaleByBrowser,
|
getLocaleFromCookie,
|
||||||
getLocaleFromCookie
|
getLocaleByBrowser
|
||||||
];
|
];
|
||||||
var locale;
|
var locale;
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
{{#each locales as |locale|}}
|
{{#each locales as |locale|}}
|
||||||
<option value="{{locale.id}}">{{locale.text}}</option>
|
<option value="{{locale.id}}" selected={{locale.selected}}>{{locale.text}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
Loading…
Reference in a new issue