我正在使用xcode4并为我的项目创建了一个Settings.bundle
。我可以在xcode4中编辑Root.plist
文件,但无法编辑Root.strings
文件。它甚至没有显示在编辑器中。
如图所示,我无法展开en.lproj
文件夹。
但是当我右键单击并在外部编辑器中打开时,它会给我:
双击Root.strings
会给我:
我尝试了几次创建基于窗口的新应用程序项目并创建新的Settings.bundle。我总是无法将其本地化。有什么想法吗?
我正在使用xcode4并为我的项目创建了一个Settings.bundle
。我可以在xcode4中编辑Root.plist
文件,但无法编辑Root.strings
文件。它甚至没有显示在编辑器中。
如图所示,我无法展开en.lproj
文件夹。
但是当我右键单击并在外部编辑器中打开时,它会给我:
双击Root.strings
会给我:
我尝试了几次创建基于窗口的新应用程序项目并创建新的Settings.bundle。我总是无法将其本地化。有什么想法吗?
在XCode 4.2中,你需要按照以下步骤操作(这只是Xcode 3.2.2和设置束本地化的修改版):
编辑:苹果公司修复了这个错误,他们的更改使我的解决方法失效了。它现在不再起作用,您无法向 "Settings.bundle" 添加文件。
请参考Javi的答案提供的一种似乎可以使用的方法。
希望你会喜欢这个丑陋的解决方案。
New File
。我希望这对你有用,对我来说有效。
如果您还没有这样做,请报告错误 bugreport.apple.com
我现在将安装新版本,让我们看看这是否已修复。 编辑:未修复。
编辑:我不知道我是否正确理解了您的第二个问题。但是,当您向位于捆绑包之外的文件添加本地化时,它会向 "settings.bundle" 添加一个本地化文件夹。
在 Root.strings
中添加西班牙语本地化之后:
实际文件在foo.lproj文件夹中,只是在xcode侧边栏中不显示它们。如果您检查文件系统中的位置,您会发现它们在设置包内。
昨天我使用了英语和德语文件,在模拟器中正常工作。我猜这只是一个错误的侧边栏布局。底层位置和文件处理似乎是正确的。
对我而言,将文件夹“en.lproj”的文件类型(在文件检查器中)从“默认/目录”更改为“目录”即可解决问题。神奇。
我刚刚放弃了尝试处理Root.strings的做法。相反,我只是将plist文件复制到每个*.lproj中,然后它就起作用了!
至于翻译成英语和我的母语,没有问题。
所以我有:
Settings.bundle
|- en.lproj
| |- Root.plist
| `- Root.strings -- nothing useful there
|
`- zz.proj
`- Root.plist
Xcode 4将"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";
这在文本编辑器中进行几个搜索/替换操作就很容易实现。