Substituir a tradução padrão do WordPress

WordPress é definido como idioma holandês. Quando uso get_the_archive_title() meu tema corretamente, exibe “Categorie: Category-name” em uma página de arquivo de categoria. No entanto, eu gostaria que leia “Sectie: Category-name”.

Não quero alterar o arquivo de idioma holandês na pasta wp-content / languages, porque isso será atualizado pelas atualizações do WordPress.

Tentei copiar esse arquivo de tradução, alterando a tradução “categoria” e colocando o novo arquivo nl_NL.mo em meu tema / idiomas. Isso não teve nenhum efeito.

Como posso obter uma tradução diferente para algumas cordas sem alterar os arquivos de tradução do núcleo?

Solutions Collecting From Web of "Substituir a tradução padrão do WordPress"

Você pode usar o filtro gettext :

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

Se você precisa filtrar uma tradução com contexto, use o filtro gettext_with_context :

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

Uma tradução com contexto significa que um contexto é dado na function gettext usada para traduzir a string. Por exemplo, isso é sem contexto:

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

E isso é com contexto:

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

Filtros semelhantes estão disponíveis para traduções plurais ( [_n()][2] e [_nx()][2] ): ngettext e ngettext_with_context .