WordPressプラグインとテーマは、WordPressウェブサイトの機能と見た目をカスタマイズできるツールです。多くの場合、ニーズに合わせて調整できる設定や構成オプションが含まれています。例えば、Easy Digital Downloadsを使用すると、購入後にお客様に送信される購入レシートメールのメール件名とヘッダーを制御できます。

これらの設定は、プラグインやテーマに含まれるテキストを変更する必要がある場合に便利ですが、
すべてのテキスト文字列にそのような設定を含めることは現実的ではありません。ユーザーに表示されるテキスト文字列であっても、WordPress管理画面にのみ表示されるテキスト文字列であっても、閲覧者にとっては十分であると見なされ、簡単に変更できない場合があります。
そこで役立つのが
Say What? WordPressプラグインです。Say What?は、プラグインおよびテーマ開発者がすべてのテキスト文字列を「翻訳準備完了」にすることを奨励するWordPress標準を活用しています。テキスト文字列が翻訳準備完了であるということは、適切なWordPress構成があれば、プラグインまたはテーマを別の言語に翻訳できることを意味します。
Say What?は、それらの翻訳準備完了テキスト文字列を個別にターゲットにし、必要に応じて変更する機能を持っています。
Say What?を使用してテキスト文字列を変更する
Say What?プラグインを使用してテキスト文字列を変更する方法について、簡単な例を見てみましょう。
Easy Digital Downloadsで商品がカートに追加され、お客様がチェックアウトページに進むと、お客様がカートに追加した商品のリストとともにチェックアウトカートが表示されます。

チェックアウトカートの列の上に表示される「商品名」、「単価」、「アクション」というヘッダーに注目してください。これらはEasy Digital Downloadsに含まれるテキスト文字列です。ただし、そのテキストを変更する設定はありません。そこで、次の手順でSay What?を使用して「商品名」テキストを変更します。
1.Say What?をインストールして有効化します。WordPressプラグインのインストール方法に慣れていない場合は、WP Beginnersのこの記事をご覧ください。
2.有効化したら、WordPressダッシュボードのツール -> テキストの変更に移動し、ページ上部にある新規追加ボタンをクリックします。
3.4つのテキストフィールドが表示されます。
元の文字列、テキストドメイン、テキストコンテキスト、置換文字列。
- 元の文字列 – このフィールドは、変更しようとしているテキスト用です。この場合、「商品名」というテキスト文字列を変更したいので、フィールドに正確に入力します。注意: このフィールドは大文字と小文字を区別します。つまり、「商品名」と「商品名」は同じテキスト文字列ではありません。
- Text domain – このフィールドには、各プラグインまたはテーマに固有の識別子が必要です。Easy Digital Downloadsの場合、テキストドメインは
easy-digital-downloadsです。他のプラグインまたはテーマのテキストドメインを見つけるのに支援が必要な場合は、開発者にお問い合わせください。 - Text context – このフィールドは常に必要とされるわけではありません。場合によっては、単一のプラグインまたはテーマ内の2つ以上のテキスト文字列が完全に同じになります。この場合、開発者は通常、各テキスト文字列のコンテキストを提供して、各特定の文字列がどこで使用されているかを特定するのに役立ちます。ほとんどの場合、このフィールドは空白のままにすることができます。
- Replacement string – このフィールドはあなたの遊び場です。Original stringフィールドに入力したテキストは、このフィールドに入力したものに置き換えられます。
4.新しいテキストの変更を保存し、結果を確認します。
例の作業に適合するテキストの変更を見てみましょう。

そのテキストの変更が追加されると、「Item Name」はチェックアウトカートで「My Custom Text」に置き換えられると予想できます。

成功!
トラブルシューティングと一般的な問題
Say What?の使用が上記の例よりも少し複雑になる場合があります。新しいテキストの変更を作成したが、正しく機能しない場合は、確認すべきことがいくつかあります。
大文字と小文字の区別
Original stringの値が、変更しようとしているテキスト文字列と同じ大文字と小文字のパターンを使用していることを確認してください。My Text Stringはmy text stringと同じではありません。
プレースホルダー
WordPressの翻訳準備完了文字列は、テキストの一部をプレースホルダーで置き換えることができるPHPコードでラップされている場合があります。
たとえば、Easy Digital Downloadsは、顧客が別の顧客に属するメールアドレスを使用して購入を完了しようとすると、チェックアウトページにエラーを表示します。次のメッセージが表示されます。
メールアドレス [email protected] は既に使用されています。
顧客にとっては通常のテキスト文字列のように見えますが、実際のテキスト文字列はPHPプレースホルダーを使用して、顧客が使用しようとしているメールアドレスに基づいてメールアドレスが異なる値を持つことを許可します。したがって、実際のテキスト文字列は次のようになります。
メールアドレス %s は既に使用されています。
ご覧のとおり、%sはメールアドレスのプレースホルダーです。Say What?でテキストの変更を作成するとき、Original stringフィールドには、テキスト文字列をそのまま含める必要があります。つまり、値には1つ以上のPHPプレースホルダーが含まれる場合があります。
テキストコンテキストが必要です
2つの異なるテキスト文字列が完全に同じであることは珍しくありません。この場合、開発者は、各テキスト文字列がどこで使用されているかを説明するコンテキストを提供して、それらを区別することが推奨されます。
特定のテキスト文字列、例えば、特定のプラグインの「保存」というテキスト文字列をプラグインまたはテーマのコードベースで検索した場合、この正確なテキスト文字列が3つの異なる場所で使用されていることがわかるかもしれません。これは、コンテキストなしでテキスト文字列を変更すると、3つのすべての場所で変更が発生することを意味します。それを避けるために、コードベースで次のような翻訳準備完了のテキスト文字列に気づくかもしれません。
__( '保存', 'プラグイン設定を保存するためのボタン', 'text-domain');
このテキスト文字列は、
プラグイン設定を保存するためのボタンというコンテキストを提供します。Say What?でテキストの変更を作成するときは、その正確な値をテキストコンテキストフィールドに入力してください。
メモとヒント
テキスト文字列の特定に時間がかかる場合があります。テキスト文字列自体は、常にウェブサイトに表示されるテキストと同じとは限りません。
探している正確なテキスト文字列を見つける簡単な方法は、プラグインまたはテーマのルートフォルダにある
languagesディレクトリを探し、そのディレクトリ内で.potで終わるファイルを探すことです。このファイルには、プラグインまたはテーマによって提供される翻訳準備完了の文字列の完全なリストが含まれているはずです。リストの中から文字列を戦略的に検索してください。たとえば、プレースホルダーの例の文字列を探しているときに、「既に使用されています」を検索したい場合があります。
テキスト文字列が見つからない場合は、プラグインまたはテーマのサポートに連絡して、特定の手助けを求めてください。単に見落としたか、テキスト文字列が翻訳準備完了ではなかった可能性があります。
