翻译Magento中的客户前缀

时间:2013-10-11 07:17:18

标签: magento translation

我正在尝试将前缀翻译为'先生'。和'夫人'。这些设置在:系统>> 配置>> 客户配置>> 前缀下拉选项

我需要英语,荷兰语和德语。每种语言都是单独的商店视图 我已将翻译添加到多个.csv文件中,例如主题translate.csvMage_Core.csv 默认<?php echo $this->__($prefix) ?>适用于结帐,例如结帐。但是在后端和电子邮件中它没有被翻译。

有什么方法可以翻译这些吗?

1 个答案:

答案 0 :(得分:0)

我找到了两种解决方法。

  1. 删除内置前缀,并添加一个带有自定义前缀的新内容。
  2. 否决了Mage_Customer_Helper_Data类,它是getNamePrefixOptions方法。
  3. 我使用了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 它有点硬编码,但可以工作并允许您更改值