Example #1
0
 /**
  * Change the processing language without changing the current user language
  *
  * @param $language
  *   Language (for example 'en_US', or 'fr_CA').
  *   True if the domain was changed for an extension.
  */
 public function setLocale($language)
 {
     $config = CRM_Core_Config::singleton();
     // Change the language of the CMS as well, for URLs.
     CRM_Utils_System::setUFLocale($language);
     // change the gettext ressources
     if ($this->_nativegettext) {
         $locale = $language . '.utf8';
         putenv("LANG={$locale}");
         setlocale(LC_TIME, $locale);
         setlocale(LC_MESSAGES, $locale);
         setlocale(LC_CTYPE, $locale);
         bindtextdomain('civicrm', $config->gettextResourceDir);
         bind_textdomain_codeset('civicrm', 'UTF-8');
         textdomain('civicrm');
         $this->_phpgettext = new CRM_Core_I18n_NativeGettext();
         $this->_extensioncache['civicrm'] = 'civicrm';
     } else {
         // phpgettext
         require_once 'PHPgettext/streams.php';
         require_once 'PHPgettext/gettext.php';
         $mo_file = $config->gettextResourceDir . $language . DIRECTORY_SEPARATOR . 'LC_MESSAGES' . DIRECTORY_SEPARATOR . 'civicrm.mo';
         $streamer = new FileReader($mo_file);
         $this->_phpgettext = new gettext_reader($streamer);
         $this->_extensioncache['civicrm'] = $this->_phpgettext;
     }
     // for sql queries
     global $dbLocale;
     $dbLocale = "_{$language}";
 }
Example #2
0
 /**
  * Change the processing language without changing the current user language
  *
  * @param $locale
  *   Locale (for example 'en_US', or 'fr_CA').
  *   True if the domain was changed for an extension.
  */
 public function setLocale($locale)
 {
     // Change the language of the CMS as well, for URLs.
     CRM_Utils_System::setUFLocale($locale);
     // change the gettext ressources
     if ($this->_nativegettext) {
         $this->setNativeGettextLocale($locale);
     } else {
         // phpgettext
         $this->setPhpGettextLocale($locale);
     }
     // for sql queries
     global $dbLocale;
     $dbLocale = "_{$locale}";
 }