【问题标题】:How to set language in Java?如何在 Java 中设置语言?
【发布时间】:2011-06-10 10:26:57
【问题描述】:

我正在使用带有外国操作系统(韩文/日文等)的 Java 程序 FileChooser等swing组件的显示是外文,需要改成英文。

java.util.Locale.setDefault(java.util.Locale.ENGLISH);

JFileChooser chooser = new JFileChooser();

chooser.setLocale(Locale.ENGLISH);

并且文件选择器仍然显示所有内容 - 这些外语中的按钮等。知道如何解决吗?

我的 JFilechooser 按钮的 OK/CANCEL 显示为日语。我正在使用日文Windows。怎么改成英文?

【问题讨论】:

    标签: java


    【解决方案1】:

    您可以在启动 VM 时指定语言。

    java -Duser.language=en -Duser.country=US -Duser.variant=US MainClass

    【讨论】:

    • 对于测试翻译 (ResourceBundle),这在 Windows 上效果很好。谢谢!
    【解决方案2】:

    您必须通过JComponent.setDefaultLocale() 设置区域设置创建JFileChooser 对象之前。

    【讨论】:

    • 'JFileChooser 选择器 = new JFileChooser();选择器.setDefaultLocale(Locale.ENGLISH);选择器.setLocale(Locale.ENGLISH);'
    • 听起来很合理 - 我不希望 API 允许更改 awt 或 swing 组件的区域设置 - 这是一个非常罕见的用例并且非常难以实现;)
    • @Mr Zen - 你实际上没有尝试过。 Michaels 的建议基于JComponent 中的静态方法;)
    • @Andreas... 这是我现在可以使用的代码..' this.setDefaultLocale(Locale.ENGLISH); JFileChooser 选择器 = new JFileChooser();'无论如何感谢您的兴趣(+1)
    • @Andreas_D:由于 JFileChooser 是 JComponent 的子类,并且可以在 Java 中的实例上调用静态方法,所以他确实调用了正确的方法,只是不是在正确的时间。
    【解决方案3】:

    我并不是要指出显而易见的事情,但是根据您发布的代码很难判断您的期望是什么。仅仅更改区域设置不会修改您发送到 UI 的 Unicode 字符;它也不会从一种语言翻译成另一种语言。更改语言环境是必要的,但还不够。

    【讨论】:

    • 我的 JFilechooser 按钮的 OK/CANCEL 显示为日语。我正在使用日文Windows。怎么改成英文?
    • 如果应用程序是本地化的,更改您的 PC 区域设置就足够了。
    • @Simeon。更改 PC 区域设置是一个坏建议。它将影响操作系统上的所有应用程序。
    • @Kaj 对区域设置进行硬编码更糟糕的是 IMO,因为他们可能会忘记他们这样做了,这可能会导致各种混乱。另外我认为,如果他更喜欢用英文的摇摆应用程序,他对其他应用程序也会有同样的偏好。
    • @Simeon 我没有说他应该硬编码。请参阅我的回答,我建议使用 VM 参数。
    【解决方案4】:

    您可以使用下面的代码使其工作,但 JComponent 语言环境是更好的选择。

    JFileChooser chooser = new JFileChooser();
    chooser.setLocale(Locale.getDefault());
    chooser.updateUI();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-03
      • 2010-09-09
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 2022-06-23
      • 1970-01-01
      相关资源
      最近更新 更多