@owja/i18n
Version:
lightweight internationalization library for javascript
3 lines (2 loc) • 2.3 kB
JavaScript
function e(e,t){const n=new RegExp("(\\[\\[("+t+")(\\|(.*?))?\\]\\])","gm"),o=[];let i;for(;null!==(i=n.exec(e));)o.push({match:i[0],arguments:void 0!==i[4]?i[4].split("|"):[]});return o}const t={short:{year:"2-digit",month:"numeric",day:"numeric",hour:"numeric",minute:"2-digit"},medium:{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"},long:{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"short"},extended:{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"long"}},n={hour:void 0,minute:void 0,second:void 0,timeZoneName:void 0},o={year:void 0,month:void 0,day:void 0};exports.Parser=e,exports.createCurrencyPlugin=function(t,n,o){const i={...o,style:"currency"};return function(o,r,u){const m=e(o,"currency"),c=t||u;return m.forEach(e=>{const t=e.arguments[0],u=e.arguments[1]||n||"USD";let m;m=void 0===t?0:r.replace&&void 0!==r.replace[t]&&"object"!=typeof r.replace[t]?parseFloat(r.replace[t].toString())||0:parseFloat(e.arguments[0])||0,o=o.replace(e.match,new Intl.NumberFormat(c.toString(),{...i,currency:u}).format(m))}),o}},exports.createDateTimePlugin=function(i,r,u,m){return function(c,a,d){const s=null!=i?i:d,l=[{type:"date",values:e(c,"date")},{type:"time",values:e(c,"time")},{type:"datetime",values:e(c,"datetime")}];for(const e of l){let i={};"date"===e.type?i=n:"time"===e.type&&(i=o);for(const n of e.values){const e=n.arguments[0],o=n.arguments[1]||u||"short",d=n.arguments[2]||r;let l;l=e?a.replace&&a.replace[e]?new Date(a.replace[e]):new Date(e):new Date,c=c.replace(n.match,new Intl.DateTimeFormat(s.toString(),{...(m||t)[o],...i,timeZone:d}).format(l))}}return c}},exports.createNumberPlugin=function(t,n){const o={...n,style:"decimal"};return function(n,i,r){const u=e(n,"number"),m=t||r;return u.forEach(e=>{const t=e.arguments[0],r=void 0!==e.arguments[1]?parseInt(e.arguments[1],10):void 0;let u;u=void 0===t?0:i.replace&&void 0!==i.replace[t]&&"object"!=typeof i.replace[t]?parseFloat(i.replace[t].toString())||0:parseFloat(e.arguments[0])||0,n=n.replace(e.match,new Intl.NumberFormat(m.toString(),{...o,minimumFractionDigits:r||o.minimumFractionDigits,maximumFractionDigits:r||o.maximumFractionDigits}).format(u))}),n}};
//# sourceMappingURL=plugins.js.map