gettextフィルターを使用できます:
add_filter( 'gettext', 'cyb_filter_gettext', 10, 3 );
function cyb_filter_gettext( $translated, $original, $domain ) {
// Use the text string exactly as it is in the translation file
if ( $translated == "Categorie: %s" ) {
$translated = "Sectie: %s";
}
return $translated;
}
コンテキストで翻訳をフィルタリングする必要がある場合は、filterを使用しgettext_with_context
ます。
add_filter( 'gettext_with_context', 'cyb_filter_gettext_with_context', 10, 4 );
function cyb_filter_gettext_with_context( $translated, $original, $context, $domain ) {
// Use the text string exactly as it is in the translation file
if ( $translated == "Categorie: %s" ) {
$translated = "Sectie: %s";
}
return $translated;
}
コンテキスト付きの翻訳とは、文字列の翻訳に使用されるgettext関数でコンテキストが指定されることを意味します。たとえば、これにはコンテキストがありません。
$translated = __( 'Search', 'textdomain' );
そして、これはコンテキストに関連しています:
$translated = _x( 'Search', 'form placeholder', 'textdomain' );
同様のフィルターが複数の翻訳([_n()][2]
および[_nx()][2]
)で使用できます:ngettext
およびngettext_with_context
。