UNPKG

@owja/i18n

Version:

lightweight internationalization library for javascript

3 lines (2 loc) 2.3 kB
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}function t(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}}const n={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"}},o={hour:void 0,minute:void 0,second:void 0,timeZoneName:void 0},i={year:void 0,month:void 0,day:void 0};function r(t,r,u,m){return function(c,a,d){const s=null!=t?t: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 t={};"date"===e.type?t=o:"time"===e.type&&(t=i);for(const o of e.values){const e=o.arguments[0],i=o.arguments[1]||u||"short",d=o.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(o.match,new Intl.DateTimeFormat(s.toString(),{...(m||n)[i],...t,timeZone:d}).format(l))}}return c}}function u(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}}export{e as Parser,t as createCurrencyPlugin,r as createDateTimePlugin,u as createNumberPlugin}; //# sourceMappingURL=plugins.module.js.map