{"_id":"@dbenfouzari/i18n","_rev":"4-da2780bb2e2c684237b1f328f5b758d5","name":"@dbenfouzari/i18n","dist-tags":{"latest":"5.1.1"},"versions":{"5.0.0":{"name":"@dbenfouzari/i18n","description":"Easy i18n for your React app","version":"5.0.0","author":{"name":"Donovan BENFOUZARI","email":"d.benfouzari@gmail.com"},"scripts":{"build":"babel --source-maps --no-comments --quiet --root-mode upward --extensions \".js,.ts\" src -d lib","postbuild":"tsc -p . --outDir lib --emitDeclarationOnly"},"repository":{"type":"git","url":"git+https://github.com/dbenfouzari/packages.git","directory":"packages/i18n"},"bugs":{"url":"https://github.com/dbenfouzari/packages/issues"},"homepage":"https://github.com/dbenfouzari/packages/tree/master/packages/i18n#readme","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"license":"MIT","main":"lib/index.js","types":"lib/index.d.ts","dependencies":{"fast-deep-equal":"^3.1.3","intl-messageformat":"^9.6.15"},"devDependencies":{"@types/react":"^17.0.6","react":"^17.0.2"},"gitHead":"404e868aa3a4c19a34621103bd5bbf2a4a8ae1d6","_id":"@dbenfouzari/i18n@5.0.0","_nodeVersion":"14.16.0","_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (darwin)","dist":{"integrity":"sha512-3+BSfEueeX4fNVsosXDgl8oDPhqwiGZTPy02PyEqcHz9PD1LHD1pEnXVa1mkr4uHlyT8S4c26Vczs7QH0Zmu8w==","shasum":"a05729108ec7d278a8b4df5997ad6818b5a13b6f","tarball":"https://registry.npmjs.org/@dbenfouzari/i18n/-/i18n-5.0.0.tgz","fileCount":11,"unpackedSize":20569,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqAH9CRA9TVsSAnZWagAAlOoQAKT3EFrV63TuC8n5DfCA\ntoa5sLeQkjDNiovDPvZiIdV3Gp7Z/imKRC3rXJMoTtvXq0DpXg5gbQCLh5/y\newj7b5NS9Y1OyQmD+ifS7Rg8AZAbTBgz/jkNe7EgWOZ6ZW+77qgSJHbqeMK/\nAJ1SSwF04L8SrZo4cGSXfGyeZi0AC5yXxdSX+wGq2asYmabEzmpk9NnfrUd2\n7n+a4hilyHYvPBk9NIjNYTLG9JoUVpj68RXycaVZ6uCjuQkglMEMhByY0dhF\nvP1WUxi3gV7Z9y/DcE7cD+pMy4Bbc3lDaQSlYdL79NKcfN50/cIP4U7emJs8\n6F85KQAMdXzWbFPrlrKiQ8j+LqB8fmHCoU6i4K/d8PjtzL0fdUVdm24RbsUp\noB7dcXdonOYqUj+83GavfEHMLP8HaJSuBRYGc3n3kpadzhI8LvXa/SBBK93J\nPKvYqlXuWZcVbgZcTrAqTGuwsjiVC9QbGQYryazABeSfdDTmPNdUQ+BhAOLp\nDe8rqP2hrv6DOgDG1GnAvEt0DbGOgFC1lCq/JgENPyaLkvGE13t5CerqNy15\nD9xy1wOlGXs35utmC4LLEqddU7SDBZQbApm6WKmWyYQYaIrI9nD/QVcrQPd/\n7fN07OUhzVliwSEYavBalQnDcJhqjpcRp1Vk3XtyXkJOv88Xg8viuGwwZM3v\n/4dP\r\n=hNQa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDhNZ/pdd50rS69tuts7/Z8ER5k9a2tseTSjurR9VgiUAiB7L7WPsn2ExDefLrOdkntuNC/lP7N3oX0q973uTf8frg=="}]},"_npmUser":{"name":"d.benfouzari","email":"d.benfouzari@gmail.com"},"directories":{},"maintainers":[{"name":"d.benfouzari","email":"d.benfouzari@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/i18n_5.0.0_1621623293558_0.7543010023818186"},"_hasShrinkwrap":false},"5.0.1":{"name":"@dbenfouzari/i18n","description":"Easy i18n for your React app","version":"5.0.1","author":{"name":"Donovan BENFOUZARI","email":"d.benfouzari@gmail.com"},"scripts":{"build":"babel --source-maps --no-comments --quiet --root-mode upward --extensions \".js,.ts\" src -d lib","postbuild":"tsc -p . --outDir lib --emitDeclarationOnly"},"repository":{"type":"git","url":"git+https://github.com/dbenfouzari/packages.git","directory":"packages/i18n"},"bugs":{"url":"https://github.com/dbenfouzari/packages/issues"},"homepage":"https://github.com/dbenfouzari/packages/tree/master/packages/i18n#readme","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"license":"MIT","main":"lib/index.js","types":"lib/index.d.ts","dependencies":{"fast-deep-equal":"^3.1.3","intl-messageformat":"^9.6.15"},"devDependencies":{"@types/react":"^17.0.6","react":"^17.0.2"},"gitHead":"73743e46cfa4a0993f16d4cd4ec4a8a74fa25170","_id":"@dbenfouzari/i18n@5.0.1","_nodeVersion":"14.16.0","_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (darwin)","dist":{"integrity":"sha512-tasXbz93viFZ5xLBKuX14Opvwmcu/oizYAJBE4V/98qk3ZtPnU/T+RhWZVEPyWJ3QGoMi/ZgASnRIuHPD2FCJw==","shasum":"4fa5ba066f77088150ca0f72db81b0110158bbfe","tarball":"https://registry.npmjs.org/@dbenfouzari/i18n/-/i18n-5.0.1.tgz","fileCount":11,"unpackedSize":20569,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqAI9CRA9TVsSAnZWagAAJlIP/iEl46BL0AkLaF5G8iKK\nQCyb3LgVIh4hn2T4Du0An2c4J+89KebxcuvA+cxgQ+QImnIfYXXZBXHK3QSp\n5QXOaGQVQoO+2iUH/bwNUvbyZcPsKxH+4SbSlydcG61fccg8iO8xzj2roVdG\nSHpxb9X7XlSe2LPcwXXCTVY1ihsWwtguJSkBGHUEHNhgLHm9u63loPhuM8GN\nSSdNQw6KTmiHKahxMTXyD+GwsgONa5S1DrIYoDTmLZtyDZ5mo1MGNnlWORPG\nLpBOWlDsJNHPWelvB3emVQ0BLK1qElI/sjKtg0zDShxRPdrymLIBztOEgm+j\nMA7AKxa+kcs7o0syqDH4RQ81VTmhtyCToTIK+vbraFw5mSvQ5UTBWi9YZZdV\n4hVSM7bkuXm73QwjYGoqm3KRRJvEEVHGRXH3uzPy2uTjaiqeOHr/DrpLCqXG\nBKqx8yIPE+xTVgQwyg6AXEkgwLRrpnghHX//g/oIu45hulS8eRPKZSa7yFaQ\nXYippioNZU6UlG8Cf1k/L0YJl1wyd6SW+7dQ5ap3UiR1Z502fuvruQFSsSCB\n/i5zYx8EGa9EJvdYNuIhkAdYZV5rUEFionB2BQfUntmJsnbDFDOGQvf6fOoV\nh33rgXbRnVF2bhJg1wfwOvoRzrGEYlKTboZtJ7xRARWB0b1q6toJFs3VbEgf\nfZzH\r\n=5utT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHhXYmoEl9XyEu+cOVy8/U7h0FMAOE1fYqLUatqw+wSpAiAg8TAxeKlBz8d6Cef+CsL916KBWpRfGk14onzOAV7B/Q=="}]},"_npmUser":{"name":"d.benfouzari","email":"d.benfouzari@gmail.com"},"directories":{},"maintainers":[{"name":"d.benfouzari","email":"d.benfouzari@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/i18n_5.0.1_1621623356790_0.3393532668277828"},"_hasShrinkwrap":false},"5.0.2":{"name":"@dbenfouzari/i18n","description":"Easy i18n for your React app","version":"5.0.2","author":{"name":"Donovan BENFOUZARI","email":"d.benfouzari@gmail.com"},"scripts":{"build":"babel --source-maps --no-comments --quiet --root-mode upward --extensions \".js,.ts\" src -d lib","postbuild":"tsc -p . --outDir lib --emitDeclarationOnly"},"repository":{"type":"git","url":"git+https://github.com/dbenfouzari/packages.git","directory":"packages/i18n"},"bugs":{"url":"https://github.com/dbenfouzari/packages/issues"},"homepage":"https://github.com/dbenfouzari/packages/tree/master/packages/i18n#readme","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"license":"MIT","main":"lib/index.js","types":"lib/index.d.ts","dependencies":{"fast-deep-equal":"^3.1.3","intl-messageformat":"^9.6.15"},"devDependencies":{"@types/react":"^17.0.6","react":"^17.0.2"},"gitHead":"614dd4b6e194b2168af66b2a4f4c3f8b57ea772b","_id":"@dbenfouzari/i18n@5.0.2","_nodeVersion":"14.16.0","_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (darwin)","dist":{"integrity":"sha512-CYj7GvBiLCaUciFFUKbgaTp50cBLZgmYlQsnNibQ3usoISLE/p90jS7v31d1Q7kmuG6GS+zXbpD5kHaw2KTVlQ==","shasum":"661e62f9c601a17fd23a0400efa2587f4a99fe35","tarball":"https://registry.npmjs.org/@dbenfouzari/i18n/-/i18n-5.0.2.tgz","fileCount":12,"unpackedSize":23857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrPPPCRA9TVsSAnZWagAA84sQAJjpquxNUnlO+2zamKJF\nvibNcrSUznbcy4Q6AITXRkzISY587GTuvmdPUl0Qtn7YRThu1PUmaq75hTgs\nFqNdstPXcU/qhZTJiyaDre1M9v8itkFu1fJyojUttTyf7p1xoq3N/Su/kLtj\nQAL7QKdfFOFWgjvBfATGv6vLbA8IueAAIrk0oWDgjgyYKyGpjb51MASL+WbH\nDQPRPJehWJYBxBz5HC09VkpAjHF/hmqvbqcFViuwLhXwX/1dn+IRlcK6n1hX\nt/BEto1SziyBgbkMfb6myXxUDc2u1lAzbxhd3kkYJ1P1/26l6gugKJLk8XtM\ngeNKi0TFbKyEBE60pawYuzfc1oD6ADG23hEc4FKvCyxyNiKVbrcUemqmAHbl\nSJiEoZCQ49Ppoxw4IM3qXvQr999d9xDIlK59vTjglp4ZT9pFwqw+hmDF/4jL\nCHoionGaKv3fbiPv1iDVi/eOOFPhR17HFCEPiCCLb28rTIQVIfXXZ+BpfJA+\nwn4zdsmlNIpYxP+cGAm7GzcEXsPcAVpTA/vNnEjN3dplsARLpszNFiQ8FeVz\naCnRnWY4er/8XSmYK784fOYZ1hSoFBvHh25J5xrBCAjLDF5mi6WxR5oZ68KF\nDeXgmbC28sN111D1MEYlPA43S8DB25crDoU5L9LaCQ1IqFYiV0Szlv4YHFiQ\na7J7\r\n=bRiz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDY3t3MfnSYAiSGox1n+nMN6LbEKUHHhFK/g1/jOp9xqwIhAON0OqUWwtkeyCYBgtoaMXFHP5MPvEKFmzv/mk3Hm0UP"}]},"_npmUser":{"name":"d.benfouzari","email":"d.benfouzari@gmail.com"},"directories":{},"maintainers":[{"name":"d.benfouzari","email":"d.benfouzari@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/i18n_5.0.2_1621947342755_0.05050389783737108"},"_hasShrinkwrap":false},"5.1.1":{"name":"@dbenfouzari/i18n","description":"Easy i18n for your React app","version":"5.1.1","author":{"name":"Donovan BENFOUZARI","email":"d.benfouzari@gmail.com"},"scripts":{"build":"babel --source-maps --no-comments --quiet --root-mode upward --extensions \".js,.ts\" src -d lib","postbuild":"tsc -p . --outDir lib --emitDeclarationOnly"},"repository":{"type":"git","url":"git+https://github.com/dbenfouzari/packages.git","directory":"packages/i18n"},"bugs":{"url":"https://github.com/dbenfouzari/packages/issues"},"homepage":"https://github.com/dbenfouzari/packages/tree/master/packages/i18n#readme","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"license":"MIT","main":"lib/index.js","types":"lib/index.d.ts","dependencies":{"fast-deep-equal":"^3.1.3","intl-messageformat":"^9.6.15"},"devDependencies":{"@types/react":"^17.0.6","react":"^17.0.2"},"gitHead":"f386954de0e235a19f66f4ba1cb9b997dbbe3d0b","_id":"@dbenfouzari/i18n@5.1.1","_nodeVersion":"14.16.0","_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (darwin)","dist":{"integrity":"sha512-9yDWmgvGDSynPONTdsCifcVFXHIJRvFz+7G3q0OigP8ADdlW8nVGPNWo64gVSs01UEeDu1SPSqv5Tj728DaG4Q==","shasum":"abab504f330952f0cac6cc5b69614ac7e76a22f2","tarball":"https://registry.npmjs.org/@dbenfouzari/i18n/-/i18n-5.1.1.tgz","fileCount":12,"unpackedSize":23874,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5W0zCRA9TVsSAnZWagAA2QMP/3wv3M/i37sg+yYTk0w+\nng9ZPlGjRGWwi18TSjZraJ7zxt5XL+8LRhsJfh05qCClAqDGyVUUCiJ2B0p0\n/XXygvtPOKWS7cf4eWeldW+wXYVpqR8bd/N+XJgm1upLmt3hHYxkDPWg0y71\nL8ksH5u90vwwAE/Y0evaow/1SnLY++JKORuCo0/UY/tQUOyFfPOxAA5PQ/gS\ndSz3y1tMzexEiSmquTW4EOaMtS4fcHWn1dGMpYH7O5InOl3WdnthhbNu33pM\na+BB4nfSsKlPbUYNW3Ar7ZnClw/nps5S+kkOsHRFUxgl2WOgEZ0EBOXan6IQ\njV0GgCmeCK9CDiI+hRfldIsTKM4LDF0FES143OZUb9dW3KltTn+4iNkZRZ97\nQFjihyRBlA9p9CnlJF0UBBzvXw5HJUCuhnvuoWc+5zsKrQ2P62M7HMD3Hgyg\neROJLzi7yFTVh4BevETdX8eOxasbXLPwLxgjQ49IniOixpdYWp8VVxXyxxSj\nLZljRFOD6t5RTewrHF4YWaQayxL7J4bg3AybTl4/ZHHcF8PW1J4SjEifVWIJ\nor0T596ZCNHL1Z5izgWytReYCsrJ5Rb2K1WLJ/1yjwEX08vTRO+6lYxDtZAe\nAI0zA9g7ZgaOqHmbbiskmy7OX+HjID6kUJqNLivmllGGv86Y9Whczpk041ls\nKV/n\r\n=wHAv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyFo6aZT65ULTwnApSUyxdJfvyEwVt+T1jqApyB9a9ygIhAMTLuj9zyUi2lHzSd4aeVgm4SYYbBdb4V4koazegT27d"}]},"_npmUser":{"name":"d.benfouzari","email":"d.benfouzari@gmail.com"},"directories":{},"maintainers":[{"name":"d.benfouzari","email":"d.benfouzari@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/i18n_5.1.1_1625648434861_0.8658426092266813"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-21T18:54:53.339Z","5.0.0":"2021-05-21T18:54:53.699Z","modified":"2022-04-05T03:17:01.660Z","5.0.1":"2021-05-21T18:55:56.928Z","5.0.2":"2021-05-25T12:55:42.893Z","5.1.1":"2021-07-07T09:00:34.993Z"},"maintainers":[{"name":"d.benfouzari","email":"d.benfouzari@gmail.com"}],"description":"Easy i18n for your React app","homepage":"https://github.com/dbenfouzari/packages/tree/master/packages/i18n#readme","repository":{"type":"git","url":"git+https://github.com/dbenfouzari/packages.git","directory":"packages/i18n"},"author":{"name":"Donovan BENFOUZARI","email":"d.benfouzari@gmail.com"},"bugs":{"url":"https://github.com/dbenfouzari/packages/issues"},"license":"MIT","readme":"# @dbenfouzari/i18n\n\nThis package provides a simple way to translate your app.\n\n## Installation\n\nYou can install this package with\n\n```shell\nyarn add @dbenfouzari/i18n\n```\n\n## Usage\n\nLet's assume you have two dictionaries : `fr` and `en`.\n\n```json5\n// fr.json\n{\n  greeting: \"Bonjour {name}\",\n}\n```\n\n```json5\n// en.json\n{\n  greeting: \"Hello {name}\",\n}\n```\n\nYou will have to initialize an `I18n` instance this way\n\n```ts\n// Import the dictionaries\nimport I18n from \"@dbenfouzari/i18n\";\n\nimport en from \"./dictionaries/en.json\";\nimport fr from \"./dictionaries/fr.json\";\n\n// Initialize a dictionaries' object\nconst dictionaries = { en, fr } as const;\n\n// To get typings\ntype Dictionaries = typeof dictionaries;\n\n// To get typings\nenum Languages {\n  EN = \"en\",\n  FR = \"fr\",\n}\n\nconst i18n = new I18n<Languages, Dictionaries>({ dictionaries, lang: Languages.FR });\n\nexport default i18n;\n```\n\nThis way, you get a `i18n` class instance that allows you to translate your strings.\n\n## Cache\n\nBy default, caching is enabled. So it does not compute translation again if language, key, and variables are the same.\n\nYou can disable it by doing\n\n```ts\ni18n.configure({ useCache: false });\n```\n\n## Methods\n\n### i18n.t\n\n```ts\ni18n.t(\"greeting\", { name: \"Donovan\" });\n```\n\nThis is the method you will use every time.\n\nIt allows you to pass a `key` and `variables` to translate.\n\nIf you have some dictionaries :\n\n```json5\n// fr.json\n{\n  greeting: \"Bonjour {name}\",\n}\n```\n\n```json5\n// en.json\n{\n  greeting: \"Hello {name}\",\n}\n```\n\nYou can translate it this way\n\n```ts\ni18n.t(\"greeting\", { name: \"Donovan\" });\n```\n\nSo the output will be `Hello Donovan` in English, and `Bonjour Donovan` in French.\n\nSee https://unicode-org.github.io/icu/ for complete documentation or https://formatjs.io/docs/core-concepts/icu-syntax/ to get a more comprehensive documentation.\n\n### i18n.setLocale\n\n```ts\nenum Languages {\n  EN = \"en\",\n  FR = \"fr\",\n}\n\ni18n.setLocale(Languages.FR);\n```\n\nUse this method to switch language.\n\nLet's say you have\n\n```ts\nenum Languages {\n  EN = \"en\",\n  FR = \"fr\",\n}\n```\n\nYou can switch language by doing :\n\n```ts\nenum Languages {\n  EN = \"en\",\n  FR = \"fr\",\n}\n\ni18n.setLocale(Languages.FR);\n```\n\n### i18n.configure\n\n```ts\nenum Languages {\n  EN = \"en\",\n  FR = \"fr\",\n}\n\ni18n.configure({\n  dictionaries: { en: { key: \"value\" }, fr: { key: \"valeur\" } },\n  languageKey: Languages.FR,\n  useCache: true,\n});\n```\n","readmeFilename":"README.md"}