このクールなjsgettextライブラリ-> http://code.google.com/p/gettext-js/を見つけましたが、実装方法がわかりません。poeditを使用して翻訳を編集していますが、プロジェクトをチェックアウトしてデモファイルを実行すると機能することがわかりますが、テキストに変更を加えると、.poファイルが更新されず、新しいテキスト。誰かが何か考えを持っていますか?ありがとう!
4 に答える
「gettextコマンドでPythonを強制する必要もありました」:
- ファイル|設定|パーサー
- Pythonを編集する
- 「拡張機能のリスト..」を編集します。
*.py;*.js
- 「パーサー表彰」を編集します。
xgettext --language=Python --force-po -o %o %C %K %F
終わり。
そこに私を導いてくれてありがとうケンター:)
xgettext --language = perl --force-po -o%o%C%K%F(pythonではなくperlを使用)がより良いオプションになると思います。pythonは一重引用符を含むjavascriptコメントで問題を引き起こすためです(終了していません)文字列エラー)。
xgettext
文字列を.potファイルに抽出するために呼び出してから、実行msgmerge
して.poファイルを更新する必要があります。gettext
マニュアルには、すべての厄介な詳細が含まれています。
最初はPythonとPerlの両方の構成で試しましたが、いくつかの複雑なアンダースコアテンプレート、ネストされた引用符と二重引用符、エスケープ文字などを使用しました。両方のパーサーが誤った廃止された文字列のロードを報告したため、ソースコードから.potまたは.poファイルを適切に更新できません。
私も成功せずにテストしました http://code.google.com/p/gettext-js/
多くの試行錯誤の末、私は連鎖解析を使用できることを発見し、poedit1.5.7で正常に機能しました。これらは、最適なマッチングのために同時に有効にする必要がある構成パラメーターです。
Mac版のLibrary/Preferences / net.poedit.Poedit.cfgから抽出されたもので、それ以外の場合はダイアログにコピーして貼り付けることができます。
[Parsers/js]
Extensions=*.js;*.html
Command=xgettext --language=Python --force-po -o %o %C %K %F
KeywordItem=-k%k
FileItem=%f
CharsetItem=--from-code=%c
[Parsers/PHP]
Extensions=*.php;*.js;*.html
Command=xgettext --language=PHP --force-po -o %o %C %K %F
KeywordItem=-k%k
FileItem=%f
CharsetItem=--from-code=%c
拡張機能に*.htmlを含める必要がない場合があることに注意してください。これは、アンダースコアテンプレートを解析するために行いました。それが私にとって本当にイライラさせられた原因になることを願っています:)