我的应用程序中有一个模型,负责创建初始数据库结构(类似于安装程序)。我最近添加了可翻译的内容(使用gettext)。我想让初始的内容依赖于语言。
在模型中使用可翻译内容的最佳方式是什么?有没有办法在模型内部使用view->translate()函数,或者我需要从外部传递已经翻译好的字符串,例如作为参数?
发布于 2011-02-02 19:53:44
假设您已经启动了Zend_Locale和Zend_Translate,并将它们保存在Zend_Registry中(默认情况下,它们分别位于注册表的'Zend_Locale‘和'Zend_Translate’下),您可以在模型中访问translate()方法,如下所示:
/*@var $translator Zend_Translate */
$translator = Zend_Registry::get('Zend_Translate');
/*@var $adapter Zend_Translate_Adapter */
$adapter = $translator->getAdapter();
var_dump($adapter->translate('Text to be translated'));上面示例中的转换将根据您的Zend_Locale执行。
在您的模型中转换数据的最佳方式是什么?我没有把握。如果你想让翻译对你的控制器甚至模型是“不可见的”或“透明的”,你可以重载Zend_DB_Table_Row和embed translate()方法的__get和__set方法。
https://stackoverflow.com/questions/4872461
复制相似问题