Şimdiye kadar, ben örneğin, benim veritabanında bir 'sözlük' tablosu korumuştur:
+-----------+---------------------------------------+-----------------------------------------------+--------+
| phrase | en | fr | etc... |
+-----------+---------------------------------------+-----------------------------------------------+--------+
| generated | Generated in %1$01.2f seconds at %2$s | Créée en %1$01.2f secondes à %2$s aujourd'hui | ... |
| submit | Submit... | Envoyer... | ... |
+-----------+---------------------------------------+-----------------------------------------------+--------+
Ben o zaman ilgilendiğiniz yerel eşleşen sütun için veritabanındaki tüm satırları seçmek gerekir (veya hız db arama bir dosyadan önbelleği okuma) ve $lng
adında bir diziye sözlüğü dökümü .
Sonra benim görünümünde böyle HTML yardımcı nesneleri olacak:
$html->input(array('type' => 'submit', 'value' => $lng['submit'], etc...));
...
$html->div(array('value' => sprintf($lng['generated'], $generated, date('H:i')), etc...));
Çeviriler de PDF, XLS ve AJAX yanıtları görünebilir.
Benim yaklaşımla sorun şimdiye kadar ben şimdi global $lng;
UI kodu tükürmesi bir işlevi vardır her sınıfta yükler olması ..
Nasıl diğer insanlar nesnesine çeviri alabilirim? O globallerinin aslında kötü değil, bir senaryo var mı? Bu sözlük terimleri tüm statik olduğunda erişimcilerle bir sınıf oluşturmak için delilik olurdu?
Addendum
Ben bir bağımlılık olarak sözlük, bunu kolaylaştırmak için Lng
sınıfında bağımlılık enjeksiyon kullanabilirsiniz sayede bu durum bütün bunlar bir HTML sınıfı, bir PDF sınıfını, JSON sınıfı, vb gibi farklı çeviriler test için?