PHP: Cosa significa __ ( 'po' di testo') fare?
Domanda
Kohana modelli e ho visto una cosa che ho mai visto prima:
$this->template->title = __('Welcome To Acme Widgets');
Che cosa significa __('Text')
? Che cos'è? Che cosa fa?
Soluzione
In Kohana (versione 3) la funzione è definita in / base.php ed è una funzione convenienza per aiutare (come le altre risposte hanno detto) l'internazionalizzazione. Si fornisce una stringa (con, eventualmente, alcuni segnaposti per sostituire i valori nel testo finito) che è poi interpretati e, se necessario, una traduzione viene restituito.
Al contrario di assunzioni in altre risposte, questo non fa uso di gettext .
Un esempio molto semplice sarebbe (questa particolare stringa è già tradotto in inglese, spagnolo e francese in Kohana):
// 1. In your bootstrap.php somewhere below the Kohana::init line
I18n::lang('fr');
// 2. In a view
echo __("Hello, world!"); // Bonjour, monde!
Altri suggerimenti
Il doppio '__' viene utilizzato per la localizzazione in CakePHP (ed eventuali altri framework)
E 'string gettext ( string $message )
: http://php.net/manual/en/function. gettext.php
Restituisce una stringa tradotta se uno è trovato nella tabella di traduzione, o messaggio inviato se non trovato.
Il __ () è solo un alias per esso. Così __("some text")
è equivalente a gettext("some text")
modifica In realtà se si tratta di due sottolineature di quanto non è gettext (). L'alias per gettext () è una sottolineatura.
Seconda modifica: Sembra __ () potrebbe essere un altro alias per gettext (). Con un significato leggermente diverso da _ (). Vedi qui: http://groups.google.com / gruppo / torta-php / browse_thread / filetto / 9f501e31a4d4130d? pli = 1
Terzo e montaggio finale: Ecco un articolo che spiega in modo più dettagliato. Sembra che non è costruito in funzione, ma piuttosto qualcosa che viene comunemente aggiunto in un sacco di quadri. Si tratta essenzialmente di un alias di gettext - svolge la stessa funzione. Tuttavia, non è un alias diretta (non credo). E 'implementato in ed è specifico per il quadro. Si cerca e restituisce una localizzazione o la traduzione della stringa è dato. Per di più, si veda questo post del blog: http://www.eatmybusiness.com/food/2007/04/13/what-on-earth-does-a-double-underscore-then -parenthesis-media-in-php -__ / 7 /
// Display a translated message
echo __('Hello, world');
// With parameter replacement
echo __('Hello, :user', array(':user' => $username));
http://kohanaframework.org/3.2/guide/api/I18n per i dettagli.
E 'significa che qualcuno ha creato una funzione denominata __ (Ecco due sottolineature uno accanto all'altro.)
La mia ipotesi è definita da qualche parte nella documentazione Kohana.