0

我有这个到我的 Config/core.php

Configure::write('Product', array(
    ...
    'Colors' => array(
        'black'     => __('Black'), 
        'brown'     => __('Brown'), 
        'grey'      => __('Grey'), 
        'white'     => __('White'), 
        'blue'      => __('Blue')
    ),
    ...
));

在视图文件 (.ctp) 中,我将该数组呈现为 JSON:

$config = array(
   ...
   'colors' => Configure::read('Product.Colors'),
   ...
);

echo '(function(){window.AppCfg=' . json_encode($config) . '}).call(this);';

如果现在我更改当前语言,颜色将保持为英语。如果我将 core.php 中的数组直接粘贴到我的 .ctp 中,那么它可以正常工作 - 为什么?我确定我以前在 core.php 中使用过 __() 。

4

1 回答 1

1

现在做这件事还为时过早core.php当这个文件被包含在内时,应用程序的正确路径还没有构建,因此绑定文本域将失败,因为语言环境路径仍然未知

只需将涉及调用的所有内容__()(这是触发文本域绑定的原因)从您的文件中移动core.php到您的bootstrap.php文件中,您应该会很好。

于 2013-09-13T09:52:32.493 回答