【问题标题】:iOS localizable string with default values具有默认值的 iOS 可本地化字符串
【发布时间】:2015-05-20 10:45:56
【问题描述】:

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

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

然后我得到了一个西班牙语可本地化文件,例如:

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

如果我在我的设备上设置西班牙语,为什么在 iOS 上没有出现键“title_app”?因为 Android 如果找不到密钥,它会从默认语言中获取密钥。

有些词不需要翻译。或者有时我有 10 种语言,也许一种语言需要从不可翻译的单词中翻译出来。例如“title_app”=“我的应用程序”。英文、法文、意大利文、西班牙文都一样……但中文没有。在 10 个文件上写入密钥效率不高,重复...想象一下 10、20 或 50 个单词。

与 Android 相比,Apple/iOS 在翻译/本地化方面总是远远落后...:S

谈翻译;对不起,我的英语不好。

【问题讨论】:

标签: ios iphone localization translation localizable.strings


【解决方案1】:

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

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

您必须意识到您有一个选择:您可以使用更简单的宏并将您的键视为默认值(iOS 将回退到该值)或使用更详细但更专业的宏而是让您拥有更多控制权。

注意,这里已经讨论过了:Fallback language iOS (with incomplete Localizable.strings file)

【讨论】:

    猜你喜欢
    • 2019-10-03
    • 2011-03-16
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多