iOS本地化(Localizable.strings)无法正常工作

6
我有一个显示“错误”信息的应用程序。我想要翻译这个错误信息。
好的,首先我创建了一个名为“Localizable.strings”的文件。在文件中,我写入了:
"ERR" = "Error";

然后在我的.m文件中我写道:
self.label1.text = NSLocalizedString(@"ERR", nil);

"这样是行不通的。当然,我也尝试过将文件本地化并添加更多语言,但还是无法工作。"

你把字符串文件放到本地化资源文件夹里了吗? - Abizern
你是怎样将 Localizable.strings 添加到你的项目中的?你是否通过 "新建/文件..." 对话框,并在 "iOS/资源" 选项卡下选择了 "字符串文件" 来添加它? - Sergey Kalinichenko
在我的情况下,我已经将文件名替换为默认名称“Localizable.strings”。现在它运行良好。在我的项目中有很多带有语言更改的pods,所以它不会立即重新加载,在第二次重新打开应用程序后才能正常工作。因此,我已经替换了默认文件名“Localizable.strings”。 - Naresh
5个回答

23

按照以下教程创建语言文件,然后填写完毕后执行以下操作:

  1. 执行超级清理(功能键 + shift + k)
  2. 重新构建
  3. 删除您的应用程序
  4. 再次安装您的应用程序

"ultraclean"是什么意思?是从模拟器中删除我的应用程序还是整个项目? - Jonathan Gurebo
1
功能键 + Shift + K - 执行超级清理(清理所有目标) - Misha
1
对我来说,这解决了出现 ERR 而非 error 的问题。此答案依赖于您的本地化设置已经启动并正常工作,但链接需要刷新。下面的其他答案似乎更多地处理设置方面的问题 :) - sam_smith
2
哇,这真是太简单了,苹果!顺便说一句,“超级干净”指的是清理构建文件夹,你可以在Xcode的“产品”菜单中进行操作,然后按住Option键并选择“清理构建文件夹...”。 - RyJ
清理、删除应用程序并重新安装解决了问题。谢谢! - uplearned.com
显示剩余2条评论

7
我遇到了同样的问题。我盯着它看了几天,直到我窥探了应用程序包,并发现我的 .strings 文件都没有被复制...
解决方案是创建一个构建阶段来复制字符串文件:(改编自 这里
  1. 进入 Target\Build phases
  2. 点击 "Add build phase" 按钮并选择 "Copy files"
  3. 在 "Copy files" 阶段中选择 "Resources"
  4. 添加 Localizable.strings 和项目中的任何其他字符串文件。
TADA!

3
如果本地化字符串没有显示出来,可能是pods中存在另一个Localizable.strings文件,所以:
1- 将“Localizable.strings”更名为例如“Localized.strings”。
2- 将其指定为tableName参数。
let myStr = NSLocalizedString("key", tableName: "Localized", comment: "comment")

1
以下步骤可能会帮助您:
  1. 在Xcode左侧窗格中的文件上右键单击,选择“新建文件”
  2. 将出现一个窗口,如截图1所示
  3. 选择“字符串”文件
  4. 将文件重命名为“Localizable.strings”,如截图2所示
  5. 按以下格式向文件添加所需文本: "newStringItem" = "This is new String item";

  6. 现在,文件内容可以用作 NSLocalizedString(@"newStringItem", @""),它会返回相应的字符串。

完成本地化!

Screenshot 1

Screenshot 2


0

如果你按照以下方式使用它会发生什么。

self.label1.text = [NSString stringWithFormat:@"%@",NSLocalizedString(@"ERR", nil)];

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