0

我使用 CakePHP 1.3 版。文档说,如果我想对我的动态内容使用翻译行为,我的视图不需要更改。问题是翻译的字段在那里,但是是空的。翻译只出现在像这样的 ['I18n'] 数组中

Array
(
    [0] => Array
        (
            [Category] => Array
                (
                    [id] => 1
                    [locale] => de_de
                    [name] => 
                )

            [I18n] => Array
                (
                    [name] => Anlagenkomponenten
                )

        )....

我期望这样的数组

Array
(
    [0] => Array
        (
            [Category] => Array
                (
                    [id] => 1
                    [locale] => de_de
                    [name] => Anlagenkomponenten
                )

            [I18n] => Array
                (
                    [name] => Anlagenkomponenten
                )

        )....

我的期望是错误的,还是这是一个错误?

4

2 回答 2

0

在 cakephp 1.2.6... 中Translate Bahavior 转到第 243 行并评论直到 245。我认为它在 cakephp 1.3 中是一样的

//if (!empty($results[$key]['I18n__'.$field]['content'])) {
//    $value = $results[$key]['I18n__'.$field}['content'];
//}

然后添加代码:

if (!empty($results[$key]['I18n'][$field])) {
    $value = $results[$key]['I18n'][$field];
 }
于 2010-08-06T09:21:59.583 回答
0

您能否发布您的数据查找调用(可能还有一些超出该调用的行)?

通常,翻译行为是这样工作的:

$this->Model->locale = 'de_de';
$result = $this->Model->find('all', array( ... );

语言环境通常通过全局语言环境变量设置(一种方法是将用户的语言环境存储到会话中,并在您的应用程序控制器中设置全局语言环境变量)。

如果没有设置语言环境,并且您在模型中使用 $recursive = 1 设置执行 read(),Cake 会获取每个现有语言环境的所有可用翻译。

你是如何为你的模型设置翻译行为的?如果您也从模型中发布 $actsAs-variable 的翻译部分,这可能会有所帮助。

如果语言环境保存正确(de_de,NOT de-de!),还请检查您的 i18n 表。

于 2015-11-09T23:49:34.080 回答