Самое сложное в программе - это сделать переводчиков.
Можно было бы сделать несколько калькуляторов, которые определяли бы валидные для них значения и вычисляли бы, но это было бы очень хлопотно. К тому же, значения чисел везде одни и теже, поэтому, оптимальнее будет сделать один калькулятор, который по понятным ему числам и строковому оперетору вычислить значение, а переводы чисел из одного в другой поручить переводчикам.
В первом коммите была ошибка при вводе римских чисел с символом V. Была не корректно сделана валидация у переводчиков.