{"_id":"@asafarim/shared-i18n","_rev":"14-b6a2252189e071501354949d75d29210","name":"@asafarim/shared-i18n","dist-tags":{"latest":"0.9.0"},"versions":{"0.5.0":{"name":"@asafarim/shared-i18n","version":"0.5.0","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.5.0","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://github.com/asafarim/shared-i18n#readme","bugs":{"url":"https://github.com/asafarim/shared-i18n/issues"},"dist":{"shasum":"817d75c2a7f7dccd9d638b28f27070418f24872a","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.5.0.tgz","fileCount":14,"integrity":"sha512-o2ctm7vkUrR/lY4h2F/EcsOSickWidQulvnejWwc+NP7EYd2WfadNj7Z5bWBsHhakqf3PT3MvpyTwGTO/rlFIQ==","signatures":[{"sig":"MEUCIQDaOYch5UBiyQLchmMCYf/nHxKfuuROaC5fttrZBGGXRgIgPIV8GhXJQGsv2rqr5v+FFmkufcLgVq2mtn1UXVBoCR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53515},"main":"index.ts","type":"module","_from":"file:asafarim-shared-i18n-0.5.0.tgz","types":"index.ts","exports":{".":"./index.ts","./hooks":"./hooks/useLanguage.ts","./utils":"./utils/languageUtils.ts","./config":"./config/i18n.ts","./locales/*":"./locales/*"},"scripts":{"dev":"tsc -w","demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b","start":"pnpm run build","deploy":"gh-pages -d demo/dist","predeploy":"pnpm run build && cd demo && pnpm run build && cd .."},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\31ed22863a8c4df0e8c53ca6fa96f4aa\\asafarim-shared-i18n-0.5.0.tgz","_integrity":"sha512-o2ctm7vkUrR/lY4h2F/EcsOSickWidQulvnejWwc+NP7EYd2WfadNj7Z5bWBsHhakqf3PT3MvpyTwGTO/rlFIQ==","repository":{"url":"git+https://github.com/asafarim/shared-i18n.git","type":"git"},"_npmVersion":"10.9.3","description":"Lightweight, simple translation module for any React + TypeScript app, built on top of i18next and react-i18next. It ships with sensible defaults (English and Dutch) but can support any language by adding JSON files to your locales folder.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"i18next":"^25.6.0","react-i18next":"^16.0.1","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.5.0_1763826558476_0.10988888682515907","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@asafarim/shared-i18n","version":"0.5.1","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.5.1","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://github.com/asafarim/shared-i18n#readme","bugs":{"url":"https://github.com/asafarim/shared-i18n/issues"},"dist":{"shasum":"00a044140603d2d39f77ffd918379208d07fc492","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.5.1.tgz","fileCount":14,"integrity":"sha512-Q8Thfup0FisAY86lFQIGZRuPsjkq6T55onMeqe30HNDJd9q30I2Vi33DK4syWjOhJcG5vrVYh9/fb7iCNcqGdQ==","signatures":[{"sig":"MEUCIQC7h3OykzKxLI63u6aumyQf5nbii8kwojxBjmZd3MQJFwIgQuO4i8qhCSka9j8ofBUk/rYlPJgOgrzR31k3wojWJZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53515},"main":"index.ts","type":"module","_from":"file:asafarim-shared-i18n-0.5.1.tgz","types":"index.ts","exports":{".":"./index.ts","./hooks":"./hooks/useLanguage.ts","./utils":"./utils/languageUtils.ts","./config":"./config/i18n.ts","./locales/*":"./locales/*"},"scripts":{"dev":"tsc -w","demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b","start":"pnpm run build","deploy":"gh-pages -d demo/dist","predeploy":"pnpm run build && cd demo && pnpm run build && cd .."},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\33166a367c2b6b23ff3f03914d036751\\asafarim-shared-i18n-0.5.1.tgz","_integrity":"sha512-Q8Thfup0FisAY86lFQIGZRuPsjkq6T55onMeqe30HNDJd9q30I2Vi33DK4syWjOhJcG5vrVYh9/fb7iCNcqGdQ==","repository":{"url":"git+https://github.com/asafarim/shared-i18n.git","type":"git"},"_npmVersion":"10.9.3","description":"Lightweight, simple translation module for any React + TypeScript app, built on top of i18next and react-i18next. It ships with sensible defaults (English and Dutch) but can support any language by adding JSON files to your locales folder.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"i18next":"^25.6.0","react-i18next":"^16.0.1","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.5.1_1763827623145_0.8942537212557402","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@asafarim/shared-i18n","version":"0.5.2","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.5.2","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://github.com/AliSafari-IT/shared-i18n#readme","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"dddb3bf6b8afdc9b9f5f125ecafbd6c169f58a25","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.5.2.tgz","fileCount":14,"integrity":"sha512-jG7lD1F5OCKX/RXi1/kbJUliHdoHfauG2Dqoxa9TgfcujvAPZB9T0Z16FRtdoA8x9gF5231+nvLOusYshk+evA==","signatures":[{"sig":"MEUCIQCl4eVY3nlaIGfNCtiyECHWf+tftdOQsoj5Md6901NDAgIgTpsPpZkXZW0ASvLDrcrllHGh2BywKJIF4Q+xvWOi1zQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53527},"main":"index.ts","type":"module","_from":"file:asafarim-shared-i18n-0.5.2.tgz","types":"index.ts","exports":{".":"./index.ts","./hooks":"./hooks/useLanguage.ts","./utils":"./utils/languageUtils.ts","./config":"./config/i18n.ts","./locales/*":"./locales/*"},"scripts":{"dev":"tsc -w","demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b","start":"pnpm run build","deploy":"gh-pages -d demo/dist","predeploy":"pnpm run build && cd demo && pnpm run build && cd .."},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\ae82ffc66183b8b9f720a608eab34dea\\asafarim-shared-i18n-0.5.2.tgz","_integrity":"sha512-jG7lD1F5OCKX/RXi1/kbJUliHdoHfauG2Dqoxa9TgfcujvAPZB9T0Z16FRtdoA8x9gF5231+nvLOusYshk+evA==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"10.9.3","description":"Lightweight, simple translation module for any React + TypeScript app, built on top of i18next and react-i18next. It ships with sensible defaults (English and Dutch) but can support any language by adding JSON files to your locales folder.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"i18next":"^25.6.0","react-i18next":"^16.0.1","i18next-browser-languagedetector":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.5.2_1763829502080_0.47272192267686375","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@asafarim/shared-i18n","version":"0.6.0","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.6.0","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"aad97bbf187397714e874b25ed33651a23019a6e","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.6.0.tgz","fileCount":51,"integrity":"sha512-B/qZJ6Xutd8GocsIlear1Wkas69wT3Z6DU5+ZuPUc2HgsKEz4OSg9gRaWDzzYpGKDkr4oytSF+vajXeVn5Od5g==","signatures":[{"sig":"MEUCIQDeY0kGQkXl7MxsxjiXJDYUT4u6tvCKzHqvsz+pWVpauAIgb6kA9qIiGimnoSCAMXYMFSma5KWWNcVnn2gC3fhOnlM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136625},"main":"dist/index.js","type":"module","_from":"file:asafarim-shared-i18n-0.6.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","deploy":"gh-pages -d demo/dist","release":"node ./scripts/release.js","predeploy":"pnpm run build && cd demo && pnpm run build && cd .."},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"/tmp/876fdeb885572804e414355b0e1b0bab/asafarim-shared-i18n-0.6.0.tgz","_integrity":"sha512-B/qZJ6Xutd8GocsIlear1Wkas69wT3Z6DU5+ZuPUc2HgsKEz4OSg9gRaWDzzYpGKDkr4oytSF+vajXeVn5Od5g==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"10.8.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"20.19.6","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.6.0_1767997364662_0.11584782940221916","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@asafarim/shared-i18n","version":"0.6.1","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.6.1","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"2278bc7757e2ae5d43dd563972e56946364ca15e","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.6.1.tgz","fileCount":51,"integrity":"sha512-SSVhTK4HItcS3OKlXYos116To5qperc03onsbIh4AaPKp3GJWknhEP1pzDSyE9bFe+2KIH595ujWfh+h45kxTQ==","signatures":[{"sig":"MEYCIQDLW229WIeaLCnsU0ujnSKftqSSUdRBbHMGXbMVhX/9LQIhAKGHN/SrEmh1cf1a5wI6eD0S/8FbHkmaGcW8CTy3yni8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136672},"main":"dist/index.js","type":"module","_from":"file:asafarim-shared-i18n-0.6.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","deploy":"gh-pages -d demo/dist","release":"node ./scripts/release.js","predeploy":"pnpm run build && cd demo && pnpm run build && cd .."},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"/tmp/177816e5bc47e3dda6243e67dc4c9f1a/asafarim-shared-i18n-0.6.1.tgz","_integrity":"sha512-SSVhTK4HItcS3OKlXYos116To5qperc03onsbIh4AaPKp3GJWknhEP1pzDSyE9bFe+2KIH595ujWfh+h45kxTQ==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"10.8.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"20.19.6","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.6.1_1767997737022_0.46114695249128346","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@asafarim/shared-i18n","version":"0.6.2","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.6.2","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"67aeaab6669088ec8f7bb2cead49d3d4838c871b","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.6.2.tgz","fileCount":55,"integrity":"sha512-V6pEvxepNvQlW0hhYr82kazXE0hSLaAFUbYL42/kvOt3Zlr46VuCaUGCIwBZ5RyyMiukze87CDaOFlVvzsHjnw==","signatures":[{"sig":"MEQCIH7SGGK3MVf9YL8DXflWrp7iR+/qHEKgvz1pfAioBe7bAiBBP4tzMIQ9ovaFKHi3u0tNkEPY/H8ZxxcpSyr3iY0Dgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185757},"main":"dist/index.js","type":"module","_from":"file:asafarim-shared-i18n-0.6.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","release":"node ./scripts/release.js"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"/tmp/f24c2fc362357ad752377033afd23bd7/asafarim-shared-i18n-0.6.2.tgz","_integrity":"sha512-V6pEvxepNvQlW0hhYr82kazXE0hSLaAFUbYL42/kvOt3Zlr46VuCaUGCIwBZ5RyyMiukze87CDaOFlVvzsHjnw==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"10.8.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"20.19.6","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.6.2_1767998782072_0.6230371568648949","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@asafarim/shared-i18n","version":"0.6.3","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.6.3","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"492cd9bfe92fd2fdfb312e72ff21477f5fb7af31","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.6.3.tgz","fileCount":55,"integrity":"sha512-85CItdtyUKqMRIC+Y1luTuWIvYEwD1C/ZEC0JKVVJh0lc7polLRV4R6qYzAe1Vv57Da5/GcB64zLb5yCGSASAg==","signatures":[{"sig":"MEUCIQDjo+1EEpG35MqEn7WCkBf/zLv2cFPIJStZDmT2Sz0bpgIgVueUUF4PDcOD1NEBg0Kk91U+mxGL39iyYxJPy54bIvY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185774},"main":"dist/index.js","type":"module","_from":"file:asafarim-shared-i18n-0.6.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","release":"node ./scripts/release.js"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"/tmp/aa9a46c76088550fde009f71cc69cb8e/asafarim-shared-i18n-0.6.3.tgz","_integrity":"sha512-85CItdtyUKqMRIC+Y1luTuWIvYEwD1C/ZEC0JKVVJh0lc7polLRV4R6qYzAe1Vv57Da5/GcB64zLb5yCGSASAg==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"10.8.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"20.19.6","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.6.3_1767998899824_0.14975205930103197","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@asafarim/shared-i18n","version":"0.6.4","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.6.4","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"156ba3f6c0cea6203d8579852438984c694ea5c3","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.6.4.tgz","fileCount":57,"integrity":"sha512-e1W9eLMVbxpeTmGOfutIarl/GZ3G1TEcWicCn7v2923fVli02EJnU5SpUmu17ELtqyU5msqZWRNJoU5eEtgAfA==","signatures":[{"sig":"MEUCIGrc4eDnktJm4NUJGtQJro7JnHlbt/G0+K30TecvbtfJAiEA12WzlvBGkuHDPW7pI9vbY1IeOGNplcDsyPcygvAawA0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234318},"main":"dist/index.js","type":"module","_from":"file:asafarim-shared-i18n-0.6.4.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","release":"node ./scripts/release.js"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"/tmp/04f85f9911f20762aa180a068ed8973f/asafarim-shared-i18n-0.6.4.tgz","_integrity":"sha512-e1W9eLMVbxpeTmGOfutIarl/GZ3G1TEcWicCn7v2923fVli02EJnU5SpUmu17ELtqyU5msqZWRNJoU5eEtgAfA==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"10.8.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"20.19.6","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.6.4_1767999468883_0.60346220919711","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@asafarim/shared-i18n","version":"0.6.5","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.6.5","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"4086e14d8a7b3d7c466e406677411872019f9996","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.6.5.tgz","fileCount":58,"integrity":"sha512-CtqEvZeDX5InLlEZHUZjOGlX6SjJ4cnd9dDzcpsJ0gs9vwqWsi/PI6++mk0PqDYci+Fj3gbxbr80/mtJPDCxvA==","signatures":[{"sig":"MEQCIEzCPZxSbwMjMhtdMQEPHk39u61NPPA9wZ99IURONZoNAiAVETO+mYwVl5FpxZmYvnT298K43y4a+0W7T9A75T+ouQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235035},"main":"dist/index.js","type":"module","_from":"file:asafarim-shared-i18n-0.6.5.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","release":"node ./scripts/release.js"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"/tmp/f04f3376f60d367e945f10ed909584b7/asafarim-shared-i18n-0.6.5.tgz","_integrity":"sha512-CtqEvZeDX5InLlEZHUZjOGlX6SjJ4cnd9dDzcpsJ0gs9vwqWsi/PI6++mk0PqDYci+Fj3gbxbr80/mtJPDCxvA==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"10.8.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"20.19.6","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.6.5_1768000224462_0.687060157533318","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@asafarim/shared-i18n","version":"0.6.6","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.6.6","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"18494f84fa21db0f5101ed67a1a1746a401221ef","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.6.6.tgz","fileCount":58,"integrity":"sha512-1rL0HTneNeGw1aZHdgoimUNRoGnT/IFIANCX4rPeIJBx2rKe5IwdVFizeqmBSZ9iCQFeluiJEyqlRNDvVqoLgQ==","signatures":[{"sig":"MEYCIQDeKTnlgNA2oV4Sz1YJrEZaa6ZWd3rZbsR30Ie1WViz1gIhANDJ4qUhYguci83xR/DXixtavnJMMhiWlZzoV8VLqRKk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238308},"main":"dist/index.js","type":"module","_from":"file:asafarim-shared-i18n-0.6.6.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","release":"node ./scripts/release.js"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"/tmp/d1d98f9113bd5b2cc34d715c3fef6b9a/asafarim-shared-i18n-0.6.6.tgz","_integrity":"sha512-1rL0HTneNeGw1aZHdgoimUNRoGnT/IFIANCX4rPeIJBx2rKe5IwdVFizeqmBSZ9iCQFeluiJEyqlRNDvVqoLgQ==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"10.8.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"20.19.6","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.6.6_1768082960668_0.6820014973600552","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@asafarim/shared-i18n","version":"0.7.0","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.7.0","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"ce0407bd3163246fecd13b65bba9890e5292e7c6","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.7.0.tgz","fileCount":58,"integrity":"sha512-8tv1fDVtrdea5gD5QR4YJO+QWaUL+6xE5ac1hF21z95x5sdNPFBgRIwOM+bI5wGhXgZUYIKA8AmYt3mHG+ai4w==","signatures":[{"sig":"MEQCIGazGgYo6mh85ZJ3SEjXPLwGchSdD+EhXHIDM1GGdRdRAiAGjRZZAr0SLJbedjDn5MX9oKnFUHSwrmVn/Dh6SubiDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241279},"main":"dist/index.js","type":"module","_from":"file:asafarim-shared-i18n-0.7.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","release":"node ./scripts/release.js"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"/tmp/5bdb11ac380b8d0ce3d6246d37cbb9be/asafarim-shared-i18n-0.7.0.tgz","_integrity":"sha512-8tv1fDVtrdea5gD5QR4YJO+QWaUL+6xE5ac1hF21z95x5sdNPFBgRIwOM+bI5wGhXgZUYIKA8AmYt3mHG+ai4w==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"10.8.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"20.19.6","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.7.0_1768083611010_0.0148057295837698","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@asafarim/shared-i18n","version":"0.8.0","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.8.0","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"e92f7eed8dd852d84071373094c7352b0f3cf759","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.8.0.tgz","fileCount":108,"integrity":"sha512-oicUbHkHvJsee2cwO2VioC4Q4j7EiR05q8WK56C0teLslRhJLMXMQxWJAicd5SY9J7gxxAFDi+XTYzRZqQi9Hw==","signatures":[{"sig":"MEYCIQDmmTf2yn482oXFzLHSdVmd6wFo0B8r01jYxbQdVyVaVgIhAMG4Ob/Cq2N7GIBrOK4UzjpHh4RFMapmSfYyKFQ/VvXJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3948127},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"gitHead":"2eb5778377a6a4acdd144c30fce0912048eb8f4f","scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","release":"node ./scripts/release.js","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"11.6.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.8.0_1777044028973_0.19535999171538565","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@asafarim/shared-i18n","version":"0.8.1","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","_id":"@asafarim/shared-i18n@0.8.1","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/shared-i18n","bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"dist":{"shasum":"434f60cdbaf82d4ffa37f38672f392389cc53be3","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.8.1.tgz","fileCount":109,"integrity":"sha512-dkeZzg39C0dgsdSJ6450Y+QlaAOZRJ4xruvAW1fmhzfyh9bwpOwZtyuf+pbbSE2FBF6NHKvmhTAvF6w7AjBpnA==","signatures":[{"sig":"MEQCIBVFxlnt5ltuX6FR2SYOuRV/y9j573twPYktNooRS9gQAiBc4K/EPiwZWEbI5Bkgc8oTYaEyI9H/pk6VAhzBbyvrQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3955058},"main":"dist/index.js","type":"module","_from":"file:asafarim-shared-i18n-0.8.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./locales/*":"./locales/*","./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"}},"scripts":{"demo":"pnpm run build && cd demo && pnpm run dev","build":"tsc -b && node ./scripts/copy-css.js","release":"node ./scripts/release.js"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\saal\\AppData\\Local\\Temp\\6ab2ae17f5a3a80829779c2c8fa15160\\asafarim-shared-i18n-0.8.1.tgz","_integrity":"sha512-dkeZzg39C0dgsdSJ6450Y+QlaAOZRJ4xruvAW1fmhzfyh9bwpOwZtyuf+pbbSE2FBF6NHKvmhTAvF6w7AjBpnA==","repository":{"url":"git+https://github.com/AliSafari-IT/shared-i18n.git","type":"git"},"_npmVersion":"11.6.2","description":"A shared i18n package for React applications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"i18next":"^23.15.1","react-i18next":"^13.5.0","@asafarim/design-tokens":"^0.5.0","i18next-browser-languagedetector":"^7.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.8.3","@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shared-i18n_0.8.1_1777044750803_0.11184832331538708","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@asafarim/shared-i18n","description":"A shared i18n package for React applications","version":"0.9.0","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./config":{"types":"./dist/config/i18n.d.ts","default":"./dist/config/i18n.js"},"./hooks":{"types":"./dist/hooks/useLanguage.d.ts","default":"./dist/hooks/useLanguage.js"},"./utils":{"types":"./dist/utils/languageUtils.d.ts","default":"./dist/utils/languageUtils.js"},"./components":{"types":"./dist/components/LanguageSwitcher.d.ts","default":"./dist/components/LanguageSwitcher.js"},"./locales/*":"./locales/*","./country-language-selector.css":"./dist/country-language-selector.css"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","react-dom":"^18.2.0 || ^19.0.0"},"dependencies":{"@asafarim/country-language-selector":"0.4.1","@asafarim/design-tokens":"^0.5.0","i18next":"^23.15.1","i18next-browser-languagedetector":"^7.2.0","react-i18next":"^13.5.0"},"devDependencies":{"@types/node":"^24.3.1","@types/react":"^18.2.0 || ^19.0.0","@types/react-dom":"^18.2.0 || ^19.0.0","typescript":"~5.8.3"},"keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/AliSafari-IT/shared-i18n.git"},"bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"homepage":"https://alisafari-it.github.io/shared-i18n","publishConfig":{"access":"public"},"scripts":{"build":"tsc -b && node ./scripts/copy-css.js","predemo":"pnpm install","demo":"pnpm run build && cd demo && pnpm run dev","release":"node ./scripts/release.js"},"_id":"@asafarim/shared-i18n@0.9.0","_integrity":"sha512-VGSswueU6rN24J6L7nDGV+CtqpqSiBO6hik5arEstLHzzw5UwyD96ATenPkaW5PoM/Bt67hDRneyXOf3WQQfXA==","_resolved":"/tmp/5ce534fa55eec863e751750b366dd741/asafarim-shared-i18n-0.9.0.tgz","_from":"file:asafarim-shared-i18n-0.9.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-VGSswueU6rN24J6L7nDGV+CtqpqSiBO6hik5arEstLHzzw5UwyD96ATenPkaW5PoM/Bt67hDRneyXOf3WQQfXA==","shasum":"3fa7b2559b2317407c5c83f301b9d4d601225148","tarball":"https://registry.npmjs.org/@asafarim/shared-i18n/-/shared-i18n-0.9.0.tgz","fileCount":72,"unpackedSize":357135,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFSFWivEfJMWfZKuOx51q4ugz87dPDUp9h15VHR4Kqi8AiEAmZl/KSuVyWdCWuM+SxOPtJJp/yHcn8RgoggGazx1ebY="}]},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"directories":{},"maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shared-i18n_0.9.0_1777474374017_0.6392461104363558"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-22T15:49:18.107Z","modified":"2026-04-29T14:52:54.298Z","0.5.0":"2025-11-22T15:49:18.675Z","0.5.1":"2025-11-22T16:07:03.340Z","0.5.2":"2025-11-22T16:38:22.283Z","0.6.0":"2026-01-09T22:22:44.828Z","0.6.1":"2026-01-09T22:28:57.166Z","0.6.2":"2026-01-09T22:46:22.218Z","0.6.3":"2026-01-09T22:48:19.957Z","0.6.4":"2026-01-09T22:57:49.031Z","0.6.5":"2026-01-09T23:10:24.622Z","0.6.6":"2026-01-10T22:09:20.831Z","0.7.0":"2026-01-10T22:20:11.151Z","0.8.0":"2026-04-24T15:20:29.154Z","0.8.1":"2026-04-24T15:32:31.022Z","0.9.0":"2026-04-29T14:52:54.150Z"},"bugs":{"url":"https://github.com/AliSafari-IT/shared-i18n/issues"},"author":{"name":"Ali Safari","email":"asafarim@gmail.com"},"license":"MIT","homepage":"https://alisafari-it.github.io/shared-i18n","keywords":["asafarim","react","i18n","i18next","internationalization","language","localization","react-i18next","react-internationalization","react-localization","react-language","react-localization","typescript"],"repository":{"type":"git","url":"git+https://github.com/AliSafari-IT/shared-i18n.git"},"description":"A shared i18n package for React applications","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"readme":"# @asafarim/shared-i18n\n\nLightweight React + TypeScript i18n package built on top of i18next and react-i18next. Ships with sensible defaults (English and Dutch) but supports any language. Includes a **LanguageSwitcher** and, new in v0.9, re-exports the full **CountryLanguageSelector** from `@asafarim/country-language-selector` — so consumers install only one package.\n\n* Live demo: [https://alisafari-it.github.io/shared-i18n/](https://alisafari-it.github.io/shared-i18n/)\n\n## Features\n\n- 🌍 Works in any React + TypeScript project (monorepo or standalone)\n- 🗂️ JSON-based translations per language and namespace\n- 🔄 Cookie-based language persistence with automatic browser detection\n- ⚙️ Optional backend sync for user language preferences\n- ⚡ Lazy loading support for app-specific translations\n- 🪝 React hooks: `useLanguage`, `useTranslation`\n- 🎨 **LanguageSwitcher** — three variants: buttons, select, icon-dropdown\n- 🗺️ **CountryLanguageSelector** — re-exported, image or emoji flags, locale-aware URLs\n- 🚀 Configurable API URL resolution for flexible backend integration\n\n## Installation\n\n```bash\npnpm add @asafarim/shared-i18n\n# or: npm i @asafarim/shared-i18n\n```\n\nThat is the only package you need. `@asafarim/country-language-selector` is a bundled dependency and re-exported for you.\n\n## Quick Start\n\n### 1. Initialize i18n\n\n```tsx\n// main.tsx\nimport { initI18n } from '@asafarim/shared-i18n';\nimport '@asafarim/shared-i18n/country-language-selector.css'; // if using CountryLanguageSelector\n\nimport enApp from './locales/en/app.json';\nimport nlApp from './locales/nl/app.json';\n\ninitI18n({\n  defaultLanguage: 'en',\n  defaultNS: 'common',\n  ns: ['common', 'app'],\n  resources: {\n    en: { app: enApp },\n    nl: { app: nlApp }\n  }\n});\n```\n\n### 2. Translate in components\n\n```tsx\nimport { useTranslation } from '@asafarim/shared-i18n';\n\nfunction MyComponent() {\n  const { t } = useTranslation('app');\n  return <h1>{t('welcome')}</h1>;\n}\n```\n\n---\n\n## LanguageSwitcher\n\nLanguage-only switcher with cookie persistence.\n\n```tsx\nimport { LanguageSwitcher } from '@asafarim/shared-i18n';\n\n// Buttons\n<LanguageSwitcher variant=\"buttons\" />\n\n// Select dropdown (no emoji)\n<LanguageSwitcher variant=\"select\" showEmoji={false} />\n\n// Icon dropdown with flag emoji\n<LanguageSwitcher variant=\"icon-dropdown\" />\n\n// Toggle between exactly 2 languages\n<LanguageSwitcher variant=\"select\" languages={['en', 'nl']} isToggler={true} />\n```\n\n### Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `variant` | `\"buttons\" \\| \"select\" \\| \"icon-dropdown\"` | `\"buttons\"` | UI variant |\n| `languages` | `SupportedLanguage[]` | all supported | Subset of languages to show |\n| `showEmoji` | `boolean` | `true` | Show flag emoji in select/icon variants |\n| `showLabel` | `boolean` | `true` | Show language name label |\n| `isToggler` | `boolean` | `true` | Renders as toggle when exactly 2 languages given |\n| `onChanged` | `(lang: SupportedLanguage) => void` | — | Callback on language change |\n| `unstyled` | `boolean` | `false` | Omit built-in styles |\n\n### Limitation — country awareness\n\n`LanguageSwitcher` emits only a language code (e.g. `\"en\"`). It cannot distinguish `be-en` from `gb-en`. For locale-aware URLs, use `resolveLocaleFromLanguage` as an adapter:\n\n```tsx\nimport { LanguageSwitcher } from '@asafarim/shared-i18n';\nimport { resolveLocaleFromLanguage } from './i18n/localeAdapter';\n\n<LanguageSwitcher\n  variant=\"buttons\"\n  onChanged={(lang) => {\n    const { locale, reason, message } = resolveLocaleFromLanguage(currentLocale, lang, countries);\n    if (reason === 'fallback-country') showNotice(message);\n    if (reason !== 'unsupported') navigate(locale);\n  }}\n/>\n```\n\n---\n\n## CountryLanguageSelector\n\nCountry + language selector. Re-exported from `@asafarim/country-language-selector`.\n\n```tsx\nimport {\n  CountryLanguageSelector,\n  type Country,\n  type Locale,\n} from '@asafarim/shared-i18n';\n\nconst countries: Country[] = [\n  {\n    code: 'BE', name: 'Belgium', nativeName: 'België', flag: '🇧🇪',\n    languages: [\n      { code: 'en', label: 'English', nativeLabel: 'English' },\n      { code: 'nl', label: 'Dutch', nativeLabel: 'Nederlands' },\n      { code: 'fr', label: 'French', nativeLabel: 'Français' },\n    ]\n  },\n  {\n    code: 'NL', name: 'Netherlands', nativeName: 'Nederland', flag: '🇳🇱',\n    languages: [\n      { code: 'nl', label: 'Dutch', nativeLabel: 'Nederlands' },\n      { code: 'en', label: 'English', nativeLabel: 'English' },\n    ]\n  },\n  {\n    code: 'GB', name: 'United Kingdom', nativeName: 'United Kingdom', flag: '🇬🇧',\n    languages: [\n      { code: 'en', label: 'English', nativeLabel: 'English' },\n    ]\n  }\n];\n\nfunction LocaleBar({ locale, onLocaleChange }) {\n  const { i18n } = useTranslation();\n  return (\n    <CountryLanguageSelector\n      countries={countries}\n      value={locale}\n      onChange={(next) => {\n        i18n.changeLanguage(next.language);\n        onLocaleChange(next);\n      }}\n      triggerVariant=\"compact\"\n      flagMode=\"image\"\n    />\n  );\n}\n```\n\n### Key Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `countries` | `Country[]` | built-in list | Countries to offer |\n| `value` | `Locale` | — | Controlled value |\n| `defaultValue` | `Locale` | — | Uncontrolled initial value |\n| `onChange` | `(locale, meta) => void` | — | Fired on every change |\n| `triggerVariant` | `\"compact\" \\| \"full\" \\| \"flag\"` | `\"compact\"` | Trigger display |\n| `flagMode` | `\"emoji\" \\| \"image\"` | `\"emoji\"` | Flag rendering strategy |\n| `align` | `\"start\" \\| \"end\"` | `\"end\"` | Popover alignment |\n| `renderTrigger` | `(ctx) => ReactNode` | — | Custom trigger render prop |\n| `persistKey` | `string` | — | localStorage key (uncontrolled only) |\n\n### Comparison: LanguageSwitcher vs CountryLanguageSelector\n\n| Capability | LanguageSwitcher | CountryLanguageSelector |\n|---|---|---|\n| Changes i18n language | ✅ | ✅ via `locale.language` |\n| Knows country | ❌ | ✅ |\n| Represents `be-en` | ❌ | ✅ |\n| Distinguishes `be-en` from `gb-en` | ❌ | ✅ |\n| Best for localized URLs | ❌ needs adapter | ✅ |\n| Best for translation-only apps | ✅ | optional |\n\n---\n\n## CSS Import\n\nWhen using `CountryLanguageSelector`, import its stylesheet once in your entry point:\n\n```tsx\nimport '@asafarim/shared-i18n/country-language-selector.css';\n```\n\n---\n\n## More Languages\n\nAdd any language by including its JSON files:\n\n```tsx\ninitI18n({\n  ns: ['common', 'app'],\n  resources: {\n    en: { app: enApp },\n    nl: { app: nlApp },\n    fr: { app: frApp }\n  },\n  supportedLngs: ['en', 'nl', 'fr'],\n  defaultLanguage: 'en'\n});\n```\n\n---\n\n## API Reference\n\n### `initI18n(config?)`\n\n| Param | Type | Description |\n|-------|------|-------------|\n| `defaultNS` | `string` | Default namespace (default: `'common'`) |\n| `ns` | `string[]` | Namespaces to load |\n| `resources` | object | App-specific translation resources |\n| `supportedLngs` | `string[]` | Override supported languages |\n| `defaultLanguage` | `string` | Fallback language code |\n\n### `useLanguage()`\n\nReturns `{ language, changeLanguage, isChanging }`.\n\n### `useTranslation(ns?)`\n\nRe-exported from react-i18next.\n\n### `getApiUrl(envVarName?, defaultUrl?)`\n\nConfigurable API URL resolver.\n\n---\n\n## Cookie & Backend Integration\n\nUser language preference is persisted in a `preferredLanguage` cookie. To sync with a backend, set:\n\n```env\nVITE_IDENTITY_API_URL=https://your-identity.example.com\n```\n\n---\n\n## Built-in Translations\n\nShips with English and Dutch for the `common` namespace. Supply your own resources via `initI18n` to override or extend.\n\n## License\n\nMIT © ASafariM\n","readmeFilename":"README.md"}