跳转到内容

国际化

为你的应用添加多语言支持。使用 Proyecta Content API 进行编辑内容本地化,或让 AI 直接在代码中接入 i18n 框架

Proyecta 支持两种互补的应用国际化方式:

  1. 通过 Proyecta Content API 进行内容本地化 — 适用于需要翻译成多种语言的编辑内容(博客文章、FAQ、营销文案)
  2. 通过翻译框架进行代码级 i18n — 适用于 UI 字符串、日期、货币以及运行时语言切换

两种方式现在均可使用。选择哪种取决于你需要翻译的内容类型。

Proyecta 构建器本身支持 24 种语言,因此产品在 i18n 方面相当成熟。同样的模式也适用于你在其中构建的应用。

方式一:内容本地化(Proyecta Content API)

Section titled “方式一:内容本地化(Proyecta Content API)”

如果你正在构建内容丰富的站点——博客、知识库、营销页面、产品目录——请使用 Content API 内置的语言区域支持。

// Create the locales you support
await 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 文档请参阅内容管理

对于 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 将会:

  1. 选择框架 — AI 使用 i18next 配合 react-i18next(Proyecta 的标准方案)
  2. 创建语言目录文件,存放在 src/locales/ 下(每种语言一个 JSON 文件)
  3. t() 调用包裹文本(来自 react-i18next 的 useTranslation hook)
  4. 添加语言切换器组件
  5. 配置带语言前缀的 URL 路由
  6. 处理 RTL 布局(dir="rtl"),适用于阿拉伯语、希伯来语等
  7. 按语言区域格式化数字、日期和货币

基础语言确定后,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 的输出结果。

大多数真实应用会同时使用两种方式:UI 框架(按钮、错误提示、导航)使用代码级 i18n,编辑内容(文章、产品描述)使用 Content API。两者可以很好地共存——i18n 框架在 build 时处理目录文件,Content API 在运行时提供本地化条目。

  1. 先确定基础语言并最终定稿文案。 翻译一个不断变动的内容会非常痛苦。
  2. 批量翻译。 不要边开发边翻译——等功能稳定后再统一处理。
  3. 尽早测试 RTL,尤其是支持阿拉伯语或希伯来语时。RTL 的问题往往在真正查看之前都不会暴露。
  4. <html> 上加上 langdir 属性。 浏览器和屏幕阅读器依赖这些信息。
  5. 使用 Intl 进行格式化。 不要手动实现日期或货币格式化——请使用 Intl.DateTimeFormatIntl.NumberFormat
  • 构建器内置的语言区域管理 UI — 在 Proyecta 内直接选择语言区域、查看翻译覆盖情况、编辑目录文件
  • 新字符串保存时自动翻译
  • 开箱即用的 i18n 项目模板,框架已预先配置完毕