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

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

Многоязычность приложения [D7]


Страницы:   1 2

Shc ©   (2004-08-13 17:03:00) 

Народ, подскажите, пожалуйста, хорошую компоненту для организации многоязычности (желательно бесплатную.
Требования: хранение в текстовом формате (ini, lng ...); обработка всех форм в проэкте; обработка строковых констант (resoursestring) всех используемых модулей


Shc   (2004-08-17 16:53:00) [1]

Спасибо за ответы.
Раньше не мог, уезжал.

Относительно средсв самого Делфя, это, конечно, хорошо, НО я не уверен что это будет работать для Линуха :-)
(хотя и про ресурсные строки тоже) :-))

Относительно кнопочек типа Yes, то это тоже очень важно и нужно (делается с прицелом на учебные заведения)


Mim1   (2004-08-16 08:19:00) [2]


> Хотя кто знает что они завтра захотят? "Белый текст при
> включении" по русски ? ;-)


Можно перепрошить bios и шрифт видеокарты. :)
Лиш бы оплатили.


GuAV   (2004-08-14 20:08:00) [3]

Таки получилось.
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1092430217&n=5

> Да, бывают и такие.

Да, но теперь есть управа. Хотя кто знает что они завтра захотят? "Белый текст при включении" по русски ? ;-)


TUser   (2004-08-14 14:39:00) [4]


> А ты прдставь себе такого буха кило эдак на 160 которая
> визжит что это ее не касается и все должно быть "как надо",
> и что она ничего знать не хочет.

Да, бывают и такие.


GuAV   (2004-08-14 13:55:00) [5]


> Ну, на самом деле, для русификации твоих собственных строк
> это не нужно,

Согласен.
> а Yes переводить на русский язык вовсе необязательно

У меня через Application.Messagebox, т.е. Yes и так по русски.
В других константах дело.

> Неужели ползователь не пойме по английски?

Лучше не надо.


Mim1   (2004-08-14 13:30:00) [6]


> [20] TUser ©   (14.08.04 08:34)


А ты прдставь себе такого буха кило эдак на 160 которая визжит что это ее не касается и все должно быть "как надо", и что она ничего знать не хочет.


TUser   (2004-08-14 08:34:00) [7]

Ну, на самом деле, для русификации твоих собственных строк это не нужно, а Yes переводить на русский язык вовсе необязательно (по моему скромному ИМХО). Неужели ползователь не пойме по английски?


GuAV   (2004-08-14 05:19:00) [8]

TUser ©   (14.08.04 03:16) [18]

Неплохо, но я думаю есть вариант получше...


TUser   (2004-08-14 03:16:00) [9]

Есть перцы, которые пересобирают VCL под свои нужды. Сам не делал, но теоретически это делают так - копируют в папку со своей программой все нужные модули, заменяют в этом consts.pas константы на переменные с такими же названиями, значения грузят из ini/реестра/ресурса


Anatoly Podgoretsky   (2004-08-13 23:59:00) [10]

GuAV ©   (13.08.04 23:41) [15]
Не подскажу не делал, требует изучения, но одназначно можно.


GuAV   (2004-08-13 23:46:00) [11]

Как бы это понятнее сказать... Хочу понять, можно ли
> хранение в текстовом формате (ini, lng ...);
реализовать для констант из consts.pas, что бы например тот же Stack Overflow был по русски.


GuAV   (2004-08-13 23:41:00) [12]


>> заменить ... в run-time.


> Это тоже можно сделать,

Я тупой. Объясните, пожалуйста, как.
Я понимаю, что после запуска resource dll wizard создаётся ProjectGroup с локализируемыми версиями проекта с dfm и rc файлами и есть удобный stringtable editor для этих rc файлов, но как

> т.е. заменить SAccessViolationArg3 с значения из consts.pas
> на 'Лажа по адресу %p. %s адреса %p' в run-time.


Anatoly Podgoretsky   (2004-08-13 23:31:00) [13]

У меня так подулючились констант из Quick Report и еще что то.


Anatoly Podgoretsky   (2004-08-13 23:29:00) [14]

GuAV ©   (13.08.04 23:25) [12]
Это тоже можно сделать, если они объявлены как ресурсные строки, немного надо посучиться с подключением к ITE


GuAV   (2004-08-13 23:25:00) [15]

Anatoly Podgoretsky ©   (13.08.04 23:17) [11]

Нет, я хочу [0]

> обработка строковых констант (resoursestring) всех используемых
> модулей

т.е. заменить SAccessViolationArg3 с значения из consts.pas на 'Лажа по адресу %p. %s адреса %p' в run-time.


Anatoly Podgoretsky   (2004-08-13 23:17:00) [16]

GuAV ©   (13.08.04 21:58) [9]
SAccessViolationArg3:='Лажа по адресу %p. %s адреса %p';

Format в нее передаешь SAccessViolationArg3 как форматную строку, если напрямую не получится, то сначала в S, но должно и напрямую


Dimaxx   (2004-08-13 22:54:00) [17]

Пиши мне на мыло - объясню. Я сделал проще и в пару десятков строк. Интерфейс тянется из текстовых файлов. Щас объяснять нет времени в инете - накропаю текстик и выложу. А пока прыгай ко мне на мыло.


GuAV   (2004-08-13 21:58:00) [18]

>Это нельзя по дизайну, это ресусные DLL
Жаль.
Но я думаю если дельфи это не делает, можно руками сделать, есть же редакторы ресурсов, использующие соотв WInAPI функции...

>S := s_ResourceString;
я не о том.
Как бы такое сделать:
SAccessViolationArg3:='Лажа по адресу %p. %s адреса %p';


Anatoly Podgoretsky   (2004-08-13 21:46:00) [19]

GuAV ©   (13.08.04 21:19) [7]
Это нельзя по дизайну, это ресусные DLL

Очень просто, также как обычную константу, справка кстати это хорошо рассказывает и с примерами.

S := s_ResourceString;

Остальное делается автоматом.


GuAV   (2004-08-13 21:19:00) [20]

Anatoly Podgoretsky ©   (13.08.04 20:22) [6]
Вы кстати не знаете, как заставить всю эту информацию хранится не в .enu/.rus а в самом exe (есть же возможность хранения нескольких версий одного ресурса на разных языках в винде) ?

И как пдменить resurcestring во время выполнения?


Страницы:   1 2

Наверх

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