Todos estos cambios siempre debes hacerlos en el Child Theme, en este caso Flatsome Child. De este modo aunque se actualice el Parent Theme o Tema Principal (Flatsome), no se perderán todos los cambios realizados al momento de la actualización del tema.
Como la cadena tiene contexto (post date by post author), NO basta con gettext. Debes usar gettext_with_context.
Código listo para pegar en functions.php (/public_html/wp-content/themes/flatsome-child)
add_filter( 'gettext_with_context', 'flatsome_traducir_posted_on_by', 20, 4 );
function flatsome_traducir_posted_on_by( $translated, $text, $context, $domain ) {
if ( $domain !== 'flatsome' ) {
return $translated;
}
if (
$context === 'post date by post author' &&
$text === '<span class="posted-on">Posted on %1$s</span> <span class="byline">by %2$s</span>'
) {
return '<span class="posted-on">Publicado el %1$s</span> <span class="byline">por %2$s</span>';
}
return $translated;
}
Además, para traducir cadenas que NO tienen contexto y NO necesitas gettext_with_context. Con gettext es suficiente. Por ejemplo, si deseas traducir en los íconos de redes sociales puedes usar el siguiente código:
add_filter( 'gettext', 'flatsome_traducir_follow_threads', 20, 3 );
function flatsome_traducir_follow_threads( $translated, $text, $domain ) {
if ( $domain !== 'flatsome' ) {
return $translated;
}
if ( $text === 'Follow on Threads' ) {
return 'Síguenos en Threads';
}
return $translated;
}

