# 语言 {#translate}

语言可能成为理解的障碍。我们希望尽可能让更多人能够使用 Tuist。如果你所说的语言尚未得到 Tuist 支持，你可以通过改进英文源内容以及驱动我们翻译流水线的本地化上下文，帮助 Tuist 支持该语言。

由于语言支持是一项持续的工作，我们会在有贡献者愿意协助维护时添加新语言。目前支持的语言包括：

- 英语
- 西班牙语
- 日语
- 格鲁吉亚语
- 韩语
- 俄语
- 粤语
- 简体中文
- 繁体中文

> [!TIP]
> **请求新增语言**
>
> 如果你认为 Tuist 支持某种新语言会带来益处，请在[社区论坛中创建一个话题](https://community.tuist.io/c/general/4)，与社区共同讨论。


## 如何提供帮助 {#how-to-translate}

Tuist 的语言支持由代码仓库驱动。贡献者更新英文源内容和翻译上下文，我们的翻译流水线会自动生成本地化文件。

工作流程如下：

1. 更新英文源内容。
2. 如果译者需要更多指导，请更新相关的 `L10N.md` 上下文。
3. 提交包含这些源更改的拉取请求。
4. 在更改合并到 `main` 后，翻译工作流会重新生成目标 `.po` 文件，并打开一个后续拉取请求以包含翻译后的更新。

> [!WARNING]
> **不要修改生成的本地化内容**
>
> 不要直接编辑生成的本地化内容。请改为更新英文源和语言上下文。


## L10N.md 结构 {#l10n-md-structure}

`L10N.md` 文件定义了发送给翻译模型的上下文。最简单的理解方式是，将它们视为可以在不同目录层级中存在的作用域化语言说明。

例如：

```text
.
|-- L10N.md
|-- server
|   |-- L10N.md
|   |-- L10N
|   |   `-- es.md
|   `-- priv
|       `-- gettext
|           `-- marketing.pot
```


## 目录上下文 {#directory-context}

翻译脚本会从仓库根目录向下遍历到待翻译的目录，并将路径上找到的每个 `L10N.md` 文件合并起来。

在上述示例中：

- `L10N.md` 全局生效。
- `server/L10N.md` 添加服务器特定的上下文。
- `server/L10N/es.md` 为该区域添加仅适用于西班牙语的覆盖配置。

这意味着你可以将上下文放在合适的位置：

- 在根目录放置仓库范围的指导
- 在子目录中放置特定区域的指导
- 在 `L10N/<locale>.md` 中放置特定语言的指导
