diff options
author | enahum <nahumhbl@gmail.com> | 2016-05-27 09:25:37 -0300 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2016-05-27 08:25:37 -0400 |
commit | a2c183f401bdf8e9abddd35d4561d42034325046 (patch) | |
tree | 66565a9e21ad6b47b4dca18113ad9be48bd98492 /webapp/i18n | |
parent | 15e427e806716b372f7fbef12d922f847ccc71b5 (diff) | |
download | chat-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')
-rw-r--r-- | webapp/i18n/i18n.jsx | 40 | ||||
-rw-r--r-- | webapp/i18n/pt-BR.json (renamed from webapp/i18n/pt.json) | 0 |
2 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) { diff --git a/webapp/i18n/pt.json b/webapp/i18n/pt-BR.json index 0ce84c39b..0ce84c39b 100644 --- a/webapp/i18n/pt.json +++ b/webapp/i18n/pt-BR.json |