focalboard/webapp/src/i18n.tsx

61 lines
1.7 KiB
TypeScript
Raw Normal View History

2020-10-23 13:40:39 +02:00
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import messages_en from '../i18n/en.json'
import messages_es from '../i18n/es.json'
import messages_de from '../i18n/de.json'
import messages_ja from '../i18n/ja.json'
2021-03-19 23:07:53 +01:00
import messages_fr from '../i18n/fr.json'
2021-03-21 19:47:47 +01:00
import messages_nl from '../i18n/nl.json'
import messages_ru from '../i18n/ru.json'
2021-03-25 19:46:59 +01:00
import messages_oc from '../i18n/oc.json'
import messages_tr from '../i18n/tr.json'
import messages_zhHant from '../i18n/zh_Hant.json'
import messages_zhHans from '../i18n/zh_Hans.json'
const supportedLanguages = ['de', 'fr', 'ja', 'nl', 'ru', 'es', 'oc', 'tr', 'zh-cn', 'zh-tw']
2021-03-25 19:46:59 +01:00
2020-10-23 13:40:39 +02:00
export function getMessages(lang: string): {[key: string]: string} {
switch (lang) {
case 'de':
return messages_de
2021-03-19 23:07:53 +01:00
case 'fr':
return messages_fr
case 'ja':
return messages_ja
2021-03-21 19:47:47 +01:00
case 'nl':
return messages_nl
case 'ru':
return messages_ru
2020-10-23 13:40:39 +02:00
case 'es':
return messages_es
2021-03-25 19:46:59 +01:00
case 'oc':
return messages_oc
case 'tr':
return messages_tr
case 'zh-cn':
2021-03-25 19:46:59 +01:00
return messages_zhHant
case 'zh-tw':
return messages_zhHans
2020-10-23 13:40:39 +02:00
}
return messages_en
}
export function getCurrentLanguage(): string {
let lang = localStorage.getItem('language')
if (!lang) {
if (supportedLanguages.includes(navigator.language)) {
lang = navigator.language
} else if (supportedLanguages.includes(navigator.language.split(/[-_]/)[0])) {
lang = navigator.language.split(/[-_]/)[0]
} else {
lang = 'en'
}
2020-10-23 13:40:39 +02:00
}
return lang
}
export function storeLanguage(lang: string): void {
localStorage.setItem('language', lang)
}