@vlian/framework 1.2.47 → 1.2.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics.umd.js +1 -1
- package/dist/index.umd.js +16 -5
- package/dist/index.umd.js.map +1 -1
- package/dist/kernel/manager/i18nManager.cjs +1 -1
- package/dist/kernel/manager/i18nManager.cjs.map +1 -1
- package/dist/kernel/manager/i18nManager.js +1 -1
- package/dist/kernel/manager/i18nManager.js.map +1 -1
- package/dist/library/locale/index.cjs +14 -3
- package/dist/library/locale/index.cjs.map +1 -1
- package/dist/library/locale/index.d.ts +2 -1
- package/dist/library/locale/index.js +14 -3
- package/dist/library/locale/index.js.map +1 -1
- package/dist/state.umd.js +1 -1
- package/package.json +1 -1
|
@@ -45,7 +45,7 @@ let I18nManager = class I18nManager {
|
|
|
45
45
|
} else {
|
|
46
46
|
await (0, _persistence.writePersistedValue)(this.config.persistence, JSON.stringify(this.snapshot));
|
|
47
47
|
}
|
|
48
|
-
(0, _library.setupI18n)(this.snapshot.resources || {});
|
|
48
|
+
await (0, _library.setupI18n)(this.snapshot.resources || {});
|
|
49
49
|
(0, _library.setLang)(this.snapshot.locale);
|
|
50
50
|
}
|
|
51
51
|
getSnapshot() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/kernel/manager/i18nManager.ts"],"sourcesContent":["import { setupI18n, setLang } from '../../library';\nimport type { I18nSnapshot, KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\ntype I18nListener = (next: I18nSnapshot, prev: I18nSnapshot) => void;\n\nexport class I18nManager implements KernelManager<I18nSnapshot> {\n private snapshot: I18nSnapshot = DEFAULT_I18N;\n private config: KernelConfig['i18n'] = DEFAULT_CONFIG.i18n;\n private listeners = new Set<I18nListener>();\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.i18n;\n this.snapshot = { ...DEFAULT_I18N, ...(this.config.initial || {}) };\n\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n try {\n const parsed = JSON.parse(persisted) as Partial<I18nSnapshot>;\n this.snapshot = { ...this.snapshot, ...parsed };\n } catch {\n // ignore parse errors\n }\n } else {\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n\n setupI18n((this.snapshot.resources || {}) as any);\n setLang(this.snapshot.locale);\n }\n\n public getSnapshot(): I18nSnapshot {\n return { ...this.snapshot };\n }\n\n public subscribe(listener: I18nListener): () => void {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n private emit(next: I18nSnapshot, prev: I18nSnapshot): void {\n this.listeners.forEach((listener) => {\n listener({ ...next }, { ...prev });\n });\n }\n\n public async setLocale(locale: I18nSnapshot['locale']): Promise<void> {\n const prev = this.snapshot;\n this.snapshot = { ...this.snapshot, locale };\n setLang(locale);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n this.emit(this.snapshot, prev);\n }\n}\n"],"names":["I18nManager","initialize","context","config","i18n","snapshot","DEFAULT_I18N","initial","persisted","readPersistedValue","persistence","parsed","JSON","parse","writePersistedValue","stringify","setupI18n","resources","setLang","locale","getSnapshot","subscribe","listener","listeners","add","delete","emit","next","prev","forEach","setLocale","DEFAULT_CONFIG","Set"],"mappings":";;;;+BAOaA;;;eAAAA;;;yBAPsB;2BAEU;6BACW;;;;;;;;;;;;;;AAIjD,IAAA,AAAMA,cAAN,MAAMA;IAKX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,IAAI;QACjC,IAAI,CAACC,QAAQ,GAAG;YAAE,GAAGC,uBAAY;YAAE,GAAI,IAAI,CAACH,MAAM,CAACI,OAAO,IAAI,CAAC,CAAC;QAAE;QAElE,MAAMC,YAAY,MAAMC,IAAAA,+BAAkB,EAAC,IAAI,CAACN,MAAM,CAACO,WAAW;QAClE,IAAIF,cAAc,MAAM;YACtB,IAAI;gBACF,MAAMG,SAASC,KAAKC,KAAK,CAACL;gBAC1B,IAAI,CAACH,QAAQ,GAAG;oBAAE,GAAG,IAAI,CAACA,QAAQ;oBAAE,GAAGM,MAAM;gBAAC;YAChD,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF,OAAO;YACL,MAAMG,IAAAA,gCAAmB,EAAC,IAAI,CAACX,MAAM,CAACO,WAAW,EAAEE,KAAKG,SAAS,CAAC,IAAI,CAACV,QAAQ;QACjF;
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/i18nManager.ts"],"sourcesContent":["import { setupI18n, setLang } from '../../library';\nimport type { I18nSnapshot, KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\ntype I18nListener = (next: I18nSnapshot, prev: I18nSnapshot) => void;\n\nexport class I18nManager implements KernelManager<I18nSnapshot> {\n private snapshot: I18nSnapshot = DEFAULT_I18N;\n private config: KernelConfig['i18n'] = DEFAULT_CONFIG.i18n;\n private listeners = new Set<I18nListener>();\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.i18n;\n this.snapshot = { ...DEFAULT_I18N, ...(this.config.initial || {}) };\n\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n try {\n const parsed = JSON.parse(persisted) as Partial<I18nSnapshot>;\n this.snapshot = { ...this.snapshot, ...parsed };\n } catch {\n // ignore parse errors\n }\n } else {\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n\n await setupI18n((this.snapshot.resources || {}) as any);\n setLang(this.snapshot.locale);\n }\n\n public getSnapshot(): I18nSnapshot {\n return { ...this.snapshot };\n }\n\n public subscribe(listener: I18nListener): () => void {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n private emit(next: I18nSnapshot, prev: I18nSnapshot): void {\n this.listeners.forEach((listener) => {\n listener({ ...next }, { ...prev });\n });\n }\n\n public async setLocale(locale: I18nSnapshot['locale']): Promise<void> {\n const prev = this.snapshot;\n this.snapshot = { ...this.snapshot, locale };\n setLang(locale);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n this.emit(this.snapshot, prev);\n }\n}\n"],"names":["I18nManager","initialize","context","config","i18n","snapshot","DEFAULT_I18N","initial","persisted","readPersistedValue","persistence","parsed","JSON","parse","writePersistedValue","stringify","setupI18n","resources","setLang","locale","getSnapshot","subscribe","listener","listeners","add","delete","emit","next","prev","forEach","setLocale","DEFAULT_CONFIG","Set"],"mappings":";;;;+BAOaA;;;eAAAA;;;yBAPsB;2BAEU;6BACW;;;;;;;;;;;;;;AAIjD,IAAA,AAAMA,cAAN,MAAMA;IAKX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,IAAI;QACjC,IAAI,CAACC,QAAQ,GAAG;YAAE,GAAGC,uBAAY;YAAE,GAAI,IAAI,CAACH,MAAM,CAACI,OAAO,IAAI,CAAC,CAAC;QAAE;QAElE,MAAMC,YAAY,MAAMC,IAAAA,+BAAkB,EAAC,IAAI,CAACN,MAAM,CAACO,WAAW;QAClE,IAAIF,cAAc,MAAM;YACtB,IAAI;gBACF,MAAMG,SAASC,KAAKC,KAAK,CAACL;gBAC1B,IAAI,CAACH,QAAQ,GAAG;oBAAE,GAAG,IAAI,CAACA,QAAQ;oBAAE,GAAGM,MAAM;gBAAC;YAChD,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF,OAAO;YACL,MAAMG,IAAAA,gCAAmB,EAAC,IAAI,CAACX,MAAM,CAACO,WAAW,EAAEE,KAAKG,SAAS,CAAC,IAAI,CAACV,QAAQ;QACjF;QAEA,MAAMW,IAAAA,kBAAS,EAAE,IAAI,CAACX,QAAQ,CAACY,SAAS,IAAI,CAAC;QAC7CC,IAAAA,gBAAO,EAAC,IAAI,CAACb,QAAQ,CAACc,MAAM;IAC9B;IAEOC,cAA4B;QACjC,OAAO;YAAE,GAAG,IAAI,CAACf,QAAQ;QAAC;IAC5B;IAEOgB,UAAUC,QAAsB,EAAc;QACnD,IAAI,CAACC,SAAS,CAACC,GAAG,CAACF;QACnB,OAAO;YACL,IAAI,CAACC,SAAS,CAACE,MAAM,CAACH;QACxB;IACF;IAEQI,KAAKC,IAAkB,EAAEC,IAAkB,EAAQ;QACzD,IAAI,CAACL,SAAS,CAACM,OAAO,CAAC,CAACP;YACtBA,SAAS;gBAAE,GAAGK,IAAI;YAAC,GAAG;gBAAE,GAAGC,IAAI;YAAC;QAClC;IACF;IAEA,MAAaE,UAAUX,MAA8B,EAAiB;QACpE,MAAMS,OAAO,IAAI,CAACvB,QAAQ;QAC1B,IAAI,CAACA,QAAQ,GAAG;YAAE,GAAG,IAAI,CAACA,QAAQ;YAAEc;QAAO;QAC3CD,IAAAA,gBAAO,EAACC;QACR,MAAML,IAAAA,gCAAmB,EAAC,IAAI,CAACX,MAAM,CAACO,WAAW,EAAEE,KAAKG,SAAS,CAAC,IAAI,CAACV,QAAQ;QAC/E,IAAI,CAACqB,IAAI,CAAC,IAAI,CAACrB,QAAQ,EAAEuB;IAC3B;;QA/CA,uBAAQvB,YAAyBC,uBAAY;QAC7C,uBAAQH,UAA+B4B,yBAAc,CAAC3B,IAAI;QAC1D,uBAAQmB,aAAY,IAAIS;;AA8C1B"}
|
|
@@ -35,7 +35,7 @@ export class I18nManager {
|
|
|
35
35
|
} else {
|
|
36
36
|
await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));
|
|
37
37
|
}
|
|
38
|
-
setupI18n(this.snapshot.resources || {});
|
|
38
|
+
await setupI18n(this.snapshot.resources || {});
|
|
39
39
|
setLang(this.snapshot.locale);
|
|
40
40
|
}
|
|
41
41
|
getSnapshot() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/kernel/manager/i18nManager.ts"],"sourcesContent":["import { setupI18n, setLang } from '../../library';\nimport type { I18nSnapshot, KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\ntype I18nListener = (next: I18nSnapshot, prev: I18nSnapshot) => void;\n\nexport class I18nManager implements KernelManager<I18nSnapshot> {\n private snapshot: I18nSnapshot = DEFAULT_I18N;\n private config: KernelConfig['i18n'] = DEFAULT_CONFIG.i18n;\n private listeners = new Set<I18nListener>();\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.i18n;\n this.snapshot = { ...DEFAULT_I18N, ...(this.config.initial || {}) };\n\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n try {\n const parsed = JSON.parse(persisted) as Partial<I18nSnapshot>;\n this.snapshot = { ...this.snapshot, ...parsed };\n } catch {\n // ignore parse errors\n }\n } else {\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n\n setupI18n((this.snapshot.resources || {}) as any);\n setLang(this.snapshot.locale);\n }\n\n public getSnapshot(): I18nSnapshot {\n return { ...this.snapshot };\n }\n\n public subscribe(listener: I18nListener): () => void {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n private emit(next: I18nSnapshot, prev: I18nSnapshot): void {\n this.listeners.forEach((listener) => {\n listener({ ...next }, { ...prev });\n });\n }\n\n public async setLocale(locale: I18nSnapshot['locale']): Promise<void> {\n const prev = this.snapshot;\n this.snapshot = { ...this.snapshot, locale };\n setLang(locale);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n this.emit(this.snapshot, prev);\n }\n}\n"],"names":["setupI18n","setLang","DEFAULT_CONFIG","DEFAULT_I18N","readPersistedValue","writePersistedValue","I18nManager","initialize","context","config","i18n","snapshot","initial","persisted","persistence","parsed","JSON","parse","stringify","resources","locale","getSnapshot","subscribe","listener","listeners","add","delete","emit","next","prev","forEach","setLocale","Set"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,gBAAgB;AAEnD,SAASC,cAAc,EAAEC,YAAY,QAAQ,eAAe;AAC5D,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,gBAAgB;AAIxE,OAAO,MAAMC;IAKX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,IAAI;QACjC,IAAI,CAACC,QAAQ,GAAG;YAAE,GAAGR,YAAY;YAAE,GAAI,IAAI,CAACM,MAAM,CAACG,OAAO,IAAI,CAAC,CAAC;QAAE;QAElE,MAAMC,YAAY,MAAMT,mBAAmB,IAAI,CAACK,MAAM,CAACK,WAAW;QAClE,IAAID,cAAc,MAAM;YACtB,IAAI;gBACF,MAAME,SAASC,KAAKC,KAAK,CAACJ;gBAC1B,IAAI,CAACF,QAAQ,GAAG;oBAAE,GAAG,IAAI,CAACA,QAAQ;oBAAE,GAAGI,MAAM;gBAAC;YAChD,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF,OAAO;YACL,MAAMV,oBAAoB,IAAI,CAACI,MAAM,CAACK,WAAW,EAAEE,KAAKE,SAAS,CAAC,IAAI,CAACP,QAAQ;QACjF;
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/i18nManager.ts"],"sourcesContent":["import { setupI18n, setLang } from '../../library';\nimport type { I18nSnapshot, KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\ntype I18nListener = (next: I18nSnapshot, prev: I18nSnapshot) => void;\n\nexport class I18nManager implements KernelManager<I18nSnapshot> {\n private snapshot: I18nSnapshot = DEFAULT_I18N;\n private config: KernelConfig['i18n'] = DEFAULT_CONFIG.i18n;\n private listeners = new Set<I18nListener>();\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.i18n;\n this.snapshot = { ...DEFAULT_I18N, ...(this.config.initial || {}) };\n\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n try {\n const parsed = JSON.parse(persisted) as Partial<I18nSnapshot>;\n this.snapshot = { ...this.snapshot, ...parsed };\n } catch {\n // ignore parse errors\n }\n } else {\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n\n await setupI18n((this.snapshot.resources || {}) as any);\n setLang(this.snapshot.locale);\n }\n\n public getSnapshot(): I18nSnapshot {\n return { ...this.snapshot };\n }\n\n public subscribe(listener: I18nListener): () => void {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n private emit(next: I18nSnapshot, prev: I18nSnapshot): void {\n this.listeners.forEach((listener) => {\n listener({ ...next }, { ...prev });\n });\n }\n\n public async setLocale(locale: I18nSnapshot['locale']): Promise<void> {\n const prev = this.snapshot;\n this.snapshot = { ...this.snapshot, locale };\n setLang(locale);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n this.emit(this.snapshot, prev);\n }\n}\n"],"names":["setupI18n","setLang","DEFAULT_CONFIG","DEFAULT_I18N","readPersistedValue","writePersistedValue","I18nManager","initialize","context","config","i18n","snapshot","initial","persisted","persistence","parsed","JSON","parse","stringify","resources","locale","getSnapshot","subscribe","listener","listeners","add","delete","emit","next","prev","forEach","setLocale","Set"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,gBAAgB;AAEnD,SAASC,cAAc,EAAEC,YAAY,QAAQ,eAAe;AAC5D,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,gBAAgB;AAIxE,OAAO,MAAMC;IAKX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,IAAI;QACjC,IAAI,CAACC,QAAQ,GAAG;YAAE,GAAGR,YAAY;YAAE,GAAI,IAAI,CAACM,MAAM,CAACG,OAAO,IAAI,CAAC,CAAC;QAAE;QAElE,MAAMC,YAAY,MAAMT,mBAAmB,IAAI,CAACK,MAAM,CAACK,WAAW;QAClE,IAAID,cAAc,MAAM;YACtB,IAAI;gBACF,MAAME,SAASC,KAAKC,KAAK,CAACJ;gBAC1B,IAAI,CAACF,QAAQ,GAAG;oBAAE,GAAG,IAAI,CAACA,QAAQ;oBAAE,GAAGI,MAAM;gBAAC;YAChD,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF,OAAO;YACL,MAAMV,oBAAoB,IAAI,CAACI,MAAM,CAACK,WAAW,EAAEE,KAAKE,SAAS,CAAC,IAAI,CAACP,QAAQ;QACjF;QAEA,MAAMX,UAAW,IAAI,CAACW,QAAQ,CAACQ,SAAS,IAAI,CAAC;QAC7ClB,QAAQ,IAAI,CAACU,QAAQ,CAACS,MAAM;IAC9B;IAEOC,cAA4B;QACjC,OAAO;YAAE,GAAG,IAAI,CAACV,QAAQ;QAAC;IAC5B;IAEOW,UAAUC,QAAsB,EAAc;QACnD,IAAI,CAACC,SAAS,CAACC,GAAG,CAACF;QACnB,OAAO;YACL,IAAI,CAACC,SAAS,CAACE,MAAM,CAACH;QACxB;IACF;IAEQI,KAAKC,IAAkB,EAAEC,IAAkB,EAAQ;QACzD,IAAI,CAACL,SAAS,CAACM,OAAO,CAAC,CAACP;YACtBA,SAAS;gBAAE,GAAGK,IAAI;YAAC,GAAG;gBAAE,GAAGC,IAAI;YAAC;QAClC;IACF;IAEA,MAAaE,UAAUX,MAA8B,EAAiB;QACpE,MAAMS,OAAO,IAAI,CAAClB,QAAQ;QAC1B,IAAI,CAACA,QAAQ,GAAG;YAAE,GAAG,IAAI,CAACA,QAAQ;YAAES;QAAO;QAC3CnB,QAAQmB;QACR,MAAMf,oBAAoB,IAAI,CAACI,MAAM,CAACK,WAAW,EAAEE,KAAKE,SAAS,CAAC,IAAI,CAACP,QAAQ;QAC/E,IAAI,CAACgB,IAAI,CAAC,IAAI,CAAChB,QAAQ,EAAEkB;IAC3B;;QA/CA,uBAAQlB,YAAyBR;QACjC,uBAAQM,UAA+BP,eAAeQ,IAAI;QAC1D,uBAAQc,aAAY,IAAIQ;;AA8C1B"}
|
|
@@ -28,6 +28,7 @@ function _interop_require_default(obj) {
|
|
|
28
28
|
default: obj
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
+
let setupPromise = null;
|
|
31
32
|
function setupI18n(otherLocales = {
|
|
32
33
|
'en-US': {},
|
|
33
34
|
'zh-CN': {}
|
|
@@ -40,13 +41,23 @@ function setupI18n(otherLocales = {
|
|
|
40
41
|
translation: Object.assign({}, _zhcn.default, otherLocales['zh-CN'])
|
|
41
42
|
}
|
|
42
43
|
};
|
|
43
|
-
_i18next.default.
|
|
44
|
+
if (_i18next.default.isInitialized) {
|
|
45
|
+
_i18next.default.addResourceBundle('en-US', 'translation', locales['en-US'].translation, true, true);
|
|
46
|
+
_i18next.default.addResourceBundle('zh-CN', 'translation', locales['zh-CN'].translation, true, true);
|
|
47
|
+
return Promise.resolve(_i18next.default);
|
|
48
|
+
}
|
|
49
|
+
if (setupPromise) {
|
|
50
|
+
return setupPromise;
|
|
51
|
+
}
|
|
52
|
+
const initPromise = _i18next.default.use(_reacti18next.initReactI18next).init({
|
|
44
53
|
interpolation: {
|
|
45
54
|
escapeValue: false
|
|
46
55
|
},
|
|
47
|
-
lng: 'zh-
|
|
56
|
+
lng: 'zh-CN',
|
|
48
57
|
resources: locales
|
|
49
|
-
});
|
|
58
|
+
}).then(()=>_i18next.default);
|
|
59
|
+
setupPromise = initPromise;
|
|
60
|
+
return initPromise;
|
|
50
61
|
}
|
|
51
62
|
const $t = _i18next.default.t;
|
|
52
63
|
function setLang(locale) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/library/locale/index.ts"],"sourcesContent":["import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport enUS from './langs/en-us';\nimport zhCN from './langs/zh-cn';\n\nimport { LangType, Schema } from \"./types\"\n\n/** Setup plugin i18n */\nexport function setupI18n(otherLocales: Record<LangType, Record<string, unknown>> = {\n 'en-US': {},\n 'zh-CN': {}\n}) {\n const locales: Record<LangType, Schema> = {\n 'en-US': {\n translation: Object.assign({}, enUS, otherLocales['en-US'])\n },\n 'zh-CN': {\n translation: Object.assign({}, zhCN, otherLocales['zh-CN'])\n }\n };\n\n i18n.use(initReactI18next).init({\n interpolation: {\n escapeValue: false\n },\n lng: 'zh-
|
|
1
|
+
{"version":3,"sources":["../../../src/library/locale/index.ts"],"sourcesContent":["import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport enUS from './langs/en-us';\nimport zhCN from './langs/zh-cn';\n\nimport { LangType, Schema } from \"./types\"\n\nlet setupPromise: Promise<typeof i18n> | null = null;\n\n/** Setup plugin i18n */\nexport function setupI18n(otherLocales: Record<LangType, Record<string, unknown>> = {\n 'en-US': {},\n 'zh-CN': {}\n}): Promise<typeof i18n> {\n const locales: Record<LangType, Schema> = {\n 'en-US': {\n translation: Object.assign({}, enUS, otherLocales['en-US'])\n },\n 'zh-CN': {\n translation: Object.assign({}, zhCN, otherLocales['zh-CN'])\n }\n };\n\n if (i18n.isInitialized) {\n i18n.addResourceBundle('en-US', 'translation', locales['en-US'].translation, true, true);\n i18n.addResourceBundle('zh-CN', 'translation', locales['zh-CN'].translation, true, true);\n return Promise.resolve(i18n);\n }\n\n if (setupPromise) {\n return setupPromise;\n }\n\n const initPromise = i18n.use(initReactI18next).init({\n interpolation: {\n escapeValue: false\n },\n lng: 'zh-CN',\n resources: locales\n }).then(() => i18n);\n\n setupPromise = initPromise;\n\n return initPromise;\n}\n\nexport const $t = i18n.t;\n\nexport function setLang(locale: LangType) {\n i18n.changeLanguage(locale);\n}\n"],"names":["$t","setLang","setupI18n","setupPromise","otherLocales","locales","translation","Object","assign","enUS","zhCN","i18n","isInitialized","addResourceBundle","Promise","resolve","initPromise","use","initReactI18next","init","interpolation","escapeValue","lng","resources","then","t","locale","changeLanguage"],"mappings":";;;;;;;;;;;QA8CaA;eAAAA;;QAEGC;eAAAA;;QAtCAC;eAAAA;;;gEAVC;8BACgB;6DAChB;6DACA;;;;;;AAIjB,IAAIC,eAA4C;AAGzC,SAASD,UAAUE,eAA0D;IAChF,SAAS,CAAC;IACV,SAAS,CAAC;AACd,CAAC;IACG,MAAMC,UAAoC;QACtC,SAAS;YACLC,aAAaC,OAAOC,MAAM,CAAC,CAAC,GAAGC,aAAI,EAAEL,YAAY,CAAC,QAAQ;QAC9D;QACA,SAAS;YACLE,aAAaC,OAAOC,MAAM,CAAC,CAAC,GAAGE,aAAI,EAAEN,YAAY,CAAC,QAAQ;QAC9D;IACJ;IAEA,IAAIO,gBAAI,CAACC,aAAa,EAAE;QACpBD,gBAAI,CAACE,iBAAiB,CAAC,SAAS,eAAeR,OAAO,CAAC,QAAQ,CAACC,WAAW,EAAE,MAAM;QACnFK,gBAAI,CAACE,iBAAiB,CAAC,SAAS,eAAeR,OAAO,CAAC,QAAQ,CAACC,WAAW,EAAE,MAAM;QACnF,OAAOQ,QAAQC,OAAO,CAACJ,gBAAI;IAC/B;IAEA,IAAIR,cAAc;QACd,OAAOA;IACX;IAEA,MAAMa,cAAcL,gBAAI,CAACM,GAAG,CAACC,8BAAgB,EAAEC,IAAI,CAAC;QAChDC,eAAe;YACXC,aAAa;QACjB;QACAC,KAAK;QACLC,WAAWlB;IACf,GAAGmB,IAAI,CAAC,IAAMb,gBAAI;IAElBR,eAAea;IAEf,OAAOA;AACX;AAEO,MAAMhB,KAAKW,gBAAI,CAACc,CAAC;AAEjB,SAASxB,QAAQyB,MAAgB;IACpCf,gBAAI,CAACgB,cAAc,CAACD;AACxB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import i18n from 'i18next';
|
|
1
2
|
import { LangType } from "./types";
|
|
2
3
|
/** Setup plugin i18n */
|
|
3
|
-
export declare function setupI18n(otherLocales?: Record<LangType, Record<string, unknown>>):
|
|
4
|
+
export declare function setupI18n(otherLocales?: Record<LangType, Record<string, unknown>>): Promise<typeof i18n>;
|
|
4
5
|
export declare const $t: import("i18next").TFunction<["translation", ...string[]], undefined>;
|
|
5
6
|
export declare function setLang(locale: LangType): void;
|
|
@@ -2,6 +2,7 @@ import i18n from "i18next";
|
|
|
2
2
|
import { initReactI18next } from "react-i18next";
|
|
3
3
|
import enUS from "./langs/en-us";
|
|
4
4
|
import zhCN from "./langs/zh-cn";
|
|
5
|
+
let setupPromise = null;
|
|
5
6
|
/** Setup plugin i18n */ export function setupI18n(otherLocales = {
|
|
6
7
|
'en-US': {},
|
|
7
8
|
'zh-CN': {}
|
|
@@ -14,13 +15,23 @@ import zhCN from "./langs/zh-cn";
|
|
|
14
15
|
translation: Object.assign({}, zhCN, otherLocales['zh-CN'])
|
|
15
16
|
}
|
|
16
17
|
};
|
|
17
|
-
i18n.
|
|
18
|
+
if (i18n.isInitialized) {
|
|
19
|
+
i18n.addResourceBundle('en-US', 'translation', locales['en-US'].translation, true, true);
|
|
20
|
+
i18n.addResourceBundle('zh-CN', 'translation', locales['zh-CN'].translation, true, true);
|
|
21
|
+
return Promise.resolve(i18n);
|
|
22
|
+
}
|
|
23
|
+
if (setupPromise) {
|
|
24
|
+
return setupPromise;
|
|
25
|
+
}
|
|
26
|
+
const initPromise = i18n.use(initReactI18next).init({
|
|
18
27
|
interpolation: {
|
|
19
28
|
escapeValue: false
|
|
20
29
|
},
|
|
21
|
-
lng: 'zh-
|
|
30
|
+
lng: 'zh-CN',
|
|
22
31
|
resources: locales
|
|
23
|
-
});
|
|
32
|
+
}).then(()=>i18n);
|
|
33
|
+
setupPromise = initPromise;
|
|
34
|
+
return initPromise;
|
|
24
35
|
}
|
|
25
36
|
export const $t = i18n.t;
|
|
26
37
|
export function setLang(locale) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/library/locale/index.ts"],"sourcesContent":["import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport enUS from './langs/en-us';\nimport zhCN from './langs/zh-cn';\n\nimport { LangType, Schema } from \"./types\"\n\n/** Setup plugin i18n */\nexport function setupI18n(otherLocales: Record<LangType, Record<string, unknown>> = {\n 'en-US': {},\n 'zh-CN': {}\n}) {\n const locales: Record<LangType, Schema> = {\n 'en-US': {\n translation: Object.assign({}, enUS, otherLocales['en-US'])\n },\n 'zh-CN': {\n translation: Object.assign({}, zhCN, otherLocales['zh-CN'])\n }\n };\n\n i18n.use(initReactI18next).init({\n interpolation: {\n escapeValue: false\n },\n lng: 'zh-
|
|
1
|
+
{"version":3,"sources":["../../../src/library/locale/index.ts"],"sourcesContent":["import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport enUS from './langs/en-us';\nimport zhCN from './langs/zh-cn';\n\nimport { LangType, Schema } from \"./types\"\n\nlet setupPromise: Promise<typeof i18n> | null = null;\n\n/** Setup plugin i18n */\nexport function setupI18n(otherLocales: Record<LangType, Record<string, unknown>> = {\n 'en-US': {},\n 'zh-CN': {}\n}): Promise<typeof i18n> {\n const locales: Record<LangType, Schema> = {\n 'en-US': {\n translation: Object.assign({}, enUS, otherLocales['en-US'])\n },\n 'zh-CN': {\n translation: Object.assign({}, zhCN, otherLocales['zh-CN'])\n }\n };\n\n if (i18n.isInitialized) {\n i18n.addResourceBundle('en-US', 'translation', locales['en-US'].translation, true, true);\n i18n.addResourceBundle('zh-CN', 'translation', locales['zh-CN'].translation, true, true);\n return Promise.resolve(i18n);\n }\n\n if (setupPromise) {\n return setupPromise;\n }\n\n const initPromise = i18n.use(initReactI18next).init({\n interpolation: {\n escapeValue: false\n },\n lng: 'zh-CN',\n resources: locales\n }).then(() => i18n);\n\n setupPromise = initPromise;\n\n return initPromise;\n}\n\nexport const $t = i18n.t;\n\nexport function setLang(locale: LangType) {\n i18n.changeLanguage(locale);\n}\n"],"names":["i18n","initReactI18next","enUS","zhCN","setupPromise","setupI18n","otherLocales","locales","translation","Object","assign","isInitialized","addResourceBundle","Promise","resolve","initPromise","use","init","interpolation","escapeValue","lng","resources","then","$t","t","setLang","locale","changeLanguage"],"mappings":"AAAA,OAAOA,UAAU,UAAU;AAC3B,SAASC,gBAAgB,QAAQ,gBAAgB;AACjD,OAAOC,UAAU,gBAAgB;AACjC,OAAOC,UAAU,gBAAgB;AAIjC,IAAIC,eAA4C;AAEhD,sBAAsB,GACtB,OAAO,SAASC,UAAUC,eAA0D;IAChF,SAAS,CAAC;IACV,SAAS,CAAC;AACd,CAAC;IACG,MAAMC,UAAoC;QACtC,SAAS;YACLC,aAAaC,OAAOC,MAAM,CAAC,CAAC,GAAGR,MAAMI,YAAY,CAAC,QAAQ;QAC9D;QACA,SAAS;YACLE,aAAaC,OAAOC,MAAM,CAAC,CAAC,GAAGP,MAAMG,YAAY,CAAC,QAAQ;QAC9D;IACJ;IAEA,IAAIN,KAAKW,aAAa,EAAE;QACpBX,KAAKY,iBAAiB,CAAC,SAAS,eAAeL,OAAO,CAAC,QAAQ,CAACC,WAAW,EAAE,MAAM;QACnFR,KAAKY,iBAAiB,CAAC,SAAS,eAAeL,OAAO,CAAC,QAAQ,CAACC,WAAW,EAAE,MAAM;QACnF,OAAOK,QAAQC,OAAO,CAACd;IAC3B;IAEA,IAAII,cAAc;QACd,OAAOA;IACX;IAEA,MAAMW,cAAcf,KAAKgB,GAAG,CAACf,kBAAkBgB,IAAI,CAAC;QAChDC,eAAe;YACXC,aAAa;QACjB;QACAC,KAAK;QACLC,WAAWd;IACf,GAAGe,IAAI,CAAC,IAAMtB;IAEdI,eAAeW;IAEf,OAAOA;AACX;AAEA,OAAO,MAAMQ,KAAKvB,KAAKwB,CAAC,CAAC;AAEzB,OAAO,SAASC,QAAQC,MAAgB;IACpC1B,KAAK2B,cAAc,CAACD;AACxB"}
|
package/dist/state.umd.js
CHANGED