多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# :-: 什么是本地化和国际化 下面内容来自来自[wikipedia](https://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E5%8C%96%E4%B8%8E%E6%9C%AC%E5%9C%B0%E5%8C%96): > 本地化则是指当移植软件时,加上与特定区域设置有关的信息和翻译文件的过程。国际化是指在设计软件,将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言及地区时,软件本身不用做内部工程上的改变或修正。 本地化的国际化的英文分别是Localization和internationalization,由于字母过多,它们被简化成了L10n和i18n,其中i18n的简写由于其中间有足足十八个字母等原因而更加常用。 Minecraft本身就提供了本地化和国际化方案。在`assets/minecraft/lang`文件夹下,便有着各种语言的语言文件。 # :-: 为自己的Mod添加语言文件 在前几章节,创建的第一个物品钻石棒子,拿在手中的名称是`item.diamondStick.name`而不是钻棒。同样彩虹方块是`tile.bm.rainBow.name`而不是彩虹石,这正是因为没有添加语言文件。 由于Minecraft的默认语言是英语,所以我们必须先支持英语,再支持中文(当初我直接支持中文,到最后才知道要先支持英语),新建文件夹`src/main/resources/assets/bm/lang`,并在其中创建文件`en_US.lang`,注意哈,等号两边莫得空格,如果有那么语言文件无法加载 `src/main/resources/assets/bm/lang/en_US.lang` ~~~ item.diamondStick.name=Diamond Stick tile.bm.rainBow.name=RainBow Block ~~~ 如果搞不清楚语言文件等号前面应该使用什么,可以先不写,在游戏中看一看,然后把不正常的部分写入语言文件。 最后其他的(创造物品栏的标题)就自己改吧。 * `item.diamondStick.name`便是金蛋的名称,这个名称由该物品的`setUnlocalizedName`方法设置 * `tile.bm.rainBow.name`便是草块的名称,这个名称由该方块的`setUnlocalizedName`(或setBlockName)方法设置 当然,作为面向中国人开发的模组,中文语言文件还是要有滴,在同一个文件夹下创建`zh_CN.lang` `src/main/resources/assets/bm/lang/zh_CN.lang.lang` ~~~ item.diamondStick.name=钻棒 tile.bm.rainBow.name=彩虹石 ~~~ 当然,你也可以添加其他语言文件,如繁体中文(zh_TW)等,语言文件的文件名通常按照(https://zh.wikipedia.org/wiki/ISO_639-1)(https://zh.wikipedia.org/wiki/ISO_3166-1)代码标准。 最后说一句,语言文件**一定要使用UTF-8编码**。