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
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X