Saya harus mengembangkan situs web multi bahasa. Ini memiliki lebih dari 4 bahasa sekaligus yang digunakan dalam database. Skemanya selalu berikut: field_%lang%
mantan. identitas | judul_en | judul_de | deskripsi_en | deskripsi_de
Karena ini cukup sederhana, saya berpikir untuk menulis fungsi yang dapat saya gunakan di pengontrol dan tampilan (Entitas global?) untuk menjaga kode saya KERING.
//function
public function __($field, $language = null){
if( $language === null ){
list( $language ) = split('_', I18n::Locale());
}
$newField = $field . '_' . strtolower( $language );
if( $this->has( $newField ) ){
return $this->{ $newField };
}else{
throw new NotFoundException('Could not find "' . $newField . '" field');
}
}
//usage
$result->__('title'); //returns title_en depending on Locale
$result->__('title', 'de'); //always returns title_de
Masalahnya adalah saya tidak tahu di mana menerapkannya tanpa konvensi pengereman. Saya sedang memikirkan tentang Entitas tetapi setahu saya tidak ada Entitas "global" yang berfungsi untuk semua model?
Semua ide dan saran dipersilakan!
Mike