< Marble Contents 1 How to help with localization of the UI 1.1 Preparation 1.2 Workflow 1.3 Testing your translations 1.4 Syncing translations between "stable" and "trunk" 2 Internationalization 3 Building with translations included 3.1 Builds of Bundled Products 3.2 Builds of Non-bundled Products 4 Translation statistics How to help with localization of the UI The so-called catalogs with the translation strings are handled centrally by the KDE l10n team, also the catalogs for the Marble software. To help with translation you would get in contact with the team for the locale you would like to help with. See https://l10n.kde.org/ for more information. The general workflow for larger set of translations would be like this (by example of German, replace "de" with your locale id, but also check with your locale team): Preparation Initially check out the marble_qt.po catalog from the KDE svn repository (will also get unrelated other po files, just ignore them), here for the latest stable version of Marble: svn co svn://anonsvn.kde.org/home/kde/branches/stable/l10n-kf5/de/messages/kdeedu or if owner of SVN commit rights svn co svn+ssh://[email protected]/home/kde/branches/stable/l10n-kf5/de/messages/kdeedu For the unstable version (matching master branch of Marble code) use: svn co svn://anonsvn.kde.org/home/kde/trunk/l10n-kf5/de/messages/kdeedu or if owner of SVN commit rights svn co svn+ssh://[email protected]/home/kde/trunk/l10n-kf5/de/messages/kdeedu Install Lokalize as your tool to edit the translation catalog file. Workflow If bigger work planned, announce it on the locale team mailinglist to avoid clashes Update to latest state, by entering the folder with the catalogs cd kdeedu svn up marble_qt.po Open the file "marble_qt.po" in Lokalize and make your translations, save Create a patch svn diff > /tmp/marble_qt.po.diff Upload it to svn.reviewboard.kde.org: https://svn.reviewboard.kde.org New Review Request select repository "kde" click "Select" choose /tmp/marble_qt.po.diff enter base dir for diff: "branches/stable/l10n-kf5/de/messages/kdeedu" (if stable) or "trunk/l10n-kf5/de/messages/kdeedu" (if unstable) select reviewer group "kde-i18n-de" and some marble developers as person if no own rights for committing to KDE SVN, make a comment in the description field If "Ship it" received and rights for comitting to KDE SVN, commit patch. Commit message can be a simple "Translation update", unless something extraordinary done. After patch has been committed, close review request manually (commit keyword not working/available) Testing your translations If you are a developer or build Marble from the sources, see section Building with translations included how to integrate translation files with the build and how to download the respective po files from the KDE servers. Next, replace the downloaded po file with a symlink to the po file in the folder where you work on the translations. Now the build will use your translation catalog. Do not forget to call the possible extra build target after any changes to the translations ("make bundle_translations") before reinstalling. Example for bundled apps and German locale (replace "de" with your locale): cd $marble_src_dir/data/lang/po/de rm marble_qt.po ln -s $path/to/de/messages/kdeedu/marble_qt.po cd $marble_build_dir make bundle_translations make install If you are not a developer or do not build Marble from the sources... TODO Syncing translations between "stable" and "trunk" First translate the "stable" catalog to make sure all strings there are translated, so the enduser has a good experience, as this is the catalog they use. Collect any issues with bad context or inconsistent terms that need improvement in the source code and report to the developers. Such issues would then be fixed in the development version, or if urgent, also in the stable version. Once the translations have been committed to "stable", they will also be synced to the "trunk" catalog. This is usually done by someone of the locale team, ask for the approach by your locale team (e.g. for the German team blueck does this on a daily routine without needing a personal notification, state Nov. 2016). So when the new translations have been synced to "trunk", time to work on any untranslated strings there. Remember though that development branch means strings can change again all the time until the message freeze sets in, so be prepared for lost work. If unsure, get in contact with the developers. Internationalization For the libraries, plugins and the apps marble-qt, marble-maps & behaim globe the Qt translation system is used in the code. More information how to use this in the code here: http://doc.qt.io/qt-5/i18n-source-translation.html It also means that users of the library need to explicitely find and load the files with translation catalogs. The Plasma plugins and other make use of ki18n/gettext facilities and have additional separate catalogs. Building with translations included There are two different cases here with different handling: Builds of bundled apps, where files with translations are part of the created app bundle Builds of shared libraries, data & plugins (e.g. for Linux packaging), where files with translations are installed in central places and shared among users of libmarblewidget Builds of Bundled Products Currently (at time of Marble 0.26) all bundled apps (marble-qt, marble-maps, behaim) use only the central catalog marble_qt. For builds of bundled apps the tools in the data/lang/ directory are used. See data/lang/README for how to use the tools during the build. Builds of Non-bundled Products Currently (at time of Marble 0.26) the translation catalogs are distributed also at release time in a separate tarball (which covers all software part of "KDE Applications") and thus the binary versions are build & installed separately from the Marble build. It would be possible to integrate them into the build similar to how it is done for bundled products, but that is a TODO. Translation statistics marble_qt.po: stable & trunk marble.po: stable & trunk plasma_applet_org.kde.plasma.worldclock.po: stable & trunk plasma_wallpaper_org.kde.plasma.worldmap.po: stable & trunk plasma_runner_marble.po: stable & trunk Retrieved from "https://community.kde.org/index.php?title=Marble/UiTranslation&oldid=75655" This page was last edited on 23 November 2016, at 17:54. Content is available under Creative Commons License SA 4.0 unless otherwise noted.