VM2 Site multilingue, comment traduire les variantes panier et champs personnalisés ?

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

  • VM2 Site multilingue, comment traduire les variantes panier et champs personnalisés ?

    Bonjour à tous,

    Comment faites vous pour traduire les champs personnalisés et variantes produits ?
    Je n'ai pas trouvé de solutions..

    Merci d'avance
    Dernière édition par fischer3 à 17/02/2013, 17h15

  • #2
    Re : Virtuemart 2 traduction des champs personnalisés des produits impossible ? !!

    Up,

    Site multilingue, personne ne traduit ses champs personnalisés dans virtuemart 2 ?.....

    Commentaire


    • #3
      Re : Virtuemart 2 traduction des champs personnalisés des produits impossible ? !!

      Les champs personnalisé sont en principe écrits en français...
      Si tu ne les as pas indiqués en français, il faudrait peut être télécharger la mise à jour français

      Commentaire


      • #4
        Re : Virtuemart 2 traduction des champs personnalisés des produits impossible ? !!

        Je me suis peut être mal exprimé, j'en profite pour donner un nouveau titre au sujet qui était :
        Virtuemart 2 traduction des champs personnalisés des produits impossible ? !!
        Nouveau titre :
        VM2 Site multilingue, comment traduire les variantes panier et champs personnalisés ?

        Je ne parle donc pas de la traduction de l'interface d'administration mais bien des champs personnalisés et plus précisément les variantes panier avec un site multilingue.
        Virtuemart 2 est multilingue en natif (sauf erreur de ma part). Il y a l'onglet qui permet de traduire la page produit mais les champs personnalisés ne sont pas pris en compte.

        Pour exemple, si je mets des variantes panier aux produits comme un choix de couleur avec des prix différents, ça marche très bien, seulement il n'est pas possible de traduire cette partie de l'affichage du produit.
        lors du basculement des langages, cette partie reste non traduite.
        Dernière édition par fischer3 à 17/02/2013, 17h33

        Commentaire


        • #5
          Re : Virtuemart 2 traduction des champs personnalisés des produits impossible ? !!

          Ah, là désolé mais ce n'est plus de mon ressort... bonne recherche

          Envoyé par fischer3 Voir le message
          Je me suis peut être mal exprimé, j'en profite pour donner un nouveau titre au sujet qui était :
          Virtuemart 2 traduction des champs personnalisés des produits impossible ? !!
          Nouveau titre :
          VM2 Site multilingue, comment traduire les variantes panier et champs personnalisés ?

          Je ne parle donc pas de la traduction de l'interface d'administration mais bien des champs personnalisés avec un site multilingue.
          Dans virtuemart, il y a l'onglet qui permet de traduire la page produit mais les champs personnalisés ne sont pas pris en compte.

          Commentaire


          • #6
            Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

            Merci, merci d'avoir tenté une réponse !

            Ci dessous une première solution pour traduire les titres des variantes panier

            Citation Envoyé par electrocity:

            Il n'y a pas vraiment de solution Native proposé pour traduire les Variantes.
            Par contre les customfields produit passe par Jtext. Donc il est possible de les traduire en ajoutant les clés dan le fichier overide par exemple. Pour le fichier anglais les clés sont dans JOOMLAROOT\language\overrides\en-GB.override.ini.
            Bien sur c'est spécifique a J1.7 et supérieur.
            Donc en rentrant dans le fichier en-GB.override.ini. par exemple au PIF :
            TYPE_RED="red"
            et dans fr-FR.override.ini
            TYPE_RED="rouge"
            et entrer cette valeur dans VM "TYPE_RED"
            La traduction est possible
            Il faut juste ajouter les clés pour chaque variante à traduire.
            Dernière édition par fischer3 à 20/02/2013, 13h35

            Commentaire


            • #7
              Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

              Hello fischer3,
              L'astuce de l'overide avec fichier de langue et possible aussi mais il faudra modifier les fichiers pour inclure le Jtext de joomla.
              Idéalement, faire un plugin type "customfield" serais le mieux et évitera d'être bloqué lors des mise à jour.
              voir le répertoire JOOMLAROOT\plugins\vmcustom\specification\ ou autre plugin dans vmcustom.

              Sinon le fichier qui génére les varainte est :
              JOOMLAROOT\administrator\components\com_virtuemart \models\customfields.php
              Code PHP:
                  public function getProductCustomsFieldCart ($product) {...} 
              pour le type 'variante' la lettre abrégé est 'V'. Mais tous est traduit.
              Je pense que tu utilise le mode list est dans ce cas-ci cela n'est pas traduit d'origine.
              donc toujours dans cette fonction voir la condition
              Code PHP:
                      if ($is_list 0) {.... 
              Code PHP:
                                  foreach ($values as $key => $val) {
                                  
              $options[] = array('value' => $val'text' => $val);
                              } 
              à remplacer par
              Code PHP:
                                  foreach ($values as $key => $val) {
                                  
              $options[] = array('value' => $val'text' => jText::_($val) );
                              } 
              Et tes liste seront traduit "SI" la correspondance existe.
              http://www.st42.fr : Astuce et téléchargement d’extension Joomla! et virtuemart
              http://shop.st42.fr Catalogue extentions gratuit et Pro pour Virtuemart et Joomla

              Commentaire


              • #8
                Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

                Merci Electrocity !

                Cette phrase veut dire quoi exactement ?

                "Idéalement, faire un plugin type "customfield" serais le mieux et évitera d'être bloqué lors des mise à jour.
                voir le répertoire JOOMLAROOT\plugins\vmcustom\specification\ ou autre plugin dans vmcustom."

                Il est possible de faire un plugin spécial ? !

                Commentaire


                • #9
                  Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

                  Bonjour,

                  Perso j'utilise pour personnalise mes champs un plugin : VMCustom - dropbox.

                  moi qui n'y connait pas grand chose en php et avant de me lancer dans l'aventure, serait il possible de le modifier pour qu'il puisse réaliser la traduction comme c'est énoncé pour le customfields.php

                  Commentaire


                  • #10
                    Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

                    pour faire suite, voici le code :

                    <?php
                    defined('_JEXEC') or die( 'Direct Access to ' . basename( __FILE__ ) . ' is not allowed.' ) ;
                    //@Banquet Tables Pro custom dropbox plugin.
                    //Lets go 2.0

                    if (!class_exists('vmCustomPlugin')) require(JPATH_VM_PLUGINS . DS . 'vmcustomplugin.php');

                    class plgVmCustomDrop extends vmCustomPlugin {
                    function __construct(& $subject, $config) {
                    parent::__construct($subject, $config);

                    $varsToPush = array(
                    'custom_drop'=> array('', 'string'),
                    'custom_drop_name'=> array('', 'string'),
                    );

                    $this->setConfigParameterable('custom_params',$varsToPus h);
                    }

                    // get product param for this plugin on edit
                    function plgVmOnProductEdit($field, $product, &$row,&$retValue) {
                    if ($field->custom_element != $this->_name) return '';
                    $this->parseCustomParams($field);
                    $html ='
                    <fieldset>
                    <legend>'. JText::_('VMCUSTOM_DROP_BOX') .'</legend>
                    <table class="admintable">
                    '.VmHTML::row('input','VMCUSTOM_DROP_STRING_NAME', 'custom_param['.$row.'][custom_drop_name]',$field->custom_drop_name).'
                    '.VmHTML::row('input','VMCUSTOM_DROP_STRING','cust om_param['.$row.'][custom_drop]',$field->custom_drop).'
                    </table>
                    </fieldset>';
                    $retValue .= $html;

                    return true ;
                    }


                    function plgVmOnDisplayProductVariantFE($field,&$idx,&$grou p) {
                    // default return if it's not this plugin
                    if ($field->custom_element != $this->_name) return '';
                    $this->parseCustomParams($field);
                    $array = explode(',', $field->custom_drop);
                    $class='';
                    $html ='<select name="customPlugin['.$field->virtuemart_custom_id.']['.$this->_name.'][comment]">';
                    $html.='<option selected="selected" disabled="disabled">'.$field->custom_drop_name.'</option>';
                    foreach($array AS $selection){
                    $text= ' ( '.Jtext::_('VMCUSTOM_DROP_ADD') .Jtext::_('VMCUSTOM_DROP_CURRENCY');
                    $selectiontext= str_replace( '+',$text,$selection);
                    $grab = strstr($selectiontext,$text) ;
                    $ctext= $grab ? ' )' : '';
                    $grabnegative = strstr($selectiontext,"-") ;
                    if ($grabnegative){
                    $text= '( '.Jtext::_('VMCUSTOM_DROP_SUBTRACT') .Jtext::_('VMCUSTOM_DROP_CURRENCY');
                    $selectiontext= str_replace( '-', $text, $selection);
                    $ctext=' )';}
                    $html.='<option value="'.$field->custom_drop_name.' '.$selection .'">'.$selectiontext .$ctext.'</option>';}
                    $html .='</select>';
                    $group->display .= $html;
                    return $html;
                    }



                    function plgVmCalculateCustomVariant($product, &$productCustomsPrice,$selected){
                    $customVariant = $this->getCustomVariant($product, $productCustomsPrice,$selected);
                    if ($selection= $customVariant['comment']) {
                    $grab = strstr($selection= $customVariant['comment'],"+") ;
                    $grabNegative = strstr($selection= $customVariant['comment'],"-") ;
                    if ($grab){
                    $number = preg_replace("/[^0-9.]/", '', $grab);
                    $productCustomsPrice->custom_price = $number;}
                    if ($grabNegative){
                    $number = preg_replace("/[^0-9.]/", '', $grabNegative);
                    $productCustomsPrice->custom_price = -$number;}
                    }
                    }


                    function plgVmOnViewCart($product,$row,&$html) {
                    if (!$plgParam = $this->GetPluginInCart($product)) return '' ;
                    $html .= '<div>';
                    foreach($plgParam as $selection){
                    if(!empty($selection['comment']) ){
                    $text= ' ('.Jtext::_('VMCUSTOM_DROP_ADD') .Jtext::_('VMCUSTOM_DROP_CURRENCY');
                    $selectiontext= str_replace( '+',$text,$selection['comment']);
                    $grab = strstr($selectiontext,$text) ;
                    $ctext= $grab ? ' )' : '';
                    $grabnegative = strstr($selectiontext,"-") ;
                    if ($grabnegative){
                    $ctext=' )';
                    $text= ' ('.Jtext::_('VMCUSTOM_DROP_SUBTRACT') .Jtext::_('VMCUSTOM_DROP_CURRENCY');
                    $selectiontext= str_replace( '-', $text, $selection);}
                    $selection['comment']=str_replace( '-', $text, $selection['comment'] );
                    $selection['comment']=str_replace( '+', $text, $selection['comment'] );
                    $html .='<span>'.$selection['comment'].$ctext.'</span><br />';
                    }
                    }
                    $html .='</div>';

                    return true;
                    }


                    /*vendor order display BE */

                    function plgVmDisplayInOrderBE($item,$row,&$html ) {
                    if (empty($item->productCustom->custom_element) or $item->productCustom->custom_element != $this->_name) return '';
                    $this->plgVmOnViewCart($item,$row,$html); //same render as cart
                    }

                    /**
                    *
                    * shopper order display FE
                    */
                    function plgVmDisplayInOrderFE($item, $row, &$html) {
                    if (empty($item->productCustom->custom_element) or $item->productCustom->custom_element != $this->_name) return '';
                    $this->plgVmOnViewCart($item,$row,$html); //same render as cart
                    }

                    /**
                    * We must reimplement this triggers for joomla 1.7
                    * vmplugin triggers note by Max Milbers
                    */
                    public function plgVmOnStoreInstallPluginTable($psType) {
                    }


                    function plgVmDeclarePluginParamsCustom($psType,$name,$id, &$data){
                    return $this->declarePluginParams($psType, $name, $id, $data);
                    }

                    function plgVmSetOnTablePluginParamsCustom($name, $id, &$table){
                    return $this->setOnTablePluginParams($name, $id, $table);
                    }

                    /**
                    * Custom triggers note by Max Milbers
                    */
                    function plgVmOnDisplayEdit($virtuemart_custom_id,&$customP lugin){
                    return $this->onDisplayEditBECustom($virtuemart_custom_id,$cust omPlugin);
                    }


                    public function plgVmDisplayInOrderCustom(&$html,$item, $param,$productCustom, $row ,$view='FE'){
                    $this->plgVmDisplayInOrderCustom($html,$item, $param,$productCustom, $row ,$view);
                    }

                    public function plgVmCreateOrderLinesCustom(&$html,$item,$productC ustom, $row ){
                    }


                    }

                    // No closing tag

                    Commentaire


                    • #11
                      Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

                      pour ce meme plugin, il y a aussi un fichier xml

                      Commentaire


                      • #12
                        Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

                        Re - bonjour :

                        la solution est la suivante :

                        Sur un site multilingue, il y a des fichiers langues dans le dossier langue, prendre le fichier par exemple en-GB.com_virtuemart.ini l'editer avec notepad ++ et a la fin ajouter la ligne : COM_VIRTUEMART_MUG_COLOR-ROUGE="red" . en faire de meme avec les langue distribuer mais en changeant la traduction de red à rouge pour le FR et rott pour l'allemand dans les fichiers de langue referent.
                        dans le champ personnaliser dans l'admin de virtuemart, a rouge il suffit de le remplacer par COM_VIRTUEMART_MUG_COLOR-ROUGE et automatiquement au changement de langue, le fichier langue .ini est charge et remplace la valeur COM_VIRTUEMART_MUG_COLOR-ROUGE par la langue chargée.

                        Commentaire


                        • #13
                          Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

                          Malgrés que ta solution fonctionne, cellle-ci n'est pas "bonne".
                          J'entend par là que tu bloques ton site car toutes MAJ de VM supprimera tes modifs
                          Utilise le overide.ini pour ajouter tes valeurs.
                          voir par exemple : http://docs.joomla.org/International...or_Version_1.6 ou cherche sur le forum ou internet overide.ini+joomla.

                          strouve, pour traduire ton plugin il faudrait modifier : $selection par jText::_($selection); dans la boucle foreach je pense.
                          N'ayant pas le plugin sous la main, je ne peut pas certifier le résultat.
                          Dernière édition par electrocity à 21/02/2013, 14h54 Raison: Ajout
                          http://www.st42.fr : Astuce et téléchargement d’extension Joomla! et virtuemart
                          http://shop.st42.fr Catalogue extentions gratuit et Pro pour Virtuemart et Joomla

                          Commentaire


                          • #14
                            Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

                            Envoyé par electrocity Voir le message
                            Hello fischer3,
                            L'astuce de l'overide avec fichier de langue et possible aussi mais il faudra modifier les fichiers pour inclure le Jtext de joomla.
                            Idéalement, faire un plugin type "customfield" serais le mieux et évitera d'être bloqué lors des mise à jour.
                            voir le répertoire JOOMLAROOT\plugins\vmcustom\specification\ ou autre plugin dans vmcustom.

                            Sinon le fichier qui génére les varainte est :
                            JOOMLAROOT\administrator\components\com_virtuemart \models\customfields.php
                            Code PHP:
                                public function getProductCustomsFieldCart ($product) {...} 
                            pour le type 'variante' la lettre abrégé est 'V'. Mais tous est traduit.
                            Je pense que tu utilise le mode list est dans ce cas-ci cela n'est pas traduit d'origine.
                            donc toujours dans cette fonction voir la condition
                            Code PHP:
                                    if ($is_list 0) {.... 
                            Code PHP:
                                                foreach ($values as $key => $val) {
                                                
                            $options[] = array('value' => $val'text' => $val);
                                            } 
                            à remplacer par
                            Code PHP:
                                                foreach ($values as $key => $val) {
                                                
                            $options[] = array('value' => $val'text' => jText::_($val) );
                                            } 
                            Et tes liste seront traduit "SI" la correspondance existe.
                            Hello Electrocity,
                            Donc, l'astuce que tu donnes ci dessus (que je n'ai pas encore essayé, j'attends un peu pour voir la meilleure solution) sera écrasée lors des mises à jour ?
                            Et donc, ce plugin type "customfields" dont tu parles, il existe ? Il est faisable ?
                            Dernière édition par fischer3 à 21/02/2013, 23h58

                            Commentaire


                            • #15
                              Re : VM2 Site multilingue, comment traduire les variantes panier et champs personnali

                              Je vais résumer, peut être que ce sera plus clair.
                              Tu as 3 possibilités :
                              -Modifier les fichiers de virtuemart
                              -faire ton propre plugin pour virtuemart ou l'acheter
                              -Si c'est possible, utiliser le fichier overide.ini pour traduire tes valeurs.

                              Pour la conception de plugin, certains plugin sont déja present lors de l'installatioin de virtuemart comme l'ajout du texte lors de l'achat d'un produit.
                              Ou le vmcustom/specification pour ajouter des caractéristiques dans la description du produit.
                              J'ai personnellement utilisé mes propres plugin(ajout d'image en tant que variante avec affichage)
                              voir par exemple : http://elite-hair.fr/juniors/femmes/captive
                              et passe sur les vignettes de droite.
                              Tous est réalisable ou presque avec la méthode des plugins(upload,download,video,javascript ...), aprés cela dépend du temps que tu as, de tes connaissances, du budget ou autres.
                              http://www.st42.fr : Astuce et téléchargement d’extension Joomla! et virtuemart
                              http://shop.st42.fr Catalogue extentions gratuit et Pro pour Virtuemart et Joomla

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X