我在运行时更改语言环境时遇到了一点问题。
目标
我必须根据配置文件更改我的应用程序语言的区域设置。
此语言环境不一定与主机/操作系统语言环境或 JVM 默认语言环境相同。
user.language
此外,我在调用应用程序时无法修改。然后,我必须在运行时这样做。
问题
总结我的代码,我阅读了配置文件并获得了不同的选项(包括语言环境)。之后,我根据这些配置的选项初始化应用环境。
之后,我构建我的框架并启动应用程序生命周期。
public static void main(String[] args) {
File fichier;
Ini ini; //Ini4J object
Modele modele = new Modele(); //My Model class: it stores configuration and other stuff
try {
fichier = new File(Modele.CONFIGURATION);
ini = new Ini(fichier);
modele.setLocaleLang(ini.get(Modele.LOCALE, Modele.LANG, String.class));
// read more options
} catch(InvalidFileFormatException e) {
// exception processing
} catch (IOException e) {
// exception processing
} finally {
ini = null;
fichier = null;
}
// More code
JComponent.setDefaultLocale(modele.getLocaleLang());
// More initialization code
MyFrame fenetre = new MyFrame(modele);
fenetre.visualiser();
}
好吧,在生命周期中,您可以打开文件。显然,我使用 JFileChooser 来解决这个问题:
JFileChooser jfc = new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
jfc.setFileFilter(modele.FILTRE_OUVRIR);
jfc.showOpenDialog(null);
所有文件选择器都使用配置的语言环境进行设置,但类型选择器不会改变。下图显示了问题(操作系统区域设置:es_ES,配置的区域设置:fr_FR):
如您所见,在“Fichiers de type”组合框中:该选项以西班牙语而不是法语显示。
有人向我解释这个问题吗?我的代码有问题吗?可能是因为我使用了文件过滤器而导致的问题?
我感谢你的任何建议。