@nerimity/solid-i18lite 1.5.8 → 1.5.9

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.
@@ -0,0 +1,142 @@
1
+ import { createComponent as I, memo as v } from "solid-js/web";
2
+ import { useContext as P, createContext as w, createSignal as L, children as $ } from "solid-js";
3
+ let S = {}, E = "translation", x = "";
4
+ const T = { resources: {}, interpolation: { prefix: "{{", suffix: "}}" } };
5
+ let f = T;
6
+ const R = (t) => t.replace(/[-|\\{}()[\]^$+*?.]/g, (e) => e === "-" ? "\\x2d" : `\\${e}`), m = /* @__PURE__ */ new Map(), M = (t, e) => {
7
+ if (!t) return "";
8
+ const n = f?.interpolation, r = n?.prefix ?? "{{", s = n?.suffix ?? "}}", a = r + "|" + s;
9
+ let o = m.get(a);
10
+ if (!o) {
11
+ const i = R(r), u = R(s);
12
+ o = new RegExp(`${i}\\s*(\\w+)\\s*${u}`, "g"), m.set(a, o);
13
+ }
14
+ return t.replace(o, (i, u) => Object.prototype.hasOwnProperty.call(e, u) ? e[u] : i);
15
+ }, h = (t, e, n) => {
16
+ let r = j(c.language, E, t) ?? (typeof e == "string" ? e : t);
17
+ return n || typeof e == "object" && e !== null ? M(r, n || e) : r;
18
+ }, B = (t, e) => {
19
+ S[t] = e;
20
+ }, F = (t, e) => {
21
+ f = T, t && (f = { ...t, interpolation: t?.interpolation || {} }, f.interpolation.prefix = t.interpolation?.prefix || "{{", f.interpolation.suffix = t.interpolation?.suffix || "}}"), x = t?.lng || "", c.store = { data: f.resources || {} }, f.resources = {}, e?.(null, h);
22
+ }, J = (t) => (x = t, Promise.resolve(h)), b = (t, e, n = !0) => {
23
+ const r = t;
24
+ for (const s in e) {
25
+ const a = r[s], o = e[s];
26
+ o && typeof o == "object" && !Array.isArray(o) ? ((typeof a != "object" || Array.isArray(a)) && (r[s] = {}), b(r[s], o, n)) : (n || a === void 0) && (r[s] = o);
27
+ }
28
+ return t;
29
+ }, V = (t, e, n, r = !0, s = !0) => {
30
+ c.store = c.store || { data: {} }, c.store.data = c.store.data || {}, c.store.data[t] = c.store.data[t] || {}, c.store.data[t][e] = c.store.data[t][e] || {};
31
+ const a = c.store.data[t][e], o = n;
32
+ return r ? b(a, o, s) : c.store.data[t][e] = s ? o : { ...o, ...a }, (S.loaded || (() => {
33
+ }))(t, e), c;
34
+ }, j = (t, e, n, r) => {
35
+ const s = c.store;
36
+ if (!s) return;
37
+ const a = s.data?.[t];
38
+ if (!a) return;
39
+ const o = a[e];
40
+ if (!o || typeof o == "string") return;
41
+ const i = r?.keySeparator ?? c.options?.keySeparator ?? ".";
42
+ if (i === !1) return o[n];
43
+ const u = String(i);
44
+ if (n.indexOf(u) === -1) return o[n];
45
+ let l = o, y = 0;
46
+ for (let d = 0; d <= n.length; d++)
47
+ if (d === n.length || n[d] === u) {
48
+ const C = n.slice(y, d);
49
+ if (l == null || !(C in l)) return;
50
+ l = l[C], y = d + 1;
51
+ }
52
+ return l;
53
+ }, X = () => c, c = {
54
+ get language() {
55
+ return x;
56
+ },
57
+ createInstance: X,
58
+ t: h,
59
+ on: B,
60
+ init: F,
61
+ changeLanguage: J,
62
+ addResourceBundle: V,
63
+ options: f,
64
+ getResource: j
65
+ }, A = w();
66
+ function H(t, e) {
67
+ const [n, r] = L(e.resources ? t.t : () => null);
68
+ t.on("loaded", () => r(() => t.t)), t.init(e, (o, i) => r(() => i));
69
+ async function s(o) {
70
+ const i = await t.changeLanguage(o);
71
+ r(() => i);
72
+ }
73
+ function a(o, i, u, l = {}) {
74
+ return t.addResourceBundle(o, i, u, l.deep, l.overwrite);
75
+ }
76
+ return [((...o) => n().apply(null, o)), {
77
+ addResources: a,
78
+ getI18next: () => t,
79
+ changeLanguage: s
80
+ }];
81
+ }
82
+ const K = () => P(A), Y = (t) => I(A.Provider, {
83
+ get value() {
84
+ return H(t.instance || c, {
85
+ lng: t.lng,
86
+ ...t.options
87
+ });
88
+ },
89
+ get children() {
90
+ return t.children;
91
+ }
92
+ }), g = (t, { prefix: e, suffix: n }) => t.includes(e) && t.includes(n), W = (t, { interpolation: e }) => (n, r) => typeof n == "string" ? g(n, e) ? t.children[r].children?.[0].content : t.children[r].content : (n.textContent = t.children[r].children?.[0].content, n), _ = !globalThis.window, q = (t, e, n) => (r) => {
93
+ const s = typeof r;
94
+ if (s === "string" && g(r, e.interpolation)) return t(r, n.options);
95
+ if (s === "object") {
96
+ const a = r.textContent ?? r.t;
97
+ a && g(a, e.interpolation) && (r[_ ? "t" : "textContent"] = t(a, n.options));
98
+ }
99
+ return r;
100
+ };
101
+ let p;
102
+ (async () => {
103
+ try {
104
+ p = (await import("html-parse-string")).parse;
105
+ } catch {
106
+ }
107
+ })();
108
+ const z = () => {
109
+ console.error(
110
+ "In order to use JSX nesting, install %chtml-parse-string",
111
+ "font-weight: 700",
112
+ "https://github.com/ryansolid/html-parse-string."
113
+ );
114
+ }, G = ({ i18n: { options: t }, t: e, props: n }, r) => {
115
+ const s = e(n.key, n.options);
116
+ if (!n.children) return s;
117
+ if (s === n.key) return r.map(q(e, t, n));
118
+ if (!p) {
119
+ z();
120
+ return;
121
+ }
122
+ try {
123
+ const [a] = p(`<0>${s}</0>`);
124
+ return r.map(W(a, t));
125
+ } catch (a) {
126
+ console.error(a);
127
+ }
128
+ }, Z = (t) => {
129
+ const [e, {
130
+ getI18next: n
131
+ }] = K();
132
+ return v(() => v(() => typeof t.children == "string")() ? e(t.key, t.children, t.options) : G({
133
+ i18n: n(),
134
+ t: e,
135
+ props: t
136
+ }, $(() => t.children)()));
137
+ };
138
+ export {
139
+ Z as Trans,
140
+ Y as TransProvider,
141
+ K as useTransContext
142
+ };
package/dist/ssr.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";var L=Object.create;var T=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var J=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of m(e))!E.call(t,o)&&o!==n&&T(t,o,{get:()=>e[o],enumerable:!(r=$(e,o))||r.enumerable});return t};var q=(t,e,n)=>(n=t!=null?L(M(t)):{},J(e||!t||!t.__esModule?T(n,"default",{value:t,enumerable:!0}):n,t));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("solid-js"),B=require("solid-js/web");let R={},F="translation",h="";const P={resources:{},interpolation:{prefix:"{{",suffix:"}}"}};let f=P;const S=t=>t.replace(/[-|\\{}()[\]^$+*?.]/g,e=>e==="-"?"\\x2d":`\\${e}`),b=new Map,V=(t,e)=>{if(!t)return"";const n=f?.interpolation,r=n?.prefix??"{{",o=n?.suffix??"}}",a=r+"|"+o;let s=b.get(a);if(!s){const i=S(r),u=S(o);s=new RegExp(`${i}\\s*(\\w+)\\s*${u}`,"g"),b.set(a,s)}return t.replace(s,(i,u)=>Object.prototype.hasOwnProperty.call(e,u)?e[u]:i)},y=(t,e,n)=>{let r=w(c.language,F,t)??(typeof e=="string"?e:t);return n||typeof e=="object"&&e!==null?V(r,n||e):r},X=(t,e)=>{R[t]=e},H=(t,e)=>{f=P,t&&(f={...t,interpolation:t?.interpolation||{}},f.interpolation.prefix=t.interpolation?.prefix||"{{",f.interpolation.suffix=t.interpolation?.suffix||"}}"),h=t?.lng||"",c.store={data:f.resources||{}},f.resources={},e?.(null,y)},K=t=>(h=t,Promise.resolve(y)),j=(t,e,n=!0)=>{const r=t;for(const o in e){const a=r[o],s=e[o];s&&typeof s=="object"&&!Array.isArray(s)?((typeof a!="object"||Array.isArray(a))&&(r[o]={}),j(r[o],s,n)):(n||a===void 0)&&(r[o]=s)}return t},W=(t,e,n,r=!0,o=!0)=>{c.store=c.store||{data:{}},c.store.data=c.store.data||{},c.store.data[t]=c.store.data[t]||{},c.store.data[t][e]=c.store.data[t][e]||{};const a=c.store.data[t][e],s=n;return r?j(a,s,o):c.store.data[t][e]=o?s:{...s,...a},(R.loaded||(()=>{}))(t,e),c},w=(t,e,n,r)=>{const o=c.store;if(!o)return;const a=o.data?.[t];if(!a)return;const s=a[e];if(!s||typeof s=="string")return;const i=r?.keySeparator??c.options?.keySeparator??".";if(i===!1)return s[n];const u=String(i);if(n.indexOf(u)===-1)return s[n];let l=s,v=0;for(let d=0;d<=n.length;d++)if(d===n.length||n[d]===u){const C=n.slice(v,d);if(l==null||!(C in l))return;l=l[C],v=d+1}return l},_=()=>c,c={get language(){return h},createInstance:_,t:y,on:X,init:H,changeLanguage:K,addResourceBundle:W,options:f,getResource:w},A=g.createContext();function z(t,e){const[n,r]=g.createSignal(e.resources?t.t:()=>null);t.on("loaded",()=>r(()=>t.t)),t.init(e,(s,i)=>r(()=>i));async function o(s){const i=await t.changeLanguage(s);r(()=>i)}function a(s,i,u,l={}){return t.addResourceBundle(s,i,u,l.deep,l.overwrite)}return[((...s)=>n().apply(null,s)),{addResources:a,getI18next:()=>t,changeLanguage:o}]}const I=()=>g.useContext(A),G=t=>B.createComponent(A.Provider,{get value(){return z(t.instance||c,{lng:t.lng,...t.options})},get children(){return t.children}}),x=(t,{prefix:e,suffix:n})=>t.includes(e)&&t.includes(n),Q=(t,{interpolation:e})=>(n,r)=>typeof n=="string"?x(n,e)?t.children[r].children?.[0].content:t.children[r].content:(n.textContent=t.children[r].children?.[0].content,n),U=!globalThis.window,Y=(t,e,n)=>r=>{const o=typeof r;if(o==="string"&&x(r,e.interpolation))return t(r,n.options);if(o==="object"){const a=r.textContent??r.t;a&&x(a,e.interpolation)&&(r[U?"t":"textContent"]=t(a,n.options))}return r};let p;(async()=>{try{p=(await import("html-parse-string")).parse}catch{}})();const Z=()=>{console.error("In order to use JSX nesting, install %chtml-parse-string","font-weight: 700","https://github.com/ryansolid/html-parse-string.")},k=({i18n:{options:t},t:e,props:n},r)=>{const o=e(n.key,n.options);if(!n.children)return o;if(o===n.key)return r.map(Y(e,t,n));if(!p){Z();return}try{const[a]=p(`<0>${o}</0>`);return r.map(Q(a,t))}catch(a){console.error(a)}},N=t=>{const[e,{getI18next:n}]=I();return typeof t.children=="string"?e(t.key,t.children,t.options):k({i18n:n(),t:e,props:t},g.children(()=>t.children)())};exports.Trans=N;exports.TransProvider=G;exports.useTransContext=I;
package/dist/ssr.mjs ADDED
@@ -0,0 +1,142 @@
1
+ import { useContext as A, createContext as I, createSignal as P, children as w } from "solid-js";
2
+ import { createComponent as L } from "solid-js/web";
3
+ let S = {}, $ = "translation", x = "";
4
+ const T = { resources: {}, interpolation: { prefix: "{{", suffix: "}}" } };
5
+ let f = T;
6
+ const v = (t) => t.replace(/[-|\\{}()[\]^$+*?.]/g, (e) => e === "-" ? "\\x2d" : `\\${e}`), R = /* @__PURE__ */ new Map(), E = (t, e) => {
7
+ if (!t) return "";
8
+ const n = f?.interpolation, r = n?.prefix ?? "{{", s = n?.suffix ?? "}}", a = r + "|" + s;
9
+ let o = R.get(a);
10
+ if (!o) {
11
+ const i = v(r), u = v(s);
12
+ o = new RegExp(`${i}\\s*(\\w+)\\s*${u}`, "g"), R.set(a, o);
13
+ }
14
+ return t.replace(o, (i, u) => Object.prototype.hasOwnProperty.call(e, u) ? e[u] : i);
15
+ }, h = (t, e, n) => {
16
+ let r = m(c.language, $, t) ?? (typeof e == "string" ? e : t);
17
+ return n || typeof e == "object" && e !== null ? E(r, n || e) : r;
18
+ }, M = (t, e) => {
19
+ S[t] = e;
20
+ }, B = (t, e) => {
21
+ f = T, t && (f = { ...t, interpolation: t?.interpolation || {} }, f.interpolation.prefix = t.interpolation?.prefix || "{{", f.interpolation.suffix = t.interpolation?.suffix || "}}"), x = t?.lng || "", c.store = { data: f.resources || {} }, f.resources = {}, e?.(null, h);
22
+ }, F = (t) => (x = t, Promise.resolve(h)), b = (t, e, n = !0) => {
23
+ const r = t;
24
+ for (const s in e) {
25
+ const a = r[s], o = e[s];
26
+ o && typeof o == "object" && !Array.isArray(o) ? ((typeof a != "object" || Array.isArray(a)) && (r[s] = {}), b(r[s], o, n)) : (n || a === void 0) && (r[s] = o);
27
+ }
28
+ return t;
29
+ }, J = (t, e, n, r = !0, s = !0) => {
30
+ c.store = c.store || { data: {} }, c.store.data = c.store.data || {}, c.store.data[t] = c.store.data[t] || {}, c.store.data[t][e] = c.store.data[t][e] || {};
31
+ const a = c.store.data[t][e], o = n;
32
+ return r ? b(a, o, s) : c.store.data[t][e] = s ? o : { ...o, ...a }, (S.loaded || (() => {
33
+ }))(t, e), c;
34
+ }, m = (t, e, n, r) => {
35
+ const s = c.store;
36
+ if (!s) return;
37
+ const a = s.data?.[t];
38
+ if (!a) return;
39
+ const o = a[e];
40
+ if (!o || typeof o == "string") return;
41
+ const i = r?.keySeparator ?? c.options?.keySeparator ?? ".";
42
+ if (i === !1) return o[n];
43
+ const u = String(i);
44
+ if (n.indexOf(u) === -1) return o[n];
45
+ let l = o, y = 0;
46
+ for (let d = 0; d <= n.length; d++)
47
+ if (d === n.length || n[d] === u) {
48
+ const C = n.slice(y, d);
49
+ if (l == null || !(C in l)) return;
50
+ l = l[C], y = d + 1;
51
+ }
52
+ return l;
53
+ }, V = () => c, c = {
54
+ get language() {
55
+ return x;
56
+ },
57
+ createInstance: V,
58
+ t: h,
59
+ on: M,
60
+ init: B,
61
+ changeLanguage: F,
62
+ addResourceBundle: J,
63
+ options: f,
64
+ getResource: m
65
+ }, j = I();
66
+ function X(t, e) {
67
+ const [n, r] = P(e.resources ? t.t : () => null);
68
+ t.on("loaded", () => r(() => t.t)), t.init(e, (o, i) => r(() => i));
69
+ async function s(o) {
70
+ const i = await t.changeLanguage(o);
71
+ r(() => i);
72
+ }
73
+ function a(o, i, u, l = {}) {
74
+ return t.addResourceBundle(o, i, u, l.deep, l.overwrite);
75
+ }
76
+ return [((...o) => n().apply(null, o)), {
77
+ addResources: a,
78
+ getI18next: () => t,
79
+ changeLanguage: s
80
+ }];
81
+ }
82
+ const H = () => A(j), U = (t) => L(j.Provider, {
83
+ get value() {
84
+ return X(t.instance || c, {
85
+ lng: t.lng,
86
+ ...t.options
87
+ });
88
+ },
89
+ get children() {
90
+ return t.children;
91
+ }
92
+ }), g = (t, { prefix: e, suffix: n }) => t.includes(e) && t.includes(n), K = (t, { interpolation: e }) => (n, r) => typeof n == "string" ? g(n, e) ? t.children[r].children?.[0].content : t.children[r].content : (n.textContent = t.children[r].children?.[0].content, n), W = !globalThis.window, _ = (t, e, n) => (r) => {
93
+ const s = typeof r;
94
+ if (s === "string" && g(r, e.interpolation)) return t(r, n.options);
95
+ if (s === "object") {
96
+ const a = r.textContent ?? r.t;
97
+ a && g(a, e.interpolation) && (r[W ? "t" : "textContent"] = t(a, n.options));
98
+ }
99
+ return r;
100
+ };
101
+ let p;
102
+ (async () => {
103
+ try {
104
+ p = (await import("html-parse-string")).parse;
105
+ } catch {
106
+ }
107
+ })();
108
+ const q = () => {
109
+ console.error(
110
+ "In order to use JSX nesting, install %chtml-parse-string",
111
+ "font-weight: 700",
112
+ "https://github.com/ryansolid/html-parse-string."
113
+ );
114
+ }, z = ({ i18n: { options: t }, t: e, props: n }, r) => {
115
+ const s = e(n.key, n.options);
116
+ if (!n.children) return s;
117
+ if (s === n.key) return r.map(_(e, t, n));
118
+ if (!p) {
119
+ q();
120
+ return;
121
+ }
122
+ try {
123
+ const [a] = p(`<0>${s}</0>`);
124
+ return r.map(K(a, t));
125
+ } catch (a) {
126
+ console.error(a);
127
+ }
128
+ }, Y = (t) => {
129
+ const [e, {
130
+ getI18next: n
131
+ }] = H();
132
+ return typeof t.children == "string" ? e(t.key, t.children, t.options) : z({
133
+ i18n: n(),
134
+ t: e,
135
+ props: t
136
+ }, w(() => t.children)());
137
+ };
138
+ export {
139
+ Y as Trans,
140
+ U as TransProvider,
141
+ H as useTransContext
142
+ };
package/package.json CHANGED
@@ -20,18 +20,17 @@
20
20
  "exports": {
21
21
  ".": {
22
22
  "types": "./dist/types/index.d.ts",
23
- "import": "./dist/index.mjs"
24
- },
25
- "./dist/i18lite": {
26
- "types": "./dist/types/i18Lite.d.ts",
27
- "import": "./dist/i18lite.mjs"
23
+ "browser": {
24
+ "default": "./dist/browser.mjs"
25
+ },
26
+ "import": "./dist/ssr.mjs",
27
+ "require": "./dist/ssr.js"
28
28
  }
29
29
  },
30
30
  "files": [
31
- "dist"
31
+ "dist",
32
+ "CHANGELOG.md"
32
33
  ],
33
- "main": "./dist/index.mjs",
34
- "module": "./dist/index.mjs",
35
34
  "keywords": [
36
35
  "i18n",
37
36
  "i18next",
@@ -46,6 +45,8 @@
46
45
  "translations"
47
46
  ],
48
47
  "license": "MIT",
48
+ "main": "./dist/ssr.js",
49
+ "module": "./dist/ssr.mjs",
49
50
  "name": "@nerimity/solid-i18lite",
50
51
  "peerDependencies": {
51
52
  "html-parse-string": "<=1.x",
@@ -60,6 +61,7 @@
60
61
  "scripts": {
61
62
  "build:browser": "vite build --config vite.browser.config.js",
62
63
  "build:docs": "vite build --config vite.docs.config.js",
64
+ "build:ssr": "vite build --config vite.ssr.config.js",
63
65
  "build:types": "tsc --project tsconfig.types.json",
64
66
  "docs": "vite --config vite.docs.config.js",
65
67
  "test": "jest --coverage",
@@ -68,5 +70,5 @@
68
70
  "sideEffects": false,
69
71
  "type": "module",
70
72
  "types": "./dist/types/index.d.ts",
71
- "version": "1.5.8"
73
+ "version": "1.5.9"
72
74
  }
package/dist/i18lite.mjs DELETED
@@ -1,66 +0,0 @@
1
- let h = {}, S = "translation", d = "";
2
- const A = { resources: {}, interpolation: { prefix: "{{", suffix: "}}" } };
3
- let c = A;
4
- const R = (e) => e.replace(/[-|\\{}()[\]^$+*?.]/g, (t) => t === "-" ? "\\x2d" : `\\${t}`), v = /* @__PURE__ */ new Map(), $ = (e, t) => {
5
- if (!e) return "";
6
- const o = c?.interpolation, s = o?.prefix ?? "{{", a = o?.suffix ?? "}}", i = s + "|" + a;
7
- let r = v.get(i);
8
- if (!r) {
9
- const f = R(s), u = R(a);
10
- r = new RegExp(`${f}\\s*(\\w+)\\s*${u}`, "g"), v.set(i, r);
11
- }
12
- return e.replace(r, (f, u) => Object.prototype.hasOwnProperty.call(t, u) ? t[u] : f);
13
- }, g = (e, t, o) => {
14
- let s = j(n.language, S, e) ?? (typeof t == "string" ? t : e);
15
- return o || typeof t == "object" && t !== null ? $(s, o || t) : s;
16
- }, P = (e, t) => {
17
- h[e] = t;
18
- }, L = (e, t) => {
19
- c = A, e && (c = { ...e, interpolation: e?.interpolation || {} }, c.interpolation.prefix = e.interpolation?.prefix || "{{", c.interpolation.suffix = e.interpolation?.suffix || "}}"), d = e?.lng || "", n.store = { data: c.resources || {} }, c.resources = {}, t?.(null, g);
20
- }, M = (e) => (d = e, Promise.resolve(g)), b = (e, t, o = !0) => {
21
- const s = e;
22
- for (const a in t) {
23
- const i = s[a], r = t[a];
24
- r && typeof r == "object" && !Array.isArray(r) ? ((typeof i != "object" || Array.isArray(i)) && (s[a] = {}), b(s[a], r, o)) : (o || i === void 0) && (s[a] = r);
25
- }
26
- return e;
27
- }, V = (e, t, o, s = !0, a = !0) => {
28
- n.store = n.store || { data: {} }, n.store.data = n.store.data || {}, n.store.data[e] = n.store.data[e] || {}, n.store.data[e][t] = n.store.data[e][t] || {};
29
- const i = n.store.data[e][t], r = o;
30
- return s ? b(i, r, a) : n.store.data[e][t] = a ? r : { ...r, ...i }, (h.loaded || (() => {
31
- }))(e, t), n;
32
- }, j = (e, t, o, s) => {
33
- const a = n.store;
34
- if (!a) return;
35
- const i = a.data?.[e];
36
- if (!i) return;
37
- const r = i[t];
38
- if (!r || typeof r == "string") return;
39
- const f = s?.keySeparator ?? n.options?.keySeparator ?? ".";
40
- if (f === !1) return r[o];
41
- const u = String(f);
42
- if (o.indexOf(u) === -1) return r[o];
43
- let p = r, x = 0;
44
- for (let l = 0; l <= o.length; l++)
45
- if (l === o.length || o[l] === u) {
46
- const y = o.slice(x, l);
47
- if (p == null || !(y in p)) return;
48
- p = p[y], x = l + 1;
49
- }
50
- return p;
51
- }, B = () => n, n = {
52
- get language() {
53
- return d;
54
- },
55
- createInstance: B,
56
- t: g,
57
- on: P,
58
- init: L,
59
- changeLanguage: M,
60
- addResourceBundle: V,
61
- options: c,
62
- getResource: j
63
- };
64
- export {
65
- n as default
66
- };
package/dist/index.mjs DELETED
@@ -1,81 +0,0 @@
1
- import { createComponent as f, memo as d } from "solid-js/web";
2
- import { useContext as m, createContext as y, createSignal as x, children as C } from "solid-js";
3
- import T from "./i18lite.mjs";
4
- const g = y();
5
- function w(t, r) {
6
- const [n, e] = x(r.resources ? t.t : () => null);
7
- t.on("loaded", () => e(() => t.t)), t.init(r, (a, i) => e(() => i));
8
- async function c(a) {
9
- const i = await t.changeLanguage(a);
10
- e(() => i);
11
- }
12
- function o(a, i, h, u = {}) {
13
- return t.addResourceBundle(a, i, h, u.deep, u.overwrite);
14
- }
15
- return [((...a) => n().apply(null, a)), {
16
- addResources: o,
17
- getI18next: () => t,
18
- changeLanguage: c
19
- }];
20
- }
21
- const I = () => m(g), N = (t) => f(g.Provider, {
22
- get value() {
23
- return w(t.instance || T, {
24
- lng: t.lng,
25
- ...t.options
26
- });
27
- },
28
- get children() {
29
- return t.children;
30
- }
31
- }), s = (t, { prefix: r, suffix: n }) => t.includes(r) && t.includes(n), S = (t, { interpolation: r }) => (n, e) => typeof n == "string" ? s(n, r) ? t.children[e].children?.[0].content : t.children[e].content : (n.textContent = t.children[e].children?.[0].content, n), k = !globalThis.window, v = (t, r, n) => (e) => {
32
- const c = typeof e;
33
- if (c === "string" && s(e, r.interpolation)) return t(e, n.options);
34
- if (c === "object") {
35
- const o = e.textContent ?? e.t;
36
- o && s(o, r.interpolation) && (e[k ? "t" : "textContent"] = t(o, n.options));
37
- }
38
- return e;
39
- };
40
- let l;
41
- (async () => {
42
- try {
43
- l = (await import("html-parse-string")).parse;
44
- } catch {
45
- }
46
- })();
47
- const L = () => {
48
- console.error(
49
- "In order to use JSX nesting, install %chtml-parse-string",
50
- "font-weight: 700",
51
- "https://github.com/ryansolid/html-parse-string."
52
- );
53
- }, P = ({ i18n: { options: t }, t: r, props: n }, e) => {
54
- const c = r(n.key, n.options);
55
- if (!n.children) return c;
56
- if (c === n.key) return e.map(v(r, t, n));
57
- if (!l) {
58
- L();
59
- return;
60
- }
61
- try {
62
- const [o] = l(`<0>${c}</0>`);
63
- return e.map(S(o, t));
64
- } catch (o) {
65
- console.error(o);
66
- }
67
- }, R = (t) => {
68
- const [r, {
69
- getI18next: n
70
- }] = I();
71
- return d(() => d(() => typeof t.children == "string")() ? r(t.key, t.children, t.options) : P({
72
- i18n: n(),
73
- t: r,
74
- props: t
75
- }, C(() => t.children)()));
76
- };
77
- export {
78
- R as Trans,
79
- N as TransProvider,
80
- I as useTransContext
81
- };