Çoklu dil sağlamaya çalışıyorsanız sistemi çeviriyle uğraştırmak son derece gereksiz bir olay olur. Ortalama bir sitedeki toplam statik metinler olsa olsa 50-100 tane olur zaten. Oturup sağlamak istediğiniz her dil için bu metinleri çevirip bahsettiğiniz değişkenler için {degisken} tarzı bir format belirleyip bir dosyaya kaydetmek ve basit bir fonksiyonla bu metinleri gerekli yerde göstermek daha mantıklı olur. Fonksiyonun en temel hali:

function text()
{
    // fonksiyona gönderilen tüm parametreler
    $args = func_get_args();

    // ilk parametre array'den ÇIKARILIP $textCode değişkenine atanır.
    // çünkü ilk parametre, istenilen metnin dil dosyasında belirtilen kodudur
    $textCode = array_shift($args);

    // getCurrentLanguageCode TEMSİLİ FONKSİYONDUR
    // sitedeki aktif dil için belirlenmiş kodu döndürür
    // 'tr', 'en', 'de', 'fr' gibi
    $language = include 'dilDosyalarininBulunduguKlasor/' . getCurrentLanguageCode() . '.php';

    $text = $language[$textCode];

    // yerine konulması gereken parametre varsa
    if (count($args) > 0)
    {
        // her bir parametre...
        foreach ($args as $arg)
        {
            // ...metindeki soru işareti ile değiştirilir
            str_replace(' ? ', ' ' . $arg . ' ', $text);
        }
    }

    return $text;
}
Bir dil dosyasının da örnek hali:
<?php

return array(
    'selamlamaMetni' => 'Merhaba, ?'
);
<?php

$veritabanindanGelenIsim = 'Hkan';

// Ekrana "Merhaba, Hkan" stringini yazdırır
echo text('selamlamaMetni', $veritabanindanGelenIsim);
Bilgi: Dikkat çektiyse dil dosyasında doğrudan return yaptım array'i. Bu şekilde, fonksiyondaki $language değişkenine dosyada return edilen array atanıyor direk. Geri kalan her şeyi kod içinde yorum satırlarıyla açıklamaya çalıştım.

Bilgi: Fonksiyonu direk kullanmanızı önermem. Zira fonksiyon her çağırıldığında dil dosyasını tekrar değişkene atıyor. String buffer konularında nasıl bir yönetimi var PHP'nin bilmiyorum ama bu yöntemin performans düşüşü sağlayacağını düşünüyorum. Ordaki yöntem yerine, fonksiyondan hemen önce gerekli dosyaları include dile değişkene atayıp fonksiyondan global yordamıyla ile erişilmesi daha mantıklı olur.

Kolay gelsin.