具有默认值的iOS可本地化字符串

时间:2015-05-20 10:45:56

标签: ios iphone localization translation localizable.strings

我想了解iOS中可本地化的基本字符串是如何工作的。例如,在Android中,如果我有一个默认的可本地化文件字符串(iOS上的基本本地化),如:

"title_app" = "Title"
"Copy" = "Copy";
"Edit = "Edit;"

然后我有一个西班牙语可本地化的文件,如:

"Copy" = "Copiar";
"Edit" = "Editar";

为什么在iOS上如果我在设备上设置了西班牙语,那么键#34; title_app"不会出现?因为Android如果找不到密钥,它会从默认语言中获取密钥。

Sometines有些词他们不需要翻译。或者有时我有10种语言,也许一种语言需要从不可翻译的单词翻译。例如" title_app" ="我的应用程序"。它将是英语,法语,意大利语,西班牙语相同...但在中文没有。在10个文件上写密钥效率不高,重复...想象10个,20个50个单词。

与Android相比,Apple / iOS在转换/本地化方面远远落后......:S

谈论翻译;抱歉,我的英语不好。

1 个答案:

答案 0 :(得分:0)

NSLocalizedString宏有两个参数,一个键和一个注释。该密钥将在Localizable.strings文件中查找,该文件是一个简单的键值对集合。

正如@TheEye通过blog post link在评论中指出的那样,您可以进行更多控制,并使用NSLocalizedStringWithDefaultValue宏明确包含默认值。

你要意识到的是你有一个选择:你可以使用更简单的宏并将你的密钥视为默认值(iOS将回归到那个)或者使用更专业但更冗长的宏而是为您提供更多控制权。

请注意,此处已经讨论过:Fallback language iOS (with incomplete Localizable.strings file)