|
|||||||
Интернационализация, вариант mihailt
Время создания: 15.02.2011 14:55
Текстовые метки: CI, CodeIgniter, i18n, язык
Раздел: Компьютер - Программирование - Язык PHP - CodeIgniter
Запись: xintrea/mytetra_syncro/master/base/0000003421/text.html на raw.github.com
|
|||||||
|
|||||||
Сама идея такая – в файле мы держим набор преопределенных названий выражений. И используем их из разных файлов в зависимости от текущего языка. Техническая реализация мне понравилась от человека с ником mihailt. Я возьму от его примера только часть – реализация многоязычности. Вырезка из его статьи: Для начала подготовим наше приложение. Нужно расширить роуты. Открываем routes.php (/system/application/config/routes.php) и добавляем следующие строчки: $route['(ru|ua)'] = $route['default_controller']; $route['(ru|ua)/(.+)'] = "$2"; таким образом, теперь мы к любому методу, любого контроллера можем обращаться тремя способами: baraholka.local/controller/action http:// baraholka.local/ru/controller/action http:// baraholka.local/ua/controller/action Создаём также 2 языковых файла main_lang.php /system/application/language/english/main_lang.php и /system/application/language/russian/main_lang.php Создадим файл My_Controller.php (/system/application/libraries/My_Controller.php) <?php class MY_Controller extends Controller { var $language;
public function MY_Controller() { parent::Controller(); //$this->output->enable_profiler(true); // определяем язык $lang = $this->uri->segment(1); if($lang == 'ru') { $this->language = $lang; } else { $this->language = 'ua'; } // подгружаем нужный язык switch($lang) { case 'ru': $this->lang->load('main', 'ru'); $this->config->set_item('language', 'ru'); break; default: $this->lang->load('main', 'ua'); $this->config->set_item('language', 'ua'); break; } } } ?> Измените наш контроллер main. Теперь он должен наследоватся от MY_Controller, а не от Controller. Протестируйте нашу страницу. Она должна откликаться на baraholka.local/main/index baraholka.local/ua/main/index baraholka.local/ru/main/index |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|