From 6a0d01bbafa7da24bcb5ec5a9e9edec378d81191 Mon Sep 17 00:00:00 2001 From: Mathieu Lutfy Date: Wed, 11 May 2022 10:53:34 -0400 Subject: [PATCH] Translation: remove support for CiviCRM pre-4.5 l10n file locations --- CRM/Core/I18n.php | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/CRM/Core/I18n.php b/CRM/Core/I18n.php index d1da1fe698b4..bcb214d66e5e 100644 --- a/CRM/Core/I18n.php +++ b/CRM/Core/I18n.php @@ -126,7 +126,6 @@ public function isNative() { * @param string $locale */ protected function setNativeGettextLocale($locale) { - $locale .= '.utf8'; putenv("LANG=$locale"); @@ -141,33 +140,29 @@ protected function setNativeGettextLocale($locale) { $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; - } /**