0

wordpress テーマ用の .po ファイルを作成しました。文字セットは、「utf-8」として定義できないか、Poedit (文字列をカタログ化するために現在使用しているプログラム) で開かないため、Unicode です。残念ながら、アクセントを含む文字列 (私のベース言語はフランス語であるため、フランス語の文字列) は、Peoedit (したがって .mo コンパイル) または __() および _e() の gettext 処理によって正しくレンダリングされません。私のウェブサイトの .php ファイルは現在、フランス語のアクセントを処理するために utf-8 です。

.mo ファイルと Web ファイルの間の文字セットの不一致が原因でしょうか? もしそうなら、どうすれば .po と .mo ファイルを utf-8 charset でレンダリングして動作させることができますか? これが私の .po ファイルのヘッダーです (動作しない utf-8 エンコーディングを含む):

msgid ""
msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Patrick <shock_x_trooper@hotmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
4

2 に答える 2

0

あなたが言ったように "Content-Type: text/plain; charset=utf-8\n" を定義する必要がありますが、ファイルを UTF-8 (BOM なし) に変換する必要もあります (notepad++ はそれを行います)。

poedit で再度開くと、アクセントは OK と表示されるはずです。保存して WP テーマ フォルダーにアップロードします。

于 2011-12-01T11:19:43.973 に答える
0

実際の .po または .mo ファイルの初期化コードの詳細または 16 進ダンプの代わりに、調べる価値のある唯一のものはbind_textdomain_codeset. (また、またはsetlocaleに文字セットを追加します。)LANG=LC_ALL=

msgfmtおよびphp2po(Pootle 経由) は、UTF-8 を機能させることができない場合の Poedit の代替手段です。(これはあなたがする必要があることです。)

于 2011-11-12T21:49:27.493 に答える