在对应用程序进行本地化时,由于大小写原因,我发现了很多重复项。
例如,我要使用“完成”和“完成”。应该转换两个单独的键值还是使用“完成”并将其小写?
某些语言是否具有大写字母?
使用一个键而不是两个键的利弊是什么?
答案 0 :(得分:1)
根据您的评论,您想知道您要翻译的目标语言是否包含Capitonyms。
首字母缩略词是一个改变其含义的词(有时 发音)大写
在不了解您的具体情况的情况下,这是无法回答的。
但是,假设您可以对目标语言进行检查并确认不会受到此影响,那么我建议您在单词中使用单一样式。这样可以使您受益匪浅:
答案 1 :(得分:1)
通常,您不应该考虑将单个单词本地化。您应该考虑将UI元素本地化,并将意图本地化。因此,您所说的“完成”不是“完成”,而是“用户按下以指示按钮已完成的按钮标签”。这可能不同于“表明任务已完成的标签”的翻译。它们的大小写可能不同,但它们可能是完全不同的词,也可能是完全不同的词变体/变体/性别,具体取决于语法。
这就是NSLocalizedString
的注释字段如此重要的原因。如果它为空,或者只是重复输入密钥,那么您可能会错误地进行本地化。
作为最基本的示例,考虑要求翻译人员翻译“ fire”一词。在英语中,我们在“咆哮的火”和“开枪”中使用相同的词。没有上下文,您无法翻译该词;并带有上下文,可以指示是否要大写。
总而言之,有时您对两个不同的UI元素具有完全相同的含义,并且您绝对希望对它们使用相同的翻译,以避免混淆,但是在某些情况下,出于美学原因,您希望使用不同的大小写。在这种情况下,您应该翻译任何方便的语言(通常是小写版本),然后使用localizedCapitalized
或localizedUppercase
进行调整。我经常使用它来使按钮全部大写。
但是您是正确的,有时大写一个单词可以更改其含义,这又回到注释您的本地化短语,以便翻译人员知道要使用哪种拼写的方式。而且,如果您的意思和上下文不完全相同,则可能需要两个键。
对于您的基本问题,英语中的单词根据大写字母的含义而具有不同的含义(请参阅CodeBender的链接),但是其他语言也有非常不同的规则。德语将所有名词都大写,但没有将英语所用的某些形容词大写。 (比较“美国汽车”与“ das amerikanische汽车”)。俄语的大写规则与英语大不相同(俄语为大写,Россия,俄语为русский)。俄语通常只在某些短语中将首字母大写,而英语会将每个单词(例如书名)大写。所以...很复杂。要让母语为母语的人感到自然,通常需要翻译人员知道他们要翻译的内容。