Skip to content

文本与本地化

本页面镜像自
BedrockWiki

根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。

Minecraft 是一款支持全球多语言本地化的游戏。为实现这一特性,游戏采用了基于语言代码的翻译键值系统。对于自定义实体(Entity)、物品(Item)和方块(Block),Minecraft 会自动生成翻译键值,而我们需要通过资源包为其提供本地化文本。

语言文件

文件位置

语言文件通常位于资源包的 texts 文件夹中,使用 .lang 扩展名。虽然也可以放置在行为包中,但行为包仅能修改资源包清单(manifest)的名称和描述。

📁RP
📁texts
🈵en_US.lang
📝languages.json
📝manifest.json

Minecraft 目前支持 29 种语言,详见 § 原版支持语言

格式规范

语言文件采用键值对格式,使用等号(=)分隔。键为翻译键值,值为字符串(不支持换行符)。

toml
wiki.example_translation.line_1=第一行内容!
wiki.example_translation.line_2=这里是第一行之后的其他信息。

可通过双井号(##)添加注释,支持行尾注释和整行注释(注释内容持续到行尾)。

WARNING

行尾注释前的空格不会被自动删除。如需缩进注释,请使用制表符(Tab)。

toml
## 译者注:这个翻译可能有点幽默成分
item.flint_and_steel.name=燧石与史蒂夫	##[原文如此]

翻译文本支持占位符替换,可使用有序占位符(%1%2)或无序占位符(%s)。原版占位符由游戏自动填充,而通过原始JSON文本命令(如 /tellraw)可手动指定替换值。

toml
commands.op.success=已授予管理员权限:%s
immersive_reader.book_page_header=第 %1 页 / 共 %2 页

应用场景

本地化文本可用于以下场景(包括但不限于):

  • 资源包/行为包名称与描述
  • 实体、物品或方块的名称
  • 书页内容
  • 告示牌文字
  • /tellraw/titleraw 命令
  • 对话系统中的文本

但某些文本(如铁砧重命名的物品)不支持本地化。

本地化实践

TIP

最佳实践是为每个主要支持语言创建独立语言文件。例如要完整支持英语,应同时创建 en_US.lang(美式英语)和 en_GB.lang(英式英语)文件。

编辑语言文件时,需在 texts 文件夹中添加 languages.json 文件,声明需要修改的语言列表。这会告知 Minecraft 应用对应的本地化配置。

json
[
  "en_US",
  "en_GB",
  "fr_FR"
]

自定义语言

通过全局资源包,可使用 languages.jsonlanguage_names.json 添加自定义语言。应用全局资源包后,即可在游戏设置的"语言"选项中选择新语言。

假设我们有两个功能完善的语言文件:xx_XX.langyy_YY.lang

json
[
  "xx_XX",
  "yy_YY"
]

language_names.json 用于定义语言在选项菜单中的显示名称:

json
[
  [ "xx_XX", "新语言(自定义语言 #1)" ],
  [ "yy_YY", "维基语(自定义语言 #2)" ]
]

WARNING

使用自定义语言时,在禁用其所属资源包前请先切换回其他语言,否则可能导致游戏崩溃。

原版支持语言

下表列出了 Minecraft 默认支持的 29 种语言:

文件ID语言国家/地区
id_ID印度尼西亚语印度尼西亚
da_DK丹麦语丹麦
de_DE德语德国
en_GB英语英国
en_US英语北美
es_ES西班牙语西班牙
es_MX墨西哥西班牙语墨西哥
fr_CA加拿大法语加拿大
fr_FR法语法国
it_IT意大利语意大利
hu_HU匈牙利语匈牙利
nl_NL荷兰语荷兰
nb_NO书面挪威语挪威
pl_PL波兰语波兰
pt_BR巴西葡萄牙语巴西
pt_PT葡萄牙语葡萄牙
sk_SK斯洛伐克语斯洛伐克
fi_FI芬兰语芬兰
sv_SE瑞典语瑞典
tr_TR土耳其语土耳其
cs_CZ捷克语捷克共和国
el_GR希腊语希腊
bg_BG保加利亚语保加利亚
ru_RU俄语俄罗斯
uk_UA乌克兰语乌克兰
ja_JP日语日本
zh_CN简体中文中国
zh_TW繁体中文台湾地区
ko_KR韩语韩国