Rumah > Artikel > pangkalan data > Bagaimana untuk Menghasilkan Fail Bahasa CodeIgniter secara Dinamik daripada Pangkalan Data?
Menyalurkan Data daripada Pangkalan Data ke Fail Bahasa Codeigniter
Dalam usaha anda untuk mencipta tapak web berbilang bahasa dengan Codeigniter, anda betul-betul membayangkan menggunakan pangkalan data untuk mengurus kandungan bahasa. Artikel ini akan membimbing anda melalui langkah khusus untuk mencapai matlamat ini.
Struktur Pangkalan Data dan Fail Bahasa
Pertama sekali, sediakan jadual pangkalan data bernama lang_token untuk menyimpan token bahasa. Isi dengan lajur untuk id, kategori, perihalan, lang dan token. Sebagai contoh, cipta token bahasa Inggeris seperti:
| id | category | description | lang | token | |---|---|---|---| | 1 | error | noMail | english | You must submit a valid email address | | 2 | error | noUser | english | You must submit a username |
Seterusnya, susun fail bahasa dalam subdirektori dalam aplikasi/bahasa (cth., aplikasi/bahasa/bahasa Inggeris).
Fail Bahasa Pencucuh Kod Struktur
Fail bahasa mengikut struktur tertentu:
$lang['category_description'] = 'token';
Sebagai contoh, dalam application/language/english/general_lang.php:
$lang['error_noMail'] = 'You must submit a valid email address'; $lang['error_noUser'] = 'You must submit a username';
Fungsi Pengawal untuk Penjanaan Fail Bahasa Dinamik
Untuk mencipta fail bahasa secara dinamik daripada pangkalan data, cipta fungsi pengawal seperti ini:
function updatelangfile($my_lang){ $query = $this->db->where('lang', $my_lang)->get('lang_token'); $langstr = "<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');\n\n\n"; foreach ($query->result() as $row){ $langstr.= "$lang['".$row->category."_".$row->description."'] = \"$row->token\";\n"; } write_file('./application/language/'.$my_lang.'/general_lang.php', $langstr); }
Penggunaan
Setiap kali anda mengemas kini pangkalan data anda, panggil fungsi updatelangfile('english') untuk menjana semula fail bahasa.
Nota Tambahan
Atas ialah kandungan terperinci Bagaimana untuk Menghasilkan Fail Bahasa CodeIgniter secara Dinamik daripada Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!