【问题标题】:Java: How to force the localization for swt FileDialogJava:如何强制 swt FileDialog 本地化
【发布时间】:2011-05-08 11:18:53
【问题描述】:

我会用英语本地化一个 FileDialog 组件。我的默认语言是意大利语。 有可能吗?

我使用 FileDialog 的项目是一个 Eclipse 插件项目。

我找到了仅适用于 JFileChooser 组件的解决方案,并且它有效。

提前谢谢你。

【问题讨论】:

    标签: java localization eclipse-plugin swt filedialog


    【解决方案1】:

    原始答案中的信息已过时。请向下滚动到编辑 2。

    我的理解是 SWT 正在调用一些操作系统 API 来显示常用对话框(FileDialog 就是其中之一)。因此,它将始终以当前操作系统语言或当前用户为 MUI 系统选择的语言显示。
    如果我的理解是正确的(而且我坚信如此),那么根本没有办法将其本地化。

    编辑(在 Jarek 发表评论后):

    看来我错了。 This page(向下滚动到国际化)说:

    Eclipse SDK 被设计为国际化的基础 产品。 Eclipse SDK 提供的用户界面元素 组件,包括对话框和错误消息,都被外部化了。 英文字符串作为默认资源包提供。

    这意味着它应该是可本地化的。但这并不意味着它是本地化的。另一个引用:

    对德语和日语语言环境进行了测试。

    这是否意味着它已本地化为德语和日语?我不知道。 Mac 平台上的 Swing 就是这种情况(我不确定它是否仍然保持不变)。
    但是,这意味着至少应该可以进行本地化。

    编辑 2(当前状况)

    如果一开始是这样的话我不能(我不这么认为),但现在你所要做的就是to use language pack

    java -Duser.language=fr -Djava.library.path=C:\MyApp -classpath C:\MyApp\swt.jar;C:\MyApp\swt-nl.jar;C:\MyApp\myApp.jar my.org.HelloWorld

    只需在类路径中放置一个或多个语言包就足以翻译 FileDialog。如果是意大利语和其他少数人,它将是NLpack1。对于波兰语、匈牙利语、捷克语和俄语,应为 NLpack2

    原始信息似乎是错误的,抱歉(感谢 Jarek 的疑虑,它应该会提高这个答案的质量)。

    【讨论】:

    • 我相信当前的 SWT FileDialog 实现在 Windows 中使用 GetOpenFileName - 我看不出它如何使用错误的语言环境。
    • @Jarek:OP 没有询问任何特定的操作系统......无论如何,我可能错了。
    猜你喜欢
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多