Comment printf (__ ()); travail?


12

Aujourd'hui, je travaille à travers un thème pour mieux comprendre WordPress et les modèles. J'ai découvert ceci:

<?php 
printf( 
    __('Designed by %s', 'Anyword'), 
    '<a href="http://www.example.com">Blub</a>'
); 
?>

Je sais que cela montre "Designed by Blub" (où Blub est lié) Mais qu'est-ce que cela __()signifie ou pourquoi y a-t-il un insert de chaîne? À quoi sert l'Anyword?

Quelqu'un peut-il expliquer exactement cette ligne pour moi?

Réponses:


8

Il est utilisé pour traduire du texte .

Le deuxième argument est une sorte d'espace de noms (appelé ici domaine) pour récupérer la traduction (par exemple à partir d'un fichier dédié ou autre chose).

Donc, Anywordici, devrait être le gars derrière le modèle, ou l'entreprise ou quoi que ce soit qui peut être un domaine / espace de noms.

Éditer:

Le doc de wordpress donne plus d'explications sur la façon d' internationaliser un plugin :


Ajoutez ceci au code du plugin pour vous assurer que les fichiers de langue sont chargés:

load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );

Pour récupérer une chaîne, utilisez simplement __('String name','your-unique-name');pour renvoyer la traduction ou _e('String name','your-unique-name');pour faire écho à la traduction. Les traductions iront ensuite dans le dossier / languages ​​de votre plugin.


Pour votre plugin / thème, le your-unique-namesemble l'être Anyword.


Il y a quelques fichiers de langue dans le thème. Comment l'argument sait-il de les utiliser uniquement pour «Anyword»?

J'ai mis à jour ma réponse avec une meilleure partie du document WP.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.