CakePHP - 使用本地化函数(__())到核心文件中

时间:2013-09-13 09:10:17

标签: cakephp localization cakephp-2.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。

1 个答案:

答案 0 :(得分:1)

我要在core.php the time this file is includedaren't built yet,应用the locale path is yet unknown的正确路径,以及因此绑定textdomain将失败为{{3}}。 / p>

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