/** * 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}"; }
/** * 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}"; }