{"_id":"beyo-i18n","_rev":"39-34cc6c4a2076d5958b8daecfdd1640f1","name":"beyo-i18n","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","dist-tags":{"latest":"0.2.3"},"versions":{"0.0.1-dev":{"name":"beyo-i18n","version":"0.0.1-dev","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"lib/index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["i18n","plural","substitution","translate","translation","multilanguage"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","dependencies":{},"devDependencies":{"semicov":"*","should":"~1.2.2","mocha":"~1.8.2"},"_id":"beyo-i18n@0.0.1-dev","dist":{"shasum":"d45193cce3e2b300c38c98140a47097fa1266b78","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.0.1-dev.tgz","integrity":"sha512-NAgfYOnLbUjvLWs9C9PQY+NlApry6fgO8OJxMlEJOcWp/3e/isOE/Tp10cOFCD4H4prey1OrzbtExO5ZQshZ6g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWYiZCVKzC6VLDit16eZIsuAdW7CDqKivldWmxVl+gugIhAN7Cfq2C91J/0pessIncC+vRagP41+sWrXsJpnNEcC7s"}]},"_from":"./","_npmVersion":"1.3.24","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.2-dev":{"name":"beyo-i18n","version":"0.0.2-dev","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"lib/index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","subtitution","translate","translation","multilanguage"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","dependencies":{},"devDependencies":{"semicov":"*","should":"~1.2.2","mocha":"~1.8.2"},"_id":"beyo-i18n@0.0.2-dev","dist":{"shasum":"db96eb9903c24ecc962e8192f575a3c5387b1690","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.0.2-dev.tgz","integrity":"sha512-Qq0CwWIMMstk35FlWW4iq8E4Qs2yLwBK5sXBDMrMZaw4L+QnPmJfpqGEmGM7NMBdX0BAZ846uoTO8OIs+n4eew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICE8zG7c//8b73HpsvTYX/DYLJyjTF02VoffxKrTjdYmAiBvm7txMTRYU5L+mroXz5tFC9kHIQf9OsxZF9aGhPfvIg=="}]},"_from":"./","_npmVersion":"1.3.21","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.3-dev":{"name":"beyo-i18n","version":"0.0.3-dev","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"lib/index.js","scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","subtitution","translate","translation","multilanguage"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","dependencies":{},"devDependencies":{"semicov":"*","should":"~1.2.2","mocha":"~1.8.2"},"_id":"beyo-i18n@0.0.3-dev","dist":{"shasum":"524a2a463f31582cfd5471c7764504daaed5514b","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.0.3-dev.tgz","integrity":"sha512-JN0c6W3e0ZeektrVkyg6q5T51gpHa9PiCvxnCpkyB+Qm1OebzwDbiF+M4FNKIoo+Z4FcFPXY2ipdymgoKfYn1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAYIaNWxq82xQrviCnAe2jr9zdpzefA9Qgp4T8NZnRrQIgGVOweSmJJf9bsdcQNpxjBRDfk01E1uWIU9t4dyns1eA="}]},"_from":"./","_npmVersion":"1.3.21","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.4-dev":{"name":"beyo-i18n","version":"0.0.4-dev","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"lib/index.js","scripts":{"test":"mocha --harmony"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.0.4-dev","dist":{"shasum":"bf1dcc7dcf53769c5f2de78dc9cd823291974ad3","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.0.4-dev.tgz","integrity":"sha512-eeO1yCcBlr07go+qjehS+Ui0uNdZaARzTqBJFA7Ml5etRR8gZ4JxgcYqboWOVQ5iCPN9MTQ6Lt95R5BpwIaqdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4vWeqVaNPjBBwc+y6gMVWKZrDL+eahFNj1MZwMJCqowIgOOLee84CH70ua9dlQf/8T9H1taAcWzstUMpdn75JSbM="}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.0":{"name":"beyo-i18n","version":"0.1.0","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"lib/index.js","scripts":{"test":"mocha --harmony"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.1.0","dist":{"shasum":"571605d973ec6a0ca33b40a7f09f1d6fd87eadc8","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.1.0.tgz","integrity":"sha512-OUqwlju7NfRgrBYJKik0vEanE7HKfmYOdUuwklVpDNhY47v0Rhak/6cPGiqykl5zw6Upx9NYSdhfgmUj3Ou7ew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDvabruat9hIOEJYbO5gnmXgYTEe2Kn+dDWam7GV86/hAiBwCYTA58NvsNSa+/gjgLkNHWFrq6Hble8kng+sw91Qyg=="}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.1":{"name":"beyo-i18n","version":"0.1.1","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"lib/index.js","scripts":{"test":"mocha --harmony"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.1.1","dist":{"shasum":"d693972bcc9020ac24308ca6d00dfa9fbf0a4b19","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.1.1.tgz","integrity":"sha512-s9+ozZTEZGuwTnstjGxNPG1Va+/Lk2Qu/Y0sO2KsQFCeN1tOe7Ypv3ed8zMYk684PqIheOJS6GFQNnZ0IC2FKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDThE62I3GjFjHwufaIrXMTwhA9pPwT73wJEyHyFLwgMAIhAKP/DEfGOoRMtRhp5OtVfH3+6ZbrBcEfj3UznC03KmTo"}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.4":{"name":"beyo-i18n","version":"0.1.4","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"./lib/index.js","scripts":{"test":"mocha --harmony"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.1.4","dist":{"shasum":"77938fde8230e463384322cc30837076cb4a432b","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.1.4.tgz","integrity":"sha512-VM35q3jOYuDZ2vgUmfNKAy0O6XE5ReQe5wWFhUechGXbVBTh9oWyA0eoH31FfZQ3s+Gcx0DaL94it7XCh22lTA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgSo6v5G92hOEWOlVhh17JMZ2y70fNKV3z5Va36OH3EAIhAL+srGLh0rEw6kPS4Kt664LRJlsx9XbSFLLBmsBlav5L"}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5":{"name":"beyo-i18n","version":"0.1.5","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"./lib/index.js","scripts":{"test":"mocha --harmony"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.1.5","dist":{"shasum":"2d6417245d98ba1049fc279f34eda935e8fe1ab9","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.1.5.tgz","integrity":"sha512-H7whXY4dsX3q9mGpdhUuG74+Ll/RavzqEyNRiqECYSE4qGNG8WOC1wriGectZa2vuv96vI3DVl8F2XUV6tyoAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGDfOPU/HiogxETXvshIgO7Ky0Y3Rfpr9PjmLCl43ZxGAiEA5ZBROmyRNANmFNX4uXIdMJvHb1KqROVnnzNG+XqYAkw="}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6":{"name":"beyo-i18n","version":"0.1.6","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"./lib/index.js","scripts":{"test":"mocha --harmony"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.1.6","dist":{"shasum":"f778016159c8ca755d6a63badc5f642c46dcf771","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.1.6.tgz","integrity":"sha512-dzdp3Sg6Uibdi9+oiYFtF+XRCx4fuvBoLN7yC+hU+ofc2hxwJQsK4g6UE8Zyndg9oUSl0ZFcTDrppOy7xZtv1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAkb2FZ9YZTvh2zJkHYU4WfUs80iarPPZpHDmDjILhh2AiAoSUizCvLu7aMj+cFB0xnvhl4pHJ1T/sT1XS8KMQuDGQ=="}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7":{"name":"beyo-i18n","version":"0.1.7","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"./lib/index.js","scripts":{"test":"mocha --harmony"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.1.7","dist":{"shasum":"177d00a4c289661180e2c84e602024afce6ad256","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.1.7.tgz","integrity":"sha512-nV1OuDkbiRT+hS1allMBRBt1V8foM4YQUF04aeWggtTEIRx6SB6fT2DD4Qkc1oSLHa0GecPiT8gpMUFjXKXM3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGyiSNE2DTMsRm0ON+IPnZuGP5rxGseS6A1zYzvNdr0UAiAqXd0GJxKisiyFrdOqOjGSBq3ro/oHJfqg5APjSF8MzQ=="}]},"_from":".","_npmVersion":"1.3.25","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.8":{"name":"beyo-i18n","version":"0.1.8","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"./lib/index.js","scripts":{"test":"mocha --harmony"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.1.8","dist":{"shasum":"2aa6e10b2ebdc64b062050c4da03b5574055627b","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.1.8.tgz","integrity":"sha512-RTaM5B3u3pum6Ip9OrY3YK0RdkVUv7eUc/9anIZ+kzk4kIJBoLpqvKY5BNf/wZPb9owj3B9wt7Ahou9XYB4H/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICbla2afe9MAThClN+lu3t9E14nAyYw45bYDl9syDFT0AiEAqHAYnDUBaWjq5I7WpfeAx/aUp/3q86J//QGzeYaxu78="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.2.0":{"name":"beyo-i18n","version":"0.2.0","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"./lib/index.js","scripts":{"test":"mocha --harmony"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.2.0","dist":{"shasum":"07b462a7175cc6a61e4f21ea2b3a1cbdc0fa2183","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.2.0.tgz","integrity":"sha512-CZ7ibW9gYO+aQdzTbKhDbDCaDqSgw4BQqcOkdJylZqxBOLnmZPcNTFf8A2gCGHVenF6zDg9m8M6fU+Xj4K3kZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2R1dfd4UPFdZrbD/12cjfPHCm7XlI5tsyUt8ZoysdWwIgJZ2wRBvOi2VEgkMW4xEKsKO+6M+BaBdjdx09dXLvEwA="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.2.1":{"name":"beyo-i18n","version":"0.2.1","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"./lib/index.js","scripts":{"test":"mocha --harmony"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"semicov":"latest","should":"latest","mocha":"latest","tmp":"latest","co-mocha":"latest","q":"latest"},"dependencies":{"co":"latest","co-fs":"latest"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.2.1","dist":{"shasum":"9d4ce7233403bec947bda78baaf2206f5e8dbfb0","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.2.1.tgz","integrity":"sha512-HuryJggSjrUWlve3M+H3UKurC3+3Fpbt9Comr/VoDx8aGrLTCBrsJp9xU4inRKF+xGpgHYl31EDa+z8d8GrOOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqbTSP7/0Sdq8E8NlEA2tyDx6M6RkwuFIQDiFpX3c4QgIhAMy5HMvNGIIKJhwZtaHPJiCANMMhAO/rmDJHSHP7xeSj"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.2.2":{"name":"beyo-i18n","version":"0.2.2","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"./lib/index.js","scripts":{"test":"mocha --harmony"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"tmp":"0.0.23","q":"^1.0.1","semicov":"^0.1.1-2","should":"^3.1.4","mocha":"^1.18.2","co-mocha":"0.0.2"},"dependencies":{"co-glob":"0.0.1","co":"^3.0.5"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.2.2","dist":{"shasum":"f787c2f7a047dc0fb5695a7119cea4deca675ec7","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.2.2.tgz","integrity":"sha512-hR13NfhRg1ikbFBl6SiG4ntmsCBEDYbk9tKJ+y96ndXXI5wRjRce31QrUtfBMGEOoAMLS86ZXnaRTtPq/5UBNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGB/dbxxra+v3F5ESZ/sLthv+9O+y0WQviwe3nChL6IZAiEA79Aoue6pP053ekATSQeo4dl2hgEkavXb/ldb/uu9o78="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.2.3":{"name":"beyo-i18n","version":"0.2.3","description":"Internationalisation module for Node.js with plural forms and paramater subtitutions.","main":"./lib/index.js","scripts":{"test":"mocha --harmony"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beyo/i18n/issues"},"homepage":"https://github.com/beyo/i18n","devDependencies":{"tmp":"0.0.23","q":"^1.0.1","semicov":"^0.1.1-2","should":"^3.1.4","mocha":"^1.18.2","co-mocha":"0.0.2"},"dependencies":{"co-glob":"0.0.1","co":"^3.0.5"},"engines":{"node":">= 0.11.9"},"_id":"beyo-i18n@0.2.3","dist":{"shasum":"fd697c8ca1cc5d4dfc22984d7795f656a615b0cd","tarball":"https://registry.npmjs.org/beyo-i18n/-/beyo-i18n-0.2.3.tgz","integrity":"sha512-ptrNbVufCmqgcib0ccPvnneLJSg3RHkb11R3A6efz8ppibYhh8vFRtot5evPSh8hrImGDVcVog43r2TN6Wcr3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8pHMcCzUGAQ3WYOyImVQaNTFP4GKt9z8EVHkAuVjx+wIgLyJwpmapvg5EGxKqwCqHzvYknIA4A/HRHg5qDHYPpxE="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"yanickrochon","email":"yanick.rochon@gmail.com"},"maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"readme":"## Beyo i18n\n\n[![Build Status](https://travis-ci.org/beyo/i18n.png)](https://travis-ci.org/beyo/i18n)\n[![Stories in Ready](http://badge.waffle.io/beyo/i18n.png)](http://waffle.io/beyo/i18n)\n\n[![NPM](https://nodei.co/npm/beyo-i18n.png?compact=true)](https://nodei.co/npm/beyo-i18n/)\n\nInternationalisation module for Node.js with plural forms and paramater subtitutions.\n\nSo, why another i18n module? Because I wanted a module which was not dependant or bloated\nwith unnecessary dependencies or features. I wanted a module that was standalone and asychronous.\nI wanted a module that followed standards. I wanted it to be easily extended.\n\n\n## Installation\n\n```\nnpm install beyo-i18n\n```\n\n\n## Features\n\n* Asynchronous API through generator functions [`co`](https://github.com/visionmedia/co) compatible.\n* Autoloading localization strings via various loaders (see [Loaders](#loaders)).\n* Global translator and instance translators.\n* Fallback to default locale per translator.\n* Automatically handling plural forms in a variety of different languages (see [Supported locales](#supported-locales)).\n* Automatically handling gender forms (locale agnostic).\n* Message token subtitution during translation.\n* Translators emit events.\n* Possibility to override just about anything.\n* Frozen objects with validations across all setters\n* Fully tested with a target of 100% coverage.\n* Well structured code.\n\n\n## Usage\n\n```javascript\n// Note : calling 'init' is optional\nvar i18n = require('beyo-i18n').init(options);\n\nco(function * () {\n  var options = {\n    locale: 'fr',       // set the locale to use to translate\n    data: {\n      person: {\n        firstname: 'John',\n        lastname: 'Smith',\n        //...\n      },\n      //...\n    }\n  };\n\n  yield i18n.translate(\"Hello {{person.firstname}}!\", options);\n  // -> \"Bonjour John !\"\n})();\n```\n\n\n## Translator\n\nThe module offers two ways to use a translator.\n\n1. **A global translator**. Accessed via `i18n.getGlobalTranslator()`, this instance can only\nbe created, or initialized, by calling `i18n.init(options)` where `options` is an object\ncontaining the translator's configuration. It should be noted that any translator events\nhooked to the global translator are persistent at all times. This does not apply for custom\nevents. (See [Translator Events](#translator-events).)\n2. **Private translators**. Accessed via `i18n.Translator`, a constructor function, these\ninstances are not managed by the module and offer a way to load custom translation strings.\nFor example, on a module application, each module might have their own custom, independant,\ntranslator instance.\n\n\n### Translator Configuration\n\nWhile the module does not require initialization, a project may require to\ncustomize some of the features. By default, the i18n module will load all\nit's available locale specifications and will not contain any translation\nstrings.\n\n* **defaultLocale** *{String}* : The default locale to use when translating a message\nand no locale is provided. This setting is global! And you cannot set a locale that\nis not available. An invalid locale will throw an exception. All available locales are\nlisted in the `i18n.plurals.getLanguages()`'s returned object. *(Default: `'en'`)*\n\n* **defaultGender** *{String}* : The default gender to use when translating a message\nand no gender is provided. A gender must be one of these values : `\"m\"`, `\"f\"`, and `\"n\"`.\n*(Default: `'n'`)*\n\n* **subtitutionPattern** *{Regex|String}* : The subtitution pattern to recognize the\ntokens in a translatation message. While this value may be a string, it very much should\nbe a regular expression for things to work properly. *(Default: `/\\{\\{([\\w.]+)\\}\\}/g`)*\n\n* **locales** *{mixed}* : The given value will be passed to the `load` method when\ninitializing the translator. The value may be of type `String`, `Array` or `Object`.\n*(Default: `null`)* **Note**: `Object`s may not be handled at this time by any loader.\n\n  For example :\n\n  ```javascript\n  var localesDir  = 'path/to/lc_locales';\n  // or\n  var localesFiles = [ 'path/to/en.json', 'path/to/fr.json', ... ];\n  ```\n\n\n### Translate Options\n\nWhen translating messages, the translator will try to guess as best as it can, however to\nmanually specify the behaviour (gender, plural, etc.), and to provide data in strings, then\nit can be done via the `options` argument.\n\n```javascript\nvar text = yield translator.translate(untranslatedString, options);\n```\n\n* **locale** *{String}* : the locale to use. By default, the translator will take it's default\nlocale. This options will override it. The value must be a valid locale or an error will be thrown.\n* **gender** *{String}* : the gender to use. By default, the translator will use it's default gender.\nThis can be overridden to provide a specific gender. (See [Gender Rules](#language-gender-rules).)\n* **plurality** *{Number}* : plural rules are language specific, and cannot be overridden per se,\nbut omitting this option will use the default (`other`) plural rules automatically. The value\nshould be numeric.\n* **data** *{Object}* : an object to pass to the parser when replacing tokens in the translated\nstrings. A missing token will be replaced by an empty string (`''`). The `data` must be a\nrecursive object when keys like `foo.bar.buz` are provided (ex: `{ foo: { bar: { buz: 'hey!' } } }`).\n\n\n### Translator Events\n\nAll translators emit events. These may be used to extend a translator, or to monitor it's\nactivity.\n\n* **initialized** *(no argument)* : fired only once after the translator is done initializing.\n* **defaultLocaleChanged** *(Object)* : fired when the translator's default locale is changed.\nThe listener will receive one argument; an object, for example : `{ previousValue: 'en' }`.\n* **defaultGenderChanged** *(Object)* : fired when the translator's default gender is changed.\nThe listener will receive one argument; an object, for example : `{ previousValue: 'n' }`.\n* **localeLoaded** *(Object)* : fired whenever a locale is loaded into the translator. This is\nhandy when extending locale loaders. The listener will receive one argument; an object, for\nexample : `{ locale: 'en', loader: [Object] }` (see [Loaders](#loaders)).\n* **translation** *(Object)* : fired whenever a string is translated. The listener will\nreceive one argument; an object, for example : `{ locale: 'fr', originalMessage: 'Hello!',\ntranslatedMessage: 'Bonjour!', options: null }` where the `options` are the actual object\npassed to the `translate` function. **Note**: replacing `translatedMessage`'s value will\nresult in changing the translation's returned string!\n\n\n### Translator API\n\nThe translator's public API is very simplistic and does not allow external modification of\nthe instance. Overriding any property will be ignored. Since the `Translator` class inherits\nfrom `EventEmitter`, it has the same functionality.\n\n* **defaultLocale** *{String}* *{get|set}* : the default locale for the translator.\n* **defaultGender** *{String}* *{get|set}* : the default gender for the translator.\n* **load** *{GeneratorFunction}* : load some locales. This is the same as specifying `locales` to\nthe class' constructor. (See [Translator Configuration](#translator-configuration)\n* **loadedLocales** *{Array}* *{get}* : returns an array containing all the locales loaded\ninto which messages can be translated.\n* **translate** *{GeneratorFunction}* : the translate message method.\n\n\n## Language Plural Rules\n\nThis module follows the guideline found in the Unicode CLDR Charts on\n[Language Plural Rules](http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html).\nThiss standard is also respected by [gettext](http://www.gnu.org/software/gettext/) and\n[Mozilla](https://developer.mozilla.org/en/docs/Localization_and_Plurals).\n\nHowever, because this module exposes the messages contained in a locale catalog, the\nplurality indexes are converted into human-readable object properties. The benefit of using\nobjects instead of arrays (as for gettext) is that any plural form may be omitted without\nhaving unnecessary null elements in memory.\n\nAlso, an important information to know is that the actual \"meaning\" of every property is\nlanguage dependant! See the [language specifications](#language-specifications) for more\ninformation.\n\n* `'zero'` : Depending on the language; where there's nothing.\n* `'one'` : Depending on the language; where there's an unicity in number.\n* `'two'` : Depending on the language; where there's a pair.\n* `'few'` : Depending on the language; where there's a small amount.\n* `'many'` : Depending on the language; where there's a fairly large amount.\n* `'other'` *(default)* : Any other specification goes here. This is the default langauge key; where\nwe may find fractions, negative or otherwise unspecified or very large numbers. For any\ntranslation, this should always be specified at all times. This is also the fallback\ntranslation in case other language keys or not defined.\n\n**Note**: see `const.js` for more constants, also accessible via `i18n.const`.\n\n**Note**: gettext make use of translations like this :\n\n```text\nmsgid \"One file removed\"\nmsgid_plural \"%d files removed\"\nmsgstr[0] \"%d slika je uklonjena\"\nmsgstr[1] \"%d datoteke uklonjenih\"\nmsgstr[2] \"%d slika uklonjenih\"\n```\n\nwhich is not necessary. In your application, if using plurality, only provide the plural\nform to translate (`msgid_plural`). If the `msgid` does not exist, it's not a bigger deal\nto display a plural string for a singular count.\n\nNaturally, messages are not required to have a plural form, and may very well be specified as\na `string` (like in the example above). Plural forms and non plural forms may be mixed for any\ngiven translation messages.\n\n### Language Specifications\n\nAll supported locales can be fetched via `require('beyo-i18n').plurals`. Apart from being a\ncallable function to retrieve the plurality key for a given local and n, the `plurals` object\nalso exposes the following API functionalities :\n\n* **isValid(locale)** *:{Boolean}* : returns true if and only if the following locale resolves to\na plural rule.\n* **getLanguages()** *{Object}* : returns an `Object` whose keys are the various available locales\nand the values are the associated language english names.\n* **getRule(locale)** *{Object}* : returns an `Object` of the specified locale's plurality rules.\nIf the locale is invalide, `undefined` is returned.\n* **setRule(locale, rule)** : sets the given locale's plurality rules. If the rele already exists,\nit will override the previous value.\n\nExample :\n\n```javascript\nvar C = require('beyo-i18').const;\nvar plurals = require('beyo-i18n').plurals;\n\n// fr.js\nvar frCA_plural = {\n  languageName: \"French (Canadian)\",\n  nplurals: [ C.PLURAL_ONE, C.PLURAL_OTHER ],\n  plural: function (n) { return (n > 1) ? 1 : 0; }\n};\n\nplurals.isValid('fr-CA');               // -> true\nplurals.getRule('fr-CA').languageName;  // -> \"French\"\n\nplurals.setRule('fr-CA', frCA_plural);\n\nplurals.isValid('fr-CA');               // -> true\nplurals.getRule('fr-CA').languageName;  // -> \"French (Canadian)\"\n\n```\n\nAll keys must be defined (i.e. `languageName`, `nplurals`, and `plural`) or an errror will be thrown.\n\n\n## Language Gender Rules\n\nSome loaders will enable gender specifications when loading locales content. These\ngender rules *must* be loaded inside a plural rule. If no plural rule applies, use the \"other\" (`'*'`) plural rule. For example :\n\n```javascript\n{\n  \"Restrooms\" : {\n    \"other\": {\n      \"n\": \"Restrooms\",\n      \"m\": \"Men's rooms\",\n      \"f\": \"Ladies' rooms\"\n    }\n  }\n}\n```\n\nA gender key must be one of the following values (case sensitive) : `'m'` for male, `'f'` for female, and `'n'` for neutral.\n\n\n## Loaders\n\nLoaders allow an abstraction layer while accessing locale messages. The loader should be a\n`GeneratorFunction` receiving only one argument and should return `false` if the argument\ncannot be handled, or an `Object` containing the locale information and messages. This\nobject should propose at least these following methods.\n\n* **locale** *{string}*\n* **contains** *{GeneratorFunction}*\n* **get** *{GeneratorFunction}*\n* **forEach** *{Function}*\n\nThe returned value for a call to `get` should be one of the following :\n\n* `\"Some simple string.\"`\n* `{ \"one\": \"Non plural string\", \"other\": \"Default (plural) string\" }`\n* `{ \"other\": { \"m\": \"Male gender\", \"f\": \"Female gender\", \"n\": \"Neutral gender\" } }`\n\nAnd any combination of these values.\n\n\n### List of available (or soon to be) adapters\n\n* **json** : standard JavaScript Object adapter. Use Node.js' `require` functionality to\nimport modules. The locale is determined from the filename, therefore the file should be\nnamed like `en.js` for English, `fr.js` for French, and so on. The files may as well be\nJSON files (i.e. `es.json`). It's very fast as it's parsed by the engine thus is already\nan `Object`.\n\n* **gettext** : *not implemented*\n\n\n## Supported locales\n\nThis module supports over 191 different locales. Not all of them are fully tested, and\ncontributions are welcome on this subject (i.e. plural rules). See the [plural rules](lib/plurals/index.js)\nfile for more information on all supported locales.\n\n\n## Contribution\n\nAll contributions welcome! Every PR **must** be accompanied by their associated\nunit tests!\n\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Mind2Soft <yanick.rochon@mind2soft.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","maintainers":[{"name":"yanickrochon","email":"yanick.rochon@gmail.com"}],"time":{"modified":"2023-03-19T02:13:52.431Z","created":"2014-02-22T04:31:46.588Z","0.0.1-dev":"2014-02-22T04:31:46.588Z","0.0.2-dev":"2014-02-23T04:54:24.735Z","0.0.3-dev":"2014-02-23T05:24:35.920Z","0.0.4-dev":"2014-03-03T19:40:04.079Z","0.1.0":"2014-03-04T03:46:58.129Z","0.1.1":"2014-03-06T07:00:40.394Z","0.1.2":"2014-03-06T14:35:02.114Z","0.1.4":"2014-03-06T14:42:17.904Z","0.1.5":"2014-03-07T20:46:42.105Z","0.1.6":"2014-03-07T20:52:05.686Z","0.1.7":"2014-03-07T21:11:53.868Z","0.1.8":"2014-03-18T17:42:22.111Z","0.2.0":"2014-03-18T17:46:07.421Z","0.2.1":"2014-03-18T17:49:55.251Z","0.2.2":"2014-03-18T18:55:40.627Z","0.2.3":"2014-03-26T15:04:27.442Z"},"readmeFilename":"README.md","homepage":"https://github.com/beyo/i18n","keywords":["beyo","i18n","plural","gender","subtitution","translate","translation","multilanguage","generator","async","asynchronous"],"repository":{"type":"git","url":"https://github.com/beyo/i18n.git"},"author":{"name":"Yanick Rochon","email":"yanick.rochon@gmail.com"},"bugs":{"url":"https://github.com/beyo/i18n/issues"},"license":"MIT","users":{"elisha4700":true}}