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.
- 1 Adding a new language
- 2 Joining an Existing Team
- 3 Starting Work
- 4 Translation with Weblate
- 5 Translation Tools
- 6 Handling translation bugs
- 7 Links
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:
- Create an account at our account management system—because it is also used for the openSUSE Bugzilla and Weblate.
- Mail to email@example.com. Within your mail, provide the following information: new language name, your full name, your contact mail address.
- Wait for approval of the new language project.
- 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.
- Start with localization. If you are not familiar with the open source localization process 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.
All files to be translated are stored on github. Weblate will commit all there. Committing is allowed as agreed by the team policy.
You should change only files of your language team.
Translation with Weblate
You can get a good overview about all translation projects, their status and translation files with Weblate. Use your general openSUSE account there. You choose one project and the special version. The last Leap version is for Leap. The master branch will be used for Tumbleweed. After that you can select your language. Right you can see the project information with a download button. You can get the special PO file there. After translating all on your local pc and saving it you can upload the file there via uploading again. You will be asked after overwriting the old file. Say "Yes".
You can translate in the web interface, too. Choose "Not translated string" and you can enter your translations in the web interface.
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:
Software installation and rollback:
Pull Requests on github
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 in the master branch. 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.
Example with zypper:
- right above of the project you can create a Fork
- Go to the Fork in your profile
- Execute ' git clone https://github.com/openSUSE/zypper.git' (Link in Clone or Download)
- Translate your po file in the po directory
- Commit with 'git commit -m"Message of the commit" '
- Push to github with 'git push'
- Choose "Pull requests" in the repository in your profile, choose "New pull request" and write a friendly message with the reason for the merge.
We have no percentual limits for including localization to distribution.
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.
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 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 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.
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
- poTranslator - Download poTranslator
Handling translation bugs
If you find a translation bug (untranslated string, incorrectly translated string, untranslatable string), please follow Handling translation bugs manual.