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?

Denny Mueller
la source

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.

j0k
la source
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.