(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
MessageFormatter::formatMessage -- msgfmt_format_message — Formate rapidement un message
Style orienté objet
$locale
, string$pattern
, array$values
): string|falseStyle procédural
Fonction de formatage rapide, qui formate une chaîne sans avoir à créer explicitement un objet de formatage. Utilisez cette fonction lorsque l'opération de formatage n'est effectuée qu'une seule fois et qu'il n'est pas nécessaire de conserver des paramètres ou des états, ou lorsque vous souhaitez personnaliser la sortie en fournissant directement un contexte supplémentaire à ICU.
locale
La locale à utiliser pour le formatage
pattern
La chaîne de caractères dans laquelle il faut insérer les données. Le modèle utilise une syntaxe qui accepte les apostrophes; Voir » Quoting/Escaping pour plus de détails.
values
Le tableau de valeurs à insérer dans la chaîne de format.
La chaîne formatée, ou bien false
si une erreur survient.
Exemple #1 Exemple avec msgfmt_format_message(), style procédural
<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo msgfmt_format_message("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
echo msgfmt_format_message("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo msgfmt_format_message("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}",
['apple' => 0]
), "\n";
Exemple #2 Exemple avec msgfmt_format_message(), style procédural
<?php
echo MessageFormatter::formatMessage("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo MessageFormatter::formatMessage("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
echo MessageFormatter::formatMessage("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo MessageFormatter::formatMessage("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}",
['apple' => 0]
), "\n";
L'exemple ci-dessus va afficher :
4,560 monkeys on 123 trees make 37.073 monkeys per tree 4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum You finished 3rd! There are no apples
Exemple #3 Demander à ICU de formater la devise avec le symbole monétaire commun et avec le symbole monétaire court.
Nécessite ICU ≥ 67.
<?php
echo msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD}", array(123.45));
echo msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD unit-width-narrow}", array(123.45));
L'exemple ci-dessus va afficher :
123,45 CA$ 123,45 $