реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Структура языкового пакета (langpack), Как она устроена?
uriy
сообщение Apr 3 2012, 05:34
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Имеется устройство, для простоты будем считать что это сотовый телефон. По неподтвержденным данных оно использует операционку Nucleus. Для этого устройства имеется языковой пакет. Он представляет из себя бинарный файл, объемом около 500 Кбайт в юникоде. Начало этого файла привожу в картинке.
Требуется корректировка некоторых текстовых фраз. Пока это удается сделать лишь подставляя новые слова длина которых не превышает старые. Слова располежены друг за другом через нули, это видно на второй картинке. После подмены байт, приходится корректировать в другом месте чтобы контрольная сумма была неизменна. Где она находится и как считается мне не известно. Иначе виндовая софтина не хочет зашивать файл.

В связи с этим первый вопрос. Как устройство определяет начало строки? Если я в середине строки подсуну нули, то как и следует ожидать строка будет выведена до этих нулей. Но таким образом мы одну строку поделили на две и следующая за ней строка выводится корректно. Как-будто устройство хранит в себе фиксированные смещения строк.

Похоже этот файл также содержит информацию о шрифтах, у меня есть несколько файлов для разных устройств. Если зашивать один файл в разные модели устройств, форматирование плывет, но шрифт для этого файла всегда один и тот же в разынх устройствах.
В начале каждого блока с фразами для одного языка есть непонятный для меня набор данных. Он выделен цветным прямоугольником. Может быть это и есть информация о шрифте.
Прикрепленное изображение

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
YAM
сообщение Apr 3 2012, 05:59
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291



Цитата(uriy @ Apr 3 2012, 08:34) *
В начале каждого блока с фразами для одного языка есть непонятный для меня набор данных. Он выделен цветным прямоугольником. Может быть это и есть информация о шрифте.

Скорей всего это не информация о шрифте, а массив указателей на сами строки, поэтому при разбиении самой строки на несколько ничего не сбивается, да и не рационально было-бы находить нужную строку в массиве подсчетом числа строк... А так все согласуется. Необходимо просто найти базовый адрес для каждого блока таких данных.
ИМХО... wink.gif

Мало того, в языковом файле должно быть указано и число таких блоков, как и смещение на их начало.
Найдя все это можно сделать свой генератор такого языкового файла и редактировать строки хоть в notepad-е...


Да, так оно и есть, после беглово осмотра начала файла - там 9 языков, что и указано по смещению 128 (unsigned long)..... а дальше уже Вы сами...


--------------------
Go to the top of the page
 
+Quote Post
uriy
сообщение Apr 3 2012, 06:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Скорей всего это не информация о шрифте, а массив указателей на сами строки, поэтому при разбиении самой строки на несколько ничего не сбивается
Да наверно вы правы.
Цитата
Найдя все это можно сделать свой генератор такого языкового файла
Именно это я и хочу сделать. Но как это все раскопать???
Go to the top of the page
 
+Quote Post
YAM
сообщение Apr 3 2012, 08:35
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291



Цитата(uriy @ Apr 3 2012, 09:31) *
Да наверно вы правы.
Именно это я и хочу сделать. Но как это все раскопать???

Вы хотите получить бесплатную помощь? laughing.gif


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 20:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01483 секунд с 7
ELECTRONIX ©2004-2016