Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara membuat file bahasa Codeigniter dari database?

Anda berada di jalur yang benar. Anda ingin membuat file bahasa dengan cepat (mis. setiap kali Anda memperbarui konten bahasa database Anda)

Pertama:tata letak basis data

Buat tabel lang_token dengan kolom id , category , description , lang , token dan isi kolomnya seperti ini:

    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 ;

    INSERT INTO `lang_token` (`id`, `category`, `description`, `lang`, `token`) 
    VALUES
      (1, 'error', 'noMail', 'english', 'You must submit a valid email address'),
      (2, 'error', 'noUser', 'english', 'You must submit a username');

ke-2:Tentang file bahasa CodeIgniter

CodeIgniter akan terlihat pertama di direktori aplikasi/bahasa Anda, Setiap bahasa harus disimpan dalam foldernya sendiri. Pastikan Anda memiliki subdirektori bahasa Inggris atau Jerman, dll. yang dibuat mis. application/language/english

3:Fungsi pengontrol untuk membuat file bahasa dengan cepat

Tentang File bahasa Codeigniter:Ini adalah praktik yang baik untuk menggunakan awalan umum (kategori) untuk semua pesan dalam file tertentu untuk menghindari tabrakan dengan item bernama serupa di file lain. Strukturnya seperti:$lang['category_description'] = “token”;

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

    }

Catatan akhir:

  1. Setiap kali Anda mengubah database, Anda akan memanggil fungsi updatelangfile(‘english’)
  2. Jangan lupa untuk memuat file helper dan kelas bahasa di konstruktor pengontrol tempat updatelangfile() berada:

    function __construct(){
        parent::__construct();
        $this->load->helper('file');
        $this->lang->load('general', 'english');
    }
    



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Terjadi kesalahan JNI, silakan periksa instalasi Anda dan coba lagi di Eclipse x86 Windows 8.1

  2. Memesan berdasarkan nilai bidang tertentu terlebih dahulu

  3. Apa artinya melarikan diri dari string?

  4. Menggunakan group by pada dua bidang dan menghitung dalam SQL

  5. Mysql atau/dan didahulukan?