Je voudrais utiliser des paramètres dans une chaîne passée à MessageFormater, comme cellearguments nommés pour INTL MessageFormatter avec PHP
$fmt = new MessageFormatter("en_US", "My name id {my_name}");
$fmt->format(array('my_name' => 'John'));
Quand j'exécuter ce code, j'obtiens le message d'erreur:
$fmt->getErrorMessage() returns
Nombre formatage a échoué: U_ILLEGAL_ARGUMENT_ERROR
Wh ereas
$fmt = new MessageFormatter("en_US", "My name id {0}");
$fmt->format(array(0 => 'John'));
fonctionne bien.
rapport d'un site ICU-projet nommé arguments sont pris en charge depuis ICU 3.8 (Seen here), et j'utiliser le 4.2.1
Où est la licorne? PHP ne supporte pas les arguments nommés pour MessageFormatter? Peut-être qu'il existe une alternative?
Bonjour, J'ai modifié mon sujet pour demander une alternative. – Tristan
Je sais de cette façon. Mes textes sont envoyés aussi des traducteurs. Je veux éviter% d,% s. Il est plus simple de traduire "Mon nom est {mon_nom}" que "Mon nom est% s". C'est un mauvais exemple car il est facile de comprendre le sens de cette phrase, mais parfois ce n'est pas le cas. – Tristan