Forum Programmation.perl Localisation

Posté par  .
Étiquettes : aucune
0
13
août
2004
Bonjour,

Voilà, je crée actuellement un logiciel en Perl (que je devrais bientôt rendre public) et j'ai envie de faire une traduction.

C'est pour cela que j'en appelle à votre science et votre expérience. Si vous avez déjà fait ça, comment l'avez-vous fait ?

Pour info, ce logiciel fait moins de 1500 lignes de code (~1200 sans les commentaires), ce dont je suis plutôt content car les logiciels du même genre font plutôt 3000 lignes avec des fonctionnalités en moins. Il n'y a pas beaucoup de texte à traduire. Tout est en UTF-8 (natif ou converti), donc de problème de i18n.

Je pense faire quelque chose comme un tableau @translation, avec comme clé "french", "english"... du genre
$translation[1]{"english"} = "File not found";
$translation[1]{"french"} = "Fichier non trouvé";

Un coup d'oeil sur CPAN m'a donné un lien vers un module Gettext, que je connais depuis le C. Mais je n'ai pas envie d'imposer un module supplémentaire à l'utilisateur et si c'est trop compliqué à utiliser, le jeu n'en vaudra pas la chandelle.

Des idées ?
  • # Gettext, gettext et encore gettext

    Posté par  . Évalué à 2.

    Franchement, je ne vois pas pourquoi ne pas utiliser gettext. C'est vraiment l'outil qu'il faut utiliser pour faire ça. Pour l'histoire de module supplémentaire, faut pas s'en faire, je pense que c'est un module installé partout où il y a PERL. Quant à la complexité, si t'as déjà utilisé gettext en C, tu sais que sa simplicité est un de ses gros avantages.
  • # fichier séparé

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

    Plutôt que de mettre ces textes dans le code, il pourrait être plus pratique de les mettre dans un fichier séparé: un message par ligne et utilisation du fichier avec Tie::File (en standard dans Perl depuis 5.8.0). Suffit de faire correspondre le code d'erreur et le numéro de ligne. Je pense que c'est plus simple pour les non programmeurs qui auront à traduire les messages. Il faut juste avoir un éditeur de texte qui gère l'UTF-8 et affiche les numéros de ligne.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: fichier séparé

      Posté par  . Évalué à 1.

      Le fichier séparé, c'est déjà fait, mais je connaissais pas Tie (jusqu'à présent, j'utilisais open et eval, donc c'était pas terrible).

      Pour l'éditeur, ce sera Emacs, donc aucun problème.

      Je pense que c'est ce que je vais faire, gettext m'a l'air trop lourd, surtout pour à peine trente lignes à traduire.
      • [^] # Re: fichier séparé

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

        Pour l'éditeur, ce sera Emacs, donc aucun problème.
        Oui mais non, pas besoin d'imposer un éditeur aux traducteurs. Si qqun veut te traduire ton programme, pas besoin de lui faire installer Emacs et ses 50Mo de dépendances (j'exagère à peine: apt me dit que si j'installe emacs ça va me prendre 42,4Mo en plus sur le disque).

        Et je pensais à un fichier par traduction (mais peut-être que toi aussi).

        Je connais pas gettext mais ça a quand même l'air d'être la solution la plus standard. Mais si c'est trop lourd à mettre en place, c'est vrai que c'est pas la peine non plus.

        pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

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