{"_id":"node-polyglot","_rev":"3281123","name":"node-polyglot","description":"Give your JavaScript the ability to speak many languages.","dist-tags":{"latest":"2.5.0"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"time":{"modified":"2024-05-16T05:27:03.000Z","created":"2012-10-16T01:18:08.706Z","2.5.0":"2023-01-23T17:31:10.623Z","2.4.2":"2021-08-16T18:58:39.590Z","2.4.1":"2021-08-16T16:09:27.052Z","2.4.0":"2019-09-10T21:09:49.355Z","2.3.1":"2019-06-20T23:58:45.425Z","2.3.0":"2018-07-02T22:42:33.801Z","2.1.3":"2017-01-06T07:47:47.197Z","2.2.2":"2017-01-06T07:30:40.776Z","2.2.1":"2016-11-18T18:11:50.766Z","2.1.2":"2016-11-18T18:11:44.801Z","2.2.0":"2016-11-14T08:35:42.375Z","2.1.1":"2016-11-14T08:00:01.030Z","2.1.0":"2016-11-11T09:02:56.402Z","2.0.0":"2016-04-07T06:58:02.694Z","1.0.0":"2015-11-30T04:59:01.731Z","0.4.5":"2015-11-30T01:30:40.436Z","0.4.4":"2015-10-26T21:04:38.498Z","0.4.3":"2015-06-26T19:17:56.937Z","0.4.1":"2014-07-14T23:05:39.577Z","0.4.0":"2014-05-22T17:58:25.750Z","0.3.0":"2013-08-06T19:55:32.317Z","0.2.2":"2013-08-05T18:54:15.218Z","0.2.1":"2013-05-02T17:35:58.757Z","0.2.0":"2012-12-21T02:36:19.620Z","0.1.0":"2012-12-05T01:58:56.761Z","0.0.1":"2012-10-16T01:18:08.706Z"},"users":{},"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"versions":{"2.5.0":{"name":"node-polyglot","version":"2.5.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"prepublishOnly":"safe-publish-latest","prepublish":"not-in-publish || npm run prepublishOnly","pretest":"npm run lint","test":"npm run tests-only","tests-only":"nyc mocha test/*.js --reporter spec","posttest":"aud --production","lint":"eslint .","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"array.prototype.foreach":"^1.0.2","has":"^1.0.3","object.entries":"^1.1.5","string.prototype.trim":"^1.2.6","warning":"^4.0.3"},"devDependencies":{"aud":"^2.0.0","chai":"^3.5.0","docco":"^0.7.0","eslint":"^8.18.0","eslint-config-airbnb-base":"^15.0.0","eslint-plugin-import":"^2.23.4","in-publish":"^2.0.1","iterate-iterator":"^1.0.2","mocha":"^3.5.3","nyc":"^10.3.2","safe-publish-latest":"^2.0.0","string.prototype.matchall":"^4.0.7","uglify-js":"^2.7.3"},"license":"BSD-2-Clause","gitHead":"2d7c5f5119b1a46b37aad2b28a9962ff15c7653d","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.5.0","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"shasum":"bd2703f5c5e784c3917abeaa4b5d4604a4722d7e","size":347244,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.5.0.tgz"},"_npmUser":{"name":"lencioni","email":"joe.lencioni@gmail.com"},"directories":{},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-polyglot_2.5.0_1674495070394_0.5012558012347177"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-23T17:31:10.623Z","publish_time":1674495070623,"_cnpm_publish_time":1674495070623},"2.4.2":{"name":"node-polyglot","version":"2.4.2","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"prepublish":"safe-publish-latest","pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"array.prototype.foreach":"^1.0.0","has":"^1.0.3","object.entries":"^1.1.4","string.prototype.trim":"^1.2.4","warning":"^4.0.3"},"devDependencies":{"chai":"^4.3.4","docco":"^0.7.0","eslint":"^7.32.0","eslint-config-airbnb-base":"^14.2.1","eslint-plugin-import":"^2.23.4","mocha":"^3.5.3","safe-publish-latest":"^1.1.4","uglify-js":"^2.7.3"},"license":"BSD-2-Clause","gitHead":"c46c10f6bee1e90ee90559f607c189da30e9d40c","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.4.2","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"shasum":"e4876e6710b70dc00b1351a9a68de4af47a5d61d","size":346386,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.4.2.tgz"},"_npmUser":{"name":"lencioni","email":"joe.lencioni@gmail.com"},"directories":{},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-polyglot_2.4.2_1629140319377_0.9738881647733271"},"_hasShrinkwrap":false,"publish_time":1629140319590,"_cnpm_publish_time":1629140319590,"_cnpmcore_publish_time":"2021-12-16T18:16:32.613Z"},"2.4.1":{"name":"node-polyglot","version":"2.4.1","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"prepublish":"safe-publish-latest","pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"array.prototype.foreach":"^1.0.0","has":"^1.0.3","object.entries":"^1.1.4","string.prototype.trim":"^1.2.4","warning":"^4.0.3"},"devDependencies":{"chai":"^4.3.4","docco":"^0.7.0","eslint":"^7.32.0","eslint-config-airbnb-base":"^14.2.1","eslint-plugin-import":"^2.23.4","mocha":"^3.5.3","safe-publish-latest":"^1.1.4","uglify-js":"^2.7.3"},"license":"BSD-2-Clause","gitHead":"eadca8ce183910e059bf91060170a67fd64a5ee8","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.4.1","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"shasum":"ede13d5f91c0abc10eab1918e03a067f85c53e22","size":346296,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.4.1.tgz"},"_npmUser":{"name":"lencioni","email":"joe.lencioni@gmail.com"},"directories":{},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-polyglot_2.4.1_1629130166919_0.3868268470961882"},"_hasShrinkwrap":false,"publish_time":1629130167052,"_cnpm_publish_time":1629130167052,"_cnpmcore_publish_time":"2021-12-16T18:16:33.187Z"},"2.4.0":{"name":"node-polyglot","version":"2.4.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"prepublish":"safe-publish-latest","pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.3","has":"^1.0.3","string.prototype.trim":"^1.1.2","warning":"^4.0.3"},"devDependencies":{"chai":"^4.2.0","docco":"^0.7.0","eslint":"^5.16.0","eslint-config-airbnb-base":"^13.1.0","eslint-plugin-import":"^2.17.3","mocha":"^3.5.3","safe-publish-latest":"^1.1.2","uglify-js":"^2.7.3"},"license":"BSD-2-Clause","gitHead":"32716d65285c8834bae8eaaee7d3fb31d6f30df4","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.4.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"schleyfox","email":"ben@pixelmachine.org"},"dist":{"shasum":"0d2717ed06640d9ff48a2aebe8d13e39ef03518f","size":351342,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.4.0.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-polyglot_2.4.0_1568149789232_0.5704084650349388"},"_hasShrinkwrap":false,"publish_time":1568149789355,"_cnpm_publish_time":1568149789355,"_cnpmcore_publish_time":"2021-12-16T18:16:34.125Z"},"2.3.1":{"name":"node-polyglot","version":"2.3.1","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"prepublish":"safe-publish-latest","pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.3","has":"^1.0.3","string.prototype.trim":"^1.1.2","warning":"^4.0.3"},"devDependencies":{"chai":"^4.2.0","docco":"^0.7.0","eslint":"^5.16.0","eslint-config-airbnb-base":"^13.1.0","eslint-plugin-import":"^2.17.3","mocha":"^3.5.3","safe-publish-latest":"^1.1.2","uglify-js":"^2.7.3"},"license":"BSD-2-Clause","gitHead":"8187877d5fbcb2c4b803fa9ef4288ca5c38b28bb","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.3.1","_nodeVersion":"12.4.0","_npmVersion":"6.9.0","dist":{"shasum":"975e8ae4cd2c717c3aac50aebc1700655d1b0b1c","size":350858,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.3.1.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-polyglot_2.3.1_1561075125235_0.8942367998697383"},"_hasShrinkwrap":false,"publish_time":1561075125425,"_cnpm_publish_time":1561075125425,"_cnpmcore_publish_time":"2021-12-16T18:16:35.023Z"},"2.3.0":{"name":"node-polyglot","version":"2.3.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"prepublish":"safe-publish-latest","pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.3","has":"^1.0.3","string.prototype.trim":"^1.1.2","warning":"^4.0.1"},"devDependencies":{"chai":"^4.1.2","docco":"^0.7.0","eslint":"^4.19.1","eslint-config-airbnb-base":"^13.0.0","eslint-plugin-import":"^2.13.0","mocha":"^3.5.3","safe-publish-latest":"^1.1.1","uglify-js":"2.7.3"},"license":"BSD-2-Clause","gitHead":"6e3aacd5589a1f031c7931ad869c00312a1d936e","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.3.0","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"e97cc9354e87e648f04858647c6e3be38ad36ce1","size":350096,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.3.0.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-polyglot_2.3.0_1530571353650_0.629236975847387"},"_hasShrinkwrap":false,"publish_time":1530571353801,"_cnpm_publish_time":1530571353801,"_cnpmcore_publish_time":"2021-12-16T18:16:36.126Z"},"2.1.3":{"name":"node-polyglot","version":"2.1.3","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"prepublish":"safe-publish-latest","pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.2","has":"^1.0.1","string.prototype.trim":"^1.1.2","warning":"^3.0.0"},"devDependencies":{"chai":"^3.5.0","docco":"^0.7.0","eslint":"^3.9.1","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","mocha":"^3.1.2","should":"^11.1.1","uglify-js":"2.7.3"},"license":"BSD-2-Clause","gitHead":"759e3c4f29688065bf42d34f21208c928e29c8d4","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.1.3","_shasum":"f1fb75131de84ae2388d66a611943c6a07f67f68","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"f1fb75131de84ae2388d66a611943c6a07f67f68","size":347516,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.1.3.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/node-polyglot-2.1.3.tgz_1483688864948_0.04049336607567966"},"directories":{},"publish_time":1483688867197,"_hasShrinkwrap":false,"_cnpm_publish_time":1483688867197,"_cnpmcore_publish_time":"2021-12-16T18:16:36.708Z"},"2.2.2":{"name":"node-polyglot","version":"2.2.2","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"prepublish":"safe-publish-latest","pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.2","has":"^1.0.1","string.prototype.trim":"^1.1.2","warning":"^3.0.0"},"devDependencies":{"chai":"^3.5.0","docco":"^0.7.0","eslint":"^3.12.2","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","mocha":"^3.2.0","safe-publish-latest":"^1.1.1","should":"^11.1.2","uglify-js":"2.7.3"},"license":"BSD-2-Clause","gitHead":"bcd829f8b0a5a70846f790ac2f3c73da3feb8fef","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.2.2","_shasum":"1a3f76d7392f836ea0823836ede817e6ea6ec26c","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.4.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"1a3f76d7392f836ea0823836ede817e6ea6ec26c","size":348370,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.2.2.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/node-polyglot-2.2.2.tgz_1483687840546_0.0861222967505455"},"directories":{},"publish_time":1483687840776,"_hasShrinkwrap":false,"_cnpm_publish_time":1483687840776,"_cnpmcore_publish_time":"2021-12-16T18:16:37.415Z"},"2.2.1":{"name":"node-polyglot","version":"2.2.1","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.2","has":"^1.0.1","string.prototype.trim":"^1.1.2","warning":"^3.0.0"},"devDependencies":{"chai":"^3.5.0","docco":"^0.7.0","eslint":"^3.10.0","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","mocha":"^3.1.2","should":"^11.1.1","uglify-js":"2.7.3"},"license":"BSD-2-Clause","gitHead":"c0491ae6a15645b3c3e4e4ddad62b144dd513f8e","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.2.1","_shasum":"69a436911adc80ecd771645fa197e8924ef6c5cf","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"69a436911adc80ecd771645fa197e8924ef6c5cf","size":347912,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.2.1.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/node-polyglot-2.2.1.tgz_1479492710538_0.8995765040162951"},"directories":{},"publish_time":1479492710766,"_hasShrinkwrap":false,"_cnpm_publish_time":1479492710766,"_cnpmcore_publish_time":"2021-12-16T18:16:38.065Z"},"2.1.2":{"name":"node-polyglot","version":"2.1.2","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.2","has":"^1.0.1","string.prototype.trim":"^1.1.2","warning":"^3.0.0"},"devDependencies":{"chai":"^3.5.0","docco":"^0.7.0","eslint":"^3.9.1","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","mocha":"^3.1.2","should":"^11.1.1","uglify-js":"2.7.3"},"license":"BSD-2-Clause","gitHead":"d804c852f197a47b6f237af0db6c28a94c014d13","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.1.2","_shasum":"19fbb63a29e6819bf3e377db06aa50bf61a8f51c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"19fbb63a29e6819bf3e377db06aa50bf61a8f51c","size":347438,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.1.2.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/node-polyglot-2.1.2.tgz_1479492702675_0.2963053297717124"},"directories":{},"publish_time":1479492704801,"_hasShrinkwrap":false,"_cnpm_publish_time":1479492704801,"_cnpmcore_publish_time":"2021-12-16T18:16:38.865Z"},"2.2.0":{"name":"node-polyglot","version":"2.2.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.2","has":"^1.0.1","string.prototype.trim":"^1.1.2","warning":"^3.0.0"},"devDependencies":{"chai":"^3.5.0","docco":"^0.7.0","eslint":"^3.10.0","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","mocha":"^3.1.2","should":"^11.1.1","uglify-js":"2.7.3"},"license":"BSD-2-Clause","gitHead":"d1d8907bdc80fffd4f2f0e9331f447f9c68edeb3","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.2.0","_shasum":"5b49063f55516e8b25241ec815e02838564adb5e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"5b49063f55516e8b25241ec815e02838564adb5e","size":347859,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.2.0.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/node-polyglot-2.2.0.tgz_1479112540493_0.06471224641427398"},"directories":{},"publish_time":1479112542375,"_hasShrinkwrap":false,"_cnpm_publish_time":1479112542375,"_cnpmcore_publish_time":"2021-12-16T18:16:39.647Z"},"2.1.1":{"name":"node-polyglot","version":"2.1.1","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.2","has":"^1.0.1","string.prototype.trim":"^1.1.2","warning":"^3.0.0"},"devDependencies":{"chai":"^3.5.0","docco":"^0.7.0","eslint":"^3.9.1","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","mocha":"^3.1.2","should":"^11.1.1","uglify-js":"2.7.3"},"license":"BSD-2-Clause","gitHead":"a0c1b75ceb6433389b79e31567ab6e28a69879f9","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.1.1","_shasum":"2dea2479263930100b30c39cab892e227e618292","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"2dea2479263930100b30c39cab892e227e618292","size":347386,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.1.1.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/node-polyglot-2.1.1.tgz_1479110398638_0.8664311119355261"},"directories":{},"publish_time":1479110401030,"_hasShrinkwrap":false,"_cnpm_publish_time":1479110401030,"_cnpmcore_publish_time":"2021-12-16T18:16:40.186Z"},"2.1.0":{"name":"node-polyglot","version":"2.1.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"pretest":"npm run --silent lint","test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","lint":"eslint *.js test/*.js","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.2","has":"^1.0.1","string.prototype.trim":"^1.1.2","warning":"^3.0.0"},"devDependencies":{"chai":"^3.5.0","docco":"^0.7.0","eslint":"^3.9.1","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","mocha":"^3.1.2","should":"^11.1.1","uglify-js":"2.7.3"},"license":"BSD-2-Clause","gitHead":"2d06f0f9296461f89b80bff79d9a586fec32dca6","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.1.0","_shasum":"69e921f2c5bb778f5f4366e8548ffcaf9befa0af","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"69e921f2c5bb778f5f4366e8548ffcaf9befa0af","size":347329,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.1.0.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/node-polyglot-2.1.0.tgz_1478854976182_0.024950221879407763"},"directories":{},"publish_time":1478854976402,"_hasShrinkwrap":false,"_cnpm_publish_time":1478854976402,"_cnpmcore_publish_time":"2021-12-16T18:16:40.794Z"},"2.0.0":{"name":"node-polyglot","version":"2.0.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"npm run --silent tests-only","tests-only":"mocha test/*.js --reporter spec","docs":"docco -o docs/ index.js"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"dependencies":{"for-each":"^0.3.2","object.assign":"^4.0.3"},"devDependencies":{"chai":"^3.5.0","docco":"^0.7.0","mocha":"^2.4.5","should":"^8.3.0","uglify-js":"^2.6.2"},"license":"BSD-2-Clause","gitHead":"c2985d7fe94b884dd1deb9cc4532a165c70bbb44","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@2.0.0","_shasum":"b5b9f175bbc3063f948aba255311d5e19b84cb45","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"b5b9f175bbc3063f948aba255311d5e19b84cb45","size":345299,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-2.0.0.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/node-polyglot-2.0.0.tgz_1460012279800_0.4349320330657065"},"directories":{},"publish_time":1460012282694,"_hasShrinkwrap":false,"_cnpm_publish_time":1460012282694,"_cnpmcore_publish_time":"2021-12-16T18:16:41.347Z"},"1.0.0":{"name":"node-polyglot","version":"1.0.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"npm run tests-only","tests-only":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"^2.6.1","docco":"^0.7.0","mocha":"^2.3.4","should":"^7.1.1","coffee-script":"1.3.3"},"license":"BSD-2-Clause","gitHead":"4722ccd67f7ac5d72f4f45604b52ad27f51d0402","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@1.0.0","_shasum":"25b4d1d9d8eb02b48271c96000c4e6d366eef689","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"dist":{"shasum":"25b4d1d9d8eb02b48271c96000c4e6d366eef689","size":19830,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-1.0.0.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1448859541731,"_hasShrinkwrap":false,"_cnpm_publish_time":1448859541731,"_cnpmcore_publish_time":"2021-12-16T18:16:41.578Z"},"0.4.5":{"name":"node-polyglot","version":"0.4.5","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","should":"1.2.1","coffee-script":"1.3.3"},"license":"BSD-2-Clause","gitHead":"3a453228c8193a1d6c96e95cae249b4069b88f35","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@0.4.5","_shasum":"142b44120c2c8daed378b7093208a82ec2218020","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"airbnb","email":"jordan.harband+npm@airbnb.com"},"dist":{"shasum":"142b44120c2c8daed378b7093208a82ec2218020","size":19565,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.4.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.4.5.tgz"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1448847040436,"_hasShrinkwrap":false,"_cnpm_publish_time":1448847040436,"_cnpmcore_publish_time":"2021-12-16T18:16:42.048Z"},"0.4.4":{"name":"node-polyglot","version":"0.4.4","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","should":"1.2.1","coffee-script":"1.3.3"},"license":"BSD","gitHead":"9d3845583adb4b3a67fdc34b3c6e6aed53ce74ff","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@0.4.4","_shasum":"238b84a05867dcd1fbcdcf35edae00ac5106728e","_from":".","_npmVersion":"2.13.3","_nodeVersion":"0.12.2","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"dist":{"shasum":"238b84a05867dcd1fbcdcf35edae00ac5106728e","size":19221,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.4.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.4.4.tgz"},"directories":{},"publish_time":1445893478498,"_hasShrinkwrap":false,"_cnpm_publish_time":1445893478498,"_cnpmcore_publish_time":"2021-12-16T18:16:42.734Z"},"0.4.3":{"name":"node-polyglot","version":"0.4.3","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","should":"1.2.1","coffee-script":"1.3.3"},"license":"BSD","gitHead":"eec8d157a6e0147a6d698d4be50a92b7f91dd671","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js#readme","_id":"node-polyglot@0.4.3","_shasum":"6affdb812e10cbaf3ce8648871444a05a78c046e","_from":".","_npmVersion":"2.9.0","_nodeVersion":"0.12.2","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"dist":{"shasum":"6affdb812e10cbaf3ce8648871444a05a78c046e","size":18492,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.4.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.4.3.tgz"},"directories":{},"publish_time":1435346276937,"_hasShrinkwrap":false,"_cnpm_publish_time":1435346276937,"_cnpmcore_publish_time":"2021-12-16T18:16:42.978Z"},"0.4.1":{"name":"node-polyglot","version":"0.4.1","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","should":"1.2.1","coffee-script":"1.3.3"},"license":"BSD","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js","_id":"node-polyglot@0.4.1","dist":{"shasum":"ac14d656f55c5f6b36bde577302e77f78134e508","size":17927,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.4.1.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1405379139577,"_hasShrinkwrap":false,"_cnpm_publish_time":1405379139577,"_cnpmcore_publish_time":"2021-12-16T18:16:43.248Z"},"0.4.0":{"name":"node-polyglot","version":"0.4.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","should":"1.2.1","coffee-script":"1.3.3"},"license":"BSD","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"homepage":"https://github.com/airbnb/polyglot.js","_id":"node-polyglot@0.4.0","dist":{"shasum":"6df902cf1394b6ee0e2fcd1f90004bb63b23c4c5","size":17718,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.4.0.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1400781505750,"_hasShrinkwrap":false,"_cnpm_publish_time":1400781505750,"_cnpmcore_publish_time":"2021-12-16T18:16:43.620Z"},"0.3.0":{"name":"node-polyglot","version":"0.3.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","should":"1.2.1","coffee-script":"1.3.3"},"license":"BSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"_id":"node-polyglot@0.3.0","dist":{"shasum":"08677aa9412233bc0f122fddbc44f396d3ad169c","size":16670,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.3.0.tgz"},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1375818932317,"_hasShrinkwrap":false,"_cnpm_publish_time":1375818932317,"_cnpmcore_publish_time":"2021-12-16T18:16:43.833Z"},"0.2.2":{"name":"node-polyglot","version":"0.2.2","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","should":"1.2.1","coffee-script":"1.3.3"},"license":"BSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"_id":"node-polyglot@0.2.2","dist":{"shasum":"34f7ccb8443885f4c70655aa6a8ab3fee85b2f01","size":32700,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.2.2.tgz"},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1375728855218,"_hasShrinkwrap":false,"_cnpm_publish_time":1375728855218,"_cnpmcore_publish_time":"2021-12-16T18:16:44.050Z"},"0.2.1":{"name":"node-polyglot","version":"0.2.1","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","should":"1.2.1","coffee-script":"1.3.3"},"license":"BSD","readmeFilename":"README.md","_id":"node-polyglot@0.2.1","dist":{"shasum":"5be550392ad204773b72d377994ac620125e3414","size":32434,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.2.1.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1367516158757,"_hasShrinkwrap":false,"_cnpm_publish_time":1367516158757,"_cnpmcore_publish_time":"2021-12-16T18:16:44.313Z"},"0.2.0":{"name":"node-polyglot","version":"0.2.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","should":"1.2.1","coffee-script":"1.3.3"},"license":"BSD","_id":"node-polyglot@0.2.0","dist":{"shasum":"7adf8bf80e906f66344c1bd94ca854eccbdff137","size":31611,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.2.0.tgz"},"_npmVersion":"1.1.63","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1356057379620,"_hasShrinkwrap":false,"_cnpm_publish_time":1356057379620,"_cnpmcore_publish_time":"2021-12-16T18:16:44.572Z"},"0.1.0":{"name":"node-polyglot","version":"0.1.0","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script --require chai test/*.coffee --reporter spec"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","chai":"1.2.0","coffee-script":"1.3.3","handlebars":"1.0.7"},"license":"BSD","_id":"node-polyglot@0.1.0","dist":{"shasum":"ebe4285f8b42c6b520d17e87353fa793fa766f24","size":33764,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.1.0.tgz"},"_npmVersion":"1.1.63","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1354672736761,"_hasShrinkwrap":false,"_cnpm_publish_time":1354672736761,"_cnpmcore_publish_time":"2021-12-16T18:16:44.839Z"},"0.0.1":{"name":"node-polyglot","version":"0.0.1","description":"Give your JavaScript the ability to speak many languages.","main":"index.js","scripts":{"test":"mocha --compilers coffee:coffee-script --require chai test/*.coffee"},"repository":{"type":"git","url":"git://github.com/airbnb/polyglot.js.git"},"keywords":["i18n","internationalization","internationalisation","translation","interpolation","translate","polyglot"],"author":{"name":"Spike Brehm","email":"spike@airbnb.com"},"devDependencies":{"uglify-js":"1.3.3","docco":"0.4.0","mocha":"1.3.2","chai":"1.2.0","coffee-script":"1.3.3","handlebars":"1.0.7"},"license":"BSD","_id":"node-polyglot@0.0.1","dist":{"shasum":"2e06d279301844b0d35eaedf17f8eb40eb18a80d","size":28972,"noattachment":false,"key":"/node-polyglot/-/node-polyglot-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-polyglot/download/node-polyglot-0.0.1.tgz"},"_npmVersion":"1.1.63","_npmUser":{"name":"spikebrehm","email":"ocelot@gmail.com"},"maintainers":[{"name":"airbnbeng","email":"opensource@airbnb.com"},{"name":"brieb","email":""},{"name":"lencioni","email":"joe.lencioni@gmail.com"},{"name":"ljharb","email":""},{"name":"spikebrehm","email":"ocelot@gmail.com"}],"directories":{},"publish_time":1350350288706,"_hasShrinkwrap":false,"_cnpm_publish_time":1350350288706,"_cnpmcore_publish_time":"2021-12-16T18:16:45.081Z"}},"readme":"Polyglot.js\n===========\n\n[![Build Status][travis-image]][travis-url]\n\n[![Join the chat at https://gitter.im/airbnb/polyglot.js](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/airbnb/polyglot.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\nPolyglot.js is a tiny I18n helper library written in JavaScript, made to work both in the browser and in CommonJS environments (Node). It provides a simple solution for interpolation and pluralization, based off of Airbnb’s experience adding I18n functionality to its Backbone.js and Node apps. \n\nI18n is incredibly important for us at [Airbnb](https://www.airbnb.com/), as we have listings in 192 countries, and we translate our site into 30-odd different languages.\nWe’re also [hiring talented engineers](https://www.airbnb.com/jobs/departments/engineering) to help us scale up to meet the challenges of buliding a global marketplace.\n\nView the [documentation on Github](https://github.com/airbnb/polyglot.js).\n\nView the [annotated source](https://airbnb.io/polyglot.js/polyglot.html).\n\nPolylglot is agnostic to your translation backend. It doesn’t perform any translation; it simply gives you a way to manage translated phrases from your client- or server-side JavaScript application.\n\n## Installation\n\ninstall with [npm](https://npmjs.org):\n\n    $ npm install node-polyglot\n\n### Running the tests\n\nClone the repo, run `npm install`, and `npm test`.\n\n## Usage\n\n### Instantiation\n\nFirst, create an instance of the `Polyglot` class, which you will use for translation.\n\n```js\nvar polyglot = new Polyglot();\n```\n\nPolyglot is class-based so you can maintain different sets of phrases at the same time, possibly in different locales. This is very useful for example when serving requests with [Express](http://expressjs.com), because each request may have a different locale, and you don’t want concurrent requests to clobber each other’s phrases.\n\nSee [Options Overview](#options-overview) for information about the options object you can choose to pass to `new Polyglot`.\n\n### Translation\n\nTell Polyglot what to say by simply giving it a phrases object,\nwhere the key is the canonical name of the phrase and the value is\nthe already-translated string.\n\n```js\npolyglot.extend({\n  \"hello\": \"Hello\"\n});\n\npolyglot.t(\"hello\");\n=> \"Hello\"\n```\n\nYou can also pass a mapping at instantiation, using the key `phrases`:\n\n```js\nvar polyglot = new Polyglot({phrases: {\"hello\": \"Hello\"}});\n```\n\nPolyglot doesn’t do the translation for you. It’s up to you to give it\nthe proper phrases for the user’s locale.\n\nA common pattern is to gather a hash of phrases in your backend, and output\nthem in a `<script>` tag at the bottom of the document. For example, in Rails:\n\n`app/controllers/home_controller.rb`\n\n```ruby\ndef index\n  @phrases = {\n    \"home.login\" => I18n.t(\"home.login\"),\n    \"home.signup\" => I18n.t(\"home.signup\"),\n    ...\n  }\nend\n```\n\n`app/views/home/index.html.erb`\n\n```html\n<script>\n  var polyglot = new Polyglot({phrases: <%= raw @phrases.to_json %>});\n</script>\n```\n\nAnd now you can utilize i.e. `polyglot.t(\"home.login\")` in your JavaScript application\nor Handlebars templates.\n\n### Interpolation\n\n`Polyglot.t()` also provides interpolation. Pass an object with key-value pairs of\ninterpolation arguments as the second parameter.\n\n```js\npolyglot.extend({\n  \"hello_name\": \"Hola, %{name}.\"\n});\n\npolyglot.t(\"hello_name\", {name: \"DeNiro\"});\n=> \"Hola, DeNiro.\"\n```\n\nPolyglot also supports nested phrase objects.\n\n```js\npolyglot.extend({\n  \"nav\": {\n    \"hello\": \"Hello\",\n    \"hello_name\": \"Hello, %{name}\",\n    \"sidebar\": {\n      \"welcome\": \"Welcome\"\n    }\n  }\n});\n\npolyglot.t(\"nav.sidebar.welcome\");\n=> \"Welcome\"\n```\n\nThe substitution variable syntax is customizable.\n\n```js\nvar polyglot = new Polyglot({\n  phrases: {\n    \"hello_name\": \"Hola {{name}}\"\n  },\n  interpolation: {prefix: '{{', suffix: '}}'}\n});\n\npolyglot.t(\"hello_name\", {name: \"DeNiro\"});\n=> \"Hola, DeNiro.\"\n```\n\n### Pluralization\n\nFor pluralization to work properly, you need to tell Polyglot what the current locale is. You can use `polyglot.locale(\"fr\")` to set the locale to, for example, French. This method is also a getter:\n\n```js\npolyglot.locale()\n=> \"fr\"\n```\n\nYou can also pass this in during instantiation.\n\n```js\nvar polyglot = new Polyglot({locale: \"fr\"});\n```\n\nCurrently, the _only_ thing that Polyglot uses this locale setting for is pluralization.\n\nPolyglot provides a very basic pattern for providing pluralization based on a single string that contains all plural forms for a given phrase. Because various languages have different nominal forms for zero, one, and multiple, and because the noun can be before or after the count, we have to be overly explicit about the possible phrases.\n\nTo get a pluralized phrase, still use `polyglot.t()` but use a specially-formatted phrase string that separates the plural forms by the delimiter `||||`, or four vertical pipe characters.\n\nFor pluralizing \"car\" in English, Polyglot assumes you have a phrase of the form:\n\n```js\npolyglot.extend({\n  \"num_cars\": \"%{smart_count} car |||| %{smart_count} cars\",\n});\n```\nPlease keep in mind that `smart_count` is required. No other option name is taken into account to transform pluralization strings.\n\nIn English (and German, Spanish, Italian, and a few others) there are only two plural forms: singular and not-singular.\n\nSome languages get a bit more complicated. In Czech, there are three separate forms: 1, 2 through 4, and 5 and up. Russian is even more involved.\n\n```js\nvar polyglot = new Polyglot({locale: \"cs\"}); // Czech\npolyglot.extend({\n  \"num_foxes\": \"Mám %{smart_count} lišku |||| Mám %{smart_count} lišky |||| Mám %{smart_count} lišek\"\n})\n```\n\n`polyglot.t()` will choose the appropriate phrase based on the provided `smart_count` option, whose value is a number.\n\n```js\npolyglot.t(\"num_cars\", {smart_count: 0});\n=> \"0 cars\"\n\npolyglot.t(\"num_cars\", {smart_count: 1});\n=> \"1 car\"\n\npolyglot.t(\"num_cars\", {smart_count: 2});\n=> \"2 cars\"\n```\n\nAs a shortcut, you can also pass a number to the second parameter:\n\n```js\npolyglot.t(\"num_cars\", 2);\n=> \"2 cars\"\n```\n\n#### Custom Pluralization Rules\n\nPolyglot provides some default pluralization rules for some locales. You can specify a different set of rules through the `pluralRules` constructor param.\n\n```js\nvar polyglot = new Polyglot({\n  pluralRules: {\n    pluralTypes: {\n      germanLike: function (n) {\n        // is 1\n        if (n === 1) {\n          return 0;\n        }\n        // everything else\n        return 1;\n      },\n      frenchLike: function (n) {\n        // is 0 or 1\n        if (n <= 1) {\n          return 0;\n        }\n        // everything else\n        return 1;\n      }\n    },\n    pluralTypeToLanguages: {\n      germanLike: ['de', 'en', 'xh', 'zu'],\n      frenchLike: ['fr', 'hy']\n    }\n  }\n});\n```\n\nThis can be useful to support locales that polyglot does not support by default or to change the rule definitions.\n\n## Public Instance Methods\n\n### Polyglot.prototype.t(key, interpolationOptions)\n\nThe most-used method. Provide a key, and `t()` will return the phrase.\n\n```\npolyglot.t(\"hello\");\n=> \"Hello\"\n```\n\nThe phrase value is provided first by a call to `polyglot.extend()` or `polyglot.replace()`.\n\nPass in an object as the second argument to perform interpolation.\n\n```\npolyglot.t(\"hello_name\", {name: \"Spike\"});\n=> \"Hello, Spike\"\n```\n\nPass a number as the second argument as a shortcut to `smart_count`:\n\n```js\n// same as: polyglot.t(\"car\", {smart_count: 2});\npolyglot.t(\"car\", 2);\n=> \"2 cars\"\n```\n\nIf you like, you can provide a default value in case the phrase is missing.\nUse the special option key \"_\" to specify a default.\n\n```js\npolyglot.t(\"i_like_to_write_in_language\", {\n  _: \"I like to write in %{language}.\",\n  language: \"JavaScript\"\n});\n=> \"I like to write in JavaScript.\"\n```\n\n### Polyglot.prototype.extend(phrases)\n\nUse `extend` to tell Polyglot how to translate a given key.\n\n```js\npolyglot.extend({\n  \"hello\": \"Hello\",\n  \"hello_name\": \"Hello, %{name}\"\n});\n```\n\nThe key can be any string. Feel free to call `extend` multiple times; it will override any phrases with the same key, but leave existing phrases untouched.\n\n### Polyglot.prototype.unset(keyOrObject)\nUse `unset` to selectively remove keys from a polyglot instance.\n`unset` accepts one argument: either a single string key, or an object whose keys are string keys, and whose values are ignored unless they are nested objects (in the same format).\n\nExample:\n```js\npolyglot.unset('some_key');\npolyglot.unset({\n  hello: 'Hello',\n  hello_name: 'Hello, %{name}',\n  foo: {\n    bar: 'This phrase’s key is \"foo.bar\"'\n  }\n});\n```\n\n### Polyglot.prototype.locale([localeToSet])\n\nGet or set the locale (also can be set using the [constructor option](#options-overview), which is used only for pluralization.\nIf a truthy value is provided, it will set the locale. Afterwards, it will return it.\n\n### Polyglot.prototype.clear()\n\nClears all phrases. Useful for special cases, such as freeing up memory if you have lots of phrases but no longer need to perform any translation. Also used internally by `replace`.\n\n\n### Polyglot.prototype.replace(phrases)\n\nCompletely replace the existing phrases with a new set of phrases.\nNormally, just use `extend` to add more phrases, but under certain circumstances, you may want to make sure no old phrases are lying around.\n\n### Polyglot.prototype.has(key)\n\nReturns `true` if the key does exist in the provided phrases, otherwise it will return `false`.\n\n## Public Static Methods\n\n### transformPhrase(phrase[, substitutions[, locale]])\n\nTakes a phrase string and transforms it by choosing the correct plural form and interpolating it. This method is used internally by [t](#polyglotprototypetkey-interpolationoptions).\nThe correct plural form is selected if substitutions.smart_count is set.\nYou can pass in a number instead of an Object as `substitutions` as a shortcut for `smart_count`.\nYou should pass in a third argument, the locale, to specify the correct plural type. It defaults to `'en'` which has 2 plural forms.\n\n## Options Overview\n`new Polyglot` accepts a number of options:\n\n - `phrases`: a key/value map of translated phrases. See [Translation](https://github.com/airbnb/polyglot.js#translation).\n - `locale`: a string describing the locale (language and region) of the translation, to apply pluralization rules. see [Pluralization](#pluralization)\n - `allowMissing`: a boolean to control whether missing keys in a `t` call are allowed. If `false`, by default, a missing key is returned and a warning is issued.\n - `onMissingKey`: if `allowMissing` is `true`, and this option is a function, then it will be called instead of the default functionality. Arguments passed to it are `key`, `options`, and `locale`. The return of this function will be used as a translation fallback when `polyglot.t('missing.key')` is called (hint: return the key).\n - `interpolation`: an object to change the substitution syntax for interpolation by setting the `prefix` and `suffix` fields.\n - `pluralRules`: an object of `pluralTypes` and `pluralTypeToLanguages` to control pluralization logic.\n\n\n## [History](CHANGELOG.md)\n\n[travis-image]: https://travis-ci.org/airbnb/polyglot.js.svg\n[travis-url]: https://travis-ci.org/airbnb/polyglot.js\n\n## Related projects\n\n- [i18n-extract](https://github.com/oliviertassinari/i18n-extract): Manage localization with static analysis. (E.g. key usage extraction)\n","_attachments":{},"homepage":"https://github.com/airbnb/polyglot.js#readme","bugs":{"url":"https://github.com/airbnb/polyglot.js/issues"},"license":"BSD-2-Clause"}