Heute ein kurzer aber wichtiger Tipp, wenn ihr Drupal Commerce (auch Commerce Kickstart) verwendet und sich die Texte "Order total", "Billing information" & "Shipping information" im Bestellablauf nicht übersetzen lassen.
Es handelt sich dabei um ein viel diskutiertes Problem in Drupal Commerce, zu dem hier zahlreiche Lösungen diskutiert werden.
Eine Lösung ist es, die Quellsprache auf Englisch zu setzen und DANN die Übersetzungen zu erstellen.
Eine andere Lösung ist wohl, i18n field translation zu verwenden.
Die programmiertechnische und relativ Robuste Lösung findet ihr in diesem Beitrag: https://drupal.org/comment/8162995#comment-8162995 (#90).
Den Quellcode habe ich Euch hier noch einmal zur Archivierung kopiert:
If you want to get all the titles translated you can use this code:
/**
* Implements hook_commerce_checkout_pane_info_alter().
*/
function MYMODULE_commerce_checkout_pane_info_alter(&$panes) {
foreach($panes as $key => $pane) {
$panes[$key]['title'] = t($panes[$key]['title']);
}
}
?>
In order to translate Shipping, billing and order total in forms you can use this code:
/**
* Implements hook_form_alter().
*
* Fixes translation issues for Order total, Shipping Information, Billing information.
* @see http://www.konordo.com/node/90
*/
function MYTHEME_form_alter(&$form, &$form_state, $form_id) {
// 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']);
}
// 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');
}
}
}
?>