【问题标题】:How do I use the TranslateBehavior in CakePHP?如何在 CakePHP 中使用 TranslateBehavior?
【发布时间】:2008-09-18 08:28:29
【问题描述】:

cakephp.org 上没有文档,我在谷歌上也找不到。请链接我一些文档或提供一个!

【问题讨论】:

    标签: cakephp behavior


    【解决方案1】:

    翻译行为是 CakePHP 的另一个非常有用但文档很少的特性。我已经按照以下思路在多语言网站中实施了几次,并取得了相当大的成功。

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

    假设有我们想用下面的数据库表翻译的内容:

    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;
    

    然后,当您将数据保存到控制器中的数据库时,将语言环境设置为您想要的语言(此示例适用于波兰语):

    $this->Content->locale = 'pol';
    $result = $this->Content->save($this->data);
    

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

    [Content]
      [id]
      [titleTranslation]
      [bodyTranslation]
    

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

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

    【讨论】:

    • 谢谢。甚至找出 i18n 表的名称和字段都很难.. 谈论隐藏的功能..
    • @AlexanderMorland 从项目应用文件夹 ./Console/cake i18n 运行此命令。此命令可以初始化 i18n 表并将所有翻译从您的应用程序提取到 Locale 文件。
    【解决方案2】:

    对于任何搜索相同内容的人,cakephp 更新了他们的文档。对于翻译行为,请转到 here..

    【讨论】:

      猜你喜欢
      • 2019-10-16
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 2021-07-25
      • 2011-06-14
      • 1970-01-01
      相关资源
      最近更新 更多