nfx-ui 0.10.2 → 0.10.3
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/chunk-i18n-DgSkzt0o.mjs +208 -0
- package/dist/chunk-i18n-DgSkzt0o.mjs.map +1 -0
- package/dist/chunk-i18n-GncnLl4L.cjs +3 -0
- package/dist/chunk-i18n-GncnLl4L.cjs.map +1 -0
- package/dist/languages.cjs +1 -1
- package/dist/languages.cjs.map +1 -1
- package/dist/languages.mjs +52 -63
- package/dist/languages.mjs.map +1 -1
- package/dist/src/languages/languages/i18n.d.ts.map +1 -1
- package/dist/src/languages/languages/i18nResources.d.ts +1 -1
- package/dist/src/languages/languages/i18nResources.d.ts.map +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-i18n-BCDF-skF.cjs +0 -3
- package/dist/chunk-i18n-BCDF-skF.cjs.map +0 -1
- package/dist/chunk-i18n-BsyWvA9c.mjs +0 -185
- package/dist/chunk-i18n-BsyWvA9c.mjs.map +0 -1
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const h=require("./chunk-chunk-BFrxaqQT.cjs"),n=require("./chunk-language-Bqmpuf2W.cjs");let r=require("i18next");r=h.__toESM(r);let f=require("i18next-browser-languagedetector");f=h.__toESM(f);let p=require("react-i18next");var v={show:"Show Sidebar",hide:"Hide Sidebar"},A={layoutSwitcher:v},y={en:"English",zh:"Chinese",fr:"French"},b={languageSwitcher:y},C={default:"Default",ios:"iOS",android:"Android",windows:"Windows",linux:"Linux"},P={theme:"Theme",language:"Language",layout:"Layout",preferences:"Preferences"},N={baseSwitcher:C,preference:P},$={default:"Default",light:"Light",dark:"Dark",cosmic:"Cosmic",corporate:"Corporate",forest:"Forest",coffee:"Coffee",wine:"Wine",wheat:"Wheat"},L={themeSwitcher:$},M={show:"Afficher la barre latérale",hide:"Masquer la barre latérale"},x={layoutSwitcher:M},O={en:"Anglais",zh:"Chinois",fr:"Français"},R={languageSwitcher:O},F={default:"Par défaut",ios:"iOS",android:"Android",windows:"Windows",linux:"Linux"},q={theme:"Thème",language:"Langue",layout:"Disposition",preferences:"Préférences"},k={baseSwitcher:F,preference:q},D={default:"Par défaut",light:"Clair",dark:"Sombre",cosmic:"Cosmique",corporate:"Entreprise",forest:"Forêt",coffee:"Coffee",wine:"Vin",wheat:"Blé"},j={themeSwitcher:D},U={show:"显示侧边栏",hide:"隐藏侧边栏"},B={layoutSwitcher:U},W={en:"英语",zh:"中文",fr:"法语"},X={languageSwitcher:W},z={default:"默认",ios:"iOS",android:"Android",windows:"Windows",linux:"Linux"},T={theme:"主题",language:"语言",layout:"布局",preferences:"偏好设置"},H={baseSwitcher:z,preference:T},I={default:"默认",light:"浅色",dark:"深色",cosmic:"宇宙",corporate:"企业",forest:"森林",coffee:"咖啡",wine:"酒红",wheat:"麦田"},V={themeSwitcher:I},S=["theme","language","layout","preference"],w={theme:"theme",language:"language",layout:"layout",preference:"preference"},Z={en:{theme:L,language:b,layout:A,preference:N},zh:{theme:V,language:X,layout:B,preference:H},fr:{theme:j,language:R,layout:x,preference:k}};function E(){return{RESOURCES:Z,NAME_SPACES_MAP:w,NAME_SPACES:[...S]}}function J(u){const c=E(),i=u.bundles,l=u.fallbackLng??n.LanguageEnum.ZH,m=[n.LanguageEnum.EN,n.LanguageEnum.ZH,n.LanguageEnum.FR].reduce((a,e)=>({...a,[e]:{...c.RESOURCES[e]??{},...i.RESOURCES[e]??{}}}),{}),d=[...i.NAME_SPACES,...c.NAME_SPACES.filter(a=>!i.NAME_SPACES.includes(a))];r.default.use(f.default).use(p.initReactI18next).init({compatibilityJSON:"v4",resources:m,lng:l,fallbackLng:l,ns:d,defaultNS:d[0],interpolation:{escapeValue:!1},keySeparator:".",detection:{order:["navigator","htmlTag","path","subdomain"]}});const s=u.onLoadExtraBundles;if(s){const a=async e=>{const t=await s(e);if(t==null)return;const _=Array.isArray(t)?t:[t];for(const{namespace:g,bundle:o}of _)g&&o&&typeof o=="object"&&r.default.addResourceBundle(e,g,o,!0,!0)};a(r.default.language||l),r.default.on("languageChanged",e=>{a(e)})}}var G=r.default;Object.defineProperty(exports,"NFX_NAMESPACES",{enumerable:!0,get:function(){return S}});Object.defineProperty(exports,"NFX_NAMESPACES_MAP",{enumerable:!0,get:function(){return w}});Object.defineProperty(exports,"getDefaultNfxBundles",{enumerable:!0,get:function(){return E}});Object.defineProperty(exports,"i18n_default",{enumerable:!0,get:function(){return G}});Object.defineProperty(exports,"initI18n",{enumerable:!0,get:function(){return J}});
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=chunk-i18n-BCDF-skF.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-i18n-BCDF-skF.cjs","names":[],"sources":["../src/languages/resources/en/layout.json","../src/languages/resources/en/language.json","../src/languages/resources/en/preference.json","../src/languages/resources/en/theme.json","../src/languages/resources/fr/layout.json","../src/languages/resources/fr/language.json","../src/languages/resources/fr/preference.json","../src/languages/resources/fr/theme.json","../src/languages/resources/zh/layout.json","../src/languages/resources/zh/language.json","../src/languages/resources/zh/preference.json","../src/languages/resources/zh/theme.json","../src/languages/resources/index.ts","../src/languages/languages/i18n.ts"],"sourcesContent":["{\n \"layoutSwitcher\": {\n \"show\": \"Show Sidebar\",\n \"hide\": \"Hide Sidebar\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"English\",\n \"zh\": \"Chinese\",\n \"fr\": \"French\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"Default\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"Theme\",\n \"language\": \"Language\",\n \"layout\": \"Layout\",\n \"preferences\": \"Preferences\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"Default\",\n \"light\": \"Light\",\n \"dark\": \"Dark\",\n \"cosmic\": \"Cosmic\",\n \"corporate\": \"Corporate\",\n \"forest\": \"Forest\",\n \"coffee\": \"Coffee\",\n \"wine\": \"Wine\",\n \"wheat\": \"Wheat\"\n }\n}\n","{\n \"layoutSwitcher\": {\n \"show\": \"Afficher la barre latérale\",\n \"hide\": \"Masquer la barre latérale\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"Anglais\",\n \"zh\": \"Chinois\",\n \"fr\": \"Français\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"Par défaut\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"Thème\",\n \"language\": \"Langue\",\n \"layout\": \"Disposition\",\n \"preferences\": \"Préférences\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"Par défaut\",\n \"light\": \"Clair\",\n \"dark\": \"Sombre\",\n \"cosmic\": \"Cosmique\",\n \"corporate\": \"Entreprise\",\n \"forest\": \"Forêt\",\n \"coffee\": \"Coffee\",\n \"wine\": \"Vin\",\n \"wheat\": \"Blé\"\n }\n}\n","{\n \"layoutSwitcher\": {\n \"show\": \"显示侧边栏\",\n \"hide\": \"隐藏侧边栏\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"英语\",\n \"zh\": \"中文\",\n \"fr\": \"法语\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"默认\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"主题\",\n \"language\": \"语言\",\n \"layout\": \"布局\",\n \"preferences\": \"偏好设置\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"默认\",\n \"light\": \"浅色\",\n \"dark\": \"深色\",\n \"cosmic\": \"宇宙\",\n \"corporate\": \"企业\",\n \"forest\": \"森林\",\n \"coffee\": \"咖啡\",\n \"wine\": \"酒红\",\n \"wheat\": \"麦田\"\n }\n}\n","/**\n * NFX-UI 内置多语言资源:theme / language / layout / preference 四个命名空间,en / zh / fr 三种语言。\n * Built-in i18n resources: namespaces theme, language, layout, preference; languages en, zh, fr.\n *\n * 使用方可在 createI18nResources 时合并此资源,使 ThemeSwitcher / LanguageSwitcher / LayoutSwitcher 使用默认翻译。\n * Consumers can merge these resources in createI18nResources so switchers use default labels.\n */\nimport type { CreateI18nResourcesResult, NameSpacesMap, Resources } from \"../types\";\n\nimport enLayout from \"./en/layout.json\";\nimport enLanguage from \"./en/language.json\";\nimport enPreference from \"./en/preference.json\";\nimport enTheme from \"./en/theme.json\";\nimport frLayout from \"./fr/layout.json\";\nimport frLanguage from \"./fr/language.json\";\nimport frPreference from \"./fr/preference.json\";\nimport frTheme from \"./fr/theme.json\";\nimport zhLayout from \"./zh/layout.json\";\nimport zhLanguage from \"./zh/language.json\";\nimport zhPreference from \"./zh/preference.json\";\nimport zhTheme from \"./zh/theme.json\";\n\nexport const NFX_NAMESPACES = [\"theme\", \"language\", \"layout\", \"preference\"] as const;\nexport const NFX_NAMESPACES_MAP: NameSpacesMap = {\n theme: \"theme\",\n language: \"language\",\n layout: \"layout\",\n preference: \"preference\",\n};\n\nconst DEFAULT_NFX_RESOURCES: Resources = {\n en: {\n theme: enTheme as Record<string, unknown>,\n language: enLanguage as Record<string, unknown>,\n layout: enLayout as Record<string, unknown>,\n preference: enPreference as Record<string, unknown>,\n },\n zh: {\n theme: zhTheme as Record<string, unknown>,\n language: zhLanguage as Record<string, unknown>,\n layout: zhLayout as Record<string, unknown>,\n preference: zhPreference as Record<string, unknown>,\n },\n fr: {\n theme: frTheme as Record<string, unknown>,\n language: frLanguage as Record<string, unknown>,\n layout: frLayout as Record<string, unknown>,\n preference: frPreference as Record<string, unknown>,\n },\n};\n\n/**\n * 返回 NFX-UI 默认文案包,可与使用方自建 resources 合并后传入 createI18nResources。\n * Returns default NFX bundles; merge with your resources and pass to createI18nResources.\n */\nexport function getDefaultNfxBundles(): CreateI18nResourcesResult {\n return {\n RESOURCES: DEFAULT_NFX_RESOURCES,\n NAME_SPACES_MAP: NFX_NAMESPACES_MAP,\n NAME_SPACES: [...NFX_NAMESPACES],\n };\n}\n","/**\n * i18n 初始化与实例:initI18n 由 LanguageProvider 调用,changeLanguage 供外部切换语言。\n * 默认会合并 NFX-UI 自带的 theme / language / layout / preference 四个命名空间,使用方只需传入自己的 bundles。\n * i18n init and instance: initI18n called by LanguageProvider. Merges built-in theme/language/layout/preference by default.\n */\nimport type { InitI18nOptions } from \"../types\";\n\nimport i18n from \"i18next\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport { getDefaultNfxBundles } from \"../resources\";\nimport { LanguageEnum } from \"../types\";\n\n/**\n * 初始化 i18n。会先合并 NFX-UI 自带的四类 JSON(theme/language/layout/preference),再与用户传入的 bundles 合并(用户可覆盖)。\n * Init i18n. Merges built-in NFX bundles (theme, language, layout, preference) with user bundles (user overrides).\n */\nexport function initI18n(options: InitI18nOptions): void {\n const nfx = getDefaultNfxBundles();\n const user = options.bundles;\n const fallbackLng = options.fallbackLng ?? LanguageEnum.ZH;\n\n const RESOURCES = ([LanguageEnum.EN, LanguageEnum.ZH, LanguageEnum.FR] as const).reduce(\n (acc, lang) => ({\n ...acc,\n [lang]: {\n ...(nfx.RESOURCES[lang] ?? {}),\n ...(user.RESOURCES[lang] ?? {}),\n },\n }),\n {} as typeof user.RESOURCES,\n );\n const NAME_SPACES = [...user.NAME_SPACES, ...nfx.NAME_SPACES.filter((n) => !user.NAME_SPACES.includes(n))];\n\n i18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n compatibilityJSON: \"v4\",\n resources: RESOURCES,\n lng: fallbackLng,\n fallbackLng,\n ns: NAME_SPACES,\n defaultNS: NAME_SPACES[0],\n interpolation: { escapeValue: false },\n keySeparator: \".\",\n detection: { order: [\"navigator\", \"htmlTag\", \"path\", \"subdomain\"] },\n });\n\n const onLoad = options.onLoadExtraBundles;\n if (onLoad) {\n const apply = async (lng: LanguageEnum) => {\n const result = await onLoad(lng);\n if (result == null) return;\n const items = Array.isArray(result) ? result : [result];\n for (const { namespace, bundle } of items) {\n if (namespace && bundle && typeof bundle === \"object\") {\n i18n.addResourceBundle(lng, namespace, bundle, true, true);\n }\n }\n };\n void apply((i18n.language as LanguageEnum) || fallbackLng);\n i18n.on(\"languageChanged\", (lng) => void apply(lng as LanguageEnum));\n }\n}\n\nexport default i18n;\n"],"mappings":"6mDYsBa,EAAiB,CAAC,QAAS,WAAY,SAAU,cACjD,EAAoC,CAC/C,MAAO,QACP,SAAU,WACV,OAAQ,SACR,WAAY,cAGR,EAAmC,CACvC,GAAI,CACF,MAAO,EACP,SAAU,EACV,OAAQ,EACR,WAAY,GAEd,GAAI,CACF,MAAO,EACP,SAAU,EACV,OAAQ,EACR,WAAY,GAEd,GAAI,CACF,MAAO,EACP,SAAU,EACV,OAAQ,EACR,WAAY,IAQhB,SAAgB,GAAkD,CAChE,MAAO,CACL,UAAW,EACX,gBAAiB,EACjB,YAAa,CAAC,GAAG,CAAA,GCzCrB,SAAgB,EAAS,EAAgC,CACvD,MAAM,EAAM,EAAA,EACN,EAAO,EAAQ,QACf,EAAc,EAAQ,aAAe,EAAA,aAAa,GAElD,EAAa,CAAC,EAAA,aAAa,GAAI,EAAA,aAAa,GAAI,EAAA,aAAa,IAAc,OAAA,CAC9E,EAAK,KAAU,CACd,GAAG,GACF,CAAA,EAAO,CACN,GAAI,EAAI,UAAU,CAAA,GAAS,CAAA,EAC3B,GAAI,EAAK,UAAU,CAAA,GAAS,CAAA,KAGhC,CAAA,CAAE,EAEE,EAAc,CAAC,GAAG,EAAK,YAAa,GAAG,EAAI,YAAY,OAAQ,GAAM,CAAC,EAAK,YAAY,SAAS,CAAA,CAAE,CAAC,EAEzG,EAAA,QACG,IAAI,EAAA,OAAA,EACJ,IAAI,EAAA,gBAAA,EACJ,KAAK,CACJ,kBAAmB,KACnB,UAAW,EACX,IAAK,EACL,YAAA,EACA,GAAI,EACJ,UAAW,EAAY,CAAA,EACvB,cAAe,CAAE,YAAa,EAAA,EAC9B,aAAc,IACd,UAAW,CAAE,MAAO,CAAC,YAAa,UAAW,OAAQ,YAAY,EAClE,EAEH,MAAM,EAAS,EAAQ,mBACvB,GAAI,EAAQ,CACV,MAAM,EAAQ,MAAO,GAAsB,CACzC,MAAM,EAAS,MAAM,EAAO,CAAA,EAC5B,GAAI,GAAU,KAAM,OACpB,MAAM,EAAQ,MAAM,QAAQ,CAAA,EAAU,EAAS,CAAC,CAAA,EAChD,SAAW,CAAE,UAAA,EAAW,OAAA,CAAA,IAAY,EAC9B,GAAa,GAAU,OAAO,GAAW,UAC3C,EAAA,QAAK,kBAAkB,EAAK,EAAW,EAAQ,GAAM,EAAA,GAItD,EAAO,EAAA,QAAK,UAA6B,CAAA,EAC9C,EAAA,QAAK,GAAG,kBAAoB,GAAA,CAAa,EAAM,CAAA,EAAoB,GAIvE,IAAA,EAAe,EAAA"}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { i as n } from "./chunk-language-B8sfGadQ.mjs";
|
|
2
|
-
import r from "i18next";
|
|
3
|
-
import g from "i18next-browser-languagedetector";
|
|
4
|
-
import { initReactI18next as w } from "react-i18next";
|
|
5
|
-
var m = {
|
|
6
|
-
show: "Show Sidebar",
|
|
7
|
-
hide: "Hide Sidebar"
|
|
8
|
-
}, p = { layoutSwitcher: m }, v = {
|
|
9
|
-
en: "English",
|
|
10
|
-
zh: "Chinese",
|
|
11
|
-
fr: "French"
|
|
12
|
-
}, E = { languageSwitcher: v }, A = {
|
|
13
|
-
default: "Default",
|
|
14
|
-
ios: "iOS",
|
|
15
|
-
android: "Android",
|
|
16
|
-
windows: "Windows",
|
|
17
|
-
linux: "Linux"
|
|
18
|
-
}, y = {
|
|
19
|
-
theme: "Theme",
|
|
20
|
-
language: "Language",
|
|
21
|
-
layout: "Layout",
|
|
22
|
-
preferences: "Preferences"
|
|
23
|
-
}, _ = {
|
|
24
|
-
baseSwitcher: A,
|
|
25
|
-
preference: y
|
|
26
|
-
}, C = {
|
|
27
|
-
default: "Default",
|
|
28
|
-
light: "Light",
|
|
29
|
-
dark: "Dark",
|
|
30
|
-
cosmic: "Cosmic",
|
|
31
|
-
corporate: "Corporate",
|
|
32
|
-
forest: "Forest",
|
|
33
|
-
coffee: "Coffee",
|
|
34
|
-
wine: "Wine",
|
|
35
|
-
wheat: "Wheat"
|
|
36
|
-
}, $ = { themeSwitcher: C }, b = {
|
|
37
|
-
show: "Afficher la barre latérale",
|
|
38
|
-
hide: "Masquer la barre latérale"
|
|
39
|
-
}, N = { layoutSwitcher: b }, L = {
|
|
40
|
-
en: "Anglais",
|
|
41
|
-
zh: "Chinois",
|
|
42
|
-
fr: "Français"
|
|
43
|
-
}, P = { languageSwitcher: L }, R = {
|
|
44
|
-
default: "Par défaut",
|
|
45
|
-
ios: "iOS",
|
|
46
|
-
android: "Android",
|
|
47
|
-
windows: "Windows",
|
|
48
|
-
linux: "Linux"
|
|
49
|
-
}, x = {
|
|
50
|
-
theme: "Thème",
|
|
51
|
-
language: "Langue",
|
|
52
|
-
layout: "Disposition",
|
|
53
|
-
preferences: "Préférences"
|
|
54
|
-
}, M = {
|
|
55
|
-
baseSwitcher: R,
|
|
56
|
-
preference: x
|
|
57
|
-
}, F = {
|
|
58
|
-
default: "Par défaut",
|
|
59
|
-
light: "Clair",
|
|
60
|
-
dark: "Sombre",
|
|
61
|
-
cosmic: "Cosmique",
|
|
62
|
-
corporate: "Entreprise",
|
|
63
|
-
forest: "Forêt",
|
|
64
|
-
coffee: "Coffee",
|
|
65
|
-
wine: "Vin",
|
|
66
|
-
wheat: "Blé"
|
|
67
|
-
}, O = { themeSwitcher: F }, k = {
|
|
68
|
-
show: "显示侧边栏",
|
|
69
|
-
hide: "隐藏侧边栏"
|
|
70
|
-
}, D = { layoutSwitcher: k }, U = {
|
|
71
|
-
en: "英语",
|
|
72
|
-
zh: "中文",
|
|
73
|
-
fr: "法语"
|
|
74
|
-
}, W = { languageSwitcher: U }, z = {
|
|
75
|
-
default: "默认",
|
|
76
|
-
ios: "iOS",
|
|
77
|
-
android: "Android",
|
|
78
|
-
windows: "Windows",
|
|
79
|
-
linux: "Linux"
|
|
80
|
-
}, B = {
|
|
81
|
-
theme: "主题",
|
|
82
|
-
language: "语言",
|
|
83
|
-
layout: "布局",
|
|
84
|
-
preferences: "偏好设置"
|
|
85
|
-
}, T = {
|
|
86
|
-
baseSwitcher: z,
|
|
87
|
-
preference: B
|
|
88
|
-
}, H = {
|
|
89
|
-
default: "默认",
|
|
90
|
-
light: "浅色",
|
|
91
|
-
dark: "深色",
|
|
92
|
-
cosmic: "宇宙",
|
|
93
|
-
corporate: "企业",
|
|
94
|
-
forest: "森林",
|
|
95
|
-
coffee: "咖啡",
|
|
96
|
-
wine: "酒红",
|
|
97
|
-
wheat: "麦田"
|
|
98
|
-
}, X = { themeSwitcher: H }, q = [
|
|
99
|
-
"theme",
|
|
100
|
-
"language",
|
|
101
|
-
"layout",
|
|
102
|
-
"preference"
|
|
103
|
-
], I = {
|
|
104
|
-
theme: "theme",
|
|
105
|
-
language: "language",
|
|
106
|
-
layout: "layout",
|
|
107
|
-
preference: "preference"
|
|
108
|
-
}, V = {
|
|
109
|
-
en: {
|
|
110
|
-
theme: $,
|
|
111
|
-
language: E,
|
|
112
|
-
layout: p,
|
|
113
|
-
preference: _
|
|
114
|
-
},
|
|
115
|
-
zh: {
|
|
116
|
-
theme: X,
|
|
117
|
-
language: W,
|
|
118
|
-
layout: D,
|
|
119
|
-
preference: T
|
|
120
|
-
},
|
|
121
|
-
fr: {
|
|
122
|
-
theme: O,
|
|
123
|
-
language: P,
|
|
124
|
-
layout: N,
|
|
125
|
-
preference: M
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
function Z() {
|
|
129
|
-
return {
|
|
130
|
-
RESOURCES: V,
|
|
131
|
-
NAME_SPACES_MAP: I,
|
|
132
|
-
NAME_SPACES: [...q]
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
function Q(i) {
|
|
136
|
-
const f = Z(), o = i.bundles, u = i.fallbackLng ?? n.ZH, d = [
|
|
137
|
-
n.EN,
|
|
138
|
-
n.ZH,
|
|
139
|
-
n.FR
|
|
140
|
-
].reduce((a, e) => ({
|
|
141
|
-
...a,
|
|
142
|
-
[e]: {
|
|
143
|
-
...f.RESOURCES[e] ?? {},
|
|
144
|
-
...o.RESOURCES[e] ?? {}
|
|
145
|
-
}
|
|
146
|
-
}), {}), c = [...o.NAME_SPACES, ...f.NAME_SPACES.filter((a) => !o.NAME_SPACES.includes(a))];
|
|
147
|
-
r.use(g).use(w).init({
|
|
148
|
-
compatibilityJSON: "v4",
|
|
149
|
-
resources: d,
|
|
150
|
-
lng: u,
|
|
151
|
-
fallbackLng: u,
|
|
152
|
-
ns: c,
|
|
153
|
-
defaultNS: c[0],
|
|
154
|
-
interpolation: { escapeValue: !1 },
|
|
155
|
-
keySeparator: ".",
|
|
156
|
-
detection: { order: [
|
|
157
|
-
"navigator",
|
|
158
|
-
"htmlTag",
|
|
159
|
-
"path",
|
|
160
|
-
"subdomain"
|
|
161
|
-
] }
|
|
162
|
-
});
|
|
163
|
-
const s = i.onLoadExtraBundles;
|
|
164
|
-
if (s) {
|
|
165
|
-
const a = async (e) => {
|
|
166
|
-
const t = await s(e);
|
|
167
|
-
if (t == null) return;
|
|
168
|
-
const S = Array.isArray(t) ? t : [t];
|
|
169
|
-
for (const { namespace: h, bundle: l } of S) h && l && typeof l == "object" && r.addResourceBundle(e, h, l, !0, !0);
|
|
170
|
-
};
|
|
171
|
-
a(r.language || u), r.on("languageChanged", (e) => {
|
|
172
|
-
a(e);
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
var Y = r;
|
|
177
|
-
export {
|
|
178
|
-
Z as a,
|
|
179
|
-
I as i,
|
|
180
|
-
Q as n,
|
|
181
|
-
q as r,
|
|
182
|
-
Y as t
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
//# sourceMappingURL=chunk-i18n-BsyWvA9c.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-i18n-BsyWvA9c.mjs","names":[],"sources":["../src/languages/resources/en/layout.json","../src/languages/resources/en/language.json","../src/languages/resources/en/preference.json","../src/languages/resources/en/theme.json","../src/languages/resources/fr/layout.json","../src/languages/resources/fr/language.json","../src/languages/resources/fr/preference.json","../src/languages/resources/fr/theme.json","../src/languages/resources/zh/layout.json","../src/languages/resources/zh/language.json","../src/languages/resources/zh/preference.json","../src/languages/resources/zh/theme.json","../src/languages/resources/index.ts","../src/languages/languages/i18n.ts"],"sourcesContent":["{\n \"layoutSwitcher\": {\n \"show\": \"Show Sidebar\",\n \"hide\": \"Hide Sidebar\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"English\",\n \"zh\": \"Chinese\",\n \"fr\": \"French\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"Default\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"Theme\",\n \"language\": \"Language\",\n \"layout\": \"Layout\",\n \"preferences\": \"Preferences\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"Default\",\n \"light\": \"Light\",\n \"dark\": \"Dark\",\n \"cosmic\": \"Cosmic\",\n \"corporate\": \"Corporate\",\n \"forest\": \"Forest\",\n \"coffee\": \"Coffee\",\n \"wine\": \"Wine\",\n \"wheat\": \"Wheat\"\n }\n}\n","{\n \"layoutSwitcher\": {\n \"show\": \"Afficher la barre latérale\",\n \"hide\": \"Masquer la barre latérale\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"Anglais\",\n \"zh\": \"Chinois\",\n \"fr\": \"Français\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"Par défaut\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"Thème\",\n \"language\": \"Langue\",\n \"layout\": \"Disposition\",\n \"preferences\": \"Préférences\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"Par défaut\",\n \"light\": \"Clair\",\n \"dark\": \"Sombre\",\n \"cosmic\": \"Cosmique\",\n \"corporate\": \"Entreprise\",\n \"forest\": \"Forêt\",\n \"coffee\": \"Coffee\",\n \"wine\": \"Vin\",\n \"wheat\": \"Blé\"\n }\n}\n","{\n \"layoutSwitcher\": {\n \"show\": \"显示侧边栏\",\n \"hide\": \"隐藏侧边栏\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"英语\",\n \"zh\": \"中文\",\n \"fr\": \"法语\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"默认\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"主题\",\n \"language\": \"语言\",\n \"layout\": \"布局\",\n \"preferences\": \"偏好设置\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"默认\",\n \"light\": \"浅色\",\n \"dark\": \"深色\",\n \"cosmic\": \"宇宙\",\n \"corporate\": \"企业\",\n \"forest\": \"森林\",\n \"coffee\": \"咖啡\",\n \"wine\": \"酒红\",\n \"wheat\": \"麦田\"\n }\n}\n","/**\n * NFX-UI 内置多语言资源:theme / language / layout / preference 四个命名空间,en / zh / fr 三种语言。\n * Built-in i18n resources: namespaces theme, language, layout, preference; languages en, zh, fr.\n *\n * 使用方可在 createI18nResources 时合并此资源,使 ThemeSwitcher / LanguageSwitcher / LayoutSwitcher 使用默认翻译。\n * Consumers can merge these resources in createI18nResources so switchers use default labels.\n */\nimport type { CreateI18nResourcesResult, NameSpacesMap, Resources } from \"../types\";\n\nimport enLayout from \"./en/layout.json\";\nimport enLanguage from \"./en/language.json\";\nimport enPreference from \"./en/preference.json\";\nimport enTheme from \"./en/theme.json\";\nimport frLayout from \"./fr/layout.json\";\nimport frLanguage from \"./fr/language.json\";\nimport frPreference from \"./fr/preference.json\";\nimport frTheme from \"./fr/theme.json\";\nimport zhLayout from \"./zh/layout.json\";\nimport zhLanguage from \"./zh/language.json\";\nimport zhPreference from \"./zh/preference.json\";\nimport zhTheme from \"./zh/theme.json\";\n\nexport const NFX_NAMESPACES = [\"theme\", \"language\", \"layout\", \"preference\"] as const;\nexport const NFX_NAMESPACES_MAP: NameSpacesMap = {\n theme: \"theme\",\n language: \"language\",\n layout: \"layout\",\n preference: \"preference\",\n};\n\nconst DEFAULT_NFX_RESOURCES: Resources = {\n en: {\n theme: enTheme as Record<string, unknown>,\n language: enLanguage as Record<string, unknown>,\n layout: enLayout as Record<string, unknown>,\n preference: enPreference as Record<string, unknown>,\n },\n zh: {\n theme: zhTheme as Record<string, unknown>,\n language: zhLanguage as Record<string, unknown>,\n layout: zhLayout as Record<string, unknown>,\n preference: zhPreference as Record<string, unknown>,\n },\n fr: {\n theme: frTheme as Record<string, unknown>,\n language: frLanguage as Record<string, unknown>,\n layout: frLayout as Record<string, unknown>,\n preference: frPreference as Record<string, unknown>,\n },\n};\n\n/**\n * 返回 NFX-UI 默认文案包,可与使用方自建 resources 合并后传入 createI18nResources。\n * Returns default NFX bundles; merge with your resources and pass to createI18nResources.\n */\nexport function getDefaultNfxBundles(): CreateI18nResourcesResult {\n return {\n RESOURCES: DEFAULT_NFX_RESOURCES,\n NAME_SPACES_MAP: NFX_NAMESPACES_MAP,\n NAME_SPACES: [...NFX_NAMESPACES],\n };\n}\n","/**\n * i18n 初始化与实例:initI18n 由 LanguageProvider 调用,changeLanguage 供外部切换语言。\n * 默认会合并 NFX-UI 自带的 theme / language / layout / preference 四个命名空间,使用方只需传入自己的 bundles。\n * i18n init and instance: initI18n called by LanguageProvider. Merges built-in theme/language/layout/preference by default.\n */\nimport type { InitI18nOptions } from \"../types\";\n\nimport i18n from \"i18next\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport { getDefaultNfxBundles } from \"../resources\";\nimport { LanguageEnum } from \"../types\";\n\n/**\n * 初始化 i18n。会先合并 NFX-UI 自带的四类 JSON(theme/language/layout/preference),再与用户传入的 bundles 合并(用户可覆盖)。\n * Init i18n. Merges built-in NFX bundles (theme, language, layout, preference) with user bundles (user overrides).\n */\nexport function initI18n(options: InitI18nOptions): void {\n const nfx = getDefaultNfxBundles();\n const user = options.bundles;\n const fallbackLng = options.fallbackLng ?? LanguageEnum.ZH;\n\n const RESOURCES = ([LanguageEnum.EN, LanguageEnum.ZH, LanguageEnum.FR] as const).reduce(\n (acc, lang) => ({\n ...acc,\n [lang]: {\n ...(nfx.RESOURCES[lang] ?? {}),\n ...(user.RESOURCES[lang] ?? {}),\n },\n }),\n {} as typeof user.RESOURCES,\n );\n const NAME_SPACES = [...user.NAME_SPACES, ...nfx.NAME_SPACES.filter((n) => !user.NAME_SPACES.includes(n))];\n\n i18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n compatibilityJSON: \"v4\",\n resources: RESOURCES,\n lng: fallbackLng,\n fallbackLng,\n ns: NAME_SPACES,\n defaultNS: NAME_SPACES[0],\n interpolation: { escapeValue: false },\n keySeparator: \".\",\n detection: { order: [\"navigator\", \"htmlTag\", \"path\", \"subdomain\"] },\n });\n\n const onLoad = options.onLoadExtraBundles;\n if (onLoad) {\n const apply = async (lng: LanguageEnum) => {\n const result = await onLoad(lng);\n if (result == null) return;\n const items = Array.isArray(result) ? result : [result];\n for (const { namespace, bundle } of items) {\n if (namespace && bundle && typeof bundle === \"object\") {\n i18n.addResourceBundle(lng, namespace, bundle, true, true);\n }\n }\n };\n void apply((i18n.language as LanguageEnum) || fallbackLng);\n i18n.on(\"languageChanged\", (lng) => void apply(lng as LanguageEnum));\n }\n}\n\nexport default i18n;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BYsBa,IAAiB;AAAA,EAAC;AAAA,EAAS;AAAA,EAAY;AAAA,EAAU;GACjD,IAAoC;AAAA,EAC/C,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,YAAY;GAGR,IAAmC;AAAA,EACvC,IAAI;AAAA,IACF,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA;EAEd,IAAI;AAAA,IACF,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA;EAEd,IAAI;AAAA,IACF,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA;;AAQhB,SAAgB,IAAkD;AAChE,SAAO;AAAA,IACL,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,aAAa,CAAC,GAAG,CAAA;AAAA;;ACzCrB,SAAgB,EAAS,GAAgC;AACvD,QAAM,IAAM,EAAA,GACN,IAAO,EAAQ,SACf,IAAc,EAAQ,eAAe,EAAa,IAElD,IAAa;AAAA,IAAC,EAAa;AAAA,IAAI,EAAa;AAAA,IAAI,EAAa;AAAA,IAAc,OAAA,CAC9E,GAAK,OAAU;AAAA,IACd,GAAG;AAAA,KACF,CAAA,GAAO;AAAA,MACN,GAAI,EAAI,UAAU,CAAA,KAAS,CAAA;AAAA,MAC3B,GAAI,EAAK,UAAU,CAAA,KAAS,CAAA;AAAA;MAGhC,CAAA,CAAE,GAEE,IAAc,CAAC,GAAG,EAAK,aAAa,GAAG,EAAI,YAAY,OAAA,CAAQ,MAAM,CAAC,EAAK,YAAY,SAAS,CAAA,CAAE,CAAC;AAEzG,EAAA,EACG,IAAI,CAAA,EACJ,IAAI,CAAA,EACJ,KAAK;AAAA,IACJ,mBAAmB;AAAA,IACnB,WAAW;AAAA,IACX,KAAK;AAAA,IACL,aAAA;AAAA,IACA,IAAI;AAAA,IACJ,WAAW,EAAY,CAAA;AAAA,IACvB,eAAe,EAAE,aAAa,GAAA;AAAA,IAC9B,cAAc;AAAA,IACd,WAAW,EAAE,OAAO;AAAA,MAAC;AAAA,MAAa;AAAA,MAAW;AAAA,MAAQ;AAAA,MAAY;AAAA,GAClE;AAEH,QAAM,IAAS,EAAQ;AACvB,MAAI,GAAQ;AACV,UAAM,IAAQ,OAAO,MAAsB;AACzC,YAAM,IAAS,MAAM,EAAO,CAAA;AAC5B,UAAI,KAAU,KAAM;AACpB,YAAM,IAAQ,MAAM,QAAQ,CAAA,IAAU,IAAS,CAAC,CAAA;AAChD,iBAAW,EAAE,WAAA,GAAW,QAAA,EAAA,KAAY,EAClC,CAAI,KAAa,KAAU,OAAO,KAAW,YAC3C,EAAK,kBAAkB,GAAK,GAAW,GAAQ,IAAM,EAAA;AAAA;AAItD,IAAA,EAAO,EAAK,YAA6B,CAAA,GAC9C,EAAK,GAAG,mBAAA,CAAoB,MAAA;AAAQ,MAAK,EAAM,CAAA;AAAA,KAAoB;AAAA;;AAIvE,IAAA,IAAe"}
|