【发布时间】:2017-03-31 12:35:54
【问题描述】:
您好,想用在较低处理器上有效运行的 JavaFx 实现国际化概念(用于印地语)。
配置:- 处理器 - Intel Atom CPUD425@ 1.80GHz x 2 内存 - 2 GB 操作系统 - 32 位 Fedora 15
使用资源包实现了国际化概念。但是在那个低平台上它很慢。 尽管按照How to implement language support for JavaFX in FXML documents? 中的建议正确实施,但英语和印地语语言(2-4 秒)也会出现同样的缓慢。
因此,尝试了其他方法,例如采用一个全局变量,如果语言更改为印地语,则将该变量设置为 1。 并为每个 fxml 控制器初始化方法检查 如果该变量为 1,则将 fxml 标签和按钮文本直接设置为印地语字符串,如下所示。
@Override
public void initialize(URL location, ResourceBundle resources) {
// TODO Auto-generated method stub
if(Configuration.getLangSelected()==1){
label1.setText("आप क्या करना पसंद करेंगे?");
button1.setText("ई-कैश प्राप्त करें");
button2.setText("सेवा का उपयोग करें");
button3.setText("वापस");
}
}
对于低硬件配置,它比资源包方式提高了性能,Flow 对于英语很好,但对于印地语渲染需要时间(2.8 秒)。 但是这里不接受 2.8 秒。还有其他方法可以在最短的时间内完成这项任务吗?
出于好奇,在初始化时将印地语字符串替换为英文字符串如下:-
@Override
public void initialize(URL location, ResourceBundle resources) {
// TODO Auto-generated method stub
if(Configuration.getLangSelected()==1){
label1.setText("What you want to do?");
button1.setText("Get E-cash");
button2.setText("Use Service");
button3.setText("Back");
}
}
为此更改快速加载相同的文件。 有什么问题,因为我们不能直接将其他语言字符串设置到标签和按钮这样的东西, 有没有办法直接设置文本并快速加载该 fxml?
【问题讨论】:
-
@tomsontom 先生,目前,是否有任何解决此问题的方法或任何其他方式?
-
可能的解决方法: 1. 使用windows; 2. 使用英语; 3. 构建自己的 JRE。我选择了 3 并看到了大约 10 倍的性能提升。
-
@Sillyfly - 谢谢先生
-
找到了解决方法:- 为印地语构建单独的流程(屏幕)并进行一项额外更改,在标签内使用“Text”()。没有将任何文本设置为标签。将其他语言文本(即印地语文本)设置为 fxml 中的“文本”。加载时间减少,以前需要 2.8 秒,现在需要 1.2 秒。
标签: javafx internationalization javafx-2 javafx-8 fxml