Re: Локализация в MFC
От: __DArk  
Дата: 29.10.03 17:43
Оценка:
Если хочется, чтобы выбор языка происходил на основании именно "настроек в панели управлния", т.е. locale, то можно сделать так:


BOOL CMyApp::InitInstance()
{
    InitCommonControls();

    
    HINSTANCE hRes = NULL;
    LANGID li = GetUserDefaultLangID();
    switch(PRIMARYLANGID (li)){
    case LANG_RUSSIAN:
        hRes= LoadLibrary(L"Resource_Russian.dll");
        break;
    case LANG_SPANISH:
        hRes= LoadLibrary(L"Resource_Spanish.dll");
        break;
    case LANG_ITALIAN:
        hRes= LoadLibrary(L"Resource_Italian.dll");
        break;
    case LANG_GERMAN:
        hRes= LoadLibrary(L"Resource_German.dll");
        break;
    case LANG_FRENCH:
        hRes= LoadLibrary(L"Resource_French.dll");
        break;
    };

    if(hRes)
      AfxSetResourceHandle(hRes);

    CWinApp::InitInstance();
    ...


Соотвественно в dll-ках лежат копии ресурсов, с нужным language.
У меня в самом exe-шнике лежит английская версия, которая грузится по умолчанию, либо если не получилось загрузить нужную библиотеку.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.