2017-04-12 08:27:57 -04:00
|
|
|
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
2016-03-14 08:50:46 -04:00
|
|
|
|
// See License.txt for license information.
|
|
|
|
|
|
|
2016-11-17 09:02:33 -05:00
|
|
|
|
const de = require('!!file-loader?name=i18n/[name].[hash].[ext]!./de.json');
|
|
|
|
|
|
const es = require('!!file-loader?name=i18n/[name].[hash].[ext]!./es.json');
|
|
|
|
|
|
const fr = require('!!file-loader?name=i18n/[name].[hash].[ext]!./fr.json');
|
|
|
|
|
|
const ja = require('!!file-loader?name=i18n/[name].[hash].[ext]!./ja.json');
|
|
|
|
|
|
const ko = require('!!file-loader?name=i18n/[name].[hash].[ext]!./ko.json');
|
|
|
|
|
|
const nl = require('!!file-loader?name=i18n/[name].[hash].[ext]!./nl.json');
|
2017-05-04 17:07:42 -03:00
|
|
|
|
const pl = require('!!file-loader?name=i18n/[name].[hash].[ext]!./pl.json');
|
2016-11-17 09:02:33 -05:00
|
|
|
|
const pt_BR = require('!!file-loader?name=i18n/[name].[hash].[ext]!./pt-BR.json'); //eslint-disable-line camelcase
|
2017-05-26 09:46:50 -04:00
|
|
|
|
const tr = require('!!file-loader?name=i18n/[name].[hash].[ext]!./tr.json');
|
2016-11-17 09:02:33 -05:00
|
|
|
|
const ru = require('!!file-loader?name=i18n/[name].[hash].[ext]!./ru.json');
|
2017-03-09 06:14:26 -03:00
|
|
|
|
const zh_TW = require('!!file-loader?name=i18n/[name].[hash].[ext]!./zh-TW.json'); //eslint-disable-line camelcase
|
|
|
|
|
|
const zh_CN = require('!!file-loader?name=i18n/[name].[hash].[ext]!./zh-CN.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';
|
2016-06-14 14:53:26 -03:00
|
|
|
|
import deLocaleData from 'react-intl/locale-data/de';
|
2016-03-24 12:05:50 -04:00
|
|
|
|
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-08-04 10:45:36 -05:00
|
|
|
|
import koLocaleData from 'react-intl/locale-data/ko';
|
2016-07-22 13:05:26 -04:00
|
|
|
|
import nlLocaleData from 'react-intl/locale-data/nl';
|
2017-05-04 17:07:42 -03:00
|
|
|
|
import plLocaleData from 'react-intl/locale-data/pl';
|
2016-03-24 12:05:50 -04:00
|
|
|
|
import ptLocaleData from 'react-intl/locale-data/pt';
|
2017-05-26 09:46:50 -04:00
|
|
|
|
import trLocaleData from 'react-intl/locale-data/tr';
|
2016-10-12 10:49:17 -03:00
|
|
|
|
import ruLocaleData from 'react-intl/locale-data/ru';
|
2016-07-19 08:34:22 -04:00
|
|
|
|
import zhLocaleData from 'react-intl/locale-data/zh';
|
2016-03-24 12:05:50 -04:00
|
|
|
|
|
2016-06-07 17:43:46 -04:00
|
|
|
|
// should match the values in model/config.go
|
2016-03-14 08:50:46 -04:00
|
|
|
|
const languages = {
|
2016-06-14 14:53:26 -03:00
|
|
|
|
de: {
|
|
|
|
|
|
value: 'de',
|
2016-11-11 16:55:23 -03:00
|
|
|
|
name: 'Deutsch',
|
2016-08-12 06:51:00 -05:00
|
|
|
|
order: 0,
|
2016-06-14 14:53:26 -03:00
|
|
|
|
url: de
|
|
|
|
|
|
},
|
2016-03-14 08:50:46 -04:00
|
|
|
|
en: {
|
|
|
|
|
|
value: 'en',
|
|
|
|
|
|
name: 'English',
|
2016-08-12 06:51:00 -05:00
|
|
|
|
order: 1,
|
2016-03-14 08:50:46 -04:00
|
|
|
|
url: ''
|
|
|
|
|
|
},
|
|
|
|
|
|
es: {
|
|
|
|
|
|
value: 'es',
|
2016-08-04 10:45:36 -05:00
|
|
|
|
name: 'Español',
|
2016-08-12 06:51:00 -05:00
|
|
|
|
order: 2,
|
2016-03-14 08:50:46 -04:00
|
|
|
|
url: es
|
|
|
|
|
|
},
|
2016-03-24 20:17:46 +01:00
|
|
|
|
fr: {
|
|
|
|
|
|
value: 'fr',
|
2016-11-11 16:55:23 -03:00
|
|
|
|
name: 'Français',
|
2016-08-12 06:51:00 -05:00
|
|
|
|
order: 3,
|
2016-03-24 20:17:46 +01:00
|
|
|
|
url: fr
|
|
|
|
|
|
},
|
2016-04-14 08:29:46 +09:00
|
|
|
|
ja: {
|
|
|
|
|
|
value: 'ja',
|
2016-11-11 16:55:23 -03:00
|
|
|
|
name: '日本語',
|
2017-05-26 09:46:50 -04:00
|
|
|
|
order: 12,
|
2016-04-14 08:29:46 +09:00
|
|
|
|
url: ja
|
|
|
|
|
|
},
|
2016-08-04 10:45:36 -05:00
|
|
|
|
ko: {
|
|
|
|
|
|
value: 'ko',
|
2016-11-11 16:55:23 -03:00
|
|
|
|
name: '한국어 (Alpha)',
|
2017-05-26 09:46:50 -04:00
|
|
|
|
order: 9,
|
2016-08-04 10:45:36 -05:00
|
|
|
|
url: ko
|
|
|
|
|
|
},
|
2016-07-22 13:05:26 -04:00
|
|
|
|
nl: {
|
|
|
|
|
|
value: 'nl',
|
2017-01-10 14:25:20 -03:00
|
|
|
|
name: 'Nederlands (Alpha)',
|
2016-08-12 06:51:00 -05:00
|
|
|
|
order: 4,
|
2016-07-22 13:05:26 -04:00
|
|
|
|
url: nl
|
|
|
|
|
|
},
|
2017-05-04 17:07:42 -03:00
|
|
|
|
pl: {
|
|
|
|
|
|
value: 'pl',
|
|
|
|
|
|
name: 'Polski (Beta)',
|
|
|
|
|
|
order: 5,
|
|
|
|
|
|
url: pl
|
|
|
|
|
|
},
|
2016-06-02 16:47:26 -03:00
|
|
|
|
'pt-BR': {
|
|
|
|
|
|
value: 'pt-BR',
|
2016-08-04 10:45:36 -05:00
|
|
|
|
name: 'Português (Brasil)',
|
2017-05-04 17:07:42 -03:00
|
|
|
|
order: 6,
|
2016-06-02 16:47:26 -03:00
|
|
|
|
url: pt_BR
|
2016-07-19 08:34:22 -04:00
|
|
|
|
},
|
2017-05-26 09:46:50 -04:00
|
|
|
|
tr: {
|
|
|
|
|
|
value: 'tr',
|
|
|
|
|
|
name: 'Türkçe (Beta)',
|
|
|
|
|
|
order: 7,
|
|
|
|
|
|
url: tr
|
|
|
|
|
|
},
|
2016-10-12 10:49:17 -03:00
|
|
|
|
ru: {
|
|
|
|
|
|
value: 'ru',
|
|
|
|
|
|
name: 'Pусский (Beta)',
|
2017-05-26 09:46:50 -04:00
|
|
|
|
order: 8,
|
2016-10-12 10:49:17 -03:00
|
|
|
|
url: ru
|
|
|
|
|
|
},
|
2016-07-19 08:34:22 -04:00
|
|
|
|
'zh-TW': {
|
|
|
|
|
|
value: 'zh-TW',
|
2016-11-11 16:55:23 -03:00
|
|
|
|
name: '中文 (繁體)',
|
2017-05-26 09:46:50 -04:00
|
|
|
|
order: 11,
|
2016-07-19 08:34:22 -04:00
|
|
|
|
url: zh_TW
|
2016-08-04 10:45:36 -05:00
|
|
|
|
},
|
|
|
|
|
|
'zh-CN': {
|
|
|
|
|
|
value: 'zh-CN',
|
2016-11-11 16:55:23 -03:00
|
|
|
|
name: '中文 (简体)',
|
2017-05-26 09:46:50 -04:00
|
|
|
|
order: 10,
|
2016-08-04 10:45:36 -05:00
|
|
|
|
url: zh_CN
|
2016-03-14 08:50:46 -04:00
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2016-06-02 16:47:26 -03:00
|
|
|
|
let availableLanguages = null;
|
|
|
|
|
|
|
|
|
|
|
|
function setAvailableLanguages() {
|
2016-06-15 09:10:38 -03:00
|
|
|
|
let available;
|
2016-06-02 16:47:26 -03:00
|
|
|
|
availableLanguages = {};
|
|
|
|
|
|
|
2016-06-15 09:10:38 -03:00
|
|
|
|
if (global.window.mm_config.AvailableLocales) {
|
|
|
|
|
|
available = global.window.mm_config.AvailableLocales.split(',');
|
|
|
|
|
|
} else {
|
|
|
|
|
|
available = Object.keys(languages);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2016-06-02 16:47:26 -03:00
|
|
|
|
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) {
|
2017-05-09 16:00:40 -04:00
|
|
|
|
return getAllLanguages()[locale];
|
2016-06-02 16:47:26 -03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export function isLanguageAvailable(locale) {
|
2017-05-09 16:00:40 -04:00
|
|
|
|
return Boolean(getLanguages()[locale]);
|
2016-03-14 08:50:46 -04:00
|
|
|
|
}
|
2016-03-24 12:05:50 -04:00
|
|
|
|
|
|
|
|
|
|
export function safariFix(callback) {
|
|
|
|
|
|
require.ensure([
|
|
|
|
|
|
'intl',
|
2016-06-14 14:53:26 -03:00
|
|
|
|
'intl/locale-data/jsonp/de.js',
|
2016-03-24 12:05:50 -04:00
|
|
|
|
'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-08-04 10:45:36 -05:00
|
|
|
|
'intl/locale-data/jsonp/ko.js',
|
2016-07-22 13:05:26 -04:00
|
|
|
|
'intl/locale-data/jsonp/nl.js',
|
2017-05-04 17:07:42 -03:00
|
|
|
|
'intl/locale-data/jsonp/pl.js',
|
2016-07-19 08:34:22 -04:00
|
|
|
|
'intl/locale-data/jsonp/pt.js',
|
2017-05-26 09:46:50 -04:00
|
|
|
|
'intl/locale-data/jsonp/tr.js',
|
2016-10-12 10:49:17 -03:00
|
|
|
|
'intl/locale-data/jsonp/ru.js',
|
2016-07-19 08:34:22 -04:00
|
|
|
|
'intl/locale-data/jsonp/zh.js'
|
2016-03-24 12:05:50 -04:00
|
|
|
|
], (require) => {
|
|
|
|
|
|
require('intl');
|
2016-06-14 14:53:26 -03:00
|
|
|
|
require('intl/locale-data/jsonp/de.js');
|
2016-03-24 12:05:50 -04:00
|
|
|
|
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-08-04 10:45:36 -05:00
|
|
|
|
require('intl/locale-data/jsonp/ko.js');
|
2016-07-22 13:05:26 -04:00
|
|
|
|
require('intl/locale-data/jsonp/nl.js');
|
2017-05-04 17:07:42 -03:00
|
|
|
|
require('intl/locale-data/jsonp/pl.js');
|
2016-03-24 12:05:50 -04:00
|
|
|
|
require('intl/locale-data/jsonp/pt.js');
|
2017-05-26 09:46:50 -04:00
|
|
|
|
require('intl/locale-data/jsonp/tr.js');
|
2016-10-12 10:49:17 -03:00
|
|
|
|
require('intl/locale-data/jsonp/ru.js');
|
2016-07-19 08:34:22 -04:00
|
|
|
|
require('intl/locale-data/jsonp/zh.js');
|
2016-03-24 12:05:50 -04:00
|
|
|
|
callback();
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export function doAddLocaleData() {
|
|
|
|
|
|
addLocaleData(enLocaleData);
|
2016-06-14 14:53:26 -03:00
|
|
|
|
addLocaleData(deLocaleData);
|
2016-03-24 12:05:50 -04:00
|
|
|
|
addLocaleData(esLocaleData);
|
2016-03-24 20:17:46 +01:00
|
|
|
|
addLocaleData(frLocaleData);
|
2016-04-14 08:29:46 +09:00
|
|
|
|
addLocaleData(jaLocaleData);
|
2016-08-04 10:45:36 -05:00
|
|
|
|
addLocaleData(koLocaleData);
|
2016-07-22 13:05:26 -04:00
|
|
|
|
addLocaleData(nlLocaleData);
|
2017-05-04 17:07:42 -03:00
|
|
|
|
addLocaleData(plLocaleData);
|
2016-03-24 12:05:50 -04:00
|
|
|
|
addLocaleData(ptLocaleData);
|
2017-05-26 09:46:50 -04:00
|
|
|
|
addLocaleData(trLocaleData);
|
2016-10-12 10:49:17 -03:00
|
|
|
|
addLocaleData(ruLocaleData);
|
2016-07-19 08:34:22 -04:00
|
|
|
|
addLocaleData(zhLocaleData);
|
2016-03-24 12:05:50 -04:00
|
|
|
|
}
|