RxDBGrid перевод на лету

Модераторы: alexs, Модераторы

RxDBGrid перевод на лету

Сообщение Lucifer » 19.07.2019 17:41:25

Вот хочется... Чтобы срабатывал штатный транслятор при вызове SetDefaultLang. Потому что если грид уже на открытой форме лежит, то перевода, увы, нет.
Lucifer
постоялец
 
Сообщения: 121
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: RxDBGrid перевод на лету

Сообщение alexs » 19.07.2019 20:05:18

А штатный DBGrid переводится?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: RxDBGrid перевод на лету

Сообщение Lucifer » 20.07.2019 11:30:32

alexs писал(а):А штатный DBGrid переводится?


ХЗ. Не проверял. Штатный мне не подходит в силу своей ограниченности. Надо будет проверить.
Lucifer
постоялец
 
Сообщения: 121
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: RxDBGrid перевод на лету

Сообщение Lucifer » 23.07.2019 16:20:46

Проверил. Обидно, но у штатного грида тоже нет перевода заголовков на лету. Печально, будем придумывать. И таки да, говорят, что это баг. Я его даже в баг-трекере нашел.
Lucifer
постоялец
 
Сообщения: 121
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: RxDBGrid перевод на лету

Сообщение alexs » 23.07.2019 16:46:06

Да вручную сделай
там не сложно - в процедуре установки языка дёргай процедуры ручного перевода. Можно через событие lcl замутить
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: RxDBGrid перевод на лету

Сообщение Lucifer » 23.07.2019 19:08:17

Знать бы еще, в каком месте дергать...
З.Ы. Говорят, что баг закрыт в версии 2.1 транковой. Но я не хочу транковую, мне стабильность надо, а не ловля глюков. Хотя Grids.pas и DBGrid.pas от транковой взял - хрена, нет там перевода.
Lucifer
постоялец
 
Сообщения: 121
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: RxDBGrid перевод на лету

Сообщение zoltanleo » 24.07.2019 14:52:36

Lucifer писал(а):Вот хочется... Чтобы срабатывал штатный транслятор при вызове SetDefaultLang.

Используй ResourceString, в *.po-файликах они видны. Я как-то тренировался на досуге
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: RxDBGrid перевод на лету

Сообщение Lucifer » 24.07.2019 17:24:24

zoltanleo писал(а):Используй ResourceString, в *.po-файликах они видны. Я как-то тренировался на досуге

Именно они и используются. Но Columns.Title штатный транслятор игнорирует. Все остальное переводится на ура - метки, кнопки, хинты.
Lucifer
постоялец
 
Сообщения: 121
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: RxDBGrid перевод на лету

Сообщение alexs » 24.07.2019 17:56:56

Руками их заполняй из ResourceString
Вот пример из FBManager

Код: Выделить всё
procedure TfbmpgACLEditEditor.Localize;
begin
  inherited Localize;
  Caption:=sACLEdit;
  Label1.Caption:=sUsersGroups;
  edtPrint.Caption:=sPrint;
  ComboBox1.Items.Clear;
  ComboBox1.Items.Add(sUsersAndGroups);
  ComboBox1.Items.Add(sOnlyUsers);
  ComboBox1.Items.Add(sOnlyGroups);

  RxDBGrid1.ColumnByFieldName('UG_NAME').Title.Caption:=sNameUserRole;
  RxDBGrid1.ColumnByFieldName('OWNER_USER').Title.Caption:=sGrantOwnUser;

  RxDBGrid1.ColumnByFieldName('ogSelect').Title.Caption:=sSelect;
  RxDBGrid1.ColumnByFieldName('ogInsert').Title.Caption:=sInsert;

все констатны sXXX объявлены в секции ResourceString
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: RxDBGrid перевод на лету

Сообщение zoltanleo » 24.07.2019 18:38:50

alexs писал(а):Руками их заполняй из ResourceString

+1
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: RxDBGrid перевод на лету

Сообщение Lucifer » 24.07.2019 18:40:31

У-у-у... Это, конечно, выход из положения. Только через одно место. Я тут взял транслятор от 2.1 транкового, подсунул его в 2.0.2 свой. Штатный грид стал переводиться нормально. Буду искать, где оно там порыто.

Добавлено спустя 31 минуту 23 секунды:
Добавил в rxdbgrid процедуру в public
Код: Выделить всё
procedure TRxDbGridColumns.TranslateColumn(AGrid: TRxDBGrid);
begin
  AGrid.SetColumns(AGrid.Columns);
end;

Все переводит на лету. В транковой версии лазаря. Впрочем, в моем 2.0.2 тоже со скопированным lcltranslator.pas из транкового лазаря.
Lucifer
постоялец
 
Сообщения: 121
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: RxDBGrid перевод на лету

Сообщение zoltanleo » 24.07.2019 20:22:50

Lucifer писал(а):Я тут взял транслятор от 2.1 транкового, подсунул его в 2.0.2 свой.

Странный ты человек. Хочешь все исправления, но пользуешься стабильными версиями. Спрашиваешь решение проблемы, но не читаешь ссылки и умничаешь в ответ на дельные советы.

зы. Могу заверить, компоненты "сделать все" не существует.
зы2: На v 2.0.2 все тоже работает корректно...
Вложения
project1.zip
Lazarus 2.0.2 штатный, rxlib r6848
(127.73 КБ) Скачиваний: 1745
i18.gif
i18.gif (126.51 КБ) Просмотров: 53385
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: RxDBGrid перевод на лету

Сообщение Lucifer » 25.07.2019 09:43:46

Потому что мне в продакшн не надо глюков. Поэтому стабильные версии. У меня четыре сотни клиентов. Это во-первых. А во-вторых, ручное рисование заголовков из ресурс-стрингов - это как закат солнца вручную. Там, где можно обойтись десятком строк кода и потом не напрягаться, я буду руками рисовать заголовки? Ты это реально серьезно? Пару-тройку тыщ таблиц и вьюх? Может, конечно, это и путь джедая, но точно не мой путь.

В общем, проблема решена. На чем считаю тему исчерпанной, а вопрос - закрытым.
Lucifer
постоялец
 
Сообщения: 121
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

Re: RxDBGrid перевод на лету

Сообщение zoltanleo » 25.07.2019 12:41:18

Lucifer писал(а):Потому что мне в продакшн не надо глюков. Поэтому стабильные версии

Да уж, копировать модули из нестабильной версии в стабильную - куда уж дальше :lol:
Почитай 4х страничный топик про этот релиз. Тогда поймёшь, о чем речь.

Про все остальное, твой код - твои правила; я свое имхо высказал ранее
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: RxDBGrid перевод на лету

Сообщение Lucifer » 25.07.2019 12:53:44

Ну, модуль скопирован ровно один. И на работу остального кода он не влияет никак. Свое ИМХО я тоже высказал. Более того - предложил решение. Далее Леша сам будет решать - править или нет. Но мое решение более универсальное - не надо ничего нигде в коде писать руками. Достаточно только положить файлики .po и всем будет щасте.
Lucifer
постоялец
 
Сообщения: 121
Зарегистрирован: 05.01.2014 21:39:03
Откуда: Новороссийск

След.

Вернуться в RxLib

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru