Using the Apple menu (Apple.laf.useScreenMenuBar) the menu items are always in English whatever set as Preferred Language
Petr Pchelko
petr.pchelko at oracle.com
Wed Dec 25 05:26:32 PST 2013
Hello, Paul.
Sorry for the delayed answer.
The problem is that we are relying on Cocoa to create these menu items. However, to properly understand the locale Cocoa needs a special key in the Info.plist file (CFBundleAllowMixedLocalizations). However when you are running a java application as java -jar … there’s no Info.plist file, so Cocoa does not use the locale preferences and displays everything in English. We have the same problem with a native FileDialog.
The problem does not seem to be fixable internally in JDK, because there’s no API to tell Cocoa that we wish to use CFBundleAllowMixedLocalizations key. The only possible workaround right now is to use the javafxpackager tool and create a native bundle with your application. Bundled apps have an Info.plist and Cocoa localization works well with them.
For more info please look at the following JDK bug: https://bugs.openjdk.java.net/browse/JDK-8019464 It’s about the FileDialog, but everything there applies to the default menu items as well.
With best regards. Petr.
12 дек. 2013 г., в 8:14 после полудня, Paul Taylor <paul_t100 at fastmail.fm> написал(а):
> Using the Apple menu (Apple.laf.useScreenMenuBar) the special menu items are always in English whatever set as Preferred Language
>
> OSX:System Preferences:Language and Region:Preferred Languages
>
> i.e it stills say
>
> Preferences...
> Show All
> Hide Others
> etc
>
> in the first menu (my own menu items using my own resource bundle are fine)
>
> instead of:
>
> Préférences
> Tout afficher
> Masquer les autres
>
> even if change preferred language from English to French and reboot
>
> This works properly using Java 6
>
> Is this a known bug, is quite problematic because it makes Java applications look rather amateurish in non-english env.
>
> Paul
>
>
More information about the macosx-port-dev
mailing list