【问题标题】:Zend Framework: translatable content inside a modelZend Framework:模型内的可翻译内容
【发布时间】:2011-06-19 20:05:59
【问题描述】:

我的应用中有一个模型负责创建初始数据库结构(类似于安装程序)。我最近添加了可翻译的内容(使用 gettext)。我想让初始内容语言依赖。

在模型中使用可翻译内容的最佳方式是什么?有没有办法在模型内部使用 view->translate() 函数,或者我需要从外部传递已经翻译的字符串,例如作为参数?

【问题讨论】:

    标签: model-view-controller zend-framework internationalization model


    【解决方案1】:

    假设您已引导 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 的神奇方法 __get 和 __set 并在那里嵌入 translate() 方法。

    【讨论】:

    • 哇,完美的答案,正是我所追求的。奇迹般有效。谢谢!
    • 如何处理 jquery validate 消息?任何想法或建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多