【发布时间】:2015-07-21 13:14:37
【问题描述】:
我们的网站是多语言的(针对客户)。但是,我们需要从数据库中的翻译表中提取它们,而不是翻译 PO 文件中的“登录”等词。这是客户要求。
我研究了如何制作可以从任何地方(视图、控制器等)访问的功能。我得出的结论是,最好的方法是制作一个自定义库,因为它说它可以在任何地方使用。
但是我不能在我的模型中使用它,它给我的错误是我不能在那个地方使用ClientnameLibrary::translate('login')。我在我的模型中添加了App::uses('ClientnameLibrary', 'Lib'); 行,并在验证部分尝试了这个:
'lastname' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => ClientnameLibrary::translate('lastname_validation_error'),
),
),
有没有一种方法可以在模型中使用我的自定义库?如果不是,那么在我的模型(来自数据库)中翻译验证消息的最佳方式是什么?
这是我在控制器/视图中使用的代码:
App::uses('ClientnameLibrary', 'Lib'); //include at top of file
echo ClientnameLibrary::translate('login'); //to get translated word from database
【问题讨论】:
-
"我不能使用它" 不是正确的问题描述,请更具体地说明问题到底是什么。话虽如此,
App::uses()在模型中也可以正常工作。 -
你是对的,我很抱歉。我编辑了我的答案并给出了我试图开始工作的代码。
-
你试过了吗 App::uses('ClientnameLibrary', 'Lib');在你的模型文件中?
-
是的,我在问题末尾使用了这两行。我将编辑我的问题以提及这一点。
标签: cakephp model cakephp-2.0