Не хотелось бы новых холиваров про Loco Translate и Say What. Хочется мякотки gettext.
Как заменить отдельную строку без переменных — примерно ясно:
function my_text_strings( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case 'Отправить комментарий' :
$translated_text = __( 'Ругать', 'psycopypsycopy' );
break;
case 'Ответить' :
$translated_text = __( 'Ответочка', 'psycopypsycopy' );
break;
case 'Поиск' :
$translated_text = __( ' ', 'psycopypsycopy' );
break;
}
return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );
Но здесь не срабатывают штучки типа:
<a href=\"%1$s\" aria-label=\"%2$s\">Вы вошли как %3$s</a>. <a href=\"%4$s\">Выйти?</a>
И это логично, хоть и пичяльно. Как унять пичяль? Как будет выглядеть верная конструкция для такого вот?
Если что, это в Twenty Twenty такое.