Difference between revisions of "Slicer4:Internationalization of Slicer"
Line 24: | Line 24: | ||
qApp->installTranslator(translator); | qApp->installTranslator(translator); | ||
} | } | ||
+ | |||
+ | =Scripted Module= | ||
+ | Some modules are implemented in Python. Endoscopy is one of the typical examples. In endoscopy.py, if we change the code in line#10 | ||
+ | parent.titel = “Endoscopy” | ||
+ | to | ||
+ | parent.title = slicer.app.translate(self.__class__.__name__, "Endoscopy") | ||
+ | then "Endoscopy" can be shown in other languages.Similarily, other displayable strings can be handled in the same way. |
Revision as of 15:36, 8 August 2011
Home < Slicer4:Internationalization of SlicerIntroduction
This pages contains notes on source code additions and modifications of different modules within Slicer for the internationalization purpose.
QT-based Internationalization
Internationalization is well supported in QT. A lot of modules of Slicer are developed on QT. This has set a good ground for the internationalization of Slicer. The following codes are needed:
In file \Slicer4\Base\QTCore\qSlicerCoreApplication.h, add the following line:
#include <QTranslator>
In file \Slicer4\Applications\SlicerQT\main.cxx (around line#230), add the following lines:
static QTranslator* translator; if (translator != NULL) { qApp->removeTranslator(translator); delete translator; translator = NULL; } QString langCode= argv[1]; translator = new QTranslator; QString qmFilename = "lang_" + langCode; if (translator->load(qmFilename)) { qApp->installTranslator(translator); }
Scripted Module
Some modules are implemented in Python. Endoscopy is one of the typical examples. In endoscopy.py, if we change the code in line#10
parent.titel = “Endoscopy”
to
parent.title = slicer.app.translate(self.__class__.__name__, "Endoscopy")
then "Endoscopy" can be shown in other languages.Similarily, other displayable strings can be handled in the same way.