Anular la traducción del núcleo de WordPress predeterminado

9

WordPress está configurado para el idioma holandés. Cuando uso get_the_archive_title() , mi tema muestra correctamente "Categoría: nombre de categoría" en una página de archivo de categorías. Sin embargo, me gustaría que lea "Sectie: Category-name".

No quiero cambiar el archivo de idioma holandés en la carpeta wp-content / languages, porque las actualizaciones de WordPress actualizarán eso.

Intenté copiar ese archivo de traducción, modificando la traducción de "categoría" y colocando el nuevo archivo nl_NL.mo en mi tema / idiomas. Esto no tuvo ningún efecto.

¿Cómo puedo lograr una traducción diferente para algunas cadenas sin alterar los archivos de traducción principales?

    
pregunta Florian 14.05.2015 - 14:49

1 respuesta

10

Podría usar filtro de texto get :

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;
}

Si necesita filtrar una traducción según el contexto, use gettext_with_context filter :

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;
}

Una traducción con contexto significa que se proporciona un contexto en la función gettext utilizada para traducir la cadena. Por ejemplo, esto es sin contexto:

$translated = __( 'Search', 'textdomain' );

Y esto es con el contexto:

$translated = _x( 'Search', 'form placeholder', 'textdomain' );

Filtros similares están disponibles para traducciones en plural ( [_n()][2] y [_nx()][2] ): ngettext y ngettext_with_context .

    
respondido por el cybmeta 14.05.2015 - 15:50

Lea otras preguntas en las etiquetas