【问题标题】:iOS Stringsdict fallbackiOS Stringsdict 后备
【发布时间】:2017-01-12 07:43:43
【问题描述】:
我在 iOS 应用程序中使用 stringsdict 功能进行本地化。该应用程序是英文的,并已本地化为法文。因此,我有一个英语版本作为基础,一个法语版本作为翻译。
如果作为用户,我将语言设置为其他语言,例如西班牙语,则应用程序正确使用基本本地化(英语)。但是,假设我的基本字符串字典中有一个项目在法语中不存在。在这里,字符串将作为键出现(即不从字符串字典文件中查找)。有没有办法逐个键回退到基本字符串字典?与仅当该语言环境字符串字典不存在时相反。
【问题讨论】:
标签:
ios
xcode
localization
【解决方案1】:
您可以包装 NSLocalizedString 并将值与键进行比较。如果这是关键,您可以从 bundle 中的 fallback.strings 文件中获取翻译。
- (NSString *)localizedStringForKey:(NSString *)key value:(nullable NSString *)value table:(nullable NSString *)tableName NS_FORMAT_ARGUMENT(1);
另一种选择是从您的翻译文件的英文文件的副本开始,然后逐个替换它们。
这些都不理想。但是换行选项可以更好地扩展,并且将来会帮助您处理方言。