【发布时间】:2011-12-01 19:37:59
【问题描述】:
我的应用程序中有 settings.bundle,其 Root.plist 已正确本地化
Strings Filename Root
现在我有另一个名为 NewInfo 的 plist 文件。如何本地化它?当我使用相同的字符串文件名“根”时,没有任何反应。
有什么想法吗?
【问题讨论】:
标签: objective-c plist settings.bundle
我的应用程序中有 settings.bundle,其 Root.plist 已正确本地化
Strings Filename Root
现在我有另一个名为 NewInfo 的 plist 文件。如何本地化它?当我使用相同的字符串文件名“根”时,没有任何反应。
有什么想法吗?
【问题讨论】:
标签: objective-c plist settings.bundle
编辑答案:
我发现在设置包中本地化您的第二个子窗格 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 中显示,本地化工作正常:
【讨论】:
在您的项目中的 Xcode 中找到该文件。选择它并打开文件检查器(查看 -> 实用程序 -> 显示文件检查器)。您会在那里看到本地化,只需单击 + 按钮并添加您想要的语言。
【讨论】: