是否有办法在项目中为多个目标设置一个base localizable.strings文件,并为每个目标设置第二个localizable.string文件,该文件将覆盖并将单个值附加到基本文件中?
修改
我希望我的应用有两个.strings文件 - Localizable.string和Override.strings。如果在OverrideLocalizable.strings中找不到字符串Title.Welcome,那么我希望该应用程序在Localizable.strings中搜索Title.Welcome。实质上,将Localizable指定为回退,但默认情况下使用OverrideLocalizable.strings。
答案 0 :(得分:5)
以下是我找到的解决方案:
NSString *PSILocalizedString(NSString *key, NSString *comment)
{
return NSLocalizedStringWithDefaultValue(key,
@"OverrideLocalizable",
[NSBundle mainBundle],
NSLocalizedString(key, nil),
comment);
}
这样做是为OverrideLocalizable.strings
搜索名为key
的文件。如果在key
中找不到OverrideLocalizable.strings
的值,则会在localizable.strings
中搜索key
。默认情况下,NSLocalizedString(key, nil)
会搜索localizable.strings
非常简单优雅的解决方案
答案 1 :(得分:0)
对于遇到此问题的4个快速用户...
func get_overridable_string_for_key(string_key: String)-> String{
return NSLocalizedString(string_key, tableName: "OverrideLocalizable", bundle: Bundle.main, value: NSLocalizedString(string_key, comment: ""), comment: "");
}