【发布时间】:2015-11-28 15:45:36
【问题描述】:
我正在使用 LibGdx 开发游戏。我的应用程序中有多种语言,位于属性文件中。当我在菜单文本中更改我的语言时没有翻译,所以我需要重新启动我的应用程序以应用翻译。我认为这是因为我在启动时加载了我的属性文件一次并且它没有改变。我可以在 buttonListener 中使用 setText() 方法来更改所有按钮的文本,但是我的按钮太多了。那么有什么方法可以立即翻译我的应用程序吗?
【问题讨论】:
我正在使用 LibGdx 开发游戏。我的应用程序中有多种语言,位于属性文件中。当我在菜单文本中更改我的语言时没有翻译,所以我需要重新启动我的应用程序以应用翻译。我认为这是因为我在启动时加载了我的属性文件一次并且它没有改变。我可以在 buttonListener 中使用 setText() 方法来更改所有按钮的文本,但是我的按钮太多了。那么有什么方法可以立即翻译我的应用程序吗?
【问题讨论】:
我相信 setText() 是让按钮更新其文本的唯一方法。我不知道您如何为您的程序存储不同语言的文本,但作为一般想法,您可以尝试创建一个扩展 TextButton 的自定义类,并在内部引用您存储不同语言文本的位置。然后有一个像 changeLanguage() 这样的方法,然后获取正确语言的文本并在自身上调用 setText()。
然后你可以有一个数组来保存对程序中所有按钮的引用,当你更改语言时,使用循环遍历这个按钮数组,在每个按钮上调用 changeLanguage() 将所有按钮设置为正确的语言。这将很快完成,您不必在程序中的每个按钮上手动调用 setText()。
【讨论】: