(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
MessageFormatter es una clase concreta que permite a los usuarios producir mensajes concatenados neutrales al lenguaje. Los métodos proporcionados por esta clase se utilizan para construir todos los mensajes que son vistos por usuarios finales.
La clase MessageFormatter ensambla mensajes desde varios fragmentos (tales como framentos de texto, 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 las especificaciones de formateo de los fragmentos para ensamblarlos en un mensaje que está contenido en una única cadena dentro de un paquete de recursos. Por ejemplo, MessageFormatter permite imprimir la frase "Finalizada la impresión de x de y ficheros..." de una manera que aún admite flexibilidad para traducciones.
Anteriormente, un mensaje de un usuario final era creado como una sentencia y tratado como una cadna. Este procedimiento creaba problemas para los regionalizadores ya que la estructura de la sentencia, el orden de las palabras, el formato de número, etc., son muy diferentes de un lenguaje a otro. La manera neutral de lenguaje para crear mensajes mantiene cada parte del mensaje separada y proporciona claves a la información. Al utilizar estas claves, la clase MessageFormatter puede concatenar las partes del mensaja, regionalizarlas, y mostrar al usuario final una cadena bien formada.
MessageFormatter toma un conjunto de objetos, les da formato e inserta las cadenas formateadas en un patrón en los lugares apropiados. Los formatos escogidos se pueden usar en conjunto con MessageFormatter para tratar prurales, comparar números, y seleccionarlos desde un array de elementos. Normalmente, el formato del mensaje se obtendrá desde recursos, y los argumentos se establecerán dinámicamente en tiempo de ejecución.