1

ibtoolXIB ファイルから文字列を抽出するツールです。コマンド例:

find . -name \*.xib | xargs -t -I '{}' ibtool --generate-strings-file '{}'.strings.txt '{}'

しかし、ibtool によって生成された出力は、「通常の」(開発者以外の) 人間には読み取り可能ではありません。

例:

/* Class = "IBUILabel"; text = "Regards:"; ObjectID = "201"; */
"201.text" = "Regards:";

(翻訳者の観点から) 問題はほとんどありません。

  1. この形式は、Localizable.strings で期待される形式とは異なります。
  2. どのテキストを翻訳するか混乱します: a) これはコメント行に、b) 1 つはコメント外の行に、c) または両方かもしれません
  3. たくさんの混乱があります。

フォーマットで抽出された XIB 文字列が必要Localizable.stringsです (次を使用して NSLocalizableString マクロから抽出された文字列genstrings:

 "key"="to translate";

この方法で ibtool 出力テキストを作成する方法はありますか?

4

1 に答える 1

0

私は bash で独自のスクリプトを作成しました。これは次のことを行います。

  1. ディレクトリ内のすべての xib ファイルからすべての文字列を抽出します
  2. それを .strings 形式に変換します (NSLocalizableStringマクロで予期されます)。"text to translate"="text to translate";翻訳者が直接使用できます。右側のみ、= の後の引用符で囲まれたテキストを編集する必要があります。
  3. 重複を削除します (同意します - 文脈によって翻訳が異なる場合があるため、最良のアイデアではない場合があります)
  4. コメントを削除します (ジュースだけを残します)
  5. アルファベット順に並べ替えます (オプション)
  6. 結果を 1 つの出力ファイルに保存します (すべてマージされ、翻訳の準備ができています)

スクリプトは完璧ではありませんが、うまく機能します。

ここ (90 行) を超えるには少し長すぎるので、GitHub への直接リンクを次に示します。

https://github.com/lukaszmargielewski/extract-strings-from-xib-files/blob/master/extract-strings-from-xib-files.sh

于 2014-05-22T07:14:42.887 に答える