pb avec le fichier de langue d'un plugin en développement.

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] pb avec le fichier de langue d'un plugin en développement.

    Bonjour,

    J'essaye d'intégrer un fichier de langue à un plugin et je n'arrive pas à obtenir les traductions dans le code (ça marche pour les paramètres du plugin).

    Mon plugin contient des paramètres et j'arrive à afficher les traductions du fichier langues au niveau des paramètres (une fois que le plugin est activé), par contre, ce plugin envoie un message de compte rendu d'éxécution et là, je n'arrive pas à obtenir les traductions contenues dans le fichier de langue (seulement le mot clé).

    Mon fichier de langues a pour nom :
    fr-FR.plg_system_ezrealtyplg.ini
    Ce fichier s'installe dans le répertoire :
    racine_du_site_joomla/administrator/language/fr-FR

    le fichier xml d'installation contient :
    <languages folder="langues/site">
    <language tag="en-GB">en-GB.plg_system_ezrealtyplg.ini</language>
    <language tag="fr-FR">fr-FR.plg_system_ezrealtyplg.ini</language>
    </languages>
    Cette partie language n'est pas incluse dans un tag <administration> mais le fichier s'installe avec les fichiers de langues de la partie admçinistration, j'imagine que c'est une particularité des plugins. Cependant, il y a des fichiers de langues pour les plugins avec les fichiers de langue du site (je ne comprends pas comment on peut arriver à les installer). J'ai essayéé de dupliquer manuellement le fichier qui s'est installé avec les fichiers de langues de l'administration dans le répertoire de ceux du site : cela n'a rien changé (c'est toujours mon mot clé qui s'affiche).

    Le fichier de langue est bien reconnu car c'est bien une traduction issue de son contenu qui s'affiche au niveau des paramètres une fois que le plugin est activé.

    J'ai mis une ligne php :
    Code PHP:
    JPlugin::loadLanguage'plg_system_ezrealtyplg'); 
    dans la fonction du constructeur et j'ai aussi mis cette ligne dans la fonction qui contient le code où se trouve le mot clé à traduire.

    J'invoque le fichier de langue par la ligne :
    Code PHP:
    //                $my_mail->subject=sprintf ( JText::_( 'MAILSUBJECT' ), JURI::base());
                    
    $my_mail->subject=JText::_'LOGLEVEL' ); 
    (pour tester, j'ai remplacé la ligne contenant MAILSUBJECT par une contenant LOGLEVEL puisque je suis sûr de ce mot clé qui est reconnu au niveau des paramètres.)

    Mon fichier de langue contient :
    MAILSUBJECT=Hello : Site %s rapport du traitement des annonces
    MAILSUBJECTSEND_MSG_ACTIVATE=Bonjour %s.\n\nVous venez d'être inscrit sur le site ".JURI::base()." par un script automatique.\nAvant de pouvoir vous connecter, vous devez valider votre inscription.\nPour valider votre inscription vpous pouvez utiliser le lien ci-dessous :\n%s\n\nVotre nom de login est : %s\nVotre mot de passe est : %s\n
    LOGLEVEL=Niveau de log
    LOGLEVELDESC=Le niveau de log permet d'écrire des traces actuellement, il ne peut prendre que les valeurs 0 ou 1, s'il n'est pas égal à 0 il y aura écriture dans un fichier de log. En utilisation normale, il faut le laisser à 0. Autrement, on écrit des fichiers inutilisés sur le disque dur.
    Comme je n'arrive pas à trouver les fichiers xml des plugins déjà installés je ne peux que faire des suppositions, j'ai bien essayé de télécharger quelques plugins pour voir comment les fichiers de langues y étaient gérés mais sans succès.

    J'ai beau chercher, j'ai l'impression de tourner en rond.

    J'imagine que cela a déjà été fait et j'espère que quelqu'un pourra me dire ce qui m'échappe.

    Merci d'avance.
    Dernière édition par Jpaul007 à 23/07/2011, 14h08
    Amicalement,
    Jpaul

    http://www.jp-olivier.net/r

  • #2
    Re : pb avec le fichier de langue d'un plugin en développement.

    Je ne suis pas codeur, mais...
    Sauf erreur, le fichier de langue est automatiquement recherché (au fait, pour quelle version de Joomla! ?).
    Ensuite, tu dois trouver les XML des plugins dans le répertoire "plugins", puis le sous-répertoire correspondant au type (system pour ton cas) et le nom du plugin si tu es en 1.6/7
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Re : pb avec le fichier de langue d'un plugin en développement.

      Envoyé par Jpaul007 Voir le message
      Cette partie language n'est pas incluse dans un tag <administration> mais le fichier s'installe avec les fichiers de langues de la partie admçinistration, j'imagine que c'est une particularité des plugins.

      J'ai mis une ligne php :
      Code PHP:
      JPlugin::loadLanguage'plg_system_ezrealtyplg'); 
      dans la fonction du constructeur.
      Les fichiers langues sont dans l'admin donc il faut lui indiquer lors de l'appel de la méthode loadLanguage() :

      Code PHP:
      JPlugin::loadLanguage'plg_system_ezrealtyplg'JPATH_ADMINISTRATOR); 
      Dans le cas contraire, il prend JPATH_BASE comme valeur par défaut.

      Mais JPATH_BASE lorsque l'appel est réalisé côté 'site' est équivalent à JPATH_SITE et non à JPATH_ADMINISTRATOR...


      Fly06_Fr (http://www.fly06.fr/)
      -------------------------------------------
      Classe MooTools pour Recherche Asynchrone (Ajax) : http://forum.joomla.fr/showthread.ph...one-%28Ajax%29

      Commentaire


      • #4
        Re : pb avec le fichier de langue d'un plugin en développement.

        Merci pour vos réponses.

        Je savais bien que j'avais oublié de préciser quelque chose : le plugin que je développe est pour Joomla 1.5.
        Eh oui, merci, il y a bien des fichiers xml pour les plugins installés (j'ai tellement tourné le problème dans tous les sens que je ne sais plus très bien où j'en suis).
        Le problème c'est que je n'arrive à trouver aucune des clés des fichiers de langue dans le code et pas plus les cles qui sont dans des fichiers php de plugins, sous la forme :
        Code PHP:
        JText::_'CLE' ); 
        dans les fichiers de langue (sauf éventuellement dans fr-FR.ini). Ca n'est pas logique je dois faire une fausse manip mais cette piste ne me permet pas d'avancer.

        J'ai bien cru que la réponse de Fly06_Fr était la clé du problème mais j'ai tenté de l'appliquer et ça n'a rien changé. Là aussi, j'ai des doutes sur ce que je fais. Je suis peut être fatigué, je vais laisser cela décanter et reprendre plus tard à tête reposée.

        En tout cas merci encore pour vos réponses.
        Amicalement,
        Jpaul

        http://www.jp-olivier.net/r

        Commentaire


        • #5
          Re : pb avec le fichier de langue d'un plugin en développement.

          Regarde par exemple le plugin système debug : il comporte des JText utilisant des chaînes que tu retrouveras dans "administrator/language/fr-FR/fr-FR.plg_system_debug.ini"
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          Commentaire


          • #6
            Re : pb avec le fichier de langue d'un plugin en développement.

            Envoyé par Jpaul007 Voir le message
            J'ai bien cru que la réponse de Fly06_Fr était la clé du problème mais j'ai tenté de l'appliquer et ça n'a rien changé. Là aussi, j'ai des doutes sur ce que je fais. Je suis peut être fatigué, je vais laisser cela décanter et reprendre plus tard à tête reposée.
            Trés étonnant car tu avais bien un problème à ce niveau,

            Ce plugin, on peut le voir ? Tu peux le mettre en pj ou en mp ?
            Fly06_Fr (http://www.fly06.fr/)
            -------------------------------------------
            Classe MooTools pour Recherche Asynchrone (Ajax) : http://forum.joomla.fr/showthread.ph...one-%28Ajax%29

            Commentaire


            • #7
              Re : pb avec le fichier de langue d'un plugin en développement.

              Envoyé par Fly06_Fr Voir le message
              Trés étonnant car tu avais bien un problème à ce niveau,

              Ce plugin, on peut le voir ? Tu peux le mettre en pj ou en mp ?
              He oui, cela explique pourquoi, le fichier de message était bien pris en compte quand je réglais les paramètres en mode admin et pas quand le plugin s'exécutait dans un contexte utilisateur.
              Mais par contre, il doit subsister un problème. Ton idée de fournir le plugin me semble très pertinente mais comme c'est un peu gros, j'ai réécrit un plugin plus petit qui ne fait que mettre en oeuvre le fichier de langues et qui écrit dans un fichier, je vous le met en pièce jointe (il pose le même problème). Je suis sûr qu'il y a une erreur grosse comme moi mais je n'arrive pas à voir ce qui cloche.
              Donc :
              - le plugin s'installe normalement par le panneau d'administration (il faut bien sûr l'activer)
              - il est déclenché quand un utilisateur se logue
              - il écrit du texte dans un fichier 'tracetstplg.txt' à la racine du site joomla (désolé pour la pollution mais j'ai fait au plus simple).

              Chez moi cela écrit :
              Code:
              Les deux lignes qui suivent devraient contenir : 'Voici le texte du message...'
              tstplgmessage
              TSTPLGMESSAGE
              ----------
              alors que si le ,fichier de langues était pris en compte je devrais avoir :
              Code:
              Les deux lignes qui suivent devraient contenir : 'Voici le texte du message...'
              Voici le texte du message... 
              Voici le texte du message... 
              ----------
              Je vais probablement avoir honte quand je vous allez me montrer mon erreur mais comme je ne vois pas ce qu'il faut corriger...
              Fichiers joints
              Amicalement,
              Jpaul

              http://www.jp-olivier.net/r

              Commentaire


              • #8
                Re : pb avec le fichier de langue d'un plugin en développement.

                Envoyé par Jpaul007 Voir le message
                Cette partie language n'est pas incluse dans un tag <administration> mais le fichier s'installe avec les fichiers de langues de la partie admçinistration, j'imagine que c'est une particularité des plugins. Cependant, il y a des fichiers de langues pour les plugins avec les fichiers de langue du site (je ne comprends pas comment on peut arriver à les installer).
                Récemment j'ai eu exactement le même problème pour un plugin de type recherche : Joomla me le copie dans le dossier du backend et c'est pas cool du tout car le plugin est utilisé uniquement dans le frontend.

                Le dossier /administrator pouvant être protégé par un .htpasswd qui en restreindre l'accès; la solution de charger le fichier de langue en spécifiant que ce fichier se trouve dans le dossier de l'admin me convenait pas du tout.

                Dans mon cas, il n'y avait que deux mots-cléfs; je les ai copié dans le fichier .ini de mon composant.

                Cela a répondu à mon besoin mais ce n'était pas une réponse technique valable.

                Pourquoi diable Joomla va-t-il copier le fichier de langue dans l'admin ?

                Envoyé par Jpaul007 Voir le message
                J'ai essayéé de dupliquer manuellement le fichier qui s'est installé avec les fichiers de langues de l'administration dans le répertoire de ceux du site : cela n'a rien changé (c'est toujours mon mot clé qui s'affiche).
                Là, chez moi, c'était OK : si je copiais manuellement mon fichier depuis le dossier de l'admin dans le dossier frontend, mes mots-clés étaient bien traduits.

                Le code PHP que j'utilise, sous Joomla 1.5, est

                Code PHP:
                $language=& JFactory::getLanguage(); 
                $language->load('plg_search_allevents'); 
                Si le fichier fr-FR.plg_search_allevents.ini est dans le frontend, c'était OK.
                Christophe (cavo789)
                Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                Commentaire


                • #9
                  Re : pb avec le fichier de langue d'un plugin en développement.

                  Envoyé par Jpaul007 Voir le message
                  Ton idée de fournir le plugin me semble très pertinente mais comme c'est un peu gros, j'ai réécrit un plugin plus petit qui ne fait que mettre en oeuvre le fichier de langues et qui écrit dans un fichier, je vous le met en pièce jointe (il pose le même problème). Je suis sûr qu'il y a une erreur grosse comme moi mais je n'arrive pas à voir ce qui cloche.
                  Excellente idée pour isoler le problème.

                  Je viens d'installer, d'activer et de tester le plugin (en me connectant au FE).

                  Dans le fichier tracetstplg.txt à la racine de mon site de test (J1.5.23), j'obtiens exactement ce quoi on peut s'attendre :

                  Les deux lignes qui suivent devraient contenir : 'Voici le texte du message...'
                  Voici le texte du message...
                  Voici le texte du message...
                  ----------
                  Très beau travail donc, il fonctionne parfaitement

                  Par contre la ligne de code :

                  Code PHP:
                  JPlugin::loadLanguage'plg_system_tstplg'JPATH_ADMINISTRATOR); 
                  au début de la méthode onLoginUser() est inutile puisque c'est dèjà fait dans le constructeur mais j'imagine que tu le sais parfaitement.

                  Lorsqu'un problème stupide nous met en échec on en arrive à douter de tout
                  Fly06_Fr (http://www.fly06.fr/)
                  -------------------------------------------
                  Classe MooTools pour Recherche Asynchrone (Ajax) : http://forum.joomla.fr/showthread.ph...one-%28Ajax%29

                  Commentaire


                  • #10
                    Re : pb avec le fichier de langue d'un plugin en développement.

                    Un grand merci à toi Fly06_Fr.
                    Effectivement, j'ai un problème avec la copie du site de mon client (qui me sort des erreurs avec Joomfish et je n'avais pas pris attention) mais ça marche sur une autre copie...
                    En tout cas, tu m'a indiqué un problème avec le fait qu'il fallait que je force le chemin vers la partie administrateur.

                    Merci à toi aussi cavo789, tu avais raison, mon code était correct.

                    Merci encore au trois personnes qui m'ont répondu sur ce post : je tournais vraiment en rond. Maintenant, je vais pouvoir avancer.

                    Au fait si quelqu'un retombe sur ce post : la raison pour laquelle je ne trouvais pas de correspondance entre les clés des fichiers de langue et le contenu des fichiers php, c'est a cause des majuscules (la casse n'est pas discriminante).
                    Amicalement,
                    Jpaul

                    http://www.jp-olivier.net/r

                    Commentaire


                    • #11
                      Re : pb avec le fichier de langue d'un plugin en développement.

                      Bon ben pour info, le problème semble bien lié à JoomFish et il m'a suffit de faire une version anglaise du fichier pour que les libellés du fichier de langues apparaissent.
                      Amicalement,
                      Jpaul

                      http://www.jp-olivier.net/r

                      Commentaire

                      Annonce

                      Réduire
                      Aucune annonce pour le moment.

                      Partenaire de l'association

                      Réduire

                      Hébergeur Web PlanetHoster
                      Travaille ...
                      X