У меня работает образовательный веб-сайт, который обучает программированию детям (12-15 лет).Перевод исходного кода на иностранный язык
Поскольку они не все говорят по-английски в источнике кода решений, мы используем имена переменных и функций во Франции. Однако мы планируем перевести контент на другие языки (немецкий, испанский, английский). Для этого я хотел бы как можно быстрее перевести исходный код. У нас в основном есть код C/C++.
Решение Я планирую использовать:
- вытяжных все переменные/функции имена из исходного кода, с их позиции в файле (где они объявлены, используется, называется ...)
- удалить все ключевые слова языка и функции библиотеки
- попросить переводчика предоставить переводы для остальных имен
- заменить имена в файле
Есть ли уже какой-то открытый код/проект с открытым исходным кодом, который может это сделать? (Для точек 1,2 и 4)
Если нет, то самая сложная точка в первом: использование синтаксического анализатора C/C++ для создания синтаксического дерева и последующего извлечения переменных с их позицией представляется путь. У вас есть другие идеи?
Благодарим за любые советы.
Edit: Как отмечено в комментарии, я также необходимо позаботиться о комментариях, но есть только несколько из них: полное решение уже объяснено в обычный текст, а затем мы показываем код -source с самообновленными именами переменных/функций. Исходный код редко бывает длиннее 30/40 строк, а хорошие имена должны быть понятны без комментариев, если вы уже знаете, что делает код.
Дополнительной информация: для людей, интересующихся веб-сайта является тренировочной площадкой для Международных олимпиад по информатике и C/C++ (по крайней мере, минимум, необходимый для конкурса программирования) не так трудно выучить в 12 лет ,
Попробуйте ввести код непосредственно в перевод Google. Это очень хорошая работа только для перевода слов. То, что он делает «случайно», может быть рассмотрено, запустив код через что-то, что заменяет их известными заменителями. – Lalaland
Некоторые бы поставили под вопрос решение использовать C/C++ для обучения детей тому возраста, но я написал C, когда мне было 15, и, насколько я могу судить, не получил никакого урона.(Написание Pascal в более раннем возрасте вредило мне больше, потому что у меня не было никакого руководства по произведению для многих ключевых слов. Мне потребовались годы, чтобы прекратить произносить «начало», как если бы это был израильский премьер-министр). –
Некоторые имена переменных могут быть легко переведены автоматическими инструментами. Например (французский-> английский): «longueurMax» -> «maxLength». Также мы хотим (почти) совершенный перевод, чтобы имена переменных не могли быть автоматически переведены, но выбраны переводчиком-программистом. –