(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
MessageFormatter::setPattern -- msgfmt_set_pattern — Configure le modèle utilisé par le formateur
Style orienté objet
Style procédural
Configure le modèle utilisé par le formateur.
formatterUn objet de formateur de messages MessageFormatter
patternLa chaîne de modèle utilisée par le formateur de messages. Le modèle utilise une syntaxe qui accepte les apostrophes; Voir » Quoting/Escaping pour plus de détails.
Exemple #1 Exemple avec msgfmt_set_pattern(), style procédural
<?php
$fmt = msgfmt_create( "en_US", "{0, number} singes sur {1, number} arbres" );
echo "Modèle par défaut : '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Résultat formaté : " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
msgfmt_set_pattern( $fmt, "{0, number} arbres accueillant {1, number} singes" );
echo "Nouveau modèle :'" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Nombre formaté : " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>Exemple #2 Exemple avec msgfmt_set_pattern(), style POO
<?php
$fmt = new MessageFormatter( "en_US", "{0, number} singes sur {1, number} arbres" );
echo "Modèle par défaut : '" . $fmt->getPattern() . "'\n";
echo "Résultat formaté : " . $fmt->format(array(123, 456)) . "\n";
$fmt->setPattern("{0, number} arbres accueillant {1, number} singes" );
echo "Nouveau modèle :'" . $fmt->getPattern() . "'\n";
echo "Nombre formaté : " . $fmt->format(array(123, 456)) . "\n";
?>L'exemple ci-dessus va afficher :
Modèle par défaut : '{0,number} singes sur {1,number} arbres'
Résultat formaté : 123 singes sur 456 arbres
Nouveau modèle :'{0,number} arbres accueillant {1,number} singes'
Nombre formaté : 123 arbres accueillant 456 singes
A correct example would be to transpose the placeholders in pattern 2.
This is typical where changing messages from one language to another changes the word order, to result in a sensible translation.
Let's imagine it's localised as Spanish or Russian instead of English.
So really you want to have pattern 2 provided by your human translator to read like this :
New pattern: '{1,number} trees hosting {0,number} monkeys'
Formatted number: 456 trees hosting 123 monkeys
That is - the order of arguments is always the same, but your translated message content has the placeholders transposed for non English languages.