gpt4 book ai didi

ios 可本地化的字符串不起作用

转载 作者:行者123 更新时间:2023-11-29 11:01:24 26 4
gpt4 key购买 nike

我制作了一个本地化为两种语言的 ios 应用程序(英语和丹麦语,默认为英语)。
我制作了一个包含两个子文件 en 和 da 的 Localizable.strings。
一切都应该正确,我看到英文文本从字符串文件中加载得很好。但是丹麦人没有。

我尝试通过以下代码检查首选语言,它是丹麦语。

[[NSLocale preferredLanguages] objectAtIndex:0];

我已经尝试过清理 + 删除和重建,但没有成功。

我知道 Localizable.strings 文件正在运行,因为它正在获取英文文本。我知道它通过上面的代码行看到了丹麦本地化。我错过了什么?

再举几个例子:
来自 EN:

"YesButton" = "Done";
"NoButton" = "Not yet!";
"NextButton" = "Next";
"BackButton" = "Back";
"EditButton" = "Edit";
"DoneButton" = "Done";

和丹麦语:

"YesButton" = "Færdig";
"NoButton" = "Ikke endnu!";
"NextButton" = "Næste";
"BackButton" = "Tilbage";
"EditButton" = "Redigér";
"DoneButton" = "Færdig";

获取文本的代码是:

[yesButton setTitle:NSLocalizedString(@"YesButton", nil) forState:UIControlStateNormal];

即使 preferredLang 是 da(丹麦语)也会返回“完成”!

希望有人有想法? :)

提前致谢。

编辑:::
实际的 DANISH-DENMARK 本地化有问题。我不知道苹果是否更新了它或者他们做了什么,但它从被称为“Danish-Denmark”变成了“Danish”。在制作了一个全新的丹麦语本地化版本并删除了旧版本后,它成功了!疯狂的事情。让你挠头!

最佳答案

我以前也遇到过类似的事情。我所做的只是将字符串编码从以下位置更改为:

encoding:NSASCIIStringEncoding

encoding:NSUTF8StringEncoding

~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.

现在假设问题不是字符串编码。您也可以解决它并执行以下操作:

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];

NSString yesButtonStr=@"";
NSString noButtonStr=@"";
NSString nextButtonStr=@"";

if([@"en" caseInsensitiveCompare:language] == NSOrderedSame )
{
yesButtonStr = @"Done";
noButtonStr= @"Not yet!";
nextButtonStr = @"Next";
//...
}
else if if([@"da" caseInsensitiveCompare:language] == NSOrderedSame )
{
yesButtonStr = @"Færdig";
noButtonStr = @"Ikke endnu!";
nextButtonStr = @"Næste";
//...
}

然后:

[yesButton setTitle:NSLocalizedString(yesButtonStr, nil) forState:UIControlStateNormal];

关于ios 可本地化的字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15754457/

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