国际化
使用TinaCMS进行国际化
管理多语言内容对于全球覆盖至关重要。TinaCMS提供了多种灵活的选项来促进这一点。本指南重点介绍两种主要策略:
- 基于目录的本地化
- 基于字段的本地化
基于目录的本地化
使用基于目录的本地化时,您的内容应以目录为基础进行结构化,其中语言环境(例如,en,fr)位于集合根目录(例如,blog,docs)下。例如:
实现基于目录的本地化的步骤
在您的config.ts中,您可能会有一个包含所有语言环境的集合
路由和文件结构:
无论您使用的是Next.js还是其他框架,您的路由逻辑都应更新,以根据URL或用户设置选择正确的语言环境。
使用语言环境,您可以根据路径筛选文档
有关设置NextJS特定实现路由的更多信息,请参阅我们的指南
内容管理
通过此设置,编辑者将通过文档列表浏览每个集合的语言环境。
如果用户想要创建现有文档的新本地化版本,他们可以从文档列表中点击“复制文档”,并在新文档的文件名中添加所需的语言环境。
基于字段的本地化
在这种方法中,每个本地化字段包含多个语言的嵌套值。例如,单个Markdown文件可能如下所示:
实现基于字段的本地化的步骤
您需要修改您的TinaCMS架构以包含本地化字段。
注意:如果您使用的是markdown/mdx内容,并希望使用markdown正文作为您的内容,您可能更倾向于使用基于目录的本地化方法。
显示本地化内容:
在您网站的组件中,您可以根据当前语言环境选择正确的本地化字段进行显示。
内容管理:
TinaCMS将所有本地化字段显示为根级字段的子字段。
使用GitHub Action进行国际化
使用基于目录的本地化时,开发人员需要将相应语言的MDX或JSON文件放置在正确的位置以加载多语言路由。开发人员可以选择手动翻译文本内容并将其放置在正确的位置,或者他们可以使用GitHub Action来自动化此过程。以下是一个解释有效GitHub Action工作流程的示例:
为GitHub Actions设置触发条件
必须为此GitHub Action设置触发条件。通常,触发发生在PR成功合并时。为了减少令牌消耗,计划触发是一个替代方案。下面的示例显示了一个仅在PR合并并包含指定目录中的更改时激活的GitHub Action。
识别修改的目标文件
为了最小化令牌使用,仅识别修改的文件进行翻译是必要的。下面是一个列出所有修改文件的简单示例。
创建翻译分支
创建一个单独的分支以区分原始分支和新添加的翻译是必要的。这种方法有助于手动审核。
通过LLM API调用获取翻译
外部LLM用于自动翻译。翻译质量和格式完整性取决于所选模型和提示。下面是一个将MDX文件翻译成中文的英文提示示例,同时保留文档接口和关键信息。
将所有更改提交到新分支并创建PR
由LLM生成的内容不能被视为完全可靠。将所有更改提交到新的PR以进行彻底验证代表了一种更谨慎和系统的方法。