Codeigniter Tutorials
- What is codeigniter?
- Application_Architecture
- MVC Architecture
- HMVC Architecture
- Codeigniter Configuration
- Remove index.php from url in codeigniter
- MVC Concept
- View
- Alternate PHP Syntax for View Files
- Routing
- Codeigniter URL
- Get Current URL
- Previous page URL get
- Seo Friendly URL
- Slug Create in codeigniter
- What is _remap() function
- Remove controller name from url in codeigniter
- Codeigniter Controller Class
- Class Constructor
- GET $ POST method in Codeigniter
- Models
- Basepath, Apppath, FCPATH
- URI Segment
- Page Redirect
- Helper class
- Custom Helper class
- Form Helper
- Common Helper Functions
- Common Function
- Array Problems
- Call controller in Helper
- Add active class to menu using Helper class
- Custom Library
- Custom Library Example
- when to use get_instance()
- Codeigniter Hook
- how to work inline css in codeigniter
- Custom 404 page
- 404 custom error page
- Create custom config file in codeigniter
- How to set and get config item value
- How to Speed Up CodeIgniter App?
- Codeigniter Functions
- Session
- cookies
- How to Set & Get Tempdata in Codeigniter
- flash messages in Codeigniter
- Flashdata
- Encryption and Decryption In CodeIgniter
- Codeigniter security
- csrf token form security
- Password Hashing
- Form Validation
- Custom Validation
- Registration Form with validation
- Server Side Form Validation
- Validate Select Option Field
- Date Format Validation
- Date Format change in codeigniter
- Date Functions
- DOB Validation
- CI CRUD
- User SignUp
- User Login
- User Logout
- Login Account
- Login form with RememberMe
- Login Form with session
- User change password
- Change Password with Callback Validation to Check Old Password
- Forgot password
- Reset password
- Insert data in database
- Fetch data from database
- Update data in database
- Delete data in database
- File Upload
- Image Upload with resize Image
- Upload Multiple file and images
- Upload Multiple images with CRUD
- File and image update
- Upload Image Using Ajax.
- Email Send
- Email Send Using Email library
- Email Send Using SMTP Gmail
- Notification send
- store data in json format in DB
- Json parse
- Fetch data Using Ajax with Json data
- How to Show data Using Ajax with Json parse
- Get JSON Data from PHP Script using jQuery Ajax
- Insert data Using Ajax
- Submit data Using Ajax with form validation
- How to show data Using Ajax in codeigniter
- Insert & Update Using Ajax
- Registration Form With Validation Using Ajax in codeigniter
- Delete data Using Ajax Confirmation
- Delete All data Using checkbox selection
- Ajax CSRF Token
- Ajax Post
- Ajax serverside form validation
- Contact form using AJAX with form validation
- DataTable Using Ajax dynamically
- DataTables pagination using AJAX with Custom filter
- DataTables AJAX Pagination with Search and Sort in codeigniter
- DataTables in Codeigniter using Ajax
- Ajax Custom Serarch
- Ajax Live Data Search using Jquery PHP MySql
- Ajax Custom Serarch and sorting in datatable
- Dynamic Search Using Ajax
- Autocomplete using jquery ajax
- Jquery Ajax Autocomplete Search using Typeahead
- Dynamic Dependent Dropdown Using Ajax
- Dynamic Dependent Dropdown list Using Ajax
- Dynamic Dependent Dropdown in codeigniter using Ajax
- ajax username/email availability check using JQuery
- Check Email Availability Using Ajax
- Data Load on mouse scroll
- Ajax CI Pagination
- Pagination in codeigniter
- Ajax Codeigniter Pagination
- email exists or not using ajax with json
- CRUD using AJAX With Modal popup in CI
- Add / Show Data on modal popup using Ajax
- Modal popup Validation using Ajax
- Data show on Modal popup Using Ajax
- Add / Remove text field dynamically using jquery ajax
- How to Add/Delete Multiple HTML Rows using JavaScript
- Delete Multiple Rows using Checkbox
- Multiple Checkbox value
- Form submit using jquery Example
- REST & SOAP API
- Multi-Language implementation in CodeIgniter
- How to pass multiple array in view
- Captcha
- create zip file and download
- PhpOffice PhpSpreadsheet Library (Export data in excel sheet)
- data export in excel sheet
- Excel File generate in Codeigniter using PHPExcel
- Dompdf library
- tcpdf library
- Html table to Excel & docs download
- CI Database Query
- Database Query
- SQL Injection Prevention
- Auth Model
- Join Mysql
- Tree View in dropdown option list
- OTP Integration in codeigniter
- curl post
- download file using curl
- Sweet Alert
- Sweet alert Delete & Success
- Log Message in Codeigniter
- Menu & Submenu show dynamically
- Set Default value in input box
- Cron Jobs
- Stored Procedure
- Display Loading Image when AJAX call is in Progress
- Send SMS
- IP Address
- Codeigniter Tutorialspoint
- Website Link
- How To Create Dynamic Xml Sitemap In Codeigniter
- Paypal Payment Integration
- Get Latitude and Longitude From Address in Codeigniter Using google map API
- How To Create Simple Bar Chart In Codeigniter Using AmCharts?
- dynamic Highcharts in Codeigniter
- Barcode in Codeigniter
- Codeigniter Interview Questions
- Project
How to implement Multi-Language in CodeIgniter
Multi-language support or internationalization is an important feature of web applications. Most of PHP frameworks comes with multi-language support to add functionality using existing class and functions.
File Name :
Site Default Language
config.php
Creating Language Files
Create multiple language files and insert those files into the application/language/ directory with separate sub-directories for each language (for example, english, french, german, hindi, etc.).
English
application/language/english/header_lang.php
<?php
// title
$lang['text_title_header'] = 'Welcome to Itechxpert';
$lang['text_name_header'] = 'itechxpert';
// Main Menu
$lang['text_menu_home_header'] = 'Home';
$lang['text_menu_demo_header'] = 'Live Demo';
$lang['text_menu_tutorials_header'] = 'Tutorials';
$lang['text_menu_contact_header'] = 'Contact';
?>
application/language/english/content_lang.php
<?php
$lang['text_content'] = 'There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don`t look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn`t anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc';
?>
application/language/english/footer_lang.php
<?php
$lang['text_copyright_footer'] = 'Copyright © itechxpert '.date('Y').'. All Rights Reserved';
?>
Hindi
application/language/hindi/header_lang.php
<?php
// title
$lang['text_title_header'] = 'itechxpert में आपका स्वागत है';
$lang['text_name_header'] = 'itechxpert';
// Main Menu
$lang['text_menu_home_header'] = 'घर';
$lang['text_menu_demo_header'] = 'लाइव डेमो';
$lang['text_menu_tutorials_header'] = 'ट्यूटोरियल';
$lang['text_menu_contact_header'] = 'संपर्क करें';
?>
application/language/hindi/content_lang.php
<?php
$lang['text_content'] = 'Lorem Ipsum के कई अंश उपलब्ध हैं, परन्तु अधिकांश लोगों को इंजेक्शन वाले हास्य या कुछ यादृच्छिक शब्दों से कुछ रूप में परिवर्तन हुआ है, जो कुछ भी विश्वसनीय नहीं लगते। यदि आप Lorem Ipsum के एक मार्ग का उपयोग करने जा रहे हैं, तो आपको यह सुनिश्चित करने की आवश्यकता है कि टेक्स्ट के मध्य में छिपे हुए कोई भी शर्मनाक नहीं है। इंटरनेट पर सभी लॉर्म Ipsum जनरेटर के रूप में आवश्यक पूर्वनिर्धारित विखंडन दोहराने के लिए होते हैं, जिससे इंटरनेट पर यह पहला सच्चा जनरेटर बना। यह 200 से अधिक लैटिन शब्दों के एक शब्दकोश का उपयोग करता है, जो कि कुछ बुनियादी वाक्य संरचनाओं के साथ मिलकर, Lorem Ipsum उत्पन्न करता है जो उचित लगता है। उत्पन्न Lorem Ipsum इसलिए हमेशा पुनरावृत्ति, इंजेक्शन हास्य, या गैर-विशिष्ट शब्द आदि से मुक्त है';
?>
application/language/hindi/footer_lang.php
<?php
$lang['text_copyright_footer'] = 'कॉपीराइट © itechxpert'.date('Y').'. सर्वाधिकार सुरक्षित';
?>
enable hooks
enable the hooks feature in application/config/config.php file.
<?php
$config['enable_hooks'] = TRUE;
?>
Create Hooks
<?php
class MultiLanguageLoader
{
function initialize() {
$ci =& get_instance();
// load language helper
$ci->load->helper('language');
$siteLang = $ci->session->userdata('site_lang');
if ($siteLang) {
// difine all language files
$ci->lang->load('header',$siteLang);
$ci->lang->load('content',$siteLang);
$ci->lang->load('footer',$siteLang);
} else {
// default language files
$ci->lang->load('header','english');
$ci->lang->load('content','english');
$ci->lang->load('footer','english');
}
}
}
?>
Open application/config/hooks.php file and define a hook.
<?php
// create hook for multi langunage
$hook['post_controller_constructor'] = array(
'class' => 'MultiLanguageLoader',
'function' => 'initialize',
'filename' => 'MultiLanguageLoader.php',
'filepath' => 'hooks'
);
?>
Before starting to implement multilingual features, open the application/config/autoload.php
<?php
// load libraries
$autoload['libraries'] = array('session');
// load helper
$autoload['helper'] = array('url');
?>
Create a controller file for handing the language switch
Create a controller file named “MultiLanguageSwitcher.php” inside “application/controllers” folder.
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class MultiLanguageSwitcher extends CI_Controller
{
public function __construct() {
parent::__construct();
}
// create language Switcher method
function switch($language = "") {
$language = ($language != "") ? $language : "english";
$this->session->set_userdata('site_lang', $language);
redirect($_SERVER['HTTP_REFERER']);
}
}
?>
Create a controller file
Create a controller file named Home.php” inside “application/controllers” folder.
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Home extends CI_Controller {
public function __construct() {
parent::__construct();
}
//
public function index() {
$data = array();
$data['metaDescription'] = 'Multi-Language implementation in CodeIgniter';
$data['metaKeywords'] = 'Multi-Language implementation in CodeIgniter';
$data['title'] = "Multi-Language implementation in CodeIgniter - TECHARISE";
$this->load->view('home/index', $data);
}
}
?>
Add dropdown your template file
<select class="form-control" onchange="javascript:window.location.href='<?php echo base_url(); ?>multilanguageswitcher/switch/'+this.value;">
<option value="english" <?php if($this->session->userdata('site_lang') == 'english') echo 'selected="selected"'; ?>>English</option>
<option value="hindi" <?php if($this->session->userdata('site_lang') == 'hindi') echo 'selected="selected"'; ?>>Hindi</option>
<option value="french" <?php if($this->session->userdata('site_lang') == 'french') echo 'selected="selected"'; ?>>French</option>
<option value="german" <?php if($this->session->userdata('site_lang') == 'german') echo 'selected="selected"'; ?>>German</option>
</select>
Create a view
Create a view file named “index.php” inside “application/views/ folder.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title><?php echo $this->lang->line('text_title_header'); ?></title>
<!-- Bootstrap core CSS -->
<link href="<?php echo HTTP_VENDOR_PATH; ?>bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link type="text/css" rel="stylesheet" media="all" href="<?php echo HTTP_VENDOR_PATH; ?>galleyZoom/fancybox/source/jquery.fancybox.css"/>
<!-- Custom styles for this template -->
<link href="<?php echo HTTP_CSS_PATH; ?>style.css" rel="stylesheet">
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-dark fixed-top" style="background-color: #3B5998;">
<span>
<select class="form-control" onchange="javascript:window.location.href='<?php echo base_url(); ?>multilanguageswitcher/switch/'+this.value;">
<option value="english" <?php if($this->session->userdata('site_lang') == 'english') echo 'selected="selected"'; ?>>English</option>
<option value="hindi" <?php if($this->session->userdata('site_lang') == 'hindi') echo 'selected="selected"'; ?>>Hindi</option>
<option value="french" <?php if($this->session->userdata('site_lang') == 'french') echo 'selected="selected"'; ?>>French</option>
<option value="german" <?php if($this->session->userdata('site_lang') == 'german') echo 'selected="selected"'; ?>>German</option>
</select>
</span>
<div class="container">
<a class="navbar-brand" href="<?php echo site_url(); ?>"><?php echo $this->lang->line('text_name_header'); ?></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item active">
<a class="nav-link" href="#"><?php echo $this->lang->line('text_menu_home_header'); ?>
<span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><?php echo $this->lang->line('text_menu_demo_header'); ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><?php echo $this->lang->line('text_menu_tutorials_header'); ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><?php echo $this->lang->line('text_menu_contact_header'); ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"> </a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-lg-12">
<?php echo $this->lang->line('text_content'); ?>
</div>
</div>
</div>
<!-- Footer -->
<footer class="py-2" style="background-color: #3B5998;">
<div class="container">
<p class="m-0 text-center text-white"><?php echo $this->lang->line('text_copyright_footer'); ?></p>
</div>
<!-- /.container -->
</footer>
<script>var url = "<?php echo site_url(); ?>";</script>
<!-- Bootstrap core JavaScript -->
<script src="<?php echo HTTP_VENDOR_PATH; ?>jquery/jquery.min.js"></script>
<script src="<?php echo HTTP_VENDOR_PATH; ?>popper/popper.min.js"></script>
<script src="<?php echo HTTP_VENDOR_PATH; ?>bootstrap/js/bootstrap.min.js"></script>
</body>
</html>