From ec130d448056d8adab77113646d8f8724931d128 Mon Sep 17 00:00:00 2001 From: floatinghotpot Date: Mon, 7 Dec 2015 12:36:51 +0800 Subject: add: use user preferred lang for user form, and allow selecting --- client/components/main/layouts.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'client/components/main/layouts.js') 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(); -- cgit v1.2.3-1-g7c22