Submitted by steveoriol on
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 ...
dans le cas où l'on se sert
Permalien Soumis par corbin le 12 Mai, 2013 - 17:59
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)