(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
MessageFormatter es una clase concreta que permite producir mensajes concatenados, independientes del idioma. Las métodos proporcionadas en esta clase se utilizan para construir mensajes que están destinados a los usuarios finales.
La clase MessageFormatter ensambla los mensajes a partir
de diferentes fragmentos (textos, números y fechas), proporcionados por el programa.
Gracias a la clase MessageFormatter, el programa
no necesita conocer el orden de los fragmentos. La clase utiliza especificaciones
de formato para ensamblar los fragmentos en un solo mensaje.
Por ejemplo, MessageFormatter permite mostrar la frase "Finalizado de imprimir x fichero sobre y..."
de una manera que permanece flexible para la traducción.
Anteriormente, un mensaje se creaba en forma de frase, y se gestionaba como un string. Este procedimiento generaba problemas para las traducciones, ya que la estructura de la frase, el orden de las palabras, el formato de los números, etc. era muy diferente de un idioma a otro. El enfoque de creación de mensajes, independiente del idioma, permite separar el mensaje y las variables. Con estas variables, MessageFormatter puede concatenar las diferentes partes del mensaje, formatearlas según las convenciones correctas, y proporcionar un mensaje bien formado.
MessageFormatter toma una serie de objetos, formatea los textos, y los inserta en los strings formateados en los emplazamientos correctos. Una amplia variedad de formatos puede ser utilizada en conjunción con MessageFormatter para gestionar el plural, los números, etc. Típicamente, el mensaje es proporcionado por un recurso, y los argumentos son preparados dinámicamente.