Selamlar,

Şuan geliştirmeye devam ettiğim CMS üzerinde bahsettiğiniz yapıyı bende kurdum ve veritabanı ile çalıştım. Cache üzerinden performans kaybı yaşamadan hızlı işlem yapabildiğim için bu durum beni çok rahatsız etmedi. Ancak yine .net ile geliştirdiğimiz farklı bir projede bunu xml üzerinden yapmıştık. Xml'de mantık tr_TR.xml dosyasında
<lang>
  <item id="changedlng">Dil Değiştirildi</item>
  <item id="Language">Dil</item>
  <item id="Languages">Diller</item>
  <item id="Country">Ülke</item>
  <item id="Countries">Ülkeler</item>
  <item id="City">Şehir</item>
  <item id="Cities">Şehirler</item> </lang>
şeklindeydi ve bunu T adında bir methodla örneğin T("changedLng") çağrıldığında bu node var ise değeri yok ise parametre olarak alınan "changedLng" id'sini döner. Localization kısmında ise tarayıcı header'ından gelen dil koduna göre örneğin en_GB adında xml dosyası var ise verileri ordan okur yok ise default atanan xml'den çalıştırır.

Php tarafında çok fazla tecrübem yok ancak benzeri bir yapı ile bahsettiğiniz olayı çözebilirsiniz. Bunun için xml yerine json veya herhangi bir şekilde formatına uygun .txt .lang vb kendinize özel bir dosya oluşturabilirsiniz. İçersinde ##{{}} benzeri özel yapılar oluşturarak aynı dosyada ki değerleri şablona uygun replace edebilirsiniz..