openSUSE:Localization guide

Jump to: navigation, search

In this page find information about localization (L10N, LCN) of software components in openSUSE. It applies for programs such as YaST, the openSUSE update applets, or the menu system of the desktop. For information about localizing the openSUSE wiki (this site), see Help:Translation.

openSUSE Weblate

All translators should join openSUSE Weblate translation portal. All openSUSE translations are done there.

To work with openSUSE Weblate, you don't need any programming skills. You even don't need to know translation files formats. You just need a good knowledge of the selected language, and the established computer terminology.

Joining an Existing Team

All translators are encouraged to join opensuse-translation mailing list and eventually language team lists.

If a language team exists for your language, contact coordinator of the team.

Adding a new language

There is no technical limit for the translation. Most projects allow you to start new translations by a single click. But getting a good native language experience requires a lot of work. So it is recommended to have a translation team.

If your language is already included in the Localization team list, a team for your language exists. Find Information about joining a team in Joining a Existing Team. If there is no team for your language, start one and proceed as follows:

  1. Mail to Within your mail, provide the following information: new language name, your full name, your contact mail address.
  2. Wait for approval of the new language project.
  3. Add your language to the table of localization teams. Also fill out the fields about the language coordinator and the location of your project pages, see Language Project Page.
  4. Start with localization. Read Starting Work before you begin.

Translation with Weblate

You can get a good overview about all translation projects, their status and translation files with openSUSE Weblate. Use your general openSUSE account there. Anybody could create it.

Language teams can limit access as agreed by the team policy.

You should change only files of your language team.

The translations are split to projects and components. Components can be branches or subdomains of the project, or their combination.


Packages can have different branches, which is reflected as different components in Weblate. A branch is a directory with a specific version of files. So you can find different translation files for the same software. Most of the projects has a master or main branch intended for Tumbleweed, and projects can have specific branches for Leap and SLE. You needn't translate components with SLE in the name. Such files are translated by SUSE for SUSE Linux Enterprise. We share our systems with them.

Many projects don'have these dedicated branches, and the translation development is common for both Tumbleweed and the next Leap.

After that you can select your language.

However there is available a PO download button, and local offline translation is still supported, translators are encouraged to translate online in Weblate.

Simply choose "Not translated string" and you can enter your translations in the web interface.

The Most Important projects

If you are at the beginning of localization, you should start with the most important files. These files belong to the most visible applications of the openSUSE distribution, like installation or YaST Control Center. The most important files are:

For installation:

  • download.o.o
  • software-o-o
  • landing-page
  • openSUSE-EULAs
  • release-notes
  • skelcd-openSUSE
  • yast-slide-show
  • packages-i18n/patterns

Software installation and rollback:

  • libzypp
  • snapper
  • zypper

YaST basics:

  • yast-base
  • yast-country
  • yast-firewall
  • yast-installation
  • yast-ncurses
  • yast-ncurses-pkg
  • yast-network
  • yast-pam
  • yast-pkg-bindings
  • yast-qt
  • yast-qt-pkg
  • yast-storage
  • yast-timezone_db
  • packages-i18n/yast2

SUSE translations

We are sharing Weblate with SUSE Linux Enterprise Translators. There are many po files for YaST, you don't have to translate. They are marked with comments as:

This is a SUSE Linux Enterprise module, not intended for community usage.

or something equal to that:

RPM repository mirroring tool and registration proxy for SUSE Customer Center is an SUSE Linux Enterprise product. It is translated by contracted translators.

In deep information

openSUSE Weblate is just an interface to the openSUSE GitHub project and YaST GitHub development portals. It holds copies of these projects and returns all translation work back to the development git repositories.

About PO and POT Files

Most (but not all) projects use bilingual po files. Source contains English text, and the translator provides a translation.

Original English text in the PO file is not allowed to change. You can change only translation. If you find an error in the original English text, please use Bugzilla to report it. All wrong texts must be fixed in the source code of the application first and then a new POT file will be generated and automatically merged with your files. After it, the changed string will be marked as fuzzy (i. e. Needs edit).

If you do not know, what is the PO and POT file, please read article Work with PO Files.

Not all projects use po or even bilingual files. But, thanks to Weblate, this fact is nearly opaque to the translators. The presence of editable English translation is the only difference of components that user monolingual files.

Pull Requests on GitHub

Most Weblate projects are configured to an automatic push of translations back to GitHub. The synchronization time is set to 2 hours after last edit.

All po files are available on github and will be updated by Weblate and Developers.

If you want to commit po files on GitHub, you have to create a fork, clone it, commit, push and create a Pull Request. Do it only if you aren't able to upload po files for "Most important files" with Weblate and we have got release time. The reason is that a Pull Request must be reviewed by the project owner. That can use time and many commits can be executed then. So there can occur a merge conflict.

You can find the special link to the github repository on Weblate, if you choose your translation file, click on the name above and choose "Information". The Project website is the github repository.

Minimal Translation

We have no percentual limits for including localization to distribution.


Information about state of your localization work you find in statistics of Weblate. If your language is not included, please send an email to the opensuse-translation mailing list.

Statistics are updated once a day. Time of the update is displayed at the bottom of each page. If there is any missing translation of some file in your language, the file is displayed as untranslated and linked to the POT file. You can translate the POT file and commit to github/ Weblate as the PO file or wait for initialization of the POT file.

Language Team Pages

If you work in the large team, you should have your own team page in your native language. To create one, use openSUSE wiki in your language and add the link to the table of localization teams. If there is no openSUSE wiki translated into your language, create team page in the English wiki page with name your_language_code Language_name Localization Team.

Tools for the old style offline work

Weblate is preferred for an online work. But you can still translate offline using one of offline po editors.

  • POEditor - POEditor is a web-based translation tool for gettext po files and other popular localization formats
  • KBabel - KBabel is the part of the package kdesdk3-translate
  • Lokalize - Lokalize is KDE4 successor of KBabel

Handling translation bugs

If you find a translation bug (untranslated string, incorrectly translated string, untranslatable string), please follow Handling translation bugs manual.