gpt4 book ai didi

iOS 字符串文件冲突 - 源语言中的相同字符串,目标语言中的不同

转载 作者:可可西里 更新时间:2023-11-01 04:25:30 25 4
gpt4 key购买 nike

所以,我正在将一个应用程序从日语本地化为英语。

在日语中,(比如)“先生”之间没有区别。和“Ms.”(/“Mrs.”),所以我需要做这样的事情:

/* Salutation format for user (male) */
"%@様" = "Mr. %@";

/* Salutation format for user (female) */
"%@様" = "Ms. %@";

如您所见,日语本地化版本在两种情况下都使用相同的字符串。我的印象是,当字符串文件包含多个具有相同“源”(即左侧)字符串的条目时,“注释”用于确定使用了哪一个。 事实证明我错了,注释参数只是对人工翻译的辅助,完全被NSLocalizedString()忽略了。

因此,如果我运行该应用程序,无论用户的性别如何,下面的两个代码路径都会生成相同的字符串:

NSString* userName;
BOOL userIsMale;

/* userName and userIsMale are set... */

NSString* format;

if(userIsMale){
// MALE
format = NSLocalizedString(@"%@様",
@"Salutation format for user (male)");
}
else{
// FEMALE
format = NSLocalizedString(@"%@様",
@"Salutation format for user (female)");
}

NSString* salutation = [NSString stringWithFormat:format, userName];

那么,遇到这种情况应该怎么处理呢?

最佳答案

嗯,实际上 NSLocalizedString 的“左侧”是一个键。所以你可以这样做:

NSLocalizedString(@"SalutForUserMale", @"Salutation format for user (male)");
NSLocalizedString(@"SalutForUserFemale", @"Salutation format for user (female)");

然后在你的基本 *.strings 文件(我猜是日语)中你将拥有:

"SalutForUserMale" = "%@様";
"SalutForUserFemale" = "%@様";

在您的英文 *.strings 文件中,您将拥有:

"SalutForUserMale" = "Mr. %@";
"SalutForUserFemale" = "Ms. %@";

关于iOS 字符串文件冲突 - 源语言中的相同字符串,目标语言中的不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649532/

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