使用CakePHP中的__转换数组中的字符串

时间:2010-12-02 11:19:35

标签: arrays cakephp translation

我的控制器中有一系列不同的优先级:
var $priorities = array(3 => 'Low', 2 => 'Medium', 1 => 'High');

我现在如何设法使用__-函数转换这些值?我得到一个PHP期望结束')'括号的数组。这是我试图使用的代码:
var $priorities = array(3 => __('Low'), 2 => __('Medium'), 1 => __('High'));

我使用此变量在我的添加和编辑操作中设置它。这些是选择输入中的选项,如果有变化,我不想在视图中摆弄。

2 个答案:

答案 0 :(得分:3)

根据var关键字判断我怀疑你是在尝试在这里声明一个类属性。这不起作用,您只能使用静态值声明属性,即此时不能调用任何函数或执行任何操作。

您需要稍后翻译这些值,或稍后将其分配给$this->priorities__construct方法是一个好地方,如果控制器beforeFilter也很好。

您还需要使用__作为第二个参数调用true函数:

$this->priorities = array(3 => __('Low', true), 2 => __('Medium', true), 1 => __('High', true));

答案 1 :(得分:0)

为什么不试试array_map

var $priorities = array(3 => 'Low', 2 => 'Medium', 1 => 'High');

$priorities = array_map("__", $priorities, true);

确保将翻译放在适当的位置。更多信息here about Internationalization & Localization