Zend Framework:模型内的可翻译内容
我的应用程序中有一个模型,负责创建初始数据库结构(类似于安装程序)。我最近添加了可翻译内容(使用 gettext)。我想让初始内容依赖于语言。
在模型中使用可翻译内容的最佳方法是什么?有没有办法在模型内部使用 view->translate()
函数,或者我是否需要从外部传递已经翻译的字符串,例如作为参数?
I have a model in my app that takes care of creating the initial database structure (sort of an installer). I recently added translatable content (uses gettext). I would like to make the initial content language dependent.
What's the best way to use translatable content inside a model? Is there a way to use the view->translate()
function inside the model or do I need to pass the already translated strings from the outside, e.g. as a parameter?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设您已经引导了 Zend_Locale 和 Zend_Translate,并且它们保存在 Zend_Registry 中(默认情况下,它们分别位于注册表中的键“Zend_Locale”和“Zend_Translate”下),您可以在您的文件中访问
translate()
方法模型如下:上例中的翻译将根据您的 Zend_Locale 进行。
在模型中转换数据的最佳方法是什么?我不知道。如果您想让翻译对您的控制器甚至模型“不可见”或“透明”,您可以重载 Zend_DB_Table_Row 的神奇方法 __get 和 __set 并在那里嵌入 translate() 方法。
Assuming that you have bootsraped Zend_Locale and Zend_Translate, and they are saved in the Zend_Registry (by default they are in registry under keys 'Zend_Locale' and 'Zend_Translate' respectively) you can access
translate()
method in your models as follows:The translation in the above example will be performed according to your Zend_Locale.
And what would be the best way to translate data in your models? I'm not sure. If you want to make the translation 'invisible' or 'transparent' to your controllers or even models, you could maybe overload magical methods __get and __set of Zend_DB_Table_Row and embed translate() method there.