国际化
为你的应用添加多语言支持。使用 Proyecta Content API 进行编辑内容本地化,或让 AI 直接在代码中接入 i18n 框架。
Proyecta 支持两种互补的应用国际化方式:
- 通过 Proyecta Content API 进行内容本地化 — 适用于需要翻译成多种语言的编辑内容(博客文章、FAQ、营销文案)
- 通过翻译框架进行代码级 i18n — 适用于 UI 字符串、日期、货币以及运行时语言切换
两种方式现在均可使用。选择哪种取决于你需要翻译的内容类型。
Proyecta 构建器本身支持 24 种语言,因此产品在 i18n 方面相当成熟。同样的模式也适用于你在其中构建的应用。
方式一:内容本地化(Proyecta Content API)
Section titled “方式一:内容本地化(Proyecta Content API)”如果你正在构建内容丰富的站点——博客、知识库、营销页面、产品目录——请使用 Content API 内置的语言区域支持。
// Create the locales you supportawait proyecta.content.locales.create({ /* code: 'en', name: 'English' */});await proyecta.content.locales.create({ /* code: 'es', name: 'Español' */});await proyecta.content.locales.create({ /* code: 'fr', name: 'Français' */});
// Then create entries that exist in multiple locales — fetch the right// translation per request based on the user's locale.以下情况适合使用此方式:
- 不写代码的编辑人员需要翻译内容
- 你希望翻译内容可以版本化管理
- 你需要按语言区域分别发布(定时发布功能即将推出——目前条目需要通过 API 手动发布)
完整的 Content API 文档请参阅内容管理。
方式二:代码级 i18n 框架
Section titled “方式二:代码级 i18n 框架”对于 UI 字符串——标签、按钮、错误信息、日期、货币——可以让 AI 直接在项目中接入 i18n 框架:
Add internationalization to my app.Support English, Spanish, French, and Arabic.Add message catalogs in src/locales/.Add a language switcher in the header.Use locale-prefixed URLs like /en/about and /es/about.Make sure RTL layout works correctly for Arabic.AI 将会:
- 选择框架 — AI 使用
i18next配合react-i18next(Proyecta 的标准方案) - 创建语言目录文件,存放在
src/locales/下(每种语言一个 JSON 文件) - 用
t()调用包裹文本(来自 react-i18next 的useTranslationhook) - 添加语言切换器组件
- 配置带语言前缀的 URL 路由
- 处理 RTL 布局(
dir="rtl"),适用于阿拉伯语、希伯来语等 - 按语言区域格式化数字、日期和货币
用 AI 自动翻译
Section titled “用 AI 自动翻译”基础语言确定后,AI 非常擅长生成其他语言的目录文件:
"Translate every string in src/locales/en.json into Spanish, French, German, and Japanese. Use natural, idiomatic phrasing — don't translate brand names.""My app is fully built in English. Add Spanish translations for everything and an es/ route prefix."
对于高风险内容(法律文本、医疗、金融),在上线前请让专业人工翻译审核 AI 的输出结果。
两种方式结合使用
Section titled “两种方式结合使用”大多数真实应用会同时使用两种方式:UI 框架(按钮、错误提示、导航)使用代码级 i18n,编辑内容(文章、产品描述)使用 Content API。两者可以很好地共存——i18n 框架在 build 时处理目录文件,Content API 在运行时提供本地化条目。
- 先确定基础语言并最终定稿文案。 翻译一个不断变动的内容会非常痛苦。
- 批量翻译。 不要边开发边翻译——等功能稳定后再统一处理。
- 尽早测试 RTL,尤其是支持阿拉伯语或希伯来语时。RTL 的问题往往在真正查看之前都不会暴露。
- 在
<html>上加上lang和dir属性。 浏览器和屏幕阅读器依赖这些信息。 - 使用
Intl进行格式化。 不要手动实现日期或货币格式化——请使用Intl.DateTimeFormat、Intl.NumberFormat。
- 构建器内置的语言区域管理 UI — 在 Proyecta 内直接选择语言区域、查看翻译覆盖情况、编辑目录文件
- 新字符串保存时自动翻译
- 开箱即用的 i18n 项目模板,框架已预先配置完毕