web-dev-qa-db-fra.com

Différence entre 2 fonctions d'internationalisation (i18n) __ () et _e ()

J'apprends d'un cours de développement de plugin et j'ai rencontré deux fonctions d'internationalisation différentes:

<?php __('Newsletter Subscriber', 'ns_domain'); ?>

Et

<?php _e('Title:'); ?>

Je ne trouve aucune information de référence sur le moment d'utiliser chacun de ces éléments.

Pouvez-vous me diriger dans la bonne direction pour en apprendre plus sur ceux-ci s'il vous plaît?

3
Steve

__() "Récupère la chaîne traduite de la fonction translate ()" sans faire écho. _e() fait la même chose mais renvoie la sortie.

Pour plus d'informations, consultez ces articles d'aide:

3
Dave Romsey

C'est probablement bon à savoir. Le fondement de l'internalisation est la fonction translate

File: wp-includes/l10n.php
78: /**
79:  * Retrieve the translation of $text.
80:  *
81:  * If there is no translation, or the text domain isn't loaded, the original text is returned.
82:  *
83:  * *Note:* Don't use translate() directly, use __() or related functions.
84:  *
85:  * @since 2.2.0
86:  *
87:  * @param string $text   Text to translate.
88:  * @param string $domain Optional. Text domain. Unique identifier for retrieving translated strings.
89:  *                       Default 'default'.
90:  * @return string Translated text
91:  */
92: function translate( $text, $domain = 'default' ) {

Chaque fois que vous appelez l'un des wrappers

File:wp-includes/l10n.php
172: function __( $text, $domain = 'default' ) {
173:    return translate( $text, $domain );
174: }

ou

File: wp-includes/l10n.php
188: function esc_attr__( $text, $domain = 'default' ) {
189:    return esc_attr( translate( $text, $domain ) );
190: }

ou

File: wp-includes/l10n.php
217: function _e( $text, $domain = 'default' ) {
218:    echo translate( $text, $domain );
219: }

ou beaucoup d'autres de wp-includes/l10n.php, cette fonction sera appelée. Mais vous n'appelez jamais cette fonction directement.

1
prosti