From 86991f9efb4a048f03bc3e0e2b09bb66f61732be Mon Sep 17 00:00:00 2001 From: Bozana Bokan Date: Wed, 5 Feb 2025 14:51:22 +0100 Subject: [PATCH] pkp/pkp-lib#10795 introduce LocaleConversion::toBcp47() --- .../AnnouncementFeedGatewayPlugin.php | 3 ++- .../datacite/filter/DataciteXmlFilter.php | 2 +- .../dublinCoreMeta/DublinCoreMetaPlugin.php | 17 +++++++++-------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/plugins/generic/announcementFeed/AnnouncementFeedGatewayPlugin.php b/plugins/generic/announcementFeed/AnnouncementFeedGatewayPlugin.php index bf330fa94e3..3b243717214 100644 --- a/plugins/generic/announcementFeed/AnnouncementFeedGatewayPlugin.php +++ b/plugins/generic/announcementFeed/AnnouncementFeedGatewayPlugin.php @@ -20,6 +20,7 @@ use PKP\announcement\Announcement; use PKP\db\DAORegistry; use PKP\facades\Locale; +use PKP\i18n\LocaleConversion; use PKP\plugins\GatewayPlugin; use PKP\site\VersionDAO; @@ -162,7 +163,7 @@ public function fetch($args, $request) 'dateUpdated' => $dateUpdated, 'announcements' => $announcements, 'journal' => $journal, - 'language' => str_replace(['_', '@'], '-', Locale::getLocale()), + 'language' => LocaleConversion::toBcp47(Locale::getLocale()), ]); $templateMgr->setHeaders(['content-type: ' . $mimeTypeMap[$type] . '; charset=utf-8']); diff --git a/plugins/generic/datacite/filter/DataciteXmlFilter.php b/plugins/generic/datacite/filter/DataciteXmlFilter.php index 6c413091810..08fb5bfe3b2 100644 --- a/plugins/generic/datacite/filter/DataciteXmlFilter.php +++ b/plugins/generic/datacite/filter/DataciteXmlFilter.php @@ -214,7 +214,7 @@ public function &process(&$pubObject): DOMDocument // Dates $rootNode->appendChild($this->createDatesNode($doc, $issue, $article, $publication, $galleyFile, $publicationDate)); // Language - $rootNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'language', str_replace(['_', '@'], '-', $objectLocalePrecedence[0]))); + $rootNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'language', LocaleConversion::toBcp47($objectLocalePrecedence[0]))); // Resource Type $resourceTypeNode = $this->createResourceTypeNode($doc, $issue, $article, $galley, $galleyFile); if ($resourceTypeNode) { diff --git a/plugins/generic/dublinCoreMeta/DublinCoreMetaPlugin.php b/plugins/generic/dublinCoreMeta/DublinCoreMetaPlugin.php index 49a75b2092e..eb2fa6cd11b 100644 --- a/plugins/generic/dublinCoreMeta/DublinCoreMetaPlugin.php +++ b/plugins/generic/dublinCoreMeta/DublinCoreMetaPlugin.php @@ -17,6 +17,7 @@ use APP\facades\Repo; use APP\template\TemplateManager; use PKP\core\PKPApplication; +use PKP\i18n\LocaleConversion; use PKP\plugins\GenericPlugin; use PKP\plugins\Hook; @@ -83,7 +84,7 @@ public function articleView($hookName, $args) if ($supportingAgencies = $publication->getData('supportingAgencies')) { foreach ($supportingAgencies as $locale => $localeSupportingAgencies) { foreach ($localeSupportingAgencies as $i => $supportingAgency) { - $templateMgr->addHeader('dublinCoreSponsor' . $locale . $i++, ''); + $templateMgr->addHeader('dublinCoreSponsor' . $locale . $i++, ''); } } } @@ -91,7 +92,7 @@ public function articleView($hookName, $args) if ($coverages = $publication->getData('coverage')) { foreach ($coverages as $locale => $coverage) { if ($coverage != '') { - $templateMgr->addHeader('dublinCoreCoverage' . $locale, ''); + $templateMgr->addHeader('dublinCoreCoverage' . $locale, ''); } } } @@ -115,7 +116,7 @@ public function articleView($hookName, $args) $abstracts = $publication->getData('abstract') ?: []; foreach ($abstracts as $locale => $abstract) { if ($abstract != '') { - $templateMgr->addHeader('dublinCoreAbstract' . $locale, ''); + $templateMgr->addHeader('dublinCoreAbstract' . $locale, ''); } } @@ -146,7 +147,7 @@ public function articleView($hookName, $args) $templateMgr->addHeader('dublinCoreUri', ''); - $templateMgr->addHeader('dublinCoreLanguage', ''); + $templateMgr->addHeader('dublinCoreLanguage', ''); if (($copyrightHolder = $publication->getData('copyrightHolder', $publicationLocale)) && ($copyrightYear = $publication->getData('copyrightYear'))) { $templateMgr->addHeader('dublinCoreCopyright', ''); @@ -172,14 +173,14 @@ public function articleView($hookName, $args) if ($subjects = $publication->getData('subjects')) { foreach ($subjects as $locale => $localeSubjects) { foreach ($localeSubjects as $i => $subject) { - $templateMgr->addHeader('dublinCoreSubject' . $locale . $i++, ''); + $templateMgr->addHeader('dublinCoreSubject' . $locale . $i++, ''); } } } if ($keywords = $publication->getData('keywords')) { foreach ($keywords as $locale => $localeKeywords) { foreach ($localeKeywords as $i => $keyword) { - $templateMgr->addHeader('dublinCoreKeyword' . $locale . $i++, ''); + $templateMgr->addHeader('dublinCoreKeyword' . $locale . $i++, ''); } } } @@ -187,7 +188,7 @@ public function articleView($hookName, $args) $templateMgr->addHeader('dublinCoreTitle', ''); foreach ($publication->getFullTitles() as $locale => $title) { if ($title != '' && $locale != $publicationLocale) { - $templateMgr->addHeader('dublinCoreAltTitle' . $locale, ''); + $templateMgr->addHeader('dublinCoreAltTitle' . $locale, ''); } } @@ -195,7 +196,7 @@ public function articleView($hookName, $args) if ($types = $publication->getData('type')) { foreach ($types as $locale => $type) { if ($type != '') { - $templateMgr->addHeader('dublinCoreType' . $locale, ''); + $templateMgr->addHeader('dublinCoreType' . $locale, ''); } } }