これと本当に苦労しています。
私は最近、文字列を抽出、連結、重複排除してWebiteのビューページ全体(使用中のMVCフレームワーク)から変換するbashシェルスクリプトを設定しました。これは次のようになります。
for x in *.php; do xgettext --no-wrap --language=PHP -e --flag=_:1:pass-c-format -a "$x" -o "${x%.php}.pot"; done
msgcat -u -s --output-file=$WEBSITENAME-concat.pot *.pot
msguniq -u --output-file=$WEBSITENAME-unique.pot $WEBSITENAME-concat.pot
msgmerge -s -v -U $WEBSITENAME.po $WEBSITENAME-unique.pot
上記は、克服するのが難しい順に、これら2つのことを除けば完全にうまく機能しています。
すべてのウェブサイトのソースコードを通して、翻訳が必要なすべての文字列が関数_('ここで翻訳する文字列')で囲まれていることを確認するように注意しましたが、xgettextコマンドはファイル内のほとんどすべての文字列を私が抽出したものから抽出しています_('')関数で囲まれているものだけでなく、わかります。これは私の結果の.potを意味しますファイルには、変数名、URL、フォーマット文字列、関数パラメーター、構成データ、およびトランスレーターに渡してはならないその他の不適切な文字列が含まれています。ウェブサイトのサイズが原因で、これらを手動で削除することは実用的ではありません。80,000近くの文字列エントリを調べています。これは、次の6日以内に同じ方法で処理する必要がある数の最初のウェブサイトにすぎません。数週間!翻訳用の文字列のみを抽出するようにxgettextを構成するにはどうすればよいですか?
抽出された文字列の多くには改行があり、文字列内に\nとして挿入されます。これを行わないようにxgettextを構成する方法、またはこれらを削除する簡単な方法はありますか?
私はドキュメントを読み、特に問題番号の解決策を見つけるために何時間も何日もWebを検索してきました。1、そしてgettextの達人からの助けを本当に感謝します!前もって感謝します..