Gettext フィルターの紹介
公開: 2023-02-12すべての要件を満たす WordPress サイトのプラグインまたはテーマを見つけるのは難しい場合があります。 多くは近づくかもしれませんが、それでも調整やカスタマイズが必要です。 さらに、開発者として、コードが世界中のユーザーをサポートできるほど柔軟であることを確認することが重要です。
幸いなことに、サイトの特定の要素を適応させるのに役立つ WordPress コアの機能がいくつかあります。 これにより、他の便利なプラグインを放棄するのではなく、ボタンやラベルのテキストをカスタマイズしたり、翻訳のためにサイトを準備したりすることができます.
この記事では、gettext フィルターがサイトの翻訳プロセスでどのように機能するかなど、gettext フィルターの理解を深めます。 カバーすることがたくさんあるので、すぐに飛び込みましょう!
Gettext とは何ですか?
gettext フィルターを使用すると、WordPress サイトのテキスト要素を変更できます。 例を通して最もよく理解できます。
コメント フォームに「名前」と「メール」の 2 つのフィールドがあるとします。 「First Name」と「Email Address」を読み上げたい場合は、テーマ ファイル内の各用語のすべてのインスタンスを手動で置き換える代わりに、gettext フィルターを使用してそれらを変更できます。
gettext フィルターは、サイトが翻訳用に準備されている場合にのみ機能します。 したがって、それを使用してテキストをカスタマイズする方法について詳しく説明する前に、コードを国際化する方法について説明する必要があります。
先に進む前に理解しておくべきいくつかの用語は次のとおりです。
- 国際化 (i18n)。 これは、WordPress コードが他の言語に翻訳される準備が整ったことを意味します。
- ローカリゼーション (l10n)。 i18n プログラミングを採用し、WordPress インストールをネイティブ言語で使用するためにローカライズするプロセス。
- GNU gettext ライブラリ。 GNU は無料のオープンソース オペレーティング システムです。 その gettext ライブラリを使用すると、テキストをコード文字列にラップして、翻訳用に抽出できます。
- POT ファイル: gettext 関数で作成された翻訳可能な文字列の抽出を実行するために、Portable Object Template (POT) ファイルが作成されます。
- PO ファイル: Poedit などのツールは、POT ファイルを使用して、完成した翻訳と翻訳可能な文字列を含むポータブル オブジェクト (PO) ファイルを作成します。
- MO ファイル:マシン オブジェクト (MO) ファイルは、PO ファイルから作成されます。 これはプラグインまたはテーマ ディレクトリにあり、Web サイトの翻訳版が要求された場合にサーバーによって配信されます。
以下の手順でわかるように、これらの要素はすべて、翻訳用の WordPress 製品を準備する際に役割を果たします。
翻訳のための Gettext と PHP
以下では、テーマまたはプラグインを国際化するためのワークフローについて説明しました。 このような変更を試す前に、使用する子テーマを作成することをお勧めします。 これにより、潜在的な災害からサイトが保護されます。
ステップ 1: テキスト文字列を POT ファイルとして抽出する
最初に、テーマまたはプラグインに既に POT ファイルが含まれているかどうかを確認します。 そうでない場合は、それらを自動生成するか、ターミナルで手動で作成するか、前述の Poedit と呼ばれる WordPress が推奨するアプリケーションを使用する必要があります。
Pro バージョンは、必要なファイルを作成するためのクイック WordPress 機能を提供します。 ただし、無料アプリを使用して数回クリックするだけで POT ファイルを生成できます。
開始するには、デスクトップで実行される Poedit をダウンロードしてインストールする必要があります。 それが完了したら、 File > Newに移動します。 翻訳する言語を選択するよう求められます:
先に進む前に、新しいプロジェクトを保存する必要があります。 次に、既存の POT ファイルを更新するか、ソースから抽出するかを選択できます。
必要に応じて、空の POT ファイルから始めて、Poedit でテキスト文字列を変更することもできます。 または、使用する既存のプラグインとテーマ ファイルを Glotpress で検索することもできます。 ただし、この例では、他のオプションを使用する必要があると仮定しましょう。
[ソースから抽出]をクリックすると、構成する設定の 3 つのタブが表示されます。
テキスト文字列のソースのパスを設定する必要があります。 特定のパスを除外することもできます。 次に、翻訳プロパティを構成します。
ここで、プロジェクトに名前を付け、複数形やその他の言語固有の要素の設定をカスタマイズします。 最後に、 Sources Keywordsタブを使用して、POT ファイルの設定を完了できます。
プラス記号をクリックすると、gettext キーワードを追加して翻訳設定を完了することができます。 また、ソース ファイルからテキスト文字列を表示および検索することもできます。
ステップ 2: ポータブル オブジェクト (PO) ファイルを作成する
次に、追加する言語ごとに POT ファイルを PO ファイルに変換する必要があります。 テーマまたはプラグインを翻訳せず、英語から英語への置換に gettext フィルターのみを使用する予定の場合は、両方の言語 (ソースと翻訳) を英語に設定します。
Poedit で[カタログ] > [POT ファイルから更新]に移動すると、翻訳するファイルを選択できます。
次に、ファイルは抽出プロセスを経て、翻訳可能なすべての文字列が Poedit に取り込まれます。 これにより、PO ファイルが作成されます。 このプロジェクトの他のファイルと一致するように名前を付ける必要があります。
次に、テキスト文字列のリストの下部にある[Create New Translation]をクリックして、変更を開始します。
テキストを英語から英語に変更するには、変更したい文字列をクリックし、ソース テキストの下の翻訳ウィンドウを使用して、置換された単語を入力します。
テーマまたはプラグイン全体で変更するテキストについて、このプロセスを完了します。 次に、必要な 3 つのファイルの最後のファイルを作成します。
ステップ 3: マシン オブジェクト (MO) ファイルに変換する
これまで、翻訳に関するプログラミング命令を作成するための手順を実行してきました。 ここで、各 PO ファイルを変換して、サーバーが読み取り、目的のテキストを訪問者に配信できるようにする必要があります。
Poedit ワークフローの進め方によっては、テーマのLanguagesフォルダーに MO ファイルが既に作成されている場合があります。 そうでない場合は、 File > Compile to MOに移動します。
これで、WordPress の gettext フィルターによって可能になった機能を実行するために必要なコンポーネントが揃ったはずです。
WordPress Gettext フィルターが役立つのはいつですか?
上記のプロセスはサイトを多くの言語に翻訳するのに役立ちますが、それは gettext フィルターの目的ではありません。 つまり、このフックを使用して英語のテキストをスペイン語に変換したくないということです。
むしろ、これはプラグインまたはテーマによってサイトに追加されたデフォルトのテキストを変更するために使用できる設計機能のようなものです。
- ラベルのカスタマイズ
- ボタンのテキストの変更
- 見出しの変更
このプロセスを使用して、Web サイト ファイルで翻訳可能と見なされるテキストをカスタマイズできます。 別の例を挙げると、テーマに「今すぐ購入」と表示されたプリセット ボタンがあり、サイトで「購読」と表示されるボタンが必要な場合、gettext は次のようになります。 その変化を実現できるフィルターです。
gettext を頻繁に使用しすぎると、Web サイトのパフォーマンスに悪影響を及ぼす可能性があることに注意してください。 これは、サイトが読み込まれるたびに実行する必要がある追加のコードであるため、ページ速度の低下を避けるために慎重に使用してください。
WP Engine でメッセージを広める
プラグインを使用するか、Web サイトに手動でコードを変更するかを決定するのは難しい場合があります。 そのため、最高の開発者リソースを手元に用意することが重要です。 WP Engine の専門的でプロフェッショナルなサポートにより、高度にカスタマイズされた Web サイトを作成するために必要なものが手に入ります。
次のプロジェクトに向けて、マネージド専用 WordPress ホスティング プランをチェックしてください。 サーバーのメンテナンスをカバーしているので、簡単に革新できます!