Цитата: качайте локализовать строки в коде
качайте увеличение длин жестко-закод строк
Ага... Чего выложил... непонятно (С)
Тут свое кино и подводные камешки.
Набросал мануал по [more=хакеру]
Перевод HARDCODED-строк программы Process Hacker в Radialix начинал с х64 версии, потом копировал весь перевод в х86 и там уже правил отдельно.
1. Не переводить строки, которые не знаешь где находятся в интерфейсе, даже, если поставить их "Только для чтения". При копировании, в последствии, перевода из файла х64 в х86, придется разбираться у которых снимать "Только для чтения", а у которых оставить. Разных подводных камней при переводе много. Сам о них узнал в процессе перевода, что-то взял из комментариев к ресурсам от
DmitryFedorov. Здесь не все, возможно, в последствии будет пополняться.
2. Начнем с "Проблемных" строк в файле ProcessHacker.exe.
"Проблемная" строка имеет так называемый "счетчик букв", например, строка "Virtualized". Ее переводить можно и так, но если превысить количество символов в ней, слово "обрежется". Другими словами, если вместо "Free" (тоже слово со счетчиком) вставить "Свободная", то на выходе останется только "Своб", стало-быть, надо найти этот "счетчик" для каждой "проблемной" строки и увеличить количество букв.
Понадобятся IDA 5.2 или 5.5 и HEX-редактор.
Добавляем файл ProcessHacker.exe в проект Radialix с обязательным! использованием IDA, т.е. в процессе добавления ProcessHacker.exe, создаем в IDA файл ProcessHacker.rdmap и указываем его в настройках добавляемого файла.
Основные настройки добавляемого в проект ProcessHacker.exe
Разберем строку "Virtualized".
Все что ниже, находится методом подбора, но здесь я это опущу. Скажем, в Radialix, строка "Virtualized" имеет две ссылки. Вторая-имя столбца на вкладке "Процессы", она как раз не обрежется, если перевод будет длиннее, т.к. счетчика букв нет. А первая-это заполнение самого столбца, вот она обрежется. Имя у столбца можно перевести как "Виртуализация", а вот заполнение, как "Виртуализирован".
Считаем буквы:
Virtualized=11 букв, в Юникоде умножаем на 2, получаем=22 и переводим в HEX=>16h - этот счетчик будем искать в IDA
Максимальное слово перевода:
Виртуализирован=15 букв, в Юникоде x2, получаем=30, переводим в HEX=>1Eh - это будем вставлять вместо 16h
Преходим в Radialix+IDA:
Переходим в HEX-редактор, находим то, что у нас сейчас в памяти, т.е. 48C7471816000000 и меняем 16=>1E. Таких вхождений всего два. Пробовал менять как одно, так и оба-разницы не заметил. Сохраняемся и, так как файл изменили, преходим в IDA для пересоздания ProcessHacker.rdmap и продолжения перевода.
Строк со счетчиками пока попалось 3:
Virtualized
Free
Free (Unusable)
Есть другие строки, которые надо просто разбить. Иногда перевод в разбитой строке разный, как с "Virtualized", например, для х86:
Commit - 2 строка(Выделенный), 3 строка(Выделена)
restart - 2(Перезапустить), 4(перезапустить), 5(Перезагрузить)
Disabled - 6,7,8,9(Отключена)
Full- 2(Полная), 3(Полное)
В х64, после разбития, эти строки отличаются.
Некоторые строки вообще нельзя переводить, например, тип указателей (дескрипторов). Если перевести, то будут пропадать вкладки в свойствах указателя. Все, что относится к Консоли отладки, лучше вообще не трогать.
В целом, если с программой знакомы-разобраться можно, но если запускали ее пару раз и решили заняться переводом нажав пару пимпочек в Radialix'е, ничего путнего из этой затеи не выйдет.
[/more]