Смена языка интерфейса в программе "на лету"

Вопросы программирования и использования среды Lazarus.

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

Re: Смена языка интерфейса в программе "на лету"

Сообщение Лекс Айрин » 26.02.2016 12:46:49

vitaly_l, Я, вообще-то, не думаю, что буду использовать больше 5 языков. Понадобится, поменяю подход.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4017
Зарегистрирован: 19.02.2013 16:54:51

Re: Смена языка интерфейса в программе "на лету"

Сообщение vitaly_l » 26.02.2016 12:50:07

Лекс Айрин писал(а):Я, вообще-то, не думаю, что буду использовать больше 5 языков. Понадобится, поменяю подход.

Так Вам на каждую переменную нужно строку в case составить, это накладно. Там есть какая-то возможность перебрать переменные в режиме цикла.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3042
Зарегистрирован: 31.01.2012 16:41:41

Re: Смена языка интерфейса в программе "на лету"

Сообщение Лекс Айрин » 26.02.2016 13:15:32

vitaly_l, зачем? Можно использовать inc файлы, а переводы описывать отдельно, да и я буду описывать единую процедуру смены языка для всей программы.... вариантов больше одного.

Как ни странно, но вариант с циклом более затратен... ведь язык может быть любой, а значит и перебор может быть относительно долгим. В идеале, проще связать каждый файл перевода с текстовой константой... надо будет поискать более простой способ. Чисто для интереса.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4017
Зарегистрирован: 19.02.2013 16:54:51

Re: Смена языка интерфейса в программе "на лету"

Сообщение zub » 26.02.2016 13:35:36

Править чужой исходник какбы не айс. Через неделю будет новая версия - будете занова править?
zub
долгожитель
 
Сообщения: 2185
Зарегистрирован: 14.11.2005 23:51:26

Re: Смена языка интерфейса в программе "на лету"

Сообщение Лекс Айрин » 26.02.2016 14:02:44

zub, возможно. А возможно просто форкну его.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4017
Зарегистрирован: 19.02.2013 16:54:51

Re: Смена языка интерфейса в программе "на лету"

Сообщение zub » 26.02.2016 15:48:51

>>vitaly_l, зачем? Можно использовать inc файлы, а переводы описывать отдельно, да и я буду описывать единую процедуру смены языка для всей программы.... вариантов больше одного.
Можно использовать какие хочешь файлы с любыми расширениями и содержимым. Смысл в том чтобы нигде не хардкодить перевод в программу, перевод осущестлять отдельно от исходников. Программа вообще ничего не должна знать что что ее будут переводить и какими средствами это будет делаться.
При использовании великов - это никогда не получится. При использовании средств поддерживаемых компилятором и средой - пожалуйста, только пометь нуждающееся в переводе места ResourceString и TTranslateString
Так получится действительно отделишь мух от котлет, а не просто сделаешь видимость что они разделены
zub
долгожитель
 
Сообщения: 2185
Зарегистрирован: 14.11.2005 23:51:26

Re: Смена языка интерфейса в программе "на лету"

Сообщение AndrewFG » 27.09.2017 11:16:29

Использую i18n и LCLTranslator все переводиться кроме DBGrid.Columns.
Хотя в сгенерированом PO файле все есть:

#: tmainform.dbgrid1.columns[0].title.caption
msgctxt "tmainform.dbgrid1.columns[0].title.caption"
msgid "TitleTest"
msgstr "Тест"

Но при переключении языка заголовки колонок остаются прежними. Если кто сталкивался подскажите как решить проблему.
AndrewFG
незнакомец
 
Сообщения: 5
Зарегистрирован: 27.08.2017 19:10:44

Re: Смена языка интерфейса в программе "на лету"

Сообщение vitaly_l » 27.09.2017 11:25:45

AndrewFG писал(а): i18n и LCLTranslator все переводиться кроме DBGrid.Columns.

Сделайте минимальный пример, только с одной DBGrid и укажите, что именно не переводится.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3042
Зарегистрирован: 31.01.2012 16:41:41

Re: Смена языка интерфейса в программе "на лету"

Сообщение AndrewFG » 27.09.2017 11:53:35

Взял пример из Lazarus: translation. Бросил на форму DBGrid, Добавил колонку, во файле translation_demo.ru.po записал перевод заголовка колонки. Меняю язык, заголовок колонки не реагирует.
На скриншоте все видно:

Изображение

Неужели никто не сталкивался, никому не нужно было переключение языка интерфейса ? Похоже придется лезть в дебри чужого кода (((
AndrewFG
незнакомец
 
Сообщения: 5
Зарегистрирован: 27.08.2017 19:10:44

Пред.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Majestic-12 [Bot], Yandex [Bot] и гости: 1

Рейтинг@Mail.ru