我在iOS应用中使用stringsdict功能进行本地化。该应用程序是英文的,并已本地化为法语。因此,我有一个英文版本作为基础和一个法语版本的翻译。
如果用户将我的语言设置为其他语言(如西班牙语),则应用程序会正确使用基本本地化(英语)。但是,假设我的基本字符串中有一个项目在法语中不存在。这里的字符串将仅作为键出现(即不从stringsdict文件中查找)。有没有办法在密钥的基础上回退到基本字符串?与仅当locales stringsdict不存在时相反。
答案 0 :(得分:0)
您可以包装NSLocalizedString并将值与键进行比较。如果它是密钥,您可以从包中获取fallback.strings文件的转换。
- (NSString *)localizedStringForKey:(NSString *)key value:(nullable NSString *)value table:(nullable NSString *)tableName NS_FORMAT_ARGUMENT(1);
另一种选择是从翻译文件的英文文件的副本开始,然后逐个替换它们。
这些都不是理想的。但是包装选项可以更好地扩展,并且将来会帮助您使用方言。