I18n
Kohana имеет довольно простой и легкий способ использования системы i18n. Эта система сделана по образцу GetText, но не такая функциональная. Если вам нужны именно особенности GetText, то пожалуйста его и используйте
__()
В Kohana существует функция __() для перевода. Эта функция предназначена только для перевода небольших участков текста, а не для целых абзацев или страниц.
Конструкция echo выведет переведенную строку:
<?php echo __('Hello, world!');?>
Изменение языка перевода
Используйте метод I18n::lang() для изменения языка перевода.
I18n::lang('fr');
Определение языковых файлов
Для определения языкового файл указанного выше языка необходимо создать файл i18n/fr.php, который содержит следующий код:
<?php return array ( 'Hello, world!' => 'Bonjour, monde!', );
Теперь при вызове __(«Hello, world!»), мы получим Bonjour, monde!
Переменные I18n
Можно определить переменные при вызовах метода __(), следующим образом:
echo __('Hello, :user', array(':user' => $username));
Ключ :user в файле с переводом должен быть определен так:
<?php return array ( 'Hello, :user' => 'Bonjour, :user', );
Определение собственных __() функций
Можно определить свою собственную функцию __(), для этого необходимо переопределить свой собственный класс I18n:
<?php class I18n extends Kohana_I18n { // Intentionally empty } function __($string, array $values = NULL, $lang = 'en-us') { // Your functionality here }
Это приведет к тому, что встроенная функция __() будет игнорироваться.
Пожалуйста, зарегистрируйтесь для комментирования.