20

由于某种原因,我无法让 Settings.bundle 识别我的其他语言。我一定遗漏了一些明显的东西,但我无法弄清楚。这是我所拥有的:

XCode 中的项目结构:

XCode 屏幕截图

根.plist 文件:

Root.plist 文件 http://img227.imageshack.us/img227/571/screenshot20100624at334.png

法语 Root.strings 文件

法语 Root.strings 文件 http://img121.imageshack.us/img121/571/screenshot20100624at334.png

从我读过的所有内容来看,我相信项目结构是正确的。Root.plist 中的 StringsTable 与各个 .strings 文件的名称相匹配,并且 Root.plist 中每个项目的 Key 在 .strings 文件中也有一个匹配项。

更改默认 iPhone 语言后,为什么在设置中看不到法语文本?

提前致谢!

4

6 回答 6

20

For me, the problem was leaving off a semi-colon!

In localizable.strings, you get a runtime error if you omit the ";", but in Root.strings, you don't get any warnings, you can run it fine, but it just won't work!

So double-check to make sure you punctuate each key:value pair with a semi-colon!

于 2013-08-23T02:24:45.807 回答
15

我会继续回答我自己的问题,因为我自己通过测试和失败解决了这个问题。希望这将有助于将来的其他人。

首先,我认为我的Root.plist文件可能已损坏。我不完全确定为什么,但我完全删除了Settings.bundle,并重新创建它以确定。

其次,也许最重要的是,主要问题是文件中的“key”与 中的“ ”字段root.strings不匹配,它实际上与“ ”字段匹配。 keyRoot.plistTitle

一旦我对文件进行了这些更改Root.strings,一切就开始起作用了。

于 2010-06-25T03:06:48.023 回答
11

您所要做的就是在设置之后在 Root.plist 中保留(或添加,如果它不存在)“字符串文件名”。

用示例检查图像

然后,添加值“根”(或文件名和翻译)以使创建的lang .lproj 翻译起作用。

于 2012-05-13T13:44:07.120 回答
4

In Xcode 5 there is still no obvious way to localize the Settings.bundle.

The problem

Xcode doesn't allow you to localize a file that is only shown because it is a file inside a folder that's directly shown in Xcode (hence the blue folder icons in the tree).

The Solution:

  1. right-click the Root.strings file and select "Show in Finder"
  2. List item
  3. move the Root.strings file one folder up, so that the en.lproj folder is empty and the Cmd-Drag the Root.strings file is next to the Root.plist.
  4. delete the now empty en.lproj
  5. go back to Xcode, notice that the tree will reflect the changes you now made
  6. cmd-drag the file in the tree outside to outside the settings-bundle, so that it appears next to your source-code.
    • Do not copy the file
  7. a dialog will appear asking you what to do with the file.
    • DO NOT select the checkbox to copy the file (you need this to be a reference)
    • DO NOT select a target to include the strings-file (the settings.bundle is already assigned to the correct target)
  8. in the file inspector you can now choose to localize the file and to add languages to the localizations. The files will be placed correctly inside the settings.bundle and the tree will automatically reflect these changes, too.
于 2014-06-16T18:33:30.367 回答
4

在我的情况下,它看起来好像在 的属性列表视图"Strings Filename"中设置为,但是当在源代码视图中查看文件时,它实际上指向. 解决方案是添加另一个指向. (我也尝试删除上一个条目,但它停止工作,所以你需要两者。)"Root"Root.plist"StringsTable""Root""Strings Filename""Root"

于 2013-05-06T11:38:34.927 回答
2

在反复尝试激活本地化之后,以下步骤对我有用:

  1. 关闭 xcode
  2. 将设置包拖动并复制到桌面(或任何地方)
  3. 打开捆绑内容
  4. 将 Root.strings 拖入 en.lproj 文件夹
  5. 复制 en.lproj 文件夹并重命名为您想要的任何语言(使用 2 字母代码,即 fr.lproj)

  6. 用新的设置包替换原始设置包(不打开 xcode)。

  7. 现在打开 xcode,新的文件和文件夹应该在那里

现在删除旧的应用程序并运行 xcode,在模拟器和设备上都可以正常工作。

注意:关闭 xcode,更新 xcode 外部的重复设置包并仅替换更新的版本会有所帮助。

于 2012-10-19T08:15:04.450 回答