3. Вместо функций _e() или __() используем функции pll__(), pll_e() вместе с pll_register_string() и переводим в админке WordPress на странице настроек Polylang. Документация.
Echoes a translated string previously registered with pll_register_string
pll_e($string);
. Функция принимает не две строки-переводы - англ и рус, а только одну строку - ту, которая была зарегистрирована в pll_register_string().Allows plugins to add their own strings in the “strings translation” panel. The function must be called on admin side (the functions.php file is OK for themes).
pll_register_string($name, $string, $group, $multiline);
‘$name’ => (required) name provided for sorting convenience (ex: ‘myplugin’)
‘$string’ => (required) the string to translate
‘$group’ => (optional) the group in which the string is registered, defaults to ‘polylang’
‘$multiline’ => (optional) if set to true, the translation text field will be multiline, defaults to false
pll_register_string( 'mythemeorpluginslug', 'English text to translate' );
pll_e( 'English text to translate' );
. композиция, наследование не суть важно.
легкость модификации достигается грамотным наследованием