diff --git a/CRM/Core/I18n.php b/CRM/Core/I18n.php index be23d592ff0ca6e440e674d393760947fa3f5e0a..8a97d428c29709c866a4e9932291d0cd1ac684a1 100644 --- a/CRM/Core/I18n.php +++ b/CRM/Core/I18n.php @@ -282,11 +282,7 @@ class CRM_Core_I18n { * @return string */ public static function getResourceDir() { - static $dir = NULL; - if ($dir === NULL) { - $dir = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'l10n' . DIRECTORY_SEPARATOR; - } - return $dir; + return \Civi::paths()->getPath('[civicrm.l10n]/.'); } /** diff --git a/Civi/Core/Paths.php b/Civi/Core/Paths.php index 29bd7393d04d136a774eb417f329c69c2f08dcd7..a4ab40c220209185ca468a44518fdf8d313c80f6 100644 --- a/Civi/Core/Paths.php +++ b/Civi/Core/Paths.php @@ -78,6 +78,12 @@ class Paths { 'path' => defined('CIVICRM_TEMPLATE_COMPILEDIR') ? CIVICRM_TEMPLATE_COMPILEDIR : \Civi::paths()->getPath('[civicrm.private]/templates_c'), ]; }) + ->register('civicrm.l10n', function () { + $dir = defined('CIVICRM_L10N_BASEDIR') ? CIVICRM_L10N_BASEDIR : \Civi::paths()->getPath('[civicrm.private]/l10n'); + return [ + 'path' => is_dir($dir) ? $dir : \Civi::paths()->getPath('[civicrm.root]/l10n'), + ]; + }) ->register('wp.frontend.base', function () { return ['url' => rtrim(CIVICRM_UF_BASEURL, '/') . '/']; }) diff --git a/xml/GenCode.php b/xml/GenCode.php index cee7f1475a5df5da572df96fdb93fb333a6454bd..01b541c9bdda5857b18d8cebf0f85ac564d52fda 100644 --- a/xml/GenCode.php +++ b/xml/GenCode.php @@ -27,6 +27,7 @@ date_default_timezone_set('UTC'); define('CIVICRM_UF', 'Drupal'); define('CIVICRM_UF_BASEURL', '/'); +define('CIVICRM_L10N_BASEDIR', getenv('CIVICRM_L10N_BASEDIR') ? getenv('CIVICRM_L10N_BASEDIR') : __DIR__ . '/../l10n'); require_once 'CRM/Core/ClassLoader.php'; CRM_Core_ClassLoader::singleton()->register();