Если вы настроены делать это с нуля (идея Уилла неплохая), то я бы сначала определил формат файла, в котором проще всего создать языковой курс. Это может быть XML, открытый текст или какой-то другой формат, который вы придумаете сами.
Вам, вероятно, понадобится некоторая гибкость в языковом формате, потому что вы действительно захотите указать такие вещи, как вопросы и ответы. XML - это боль из-за всех лишних терминаторов, но он дает большое количество метаданных. Если вам нравится XML для этого, вы можете рассмотреть возможность определения вашего языкового файла в YML, он предоставляет вам данные XML, но использует угловые скобки вместо пробелов.
Возможно, вы также хотите определить свой файл на том языке, для которого он создан, поэтому вы можете захотеть или не захотеть использовать английские слова в качестве ключей. Если вам не нужен английский, вам, возможно, придется пропустить и XML, и YML и придумать свой собственный формат файла - возможно, когда макет и / или специальные символы определяют поток и «функциональность».
После того как вы определили формат файла, вам не придется беспокоиться о жестком кодировании чего-либо ... вы не сможете, потому что он уже будет в файле.
Функциональные возможности плагина также были бы хорошими ... Здесь ваш файл определения также содержит информацию, которая говорит вам, какой класс создавать (рефлексивно) и использовать для анализа / отображения данных. Таким образом, вы можете добавлять новые типы вопросов, просто поставляя новый файл jar.
Если это сбивает с толку, извините, это сложно в одностороннем форуме, потому что я не могу смотреть на ваше лицо и посмотреть, следите ли вы за мной или я даже иду в правильном направлении. Если вы думаете, что я на правильном пути и хотите больше подробностей (я уже делал кое-что из этого раньше), не стесняйтесь оставлять в комментарии дополнительный вопрос (или адрес электронной почты), и я был бы рад чтобы обсудить это с вами дальше.