A classe MessageFormatter

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Introdução

MessageFormatter é uma classe concreta que permite aos usuários produzir mensagens concatenadas, neutras do ponto de vista da língua. Os métodos fornecido nesta classe são usados para construir todas as mensagens que são vistas pelos usuários finais.

A classe MessageFormatter monta mensagens a partir de vários fragmentos (como fragmentos de texto, números e datas) fornecidos pelo programa. Por causa da classe MessageFormatter, o programa não precisa saber a ordem dos fragmentos. A classe usa as especificações de formatação para os fragmentos para montá-los em uma mensagem que fica contida em uma única string dentro de um pacote de recurso. Por exemplo, MessageFormatter permite mostrar a frase "Concluída a impressão de x arquivos em um total de y..." de uma maneira que ainda permita flexibilidade na tradução.

Anterioremente, uma mensagem para o usuário final era criada como uma frase e manipulada como uma string. Este procedimento criava problemas para localizadores porque a estrutura da frase, ordem de palavras, formato de números e outros mais são muito diferentes de língua para língua. A maneira neutra de criar mensagens mantém cada parte da mensagem separada e fornece chaves para os dados. Usando estas chaves, a classe MessageFormatter pode concatenar as partes da mensagem, localizá-las, e monstrar uma string bem formada ao usuário final.

MessageFormatter toma um conjunto de objetos, formata-os, e depois insere as strings formatadas no modelo nos locais apropriados. Formatos de escolha podem ser usados em conjunto com MessageFormatter para manipular plurais, fazer correspondência de números, e fazer seleção a partir de um array de itens. Tipicamente, o formato da mensagem virá de recursos e os argumentos serão definidos dinamicamente em tempo de execução.

Resumo da classe

class MessageFormatter {
/* Métodos */
public __construct(string $locale, string $pattern)
public static create(string $locale, string $pattern): ?MessageFormatter
public format(array $values): string|false
public static formatMessage(string $locale, string $pattern, array $values): string|false
public getErrorCode(): int
public getLocale(): string
public parse(string $string): array|false
public static parseMessage(string $locale, string $pattern, string $message): array|false
public setPattern(string $pattern): bool
}

Table of Contents