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



我把它放进了我的配置/核心.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 中,那么它工作正常 - 为什么?我确定我以前在核心中使用过 __(.php)。

core.php 中执行此操作还为时过早,到包含此文件时,尚未构建应用程序的正确路径,因此绑定文本域将失败,因为区域设置路径尚未知。

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

最新更新