traduction a forcer du module commerce D7

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Le module commerce est top, mais il y a des traductions de chaînes qui ne fonctionnent pas de partout :-(
Voilà, comment parer au problème pour certaines.

les chaînes :

  • Billing information -> Informations de facturation
  • Shipping information -> Informations d'expédition
  • Order total -> Total de la commande

Vérifier dans un premier temps que vos chaines soient bien traduites dans "admin/config/regional/translate/translate"

Pour "Order total", Il suffit de rajouter la fonction t(...) dans le fichier "all/modules/commerce/modules/price/commerce_price.module"
ligne "495" pour version 7.x-1.5 , ce qui fait:

<?php
         
'title' => t(check_plain($instance['label'])),
?>

ceci fonctionne pour tous les endroits ou apparait cette chaîne.
Avantage: rapide
Inconvenient : A refaire quand on met à jour le module...

Pour "Billing information" et "Shipping information" au niveau de la procédure du paiement ("Procéder au paiement" et "Vérifier la commande" - checkout/xx )
On peut Ajouter ça dans "template.php"

<?php
function votreTheme_form_alter(&$form, &$form_state, $form_id) {

 
// Fix translation on checkout form
 
if ($form['#id'] == 'commerce-checkout-form-checkout'){
    if(isset(
$form['customer_profile_billing'])){
     
$form['customer_profile_billing']['#title'] = t('Billing information');
    }
    if (isset(
$form['customer_profile_shipping'])){
     
$form['customer_profile_shipping']['#title'] = t('Shipping information');
    }
  }

 
// Fix translation on checkout review
 
if ($form['#id'] == 'commerce-checkout-form-review'){
    if (isset(
$form['checkout_review']['review']['#data']['customer_profile_billing'])){
     
$form['checkout_review']['review']['#data']['customer_profile_billing']['title'] = t('Billing information');
    }
    if (isset(
$form['checkout_review']['review']['#data']['customer_profile_shipping'])){
     
$form['checkout_review']['review']['#data']['customer_profile_shipping']['title'] = t('Shipping information');
    }
  }

/*  //Fix order total translation
  if (isset($form['cart_contents'])){
    $form['cart_contents']['cart_contents_view']['#markup'] = str_replace('Order total', t('Order total'), $form['cart_contents']['cart_contents_view']['#markup']);
  }*/

}
?>

Note: Vous pouvez dé-commenté la dernière partie pour "order total", mais cela ne fonctionne que dans le "checkout" et pas dans le compte utilisateur.

Pour "Billing information" et "Shipping information" au niveau des commandes dans chaque compte (ex : user/11/orders/18 )
Je n'ai pas encore trouvé.
Si quelqu'un a déjà fait ça ou bien sais comment faire n'hésitez à poursuivre cet article ...

Version de Drupal : 

dans le cas où l'on se sert de internationalization i18n, il est possible de traduire les deux;
mais il faut rester en anglais par défaut et donc dans l'admin (it sucks ... !), et configurer correctement admin/config/regional/language/configure pour que le français s'applique au bon moment pour vos visiteurs;
dans ce cas on a une adresse en monsite.com/fr/...
si on passe en français, le français devient "l'origine" avec "billing information";
et si on essaie de traduire, c'est cata !
(je l'ai fait avec "shipping information" qui a été sorti du div et pas trouvé le moyen de l'y remettre simplement)

sinon, il y a ce post http://drupal.org/node/1451132 à suivre
(avec le patch #57 http://drupal.org/files/localized-customer-profile-label-1451132-21.patch intégré dans les versions récentes de kickstart 2.6 en tout cas et qui permet ce que je présente au début)