web-dev-qa-db-ja.com

2つの国際化(i18n)関数__()と_e()の違い

私はプラグイン開発コースから学び、2つの異なる国際化機能に遭遇しました。

<?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