3

我使用了几个故事板,我刚刚决定将它们本地化(Xcode 已生成.strings 文件)。

我注意到在 Build Phases > Copy Bundle Resources 中,所有与本地化相关的资源都显示为红色。

Xcode 截图

在运行时,本地化仅在主情节提要上起作用。使用 Localizable.strings 进行本地化也可以。但它不在其他故事板上。

我试图重新启动 Xcode,但它没有改变任何东西。(cf Base 国际化和多个故事板无法正常工作

我的本地化故事板是以前编译的。如果我添加另一个故事板,将其本地化并启动编译,则会失败并出现以下错误:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“在捆绑包 NSBundle (...) 中找不到名为“维护”的情节提要

你有什么想法来解决这个问题吗?

4

3 回答 3

1

此错误可能是由于您没有实现您在应用程序设置中选择本地化的多种语言之一

为了在故事板中实现一种语言:

  1. 选择故事板
  2. 在右侧面板上,转到文件检查器选项卡(左起第一个)
  3. Localization中,检查所有语言

你现在有两种方法来本地化你的故事板:

  • 您可以通过选择Localizable Strings来选择为您的语言创建一个.strings文件,这将生成在您的故事板中找到的字符串 xcode 列表。
  • 或者,您可以通过选择Interface Builder Cocoa Touch Storyboard来选择创建“子”故事板,它为特定语言创建不同版本的故事板。

到目前为止,如果您添加新字符串,我只找到了一种在 xcode 中刷新 .strings 文件的方法:只需取消选中并重新检查语言,并在询问时选择“替换文件”。Apple 还提供了一个可以在终端中使用的工具。最后有一个脚本可以自动完成。

于 2013-10-07T16:32:53.167 回答
0

无法在“复制捆绑资源”中复制的红色 Localizable.strings 或其他本地化文件的原因之一可能是目标设置中的“本地化原生开发区域”设置。

该区域应添加到项目的“本地化”中。

即,如果“本地化本地开发区域”为“en”,则应在项目设置中添加“English”作为本地化。

于 2014-01-12T18:06:07.170 回答
0
  • 打开故事板文件
  • 请参阅右侧面板,在本地化部分的第一个选项卡(身份)上,取消选中“基础”
  • 应该会提示您一个对话框,无论答案如何,问题都应该得到解决。

现在您看到构建阶段是正确的,您应该能够运行您的项目。

于 2013-10-03T20:44:50.493 回答