Пока что процесс идёт согласно https://gitlab.com/budden/ja-o-s/-/blob ... перевод.md .
Что можно улучшить?
- разбить единый файл перевода на много - по числу модулей. Видимо, понадобится ещё глобальная таблица с переводами именно имён модулей. Тогда загружать перевод можно при загрузке модуля.
- использовать более лаконичный формат, чем XML. С учётом моего тёмного прошлого, напрашиваются S-выражения. В книжке Вирта что-то есть про них, может быть, где-то и парсер есть. Нужна ещё поддержка в ИСР. Можно ещё JSON5, но я не люблю JSON - он отстойный.
- возможность от места ввода перевода переходить к месту, где определено имя. Особой проблемы с этим не было, пока я переводил последовательно. Теперь я стараюсь группировать переводы, например, сразу перевожу все переменные с именем error. Это может быть потокВыводаОшибок или ошибкаЛи, поэтому просто так сразу перевести нельзя - нужно смотреть в код. Значит, нужно сделать команду "перейти к определению, к-рая должна принимать одно из:
- имяМодуля.имяЧлена.имяЧлена.имяЧлена
- имяФайла@смещение
- имяМодуля???смещение
- имяФайла.имяЧлена.имяЧлена:счётчикВыполнения
- возможность найти то же слово в комментариях и строковых литералах
- разбить перевод на статическую часть (которая нужна только во время преобразования исходников) и динамическую (которая нужна для работы)
- автоподсказка прецедентов
- закрывать файлы, чтобы не было проблем с другими приложениями
- рефакторинг "переименуй идентификатор" - он естественно вытекает из того же движка, но надо допилить.
- интерфейс к словарю, в т.ч. возможность брать подстановки из словаря и в идеале даже добавлять слова в словарь, а также возможность
вызова внешних словарей из интернета - в заготовке таблицы перевода указывать тип данных - иногда по нему сразу понятно, как переводить.