gpt4 book ai didi

macos - NSLocalizedString 不返回本地化文本 XCode4

转载 作者:行者123 更新时间:2023-12-03 16:32:46 26 4
gpt4 key购买 nike

创建新的 cocoa 应用程序后,我添加了本地化字符串文件 localizeFile.strings(English) 和 localizeFile.strings(Spanish)

在 localizeFile.strings(English) 文件中我添加了 "TITLE"= "Hello!";

在 localizeFile.strings(Spanish) 文件中,我添加了 "TITLE"= "Hola!";

在我的类里面,我尝试使用以下语句访问本地化的英文文本

-(IBAction)english:(id)sender
{
// NSString *engText = [[NSBundle mainBundle] localizedStringForKey:@"TITLE" value:@"" table:nil];
NSString *engText = NSLocalizedString(@"TITLE", nil);
NSLog(@"engText %@",engText);
[displayText setStringValue:engText];
}

-(IBAction)spanish:(id)sender
{
NSString *spanText = NSLocalizedString(@"TITLE", nil);
NSLog(@"spanText %@",spanText);
[displayText setStringValue:spanText];
}

这里的displayText是NSTextField和同一窗口中的两个 Action 。

我在控制台中看到,单击按钮时显示 engText TITLE 而不是 engText Hello。

有人可以指导我如何获取本地化字符串吗?请帮忙

最佳答案

听起来应用程序不知道 localizeFile.strings。您是否声明了应用程序的语言?您的创建配置文件中有复制规则吗?

编辑

您可以在此处添加语言(红色箭头): enter image description here

第二次编辑

如果您想使用系统级别未设置的语言,您可以执行以下操作:

    // Assume you have defined constants, e.g. 1 - English, 2 - Espanol, 3 - ....
switch (language) {
case kLangEn: // =1
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
break:
case kLangEs: // =2
path = [[NSBundle mainBundle] pathForResource:@"es" ofType:@"lproj"];
break:
// etc.
}
NSBundle *languageBundle = [NSBundle bundleWithPathath];
NSString *str = [languageBundle localizedStringForKey:key value:@"" table:nil];

关于macos - NSLocalizedString 不返回本地化文本 XCode4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10169775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com