i18n-pro
Version:
An out-of-the-box, lightweight JavaScript i18n auto-translation solution
3 lines (2 loc) • 5.03 kB
JavaScript
// i18n-pro v3.0.0 2025/9/6 17:04:13 Copyright (c) 2022-present Eyelly Wu <https://github.com/eyelly-wu>
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).i18nPro={})}(this,(function(e){"use strict";var n=function(){return n=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},n.apply(this,arguments)};function t(e,n,t,r){return new(t||(t=Promise))((function(o,a){function c(e){try{i(r.next(e))}catch(e){a(e)}}function l(e){try{i(r.throw(e))}catch(e){a(e)}}function i(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,l)}i((r=r.apply(e,n||[])).next())}))}function r(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return c.next=l(0),c.throw=l(1),c.return=l(2),"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function l(l){return function(i){return function(l){if(t)throw new TypeError("Generator is already executing.");for(;c&&(c=0,l[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,r=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){a.label=l[1];break}if(6===l[0]&&a.label<o[1]){a.label=o[1],o=l;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(l);break}o[2]&&a.ops.pop(),a.trys.pop();continue}l=n.call(e,a)}catch(e){l=[6,e],r=0}finally{t=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,i])}}}"function"==typeof SuppressedError&&SuppressedError;var o=/(\{([ncdt])number\})/,a=/(\{(p)number([^}]+)\})/,c=/(\{(p)number\})/,l={n:"formatNumber",c:"formatCurrency",d:"formatDate",t:"formatTime",p:"formatPlural"},i={};function u(e){return i[e]||{}}function f(e,n){return new RegExp(e.source.replace("number",n+""),"i")}function s(e,t){void 0===t&&(t=!1);var r=t?p.bind(null,e):p.bind(null,e,null);return t||function(e,t){Object.defineProperties(e,{t:{get:function(){return s(t,!0)}},withLocale:{get:function(){return function(e){return s(n(n({},t),{locale:e||t.locale}))}}}})}(r,e),r}function p(e,t,r){void 0===t&&(t=null);for(var i=[],p=3;p<arguments.length;p++)i[p-3]=arguments[p];var d=u(e.namespace),b=d.locale,v=d.langs,y=d.beginIndex,h=void 0===y?0:y,m=e.locale||b,g=null==v?void 0:v[m],x=r;return t=null===t?r:t,(null==g?void 0:g[t])&&(r=g[t],x=r),i.forEach((function(t,i){var u=h+i,p=f(c,u),b=r.match(p);if(b)console.warn("Invalid plural parameter `".concat(b[1],"` in `").concat(x,"`."));else{var v=f(o,u),y=f(a,u),m=r.match(v),g=r.match(y);r=m||g?function(e){var t=e.type,r=e.originText,o=e.matchTagRes,a=e.arg,c=e.text,i=e.state,u=e.condition,f=i.locale,p=u.locale||f,d=o[1],b=o[2],v=o[3],y=void 0===v?"":v,h=l[null==b?void 0:b.toLowerCase()],m=i[h],g=c;if("function"!=typeof m)return console.warn("Missing formatter `".concat(h,"` for `").concat(d,"` in `").concat(r,"`.")),g.replace(d,"".concat(a).concat(y));void 0===p&&console.warn("The locale is not configured and may affect the logic in formatter `".concat(h,"`."));try{var x=m(n({locale:p,payload:a,t:s(u)},"plural"===t?{keyword:y.trim(),text:"".concat(a).concat(y)}:{}));g=g.replace(d,x)}catch(e){console.error("Error in formatter `".concat(h,"` for `").concat(d,"` in `").concat(r,"`:"),e),g=g.replace(d,"".concat(a).concat(y))}return g}({type:g?"plural":"normal",originText:x,matchTagRes:g||m,index:u,arg:t,text:r,state:d,condition:e}):r.replace("{".concat(u,"}"),"".concat(t))}})),r}function d(e,o){return void 0===o&&(o={}),t(this,void 0,void 0,(function(){var t,a,c,l,f,s,p,d;return r(this,(function(r){switch(r.label){case 0:return t=u(e),a=o.locale,c=o.langs,l=n({},t),a?(l.locale=a,f=(null==t?void 0:t.langs)||{},"function"!=typeof(s=null==f?void 0:f[a])?[3,2]:[4,s()]):[3,2];case 1:p=r.sent(),"object"==typeof(b=p)&&null!==b?l.langs=n(n({},f),((d={})[a]=p,d)):console.error("Failed to load language pack for `".concat(a,"`"),p),r.label=2;case 2:return c&&(l.langs=n(n({},l.langs||{}),Object.entries(c).reduce((function(e,t){var r,o=t[0],a=t[1];return e[o]=n(n({},(null===(r=l.langs)||void 0===r?void 0:r[o])||{}),a),e}),{}))),i[e]=Object.freeze(l),[2,l]}var b}))}))}e.initI18n=function(e){var t=e.namespace||"default";i[t]&&console.error("Namespace `".concat(t,"` already exists.")),void 0!==e.beginIndex&&"number"!=typeof e.beginIndex&&(console.error("`beginIndex` must be a number."),delete e.beginIndex),i[t]=n({},e);var r={namespace:t,locale:null};return{setI18n:d.bind(null,t),t:s(r)}},Object.defineProperty(e,"__esModule",{value:!0})}));