Еще раз о локализации интерфейса

October 5th, 2009 | LinuxMCE | No Comments »

После загрузки дампа с русским языком и перегенерации Орбитера выявилась одна неприятная деталь. Локализировать интерфейс LinuxMCE не так-то просто, как казалось вначале. Дело в том, что меню топ уровня формируется внутри Орбитера на этапе генерации. Соответственно зная установленный язык, можно получить нужное значение из таблицы Text_LS. Проблема же заключается в том, что подменю “Свет”, “Медиа”, “Климат”, “Охрана” и “Телефония” формируются Орбитером, а утилитой UpdateEntArea для каждой зоны в доме. Сделано это для того, чтобы с одного Орбитера можно было управлять всеми зонами в доме. Полученные данные сохраняются в таблице базы данных. Откуда они достаются на этапе генерации Орбитера.

Идея состоит в том, чтобы сохранять в результатах работы UpdateEntArea не конечное значение для кнопки меню, а его ID из таблицы Text_LS. Соответственно при генерации Орбитера, зная какой язык установлен в нем, получим локализованное наименование вместо захардкоженного английского. Для реализации этой идеи надо будет добавить дополнительное поле в таблицу CommandGroup – PK_Text, поменять UpdateEntArea классы для сохранения этого ID и изменить OrbiterGen класс для вытаскивания локализованного наименования пункта меню по PK_Text и PK_Language. Маятно немного, но зато интерфейс будет локализован полностью.

Tags: , ,

Comments

Оставьте свой комментарий

 Новый комментарий 

Spam Protection by WP-SpamFree Plugin