我正在完成我的libGDX安卓游戏,我在制作本地化时遇到了问题。
我希望我的游戏本地化为波兰语,英语,阿拉伯语和中文。要做到这一点,我正在使用libgdx I18NBundle,它工作得非常好。我对前2没有任何问题,他们用我的BitmapFont打印得非常好(我通过Hiero制作了它)。
我完全不知道如何渲染后者2. Hiero似乎无法从非西方字体生成位图,并且尝试Gdx freetype扩展让我更加困惑(打印西方符号不起作用 - 显示的另一个角色,当我试图打印中文/阿拉伯字符时,我得到的只是空格。)
这是问题的第二部分。让我们假设我/我们设法实现了工作字体渲染。很明显,我将需要3种字体(波兰语/英语,中文和阿拉伯语)。我必须以某种方式检测系统的语言,然后加载适当的字体。加载正确的字体似乎不是一个大问题,问题是,我如何检测语言(不是整个语言环境)。
答案 0 :(得分:0)
Hiero为非西方字体生成位图字体。我为我的游戏生成了几种西里尔语位图字体。我刚刚从这个page尝试了几种阿拉伯字体 - 一切都很顺利。可能你应该问另一个问题,更详细地描述你对Hiero的问题。
您可以在Locale.getDefault().getLanguage()
类中使用方法AndroidLauncher
(更多信息here)在运行时获取设备上的当前语言。
然后你应该决定你将使用的本地化语言,并将这些信息传递给主游戏类。
protected void onCreate (Bundle savedInstanceState) {
...
String sysLang = Locale.getDefault().getLanguage();
String i18nLang;
if ((sysLang == "en") || (sysLang == "de")) {
i18nLang = "en";
} else if (...) {...}
initialize(new MyGame(i18nLang), config);
}
答案 1 :(得分:0)