Home Wiki > openSUSE:Localization guide
Sign up | Login

openSUSE:Localization guide

tagline: From openSUSE

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.

Adding a new language

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. Ask the translation coordinators to create an account for you on https://svn.opensuse.org (more info coming soon!). And while technically not necessary anymore it is recommended to also create an account at http://developer.novell.com—because it is also used for the Novell Bugzilla.
  2. Mail to opensuse-translation@opensuse.org. Within your mail, provide the following information: new language name, your full name, your svn.opensuse.org account name, your contact mail address.
  3. Wait for approval of the new language project and the creation of your subversion (SVN) access.
  4. Add your language to the table of localization teams. Also fill out the fields about the language coordinator (the coordinator is a person with Subversion access) and the location of your project pages, see Language Project Page.
  5. Start with localization. If you are not familiar with the open source localization process, usage of the SVN, and PO files; read Starting Work before you begin.

Joining an Existing Team

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

Starting Work

All files to be translated are stored in a subversion repository. Find more information about SVN in general at http://svnbook.red-bean.com/. Downloading files from the SVN is allowed for all team members via anonymous access. Committing is allowed as agreed by the team policy.

You should change only files of your language team. If your activity in SVN damages work of other teams, your SVN access can be blocked.

The Most Important Files

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:

  • yast/your_language/installation.your_lang_code.po
  • yast/your_language/base.your_lang_code.po
  • and all files started with 'package' in yast/your_lang_code/

Minimal Translation

We have no percentual limits for including localization to distribution.

SVN Structure

The 'trunk'

The PO files for you are stored in 'yast' and 'lcn' directories in the 'trunk' directory. The yast directory includes po files of YaST and the lcn directory includes PO files of other applications. All PO files should have the name in the format application_name.your_language_code.po.

-- trunk
   +-- doc
   +-- lcn
   |   +-- 50-etc
   |   +-- 50-memory
   |   +-- 50-pot
   |   +-- Makefile.am
   |   +-- README
   |   +-- configure.ac
   |   +-- cs
   |   +-- cy
   |   +-- ...other language directories    
   +-- www
   +-- yast
       +-- 50-pot
       +-- ar
       +-- bg
       +--...other language directories
-- branches
   +--...

You do not have to download whole directories. Both directories contains subdirectories named by language codes. Find the code of your language and download only the directory with the code of your language. For example, if you want to download Russian localization, use:

svn checkout https://svn.opensuse.org/svn/opensuse-i18n/trunk/yast/ru/po .
svn checkout https://svn.opensuse.org/svn/opensuse-i18n/trunk/lcn/ru/po .

These commands will download the 'po' directory content to current directory. Note: without trailing '.' the 'po' directory will be created inside current directory!

It can happen that some po file of an application is missing. In this situation start translation from the template and add it to your language directory. Templates for YaST are stored in the yast/50-pot directory and templates for other applications are stored in the lcn/50-pot directory. All templates have suffix .pot.

All directories starts with '50-' are special directories. They contain the templates and scripts for automatic merging. Please do not change the content of these directories.

In the 'trunk' directory is also 'www' directory, where are stored pages of the localization portal. Please do not change the content of this directory.

The Branches

At the same level as 'trunk' find the 'branches' directory that contains all the branches. We use branches for testing and for released products:

https://svn.opensuse.org/svn/opensuse-i18n/branches/openSUSE-10_2-Branch
https://svn.opensuse.org/svn/opensuse-i18n/branches/SLE10SP1

We do not expect the openSUSE community to work on updates for business products such as 'branches/SLE10SP1' (SUSE Linux Enterprise 10 SP1); we cannot even promise to make use of community updates there.

About PO and POT Files

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.

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

Translation Memory

When comes a new file to localization, the translation memory is used to translate the most common strings. All strings translated with the help of the translation memory are set to the status fuzzy. To disable translation memory, send a request to stop building of the memory files to mailinglist and copy empty file yast2.$LL.po to /yast/50-memory/ and memory.$LL.po to /lcn/50-memory/, where $LL is code of your language.

Statistics

Information about state of your localization work you find in statistics. If your language is not included, please send mail 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 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 the SVN 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.

Translation Tools

Do you use a tool, which is not mentioned? Add it to the list!

  • 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

Links