Jol*_*lly 5 java localization libgdx
我创建了一个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);
Run Code Online (Sandbox Code Playgroud)
这非常好用,我可以从捆绑软件中提取值来获取我的字符串,并且在初始化捆绑软件时也可以使用da_DK而不是en_GB来工作。
我的建议是,我希望能够通过按下按钮来更改游戏中的语言,但是我不知道该怎么做。
我已经用Google搜索了问题,但似乎找不到答案。
希望您能理解我的问题,并希望能为我提供帮助:)
如果您查看代码(I18NBundle.setLocale(...),这是一个私有方法),您将看到此 JavaDoc:
设置捆绑区域设置。此方法是私有的,因为包在其生命周期内无法更改区域设置。
这意味着,你想做的事情是不可能的。你当然可以做的是创建一个新的I18NBundle提供Locale给构造函数的另一个,基本上只是替换当前的。如果您使用 anAssetManager加载它,这也是可能的,您只需要卸载它,然后使用不同的参数再次加载它。