Journal Transifex: libérer votre plateforme l10n

Posté par  .
0
16
mai
2008
Une des problématique majeure du logiciel libre concerne la localisation des logiciels.
Aujourd'hui, la plupart des logiciels libres s'appuient sur les facilités fournit par Gettext. Si les traducteurs disposent d'outils éprouvés pour traiter les fichiers de traduction en local, il n'en est pas de même au niveau de la collaboration entre traducteurs.
Si certains "gros" projets de traductions sont bien rôdés, d'autres avec moins de moyens font appel à une plateforme l10n pour simplifier leur tâche.

Une des plateformes de collaboration les plus populaires parmi les logiciels libres est Rosetta développé par Canonical. Elle offre une interface simple et agréable aux contributeurs peu aguerri, une integration à un VCS (en l'occurence Bazaar). L'inconvénient majeur pour un logiciel libre de Rosetta est sa licence propriétaire et le fait d'être hébergé par le non moins propriétaire Launchpad.
Il existe d'autres plateformes l10n libres comme Vertimus (utilisé par gnome-fr), Pootle, Damned Lies (GNOME) ou Transifex.


On va principalement s'intéresser à Transifex, projet développé par Dimitri Glezios, contributeur Fedora et spécialiste l10n.
Transifex a été conçu pour répondre aux besoins particuliers des traducteurs du FedoraProject en remplacement du système précédemment utilisé (Damned Lies).
* facilité de collaborer avec des projets externes et upstream.
* intégration avec plusieurs VCS (cvs, svn, git, mercurial, bzr)
* transparence pour le traducteur et le développeur.
Par exemple, le traducteur peut utiliser son compte existant dans le système d'authentification du projet (le développeur n'a pas à créer de nouveaux comptes spécifiques à Transifex), et n'a pas à apprendre la syntaxe d'une dizaine de VCS.
* être réutilisable par n'importe quel projet.
Transifex est disponible sous la forme d'une application web utilisant le framework python TurboGears.
Transifex a fait ses preuves au sein du FedoraProject où plus de 2000 traducteurs dans plus de 70 langues l'utilisent quotidiennement avec succès. Des projets upstream comme RPM, yum, OLPC utilisent également Transifex.
Instance Transifex de FedoraProject.
https://translate.fedoraproject.org/submit/

Jusqu'à récemment, Transifex a été hébergé par fedorahosted.org mais comme ses grands frères Smolt et PackageKit, il prend son envol pour devenir un projet upstream à part entière.
http://transifex.org



A propos de Transifex
http://transifex.org/wiki/About
Interview du mainteneur de Transifex
http://fedoraproject.org/wiki/Interviews/DimitrisGlezos
Billet de Christophe Blizard à propos de Transifex
http://www.0xdeadbeef.com/weblog/?p=298
Pootle
http://translate.sourceforge.net/wiki/pootle/index
Vertimus
https://launchpad.net/vertimus/
  • # gettext ?

    Posté par  (site web personnel) . Évalué à 8.

    gettext m'a toujours fait rire au niveau de la l10n ...

    plutot que d'essayer de faire une explication lié à mon expérience, il en existe une bien écrite et distribuée dans perl depuis des années.

    http://search.cpan.org/~jhi/perl-5.8.1/lib/Locale/Maketext/T(...)
    • [^] # Re: gettext ?

      Posté par  (site web personnel) . Évalué à -1.

      Très interessant.

      Personnellement ça m'attriste de voir toute l'energie gaspillée autour de l'i18n au lieu de faire des choses productives et utiles, telle qu'implementer de nouvelles features, corriger des bugs ou reviewer les patches de debian.

      Si tout le monde pouvait se mettre d'accord pour ne plus parler qu'anglais (ou esperanto) les choses seraient tellement plus simples..
      • [^] # Re: gettext ?

        Posté par  . Évalué à 4.

        Si tout le monde pouvait se mettre d'accord pour ne plus parler qu'anglais (ou esperanto) les choses seraient tellement plus simples..

        D'ailleurs, quand on voit toute l'énergie gaspillée par les positions racistes de certains, on se demande pourquoi les généticiens n'ont pas encore inventé un moyen de filer la même couleur de peau à tout le monde.

        Et tant pis pour la richesse apportée par la différence.
        • [^] # Re: gettext ?

          Posté par  (site web personnel) . Évalué à 1.

          pas la peine de sortir systematiquement la reference aux nazis.. Le fait est que c'est quand même bien pratique pour communiquer de se mettre d'accord sur un langage commun, dont le seul but est de véhiculer des informations.
          • [^] # Re: gettext ?

            Posté par  . Évalué à 5.

            Je te conseil de lire l'excellent "Les langages de Pao" de Jack Vance qui décrit comment un société peu être influencé par sa langue.
            La langue est indissociable de la culture qui l'utilise. Perdre sa langue c'est abandonner sa culture.
            Pourquoi tous les colonialismes ont ils toujours essayé d'imposer leur langue ?
            • [^] # Re: gettext ?

              Posté par  (site web personnel) . Évalué à 3.

              Pourquoi tous les colonialismes ont ils toujours essayé d'imposer leur langue ?

              Parce que dans les endroits colonisés, c'était une langue par village et que c'était super bordélique (et que finalement tout le monde est content d'avoir une langue de communication dans le pays)? Parce qu'après c'est plus simple pour les colons, tout bêtement?

              J'entends beaucoup dire que "Perdre sa langue c'est abandonner sa culture.", mais :
              - Bon ,exact, impossible de trouver l'équivalent de "T'es chiante!" en Allemand, ça devient tout de suite très insultant (c'est pas le but recherché :) )
              - Est-ce que la culture est identique entre un Anglais, un canadiens (hors Québec) et un Etats-Unien? non (essayez de les mélangez pour voir...)
              - Est-ce que la culture est identique entre un Français, un Belge et un Québequois? non

              Ca fait 2 contre-exemples au "Perdre sa langue c'est abandonner sa culture"...

              Toute argumentation est la bienvenue pour que je comprenne... (Bon courage, plein ont essayé, mais pas encore arrivé à me convaincre... Et j'en chie à apprendre la langue du pays dans lequel j'habite, arghhhh...)
              • [^] # Re: gettext ?

                Posté par  . Évalué à 2.

                Perdre sa langue n'est pas forcément perdre sa culture, mais perdre la diversité des langues sur la planète contribue (un peu trop à mon goût) à une certaine forme d'uniformisation des pensées.
              • [^] # Re: gettext ?

                Posté par  (site web personnel) . Évalué à 2.

                Parce que dans les endroits colonisés, c'était une langue par village

                Ça fait un peu colonialiste ta remarque.
                C'est peut-être volontairement excessif, mais c'est n'importe quoi.
                Je te conseille humblement de te procurer un livre d'histoire de la colonisation (pas trop ancien). Ou alors de réfléchir 2 secondes: comment se faisait les échanges (commerce, guerre, mariages, ...) sans langue commune? Ainsi, les premiers voyageurs en Afrique ont-ils trouvés des états, des routes, des hôpitaux, des universités, une administration, etc. (à ce sujet, bonne occasion de relire Aimé Césaire).

                Bien sûr, il y avait, il y a encore, des langues différentes selon les régions (ou les territoires, l'étendue géographique est énorme), mais il en va de même en France:
                jusque dans les années 1970, la langue maternelle de certains enfants était la langue régionale. Je dis bien langue et non patois, ces langues sont des dérivés du latin ou du celte, etc. et pas du tout un français couleur locale. Par exemple: le parlanjhe en Poitou-Charentes-Vendée, le picard dans le nord, l'occitan, le basque, le breton, ... la liste est longue.

                Perdre sa langue c'est abandonner sa culture.
                C'est vrai dans la mesure on l'on considère que la structure de pensée se retrouve dans la structure de la langue. Mais ça se retrouve aussi dans certains mot du vocabulaires ne pouvant exister dans les autres langues. Comme en inuit ou il y a quelques dizaines de mots pour désigner des couleurs que le français rassemble dans le... blanc. Dans ce cas, il est évident qu'un poème inuit sur la neige perdrait beaucoup de sens traduit en français!

                "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

                • [^] # Re: gettext ?

                  Posté par  . Évalué à 2.

                  > Comme en inuit ou il y a quelques dizaines de mots pour désigner des couleurs que le français rassemble dans le... blanc. Dans ce cas, il est évident qu'un poème inuit sur la neige perdrait beaucoup de sens traduit en français!

                  C'est pas une légende urbaine ça? (ou alors un mélange d'une légende urbaine et des nuanciers japonais qui distingue plusieurs blanc?)

                  http://en.wikipedia.org/wiki/Eskimo_words_for_snow

                  (sinon, plus facile d'exprimer un algo récursif en caml qu'en C pour expliquer en quoi différentes langue peuvent avoir une certaine richesse (c'est en quelles langues que debian veut dire "je me la pète" et ubuntu "je ne sais pas configurer debian"? (vi j'ai été traumatissé par les langages ml (ça se voit non?))))
                  • [^] # Re: gettext ?

                    Posté par  (site web personnel) . Évalué à 2.

                    légende urbaine
                    très possible, mais ma copine m'a raconté ça en revenant de 3 mois au Groenland!

                    "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

                  • [^] # de quoi se mousser comme des blanc en neige

                    Posté par  (site web personnel) . Évalué à 2.

                    (blanc) ivoire, (blanc) crème, (blanc) nacré, blanc brut, blanc neutre, blanc dur, blanc gris, blanc teinté, blanc vorace ou vif, ...

                    voila sans effort différents blancs en français que j'ai déjà rencontré dans divers écrits, certes ce n'est pas un mot spécifique mais la richesse d'une langue est dans la capacité d'être combiné, non ?

                    sinon pour Ubuntu, debian & gentoo :
                    Ubuntu is an African word meaning 'Humanity to others',
                    Debian is an African word meaning 'I have no friend',
                    Gentoo is an African word meaning ' I have neither friend nor life'.
                  • [^] # Re: gettext ?

                    Posté par  (site web personnel) . Évalué à 3.

                    Pour ML, oui mais non.

                    ML, comme C, est "Turing Complet" et a donc exactement la meme expressivite'. Simplement, certains algorithmes s'ecrivrent plus "facilement/elegamment" en ML (Haskell, Scheme, etc) qu'en C (Ada, Java, APL, etc).

                    En revanche, dans le cas des langues naturelles et de ce qu'elles vehiculent, on se frotte non plus a la completude de Turing mais plutot a l'hypothese de Sapir-Whorf.

                    Ensuite, il faut se rappeler qu'il n'y a pas de bijection entre les langues naturelles, parfois meme pas de surjection (alors qu'une semantique denotationelle d'un langage informatique va souvent reposer sur le Lambda Calcul, type' ou non, ce qui fait deja la moitie' du travail). Bref, en l'abscence d'un critere d'expressivite' des langues naturelles, la diversite' des langues reste necessaire pour eviter une perte de connaissance collective (mais paradoxalement, parfois peu partagee, en raison du nombre et de la geolocalisation des utilisateurs de la langue)
              • [^] # Re: gettext ?

                Posté par  . Évalué à 1.

                Parce que dans les endroits colonisés, c'était une langue par village et que c'était super bordélique

                Remarque en passant : dans les endroits non colonisés, ça devait être la même chose.

                En fait, je pense que imposer sa langue c'est simplement se comporter en colonialiste. Ne mélangeons pas tout.
              • [^] # Re: gettext ?

                Posté par  (site web personnel) . Évalué à 2.

                >>>Est-ce que la culture est identique entre un Anglais, un canadiens (hors Québec) et un Etats-Unien? non (essayez de les mélangez pour voir...)

                Sans aller aussi loin, je me souviens d'un ami du sud de la France, qui m'expliquait que le Nord de la France commençait à ...Albi !!!

                D'ailleurs, dans le film récent "bienvenue chez les ch'tis", quand Kad est muté dans le Nord, il commence par comprendre à Lyon, puis quand son ami le DRH insiste, il comprend Paris :-)

                Et en restant en France, un corse et un lorrain autont-ils la même approche du travail, rythme/horaires de travail ?

                Pour prendre un exemple extrême (en restant en Europe), un espagnol et un allemand doivent avoir une approche un peu différente du travail, des horaires...
                D'ailleurs toi qui vit en Allemagne (si je ne me gourre), tu bosses peut-être avec des espagnols ?

                Un de mes amis a bossé en Turquie, et il a adoré. Il m'a dit que parmi les consultants non turcs sur le projet, les anglo-saxons sont partis les premiers, car ils ne se "comprenaient" pas bien avec la culture méditerranéenne locale. Rien à voir avec la compétence des personnes.

                ウィズコロナ

                • [^] # HS perso

                  Posté par  (site web personnel) . Évalué à 4.

                  D'ailleurs toi qui vit en Allemagne (si je ne me gourre), tu bosses peut-être avec des espagnols ?

                  Je vis en Allemagne, mais je suis passé à mon compte (j'essaye :) ), et mes collègues sont tous par messagerie instantanée aux 4 coins du monde, alors mon exemple n'est pas un bon exemple :)

                  Mais sinon, en tant qu'étrangler dans un pays c'est très différent : tu as tendance a rester avec des gens de ta nationalité (y compris au boulot si tu y travaille, généralement tu es embauché pour ta spécificité à comprendre ton pays d'origine, donc tu navigue dans un monde qui ressemble à ton pays d'origine), ça fait des petits groupes, non représentatif de la population.
                  Pas facile de comparer dans cette situation.

                  Mais globalement, pas besoin d'aller chercher l'Espagne, la France suffit pour comparer à l'Allemagne:
                  - Un français va discuter au café avant la réunion pour négocier, et va arriver en retard à la réunion
                  - Un Allemand va arriver à la réunion à l'heure, et va tout discuter à la réunion.
                  Alors quand 2 entreprises, l'une française et l'autre allemande, essayent de négocier ou faire un partenariat, si il n'y a pas d'allemands ou de sensibilité allemande dans la société française et pas de français ou de sensibilité française dans la société allemande, tu a 99% de chances de ça foire non pas pour des raisons techniques, mais culturelles... Un français qui parlerait un allemand parfait de l'école, donc en enlevant la barrière de la langue, n'aidera pas un seul instant... Ce n'est pas la langue qui bloque le plus, mais la culture...
    • [^] # Commentaire supprimé

      Posté par  . Évalué à 2.

      Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: gettext ?

      Posté par  . Évalué à 3.

      Mouais, ca vaudrait le coup de remettre à jour les arguments. gettext sait depuis quelque temps faire des pluriels divers avec ngettext. Son premier exemple s'écrirait donc: printf( ngettext("I scanned %g directory.", "I scanned %g directories.", dir_scan_count), dir_scan_count); C'est vrai que c'est un peu compliqué, mais c'est très facile à utiliser pour les traducteurs (le traducteur n'a qu'à utiliser un traitement de texte sans se poser de question sur la syntaxe), et toutes les formes de pluriels marchent. maketext m'a l'air un peu compliqué à utiliser pour le traducteur, surtout si il doit se taper toute la syntaxe perl ... Est-ce que le traducteur doit vraiment taper tout ça dans l'exemple qu'il donne ?
        sub {  # pretend the English strings are in Italian
          my($handle, $files, $dirs) = @_[0,1,2];
          return "I didn't find any files" unless $files;
          return join '',
            "I found ",
            $handle->quant($files, 'file'),
            " in ",
            $handle->quant($dirs,  'directory'),
            ".";
        }
      
  • # Comprends pas

    Posté par  . Évalué à 6.

    Une des problématique majeure du logiciel libre concerne la localisation des logiciels

    Comprends pas :
    — ils sont sur mon disque dur ;
    — la plupart sont dans /usr/bin ;
    — sinon 'apt-cache search' et je trouve le paquet correspondant ;
    — …

    En clair : « localisation » n’est pas régionalisé dans ta phrase…
  • # Les facilités ?

    Posté par  (site web personnel) . Évalué à 10.

    la plupart des logiciels libres s'appuient sur les facilités fournit par Gettext.

    Sur l'infrastructure fournie par Gettext. Le mot facility est un faux-ami.
    D'ordinaire je ne me serais pas permis, mais vu le sujet du journal... ;o)
  • # Différence avec Rosetta

    Posté par  (site web personnel) . Évalué à 4.

    Sur le blog de Christopher Blizzard, Dimitri répond à une question d'un lecteur sur la différence entre Transiflex et Rosetta. Je vous laisse lire la réponse, mais voici un résumé :
    1. Transiflex est libre et distribué (donc on peut l'installer pour soi)
    2. Les contributions sont faites directement dans les gestionnaires de version des projets d'origine, alors que Rosetta copie les traductions dans Ubuntu et les traducteurs travaillent sur cette copie, ce qui fait que seule Ubuntu profite des traductions. Selon Dimitri, il n'y a pas de système automatique pour fusionner les traductions dans le projet d'origine, et les utilisateurs de Rosetta le font rarement eux-même (parce que la fusion peut être compliquée).
  • # Autres logiciels libres....

    Posté par  (site web personnel) . Évalué à 1.

    KBabel : utitlisé par KDE
    Lokalize : son remplacement KDE4

    (Et aussi Linguist pour les traductions de programmes Qt)
    • [^] # Re: Autres logiciels libres....

      Posté par  . Évalué à 2.

      Oui... Mais ces logiciels ne sont pas des dépôts de traduction.
      Ils ne font "que" faciliter la traduction, mais ne permettent en rien (du moins, me semble-t-il) de faire des envois en upstream, et toutes les autres joyeusetés dont parle le journal.
    • [^] # Re: Autres logiciels libres....

      Posté par  . Évalué à 4.

      L'objet du journal est de parler des plateformes l10n et plus particulièrement de Transifex et pas des outils permettant de traiter les fichiers de traductions.

      Comme tu l'as souligné, les outils pour traiter les fichiers de traduction sont relativement éprouvés, gettext fournit un mode emacs, mais il y a des outils plus user-friendly comme kBabel (qui est assez populaire parmi les traducteurs de FedoraProject), gtranslator etc ...

      Le gros problème des traducteurs se résume principalement à un mot: "collaboration".
      Collaboration entre traducteurs, collaboration traducteur/développeur, collaboration distribution/upstream etc ....

      FedoraProject utilisait Damned Lies pour gérer les traductions, le problème est DL dépends des outils GNOME (intltool et gnome-doc-utils), pas très pratique pour collaborer avec d'autres projets.
      C'est là que Transifex intervient, il réalise une abstraction du VCS utilisé, il peut utiliser le système d'authentification du projet, les fichiers sont directement envoyé aux projets upstream contrairement à Rosetta donc pas de doublons.
      Dans Rosetta, soit le projet est hébergé par Launchpad (sapusaipalibre), soit on importe le projet que l'on veut traduire, et dans ce dernier cas, on duplique l'effort de traduction, il faut fusionner à la main. Bref c'est un bordel sans nom, et la collaboration entre les traducteurs est nulle.

      Transifex offre un seul et unique point d'entrée pour le traducteur, il s'inscrit et permettant de créer une communauté de traducteurs à la disposition des projets inscrits. Pour beaucoup de petits projets qui ont du mal à trouver des traducteurs, c'est une aubaine.
  • # Et les autres formats...

    Posté par  (site web personnel) . Évalué à 2.

    Quelqu'un saurait par hasard s'il est possible d'utiliser un tel outils avec des ".ts" de Qt, et non uniquement avec des ".po" ?

    J'ai quelques projets Qt et j'avoue que ça m'aurait bien aidé... (gérer les traductions par mail.... c'est chiant)
    • [^] # Re: Et les autres formats...

      Posté par  . Évalué à 2.

      A te dire vrai, je ne saurais pas te dire mis à part que KDE était intéressé par Transifex.
      Le mieux est de demander directement aux mainteneurs :
      * soit sur le groupe google
      * soit sur le chan irc #transifex (réseau freenode)
      Néanmoins, si ce n'est pas déjà le cas, ça pourrait éventuellement intéresser Transifex de supporter l'infrastructure l10n de Qt, un des objectifs de transifex étant de réaliser une abstraction des différentes infrastructures (VCS, authentification, voire plus)
  • # Utilisation

    Posté par  . Évalué à 1.

    Bonjour, je voudrai savoir, concernant transifex, comment ce logiciel est-il utilisé du point de vue du traducteur ?

    Je voudrai savoir s'il y a des fonctions de recherche, de remplacement dans un fichier .po.

    Je voudrai savoir aussi en quoi il se distingue de Pootle s'il vous plaît ? Enfin, j'aimerai savoir si ce logiciel aura vocation à être hébergé ailleurs que par le projet fedora.

    Merci beaucoup.
    • [^] # Re: Utilisation

      Posté par  . Évalué à 3.

      1. Le plus simple est d'aller sur l'instance FedoraProject pour voir à quoi ça ressemble.
      2. ce n'est pas l'objet de Transifex, Transifex gère l'aspect collaboratif, si c'est pour éditer les fichiers de traductions, il faut te tourner vers les éditeurs dédiés comme emacs, kBabel, gtranslator.
      3. Pootle gère très mal les VCS distant, Transifex agit comme un portail capable de se connecter à différents projets.
      4. auto-citation:
      "il prend son envol pour devenir un projet upstream à part entière."
      Le développement de Transifex n'est plus hébergé par Fedora.
      Même quand il était hebergé sur fedorahosted, toutes les contributions étaient les bienvenues. (*)
      Je ne connais pas la politique d'hébergement de l'instance FedoraProject, mais tu peux l'installer en local (Transifex contrairement à Launchpad est *libre*)

      (*) FedoraProject ne se limite pas à la distribution Fedora Linux, tu peux tout à fait participer à un projet hébergé par FP.o sans forcément utiliser la distribution éponyme.
  • # plateforme de traduction pour extensions

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Juste pour info, parmi les plateformes de traduction, il y a http://www.babelzilla.org/ qui permet de traduire facilement les extensions d'applis basées sur Gecko (entre autre les extensions pour firefox). Un développeur peut y déposer une extension, et les internautes peuvent traduire toutes les chaînes à traduire du logiciel.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.