2

ibtool とローカリゼーションに非常に奇妙な問題があります。次のコマンドを使用して文字列ファイルをエクスポートしました。

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 エンコーディングでエクスポートしますが、エクスポートされたファイルを何も変更しなくても、インポートできないことがわかりました。そこで何が起こっているか知っている人はいますか?または、私は何を間違っていますか?

4

1 に答える 1

2

ibtool は、ファイル引数の構文に非常にうるさいです。ibtool 5.0 ではさらに悪化しました。これで私のレーダーを見る/だまします。

私のためにそれを機能させる唯一の方法は(あなたのenローカリゼーションがマスターXIBを提供すると仮定して)次のとおりです。

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

この場合、ibtool が失敗する可能性があるため、パス名に引用符や「..」などを追加しないでください。

于 2013-10-02T09:40:05.787 に答える