# :-: 什么是本地化和國際化
下面內容來自來自[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編碼**。