我需要一种方法来更改Cocoa应用程序菜单栏中(MainMenu.xib)中的字符串,以根据我设置的语言环境动态呈现。我为不同的语言环境创建了MainMenu.strings文件。当前,显示的所有字符串均适用于系统区域设置。有没有一种方法可以覆盖此逻辑以显示所需语言环境的字符串。任何帮助表示赞赏。
最佳答案
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);
}
关于objective-c - 动态本地化MainMenu.xib,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34889478/