Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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 требует некоторой мороки. Если кому интересно могу поделиться опытом.



Страницы: 1 вся ветка

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

Наверх









Память: 0.66 MB
Время: 0.031 c
4-94637
celestial
2002-02-25 08:56
2002.04.29
Как запретить окну быть активным?


4-94626
Nuhim
2002-02-22 10:43
2002.04.29
Как перехватить уход мыши в правый край экрана


3-94266
Rub
2002-04-05 15:53
2002.04.29
Народ, кто-нибудь может доступным языком и в двух словах...


14-94545
kaif
2002-03-21 23:45
2002.04.29
Кто какие предложения вынужден отвергать?


3-94335
Dmitry Zubtsov
2002-04-09 18:39
2002.04.29
Доступ из Delphi 6 к MySQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский