diff --git a/code/web/release_notes/26.10.00/DIS-3028.yaml b/code/web/release_notes/26.10.00/DIS-3028.yaml new file mode 100644 index 00000000000..079a5d2c947 --- /dev/null +++ b/code/web/release_notes/26.10.00/DIS-3028.yaml @@ -0,0 +1,12 @@ +Jira: DIS-3028 +Type: Bug +Developer: Mark Noble (MDN) +ContributingOrg: Grove For Libraries +Sponsor: +GroveRelease: 26.10.00 +CommunityRelease: 26.11.00 +Component: Languages and Translations +Description: + - Fix currency formatting when there is no active language (i.e. when running a background task). When this situation occurs, the default language will be used. +NewSettings: +NewPermissions: \ No newline at end of file diff --git a/code/web/sys/Utils/StringUtils.php b/code/web/sys/Utils/StringUtils.php index a79afd0ad41..2975a771407 100644 --- a/code/web/sys/Utils/StringUtils.php +++ b/code/web/sys/Utils/StringUtils.php @@ -24,7 +24,20 @@ static function getCurrencyFormatter() : NumberFormatter { $currencyCode = $variables->currencyCode; } - return new NumberFormatter($activeLanguage->locale . '@currency=' . $currencyCode, NumberFormatter::CURRENCY); + if ($activeLanguage == null) { + require_once ROOT_DIR . '/sys/Translation/Language.php'; + $activeLanguage = new Language(); + $activeLanguage->isDefault = 1; + if ($activeLanguage->find(true)) { + $locale = $activeLanguage->locale; + }else{ + $locale = 'en_US'; + } + }else{ + $locale = $activeLanguage->locale; + } + + return new NumberFormatter($locale . '@currency=' . $currencyCode, NumberFormatter::CURRENCY); } static function formatCurrency(float $number) : string {