在Swift 2中的本地化

10

我想本地化我的应用程序,我正在使用Swift 2。我遵循了这篇教程,但遇到了两个问题。

1. 本地化图片在两种语言下都消失了

我以相同的方式将多个图像本地化为德语英语。其中一组图像(一张图像的en和de版本)在两种语言下都消失了。我添加了它们,它们位于项目文件夹中,但我无法发现与我本地化的其他图像之间的任何区别。

我尝试过

  • 清理并运行项目(没有错误
  • 删除图像并再次添加它们
  • 删除并添加本地化

…都没有帮助。有任何想法吗?

2. 使用NSLocalizedStringLocalizable.strings出错

我创建了一个Localizable.strings来本地化我的应用程序字符串。这是如何使它们本地化的:

button.setTitle(NSLocalizedString("buttonTitle", comment: "MyButton"), forState: .Normal)

我在Localizable.strings文件中添加了英文:

"buttonTitle" = "MyButton"

...并且对于德语

"buttonTitle" = "MeinButton"

现在,Xcode中的代码没有任何错误提示,但是显示:

读取失败:
数据无法读取,因为格式不正确。


有什么想法吗?
提前致谢


编辑

问题#2已解决,我漏掉了一个;。感谢codingVoldemort!


要实现“即时”更改语言,您可以使用http://cocoapods.org/pods/L10n-swift。 - Adrian Bobrowski
好的,谢谢。我会尝试的!@AdrianBobrowski - LinusGeffarth
3个回答

9
我认为你在每个键值对后的Localizable.strings中漏掉了分号。

糟糕:( 谢谢,我以为我不需要在Swift中使用它。对于第一个问题有什么想法吗? - LinusGeffarth
确实;字符串文件的名称不应该被遗漏!如果您希望在不更改手机系统语言的情况下使用本地化,请使用以下示例库-https://github.com/pr0gramm3r8hai/DGLocalization - dip

2
在英语和德语的Localizable.strings中,您在语句末尾漏掉了分号 应该像这样: "buttonTitle" = "MyButton";
"buttonTitle" = "MeinButton";

您可以参考 苹果文档 进行操作。

屏幕截图


感谢您的回答。第二个问题 - 您在这里解决了 - 已经解决了。 - LinusGeffarth

0

我有点晚了,但如果你仍在寻找任务#1的解决方案:

你可以使用tutorial中提供的解决方案;其中有一个图像国际化部分。

“在项目导航器中选择[您的图像]后,在文件检查器下单击本地化按钮。这应该为您提供在英语和德语中本地化文件的选项。”

话虽如此,我不确定这是否适用于Swift 2(如果您仍在使用);但这应该可以通过最新的Xcode / IDE实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接