为什么ibtool无法将UTF-16字符串文件导入nib?

时间:2010-12-09 09:29:07

标签: iphone ios ibtool

我对ibtool和本地化有一个非常奇怪的问题: 我使用此命令导出stringsfiles:

ibtool --export-strings-file XibLoc.strings SomeXib.xib

然后我尝试将字符串导入Xib文件以生成本地化版本:

ibtool --strings-file XibLoc.strings --write NewXib.xib SomeXib.xib

这是一种非常标准的xib本地化技术,但它会出错:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.ibtool.errors</key>
    <array>
        <dict>
            <key>description</key>
            <string>The stringsfile XibLoc.strings does not appear to contain valid data for UTF-16 string encoding.</string>
        </dict>
    </array>
</dict>
</plist>

那么WTF是那样的吗? ibtool以UTF-16编码导出数据,并且即使我甚至没有更改导出文件中的任何内容,也无法将其导回。有谁知道那里发生了什么?或者我做错了什么?

1 个答案:

答案 0 :(得分:1)

ibtool对文件参数语法过于挑剔。它甚至在ibtool 5.0中变得更糟。请参阅/我的Radar on this

让它为我工作的唯一方法(假设你的本地化提供了主XIB)是:

cd <project folder>
ibtool --strings-file fr.lproj/SomeXib.strings --write fr.lproj/SomeXib.xib en.lproj/SomeXib.xib

不要在路径名中添加任何引号或“..”等,因为在这种情况下ibtool可能会失败。