Wait until Meteor.startup() to set the language.

pull/517/head
David Renshaw 9 years ago
parent 1c206d0d36
commit f56c55e75c
  1. 31
      client/lib/i18n.js

@ -2,26 +2,19 @@
// the language reactively. If the user is not connected we use the language
// information provided by the browser, and default to english.
Tracker.autorun(() => {
const currentUser = Meteor.user();
let language;
if (currentUser) {
language = currentUser.profile && currentUser.profile.language;
} else {
language = navigator.language || navigator.userLanguage;
}
if (language) {
TAPi18n.setLanguage(language);
Meteor.startup(() => {
Tracker.autorun(() => {
const currentUser = Meteor.user();
let language;
if (currentUser) {
language = currentUser.profile && currentUser.profile.language;
} else {
language = navigator.language || navigator.userLanguage;
}
// For languages such as Finnish (Suomi) that are not supported by meteor-accounts-t9n,
// the following may throw an exception. On the initial run of this `autorun()` callback,
// such an exception could cause the entire app to fail to load. Therefore, we catch
// the exception and log it as an error.
try {
if (language) {
TAPi18n.setLanguage(language);
T9n.setLanguage(language);
} catch (e) {
console.error(e);
}
}
});
});

Loading…
Cancel
Save