La classe MessageFormatter

(PHP 5 >= 5.3.0, PHP 7, 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

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 $args ) : string
public format ( array $args ) : string
public getErrorCode ( void ) : int
public getErrorMessage ( void ) : string
public getLocale ( void ) : string
public getPattern ( void ) : string
public static parseMessage ( string $locale , string $pattern , string $source ) : array
public parse ( string $value ) : array
public setPattern ( string $pattern ) : bool
}

Sommaire