Traductions

Bien que l’Anglais soit la langue de base officielle pour tous les projets menés par UBports, nous pensons que vous avez le droit de les utiliser dans toutes les langues que vous souhaitez.

We are working hard to meet that goal, and you can help as well. You decide how much time you can put into translation. From minutes to hours, everything counts.

How does a text gets translated (technical background)

Most apps running on Ubuntu Touch use GNU gettext for translations. A .pot template file holds an apps strings. From this template for every language an individual .po file is derived. Those .po files do contain the actual translations. To add a new language a new .po file needs to be created. To translate a string the .po file needs to be edited. Next to the original string (english in most cases) the appropriate translation needs to be entered following the .po gettext file syntax. Some apps do use QtLinguist for translation. It does follow the same priciples only using .ts files for translations with another syntax. As template one .ts file is used.

Within a app strings are marked either this way i18n.tr("string") when using gettext or like this tr("string") when using QtLinguist. When the app is build those translatable strings are extracted and written into the .pot or .ts template files. The .po and .ts language files then need to be updated from their template.

Once strings have been translated, they are made available for users with a new release of an app.

Methods of Translation

There are three common ways used to translate an app:

  • Weblate: A web based translation tool. UBports apps using Weblate can be translated here. There is an automatic transfer of new strings from an apps repo to weblate. Translated strings get back as commits to the repo from weblate.
  • Editor: Translation is done by changing .po files with the editor of your choice, and a GitHub/GitLab account. The .po/.ts files for each project are in their repository on our GitLab organization or on our GitHub organization. After translating the translator commits new translations to an apps repo generally by opening a merge request/pull request.
  • Team translation: We also have a Translation Forum to discuss translating Ubuntu Touch and its core apps. Some projects are using Telegram or matrix groups too, and some teams are still using the Ubuntu Launchpad framework.

Core apps and some community apps like dekko or TELEports are generally using weblate for translation. This is the preferred way to translate and it does not need any programming skills. Please have a look at the UBports translation projects. When using weblate do not edit .po files manually. Commiting edited .po files can break the automated process of translation.

Most apps maintained by individual developers are mainly using .pot/.po files for translation. Those generally need to be edited manually and commited to the apps repo.

Tutoriels

Le Weblate d’UBports

You can go to UBports Weblate, click on « Dashboard » button, go to a project, and start making anonymous suggestions without being registered. If you want to save your translations, you must be logged in.

Pour cela, rendez-vous dans le Weblate d’UBports et cliquez sur le bouton « S’inscrire ». Une fois dans la page « Inscription », vous aurez deux options :

  • Vous enregistrer en utilisant une adresse électronique valide, un nom d’utilisateur et votre nom complet. Vous devrez également résoudre une question simple de contrôle.
  • Vous enregistrer en utilisant une inscription à un service tiers. Le système prend en charge actuellement openSUSE, GitHub, Fedora et Ubuntu.

Une fois que vous serez connecté, le site est explicite et vous y trouverez toutes les options et personnalisations à votre disposition.

Now, get on with it. The first step is to search if your language already exists in the project of your choice. If your language is not available for a specific project, you can add it yourself.

.po/.ts File Editor

If you want to work with .po/.ts files directly you need to know what you’re doing for sure. The first thing you should always remember is:

Avertissement

Do never commit .po files to projects that are translated using weblate. This could break the whole translation exchange process with weblate.

As was said up above, you need a file editor of your choice and a GitHub/GitLab account to translate .po/.ts files directly. Idealy you do have clickable set up and know how to build an app.

There are online gettext .po editors and those you can install in your computer. You can choose whatever editor you want, but we prefer to work with free software only. There are too many plain text editors and tools to help you translate .po/.ts files to put down a list here.

Note

For high quality translations it is recommended to go through all of the steps given below. Although if you are not familiar with building apps using clickable, skip the steps 4. to 6. You may not be able to translate the latest strings though. And you will not know if the strings fit into the apps layout.

How to proceed:

  1. fork the apps repo into your GitHub or GitLab account
  2. clone the repo locally or use GitLab’s online editor
  3. (optional) create a new branch for the translation
  4. build the app using clickable to get up-to-date .pot/.ts template files
  5. update the desired .po/.ts language file(s) from the template
  6. translate all strings
  7. build and install the app on your device and test the translations
  8. (optional) repeat steps 6. and 7. until you are satisfied with your work
  9. push the translated .po/.ts file(s) to your forked repo [do NOT commit .pot/.ts template files]
  10. open an merge/pull request from your fork to the apps repo

Communication de l’équipe de traduction

You may talk to others regarding translations by using the forum category that UBports provides for this task. To use it you need to register, or login if you’re registered already.

La seule obligation est de commencer votre publication en mettant entre crochets votre langue dans le champ « Saisissez le titre de votre sujet ici ». Par exemple, [French] How to translate whatever? ([Français] Comment traduire n’importe quoi ? »)

Dans vos interactions avec votre équipe, vous trouverez la meilleure façon de coordonner vos traductions.

Licence

Tous les projets de traduction et toutes vos contributions à ce projet sont placés sous une licence Creative Commons Attribution-Partage à l’identique 4.0 International (CC BY-SA 4.0) que vous acceptez explicitement en contribuant à ce projet.

Visitez ce site pour apprendre ce que cela signifie exactement.