Hkan adlı üyeden alıntı: mesajı görüntüle
Ç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.
Öncelikle cevabınız için teşekkür ederim hocam.
Fakat sorunum şöyle.
Sizin verdiğiniz örnekte veritabanı demişsiniz ve direk lazım olan değeri çekmişsiniz.

Fakat benim işlemimde değerler api den geliyor ve direk değer değil bir metin geliyor. Yani her gelen metin içinde bana lazım olan değerler geliyor.

Alıntı
Registration of abc123.com for 1 year
Renewal of abc123.com for 1 year
Registration of xyzklam.com for 2 years
Required parameter missing: reseller-id
Yukarıdaki gibi metinler döndürüyor.
Ve metinlerin içindeki domain adı, yıl yada eksik parametre gibi değerler bana lazım olan yerler. Api direk bunları değişken olarak vermiyor. Eğer vermiş olsaydı dediğiniz gibi çok mantıklı olurdu. Dediğiniz sistemi kullanmak için her gelen metni regex ile kontrol ettirip lazım olan değerleri kesip almam gerekiyor.

İstek yollandığım zaman üste yazdığım herhangi bir sonuç gelebilir. Tam olarak geri dönebilecek sonuç bile belli değil.