2015-04-25 13:03:04 +09:00
|
|
|
i18n = {};
|
|
|
|
|
2015-04-22 07:50:11 +09:00
|
|
|
// do this better:
|
2015-05-06 16:40:27 +09:00
|
|
|
i18n.setLanguage = function (language) {
|
2015-04-22 07:50:11 +09:00
|
|
|
// Session.set('i18nReady', false);
|
|
|
|
// console.log('i18n loading… '+language)
|
|
|
|
|
|
|
|
// moment
|
|
|
|
Session.set('momentReady', false);
|
|
|
|
// console.log('moment loading…')
|
|
|
|
if (language.toLowerCase() === "en") {
|
|
|
|
Session.set('momentReady', true);
|
|
|
|
} else {
|
|
|
|
$.getScript("//cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/lang/" + language.toLowerCase() + ".js", function (result) {
|
|
|
|
moment.locale(language);
|
|
|
|
Session.set('momentReady', true);
|
|
|
|
Session.set('momentLocale', language);
|
|
|
|
// console.log('moment loaded!')
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// TAPi18n
|
|
|
|
Session.set("TAPi18nReady", false);
|
|
|
|
// console.log('TAPi18n loading…')
|
|
|
|
TAPi18n.setLanguage(language)
|
|
|
|
.done(function () {
|
|
|
|
Session.set("TAPi18nReady", true);
|
|
|
|
// console.log('TAPi18n loaded!')
|
|
|
|
});
|
|
|
|
|
|
|
|
// T9n
|
|
|
|
T9n.setLanguage(language);
|
2015-05-06 16:40:27 +09:00
|
|
|
};
|
2015-04-22 07:50:11 +09:00
|
|
|
|
2015-04-25 13:03:04 +09:00
|
|
|
i18n.t = function (str, options) {
|
|
|
|
if (Meteor.isServer) {
|
|
|
|
return TAPi18n.__(str, options, Settings.get('language', 'en'));
|
|
|
|
} else {
|
|
|
|
return TAPi18n.__(str, options);
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2015-04-27 17:15:16 +09:00
|
|
|
SimpleSchema.prototype.internationalize = function () {
|
|
|
|
var schema = this._schema;
|
|
|
|
|
|
|
|
_.each(schema, function (property, key) {
|
2015-04-25 13:03:04 +09:00
|
|
|
if (!property.label) {
|
2015-04-27 17:15:16 +09:00
|
|
|
schema[key].label = function () {
|
2015-05-06 16:40:27 +09:00
|
|
|
// if property is nested ("telescope.email"), only consider the last part ("email")
|
|
|
|
if (key.indexOf(".") !== -1) {
|
|
|
|
key = _.last(key.split("."));
|
|
|
|
}
|
|
|
|
return i18n.t(key);
|
2015-04-25 13:03:04 +09:00
|
|
|
};
|
|
|
|
}
|
|
|
|
});
|
2015-04-27 17:15:16 +09:00
|
|
|
return this;
|
2015-05-06 16:40:27 +09:00
|
|
|
};
|
2015-04-25 13:03:04 +09:00
|
|
|
|
2015-04-22 07:50:11 +09:00
|
|
|
Meteor.startup(function () {
|
|
|
|
|
|
|
|
if (Meteor.isClient) {
|
2015-05-06 16:40:27 +09:00
|
|
|
i18n.setLanguage(Settings.get('language', 'en'));
|
2015-04-22 07:50:11 +09:00
|
|
|
}
|
|
|
|
|
2015-05-06 16:40:27 +09:00
|
|
|
});
|