summaryrefslogtreecommitdiffstats
path: root/webapp/i18n/i18n.jsx
diff options
context:
space:
mode:
authorenahum <nahumhbl@gmail.com>2016-05-27 09:25:37 -0300
committerJoram Wilander <jwawilander@gmail.com>2016-05-27 08:25:37 -0400
commita2c183f401bdf8e9abddd35d4561d42034325046 (patch)
tree66565a9e21ad6b47b4dca18113ad9be48bd98492 /webapp/i18n/i18n.jsx
parent15e427e806716b372f7fbef12d922f847ccc71b5 (diff)
downloadchat-a2c183f401bdf8e9abddd35d4561d42034325046.tar.gz
chat-a2c183f401bdf8e9abddd35d4561d42034325046.tar.bz2
chat-a2c183f401bdf8e9abddd35d4561d42034325046.zip
PLT-1800 Load server side locale from the config.json (#3092)
* PLT-1800 Load server side locale from the config.json * Add support for locales with country specifics * Fix localization on served locale file as plain/text
Diffstat (limited to 'webapp/i18n/i18n.jsx')
-rw-r--r--webapp/i18n/i18n.jsx40
1 files changed, 34 insertions, 6 deletions
diff --git a/webapp/i18n/i18n.jsx b/webapp/i18n/i18n.jsx
index 2214fd386..783cef975 100644
--- a/webapp/i18n/i18n.jsx
+++ b/webapp/i18n/i18n.jsx
@@ -4,7 +4,7 @@
const es = require('!!file?name=i18n/[name].[ext]!./es.json');
const fr = require('!!file?name=i18n/[name].[ext]!./fr.json');
const ja = require('!!file?name=i18n/[name].[ext]!./ja.json');
-const pt = require('!!file?name=i18n/[name].[ext]!./pt.json');
+const pt_BR = require('!!file?name=i18n/[name].[ext]!./pt-BR.json'); //eslint-disable-line camelcase
import {addLocaleData} from 'react-intl';
import enLocaleData from 'react-intl/locale-data/en';
@@ -34,19 +34,47 @@ const languages = {
name: '日本語 (Beta)',
url: ja
},
- pt: {
- value: 'pt',
+ 'pt-BR': {
+ value: 'pt-BR',
name: 'Portugues (Beta)',
- url: pt
+ url: pt_BR
}
};
-export function getLanguages() {
+let availableLanguages = null;
+
+function setAvailableLanguages() {
+ const available = global.window.mm_config.AvailableLocales.split(',');
+
+ availableLanguages = {};
+
+ available.forEach((l) => {
+ if (languages[l]) {
+ availableLanguages[l] = languages[l];
+ }
+ });
+}
+
+export function getAllLanguages() {
return languages;
}
+export function getLanguages() {
+ if (!availableLanguages) {
+ setAvailableLanguages();
+ }
+ return availableLanguages;
+}
+
export function getLanguageInfo(locale) {
- return languages[locale];
+ if (!availableLanguages) {
+ setAvailableLanguages();
+ }
+ return availableLanguages[locale];
+}
+
+export function isLanguageAvailable(locale) {
+ return !!availableLanguages[locale];
}
export function safariFix(callback) {