Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Многоязычность приложения   Найти похожие ветки 

 
Shc   (2004-08-13 17:03) [0]

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


 
GuAV ©   (2004-08-13 17:12) [1]


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

Про это не знаю (даже не уверен, что делается), а про остальное:
посмотри unit typinfo, в нём работа со всеми свойствами - тебе нужны string-овые... и компонент пишется ;-) ...


 
kesha ©   (2004-08-13 17:18) [2]

TsiLang

Feel free to visit siComponents home page at:
     http://www.sicomponents.com


 
Shc   (2004-08-13 17:34) [3]

> GuAV
Нет времени на ньюансы (хотя в общем алгоритм и принципы работы я уже представляю )
> kesha
Компотента-то, похоже, триальная.


 
Mim1 ©   (2004-08-13 18:27) [4]

Попробуйте использовать присутствующий в delphi  translation tools.


 
GuAV ©   (2004-08-13 19:44) [5]


> Попробуйте использовать присутствующий в delphi  translation
> tools.

ITE? А чем бы и нет. Он правда не обеспечивает:

> хранение в текстовом формате (ini, lng ...);

, а остальное - ок.


 
Anatoly Podgoretsky ©   (2004-08-13 20:22) [6]

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

Если же требование текстовых файлоы связано с передачей на перевод другим лицам, то можно написать не сложный обработчик rc файлов


 
GuAV ©   (2004-08-13 21:19) [7]

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

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


 
Anatoly Podgoretsky ©   (2004-08-13 21:46) [8]

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

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

S := s_ResourceString;

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


 
GuAV ©   (2004-08-13 21:58) [9]

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

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


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

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


 
Anatoly Podgoretsky ©   (2004-08-13 23:17) [11]

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

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


 
GuAV ©   (2004-08-13 23:25) [12]

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

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

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

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


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

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


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

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


 
GuAV ©   (2004-08-13 23:41) [15]


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


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

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

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


 
GuAV ©   (2004-08-13 23:46) [16]

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


 
Anatoly Podgoretsky ©   (2004-08-13 23:59) [17]

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


 
TUser ©   (2004-08-14 03:16) [18]

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


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

TUser ©   (14.08.04 03:16) [18]

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


 
TUser ©   (2004-08-14 08:34) [20]

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


 
Mim1 ©   (2004-08-14 13:30) [21]


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


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


 
GuAV ©   (2004-08-14 13:55) [22]


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

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

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

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

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


 
TUser ©   (2004-08-14 14:39) [23]


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

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


 
GuAV ©   (2004-08-14 20:08) [24]

Таки получилось.
http://delphimaster.net/view/4-1092430217/

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

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


 
Mim1 ©   (2004-08-16 08:19) [25]


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


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


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

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

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

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



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

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

Наверх




Память: 0.54 MB
Время: 0.037 c
1-1093008902
bang
2004-08-20 17:35
2004.09.05
рекурсия


8-1087536320
WondeRu
2004-06-18 09:25
2004.09.05
auxDIBImageLoadA для TBitmap? (glaux.dll)


3-1092212181
Koala
2004-08-11 12:16
2004.09.05
Помогите с ХП


1-1092939097
Константинов
2004-08-19 22:11
2004.09.05
Масштабирование Image


14-1092662759
Копир
2004-08-16 17:25
2004.09.05
НЛО протаранил Тунгусский метеорит и спас жизнь на Земле





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский