Страница 1 из 2
RxDBGrid перевод на лету
Добавлено:
19.07.2019 17:41:25
Lucifer
Вот хочется... Чтобы срабатывал штатный транслятор при вызове SetDefaultLang. Потому что если грид уже на открытой форме лежит, то перевода, увы, нет.
Re: RxDBGrid перевод на лету
Добавлено:
19.07.2019 20:05:18
alexs
А штатный DBGrid переводится?
Re: RxDBGrid перевод на лету
Добавлено:
20.07.2019 11:30:32
Lucifer
alexs писал(а):А штатный DBGrid переводится?
ХЗ. Не проверял. Штатный мне не подходит в силу своей ограниченности. Надо будет проверить.
Re: RxDBGrid перевод на лету
Добавлено:
23.07.2019 16:20:46
Lucifer
Проверил. Обидно, но у штатного грида тоже нет перевода заголовков на лету. Печально, будем придумывать. И таки да, говорят, что это баг. Я его даже в баг-трекере нашел.
Re: RxDBGrid перевод на лету
Добавлено:
23.07.2019 16:46:06
alexs
Да вручную сделай
там не сложно - в процедуре установки языка дёргай процедуры ручного перевода. Можно через событие lcl замутить
Re: RxDBGrid перевод на лету
Добавлено:
23.07.2019 19:08:17
Lucifer
Знать бы еще, в каком месте дергать...
З.Ы. Говорят, что баг закрыт в версии 2.1 транковой. Но я не хочу транковую, мне стабильность надо, а не ловля глюков. Хотя Grids.pas и DBGrid.pas от транковой взял - хрена, нет там перевода.
Re: RxDBGrid перевод на лету
Добавлено:
24.07.2019 14:52:36
zoltanleo
Lucifer писал(а):Вот хочется... Чтобы срабатывал штатный транслятор при вызове SetDefaultLang.
Используй ResourceString, в *.po-файликах они видны. Я как-то
тренировался на досуге
Re: RxDBGrid перевод на лету
Добавлено:
24.07.2019 17:24:24
Lucifer
zoltanleo писал(а):Используй ResourceString, в *.po-файликах они видны. Я как-то тренировался на досуге
Именно они и используются. Но Columns.Title штатный транслятор игнорирует. Все остальное переводится на ура - метки, кнопки, хинты.
Re: RxDBGrid перевод на лету
Добавлено:
24.07.2019 17:56:56
alexs
Руками их заполняй из 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
Re: RxDBGrid перевод на лету
Добавлено:
24.07.2019 18:38:50
zoltanleo
alexs писал(а):Руками их заполняй из ResourceString
+1
Re: RxDBGrid перевод на лету
Добавлено:
24.07.2019 18:40:31
Lucifer
У-у-у... Это, конечно, выход из положения. Только через одно место. Я тут взял транслятор от 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 из транкового лазаря.
Re: RxDBGrid перевод на лету
Добавлено:
24.07.2019 20:22:50
zoltanleo
Lucifer писал(а):Я тут взял транслятор от 2.1 транкового, подсунул его в 2.0.2 свой.
Странный ты человек. Хочешь все исправления, но пользуешься стабильными версиями. Спрашиваешь решение проблемы, но не читаешь ссылки и умничаешь в ответ на дельные советы.
зы. Могу заверить, компоненты "сделать все" не существует.
зы2: На v 2.0.2 все тоже работает корректно...
Re: RxDBGrid перевод на лету
Добавлено:
25.07.2019 09:43:46
Lucifer
Потому что мне в продакшн не надо глюков. Поэтому стабильные версии. У меня четыре сотни клиентов. Это во-первых. А во-вторых, ручное рисование заголовков из ресурс-стрингов - это как закат солнца вручную. Там, где можно обойтись десятком строк кода и потом не напрягаться, я буду руками рисовать заголовки? Ты это реально серьезно? Пару-тройку тыщ таблиц и вьюх? Может, конечно, это и путь джедая, но точно не мой путь.
В общем, проблема решена. На чем считаю тему исчерпанной, а вопрос - закрытым.
Re: RxDBGrid перевод на лету
Добавлено:
25.07.2019 12:41:18
zoltanleo
Lucifer писал(а):Потому что мне в продакшн не надо глюков. Поэтому стабильные версии
Да уж, копировать модули из нестабильной версии в стабильную - куда уж дальше
Почитай
4х страничный топик про этот релиз. Тогда поймёшь, о чем речь.
Про все остальное, твой код - твои правила; я свое имхо высказал ранее
Re: RxDBGrid перевод на лету
Добавлено:
25.07.2019 12:53:44
Lucifer
Ну, модуль скопирован ровно один. И на работу остального кода он не влияет никак. Свое ИМХО я тоже высказал. Более того - предложил решение. Далее Леша сам будет решать - править или нет. Но мое решение более универсальное - не надо ничего нигде в коде писать руками. Достаточно только положить файлики .po и всем будет щасте.