Здравствуйте.
Я в ауте... Вводные:
Имеется приложение, оно работает
Возник вопрос интернационализации. Имеется файл ts, все строки, выдающиеся пользователю обернуты в tr. Реализовал динамическую смену языка по требованию пользователя.
Проблема:
В классе, насленике QMainWindow, в одном из методов ругаемся пользователю вот так:
QMessageBox::question(this, "MapConvertor"
,tr("Do you really want to quit?")
,QMessageBox::Yes | QMessageBox::No
,QMessageBox::No)
Запускаем в аглицком варианте перевода - все хорошо. Сменяем на русский - сообщение Do you really want to quit? выдается на аглицком. Хотя в лингвисте переведен. Даже в ts заглянул. При дальнейших раскопках видно, что это происходит со ВСЕМИ подобными вызовами. А теперь внимание: если написать так
QMessageBox::question(this, "MapConvertor"
,QObject::tr("Do you really want to quit?") // <----
,QMessageBox::Yes | QMessageBox::No
,QMessageBox::No)
то все работает как надо, переводится. Ощущение что дело где то контексте.
Весь день пытался понять в чем дело. Если кто сталкивался, пожалуйста, подскажите, где я дурак.