IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Générer un fichier .po / xgettext


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut Générer un fichier .po / xgettext
    Bonjour,

    Je ne sais pas si je suis exactement dans la bonne catégorie pour ce sujet, si c'est le cas je m'en excuse.

    Pour un projet d’étude je rencontre un problème avec la fonction gettext, je m'explique, j'ai plusieurs fichier .phtml qui contiennent des mots statiques que j'ai entourés de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? echo _g('Bonjour'); ?>
    Je suis sous Debian, donc j'utilise cette commande afin de tenter de générer le fichier .po.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xgettext -f - --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o paht/locale/es_US/LC_MESSAGES/trad.po
    mais le fichier ne se genere pas du-tout.
    Je vous en remercie d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Bonjour,

    je suis sur Debian aussi, mais je ne trouve pas xgettext
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    je suis sur Debian aussi, mais je ne trouve pas xgettext
    Bonjour,

    Il suffit d'installer la lib gettext

    www.gnu.org/software/gettext/

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    ah!? ce n'est pas installé par défaut, alors forcément
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    c'est l'option -f - qui ne permet pas de créer le fichier de sortie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    $ ls
    test.phtml
    $ cat ./test.phtml 
    <? echo _g('Bonjour'); ?>
    $ xgettext -f - --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o - > test.po
    ./test.phtml
    ^D
    $ cat ./test.po
    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
    # This file is distributed under the same license as the PACKAGE package.
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    #, fuzzy
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2014-04-16 12:21+0200\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <LL@li.org>\n"
    "Language: \n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: 8bit\n"
     
    #: test.phtml:1
    msgid "Bonjour"
    msgstr ""
    $
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    c'est l'option -f - qui ne permet pas de créer le fichier de sortie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    $ ls
    test.phtml
    $ cat ./test.phtml 
    <? echo _g('Bonjour'); ?>
    $ xgettext -f - --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o - > test.po
    ./test.phtml
    ^D
    $ cat ./test.po
    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
    # This file is distributed under the same license as the PACKAGE package.
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    #, fuzzy
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2014-04-16 12:21+0200\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <LL@li.org>\n"
    "Language: \n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: 8bit\n"
     
    #: test.phtml:1
    msgid "Bonjour"
    msgstr ""
    $
    Merci pour la réponse, je viens d'essayer mais même chose peut-etre que je me trompe quelque part dans ma ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xgettext -f - --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o paht/locale/es_ES/LC_MESSAGES/trad.po
    Voici l'arborescence de mes sources :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd : project/locale/en_ES/LC_MESSAGE
    J’exécute depuis project xgettext sachant que mes fichier qui contiennent la fonction _g se trouvent ici :

    profil, message
    dans le répertoire profil on y trouve profil.phtml et dans message message.phtml

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    l'option -f indique un fichier dans lequel lire le nom des fichiers à traiter, en l'occurrence l'entrée standard (-).
    puisque tu n'as qu'un fichier à traiter, pourquoi l'utiliser ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xgettext --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./test.po ./test.phtml
    /!\ paht != path
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    l'option -f indique un fichier dans lequel lire le nom des fichiers à traiter, en l'occurrence l'entrée standard (-).
    puisque tu n'as qu'un fichier à traiter, pourquoi l'utiliser ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xgettext --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./test.po ./test.phtml
    /!\ paht != path

    En faite j'ai plusieurs fichier à traiter dans les répertoires.

  9. #9
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    En faite j'ai plusieurs fichier à traiter dans les répertoires.
    et un seul fichier de sortie ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    et un seul fichier de sortie ?
    Oui, exemple: le contenu de profil.phtml et view.phtml
    seront tous dans le fichier trad.po
    Je viens d'essayer pour un seul fichier sa fonctionne nickel! Mais pour plusieurs je ne vois pas l'idée

  11. #11
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    $ echo "===" | cat ./test.phtml - ./test2.phtml
    <? echo _g('Bonjour'); ?>
    ===
    <? echo _g('Coucou'); ?>
    $ xgettext --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./test.po ./test.phtml ./test2.phtml 
    $ cat ./test.po 
    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
    # This file is distributed under the same license as the PACKAGE package.
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    #, fuzzy
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2014-04-16 13:37+0200\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <LL@li.org>\n"
    "Language: \n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: 8bit\n"
     
    #: test.phtml:1
    msgid "Bonjour"
    msgstr ""
     
    #: test2.phtml:1
    msgid "Coucou"
    msgstr ""
    $
    tout simplement !
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    $ echo "===" | cat ./test.phtml - ./test2.phtml
    <? echo _g('Bonjour'); ?>
    ===
    <? echo _g('Coucou'); ?>
    $ xgettext --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./test.po ./test.phtml ./test2.phtml 
    $ cat ./test.po 
    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
    # This file is distributed under the same license as the PACKAGE package.
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    #, fuzzy
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2014-04-16 13:37+0200\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <LL@li.org>\n"
    "Language: \n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: 8bit\n"
     
    #: test.phtml:1
    msgid "Bonjour"
    msgstr ""
     
    #: test2.phtml:1
    msgid "Coucou"
    msgstr ""
    $
    tout simplement !
    Si simple que ça ?
    Mais le problème maintenant c'est que je veux que le fichier se trouvant dans le repertoire profil et message puissent etre dans le fichier trad et d'autre repertoire aussi afin d'avoir par exemple 5repertoire et chacun contient 5/6 fichier et que tout le contenu puisse etre dans trad.po

  13. #13
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    ça ne pose probablement pas de problème (je te rappelle que ce programme n'était pas installé il y a trois heures) , tu dois pouvoir indiquer autant de chemins/fichiers que la ligne de commande peut comporter de caractères.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ça ne pose probablement pas de problème (je te rappelle que ce programme n'était pas installé il y a trois heures) , tu dois pouvoir indiquer autant de chemins/fichiers que la ligne de commande peut comporter de caractères.
    Oui en effet, je viens de penser de m'y prendre de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xgettext -f --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./test.po ./*.phtml

    Mais je vois toujours pas comment je pourrais rentrer dans tout les répertoire et effectué l’opération

    sachant que j’exécute la ligne de commande depuis la racine de mes répertoires qui contiennent les fichier .phtml
    et pouvoir extraire tout seulement dans le fichier test.po

  15. #15
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    il ne faut plus utiliser l'option -f.

    j'ai pas tout compris de la hiérarchie de tes répertoires (un peit ls -R ?)
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    shopt -s globstar && \
    xgettext --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./test.po ./**/*.phtml
    si globstar n'est pas disponible, alors alimente un tableau avec une boucle...
    ?

    sinon, ou même si tu préfères, utilise un fichier qui listera les chemins/fichiers, que tu passeras alors à l'option -f.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    il ne faut plus utiliser l'option -f.

    j'ai pas tout compris de la hiérarchie de tes répertoires (un peit ls -R ?)
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    shopt -s globstar && \
    xgettext --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./test.po ./**/*.phtml
    si globstar n'est pas disponible, alors alimente un tableau avec une boucle...
    ?

    sinon, ou même si tu préfères, utilise un fichier qui listera les chemins/fichiers, que tu passera alors à l'option -f.
    Je vais essayer de mieux m'expliquer ^^.

    Voici mes dossier :
    Project/view/
    dans view se trouvent divers dossier, comme profil, message, avatar,tools.
    dans chacun de ces dossier en question on y trouve plusieurs fichier qui comportent l’extension .phtml
    Ce que je souhaite faire exactement c'est une fois que je fait et que je lance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xgettext --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./new.po ./*.phtml
    Je génère le fichier test.po qui lui contiendra tout les mots qui ont été entouré de la fonction _g

  17. #17
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    on reprend :
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd Project/view
    xgettext --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./new.po ./{profil,message,avatar,tools}/*.phtml
    cf. man bash /Développement des accolades
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  18. #18
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    on reprend :
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd Project/view
    xgettext --add-comments=/ -L PHP --keyword=_g --from-code=UTF-8 -o ./new.po ./{profil,message,avatar,tools}/*.phtml
    cf. man bash /Développement des accolades
    Génial ! Tu m'apprends quelque chose concernant les accolades, en tout cas je te remercie !
    Une petite question par curiosité, et si dans le repertoire message il contient lui aussi un sous dossier exemple Comment on pourrait s'y prendre ?

  19. #19
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    ./{profil,message{,/send},avatar,tools}/*.phtml
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  20. #20
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    ./{profil,message{,/send},avatar,tools}/*.phtml
    Je te remercie pour ton aide qui N_BaH ! et te souhaite une bonne soirée.

Discussions similaires

  1. [WinDev] Générer un fichier .pdf
    Par vaness59199 dans le forum WinDev
    Réponses: 2
    Dernier message: 30/07/2006, 18h52
  2. Réponses: 4
    Dernier message: 02/05/2005, 20h25
  3. Générer des fichiers PDF
    Par bobbafet dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/11/2004, 23h53
  4. Réponses: 2
    Dernier message: 27/05/2004, 00h40
  5. Réponses: 2
    Dernier message: 26/02/2003, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo