X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FI18n.php;h=bcb214d66e5e50f6846c9fb922ee001e75bf652b;hb=58a65f77cb2d8381b0128bcdaf30fc33aa802124;hp=d1da1fe698b44027c931350da3410eeebdd379c2;hpb=c6295d73098b25995a96ed07d53064ad5a580626;p=civicrm-core.git diff --git a/CRM/Core/I18n.php b/CRM/Core/I18n.php index d1da1fe698..bcb214d66e 100644 --- a/CRM/Core/I18n.php +++ b/CRM/Core/I18n.php @@ -126,7 +126,6 @@ class CRM_Core_I18n { * @param string $locale */ protected function setNativeGettextLocale($locale) { - $locale .= '.utf8'; putenv("LANG=$locale"); @@ -141,33 +140,29 @@ class CRM_Core_I18n { $this->_phpgettext = new CRM_Core_I18n_NativeGettext(); $this->_extensioncache['civicrm'] = 'civicrm'; - } /** * Set getText locale. * + * Since CiviCRM 4.5, expected dir structure is civicrm/l10n/xx_XX/LC_MESSAGES/civicrm.mo + * because that is what native gettext expects. Fallback support for the pre-4.5 structure + * was removed in CiviCRM 5.51. + * + * CiviCRM 5.23 added support for the CIVICRM_L10N_BASEDIR constant (and [civicrm.l10n]) + * so that mo files can be stored elsewhere (such as in a web-writable directory, to + * support extensions sur as l10nupdate. + * * @param string $locale */ protected function setPhpGettextLocale($locale) { - - // we support both the old file hierarchy format and the new: - // pre-4.5: civicrm/l10n/xx_XX/civicrm.mo - // post-4.5: civicrm/l10n/xx_XX/LC_MESSAGES/civicrm.mo require_once 'PHPgettext/streams.php'; require_once 'PHPgettext/gettext.php'; $mo_file = CRM_Core_I18n::getResourceDir() . $locale . DIRECTORY_SEPARATOR . 'LC_MESSAGES' . DIRECTORY_SEPARATOR . 'civicrm.mo'; - - if (!file_exists($mo_file)) { - // fallback to pre-4.5 mode - $mo_file = CRM_Core_I18n::getResourceDir() . $locale . DIRECTORY_SEPARATOR . 'civicrm.mo'; - } - $streamer = new FileReader($mo_file); $this->_phpgettext = new gettext_reader($streamer); $this->_extensioncache['civicrm'] = $this->_phpgettext; - } /**