2013-10-11 32 views
1

我在嘗試翻譯像'mr。'這樣的前綴。和'夫人'。 系統 >>配置 >>客戶配置 >>前綴下拉選項在Magento中翻譯客戶前綴

我需要英語,荷蘭語和德語:那些在設置。每種語言都是獨立的商店視圖。
我已經添加了翻譯到多個.csv文件,如主題translate.csvMage_Core.csv 默認<?php echo $this->__($prefix) ?>適用於像結賬的前端。但在後端和電子郵件中,它不會被翻譯。

任何方式來翻譯這些?

回答

0

我發現了兩種方法來解決這個問題。

  1. 刪除構建的前綴,並添加一個新的自定義前綴。
  2. 否決Mage_Customer_Helper_Data類和它的getNamePrefixOptions方法。

我用Nr2時

NR 1:更多的工作,你將需要更新tempaltes。但是,如果需要添加新的翻譯,爲客戶管理起來更容易。

NR2:您可以在配置中添加更多前綴值。然後在課堂上製作一個用於商店/語言的開關。添加新的語言可能需要添加更多的代碼。

我用來推翻getNamePrefixOptions

public function getNamePrefixOptions($store = null) 
{ 
    $pre_val = $this->_prepareNamePrefixSuffixOptions(
     Mage::helper('customer/address')->getConfig('prefix_options', $store) 
    ); 

    // Show all prefixes in the admin 
    if (Mage::app()->getStore()->isAdmin()) { 
     return $pre_val; 
    } 

    // Transform array keys to integers 
    $pre_val = array_values($pre_val); 

    $lang_code = Mage::app()->getLocale()->getDefaultLocale(); 

    $new_prefixes_values = array(); 

    // Add language codes here, and add their prefix key's, count starts at 0 
    switch ($lang_code) { 
     case "nl_NL": 
     // Set key the same as the value, that's how Magetnto gives it at first 
     $new_prefixes_values = array($pre_val[0] => $pre_val[0], $pre_val[1] => $pre_val[1]); 
     break; 
     case "de_DE": 
     $new_prefixes_values = array($pre_val[2] => $pre_val[2], $pre_val[3] => $pre_val[3]); 
     break; 
     default: // other languages 
     $new_prefixes_values = array($pre_val[0] => $pre_val[0], $pre_val[1] => $pre_val[1]); 
     break; 
    } 

    return $new_prefixes_values; 
} 

我填補了前綴下拉選項設置什麼:Dhr.;Mevr.;Herr;Frau 這是一個有點硬編碼,但作品,並允許您更改值