Название: Translator не переводит один исходник Отправлено: GraninDm от Ноябрь 16, 2015, 11:03 Добрый день!
Проблема в том, что не переводится один cpp. Файл переводов подгружается. В linguist перевод виден и переведен. Код: BaseEditDocWidget *w = new BaseEditDocWidget(); // Переводится Куда рыть? Название: Re: Translator не переводит один исходник Отправлено: gil9red от Ноябрь 16, 2015, 11:23 Переводятся ведь строки в tr() а так вообще не понятно, что у вас там внутри и переведено ли вообще для FPEditor
Название: Re: Translator не переводит один исходник Отправлено: GraninDm от Ноябрь 16, 2015, 11:29 Все там в tr.
Я же написал: "В linguist перевод виден и переведен." Цитировать void FPEditor::setupWidgets() { QGridLayout *lay = new QGridLayout(); QLabel *label = new QLabel(tr("Number")); Название: Re: Translator не переводит один исходник Отправлено: Bepec от Ноябрь 16, 2015, 11:47 Всё там правильно написано, ошибок нет, я идеален, зачем вам код, сами догадайтесь обо всём, наверно это Qt багает!!!
PS сарказм Название: Re: Translator не переводит один исходник Отправлено: GraninDm от Ноябрь 16, 2015, 12:14 Какой код еще нужен? Я выложу...
Сейчас удалил весь перевод. Запустил lupdate Перевел две строки из FPEditor Запустил lrelease Файл qm создался Эти две строки там есть. translator.load возвращает true. Название: Re: Translator не переводит один исходник Отправлено: GraninDm от Ноябрь 16, 2015, 13:06 Код: QLabel *label = new QLabel(QApplication::translate("test", "Number")); Код: QLabel *label = new QLabel(QObject::tr("Number")); Код: QLabel *label = new QLabel(tr("Number")); Наследование такое FPEditor::FPEditor(QWidget *parent) : BaseDocEditor(parent) BaseDocEditor::BaseDocEditor(QWidget *parent) : QWidget(parent) А так подозреваю, что это происходит из-за того что FPEditor не унаследован напрямую от класса qt. Что в этом случае делать? Дополню... Даже так работает Код: QLabel *label = new QLabel(BaseDocEditor::tr("Number")); Название: Re: Translator не переводит один исходник Отправлено: gil9red от Ноябрь 16, 2015, 14:30 А как выглядит FPEditor.h?
Название: Re: Translator не переводит один исходник Отправлено: GraninDm от Ноябрь 16, 2015, 14:47 Я понял в чем была моя проблема.
В объявлении FPEditor не было Q_OBJECT Из-за этого this->metaObject()->className() не устанавливался. Вывод в конструкторах без Q_OBJECT BaseDocEditor::BaseDocEditor(QWidget*) this->metaObject()->className() BaseDocEditor FPEditor::FPEditor(QWidget*) this->metaObject()->className() BaseDocEditor Соответственно транслятор искал другой контекст А с Q_OBJECT BaseDocEditor::BaseDocEditor(QWidget*) this->metaObject()->className() BaseDocEditor FPEditor::FPEditor(QWidget*) this->metaObject()->className() FPEditor Все заработало. Название: Re: Translator не переводит один исходник Отправлено: Bepec от Ноябрь 16, 2015, 14:53 А ответ на ваш вопрос -
Цитировать "Какой код еще нужен?" ВЕСЬ! :DНазвание: Re: Translator не переводит один исходник Отправлено: gil9red от Ноябрь 16, 2015, 15:39 Я понял в чем была моя проблема. В объявлении FPEditor не было Q_OBJECT Из-за этого this->metaObject()->className() не устанавливался. Вывод в конструкторах без Q_OBJECT BaseDocEditor::BaseDocEditor(QWidget*) this->metaObject()->className() BaseDocEditor FPEditor::FPEditor(QWidget*) this->metaObject()->className() BaseDocEditor Соответственно транслятор искал другой контекст А с Q_OBJECT BaseDocEditor::BaseDocEditor(QWidget*) this->metaObject()->className() BaseDocEditor FPEditor::FPEditor(QWidget*) this->metaObject()->className() FPEditor Все заработало. А я вот и засомневался влияет ли наличие Q_OBJECT кроме сигналов/слотов на на трансляцию или нет :) Название: Re: Translator не переводит один исходник Отправлено: GraninDm от Ноябрь 16, 2015, 16:41 А так понял Q_OBJECT влияет на metaObject.
А QTranslator берет контекст перевода из metaObject()->className(). Название: Re: Translator не переводит один исходник Отправлено: lit-uriy от Ноябрь 18, 2015, 07:24 GraninDm, теоретически, ты это должен был заметить в Лингвисте, он же там по контекстам группирует. Теоретически - потому что я твою ситуацию не проверял.
Название: Re: Translator не переводит один исходник Отправлено: GraninDm от Ноябрь 18, 2015, 12:59 В Лингвисте контекст был правильный.
|