(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
MessageFormatter (İleti Biçemleyici), dilden bağımsız iletiler üretmeyi ve birleştirmeyi mümkün kılan somut bir sınıftır. Bu sınıfın yöntemleri, son kullanıcılar tarafından görülecek iletileri derlemek için kullanılır.
MessageFormatter sınıfı, program tarafından sağlanan çeşitli (metin, sayı ve tarih gibi) veri parçaları sayesinde iletilerin montajını yapar. MessageFormatter'ın bir sınıf olmasından dolayı programın bu veri parçalarının sırasını bilmeye ihtiyacı yoktur. Sınıf bu veri parçaları için biçemleme belirtimlerini kullanarak iletiyi bir özkaynak paketi içinde tek bir dizge halinde monte eder. Örneğin, MessageFormatter "Finished printing x out of y files..." cümlesini çeviriye izin verecek esneklikte basmanıza yardımcı olacaktır.
Öncelikle, bir son kullanıcı iletisi bir cümle olarak oluşturulur ve bir dizge olarak elde edilir. Cümle yapısı, sözcük sırası, bayı biçemi ve daha bir çok şey dilden dile farklılıklar gösterdiğinden bu işlem yerelleştiriciler açısından sorunlara yol açar. İletileri dilden bağımsız bir yolla oluşturmak için iletinin parçaları her veri için bir anahtar sağlanarak ayrı ayrı yerlerde tutulur. MessageFormatter sınıfı bu anahtarları kullanarak ileti parçalarını birleştirebilir, bunları yerelleştirebilir ve son kullanıcıya iyi biçimlenmiş bir dizge olarak gösterebilir.
MessageFormatter, bir nesne kümesini alır, bunları biçemler ve bunları uygun yerlerde bir şablon içine yerleştirir. Seçim biçemleri, çoğul biçemlerin sayılarla eşleştirilip bir öğe dizisinden seçilebilmesini sağlar. Genelde, değiştirgeler ve özkaynaklar üzerinden gelen ileti biçemi çalışma anında devingen olarak değiştirgelere atanır.