Похоже, у вас есть 2 текстовых меша про пакеты, попробуйте удалить один или обновить до последней версии Unity
Используйте MessageBoxEx и укажите поле WORD wLanguageId.
wLanguageId [в] Указывает язык для текста, отображенного в кнопке (кнопках) окна сообщения. Определение значения нуля (0) указывает для отображения текста кнопки на системном языке по умолчанию. Если этот параметр является MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL), текущий язык, связанный с вызывающим потоком, используется.
Для определения языка кроме текущего языка используйте макрос MAKELANGID для создания этого параметра. Для получения дополнительной информации см. MAKELANGID.
Больше информации о MAKELANGID может быть найдено здесь.
Если бы это не работает хорошо на Вас, альтернатива должна была бы сделать Ваше собственное диалоговое окно.
Заголовок является строкой, которую Вы указываете, таким образом, необходимо смочь перевести его. В AfxMessageBox (), заголовок является именем приложения (AfxGetAppName () IIRC).
Относительно кнопок текст является частью ОС и не может быть переведен.
MessageBoxEx (упомянутый Brian) никогда не работал хорошо относительно поддержки языков. В этой статье MS KB из-за десятилетие назад говорится, что идентификатор языка будет правильно поддерживаться Windows 2000. Но это, очевидно, никогда не удавалось.
Таким образом, Вам в значительной степени не повезло. Ваше единственное решение состояло бы в том, чтобы использовать стороннюю реализацию, такую как превосходный XMessageBox и обеспечить переводы через Вашу таблицу строк.
Обратите внимание, что глоссарий appTranslator содержит слова такой как Да, нет, отмена... на 25 языках и перевел бы их автоматически.