Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Структура языкового пакета (langpack)
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
uriy
Имеется устройство, для простоты будем считать что это сотовый телефон. По неподтвержденным данных оно использует операционку Nucleus. Для этого устройства имеется языковой пакет. Он представляет из себя бинарный файл, объемом около 500 Кбайт в юникоде. Начало этого файла привожу в картинке.
Требуется корректировка некоторых текстовых фраз. Пока это удается сделать лишь подставляя новые слова длина которых не превышает старые. Слова располежены друг за другом через нули, это видно на второй картинке. После подмены байт, приходится корректировать в другом месте чтобы контрольная сумма была неизменна. Где она находится и как считается мне не известно. Иначе виндовая софтина не хочет зашивать файл.

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

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

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

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


Да, так оно и есть, после беглово осмотра начала файла - там 9 языков, что и указано по смещению 128 (unsigned long)..... а дальше уже Вы сами...
uriy
Цитата
Скорей всего это не информация о шрифте, а массив указателей на сами строки, поэтому при разбиении самой строки на несколько ничего не сбивается
Да наверно вы правы.
Цитата
Найдя все это можно сделать свой генератор такого языкового файла
Именно это я и хочу сделать. Но как это все раскопать???
YAM
Цитата(uriy @ Apr 3 2012, 09:31) *
Да наверно вы правы.
Именно это я и хочу сделать. Но как это все раскопать???

Вы хотите получить бесплатную помощь? laughing.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.