$config = CRM_Core_Config::singleton();
}
- if (property_exists($mailing, 'language') && $mailing->language && $mailing->language != 'en_US') {
+ if (property_exists($mailing, 'language') && $mailing->language && $mailing->language != CRM_Core_I18n::getLocale()) {
$swapLang = CRM_Utils_AutoClean::swap('global://dbLocale?getter', 'call://i18n/setLocale', $mailing->language);
}
return $url;
}
+ // Drupal might not be bootstrapped if being called by the REST API.
+ if (!class_exists('Drupal')) {
+ return NULL;
+ }
+
$language = $this->getCurrentLanguage();
if (\Drupal::service('module_handler')->moduleExists('language')) {
$config = \Drupal::config('language.negotiation')->get('url');
//url prefix
if ($urlType == \Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl::CONFIG_PATH_PREFIX) {
if (!empty($language)) {
- if ($addLanguagePart) {
+ if ($addLanguagePart && !empty($config['prefixes'][$language])) {
$url .= $config['prefixes'][$language] . '/';
}
if ($removeLanguagePart) {