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