Этот сайт создан как клуб русификаторщиков. Для нас существуют три основных правила.
1. Мы никому и ничего не должны!
2.Один пришедший на сайт толковый русификаторщик дороже всех пользователей.
3. Мы делаем русификаторы для своего сайта, но в оригинале ими могут пользоваться все в интернете.
Вы архив распаковали? Я все проделал, как написал Horna и у меня все получилось!
Пивет! Прочитав еще раз Horna у меня то же получилось. Только мне не понятно, каким образом определяешь расширение распакованного файла, какой изних exe,какой dll . Теперь другая беда. Распакованный файл Radialix видит ЖЗС, а как теперь сделать файл rdmap. IDA отказывается. В WinHex делать пере вод? И как все-таки запихивать обратно в эксешник.
Распакованный файл Radialix видит ЖЗС, а как теперь сделать файл rdmap. IDA отказывается.
Nexus, выше написал, что программма написана на .NET Framework, поэтому IDA здесь бесполезна. Лично у меня полученный файл в Radialix загружается с ошибками, и в конце концов Radialix падает с ексепшеном (вырубить можно только через удаление процесса). Редактор Sisulizer файл загружает, но не показывает ни одной строки. С другими редакторами опыта никакого. Может знатоки подскажут чего и как.
Цитата: vaka61
И как все-таки запихивать обратно в эксешник.
Если рассуждать логически, то после перевода, полученный файл надо запаковать обратно в архив ZLIB (например той же программой Simplyzip) и сравнить размер полученного архива с оригинальным архивом, который был извлечен из файла программы. Если новый размер меньше оригинального, то замена архива возможна. Делается это в НЕХ-редакторе. Открываешь в нем полученный новый архив и файл программы. Копируешь бинарные данные архива и вставляешь в код программы по адресу размещения оригинального архива. Замену байтов подтвеждаешь. Сохраняешь изменения и проверяешь программу в работе. Если же размер нового архива больше оригинального, то замену выполнять нельзя, т.к. данные архива затрут оригинальные данные программы и она работать не будет. Поэтому надо вернуться к переводу и посмотреть, что в нем можно сократить (например можно пережать картинки). Короче нужно сделать так, чтобы размер файла в запакованном виде (архив ZLIB) был меньше оригинального размера. Это теоретически. Я сам этого никогда не делал. Но исходя из поста Horn'ы - это возможно (судя по работающей русской версии программы SysTracer)
Вот с этого места можно по подробнее,а еще лудше в картинкахю, будь другом не откажи.
Да зачем себе голову морочить? Забудь о ZLIB архивах, вот держи нужные распакованные файлы, вкинешь их в корневую папку программы, EXE файл в папке заменишь на новый из архива:
Теперь не нужно ничего запаковывать, все нужные для перевода строки находятся в файле Streaming Audio Recorder.exe , некоторые строки в Юникоде, некоторые - в ANSI. Только нужно теперь переводить все в WinHex"е, по другому видимо никак...
Да зачем себе голову морочить? Забудь о ZLIB архивах, вот держи нужные распакованные файлы
За файлы огромное спасибо. А как быть с обучением, распаковать, запаковать, запихнуть и т.д. Хочется, как то самому приобрести опыт. Вот к при меру даже твои файлы , чтоб не переводить по буквам в WinHex наверное нужно выделить блок, копировать, сделать перевод и потом заменить оригинал на переведённый. Но как это делается, я не знаю. По этому и прошу “дядя научи меня плохому “. Вот ты же каким-то образом сделал эти файлы и мне самому хоца. Если конечно это по моим зубам.
Ну да может и напишу в ближайшее время, сейчас просто сильно занят - лето на дворе, сезон строительства как никак... Да, почему-то из-за этой программы меня постоянно выкидывает в BSOD, это такое у меня, или может у других тоже?
Да нет уж, там как раз по буквам и нуждно переводить, свободного места в файле слишком мало, нельзя превышать количество букв в строке.
Так как программа написана на .NET Framework, то Нех-редактор не нужен. Просто надо сделать проект с ЖСК и в коде не обращать внимания на длину строки. Все подгонит Radialix. На заре поддержки ЖКС при парсере .NET я задал вопрос на эту тему в службу поддержки, и мне ответили так, как я написал выше, плюс после перевода нескольких строк проверять программу на работоспособность. Так что удлиняйте смело
Но вот как сделать, чтобы она не переписывалась переводом, чтобы перевод шел под ней?
Я не знаю, как это можно сделать в Passolo, но в Radialix"e это можно сделать так:
Скорее всего такую фишку можно провернуть и в Passolo (я затрудняюсь сказать точно, т.к. не пользуюсь этим редактором), раз в Radialix"e такое возможно. Смысл состоит вот в чем. Каждая секция локализованных строк для каждого параметра, который обозначен символом #, отделены друг от друга пустой строкой:
На эти пустые строки можно указать запись перевода на русский язык. В парсере регулярных выражений (Radialix) для колонки "Перевод" это параметр $4 (четвертое выражение в формуле), строки подсвечены бирюзовым цветом. Чтобы формула регулярного выражения обработала последние строки в файле wpuupdate.txr, необходимо открыть его в любом текстовом редакторе, опуститься в конец текста и добавить пару пустых строк. Сохранить изменения и только после этого загружать в редактор.
Все, можно переводить. Но следует учесть тот факт, что в созданном файле строки, переведенные на русский язык, будут находиться на месте пустых, текст получится сплошным и трудно читаемым.
В принципе программа, которая использует этот файл должна его понять, но мне кажется, что лучше добавить пустые строки после наших локализованных строк. Сделать это просто. При переводе строк добавлять в конце каждой из них ESCAPE-последовательность nr
Тогда текст в локализованном файле будет отформатирован следующим образом:
Как видишь, теперь намного более читабельно. Но еще раз повторю, что этого можно не делать, если программа, для которой этот файл предназначен нормально его читает. Я просто рассказываю возможности решения.
Обрати внимание на строки, где в оригинале используются ESCAPE-последовательности. Например,
При переводе таких строк сохрани оригинальную запись escape-последовательностей, т.е. экранирование escape-символов n и r вторым слешем n и r. Если записать с одним слешем, то в локализованном файле строка будет разбита на две, что является неверным, т.к. оригинальная строка только одна. Т.е. в данном случае необходимо сделать вот так:
Тогда в локализованном файле будет вот так:
Т.е. в соответствии с оригинальной строкой, которую мы переводили.
Еще обрати внимание, что строки с немецкой локализацией потеряли символы умляутов (вместо них Radialix записал знаки вопросов). Исходный документ (файл wpuupdate.txr) в кодировке windows-1252. После добавления русского перевода документ будет сохранен в кодировке windows-1251, которая не поддерживает умляуты, также как и windows-1252 не поддерживает кириллицу. Если русик предполагается использовать только для себя, то можно так оставить, если стоит задача сохранения всех строк с переводами в оригинальном виде, то строки на русском необходимо вводить символами из кодировки windows-1252. Например, строка "Доступные обновления" в кодировке windows-1252 будет выглядеть как ""A^i~n`o`o"i`i^ua ^i`a`i^i^a"ea`i`e"y". При таком вводе перевода кодировку локализованного файла на выходе Radialix необходимо установить в windows-1252.
Вот пожалуй и все. Пробуй, экспериментируй. В аттаче шаблон регулярного выражения, который можно импортировать в Radialix. Данное решение не является единственным. Это всего лишь один из вариантов. Возможно кто-то может предложить другой вариант. в WinHex нужно выделить блок, копировать, сделать перевод и потом заменить оригинал на переведённый. Но как это делается, я не знаю. vaka61, в руководстве Изображения X Pixmap (Знакомимся с форматом ХРМ) я подробно описывал эти действия при работе в НЕХ-редакторе WinHEX. Просто используйте их (действия) применительно к вашей задаче.