У меня работает образовательный сайт, который учит программированию детям (12-15 лет).
Поскольку они не все говорят по-английски в источнике кода решений, мы используем имена переменных и функций во Франции. Однако мы планируем перевести контент на другие языки (немецкий, испанский, английский). Для этого я хотел бы как можно быстрее перевести исходный код. У нас в основном есть код C/С++.
Решение, которое я планирую использовать:
- извлекать все имена переменных/функций из исходного кода, их позицию в файле (где они объявлены, используются, вызывают...)
- удалить все языковые ключевые слова и библиотечные функции.
- попросите переводчика предоставить переводы для остальных имен
- заменить имена в файле
Есть ли какой-нибудь открытый код/проект с открытым исходным кодом, который может это сделать? (Для точек 1,2 и 4)
Если этого не происходит, самая сложная точка в первом: использование синтаксического анализатора C/С++ для создания синтаксического дерева, а затем извлечение переменных с их позицией, похоже, способ. У вас есть другие идеи?
Спасибо за любые советы.
Изменить: Как отмечено в комментарии, мне также нужно будет позаботиться о комментариях, но их осталось лишь немного: полное решение уже объяснено в текстовом виде, а затем мы показываем код-источник с самообучаемой переменной/функцией имена. Исходный код редко бывает длиннее 30/40 строк, а хорошие имена должны быть понятны без комментариев, если вы уже знаете, что делает код.
Дополнительная информация: для людей, заинтересованных в веб-сайте, является учебной площадкой для международных олимпиад по информатике и C/С++ (по крайней мере, минимальным, необходимым для конкурса на программирование), не так сложно изучить 12 лет.