Страница 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 и всем будет щасте.