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;

После загрузки файлов надо пойти на страницу Орбитеров и выбрать русский язык. А затем перегенерить Орбитер и перегрузить рутер. После этого русский язык должен появиться.

Личные инструменты