我需要一种方法来更改Cocoa应用程序菜单栏(MainMenu.xib)中的字符串,以根据我设置的语言环境动态呈现。我为不同的语言环境创建了MainMenu.strings文件。目前,显示的所有字符串都是系统区域设置。有没有办法我可以覆盖这个逻辑来显示我想要的语言环境的字符串。任何帮助表示赞赏。
答案 0 :(得分:1)
覆盖系统区域设置不是OS X应用程序通常执行的操作。除非你有充分的理由这样做,否则最好只使用用户首选的语言环境,如系统偏好设置中所设置的那样。
如果您真的想这样做,可以在调用NSApplicationMain之前将“AppleLanguages”用户默认设置为您想要的任何语言环境,并且应用程序将使用该语言环境。
像这样:
// Note: Don't do this.
int main(int argc, const char * argv[]) {
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@[@"de"] forKey:@"AppleLanguages"];
return NSApplicationMain(argc, argv);
}