> For the complete documentation index, see [llms.txt](https://simple.superiormc.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://simple.superiormc.cn/arcmenu-wen-dang/gong-neng-pei-zhi/languages.md).

# 语言管理

语言文件控制 ArcMenu 的命令提示、错误消息和管理反馈。菜单作者填写的标题、按钮、提示框与动作消息不会因此自动翻译。

Paper、Folia、Leaf 和 Spigot 均使用 `plugins/ArcMenu/languages/` 中的语言文件。内置简体中文 `zh_CN.yml` 与英文 `en_US.yml`。

## 主配置

语言设置位于 `plugins/ArcMenu/config.yml`，Spigot 也使用这个路径。`plugins/ArcMenu/spigot/config.yml` 只负责其主菜单快捷键。

```yaml
language:
  default: zh_CN
  follow-player-locale: true
```

| 字段                     | 用途                                        |
| ---------------------- | ----------------------------------------- |
| `default`              | 默认语言，必须对应已存在的语言文件；控制台和日志使用此语言。            |
| `follow-player-locale` | `true` 时按玩家客户端语言选择插件提示；`false` 时统一使用默认语言。 |

希望所有玩家看到简体中文时，使用 `default: zh_CN` 与 `follow-player-locale: false`。允许玩家按客户端语言显示时，保留 `true`。

没有完全对应的语言时，优先尝试已加载的同语种语言，再使用默认语言。某条消息没有翻译时，会依次使用默认语言和内置简体中文消息补充。

## 修改提示文字

1. 在 `languages/` 中打开要修改的语言文件。
2. 保留现有配置节与消息名称，只修改对应文字。
3. 保留消息中的 `{0}`、`{1}` 等替换标记及必要的命令参数。
4. 执行 `/arcmenu validate` 和 `/arcmenu reload`，检查实际提示。

例如，`command.open.no-permission` 用于玩家没有 `arcmenu.use` 权限时的提示。修改这条消息不会授予权限，也不会改变检查结果。

所有消息值必须是非空字符串，不能填写列表、数字或 `true`。包含冒号或特殊字符的文字应保留引号。替换标记由对应消息填入参数，不是菜单中的玩家占位符。

不必因为缺少一条新消息而覆盖整份自定义语言文件；内置消息会补充未填写的内容。更新后可根据需要再翻译或调整新增提示。

## 添加语言

复制一份现有语言文件，以客户端语言名称命名，例如 `fr_FR.yml`，保留消息结构后逐项翻译。文件名采用语言代码与地区代码，语言代码小写、地区代码大写，中间使用下划线。

重载后，该语言可由玩家客户端选择，也可设置为 `language.default`。不要仅修改默认语言名称而不创建对应文件。

添加消息名称不会创建新的插件功能。自定义菜单的多语言内容，应由菜单作者分别编写，并按服务器的菜单选择或占位符方案配置。

## 检查

测试默认语言、玩家客户端语言和不存在完整翻译时的回退效果。若修改后未生效，确认文件位于根目录的 `languages/`，修改的是实际使用的语言，且已成功重载。

语言设置只影响插件消息，菜单文字格式见[占位符与文字格式](/arcmenu-wen-dang/wen-zi-ge-shi/text-placeholders.md)。
