回答:
TL; DR:親テーマにある文字列を使用する場合は、親テーマでの使用方法を除いて、子テーマにテキストドメインを設定する必要はありません。
ただし、親テーマで使用されていない文字列を使用して翻訳できるようにするには、関連する翻訳(.mo
)ファイルを含む別のテキストドメインが必要になります。
WordPressが翻訳関数で文字列を検出すると、次のようになります。
load_plugin_textdomain
またはload_theme_textdomain
またはを介して)。ロードされているload_textdomain
場合は、ポイント3に進みます。wp-content/languages
)に一致するtextdomainファイルが含まれているかどうかを確認します。一致するtextdomainファイルは"{$domain}-{$locale}.mo"
、$domain
は翻訳する文字列のテキストドメインであり$locale
、Webサイトの現在のロケールです。そのファイルが見つからない場合、元の文字列が返されます。それ以外の場合は読み込まれ、WPは次のポイントに転送します。_n()
)、それらは行われます。それ以外の場合、WPは次のポイントに転送します。子テーマの翻訳機能で親テーマのテキストドメインを使用する場合(親テーマが出荷され、textdomainファイルが読み込まれるか、translationsフォルダーに翻訳ファイルがある場合)、WordPressは上記のリストのポイント3に到達します。文字列はファイルで使用できます(親テーマで使用されるため)。翻訳される場合、翻訳されません。
つまり、親テーマのカスタム文字列には独自の翻訳ファイルが必要です。
理論的には、WordPressは同じテキストドメインを何度もロードして「マージ」できるため、別の翻訳ファイルで親テキストドメインを使用することは可能ですが"{$domain}-{$locale}.mo"
、翻訳フォルダーの形式で存在できるファイルは1つだけであるため、問題があります(上記のリストのポイント2を参照してください)。
したがって、結論として、子テーマに翻訳可能にする唯一の実行可能な方法は、親テーマで使用されていない文字列が含まれている場合、独自のテキストドメインと独自の翻訳ファイルを使用することです。
__('background-color', 'parent-text-domain')
場合、子テーマで同じを使用できます。翻訳するために他に何もする必要はありません。