Codeigniter PHP framework library for dealing with gettext
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
tests
.gitignore
.scrutinizer.yml
LICENSE
README.md
build.xml
composer.json
index.html
phpunit.xml.dist

README.md

CodeIgniter Gettext

Latest Stable Version Build Status Code Coverage Scrutinizer Code Quality License

This is CodeIgniter PHP framework package for dealing with Gettext.

This package is a fork from Marko Martivović library : https://github.com/Marko-M/codeigniter-gettext

Please use Composer to install it and include it as a package in your CodeIgniter application.

Instructions

Please note that following steps assume that you have correctly installed gettext and configured Codeigniter on your server.

  1. Use composer to install this package composer require joel-depiltech/codeigniter-gettext
  2. Add this package to auto-load packages array $autoload['packages'] = array(FCPATH . 'vendor/joel-depiltech/codeigniter-gettext/src'); or include it with Loader library $this->load->add_package_path(FCPATH . 'vendor/joel-depiltech/codeigniter-gettext/src');
  3. Load default configuration file $this->load->config('gettext'); or add it to auto-load config array $autoload['config'] = array('gettext');
  4. Load the library $this->load->library('gettext'); or add it to auto-load library array $autoload['library'] = array('gettext');
  5. Load the helper $this->load->helper('gettext'); or add it to auto-load helper array $autoload['helper'] = array('gettext');
  6. Create gettext locales directory according to your gettext_locale_dir (application/language/locales by default). Inside that directory create locale_name/LC_MESSAGES path for each of your locales and place your .mo files inside.

This is an example how to load Library overwriting default configuration:

<?php
class Your_controller extends CI_Controller
{
   public function __construct()
   {
        parent::__construct();

        $this->load->library(
            'gettext',
            array(
                'gettext_text_domain' => 'my-project',
                'gettext_locale' => 'fr_FR.UTF-8',
                'gettext_locale_dir' => 'language/gettext'
            )
        );
   }
}
?>

Issues

If you have some issues with this package or is not working properly, please check your CodeIgniter log files. 'INFO' message is just for giving informations about the process, pay attention to 'ERROR' message which help you to resolve your issues.

Submit a new issue if you can't solve your problem and help us to enhance this package.

Additional Usage

If you want to use URIs in i18n Style, you can easily add a Post-Controller-Hook like the sample below. Place the following code inside your application/config/hooks.php.


$hook['post_controller_constructor'] = function()
{
    /**
     * Localisation Strings Windows:
     * @link https://msdn.microsoft.com/en-us/library/cdax410z(v=vs.90).aspx
     * @link https://msdn.microsoft.com/en-us/library/39cwe7zf(v=vs.90).aspx
     * Localisation Strings Unix:
     * Verify that the selected locales are available by running `locale -a`. 
     * 
     * in addition take a look at
     * @link http://avenir.ro/create-cms-using-codeigniter-3/create-multilanguage-site-codeigniter/
     **/

    $locale = Array(
        "de" => Array(
            'de_DE.UTF-8',
            'de_DE@euro',
            'de_DE',
            'german',
            'ger',
            'deu',
            'de'
        ),
        "en" => Array(
            "en_GB.UTF-8",
            "en_GB@euro",
            "en_GB",
            "english",
            "eng",
            "gbr",
            "en"
        )
    );

    $CI = &get_instance();
    $lang = $this->uri->segment(1);
    if(isset($locale[$lang])){
        $getTextConfig = Array( 
            'gettext_catalog_codeset' => 'UTF8',
            'gettext_text_domain' => 'example',
            'gettext_locale_dir' => './language/locale/';
            'gettext_locale' => $locale[$lang]
        );
        $CI->load->library('gettext', $getTextConfig);
    }
    else {
        $CI->load->library('gettext');
    }

};