Rumah  >  Artikel  >  pangkalan data  >  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
Linda Hamiltonasal
2024-10-30 09:30:03556semak imbas

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 ;

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);

    }

Penggunaan:

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

$this->updatelangfile('english');

Nota:

Ingat untuk memuatkan perkara berikut dalam pembina pengawal:

$this->load->helper('file');
$this->lang->load('general', 'english');

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!

Kenyataan:
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