两个目标和两个Localizable.Strings(一个基地)
Two targets and two Localizable.Strings (one base)
我有一个简单的问题,我不知道如何让它工作。
我有两个目标:
- TargetApp1
- TargetApp2
我有两个Localizable.strings:
- 用于第二语言的翻译。
- 对于不同的名称(两种语言),仅适用于 TargetApp2。
示例:
我有一个按钮、一段文字或其他东西。在每个应用程序上它应该不同。
- TargetApp1: en: "Store" - lg: "STORE_"
- TargetApp2: en: "Dealer" - lg: "DEALER_"
我试着为两个目标保留第一个 Localizable.strings,而只为第二个目标制作第二个 Localizable.strings。问题是一次只能加载一个 Localizable.strings。我想知道如何让 TargetApp2 使两者 Localizable.strings 相互补充。
如果我没有正确理解您的问题,您需要为 Localizable.strings
文件指定不同的名称,然后使用 NSLocalizedStringFromTable,否则,如您所见,它们会发生冲突并且只有一个在运行时使用。
例如
- 保持 Target1 的
Localizable.strings
不变
- 将 Target2 的
Localizable.strings
重命名为 Extra.strings
- 任何使用第二个 table 中的字符串的地方,请使用
NSLocalizedStringFromTable(key, @"Extra", comment)
我第一次遇到这个问题是在添加包含自己的 Localizable.strings
的 Amazon AWS 库时,该库会被任意使用而不是我的。但是,由于该文件中只有几个字符串,本地化似乎不起作用。那是有趣的 2 天调试!
Swift
NSLocalizedStringFromTable
在 Swift 中不存在具有该确切名称的名称。相反,table
是 NSLocalizedString
中的可选参数
func NSLocalizedString(
key: String,
tableName: String? = default,
bundle: NSBundle = default,
value: String = default,
#comment: String) -> String
使用 Swift,您只需将受影响的字符串的 NSLocalizedString(key: key, comment: "")
更改为 NSLocalizedString(key: key, table:"Extra" comment: "")
。
我有一个简单的问题,我不知道如何让它工作。
我有两个目标:
- TargetApp1
- TargetApp2
我有两个Localizable.strings:
- 用于第二语言的翻译。
- 对于不同的名称(两种语言),仅适用于 TargetApp2。
示例: 我有一个按钮、一段文字或其他东西。在每个应用程序上它应该不同。
- TargetApp1: en: "Store" - lg: "STORE_"
- TargetApp2: en: "Dealer" - lg: "DEALER_"
我试着为两个目标保留第一个 Localizable.strings,而只为第二个目标制作第二个 Localizable.strings。问题是一次只能加载一个 Localizable.strings。我想知道如何让 TargetApp2 使两者 Localizable.strings 相互补充。
如果我没有正确理解您的问题,您需要为 Localizable.strings
文件指定不同的名称,然后使用 NSLocalizedStringFromTable,否则,如您所见,它们会发生冲突并且只有一个在运行时使用。
例如
- 保持 Target1 的
Localizable.strings
不变 - 将 Target2 的
Localizable.strings
重命名为Extra.strings
- 任何使用第二个 table 中的字符串的地方,请使用
NSLocalizedStringFromTable(key, @"Extra", comment)
我第一次遇到这个问题是在添加包含自己的 Localizable.strings
的 Amazon AWS 库时,该库会被任意使用而不是我的。但是,由于该文件中只有几个字符串,本地化似乎不起作用。那是有趣的 2 天调试!
Swift
NSLocalizedStringFromTable
在 Swift 中不存在具有该确切名称的名称。相反,table
是 NSLocalizedString
func NSLocalizedString(
key: String,
tableName: String? = default,
bundle: NSBundle = default,
value: String = default,
#comment: String) -> String
使用 Swift,您只需将受影响的字符串的 NSLocalizedString(key: key, comment: "")
更改为 NSLocalizedString(key: key, table:"Extra" comment: "")
。