PHP: Что делает __ ('Некоторый текст'), делают?

Чтение о шаблонах Kohana и видело что-то, что я никогда не видел прежде:

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

Что делает __('Text') средний?Что это? Что это делает?

68
задан Svish 17 February 2012 в 09:52
поделиться

4 ответа

В 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
ответ дан 24 November 2019 в 14:22
поделиться

Двойное «__» используется для локализации в CakePHP (и, возможно, в других фреймворках)

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

13
ответ дан 24 November 2019 в 14:22
поделиться

Это означает, что кто-то создал функцию с именем __ (Это два подчеркивания рядом друг с другом.)

Я предполагаю, что она определена где-то в документации Kohana.

5
ответ дан 24 November 2019 в 14:22
поделиться

Это строка gettext (строка $ message) : http://php.net/manual/en/function. gettext.php

Возвращает переведенную строку, если она найдена в таблице перевода, или отправленное сообщение , если она не найдена.

__ () - это просто псевдоним для него. Итак, __ ("некоторый текст") эквивалентно gettext ("некоторый текст")

edit: На самом деле, если это два символа подчеркивания, то это не gettext (). Псевдоним для gettext () - одно подчеркивание.

Второе изменение: Похоже, __ () может быть другим псевдонимом для gettext (). С немного другим значением, чем _ (). См. Здесь: http://groups.google.com/group/cake-php/browse_thread/thread/9f501e31a4d4130d?pli=1

Третье и последнее изменение: Вот статья, объясняющая это более подробно . Похоже, это не встроенная функция, а то, что обычно добавляется во многие фреймворки. По сути, это псевдоним gettext - он выполняет ту же функцию. Однако это не прямой псевдоним (я не думаю). Он реализован и специфичен для платформы. Он ищет и возвращает локализацию или перевод заданной строки. Для получения дополнительной информации см. Это сообщение в блоге: http://www.eatmybusiness.com/food/2007/04/13/what-on-earth-does-a-double-underscore-then-parenthesis-mean-in -php -__ / 7 /

6
ответ дан 24 November 2019 в 14:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: