(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Introduction
MessageFormatter est une classe concrète qui permet
de produire des messages concaténés, et indépendants de la langue. La méthode
fournit dans cette classe sont utilisées pour construire des messages qui
sont destinés aux utilisateurs finaux.
La classe MessageFormatter assemble les messages à partir
de différents fragments (textes, nombres et dates), fournis par le programme.
Grace à la classe MessageFormatter, le programme
n'a pas besoin de connaître l'ordre des fragments. La classe utilise des
spécifications de formatage pour assembler les fragments en un seul message.
Par exemple, MessageFormatter vous permet d'afficher
la phrase "Fini d'imprimer x fichier sur y..."
d'une
manière qui reste souple pour la traduction.
Avant, un message était créé sous forme de phrase, et géré comme une chaîne.
Cette procédure créait des problèmes pour les traductions, car la structure
de la phrase, l'ordre des mots, le format des nombres, etc. était très différents
d'une langue à l'autre. L'approche de création des messages,
indépendante de la langue, permet de séparer le message et les variables.
Avec ces variables, MessageFormatter peut concaténer
les différentes parties du message, les formater aux conventions correctes,
et fournir un message bien formé.
MessageFormatter prend une série d'objets, formate
les textes, et les insert dans les chaînes formatées dans les emplacements
corrects. Un grand choix de formats peut être utilisé en conjonction avec
MessageFormatter pour gérer le pluriel, les nombres,
etc. Typiquement, le message est fourni par une ressource, et les arguments
sont préparés dynamiquement.
Synopsis de la classe
class
MessageFormatter
{
/* Méthodes */
public __construct(string
$locale
, string
$pattern
)
public static create(string
$locale
, string
$pattern
): ?MessageFormatter
public static formatMessage(string
$locale
, string
$pattern
, array
$values
): string|false
public format(array
$values
): string|false
public
getErrorCode(): int
public
getErrorMessage(): string
public
getLocale(): string
public
getPattern(): string|false
public static parseMessage(string
$locale
, string
$pattern
, string
$message
): array|false
public parse(string
$string
): array|false
public setPattern(string
$pattern
): bool
}
Voir aussi
-
»
ICU formatting documentation
-
»
ICU message formatting description
-
» ICU message formatters
-
» ICU choice formatters
Sommaire
- MessageFormatter::create — Construit un nouveau formateur de messages
- MessageFormatter::formatMessage — Formate rapidement un message
- MessageFormatter::format — Formate un message
- MessageFormatter::getErrorCode — Lit le dernier code d'erreur de la dernière opération
- MessageFormatter::getErrorMessage — Lit le message d'erreur de la dernière opération
- MessageFormatter::getLocale — Lit la locale avec la quelle le formateur a été créé
- MessageFormatter::getPattern — Lit le modèle utilisé par le formateur de messages
- MessageFormatter::parseMessage — Analyse rapidement une chaîne
- MessageFormatter::parse — Analyse une chaîne en fonction du modèle
- MessageFormatter::setPattern — Configure le modèle utilisé par le formateur