BugTracker: локализация (часть девятая)
Сегодня мы продолжаем разработку собственной системы отслеживания ошибок. В предыдущих частях мы рассмотрели добавление записей о багах и комментариев к ним.
Но при этом не решенным остался вопрос локализации.
По-умолчанию CodeIgniter выводит сообщения об ошибках на английском языке. Прежде всего, это касается описаний ошибок, которые возникают при некорректном заполнении форм.
В этой части я расскажу, как перевести эти сообщения на русский язык.
Самое интересное, что часть работы мы уже сделали при создании правил для проверки полей форм.
Например, правила для проверки email выглядят следующим образом.
-
$this->form_validation->set_rules('email', 'lang:email', 'required|valid_email');
Здесь мы вызываем метод set_rules из библиотеки form_validation. В первом параметре указываем имя поля в форме (атрибут name), во втором – его описание, в третьем – правила.
Сейчас нас интересует второй параметр. Нам нужно, чтобы CodeIgniter подставил вместо него правильное описание поля.
Для этого нужно выполнить 4 шага.
1) Открываем файл \application\config\config.php и устанавливаем язык по-умолчанию.
-
$config['language'] = "russian";
Теперь CodeIgniter будет прежде всего искать файлы с описаниями в папке \application\language\russian.
2) Создаем папку \application\language\russian и в ней файл form_fields_lang.php. Обратите внимание: окончание _lang обязательно.
3) В этом файле создаем массив с описаниями полей:
-
<?php
-
$lang['title'] = '"Заголовок"';
-
$lang['uname'] = '"Ваше имя"';
-
$lang['category_id'] = '"Категория ошибки"';
-
$lang['description'] = '"Описание ошибки"';
-
$lang['email'] = '"eMail"';
-
$lang['password'] = '"Пароль"';
-
?>
Ключи элементов этого массива должны совпадать с именами, которые указаны после lang: (во втором параметре метода set_rules).
4) Загружаем файл с описаниями полей. Для этого в конструктор контроллера добавляем строку.
-
$this->load->language('form_fields');
Обратите внимание. Окончание _lang.php не указываем.
После этих манипуляций описания полей будут правильно отображаться. Но сами ошибки будут на английском.
Для их руссификации нужно скачать файлы с переводами.
Архив распаковываем в папку \application\language\russian.
Всё. На этом работа заканчивается. Названия этих файлов совпадают с названиями их английских версий, поэтому CodeIgniter загрузит их автоматически.
Заключение.
В данном случае мы просто русифицировали баг трекер. Ничего сложного, но проблема в том, что выполнить обратную операцию, т.е. перевести приложение на английский, намного сложнее.
Для этого нужно найти и исправить весь русский текст в исходниках баг трекера. А их довольно много. Это и файлы шаблонов, и сообщения в контроллере, и текст в представлениях.
Я не ставил задачи сделать мультиязычное приложение, но если этот пункт для вас важен, в CodeIgniter входит Language Helper для этих целей. Использовать его не сложно, самый трудоёмкий этап – создание файлов с переводами. И нужно внимательно следить, чтобы в исходниках проекта напрямую не был жестко прописан текст.
До встречи!
P.S. Думаю, к следующему выпуску будет готова демонстрационная версия баг трекера. И безусловно выложу архив файлами проекта.
Понравилась статья? Подписывайтесь на продолжение
!
Опубликовано в CodeIgniter, PHP, Web разработка View Comments
-
Big_Shark
-
Владимир
-
Big_Shark
-
Владимир
-
Владимир
-
SM
-
Wave








