Rumah > pangkalan data > tutorial mysql > Bagaimanakah penciptaan fail bahasa dinamik boleh dilaksanakan dalam CodeIgniter untuk tapak web berbilang bahasa?

Bagaimanakah penciptaan fail bahasa dinamik boleh dilaksanakan dalam CodeIgniter untuk tapak web berbilang bahasa?

Linda Hamilton
Lepaskan: 2024-10-30 09:30:03
asal
632 orang telah melayarinya

How can dynamic language file creation be implemented in CodeIgniter for multi-language websites?

Penciptaan Fail Bahasa Dinamik untuk Tapak Web Berbilang Bahasa menggunakan CodeIgniter

Masalah:

Bila membina tapak dalam talian berbilang bahasa dengan CodeIgniter, pengguna mungkin menghadapi cabaran menghantar data daripada pangkalan data kepada fail bahasa. Kelas bahasa terbina dalam tidak mempunyai sokongan asli untuk penyepaduan pangkalan data.

Penyelesaian:

Reka Letak Pangkalan Data:

Buat jadual yang dipanggil lang_token dengan lajur untuk menyimpan maklumat berkaitan bahasa:

CREATE TABLE IF NOT EXISTS `lang_token` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `category` text NOT NULL,
      `description` text NOT NULL,
      `lang` text NOT NULL,
      `token` text NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
Salin selepas log masuk

Struktur Fail Bahasa CodeIgniter:

subdirektori Inggeris atau Jerman, dsb. hendaklah dibuat di bawah direktori aplikasi/bahasa. Setiap bahasa harus disimpan dalam foldernya sendiri.

Membuat Fail Bahasa dengan Cepat:

Fungsi tersuai updatelangfile() boleh dibuat dalam pengawal untuk menjana bahasa fail secara dinamik:

function updatelangfile($my_lang){
        $this->db->where('lang',$my_lang);
        $query=$this->db->get('lang_token');

        $lang=array();
        $langstr="<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
                /**
                *
                * Created:  2014-05-31 by Vickel
                *
                * Description:  ".$my_lang." language file for general views
                *
                */"."\n\n\n";



        foreach ($query->result() as $row){
            //$lang['error_csrf'] = 'This form post did not pass our security checks.';
            $langstr.= "$lang['".$row->category."_".$row->description."'] = \"$row->token\";"."\n";
        }
        write_file('./application/language/'.$my_lang.'/general_lang.php', $langstr);

    }
Salin selepas log masuk

Penggunaan:

Apabila perubahan dibuat pada pangkalan data, fungsi ini boleh dipanggil untuk mengemas kini fail bahasa yang sepadan:

$this->updatelangfile('english');
Salin selepas log masuk

Nota:

Ingat untuk memuatkan perkara berikut dalam pembina pengawal:

$this->load->helper('file');
$this->lang->load('general', 'english');
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah penciptaan fail bahasa dinamik boleh dilaksanakan dalam CodeIgniter untuk tapak web berbilang bahasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan