web-dev-qa-db-ja.com

PHP:__( 'Some text')は何をしますか?

Kohanaテンプレート について読んで、今まで見たことのないものを見ました:

_$this->template->title = __('Welcome To Acme Widgets');
_

__('Text')はどういう意味ですか?それは何ですか?それは何をするためのものか?

66
Svish

Kohana(バージョン3)では、この関数は system/base.php で定義されており、国際化を支援する便利な関数です(他の回答で述べたように)。文字列を(オプションで、完成したテキストに値を代入するためのプレースホルダーを使用して)指定します。その後、解釈され、必要に応じて翻訳が返されます。

他の回答の仮定に反して、これは gettext を使用しません。

非常に基本的な例は次のとおりです(この特定の文字列は、コハナで既に英語、スペイン語、フランス語に翻訳されています):

// 1. In your bootstrap.php somewhere below the Kohana::init line
I18n::lang('fr');

// 2. In a view
echo __("Hello, world!"); // Bonjour, monde!
41
salathe

ダブルの「__」は、CakePHP(および他の可能性のあるフレームワーク)のローカライズに使用されます

http://book.cakephp.org/view/163/Localization-in-CakePHP

13
Vals

string gettext ( string $message )http://php.net/manual/en/function.gettext.php

変換テーブルで見つかった場合は翻訳された文字列を返し、見つからない場合は送信されたメッセージを返します。

__()は単なるエイリアスです。 __("some text")gettext("some text")と同等です

edit:実際には、gettext()ではなくアンダースコアが2つである場合。 gettext()のエイリアスは1つのアンダースコアです。

2番目の編集:__()はgettext()の別のエイリアスである可能性があります。 _()とは少し意味が異なります。こちらをご覧ください: http://groups.google.com/group/cake-php/browse_thread/thread/9f501e31a4d4130d?pli=1

3番目と最後の編集:これをより詳細に説明する記事があります。それは組み込み関数ではなく、多くのフレームワークで一般的に追加されるもののように見えます。これは本質的にgettextのエイリアスです-同じ機能を実行します。しかし、それは直接的なエイリアスではありません(私はそうは思いません)。それはフレームワークに実装されており、フレームワークに固有です。指定された文字列のローカライズまたは翻訳を検索して返します。詳細については、このブログ投稿を参照してください: http://www.eatmybusiness.com/food/2007/04/13/what-on-earth-does-a-double-underscore-then-parenthesis-mean- in-php -__/7 /

6
Daniel Bingham
// Display a translated message
echo __('Hello, world');

// With parameter replacement
echo __('Hello, :user', array(':user' => $username));

詳細については、 http://kohanaframework.org/3.2/guide/api/I18n を参照してください。

6
Volshebnik

これは、誰かが__という名前の関数を作成したことを意味します(つまり、2つのアンダースコアが隣り合っています)。

私の推測では、Kohanaのドキュメントのどこかで定義されています。

5
jmucchiello