我正在尝试本地化我的应用,并且我已在“信息”标签下设置了两种语言的本地化。 Xcode在Main.storyboard下创建了两个名为Main.strings(英语)和Main.strings(德语)的新文件。
现在,当我更改这些文件中的不同元素(Xcode为按钮,标签,标题等创建的元素)时,一切正常。
但我也需要本地化一个警报控制器。这是我做的,但这不起作用,我不知道为什么,因为到目前为止搜索引擎的帮助,我做到了正确的方式:
在两种语言的Main.strings文件中,我在文件底部的Xcode创建的元素下添加了这个:
"alert" = "Nothing to Share!";
"message" = "You must enter a value and hit SPLIT to share with your friends.";
"cancel" = "Cancel";
(and obviously the same for the German Main.Strings file)
在我的viewController中,我添加了这样的警报控制器:
let alertTitle = NSLocalizedString("alert", comment: "")
let alertMessage = NSLocalizedString("message", comment: "")
let cancelButtonText = NSLocalizedString("cancel", comment: "")
let alert = UIAlertController(title: alertTitle, message: alertMessage, preferredStyle: .alert)
let cancelAction = UIAlertAction(title: cancelButtonText, style: UIAlertActionStyle.cancel, handler: nil)
alert.addAction(cancelAction)
present(alert, animated: true, completion: nil)
警报控制器工作正常,但它显示我为NSLocalizedString添加的键。因此,在这种情况下,控制器显示:
但是Xcode没有从我在两个Main.Strings文件中添加的键中提取相应的字符串。如果我将“警报”键更改为“测试”,则控制器将显示单词test。
那么我在这里做错了什么以及如何解决这个问题? 我是否必须在Main.strings文件中指定我没有或我必须链接到这些文件的内容?由于改变了Main.strings中所有Xcode生成的元素,我虽然这个过程是完全自动的吗? 感谢。