Differences between revisions 7 and 25 (spanning 18 versions)
Revision 7 as of 2006-11-21 12:29:14
Size: 2918
Comment:
Revision 25 as of 2019-07-05 12:35:07
Size: 5152
Comment: web-ext-translator, stringlate et mozilla
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[[TableOfContents(3)]] = Gettext =
Line 3: Line 3:
Cette page présente le travail en utilisant l'outil le plus classique, `gettext`. Cet outil offre au programmeur une boîte à outil qui lui permettra d'extraire pour le traducteur les chaînes à traduire de son programme et d'intégrer dynamiquement les traductions au fonctionnement du programme. [[http://www.gnu.org/software/gettext/|Gettext]] est l'outil le plus utilisé pour permettre la traduction des logiciels libre. C'est un outil complet, qui permet de simplifier le travail des traducteurs et des développeurs. Il est utilisable avec la plupart des langages de programmation et des langues du monde.
Line 5: Line 5:
== Comment permettre l'adaptation d'un logiciel à une langue étrangère ==  * [[L'adaptation_des_logiciels/Gettext|Introduction à Gettext (côté traducteur)]]
 * [[/Exemple d'utilisation de Gettext|Un exemple complet d'utilisation de Gettext (du programmeur au traducteur)]]
 * [[http://www.gnu.org/software/gettext/|Page principale de Gettext]] (en anglais)
 * [[http://www.gnu.org/software/gettext/manual/|Manuel de Gettext]] (en anglais)
 * [[http://alioth.debian.org/projects/po4a/|po4a]], un logiciel destiné à permettre l'utilisation de fichiers `.po` pour simplifier la traduction de documents.
Line 7: Line 11:
Le principe de base est simple. Il faut modifier le programme pour faire passer par gettext toutes les chaînes à afficher ou attendues. On doit ensuite extraire ces chaînes pour produire un modèle de fichier po (fichier `.pot`). Il ne reste plus qu'a envoyer ce fichier au traducteur. == Les outils d'édition de fichiers po ==
Line 9: Line 13:
 * Le [http://www.gnu.org/software/gettext/manual/ manuel de Gettext].  * [[http://www.omegat.org/fr/omegat.html|OmegaT]], un logiciel libre d'aide à la traduction (TAO), écrit en Java.
 * [[http://translate.sourceforge.net/wiki/virtaal/index|Virtaal]], un éditeur de traductions simple, mais assez complet.
 * [[http://projects.gnome.org/gtranslator/|Gtranslator]], l'éditeur de fichiers po du projet Gnome.
 * [[http://www.kde.org/applications/development/lokalize/|Lokalize]] (ex-Kbabel), l'éditeur de fichiers po du projet KDE.
 * [[http://www.poedit.net/|Poedit]], un éditeur assez simple de fichiers PO (Unix, Windows).
Line 11: Line 19:
== Comment traduire un logiciel en français == == Portails de traduction ==
Line 13: Line 21:
Le programmeur doit mettre à la disposition du traducteur un fichier `.pot`. Il suffira la première fois de renommer ce fichier en `.po` pour obtenir la version à traduire.  * [[http://pootle.translatehouse.org/|Pootle]], un portail permettant de gérer en ligne la traduction de fichiers po. Il peut s'auto-héberger
 * [[https://weblate.org/fr/|Weblate]], un autre portail permettant de gérer en ligne la traduction de fichiers po. Il peut s'auto-héberger
 * [[https://fr.transifex.com/|Transifex]], une plateforme non-libre permettant de gérer des traductions en ligne et hébergeant des logiciels libres (mais pas uniquement).
 * [[https://crowdin.com/projects|Crowdin]], une plateforme non-libre permettant de gérer des traductions en ligne et hébergeant aussi des logiciels libres (mais pas uniquement).
 * [[https://poeditor.com|POEditor.com]], une plateforme non-libre permettant de gérer des traductions en ligne et hébergeant aussi des logiciels libres (mais pas uniquement).
Line 15: Line 27:
Il suffit alors d'ouvrir ce fichier dans un éditeur de texte (nano, vi, emacs, et cætera) ou dans un logiciel spécialisé (kbabel par exemple). == Vérification orthographique ==
Line 17: Line 29:
Le fichier `.po` devrait comporter un certain nombres de paragraphes du type :  * [[http://translate.sourceforge.net/wiki/toolkit/pofilter|pofilter]]
 * [[http://packages.debian.org/stable/acheck|acheck]]: recherche d'erreurs de traduction classiques et correction orthographique, spécifique à Debian mais peut probablement s'installer facilement sur d'autres distros
 * Macro pour po-mode, pour les utilisateurs d'Emacs. Lancer ensuite {{{M-x po-ispell}}}:
{{{
(defun po-ispell-next ()
  "Search the next entry to check"
          (po-find-span-of-entry)
          (let ((here (point)))
            (goto-char po-end-of-entry)
            (if (re-search-forward po-any-msgstr-block-regexp nil t)
                (progn
                  (goto-char (match-beginning 0))
                  (po-current-entry)
                  t)
              nil)))
Line 19: Line 45:
(defun po-ispell ()
  "Check the spelling of the po file"
  (interactive)
  (save-excursion
    (save-restriction
      (let ((buffer-read-only po-read-only))
        (po-first-entry)
        (while (po-ispell-next)
          (po-find-span-of-entry)
          (ispell-region (+ po-start-of-msgstr-block 6) po-end-of-entry))))))
}}}
      (mis à jour depuis [[http://lists.debian.org/debian-l10n-french/2000/04/msg00058.html|ce post]])
 * [[http://gettext-lint.sourceforge.net/|gettext-lint]]: autre solution, le contexte affiché est un peu petit.
 * [[http://home.worldonline.dk/byrial/spellutils/|pospell]]: fait partie du paquet {{{spellutils}}}, il peut théoriquement faire une vérification orthographique de vos fichiers .po, mais ne supporte pas les accents:
Line 20: Line 60:
#: src/global.c:313
msgid "Switch to the previous file buffer"
msgstr ""
 pospell -n filename.po -p ispell -- %f
Line 25: Line 63:
Il suffit d'indiquer entre guillemets en face de `msgstr` la version française correspondant à la précédente ligne `msgid` : = Android =
Line 27: Line 65:
{{{
#: src/global.c:313
msgid "Switch to the previous file buffer"
msgstr "Basculer vers l'espace précédent"
}}}
Le SDK ''(Software Development Kit)'' d'android permet de facilement créer des applications multi-lingues. Le programmeur doit créer un fichier [[https://developer.android.com/guide/topics/resources/string-resource.html|strings.xml]] dans la langue principale et les traducteurs l'utilisent comme modèle pour leur langue.
Line 33: Line 67:
 * [http://i18n.kde.org/tools/kbabel/ KBabel], un logiciel spécialisé dans la traduction des fichiers `.po`. == Les outils d'édition de fichiers xml ==
Line 35: Line 69:
[[Anchor(aspell)]]
== Vérifier l'orthographe d'un fichier .po ==
 * [[https://f-droid.org/en/packages/io.github.lonamiwebs.stringlate/|Stringlate]], une application android libre pour traduire des applications android hébergées sur un dépôt git. Elle permet aussi d'envoyer ses traductions directement si le projet est sur github. Attention : l'appli n'est plus développée en amont
Line 38: Line 71:
Le paquet [http://home.worldonline.dk/byrial/spellutils/ spellutils] contient un outil appelé `pospell` qui permet de vérifier l'orthographe d'un fichier `.po`, en utilisant un correcteur orthographique tel que [http://aspell.sourceforge.net/ aspell] : = Mozilla =
Line 40: Line 73:
{{{
pospell -n logiciel.po -p aspell check %f
}}}
Firefox et les produits Mozilla sont traduits sur la plateforme [[https://pontoon.mozilla.org|pontoon]] (voir aussi [[Logiciels_et_paquets#Firefox|la page logiciels et paquets]]).
Line 44: Line 75:
== Valider un fichier .po == == Les outils de traduction d'extensions ==
Line 46: Line 77:
La commande `msgfmt` du paquet [http://www.gnu.org/software/gettext/ gettext] permet non seulement de produire une version binaire (`.mo`) du fichier `.po`, utilisable pour traduire le logiciel, mais aussi de valider son format :

{{{
msgfmt -c -o logiciel.mo logiciel.po
}}}

== Essayer le logiciel traduit ==

Pour vérifier une traduction de logiciel, il est très important d'essayer le logiciel en lui appliquant la traduction. Pour cela, il suffit, sous le compte `root`, de copier le fichier `.mo` dans le répertoire système `LC_MESSAGES` :

{{{
cp logiciel.mo /usr/share/locale/fr/LC_MESSAGES/
}}}

== Voir aussi ==

* [http://alioth.debian.org/projects/po4a/ po4a], un logiciel destiné à permettre l'utilisation de fichiers `.po` pour simplifier la traduction de documents.
 * [[https://lusito.github.io/web-ext-translator/|web-ext-translator]], un outil en ligne pour traduire des extensions mozilla et envoyer les modifications aux développeurs en amont.

Gettext

Gettext est l'outil le plus utilisé pour permettre la traduction des logiciels libre. C'est un outil complet, qui permet de simplifier le travail des traducteurs et des développeurs. Il est utilisable avec la plupart des langages de programmation et des langues du monde.

Les outils d'édition de fichiers po

  • OmegaT, un logiciel libre d'aide à la traduction (TAO), écrit en Java.

  • Virtaal, un éditeur de traductions simple, mais assez complet.

  • Gtranslator, l'éditeur de fichiers po du projet Gnome.

  • Lokalize (ex-Kbabel), l'éditeur de fichiers po du projet KDE.

  • Poedit, un éditeur assez simple de fichiers PO (Unix, Windows).

Portails de traduction

  • Pootle, un portail permettant de gérer en ligne la traduction de fichiers po. Il peut s'auto-héberger

  • Weblate, un autre portail permettant de gérer en ligne la traduction de fichiers po. Il peut s'auto-héberger

  • Transifex, une plateforme non-libre permettant de gérer des traductions en ligne et hébergeant des logiciels libres (mais pas uniquement).

  • Crowdin, une plateforme non-libre permettant de gérer des traductions en ligne et hébergeant aussi des logiciels libres (mais pas uniquement).

  • POEditor.com, une plateforme non-libre permettant de gérer des traductions en ligne et hébergeant aussi des logiciels libres (mais pas uniquement).

Vérification orthographique

  • pofilter

  • acheck: recherche d'erreurs de traduction classiques et correction orthographique, spécifique à Debian mais peut probablement s'installer facilement sur d'autres distros

  • Macro pour po-mode, pour les utilisateurs d'Emacs. Lancer ensuite M-x po-ispell:

(defun po-ispell-next ()
  "Search the next entry to check"
          (po-find-span-of-entry)
          (let ((here (point)))
            (goto-char po-end-of-entry)
            (if (re-search-forward po-any-msgstr-block-regexp nil t)
                (progn
                  (goto-char (match-beginning 0))
                  (po-current-entry)
                  t)
              nil)))

(defun po-ispell ()
  "Check the spelling of the po file"
  (interactive)
  (save-excursion
    (save-restriction
      (let ((buffer-read-only po-read-only))
        (po-first-entry)
        (while (po-ispell-next)
          (po-find-span-of-entry)
          (ispell-region (+ po-start-of-msgstr-block 6) po-end-of-entry))))))
  • gettext-lint: autre solution, le contexte affiché est un peu petit.

  • pospell: fait partie du paquet spellutils, il peut théoriquement faire une vérification orthographique de vos fichiers .po, mais ne supporte pas les accents:

 pospell -n filename.po -p ispell -- %f

Android

Le SDK (Software Development Kit) d'android permet de facilement créer des applications multi-lingues. Le programmeur doit créer un fichier strings.xml dans la langue principale et les traducteurs l'utilisent comme modèle pour leur langue.

Les outils d'édition de fichiers xml

  • Stringlate, une application android libre pour traduire des applications android hébergées sur un dépôt git. Elle permet aussi d'envoyer ses traductions directement si le projet est sur github. Attention : l'appli n'est plus développée en amont

Mozilla

Firefox et les produits Mozilla sont traduits sur la plateforme pontoon (voir aussi la page logiciels et paquets).

Les outils de traduction d'extensions

  • web-ext-translator, un outil en ligne pour traduire des extensions mozilla et envoyer les modifications aux développeurs en amont.

Heberge par Ikoula