我正在尝试翻译像“先生”这样的前缀。和“夫人” 这些设置在:系统>>配置>>客户配置>>前缀下拉选项
我需要英语、荷兰语和德语。每种语言都是一个单独的 storeview。
我已将翻译添加到多个.csv
文件中,如主题translate.csv
和Mage_Core.csv
默认<?php echo $this->__($prefix) ?>
在前端工作,如结帐。但在后端和电子邮件中,它没有被翻译。
有什么办法可以翻译这些吗?
我正在尝试翻译像“先生”这样的前缀。和“夫人” 这些设置在:系统>>配置>>客户配置>>前缀下拉选项
我需要英语、荷兰语和德语。每种语言都是一个单独的 storeview。
我已将翻译添加到多个.csv
文件中,如主题translate.csv
和Mage_Core.csv
默认<?php echo $this->__($prefix) ?>
在前端工作,如结帐。但在后端和电子邮件中,它没有被翻译。
有什么办法可以翻译这些吗?
我找到了两种方法来解决这个问题。
Mage_Customer_Helper_Data
类及其getNamePrefixOptions
方法。我用过NR2
NR 1:更多的工作,你需要更新模板。但是,如果需要添加新的翻译,则更容易为客户管理。
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;
}
我在Prefix Dropdown Options设置中填写的内容:Dhr.;Mevr.;Herr;Frau
它有点硬编码但可以工作并允许您更改值