@lytjs/plugin-i18n 4.0.5 → 4.2.0

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/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var u=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var x=(r,i)=>{for(var o in i)u(r,o,{get:i[o],enumerable:!0})},C=(r,i,o,e)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of P(i))!j.call(r,t)&&t!==o&&u(r,t,{get:()=>i[t],enumerable:!(e=M(i,t))||e.enumerable});return r};var A=r=>C(u({},"__esModule",{value:!0}),r);var z={};x(z,{createI18n:()=>$});module.exports=A(z);function m(r,i){let o=i.split("."),e=r;for(let t of o){if(e==null||typeof e!="object")return;e=e[t]}return typeof e=="string"?e:void 0}function y(r,i){return r.replace(/\{(\w+)\}/g,(o,e)=>i[e]!==void 0?String(i[e]):o)}function F(r,i,o){if(!r.includes("|"))return y(r,o);let e=r.split("|").map(g=>g.trim()),t;return i===0&&e.length>0?t=(e.length>=3,e[0]):i===1?t=e.length>=2?e[1]:e[0]:t=e.length>=3?e[2]:e.length>=2?e[1]:e[0],y(t,{...o,count:i})}function $(r){let{locale:i,fallbackLocale:o,messages:e}=r,t={};for(let n of Object.keys(e))t[n]={...e[n]};let g=i,f=[];function L(n){return f.push(n),()=>{let s=f.indexOf(n);s>-1&&f.splice(s,1)}}function R(n){for(let s of f)s(n)}function v(n,s,c){let a=s||{},l=m(t[g]||{},n);if(l===void 0&&o&&(l=m(t[o]||{},n)),l===void 0)if(c!==void 0)l=c;else return n;return a.count!==void 0&&typeof a.count=="number"?F(l,a.count,a):y(l,a)}function p(n){n!==g&&(g=n,R(n))}function h(){return g}function I(){return Object.keys(t)}function b(n,s){t[n]||(t[n]={});for(let c of Object.keys(s))t[n][c]=s[c]}function O(n,s){b(n,s)}function k(n,s){t[n]={...s}}let d={install(n,s){n.config=n.config||{},n.config.globalProperties=n.config.globalProperties||{},n.config.globalProperties.$t=v,n.config.globalProperties.$i18n=d.global,typeof n.provide=="function"&&n.provide("i18n",d.global)},global:{t:v,get locale(){return g},setLocale:p,getLocale:h,get availableLocales(){return I()},mergeMessage:b,mergeLocaleMessages:O,loadLocaleMessages:k,onLocaleChange:L}};return d}
1
+ var u=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var x=(r,i)=>{for(var o in i)u(r,o,{get:i[o],enumerable:!0})},C=(r,i,o,e)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of P(i))!j.call(r,t)&&t!==o&&u(r,t,{get:()=>i[t],enumerable:!(e=M(i,t))||e.enumerable});return r};var A=r=>C(u({},"__esModule",{value:!0}),r);var z={};x(z,{createI18n:()=>$});module.exports=A(z);function m(r,i){let o=i.split("."),e=r;for(let t of o){if(e==null||typeof e!="object")return;e=e[t]}return typeof e=="string"?e:void 0}function y(r,i){return r.replace(/\{(\w+)\}/g,(o,e)=>i[e]!==void 0?String(i[e]):o)}function F(r,i,o){if(!r.includes("|"))return y(r,o);let e=r.split("|").map(g=>g.trim()),t;return i===0&&e.length>0?t=(e.length>=3,e[0]):i===1?t=e.length>=2?e[1]:e[0]:t=e.length>=3?e[2]:e.length>=2?e[1]:e[0],y(t,{...o,count:i})}function $(r){let{locale:i,fallbackLocale:o,messages:e}=r,t={};for(let n of Object.keys(e))t[n]={...e[n]};let g=i,f=[];function L(n){return f.push(n),()=>{let s=f.indexOf(n);s>-1&&f.splice(s,1)}}function R(n){for(let s of f)s(n)}function v(n,s,c){let a=s||{},l=m(t[g]||{},n);if(l===void 0&&o&&(l=m(t[o]||{},n)),l===void 0)if(c!==void 0)l=c;else return n;return a.count!==void 0&&typeof a.count=="number"?F(l,a.count,a):y(l,a)}function p(n){n!==g&&(g=n,R(n))}function h(){return g}function I(){return Object.keys(t)}function b(n,s){t[n]||(t[n]={});for(let c of Object.keys(s))t[n][c]=s[c]}function O(n,s){b(n,s)}function k(n,s){t[n]={...s}}let d={install(n,s){n.config=n.config||{},n.config.globalProperties=n.config.globalProperties||{},n.config.globalProperties.$t=v,n.config.globalProperties.$i18n=d.global,typeof n.provide=="function"&&n.provide("i18n",d.global)},global:{t:v,get locale(){return g},setLocale:p,getLocale:h,get availableLocales(){return I()},mergeMessage:b,mergeLocaleMessages:O,loadLocaleMessages:k,onLocaleChange:L}};return d}
@@ -0,0 +1,50 @@
1
+ /** 国际化配置选项 */
2
+ interface I18nOptions {
3
+ /** 当前语言 */
4
+ locale: string;
5
+ /** 回退语言,当前语言找不到翻译时使用 */
6
+ fallbackLocale?: string;
7
+ /** 语言包映射表 */
8
+ messages: Record<string, Record<string, string>>;
9
+ /** 日期格式配置 */
10
+ datetimeFormats?: Record<string, any>;
11
+ /** 数字格式配置 */
12
+ numberFormats?: Record<string, any>;
13
+ /** 兼容模式(预留) */
14
+ legacy?: boolean;
15
+ }
16
+ /** 国际化插件实例 */
17
+ interface I18n {
18
+ /** 安装到 Lyt 应用 */
19
+ install: (app: any, options?: any) => void;
20
+ /** 全局国际化 API */
21
+ global: {
22
+ /** 翻译函数,支持路径式 key、参数插值、回退语言、默认值、复数形式 */
23
+ t: (key: string, params?: Record<string, any>, defaultValue?: string) => string;
24
+ /** 当前语言 */
25
+ locale: string;
26
+ /** 切换语言 */
27
+ setLocale: (locale: string) => void;
28
+ /** 获取当前语言 */
29
+ getLocale: () => string;
30
+ /** 可用语言列表 */
31
+ availableLocales: string[];
32
+ /** 运行时合并新翻译(浅合并) */
33
+ mergeMessage: (locale: string, messages: Record<string, string>) => void;
34
+ /** 运行时合并翻译(与 mergeMessage 功能一致) */
35
+ mergeLocaleMessages: (locale: string, messages: Record<string, string>) => void;
36
+ /** 懒加载翻译包(替换指定语言的全部翻译) */
37
+ loadLocaleMessages: (locale: string, messages: Record<string, string>) => void;
38
+ /** 注册语言变更监听器,返回取消监听函数 */
39
+ onLocaleChange: (callback: (locale: string) => void) => () => void;
40
+ };
41
+ }
42
+ /**
43
+ * 创建国际化插件实例
44
+ * @param options 国际化配置
45
+ * @returns I18n 插件实例
46
+ */
47
+ declare function createI18n(options: I18nOptions): I18n;
48
+ export { createI18n };
49
+ export type { I18n, I18nOptions };
50
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAkBA,cAAc;AACd,UAAU,WAAW;IACnB,WAAW;IACX,MAAM,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAChD,aAAa;IACb,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,aAAa;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,eAAe;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,cAAc;AACd,UAAU,IAAI;IACZ,iBAAiB;IACjB,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IAC1C,gBAAgB;IAChB,MAAM,EAAE;QACN,wCAAwC;QACxC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;QAC/E,WAAW;QACX,MAAM,EAAE,MAAM,CAAA;QACd,WAAW;QACX,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;QACnC,aAAa;QACb,SAAS,EAAE,MAAM,MAAM,CAAA;QACvB,aAAa;QACb,gBAAgB,EAAE,MAAM,EAAE,CAAA;QAC1B,oBAAoB;QACpB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAA;QACxE,mCAAmC;QACnC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAA;QAC/E,0BAA0B;QAC1B,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAA;QAC9E,yBAAyB;QACzB,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;KACnE,CAAA;CACF;AAkED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CA4I9C;AAED,OAAO,EAAE,UAAU,EAAE,CAAA;AACrB,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,14 +1,16 @@
1
1
  {
2
2
  "name": "@lytjs/plugin-i18n",
3
- "version": "4.0.5",
3
+ "version": "4.2.0",
4
4
  "description": "Lyt.js 国际化插件 - 提供多语言支持、消息格式化和语言切换功能",
5
- "main": "./src/index.ts",
6
- "module": "./src/index.ts",
5
+ "main": "./dist/index.cjs",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/types/index.d.ts",
7
8
  "exports": {
8
9
  ".": {
9
- "import": "./src/index.ts",
10
- "require": "./src/index.ts",
11
- "default": "./src/index.ts"
10
+ "types": "./dist/types/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.cjs",
13
+ "default": "./dist/index.mjs"
12
14
  }
13
15
  },
14
16
  "sideEffects": false,