两个目标和两个Localizable.Strings(一个基础)

时间:2016-06-14 14:17:27

标签: xcode swift target localizable.strings

我有一个简单的问题,我无法弄清楚如何使其发挥作用。

  • 我有两个目标:

    1. TargetApp1
    2. TargetApp2
  • 我有两个Localizable.strings:

    1. 翻译第二语言。
    2. 对于不同的名称(在两种语言中),仅适用于TargetApp2。

实施例: 我有一个按钮,一个文本或其他东西。在每个应用程序上它应该是不同的。

  • TargetApp1:zh:“Store” - lg:“STORE _”
  • TargetApp2:zh:“经销商” - lg:“经销商_”

我尝试为两个目标保留第一个Localizable.strings,并仅为第二个目标创建第二个Localizable.strings。问题是一次只加载一个Localizable.strings。我想知道如何使TargetApp2使Localizable.strings互为补充。

1 个答案:

答案 0 :(得分:1)

如果我已正确理解您的问题,您需要为Localizable.strings个文件指定不同的名称,然后使用NSLocalizedStringFromTable,否则,正如您所发现的那样,它们会发生冲突,只有一个在运行时使用。

e.g。

  • 保留Target1' Localizable.strings原样
  • 将目标2&{39}重命名为Localizable.strings
  • 使用第二个表格中的字符串的任何地方,请使用Extra.strings

我在添加包含自己的NSLocalizedStringFromTable(key, @"Extra", comment)的Amazon AWS库时首次遇到此问题,该库将被任意使用而不是我的。{1}}。但是,因为该文件中只有几个字符串,所以看起来好像本地化不起作用。这是一个有趣的2天调试!

夫特

Localizable.strings与Swift中的确切名称不存在。相反,NSLocalizedStringFromTabletable

中的可选参数
NSLocalizedString

使用Swift,您只需要为受影响的字符串将func NSLocalizedString( key: String, tableName: String? = default, bundle: NSBundle = default, value: String = default, #comment: String) -> String 更改为NSLocalizedString(key: key, comment: "")