gpt4 book ai didi

cakephp - 我如何在 CakePHP 中使用 TranslateBehavior?

转载 作者:行者123 更新时间:2023-12-04 22:17:53 25 4
gpt4 key购买 nike

cakephp.org 上没有文档,我无法在 google 上找到。请给我链接一些文件或提供一份!

最佳答案

翻译行为是 CakePHP 的另一个非常有用但文档很少的特性。我已经在多语言网站上按照以下方式实现了几次,并取得了合理的成功。

首先,翻译行为只会使您网站的数据库内容国际化。如果您有更多静态内容,您需要查看 Cake 的 __('string') 包装函数和 gettext(有一些关于 here 的有用信息)

假设我们要使用以下 db 表翻译内容:

CREATE TABLE `contents` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) default NULL,
`body` text,
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后 content.php 模型有:
var $actsAs = array('Translate' => array('title'   => 'titleTranslation',
'body' => 'bodyTranslation'
));

在其定义中。然后,您需要将 i18n 表添加到数据库中:
CREATE TABLE `i18n` (
`id` int(10) NOT NULL auto_increment,
`locale` varchar(6) NOT NULL,
`model` varchar(255) NOT NULL,
`foreign_key` int(10) NOT NULL,
`field` varchar(255) NOT NULL,
`content` mediumtext,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后,当您将数据保存到 Controller 中的数据库时,将区域设置设置为您想要的语言(此示例适用于波兰语):
$this->Content->locale = 'pol';
$result = $this->Content->save($this->data);

这将在 i18n 表中为 pol 语言环境的标题和正文字段创建条目。 Finds 将根据用户浏览器中设置的当前语言环境进行查找,返回如下数组:
[Content]
[id]
[titleTranslation]
[bodyTranslation]

我们使用出色的 p28n component 来实现一种语言切换解决方案,该解决方案与 gettext 和翻译行为非常配合。

它不是一个完美的系统 - 因为它会动态创建 HABTM 关系,它可能会导致您手动创建的其他关系出现一些问题,但如果您小心,它可以很好地工作。

关于cakephp - 我如何在 CakePHP 中使用 TranslateBehavior?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/90949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com