Чтение о шаблонах Kohana и видело что-то, что я никогда не видел прежде:
$this->template->title = __('Welcome To Acme Widgets');
Что делает __('Text')
средний?Что это? Что это делает?
В 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!
Двойное «__» используется для локализации в CakePHP (и, возможно, в других фреймворках)
Это означает, что кто-то создал функцию с именем __ (Это два подчеркивания рядом друг с другом.)
Я предполагаю, что она определена где-то в документации Kohana.
Это строка 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 /