【问题标题】:Detecting when OS language is changed - Java检测操作系统语言何时更改 - Java
【发布时间】:2015-10-14 09:01:50
【问题描述】:

我正在用 Java 编写一个全屏双语应用程序。全屏意味着,桌面下方的语言栏将对用户隐藏,并且......我需要它!那么,如何以编程方式重现它?!
严格来说,我需要知道当前操作系统语言是什么,何时发生更改语言事件,以及在需要时设置它的方法。
我应该如何完成任务?
谢谢!

【问题讨论】:

  • 至于检测它何时发生变化,我预感除了轮询之外没有任何方法可以做到这一点。
  • @Cheesebaron - 不!或者……不完全是!您提到的主题只是我的三个问题之一!
  • @LuxxMiner - 是的,我预料到了!
  • 我尝试了解决方案...甚至投票!没有帮助!还有什么想法吗?!我想知道为什么Java不支持这种东西!

标签: java locale


【解决方案1】:

获取操作系统语言:

System.getProperty("user.language");

设置操作系统语言:

System.setProperty("user.language","..."); //... = What language you want to set it to

如果你只是想改变程序内部的语言,通过组合框或其他方式,只需在组件中添加一个 ActionListener 并使用前面提到的 set 方法来设置语言。 System.setProperty("user.language",yourComboBox.getText()); 然后你可以通过简单的 if 语句在你的程序中设置语言。

【讨论】:

    【解决方案2】:

    在 Java 中使用多种语言通常意味着使用多种语言环境。

    使用任一

    Locale defaultDisplayLocale = Locale.getDefault(Locale.Category.DISPLAY);
    

    Locale defaultFormatLocale = Locale.getDefault(Locale.Category.FORMAT);
    

    取决于您要使用的语言环境。

    AFAIK,标准库中没有独立于操作系统的方法来检测操作系统语言的变化。您可能必须手动重新启动应用程序。

    【讨论】:

      猜你喜欢
      • 2017-04-10
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      相关资源
      最近更新 更多