NSLocalizedString没有获得密钥的值

时间:2017-11-19 11:07:10

标签: ios swift nslocalizedstring

我有2个本地化的字符串文件,一个用于罗马尼亚语,一个用于英语。在这两个文件中我都有这一行:

英文:

"invalidSum" = "Invalid amount"

罗马尼亚:

"invalidSum" = "Suma invalida"

我在这样的提醒中使用此消息:

  let titleAlert = NSLocalizedString("invalidSum", comment: "")

    let sumAlert = UIAlertController(title: titleAlert, message: nil, preferredStyle: .alert)
    sumAlert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
    present(sumAlert, animated: true, completion: nil)
    }

然而,每当警报显示时,我都会收到消息" invalidSum",而不是"无效金额"英语本地化和" Suma invalida"罗马尼亚语本地化。我做错了什么?

4 个答案:

答案 0 :(得分:1)

可本地化文件的名称应为“ Localizable.strings”。

答案 1 :(得分:0)

解决了

我的问题是我在Main.strings文件中创建了这些新字符串(当你在Project Info中选择新语言时,Xcode会自动为你创建这些文件。

我必须创建2个名为" Localizable.strings"的新字符串文件。并将其本地化为英语,一本为罗马尼亚语。我将我写入Main.strings的字符串复制到Localizable.strings,现在它就像魅力一样。

答案 2 :(得分:0)

将Localized.string文件重命名为Localizable.strings。就是这样。

答案 3 :(得分:0)

就我而言,问题是格式不正确。 该问题不会立即出现,而只会在下一次构建清理(或类似的tms)之后出现。 因此,我发现文件末尾的行未翻译,但从头开始的行已翻译。 而且我发现其中的一行看起来像

= "some value";

也就是说,根本就没有钥匙。而且构建过程没有错误。但是下面的所有行都没有翻译。