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, '');
}
}
}