Как локализовать диалоги win32? - PullRequest
0 голосов
/ 08 апреля 2010

Я работаю над диалогами Win32 с различными элементами управления, такими как Static Text, Checkbox и т. Д., И все строки должны быть локализованы для разных языков. Я разработал диалоги для США межд. Но когда я помещаю локализованные строки, они не соответствуют должным образом, и мне приходится менять расположение для каждого intl.

Есть ли лучший способ сделать это?

Могу ли я создать один диалог с одним макетом, который должен работать со всеми Intsl ???

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

Я помню, как читал где-то, что во время первоначального размещения ресурсов графического интерфейса в MS они создают диалоги сначала на немецком языке, а затем дважды проверяют макеты, по крайней мере, на английском и японском языках.

Как только макет диалога вмещает эти три языка, он обычно не требует дополнительных изменений макета.

Вы можете использовать ShowHTMLDialog . Если вы можете решить черную магию ввода и вывода данных в диалоговом окне, HTML имеет преимущество в виде элементов управления, которые автоматически масштабируются для соответствия их текстовым границам.

0 голосов
/ 11 апреля 2010

В прошлом я реализовывал следующий производный класс от CDialog с именем CLanguageDialog.Затем я позвонил loadLanguage() в OnInitdialog().Тогда все мои диалоги в моем приложении будут получены из CLanguageDialog вместо CDialog.

void CLanguageDialog::loadLanguage()
{
    CWnd *pChild = this->FindWindowEx(this->m_hWnd, NULL, NULL, NULL);

    while(pChild)
    {
        theApp.languageLoader.loadStringForWnd(pChild);
        pChild = pChild->GetNextWindow();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...