TheInfiniteKind / appbundler

72 stars 24 forks source link

(For HighSierra )Is there a way to set CFBundleAllowMixedLocalizations to false #29

Open sreilly opened 6 years ago

sreilly commented 6 years ago

Original report by me.


Currently gets created as true, but if user on HighSierra and configured OSX to use a preferred language that is not English then java applications menu bars do not work - see http://blog.jthink.net/2017/09/fix-for-osx-high-sierra-breaking.html

Can i use appbundler to configure this as false, I could not see a way

sreilly commented 6 years ago

Sorry I realized that you dont actually add this key, i had a script amending the Info.plist file created by appbundler and adding in the following

CFBundleHelpBookFolder SongKongHelp CFBundleHelpBookName com.jthink.songkong.Help CFBundleAllowMixedLocalizations

so i can fix this, but is there way I could configure these entries within AppBundler instead of using my hack

sreilly commented 6 years ago

Hi IJabz, thanks for the pointer to the CFBundleAllowMixedLocalizations fix - I'd been searching for a workaround to this problem! Although because of the side-effects with the main menu text I wonder if it would be a good idea to keep this solution in the scripts and outside of appbundler itself.

For another app I use the PListBuddy command-line tool on the mac to manipulate the Info.plist from a script. I think you might be able to use something like the following:

#!shell

    /usr/libexec/PlistBuddy filename.plist -c Set :CFBundleAllowMixedLocalizations false
sreilly commented 6 years ago

Currently appbundler doesnt add at all, I think in normal circumstances it should add to true as you would want this to fix https://bugs.openjdk.java.net/browse/JDK-8019464, but for time being want to be set to false as English menu text lesser of two evils. Seems to be the kind of thing that should be in AppBundler rather than having to use another tool but yes in meantime PlistBuddy would work for me, thanks I didnt know about it.