Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

Находятся не все жестко закодированные строки
(1 чел.) (1) гость
  • Страница:
  • 1
  • 2
  • 3
  • 4

ТЕМА: Находятся не все жестко закодированные строки

Находятся не все жестко закодированные строки 2 года, 5 мес. назад #231

  • koros
  • Вне сайта
  • Fresh Boarder
  • Постов: 12
  • Репутация: 0
У меня возникла следующая проблема. Пытаюсь перевести плеер XMPlay. Почему-то находятся не все жестко закодированные строки. Например текст "add to/from library" (в IDA находится по адрусу 0045406C) OgreGUI видит, а Radialix - нет. Правда OgreGUI разбивает его на два куска - "add to/f" и "rom library". Вот тот файл, который я пытаюсь перевести - rapidshare.com/files/275414023/xmplay.7z.html.
Последнее редактирование: 2 года, 5 мес. назад от koros.

RE: Находятся не все жестко закодированные строки 2 года, 5 мес. назад #232

  • admin
  • Вне сайта
  • Moderator
  • Постов: 39
  • Репутация: 4
В поле Компилятор/Формат указано PE32. Поэтому можно отключть все опции поиска Pascal строк (см. снимок диалога). После этого строка по адресу 0045406C будет найдена.
FileProperties.png
Последнее редактирование: 2 года, 5 мес. назад от admin.

RE: Находятся не все жестко закодированные строки 2 года, 5 мес. назад #234

  • koros
  • Вне сайта
  • Fresh Boarder
  • Постов: 12
  • Репутация: 0
Спасибо, помогло.
Теперь появилась следующая проблема.
По адресу 00454Е08 находится слово "Library" (длина 7). Я хочу перевести его как "Библиотека" (длина 10). В IDA увеличить длину не получается. Соответственно, слово в программе обрезается до "Библиот". С помощью OgreGUI слово можно перевести целиком.

И ещё я заметил, что в ошибках присутствует много строк с ошибками типа "превышено максимальное количество символов 10 (всего символов 10)". Причём эти ошибки возникают в тех строках, которые я не трогал.

Теперь небольшая просьба. Нельзя ли сделать так, чтобы в колонке "Перевод" не показывались оригинальные слова? То есть, если есть перевод, то он отображается, а если нет - то пустая ячейка. Так визуально удобнее отслеживать, что переведено, а что - нет.

Заранее спасибо!

RE: Находятся не все жестко закодированные строки 2 года, 5 мес. назад #235

  • Aleksey Golovin
  • Вне сайта
  • Administrator
  • Постов: 494
  • Репутация: 25
Удлинение длины строк производится при наличии ссылок на них - колонка "Ссылки". Посмотрите FLASH ролики в разделе Поддержка, начиная с "Локализация строк в коде" www.radialix.ru/ru/files2/hwstrings.html

Сообщение о превышении длины строки отображается некорректно. Исправим в ближайшем релизе.

RE: Находятся не все жестко закодированные строки 2 года, 5 мес. назад #236

  • koros
  • Вне сайта
  • Fresh Boarder
  • Постов: 12
  • Репутация: 0
AGolovin писал(а):
Удлинение длины строк производится при наличии ссылок на них - колонка "Ссылки". Посмотрите FLASH ролики в разделе Поддержка, начиная с "Локализация строк в коде" www.radialix.ru/ru/files2/hwstrings.html

Насколько я понял, имеется ввиду ролик "Как увеличить длину жестко-закодированной строки". Я делал всё, как там описано. Но увеличение длины возможно только до 7, а мне надо - 10. В OgreGUI это почему-то получается. Radialix удобнее, потому что в одной программе можно изменять и ресурсы и жестко закодированные строки.

RE: Находятся не все жестко закодированные строки 2 года, 5 мес. назад #237

  • Aleksey Golovin
  • Вне сайта
  • Administrator
  • Постов: 494
  • Репутация: 25
Нет, имеется ввиду ролик "Как локализовать строки в коде" radialix.ru/ru/files2/hwstrings.html . В этом ролике показано, как создать rdmap файл и подключить его к проекту локализации. В этом файле передаются данные о найденных в IDA ссылках.

RE: Находятся не все жестко закодированные строки 2 года, 5 мес. назад #238

  • koros
  • Вне сайта
  • Fresh Boarder
  • Постов: 12
  • Репутация: 0
Я пробывал делать так, как описывается в роликах - и в этом и в том, на который я ссылался ранее - и подключал файл rdmp, и использовал IDA. Не получается. В строке со словом "Library" длина увеличивается только до 7, а мне надо до 10. В строке со словом "none" количество ссылок равно 0, и его я не смог увеличить как описано в ролике "Как увеличить длину жестко-закодированной строки". Ещё раз повторю, что в OgreGUI это можно сделать.

Файл, который я перевожу приведён выше. Пожалуйста поскажите, как увеличить длину строки именно в моём случае (на примере двух слов приведённых выше). То есть, прошу дать подробную инструкцию типа: 1. выбираем адрес такой-то. 2.переходим в IDA 3.Выбираем пункт меню такой-то и т.д.

Заранее спасибо.
Последнее редактирование: 2 года, 5 мес. назад от koros.

RE: Находятся не все жестко закодированные строки 2 года, 5 мес. назад #239

  • Aleksey Golovin
  • Вне сайта
  • Administrator
  • Постов: 494
  • Репутация: 25
Все делаете правильно. Просто IDA иногда находит не все ссылки. Не найденные ссылки не корректируются, поэтому отображается строка, расположенная по исходному адресу, а туда сохраняется обрезанная копия перевода.
Посмотрите ролик "Поиск ссылок" radialix.ru/ru/files2/search_references.html Это последний ролик в списке.
В вашем проекте делаете следующее.
1. В IDA копируете адрес строки в буфер обмена.
2. В IDA вызываете поиск байтов Search>Sequience of bytes... и вставляете в диалоге поиска в поле ввода адрес строки из буфера.
3. Переходите на начало листинга и запускаете поиск. Он будет останавливаться на ссылках (ссылка видна по наличию комментария). Пропускаете найденную ссылку и продолжаете поиск - Ctrl+B.
4. Через несколько найденных ссылок поиск остановится на адресе 00453678. По этому адресу содержатся данные dd, а не ссылка. Преобразуем их в данные неопределенного типа - Undefine из контекстного меню.
5. Вызываем поиск ссылок - Edit>Find all 32-bit references. Будет найдена одна ссылка.
6. Пересоздаете файл rdmap Edit>Save RDMAp File as...
7. Переходим в Radialix и обновляем ресурсы Проект>Обновить все ресурсы.
8. Создаем и запускаем локализованный файл. Теперь перевод будет отображаться полностью.

RE: Находятся не все жестко закодированные строки 2 года, 5 мес. назад #240

  • koros
  • Вне сайта
  • Fresh Boarder
  • Постов: 12
  • Репутация: 0
Спасибо! Почти всё получилось. Что не получилось:
по адресу 004540A1 заменить "none" на "ничего";
по адресу 00454099 заменить "play" на "воспр-е";
по адресу 00454085 заменить "treck info" на "инф. о треке".

Возникли ещё вопросы.
1. Если я пытаюсь локализовать ту же программу, но новой версии, то Radialix говорит мне, чтобы я создал новый прект IDA и RDMAP файл. После создания надо опять проходить всю эпопею с удлинением строк и созданием ссылок. Нельзя ли это как-нибудь автоматизировать(типа макрос какой-нибудь)? В OgreGUI я просто создал AutoIt-скрипт, но перед OgreGUI я обрабатывал в Sisuliser-е, что не удобно.
2. Возможно ли перевести надписи во всплывающих подсказках (например, по адресу 00455A28 заменить "Options and stuff" на "Настройки" - кнопка, у которой появляется эта подсказка находится в правом верхнем углу основного окна программы рядом с кнопками "Close" и "Minimize")? Если я локализую эти всплывающие подсказки, то надписи в них просто исчезают.

RE: Находятся не все жестко закодированные строки 2 года, 5 мес. назад #241

  • Aleksey Golovin
  • Вне сайта
  • Administrator
  • Постов: 494
  • Репутация: 25
У строк по адресам 004540A1, 00454099 и т.п. перед строкой идет байт, который входит в структуру строки - ссылки именно на него. Возможно это идентификатор строки. Этот байт имеет небольшое значение, а иногда и 0 - у строки none. Необходимо, чтобы строки извлекались с этим первым байтом - отключите опцию "Пропускать строки, содержащие>символы" опцию в параметрах файла на вкладке "Жестко-закодированные строки". В поле "Минимальная длина" следует поставить 3 - для строки age. Появится много мусорных строк, игнорируйте их. Со словом none сложнее - впереди идет 0, в текущей версии извлечь этот 0 не удастся. Оставьте без перевода.


вопрос 1. Да с этим существует проблема. В текущей версии придется все делать заново.
вопрос 2. Установите кодировку переведенной строки в UTF-8. О кодировках читайте здесь: radialix.ru/index.php/radialix-2-overvie...ialix-207newfeatures
  • Страница:
  • 1
  • 2
  • 3
  • 4
Время создания страницы: 0.24 секунд