示例#1
0
文件: I18n.php 项目: arhe/pwak
 /**
  * Initialize gettext avec la locale passée en paramètre, si aucune locale
  * n'est passée, on prend la valeur de la constante LOCALE_DEFAULT.
  *
  * Pour des raisons de compatibilité, on ne se base pas sur la fonction C 
  * système setlocale() (hormis pour LC_MESSAGES).
  *
  * @static
  * @param  string $locale le code de la langue (ex: fr_FR)
  * @return void
  * @access public
  */
 public static function setLocale($locale = false)
 {
     // reset locale
     $result = setlocale(LC_MESSAGES, 'C');
     if (!$locale) {
         $locale = defined('LOCALE') ? LOCALE : LOCALE_DEFAULT;
     }
     if (!isset(self::$locales[$locale])) {
         trigger_error(sprintf(self::$messages['unsupported'], $locale, LOCALE_DEFAULT), E_USER_WARNING);
         $locale = LOCALE_DEFAULT;
     }
     self::$data = self::$locales[$locale];
     // avec certaines versions de gettext (ex. 0.14.4) il faut ce putenv(),
     // sinon ça marche mal...
     putenv('LC_MESSAGES=' . $locale);
     setlocale(LC_MESSAGES, $locale);
     // initialise gettext
     textdomain(DOMAIN);
     bindtextdomain(DOMAIN, LOCALE_DIR);
     bind_textdomain_codeset(DOMAIN, self::$data['encoding']);
 }