UNPKG

translate-js

Version:

manage translations and localization with simple api

1 lines 1.37 kB
!function(n,r){"function"==typeof define&&define.amd?define([],r):"object"==typeof module&&module.exports?module.exports=r():n.translate=r()}(this,function(){return function n(){var u={},a="en",r=/{{\s*(\w+)\s*}}/g,f={en:{pluralizeTo:"count",getVariationIndex:function(n){return 1===n?0:1}}};function c(n,r,e){var t=(e=e||{}).locale||a,i=e.registry||u,o=i[t]&&i[t][n];return void 0===o?c.whenUndefined(n,t):Array.isArray(o)?function(n,r,e,t,i){var o=f[t],u=Object.keys(e),a=1===u.length?u[0]:i||o.pluralizeTo,c=parseFloat(e[a]);if(isNaN(c))throw new Error('Tranlation pluralization missing parameters on key "'+n+'"');return l(r[o.getVariationIndex(c)],e)}(n,o,r,t,e.pluralizeTo):l(o,r)}function l(n,e){return e?n.replace(r,function(n,r){return e.hasOwnProperty(r)?e[r]:n}):n}return c.add=function(n,i,o){return u[i=i||a]=u[i]||{},function(n,r){for(var e in n)n.hasOwnProperty(e)&&r(e,n[e])}(n,function(n,r){var e=o?o+"."+n:n,t=typeof r;Array.isArray(r)||"string"==t||"number"==t?u[i][e]=r:c.add(r,i,e)}),this},c.setLocale=function(n){return a=n,this},c.getLocale=function(){return a},c.interpolateWith=function(n){return r=n,this},c.setPluralizationRule=function(n,r,e){return f[n]={pluralizeTo:e&&e.pluralizeTo||"count",getVariationIndex:r},this},c.whenUndefined=function(n,r){return n},c.clear=function(){return u={},this},c.createRegistry=function(){return n()},c}()});