Exemple #1
0
 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;
 }
Exemple #2
0
 /**
  * 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" />');
 }
Exemple #3
0
 /**
  * 
  * 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);
     }
 }
Exemple #4
0
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');
}
Exemple #5
0
function i18n_setlocale($name, $lang, $msg)
{
    putenv('LC_ALL=' . $lang);
    T_setlocale(LC_ALL, $lang);
    $text = i18n_gettext($name, $msg);
    putenv('LC_ALL=' . PO_LANG);
    T_setlocale(LC_ALL, PO_LANG);
    return $text;
}
Exemple #6
0
 /**
  * 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;
 }
 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;
 }
Exemple #8
0
 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);
 }
Exemple #9
0
/**
 * 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);
}
Exemple #10
0
 /**
  * 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');
 }
Exemple #11
0
 /**
  * Sets the language to be used for future localized strings
  * while processing the current page.
  */
 public function setLanguage($handleUserCfg = false)
 {
     if ($handleUserCfg) {
         $this->USERCFG = new CoreUserCfg();
     }
     $this->sCurrentLanguage = $this->gatherCurrentLanguage();
     // Check if choosen language is available
     $this->checkLanguageAvailable($this->sCurrentLanguage, true, true);
     // Set the language to us
     putenv('LC_ALL=' . $this->sCurrentLanguage . '.' . $this->sCurrentEncoding);
     putenv('LANG=' . $this->sCurrentLanguage . '.' . $this->sCurrentEncoding);
     T_setlocale(LC_MESSAGES, $this->sCurrentLanguage . '.' . $this->sCurrentEncoding);
 }
Exemple #12
0
 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");
 }
Exemple #13
0
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/";
    }
}
Exemple #14
0
/**
 * 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);
}
Exemple #15
0
 /**
  * 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);
 }
Exemple #16
0
 function setLocalePath($strPath = false, $strDomain = false)
 {
     $strDomain = !$strDomain ? 'messages' : $strDomain;
     $strPath = !$strPath ? SITE_PATH . 'core/locale' : $strPath;
     if (!is_dir($strPath)) {
         return setError(sprintf('Can not change the local path to %s. Directory not exists'), $strPath);
     }
     global $configFile;
     $locale = $configFile->getDirectParam('USER_LANGUAGE');
     T_setlocale(LC_ALL, $locale);
     bindtextdomain($strDomain, $strPath);
     // bind_textdomain_codeset is supported only in PHP 4.2.0+
     if (function_exists('bind_textdomain_codeset')) {
         bind_textdomain_codeset($strDomain, 'utf-8');
     }
     textdomain($strDomain);
     return true;
 }
 /**
  * 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);
         }
     }
 }
 * TODO:    Maybe   change $available_languages to just list the native
 *              language name   (well, useres   should be   able to find their own
 *              language,   shouldn't   they?) :)
 * NOTE:    The gettext library might be used, if   it is   available.
 *              The problem is that mo files are cached by the extension,   so a
 *              server restart is   necessary   if these files are updated (e.g. by
 *              a   senayan update). I replaced all _('') with  __(''), so
 *              php-gettext is always used, thus circumventing  this problem.
 *              Obviously   there   is no   real speed disadvantage, since this is the
 *              way wordpress   does it.
 *              Developers should use __('') and _ngettext in code!
 */
// set php-gettext library
require LANGUAGES_BASE_DIR . 'php-gettext' . DIRECTORY_SEPARATOR . 'gettext.inc';
// gettext setup
$locale = $sysconf['default_lang'];
$domain = 'messages';
$encoding = 'UTF-8';
// set language to use
T_setlocale(LC_ALL, $locale);
// set locales dictionary location
_bindtextdomain($domain, LANGUAGES_BASE_DIR . 'locale');
// codeset
_bind_textdomain_codeset($domain, $encoding);
// set .mo filename to use
_textdomain($domain);
// Array with available translations
// $available_languages[] = array('CODE', __('ENGLISH NAME'), 'NATIVE NAME');
$available_languages[] = array('de_DE', __('German'), 'Deutsch');
$available_languages[] = array('en_US', __('English'), 'English');
$available_languages[] = array('id_ID', __('Indonesian'), 'Indonesia');
   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 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>
Exemple #20
0
        # Dynamically added variables
        /*
        $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
Exemple #21
0
 /**
  * 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;
 }
Exemple #22
0
 function run()
 {
     if (isset($_GET["lang"]) && $_GET["lang"] != "") {
         // language forced by url.
         $this->lang = $_GET["lang"];
         $_SESSION["lang"] = $this->lang;
     } else {
         if (isset($_SESSION["lang"])) {
             // language forced. this should only happen under /
             // where no url lang is forced.
             $this->lang = $_SESSION["lang"];
         } else {
             if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) {
                 // no language specified in url, try to auto-detect.
                 $this->lang = $this->parseHeaderLocale($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
             }
         }
     }
     $gnuLang = $this->toGnu($this->lang);
     putenv("LANGUAGE=" . $gnuLang);
     putenv("LANG=" . $gnuLang);
     putenv("LC_ALL=" . $gnuLang);
     putenv("LC_MESSAGES=" . $gnuLang);
     T_setlocale(LC_ALL, $gnuLang);
     T_bindtextdomain("spit", "./locale");
     T_textdomain("spit");
 }
Exemple #23
0
/**
 * displayChangeLanguage 
 * 
 * Changes the language and redirects the page to the login form.
 * 
 * @return void
 */
function displayChangeLanguage()
{
    $_SESSION['language'] = $_GET['lang'];
    T_setlocale(LC_MESSAGES, $_SESSION['language']);
    header("Location: index.php");
}
Exemple #24
0
 * the first language can be used.
 * @return string Preferred Language for logging purposes
 */
function log_lang()
{
    $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    $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');
Exemple #25
0
 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));
 }
Exemple #26
0
<?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");
}
Exemple #27
0
} elseif ($locale === "de_DE") {
    // Try many values because OS doesn't have the same constants
    $phpLocale = setlocale(LC_ALL, "de_DE", "de", "German");
} 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
Exemple #28
0
 * 
 * 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;
/**
 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);
     }
 }
        }
        exit;
    }
}
# Definition of the language
$textdomain = "bilbo";
if (isset($_GET['locale']) && !empty($_GET['locale'])) {
    $locale = $_GET['locale'];
}
putenv('LANGUAGE=' . $locale);
#putenv('LANG='.$locale);
putenv('LC_ALL=' . $locale);
putenv('LC_MESSAGES=' . $locale);
#T_setlocale('LANGUAGE='.$locale);
T_setlocale(LC_ALL, $locale);
T_setlocale(LC_CTYPE, $locale);
$locales_dir = dirname(__FILE__) . '/../i18n';
T_bindtextdomain($textdomain, $locales_dir);
T_bind_textdomain_codeset($textdomain, 'UTF-8');
T_textdomain($textdomain);
function __error($summary, $message, $code = 0)
{
    # Error codes
    # 10 : no config file
    # 20 : database issue
    # 30 : blog is not defined
    # 40 : template files creation
    # 50 : no default theme
    # 60 : template processing error
    if (defined('BP_ERRORFILE') && is_file(BP_ERRORFILE)) {
        include BP_ERRORFILE;