@ray-js/wechat-i18n 0.3.18 → 0.3.19

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/index.esm.js CHANGED
@@ -1 +1 @@
1
- import{fetch as t}from"@ray-js/wechat";import{BaseApi as e,sleep as s,getLanguage as n,numToBits as i}from"@ray-js/wechat-helper";function r(t,e,s,n){return new(s||(s=Promise))((function(i,r){function a(t){try{u(n.next(t))}catch(t){r(t)}}function o(t){try{u(n.throw(t))}catch(t){r(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(a,o)}u((n=n.apply(t,e||[])).next())}))}const a={};let o;const u=()=>(o||(o=e.getFileSystemManager()),o),g=t=>`${e.env.USER_DATA_PATH}/ty_i18n/${t}.txt`,h=(t,e)=>r(void 0,void 0,void 0,(function*(){const n=u(),i=l(t),r=g(t);n.writeFileSync(r,JSON.stringify(e),"utf8"),yield s(100);const a=n.statSync(r);if(i.totalSize+a.size>5242880){let t=i.totalSize+a.size-5242880;for(let e=0;t>0;e++){const s=i.files[e];n.unlinkSync(s.path),t-=s.stats.size}}})),l=t=>{const s=u(),n=`${e.env.USER_DATA_PATH}/ty_i18n/`;try{s.accessSync(n)}catch(t){s.mkdirSync(n,!0)}const i=s.statSync(n,!0),r=[];let a=0;return Array.isArray(i)&&(a=i.reduce(((e,s)=>s.stats.isFile()&&-1===s.path.indexOf(t)?(r.push(s),e+s.stats.size):e),0)),r.sort(((t,e)=>(t.stats.lastModifiedTime||t.stats.lastAccessedTime)>(e.stats.lastModifiedTime||e.stats.lastAccessedTime)?1:-1)),{files:r,totalSize:a}},c=t=>(t=>{if(a[t])return a[t];const e=g(t),s=u();try{s.accessSync(e)}catch(t){return null}try{const n=JSON.parse(s.readFileSync(e,"utf8"));return a[t]=n,n}catch(t){return null}return null})(t),d=e=>r(void 0,void 0,void 0,(function*(){const s=yield t({action:"panel.i18n.info",data:{product_id:e,version:"1.0.0"}});var n,i;return i=s,a[n=e]=i,setTimeout((()=>{h(n,i)}),0),s})),f=t=>!("string"!=typeof t||!/^zh-hans$|^zh_hans$|^zh_cn$|^zh-cn$|^zh_hans_\w+|^zh-hans-\w+/.test(t.toLowerCase())),_={data:{},t(t){var e;return null!==(e=this.data[t])&&void 0!==e?e:t}},p=t=>{let e=n();f(e)&&(e="zh"),t[e]?Object.assign(_.data,t[e]):t.en?Object.assign(_.data,t.en):Object.assign(_.data,t[Object.keys(t)[0]])};class y{constructor(t){this.__language="zh",this.strings=this.mergeLanguage(t,{}),this.defaultLang=this.strings.en?"en":Object.keys(this.strings)[0],this.setLanguage(this.defaultLang);let e=n();f(e)&&(e="zh"),this.setLanguage(e)}forceUpdateLocalLangWithPid(t){const e=c(t);return e?(this.strings=this.mergeLanguage(this.strings,e),this.buildLanguage(this.__language),Promise.resolve(!0)):this.forceUpdateNetworkLang(t).then((()=>!1))}forceUpdateNetworkLangWithPid(t){return d(t).then((t=>{t&&(this.strings=this.mergeLanguage(this.strings,t),this.buildLanguage(this.__language))}))}mergeLanguage(t,e){if(void 0===t&&void 0===e)return{};if(void 0===t)return e;if(void 0===e)return t;const s=Object.assign({},t);return Object.keys(e).map((t=>(void 0!==s[t]?Object.assign(s[t],e[t]):s[t]=Object.assign({},e[t]),null))),s}isZh(t){return f(t)}setLanguage(t){this.__language=t,this.isZh(t)?(this.buildLanguage("zh"),this.buildLanguage(t)):this.buildLanguage(this.__language)}buildLanguage(t){if(this.strings[t]){const e=this.strings[t];Object.assign(this,e)}}getBestMatchingLanguage(t,e){if(e[t])return t;const s=t.lastIndexOf("-");if(s>=0){const n=t.substring(0,s);return this._getBestMatchingLanguage(n,e)}const n=t.lastIndexOf("_");if(n>=0){const s=t.substring(0,n);return this._getBestMatchingLanguage(s,e)}return this.defaultLang}formatString(t,...e){let s=t;for(let t=0;t<e.length;t++)s=this._replaceAll(`{${t}}`,e[t].toString(),s);return s}formatValue(t,...e){let s=void 0!==this[t]?this[t]:_.t(t);for(let t=0;t<e.length;t++)s=this._replaceAll(`{${t}}`,e[t].toString(),s);return s}_replaceAll(t,e,s){return t=t.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1"),s?s.replace(new RegExp(t,"g"),e):""}getDpLang(t,e){let s;if(void 0===e)s=`dp_${t}`.toLowerCase();else if("boolean"==typeof e){s=`dp_${t}_${e?"on":"off"}`.toLowerCase()}else s=`dp_${t}_${e}`.toLowerCase();return _.t(s)!==s?_.t(s):void 0!==this[s]?this[s]:_.t(s)}getDpName(t,e){const s=`dp_${t}`.toLowerCase();return _.t(s)!==s?_.t(s):void 0!==this[s]?this[s]:e}getDpsLang(t){let e={};return"object"==typeof t?"string"==typeof t.strKey?e=_.t(t.strKey)!==t.strKey?_.t(t.strKey):void 0!==this[t.strKey]?this[t.strKey]:_.t(t.strKey):Object.keys(t).map((s=>(e[t[s]]=_.t(t[s])!==t[s]?_.t(t[s]):void 0!==this[t[s]]?this[t[s]]:_.t(t[s]),null))):e=_.t(t)!==t?_.t(t):void 0!==this[t]?this[t]:_.t(t),e}getLang(t,e){return _.t(t)!==t?_.t(t):void 0!==this[t]?this[t]:void 0!==e?e:_.t(t)}getRangeStrings(t,e){const s={};if(void 0===e)return s;return e.range.map((e=>{const n=`dp_${t}_${e}`.toLowerCase();return s[e]=_.t(n)!==n?_.t(n):void 0!==this[n]?this[n]:_.t(n),null})),s}parseCountdown(t,e){const s=parseFloat(""+t/3600),n=parseFloat(""+(t/60-60*s)),i="t_hour"!==_.t("t_hour")?_.t("t_hour"):void 0!==this.t_hour?this.t_hour:_.t("t_hour"),r="t_minute"!==_.t("t_minute")?_.t("t_minute"):void 0!==this.t_minute?this.t_minute:_.t("t_minute"),a=s>=1?`${Math.round(s)}${i}`:`${Math.round(n)}${r}`,o="countdown_"+(e?"on":"off"),u=_.t(o)!==o?_.t(o):void 0!==this[o]?this[o]:_.t(o);return this.formatString(u,a)}getFaultStrings(t,e,s,n=!0){if(!s)return"";const{label:r}=t,a=i(s),o=[];return a.every(((t,s)=>!t||(o.push(this.getDpLang(e,r[s].toString())),!n))),n?o[0]:o.join(", ")}}const m={modules:{},addModule(t,e){const s=m.getModule(t);return s.strings=s.mergeLanguage(s.strings,e),s.buildLanguage(s.__language),this.modules[t]=s,s},getModule(t){return this.modules[t]?this.modules[t]:new y({})}},L=(t,e)=>{const s=m.getModule(t);return s.strings=s.mergeLanguage(e,s.strings),s.buildLanguage(s.__language),m.modules[t]=s,s};export{y as I18N,d as getPanelI18nByCloud,c as getPanelI18nByLocal,m as i18nManager,L as i18nModule,p as updateI18n};
1
+ import{fetch as t}from"@ray-js/wechat";import{BaseApi as e,sleep as s,getLanguage as i,numToBits as n}from"@ray-js/wechat-helper";function r(t,e,s,i){return new(s||(s=Promise))((function(n,r){function a(t){try{g(i.next(t))}catch(t){r(t)}}function o(t){try{g(i.throw(t))}catch(t){r(t)}}function g(t){var e;t.done?n(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(a,o)}g((i=i.apply(t,e||[])).next())}))}const a={};let o;const g=()=>(o||(o=e.getFileSystemManager()),o),u=t=>`${e.env.USER_DATA_PATH}/ty_i18n/${t}.txt`,h=(t,e)=>r(void 0,void 0,void 0,(function*(){const i=g(),n=c(t),r=u(t);i.writeFileSync(r,JSON.stringify(e),"utf8"),yield s(100);const a=i.statSync(r);if(n.totalSize+a.size>5242880){let t=n.totalSize+a.size-5242880;for(let e=0;t>0;e++){const s=n.files[e];i.unlinkSync(s.path),t-=s.stats.size}}})),c=t=>{const s=g(),i=`${e.env.USER_DATA_PATH}/ty_i18n/`;try{s.accessSync(i)}catch(t){s.mkdirSync(i,!0)}const n=s.statSync(i,!0),r=[];let a=0;return Array.isArray(n)&&(a=n.reduce(((e,s)=>s.stats.isFile()&&-1===s.path.indexOf(t)?(r.push(s),e+s.stats.size):e),0)),r.sort(((t,e)=>(t.stats.lastModifiedTime||t.stats.lastAccessedTime)>(e.stats.lastModifiedTime||e.stats.lastAccessedTime)?1:-1)),{files:r,totalSize:a}},l=t=>(t=>{if(a[t])return a[t];const e=u(t),s=g();try{s.accessSync(e)}catch(t){return null}try{const i=JSON.parse(s.readFileSync(e,"utf8"));return a[t]=i,i}catch(t){return null}})(t),d=e=>r(void 0,void 0,void 0,(function*(){const s=yield t({action:"panel.i18n.info",data:{product_id:e,version:"1.0.0"}});var i,n;return i=e,n={time:+new Date,data:s},a[i]=n,setTimeout((()=>{h(i,n)}),0),s})),f=t=>!("string"!=typeof t||!/^zh-hans$|^zh_hans$|^zh_cn$|^zh-cn$|^zh_hans_\w+|^zh-hans-\w+/.test(t.toLowerCase())),_={data:{},t(t){var e;return null!==(e=this.data[t])&&void 0!==e?e:t}},y=t=>{let e=i();f(e)&&(e="zh"),t[e]?Object.assign(_.data,t[e]):t.en?Object.assign(_.data,t.en):Object.assign(_.data,t[Object.keys(t)[0]])};class p{constructor(t){this.__language="zh",this.__keyPrefix="",this.strings=this.mergeLanguage(t,{}),this.defaultLang=this.strings.en?"en":Object.keys(this.strings)[0],this.setLanguage(this.defaultLang);let e=i();f(e)&&(e="zh"),this.setLanguage(e)}forceUpdateLocalLangWithPid(t){const e=l(t);return e?(this.strings=this.mergeLanguage(this.strings,e.data),this.buildLanguage(this.__language),e.time&&+new Date-e.time>864e5&&this.forceUpdateNetworkLangWithPid(t),Promise.resolve(!0)):this.forceUpdateNetworkLangWithPid(t).then((()=>!1))}forceUpdateNetworkLangWithPid(t){return d(t).then((t=>{t&&(this.strings=this.mergeLanguage(this.strings,t),this.buildLanguage(this.__language))}))}mergeLanguage(t,e){if(void 0===t&&void 0===e)return{};if(void 0===t)return e;if(void 0===e)return t;const s=Object.assign({},t);return Object.keys(e).map((t=>(void 0!==s[t]?Object.assign(s[t],e[t]):s[t]=Object.assign({},e[t]),null))),s}isZh(t){return f(t)}setKeyPrefix(t){this.__keyPrefix=t}getKey(t){return`${this.__keyPrefix}${t}`}setLanguage(t){this.__language=t,this.isZh(t)?(this.buildLanguage("zh"),this.buildLanguage(t)):this.buildLanguage(this.__language)}buildLanguage(t){if(this.strings[t]){const e=this.strings[t];Object.assign(this,e)}}getBestMatchingLanguage(t,e){if(e[t])return t;const s=t.lastIndexOf("-");if(s>=0){const i=t.substring(0,s);return this._getBestMatchingLanguage(i,e)}const i=t.lastIndexOf("_");if(i>=0){const s=t.substring(0,i);return this._getBestMatchingLanguage(s,e)}return this.defaultLang}formatString(t,...e){let s=t;for(let t=0;t<e.length;t++)s=this._replaceAll(`{${t}}`,e[t].toString(),s);return s}formatValue(t,...e){let s=void 0!==this[t=this.getKey(t)]?this[t]:_.t(t);for(let t=0;t<e.length;t++)s=this._replaceAll(`{${t}}`,e[t].toString(),s);return s}_replaceAll(t,e,s){return t=t.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1"),s?s.replace(new RegExp(t,"g"),e):""}getDpLang(t,e){let s;if(void 0===e)s=`dp_${t}`.toLowerCase();else if("boolean"==typeof e){s=`dp_${t}_${e?"on":"off"}`.toLowerCase()}else s=`dp_${t}_${e}`.toLowerCase();return _.t(s)!==s?_.t(s):void 0!==this[s]?this[s]:_.t(s)}getDpName(t,e){const s=`dp_${t}`.toLowerCase();return _.t(s)!==s?_.t(s):void 0!==this[s]?this[s]:e}getDpsLang(t){let e={};return"object"==typeof t?"string"==typeof t.strKey?e=_.t(t.strKey)!==t.strKey?_.t(t.strKey):void 0!==this[t.strKey]?this[t.strKey]:_.t(t.strKey):Object.keys(t).map((s=>(e[t[s]]=_.t(t[s])!==t[s]?_.t(t[s]):void 0!==this[t[s]]?this[t[s]]:_.t(t[s]),null))):e=_.t(t)!==t?_.t(t):void 0!==this[t]?this[t]:_.t(t),e}getLang(t,e){return t=this.getKey(t),_.t(t)!==t?_.t(t):void 0!==this[t]?this[t]:void 0!==e?e:_.t(t)}getRangeStrings(t,e){const s={};if(void 0===e)return s;return e.range.map((e=>{const i=`dp_${t}_${e}`.toLowerCase();return s[e]=_.t(i)!==i?_.t(i):void 0!==this[i]?this[i]:_.t(i),null})),s}parseCountdown(t,e){const s=parseFloat(""+t/3600),i=parseFloat(""+(t/60-60*s)),n="t_hour"!==_.t("t_hour")?_.t("t_hour"):void 0!==this.t_hour?this.t_hour:_.t("t_hour"),r="t_minute"!==_.t("t_minute")?_.t("t_minute"):void 0!==this.t_minute?this.t_minute:_.t("t_minute"),a=s>=1?`${Math.round(s)}${n}`:`${Math.round(i)}${r}`,o="countdown_"+(e?"on":"off"),g=_.t(o)!==o?_.t(o):void 0!==this[o]?this[o]:_.t(o);return this.formatString(g,a)}getFaultStrings(t,e,s,i=!0){if(!s)return"";const{label:r}=t,a=n(s),o=[];return a.every(((t,s)=>!t||(o.push(this.getDpLang(e,r[s].toString())),!i))),i?o[0]:o.join(", ")}}const m={modules:{},addModule(t,e){const s=m.getModule(t);return s.strings=s.mergeLanguage(s.strings,e),s.buildLanguage(s.__language),this.modules[t]=s,s},getModule(t){return this.modules[t]?this.modules[t]:new p({})}},L=(t,e,s)=>{const i=m.getModule(t);if(i.setKeyPrefix(s||""),s){const t={};Object.keys(e).forEach((i=>{const n=e[i],r={};Object.keys(e[i]).forEach((t=>{r[`${s}${t}`]=n[t]})),t[i]=r})),e=t}return i.strings=i.mergeLanguage(e,i.strings),i.buildLanguage(i.__language),m.modules[t]=i,i};export{p as I18N,d as getPanelI18nByCloud,l as getPanelI18nByLocal,m as i18nManager,L as i18nModule,y as updateI18n};
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@ray-js/wechat"),e=require("@ray-js/wechat-helper");function s(t,e,s,n){return new(s||(s=Promise))((function(i,a){function r(t){try{u(n.next(t))}catch(t){a(t)}}function o(t){try{u(n.throw(t))}catch(t){a(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(r,o)}u((n=n.apply(t,e||[])).next())}))}const n={};let i;const a=()=>(i||(i=e.BaseApi.getFileSystemManager()),i),r=t=>`${e.BaseApi.env.USER_DATA_PATH}/ty_i18n/${t}.txt`,o=(t,n)=>s(void 0,void 0,void 0,(function*(){const s=a(),i=u(t),o=r(t);s.writeFileSync(o,JSON.stringify(n),"utf8"),yield e.sleep(100);const g=s.statSync(o);if(i.totalSize+g.size>5242880){let t=i.totalSize+g.size-5242880;for(let e=0;t>0;e++){const n=i.files[e];s.unlinkSync(n.path),t-=n.stats.size}}})),u=t=>{const s=a(),n=`${e.BaseApi.env.USER_DATA_PATH}/ty_i18n/`;try{s.accessSync(n)}catch(t){s.mkdirSync(n,!0)}const i=s.statSync(n,!0),r=[];let o=0;return Array.isArray(i)&&(o=i.reduce(((e,s)=>s.stats.isFile()&&-1===s.path.indexOf(t)?(r.push(s),e+s.stats.size):e),0)),r.sort(((t,e)=>(t.stats.lastModifiedTime||t.stats.lastAccessedTime)>(e.stats.lastModifiedTime||e.stats.lastAccessedTime)?1:-1)),{files:r,totalSize:o}},g=t=>(t=>{if(n[t])return n[t];const e=r(t),s=a();try{s.accessSync(e)}catch(t){return null}try{const i=JSON.parse(s.readFileSync(e,"utf8"));return n[t]=i,i}catch(t){return null}return null})(t),h=e=>s(void 0,void 0,void 0,(function*(){const s=yield t.fetch({action:"panel.i18n.info",data:{product_id:e,version:"1.0.0"}});var i,a;return a=s,n[i=e]=a,setTimeout((()=>{o(i,a)}),0),s})),l=t=>!("string"!=typeof t||!/^zh-hans$|^zh_hans$|^zh_cn$|^zh-cn$|^zh_hans_\w+|^zh-hans-\w+/.test(t.toLowerCase())),c={data:{},t(t){var e;return null!==(e=this.data[t])&&void 0!==e?e:t}};class d{constructor(t){this.__language="zh",this.strings=this.mergeLanguage(t,{}),this.defaultLang=this.strings.en?"en":Object.keys(this.strings)[0],this.setLanguage(this.defaultLang);let s=e.getLanguage();l(s)&&(s="zh"),this.setLanguage(s)}forceUpdateLocalLangWithPid(t){const e=g(t);return e?(this.strings=this.mergeLanguage(this.strings,e),this.buildLanguage(this.__language),Promise.resolve(!0)):this.forceUpdateNetworkLang(t).then((()=>!1))}forceUpdateNetworkLangWithPid(t){return h(t).then((t=>{t&&(this.strings=this.mergeLanguage(this.strings,t),this.buildLanguage(this.__language))}))}mergeLanguage(t,e){if(void 0===t&&void 0===e)return{};if(void 0===t)return e;if(void 0===e)return t;const s=Object.assign({},t);return Object.keys(e).map((t=>(void 0!==s[t]?Object.assign(s[t],e[t]):s[t]=Object.assign({},e[t]),null))),s}isZh(t){return l(t)}setLanguage(t){this.__language=t,this.isZh(t)?(this.buildLanguage("zh"),this.buildLanguage(t)):this.buildLanguage(this.__language)}buildLanguage(t){if(this.strings[t]){const e=this.strings[t];Object.assign(this,e)}}getBestMatchingLanguage(t,e){if(e[t])return t;const s=t.lastIndexOf("-");if(s>=0){const n=t.substring(0,s);return this._getBestMatchingLanguage(n,e)}const n=t.lastIndexOf("_");if(n>=0){const s=t.substring(0,n);return this._getBestMatchingLanguage(s,e)}return this.defaultLang}formatString(t,...e){let s=t;for(let t=0;t<e.length;t++)s=this._replaceAll(`{${t}}`,e[t].toString(),s);return s}formatValue(t,...e){let s=void 0!==this[t]?this[t]:c.t(t);for(let t=0;t<e.length;t++)s=this._replaceAll(`{${t}}`,e[t].toString(),s);return s}_replaceAll(t,e,s){return t=t.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1"),s?s.replace(new RegExp(t,"g"),e):""}getDpLang(t,e){let s;if(void 0===e)s=`dp_${t}`.toLowerCase();else if("boolean"==typeof e){s=`dp_${t}_${e?"on":"off"}`.toLowerCase()}else s=`dp_${t}_${e}`.toLowerCase();return c.t(s)!==s?c.t(s):void 0!==this[s]?this[s]:c.t(s)}getDpName(t,e){const s=`dp_${t}`.toLowerCase();return c.t(s)!==s?c.t(s):void 0!==this[s]?this[s]:e}getDpsLang(t){let e={};return"object"==typeof t?"string"==typeof t.strKey?e=c.t(t.strKey)!==t.strKey?c.t(t.strKey):void 0!==this[t.strKey]?this[t.strKey]:c.t(t.strKey):Object.keys(t).map((s=>(e[t[s]]=c.t(t[s])!==t[s]?c.t(t[s]):void 0!==this[t[s]]?this[t[s]]:c.t(t[s]),null))):e=c.t(t)!==t?c.t(t):void 0!==this[t]?this[t]:c.t(t),e}getLang(t,e){return c.t(t)!==t?c.t(t):void 0!==this[t]?this[t]:void 0!==e?e:c.t(t)}getRangeStrings(t,e){const s={};if(void 0===e)return s;return e.range.map((e=>{const n=`dp_${t}_${e}`.toLowerCase();return s[e]=c.t(n)!==n?c.t(n):void 0!==this[n]?this[n]:c.t(n),null})),s}parseCountdown(t,e){const s=parseFloat(""+t/3600),n=parseFloat(""+(t/60-60*s)),i="t_hour"!==c.t("t_hour")?c.t("t_hour"):void 0!==this.t_hour?this.t_hour:c.t("t_hour"),a="t_minute"!==c.t("t_minute")?c.t("t_minute"):void 0!==this.t_minute?this.t_minute:c.t("t_minute"),r=s>=1?`${Math.round(s)}${i}`:`${Math.round(n)}${a}`,o="countdown_"+(e?"on":"off"),u=c.t(o)!==o?c.t(o):void 0!==this[o]?this[o]:c.t(o);return this.formatString(u,r)}getFaultStrings(t,s,n,i=!0){if(!n)return"";const{label:a}=t,r=e.numToBits(n),o=[];return r.every(((t,e)=>!t||(o.push(this.getDpLang(s,a[e].toString())),!i))),i?o[0]:o.join(", ")}}const f={modules:{},addModule(t,e){const s=f.getModule(t);return s.strings=s.mergeLanguage(s.strings,e),s.buildLanguage(s.__language),this.modules[t]=s,s},getModule(t){return this.modules[t]?this.modules[t]:new d({})}};exports.I18N=d,exports.getPanelI18nByCloud=h,exports.getPanelI18nByLocal=g,exports.i18nManager=f,exports.i18nModule=(t,e)=>{const s=f.getModule(t);return s.strings=s.mergeLanguage(e,s.strings),s.buildLanguage(s.__language),f.modules[t]=s,s},exports.updateI18n=t=>{let s=e.getLanguage();l(s)&&(s="zh"),t[s]?Object.assign(c.data,t[s]):t.en?Object.assign(c.data,t.en):Object.assign(c.data,t[Object.keys(t)[0]])};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@ray-js/wechat"),e=require("@ray-js/wechat-helper");function s(t,e,s,n){return new(s||(s=Promise))((function(i,a){function r(t){try{g(n.next(t))}catch(t){a(t)}}function o(t){try{g(n.throw(t))}catch(t){a(t)}}function g(t){var e;t.done?i(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(r,o)}g((n=n.apply(t,e||[])).next())}))}const n={};let i;const a=()=>(i||(i=e.BaseApi.getFileSystemManager()),i),r=t=>`${e.BaseApi.env.USER_DATA_PATH}/ty_i18n/${t}.txt`,o=(t,n)=>s(void 0,void 0,void 0,(function*(){const s=a(),i=g(t),o=r(t);s.writeFileSync(o,JSON.stringify(n),"utf8"),yield e.sleep(100);const u=s.statSync(o);if(i.totalSize+u.size>5242880){let t=i.totalSize+u.size-5242880;for(let e=0;t>0;e++){const n=i.files[e];s.unlinkSync(n.path),t-=n.stats.size}}})),g=t=>{const s=a(),n=`${e.BaseApi.env.USER_DATA_PATH}/ty_i18n/`;try{s.accessSync(n)}catch(t){s.mkdirSync(n,!0)}const i=s.statSync(n,!0),r=[];let o=0;return Array.isArray(i)&&(o=i.reduce(((e,s)=>s.stats.isFile()&&-1===s.path.indexOf(t)?(r.push(s),e+s.stats.size):e),0)),r.sort(((t,e)=>(t.stats.lastModifiedTime||t.stats.lastAccessedTime)>(e.stats.lastModifiedTime||e.stats.lastAccessedTime)?1:-1)),{files:r,totalSize:o}},u=t=>(t=>{if(n[t])return n[t];const e=r(t),s=a();try{s.accessSync(e)}catch(t){return null}try{const i=JSON.parse(s.readFileSync(e,"utf8"));return n[t]=i,i}catch(t){return null}})(t),h=e=>s(void 0,void 0,void 0,(function*(){const s=yield t.fetch({action:"panel.i18n.info",data:{product_id:e,version:"1.0.0"}});var i,a;return i=e,a={time:+new Date,data:s},n[i]=a,setTimeout((()=>{o(i,a)}),0),s})),l=t=>!("string"!=typeof t||!/^zh-hans$|^zh_hans$|^zh_cn$|^zh-cn$|^zh_hans_\w+|^zh-hans-\w+/.test(t.toLowerCase())),c={data:{},t(t){var e;return null!==(e=this.data[t])&&void 0!==e?e:t}};class d{constructor(t){this.__language="zh",this.__keyPrefix="",this.strings=this.mergeLanguage(t,{}),this.defaultLang=this.strings.en?"en":Object.keys(this.strings)[0],this.setLanguage(this.defaultLang);let s=e.getLanguage();l(s)&&(s="zh"),this.setLanguage(s)}forceUpdateLocalLangWithPid(t){const e=u(t);return e?(this.strings=this.mergeLanguage(this.strings,e.data),this.buildLanguage(this.__language),e.time&&+new Date-e.time>864e5&&this.forceUpdateNetworkLangWithPid(t),Promise.resolve(!0)):this.forceUpdateNetworkLangWithPid(t).then((()=>!1))}forceUpdateNetworkLangWithPid(t){return h(t).then((t=>{t&&(this.strings=this.mergeLanguage(this.strings,t),this.buildLanguage(this.__language))}))}mergeLanguage(t,e){if(void 0===t&&void 0===e)return{};if(void 0===t)return e;if(void 0===e)return t;const s=Object.assign({},t);return Object.keys(e).map((t=>(void 0!==s[t]?Object.assign(s[t],e[t]):s[t]=Object.assign({},e[t]),null))),s}isZh(t){return l(t)}setKeyPrefix(t){this.__keyPrefix=t}getKey(t){return`${this.__keyPrefix}${t}`}setLanguage(t){this.__language=t,this.isZh(t)?(this.buildLanguage("zh"),this.buildLanguage(t)):this.buildLanguage(this.__language)}buildLanguage(t){if(this.strings[t]){const e=this.strings[t];Object.assign(this,e)}}getBestMatchingLanguage(t,e){if(e[t])return t;const s=t.lastIndexOf("-");if(s>=0){const n=t.substring(0,s);return this._getBestMatchingLanguage(n,e)}const n=t.lastIndexOf("_");if(n>=0){const s=t.substring(0,n);return this._getBestMatchingLanguage(s,e)}return this.defaultLang}formatString(t,...e){let s=t;for(let t=0;t<e.length;t++)s=this._replaceAll(`{${t}}`,e[t].toString(),s);return s}formatValue(t,...e){let s=void 0!==this[t=this.getKey(t)]?this[t]:c.t(t);for(let t=0;t<e.length;t++)s=this._replaceAll(`{${t}}`,e[t].toString(),s);return s}_replaceAll(t,e,s){return t=t.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1"),s?s.replace(new RegExp(t,"g"),e):""}getDpLang(t,e){let s;if(void 0===e)s=`dp_${t}`.toLowerCase();else if("boolean"==typeof e){s=`dp_${t}_${e?"on":"off"}`.toLowerCase()}else s=`dp_${t}_${e}`.toLowerCase();return c.t(s)!==s?c.t(s):void 0!==this[s]?this[s]:c.t(s)}getDpName(t,e){const s=`dp_${t}`.toLowerCase();return c.t(s)!==s?c.t(s):void 0!==this[s]?this[s]:e}getDpsLang(t){let e={};return"object"==typeof t?"string"==typeof t.strKey?e=c.t(t.strKey)!==t.strKey?c.t(t.strKey):void 0!==this[t.strKey]?this[t.strKey]:c.t(t.strKey):Object.keys(t).map((s=>(e[t[s]]=c.t(t[s])!==t[s]?c.t(t[s]):void 0!==this[t[s]]?this[t[s]]:c.t(t[s]),null))):e=c.t(t)!==t?c.t(t):void 0!==this[t]?this[t]:c.t(t),e}getLang(t,e){return t=this.getKey(t),c.t(t)!==t?c.t(t):void 0!==this[t]?this[t]:void 0!==e?e:c.t(t)}getRangeStrings(t,e){const s={};if(void 0===e)return s;return e.range.map((e=>{const n=`dp_${t}_${e}`.toLowerCase();return s[e]=c.t(n)!==n?c.t(n):void 0!==this[n]?this[n]:c.t(n),null})),s}parseCountdown(t,e){const s=parseFloat(""+t/3600),n=parseFloat(""+(t/60-60*s)),i="t_hour"!==c.t("t_hour")?c.t("t_hour"):void 0!==this.t_hour?this.t_hour:c.t("t_hour"),a="t_minute"!==c.t("t_minute")?c.t("t_minute"):void 0!==this.t_minute?this.t_minute:c.t("t_minute"),r=s>=1?`${Math.round(s)}${i}`:`${Math.round(n)}${a}`,o="countdown_"+(e?"on":"off"),g=c.t(o)!==o?c.t(o):void 0!==this[o]?this[o]:c.t(o);return this.formatString(g,r)}getFaultStrings(t,s,n,i=!0){if(!n)return"";const{label:a}=t,r=e.numToBits(n),o=[];return r.every(((t,e)=>!t||(o.push(this.getDpLang(s,a[e].toString())),!i))),i?o[0]:o.join(", ")}}const f={modules:{},addModule(t,e){const s=f.getModule(t);return s.strings=s.mergeLanguage(s.strings,e),s.buildLanguage(s.__language),this.modules[t]=s,s},getModule(t){return this.modules[t]?this.modules[t]:new d({})}};exports.I18N=d,exports.getPanelI18nByCloud=h,exports.getPanelI18nByLocal=u,exports.i18nManager=f,exports.i18nModule=(t,e,s)=>{const n=f.getModule(t);if(n.setKeyPrefix(s||""),s){const t={};Object.keys(e).forEach((n=>{const i=e[n],a={};Object.keys(e[n]).forEach((t=>{a[`${s}${t}`]=i[t]})),t[n]=a})),e=t}return n.strings=n.mergeLanguage(e,n.strings),n.buildLanguage(n.__language),f.modules[t]=n,n},exports.updateI18n=t=>{let s=e.getLanguage();l(s)&&(s="zh"),t[s]?Object.assign(c.data,t[s]):t.en?Object.assign(c.data,t.en):Object.assign(c.data,t[Object.keys(t)[0]])};
package/lib/cache.d.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  export declare type LanguageMap = {
2
2
  [key: string]: Record<string, string>;
3
3
  };
4
+ declare type LanguageData = {
5
+ time: number;
6
+ data: LanguageMap;
7
+ };
4
8
  export declare const cache: Record<string, any>;
5
- export declare const getCache: (key: string) => LanguageMap | null;
6
- export declare const setCache: (key: string, data: LanguageMap) => void;
9
+ export declare const getCache: (key: string) => LanguageData | null;
10
+ export declare const setCache: (key: string, data: LanguageData) => void;
11
+ export {};
package/lib/i18n.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import { LanguageMap } from './cache';
2
- export declare const getPanelI18nByLocal: (pid: string) => LanguageMap | null;
2
+ export declare const getPanelI18nByLocal: (pid: string) => {
3
+ time: number;
4
+ data: LanguageMap;
5
+ } | null;
3
6
  export declare const getPanelI18nByCloud: (pid: string) => Promise<LanguageMap>;
4
7
  export declare const updateI18n: (data: LanguageMap) => void;
5
8
  export declare class I18N {
@@ -7,10 +10,12 @@ export declare class I18N {
7
10
  strings: LanguageMap;
8
11
  defaultLang: string;
9
12
  constructor(props: LanguageMap);
10
- forceUpdateLocalLangWithPid(productId: string): any;
13
+ forceUpdateLocalLangWithPid(productId: string): Promise<boolean>;
11
14
  forceUpdateNetworkLangWithPid(productId: string): Promise<void>;
12
15
  mergeLanguage(L1: LanguageMap, L2: LanguageMap): LanguageMap;
13
16
  isZh(language: string): boolean;
17
+ setKeyPrefix(prefix: string): void;
18
+ getKey(key: string): string;
14
19
  setLanguage(language: string): void;
15
20
  buildLanguage(language: string): void;
16
21
  getBestMatchingLanguage(language: string, props: LanguageMap): any;
@@ -32,4 +37,4 @@ export declare const i18nManager: {
32
37
  addModule(code: string, data: LanguageMap): I18N;
33
38
  getModule(code: string): I18N;
34
39
  };
35
- export declare const i18nModule: (code: string, data: LanguageMap) => I18N;
40
+ export declare const i18nModule: (code: string, data: LanguageMap, prefix?: string) => I18N;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/wechat-i18n",
3
- "version": "0.3.18",
3
+ "version": "0.3.19",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -23,8 +23,8 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@ray-js/wechat-helper": "^0.3.18",
27
- "@ray-js/wechat": "^0.3.18"
26
+ "@ray-js/wechat-helper": "^0.3.19",
27
+ "@ray-js/wechat": "^0.3.19"
28
28
  },
29
29
  "peerDependencies": {}
30
30
  }