Я пытаюсь использовать Zend Translate для отображения переведенных пунктов меню пользователю.Проблема с кодировкой Zend с помощью Zend Translate Испанский в файле XMLTPX Специальные символы
Он отлично работает, пока я не вводит специальные символы в файлы перевода.
Я экземпляр Zend_Translate объекта в моей начальной загрузки и передать его в качестве переводчика в Zend_Navigation:
$translate = new Zend_Translate(
array('adapter' => 'tmx',
'content' => APPLICATION_PATH .'/languages/translation.tmx',
'locale' => 'es'
)
);
$navigation->setUseTranslator($translate);
Я использовал несколько различных адаптеров (массив, TMX), чтобы увидеть, если это имело значение. Я в конечном итоге с файлом TMX, который кодируется с помощью ISO-8859-1 (в противном случае, что выдает ошибку XML разбора при введении пункта меню «Administrar Applicación»
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE tmx SYSTEM "tmx14.dtd">
<tmx version="1.4">
<header creationtoolversion="1.0.0" datatype="tbx" segtype="sentence"
adminlang="en" srclang="en" o-tmf="unknown"
creationtool="XYZTool" >
</header>
<body>
<tu tuid='link_signout'>
<tuv xml:lang="en"><seg>Sign Out</seg></tuv>
<tuv xml:lang="es"><seg>Salir</seg></tuv>
</tu>
<tu tuid='link_signin'>
<tuv xml:lang="en"><seg>Login</seg></tuv>
<tuv xml:lang="es"><seg>Acceder</seg></tuv>
</tu>
<tu tuid='Manage Application'>
<tuv xml:lang="en"><seg>Manage Application</seg></tuv>
<tuv xml:lang="es"><seg>Administrar Applicación</seg></tuv>
</tu>
</body>
</tmx>
После того, как отобразить меню в макете.:
echo $this->navigation()->menu();
Он будет отображать все пункты меню просто отлично, за исключением того, с помощью специальных символов Это будет просто пустым
сейчас -.. Если я использую UTF8-закодировать РНР внутри каркаса Зенд класса «Меню ', который я НЕ хочу делать:
Line 215 в Zend_View_Helper_Navigation_Menu:
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, которую я не нахожу?
Пожалуйста, помогите!
Zend Library Версия: 1,11