LUR » 09.05.2017, 00:19
Овцеухов, как человек, имеющий опыт в переводе foobar2000 на русский язык, могу дать пару советов.
Редактировать напрямую бинарные файлы в принципе можно... но!
1. Не факт, что программа сможет корректно отобразить кириллицу, все будет зависеть от внутренней кодировки строк и шрифтов, используемых в ней. В фубаре, к примеру, используется кодировка UTF-8 и системные шрифты по-умолчанию, так что проблем с отображением русского текста нет, слава богу.
2. Если программа написана на C/C++, то обычно строки представляют собой последовательность байт, заканчивающихся нулем (признак конца строки). В таких языках, как Паскаль (delphi) длина строки располагается в начале строки. В общем редактировать напрямую строки, это значит пытаться вщемить в уже существующую фиксированную длину строки перевод. Тут уж как повезет, либо хватит места либо не хватит, поэтому никто так в наше время и не делает. Более менее серьезный подход в данном случае использовать программы типа Radialix, которая поможет задать перевод любой длины тем, что сама выделит дополнительное пространство для строк и перенесет их туда, изменив ссылки в коде программы, то есть сделает за вас всю черную работу.
3. Бывает так, что программист напрямую в коде указывает длину строки. Это делается для безопасности, чтобы случайно не начать писать по недозволенным участкам памяти. Так вот в данном случае Radialix не справится. То есть справится, но программа будет отображать лишь часть строки, потому как ожидает строку той длины, что задал программист. Так в фубаре такие строки тоже встречаются. Тут придется уже лезть в код и самому исправлять длину строки, геморой еще тот, но может повезти, и такого не будет.