PHP: __ ('Bazı metin') ne yapar?

5 Cevap php

Kohana templates ile ilgili okuma ve ben daha önce hiç görmediğiniz bir şey gördüm:

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

__('Text') ne demek? Bu nedir? Ne yapar?

5 Cevap

Kohana (versiyon 3) işlevi system/base.php tanımlanan ve (diğer cevaplar belirtildiği gibi) uluslararasılaşma yardım için bir kolaylık fonksiyonudur. Daha sonra yorumlanır ve, gerekirse, bir çeviri döndürülür edilir (ile, isteğe bağlı olarak, bazı tutucular bitmiş metnin içine değerleri yerine) bir dize sağlamak.

Diğer yanıtlar varsayımların aksine, bu kullanmak değil gettext.

Çok temel bir örnek (bu belirli dize zaten İngilizce, İspanyolca ve Kohana Fransız tercüme edilmiştir) olacaktır:

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

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

'__' Çift CakePKP'deki lokalizasyonu (ve olası diğer framewokrs) için kullanılır

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

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

Returns a translated string if one is found in the translation table, or the submitted message if not found.

__ () Bunun için sadece bir takma addır. Bu yüzden __("some text") gettext("some text") eşdeğerdir

edit: Aslında o gettext değil daha iki alt çizgi ise (). Gettext için ad () bir çizgi olduğunu.

Second edit: O)) (__ benziyor gettext için başka bir takma ad (olabilir. _ Biraz farklı bir anlam (). Buraya bakın: http://groups.google.com/group/cake-php/browse_thread/thread/9f501e31a4d4130d?pli=1

Third and final edit: Burada daha ayrıntılı olarak açıklayan bir makale bulunuyor. Oldukça yaygın çerçeveler bir sürü ilave edilir bir şey, yerleşik bir işlev değil, ama benziyor. Bu aslında gettext takma - bu aynı işlevi gerçekleştirir. Ancak, (sanmıyorum) doğrudan bir ad değildir. Bu uygulanan ve çerçevesine özeldir. Bu arar ve verilen dizenin bir yerelleştirme veya çeviriyi verir. Daha fazla bilgi için, bu blog yazısı bakın: http://www.eatmybusiness.com/food/2007/04/13/what-on-earth-does-a-double-underscore-then-parenthesis-mean-in-php-__/7/

Birisi __ adında bir fonksiyon oluşturduk demektir (Yani birbirine önümüzdeki iki alt çizgi var.)

Benim tahminim bir yere Kohana belgelerinde tanımlanır.

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

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

Ayrıntılar için http://kohanaframework.org/3.2/guide/api/I18n bakın.