PDA

View Full Version : Displaying Chnise fonts in GUI



yuvarajragupathi
25th October 2010, 15:33
Hi,

My application should support different languages. Currently i am trying with Japanese. But it is not displayed. My code is

main.cpp


#include <QApplication>
#include <QTranslator>
#include "form.h"
int main(int argc, char *argv[])
{

QApplication app(argc, argv);
QTranslator translator;
translator.load(":/translations/i18n_jp.qm");
qApp->installTranslator(&translator);
Form *window = new Form ;
window->show();
return app.exec();
}


form.cpp

#include "form.h"
#include "ui_form.h"

Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
ui->label->setText(tr("Hello"));
this->setWindowTitle(tr("Internationalization Example"));
}

Form::~Form()
{
delete ui;
}


form.h


#ifndef FORM_H
#define FORM_H

#include <QWidget>

namespace Ui {
class Form;
}

class Form : public QWidget
{
Q_OBJECT

public:
explicit Form(QWidget *parent = 0);
~Form();

private:
Ui::Form *ui;
};

#endif // FORM_H


pro file


#-------------------------------------------------
#
# Project created by QtCreator 2010-10-25T14:51:37
#
#-------------------------------------------------

HEADERS = mainwindow.h \
form.h
SOURCES += main.cpp\
mainwindow.cpp \
form.cpp
RESOURCES += Chinise.qrc
TRANSLATIONS += translations/i18n_ar.ts \
translations/i18n_cs.ts \
translations/i18n_de.ts \
translations/i18n_el.ts \
translations/i18n_en.ts \
translations/i18n_eo.ts \
translations/i18n_fr.ts \
translations/i18n_it.ts \
translations/i18n_jp.ts \
translations/i18n_ko.ts \
translations/i18n_no.ts \
translations/i18n_ru.ts \
translations/i18n_sv.ts \
translations/i18n_zh.ts

FORMS += \
form.ui



please help me

genjix
25th October 2010, 16:26
Try this:
translator.load("translations/i18n_jp");

And make sure you convert the .ts files from QLinguist by clicking File->Release

yuvarajragupathi
26th October 2010, 05:12
It is working with below mentioned code. If i create UI through designer or some thing else ,that time it is not working.

mainwindow.cpp

/************************************************** **************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
************************************************** **************************/

#include <QtGui>

#include "mainwindow.h"

MainWindow::MainWindow()
{
centralWidget = new QWidget;
setCentralWidget(centralWidget);

createGroupBox();

listWidget = new QListWidget;
for (int i = 0; i<4; ++i)
listWidget->addItem(tr("First"));

QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(groupBox);
mainLayout->addWidget(listWidget);
centralWidget->setLayout(mainLayout);

exitAction = new QAction(tr("E&xit"), this);
connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));

fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->setPalette(QPalette(Qt::red));
fileMenu->addAction(exitAction);

setWindowTitle(tr("Language: %1").arg(tr("English")));
statusBar()->showMessage(tr("Internationalization Example"));

if (tr("LTR") == "RTL")
setLayoutDirection(Qt::RightToLeft);

}

void MainWindow::createGroupBox()
{
groupBox = new QGroupBox(tr("View"));
perspectiveRadioButton = new QRadioButton(tr("Perspective"));
isometricRadioButton = new QRadioButton(tr("Isometric"));
obliqueRadioButton = new QRadioButton(tr("Oblique"));
perspectiveRadioButton->setChecked(true);

QVBoxLayout *groupBoxLayout = new QVBoxLayout;
groupBoxLayout->addWidget(perspectiveRadioButton);
groupBoxLayout->addWidget(isometricRadioButton);
groupBoxLayout->addWidget(obliqueRadioButton);
groupBox->setLayout(groupBoxLayout);
}


mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QVBoxLayout>

class QAction;
class QGroupBox;
class QLabel;
class QListWidget;
class QMenu;
class QRadioButton;

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
MainWindow();

private:
void createGroupBox();

QWidget *centralWidget;
QLabel *label;
QGroupBox *groupBox;
QListWidget *listWidget;
QRadioButton *perspectiveRadioButton;
QRadioButton *isometricRadioButton;
QRadioButton *obliqueRadioButton;
QMenu *fileMenu;
QAction *exitAction;

};

#endif
main.cpp

#include <QApplication>
#include "mainwindow.h"
#include <QTranslator>
#include "form.h"
int main(int argc, char *argv[])
{

QApplication app(argc, argv);
QTranslator translator;
translator.load(":/translations/i18n_jp.qm");
qApp->installTranslator(&translator);
MainWindow *window = new MainWindow ;
window->show();
return app.exec();
}


Please help me

Thanks

Yuvaraj