Back to Projects List
Globalization in 3D Slicer and OHIF
- José-Carlos Ruiz-Luque (ULPGC - GTMA-IUIBS - MACbioIDi)
- Jean-Christophe Fillion-Robin (Kitware)
- Erik Ziegler (Radical Imaging / Open Health Imaging Foundation)
- Juan Ruiz-Alzola (ULPGC - GTMA - MACbioIDi)
The software globalization is the translation process of software from a source language into a target language. The process is divided into two steps: software internationalization (i18n) and software localization (L10n). The former is the task of designing software without a specific location i.e. building it independent of any specific language or culture. The latter is the process of adapting a software for a specific location.
The aim of this project is to develop/improve the 3D Slicer internationalization (i18n) and localization (l10n) support. This project is a next step in the one presented during 30th PW NA-MIC.
Also, we will discuss about the globalization in OHIF.
- Improving the I18n support in the 3d Slicer core.
- Supporting the I18n in scripted module.
- Discussing the number and date formats in the dependence libraries and 3D Slicer core.
- Defining the step for translation of a module.
Approach and Plan
- Enhancing the contexts for the text displayed in GUI for the translation files (ts).
- Removing the QObject::tr and q->tr
- Removing the lupdate warnings:
- Cannot invoke tr() like this.
- Class MyClass lacks Q_OBJECT macro.
- Designing a WEB page so as to store the language files.
- Developing the i18n support for scripted module.
Progress and Next Steps
- The following fixes have been integrated into Slicer source:
- r28338: STYLE: i18n: Remove unneeded translation of empty strings
- r28339: BUG: i18n: Fix use of tr() function in pimpl of Base and MRML Qt classes
- r28340: BUG: i18n: Fix buildsystem to fix generation of .ts files for loadable module
- r28341: BUG: i18n: Fix use of tr() function in loadable module classes
- r28342: ENH: i18n: Update buildsystem to support generation of .ts files for ModuleWidgets
- r28343: BUG: i18n: Fix use of tr() function in loadable module Qt widget classes
- r28344: ENH: i18n: Add support for node combox, 3d view controller and qSlicerApp
- r28345: STYLE: Remove translation files with old-style suffix
- Support for i18n was improved.
- See the PR-1162: improve-i18n-support
- Support for translating scripted modules (
- Generation of
- Add targets
- Support for generating and updating translation files in extension.
- Discussed several proposals to organize the translation effort and manage associated infrastructures
- Created project https://github.com/Slicer/SlicerTranslations
- Proposed plan:
- create a
SlicerTranslations extension to install languages files for Slicer core
- Still need to refine and document the approach for maintaining and distributing translation files for extensions
- Support for localization:
- Displaying numbers with correct local format) is postponed for several months
- A nightly build of Slicer will be setup in our lab in Canary Islands on system with different language and local.
Fig. 1: Spanish Slicer GUI
Fig. 2: French Slicer GUI
Background and References