Одним из возможных подходов является использование чего-то, что знает, как преобразовать программу VB6. Это должно было бы проанализировать VB6, вытащить все буквенные текстовые строки, предложить их вам для перевода и заменить ваши замены исходными строками. На самом деле вам нужно два прохода: первый для создания набора, позволяющего перевести интересующие вас, и второй для замены назначенных переводов, если таковые имеются. Скорее всего, у вас есть возможность отладки, потому что обычно есть что-то, что зависит от размера строки.
Как вы переводите строки с одного языка на другой, зависит от вас. Как предлагают другие авторы, вы можете воспользоваться онлайн-переводчиком и взять то, что вы получите. Я ожидаю, что вы добьетесь большего успеха, если это сделает человек. Как правило, они должны сосредоточиться только на значении строк, поскольку они извлекаются из кода, но вы также найдете случаи, когда перевод зависит от того, что делает код, и поэтому должен быть задействован программист.
Наш комплект реинжиниринга программного обеспечения DMS с интерфейсом Visual Basic может быть легко настроен для этого. DMS предоставляет общий механизм разбора и преобразования; интерфейс VB предоставляет подробную информацию о Visual Basic 6 (в вашем случае).
Разновидностью этой идеи является замена переведенных буквенных строк ссылками на «ресурсы» (что составляет таблицу поиска, проиндексированную по номеру строки), которые содержат либо оригинал (французский), либо новый (английский). Это решение создает нечто, близкое к тому, что хотят делать люди, занимающиеся интернационализацией. (Это не заботится о датах и форматах валют; для них требуется анализ потока данных для определения вычислений, ведущих к дате / от даты или операций с валютой. Хотя DMS и не нужен для преобразования буквенных строк, анализ потока можно выполнить, поэтому его можно настроить для выполнения это тоже.)
Если у вас есть точная информация о расположении строк в тексте (например, начальная строка / столбец, конечная строка / столбец), вы можете сделать это другим способом: использовать эту точную информацию для извлечения строк, а затем использовать та же самая точная информация, чтобы повторно вставить переводы. Чтобы не повредить расположение строк, вы должны заменить строки, начиная с конца каждого файла, сначала работая в обратном направлении по всему файлу. Это должно быть просто сделать с буфером текста.
Наша Система поиска исходного кода (SCSE) может использоваться для тривиального поиска таких строк и их местоположения. SCSE индексирует исходный код в соответствии со своей лексической структурой (и, таким образом, точно видит строковые литералы), а затем все разрешает запросы по исходному коду для произвольных последовательностей токенов. Он использует языковые интерфейсы DMS (для вашей цели - интерфейс VB6) для точного выбора лексем.
Можно охотиться за утверждениями, которые присваивают константу больше 10 (используя ограничение диапазона) переменной, имя которой содержит X (используя подстановочный знак) с запросом, подобным этому:
I=*x* '=' N>10
SCSE найдет все совпадения, покажет вам совпадения и позволит увидеть совпадение в исходном коде одним дополнительным щелчком.
Запрос, который вы хотите найти буквенные строки, чрезвычайно прост:
S=*
означает "найти все строки независимо от содержимого". Вы можете включить ведение журнала SCSE, и он запишет список всех попаданий вместе с точными позициями в файл журнала. В этот момент у вас есть вся точная строковая информация. (SCSE не может выполнить анализ потока, поэтому он не может помочь интернационализировать даты так же, как DMS, но может найти
N 'mod' 4 '==' 0
шаблонов, которые, как правило, являются поправками на високосный год).