【问题标题】:How to localize second plist file in settings.bundle?如何本地化 settings.bundle 中的第二个 plist 文件?
【发布时间】:2011-12-01 19:37:59
【问题描述】:

我的应用程序中有 settings.bundle,其 Root.plist 已正确本地化

Strings Filename Root

现在我有另一个名为 NewInfo 的 plist 文件。如何本地化它?当我使用相同的字符串文件名“根”时,没有任何反应。

有什么想法吗?

【问题讨论】:

    标签: objective-c plist settings.bundle


    【解决方案1】:

    编辑答案:

    我发现在设置包中本地化您的第二个子窗格 plist 文件的唯一方法是手动进行。

    我刚刚对此进行了测试,它可以工作:

    当您在 Finder 中打开 Settings.bundle 时,在每个 language.lproj 文件夹中,复制 Root.strings 文件并将其重命名为 NewInfo.strings(例如)。

    一旦你有了这个,你应该在 Xcode 中看到你的设置包中有这些新的字符串文件。

    现在在您的 NewInfo.plist 文件中,确保您有一个名为 StringsTable 的字段并将其值设置为 NewInfo(或您为新字符串文件命名的任何名称)。

    我刚刚在 Xcode 4.2 中对此进行了测试,并且本地化效果很好:

    这是 Root.plist 的屏幕截图,我在其中添加了“TEST”行以打开子窗格。请注意,其他 NewInfo.plist 和相关字符串位于正确的 lang.lproj 文件夹中(同样,我在 Finder 中手动将它们放在那里)。

    现在这里是 NewInfo.plist,其 StringsTable 键对应于关联的 .strings 文件名:

    以下是 FR 和 EN 中字符串文件的值:

    在模拟器中生成的设置页面在 FR 和 EN 中显示,本地化工作正常:

    【讨论】:

    • 我想我正确地指出了 plist 文件在 settings.bundle 档案中,并且没有本地化选项。
    • 好吧,抱歉,我没有收集到。您将 NewInfo.plist 用于什么用途,是否有特定原因将其放在 settings.bundle 中?
    • 例如查看 iOS facebook 应用程序的设置,在设置中有一个名为 info 的子窗格来显示一些信息。这是我在该主题上提出的上一个问题stackoverflow.com/questions/8308193/…
    • 谢谢,这帮助我找出了一个老错误。在我的情况下,除了每个 xx.lproj 文件夹中的 Root.strings 之外,我还在 Settings Bundle 的顶层留下了一个 Root.strings 文件;这导致只使用这个顶级 Root.strings,而不是本地化的字符串。
    【解决方案2】:

    在您的项目中的 Xcode 中找到该文件。选择它并打开文件检查器(查看 -> 实用程序 -> 显示文件检查器)。您会在那里看到本地化,只需单击 + 按钮并添加您想要的语言。

    【讨论】:

    • 这是不可能的,因为无法展开settings.bundle文件,只能在finder中查看内容
    猜你喜欢
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 2015-02-20
    • 2011-05-20
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2011-02-09
    相关资源
    最近更新 更多