Я пытаюсь использовать функции локализации в cakephp. В app_model.php у меня есть метод, который получает различные способы оплаты.
function getDistinctFields($model, $field)
{
$list = ClassRegistry::init($model)->find('all', array(
'fields'=>array("DISTINCT $model.$field"),
'conditions' => array('not' => array("$model.$field" => null))
));
debug($list);
$translated = "{n}.$model.$field";
$return = Set::combine($list, "{n}.$model.$field", __($translated, true));
return $return;
}
Результат отладки ($ list) выглядит так:
[0] => Array
(
[InstantPaymentNotification] => Array
(
[payment_status] => Pending
)
)
[1] => Array
(
[InstantPaymentNotification] => Array
(
[payment_status] => Completed
)
)
[2] => Array
(
[InstantPaymentNotification] => Array
(
[payment_status] => Denied
)
)
[3] => Array
(
[InstantPaymentNotification] => Array
(
[payment_status] => Refunded
)
)
Вывод метода выглядит следующим образом:
> Array (
> [Pending] => Pending
> [Completed] => Completed
> [Denied] => Denied
> [Refunded] => Refunded
> [Reversed] => Reversed
> [Canceled_Reversal] => Canceled_Reversal )
Хорошее, но значение не переводится так, как должно быть. Я создал файл default.po в правильном месте и проверил, работает ли он на других страницах. Однако, похоже, он не работает с классом Set.