/** * TuiyoLocalize::initiate() * Initiates a language domain * @param mixed $domain * @param mixed $locale * @param mixed $encoding * @return */ public function initiate($domain, $locale, $encoding) { //Initialize gettText $locale = !empty($locale) ? $locale : TUIYO_DEFAULT_LOCALE; $domain = !empty($domain) ? $domain : 'system'; $encoding = !empty($encoding) ? $encoding : TUIYO_DEFAULT_ENCODING; putenv("LANG={$locale}"); if (!extension_loaded('gettext')) { TuiyoLoader::import("gettext.gettext", "elibrary", "inc"); T_setlocale(LC_ALL, $locale); T_bindtextdomain($domain, TUIYO_LOCALE); T_bind_textdomain_codeset($domain, $encoding); T_textdomain($domain); //return TRUE; } setlocale(LC_ALL, $locale); bindtextdomain($domain, TUIYO_LOCALE); bind_textdomain_codeset($domain, $encoding); textdomain($domain); $path = "components/com_tuiyo/locale/" . $locale; //Load the parameters for the site! if (!class_exists('JSite')) { $path = "../components/com_tuiyo/locale/" . $locale; } $GLOBALS['mainframe']->addMetaTag("locale", $locale); $GLOBALS['mainframe']->addCustomHeadTag('<link href="' . $path . '/LC_MESSAGES/system.client.json" lang="' . $locale . '" rel="gettext" />'); }
private function initialize($config = array()) { // Load language helper $this->CI->load->helper(array('cookie', 'language')); // Make sure the session library is loaded class_exists('CI_Session') or $this->CI->load->library('session'); // List all available languages $this->languages = $config['languages']; // Set default language. // AS you can see, even if we set the default language // we do a little check up to make sure in exists on the // available languages list. If it doesn't, we set it to // CodeIgniter default language (english). $this->default = array_key_exists($config['default'], $this->languages) ? $this->languages[$config['default']] : $this->languages[config_item('language')]; // We now set the session and cookie names $this->session = $config['session'] ? $config['session'] : 'lang'; $this->cookie = $config['cookie'] ? $config['cookie'] : 'lang'; // Set client language $this->client = $this->_set_client_language(); // Set the current language $this->current = $this->_set_current_language(); // Set config $this->CI->config->set_item('language', $this->current['folder']); if (!empty($config['files'])) { foreach ($config['files'] as $file) { $this->CI->lang->load($file, $this->current['folder']); } } T_setlocale(LC_MESSAGES, $this->current['folder']); T_bindtextdomain('application', APPPATH . 'language'); return; }
/** * AdminMembers * * @param object $fcmsError * @param object $fcmsDatabase * @param object $fcmsUser * * @return void */ function AdminMembers($fcmsError, $fcmsDatabase, $fcmsUser) { $this->fcmsError = $fcmsError; $this->fcmsDatabase = $fcmsDatabase; $this->fcmsUser = $fcmsUser; T_bindtextdomain('messages', '.././language'); }
/** * * Initializes the php-gettext * Remember to load first php-gettext * @param string $locale * @param string $charset * @param string $domain */ public static function initialize($locale = 'en_UK', $charset = 'utf-8', $domain = 'messages') { /** * setting the statics so later we can access them from anywhere */ //we allow to choose lang from the url if (Core::config('i18n.allow_query_language') == 1) { if (Core::get('language') !== NULL) { $locale = Core::get('language'); } elseif (Cookie::get('user_language') !== NULL) { $locale = Cookie::get('user_language'); } Cookie::set('user_language', $locale, Core::config('auth.lifetime')); } self::$lang = $locale; //used in i18n kohana self::$locale = $locale; self::$charset = $charset; self::$domain = $domain; //time zone set in the config date_default_timezone_set(Kohana::$config->load('i18n')->timezone); //Kohana core charset, used in the HTML templates as well Kohana::$charset = self::$charset; /** * In Windows LC_MESSAGES are not recognized by any reason. * So we check if LC_MESSAGES is defined to avoid bugs, * and force using gettext */ if (defined('LC_MESSAGES')) { $locale_res = setlocale(LC_MESSAGES, self::$locale); } else { $locale_res = FALSE; } // used with a function money_format setlocale(LC_MONETARY, self::$locale); /** * check if gettext exists if not uses gettext dropin */ if (!function_exists('_') or $locale_res === FALSE or empty($locale_res)) { /** * gettext override * v 1.0.11 * https://launchpad.net/php-gettext/ * We load php-gettext here since Kohana_I18n tries to create the function __() function when we extend it. * PHP-gettext already does this. */ require Kohana::find_file('vendor', 'php-gettext/gettext', 'inc'); T_setlocale(LC_MESSAGES, self::$locale); T_bindtextdomain(self::$domain, DOCROOT . 'languages'); T_bind_textdomain_codeset(self::$domain, self::$charset); T_textdomain(self::$domain); //force to use the gettext dropin self::$dropin = TRUE; } else { bindtextdomain(self::$domain, DOCROOT . 'languages'); bind_textdomain_codeset(self::$domain, self::$charset); textdomain(self::$domain); } }
/** * PhotoGallery * * @param object $fcmsError * @param object $fcmsDatabase * @param object $fcmsUser * @param object $fcmsImage * * @return void */ function PhotoGallery($fcmsError, $fcmsDatabase, $fcmsUser, $fcmsImage = null) { $this->fcmsError = $fcmsError; $this->fcmsDatabase = $fcmsDatabase; $this->fcmsUser = $fcmsUser; $this->fcmsImage = $fcmsImage; // TODO - this could be fixed by using ROOT T_bindtextdomain('messages', '.././language'); }
function set_locale($locale) { //Set language putenv("LC_ALL={$locale}"); T_setlocale(LC_MESSAGES, $locale); T_bindtextdomain('default', 'locale'); T_bind_textdomain_codeset('default', 'UTF-8'); T_textdomain('default'); }
function _setlocaleEmu($category, $locale, $baseDir) { $domain = 'pommo'; $encoding = 'UTF-8'; T_setlocale($category, $locale); T_bindtextdomain($domain, $baseDir . '/language'); T_bind_textdomain_codeset($domain, $encoding); T_textdomain($domain); return true; }
/** * Sets a locale (if supported) * @param String $locale locale to set * @param String $domain messages domain * @return String locale set */ private static function setLocale($locale, $domain = 'messages') { $locale = self::isSupported($locale) ? $locale : self::$config['default']; T_setlocale(LC_MESSAGES, $locale); T_bindtextdomain($domain, self::$config['path']); T_bind_textdomain_codeset($domain, self::$config['encoding']); T_textdomain($domain); header("Content-type: text/html; charset=" . self::$config['encoding']); return $locale; }
private function set_current_lang($newlang) { $this->current_lang = $newlang; @putenv("LC_ALL=" . $newlang); // for WinXP SP3 T_setlocale(LC_ALL, $newlang); T_bindtextdomain("vpsAdmin", WWW_ROOT . "/lang/locale/"); T_bind_textdomain_codeset("vpsAdmin", "UTF-8"); T_textdomain("vpsAdmin"); setcookie(self::c_name, $this->current_lang, time() + 86400 * 7); }
/** * Class constructor * * @return void */ public function __construct() { $config =& get_config(); $lang = empty($config['language']) ? $this->fallback : $config['language']; T_setlocale(LC_MESSAGES, $lang); // Application Language then system's T_bindtextdomain('application', APPPATH . 'language'); T_bindtextdomain('system', BASEPATH . 'language'); T_bind_textdomain_codeset('application', 'UTF-8'); T_textdomain('application'); unset($lang); log_message('info', 'Language Class Initialized'); }
/** * load_gettext * Sets up our local gettext settings. * * @return void */ function load_gettext() { $lang = AmpConfig::get('lang'); $charset = AmpConfig::get('site_charset') ?: 'UTF-8'; $locale = $lang . '.' . $charset; //debug_event('i18n', 'Setting locale to ' . $locale, 5); T_setlocale(LC_MESSAGES, $locale); /* Bind the Text Domain */ T_bindtextdomain('messages', AmpConfig::get('prefix') . "/locale/"); T_bind_textdomain_codeset('messages', $charset); T_textdomain('messages'); //debug_event('i18n', 'gettext is ' . (locale_emulation() ? 'emulated' : 'native'), 5); }
public static function applyLocale($newlocale) { self::$locale = $newlocale; //TODO Allow locale to be overriden by GET request? //if($_GET['lang']) $locale = $_GET['lang']; locale_set_default(self::$locale); //$language = locale_get_display_language(self::$locale, 'en'); $lang = locale_get_primary_language(self::$locale); //$region = locale_get_display_region(self::$locale); T_setlocale(LC_MESSAGES, $lang); T_bindtextdomain("grase", "/usr/share/grase/locale"); T_bind_textdomain_codeset("grase", "UTF-8"); T_textdomain("grase"); }
function switchLocale($locale) { global $helpPath, $helpRoot, $masterPath, $defLocale, $incPath; T_setlocale(LC_ALL, $locale . ".utf8"); T_bindtextdomain('messages', "{$incPath}/locale"); T_textdomain('messages'); if (file_exists("{$helpRoot}/{$locale}")) { $helpPath = "{$masterPath}{$helpRoot}/{$locale}/"; } elseif (file_exists("{$helpRoot}/{$defLocale}")) { $helpPath = "{$masterPath}{$helpRoot}/{$defLocale}/"; } else { $helpPath = "{$masterPath}{$helpRoot}/en_EN/"; } }
/** * Define language for get-text translator * * Directory structure for traduction must be: * ./locale/Lang/LC_MESSAGES/messages.mo * Example (French): * ./locale/fr_FR/LC_MESSAGES/messages.mo */ function defineLanguage($lang) { $encoding = 'UTF-8'; if (isset($lang)) { $locale = $lang; } else { $locale = DEFAULT_LOCALE; } // gettext setup T_setlocale(LC_MESSAGES, $locale); // Set the text domain as 'messages' $domain = 'messages'; T_bindtextdomain($domain, LOCALE_DIR); T_bind_textdomain_codeset($domain, $encoding); T_textdomain($domain); }
function i18n_gettext($name, $msg) { global $plugin_lang_path; static $checked = array(); if (!isset($checked[$name])) { $checked[$name] = 1; if (empty($plugin_lang_path[$name])) { T_bindtextdomain($name, LANG_DIR); } else { T_bindtextdomain($name, $plugin_lang_path[$name]); } } T_textdomain($name); $text = _(rawurldecode($msg)); T_textdomain(DOMAIN); return $text; }
/** * Define language for get-text translator * * Directory structure for the translation must be: * ./app/locale/Lang/LC_MESSAGES/messages.mo * Example (French): * ./app/locale/fr_FR/LC_MESSAGES/messages.mo */ public static function setLanguage($lang = 'en_EN') { $encoding = 'UTF-8'; $languages = parse_ini_file(CONF_LANG_INI); if (isset($lang) && in_array($lang, $languages)) { $locale = $lang; } else { $locale = CONF_DEFAULT_LOCALE; } // gettext setup T_setlocale(LC_MESSAGES, $locale); // Set the text domain as 'messages' $domain = 'messages'; T_bindtextdomain($domain, LOCALE_DIR); T_bind_textdomain_codeset($domain, $encoding); T_textdomain($domain); }
/** * Class Constructor * * @param String $type Type of language-file * @author Lars Michelsen <*****@*****.**> */ public function __construct($textDomain = 'nagvis') { $this->textDomain = $textDomain; // Append encoding (UTF8) $this->sCurrentEncoding = 'UTF-8'; // Check for gettext extension require_once 'gettext.inc'; $this->setLanguage(); T_bindtextdomain($this->textDomain, cfg('paths', 'language')); T_bind_textdomain_codeset($this->textDomain, $this->sCurrentEncoding); T_textdomain($this->textDomain); // Check if native gettext or php-gettext is used if (DEBUG && DEBUGLEVEL & 2) { if (locale_emulation()) { debug('GlobalLanguage: Using php-gettext for translations'); } else { debug('GlobalLanguage: Using native gettext for translations'); } } }
/** * displayNoConfig * * @return void */ function displayNoConfig() { include_once 'inc/constants.php'; include_once 'inc/thirdparty/gettext.inc'; // Setup php-gettext T_setlocale(LC_MESSAGES, 'en_US'); T_bindtextdomain('messages', './language'); T_bind_textdomain_codeset('messages', 'UTF-8'); T_textdomain('messages'); displayHeader(false); echo ' <div id="oops"> <h1>' . T_('Oops!') . '</h1> <p> ' . T_('This site hasn\'t been installed yet.') . ' <a href="install.php">' . T_('You must finish the installation before using the site.') . '</a> </p> </div> </body> </html>'; }
/*************************************************************************** Copyright (C) 2005-2008 GetBoo project http://sourceforge.net/projects/getboo/ http://www.getboo.com/ This file is part of GetBoo. GetBoo is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. GetBoo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GetBoo; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ***************************************************************************/ /* * GET TEXT Vars for translation support */ $locale = WEBSITE_LOCALE; require_once dirname(__FILE__) . '/php-gettext/gettext.inc'; $domain = 'messages'; T_setlocale(LC_ALL, $locale); T_bindtextdomain($domain, dirname(__FILE__) . '/locales'); T_bind_textdomain_codeset($domain, 'UTF-8'); T_textdomain($domain);
/** * loadTextDomain * * This loads a new domain with a certain path into the domain table. * * Note: gettext paths * * Give a path/to/your/mo/files without LC_MESSAGES and locale! * * If you use: T_bindtextdomain('clansuite', '/html/locales'); * The mo.file would be looked up in /html/locales/de_DE/LC_MESSAGES/clansuite.mo * The $domain string specifies the mo-filename => "$domain.mo" * So if $domain = 'clansuite'; => clansuite.mo * * @link http://www.php.net/function.bindtextdomain */ public function loadTextDomain($category, $domain, $locale, $module = null) { #Koch_Debug::firebug($module); // if, $locale string is not over 3 chars long -> $locale = "en", build "en_EN" if (isset($locale[3]) == false) { $locale = mb_strtolower($locale) . '_' . mb_strtoupper($locale); } // Environment Variable LANGUAGE has priority above any local setting putenv('LANGUAGE=' . $locale); putenv('LANG=' . $locale); setlocale(LC_ALL, $locale . '.UTF-8'); T_setlocale(LC_ALL, $locale . '.UTF8', $locale); /** * Set the domain_directory (where look for MO files named $domain.po) */ if ($module === null) { // for domain 'clansuite', it's the ROOT_LANGUAGES directory $domain_directory = ROOT_LANGUAGES; } else { // set a specific module directory $domain_directory = ROOT_MOD . $module . DIRECTORY_SEPARATOR . 'languages'; } // Set the Domain T_bindtextdomain($domain, $domain_directory); T_bind_textdomain_codeset($domain, $this->encoding); T_textdomain($domain); #Koch_Debug::firebug('<p>Textdomain "' .$domain .'" loaded from path "'. $domain_directory .'" for "'. $module .'"</p>'); return true; }
* @author Wida Sari <*****@*****.**> * @since 2010-11-13 23:35 * @last_update 2011-12-09 07:48 - IL */ if (!file_exists('config.php')) { die(__('config.php tidak ditemukan. Buat config.php dari config.sample.php')); } require_once 'config.php'; require_once 'lib/php/catalog.class.php'; require_once 'lib/php/output.class.php'; require_once 'lib/php/gdi.class.php'; require_once 'lib/gettext/gettext.inc'; // Locale $locale = 'id'; T_setlocale(LC_MESSAGES, $locale); T_bindtextdomain(APP_ID, APP_DIR . '/assets/locale'); T_textdomain(APP_ID); // Process query or get catalog $TITLE = 'Gudang Data Indonesia'; $query = $_GET['q']; $output = $_GET['o']; if (isset($query)) { $gdi = new gdi(); $query = file_exists(DATA_DIR . $query . '.txt') ? $query : DEFAULT_DATA; $output = class_exists($output) ? $output : DEFAULT_OUTPUT; $data = $gdi->get_data($query, $output); $o = new $output(); $CONTENT = $o->out($data); if (in_array($output, array('meta', 'html', 'graph'))) { $meta = $gdi->get_meta($query, $output); if ($output == 'meta') {
private function initializeLocalization() { $locale = self::getLocale(); require_once PATH_ROOT . 'lib/gettext/gettext.inc'; $domain = "messages"; T_setlocale(LC_ALL, $locale . '.UTF-8', $locale); T_bindtextdomain($domain, PATH_ROOT . 'locale/'); T_bind_textdomain_codeset($domain, 'UTF-8'); T_textdomain($domain); if (!ini_get("safe_mode")) { @putenv("LC_ALL={$locale}.utf8"); } define('LOCALE', $locale); define('LANG', substr($locale, 0, 2)); }
$lang = preg_split('#[,;]#', $lang); return lang_normalize($lang[0]); } /* Init i18n */ $detected_lang = request_lang(); $ll = substr($detected_lang, 0, 2); // moved into request_lang() //if (isset($lang_rewrite[$detected_lang])) // $detected_lang=$lang_rewrite[$detected_lang]; T_setlocale(LC_ALL, $detected_lang); T_bindtextdomain('site', rtrim(BU_LANG_PATH, DIRECTORY_SEPARATOR)); T_bind_textdomain_codeset('site', 'UTF8'); T_bindtextdomain('update', rtrim(BU_LANG_PATH, DIRECTORY_SEPARATOR)); T_bind_textdomain_codeset('update', 'UTF8'); T_bindtextdomain('update-legacy', rtrim(BU_LANG_PATH, DIRECTORY_SEPARATOR)); T_bind_textdomain_codeset('update-legacy', 'UTF8'); T_bindtextdomain('customize', rtrim(BU_LANG_PATH, DIRECTORY_SEPARATOR)); T_bind_textdomain_codeset('customize', 'UTF8'); T_textdomain('update'); $newtrans = true; if (strpos("xx,ja,sl,id,uk,rm,da,sv,hu,fa,gl", $ll) > 0) { $newtrans = false; } //if (!$newtrans) // T_textdomain('browser-update'); //var_dump($CURRENTLOCALE); //var_dump($EMULATEGETTEXT); //var_dump(request_lang()); //var_dump(setlocale(LC_ALL, 'de_DE')); //$EMULATEGETTEXT=0; //var_dump(setlocale(LC_MESSAGES, 'deutsch'));
<?php $langPlug = array("fr" => "fr_FR.utf8", "en" => "en_US", "es" => "es_ES.utf8"); // if (isset($langPlug[$lang]) && $langPlug[$lang]) { require_once dirname(__FILE__) . '/../../../includes/lang/php-gettext/gettext.inc'; T_setlocale(LC_MESSAGES, $langPlug[$lang]); T_bindtextdomain("comment", dirname(__FILE__)); T_bind_textdomain_codeset("comment", "UTF-8"); T_textdomain("comment"); }
function msg($msgid, $lang = "") { T_setlocale(LC_ALL, $this->getLang($lang)); T_bindtextdomain($this->domain, $this->directory); T_textdomain($this->domain); T_bind_textdomain_codeset($this->domain, 'UTF-8'); if ($msgid == "") { return ""; } else { return T_gettext($msgid); } }
along with PHP-gettext; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // define constants define(PROJECT_DIR, realpath('./')); define(LOCALE_DIR, PROJECT_DIR . '/locale'); define(DEFAULT_LOCALE, 'en_US'); require_once '../gettext.inc'; $supported_locales = array('en_US', 'sr_CS', 'de_CH'); $encoding = 'UTF-8'; $locale = isset($_GET['lang']) ? $_GET['lang'] : DEFAULT_LOCALE; // gettext setup T_setlocale(LC_MESSAGES, $locale); // Set the text domain as 'messages' $domain = 'messages'; T_bindtextdomain($domain, LOCALE_DIR); T_bind_textdomain_codeset($domain, $encoding); T_textdomain($domain); header("Content-type: text/html; charset={$encoding}"); ?> <html> <head> <title>PHP-gettext fallback example</title> </head> <body> <h1>PHP-gettext as a fallback solution</h1> <p>Example showing how to use PHP-gettext as a fallback solution if the native gettext library is not available or the system does not support the requested locale.</p> <?php print "<p>"; foreach ($supported_locales as $l) {
$this->contents; # raw JSON $this->json; # decoded JSON $this->nb_pages; # number of pages $this->page_nb; # current page number $this->hit_page_limit; # boolian flag for page limit (currently 100 pages) $this->rtl; # boolian flag for RTL language */ } } $mv = new MV(); # Gettext # set language putenv("LC_ALL={$mv->language}"); T_setlocale(LC_ALL, $mv->language); # set local T_bindtextdomain($mv->domain, LOCALE_DIR); T_bind_textdomain_codeset($mv->domain, $mv->encoding); T_textdomain($mv->domain); # import localized texts require_once "./mobiletext.php"; $mt = new MT(); # add direction variable $mv->rtl = $mt->DIR == "rtl" ? True : False; # HTTP header header("Content-Type: application/xhtml+xml; charset=UTF-8"); header("Content-Language: ar"); header("Cache-Control: max-age=3600, must-revalidate"); header(sprintf("Last-Modified: %s", date("r", filemtime($_SERVER['SCRIPT_FILENAME'])))); # Query JSON service if ($mv->search) { # JSON query
* You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * @category FCMS * @package FamilyConnections * @author Ryan Haudenschilt <*****@*****.**> * @copyright 2007 Haudenschilt LLC * @license http://www.gnu.org/licenses/gpl-2.0.html GPLv2 * @link http://www.familycms.com/wiki/ */ require_once 'inc/thirdparty/gettext.inc'; require_once 'inc/constants.php'; // Setup php-gettext T_setlocale(LC_MESSAGES, 'en_US'); T_bindtextdomain('messages', './language'); T_bind_textdomain_codeset('messages', 'UTF-8'); T_textdomain('messages'); // Fix magic quotes if (get_magic_quotes_gpc()) { $_REQUEST = array_map('stripslashes', $_REQUEST); $_GET = array_map('stripslashes', $_GET); $_POST = array_map('stripslashes', $_POST); $_COOKIE = array_map('stripslashes', $_COOKIE); } define('URL_PREFIX', ''); define('GALLERY_PREFIX', 'gallery/'); main(); return; /** * main
/** * loads gettexts or droppin * @param string $locale * @param string $domain * @param string $charset */ private static function gettext_init($locale, $domain = 'messages', $charset = 'utf8') { /** * check if gettext exists if not uses gettext dropin */ $locale_res = setlocale(LC_ALL, $locale); if (!function_exists('_') or $locale_res === FALSE or empty($locale_res)) { /** * gettext override * v 1.0.11 * https://launchpad.net/php-gettext/ * We load php-gettext here since Kohana_I18n tries to create the function __() function when we extend it. * PHP-gettext already does this. */ include APPPATH . 'common/vendor/php-gettext/gettext.inc'; T_setlocale(LC_ALL, $locale); T_bindtextdomain($domain, DOCROOT . 'languages'); T_bind_textdomain_codeset($domain, $charset); T_textdomain($domain); } else { bindtextdomain($domain, DOCROOT . 'languages'); bind_textdomain_codeset($domain, $charset); textdomain($domain); function __($msgid) { return _($msgid); } } }
} elseif ($locale === "it_IT") { // Try many values because OS doesn't have the same constants $phpLocale = setlocale(LC_ALL, "it_IT", "it", "Italian"); } else { // No locale set, it's because visitors modify the url, so forbidden reply header('HTTP/1.1 403 Forbidden'); exit; } T_setlocale(LC_ALL, $phpLocale); $_SESSION['locale'] = $locale; // we want 3.5 always to be displayed '3.5' and not '3,5' $phpLocale = setlocale(LC_NUMERIC, "en_US", "us", "usa", "en", "eng", "English"); T_setlocale(LC_NUMERIC, $phpLocale); $locales_dir = TRUE === file_exists('./i18n/locale') ? './i18n/locale' : ($locales_dir = '../i18n/locale'); $textdomain = "codev"; T_bindtextdomain($textdomain, $locales_dir); T_bind_textdomain_codeset($textdomain, 'UTF-8'); T_textdomain($textdomain); $availableEncoding = mb_detect_order(); if (!array_search("ISO-8859-1", $availableEncoding)) { $newEnconding = array(); $newEnconding[] = "ISO-8859-1"; mb_detect_order(array_merge($availableEncoding, $newEnconding)); } /** * Get the user locale, choose in this order : * -> The locale from GET url * -> The locale set into the SESSION * -> The prefered existing locale of the browser * @return string The locale */