В моем приложении я делаю QApplication на подклассы для многих вещей, таких как централизованная обработка исключений, соединение с базой данных SQLite, инициализация настроек по умолчанию (при необходимости) с помощью QSettings. И, в частности, загрузка переводов. Я делаю это в конструкторе, и когда я делаю:
installTranslator (&translator);
qDebug() << "Translation from PApplication:"
<< translate ("PAddFormWindow", "Dialog");
Верну очень правильный перевод (на русский). Но в моем приложении я вижу все на английском. Что еще хуже, я вижу это по-английски, даже когда пытаюсь получить перевод сразу после инициализации объекта приложения:
PApplication a ("PCorrect", argc, argv);
qDebug() << "Translation from void main():"
<< a.translate ("PAddFormWindow", "Dialog");
Так почему же это не сработает? Это потому, что я делаю это в конструкторе? Следует также отметить, что класс PApplication объявлен и определен не в самом приложении, а в динамически загружаемой библиотеке (я разрабатываю набор приложений). И что моей платформой является Windows XP с Qt 4.7.0.