FormatMessage на другой язык

Можно ли перевести коды системных ошибок на конкретный язык?

Я могу только пройти MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US) в FormatMessage. В противном случае вызов функции завершается с 15100 (Загрузчику ресурсов не удалось найти файл MUI).

Где хранятся системные сообщения об ошибках? Почему я не могу загрузить сообщение в локали, отличной от системной?

1

Решение

В основном MUI обозначает многоязычный пользовательский интерфейс. Это языковые пакеты. В окнах по умолчанию их не получить. Вместо этого они должны установить

Ниже ссылка поможет вам в отношении закупок.

https://support.microsoft.com/en-us/help/14236/language-packs

По умолчанию вышеупомянутая страница отображается для Windows 10. есть вариант выпадающего меню для других версий окон.

Если у вас возникли проблемы с приведенной выше ссылкой, поищите в Google языковой пакет MUI для Windows 10 или любой другой версии.

2

Другие решения

Используйте ноль для идентификатора языка, а не MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), затем FormatMessage выберет ресурс на основе идентификатора языка потока или использует GetUserDefaultLangID,

FormatMessage документация:

DWORD WINAPI FormatMessage(
_In_     DWORD   dwFlags,
_In_opt_ LPCVOID lpSource,
_In_     DWORD   dwMessageId,
_In_     DWORD   dwLanguageId,
_Out_    LPTSTR  lpBuffer,
_In_     DWORD   nSize,
_In_opt_ va_list *Arguments
);

dwLanguageId:

Если вы передаете конкретный LANGID в этом параметре, FormatMessage будут
вернуть сообщение только для этого LANGID. Если функция не может найти
сообщение для этого LANGID устанавливает Last-Error в
ERROR_RESOURCE_LANG_NOT_FOUND, Если вы проходите в ноль,
FormatMessage ищет сообщение для LANGID в следующем
порядок:

  1. Нейтральный язык
  2. LANGID потока, основанный на значении локали потока
  3. LANGID пользователя по умолчанию на основе значения локали пользователя по умолчанию
  4. Системный LANGID по умолчанию на основе значения локали системы по умолчанию
  5. Американский английский
2

По вопросам рекламы [email protected]