Я сделал несколько долгоживущих проектов MFC на разных языках.
Я настоятельно рекомендую первый подход с DLL-библиотеками только для ресурсов.
Причины:
(1) Если пользователь устанавливает XCOPY, у него всегда есть язык по умолчанию (английский) в основных исполняемых файлах.
(2) Если вы не переводите все (например, опоздали с выпуском или забыли некоторые строки), функции ресурсов Windows при правильном использовании возвращают ресурс на языке по умолчанию автоматически - вам не нужно реализовать это самостоятельно.
(3) Мое личное мнение: (a) Разрывы строк, табуляции, пробелы в XML-файлах - боль в вашем а **. (б) Слияние файлов XML еще хуже ...
(4) Не забудьте кодировку. Это нормально в XML, но ваши переводчики могут использовать неподходящий редактор и повредить файл.
А теперь по главной причине:
(5) Вам придется переставить многие из ваших диалогов, потому что многие строки длиннее, например, Французский или немецкий, чем на английском. И сделать всю статику, кнопки, ... больше "на всякий случай" выглядит паршиво.
Еще один совет: потратьте несколько долларов и купите один из инструментов перевода, который импортирует ваши проекты / двоичные файлы и создает базу данных переводов. Это будет амортизироваться после первого выпуска.
Еще один совет (2): Если возможно, сделайте релиз, который не содержит каких-либо изменений, а содержит только мультиязычность. Также в будущем, если это возможно, выпустите ваш продукт на английском языке. Затем выполните перевод за один шаг (для каждого языка) и выпустите другие языки.