web-dev-qa-db-fra.com

Comment remplacer le fichier de langue par défaut de Wordpress

Je rencontre un petit problème et j'ai essayé plusieurs solutions, mais aucune d'entre elles n'a malheureusement fonctionné. Peut-être que quelqu'un a une idée pourquoi :-)

J'utilise le thème Syntax d'Automattic, qui a son propre fichier de langue, mais il utilise également le fichier de langue par défaut de Wordpress pour afficher certains mots dans l'interface de mon thème.

J'ai défini la langue en néerlandais (nl_NL) et un mot n'est pas traduit correctement, à savoir le mot "Aside" qui est également traduit dans "Aside". Cependant, ce n'est pas un mot néerlandais et j'aimerais le changer en "Notités".

J'ai essayé ces trois solutions, mais elles n'ont pas toutes fonctionné :-( Cela a peut-être quelque chose à voir avec le fait que le mot original 'Aside' est traduit dans 'Aside' aussi bien dans le fichier de langue de base de Wordpress? Je suis juste devinant :-)

  1. Option 1 qui n'a pas fonctionné
  2. Option 2 idem.
  3. Option 3 en utilisant le plugin 'Localisation rapide'

C'est le script qui réside dans wp-includes/post-formats.php qui concerne l'affichage du mot 'Aside' dans le front-end de mon site web:

    function get_post_format_strings() {
        $strings = array(
            'aside'    => _x( 'Aside',    'Post format' ),
        );
        return $strings;
    }

J'espère que quelqu'un a une idée brillante. Je l'apprécierais beaucoup.

Merci et salutations, Bark

1
Bark Berendsen

Corriger la réponse donnée par Max. Pour utiliser cette approche, le filtre dont vous avez besoin est gettext_with_context car votre chaîne est traduite via _x() et non pas __().

Notez que l'argument filtré passé est letranslation, vous devez donc vérifier la chaîne source ($text et $context) pour vous assurer de filtrer le bon élément.

add_filter( 'gettext_with_context', 'added_translation', 20, 4 );

function added_translation( $translation, $text, $context, $domain )
{
  if( 'Aside' === $text && 'Post format' === $context ){
    $translation = 'Aan de kant';
  }
  return $translation;
}

À vous de voir exactement comment vous détectez la chaîne et si vous vérifiez également si le néerlandais est la langue actuelle. Toutefois, ce filtre fonctionne et devrait fonctionner indépendamment du thème que vous utilisez.

Si vous faites beaucoup d’améliorations de chaînes, je vous recommande d’utiliser un fichier de traduction chargéen plusaux traductions installées. Exemple de guide ici en utilisant Loco Translate pour ajouter votre propre fichier personnalisé. (Divulgation: mon plugin)

1
Tim