Можно много чего придумывать, а можно использовать gettext.
Все-равно ты работаешь с ним через что-то, а не напрямую в текстовых файлах. Хотя и они несложные для понимания.
Есть ТОННА туллинга для этого. С ними прозрачно работают все платформы. Никому ничего не надо объяснять как и что переводить, как может быть в случае твоих велосипедов. А "компилировать а потом еще раз компилировать" - так это же отлично. Все это делается для эффективности.