我正在研究 xcode4 并Settings.bundle
为我的项目创建了一个。我可以Root.plist
在 xcode4 中编辑文件,但无法编辑Root.strings
文件。它甚至没有显示在编辑器中。
如图所示,我无法展开en.lproj
文件夹。
但是当我右键单击时,在外部编辑器中打开它会给我:
双击给Root.strings
我:
我试了几次,新建一个基于窗口的应用程序项目,新建一个Settings.bundle。我总是无法本地化它。有任何想法吗?
我正在研究 xcode4 并Settings.bundle
为我的项目创建了一个。我可以Root.plist
在 xcode4 中编辑文件,但无法编辑Root.strings
文件。它甚至没有显示在编辑器中。
如图所示,我无法展开en.lproj
文件夹。
但是当我右键单击时,在外部编辑器中打开它会给我:
双击给Root.strings
我:
我试了几次,新建一个基于窗口的应用程序项目,新建一个Settings.bundle。我总是无法本地化它。有任何想法吗?
在 XCode 4.2 中,您必须遵循以下步骤(只是Xcode 3.2.2 的修改和 Settings.bundle 的本地化)
编辑:Apple 再次修复了错误的错误。他们的改变使我的解决方法毫无用处。它不再起作用了,您无法将文件添加到 Settings.bundle。
请参阅Javi的答案以获取似乎有效的方法。
我希望你喜欢丑陋的解决方法。
New File
我希望这对你有用,对我来说确实如此。
如果您还没有这样做,请在bugreport.apple.com上报告错误
我现在将安装新版本,让我们看看是否已修复。编辑:不固定。
编辑:我不知道我是否正确理解了您的第二个问题。但是,当您将本地化添加到出现在捆绑包之外的文件时,它会将本地化文件夹添加到 settings.bundle
添加西班牙语本地化后Root.strings
:
实际文件位于 foo.lproj 文件夹中,只是没有在 xcode 侧边栏中显示它们。如果您检查文件系统中的位置,您会看到它们位于设置包中。
昨天我检查了一个英文和德文文件,它在模拟器中正常工作。我想这只是一个错误的侧边栏布局。底层位置和文件的处理似乎是正确的。
对我来说,它可以将文件夹“en.lproj”的文件类型(在文件检查器中)从“默认/目录”更改为“目录”。魔法。
Xcode 4 将“Root.strings”创建为二进制属性列表。所以我必须做的就是将文件类型设置为“属性列表(二进制)”以使其正确显示。
我刚刚放弃尝试用 Root.strings 做点什么。相反,我只是将 plist 复制到每个 *.lproj 中,它就起作用了!
就翻译成英语和我的母语而言,没问题。
所以我有:
Settings.bundle
|- en.lproj
| |- Root.plist
| `- Root.strings -- nothing useful there
|
`- zz.proj
`- Root.plist
好消息是 Root.plist 是 utf8。
如果您已经有一个“属性列表(二进制)”的 Root.strings 文件,并且您希望将其转换为适当的基于文本的字符串文件,您可以plutil
在终端应用程序中将其转换为 JSON 格式:
> plutil -convert json /path/to/Settings.bundle/en.lproj/Root.strings
注意您可以运行plutil -h
以获取使用帮助。
但是,您随后需要转换 JSON 格式:
{"key1":"value1","key2":"value2"}
到字符串文件的那个:
"key1" = "value1";
"key2" = "value2";
这可以通过文本编辑器中的一些搜索/替换操作轻松完成。