Форум: "WinAPI";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
ВнизКак вывести сообщение на ангилском? (FormatMessage) Найти похожие ветки
← →
17Landgraf (2006-08-01 18:37) [0]Добрый день! Подскажите, пожалуйста, как добиться, чтобы ниже приведенный код, показывал сообщение на англиском языке? На данный момент сообщение выводится на русском языке.
function CodeOfError(ErrorCode: Integer): string;
var
Len: Integer;
Buffer: array[0..255] of Char;
begin
Len := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or
FORMAT_MESSAGE_ARGUMENT_ARRAY, nil, ErrorCode, 0 , Buffer,
SizeOf(Buffer), nil);
while (Len > 0) and (Buffer[Len - 1] in [ #0..#32, "."]) do Dec(Len);
SetString(Result, Buffer, Len);
end;
← →
Ketmar © (2006-08-01 18:52) [1]поставить английскую винду?
← →
17Landgraf (2006-08-01 19:06) [2]У FormatMessage есть параметр, который вроде, как отвечает за используемый, при выводе сообщения язык.
DWORD FormatMessage(
DWORD dwFlags,
LPCVOID lpSource,
DWORD dwMessageId,
DWORD dwLanguageId,
LPTSTR lpBuffer,
DWORD nSize,
va_list* Arguments
);
На MSDN-е нашел список языковых идентификаторов - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_238z.asp
А вот как применить эти идентификаторы? Например, есть след. идентификатор:
Identifier
0x0809 English (United Kingdom) en-GB Latn 1252 ENG
← →
Ketmar © (2006-08-01 19:18) [3]а вот так и применить. идентификатор языка -- просто число. $409 -- американский английский. $419 -- русский. $422 -- украинский. %-)
и искать их не надо, их сама винда знает. %-)
только всё равно ничего не выйдет -- у локализованых виндов нет ресурсов с сообщениями для других языков. обычно только для языка, на который локализовано.
← →
17Landgraf (2006-08-01 19:28) [4]Обидно конечно :( Но нет безвыходных ситуаций, будем искать! Может ктонить из жителей славного форума сталкивался с такой задачей ;-)
← →
medved_68 © (2006-08-02 09:55) [5]
> 17Landgraf
> Но нет безвыходных ситуаций
Это точно. А что мешает по коду ошибки формировать свое сообщение и выводить???? Можно хоть на ненецком автономном:)))
З.Ы. А почему на английском??? Чтобы наш пользователь проникся духом уважения к зарубежному программингу???
← →
17Landgraf (2006-08-02 10:44) [6]Удалено модератором
← →
Ketmar © (2006-08-02 10:50) [7]> [6] 17Landgraf (02.08.06 10:44)
а можно вообще end user"у сообщения об ошибках винды не показывать. такие сообщения обычно пишутся в лог, который отправляют разработчику. а юзер пусть видит нечто вроде "ашыпка! пашли письмо на деревню!"
← →
sniknik © (2006-08-03 11:11) [8]> Но нет безвыходных ситуаций, будем искать! Может ктонить из жителей славного форума сталкивался с такой задачей ;-)
легко, хотя с подобной задачей и не сталкивался. ставь английскую винду, после на нее MUI (мультиленгвиже чегото там ;), и у тебя в ней будет 2 типа ресурсов на английском и том какой вариант в MUI выбереш...
теоретически MUI можно поставить и поверх руской винды... по идее должно сработать, но вот пробовать никогда не приходилось.
← →
sniknik © (2006-08-03 11:13) [9]в смысле, когда поверх русской, надо доставлять английский интефейс.
← →
ancara © (2006-08-03 23:06) [10]Удалено модератором
Примечание: Offtopic
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c