Yo he visto programas que usan una especie de archivo INI.
Con entradas, tipo:
[MesnajesError]
ArchNoExiste=El archivo no existe.
ArchSoloLectura=El archivo no pudo ser borrado.
[Botones]
Aceptar=&Aceptar
Cancelar=&Cancelar
bla bla
Al iniciar la aplicación resulta muy fácil cargar el texto mediante las funciones para leer archivos INI.
Igual el problema sigue siendo, qué pasa si el texto para un idioma es demasiado largo y no entra en el espacio de, por ejemplo, un botón.
Aunque yo he hecho programas para diferentes idiomas, y tener que traducir y compilar todo de nuevo es realmente pesado.
Creo que queda a criterio de uno, si el programa tiene poco texto, quizá te resulte más fácil recompilar.
Saludos y buenas compiladas.