0

我有一个处理翻译的模块。

它不绑定到任何数据库,文件纯粹是这样的:

$arr["key1"]="text";
...

我需要进行 Ajax 调用才能编辑该文件。每次访问页面时都会导入该文件,以提供我需要的任何文本内容(它可能不是世界上最好的东西,但它可以完成工作,而且它应该非常快,因为没有“XML解析”之类的东西,它只是存储在标准的 .php 文件中)。

为了处理这些将具有添加/编辑操作等操作的 ajax 调用,我制作了一个无模型的 TranslationController:

class TranslationsController extends AppController {
    public $uses = array(); // Model-less
    public $components = array('RequestHandler');
    public $helpers = array('Session');
    protected $translationFilePath;

    public function setItem() {
    }

    public function backupFile() {
    }
}

我的问题很简单:我应该将用于打开/写入/查找文件的自定义函数放在哪里?

例如,我有一个从正在读取的行中提取密钥的函数。

我看过一些帖子,建议我们将数据放在模型中,但在我的情况下,我没有模型,而且这些函数没有链接到数据。所以它不应该在模型中,对吧?我不希望它是全球性的。

感谢您的帮助。

4

2 回答 2

1

为什么不使用 CakePHP 自带的内置翻译工具,它基于或多或少标准的 gettext 工具?

您正在做的只是重新发明轮子,并且可能会提出一个未经测试的定制翻译实现,这显然缺乏 CakePHP 已经为您提供的功能。例如,您如何处理复数?

CakePHP 为您提供 __(), __d(), __n(), __dn() 用于翻译,翻译文件作为纯文本文件存储在 APP/Locale/ 中,并使用 poedit 进行编辑。

http://www.gnu.org/software/gettext/http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html

于 2012-06-19T17:03:56.570 回答
0

听起来像是自定义数据源的用例:http: //book.cakephp.org/2.0/en/models/datasources.html

就个人而言,我只会在app/Lib您的应用程序文件夹中创建一个普通的 PHP 类。

于 2012-06-19T07:11:55.657 回答