Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създадете езикови файлове на Codeigniter от база данни?

Вие сте на прав път. Ще искате да създадете езиков файл в движение (например всеки път, когато актуализирате езиковото съдържание на вашата база данни)

1-во:оформлението на базата данни

Създайте таблица lang_token с колони id , category , description , lang , token и попълнете полетата му по следния начин:

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

2-ро:Относно езиковите файлове на CodeIgniter

CodeIgniter ще търси първо в директорията на вашето приложение/език. Всеки език трябва да се съхранява в собствена папка. Уверете се, че имате създадени поддиректории на английски или немски и т.н., напр. application/language/english

3-то:Функция на контролера за създаване на езиков файл в движение

Относно езиковите файлове на Codeigniter:Добра практика е да използвате общ префикс (категория) за всички съобщения в даден файл, за да избегнете сблъсъци с елементи с подобни имена в други файлове. Структурата им е като:$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);

    }

Заключителни бележки:

  1. Всеки път, когато промените базата си данни, ще извикате функцията updatelangfile(‘english’)
  2. Не забравяйте да заредите помощника за файлове и езиков клас в конструктора на контролера, където се намира 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. Как да направите автоматично увеличение на първичния ключ на MySQL таблицата с някакъв префикс

  2. Имам нужда от моята PHP страница, за да покажа моето BLOB изображение от mysql база данни

  3. 12 Най-добри практики за сигурност на MySQL/MariaDB за Linux

  4. Кога да използвате единични кавички, двойни кавички и обратни кавички в MySQL

  5. Сравнение на пълнотекстова търсачка - Lucene, Sphinx, Postgresql, MySQL?