【问题标题】:Why my macOS application menu does not use system defined language?为什么我的 macOS 应用程序菜单不使用系统定义的语言?
【发布时间】:2021-11-26 12:54:12
【问题描述】:

我有一个使用 Oracle JDK 9 中的 jpackage 工具为 macOS 打包的 java 应用程序。

在 iMac 2021 M1 上的 macOS Big Sur (11.6) 上执行此应用程序时,应用程序菜单不会自动翻译成法语(选择的系统语言)。

相反,当应用程序在 macOS Catalina 10.15.7 上的 Macbook Air 2012 (Intel) 上执行时,应用程序菜单会正确翻译成法语(相同的 .app 文件)。


在两台计算机上,系统偏好设置 > 语言和地区中定义的首选语言设置为法语作为第一(主要语言)。

在我的Info.plist 文件中,CFBundleDevelopmentRegion 键被正确定义为fr-FR

<key>CFBundleDevelopmentRegion</key>
<string>fr-FR</string>

知道为什么翻译不正确吗?

【问题讨论】:

    标签: java macos info.plist .app jpackage


    【解决方案1】:

    CFBundleDisplayName

    在 macOS 中,在显示包的本地化名称之前,Finder 会将此键的值与文件系统中包的实际名称进行比较。如果这两个名称匹配,Finder 会继续显示来自您的包的相应 InfoPlist.strings 文件的本地化名称。如果名称不匹配,Finder 将显示文件系统名称。

    应用名称可能不匹配。确保构建的.app文件的名称与Info.Plist中的CFBundleDisplayName的名称相同。

    【讨论】:

    • 谢谢。我的Info.plist 文件中没有CFBundleDisplayName,但CFBundleName 键值与.app 文件名正确匹配。但是,我不明白为什么它在旧 macOS 版本上“有效”而不是 Big Sur...
    • 该功能可能在较新的更新中发生了变化,但我不确定。添加捆绑显示名称时是否有效?
    • 不,它也不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多