Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak tworzyć pliki językowe Codeigniter z bazy danych?

Jesteś na dobrej drodze. Będziesz chciał utworzyć plik językowy w locie (np. za każdym razem, gdy aktualizujesz zawartość językową swojej bazy danych)

Pierwsze:układ bazy danych

Utwórz tabelę lang_token z kolumnami id , category , description , lang , token i wypełnij jego pola w ten sposób:

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

2nd:Informacje o plikach językowych CodeIgniter

CodeIgniter będzie najpierw szukał w katalogu aplikacji/języka. Każdy język powinien być przechowywany w osobnym folderze. Upewnij się, że masz utworzone podkatalogi w języku angielskim, niemieckim itp. application/language/english

3.:funkcja kontrolera do tworzenia pliku językowego w locie

Informacje o plikach językowych Codeigniter:Dobrą praktyką jest używanie wspólnego przedrostka (kategorii) dla wszystkich wiadomości w danym pliku, aby uniknąć kolizji z podobnie nazwanymi elementami w innych plikach. Struktura wygląda następująco:$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);

    }

Uwagi końcowe:

  1. Za każdym razem, gdy zmienisz bazę danych, wywołasz funkcję updatelangfile(‘english’)
  2. Nie zapomnij załadować pomocnika plików i zajęcia językowe w konstruktorze kontrolera, w którym znajduje się updatelangfile():

    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. Korzystanie z funkcji Count, aby znaleźć liczbę wystąpień

  2. Błąd krytyczny:wywołanie niezdefiniowanej funkcji mysqli_result()

  3. mysql - tworzenie mechanizmu podobnego do sekwencji Oracle

  4. NA ZDUPLIKOWANY KLUCZ + AUTO INCREMENT problem mysql

  5. CURDATE() Przykłady – MySQL