А>Эм. Почитал. Подумал — а для кого придумано хранение ресурсов не в ехе, а в ДЛЛ?
В ДЛЛ очень легко напороться на то что в ДЛЛ одна версия интерфейса, а в EXE уже другой код, который расчитан на другой UI. Причем это не то что бы "легко", а просто это уже со версии 0.00 build 2 начнется —
проверено. И поймать это невозможно формальными методами (или по крайней мере весьма непросто). В DLL ресурс лежит под одним ID, а в коде обозначен другой. Причем ловить это можно только в runtime со 100% покрытием кода.
Но это еще не всё ((C) барон Мюнхаузен). Протестя одну ДЛЛ, это вообще ничего не значит с другой языковой ДЛЛ, можете начинать 100% покрытие кода в связке с другой ДЛЛ заново.
Для большого проекта, да где еще не один язык это не приемлемо. Будем без конца гонять ДЛЛ, код вообще заморозится навсегда.
А>ИМХО, подход неверный изначально — по 5 версий собирать.
Не аргументировано!
А>А то, что Вы утверждаете про майкрософт — не уместно, ибо даже у них все равно все идет через ресурсы, просто количество файлов велико — вот и режут на пачки.
Тем более не аргумент... Мало ли что там у Microsoft? У русского "Васи" тоже все через ресурсы... Газовые да нефтяные! Что? Теперь на Васю равняться?
1) "Аргумент мол Майкрософт делает, и это верно" — это вообще не аргумент. "Жираф большой ему видней" (С)
2) Если кроме шуток, у Майкрософт резоны совершенно иные для такого подхода к локализации.
а) Обьемы. При таких объемах наверное это удобно + можно держать штат переводчиков в тысячи человек.
б) Контент. Они локализуют да-а-а-леко не только, и не столько строки. А иконки, и расцветки да и вообще MS рассматривает локализацию как процесс адаптации к другим культурам, цивилизациям. Не думаю, что для проектов не MS-овского размаха, а одиночки, небольшой команды уместны такие постановки вопроса (с вытекающими затратами на выполнение такой локализации).
А> Сборка большинства файлов, я думаю, одна.
Обижаете

Конечно одна — только UI в EXE-шник подпихивается для конкретного языка.
А> Если уж делать красиво — предлагайте скачать и ехе и пакет локализации, который, кстати, можно определить прямо на этапе выдачи странички.
1) Качают не с "этапа выдачи странички", а вполне реальный файл по вполне реальному URL. 99% каталогов не разрешат Вам вместо URL на скачиваемый файл ввернуть свою страничку со 33-мя предложениями. Да и пользователю это не понравится. Выбор версий одно, предложение еще и повыбирать пакеты локализации... Да уйдет пользователь с такой страницы, ничего не скачивая.
2) Я уже писал выше, что ДЛЛ это недопустимо. Ну поверьте на слово. Один из переводчиков (причем, пытливый парень — и как ему не надоело смотреть на crash с очередной версией ДЛЛ) влетел с локализацией уже на второй версии. Оказалась не та ДЛЛ, а синхронизировать версии EXE и DLL настолько четко Вы просто не сможете, не угробив на это всю оставшуюся жизнь. Рассинхронизация содержимого ДЛЛ и EXE гарантирована! Примером тому, могут быть здешние статьи на RSDN. Ни один из примеров по UI DLL в MFC за столько то лет существования статей так и не ушел дальше банальных примеров ХеллоВорлд да диалога с тремя кнопками.
А> Либо в самой софтине сделать Изменить Язык, по которой скачивать нужный пакет, если уж у вас там и "не 300 строк". Только вот смысла особого в экономии места на ДЛЛ со строками я не вижу — если это Германия, где интернет давно не модемный.
Проблема не в экономии места, а не в недостатках хранения UI в ДЛЛ.
А вот путь мне это близко — ну не вытанцовывается пока какого-то другого решения. Я пытаюсь понять когда это предлагнать пользователю?
а) в инсталлере? Имхо не лучший момент + после инсталляциии пользователь не вернется.
б) в меню? Да вроде повесил какую-то ссылку — толку ноль. Т.е. юзер там не ищет эту информацию
в) спросить его? Когда, в каком виде.
Может действительно меню верхнего уровня с названием "Язык"!?! Уж оно то будет заметно!?!
А> А для иконок — да, если программа подразумевает их кастомизацию ,следует делать отдельные файлы с ресурсами, имхо.
Ну, тут пожалуй согласен — знал бы прикуп жил бы с Сочи...
Ей богу, иногда подумываю, что нужно бы собраться да написать локализацию из ini прямо в Exe. Простую как пилорама: чтобы банально перехватывала LoadString, LoadMenu и иже с ними и локализовала их на лету. Тогда действительно язык можно вынести в отдельный файл, ну а с иконками да тулбарами можно что-нибудь да и придумать — варианты возможны.