使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "更新 Solid useIntlayer API 用法以直接访问属性"v8.9.02026/5/4
- "添加 init 命令"v7.5.92025/12/30
- "初始化历史"v5.5.102025/6/29
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接复制文档 Markdown 到剪贴板
使用Intlayer翻译您的Lynx and React mobile app | 国际化(i18n)
请参阅 GitHub 上的应用模板。
为什么选择 Inlayer 而不是替代品?
与 react-native-localize 或 i18next 等主要解决方案相比,Intlayer 是一个带有集成优化的解决方案,例如:
与“react-native-localize”或“i18next”等主要解决方案相比,Intlayer 是一个具有集成优化的解决方案,例如:
完整的山猫覆盖
Intlayer 经过优化,可与 Lynx 和 React 完美配合,提供组件级内容范围、TypeScript 支持以及扩展国际化 (i18n) 所需的所有功能。
</Accordion>
捆绑尺寸
不要将大量 JSON 文件加载到页面中,而只需加载必要的内容。 Intlayer 有助于将捆绑包和页面大小减少多达 50%。
</Accordion>
可维护性
确定应用程序内容的范围有利于大型应用程序的维护。您可以复制或删除单个功能文件夹,而无需承担检查整个内容代码库的精神负担。此外,Intlayer 具有完全类型化 (fully typed),以确保您的内容的准确性。
人工智能代理
共置内容减少大型语言模型 (LLM) 所需的上下文。 Intlayer 还附带了一套工具,例如用于测试缺失翻译的 CLI、LSP、MCP 和 agent skills,使 AI 代理的开发者体验 (DX) 更加流畅。
自动化
使用您选择的法学硕士,通过自动化在 CI/CD 管道中进行翻译,而费用由您的 AI 提供商承担。 Intlayer 还提供了一个编译器来自动提取内容,以及一个网络平台来帮助在后台翻译。
</Accordion>
表现
将大量 JSON 文件连接到组件可能会导致性能和反应性问题。 Intlayer 可在构建时 (build time)优化您的内容加载。
无需开发即可扩展
</AccordionGroup>
安装依赖
从你的 Lynx 项目中,安装以下包:
bash复制代码复制代码到剪贴板
--interactive标志是可选的。如果你是 AI 代理,请使用intlayer-cli init。此命令将检测您的环境并安装所需的包。例如:
bash复制代码复制代码到剪贴板
Packages
intlayer
用于配置、字典内容、类型生成和 CLI 命令的核心 i18n 工具包。react-intlayer
React 集成,提供上下文提供者和 React hooks,您将在 Lynx 中使用它们来获取和切换语言环境。lynx-intlayer
Lynx 集成,提供用于将 Intlayer 与 Lynx bundler 集成的插件。
创建 Intlayer 配置
在您的项目根目录(或任何方便的位置)中,创建一个 Intlayer 配置文件。它可能如下所示:
intlayer.config.ts复制代码复制代码到剪贴板
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // ... 添加您需要的任何其他语言环境 ], defaultLocale: Locales.ENGLISH, }, }; export default config;在此配置中,您可以:
- 配置您的受支持语言环境列表。
- 设置默认语言环境。
- 稍后,您可以添加更多高级选项(例如,日志、自定义内容目录等)。
- 有关更多信息,请参阅 Intlayer 配置文档。
将 Intlayer 插件添加到 Lynx bundler
要在 Lynx 中使用 Intlayer,您需要将插件添加到您的
lynx.config.ts文件中:lynx.config.ts复制代码复制代码到剪贴板
添加 Intlayer 提供者
为了在您的应用程序中保持用户语言同步,您需要使用
react-intlayer中的IntlayerProvider组件包装您的根组件。此外,您需要添加
intlayerPolyfill函数文件以确保 Intlayer 能正常工作。src/index.tsx复制代码复制代码到剪贴板
声明您的内容
在您的项目中的任何位置(通常在
src/中)创建内容声明文件,使用 Intlayer 支持的任何扩展格式:.content.json.content.jsonc.content.json5.content.ts.content.tsx.content.js.content.jsx.content.mjs.content.mjx.content.cjs.content.md.content.mdx.content.yaml.content.yml- 等等
示例:
src/app.content.ts复制代码复制代码到剪贴板
import { t, type Dictionary } from "intlayer"; const appContent = { key: "app", content: { title: "React", subtitle: t({ zh: "在 Lynx 上", en: "on Lynx", fr: "sur Lynx", es: "en Lynx", }), description: t({ zh: "点击徽标并享受乐趣!", en: "Tap the logo and have fun!", fr: "Appuyez sur le logo et amusez-vous!", es: "¡Toca el logo y diviértete!", }), hint: [ t({ zh: "编辑", en: "Edit", fr: "Modifier", es: "Editar", }), " src/App.tsx ", t({ zh: "以查看更新!", en: "to see updates!", fr: "pour voir les mises à jour!", es: "para ver actualizaciones!", }), ], }, } satisfies Dictionary; export default appContent;有关内容声明的详细信息,请参阅 Intlayer 的内容文档。
在您的组件中使用 Intlayer
在子组件中使用
useIntlayerhook 来获取本地化内容。src/App.tsx复制代码复制代码到剪贴板
在基于字符串的 props 中使用
content.someKey时(例如,按钮的title或Text组件的children),调用content.someKey.value来获取实际字符串。更改应用语言环境
可选要从您的组件中切换语言环境,您可以使用
useLocalehook 的setLocale方法:src/components/LocaleSwitcher.tsx复制代码复制代码到剪贴板
这会触发所有使用 Intlayer 内容的组件的重新渲染,现在显示新语言环境的翻译。
有关更多详细信息,请参阅
useLocale文档。
配置 TypeScript(如果您使用 TypeScript)
Intlayer 在一个隐藏文件夹中生成类型定义(默认是 .intlayer),以改进自动补全并捕获翻译错误:
复制代码到剪贴板
这使得以下功能成为可能:
- 自动补全 您的字典键。
- 类型检查 如果您访问不存在的键或类型不匹配,将发出警告。
Git 配置
为了避免提交由 Intlayer 自动生成的文件,请将以下内容添加到您的 .gitignore 中:
复制代码到剪贴板
VS Code 扩展
为了提升您使用 Intlayer 的开发体验,您可以安装官方的 Intlayer VS Code 扩展。
该扩展提供:
该扩展提供:
- 翻译键的自动补全。
- 实时错误检测,用于发现缺失的翻译。
- 内联预览已翻译的内容。
- 快速操作,轻松创建和更新翻译。 有关如何使用该扩展的更多详细信息,请参阅Intlayer VS Code 扩展文档。
深入了解
- 可视化编辑器:使用Intlayer 可视化编辑器以可视化方式管理翻译。
- CMS 集成:您还可以将字典内容外部化并从CMS中获取。
- CLI 命令:探索Intlayer CLI以执行诸如提取翻译或检查缺失键等任务。
