简体   繁体   English

'没有注册键'Zend_Translate'的条目

[英]'No entry is registered for key 'Zend_Translate'

So I have to change a website which was written on Zend framework. 因此,我必须更改一个使用Zend框架编写的网站。 I downloaded the source files and want to run the website locally. 我下载了源文件,并希望在本地运行该网站。 But I keep getting this error 'No entry is registered for key 'Zend_Translate'. 但是我一直收到此错误“密钥Zend_Translate没有注册任何条目”。 I have no experience with the Zend framework, so I dont really know what is the problem now. 我没有Zend框架的经验,所以我真的不知道现在出了什么问题。 Can anyone help? 有人可以帮忙吗?

Your application requires Translator and it needs to be linked in Registry. 您的应用程序需要翻译器,并且需要在注册表中链接。 Basically you need to add Transaltor (if it's not added already): 基本上,您需要添加Transaltor(如果尚未添加):

//Bootstrap.php
$locale = new Zend_Locale('en_GB'); //current locale
Zend_Registry::set('Zend_Locale', $locale); //this is optional but better to add this
$translate = new Zend_Translate(array('adapter' => 'tmx',
    'content' => APPLICATION_PATH . '/configs/translations.tmx',
    'locale' => $locale));
Zend_Registry::set('Zend_Translate', $translator); //here you add translator to registry

In this case translation file is translations.tmx which has syntax like this: 在这种情况下,翻译文件是translations.tmx ,其语法如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tmx SYSTEM "tmx14.dtd">
<tmx version="1.4">
   <body>
       <tu tuid='ADD_BASKET'>
            <tuv xml:lang="pl_PL"><seg>Dodaj do koszyka</seg></tuv>
            <tuv xml:lang="en_GB">Add to basket<seg></seg></tuv>
       </tu>
       <tu tuid='RECRIUT'>
            <tuv xml:lang="pl_PL"><seg>rekrutacja</seg></tuv>
            <tuv xml:lang="en_GB"><seg>recruit</seg></tuv>
       </tu>
   </body>
</tmx>

Zend supports interfaces to few other translation file formats if you need. 如果需要,Zend支持其他几种翻译文件格式的接口。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM