summaryrefslogtreecommitdiffstats
path: root/client/components/main/layouts.js
diff options
context:
space:
mode:
authorfloatinghotpot <rjfun.mobile@gmail.com>2015-12-07 12:36:51 +0800
committerfloatinghotpot <rjfun.mobile@gmail.com>2015-12-07 12:36:51 +0800
commitec130d448056d8adab77113646d8f8724931d128 (patch)
treec24a3d91538c4f9cc4e395b0e02ef3fa2b571913 /client/components/main/layouts.js
parentd4c5310d65cbdfbd002288d33eba429ace33bc3c (diff)
downloadwekan-ec130d448056d8adab77113646d8f8724931d128.tar.gz
wekan-ec130d448056d8adab77113646d8f8724931d128.tar.bz2
wekan-ec130d448056d8adab77113646d8f8724931d128.zip
add: use user preferred lang for user form, and allow selecting
Diffstat (limited to 'client/components/main/layouts.js')
-rw-r--r--client/components/main/layouts.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js
index ab62e76a..3df17f41 100644
--- a/client/components/main/layouts.js
+++ b/client/components/main/layouts.js
@@ -2,10 +2,43 @@ Meteor.subscribe('boards');
BlazeLayout.setRoot('body');
+const i18nTagToT9n = (i18nTag) => {
+ // t9n/i18n tags are same now, see: https://github.com/softwarerero/meteor-accounts-t9n/pull/129
+ // but we keep this conversion function here, to be aware that that they are different system.
+ return i18nTag;
+};
+
Template.userFormsLayout.onRendered(() => {
+ const i18nTag = navigator.language;
+ if (i18nTag) {
+ T9n.setLanguage(i18nTagToT9n(i18nTag));
+ }
EscapeActions.executeAll();
});
+Template.userFormsLayout.helpers({
+ languages() {
+ return _.map(TAPi18n.getLanguages(), (lang, tag) => {
+ const name = lang.name;
+ return { tag, name };
+ });
+ },
+
+ isCurrentLanguage() {
+ const t9nTag = i18nTagToT9n(this.tag);
+ const curLang = T9n.getLanguage() || 'en';
+ return t9nTag === curLang;
+ },
+});
+
+Template.userFormsLayout.events({
+ 'change .js-userform-set-language'(evt) {
+ const i18nTag = $(evt.currentTarget).val();
+ T9n.setLanguage(i18nTagToT9n(i18nTag));
+ evt.preventDefault();
+ },
+});
+
Template.defaultLayout.events({
'click .js-close-modal': () => {
Modal.close();