{"_id":"@cloud-ru/ft-config-i18n","_rev":"7-f5e99bd09f18254034052e69fed601ff","name":"@cloud-ru/ft-config-i18n","dist-tags":{"latest":"1.1.2","preview":"1.1.2-preview-ae96ee4.0"},"versions":{"1.0.2":{"name":"@cloud-ru/ft-config-i18n","version":"1.0.2","author":{"url":"https://github.com/AGrigorii","name":"Akhremenko Grigorii"},"license":"Apache-2.0","_id":"@cloud-ru/ft-config-i18n@1.0.2","maintainers":[{"name":"cloud-ru-tech","email":"robot@cloud.ru"}],"homepage":"https://github.com/cloud-ru-tech/frontend-tools/-/tree/master/packages/config-i18n","dist":{"shasum":"1ccdd1f571e04397a73f46e46434be18425d5098","tarball":"https://registry.npmjs.org/@cloud-ru/ft-config-i18n/-/ft-config-i18n-1.0.2.tgz","fileCount":34,"integrity":"sha512-TgW8Ymf515Fso0MAMb/uUfbpfe/6EJT6K4vbn+BfEFFtgs+Nurw+0pElMyvnxu1oRx66S0q39DX64M4bQgD+IA==","signatures":[{"sig":"MEUCIQCCBZulDvlwVF8nONbVo4chVAE+r2aOV58/21s5f+5YsAIgBBp7Rpcn+r1jTnmS3a7yPMZui9FJaDk0zPgtRIkGf9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33962},"types":"./dist/esm/index.d.ts","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"gitHead":"4fffbb6cf26e10b0bda126e259a6ae54ab6fa09c","_npmUser":{"name":"cloud-ru-tech","email":"robot@cloud.ru"},"repository":{"url":"https://github.com/cloud-ru-tech/frontend-tools.git","type":"git","directory":"packages/config-i18n"},"_npmVersion":"lerna/8.2.4/node@v22.21.1+x64 (linux)","description":"Config and dependencies for using i18n","directories":{},"_nodeVersion":"22.21.1","dependencies":{"i18next":"24.0.5","react-i18next":"15.1.3","i18next-http-backend":"3.0.1","i18next-browser-languagedetector":"8.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ft-config-i18n_1.0.2_1762864828510_0.6675002848056129","host":"s3://npm-registry-packages-npm-production"}},"1.0.3-preview-e96e82c.0":{"name":"@cloud-ru/ft-config-i18n","version":"1.0.3-preview-e96e82c.0","author":{"url":"https://github.com/AGrigorii","name":"Akhremenko Grigorii"},"license":"Apache-2.0","_id":"@cloud-ru/ft-config-i18n@1.0.3-preview-e96e82c.0","maintainers":[{"name":"cloud-ru-tech","email":"robot@cloud.ru"}],"homepage":"https://github.com/cloud-ru-tech/frontend-tools/-/tree/master/packages/config-i18n","dist":{"shasum":"edc8f630a999f8d9c07d71029c7369814d53654b","tarball":"https://registry.npmjs.org/@cloud-ru/ft-config-i18n/-/ft-config-i18n-1.0.3-preview-e96e82c.0.tgz","fileCount":34,"integrity":"sha512-djwNx4bN3uCmF6/+c9fd2mCxJzvKUueDo9ZoiS4HXzbSXKWL+Rqv7bj+Q+vZe3Hclm+qfNLhG9x+Cap5eEk5Eg==","signatures":[{"sig":"MEQCIHnZA7HjgsVdQGN1zmqiJ2SPvZpfvj8RvOuTjaNdTZ+hAiA/ea3uJamjjSY4hPBNI6P65c9Ngw5f+l30G5ktfWRyow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33148},"types":"./dist/esm/index.d.ts","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"gitHead":"0702263d619501f3b53c92408e8d6cfbfb1ddcdc","_npmUser":{"name":"cloud-ru-tech","email":"robot@cloud.ru"},"repository":{"url":"https://github.com/cloud-ru-tech/frontend-tools.git","type":"git","directory":"packages/config-i18n"},"_npmVersion":"lerna/8.2.4/node@v22.21.1+x64 (linux)","description":"Config and dependencies for using i18n","directories":{},"_nodeVersion":"22.21.1","dependencies":{"i18next":"25.7.4","react-i18next":"16.5.3","i18next-http-backend":"3.0.2","i18next-browser-languagedetector":"8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ft-config-i18n_1.0.3-preview-e96e82c.0_1768920252601_0.9866451322752989","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@cloud-ru/ft-config-i18n","version":"1.1.0","author":{"url":"https://github.com/AGrigorii","name":"Akhremenko Grigorii"},"license":"Apache-2.0","_id":"@cloud-ru/ft-config-i18n@1.1.0","maintainers":[{"name":"cloud-ru-tech","email":"robot@cloud.ru"}],"homepage":"https://github.com/cloud-ru-tech/frontend-tools/-/tree/master/packages/config-i18n","dist":{"shasum":"efe451af48d3102beeda8d0693a12900ccc7de93","tarball":"https://registry.npmjs.org/@cloud-ru/ft-config-i18n/-/ft-config-i18n-1.1.0.tgz","fileCount":34,"integrity":"sha512-A1z8hJP0J7As77V4WvCSRtfrktgr80QDoOroDYUD5+n1IovIRbXUIQQtZ8nUU6hRuLhvS77ODXBpfmyA3WJeXQ==","signatures":[{"sig":"MEQCICz944eJhTar8G85jmL2VXqo6fD0CY4XCDBkzPz+m1+DAiAIuel4Z6y0dAvBbIVEPdce9414dcFE0ZzRzCdzFesnPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33509},"types":"./dist/esm/index.d.ts","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"gitHead":"43b847fb8398b87c41590b3242511ce9cde53e6c","_npmUser":{"name":"cloud-ru-tech","email":"robot@cloud.ru"},"repository":{"url":"https://github.com/cloud-ru-tech/frontend-tools.git","type":"git","directory":"packages/config-i18n"},"_npmVersion":"lerna/8.2.4/node@v22.21.1+x64 (linux)","description":"Config and dependencies for using i18n","directories":{},"_nodeVersion":"22.21.1","dependencies":{"i18next":"25.7.4","react-i18next":"16.5.3","i18next-http-backend":"3.0.2","i18next-browser-languagedetector":"8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ft-config-i18n_1.1.0_1769065432357_0.04359344346809202","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@cloud-ru/ft-config-i18n","version":"1.1.1","author":{"url":"https://github.com/AGrigorii","name":"Akhremenko Grigorii"},"license":"Apache-2.0","_id":"@cloud-ru/ft-config-i18n@1.1.1","maintainers":[{"name":"cloud-ru-tech","email":"robot@cloud.ru"}],"homepage":"https://github.com/cloud-ru-tech/frontend-tools/-/tree/master/packages/config-i18n","dist":{"shasum":"231964725346c73d1460b55b595ded9090991bb0","tarball":"https://registry.npmjs.org/@cloud-ru/ft-config-i18n/-/ft-config-i18n-1.1.1.tgz","fileCount":34,"integrity":"sha512-CyudAtDaTLsD3cRCVnvpD2rh4843acZMOs/o2WZ8F0jSTsRNS8P51y1fmNQs0jEtoQ0mzicSQFMVs9ML7/pP8w==","signatures":[{"sig":"MEYCIQCa2PGXjS5ggXyW0BaurNZbUOD4IbQmy2uZhSLf7Xbr/gIhAIM181eQ//0rmgVyzgan0GyJY9KnpVbg0hqPgZvvvS4y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33703},"types":"./dist/esm/index.d.ts","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"gitHead":"0d1815a8a0e7814f3262efbf2ddeb1c8407abb3e","_npmUser":{"name":"cloud-ru-tech","email":"robot@cloud.ru"},"repository":{"url":"https://github.com/cloud-ru-tech/frontend-tools.git","type":"git","directory":"packages/config-i18n"},"_npmVersion":"lerna/8.2.4/node@v22.22.2+x64 (linux)","description":"Config and dependencies for using i18n","directories":{},"_nodeVersion":"22.22.2","dependencies":{"i18next":"25.7.4","react-i18next":"16.5.3","i18next-http-backend":"3.0.5","i18next-browser-languagedetector":"8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ft-config-i18n_1.1.1_1776936902517_0.9876692581592155","host":"s3://npm-registry-packages-npm-production"}},"1.1.2-preview-b329dde.0":{"name":"@cloud-ru/ft-config-i18n","version":"1.1.2-preview-b329dde.0","author":{"url":"https://github.com/AGrigorii","name":"Akhremenko Grigorii"},"license":"Apache-2.0","_id":"@cloud-ru/ft-config-i18n@1.1.2-preview-b329dde.0","maintainers":[{"name":"cloud-ru-tech","email":"robot@cloud.ru"}],"homepage":"https://github.com/cloud-ru-tech/frontend-tools/-/tree/master/packages/config-i18n","bugs":{"url":"https://github.com/cloud-ru-tech/frontend-tools/issues"},"dist":{"shasum":"5d8708eaf14451573bf826298eff8f624b38c9c8","tarball":"https://registry.npmjs.org/@cloud-ru/ft-config-i18n/-/ft-config-i18n-1.1.2-preview-b329dde.0.tgz","fileCount":34,"integrity":"sha512-pUlqA3HOsbyDphM+n5RnEEs2tMm4mwtMDajDTxPfsnObUZWw1IAmqsQ28o0obEFFgEjIE/4m5oYRbU0aqm5iEw==","signatures":[{"sig":"MEUCIQDNSKyscANhFwCsTqZFZtJfwwi+RLQhVAvhASCz+R5mqgIgFx1q3Rg5LLr86KG0u6JAy2Yq3XwAXlXm4gm9WrQN/uI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33727},"types":"./dist/esm/index.d.ts","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"gitHead":"6a479040facd2ef8ccee2e1ac5aace522483eac9","_npmUser":{"name":"cloud-ru-tech","email":"robot@cloud.ru"},"repository":{"url":"git+https://github.com/cloud-ru-tech/frontend-tools.git","type":"git","directory":"packages/config-i18n"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"Config and dependencies for using i18n","directories":{},"_nodeVersion":"24.18.0","dependencies":{"i18next":"^25.10.10","react-i18next":"^16.6.6","i18next-http-backend":"^3.0.6","i18next-browser-languagedetector":"^8.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ft-config-i18n_1.1.2-preview-b329dde.0_1786454957717_0.6877576922244297","host":"s3://npm-registry-packages-npm-production"}},"1.1.2-preview-ae96ee4.0":{"name":"@cloud-ru/ft-config-i18n","version":"1.1.2-preview-ae96ee4.0","author":{"url":"https://github.com/AGrigorii","name":"Akhremenko Grigorii"},"license":"Apache-2.0","_id":"@cloud-ru/ft-config-i18n@1.1.2-preview-ae96ee4.0","maintainers":[{"name":"cloud-ru-tech","email":"robot@cloud.ru"}],"homepage":"https://github.com/cloud-ru-tech/frontend-tools/-/tree/master/packages/config-i18n","bugs":{"url":"https://github.com/cloud-ru-tech/frontend-tools/issues"},"dist":{"shasum":"226649fd6e43f3b2e46cac629f8c22c6a246a0ec","tarball":"https://registry.npmjs.org/@cloud-ru/ft-config-i18n/-/ft-config-i18n-1.1.2-preview-ae96ee4.0.tgz","fileCount":34,"integrity":"sha512-D8bBuFlbzdYteUXgoLHCXw0TH1QaEvGTTiOpSnlV/jGgt+pAIQ4rWFyEoZW5IdcgAncDkxzBJMsAwdDReRvU5g==","signatures":[{"sig":"MEUCICSUME4FEZz6Uny+jIz0pgIMEeO5rtgF7Mu/VdjDzC9BAiEAm8lvvJ873Jy9DZBQILZ4dPr4tnB86hC8t5QH2TuO80s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33727},"types":"./dist/esm/index.d.ts","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"gitHead":"92e2cc89f8a0158a6c4e663330a7370bc1c856e5","_npmUser":{"name":"cloud-ru-tech","email":"robot@cloud.ru"},"repository":{"url":"git+https://github.com/cloud-ru-tech/frontend-tools.git","type":"git","directory":"packages/config-i18n"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"Config and dependencies for using i18n","directories":{},"_nodeVersion":"24.19.0","dependencies":{"i18next":"^25.10.10","react-i18next":"^16.6.6","i18next-http-backend":"^3.0.6","i18next-browser-languagedetector":"^8.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/ft-config-i18n_1.1.2-preview-ae96ee4.0_1787048035641_0.9067299224674807","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@cloud-ru/ft-config-i18n","version":"1.1.2","description":"Config and dependencies for using i18n","author":{"name":"Akhremenko Grigorii","url":"https://github.com/AGrigorii"},"publishConfig":{"access":"public"},"license":"Apache-2.0","dependencies":{"i18next":"^25.10.10","i18next-browser-languagedetector":"^8.2.1","i18next-http-backend":"^3.0.6","react-i18next":"^16.6.6"},"types":"./dist/esm/index.d.ts","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"homepage":"https://github.com/cloud-ru-tech/frontend-tools/-/tree/master/packages/config-i18n","repository":{"type":"git","url":"git+https://github.com/cloud-ru-tech/frontend-tools.git","directory":"packages/config-i18n"},"gitHead":"b940f1f7416377d2204bdd6002278fef208b992c","_id":"@cloud-ru/ft-config-i18n@1.1.2","bugs":{"url":"https://github.com/cloud-ru-tech/frontend-tools/issues"},"_nodeVersion":"24.19.0","_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","dist":{"integrity":"sha512-QMWEFBa4ucLaI+Fg3O4YmXxJyvT1RwXOLeSvES1swwjM8iv1ARE3h0gKkjBx2J7YWrT6usIrQXXwXPnXVnXmZw==","shasum":"a618ed6d108f910661d1ec9c1f4d6230ef9e6299","tarball":"https://registry.npmjs.org/@cloud-ru/ft-config-i18n/-/ft-config-i18n-1.1.2.tgz","fileCount":34,"unpackedSize":34100,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEn5VKKMr4TmHOC08r+OVBFh4rrGlGNeXNdxXehH0URLAiBPFMbpro+i0WVRYdlY6ssM+k4JBGiSci/81G4UOlHCBQ=="}]},"_npmUser":{"name":"cloud-ru-tech","email":"robot@cloud.ru"},"directories":{},"maintainers":[{"name":"cloud-ru-tech","email":"robot@cloud.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ft-config-i18n_1.1.2_1787048805281_0.18230615758285285"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-11T12:40:28.396Z","modified":"2026-08-18T10:26:45.618Z","1.0.2":"2025-11-11T12:40:28.696Z","1.0.3-preview-e96e82c.0":"2026-01-20T14:44:12.733Z","1.1.0":"2026-01-22T07:03:52.574Z","1.1.1":"2026-04-23T09:35:02.657Z","1.1.2-preview-b329dde.0":"2026-08-11T13:29:17.863Z","1.1.2-preview-ae96ee4.0":"2026-08-18T10:13:55.790Z","1.1.2":"2026-08-18T10:26:45.436Z"},"author":{"name":"Akhremenko Grigorii","url":"https://github.com/AGrigorii"},"license":"Apache-2.0","homepage":"https://github.com/cloud-ru-tech/frontend-tools/-/tree/master/packages/config-i18n","repository":{"type":"git","url":"git+https://github.com/cloud-ru-tech/frontend-tools.git","directory":"packages/config-i18n"},"description":"Config and dependencies for using i18n","maintainers":[{"name":"cloud-ru-tech","email":"robot@cloud.ru"}],"readme":"# `@cloud-ru/ft-config-i18n`\n\n> Установка: `npm i @cloud-ru/ft-config-i18n`\n>\n> Вместе с пакетом приезжают все необходимые зависимости для работы `i18n` в вашем приложении.\n\n\n## Configuration\n\n```typescript\n// i18n.ts \nimport { i18nConfig } from '@cloud-ru/ft-config-i18n';\nimport { initReactI18next } from 'react-i18next';\n\nconst backendLoadPath; //for example: /localhost:2517/locales/{{lng}}/{{ns}}.json\n\ni18nConfig({ initReactI18next, backendLoadPath });\n```\n\n#### Есть возможность передать в конфиг переменные для {{интерполяции}}\n```typescript\n// По-умолчанию добавлены\ndefaultVariables: {\n  nbsp: '\\u00A0',\n  mdash: '\\u2014',\n}\n\n// Пример добавления дополнительных правил\nconst interpolationVariables = {\n  lt: '\\u003C' // <\n};\n\ni18nConfig({ initReactI18next, backendLoadPath, interpolationVariables });\n\n// Пример использования в файле с переводами\n'Какой{{mdash}}то{{nbsp}}текст'\n```\n\n#### Есть возможность передать в конфиг внешние ресурсы переводов\n\n```typescript\n// Например из другого пакета\nconst I18N_NS = 'customNameSpaceFromAnotherPackage';\n\nexport const additionalTranslationsResources: AdditionalResources = {\n  [Languages.Ru]: {\n    [I18N_NS]: ruTranslation,\n  },\n  [Languages.En]: {\n    [I18N_NS]: enTranslation,\n  },\n};\n\n// Чтобы использовать переводы в стороннем пакете без провайдера\nimport i18next from 'i18next';\n\nconst { t } = useTranslation(I18N_NS, { i18n: i18next });\n\n// Инициализация в целевом микрофронте\n\nimport { additionalTranslationsResources } from 'some-package';\n\ni18nConfig({ initReactI18next, backendLoadPath, additionalResources: additionalTranslationsResources });\n```\n\n```typescript\n//App.tsx\nimport 'src/i18n';\nimport { useTranslation } from 'react-i18next';\n\nexport function App(props) {\n  const { i18n } = useTranslation();\n  useLayoutEffect(() => {\n    props.core?.lang.subscribe(lang => i18n.changeLanguage(lang));\n  }, [props.core, i18n]);\n\n  return (\n     ...\n  );\n}\n```\n\n#### Вспомогательная функция для определения текущего выбранного языка\n\n```typescript\nimport { i18nConfig } from '@cloud-ru/ft-config-i18n';\n\ngetCurrentLanguage();\n```\n\n## Typed Dictionary\n\n> Ранее использовался пакет `@cloud-ru/ft-typed-language-dictionary`. \n> \n> Поскольку типизация объекта имеет отношение лишь к i18n подходу, функция теперь включена этом пакет.\n\nОбход по файлу перевода позволит уйти от использования строковых констант в i18n.\n\nIDE получает функции валидации корректности и автодополнения\n\nДО: `t('someObject.someProperty.fieldA')`\n\nПосле: `t(Dictionary.someObject.someProperty.fieldA)`\n\n## Usage\n\n```typescript\nimport { typedDictionary } from '@cloud-ru/ft-config-i18n';\nimport translation from '../../../public/en-EN/translation.json';\n\nexport const Dictionary = typedDictionary(translation);\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/cloud-ru-tech/frontend-tools/issues"}}