Language improvements Codeigniter
September 22, 2010 by: Xavier PerezThe language library in Codeigniter is very simple, and doesn’t support variable substitution, only partial or complete phrases.
For this reason, I have made minor changes to allow the variable substitution, thus it’s not the same espelling in different idiomas.
For example:
To show a price, every country have it’s own format, sometimes sig are before, sometimes after the number ( float or integer). My language helper solves it.
In your language/english directory, you will have your language file with this:
$lang[‘product_price’] = ‘$ %6.0d’;
In your language/spanish directory, you will have your kanguage file with this:
$lang[‘price’] = ‘%6.2f €’;
Herem the language_helper.php file (must to be create with this name and in the helper appliation/directory):
<?php if (!defined(‘BASEPATH’)) exit(‘No direct script access allowed’);
/**
* CodeIgniter
*
* An open source application development framework for PHP 4.3.2 or newer
*
* @package CodeIgniter
* @author ExpressionEngine Dev Team
* @copyright Copyright (c) 2008 – 2010, EllisLab, Inc.
* @license http://codeigniter.com/user_guide/license.html
* @link http://codeigniter.com
* @since Version 1.0
* @filesource
*/// ————————————————————————
/**
* CodeIgniter Language Helpers
*
* @package CodeIgniter
* @subpackage Helpers
* @category Helpers
* @author ExpressionEngine Dev Team
* @link http://codeigniter.com/user_guide/helpers/language_helper.html
*/// ————————————————————————
/**
* Lang
*
* Fetches a language variable and optionally outputs a form label
*
* @access public
* @param string the language line
* @param string the id of the form element
* @return string
*/
if ( ! function_exists(‘lang’))
{
function lang($line, $id = ”)
{
$CI =& get_instance();
$line = $CI->lang->line($line);if ($id != ”)
{
$line = ‘<label for=”‘.$id.'”>’.$line.”</label>”;
}return $line;
}
}/**
* SLang
*
* Fetches a language variable, optional substitution vars and optionally outputs a form label
*
* @author Xavier Pérez
* @version 1.0.1
* @access public
* @param string the language line
* @param mixed the substitution values (varchar, integer, or array)
* @param string the id of the form element
* @return string
*/if ( ! function_exists(‘slang’))
{
function slang($line, $values=”, $id = ”)
{
$CI =& get_instance();
$line = $CI->lang->line($line);if (is_array($values) && count($values) > 0)
$line = vsprintf($line,$values);if (!is_array($values) && $values != “”)
$line = sprintf($line,$values);if ($id != ”)
{
$line = ‘<label for=”‘.$id.'”>’.$line.”</label>”;
}return $line;
}
}// ————————————————————————
/* End of file language_helper.php */
/* Location: ./system/helpers/language_helper.php */