Где я перевожу окна сообщения MFC

Похоже, у вас есть 2 текстовых меша про пакеты, попробуйте удалить один или обновить до последней версии Unity

6
задан Marius Bancila 9 May 2014 в 12:32
поделиться

2 ответа

Используйте MessageBoxEx и укажите поле WORD wLanguageId.

wLanguageId [в] Указывает язык для текста, отображенного в кнопке (кнопках) окна сообщения. Определение значения нуля (0) указывает для отображения текста кнопки на системном языке по умолчанию. Если этот параметр является MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL), текущий язык, связанный с вызывающим потоком, используется.

Для определения языка кроме текущего языка используйте макрос MAKELANGID для создания этого параметра. Для получения дополнительной информации см. MAKELANGID.

Больше информации о MAKELANGID может быть найдено здесь.


Если бы это не работает хорошо на Вас, альтернатива должна была бы сделать Ваше собственное диалоговое окно.

5
ответ дан 16 December 2019 в 21:46
поделиться

Заголовок является строкой, которую Вы указываете, таким образом, необходимо смочь перевести его. В AfxMessageBox (), заголовок является именем приложения (AfxGetAppName () IIRC).

Относительно кнопок текст является частью ОС и не может быть переведен.

MessageBoxEx (упомянутый Brian) никогда не работал хорошо относительно поддержки языков. В этой статье MS KB из-за десятилетие назад говорится, что идентификатор языка будет правильно поддерживаться Windows 2000. Но это, очевидно, никогда не удавалось.

Таким образом, Вам в значительной степени не повезло. Ваше единственное решение состояло бы в том, чтобы использовать стороннюю реализацию, такую как превосходный XMessageBox и обеспечить переводы через Вашу таблицу строк.

Обратите внимание, что глоссарий appTranslator содержит слова такой как Да, нет, отмена... на 25 языках и перевел бы их автоматически.

2
ответ дан 16 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: