iOS 具有默认值的可本地化字符串
iOS localizable string with default values
我想了解可本地化的基本字符串在 iOS 中的工作原理。例如,在 Android 中,如果我有一个默认的可本地化文件字符串(基于 iOS 的本地化),例如:
"title_app" = "Title"
"Copy" = "Copy";
"Edit = "Edit;"
然后我得到了一个西班牙语本地化文件,例如:
"Copy" = "Copiar";
"Edit" = "Editar";
为什么在 iOS 上,如果我在我的设备上设置西班牙语,键 "title_app" 不会出现?因为Android如果没有找到键,它会从默认语言中获取键。
有些词不需要翻译。或者有时我有 10 种语言,也许一种语言需要从一个不可翻译的词中翻译出来。例如 "title_app" = "My app"。英语、法语、意大利语、西班牙语……都一样,但中文不会。将密钥写在 10 个文件上,重复...想象 10、20 或 50 个字,效率不高。
总是 Apple/iOS 在 translation/localization 方面远远落后于 Android... :S
谈翻译;抱歉我的英语不好。
NSLocalizedString
宏有两个参数,一个键和一个注释。密钥将在 Localizable.strings
文件中查找,这是一个简单的键值对集合。
正如@TheEye 在评论中通过 blog post link, you can exercise more control, and explicitly include a default value by using the NSLocalizedStringWithDefaultValue 宏指出的那样。
您必须意识到您有一个选择:您可以使用更简单的宏并将您的密钥视为默认值(iOS 将回退到默认值)或使用更专业的更冗长但给你更多控制权的宏。
注意,这里已经讨论过了:Fallback language iOS (with incomplete Localizable.strings file)
我想了解可本地化的基本字符串在 iOS 中的工作原理。例如,在 Android 中,如果我有一个默认的可本地化文件字符串(基于 iOS 的本地化),例如:
"title_app" = "Title"
"Copy" = "Copy";
"Edit = "Edit;"
然后我得到了一个西班牙语本地化文件,例如:
"Copy" = "Copiar";
"Edit" = "Editar";
为什么在 iOS 上,如果我在我的设备上设置西班牙语,键 "title_app" 不会出现?因为Android如果没有找到键,它会从默认语言中获取键。
有些词不需要翻译。或者有时我有 10 种语言,也许一种语言需要从一个不可翻译的词中翻译出来。例如 "title_app" = "My app"。英语、法语、意大利语、西班牙语……都一样,但中文不会。将密钥写在 10 个文件上,重复...想象 10、20 或 50 个字,效率不高。
总是 Apple/iOS 在 translation/localization 方面远远落后于 Android... :S
谈翻译;抱歉我的英语不好。
NSLocalizedString
宏有两个参数,一个键和一个注释。密钥将在 Localizable.strings
文件中查找,这是一个简单的键值对集合。
正如@TheEye 在评论中通过 blog post link, you can exercise more control, and explicitly include a default value by using the NSLocalizedStringWithDefaultValue 宏指出的那样。
您必须意识到您有一个选择:您可以使用更简单的宏并将您的密钥视为默认值(iOS 将回退到默认值)或使用更专业的更冗长但给你更多控制权的宏。
注意,这里已经讨论过了:Fallback language iOS (with incomplete Localizable.strings file)