Введение в разработку приложений на платформе Atom/MeeGo. Граничин О.Н - 119 стр.

UptoLike

119
s->clear();
resetTransform();
m_svgItem = new QGraphicsSvgItem(file.fileName());
m_svgItem->setFlags(QGraphicsItem::ItemClipsToShape);
m_svgItem->setCacheMode(QGraphicsItem::NoCache);
m_svgItem->setZValue(0);
m_backgroundItem = new QGraphicsRectItem(m_svgItem->boundingRect());
m_backgroundItem->setBrush(Qt::white);
m_backgroundItem->setPen(Qt::NoPen);
m_backgroundItem->setVisible(drawBackground);
m_backgroundItem->setZValue(-1);
m_outlineItem = new QGraphicsRectItem(m_svgItem->boundingRect());
QPen outline(Qt::black, 2, Qt::DashLine);
outline.setCosmetic(true);
m_outlineItem->setPen(outline);
m_outlineItem->setBrush(Qt::NoBrush);
m_outlineItem->setVisible(drawOutline);
m_outlineItem->setZValue(1);
s->addItem(m_backgroundItem);
s->addItem(m_svgItem);
s->addItem(m_outlineItem);
s->setSceneRect(m_outlineItem->boundingRect().adjusted(-10, -10, 10, 10));
}
9.5.3.6. Интернационализация приложения
В учебных целях в следующем приложении реализуется перевод на русский и английские языки.
Для того чтобы осуществить перевод приложения необходимо выполнить следующие шаги:
· Перейти в корень проекта.
> cd /home/user/qt/projects/lab_07
· Вызвать утилиту lupdate с указанием проектного файла.
> lupdate ./lab_07.pro
В результате вызова данной утилиты мы получим набор из двух файлов: lab07_en.ts и lab07_ru.ts,
которые будут содержать маркированные вызовами функции tr() и макроса QT_TR*_NOOP() литерные
тексты, содержавшиеся исходном С++ коде.
· Осуществить перевод маркированного литерного текстадля этого необходимо либо
отредактировать получившийся .TS файл (который содержит правильный XML), либо
использовать утилиту Qt Linguist (Pис. 9.5.6). Мы воспользуемся утилитой.
· В Qt Linguist необходимо открыть имеющиеся .TS файлы и осуществить перевод каждой фразы.
· Вызвать утилиту lrelease для того чтобы получить легковесный файл с сообщениями (.QM файл).
Данный файл пригоден только для конечного использования.
· Скопируем получившиеся .QM файлы в пути, указанные в ресурсном файле
(“./files/translations/lab07_en.qm
и./files/translations/lab07_ru.qm”).
Подключим переведённые файлы, для этого в главном файле “main.cpp” добавим строки
QTranslator appTranslator;
appTranslator.load("lab09_en.qm",":/files/translations/");
app.installTranslator(&appTranslator);
window.setTranslator(&appTranslator);