Traducir textos de un plugin sin que se sobrescriba al actualizar

Bueno, seguro que alguien se encontró con la tesitura de traducir un plugin en sus archivos .po y .mo y tener el problema de cada vez que actualiza el plugin tener que volver a traducirlo. Una solución es la siguiente:

Crear una funcion dentro del archivo functions.php de nuestro theme. En el ejemplo está hecho para el plugin the events calendar, pero sirve para cualquier otro. Se entiende bastante fácil. Sólo una cosa importante a comentar, fijaos en las condiciones donde pongo cosas como “strpos($domain, ‘the-events-‘)” de esta manera limito que se traduzca el texto sólo cuando aparecen esas cadenas de texto en la url. Si quitamos la condición afectaría a toda la web, y de esta manera podemos filtrar para que zonas queremos que sean efectivas las traducciones.

 
function tribe_custom_theme_text ( $translation, $text, $domain ) {
 
 
	$custom_text = array(
		'Previous' => 'Anterior',
		'Previous %s' => 'Anteriores %s',
		'Keyword' => 'Palabra de búsqueda',
		'Next %s' => 'Siguientes %s',
		'all %s' => 'Todos %s',
	);
 
 
    	if( (strpos($domain, 'tribe-') === 0 || strpos($domain, 'the-events-') === 0 || strpos($domain, 'event-') === 0) && array_key_exists($translation, $custom_text) ) {
		$translation = $custom_text[$translation];
	}
    return $translation;
}
add_filter('gettext', 'tribe_custom_theme_text', 20, 3);

Add Comment

Required fields are marked *. Your email address will not be published.