| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- import app from '../../app.json';
- import I18n from 'react-native-i18n';
- import en from './locales/en';
- import es from './locales/es';
- import de from './locales/de';
- import fr from './locales/fr';
- import ja from './locales/ja';
- import km from './locales/km';
- import ko from './locales/ko';
- import my from './locales/my';
- import th from './locales/th';
- import vi from './locales/vi';
- import zh from './locales/zh';
- import tw from './locales/zh-TW';
- import { getStorage } from '../utils/storage';
- I18n.fallbacks = true;
- //I18n.l("currency", 630, {})
- //I18n.t("", {})
- const SETTING_KEY = "locale-settings";
- const DEBUG = app.debug && !app.product;
- const LOCALES = [{
- name: en.name,
- value: "en",//英语
- enable: true
- }, {
- name: de.name,
- value: "de",//德语
- enable: DEBUG
- }, {
- name: es.name,
- value: "es",//西语
- enable: DEBUG
- }, {
- name: fr.name,
- value: "fr",//法语
- enable: DEBUG
- }, {
- name: ja.name,
- value: "ja",//日语
- enable: DEBUG
- }, {
- name: ko.name,
- value: "ko",//韩语
- enable: DEBUG
- }, {
- name: km.name,
- value: "km",//柬埔寨-高棉语
- enable: DEBUG
- }, {
- name: my.name,
- value: "my",//缅甸语
- enable: DEBUG
- }, {
- name: th.name,
- value: "th",//泰语
- enable: DEBUG
- }, {
- name: vi.name,
- value: "vi",//越南语
- enable: DEBUG
- }, {
- name: zh.name,
- value: "zh-CN",//简体中文
- enable: true
- }, {
- name: tw.name,
- value: "zh-HK",//繁體中文
- enable: true
- }]
- if (app.modules.i18n && !app.isLumiWhitelabel) {
- I18n.translations = {
- default: en,
- en, es, de, fr,
- ja, km, ko, my,
- th, vi, zh,
- "zh-CN": zh,
- "zh-HK": tw
- }
- global.defaultLocale = I18n.currentLocale();
- if (app.debug)
- console.log("[I18n] defaultLocal", global.defaultLocale);
- } else {
- I18n.translations = {
- default: en,
- en
- }
- global.defaultLocale = "en";
- }
- const getLocaleName = () => {
- var locale = ""
- for (let l of LOCALES) {
- if (l.value == defaultLocale) {
- locale = l.value;
- break;
- }
- }
- if (!locale) {
- if (defaultLocale.indexOf("zh") >= 0) {
- if (defaultLocale.indexOf("CN") >= 0) {
- locale = "zh-CN"
- } else {
- locale = "zh-HK"
- }
- } else {
- for (let l of LOCALES) {
- if (defaultLocale.indexOf(l.value) >= 0) {
- locale = l.value;
- break;
- }
- }
- }
- if (app.debug)
- console.log("[I18n] getLocaleName(2)", locale);
- } else {
- if (app.debug)
- console.log("[I18n] getLocaleName(1)", locale);
- }
- return locale;
- }
- global.$t = (scope) => {
- return I18n.t(scope);
- }
- const init = (back) => {
- if (app.modules.i18n && !app.isLumiWhitelabel) {
- getStorage(SETTING_KEY).then(res => {
- if (res) {
- global.currentLocale = I18n.locale = res;
- } else {
- global.currentLocale = getLocaleName();//"zh-CN"
- I18n.locale = global.currentLocale;//设置local
- }
- if (app.debug) console.log("[I18n] currentLocale", global.currentLocale, I18n.locale);
- back();
- })
- } else {
- global.currentLocale = "en";
- back();
- }
- }
- export const i18nUtil = {
- init: init,
- locales: LOCALES,
- SETTING_KEY: SETTING_KEY,
- getLocaleName: getLocaleName,
- isChinese: () => global.currentLocale.indexOf("zh") >= 0,
- getLocale: () => global.currentLocale,
- setlocale: (localeName) => {
- global.currentLocale = I18n.locale = localeName;
- global.ComCountryList = undefined;
- },
- getDefaultLocale: () => global.defaultLocale,
- analyzeLocaleData: (data, def) => {
- for (let l in data) {
- //console.log(l);
- if (currentLocale.indexOf(l) >= 0) {
- return data[l]
- }
- }
- return def ?? data;
- }
- }
|