首页 > 解决方案 > 可定位管柱套管的最佳实践

问题描述

当我本地化我的应用程序时,我发现了许多由于大小写而重复的内容。

例如,我想使用“完成”和“完成”。我应该翻译两个单独的键值,还是应该使用“完成”并小写?

如果某些语言是大写的,它们是否有不同的词?

使用一把钥匙而不是两把钥匙的优点/缺点是什么。

标签: ioslocalization

解决方案


通常,您不应该考虑孤立地本地化单个单词。您应该考虑本地化 UI 元素和本地化意图。因此,您的意思不是“完成”,而是“用户按下以指示他们完成的按钮的标签”。这可能与“指示任务已完成的标签”不同。它们的大小写可能不同,但它们可能是完全不同的单词,或者不同的变位/变格/性别,具体取决于语法。

这就是为什么评论字段NSLocalizedString如此关键的原因。如果它是空的,或者只是重复键,那么您可能会错误地处理本地化。

就像最基本的例子一样,考虑让翻译人员翻译“火”这个词。在英语中,我们在“a roaring fire”和“to fire a gun”中使用相同的词。你不能在没有上下文的情况下翻译那个词;并且根据上下文,您可以在适当的情况下指明是否要将其大​​写。

总而言之,有时您对两个不同的 UI 元素具有完全相同的含义,并且您绝对希望对它们都使用相同的翻译以避免混淆,但在一种情况下,出于美学原因您希望使用不同的大写字母。在这种情况下,您应该翻译任何方便的(通常是小写版本),然后使用localizedCapitalizedlocalizedUppercase调整它。我经常使用它来制作全大写按钮。

但是你是对的,有时大写一个词会改变它的意思,这又回到了评论你的本地化短语,这样翻译者就知道使用哪种拼写。如果您的含义和上下文不完全相同,您可能需要两个键。

对于您的基本问题,英语的单词根据它们的大写方式表示不同的含义(请参阅 CodeBender 的链接),但其他语言也有非常不同的规则。德语将所有名词大写,但不将英语确实大写的一些形容词大写。(比较“美国汽车”与“美国汽车”)。俄语的大小写规则与英语非常不同(俄语大写,Россия,但俄语不是,русский)。俄语通常也只将某些短语中的第一个字母大写,而英语会将每个单词都大写(例如书名)。所以……很复杂。要让母语人士感觉自然,通常需要一个知道自己在翻译什么的人工翻译。


推荐阅读