![]() |
|
|
![]()
|
|
| EGD |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
Здравствуйте,
есть вот такая функция. Она генерирует меню (один раз в конструкторе, присваивается FDictMenu), которое потом добавляется в основное меню при вызове оного (см. листинг 2).
Проблема следующая: при вызове меню tr("Dictionary") не заменяется переводом. Перевод в ts-файле существует. lupdate говорит, что новых строк нет. Переводы для других пунктов из этого же ts-файла заменяют оригинальные названия. Как эту проблему можно победить? Спасибо. Это сообщение отредактировал(а) EGD - 9.5.2012, 16:39 |
||||
|
|||||
| unclebenedict |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 30.3.2012 Репутация: нет Всего: нет |
Может глупый вопрос конечно, но lrelease вызывали ? И подключали ли готовый *.qm файл к проекту ? Не работает только в этом конкретном месте или вообще в проекте ? Так по коду вроде ошибок нет.
|
|||
|
||||
| EGD |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
Собирал в ферме. Готовый *.qm не подключал. Да, не работает конкретно для этой строки, остальные переводятся. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
EGD, удали qm перевода. запусти. если перевод у всех строк пропадет, то скопируй свежий перевод и перезапусти прогу. Если удаление qm не приведет к отключению перевода, то ищи его в другом месте.
|
|||
|
||||
| EGD |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
bsa, не помогло. Я собираю в OBS - тут все стерильно как в операционной. Да и перед уставкой пакета все его имеющиеся файлы сначало удаляются.
|
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
а можно фрагмент *.ts файла посмотреть - конкретно то место, где для класса SpellChecker переводится строка Dictionary?
- может он там так и переводится "Dictionary". - а может просто не переведён (именно оставлен без перевода). насколько я помню lupdate про новую строку скажет, только когда первый раз её в *.ts добавляет, а вот переведена имеющаяся в *.ts строка или нет он вроде как не отслеживает (хотя могу ошибаться). -------------------- Дорогу осилит идущий |
|||
|
||||
| EGD |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
_GRIN_, вот
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
А контекст у тебя правильный? По-моему, ранние версии qt (4.5 и ниже, но не уверен) не поддерживали контексты. А новые версии для каждого класса свой контекст имеют. Возможно в этом проблема (возникнет в случае, когда у тебя на компе старая версия Qt, а в сборке используется новая).
|
|||
|
||||
| EGD |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
установаленная и учавствующая в сборке версия Qt одна и так же - 4.8.1.
|
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
EGD, можешь тут выложить простенький хеловорд, который на твоей машине повоторяет этот баг?
Я у себя его попробую прогнать - а то идеи кончились =) -------------------- Дорогу осилит идущий |
|||
|
||||
| EGD |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
_GRIN_, вообще вот этот проект
http://code.google.com/p/vacuum-plugins/so...po=spellchecker для сборки нужен вот этот http://code.google.com/p/vacuum-im/source/browse/trunk Позже выложу отдельный проект с меню. Ошибка воспроизводится не только у меня. Это сообщение отредактировал(а) EGD - 16.5.2012, 09:10 |
|||
|
||||
| EGD |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
Удалось выяснить в чем была проблема: так как, меню создавалось в конструкторе, то на данном этапе переводы не успевали загрузиться и использовался англ вариант для строки. Когда я перенес создание меню из конструктора в другое место, то перевод подтянулся корректно.
Спасибо всем кто принял участие в решение данной проблемы. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
странно, обычно все объекты формы создаются в конструкторе формы. Особенно, когда форма в дизайнере сделана.
Ты случаем виртуальные какие методы не используешь в конструкторе? |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Переводы обычно загружаются в конструкторе Application.
Если здесь переводы загружаются в конструкоре MainWindow после вызова ui->setupUi(this); то меню останется не переведённым. Нужно загрузить переводы до setupUi() или вызвать ui->retranslateUi(this) после загрузки переводов. PS: здесь дизайнер не используется. Нужно загрузить переводы до создания gui или организовать самому retranslateUi(), особенно если предполагается возможность выбирать язык интерфейса. Это сообщение отредактировал(а) math64 - 18.5.2012, 07:28 |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |