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

iOS字符串文件冲突 – 源语言中的字符串相同,目标不同,第1张

概述所以,我正在将应用程序从日语本地化为英语. 在日语中,(例如)“先生”之间没有区别和“女士”(/“太太”),所以我需要做这样的事情: /* Salutation format for user (male) */"%@様" = "Mr. %@";/* Salutation format for user (female) */"%@様" = "Ms. %@"; 如您所见,日语本地化在两种情 所以,我正在将应用程序从日语本地化为英语.

在日语中,(例如)“先生”之间没有区别和“女士”(/“太太”),所以我需要做这样的事情:

/* 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字符串文件冲突 – 源语言中的字符串相同,目标不同所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1006063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存