2010-12-02 41 views
0

J'ai un tableau des priorités différentes dans mon contrôleur:
var $priorities = array(3 => 'Low', 2 => 'Medium', 1 => 'High');chaîne dans tableau avec __ dans CakePHP

Comment puis-je gérer maintenant de traduire ces valeurs avec la fonction __-? Je reçois un tableau que PHP s'attend à une fermeture ')'. C'est le code que j'ai essayé d'utiliser:
var $priorities = array(3 => __('Low'), 2 => __('Medium'), 1 => __('High'));

J'utilise cette variable pour la définir dans mes actions add et edit. Ce sont des options dans un select-input et si theres un changement, je ne veux pas jouer dans les vues.

Répondre

3

A en juger par le mot-clé var Je suppose que vous essayez de déclarer une propriété de classe ici. Cela ne fonctionne pas, vous pouvez uniquement déclarer des propriétés à l'aide de valeurs statiques, c'est-à-dire que vous ne pouvez pas appeler de fonctions à ce stade ou effectuer des opérations.

Vous devrez traduire les valeurs ultérieurement ou les affecter à $this->priorities ultérieurement. La méthode __construct serait un bon endroit, si c'est un contrôleur beforeFilter est bon aussi.

Vous aurez également besoin d'appeler la fonction __ avec true comme second paramètre:

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

Pourquoi ne pas essayer array_map?

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

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

Assurez-vous de mettre les traductions aux bons endroits. En savoir plus here about Internationalization & Localization