2016-03-14 08:50:46 -04:00
|
|
|
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
|
|
|
|
|
// See License.txt for license information.
|
|
|
|
|
|
|
|
|
|
const es = require('!!file?name=i18n/[name].[ext]!./es.json');
|
2016-03-24 20:17:46 +01:00
|
|
|
const fr = require('!!file?name=i18n/[name].[ext]!./fr.json');
|
2016-04-14 08:29:46 +09:00
|
|
|
const ja = require('!!file?name=i18n/[name].[ext]!./ja.json');
|
2016-06-02 16:47:26 -03:00
|
|
|
const pt_BR = require('!!file?name=i18n/[name].[ext]!./pt-BR.json'); //eslint-disable-line camelcase
|
2016-03-14 08:50:46 -04:00
|
|
|
|
2016-03-24 12:05:50 -04:00
|
|
|
import {addLocaleData} from 'react-intl';
|
|
|
|
|
import enLocaleData from 'react-intl/locale-data/en';
|
|
|
|
|
import esLocaleData from 'react-intl/locale-data/es';
|
2016-03-24 20:17:46 +01:00
|
|
|
import frLocaleData from 'react-intl/locale-data/fr';
|
2016-04-14 08:29:46 +09:00
|
|
|
import jaLocaleData from 'react-intl/locale-data/ja';
|
2016-03-24 12:05:50 -04:00
|
|
|
import ptLocaleData from 'react-intl/locale-data/pt';
|
|
|
|
|
|
2016-03-14 08:50:46 -04:00
|
|
|
const languages = {
|
|
|
|
|
en: {
|
|
|
|
|
value: 'en',
|
|
|
|
|
name: 'English',
|
|
|
|
|
url: ''
|
|
|
|
|
},
|
|
|
|
|
es: {
|
|
|
|
|
value: 'es',
|
|
|
|
|
name: 'Español (Beta)',
|
|
|
|
|
url: es
|
|
|
|
|
},
|
2016-03-24 20:17:46 +01:00
|
|
|
fr: {
|
|
|
|
|
value: 'fr',
|
|
|
|
|
name: 'Français (Beta)',
|
|
|
|
|
url: fr
|
|
|
|
|
},
|
2016-04-14 08:29:46 +09:00
|
|
|
ja: {
|
|
|
|
|
value: 'ja',
|
|
|
|
|
name: '日本語 (Beta)',
|
|
|
|
|
url: ja
|
|
|
|
|
},
|
2016-06-02 16:47:26 -03:00
|
|
|
'pt-BR': {
|
|
|
|
|
value: 'pt-BR',
|
2016-03-14 08:50:46 -04:00
|
|
|
name: 'Portugues (Beta)',
|
2016-06-02 16:47:26 -03:00
|
|
|
url: pt_BR
|
2016-03-14 08:50:46 -04:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2016-06-02 16:47:26 -03:00
|
|
|
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() {
|
2016-06-01 11:56:27 -04:00
|
|
|
return languages;
|
2016-06-01 09:56:13 -03:00
|
|
|
}
|
|
|
|
|
|
2016-06-02 16:47:26 -03:00
|
|
|
export function getLanguages() {
|
|
|
|
|
if (!availableLanguages) {
|
|
|
|
|
setAvailableLanguages();
|
|
|
|
|
}
|
|
|
|
|
return availableLanguages;
|
|
|
|
|
}
|
|
|
|
|
|
2016-03-14 08:50:46 -04:00
|
|
|
export function getLanguageInfo(locale) {
|
2016-06-02 16:47:26 -03:00
|
|
|
if (!availableLanguages) {
|
|
|
|
|
setAvailableLanguages();
|
|
|
|
|
}
|
|
|
|
|
return availableLanguages[locale];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function isLanguageAvailable(locale) {
|
|
|
|
|
return !!availableLanguages[locale];
|
2016-03-14 08:50:46 -04:00
|
|
|
}
|
2016-03-24 12:05:50 -04:00
|
|
|
|
|
|
|
|
export function safariFix(callback) {
|
|
|
|
|
require.ensure([
|
|
|
|
|
'intl',
|
|
|
|
|
'intl/locale-data/jsonp/en.js',
|
|
|
|
|
'intl/locale-data/jsonp/es.js',
|
2016-03-24 20:17:46 +01:00
|
|
|
'intl/locale-data/jsonp/fr.js',
|
2016-04-14 08:29:46 +09:00
|
|
|
'intl/locale-data/jsonp/ja.js',
|
2016-03-24 12:05:50 -04:00
|
|
|
'intl/locale-data/jsonp/pt.js'
|
|
|
|
|
], (require) => {
|
|
|
|
|
require('intl');
|
|
|
|
|
require('intl/locale-data/jsonp/en.js');
|
|
|
|
|
require('intl/locale-data/jsonp/es.js');
|
2016-03-24 20:17:46 +01:00
|
|
|
require('intl/locale-data/jsonp/fr.js');
|
2016-04-14 08:29:46 +09:00
|
|
|
require('intl/locale-data/jsonp/ja.js');
|
2016-03-24 12:05:50 -04:00
|
|
|
require('intl/locale-data/jsonp/pt.js');
|
|
|
|
|
callback();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function doAddLocaleData() {
|
|
|
|
|
addLocaleData(enLocaleData);
|
|
|
|
|
addLocaleData(esLocaleData);
|
2016-03-24 20:17:46 +01:00
|
|
|
addLocaleData(frLocaleData);
|
2016-04-14 08:29:46 +09:00
|
|
|
addLocaleData(jaLocaleData);
|
2016-03-24 12:05:50 -04:00
|
|
|
addLocaleData(ptLocaleData);
|
|
|
|
|
}
|