Welcome Guest, Not a member yet? Register   Sign In
Multi language site
#1

[eluser]Unknown[/eluser]
Hello Developer,

If you want your site show in multi language here is a simple guide for you :-

First you have make in system/language/languagename(ex:- english). This is by default when you will download codeigniter. Now you have to add only one file there english_lang.php . Now first you will make default language name and language id in any model. (Note:- This model should be load in all controllers). Like :-

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class General_model extends CI_Model {
public function __construct()
{
parent::__construct();
$this->load->library("session");
if($this->session->userdata('DEFAULTLANGUAGEID') == ""){
$newdata = array(
'DEFAULTLANGUAGEID' => '1',
'DEFAULTLANGUAGE' => 'english'
);
$this->session->set_userdata($newdata);
}
}
}
?>

Now you can make drop down on site :-

<select id="language" name="language">
<option value="1">English</option><option value="2">Franch</option><option selected="" value="12">Norway</option><option value="13">Italian</option></select>

make in ajax changeLanguage function like :-

function changeLanguage(langId,returnuri)
{
xmlhttp=getobject();
var action = "language";
var query="langId="+langId+"&action;="+action;
var base_url= document.getElementById("baseurlval").value;
var siteurl= document.getElementById("siteurl").value;
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
var resultcheck = xmlhttp.responseText;
[removed].href= siteurl+returnuri;
}
}
xmlhttp.open("GET",base_url+"index.php/pass/index?type=changelanguage&"+query,true);
xmlhttp.send(null);
}


On pass.php controllers you have to call function.

Now You can set in models new session


public function changeLanguage($get)
{
$result = "";
$this->db->select('*');
$this->db->from(TBL_LANGUAGE);
$this->db->where("id",$get['langId']);
$query=$this->db->get();
if($query->num_rows()>0)
{
foreach ($query->result() as $value) {
/////set language id /////
$newdata = array(
'DEFAULTLANGUAGEID' => $value->id,
'DEFAULTLANGUAGE' => strtolower($value->languageName)
);
$this->session->set_userdata($newdata);

/////set language id END /////
}

}
return $result;

}


and in system/language/english folder english_lang.php you have to write static or dynamic example :-

&lt;?php
$lang['language'] = "Language";
?&gt;

and now you have to load on controller :-

$langid = $this->session->userdata('DEFAULTLANGUAGEID');
$language = $this->session->userdata('DEFAULTLANGUAGE');
$this->lang->load('form_validation', $language);
$this->lang->load($language, $language);

now you can call on view this message :-

&lt;?php echo $this->lang->line('language'); ?&gt;


Same like english you can make in system/language/(language name)

and copy all files and translate all contents in all files static or dynamic.

If any query You can contact me any time.

thanks
prasannjit prabhat




Theme © iAndrew 2016 - Forum software by © MyBB