問題タブ [xgettext]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
localization - gettext を使用してフォルダー内のすべての c ファイルから文字列を抽出する方法
「C」プロジェクトをローカライズしようとしていますが、 xgettext で文字列を抽出する方法がわかりません。また、プロジェクトには非常に多くの C ファイルがあるため、1 つずつ抽出することは現実的ではありません。すべてのファイルから一度に文字列を抽出することは可能です。または他の方法はありますか?
前もって感謝します
poedit - POedit/xgettext: コンテキスト固有の .po ファイルの作成 / 文字列のインポート
POedit/xgettext: コンテキスト固有の .po ファイルの作成 / 文字列のインポート
POedit を使用して 2 つの個別の言語ファイルを操作したいので、翻訳者はクライアント固有の言語ファイルを 1 つ編集するだけで済み、システム固有の言語ファイルはそのまま残ります。
これは私の xgettext 呼び出しです:
ただし、このPOEditを使用して特定のドメインから(翻訳可能な)文字列を取得する方法は、すべての翻訳可能な文字列を取得します。
ここで、特定のコンテキストに一致する文字列のみを含む .po ファイルを作成したいと考えています。これは私のPHPです:
imlang_ext コンテキストに一致する値のみをインポートするにはどうすればよいですか?
php - xgettext --join-existing を実行すると、ポット ファイルに複数のコメントが表示されます
ソースディレクトリ(PHP)をスキャンしxgettext --join-existing ...
、更新された翻訳を実行してpotファイルに保存するビルドスクリプトがあります。
コードのリファクタリングとビルドを数回行った後、pot ファイルがこのようなものになる理由はわかりません。
コメントにソース/行が 2 行あるのはなぜですか? (ソース内でメッセージを移動したためだと思います。)
では、同じファイルのコンテンツが更新された場合に xgettext を無視させるにはどうすればよいでしょうか?
--join-existing
または、ビルド スクリプトで使用することをお勧めしませんか? (でも時々、pot ファイルに手動の項目があるので、どうすれば解決できますか?)
internationalization - ICU4C と XLIFF によるローカライズ
ICU によるローカライズでは、ローカライズ可能なデータを XLIFF 形式で保持することをお勧めします。
そこで、GNUxgettext
を使用して文字列を抽出してgettext
ファイルをフォーマットし、po2xliff
.
最後に、XLIFF To ICU ResourceBundle Format Converterを使用して、それらを ICU リソース形式に変換しようとしましたが、機能しないことがわかりました。それはエラーを訴えます:
ほぼ同じエラーが何年も前に報告されており、まだ修正されていません。
貧弱な XLIFF ファイルの 2 行目は次のとおりです。
さて、example.xlf
ICU によるローカライズのページに従って行を編集し(サンプル ファイルには多くのタイプミスがあります)、再試行したところ、次のようになりました。
では、ICU4C と XLIFF を使用したローカライズのベスト プラクティスは何ですか?
javascript - cli 引数から xgettext 関数名とパラメーターを抽出する正規表現
私は、ユーザーが引数とともに関数名で引数を指定できるようにする CLI アプリに取り組んでいます。xgettext
実際には、次のようにと同じ構文を使用しています。
--keywords=__,dgettext:2,dcgettext:2,ngettext:1,2,dpgettext2:2c,3
これを次のような配列に分解する正規表現を理解する必要があります。
どうすればできますか(たとえば、Javascriptで)?
これが私がこれまでに持っているものです:
明らかにこれには問題があります。毎回カンマもキャプチャしています。どうすればそれを除外できますか?
java - Java プロジェクトの Windows 7 で gettext が「不正なファイル記述子」を返す
Java プロジェクトでgettextを使用して、さまざまな言語の翻訳を提供しようとしています。
私のワークステーションは Windows 7 を実行しているので、ビルド プロセス全体を実行できるようにしたいと考えています (キーの生成と翻訳の更新を含む - すべて gradle スクリプトから)。
ただし、 msgfmtツールはエラーを返します:追加情報なしで「不正なファイル記述子」 ...
インターネットで役立つ情報を見つけることができませんでした。誰かが同様の問題を抱えており、上野大樹という男がパッチを提案しましたが、問題がまだ存在するため、公式のgettextバージョンには行かなかったと思います...
参照: https://lists.gnu.org/archive/html/bug-gnulib/2013-09/msg00049.html
手順
プロジェクト内の Java ファイルのリストを作成する
翻訳ディレクトリを作成する
すべての文字列を母国語で含む pot ファイルを作成する
keys.pot ファイルの CHARSET を置き換えて、エンコーディング名 'utf-8' を修正します
...手動ステップ...
コンテンツの説明を含む翻訳ファイルを作成する
キーをローカライズされた po ファイルにマージする
create default ResourceBundle class file << エラーで失敗します (以下を参照)
gettext の次の実装を試しました。
- GetGnuWin32-0.6.3
- MinGW-0.18.3
- gettext-tool-windows-0.18.3
- gettext-tool-windows-0.19.4
- gettext-iconv-windows-0.19.4
最初のものは Windows 7 64bit でクラッシュします
残りのmsgfmtは、次の出力を提供します。
誰でもそれを機能させるのを手伝ってもらえますか?
php - マルチロケール アプリケーションの dgettext でドメインの配列を使用できますか?
xgettext によって生成された翻訳 POT ファイルを各ロケールの翻訳者に提示したいマルチロケール アプリケーションがあります。
現在、次のコードでこれを行うことができます (これは単なるサンプル コードであり、実際の国固有の要件ではないことに注意してください)。
私は次のことができるようにしたいと思います:
そして、国ごとに POT ファイルを生成します。
質問:
「ドメイン」の配列を処理するための gettext の方法はありますか、または gettext ライブラリを拡張する必要がありますか?
xgettext にドメイン (-d) フラグを指定すると、「アドレス 1」が POT ファイルに含まれますか? それとも、gettext および dgettext でラップされた文字列を含めるために別のフラグが必要ですか?
javascript - Django makemessages javascript (xgettext)
django i18n サポートを使用して JavaScript ファイルを翻訳したいと考えています。次のJavaScriptファイルがあります。
ここで、djangos makemessages コマンドを実行します。
作成された翻訳ファイルには 4 つのエントリ ('example'、'button text'、'SOME TEXT'、'MORE TEXT') があると予想されgettext
ます。これは、js ファイルに 3 回出現するためです。しかし、作成されたロケール ファイルには、"example" のエントリが 2 つしかありません。
この警告も表示されます。しかし、それが何を意味するのかわかりません (ファイルには 32 行しかありません)。
django が他のエントリを無視する理由を知っている人はいますか? jsx構文を使用しているためか、es6クラスを使用しているためでしょうか?
アップデート:
これはdjangoの問題ではなく、xgettext
. Django はxgettext
次のコマンドで呼び出します。
それで、xgettext
私を助けることができる専門家はいますか?