我想将我的应用程序的语言和区域设置单独更改为与系统上设置的用户默认语言不同的语言。假设我的应用程序应该使用法语资源,即使系统默认设置为英语。
我找到了一些 iOS 示例(如何强制 NSLocalizedString 使用特定语言),但即使这仅适用于语言,但对于 OSX 则没有。我的包中有法语资源。我只想覆盖我的应用程序的默认值。无需从系统首选项更改整个操作系统区域设置。
我想将我的应用程序的语言和区域设置单独更改为与系统上设置的用户默认语言不同的语言。假设我的应用程序应该使用法语资源,即使系统默认设置为英语。
我找到了一些 iOS 示例(如何强制 NSLocalizedString 使用特定语言),但即使这仅适用于语言,但对于 OSX 则没有。我的包中有法语资源。我只想覆盖我的应用程序的默认值。无需从系统首选项更改整个操作系统区域设置。
有一些很好的应用程序可以解决这个问题:语言切换器和应用程序语言选择器等等。
要以编程方式执行此操作,您可以使用defaults
命令将应用程序的AppleLanguages
属性更改为(fr)
或(en, ko)
,如以下 shell 脚本:
bundleId=BUNDLE_ID_OF_YOUR_APP # such as, com.apple.Finder
# change AppleLanguages
defaults write $bundleId AppleLanguages "(fr)"
# open your app
open -b $bundleId
# then restore the language
defaults delete $bundleId AppleLanguages
有关更多详细信息,请参阅超级用户对这个类似问题的答案:我可以更改 Snow Leopard 中应用程序/程序的默认语言吗?.