it-roy-ru.com

Разница между двумя функциями интернационализации (i18n) __ () и _e ()

Я учусь на курсе по разработке плагинов и столкнулся с двумя различными функциями интернационализации:

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

&

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

Я не могу найти справочную информацию о том, когда использовать каждый из них.

Можете ли вы указать мне правильное направление, чтобы узнать больше об этом, пожалуйста?

3
Steve

__() "Извлекает переведенную строку из функции translate ()" без повторения. _e() делает то же самое, но выводит результат.

Для получения дополнительной информации ознакомьтесь с этими справочными статьями:

3
Dave Romsey

Это, наверное, полезно знать. Основой интернализации является функция 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' ) {

Каждый раз, когда вы звоните любой из оберток

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

или же

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

или же

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

или многие другие из wp-includes/l10n.php, эта функция будет вызвана. Но вы никогда не вызываете эту функцию напрямую.

1
prosti