现在越来越多的游戏进军海外,不同国家和地区需要配置不同的语言,这里简要介绍下实现方式。
首先要将不同的语言对照表,在每个引用到文字的地方,都使用表中的数据,表的格式类似于以下:
接下来会可能有以下两种需求:
1,对于轻量级游戏而言,只需要在启动的时候获取到本机语言,然后读取对应的表即可,代码类似于以下:
public SystemLanguage myLanguage;
/// <summary>
/// 获取本地化语言
/// </summary>
public string GetLanguageStr(int ID)
{
myLanguage=Application.systemLanguage;
var _language = LanguageTxtReader.Lookup(ID);
//语言本地化
if (myLanguage == SystemLanguage.Chinese ||
myLanguage == SystemLanguage.ChineseSimplified)
{
return _language.CN;
}
else
{
return _language.EN;
}
}
2,可以动态更改本地的语言,这个需要在所有调用的模块写回调,这样就可以在设置里面更改后,动态更改所有的显示。
总之,如果要做多语言显示的话,最好提前设定好规则,不然后期修改时比较麻烦。