問題タブ [poedit]
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.
php - PHP Gettext - 翻訳なし
一部の文字列を翻訳するために PHP gettext 拡張機能を使用しようとしています。gettext()
すべての関数は正しい値を返すように見えますが、 /を呼び出すと_()
元の文字列のみが返されます。PO/MO ファイルは正しいようで、ディレクトリを正しく設定したと思います。WindowsでPHP 5.3.10を使用してWAMPサーバーを実行しています(インストールがあるため、5.3.4と5.3.8も実行してみました)。
まず、次を参照してください/new2/www/index.php
。
次のファイル構造を作成しました。
また、、 、、、およびに置き換えSpanish_Spain.1252
てみました。es_ES
esn
esp
Spanish
Spanish_Spain
MO の生成に使用される PO ファイルは次のようになります (関連するエントリのみを示します)。
これは PoEdit を使用して生成されました。新しい .MO ファイルを追加した後、Apache を再起動しました。また、以前は Gettext で Zend_Translate を使用していましたが、正しく翻訳されていたことにも注意してください。ただし、独自の軽量フレームワークを作成しようとしているという理由もあって、ネイティブの gettext 拡張機能に依存したいと考えています。
どんな助けでも大歓迎です。
編集:修正されたディレクトリ構造。注 - 最近の回答を 24 時間以内に試すことができます。
python - POTファイルの生成
PoEditは、スキャンが不要なサブディレクトリ内のPythonソースもスキャンするため、問題が発生します。そのため、PoEditでPOTファイルから文字列に関する新しい情報を取得する必要があります。ここxgettext
では、ソースからPOTファイルを作成できると言われています。しかし、私はその方法を理解できません。常にPOファイルを生成します。
でPOTファイルを作成するにはどうすればよいxgettext
ですか?それとも古いものはpygettext
受け入れられますか?または別のツールはありますか?
internationalization - gettext() の翻訳を保存するには?
次のexample.php
ようなファイルがあるとします。
文字列を抽出すると:
messages.mo
で開くpoedit
、翻訳する、.po ファイルを作成するなどのファイルを取得します。問題は、元のファイルを編集して既に翻訳済みの場合example.php
です。
新しい文字列を追加しました。xgettext
再度実行するとmessages.mo
、すべての文字列が空のファイルが生成されるため、poedit を使用してすべての文字列を再度翻訳する必要があります。以前の翻訳を再利用するにはどうすればよいですか?
php - ロケールがオランダ語に設定されている間、Zendtranslateは英語に翻訳されます
私のZend_translateは機能していますが、何らかの理由で英語にしか翻訳されません。私のロケールが手動でオランダ語に設定されている場合でも、英語の翻訳が表示されます。英語のmo/poファイルを削除すると、オランダ語の翻訳が使用されます。
これはブートストラップで設定されます:
言語ディレクトリには、en_US.mo、en_US.po、nl_NL.mo、nl_NL.poがあります。
私は何が間違っているのですか?
gettext - php gettext と poedit - コンストラクターを使用する場合と使用しない場合のどちらが高速でしょうか
いくつかの属性とそのオプションをクラス Attributes に保存します。
db ではなくコードで保持する理由は別の話です。poedit は動的な翻訳を読み取れないため、問題が発生しています。2 つのオプションがあります。
a) すべての配列値を 1 つのダンプ ファイルに入れます。このファイルは、poedit パーサーによってのみ使用されます。
このようにして、次の方法でビュー内の翻訳を呼び出すことができます。
b) コンストラクターを使用して、そこから gettext を呼び出すことができます。
このようにして、次の方法でビュー内の翻訳を呼び出すことができます。
今私の質問に:
このような属性が約 10 個あり、平均して 40 個のオプションがあるとします。したがって、これはすべて合わせて 400 個の配列ペアになります。このようにコンストラクトを使用すると、アプリケーションが遅くなりますか? これは、コンストラクターを呼び出すたびに、この属性値がビューに表示されていなくても、すべての配列値に対して gettext が呼び出されることを意味するためです。コンストラクターを使用しない場合、実際に使用される単一の属性値に対してのみ gettext が呼び出されます。
abテストをしましたが、違いがなかったので驚きました。しかし、私の感覚では、この方法でコンストラクターを呼び出すと速度が低下すると言うので、何かが欠けているのではないかと心配しています。
php - PoEdit と PHP の注釈
PoEdit に PHP アノテーションを理解させる方法を探しています。以下は、PoEdit にピックアップしてカタログに追加してもらいたいコードのサンプルです。
興味深いのは@Title
注釈です。フロントコントローラーでアクセスされ、マスタービューに割り当てられ、事実上<title>...</title>
タグ内になります。
その文字列を翻訳する必要がありますが、PoEdit は_()
式しか理解できないようで、キーワードへの追加@Title
は機能しません。これはおそらく、PHP の注釈がコメント ブロックにあるためです。
PoEdit に注釈を理解させる方法はありますか?
php - PoEdit は _n() 複数形を認識しません
POEdit のソース キーワードに次のセットがあります。
機能しますが、関数を使用すると最初の文字列しか取得できません_n()
(Twenty Eleven テーマ):
<?php printf(_n('One Comment', '%s Comments', get_comments_number(), 'twentyeleven'), number_format_i18n(get_comments_number())); ?>
認識させる方法はあり_n()
ますか?それはまさに私が問題を抱えていることですが、解決策はありません: http://www.poedit.net/trac/ticket/307
php - 国際化 CakePHP 1.3 が更新されない
ずっと前に私はこのプロジェクトを開発していましたが、今は戻ってきました。C:\...\cake\app\locale\por\LC_MESSAGES
国際化は正常に機能し、 2 つのファイルがあるフォルダーから翻訳を取得しました。
po ファイルを編集し、いくつかの新しいキーワードを手動で挿入しました。たとえば、次のとおりです。
次に、Poedit を開いてすべてを検証し、[保存] をクリックすると、Poedit は .mo ファイルを自動的に作成します。
その後、WAMP を再起動し、キャッシュをクリアしました。
これを何度も繰り返しましたが、結果は常に同じです。古い単語はうまく翻訳されていますが、最近追加した新しい単語は翻訳されていません。
古いものと新しいものは、CakePHP 1.3 プロジェクトで次のように使用しています。
ここで何か不足していますか?
zend-framework - zend translate 式内にビュー変数を含める方法は?
ホームページに最新3ニュースを表示したい。MySql データベースのテーブルから最新のニュースを選択し、次のようにインデックス コントローラーのビュー変数に割り当てます。
次に、それをビューで宣言します。
MySql データベースから News テーブルに新しい行を追加するたびに、一意のヘッダーが Zend_Translate に渡され、Poedit によって自動的に検出され、翻訳されるよう提案されると仮定します。しかし、それはうまくいきません。のようなオプション{$this->latestNew}, '$this->latestNew', "$this->latestNew"
も機能しません。何か案は?
dns - POEditを使用して特定のドメインから(翻訳可能な)文字列を取得する方法
特定のドメインからのみテキストを取得できるようにPOEditを設定する方法を見つけるために何時間も努力してきました
私のgettext関数は次のようになります:
サンプル呼び出し:
翻訳するには、ドメインmyDomainのテキストのみを取得する必要があります。または、少なくともPOEditでこれらのテキストをドメイン固有のファイルに配置する必要があります。それを行う方法はありますか?
私は似たような質問をいくつか見つけましたが、答えは実際には何をすべきかを教えてくれません(私は私が理解するために平易な英語で説明されなければならないような初心者だと思います):