Php Zend Navigation在XMLTPX文件特殊字符中使用Zend Translate西班牙语的编码问题
我一直在尝试使用Zend Translate向用户显示已翻译的菜单项 在我将特殊字符引入翻译文件之前,它工作正常 我在引导程序中实例化Zend_Translate对象,并将其作为转换器传递到Zend_导航:Php Zend Navigation在XMLTPX文件特殊字符中使用Zend Translate西班牙语的编码问题,php,zend-framework,special-characters,zend-navigation,zend-translate,Php,Zend Framework,Special Characters,Zend Navigation,Zend Translate,我一直在尝试使用Zend Translate向用户显示已翻译的菜单项 在我将特殊字符引入翻译文件之前,它工作正常 我在引导程序中实例化Zend_Translate对象,并将其作为转换器传递到Zend_导航: $translate = new Zend_Translate( array('adapter' => 'tmx', 'content' => APPLICATION_PATH .'/languages/translation.tmx',
$translate = new Zend_Translate(
array('adapter' => 'tmx',
'content' => APPLICATION_PATH .'/languages/translation.tmx',
'locale' => 'es'
)
);
$navigation->setUseTranslator($translate);
我使用了几种不同的适配器(阵列、tmx),以查看这是否有不同。最后,我得到了一个使用ISO-8859-1编码的TMX文件(否则在引入菜单项“Administrar Applicationón”时会抛出XML解析错误)
它将显示所有菜单项,除了使用特殊字符的菜单项。它将只是空白
现在-如果我在zend framework类“菜单”中使用PHP的UTF8编码,我不想这样做:
Zend_View_Helper_Navigation_菜单中的第215行:
if ($this->getUseTranslator() && $t = $this->getTranslator()) {
if (is_string($label) && !empty($label)) {
$label = utf8_encode($t->translate($label));
}
if (is_string($title) && !empty($title)) {
$title = utf8_encode($t->translate($title));
}
}
菜单项显示正确,一切都很愉快
问题是,我不想修改库
在zend translate或zend navigation中是否有我找不到的某种编码设置
请帮忙
Zend Library版本:1.11我遇到了一个相关问题:Zend表单没有显示像ñ这样的拉丁字符。请尝试将以下内容添加到bootstrap.php中的_initView函数中:
$view->setEncoding('iso-8859-1');
if ($this->getUseTranslator() && $t = $this->getTranslator()) {
if (is_string($label) && !empty($label)) {
$label = utf8_encode($t->translate($label));
}
if (is_string($title) && !empty($title)) {
$title = utf8_encode($t->translate($title));
}
}
$view->setEncoding('iso-8859-1');