[OJS 3.1.2.0] Crossref export language

Hello!
I’ve got a small question.
We have journal which publish articles in 3 languages. Ukrainian, English and russian.
When we deposit metadata to crossref, we have some bugs.

Some of articles\volumes deposited at english but primary language is Ukrainian. Some part of data is deposidet at ukrainian and english at the same time. (for example: article name is at english, author name at ukrainian, and journal title at english)

Is there ability to deposit all data at english?

Hi @redukr !
Have you solved this problem?

@Spaik yes i sold this question. If you can contact with me by email, i will tell what i change
Red.ukr (@) gmail.com

in all files in folder
plugins\importexport\crossref\filter

you must chage settings for example:
htmlspecialchars($submission->getTitle($submission->getLocale()),

to
htmlspecialchars($submission->getTitle(en_US),

or
if (empty($author->getLocalizedFamilyName()))

to
if (empty($author->getLocalizedFamilyName(en_US)))

you can download file from GitHub - redukr/ojs-crossref-eng: english metadata to crossref

1 Like

Oh, cool! @redukr, thanks so much! I’ll try.

@spaik same logic for doaj export. First time i use export to xml, and remove russian/ukrainian metadata, but it was annoying.

I can upload doaj fixed files to github if you need

This is a very important issue for multilingual journals. Thanks, an interesting workaround.
As far as I know, the developers are aware of the problem, [OJS 3.1.2-1] Crossref module: Language of all metadata EXCEPT author names depends on submission language (author names depend on locale chosen) · Issue #5061 · pkp/pkp-lib · GitHub. However for a very long time there was no news about this. @asmecher, do we still have a chance to solve this problem in OJS 3.1.x line?

@rkhalikov the easiest way is to make or drop-down menu in settings of plugin, or just check-box with selecting language in which administrator want to send metadata.

as i understand, there are a lot of pulls\requests\ideas to improve. Multilanguage author’s name was implemented only in 3.1.2 (as i remember) so i just make something from shit and wooden stuff. in slavic translation it sounds more funny. из гавна и палок :slight_smile:

1 Like

Hi @redukr,
Thanks for your investigations. One stupid question: What is the common language practice when submitting cyrillic (and other non-Latin) data to Crossref: 1. As in article. 2. Translated. 3. Transliterated.
Based on your suggestions, I will get (2), is that OK for Crossref та українських бюрократів?

Regards,
Vasyl

основна мова праць Українська. Звісно через довготривале видання (з 1996року) маємо величезну кількість статей російською. Через те що нас виключили з ДАК МОН з 2015 року, а ми про це дізналися в 2018, ми намагаємося туди знову потрапити. і Ви праві. Мали довгі дискусії, ЩО відправляти в crossref. чи Укрїнські\Російські метадані, чи це все добро транслітерувати, чи краще перекласти через пень-колоду (не знаю як у Вашій інституції, а в нашій не те що посади, навіть сайт не оновлювався років 15, і взагалі, я в інституції тій не працюю, а так Мамі з Батьком допомагаю) . І врешті вирішили, що ліпше перекладати Англійською. правда є артефакти на кшталт “Петро Могила” переклало в ряді статей Peter The Grave. Загалом ми плюнули на МОН і ДАК, і працюєм над тим щоб в Скопус і ВОС влізти. тоді ДАК МОН автоматично має включити в категорію А. (про відмовки які ми отримували протягом 2018-2019 рр окремо можу приватно написати)

Ми довго дискутували, і вирішили, що фіг з ним індексом Гірша і Цитуванням. Краще най про нас знають в світі. І закордонні коллеги зрозуміють точно щось із серії “Situation at Ukrainian Orthodox Church” ніж будуть довго думати що значить “Sytuaciyav Ukrainskii Pravoslavnii Tserkvi”. Ну і зі змінюючимися правилами транслітерації… тільки матюки лишаються…

нині думаю над тексом в OUCI щоб запропонувати їм пару ідей агрегувати данні декількома мовами… бо вони гребуть же з КРОСРЕФУ…

А загалом ситуація по науці - ЖОПА. і на даль ніхто того не розуміє…

this solution work’s for 3.1.2.0-3.1.2.4

In 3.2.0 was change structure. so i will reserch this question after upgrading

@asmecher in 3.2.0-3 was changed strings in crossref plugin for example from:

$request = Application::getRequest();  -in 3.1.2.4

to

$request = Application::get()->getRequest();
$publication = $submission->getCurrentPublication();
$locale = $publication->getData('locale');

How to operate with new version of OJS to send english metadata? maybe you can help?

because i tried as for 3.1.2.4 but i have receive a lot of errors like:

 Use of undefined constant en_US - assumed 'en_US' (this will throw an Error in a future version of PHP) in /var/www/uars/plugins/importexport/crossref/filter/IssueCrossrefXmlFilter.inc.php on line 153
PHP message: PHP Warning:  Use of undefined constant en_US - assumed 'en_US' (this will throw an Error in a future version of PHP) in

It is just warning, you sould send strings in quotes.
Not

getTitle(en_US)

but

getTitle(‘en_US’)

@hsh01

it doesn’t matter. for name\surname because there were bug. that for names are using interface language of OJS. [OJS 3.1.2-1] Crossref module: Language of all metadata EXCEPT author names depends on submission language (author names depend on locale chosen) · Issue #5061 · pkp/pkp-lib · GitHub

and for title\abstract - submission language.

in 3.2.0-3

if ($abstract = $publication->getData('abstract', $locale)) {

how to operate with this “$locale)”

or with this
$locale = $publication->getData('locale');

or with this
$titlesNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'title', htmlspecialchars($submission->getTitle($submission->getLocale('en_US')), ENT_COMPAT, 'UTF-8')));
if ($subtitle = $publication->getData('subtitle', $locale)) $titlesNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'subtitle', htmlspecialchars($subtitle, ENT_COMPAT, 'UTF-8')));

You can just replace all getLocale metods with ‘en_US’.

I.e. in line 87 change
$locale = $publication->getData('locale'); to $locale = 'en_US';
Or for title: $submission->getTitle($submission->getLocale()) to $submission->getTitle('en_US').

1 Like

and for abstract?

if ($abstract = $publication->getData('abstract', $locale)) {

If you changed line 87 to $locale = 'en_US', it must work.

1 Like

@hsh01 Thank’s a looooooooooooooooooooooooot :slight_smile:

1 Like