作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我创建了一个 I18NBundle 和一些包含字符串的 .properties 文件。为了创建包,我写了这个:
baseFileHandle = Gdx.files.internal("Language/Lang");
da_DK = new Locale("da", "DK");
en_GB = new Locale("en", "GB");
Lang = I18NBundle.createBundle(baseFileHandle, en_GB);
这非常有效,我可以从 bundle 中提取值以获取我的字符串,并且在我初始化 bundle 时使用 da_DK 而不是 en_GB 也可以正常工作。
我的问题是我希望能够通过按下按钮来更改游戏中的语言,但我不知道该怎么做。
我用谷歌搜索了这个问题,但似乎找不到答案。
我希望你能理解我的问题,并能帮助我 :)
最佳答案
如果您查看代码(I18NBundle.setLocale(...)
,这是一个私有(private)方法),您将看到这个 JavaDoc:
Sets the bundle locale. This method is private because a bundle can't change the locale during its life.
这意味着,你想做的事是不可能的。当然,您可以做的是创建一个新的 I18NBundle
,为构造函数提供另一个 Locale
,基本上只是替换当前的。如果您使用 AssetManager
加载它,这也是可能的,您只需要卸载它,然后使用不同的参数再次加载它。
关于java - 如何使用 libGDX 中的 I18NBundle 更改游戏中的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25089596/
我是一名优秀的程序员,十分优秀!