web-dev-qa-db-fra.com

Comment printf (__ ()); travail?

Aujourd'hui, je travaille sur 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 que signifie "__()" ou pourquoi existe-t-il un insert de chaîne? A quoi sert le Anyword?

Quelqu'un peut-il m'expliquer exactement cette ligne?

10
Denny Mueller

Il est utilisé pour traduire le texte .

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

Donc, Anyword ici, devrait être le type derrière le modèle, ou la société ou quoi que ce soit qui puisse être un domaine/un espace de noms.

modifier:

La doc de wordpress donne plus d'explications sur la manière de internationaliser un plugin :


Ajoutez ceci au code du plug-in pour vous assurer que le ou 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-name semble être Anyword.

7
j0k