pack.description=附加包教程示例-本地化
pack.name=附加包教程示例
Minecraft 作为全世界销量第一的游戏,在世界范围内有着广大的玩家群体,这一定程度上得益于其对于世界各国语言的良好支持。而对于一个优秀的附加包作品来说,如果想要其传播的更为广泛,适配其他国家的语言也是一道必不可少的工序,我们通常将这个过程称为“本地化”。
Mojang 为附加包提供了一种非常简便的本地化方案,即通过语言文件(Lang File)来适配。
我们接着来为我们之前创建的行为包添加内容,在前面的学习中,我们建立了一个没有任何内容的简单行为包并为其进行了基础信息的配置,现在我们以在清单文件中实现本地化为例,对语言文件的使用进行一个初步的介绍。
语言文件通常放在资源包的texts
文件夹中,后缀为.lang
。语言文件也可以放在行为包中,但它只可以更改包的名称和描述。
语言文本是以键值对的形式存在的,其中 =
前的内容为键名,对于键名,只有清单文件中包名称与包描述的本地化文本有着固定的键名,即pack.name
与pack.description
,而其他本地化文本的键名则可以自行设定,当然相应的,应用时您也需要使用您自己设定的键名;=
后的内容为值,=
前后不能有空格,否则会导致语言文件加载失败。
可以用两个井号( ##
)添加行注释或行内注释,井号后面的所有文本都都将被忽略,直到下一行。
语言文本可以包含有序替代( %1
、 %2
)或无序替代( %s
)。原版翻译文本中的替代将由游戏填充,而玩家可以使用类似于/tellraw
的命令手动填充替换。
在行为包、资源包的根目录下各自新建一个名为 texts
的文件夹,并在其中新建两个文件,名称分别为: zh_CN.lang
、en_US.lang
,它们将分别用于储存简体中文及美式英文的文本数据。
现在,该包的目录如下所示:
接着我们打开这两个语言文件,并向其中分别写入如下内容:
pack.description=附加包教程示例-本地化
pack.name=附加包教程示例
pack.description=Addon Tutorial Example - Localization
pack.name=Addon Tutorial Example
如上文所述,pack.name
与pack.description
为键名,而附加包教程示例-本地化
是键值,=
前后不能有空格。
接着我们打开清单文件,对其进行如下修改:
将"header"
中的"description"
的值修改为"pack.description"
"description": "pack.description",
将"header"
中"name"
的值修改为"pack.name"
"name": "pack.name",
其余部分保持不变。
为了使游戏能够在附加包不加载的情况下在附加包信息界面显示刚才对清单文件本地化的内容,我们需要让游戏预读取语言文件。现在我们新建一个文件,将其命名为languages.json
,并在其中写入刚刚添加的两个语言文件的语言代号:
[
"en_US",
"zh_CN"
]
现在进入游戏,在附加包信息界面您可看到该包的名字及描述发生了变化,切换语言至美式英语后即可看到您设置的美式英语文本。
打开资源包的texts
文件夹,找到之前制作的zh_CN.lang
、en_US.lang
,它们将用来本地化物品、方块名。
在两个文件中添加如下内容:
item.<物品赋命名空间标识符>=物品本地化名称
tile.<方块赋命名空间标识符>.name=方块本地化名称
item.<物品赋命名空间标识符>=物品本地化名称
tile.<方块赋命名空间标识符>.name=方块本地化名称
进入游戏,自定义物品、方块就有了本地化名称。