【问题标题】:ios - main.storyboard strings not found in base localizationios - 在基本本地化中找不到 main.storyboard 字符串
【发布时间】:2017-12-21 04:43:26
【问题描述】:

在 xcode 8.3.3 中,我第一次认真地进行本地化。我添加了两种语言,“使用基本本地化”已打开,导出 xliff,导入翻译,一切看起来都和我预期的一样。我有一个 base.lproj 文件夹,其中包含 main.storyboard、我的基本 Localizable.strings 和 InfoPlist.strings。我有两种语言的 lproj 文件夹,每个文件夹中都有它们的文件。在应用程序中,它们按类型排列:

如果我将应用程序设置为以其中任何一种语言运行,它就可以正常工作(我还必须在构建阶段添加一个副本以复制 Localizable.strings 和 InfoPlist.strings)。控制台中没有错误或警告,应用程序正常工作并显示故事板字符串和代码的正确文本。

但是,当我使用基本语言(英语,如果重要的话)时,当应用程序启动时,它会针对所有情节提要字符串抛出警告。大致如下:

2017-07-16 10:57:22.977774-0500 AppName [1574:688423] [strings] ERROR: bFh-6v-hYF.text not found in table Main of bundle CFBundle 0x101d00020 </var/containers/Bundle/Application/guidguid-guid-guid-guid-guidguidguid/AppName.app> (executable, loaded)

注意事实上,所有故事板字符串都以基本语言正确显示,它也只是将这些错误抛出到日志中。在我意识到我需要有基本的 Localizable.strings 之前,当它找不到它们时,它会显示“Key”,对于这个项目来说,它是可翻译的字符串,但它们会以大写形式显示。这里情况不同。该应用程序看起来很好,但会引发错误。

所以我的第一次尝试(在仪式清理和重建之后)是创建一个 Main.strings 文件并尝试将其作为所述字符串的基本版本导入,因为它显然没有在 Main.storyboard 中找到它们那已经在base.lproj中了。那里没有运气,它不会让我这样做 - 这是有道理的,因为它已经认为 Main.storyboard 是基础。接下来的想法是尝试将 Main.storyboard 作为构建阶段的一部分复制到包中,但这没有帮助。在阅读了一天关于其他人在这个平台上使用 i18n 遇到的所有问题的文章之后,我还没有发现完全相同的问题,并且没有想法。

我不能说杀死这些最后的错误似乎很重要,但它们困扰着我,因为否则它会运行干净,并且它可以在除基础之外的任何语言中运行干净。

【问题讨论】:

    标签: ios xcode localization storyboard


    【解决方案1】:

    您的问题现在肯定已经解决了,但也许其他人(比如我)会收到类似的错误消息:
    我的情况是,主故事板由于某种原因不再本地化。

    我因此对其进行了本地化,并创建了两个子文件:

    因此,要本地化故事板,需要:

    • 总是一个文件 Main.storyboard,在文件夹 Base.lproj 中
    • 对于每个本地化文件 Main.strings,在文件夹 XX.lproj 中,其中 XX 特定于语言,例如de 德语。

    我一做故事板的本地化,错误信息就消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 2014-12-16
      • 2018-12-30
      • 2020-06-04
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      相关资源
      最近更新 更多