Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вывести сообщение на ангилском? (FormatMessage) [D6, WinXP]


17Landgraf ©   (2006-08-01 18:37:00) 

Добрый день! Подскажите, пожалуйста, как добиться, чтобы ниже приведенный код, показывал сообщение на англиском языке? На данный момент сообщение выводится на русском языке.



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;


ancara   (2006-08-03 23:06:00) [1]

Удалено модератором
Примечание: Offtopic


sniknik   (2006-08-03 11:13:00) [2]

в смысле, когда поверх русской, надо доставлять английский интефейс.


sniknik   (2006-08-03 11:11:00) [3]

> Но нет безвыходных ситуаций, будем искать! Может ктонить из жителей славного форума сталкивался с такой задачей ;-)
легко, хотя с подобной задачей и не сталкивался. ставь английскую винду, после на нее MUI (мультиленгвиже чегото там ;), и у тебя в ней будет 2 типа ресурсов на английском и том какой вариант в MUI выбереш...

теоретически MUI можно поставить и поверх руской винды... по идее должно сработать, но вот пробовать никогда не приходилось.


Ketmar   (2006-08-02 10:50:00) [4]

> [6] 17Landgraf   (02.08.06 10:44)

а можно вообще end user'у сообщения об ошибках винды не показывать. такие сообщения обычно пишутся в лог, который отправляют разработчику. а юзер пусть видит нечто вроде "ашыпка! пашли письмо на деревню!"


17Landgraf   (2006-08-02 10:44:00) [5]

Удалено модератором


medved_68   (2006-08-02 09:55:00) [6]


> 17Landgraf


> Но нет безвыходных ситуаций

Это точно. А что мешает по коду ошибки формировать свое сообщениеи выводить???? Можно хоть на ненецком автономном:)))

З.Ы. А почему на английском??? Чтобы наш пользователь проникся духом уважения к зарубежному программингу???


17Landgraf   (2006-08-01 19:28:00) [7]

Обидно конечно :( Но нет безвыходных ситуаций, будем искать! Может ктонить из жителей славного форума сталкивался с такой задачей ;-)


Ketmar   (2006-08-01 19:18:00) [8]

а вот так и применить. идентификатор языка -- просто число. $409 -- американский английский. $419 -- русский. $422 -- украинский. %-)
и искать их не надо, их сама винда знает. %-)

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


17Landgraf   (2006-08-01 19:06:00) [9]

У 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 18:52:00) [10]

поставить английскую винду?


Наверх

Титульная страница Поиск, карта сайта Написать письмо