什么是本地化和国际化
下面内容来自来自wikipedia:
本地化则是指当移植软件时,加上与特定区域设置有关的信息和翻译文件的过程。国际化是指在设计软件,将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言及地区时,软件本身不用做内部工程上的改变或修正。
本地化的国际化的英文分别是Localization和internationalization,由于字母过多,它们被简化成了L10n和i18n,其中i18n的简写由于其中间有足足十八个字母等原因而更加常用。
Minecraft本身就提供了本地化和国际化方案。在assets/minecraft/lang
文件夹下,便有着各种语言的语言文件。
为自己的Mod创建语言文件
大家在前面几部分中可能注意到了,拿在手里的不是金蛋,而是item.goldenEgg.name
,放在地上的不是草块,而是tile.grassBlock.name
,这正是因为没有添加语言文件。
英语是全球最广泛使用的语言,Minecraft的默认使用语言也是英语,所以很明显地,我们应该首先对英语提供支持。
新建文件夹src/main/resources/assets/fmltutor/lang
,并在其中新建文件en_US.lang
,注意等号的两边没有空格:
src/main/resources/assets/fmltutor/lang/en_US.lang:
item.goldenEgg.name=Golden Egg
tile.grassBlock.name=Grass Block
itemGroup.fmltutor=FML Tutor
item.goldenEgg.name
便是金蛋的名称,这个名称由该物品的setUnlocalizedName
方法设置tile.grassBlock.name
便是草块的名称,这个名称由该方块的setUnlocalizedName
方法设置itemGroup.tabFMLTutor
便是新创造模式物品栏的名称
如果搞不清楚语言文件等号前面应该使用什么,可以先不写,在游戏中看一看,然后把不正常的部分写入语言文件。
当然,作为面向中国人制作的Mod,中文语言文件还是要有的。在同一个文件夹下新建文件zh_CN.lang
:
src/main/resources/assets/fmltutor/lang/zh_CN.lang:
item.goldenEgg.name=金蛋
tile.grassBlock.name=草块
itemGroup.fmltutor=FML教程
当然,你也可以添加其他语言文件,如繁体中文(zhTW)等,语言文件的文件名通常按照“**语言\国家**”代码标准。
最后说一句,语言文件一定要使用UTF-8编码。