Translation
Материал из LinuxMCE Wiki.
Содержание |
Перевод LinuxMCE интерфейса на русский язык
Подготовка базы данных
Для перевода базы данных в UTF8 необходимо сделать следующее:
- установить опцию default-character-set=utf8 в файле для сервера /etc/mysql/my.cnf:
[mysqld] init_connect='SET NAMES utf8; SET collation_connection = utf8_general_ci;' default-character-set=utf8 character-set-server=utf8 collation-server=utf8_general_ci skip-character-set-client-handshake
- установить опцию default-character-set=utf8 в файле для клиента /etc/mysql/my.cnf (для проверки запустите mysql --help и проверьте дефолтную кодировку):
[client] default-character-set=utf8
- всей базе надо указать кодировку utf8:
alter database pluto_main charset=utf8;
- для таблицы так же надо указать кодировку по умолчанию utf8:
alter table Text_LS charset=utf8;
- то же самое надо сделать и для всех текстовых полей в таблице utf8:
alter table Text_LS modify column `Description` longtext CHARACTER SET utf8 COLLATE utf8_general_ci
Подготовка клиентов
Указания всего вышеописанного все же недостаточно для нормальной работы приложения с UTF8 данными. В клиенте так же необходимо указывать кодировку по умолчанию для открываемого соединения. Например, клиент на Перле должен сделать следующее:
my $dbh = DBI->connect("dbi:mysql:pluto_main;host=localhost", "root") or die "Cannot connect to database: $DBI::err!";
$dbh->{'mysql_enable_utf8'} = 1;
$dbh->do('SET NAMES utf8');
Для C++ сразу после вызова mysql_init() и перед mysql_connect() или mysql_real_connect() нужно выставить опцию utf8 с помощью функции mysql_options():
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, 'utf8');
Так же с ее же помощью можно выполнить SQL команду сразу после соединения с сервером
mysql_options(&mysql,MYSQL_INIT_COMMAND, 'SET NAMES utf8');
Загрузка в базу
Актуальный дамп с русским переводом можно найти здесь. Перед первой загрузкой надо добавить русский язык в список языков:
INSERT INTO Language (FK_Language, Description) VALUES(5, 'Russian');
Потом загрузить дамп:
mysql -uroot pluto_main < lmce-russian-051009.sql
После этого в админском интерфейсе идем на страницу Орбитеров, меняем язык на руский и запускаем полую регенерацию. После этого все сообщения будут отображаться на русском языке.
Проблемы
- При перезагрузке рутера все сообщения показываются абракадаброй. Похоже что-то не так с локалью в консоли.
- Многие названия не умещаются на кнопках. Надо либо уменьшать размер шрифта, либо искать подобные названия, но покороче.
- Много чего показывается на английском. Особенно в UI1. Надо будет еще и картинки переводить.
- Меню второго уровня показываются на английском. Для того, чтобы это исправить надо модифицировать код UpdateEntArea, что уже начато.
- Проблема с UTF8 и с-шным клиентом все еще не решена.
Не актуальная информация!!!
Для удобство редактирования все слова и фразы для перевода разбиты на три части и сохранены в файлах на Google Docs:
Для получения доступа к редактированию этих файлов необходимо выслать email на адрес info@linuxmce.ru. В ответ будет выслано приглашение.
Правила перевода
Переводить надо то, что содержится в третьем столбце (C). Делать это надо следующим образом.
- Делаем дубликат исходной строки.
- Во втором столбце (B) меняем 1 на 4 (ID русского языка в базе LinuxMCE).
- Переводим содержимое третьего столбца (C), заменяя английский текст на русский.
- Остальное сохраняем без изменений.
Результаты
НЕ ЗАБУДЬТЕ СДЕЛАТЬ БЭКАП БАЗЫ ДАННЫХ!!!
Для добавления русского языка в интерфейс LinuxMCE надо добавить в базу следующие query:
mysql -uroot pluto_main < language.sql mysql -uroot pluto_main < lmce-translation-part-i.sql mysql -uroot pluto_main < lmce-translation-part-ii.sql mysql -uroot pluto_main < lmce-translation-part-iii.sql
Порядок важен только для первого файла. Все остальные можно загружать в произвольном порядке. Для удаления всех загруженных записей для русского языка надо запустить следующий запрос в базе:
DELETE FROM Text_LS WHERE FK_Language=4;
После загрузки файлов надо пойти на страницу Орбитеров и выбрать русский язык. А затем перегенерить Орбитер и перегрузить рутер. После этого русский язык должен появиться.
