4

xmlファイルから文字列を抽出するようにpoeditを設定するには?

次のような .xml に Zend Framework ナビゲーション項目があります。

<entry-i>
    <label>Text to translate</label>
    <params>
       ...
    <params>
<entry-i>

そして、poedit に<label>s からのメッセージだけを読んでもらいたいのです。

4

5 に答える 5

11

私も解決策を探していましたが、うまくいきました!

Poedit (私は 1.4.2 を持ってEdit > Preferencesいます) で、次のプロパティを持つ新しいパーサー ( ) を追加します。

  • 言語:XML
  • セミコロンで区切られた拡張子のリスト (例: .cpp; .h):*.xml
  • パーサー コマンド:xgettext --force-po -o %o %C %K %F -L glade
  • キーワード リストの項目:-k%k
  • 入力ファイル リストの項目:%f
  • ソースコードの文字セット:--from-code=%c

翻訳プロジェクトで、キーワード リストに と を追加し、カタログを更新しますlabeltitle

于 2010-08-11T16:22:40.940 に答える
3

Gladeエクストラクタを悪用して Glade以外のXML ファイルを解析するという上記のアドバイスは誤りです。うまく機能することは決してありません (適切な例: ここにいくつかのコメントがあります)。もちろん、2010 年に何もないよりはましでした。

gettext 0.19.7 (1.8.7 以降 Poedit にバンドルされています) から、より良い方法があります: ITS rulesによるカスタム XML ファイルの gettext のサポートが組み込まれました。

カスタム XML ファイルから文字列を抽出する最良の方法は、

  1. 拡張機能を使用してカスタム エクストラクタを追加し、ビットなしで標準の gettext 呼び出しを指定します。-L glade
  2. ファイル形式のITS ルールを記述します。
  3. それらをPoedit のインストール内のその他のファイル.itsの場所に配置します。.loc
于 2016-05-18T09:17:58.197 に答える
2

Windows での Poedit の設定で問題が発生した場合、特に、glade と expat が利用できないというエラー メッセージが表示された場合は、提供されている xgettext.exe を gnuwin32 プロジェクトの最新のものに置き換えてください。

http://gnuwin32.sourceforge.net/packages/gettext.htm

バイナリと依存関係をダウンロードする必要があります。ただし、バイナリの xgettext.exe と関連ファイルのみを抽出する必要があります (実行するだけで何が足りないかがわかります)

于 2010-11-03T16:56:45.843 に答える
0

PoEditはまだXMLをサポートしていないようです。

PoEditが理解できる.phpファイルにラベルを抽出するための小さなphpスクリプトを作成しました。

$xml = simplexml_load_file("../application/configs/navigation.xml") 
   or die("Error: Cannot open XML file");

echo '<?';
foreach($xml->xpath('//label') as $label){
  echo 'echo _("'.$label.'");'. PHP_EOL;
}
于 2010-07-23T07:49:27.040 に答える
0

うまくいきました!! Windows 7 で Poedit 1.4.6 を使用して「グレードがサポートされていません」という問題を見つけましたが、user496209 が言ったように、最後の gnuwin32 バイナリと依存関係をダウンロードして修正しました。PoEdit には独自の gettext ライブラリが付属しているため、完全なパッケージをダウンロードしないでください。バイナリと依存関係をダウンロードして、要求されたファイルを poedit フォルダーに置き換えます。

于 2011-01-21T10:20:22.163 に答える