{"_id":"@cartridge-engine/i18n","name":"@cartridge-engine/i18n","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@cartridge-engine/i18n","version":"1.0.0","description":"Type-safe internationalization (i18n) for Ink apps — LanguageProvider, useI18n, and the make-language-type CLI","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"bin":{"make-language-type":"dist/cli.js"},"repository":{"type":"git","url":"git+https://github.com/BAIGAOa/ink-cartridge.git"},"keywords":["ink","react","tui","cli","terminal","i18n","internationalization"],"author":{"name":"BAIGAO"},"license":"MIT","engines":{"node":">=22"},"peerDependencies":{"react":">=18"},"devDependencies":{"@types/node":"^20.19.39","@types/react":"^19.2.14","ink":"^7.1.1","ink-testing-library":"^4.0.0","react":"^19.2.4","typescript":"^5.9.3","vitest":"^4.1.5"},"scripts":{"build":"tsc","watch":"tsc --watch","clean":"rm -rf dist","test":"vitest run","test:watch":"vitest"},"bugs":{"url":"https://github.com/BAIGAOa/ink-cartridge/issues"},"homepage":"https://github.com/BAIGAOa/ink-cartridge#readme","_id":"@cartridge-engine/i18n@1.0.0","gitHead":"7efa0b8f7364153e7fcc4d5b9c390737632dab79","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-SuxziAyAKcu+kPkpe5DwGQ2R98o0k1yPRHsm2jfRxWS7Fs1M/GwwNxmzDcCgjO1EYNpUnTXMPAQQThdDfYNVLw==","shasum":"793ac3f17480c803a60a75be650ea2ed76fb193d","tarball":"https://registry.npmjs.org/@cartridge-engine/i18n/-/i18n-1.0.0.tgz","fileCount":16,"unpackedSize":30438,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFvkbjuCbo0U+13uf0W6qkOV3PdmUHvHosdUV7sqamIkAiEA5CLCItV3nwfKoDwzOHY6XE9B36hdbL8RgfTnd+ov/d0="}]},"_npmUser":{"name":"aigao","email":"3416238595@qq.com"},"directories":{},"maintainers":[{"name":"aigao","email":"3416238595@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/i18n_1.0.0_1787254607398_0.28132837801889043"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-20T19:36:47.212Z","1.0.0":"2026-08-20T19:36:47.552Z","modified":"2026-08-20T19:36:47.815Z"},"maintainers":[{"name":"aigao","email":"3416238595@qq.com"}],"description":"Type-safe internationalization (i18n) for Ink apps — LanguageProvider, useI18n, and the make-language-type CLI","homepage":"https://github.com/BAIGAOa/ink-cartridge#readme","keywords":["ink","react","tui","cli","terminal","i18n","internationalization"],"repository":{"type":"git","url":"git+https://github.com/BAIGAOa/ink-cartridge.git"},"author":{"name":"BAIGAO"},"bugs":{"url":"https://github.com/BAIGAOa/ink-cartridge/issues"},"license":"MIT","readme":"# @cartridge-engine/i18n\n\nType-safe internationalization for Ink apps — a standalone package, imported on demand.\n\n## Install\n\n```bash\nnpm install @cartridge-engine/i18n\n```\n\n## Runtime\n\n### `LanguageProvider`\n\nContext provider for internationalization (i18n). Loads translation resources either from a directory of `{locale}.json` files (via the `path` prop) or from a pre-built inline object (via `resources`).\n\n```tsx\n<LanguageProvider\n  resources={{ en: { hello: 'Hello' }, zh: { hello: '你好' } }}\n  defaultLanguage=\"en\"\n>\n  <App />\n</LanguageProvider>\n```\n\n### `useI18n`\n\nAccess the i18n API from within a component tree wrapped by `LanguageProvider`. Returns `{ t, setLanguage, getLanguages, mergeLanguage, currentLanguage, setDefaultContext }`.\n\n```tsx\nconst { t } = useI18n();\n<Text>{t('hello')}</Text>\n```\n\n## CLI — `make-language-type`\n\nGenerate type-safe i18n bindings from a directory of `{locale}.json` files:\n\n```bash\nnpx make-language-type <source-dir> <output-dir> [--watch] [--debounce <ms>] [--from <pkg>]\n```\n\n`--from` defaults to `@cartridge-engine/i18n`.\n\n## Types\n\n- `LanguageProviderProps`\n- `I18nContextValue`\n","readmeFilename":"README.md","_rev":"1-a177fa14b1c867506026587311a6200d"}