Du er på rette vej. Du vil gerne oprette en sprogfil med det samme (f.eks. når du opdaterer sprogindholdet i din database)
1.:databaselayoutet
Opret en tabel lang_token
med kolonner id
, kategori
, beskrivelse
, lang
, token
og udfyld dets felter sådan her:
OPRET TABEL HVIS IKKE FINDER `lang_token` ( `id` int(11) NOT NULL AUTO_INCREMENT, `category` text NOT NULL, `description` text NOT NULL, `lang` text NOT NULL, `token` tekst IKKE NULL, PRIMÆR NØGLE (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3; INSERT INTO `lang_token` (`id`, `category`, `description`, `lang`, `token`) VÆRDIER (1, 'fejl', 'noMail', 'engelsk', 'Du skal indsende en gyldig e-mailadresse '), (2, 'fejl', 'noUser', 'engelsk', 'Du skal indsende et brugernavn');
2.:Om CodeIgniter-sprogfiler
CodeIgniter vil se først i din applikations-/sprogmappe. Hvert sprog skal gemmes i sin egen mappe. Sørg for at få oprettet dine engelske eller tyske osv. undermapper f.eks. applikation/sprog/engelsk
Tredje:Controllerfunktion til at oprette sprogfil på farten
Om Codeigniter-sprogfilerne:Det er en god praksis at bruge et fælles præfiks (kategori) for alle meddelelser i en given fil for at undgå kollisioner med lignende navngivne elementer i andre filer. Strukturen er som:$lang['category_description'] ="token";
funktion updatelangfile($my_lang){ $this->db->where('lang',$my_lang); $query=$this->db->get('lang_token'); $lang=array(); $langstr="result() as $row){ //$lang['error_csrf'] ='Dette formularindlæg bestod ikke vores sikkerhedstjek.'; $langstr.="\$lang['".$row->category."_".$row->description."'] =\"$row->token\";"."\n"; } write_file('./application/language/'.$my_lang.'/general_lang.php', $langstr); }
Afsluttende bemærkninger:
- Når du ændrer din database, kalder du funktionen
updatelangfile('engelsk')
-
Glem ikke at indlæse filhjælperen og sprogklasse i konstruktøren af controlleren, hvor updatelangfile() er placeret:
funktion __construct(){ parent::__construct(); $this->load->helper('fil'); $this->lang->load('general', 'engelsk');}