如何以编程方式更改我的应用程序的语言和区域设置

时间:2012-07-12 18:34:02

标签: objective-c macos locale

我想将我的应用程序的语言和区域设置单独更改为与系统上设置的用户默认语言不同的语言。假设我的应用程序应该使用法语资源,即使系统默认设置为英语。

我发现iOS的几个例子(How to force NSLocalizedString to use a specific language),但即使这只是语言,但OSX没有。我的捆绑中有法语资源。我只想覆盖我的应用程序的默认值。不从系统首选项更改整个操作系统区域设置。

1 个答案:

答案 0 :(得分:0)

这个问题有很好的应用:Language SwitcherApp Language Chooser等等。

要以编程方式执行此操作,您可以使用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

有关详情,请参阅超级用户对此类似问题的回答:Can I change the default language of a application / program in Snow Leopard?