Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

как руссифицировать MessageDLG? 


agrig   (2002-04-14 14:23) [0]

В программе диалоги были построены на MesageDLG. Как с наименшими затратами времени их руссифицировать. Т.е. caption"ы на кнопках и окне?



Song   (2002-04-14 17:54) [1]

Нужно заменить некоторые файлы. Поищите этот вопрос, он уже обсуждался.



ghost_by   (2002-04-14 21:42) [2]

dialogs.pas



Вадим   (2002-04-14 22:30) [3]

Зачем так извращаться?
Используй не MessageDlg(), а MessageBox()



Пиноккио   (2002-04-14 22:37) [4]

Исправляешь Consts.pas (я перед исправлением копировал его в директорию проекта).
Добавляешь его к проекту.
В каком - нибудь юните прописываешь Uses Consts.
Делаешь build.



Lego   (2002-04-15 02:38) [5]

Зачем что-то исправлять ?
>Вадим © прав... MessageBox лучше...
вот пример:

procedure TForm1.Button1Click(Sender: TObject);
begin
MessageBox(Form1.Handle,
PChar("Вы хотите сохранить изменения?"),
PChar("Моя программа"), 3);
end;



Lego   (2002-04-15 02:41) [6]

... дополнение ...
если нужны другие кнопки на MessageBox, то поиграйся с цифрой 3... там можно вывести кажись все кнопки которые существуют в системе и причем одновременно :)



SPeller   (2002-04-15 04:38) [7]

Lego © (15.04.02 02:41)
Зачем играться ? Есть константы MB_YESNO, MB_YESNOCANCEL, MB_OKCANCEL, MB_OK и т.п. из названий понятно, какие кнопки они выдают. Да и вообще, играться с конкретными цифрами плохо. В этот параметр ведь передают ещё и какую иконку использовать.



agrig   (2002-04-15 20:10) [8]

Всем спасибо теперь буду пробовать!!!!



Lego   (2002-04-16 02:24) [9]


> Зачем играться ? Есть константы MB_YESNO, MB_YESNOCANCEL,
> MB_OKCANCEL, MB_OK и т.п.

Ну мне например когда я впервые увидел сколько и какие кнопочки есть захотелось перебрать все :) каждый сходит сума по своему :)



EsKor   (2002-04-16 09:30) [10]

> Lego
В вашем случае приводить к типу PChar строковую константу нет необходимости - это делается автоматически. Вот если используется переменная типа AnsiString (String) - тогда без приведения типа не обойтись.

Еще проще в использовании Application.MessageBox, по крайней мере не надо "воевать" с дескрипторами окна.



agrig   (2002-04-16 09:34) [11]

Пиноккио- the best/
Кроме диалогов перевел кучу всего!
А главное- быстро и работает!!!!!!!!!!!!!!!!!1
Спасибо.



Внук   (2002-04-16 11:03) [12]

Эхе-хех.
"... И с тех пор все тянутся передо мною кривые глухие окольные тропы..." (с) Стругацкие.
Переводить файл Consts.pas - это конечно круто :)
Этот вопрос поднимается регулярно, и мной, в том числе, поднимался. А толкового ответа все нет. Я вот о чем: добрые люди подсказали цивилизованное решение - функцию MessageBoxEx, специально предназначенную для сообщений на разных языках. Только не удалось мне заставить ее говорить по-английски на русскоязычной Windows и наоборот. Вот над чем стоило бы мастерам поломать голову, IMHO. Дело, кажется, в неустановленных Locale, а как их установить и откуда?



Игорь Шевченко   (2002-04-16 11:07) [13]

День добрый,

Добрые люди советуют использовать Intergated Translation Manager

С уважением,



Внук   (2002-04-16 11:25) [14]

>>Игорь Шевченко © (16.04.02 11:07)
Что-то я торможу, но первый раз об этом звере слышу, и Yandex тоже удивлен. Хотя бы, для чего он предназначен?



gek   (2002-04-16 11:29) [15]

Intergated Translation Manager - встроенная система перевода
Доступна с версии D5



Sergey U.   (2002-04-16 12:45) [16]

Народ, есть ещё один вариант.
Сходите на http://polesoft.narod.ru/
Там есть русифицированные константы для Delphi
Их ставишь и все сообщения (в т.ч. MessageDlg)
начинают выводиться по русски...



REA   (2002-04-16 13:22) [17]

Вот только *.rus к D6P2 что-то никак не сделают...



Внук   (2002-04-16 14:18) [18]

>>gek © (16.04.02 11:29)
Спасибо, не знал.
>>All
Только это все те же кривые окольные тропы. Кто поможет MessageBoxEx победить? Принципиально, из чистого интереса?



Игорь Шевченко   (2002-04-16 14:26) [19]

День добрый, Внук,

Note that each localized release of Windows typically contains resources only for a limited set of languages. Thus, for example, the U.S. version offers LANG_ENGLISH, the French version offers LANG_FRENCH, the German version offers LANG_GERMAN, and the Japanese version offers LANG_JAPANESE. Each version offers LANG_NEUTRAL. This limits the set of values that can be used with the wLanguageId parameter. Before specifying a language identifier, you should enumerate the locales that are installed on a system.

Последний совет но помогает? :-)

С уважением,



Внук   (2002-04-16 15:26) [20]

>>Игорь Шевченко © (16.04.02 14:26)
Все правильно.
Поэтому еще раз уточняю проблему: возможно ли к существующей версии добавить еще один или несколько национальных ресурсов (не знаю, как правильнее их назвать, Locales, в общем), а если да, то как это сделать?
"...Windows typically contains resources..." - значит, не всегда.
Просто, может кто знает :)



Игорь Шевченко   (2002-04-16 15:51) [21]

День добрый,

Панель управления/Клавиатура/Языки и раскладки/Добавить... :-)

С уважением,



Внук   (2002-04-16 16:07) [22]

>>Игорь Шевченко © (16.04.02 15:51)
В любом деле есть место шутке :) , но не все так просто, как кажется. Русская и английская раскладки установлены практически и всех, и у Вас наверняка. Однако, см. Внук © (16.04.02 11:03): "... не удалось мне заставить ее говорить по-английски на русскоязычной Windows и наоборот". А я очень старался ее разговорить:)
Если действительно Вас это заинтересовало - попробуйте сами. Код привести сегодня не могу - несколько недель, как бросил это безнадежное пока дело и все удалил. Только, наверняка, мой код Вам и не нужен. А если получится - очень прошу поделиться хотя бы итоговым результатом (типа Да/Нет).



Внук   (2002-04-16 16:08) [23]

>>Игорь Шевченко © (16.04.02 15:51)
В любом деле есть место шутке :) , но не все так просто, как кажется. Русская и английская раскладки установлены практически и всех, и у Вас наверняка. Однако, см. Внук © (16.04.02 11:03): "... не удалось мне заставить ее говорить по-английски на русскоязычной Windows и наоборот". А я очень старался ее разговорить:)
Если действительно Вас это заинтересовало - попробуйте сами. Код привести сегодня не могу - несколько недель, как бросил это безнадежное пока дело и все удалил. Только, наверняка, мой код Вам и не нужен. А если получится - очень прошу поделиться хотя бы итоговым результатом (типа Да/Нет).



Игорь Шевченко   (2002-04-16 16:43) [24]

День добрый, Внук,

Мы все попались на Win32.hlp :-)

В MSDN описание этой функции выглядит несколько по иному:

The MessageBoxEx function creates, displays, and operates a message box. The message box contains an application-defined message and title, plus any combination of predefined icons and push buttons. The buttons are in the language of the system user interface.
.....................
wLanguageId
[in] Reserved.

С уважением,



Внук   (2002-04-16 17:02) [25]

>>Игорь Шевченко ©
Спасибо за подсказку. Еще одной занозой стало меньше. В MSDN не догадался заглянуть, привык верить стандартной :) документации. Мда, прямо скажем, печально...



arbiter   (2002-04-16 20:21) [26]

В Windows XP система может иметь несколько языков интерфейса и между ними переключатся. Может быть в этом случае и заработает MessageBoxEx.



~Sergius   (2002-04-16 22:41) [27]

Я тут все внимательно прочитал и так и не смог понять, почему не подходит вариант с переводом констант в CONSTS.PAS и размещении последнего файла в директории проекта??

Если нужно возвести это в систему, то можно просто сделать поддиректории в директории проекта по языкам, для которых компилируется готовая программа (/rus, /eng, etc), а в проджекте в юсес поставить какой-нибудь conditional на счет того, из какой именно директории будет браться consts.pas при конкретных условиях компиляции.



agrig   (2002-04-16 22:48) [28]

народ!
рассабьтесь;)
все равно на все языки в мире не переведешь...



Внук   (2002-04-17 09:34) [29]

>>arbiter © (16.04.02 20:21)
Спасибо, проверю, как только доберусь до XP
>>~Sergius (16.04.02 22:41)
Никто не говорит, что перевод Const.pas не приводит к желаемому результату. Только криво это, методологически неправильно, как говорят у нас в конторе :)



MaXim1999   (2002-04-17 09:45) [30]

Добрый день. Вообщето работаю с базами данных и на днях занялся переводом своей проги с помощью все того-же Intergated Translation Manager. В принципе он достаточно легко позволяет перевести все ресурсы проекта на несколько языков (даже системные сообщения и исключения Дельфи). Правда переключение в RunTime требует некоторой мороки. Если кому интересно могу поделиться опытом.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.78 MB
Время: 0.025 c
1-94438           Rooman                2002-04-14 09:15  2002.04.29  
А законна ли экспертиза системного блока вообще?


3-94340           hn                    2002-04-09 17:25  2002.04.29  
Семейство Tquery


6-94531           knyaz17               2002-02-15 14:06  2002.04.29  
Как можно отобразить список элементов в WebBrowser??


1-94517           agrig                 2002-04-14 14:23  2002.04.29  
как руссифицировать MessageDLG?


6-94526           cypher                2002-02-17 17:01  2002.04.29  
NetFileEnum в 9x