在日语中,(例如)“先生”之间没有区别和“女士”(/“太太”),所以我需要做这样的事情:
/* 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字符串文件冲突 – 源语言中的字符串相同,目标不同全部内容,希望文章能够帮你解决iOS字符串文件冲突 – 源语言中的字符串相同,目标不同所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)