summaryrefslogtreecommitdiffstats
path: root/examples/i18n
diff options
context:
space:
mode:
Diffstat (limited to 'examples/i18n')
-rw-r--r--examples/i18n/README9
-rw-r--r--examples/i18n/i18n.doc34
-rw-r--r--examples/i18n/i18n.pro23
-rw-r--r--examples/i18n/main.cpp171
-rw-r--r--examples/i18n/mywidget.cpp73
-rw-r--r--examples/i18n/mywidget.h33
-rw-r--r--examples/i18n/mywidget_ar.qmbin0 -> 681 bytes
-rw-r--r--examples/i18n/mywidget_ar.ts73
-rw-r--r--examples/i18n/mywidget_cs.qmbin0 -> 818 bytes
-rw-r--r--examples/i18n/mywidget_cs.ts75
-rw-r--r--examples/i18n/mywidget_de.qmbin0 -> 880 bytes
-rw-r--r--examples/i18n/mywidget_de.ts75
-rw-r--r--examples/i18n/mywidget_el.qmbin0 -> 832 bytes
-rw-r--r--examples/i18n/mywidget_el.ts68
-rw-r--r--examples/i18n/mywidget_en.qmbin0 -> 337 bytes
-rw-r--r--examples/i18n/mywidget_en.ts68
-rw-r--r--examples/i18n/mywidget_eo.qmbin0 -> 835 bytes
-rw-r--r--examples/i18n/mywidget_eo.ts72
-rw-r--r--examples/i18n/mywidget_fr.qmbin0 -> 884 bytes
-rw-r--r--examples/i18n/mywidget_fr.ts68
-rw-r--r--examples/i18n/mywidget_it.qmbin0 -> 763 bytes
-rw-r--r--examples/i18n/mywidget_it.ts72
-rw-r--r--examples/i18n/mywidget_jp.qmbin0 -> 738 bytes
-rw-r--r--examples/i18n/mywidget_jp.ts68
-rw-r--r--examples/i18n/mywidget_ko.qmbin0 -> 738 bytes
-rw-r--r--examples/i18n/mywidget_ko.ts68
-rw-r--r--examples/i18n/mywidget_no.qmbin0 -> 830 bytes
-rw-r--r--examples/i18n/mywidget_no.ts68
-rw-r--r--examples/i18n/mywidget_ru.qmbin0 -> 799 bytes
-rw-r--r--examples/i18n/mywidget_ru.ts68
-rw-r--r--examples/i18n/mywidget_zh.qmbin0 -> 706 bytes
-rw-r--r--examples/i18n/mywidget_zh.ts68
32 files changed, 1254 insertions, 0 deletions
diff --git a/examples/i18n/README b/examples/i18n/README
new file mode 100644
index 000000000..2f740f45b
--- /dev/null
+++ b/examples/i18n/README
@@ -0,0 +1,9 @@
+To add a language "XX":
+
+ 1. Add mywidget_XX.ts to the TRANSLATIONS entry of i18n.pro.
+ 2. Run 'lupdate i18n.pro'.
+ 3. Run 'linguist mywidget_XX.ts' and translate the strings.
+ 4. Run 'lrelease i18n.pro'.
+ 5. Run './i18n XX'.
+
+Contributions are welcome. Send them to [email protected].
diff --git a/examples/i18n/i18n.doc b/examples/i18n/i18n.doc
new file mode 100644
index 000000000..3f31627ca
--- /dev/null
+++ b/examples/i18n/i18n.doc
@@ -0,0 +1,34 @@
+/*
+*/
+/*! \page i18n-example.html
+
+ \ingroup examples
+ \title Internationalization
+
+ This example shows how to internationalize applications. Start it with
+ <pre># i18n de</pre>
+ to get a german version and with
+ <pre># i18n en</pre>
+ to get the english version.
+
+ Refer also to <a href="i18n.html">the internationalization documentation</a>.
+
+ <hr>
+
+ Header file:
+
+ \include i18n/mywidget.h
+
+ <hr>
+
+ Implementation:
+
+ \include i18n/mywidget.cpp
+
+ <hr>
+
+ Main:
+
+ \include i18n/main.cpp
+*/
+
diff --git a/examples/i18n/i18n.pro b/examples/i18n/i18n.pro
new file mode 100644
index 000000000..f0b84e247
--- /dev/null
+++ b/examples/i18n/i18n.pro
@@ -0,0 +1,23 @@
+TEMPLATE = app
+TARGET = i18n
+
+CONFIG += qt warn_on release
+DEPENDPATH = ../../include
+
+REQUIRES = full-config
+
+HEADERS = mywidget.h
+SOURCES = main.cpp \
+ mywidget.cpp
+TRANSLATIONS = mywidget_cs.ts \
+ mywidget_de.ts \
+ mywidget_el.ts \
+ mywidget_en.ts \
+ mywidget_eo.ts \
+ mywidget_fr.ts \
+ mywidget_it.ts \
+ mywidget_jp.ts \
+ mywidget_ko.ts \
+ mywidget_no.ts \
+ mywidget_ru.ts \
+ mywidget_zh.ts
diff --git a/examples/i18n/main.cpp b/examples/i18n/main.cpp
new file mode 100644
index 000000000..2c9fb2fc3
--- /dev/null
+++ b/examples/i18n/main.cpp
@@ -0,0 +1,171 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of an example program for TQt. This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include <qapplication.h>
+#include <qtranslator.h>
+#include <qfileinfo.h>
+#include <qmessagebox.h>
+#include <qcheckbox.h>
+#include <qvbox.h>
+#include <qlayout.h>
+#include <qbuttongroup.h>
+#include <qpushbutton.h>
+#include <qsignalmapper.h>
+#include <qtextcodec.h>
+#include <stdlib.h>
+
+#if defined(Q_OS_UNIX)
+#include <unistd.h>
+#endif
+
+#include "mywidget.h"
+
+//#define USE_I18N_FONT
+
+class TQVDialog : public TQDialog {
+public:
+ TQVDialog(TQWidget *parent=0, const char *name=0, bool modal=FALSE,
+ WFlags f=0) : TQDialog(parent,name,modal,f)
+ {
+ TQVBoxLayout* vb = new TQVBoxLayout(this,8);
+ vb->setAutoAdd(TRUE);
+ hb = 0;
+ sm = new TQSignalMapper(this);
+ connect(sm,SIGNAL(mapped(int)),this,SLOT(done(int)));
+ }
+ void addButtons( const TQString& cancel=TQString::null,
+ const TQString& ok=TQString::null,
+ const TQString& mid1=TQString::null,
+ const TQString& mid2=TQString::null,
+ const TQString& mid3=TQString::null)
+ {
+ addButton(ok.isNull() ? TQObject::tr("OK") : ok, 1);
+ if ( !mid1.isNull() ) addButton(mid1,2);
+ if ( !mid2.isNull() ) addButton(mid2,3);
+ if ( !mid3.isNull() ) addButton(mid3,4);
+ addButton(cancel.isNull() ? TQObject::tr("Cancel") : cancel, 0);
+ }
+
+ void addButton( const TQString& text, int result )
+ {
+ if ( !hb )
+ hb = new TQHBox(this);
+ TQPushButton *c = new TQPushButton(text, hb);
+ sm->setMapping(c,result);
+ connect(c,SIGNAL(clicked()),sm,SLOT(map()));
+ }
+
+private:
+ TQSignalMapper *sm;
+ TQHBox *hb;
+};
+
+MyWidget* showLang(TQString lang)
+{
+
+ static TQTranslator *translator = 0;
+
+ qApp->setPalette(TQPalette(TQColor(220-rand()%64,220-rand()%64,220-rand()%64)));
+
+ lang = "mywidget_" + lang + ".qm";
+ TQFileInfo fi( lang );
+
+ if ( !fi.exists() ) {
+ TQMessageBox::warning( 0, "File error",
+ TQString("Cannot find translation for language: "+lang+
+ "\n(try eg. 'de', 'ko' or 'no')") );
+ return 0;
+ }
+ if ( translator ) {
+ qApp->removeTranslator( translator );
+ delete translator;
+ }
+ translator = new TQTranslator( 0 );
+ translator->load( lang, "." );
+ qApp->installTranslator( translator );
+ MyWidget *m = new MyWidget;
+ m->setCaption("TQt Example - i18n - " + m->caption() );
+ return m;
+}
+
+int main( int argc, char** argv )
+{
+ TQApplication app( argc, argv );
+
+ const char* qm[]=
+ { "ar", "cs", "de", "el", "en", "eo", "fr", "it", "jp", "ko", "no", "ru", "zh", 0 };
+
+#if defined(Q_OS_UNIX)
+ srand( getpid() << 2 );
+#endif
+
+ TQString lang;
+ if ( argc == 2 )
+ lang = argv[1];
+
+ if ( argc != 2 || lang == "all" ) {
+ TQVDialog dlg(0,0,TRUE);
+ TQCheckBox* qmb[sizeof(qm)/sizeof(qm[0])];
+ int r;
+ if ( lang == "all" ) {
+ r = 2;
+ } else {
+ TQButtonGroup *bg = new TQButtonGroup(4,TQt::Vertical,"Choose Locales",&dlg);
+ TQString loc = TQTextCodec::locale();
+ for ( int i=0; qm[i]; i++ ) {
+ qmb[i] = new TQCheckBox((const char*)qm[i],bg);
+ qmb[i]->setChecked( loc == qm[i] );
+ }
+ dlg.addButtons("Cancel","OK","All");
+ r = dlg.exec();
+ }
+ if ( r ) {
+ TQRect screen = qApp->desktop()->availableGeometry();
+ bool tight = screen.width() < 1024;
+ int x=screen.left()+5;
+ int y=screen.top()+25;
+ for ( int i=0; qm[i]; i++ ) {
+ if ( r == 2 || qmb[i]->isChecked() ) {
+ MyWidget* w = showLang((const char*)qm[i]);
+
+ if( w == 0 ) exit( 0 );
+ TQObject::connect(w, SIGNAL(closed()), qApp, SLOT(tquit()));
+ w->setGeometry(x,y,197,356);
+ w->show();
+ if ( tight ) {
+ x += 8;
+ y += 8;
+ } else {
+ x += 205;
+ if ( x > 1000 ) {
+ x = 5;
+ y += 384;
+ }
+ }
+ }
+ }
+ } else {
+ exit( 0 );
+ }
+ } else {
+ TQString lang = argv[1];
+ TQWidget* m = showLang(lang);
+ app.setMainWidget( m );
+ m->setCaption("TQt Example - i18n");
+ m->show();
+ }
+
+#ifdef USE_I18N_FONT
+ memorymanager->savePrerenderedFont(font.handle(),FALSE);
+#endif
+
+ // While we run "all", kill them all
+ return app.exec();
+
+}
diff --git a/examples/i18n/mywidget.cpp b/examples/i18n/mywidget.cpp
new file mode 100644
index 000000000..94e21144e
--- /dev/null
+++ b/examples/i18n/mywidget.cpp
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of an example program for TQt. This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include <qbuttongroup.h>
+#include <qradiobutton.h>
+#include <qlabel.h>
+#include <qlistbox.h>
+#include <qcombobox.h>
+#include <qlabel.h>
+#include <qhbox.h>
+#include <qvbox.h>
+#include <qaccel.h>
+#include <qpopupmenu.h>
+#include <qmenubar.h>
+#include <qstatusbar.h>
+#include <qapplication.h>
+
+#include "mywidget.h"
+
+MyWidget::MyWidget( TQWidget* parent, const char* name )
+ : TQMainWindow( parent, name )
+{
+ TQVBox* central = new TQVBox(this);
+ central->setMargin( 5 );
+ central->setSpacing( 5 );
+ setCentralWidget(central);
+
+ TQPopupMenu* file = new TQPopupMenu(this);
+ file->insertItem( tr("E&xit"), qApp, SLOT(tquit()),
+ TQAccel::stringToKey(tr("Ctrl+Q")) );
+ menuBar()->insertItem( tr("&File"), file );
+
+ setCaption( tr( "Internationalization Example" ) );
+
+ TQString l;
+ statusBar()->message( tr("Language: English") );
+
+ ( void )new TQLabel( tr( "The Main Window" ), central );
+
+ TQButtonGroup* gbox = new TQButtonGroup( 1, TQGroupBox::Horizontal,
+ tr( "View" ), central );
+ (void)new TQRadioButton( tr( "Perspective" ), gbox );
+ (void)new TQRadioButton( tr( "Isometric" ), gbox );
+ (void)new TQRadioButton( tr( "Oblique" ), gbox );
+
+ initChoices(central);
+}
+
+static const char* choices[] = {
+ QT_TRANSLATE_NOOP( "MyWidget", "First" ),
+ QT_TRANSLATE_NOOP( "MyWidget", "Second" ),
+ QT_TRANSLATE_NOOP( "MyWidget", "Third" ),
+ 0
+};
+
+void MyWidget::initChoices(TQWidget* parent)
+{
+ TQListBox* lb = new TQListBox( parent );
+ for ( int i = 0; choices[i]; i++ )
+ lb->insertItem( tr( choices[i] ) );
+}
+
+void MyWidget::closeEvent(TQCloseEvent* e)
+{
+ TQWidget::closeEvent(e);
+ emit closed();
+}
diff --git a/examples/i18n/mywidget.h b/examples/i18n/mywidget.h
new file mode 100644
index 000000000..964e05c49
--- /dev/null
+++ b/examples/i18n/mywidget.h
@@ -0,0 +1,33 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of an example program for TQt. This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#ifndef MYWIDGET_H
+#define MYWIDGET_H
+
+#include <qmainwindow.h>
+#include <qstring.h>
+
+class MyWidget : public TQMainWindow
+{
+ Q_OBJECT
+
+public:
+ MyWidget( TQWidget* parent=0, const char* name = 0 );
+
+signals:
+ void closed();
+
+protected:
+ void closeEvent(TQCloseEvent*);
+
+private:
+ static void initChoices(TQWidget* parent);
+};
+
+#endif
diff --git a/examples/i18n/mywidget_ar.qm b/examples/i18n/mywidget_ar.qm
new file mode 100644
index 000000000..a8afc9d5e
--- /dev/null
+++ b/examples/i18n/mywidget_ar.qm
Binary files differ
diff --git a/examples/i18n/mywidget_ar.ts b/examples/i18n/mywidget_ar.ts
new file mode 100644
index 000000000..837417ff5
--- /dev/null
+++ b/examples/i18n/mywidget_ar.ts
@@ -0,0 +1,73 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name>MyWidget</name>
+ <message>
+ <source>E&amp;xit...</source>
+ <translation type="obsolete">&amp;Esci...</translation>
+ </message>
+ <message>
+ <source>First</source>
+ <translation>أ�^�?</translation>
+ </message>
+ <message>
+ <source>Internationalization Example</source>
+ <translation>�?ثا�? ا�?تد�^�S�?</translation>
+ </message>
+ <message>
+ <source>Isometric</source>
+ <translation>�?ت�?اث�?</translation>
+ </message>
+ <message>
+ <source>Language: English</source>
+ <translation>ا�?�?غة: ا�?عرب�Sة</translation>
+ </message>
+ <message>
+ <source>Oblique</source>
+ <translation>�?ص�?ت</translation>
+ </message>
+ <message>
+ <source>Perspective</source>
+ <translation>�?�?ظ�^ر</translation>
+ </message>
+ <message>
+ <source>Second</source>
+ <translation type="unfinished">ثا�?�?</translation>
+ </message>
+ <message>
+ <source>The Main Window</source>
+ <translation type="unfinished">ا�?�?ا�?ذة ا�?رئ�Sس�Sة</translation>
+ </message>
+ <message>
+ <source>Third</source>
+ <translation type="unfinished">ثا�?ث</translation>
+ </message>
+ <message>
+ <source>View</source>
+ <translation type="unfinished">�?رئ�?</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
+
diff --git a/examples/i18n/mywidget_cs.qm b/examples/i18n/mywidget_cs.qm
new file mode 100644
index 000000000..f95090d63
--- /dev/null
+++ b/examples/i18n/mywidget_cs.qm
Binary files differ
diff --git a/examples/i18n/mywidget_cs.ts b/examples/i18n/mywidget_cs.ts
new file mode 100644
index 000000000..4cf61f156
--- /dev/null
+++ b/examples/i18n/mywidget_cs.ts
@@ -0,0 +1,75 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">Pohled</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Soubor</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit</source>
+ <translation type="unfinished">&amp;Konec</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">První</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">Třetí</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">Jayzk: Český</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">Hlavní okno</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+Q</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">Nakloněný</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">Druhý</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">Isometrický</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">Perspektivní</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">Ukázka lokalizace</translation>
+ </message>
+</context>
+<context encoding="UTF-8">
+ <name>QAccel</name>
+ <message encoding="UTF-8">
+ <source>Ctrl</source>
+ <translation type="obsolete">Ctrl</translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_de.qm b/examples/i18n/mywidget_de.qm
new file mode 100644
index 000000000..c251e2498
--- /dev/null
+++ b/examples/i18n/mywidget_de.qm
Binary files differ
diff --git a/examples/i18n/mywidget_de.ts b/examples/i18n/mywidget_de.ts
new file mode 100644
index 000000000..6533b9892
--- /dev/null
+++ b/examples/i18n/mywidget_de.ts
@@ -0,0 +1,75 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">Ansicht</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Datei</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit</source>
+ <translation type="unfinished">Be&amp;enden</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">Erstens</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">Drittens</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">Sprache: Deutsch</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">Das Hauptfenster</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+E</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">Schief</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">Zweitens</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">Isometrisch</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">Perspektivisch</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">Internationalisierungsbeispiel</translation>
+ </message>
+</context>
+<context encoding="UTF-8">
+ <name>QAccel</name>
+ <message encoding="UTF-8">
+ <source>Ctrl</source>
+ <translation type="obsolete">Strg</translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_el.qm b/examples/i18n/mywidget_el.qm
new file mode 100644
index 000000000..15d768951
--- /dev/null
+++ b/examples/i18n/mywidget_el.qm
Binary files differ
diff --git a/examples/i18n/mywidget_el.ts b/examples/i18n/mywidget_el.ts
new file mode 100644
index 000000000..59fb2289a
--- /dev/null
+++ b/examples/i18n/mywidget_el.ts
@@ -0,0 +1,68 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Αρχείο</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+Q</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit</source>
+ <translation type="unfinished">Έ&amp;ξοδος</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">Πρώτο</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">Παράδειγμα διεθνοποίησης</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">Ισομετρική</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">Γλώσσα: Ελληνικά</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">Πλάγια</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">Προοπτική</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">Δεύτερο</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">Κύριο παράθυρο</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">Τρίτο</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">Όψη</translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_en.qm b/examples/i18n/mywidget_en.qm
new file mode 100644
index 000000000..6bd22c41d
--- /dev/null
+++ b/examples/i18n/mywidget_en.qm
Binary files differ
diff --git a/examples/i18n/mywidget_en.ts b/examples/i18n/mywidget_en.ts
new file mode 100644
index 000000000..54c4df8ee
--- /dev/null
+++ b/examples/i18n/mywidget_en.ts
@@ -0,0 +1,68 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name>MyWidget</name>
+ <message>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Internationalization Example</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Language: English</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The Main Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Perspective</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Isometric</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Oblique</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>First</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Second</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Third</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_eo.qm b/examples/i18n/mywidget_eo.qm
new file mode 100644
index 000000000..372cf7921
--- /dev/null
+++ b/examples/i18n/mywidget_eo.qm
Binary files differ
diff --git a/examples/i18n/mywidget_eo.ts b/examples/i18n/mywidget_eo.ts
new file mode 100644
index 000000000..381870dee
--- /dev/null
+++ b/examples/i18n/mywidget_eo.ts
@@ -0,0 +1,72 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Dosiero</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+F</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit...</source>
+ <translation type="obsolete">&amp;Fini...</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">Unue</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">Ekzemplo pri internaciigo</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">Isometria</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">Lingvo: Esperanto (ĈĜĤĴŜŬĉĝĥĵŝŭ)</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">Oblikva</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">Perspektiva</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">Due</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">La Ĉeffenestro</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">Trie</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">Aspekto</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_fr.qm b/examples/i18n/mywidget_fr.qm
new file mode 100644
index 000000000..12a846409
--- /dev/null
+++ b/examples/i18n/mywidget_fr.qm
Binary files differ
diff --git a/examples/i18n/mywidget_fr.ts b/examples/i18n/mywidget_fr.ts
new file mode 100644
index 000000000..a029084a8
--- /dev/null
+++ b/examples/i18n/mywidget_fr.ts
@@ -0,0 +1,68 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">Vue</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Fichier</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit</source>
+ <translation type="unfinished">&amp;Quitter</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">Premier</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">Troisième</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">Langage : Français</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">La fenêtre principale</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+Q</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">Oblique</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">Second</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">Isométrique</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">Perspective</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">Exemple d&apos;internationalisation</translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_it.qm b/examples/i18n/mywidget_it.qm
new file mode 100644
index 000000000..075bee250
--- /dev/null
+++ b/examples/i18n/mywidget_it.qm
Binary files differ
diff --git a/examples/i18n/mywidget_it.ts b/examples/i18n/mywidget_it.ts
new file mode 100644
index 000000000..a450deb4c
--- /dev/null
+++ b/examples/i18n/mywidget_it.ts
@@ -0,0 +1,72 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>E&amp;xit...</source>
+ <translation type="obsolete">&amp;Esci...</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">Primo</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">Esempio di localizzazione</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">Isometrica</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">Lingua: Italiano</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">Obliqua</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">Prospettica</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">Secondo</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">La Finestra Principale</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">Terzo</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">Vista</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_jp.qm b/examples/i18n/mywidget_jp.qm
new file mode 100644
index 000000000..8942dd7c1
--- /dev/null
+++ b/examples/i18n/mywidget_jp.qm
Binary files differ
diff --git a/examples/i18n/mywidget_jp.ts b/examples/i18n/mywidget_jp.ts
new file mode 100644
index 000000000..2a7345f60
--- /dev/null
+++ b/examples/i18n/mywidget_jp.ts
@@ -0,0 +1,68 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">ファイル(&amp;F)</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+Q</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit</source>
+ <translation type="unfinished">終了(&amp;X)</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">第一行</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">国際化(i18n)の例</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">等角投影法</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">言語: 日本語</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">斜め投影法</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">遠近法</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">第二行</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">メインウィンドウ</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">第三行</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">表示方式</translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_ko.qm b/examples/i18n/mywidget_ko.qm
new file mode 100644
index 000000000..dccc2ba9f
--- /dev/null
+++ b/examples/i18n/mywidget_ko.qm
Binary files differ
diff --git a/examples/i18n/mywidget_ko.ts b/examples/i18n/mywidget_ko.ts
new file mode 100644
index 000000000..acc8f9b5b
--- /dev/null
+++ b/examples/i18n/mywidget_ko.ts
@@ -0,0 +1,68 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">파일&amp;F</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+E</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit</source>
+ <translation type="unfinished">종료&amp;X</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">첫번째</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">국제화 예제</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">Isometric</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">언어 : 한국어</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">Oblique</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">Perspective</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">두번째</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">메인 윈도우</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">세번째</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">보기</translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_no.qm b/examples/i18n/mywidget_no.qm
new file mode 100644
index 000000000..2adc1361f
--- /dev/null
+++ b/examples/i18n/mywidget_no.qm
Binary files differ
diff --git a/examples/i18n/mywidget_no.ts b/examples/i18n/mywidget_no.ts
new file mode 100644
index 000000000..341c66477
--- /dev/null
+++ b/examples/i18n/mywidget_no.ts
@@ -0,0 +1,68 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">Visning</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Fil</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit</source>
+ <translation type="unfinished">&amp;Slutt</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">Første</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">Tredje</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">Språk: Norsk</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">Hovedvinduet</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+S</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">Skjev</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">Andre</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">Isometrisk</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">Perspektiv</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">Internasjonaliseringseksempel</translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_ru.qm b/examples/i18n/mywidget_ru.qm
new file mode 100644
index 000000000..ebc512ecf
--- /dev/null
+++ b/examples/i18n/mywidget_ru.qm
Binary files differ
diff --git a/examples/i18n/mywidget_ru.ts b/examples/i18n/mywidget_ru.ts
new file mode 100644
index 000000000..07070b036
--- /dev/null
+++ b/examples/i18n/mywidget_ru.ts
@@ -0,0 +1,68 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">Вид</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">Файл</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit</source>
+ <translation type="unfinished">Выход</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">Первый</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">Третий</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">Язык: Русский</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">Главное окно</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">Курсив</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">Второй</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">Изометрический</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">Перспектива</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">Пример интернациноализации</translation>
+ </message>
+ <message>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/examples/i18n/mywidget_zh.qm b/examples/i18n/mywidget_zh.qm
new file mode 100644
index 000000000..a890c0961
--- /dev/null
+++ b/examples/i18n/mywidget_zh.qm
Binary files differ
diff --git a/examples/i18n/mywidget_zh.ts b/examples/i18n/mywidget_zh.ts
new file mode 100644
index 000000000..8b015d6d6
--- /dev/null
+++ b/examples/i18n/mywidget_zh.ts
@@ -0,0 +1,68 @@
+<!DOCTYPE TS><TS>
+<context encoding="UTF-8">
+ <name>MyWidget</name>
+ <message encoding="UTF-8">
+ <source>View</source>
+ <translation type="unfinished">视图</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>&amp;File</source>
+ <translation type="unfinished">文件[&amp;F]</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>E&amp;xit</source>
+ <translation type="unfinished">退出[&amp;x]</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>First</source>
+ <translation type="unfinished">第一个</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Third</source>
+ <translation type="unfinished">第三个</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Language: English</source>
+ <translation type="unfinished">语言: 简体中文</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>The Main Window</source>
+ <translation type="unfinished">主窗口</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Ctrl+Q</source>
+ <translation type="unfinished">Ctrl+Q</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Oblique</source>
+ <translation type="unfinished">斜投影</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Second</source>
+ <translation type="unfinished">第二个</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Isometric</source>
+ <translation type="unfinished">等角投影</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Perspective</source>
+ <translation type="unfinished">透视投影</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>Internationalization Example</source>
+ <translation type="unfinished">国际化范例</translation>
+ </message>
+</context>
+<context>
+ <name>QVDialog</name>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>