first commit

This commit is contained in:
CHIEFSOFT\ameye
2024-06-08 17:09:23 -04:00
commit df3a033196
17887 changed files with 8637778 additions and 0 deletions
@@ -0,0 +1,137 @@
<?php
/**
* @file plugins/importexport/doaj/DOAJExportDeployment.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class DOAJExportDeployment
*
* @brief Base class configuring the DOAJ export process to an
* application's specifics.
*/
namespace APP\plugins\importexport\doaj;
// XML attributes
define('DOAJ_XMLNS_XSI', 'http://www.w3.org/2001/XMLSchema-instance');
define('DOAJ_XSI_SCHEMALOCATION', 'http://doaj.org/static/doaj/doajArticles.xsd');
class DOAJExportDeployment
{
/** @var \PKP\context\Context The current import/export context */
public $_context;
/** @var \PKP\plugins\Plugin The current import/export plugin */
public $_plugin;
/**
* Get the plugin cache
*
* @return \APP\plugins\PubObjectCache
*/
public function getCache()
{
return $this->_plugin->getCache();
}
/**
* Constructor
*
* @param \PKP\context\Context $context
* @param \APP\plugins\importexport\doaj\DOAJExportPlugin $plugin
*/
public function __construct($context, $plugin)
{
$this->setContext($context);
$this->setPlugin($plugin);
}
//
// Deployment items for subclasses to override
//
/**
* Get the root element name
*
* @return string
*/
public function getRootElementName()
{
return 'records';
}
/**
* Get the schema instance URN
*
* @return string
*/
public function getXmlSchemaInstance()
{
return DOAJ_XMLNS_XSI;
}
/**
* Get the schema location URL
*
* @return string
*/
public function getXmlSchemaLocation()
{
return DOAJ_XSI_SCHEMALOCATION;
}
/**
* Get the schema filename.
*
* @return string
*/
public function getSchemaFilename()
{
return 'doajArticles.xsd';
}
//
// Getter/setters
//
/**
* Set the import/export context.
*
* @param \PKP\context\Context $context
*/
public function setContext($context)
{
$this->_context = $context;
}
/**
* Get the import/export context.
*
* @return \PKP\context\Context
*/
public function getContext()
{
return $this->_context;
}
/**
* Set the import/export plugin.
*
* @param \PKP\plugins\Plugin $plugin
*/
public function setPlugin($plugin)
{
$this->_plugin = $plugin;
}
/**
* Get the import/export plugin.
*
* @return \PKP\plugins\Plugin
*/
public function getPlugin()
{
return $this->_plugin;
}
}
@@ -0,0 +1,218 @@
<?php
/**
* @file plugins/importexport/doaj/DOAJExportPlugin.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class DOAJExportPlugin
*
* @brief DOAJ export plugin
*/
namespace APP\plugins\importexport\doaj;
use APP\core\Application;
use APP\plugins\PubObjectsExportPlugin;
use APP\template\TemplateManager;
use PKP\db\DAORegistry;
use PKP\filter\FilterDAO;
use PKP\notification\PKPNotification;
define('DOAJ_XSD_URL', 'https://www.doaj.org/schemas/doajArticles.xsd');
define('DOAJ_API_DEPOSIT_OK', 201);
define('DOAJ_API_URL', 'https://doaj.org/api/');
define('DOAJ_API_URL_DEV', 'https://testdoaj.cottagelabs.com/api/');
define('DOAJ_API_OPERATION', 'articles');
class DOAJExportPlugin extends PubObjectsExportPlugin
{
/**
* @copydoc Plugin::getName()
*/
public function getName()
{
return 'DOAJExportPlugin';
}
/**
* @copydoc Plugin::getDisplayName()
*/
public function getDisplayName()
{
return __('plugins.importexport.doaj.displayName');
}
/**
* @copydoc Plugin::getDescription()
*/
public function getDescription()
{
return __('plugins.importexport.doaj.description');
}
/**
* @copydoc ImportExportPlugin::display()
*/
public function display($args, $request)
{
parent::display($args, $request);
switch (array_shift($args)) {
case 'index':
case '':
$templateMgr = TemplateManager::getManager($request);
$templateMgr->display($this->getTemplateResource('index.tpl'));
break;
}
}
/**
* @copydoc ImportExportPlugin::getPluginSettingsPrefix()
*/
public function getPluginSettingsPrefix()
{
return 'doaj';
}
/**
* @copydoc PubObjectsExportPlugin::getSubmissionFilter()
*/
public function getSubmissionFilter()
{
return 'article=>doaj-xml';
}
/**
* @copydoc PubObjectsExportPlugin::getExportActions()
*/
public function getExportActions($context)
{
$actions = [EXPORT_ACTION_EXPORT, EXPORT_ACTION_MARKREGISTERED ];
if ($this->getSetting($context->getId(), 'apiKey')) {
array_unshift($actions, EXPORT_ACTION_DEPOSIT);
}
return $actions;
}
/**
* @copydoc PubObjectsExportPlugin::getExportDeploymentClassName()
*/
public function getExportDeploymentClassName()
{
return '\APP\plugins\importexport\doaj\DOAJExportDeployment';
}
/**
* @copydoc PubObjectsExportPlugin::getSettingsFormClassName()
*/
public function getSettingsFormClassName()
{
return '\APP\plugins\importexport\doaj\classes\form\DOAJSettingsForm';
}
/**
* @see PubObjectsExportPlugin::depositXML()
*
* @param \APP\submission\Submission $objects
* @param \PKP\context\Context $context
* @param string $jsonString Export JSON string
*
* @return bool|array Whether the JSON string has been registered
*/
public function depositXML($objects, $context, $jsonString)
{
$apiKey = $this->getSetting($context->getId(), 'apiKey');
$httpClient = Application::get()->getHttpClient();
try {
$response = $httpClient->request(
'POST',
($this->isTestMode($context) ? DOAJ_API_URL_DEV : DOAJ_API_URL) . DOAJ_API_OPERATION,
[
'query' => ['api_key' => $apiKey],
'json' => json_decode($jsonString)
]
);
} catch (\Exception $e) {
return [['plugins.importexport.doaj.register.error.mdsError', $e->getMessage()]];
}
if (($status = $response->getStatusCode()) != DOAJ_API_DEPOSIT_OK) {
return [['plugins.importexport.doaj.register.error.mdsError', $status . ' - ' . $response->getBody()]];
}
// Deposit was received; set the status
$objects->setData($this->getDepositStatusSettingName(), EXPORT_STATUS_REGISTERED);
$this->updateObject($objects);
return true;
}
/**
* @copydoc PubObjectsExportPlugin::executeExportAction()
*
* @param null|mixed $noValidation
*/
public function executeExportAction($request, $objects, $filter, $tab, $objectsFileNamePart, $noValidation = null, $shouldRedirect = true)
{
$context = $request->getContext();
$path = ['plugin', $this->getName()];
if ($request->getUserVar(EXPORT_ACTION_DEPOSIT)) {
assert($filter != null);
// Set filter for JSON
$filter = 'article=>doaj-json';
$resultErrors = [];
foreach ($objects as $object) {
// Get the JSON
$exportJson = $this->exportJSON($object, $filter, $context);
// Deposit the JSON
$result = $this->depositXML($object, $context, $exportJson);
if (is_array($result)) {
$resultErrors[] = $result;
}
}
// send notifications
if (empty($resultErrors)) {
$this->_sendNotification(
$request->getUser(),
$this->getDepositSuccessNotificationMessageKey(),
PKPNotification::NOTIFICATION_TYPE_SUCCESS
);
} else {
foreach ($resultErrors as $errors) {
foreach ($errors as $error) {
assert(is_array($error) && count($error) >= 1);
$this->_sendNotification(
$request->getUser(),
$error[0],
PKPNotification::NOTIFICATION_TYPE_ERROR,
($error[1] ?? null)
);
}
}
}
// redirect back to the right tab
$request->redirect(null, null, null, $path, null, $tab);
} else {
return parent::executeExportAction($request, $objects, $filter, $tab, $objectsFileNamePart, $noValidation);
}
}
/**
* Get the JSON for selected objects.
*
* @param \APP\submission\Submission $object
* @param string $filter
* @param \PKP\context\Context $context
*
* @return string JSON variable.
*/
public function exportJSON($object, $filter, $context)
{
$filterDao = DAORegistry::getDAO('FilterDAO'); /** @var FilterDAO $filterDao */
$exportFilters = $filterDao->getObjectsByGroup($filter);
assert(count($exportFilters) == 1); // Assert only a single serialization filter
$exportFilter = array_shift($exportFilters);
$exportDeployment = $this->_instantiateExportDeployment($context);
$exportFilter->setDeployment($exportDeployment);
return $exportFilter->execute($object, true);
}
}
@@ -0,0 +1,140 @@
<?php
/**
* @file plugins/importexport/doaj/DOAJInfoSender.php
*
* Copyright (c) 2013-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class DOAJInfoSender
*
* @brief Scheduled task to send deposits to DOAJ.
*/
namespace APP\plugins\importexport\doaj;
use APP\core\Application;
use APP\journal\JournalDAO;
use PKP\plugins\PluginRegistry;
use PKP\scheduledTask\ScheduledTask;
use PKP\scheduledTask\ScheduledTaskHelper;
class DOAJInfoSender extends ScheduledTask
{
/** @var DOAJExportPlugin $_plugin */
public $_plugin;
/**
* Constructor.
*/
public function __construct($args)
{
PluginRegistry::loadCategory('importexport');
$plugin = PluginRegistry::getPlugin('importexport', 'DOAJExportPlugin'); /** @var DOAJExportPlugin $plugin */
$this->_plugin = $plugin;
if (is_a($plugin, 'DOAJExportPlugin')) {
$plugin->addLocaleData();
}
parent::__construct($args);
}
/**
* @copydoc ScheduledTask::getName()
*/
public function getName()
{
return __('plugins.importexport.doaj.senderTask.name');
}
/**
* @copydoc ScheduledTask::executeActions()
*/
public function executeActions()
{
if (!$this->_plugin) {
return false;
}
$plugin = $this->_plugin;
$journals = $this->_getJournals();
foreach ($journals as $journal) {
// load pubIds for this journal
PluginRegistry::loadCategory('pubIds', true, $journal->getId());
// Get unregistered articles
$unregisteredArticles = $plugin->getUnregisteredArticles($journal);
// If there are articles to be deposited
if (count($unregisteredArticles)) {
$this->_registerObjects($unregisteredArticles, 'article=>doaj-json', $journal, 'articles');
}
}
return true;
}
/**
* Get all journals that meet the requirements to have
* their articles automatically sent to DOAJ.
*
* @return array
*/
public function _getJournals()
{
$plugin = $this->_plugin;
$contextDao = Application::getContextDAO(); /** @var JournalDAO $contextDao */
$journalFactory = $contextDao->getAll(true);
$journals = [];
while ($journal = $journalFactory->next()) {
$journalId = $journal->getId();
if (!$plugin->getSetting($journalId, 'apiKey') || !$plugin->getSetting($journalId, 'automaticRegistration')) {
continue;
}
$journals[] = $journal;
}
return $journals;
}
/**
* Register objects
*
* @param array $objects
* @param string $filter
* @param \APP\journal\Journal $journal
* @param string $objectsFileNamePart
*/
public function _registerObjects($objects, $filter, $journal, $objectsFileNamePart)
{
$plugin = $this->_plugin;
foreach ($objects as $object) {
// Get the JSON
$exportJson = $plugin->exportJSON($object, $filter, $journal);
// Deposit the JSON
$result = $plugin->depositXML($object, $journal, $exportJson);
if ($result !== true) {
$this->_addLogEntry($result);
}
}
}
/**
* Add execution log entry
*
* @param array $errors
*/
public function _addLogEntry($errors)
{
if (is_array($errors)) {
foreach ($errors as $error) {
assert(is_array($error) && count($error) >= 1);
$this->addExecutionLogEntry(
__($error[0], ['param' => $error[1] ?? null]),
ScheduledTaskHelper::SCHEDULED_TASK_MESSAGE_TYPE_WARNING
);
}
}
}
}
@@ -0,0 +1,138 @@
<?php
/**
* @file plugins/importexport/doaj/classes/form/DOAJSettingsForm.php
*
* Copyright (c) 2014-2022 Simon Fraser University
* Copyright (c) 2003-2022 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class DOAJSettingsForm
*
* @brief Form for journal managers to setup DOAJ plugin
*/
namespace APP\plugins\importexport\doaj\classes\form;
use PKP\form\Form;
class DOAJSettingsForm extends Form
{
//
// Private properties
//
/** @var int */
public $_contextId;
/**
* Get the context ID.
*
* @return int
*/
public function _getContextId()
{
return $this->_contextId;
}
/** @var \PKP\plugins\Plugin */
public $_plugin;
/**
* Get the plugin.
*
* @return \PKP\plugins\Plugin
*/
public function _getPlugin()
{
return $this->_plugin;
}
//
// Constructor
//
/**
* Constructor
*
* @param \PKP\plugins\Plugin $plugin
* @param int $contextId
*/
public function __construct($plugin, $contextId)
{
$this->_contextId = $contextId;
$this->_plugin = $plugin;
parent::__construct($plugin->getTemplateResource('settingsForm.tpl'));
// Add form validation checks.
$this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
$this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
}
//
// Implement template methods from Form
//
/**
* @copydoc Form::initData()
*/
public function initData()
{
$contextId = $this->_getContextId();
$plugin = $this->_getPlugin();
foreach ($this->getFormFields() as $fieldName => $fieldType) {
$this->setData($fieldName, $plugin->getSetting($contextId, $fieldName));
}
}
/**
* @copydoc Form::readInputData()
*/
public function readInputData()
{
$this->readUserVars(array_keys($this->getFormFields()));
}
/**
* @copydoc Form::execute()
*/
public function execute(...$functionArgs)
{
$plugin = $this->_getPlugin();
$contextId = $this->_getContextId();
parent::execute(...$functionArgs);
foreach ($this->getFormFields() as $fieldName => $fieldType) {
$plugin->updateSetting($contextId, $fieldName, $this->getData($fieldName), $fieldType);
}
}
//
// Public helper methods
//
/**
* Get form fields
*
* @return array (field name => field type)
*/
public function getFormFields()
{
return [
'apiKey' => 'string',
'automaticRegistration' => 'bool',
'testMode' => 'bool'
];
}
/**
* Is the form field optional
*
* @param string $settingName
*
* @return bool
*/
public function isOptional($settingName)
{
return in_array($settingName, ['apiKey', 'automaticRegistration', 'testMode']);
}
}
+172
View File
@@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
version = "1.3"
xmlns:xs ="http://www.w3.org/2001/XMLSchema"
xmlns:iso_639-2b="http://www.doaj.org/schemas/iso_639-2b/1.1">
<xs:import namespace="http://www.doaj.org/schemas/iso_639-2b/1.1"
schemaLocation="http://www.doaj.org/static/doaj/iso_639-2b.xsd">
<xs:annotation>
<xs:documentation>
This schema determines allowable xml file formats
for upload into the DOAJ database.
The schema uses imported codes for the representation
of names of languages devised by the International
Organization for Standardization (ISO) 639-2/B
(bibliographic codes). Please note that when two
codes separated by a dash occurs in the iso 639-2
table then only the first code is used, the
bibliographic one. The terminology code that comes
second is omitted.
</xs:documentation>
</xs:annotation>
</xs:import>
<xs:element name="records">
<xs:complexType>
<xs:sequence>
<xs:element name="record" type="recordType"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="recordType">
<xs:sequence>
<xs:element name="language"
type="iso_639-2b:LanguageCodeType"
minOccurs="0"/>
<xs:element name="publisher" type="xs:string" minOccurs="0"/>
<xs:element name="journalTitle" type="xs:string" />
<xs:element name="issn" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[d0-9]{4}-{0,1}[0-9]{3}[0-9xX]{1}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="eissn" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{4}-{0,1}[0-9]{3}[0-9xX]{1}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="publicationDate">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{4}(-[0-9]{2}(-[0-9]{2})?)?"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="volume" type="xs:string" minOccurs="0"/>
<xs:element name="issue" type="xs:string" minOccurs="0"/>
<xs:element name="startPage" type="xs:string" minOccurs="0"/>
<xs:element name="endPage" type="xs:string" minOccurs="0"/>
<xs:element name="doi" type="xs:string" minOccurs="0"/>
<xs:element name="publisherRecordId" type="xs:string" minOccurs="0"/>
<xs:element name="documentType" type="xs:string" minOccurs="0"/>
<xs:element name="title" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="iso_639-2b:LanguageCodeType" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="authors" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="author" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="email" type="xs:string" minOccurs="0" />
<xs:element name="affiliationId" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="orcid_id" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="https://orcid\.org/[0-9]{4}-[0-9]{4}-[0-9]{4}-\d{3}[\dX]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="affiliationsList" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="affiliationName" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="affiliationId" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="abstract" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="iso_639-2b:LanguageCodeType" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="fullTextUrl">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="fullUrl">
<xs:attribute name="format" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="keywords"
minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="keyword" type="xs:string"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="language" type="iso_639-2b:LanguageCodeType"
use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="fullUrl">
<xs:restriction base="xs:anyURI">
<xs:pattern value="https?://([^/:]+\.[\p{L}]{2,10}|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]+)?(.*)?"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
@@ -0,0 +1,205 @@
<?php
/**
* @file plugins/importexport/doaj/filter/DOAJJsonFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class DOAJJsonFilter
*
* @ingroup plugins_importexport_doaj
*
* @brief Class that converts an Article to a DOAJ JSON string.
*/
namespace APP\plugins\importexport\doaj\filter;
use APP\core\Application;
use APP\facades\Repo;
use APP\plugins\importexport\doaj\DOAJExportDeployment;
use APP\plugins\importexport\doaj\DOAJExportPlugin;
use PKP\core\PKPString;
use PKP\db\DAORegistry;
use PKP\plugins\importexport\PKPImportExportFilter;
use PKP\submission\SubmissionKeywordDAO;
class DOAJJsonFilter extends PKPImportExportFilter
{
/**
* Constructor
*
* @param \PKP\filter\FilterGroup $filterGroup
*/
public function __construct($filterGroup)
{
$this->setDisplayName('DOAJ JSON export');
parent::__construct($filterGroup);
}
//
// Implement template methods from Filter
//
/**
* @see Filter::process()
*
* @param \APP\submission\Submission $pubObject
*
* @return string JSON
*/
public function &process(&$pubObject)
{
/** @var DOAJExportDeployment */
$deployment = $this->getDeployment();
$context = $deployment->getContext();
/** @var DOAJExportPlugin */
$plugin = $deployment->getPlugin();
$cache = $plugin->getCache();
// Create the JSON string
// Article JSON example bibJson https://github.com/DOAJ/harvester/blob/9b59fddf2d01f7c918429d33b63ca0f1a6d3d0d0/service/tests/fixtures/article.py
// S. also https://doaj.github.io/doaj-docs/master/data_models/IncomingAPIArticle
$publication = $pubObject->getCurrentPublication();
$publicationLocale = $publication->getData('locale');
$issueId = $publication->getData('issueId');
if ($cache->isCached('issues', $issueId)) {
$issue = $cache->get('issues', $issueId);
} else {
$issue = Repo::issue()->get($issueId);
$issue = $issue->getJournalId() == $context->getId() ? $issue : null;
if ($issue) {
$cache->add($issue, null);
}
}
$article = [];
$article['bibjson']['journal'] = [];
// Publisher name (i.e. institution name)
$publisher = $context->getData('publisherInstitution');
if (!empty($publisher)) {
$article['bibjson']['journal']['publisher'] = $publisher;
}
// To-Do: license ???
// Journal's title (M)
$journalTitle = $context->getName($context->getPrimaryLocale());
$article['bibjson']['journal']['title'] = $journalTitle;
// Identification Numbers
$issns = [];
$pissn = $context->getData('printIssn');
if (!empty($pissn)) {
$issns[] = $pissn;
}
$eissn = $context->getData('onlineIssn');
if (!empty($eissn)) {
$issns[] = $eissn;
}
if (!empty($issns)) {
$article['bibjson']['journal']['issns'] = $issns;
}
// Volume, Number
$volume = $issue->getVolume();
if (!empty($volume)) {
$article['bibjson']['journal']['volume'] = $volume;
}
$issueNumber = $issue->getNumber();
if (!empty($issueNumber)) {
$article['bibjson']['journal']['number'] = $issueNumber;
}
// Article title
$article['bibjson']['title'] = $publication?->getLocalizedTitle($publicationLocale) ?? '';
// Identifiers
$article['bibjson']['identifier'] = [];
// DOI
$doi = $publication->getDoi();
if (!empty($doi)) {
$article['bibjson']['identifier'][] = ['type' => 'doi', 'id' => $doi];
}
// Print and online ISSN
if (!empty($pissn)) {
$article['bibjson']['identifier'][] = ['type' => 'pissn', 'id' => $pissn];
}
if (!empty($eissn)) {
$article['bibjson']['identifier'][] = ['type' => 'eissn', 'id' => $eissn];
}
// Year and month from article's publication date
$publicationDate = $this->formatDate($issue->getDatePublished());
if ($publication->getData('datePublished')) {
$publicationDate = $this->formatDate($publication->getData('datePublished'));
}
$yearMonth = explode('-', $publicationDate);
$article['bibjson']['year'] = $yearMonth[0];
$article['bibjson']['month'] = $yearMonth[1];
/** --- FirstPage / LastPage (from PubMed plugin)---
* there is some ambiguity for online journals as to what
* "page numbers" are; for example, some journals (eg. JMIR)
* use the "e-location ID" as the "page numbers" in PubMed
*/
$startPage = $publication->getStartingPage();
$endPage = $publication->getEndingPage();
if (isset($startPage) && $startPage !== '') {
$article['bibjson']['start_page'] = $startPage;
$article['bibjson']['end_page'] = $endPage;
}
// FullText URL
$request = Application::get()->getRequest();
$article['bibjson']['link'] = [];
$article['bibjson']['link'][] = [
'url' => $request->url($context->getPath(), 'article', 'view', $pubObject->getId()),
'type' => 'fulltext',
'content_type' => 'html'
];
// Authors: name, affiliation and ORCID
$articleAuthors = $publication->getData('authors');
if ($articleAuthors->isNotEmpty()) {
$article['bibjson']['author'] = [];
foreach ($articleAuthors as $articleAuthor) {
$author = ['name' => $articleAuthor->getFullName(false, false, $publicationLocale)];
$affiliation = $articleAuthor->getAffiliation($publicationLocale);
if (!empty($affiliation)) {
$author['affiliation'] = $affiliation;
}
if ($orcid = $articleAuthor->getData('orcid')) {
$author['orcid_id'] = $orcid;
}
$article['bibjson']['author'][] = $author;
}
}
// Abstract
$abstract = $publication->getData('abstract', $publicationLocale);
if (!empty($abstract)) {
$article['bibjson']['abstract'] = PKPString::html2text($abstract);
}
// Keywords
/** @var SubmissionKeywordDAO */
$dao = DAORegistry::getDAO('SubmissionKeywordDAO');
$keywords = $dao->getKeywords($publication->getId(), [$publicationLocale]);
$allowedNoOfKeywords = array_slice($keywords[$publicationLocale] ?? [], 0, 6);
if (!empty($keywords[$publicationLocale])) {
$article['bibjson']['keywords'] = $allowedNoOfKeywords;
}
$json = json_encode($article);
return $json;
}
/**
* Format a date by Y-F format.
*
* @param string $date
*
* @return string
*/
public function formatDate($date)
{
if ($date == '') {
return null;
}
return date('Y-F', strtotime($date));
}
}
@@ -0,0 +1,290 @@
<?php
/**
* @file plugins/importexport/doaj/filter/DOAJXmlFilter.php
*
* Copyright (c) 2014-2022 Simon Fraser University
* Copyright (c) 2000-2022 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class DOAJXmlFilter
*
* @brief Class that converts an Article to a DOAJ XML document.
*/
namespace APP\plugins\importexport\doaj\filter;
use APP\core\Application;
use APP\facades\Repo;
use APP\plugins\importexport\doaj\DOAJExportDeployment;
use APP\plugins\importexport\doaj\DOAJExportPlugin;
use APP\publication\Publication;
use APP\submission\Submission;
use PKP\core\PKPString;
use PKP\db\DAORegistry;
use PKP\i18n\LocaleConversion;
use PKP\submission\SubmissionKeywordDAO;
class DOAJXmlFilter extends \PKP\plugins\importexport\native\filter\NativeExportFilter
{
/**
* Constructor
*
* @param \PKP\filter\FilterGroup $filterGroup
*/
public function __construct($filterGroup)
{
$this->setDisplayName('DOAJ XML export');
parent::__construct($filterGroup);
}
//
// Implement template methods from Filter
//
/**
* @see Filter::process()
*
* @param array $pubObjects Array of Submissions
*
* @return \DOMDocument
*/
public function &process(&$pubObjects)
{
// Create the XML document
$doc = new \DOMDocument('1.0', 'utf-8');
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
/** @var DOAJExportDeployment */
$deployment = $this->getDeployment();
$context = $deployment->getContext();
/** @var DOAJExportPlugin */
$plugin = $deployment->getPlugin();
$cache = $plugin->getCache();
// Create the root node
$rootNode = $this->createRootNode($doc);
$doc->appendChild($rootNode);
foreach ($pubObjects as $pubObject) { /** @var Submission $pubObject */
$publication = $pubObject->getCurrentPublication();
$issueId = $publication->getData('issueId');
if ($cache->isCached('issues', $issueId)) {
$issue = $cache->get('issues', $issueId);
} else {
$issue = Repo::issue()->get($issueId);
$issue = $issue->getJournalId() == $context->getId() ? $issue : null;
if ($issue) {
$cache->add($issue, null);
}
}
// Record
$recordNode = $doc->createElement('record');
$rootNode->appendChild($recordNode);
// Language
$language = LocaleConversion::get3LetterIsoFromLocale($publication->getData('locale'));
if (!empty($language)) {
$recordNode->appendChild($node = $doc->createElement('language', $language));
}
// Publisher name (i.e. institution name)
$publisher = $context->getData('publisherInstitution');
if (!empty($publisher)) {
$recordNode->appendChild($node = $doc->createElement('publisher', htmlspecialchars($publisher, ENT_COMPAT, 'UTF-8')));
}
// Journal's title (M)
$journalTitle = $context->getName($context->getPrimaryLocale());
$recordNode->appendChild($node = $doc->createElement('journalTitle', htmlspecialchars($journalTitle, ENT_COMPAT, 'UTF-8')));
// Identification Numbers
$issn = $context->getData('printIssn');
if (!empty($issn)) {
$recordNode->appendChild($node = $doc->createElement('issn', $issn));
}
$eissn = $context->getData('onlineIssn');
if (!empty($eissn)) {
$recordNode->appendChild($node = $doc->createElement('eissn', $eissn));
}
// Article's publication date, volume, issue
if ($publication->getData('datePublished')) {
$recordNode->appendChild($node = $doc->createElement('publicationDate', $this->formatDate($publication->getData('datePublished'))));
} else {
$recordNode->appendChild($node = $doc->createElement('publicationDate', $this->formatDate($issue->getDatePublished())));
}
$volume = $issue->getVolume();
if (!empty($volume) && $issue->getShowVolume()) {
$recordNode->appendChild($node = $doc->createElement('volume', htmlspecialchars($volume, ENT_COMPAT, 'UTF-8')));
}
$issueNumber = $issue->getNumber();
if (!empty($issueNumber) && $issue->getShowNumber()) {
$recordNode->appendChild($node = $doc->createElement('issue', htmlspecialchars($issueNumber, ENT_COMPAT, 'UTF-8')));
}
/** --- FirstPage / LastPage (from PubMed plugin)---
* there is some ambiguity for online journals as to what
* "page numbers" are; for example, some journals (eg. JMIR)
* use the "e-location ID" as the "page numbers" in PubMed
*/
$startPage = $publication->getStartingPage();
$endPage = $publication->getEndingPage();
if (isset($startPage) && $startPage !== '') {
$recordNode->appendChild($node = $doc->createElement('startPage', htmlspecialchars($startPage, ENT_COMPAT, 'UTF-8')));
$recordNode->appendChild($node = $doc->createElement('endPage', htmlspecialchars($endPage, ENT_COMPAT, 'UTF-8')));
}
// DOI
$doi = $publication->getStoredPubId('doi');
if (!empty($doi)) {
$recordNode->appendChild($node = $doc->createElement('doi', htmlspecialchars($doi, ENT_COMPAT, 'UTF-8')));
}
// publisherRecordId
$recordNode->appendChild($node = $doc->createElement('publisherRecordId', htmlspecialchars($publication->getId(), ENT_COMPAT, 'UTF-8')));
// documentType
$type = $publication->getLocalizedData('type', $publication->getData('locale'));
if (!empty($type)) {
$recordNode->appendChild($node = $doc->createElement('documentType', htmlspecialchars($type, ENT_COMPAT, 'UTF-8')));
}
// Article title
$articleTitles = $publication->getTitles();
if (array_key_exists($publication->getData('locale'), $articleTitles)) {
$titleInArticleLocale = $articleTitles[$publication->getData('locale')];
unset($articleTitles[$publication->getData('locale')]);
$articleTitles = array_merge([$publication->getData('locale') => $titleInArticleLocale], $articleTitles);
}
foreach ($articleTitles as $locale => $title) {
if (!empty($title)) {
$recordNode->appendChild($node = $doc->createElement('title', htmlspecialchars($title, ENT_COMPAT, 'UTF-8')));
$node->setAttribute('language', LocaleConversion::get3LetterIsoFromLocale($locale));
}
}
// Authors and affiliations
$authors = $publication->getData('authors');
if (!empty($authors)) {
$authorsNode = $doc->createElement('authors');
$recordNode->appendChild($authorsNode);
$affilList = $this->createAffiliationsList($authors, $publication);
foreach ($authors as $author) {
$authorsNode->appendChild($this->createAuthorNode($doc, $publication, $author, $affilList));
}
}
if (!empty($affilList[0])) {
$affilsNode = $doc->createElement('affiliationsList');
$recordNode->appendChild($affilsNode);
for ($i = 0; $i < count($affilList); $i++) {
$affilsNode->appendChild($node = $doc->createElement('affiliationName', htmlspecialchars($affilList[$i], ENT_COMPAT, 'UTF-8')));
$node->setAttribute('affiliationId', $i);
}
}
// Abstract
$articleAbstracts = $publication->getData('abstract') ?: [];
if (array_key_exists($publication->getData('locale'), $articleAbstracts)) {
$abstractInArticleLocale = $articleAbstracts[$publication->getData('locale')];
unset($articleAbstracts[$publication->getData('locale')]);
$articleAbstracts = array_merge([$publication->getData('locale') => $abstractInArticleLocale], $articleAbstracts);
}
foreach ($articleAbstracts as $locale => $abstract) {
if (!empty($abstract)) {
$recordNode->appendChild($node = $doc->createElement('abstract', htmlspecialchars(PKPString::html2text($abstract), ENT_COMPAT, 'UTF-8')));
$node->setAttribute('language', LocaleConversion::get3LetterIsoFromLocale($locale));
}
}
// FullText URL
$request = Application::get()->getRequest();
$recordNode->appendChild($node = $doc->createElement('fullTextUrl', htmlspecialchars($request->url(null, 'article', 'view', $pubObject->getId()), ENT_COMPAT, 'UTF-8')));
$node->setAttribute('format', 'html');
// Keywords
$supportedLocales = $context->getSupportedFormLocales();
/** @var SubmissionKeywordDAO */
$dao = DAORegistry::getDAO('SubmissionKeywordDAO');
$articleKeywords = $dao->getKeywords($publication->getId(), $supportedLocales);
if (array_key_exists($publication->getData('locale'), $articleKeywords)) {
$keywordsInArticleLocale = $articleKeywords[$publication->getData('locale')];
unset($articleKeywords[$publication->getData('locale')]);
$articleKeywords = array_merge([$publication->getData('locale') => $keywordsInArticleLocale], $articleKeywords);
}
foreach ($articleKeywords as $locale => $keywords) {
$keywordsNode = $doc->createElement('keywords');
$keywordsNode->setAttribute('language', LocaleConversion::get3LetterIsoFromLocale($locale));
$recordNode->appendChild($keywordsNode);
foreach ($keywords as $keyword) {
if (!empty($keyword)) {
$keywordsNode->appendChild($node = $doc->createElement('keyword', htmlspecialchars($keyword, ENT_COMPAT, 'UTF-8')));
}
}
}
}
return $doc;
}
/**
* Create and return the root node.
*
* @param \DOMDocument $doc
*
* @return \DOMElement
*/
public function createRootNode($doc)
{
/** @var DOAJExportDeployment */
$deployment = $this->getDeployment();
$rootNode = $doc->createElement($deployment->getRootElementName());
$rootNode->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
$rootNode->setAttribute('xsi:noNamespaceSchemaLocation', $deployment->getXmlSchemaLocation());
return $rootNode;
}
/**
* Generate the author node.
*
* @param \DOMDocument $doc
* @param object $publication Article
* @param object $author Author
* @param array $affilList List of author affiliations
*
* @return \DOMElement
*/
public function createAuthorNode($doc, $publication, $author, $affilList)
{
$deployment = $this->getDeployment();
$authorNode = $doc->createElement('author');
$authorNode->appendChild($node = $doc->createElement('name', htmlspecialchars($author->getFullName(false, false, $publication->getData('locale')), ENT_COMPAT, 'UTF-8')));
if (in_array($author->getAffiliation($publication->getData('locale')), $affilList) && !empty($affilList[0])) {
$authorNode->appendChild($node = $doc->createElement('affiliationId', htmlspecialchars(current(array_keys($affilList, $author->getAffiliation($publication->getData('locale')))), ENT_COMPAT, 'UTF-8')));
}
if ($orcid = $author->getData('orcid')) {
$authorNode->appendChild($doc->createElement('orcid_id'))->appendChild($doc->createTextNode($orcid));
}
return $authorNode;
}
/**
* Generate a list of affiliations among all authors of an article.
*
* @param object $authors Array of article authors
* @param Publication $publication
*
* @return array
*/
public function createAffiliationsList($authors, $publication)
{
$affilList = [];
foreach ($authors as $author) {
if (!in_array($author->getAffiliation($publication->getData('locale')), $affilList)) {
$affilList[] = $author->getAffiliation($publication->getData('locale')) ;
}
}
return $affilList;
}
/**
* Format a date by Y-m-d format.
*
* @param string $date
*
* @return string
*/
public function formatDate($date)
{
if ($date == '') {
return null;
}
return date('Y-m-d', strtotime($date));
}
}
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filterConfig SYSTEM "../../../../lib/pkp/dtd/filterConfig.dtd">
<!--
* plugins/importexport/doaj/filter/filterConfig.xml
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Filter Configuration.
-->
<filterConfig>
<filterGroups>
<!-- DOAJ XML article output -->
<filterGroup
symbolic="article=>doaj-xml"
displayName="plugins.importexport.doaj.displayName"
description="plugins.importexport.doaj.description"
inputType="class::classes.submission.Submission[]"
outputType="xml::schema(plugins/importexport/doaj/doajArticles.xsd)" />
<!-- DOAJ JSON article output -->
<filterGroup
symbolic="article=>doaj-json"
displayName="plugins.importexport.doaj.displayName"
description="plugins.importexport.doaj.description"
inputType="class::classes.submission.Submission"
outputType="primitive::string" />
</filterGroups>
<filters>
<!-- DOAJ XML article output -->
<filter
inGroup="article=>doaj-xml"
class="APP\plugins\importexport\doaj\filter\DOAJXmlFilter"
isTemplate="0" />
<!-- DOAJ JSON article output -->
<filter
inGroup="article=>doaj-json"
class="APP\plugins\importexport\doaj\filter\DOAJJsonFilter"
isTemplate="0" />
</filters>
</filterConfig>
+14
View File
@@ -0,0 +1,14 @@
<?php
/**
* @file plugins/importexport/doaj/index.php
*
* Copyright (c) 2014-2022 Simon Fraser University
* Copyright (c) 2003-2022 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Wrapper for DOAJ XML export plugin.
*
*/
return new \APP\plugins\importexport\doaj\DOAJExportPlugin();
@@ -0,0 +1,52 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:39+00:00\n"
"PO-Revision-Date: 2020-06-14 15:53+0000\n"
"Last-Translator: M. Ali <vorteem@gmail.com>\n"
"Language-Team: Arabic <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/ar_IQ/>\n"
"Language: ar_IQ\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "إضافة التصدير DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "تصدير المجلة إلى DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "عنوان اتصال DOAJ لأغراض التضمين"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr "إذا رغبت بتسجيل المقالات من داخل نظام المجلات المفتوحة، لطفاً، أدخل مفتاح واجهة التطبيق لـ DOAJ. بخلاف ذلك، لا يزال بإمكانك التصدير بصيغة DOAJ XML ولكن بدون تسجيل مقالاتك في DOAJ مباشرة من نظام المجلات المفتوحة."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "مفتاح واجهة تطبيق DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "ستجد مفتاح واجهة التطبيق على صفحة المستخدم لموقع DOAJ."
msgid "plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr "نظام المجلات المفتوحة سيقوم بإيداع المقالات تلقائياً في DOAJ. لطفاً، خذ بنظر الاعتبار أن هذه العملية قد تستغرق وقتاً قصيراً بُعيد النشر لأغراض المعالجة (أي اعتماداً على إعداداتك للإضافة cronjob). بإمكانك دوماً التحقق من وجود مقالات غير مسجلة فيه."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr "استعمل واجهة التطبيق الاختبارية لـ DOAJ (بيئة إختبارية) لغرض التسجيل. لطفاً، إحرص على إزالة هذا الخيار عند مرحلة الإنتاج الفعلي."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "وظيفة التسجيل التلقائي في DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "تعذر الإيداع! أعادت واجهة التطبيق DOAJ الخطأ الآتي: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"صيغة الاستعمال:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles objectId1 [objectId2] ...\n"
""
@@ -0,0 +1,60 @@
# Osman Durmaz <osmandurmaz@hotmail.de>, 2023.
msgid ""
msgstr ""
"PO-Revision-Date: 2023-06-01 22:17+0000\n"
"Last-Translator: Osman Durmaz <osmandurmaz@hotmail.de>\n"
"Language-Team: Azerbaijani <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/az/>\n"
"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ transfer qoşması"
msgid "plugins.importexport.doaj.export.contact"
msgstr "İştirak üçün DOAJ ilə əlaqə saxlayın"
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API açarı"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "API açarınızı DOAJ istifadəçi səhifəsindən tapa bilərsiniz."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS, məqalələri DOAJ-a avtomatik olaraq qeyd edəcəkdir. Zəhmət olmasa bu "
"əməliyyatın yayımlanma əməliyyatından sonra müəyyən bir vaxt apara "
"biləcəyini unutmayın (məs. planlaşdırılmış əməliyyatlar tənzimlərinizə bağlı "
"gecikmələr). Yadda saxlanmamış məqalələri yoxlaya bilərsiniz."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Qeydiyyat üçün DOAJ test API-sini (test mühiti) istifadə edin. Zəhmət olmasa "
"məqalələrinizin nəşr edilməsi üçün bu seçimi qaldırmağı unutmayın."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ avtomatik qeydiyyat vəzifəsi"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Qeydiyyat uğursuz oldu! DOAJ API bir xəta baş verdi: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"İstifadə:\n"
"{$scriptName} {$pluginName} transfer edin [xmlFileName] [journal_path] "
"articles objectId1 [objectId2] ...\n"
msgid "plugins.importexport.doaj.description"
msgstr "Jurnalı DOAJ üçün ixrac edin."
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Əgər məqalələri OJS içindən birbaşa yadda saxlamaq istəyirsinizsə, zəhmət "
"olmasa DOAJ API Açarınızı daxil edin. API açarınız yoxdursa, dataları DOAJ "
"XML formatında ixrac edə bilərsiniz; ancaq məqalələriniz DOAJ-a OJS içində "
"yadda saxlaya bilməzsiniz."
@@ -0,0 +1,61 @@
# Cyril Kamburov <cc@intermedia.bg>, 2021.
# Pencho Toncgev <ptonchev@gmail.com>, 2022.
msgid ""
msgstr ""
"PO-Revision-Date: 2022-10-11 20:06+0000\n"
"Last-Translator: Pencho Toncgev <ptonchev@gmail.com>\n"
"Language-Team: Bulgarian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/bg_BG/>\n"
"Language: bg_BG\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Плъгин за DOAJ експорт"
msgid "plugins.importexport.doaj.description"
msgstr "Експорт на списание за DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Свържете се с DOAJ за включване"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Ако искате да регистрирате статии от OJS, моля, въведете своя DOAJ API ключ. "
"В противен случай все още ще можете да експортирате във формат DOAJ XML, но "
"не можете да регистрирате статиите си в DOAJ от OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API Ключ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Ще намерите своя API ключ на вашата потребителска страница DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS ще депозира статии автоматично в DOAJ. Моля, обърнете внимание, че "
"обработката на това може да отнеме малко време след публикуването (например "
"в зависимост от конфигурацията на cronjob). Можете да проверите за всички "
"нерегистрирани статии."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Използвайте DOAJ test API (среда за тестване) за регистрация. Моля, не "
"забравяйте да премахнете тази опция за производството (след приключване на "
"тестовете)."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Задача за автоматична регистрация на DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Депозитът не беше успешен! API на DOAJ върна грешка: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Употреба:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,65 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:56:44-07:00\n"
"PO-Revision-Date: 2020-02-06 19:21+0000\n"
"Last-Translator: Jordi LC <jordi.lacruz@uab.cat>\n"
"Language-Team: Catalan <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/ca/>\n"
"Language: ca_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Mòdul d'exportació DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr ""
"Exporta la revista al DOAJ i envia informació sobre la revista al "
"representant del DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Contacta amb el DOAJ per a l'inclusió"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Si desitgeu registrar articles des del mateix OJS, introduïu la vostra clau "
"API DOAJ. Si no ho feu encara podreu exportar-los al format DOAJ XML, però "
"no podreu registrar els articles amb DOAJ des de OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Clau API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Trobareu la clau API a la vostra pàgina d'usuari/ària de DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS dipositarà automàticament els articles a DOAJ. Tingueu en compte que "
"aquest procés pot trigar una mica després de la publicació (p. ex., en "
"funció de la vostra configuració del cron). Podeu comprovar tots els "
"articles no registrats."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Utilitzeu la API de prova de DOAJ (entorn de prova) per al registre. No "
"oblideu desactivar aquesta opció en la versió de producció."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Tasca de registre automàtic de DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"El dipòsit no ha tingut èxit! La API de DOAJ ha informat d'un error: "
"'{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Ús:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,61 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2020-04-05 14:49+0000\n"
"Last-Translator: Hewa Salam Khalid <hewa.salam@koyauniversity.org>\n"
"Language-Team: Kurdish <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/ku/>\n"
"Language: ku_IQ\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "گرێدانی هەناردەی DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "هەناردەکردنی گۆڤار بۆ DOAJ"
msgid "plugins.importexport.doaj.export.contact"
msgstr "ناونیشانی پەیوەندیکردن بە DOAJ بەمەبەستی بونە ئەندام"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"ئەگەر دەتەوێت توێژینەوە تۆمار بکەیت لە چوارچێوەی سیستەمی گۆڤاری کراوە، تکایە "
"وشەی تێپەڕی DOAJ لێ بدە. دوای ئەوەش تۆ دەتوانیت کە فایلی شێوەی DOAJ XML "
"هەناردە بکەیت، بەڵام ناتوانیت گوتارەکانت لە DOAJ تۆمار بکەیت لە چوارچێوەی "
"سیستەمی گۆڤاری کراوەدا."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "وشەی تێپەڕی ڕوکاری DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "تۆ دەتوانیت وشەی تێپەڕی خۆت لە ئەژماری کەسی خۆت لە DOAJ بدۆزیتەوە."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"سیستەمی گۆڤاری کراوە توێژینەوەکان بە شێوەی تۆماتیکی بۆ DOAJ دەنێرێت. تکایە "
"ئاگاداری ئەوە بە کە ئەم پرۆسەیە هەندێک کاتی دەوێت لە دوای بڵاوکردنەوەوە "
"(گرێدراوی شێوازی ڕێکخستنەکانتە). تۆ دەتوانیت وردبینی لە هەمو توێژینەوە "
"تۆمارنەکراوەکاندا بکەیت."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"سیستەمی تاقیکردنەوەی ڕوکاری DOAJ بەکار بهێنە (تەنیا بۆ ئەزمونکردن) بۆ "
"تۆمارکردن. تکایە پێش بڵاوکردنەوە ئەم بژاردەیە لا ببە."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "ئەرکی تۆمارکردنی DOAJ بە شێوەی تۆماتیکی"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"کارەکەت سەرکەوتو نەبو! گەڕایتەوە ڕوکاری جێبەجێکردنی DOAJ هەڵەکە ئەمەیە: "
"'{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"شێوازی بەکارهێنان:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,63 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:39+00:00\n"
"PO-Revision-Date: 2020-04-08 11:27+0000\n"
"Last-Translator: Michal Jelínek <jelinek@synetix.cz>\n"
"Language-Team: Czech <http://translate.pkp.sfu.ca/projects/ojs/importexport-"
"doaj/cs/>\n"
"Language: cs_CZ\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Plugin exportu pro DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr ""
"Export časopisu pro DOAJ a odeslání emailu s informacemi o časopisu zástupci "
"DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Kontaktujte DOAJ pro vložení"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Chcete-li zaregistrovat články z OJS, zadejte prosím klíč DOAJ API. Jinak "
"budete i nadále moci exportovat do formátu DOAJ XML, ale nebudete moci "
"zaregistrovat své články s DOAJ z OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API klíč"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Klíč API naleznete na uživatelské stránce DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS automaticky uloží články do DOAJ. Vezměte prosím na vědomí, že to může "
"trvat krátkou dobu po zpracování publikace. Můžete si prohlédnout všechny "
"nezaregistrované články."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Pro registraci použijte testovací rozhraní API (testovací prostředí) DOAJ. "
"Nezapomeňte tuto možnost odstranit před produkční fází."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Automatická registrace DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Uložení nebylo úspěšné! DOAJ API vrátilo následující chybu: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Použití:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,62 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:39+00:00\n"
"PO-Revision-Date: 2020-02-08 03:27+0000\n"
"Last-Translator: Niels Erik Frederiksen <nef@kb.dk>\n"
"Language-Team: Danish <http://translate.pkp.sfu.ca/projects/ojs/importexport-"
"doaj/da/>\n"
"Language: da_DK\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ Eksport-plugin"
msgid "plugins.importexport.doaj.description"
msgstr "Eksportér tidsskrift til DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Kontakt DOAJ for at blive inkluderet"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Hvis du gerne vil registrere artikler direkte fra OJS, skal du indtaste din "
"DOAJ API-nøgle. Hvis ikke, kan du stadig eksportere til DOAJ XML-format, men "
"du vil ikke kunne registrere dine artikler hos DOAJ direkte fra OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API-nøgle"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Du finder din API-nøgle på din DOAJ-brugerside."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS vil automatisk deponere artikler hos DOAJ. Bemærk, at der, efter "
"publicering, kan gå lidt tid inden processen er fuldført. Du kan tjekke om "
"der skulle være artikler der er uregistrerede."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Brug DOAJ test-API (testmiljø) til registrering. Husk at fjerne denne "
"mulighed i forbindelse med produktionen."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ automatiske registreringsopgave"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Deponeringen kunne ikke gennemføres! DOAJ API returnerede en fejl: "
"'{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Brug:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,51 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:56:44-07:00\n"
"PO-Revision-Date: 2020-01-31 16:21+0000\n"
"Last-Translator: Heike Riegler <heike.riegler@julius-kuehn.de>\n"
"Language-Team: German <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/de/>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ-Export-Plugin"
msgid "plugins.importexport.doaj.description"
msgstr "Zeitschrift für DOAJ exportieren."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Kontaktieren Sie DOAJ zur Aufnahme"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr "Wenn Sie Artikel aus OJS heraus registrieren möchten, geben Sie bitte Ihren DOAJ-API-Key ein. Ansonsten können Sie immer noch Metadaten in das DOAJ-XML-Format exportieren, aber keine Artikel aus OJS bei DOAJ registrieren."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ-API-Key"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Sie finden Ihren API-Key auf Ihrer DOAJ-Nutzerseite."
msgid "plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr "OJS wird Artikel automatisch an DOAJ abliefern. Bitte beachten Sie, dass dieser Prozess eine gewisse Zeit nach der Veröffentlichung dauern kann (z.B. abhängig von Ihrer Cronjob-Konfiguration). Sie können nach allen unregistrierten Artikeln suchen."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr "Die DOAJ-Test-API (Testumgebung) für die Registrierung nutzen. Bitte vergessen Sie nicht, diese Option für den Produktivbetrieb wieder abzuwählen."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ automatische Registrierung"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Ablieferung war nicht erfolgreich! Die DOAJ-API hat einen Fehler zurückgemeldet: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Verwendung:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles objectId1 [objectId2] ...\n"
""
@@ -0,0 +1,8 @@
# Weblate Admin <alec@smecher.bc.ca>, 2023.
msgid ""
msgstr ""
"Language: dsb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Weblate\n"
@@ -0,0 +1,58 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:56:44-07:00\n"
"PO-Revision-Date: 2019-09-30T06:56:44-07:00\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ Export Plugin"
msgid "plugins.importexport.doaj.description"
msgstr "Export Journal for DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Contact DOAJ for inclusion"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"If you would like to register articles from within OJS, please enter your "
"DOAJ API Key. Else, you'll still be able to export into the DOAJ XML format "
"but you cannot register your articles with DOAJ from within OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API Key"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "You will find your API key on your DOAJ user page."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS will deposit articles automatically to DOAJ. Please note that this may "
"take a short amount of time after publication to process (e.g. depending on "
"your cronjob configuration). You can check for all unregistered articles."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Use the DOAJ test API (testing environment) for the registration. Please do "
"not forget to remove this option for the production."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ automatic registration task"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Deposit was not successful! The DOAJ API returned an error: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Usage:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,59 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:39+00:00\n"
"PO-Revision-Date: 2019-11-19T11:05:39+00:00\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Módulo de exportación DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Exportar la revista a DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Contactar con DOAJ para la inclusión"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Si desea registrar artículos desde el propio OJS, introduzca su clave API "
"DOAJ. Si no lo hace, todavía podrá exportarlos al formato DOAJ XML, pero no "
"podrá registrar los artículos con DOAJ desde OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Clave API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Encontrará su clave API en su página de usuario/a de DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS depositará los artículos automáticamente en DOAJ. Tenga en cuenta que "
"este proceso puede llevar cierto tiempo tras la publicación (p.ej. en "
"función de la configuración cron). Puede comprobar todos los artículos no "
"registrados."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Utilice la API de prueba de DOAJ (entorno de prueba) para el registro. No "
"olvide desactivar esta opción en la versión de producción."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Tarea de registro automático de DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"¡El depósito no tuvo éxito! La API DOAJ informó de un error: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Uso:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,51 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:39+00:00\n"
"PO-Revision-Date: 2019-11-19T11:05:39+00:00\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ esportatzeko plugina"
msgid "plugins.importexport.doaj.description"
msgstr ""
"Aldizkaria esportatu DOAJerako eta DOAJen ordezkariei aldizkariari buruzko "
"informazioa bidali posta elektronikoz."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Sartzeko, jarri harremanetan DOAJ-ekin."
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr ""
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
msgid "plugins.importexport.doaj.senderTask.name"
msgstr ""
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Usage:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,56 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:39+00:00\n"
"PO-Revision-Date: 2019-11-19T11:05:39+00:00\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "افزونه برون دهی DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "برون دهی اطلاعات مجله به DOAJ"
msgid "plugins.importexport.doaj.export.contact"
msgstr "برای استفاده از DOAJ با آن تماس بگیرید"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"اگر می خواهید مقالات را در DOAJ ثبت کنید، لطفا کلید API DOAJ خود را وارد "
"کنید. در غیر اینصورت، همچنان قادر به برون دهی به فرمت XML DOAJ هستید، اما "
"نمیتوانید مقالات خود را در DOAJ ثبت کنید"
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "کلید DOAJ API"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "کلید API خود را در صفحه کاربری DOAJ خواهید یافت."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"سامانه مقالات را به طور خودکار در DOAJ ثبت می کند. لطفا توجه داشته باشید که "
"ممکن است پس از انتشار ، زمان کوتاهی برای پردازش طی شود. شما می توانید تمام "
"مقالات ثبت نشده را تیک بزنید."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"از API تست DOAJ (محیط آزمایش) برای ثبت استفاده کنید. لطفا فراموش نکنید که "
"این گزینه را در زمان انتشار محتویات حذف کنید."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "عملیات ثبت خودکار DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "ثبت موفقیت آمیز نبود. اجرای API با خطای زیر متوقف شد: {$param}"
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"نحوه استفاده: {$scriptName} {$pluginName} export [xmlFileName] "
"[journal_path] articles objectId1 [objectId2] ..."
@@ -0,0 +1,60 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:39+00:00\n"
"PO-Revision-Date: 2020-03-18 07:36+0000\n"
"Last-Translator: Antti-Jussi Nygård <ajnyga@gmail.com>\n"
"Language-Team: Finnish <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/fi/>\n"
"Language: fi_FI\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ-vientilisäosa"
msgid "plugins.importexport.doaj.description"
msgstr "Vie julkaisu DOAJ-tietokantaan."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Muodosta yhteys DOAJ:iin sisällyttämistä varten"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Jos haluat rekisteröidä artikkeleita OJS-järjestelmästä käsin, anna DOAJ API-"
"avain. Ilman avainta voit edelleen ladata tiedot XML-muodossa ja viedä ne "
"vierailemalla DOAJ:n verkkopalvelussa."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API-avain"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "API-avain löytyy DOAJ:n verkkopalvelusta."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS tallentaa artikkelien tiedot automaattisesti DOAJ-tietokantaan. Huomaa, "
"että artikkelin julkaisun jälkeen tietojen viennissä on pieni viive. Voit "
"tarkistaa listauksesta mitkä artikkelit ovat rekisteröimättä."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Käytä DOAJ-palvelun testirajapintaa. Poista tämä valinta, kun haluat "
"aloittaa artikkeleiden rekisteröinnin."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ automaattisen rekisteröinnin tehtävä"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Talletus ei onnistunut! DOAJ API palautti virheen: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Käyttö:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,66 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:56:44-07:00\n"
"PO-Revision-Date: 2020-01-28 23:48+0000\n"
"Last-Translator: Marie-Hélène Vézina [UdeMontréal] <marie-helene."
"vezina@umontreal.ca>\n"
"Language-Team: French (Canada) <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/fr_CA/>\n"
"Language: fr_CA\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Plugiciel d'exportation DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Exporter la revue vers DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Communiquer avec DOAJ pour intégration"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Si vous souhaitez enregistrer des articles à partir d'OJS, veuillez entrer "
"votre clé API DOAJ. Sinon, vous pourrez toujours exporter en format XML "
"DOAJ, mais vous ne pourrez pas enregistrer vos articles avec DOAJ depuis OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Clé API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr ""
"Vous trouverez votre clé API sur votre page d'utilisateur-trice du site de "
"DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS déposera les articles automatiquement chez DOAJ. Veuillez noter que cela "
"peut prendre un peu de temps suite à la publication pour le traitement (par "
"exemple en fonction de votre configuration cronjob). Vous pouvez vérifier "
"les articles non enregistrés."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Utiliser l'API test DOAJ (environnement de test) pour l'enregistrement. "
"N'oubliez pas d'enlever cette option en mode production."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Tâche d'enregistrement automatique DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Le dépôt a échoué ! L'API DOAJ a retourné le message d'erreur suivant : "
"'{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Utilisation :\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,61 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2020-08-31 02:16+0000\n"
"Last-Translator: Paul Heckler <paul.d.heckler@gmail.com>\n"
"Language-Team: French <http://translate.pkp.sfu.ca/projects/ojs/importexport-"
"doaj/fr/>\n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Module d'exportation DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Exporter la revue pour DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Contacter DOAJ pour inclusion"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Si vous souhaitez enregistrer des articles depuis OJS, veuillez entrer votre "
"clé API DOAJ. À défaut, vous pourrez toujours exporter au format XML DOAJ, "
"mais vous ne pourrez pas enregistrer vos articles avec DOAJ depuis OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Clé API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr ""
"Vous trouverez votre clé API sur votre page d'utilisateur ou d'utilisatrice "
"de DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS déposera les articles automatiquement auprès de DOAJ. Veuillez noter que "
"le traitement peut prendre un peu de temps suite à la publication (par "
"exemple en fonction de votre configuration cronjob). Vous pouvez vérifier "
"l'ensemble des articles non enregistrés."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Utiliser l'API de test DOAJ (environnement de test) pour l'enregistrement. "
"N'oubliez pas de désactiver cette option en mode production."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Tâche d'enregistrement automatique DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Le dépôt a échoué ! l'API DOAJ a retourné l'erreur suivante : '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Utilisation :\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,59 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-05-20 12:35+0000\n"
"Last-Translator: Real Academia Galega <reacagal@gmail.com>\n"
"Language-Team: Galician <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/gl_ES/>\n"
"Language: gl_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Complemento de exportación DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr ""
"Exporta a revista ao DOAJ e envía información acerca dela ao representante "
"do DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Contacta con DOAJ para inclusión"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Se quere rexistrar artigos desde o propio OJS, introduza a súa clave API "
"DOAJ. De non facelo, aínda poderá exportalos ao formato DOAJ XML, pero non "
"poderá rexistrar os artigos con DOAJ desde OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Clave API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Atopará a clave API na súa páxina de usuario/a de DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS depositará os artigos automaticamente en DOAJ. Teña en conta que este "
"proceso pode demorarse algún tempo tras a publicación (p.ex. en función da "
"súa configuración cron). Pode comprobar todos os artigos non rexistrados."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Utilice a API de proba de DOAJ (ambiente de proba) para o rexistro. Non se "
"esqueza de desactivar esta opción na versión de produción."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Tarefa de rexistro automático de DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "O depósito non tivo éxito! A API DOAJ informou dun erro: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Uso:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,51 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:39+00:00\n"
"PO-Revision-Date: 2019-11-19T11:05:39+00:00\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Dodatak za iznošenje u DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr ""
"Ovaj dodatak iznosi časopis za DOAJ i omogućuje slanje informacija o "
"časopisu DOAJ kontaktu"
msgid "plugins.importexport.doaj.export.contact"
msgstr ""
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr ""
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
msgid "plugins.importexport.doaj.senderTask.name"
msgstr ""
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Primjena:\n"
"{$scriptName} {$pluginName} export [xmlNazivDatoteke] [putanja_časopisa] "
"articles objectId1 [objectId2] ...\n"
@@ -0,0 +1,8 @@
# Weblate Admin <alec@smecher.bc.ca>, 2023.
msgid ""
msgstr ""
"Language: hsb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Weblate\n"
@@ -0,0 +1,53 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-13T21:07:39+00:00\n"
"PO-Revision-Date: 2020-02-21 11:36+0000\n"
"Last-Translator: Gabor Klinger <ojshelp@konyvtar.mta.hu>\n"
"Language-Team: Hungarian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/hu/>\n"
"Language: hu_HU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ Export Plugin"
msgid "plugins.importexport.doaj.description"
msgstr "Folyóirat exportálása DOAJ-ba."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Lépjen kapcsolatba a DOAJ a bekerülés érdekében"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr "Ha cikkeket szeretne regisztrálni a OJS-en belülről, kérjük, írja be a DOAJ API kulcsát. Egyébként Ön továbbra is képes lesz exportálni a DOAJ XML formátumba, de nem tud regisztrálni cikkeket a DOAJ-ba az OJS-en belülről."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API Kulcs"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Az API kulcsát a saját DOAJ felhasználói oldalán találja."
msgid "plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr "Az OJS automatikusan betölti a cikkeket a DOAJ-ba. Felhívjuk figyelmét, hogy a közzététel után a feldolgozáshoz rövid idő szükséges. Ellenőrizheti az összes nem regisztrált cikket."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Használja a DOAJ teszt API-t (teszt környezet) a regisztrációhoz. Kérjük, ne "
"felejtse el eltávolítani ezt az opciót megjelentetéskor."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ automatikus regisztrációs feladat"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "A beküldés nem volt sikeres! A DOAJ API hibát adott vissza: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Használat:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles objectId1 [objectId2] ...\n"
""
@@ -0,0 +1,60 @@
# Artashes Mirzoyan <amirzoyan@sci.am>, 2022.
# Tigran Zargaryan <tigran@flib.sci.am>, 2022.
msgid ""
msgstr ""
"PO-Revision-Date: 2022-07-01 06:26+0000\n"
"Last-Translator: Tigran Zargaryan <tigran@flib.sci.am>\n"
"Language-Team: Armenian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/hy_AM/>\n"
"Language: hy_AM\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ արտահանման պլագին"
msgid "plugins.importexport.doaj.description"
msgstr "Արտահանեք ամսագրերը DOAJ-ի համար."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Ներառման համար դիմեք DOAJ-ին"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Եթե ցանկանում եք հոդվածներ գրանցել OJS-ից, խնդրում ենք մուտքագրել ձեր DOAJ "
"API բանալին: Հակառակ դեպքում, դուք դեռ կկարողանաք արտահանել DOAJ XML "
"ձևաչափով, բայց դուք չեք կարող գրանցել ձեր հոդվածները DOAJ-ում OJS-ից:"
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API բանալի"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Դուք կգտնեք ձեր API բանալին ձեր DOAJ օգտվողի էջում:"
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS-ը հոդվածները ինքնաշխատ կերպով կավանդադրի DOAJ-ին: Խնդրում ենք նկատի "
"ունենալ, որ դրա մշակումը հրապարակումից հետո կարող է կարճ ժամանակ տևել "
"(օրինակ՝ կախված ձեր cronjob-ի կազմաձևից): Դուք կարող եք ստուգել բոլոր "
"չգրանցված հոդվածները:"
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Գրանցման համար օգտագործեք DOAJ թեստային API (փորձարկման միջավայր): Խնդրում "
"ենք մի մոռացեք հեռացնել այս տարբերակը արտադրության դեպքում:"
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ ինքնաշխատ գրանցման առաջադրանք"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Ավանդադրումը չի հաջողվել: DOAJ API-ն վերադարձրեց սխալ՝ {$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Օգտագործումը:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,63 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:40+00:00\n"
"PO-Revision-Date: 2020-01-30 08:35+0000\n"
"Last-Translator: Fransisca H <sisca.ojs@gmail.com>\n"
"Language-Team: Indonesian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/id/>\n"
"Language: id_ID\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Plugin Ekspor DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Ekspor Jurnal untuk DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Kontak DOAJ untuk pencantuman"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Jika Anda ingin mendaftarkan artikel melalui aplikasi OJS, mohon masukkan "
"kunci API DOAJ Anda. Jika tidak dimasukkan, Anda akan tetap dapat mengekspor "
"artikel ke dalam format XML yang digunakan DOAJ namun Anda tidak dapat "
"mendaftarkan artikel secara otomatis melalui aplikasi OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Kunci API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Anda akan menemukan kunci API Anda di halaman pengguna DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS akan mendepositokan artikel secara otomatis ke DOAJ. Mohon dicatat bahwa "
"hal ini mungkin membutuhkan sedikit waktu proses (misal, bergantung pada "
"konfigurasi cronjob Anda). Anda dapat melakukan pemeriksaan untuk semua "
"artikel yang belum didaftarkan."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Gunakan API ujicoba DOAJ (dalam lingkungan ujicoba) untuk pendaftaran. Mohon "
"tidak lupa untuk membuang pilihan ini pada sistem produksi."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Tugas registrasi otomatis DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Registrasi tidak berhasil! API DOAJ memberikan pesan kesalahan: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Kegunaan:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,42 @@
# Kolbrun Reynisdottir <kolla@probus.is>, 2022.
msgid ""
msgstr ""
"Language: is_IS\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Weblate\n"
msgid "plugins.importexport.doaj.displayName"
msgstr ""
msgid "plugins.importexport.doaj.description"
msgstr ""
msgid "plugins.importexport.doaj.export.contact"
msgstr ""
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr ""
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
msgid "plugins.importexport.doaj.senderTask.name"
msgstr ""
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
@@ -0,0 +1,63 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:40+00:00\n"
"PO-Revision-Date: 2019-12-28 17:34+0000\n"
"Last-Translator: Lucia Steele <lucia.steele@aboutscience.eu>\n"
"Language-Team: Italian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/it/>\n"
"Language: it_IT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Export per DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr ""
"Esporta i metadati degli articoli e della rivista per DOAJ e invia una email "
"di informazioni sulla rivista a DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Suggerisci la rivista a DOAJ"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Se vuoi registrare gli articoli da OJS, inserisci la tua DOAJ API key. "
"Altrimenti puoi sempre esportare i dati nel formato DOAJ XML, ma allora non "
"potrai registrare i dati in DOAJ direttamente con OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API Key"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Trovi la tua API key dentro la tua pagina utente di DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS depositerà in automatico gli articoli in DOAJ. Per favore nota che ci "
"vuole un certo tempo dalla pubblicazione per lavorare la registrazione. Puoi "
"controllare tutti gli articoli non registrati."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Usa l'API di test di DOAJ per le registrazioni. Non ti dimenticare di "
"rimuovere questa opzione prima di andare in produzione."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Nome del task di registrazione automatica su DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Il deposito non è andato bene, L'API DOAJ ha dato come errore: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Uso:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,57 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-02-07 10:53+0000\n"
"Last-Translator: Dimitri Gogelia <dimitri.gogelia@iliauni.edu.ge>\n"
"Language-Team: Georgian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/ka_GE/>\n"
"Language: ka_GE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "მოდული „ექსპორტი DOAJ-ში“"
msgid "plugins.importexport.doaj.description"
msgstr "ახდენს ჟურნალის ექსპორტს DOAJ-ში."
msgid "plugins.importexport.doaj.export.contact"
msgstr "DOAJ-თან დაკავშირება ჟურნალის დასამატებლად"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"თუ გსურთ სტატიის რეგისტრაცია უშუალოდ OJS-იდან, გთხოვთ შეიტანეთ API DOAJ "
"გასაღები. თუ არ გაქვთ ეს გასაღები, მაინც შეძლებთ სტატიის ექსპორტს DOAJ XML-"
"ში, მაგრამ ვერ შეძლებთ სტატიის რეგისტრაციას DOAJ-ში უშუალოდ OJS-იდან."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API გასაღები"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "API გასაღებს ნახავთ DOAJ-ის მომხმარებლის გვერდზე."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS ავტომატურად განათავსებს სტატიას DOAJ-ში. გთხოვთ მიაქციოთ ყურადღება, რომ "
"ამას შესაძლოა დასჭირდეს გარკვეული დრო დამუშავებაზე (მაგალითად, თქვენი cron-"
"ის პარამეტრებზე). თქვენ შეგიძლიათ შეამოწმოთ ყველა დაურეგისტრირებელი სტატია."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"ტექსტური API DOAJ-ის გამოყენება (ტესტირების გარემო) რეგისტრაციისათვის. "
"გთხოვთ, არ დაგავიწყდეთ ამ პარამეტრის გათიშვა რეალური მუშაობისას."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ-ის ავტომატური რეგისტრაციის ამოცანა"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "განტავსება ვერ მოხერხდა! API DOAJ-მა დააბრუნა შეცდომა: „{$param}“."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"გამოძახება:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,60 @@
# Madi <nmdbzk@gmail.com>, 2021.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-07-14 06:03+0000\n"
"Last-Translator: Madi <nmdbzk@gmail.com>\n"
"Language-Team: Kazakh <http://translate.pkp.sfu.ca/projects/ojs/importexport-"
"doaj/kk_KZ/>\n"
"Language: kk_KZ\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "\"Doaj экспорттау\" модулі"
msgid "plugins.importexport.doaj.description"
msgstr "DOAJ жүйесіне журналды экспорттайды."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Журналды қосу үшін DOAJ-бен хабарласыңыз"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Егер сіз мақалаларды тікелей OJS-тен тіркегіңіз келсе, DOAJ API кілтін "
"енгізіңіз. Сізде DOAJ API кілті болмаған жағдайда да DOC XML форматына "
"экспорттай аласыз, бірақ мақалаларыңызды OJS-тен DOAJ-бен тікелей тіркей "
"алмайсыз."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API кілті"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Сіз API кілтін DOAJ сайтындағы қолданушы парағынан таба аласыз."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS мақалаларды DOAJ-ке автоматты түрде сақтайды. Бұл өңдеуден белгілі бір "
"уақытты қажет етуі мүмкін екенін ескеріңіз (мысалы, cronjob параметрлеріне "
"байланысты). Сіз барлық тіркелмеген мақалаларды тексере аласыз."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Тіркелу үшін DOAJ тест API (тестілеу ортасы) пайдаланыңыз. Нақты жұмыс үшін "
"осы параметрді алып тастауды ұмытпаңыз."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ автоматты тіркеу"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Депозит сәтсіз аяқталды! DOAJ API келесі қате кодын қайтарды: \"{$param}\"."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Қолдану реті:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,60 @@
# Ieva Tiltina <pastala@gmail.com>, 2024.
msgid ""
msgstr ""
"PO-Revision-Date: 2024-02-19 11:07+0000\n"
"Last-Translator: Ieva Tiltina <pastala@gmail.com>\n"
"Language-Team: Latvian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/lv/>\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= "
"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n"
"X-Generator: Weblate 4.18.2\n"
msgid "plugins.importexport.doaj.description"
msgstr "Eksportēt žurnālu DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Sazināties ar DOAJ par iekļaušanu"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Ja vēlaties reģistrēt rakstus no OJS, lūdzu, ievadiet savu DOAJ API atslēgu. "
"Pretējā gadījumā jūs joprojām varēsiet eksportēt DOAJ XML formātā, bet jūs "
"nevarēsiet reģistrēt savus rakstus DOAJ no OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API atslēga"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "API atslēgu atradīsiet savā DOAJ lietotāja lapā."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS automātiski nodos rakstus DOAJ. Lūdzu, ņemiet vērā, ka pēc publicēšanas "
"šī apstrāde var aizņemt neilgu laiku (piemēram, atkarībā no jūsu cronjob "
"konfigurācijas). Jūs varat pārbaudīt, vai ir reģistrēti visi nereģistrētie "
"raksti."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Reģistrācijas veikšanai izmantojiet DOAJ testa API (testēšanas vidi). Lūdzu, "
"neaizmirstiet atcelt šo opciju produkcijai."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ automātiskās reģistrācijas uzdevums"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Noguldījums neizdevās! DOAJ API atgrieza kļūdu: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Izmantošana:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ eksportēšanas spraudnis"
@@ -0,0 +1,59 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-01-09 09:52+0000\n"
"Last-Translator: Teodora Fildishevska <t.fildishevska@gmail.com>\n"
"Language-Team: Macedonian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/mk_MK/>\n"
"Language: mk_MK\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n==1 || n%10==1 ? 0 : 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Плагин за експортирање на DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Експортирај списание за DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Контактирајте го DOAJ за вклучување"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Доколку би сакале да регистрирате трудови преку OJS, ве молиме да го внесете "
"вашиот DOAJ API клуч. Инаку, се уште ќе можете да експортирате во DOAJ XML "
"форматот но нема да можете да ги регистрирате вашите трудови преку OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API клуч"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr ""
"Можете да го најдете вашиот API клуч на вашата корисничка страница на DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS автоматски ќе депонира трудови до DOAJ. Ве молиме имајте во предвид дека "
"ќе биде потребно малку време после објавување ова да се процесира (пр. "
"зависно од вашата cronjob конфигурација). Можете да ги проверите сите "
"нерегистрирани трудови."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Користете го DOAJ API за тестирање (околина за тестирање) за регистрацијата. "
"Ве молиме не заборавајте да ја извадите оваа опција за продукција."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ задача за автоматска регистрација"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Депозитот не беше успешен! DOAJ API пријави грешка: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Начин на користење:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,60 @@
# Muhd Muaz <muazhero61@yahoo.com>, 2021.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-10-19 09:30+0000\n"
"Last-Translator: Muhd Muaz <muazhero61@yahoo.com>\n"
"Language-Team: Malay <http://translate.pkp.sfu.ca/projects/ojs/importexport-"
"doaj/ms/>\n"
"Language: ms\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Plugin Eksport DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Eksport Jurnal untuk DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Hubungi DOAJ untuk kemasukan"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Sekiranya anda ingin mendaftarkan artikel dari dalam OJS, sila masukkan "
"Kunci API DOAJ anda. Jika tidak, anda masih dapat mengeksport ke format DOAJ "
"XML tetapi anda tidak dapat mendaftarkan artikel anda dengan DOAJ dari dalam "
"OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Kunci API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Anda akan menemui kunci API anda di halaman pengguna DOAJ anda."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS akan mendepositkan artikel secara automatik ke DOAJ. Harap maklum bahawa "
"proses ini mungkin memerlukan sedikit masa selepas penerbitan (mis. "
"Bergantung pada konfigurasi cronjob anda). Anda boleh menyemak semua artikel "
"yang tidak berdaftar."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Gunakan API ujian DOAJ (persekitaran ujian) untuk pendaftaran. Jangan lupa "
"untuk membuang pilihan ini untuk produksi."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Tugasan pendaftaran automatik DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Deposit tidak berjaya! API DOAJ mengembalikan ralat: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Penggunaan:\n"
"{$scriptName} {$pluginName} eksport [xmlFileName] [journal_path] artikel "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,59 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-20T15:57:55+00:00\n"
"PO-Revision-Date: 2020-10-19 15:22+0000\n"
"Last-Translator: Eirik Hanssen <eirikh@oslomet.no>\n"
"Language-Team: Norwegian Bokmål <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/nb_NO/>\n"
"Language: nb_NO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Programtillegg for DOAJ eksport"
msgid "plugins.importexport.doaj.description"
msgstr "Eksporter tidsskrift til DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Kontakt DOAJ for å inkludere tidsskriftet ditt i systemet"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Hvis du vil registrere artiklene fra OJS, legg inn DOAJ API-nøkkelen din. "
"Dersom du ikke gjør det, vil du fremdeles kunne eksportere til DOAJ XML-"
"format, men du kan ikke registrere artiklene dine hos DOAJ fra OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API-nøkkel"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Du finner API-nøkkelen din på siden din hos DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS vil sende artikler automatisk til DOAJ. Dette kan ta tid å behandle. Du "
"kan se etter uregistrerte artikler."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Bruk DOAJ test API for registreringen. Husk å fjerne denne valgmuligheten "
"for produksjonsfasen."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJs automatiske registrering"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Oversendingen mislyktes. DOAJ API returnerte feilen: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Usage:\n"
"{$scriptName} {$pluginName} eksport [xmlFileName] [journal_path] artikler "
"objektId1 [objektId2] ...\n"
@@ -0,0 +1,51 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:40+00:00\n"
"PO-Revision-Date: 2020-10-22 11:46+0000\n"
"Last-Translator: Hans Spijker <hans.spijker@huygens.knaw.nl>\n"
"Language-Team: Dutch <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/nl/>\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ Export Plugin"
msgid "plugins.importexport.doaj.description"
msgstr "Exporteer het tijdschrift voor DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Neem contact op met de DOAJ voor opname"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr "Registreer uw DOAJ API sleutel om artikels te registreren via OJS. Zoniet kan u nog steeds exporteren naar het DOAJ XML formaat, maar kan u de DOI's niet via OJS registreren bij DOAJ."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API sleutel"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "U vindt uw API sleutel op uw DOAJ gebruikerspagina."
msgid "plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr "OJS zal artikels na publicatie automatisch deponeren bij DOAJ. Dit kan even duren (bv. afhankelijk van uw cronjob instellingen). U kan alle ongeregistreerde artikels bekijken."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr "Gebruik de DOAJ test API (testomgeving) voor de registratie. Vergeet deze test-optie niet te verwijderen voor de uiteindelijke publicatie."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Automatische registratie bij DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Deposit is niet geslaagd! De DOAJ API meldde een fout: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Gebruik:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles objectId1 [objectId2] ...\n"
""
@@ -0,0 +1,77 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:40+00:00\n"
"PO-Revision-Date: 2020-12-01 11:48+0000\n"
"Last-Translator: rl <biuro@fimagis.pl>\n"
"Language-Team: Polish <http://translate.pkp.sfu.ca/projects/ojs/importexport-"
"doaj/pl_PL/>\n"
"Language: pl_PL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Wtyczka eksportu DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Eksportuj czasopismo do DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Skontaktuj się z DOAJ, aby włączyć czasopismo do bazy"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Jeśli chciałbyś(abyś) zarejestrować artykuły z OJS, włącz swój klucz API "
"DOAJ. Możesz też również eksportować metadane do pliku DOAJ XML, ale nie "
"możesz takiego pliku wysłać do DOAJ z OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Klucz API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Klucz API znajdziesz na stronie użytkownika w DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS zdeponuje automatycznie artykuły w DOAJ. Zauważ, że zadanie to będzie "
"realizowane zaraz po publikacji. Upewnij się, że dane zostały automatycznie "
"przesłane."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Wykorzystaj test API DOAJ (środowisko testowe) do rejestracji. Nie zapomnij "
"usunąć tej opcji przed produkcją."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Zadanie automatycznej rejestracji DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Zdeponowanie nie ukończyło się sukcesem. API DOAJ zwróciło błąd: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Użycie:\n"
" {$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
#~ msgid "plugins.importexport.doaj.markRegistered.success"
#~ msgstr "Wybrane elementy zostały zaznaczone jako zarejestrowane!"
#~ msgid "plugins.importexport.doaj.export.issue"
#~ msgstr "Eksportuj numery"
#~ msgid "plugins.importexport.doaj.export.issueInfo"
#~ msgstr "Eksportuj numery w formacie XML"
#~ msgid "plugins.importexport.doaj.export.article"
#~ msgstr "Eksportuj artykuły"
#~ msgid "plugins.importexport.doaj.export.articleInfo"
#~ msgstr "Eksportuj wybrane artykuły w XML"
@@ -0,0 +1,64 @@
# Diego José Macêdo <diegojmacedo@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T11:58:34-07:00\n"
"PO-Revision-Date: 2022-10-19 20:01+0000\n"
"Last-Translator: Diego José Macêdo <diegojmacedo@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/pt_BR/>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Exportação para DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr ""
"Exportar revista para o DOAJ, incluindo dados da revista para inclusão."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Solicitar inclusão ao DOAJ"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Se você deseja registrar artigos a partir do OJS, insira sua chave API do "
"DOAJ. Caso contrário, você poderá exportar para o formato XML do DOAJ, mas "
"não poderá registrar seus artigos no DOAJ a partir do OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Chave API do DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Você encontrará sua chave API na sua página de usuário no DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"O OJS depositará artigos automaticamente no DOAJ. Observe que isso pode "
"levar um curto período de tempo após a publicação para processar (por "
"exemplo, dependendo da sua configuração do cronjob). Você pode verificar "
"todos os artigos não registrados."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Use a API de teste do DOAJ (do ambiente de teste) para o registro. Por "
"favor, não se esqueça de remover esta opção para a produção."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Tarefa de registro automático do DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"O depósito não foi bem sucedido! A API do DOAJ retornou um erro: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Uso:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,62 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:40+00:00\n"
"PO-Revision-Date: 2020-06-09 19:36+0000\n"
"Last-Translator: Carla Marques <carla.marques@sdum.uminho.pt>\n"
"Language-Team: Portuguese (Portugal) <http://translate.pkp.sfu.ca/projects/"
"ojs/importexport-doaj/pt_PT/>\n"
"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Plugin de Exportação DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Exportar a revista para o DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Contactar DOAJ para inclusão"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Se pretender registar artigos através do OJS, insira a sua chave de API "
"DOAJ. Caso contrário, poderá exportar para o formato DOAJ XML, mas não pode "
"registar os artigos no DOAJ através do OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Chave API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Encontrará a chave de API na área de utilizadores do DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"O OJS depositará artigos automaticamente no DOAJ. Por favor, note que esta "
"ação pode demorar a ser processada. Pode verificar todos os artigos não "
"registados."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Use a API de teste DOAJ (ambiente de teste) para o registo. Não se esqueça "
"de remover esta opção para produção."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Tarefa de registo automático no DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"O depósito não foi concluído com sucesso! A API DOAJ devolveu um erro: "
"'{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Modo de Utilização:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,59 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2020-10-17 14:39+0000\n"
"Last-Translator: Mihai-Leonard Duduman <mduduman@gmail.com>\n"
"Language-Team: Romanian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/ro/>\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Plugin export DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Exportă revista pentru DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Contactați DOAJ pentru includere"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Dacă doriți să înregistrați articole din OJS, vă rugăm să introduceți cheia "
"API DOAJ. Altfel, veți putea exporta în continuare în formatul DOAJ XML, dar "
"nu vă puteți înregistra articolele cu DOAJ din OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Cheie API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Veți găsi cheia API pe pagina dvs. de utilizator DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS va depune articole automat la DOAJ. Vă rugăm să rețineți că procesarea "
"poate dura puțin timp după publicare (de exemplu, în funcție de configurația "
"dvs. cronjob). Puteți verifica dacă există articole neînregistrate."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Utilizați API-ul de testare DOAJ (mediul de testare) pentru înregistrare. Vă "
"rugăm să nu uitați să eliminați această opțiune pentru producție."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Sarcină de înregistrare automată DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Depunerea nu a avut succes! API-ul DOAJ a returnat o eroare: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Utilizare:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,53 @@
# Pavel Pisklakov <ppv1979@mail.ru>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:40+00:00\n"
"PO-Revision-Date: 2022-11-04 15:02+0000\n"
"Last-Translator: Pavel Pisklakov <ppv1979@mail.ru>\n"
"Language-Team: Russian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/ru_RU/>\n"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Модуль «Экспорт в DOAJ»"
msgid "plugins.importexport.doaj.description"
msgstr "Экспортирует журнал для DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Связаться с DOAJ для добавления журнала"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr "Если вы хотите зарегистрировать статьи прямо из OJS, пожалуйста, введите ваш ключ API DOAJ. Если у вас нет ключа API DOAJ, вы все равно сможете экспортировать в формат DOAJ XML, но не сможете зарегистрировать ваши статьи с DOAJ напрямую из OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Ключ API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Вы найдете ключ API на своей странице пользователя DOAJ."
msgid "plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr "OJS будет автоматически депонировать статьи в DOAJ. Обратите внимание, что это может потребовать небольшого количества времени после публикации для обработки (например, в зависимости от настроек вашего cron). Вы можете проверить все незарегистрированные статьи."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr "Использовать тестовый API DOAJ (среда тестирования) для регистрации. Пожалуйста, не забудьте убрать этот параметр для реальной работы."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Задача автоматической регистрации DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Депонирование не удалось! API DOAJ вернул ошибку : «{$param}»."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Вызов:\n"
"{$scriptName} {$pluginName} export [ИмяФайлаXML] [путь_журнала] articles IdОбъекта1 [IdОбъекта2] ...\n"
""
@@ -0,0 +1,60 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2020-11-13 10:04+0000\n"
"Last-Translator: Tomáš Blaho <tomas.blaho@umb.sk>\n"
"Language-Team: Slovak <http://translate.pkp.sfu.ca/projects/ojs/importexport-"
"doaj/sk_SK/>\n"
"Language: sk_SK\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Plugin exportu pre DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr ""
"Export časopisu pre DOAJ a odoslanie emailu s informáciami o časopise "
"zástupcovi DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Kontaktujte DOAJ pre vloženie"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Ak chcete zaregistrovať články z OJS, zadajte prosím kľúč DOAJ API. Inak "
"budete aj naďalej môcť exportovať do formátu DOAJ XML, ale nebudete môcť "
"zaregistrovať svoje články s DOAJ z OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API kľúč"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Kľúč API nájdete na užívateľskej stránke DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS automaticky uloží články do DOAJ. Upozorňujeme, že to môže trvať krátku "
"dobu po spracovaní publikácie. Môžete si prezrieť všetky nezaregistrované "
"články."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Pre registráciu použite testovacie rozhrania API (testovacie prostredie) "
"DOAJ. Nezabudnite túto možnosť odstrániť pred produkčnou fázou."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Automatická registrácia DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Uloženie nebolo úspešné! DOAJ API vrátilo nasledujúce chybu: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Použitie:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,54 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:40+00:00\n"
"PO-Revision-Date: 2020-01-15 02:09+0000\n"
"Last-Translator: Primož Svetek <primoz.svetek@gmail.com>\n"
"Language-Team: Slovenian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/sl/>\n"
"Language: sl_SI\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
"n%100==4 ? 2 : 3;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Vtičnik za DOAJ izvoz"
msgid "plugins.importexport.doaj.description"
msgstr "Izvozi revijo za DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Kontaktirajte DOAJ za vključitev"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr "Če bi želeli registrirati prispevke direktno iz OJS, prosimo vnesite vaš DOAJ API ključ. Če nimate svojega DOAJ API ključa, lahko še vedno izvozite podatke v DOAJ XML obliki, ampak ne morete registrirati DOI-jev pri DOAJ direktno iz OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API ključ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Svoj DAOJ API ključ lahko najdete na vaši DOAJ uporabniški strani."
msgid "plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr "OJS bo avtomatsko opravil depozit prispevkov na DOAJ. Prosimo upoštevajte, da je za to lahko potrebno nekaj časa po tistem, ko objavite novo številko. Lahko preverite vse nedeponirane prispevke."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Uporabi DOAJ test API (testno okolje) za registracijo. Ne pozabite "
"odstraniti te možnosti za produkcijo."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Opravilo avtomatske registracije pri DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Depozit ni bil uspešen! DOAJ API je vrnil napako: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Uporaba:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles objectId1 [objectId2] ...\n"
""
@@ -0,0 +1,47 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:40+00:00\n"
"PO-Revision-Date: 2019-11-19T11:05:40+00:00\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ dodatak za izvoz"
msgid "plugins.importexport.doaj.description"
msgstr ""
"Izvoz časopisa za DOAJ i obezbeđivanje informacija o časopisu za uključivanje"
msgid "plugins.importexport.doaj.export.contact"
msgstr "Kontaktiraj DOAJ za uključivanje"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr ""
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
msgid "plugins.importexport.doaj.senderTask.name"
msgstr ""
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
@@ -0,0 +1,58 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:40+00:00\n"
"PO-Revision-Date: 2019-11-19T11:05:40+00:00\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ exportplugin"
msgid "plugins.importexport.doaj.description"
msgstr "Exportera tidskrift för DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Kontakta DOAJ för inkludering"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Om du vill registrera artiklar inifrån OJS, fyll i din DOAJ API-nyckel. Om "
"inte kan du fortfarande exportera till DOAJ XML-format, men inte registrera "
"dina artiklar hos DOAJ inifrån OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API-nyckel"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Du hittar din API-nyckel på din DOAJ-sida."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS kommer att lägga in artiklar i DOAJ automatiskt. Notera att processen "
"kan ta en kort stund att efter publicering. Du kan söka efter alla "
"oregistrerade artiklar."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Använd DOAJ:s test-API (testmiljö) för registreringen. Glöm inte att ta bort "
"detta alternativ innan produktion."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Automatisk registrering hos DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Registreringen slutfördes inte! DOAJ:s API gav ett felmeddelande: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Användning:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,62 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:41+00:00\n"
"PO-Revision-Date: 2020-02-04 22:59+0000\n"
"Last-Translator: Osman Durmaz <osmandurmaz@hotmail.de>\n"
"Language-Team: Turkish <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/tr/>\n"
"Language: tr_TR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ Aktarma Eklentisi"
msgid "plugins.importexport.doaj.description"
msgstr "Dergiyi DOAJ için dışa aktar."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Katılım için DOAJ ile iletişime geç"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Eğer makaleleri OJS içinden doğrudan kaydetmek istiyorsanız, lütfen DOAJ "
"API Anahtarınızı girin. API anahtarınız yoksa, verileri DOAJ XML formatında "
"dışa aktarabilirsiniz; ancak makalelerinizi DOAJ'a OJS içinden "
"kaydedemezsiniz."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API Anahtarı"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "API anahtarınızı DOAJ kullanıcı sayfasında bulabilirsiniz."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS, makaleleri DOAJ'a otomatik olarak kaydedecektir. Lütfen bu işlemin "
"yayınlanma işleminden sonra belli bir süre alabileceğini unutmayın (ör. "
"zamanlanmış işlemler ayarlarınıza bağlı gecikmeler). Kaydedilmemiş bütün "
"makaleleri kontrol edebilirsiniz."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Kayıt için DOAJ test API'sini (test ortamı) kullan. Lütfen makalelerinizin "
"yayınlanması için bu seçeneği kaldırmayı unutmayın."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ otomatik kayıt görevi"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Kayıt başarısız oldu! DOAJ API bir hata verdi: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Kullanım:\n"
"{$scriptName} {$pluginName} aktar [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,53 @@
# Petro Bilous <petrobilous@ukr.net>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:41+00:00\n"
"PO-Revision-Date: 2023-04-29 14:49+0000\n"
"Last-Translator: Petro Bilous <petrobilous@ukr.net>\n"
"Language-Team: Ukrainian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/uk/>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Плагін експорту DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Експортувати журнал у DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Контактувати з DOAJ щодо включення"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr "Якщо ви хочете зареєструвати статті одразу з OJS, будь ласка, введіть свій ключ API DOAJ. Якщо у вас немає ключа API DOAJ, ви все одно зможете експортувати в DOAJ XML, але ви не можете зареєструвати свої DOI в DOAJ з OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Ключ DOAJ API"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Ви знайдете свій ключ API на сторінці користувача DOAJ."
msgid "plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr "OJS буде автоматично депонувати статті на DOAJ. Зверніть увагу, що після публікації обробка може зайняти деякий час (наприклад, залежно від налаштувань вашого cron). Ви можете перевірити всі незареєстровані статті."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr "Використовувати тестовий API DOAJ (середовище тестування) для реєстрації. Будь ласка, не забудьте прибрати цей параметр для подальшої роботи."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Завдання автоматичної реєстрації DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Депонування не вдалося! API DOAJ повернув помилку: \"{$param}\"."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Використання:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles objectId1 [objectId2] ...\n"
""
@@ -0,0 +1,40 @@
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Weblate\n"
msgid "plugins.importexport.doaj.displayName"
msgstr ""
msgid "plugins.importexport.doaj.description"
msgstr ""
msgid "plugins.importexport.doaj.export.contact"
msgstr ""
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr ""
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
msgid "plugins.importexport.doaj.senderTask.name"
msgstr ""
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
@@ -0,0 +1,61 @@
# Ruslan Shodmonov <belovedspy1209@gmail.com>, 2021.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-09-10 08:46+0000\n"
"Last-Translator: Ruslan Shodmonov <belovedspy1209@gmail.com>\n"
"Language-Team: Uzbek <http://translate.pkp.sfu.ca/projects/ojs/importexport-"
"doaj/uz_UZ@latin/>\n"
"Language: uz_UZ@latin\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ eksport plagini"
msgid "plugins.importexport.doaj.description"
msgstr "DOAJ uchun eksport jurnali."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Qo'shish uchun DOAJ bilan bog'laning"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Agar siz OJS ichidagi maqolalarni ro'yxatdan o'tkazmoqchi bo'lsangiz, DOAJ "
"API kalitini kiriting. Aks holda, siz hali ham DOAJ XML formatiga eksport "
"qila olasiz, lekin maqolalaringizni DOJda OJS ichida ro'yxatdan o'tkaza "
"olmaysiz."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API kaliti"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Siz API kalitingizni DOAJ foydalanuvchi sahifasida topasiz."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS maqolalarni DOAJga avtomatik tarzda joylashtiradi. Shuni esda tutingki, "
"bu nashrdan so'ng uni qayta ishlashga biroz vaqt ketishi mumkin (masalan, "
"cronjob konfiguratsiyangizga bog'liq). Siz ro'yxatdan o'tmagan barcha "
"maqolalarni tekshirishingiz mumkin."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Ro'yxatdan o'tish uchun DOAJ test API (sinov muhiti) dan foydalaning. "
"Iltimos, ishlab chiqarish uchun ushbu variantni olib tashlashni unutmang."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ avtomatik ro'yxatga olish vazifasi"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr ""
"Depozit muvaffaqiyatli bo'lmadi! DOAJ API xatoni qaytardi: '{$ param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Foydalanish:\n"
"{$ scriptName} {$ pluginName} eksport qilish [xmlFileName] [journal_path] "
"maqolalar objectId1 [objectId2] ...\n"
@@ -0,0 +1,57 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2020-04-29 07:38+0000\n"
"Last-Translator: Tran Ngoc Trung <khuchatthienduong@gmail.com>\n"
"Language-Team: Vietnamese <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-doaj/vi_VN/>\n"
"Language: vi_VN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "Plugin xuất DOAJ"
msgid "plugins.importexport.doaj.description"
msgstr "Tạp chí xuất cho DOAJ."
msgid "plugins.importexport.doaj.export.contact"
msgstr "Liên hệ với DOAJ để đưa vào"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"Nếu bạn muốn đăng ký các bài báo từ trong OJS, vui lòng nhập Khóa API DOAJ "
"của bạn. Khác, bạn vẫn có thể xuất thành định dạng XML DOAJ nhưng bạn không "
"thể đăng ký các bài viết của mình với DOAJ từ trong OJS."
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "Khóa API DOAJ"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "Bạn sẽ tìm thấy khóa API của mình trên trang người dùng DOAJ."
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS sẽ gửi bài viết tự động cho DOAJ. Xin lưu ý rằng việc này có thể mất một "
"khoảng thời gian ngắn sau khi xuất bản để xử lý (ví dụ: tùy thuộc vào cấu "
"hình cronjob của bạn). Bạn có thể kiểm tra tất cả các bài viết chưa đăng ký."
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"Sử dụng API kiểm tra DOAJ (môi trường thử nghiệm) để đăng ký. Xin đừng quên "
"loại bỏ tùy chọn này khi xuất bản."
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "Nhiệm vụ đăng ký tự động DOAJ"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "Gửi không thành công! API DOAJ đã trả về lỗi: '{$param}'."
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"Usage:\n"
"{$scriptName} {$pluginName} xuất [xmlFileName] [journal_path] các bài báo "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,57 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-04T08:59:14-08:00\n"
"PO-Revision-Date: 2020-07-02 12:03+0000\n"
"Last-Translator: Yukari Chiba <Charles@nia.ac.cn>\n"
"Language-Team: Chinese (Simplified) <http://translate.pkp.sfu.ca/projects/"
"ojs/importexport-doaj/zh_Hans/>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ导出插件"
msgid "plugins.importexport.doaj.description"
msgstr "将期刊导出到DAOJ,并且将期刊信息电邮给DAOJ的成员。"
msgid "plugins.importexport.doaj.export.contact"
msgstr "联系DOAJ列入"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"如果您想从 OJS 中注册文章,请输入您的 DOAJ API 密钥。 否则,您仍然可以导出为 "
"DOAJ XML 格式,但是您无法从 OJS 中向 DOAJ 注册您的文章。"
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API 密钥"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "您可以在 DOAJ 用户页面上找到 API 密钥。"
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS 将自动将文章存入 DOAJ。 请注意,发布后可能需要很短的时间来处理(例如,取"
"决于您的 cronjob 配置)。 您可以检查所有未注册的文章。"
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"使用 DOAJ 测试 API(测试环境)进行注册。 请不要忘记在生产环境中删除此选项。"
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ 自动注册任务"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "存入失败! DOAJ API 返回错误:'{$param}'。"
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
"用法:\n"
"{$scriptName} {$pluginName} export [xmlFileName] [journal_path] articles "
"objectId1 [objectId2] ...\n"
@@ -0,0 +1,52 @@
# Katie Cheng <ckykatie@hkbu.edu.hk>, 2022.
msgid ""
msgstr ""
"PO-Revision-Date: 2022-09-28 10:01+0000\n"
"Last-Translator: Katie Cheng <ckykatie@hkbu.edu.hk>\n"
"Language-Team: Chinese (Traditional) <http://translate.pkp.sfu.ca/projects/"
"ojs/importexport-doaj/zh_Hant/>\n"
"Language: zh_Hant\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.doaj.displayName"
msgstr "DOAJ導出插件"
msgid "plugins.importexport.doaj.description"
msgstr "導出期刊至DOAJ。"
msgid "plugins.importexport.doaj.export.contact"
msgstr "聯絡DOAJ包括此期刊"
msgid "plugins.importexport.doaj.registrationIntro"
msgstr ""
"如您想為OJS內的文章註冊,請輸入您的DOAJ API密鑰。此外,您仍可以導出至DOAJ XML"
"格式,但您不能在OJS內為您的文章在DOAJ註冊。"
msgid "plugins.importexport.doaj.settings.form.apiKey"
msgstr "DOAJ API密鑰"
msgid "plugins.importexport.doaj.settings.form.apiKey.description"
msgstr "您會在您的DOAJ用戶頁面找到您的API密鑰。"
msgid ""
"plugins.importexport.doaj.settings.form.automaticRegistration.description"
msgstr ""
"OJS將會自動典藏文章至DOAJ。請注意,此步驟在出版後需要一些時間(例如:視乎您的"
"cronjob設置)。您可以點選所有未註冊文章。"
msgid "plugins.importexport.doaj.settings.form.testMode.description"
msgstr ""
"使用DOAJ測試API(測試環境)註冊。請不要忘記在正式製作程序時移除此選項。"
msgid "plugins.importexport.doaj.senderTask.name"
msgstr "DOAJ自動註冊工序"
msgid "plugins.importexport.doaj.register.error.mdsError"
msgstr "典藏失敗!DOAJ API回覆錯誤訊息:'{$param}'。"
msgid "plugins.importexport.doaj.cliUsage"
msgstr ""
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
* plugins/importexport/doaj/scheduledTasks.xml
*
* Copyright (c) 2013-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* DOAJ Plugin Deposit
*
* This file describes the schedule task that will send deposits to DOAJ and update statuses in the background.
*
-->
<!DOCTYPE scheduled_tasks SYSTEM "../../../lib/pkp/dtd/scheduledTasks.dtd">
<scheduled_tasks>
<task class="APP\plugins\importexport\doaj\DOAJInfoSender">
<descr>Deposit articles to DOAJ and update statuses.</descr>
<frequency minute="0"/>
</task>
</scheduled_tasks>
@@ -0,0 +1,83 @@
{**
* @file plugins/importexport/doaj/index.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* List of operations this plugin can perform
*}
{extends file="layouts/backend.tpl"}
{block name="page"}
<h1 class="app__pageHeading">
{$pageTitle}
</h1>
{if !empty($configurationErrors)}
{assign var="allowExport" value=false}
{else}
{assign var="allowExport" value=true}
{/if}
<script type="text/javascript">
// Attach the JS file tab handler.
$(function() {ldelim}
$('#importExportTabs').pkpHandler('$.pkp.controllers.TabHandler');
{rdelim});
</script>
<div id="importExportTabs">
<ul>
<li><a href="#settings-tab">{translate key="plugins.importexport.common.settings"}</a></li>
{if $allowExport}
<li><a href="#exportSubmissions-tab">{translate key="plugins.importexport.common.export.articles"}</a></li>
{/if}
</ul>
<div id="settings-tab">
{if !$allowExport}
<div class="pkp_notification" id="dataciteConfigurationErrors">
{foreach from=$configurationErrors item=configurationError}
{if $configurationError == $smarty.const.EXPORT_CONFIG_ERROR_SETTINGS}
{include file="controllers/notification/inPlaceNotificationContent.tpl" notificationId=doajConfigurationErrors notificationStyleClass="notifyWarning" notificationTitle="plugins.importexport.common.missingRequirements"|translate notificationContents="plugins.importexport.common.error.pluginNotConfigured"|translate}
{/if}
{/foreach}
</div>
{/if}
<p><a href="http://www.doaj.org/application/new" target="_blank">{translate key="plugins.importexport.doaj.export.contact"}</a></p>
{capture assign=doajSettingsGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.settings.plugins.settingsPluginGridHandler" op="manage" plugin="DOAJExportPlugin" category="importexport" verb="index" escape=false}{/capture}
{load_url_in_div id="doajSettingsGridContainer" url=$doajSettingsGridUrl}
</div>
{if $allowExport}
<div id="exportSubmissions-tab">
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#exportSubmissionXmlForm').pkpHandler('$.pkp.controllers.form.FormHandler');
{rdelim});
</script>
<form id="exportSubmissionXmlForm" class="pkp_form" action="{plugin_url path="exportSubmissions"}" method="post">
{csrf}
<input type="hidden" name="tab" value="exportSubmissions-tab" />
{fbvFormArea id="submissionsXmlForm"}
{capture assign=submissionsListGridUrl}{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT component="grid.submissions.ExportPublishedSubmissionsListGridHandler" op="fetchGrid" plugin="doaj" category="importexport" escape=false}{/capture}
{load_url_in_div id="submissionsListGridContainer" url=$submissionsListGridUrl}
{fbvFormSection list="true"}
{fbvElement type="checkbox" id="validation" label="plugins.importexport.common.validation" checked=$validation|default:true}
{/fbvFormSection}
{if !empty($actionNames)}
{fbvFormSection}
<ul class="export_actions">
{foreach from=$actionNames key=action item=actionName}
<li class="export_action">
{fbvElement type="submit" label="$actionName" id="$action" name="$action" value="1" class="$action" translate=false inline=true}
</li>
{/foreach}
</ul>
{/fbvFormSection}
{/if}
{/fbvFormArea}
</form>
</div>
{/if}
</div>
{/block}
@@ -0,0 +1,34 @@
{**
* plugins/importexport/doaj/templates/settingsForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* DOAJ plugin settings
*
*}
<script type="text/javascript">
$(function() {ldelim}
// Attach the form handler.
$('#doajSettingsForm').pkpHandler('$.pkp.controllers.form.AjaxFormHandler');
{rdelim});
</script>
<form class="pkp_form" id="doajSettingsForm" method="post" action="{url router=\PKP\core\PKPApplication::ROUTE_COMPONENT op="manage" plugin="DOAJExportPlugin" category="importexport" verb="save"}">
{csrf}
{fbvFormArea id="doajSettingsFormArea"}
{fbvFormSection}
<p class="pkp_help">{translate key="plugins.importexport.doaj.registrationIntro"}</p>
{fbvElement type="text" id="apiKey" value=$apiKey label="plugins.importexport.doaj.settings.form.apiKey" maxlength="50" size=$fbvStyles.size.MEDIUM}
<span class="instruct">{translate key="plugins.importexport.doaj.settings.form.apiKey.description"}</span><br/>
{/fbvFormSection}
{fbvFormSection list="true"}
{fbvElement type="checkbox" id="automaticRegistration" label="plugins.importexport.doaj.settings.form.automaticRegistration.description" checked=$automaticRegistration|compare:true}
{/fbvFormSection}
{fbvFormSection list="true"}
{fbvElement type="checkbox" id="testMode" label="plugins.importexport.doaj.settings.form.testMode.description" checked=$testMode|compare:true}
{/fbvFormSection}
{/fbvFormArea}
{fbvFormButtons submitText="common.save"}
<p><span class="formRequired">{translate key="common.requiredField"}</span></p>
</form>
+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE version SYSTEM "../../../lib/pkp/dtd/pluginVersion.dtd">
<!--
* vplugins/importexport/doaj/ersion.xml
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Plugin version information.
-->
<version>
<application>doaj</application>
<type>plugins.importexport</type>
<release>1.1.0.0</release>
<date>2016-08-27</date>
</version>
@@ -0,0 +1,102 @@
<?php
/**
* @file plugins/importexport/native/NativeImportExportDeployment.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeImportExportDeployment
*
* @ingroup plugins_importexport_native
*
* @brief Class configuring the native import/export process to this
* application's specifics.
*/
namespace APP\plugins\importexport\native;
use APP\core\Application;
use APP\issue\Issue;
class NativeImportExportDeployment extends \PKP\plugins\importexport\native\PKPNativeImportExportDeployment
{
public $_issue;
//
// Deployment items for subclasses to override
//
/**
* Get the submission node name
*
* @return string
*/
public function getSubmissionNodeName()
{
return 'article';
}
/**
* Get the submissions node name
*
* @return string
*/
public function getSubmissionsNodeName()
{
return 'articles';
}
/**
* Get the representation node name
*/
public function getRepresentationNodeName()
{
return 'article_galley';
}
/**
* Get the schema filename.
*
* @return string
*/
public function getSchemaFilename()
{
return 'native.xsd';
}
/**
* Set the import/export issue.
*
* @param Issue $issue
*/
public function setIssue($issue)
{
$this->_issue = $issue;
}
/**
* Get the import/export issue.
*
* @return Issue
*/
public function getIssue()
{
return $this->_issue;
}
/**
* @see PKPNativeImportExportDeployment::getObjectTypes()
*/
protected function getObjectTypes()
{
return parent::getObjectTypes() + [
Application::ASSOC_TYPE_JOURNAL => __('context.context'),
Application::ASSOC_TYPE_ISSUE => __('issue.issue'),
Application::ASSOC_TYPE_ISSUE_GALLEY => __('editor.issues.galley'),
Application::ASSOC_TYPE_PUBLICATION => __('common.publication'),
Application::ASSOC_TYPE_GALLEY => __('submission.galley'),
];
}
}
@@ -0,0 +1,174 @@
<?php
/**
* @file plugins/importexport/native/NativeImportExportPlugin.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeImportExportPlugin
*
* @ingroup plugins_importexport_native
*
* @brief Native XML import/export plugin
*/
namespace APP\plugins\importexport\native;
use APP\facades\Repo;
use APP\template\TemplateManager;
use PKP\plugins\importexport\native\PKPNativeImportExportDeployment;
class NativeImportExportPlugin extends \PKP\plugins\importexport\native\PKPNativeImportExportPlugin
{
/**
* @see ImportExportPlugin::display()
*/
public function display($args, $request)
{
parent::display($args, $request);
if ($this->isResultManaged) {
if ($this->result) {
return $this->result;
}
return false;
}
$templateMgr = TemplateManager::getManager($request);
switch ($this->opType) {
case 'exportIssuesBounce':
return $this->getBounceTab(
$request,
__('plugins.importexport.native.export.issues.results'),
'exportIssues',
['selectedIssues' => $request->getUserVar('selectedIssues')]
);
case 'exportIssues':
$selectedEntitiesIds = (array) $request->getUserVar('selectedIssues');
$deployment = $this->getDeployment();
$this->getExportIssuesDeployment($selectedEntitiesIds, $deployment);
return $this->getExportTemplateResult($deployment, $templateMgr, 'issues');
default:
$dispatcher = $request->getDispatcher();
$dispatcher->handle404();
}
}
/**
* Get the issues and proceed to the export
*
* @param array $issueIds Array of issueIds to export
* @param PKPNativeImportExportDeployment $deployment
* @param array $opts
*/
public function getExportIssuesDeployment($issueIds, &$deployment, $opts = [])
{
$issues = [];
foreach ($issueIds as $issueId) {
$issue = Repo::issue()->get($issueId);
$issue = $issue->getJournalId() == $deployment->getContext()->getId() ? $issue : null;
if ($issue) {
$issues[] = $issue;
}
}
$deployment->export('issue=>native-xml', $issues, $opts);
}
/**
* Get the XML for a set of issues.
*
* @param array $issueIds
* @param \PKP\context\Context $context
* @param \PKP\user\User $user
* @param array $opts
*
* @return string XML contents representing the supplied issue IDs.
*/
public function exportIssues($issueIds, $context, $user, $opts = [])
{
$deployment = new NativeImportExportDeployment($context, $user);
$this->getExportIssuesDeployment($issueIds, $deployment, $opts);
return $this->exportResultXML($deployment);
}
/**
* @see PKPNativeImportExportPlugin::getImportFilter
*/
public function getImportFilter($xmlFile)
{
$filter = 'native-xml=>issue';
// is this articles import:
$xmlString = file_get_contents($xmlFile);
$document = new \DOMDocument('1.0', 'utf-8');
$document->loadXml($xmlString);
if (in_array($document->documentElement->tagName, ['article', 'articles'])) {
$filter = 'native-xml=>article';
}
return [$filter, $xmlString];
}
/**
* @see PKPNativeImportExportPlugin::getExportFilter
*/
public function getExportFilter($exportType)
{
$filter = 'issue=>native-xml';
if ($exportType == 'exportSubmissions') {
$filter = 'article=>native-xml';
}
return $filter;
}
/**
* @see PKPNativeImportExportPlugin::getAppSpecificDeployment
*/
public function getAppSpecificDeployment($context, $user)
{
return new NativeImportExportDeployment($context, $user);
}
/**
* @see PKPImportExportPlugin::executeCLI()
*/
public function executeCLI($scriptName, &$args)
{
$result = parent::executeCLI($scriptName, $args);
if ($result) {
return $result;
}
$cliDeployment = $this->cliDeployment;
$deployment = $this->getDeployment();
switch ($cliDeployment->command) {
case 'export':
switch ($cliDeployment->exportEntity) {
case 'issue':
case 'issues':
$this->getExportIssuesDeployment(
$cliDeployment->args,
$deployment,
$cliDeployment->opts
);
$this->cliToolkit->getCLIExportResult($deployment, $cliDeployment->xmlFile);
$this->cliToolkit->getCLIProblems($deployment);
return true;
}
}
$this->usage($scriptName);
}
}
+11
View File
@@ -0,0 +1,11 @@
# Native Import/Export Plugin
## Documentation
See https://docs.pkp.sfu.ca/admin-guide/en/data-import-and-export#native-xml-plugin
for documentation.
## Sample XML
Sample XML can be found in https://github.com/pkp/ojs/blob/[tag]/cypress/fixtures/export-issues.xml,
where [tag] indicates your version of OJS, e.g.: 3_2_1-0 for OJS 3.1.2-0.
@@ -0,0 +1,59 @@
<?php
/**
* @file plugins/importexport/native/filter/ArticleGalleyNativeXmlFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class ArticleGalleyNativeXmlFilter
*
* @ingroup plugins_importexport_native
*
* @brief Class that converts an Galley to a Native XML document.
*/
namespace APP\plugins\importexport\native\filter;
use APP\facades\Repo;
use PKP\submission\Representation;
class ArticleGalleyNativeXmlFilter extends \PKP\plugins\importexport\native\filter\RepresentationNativeXmlFilter
{
//
// Extend functions in RepresentationNativeXmlFilter
//
/**
* Create and return a representation node. Extend the parent class
* with publication format specific data.
*
* @param \DOMDocument $doc
* @param Representation $representation
*
* @return \DOMElement
*/
public function createRepresentationNode($doc, $representation)
{
$representationNode = parent::createRepresentationNode($doc, $representation);
$representationNode->setAttribute('approved', $representation->getIsApproved() ? 'true' : 'false');
return $representationNode;
}
/**
* Get the available submission files for a representation
*
* @param Representation $representation
*
* @return array
*/
public function getFiles($representation)
{
$galleyFiles = [];
if ($representation->getData('submissionFileId')) {
$galleyFiles = [Repo::submissionFile()->get($representation->getData('submissionFileId'))];
}
return $galleyFiles;
}
}
@@ -0,0 +1,42 @@
<?php
/**
* @file plugins/importexport/native/filter/ArticleNativeXmlFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class ArticleNativeXmlFilter
*
* @ingroup plugins_importexport_native
*
* @brief Class that converts a Article to a Native XML document.
*/
namespace APP\plugins\importexport\native\filter;
use APP\submission\Submission;
use DOMElement;
class ArticleNativeXmlFilter extends \PKP\plugins\importexport\native\filter\SubmissionNativeXmlFilter
{
//
// Submission conversion functions
//
/**
* Create and return a submission node.
*
* @param \DOMDocument $doc
* @param Submission $submission
*
* @return DOMElement
*/
public function createSubmissionNode($doc, $submission)
{
$deployment = $this->getDeployment();
$submissionNode = parent::createSubmissionNode($doc, $submission);
return $submissionNode;
}
}
@@ -0,0 +1,21 @@
<?php
/**
* @file plugins/importexport/native/filter/AuthorNativeXmlFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class AuthorNativeXmlFilter
*
* @ingroup plugins_importexport_native
*
* @brief Class that converts a Author to a Native XML document.
*/
namespace APP\plugins\importexport\native\filter;
class AuthorNativeXmlFilter extends \PKP\plugins\importexport\native\filter\PKPAuthorNativeXmlFilter
{
}
@@ -0,0 +1,156 @@
<?php
/**
* @file plugins/importexport/native/filter/IssueGalleyNativeXmlFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class IssueGalleyNativeXmlFilter
*
* @ingroup plugins_importexport_native
*
* @brief Base class that converts a set of issue galleys to a Native XML document
*/
namespace APP\plugins\importexport\native\filter;
use APP\core\Application;
use APP\file\IssueFileManager;
use APP\issue\IssueFileDAO;
use APP\issue\IssueGalley;
use DOMDocument;
use DOMElement;
use PKP\db\DAORegistry;
use PKP\filter\FilterGroup;
class IssueGalleyNativeXmlFilter extends \PKP\plugins\importexport\native\filter\NativeExportFilter
{
/**
* Constructor
*
* @param FilterGroup $filterGroup
*/
public function __construct($filterGroup)
{
$this->setDisplayName('Native XML issue galley export');
parent::__construct($filterGroup);
}
//
// Implement template methods from Filter
//
/**
* @see Filter::process()
*
* @param array $issueGalleys Array of issue galleys
*
* @return \DOMDocument
*/
public function &process(&$issueGalleys)
{
// Create the XML document
$doc = new DOMDocument('1.0', 'utf-8');
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
$deployment = $this->getDeployment();
$rootNode = $doc->createElementNS($deployment->getNamespace(), 'issue_galleys');
foreach ($issueGalleys as $issueGalley) {
if ($issueGalleyNode = $this->createIssueGalleyNode($doc, $issueGalley)) {
$rootNode->appendChild($issueGalleyNode);
}
}
$doc->appendChild($rootNode);
$rootNode->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
$rootNode->setAttribute('xsi:schemaLocation', $deployment->getNamespace() . ' ' . $deployment->getSchemaFilename());
return $doc;
}
//
// Submission conversion functions
//
/**
* Create and return an issueGalley node.
*/
public function createIssueGalleyNode(DOMDocument $doc, IssueGalley $issueGalley): ?DOMElement
{
// Create the root node and attributes
$deployment = $this->getDeployment();
$issueGalleyNode = $doc->createElementNS($deployment->getNamespace(), 'issue_galley');
$issueGalleyNode->setAttribute('locale', $issueGalley->getLocale());
$issueGalleyNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'label', htmlspecialchars($issueGalley->getLabel(), ENT_COMPAT, 'UTF-8')));
$this->addIdentifiers($doc, $issueGalleyNode, $issueGalley);
if (!$this->addFile($doc, $issueGalleyNode, $issueGalley)) {
return null;
}
return $issueGalleyNode;
}
/**
* Add the issue file to its DOM element.
*/
public function addFile(DOMDocument $doc, DOMElement $issueGalleyNode, IssueGalley $issueGalley): bool
{
$issueFileDao = DAORegistry::getDAO('IssueFileDAO'); /** @var IssueFileDAO $issueFileDao */
$issueFile = $issueFileDao->getById($issueGalley->getFileId());
if (!$issueFile) {
return false;
}
$issueFileManager = new IssueFileManager($issueGalley->getIssueId());
$filePath = $issueFileManager->getFilesDir() . '/' . $issueFileManager->contentTypeToPath($issueFile->getContentType()) . '/' . $issueFile->getServerFileName();
$deployment = $this->getDeployment();
if (!file_exists($filePath)) {
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE_GALLEY, $issueGalley->getId(), __('plugins.importexport.common.error.issueGalleyFileMissing', ['id' => $issueGalley->getId(), 'path' => $filePath]));
return false;
}
$issueFileNode = $doc->createElementNS($deployment->getNamespace(), 'issue_file');
$issueFileNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'file_name', htmlspecialchars($issueFile->getServerFileName(), ENT_COMPAT, 'UTF-8')));
$issueFileNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'file_type', htmlspecialchars($issueFile->getFileType(), ENT_COMPAT, 'UTF-8')));
$issueFileNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'file_size', $issueFile->getFileSize()));
$issueFileNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'content_type', htmlspecialchars($issueFile->getContentType(), ENT_COMPAT, 'UTF-8')));
$issueFileNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'original_file_name', htmlspecialchars($issueFile->getOriginalFileName(), ENT_COMPAT, 'UTF-8')));
$issueFileNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'date_uploaded', date('Y-m-d', strtotime($issueFile->getDateUploaded()))));
$issueFileNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'date_modified', date('Y-m-d', strtotime($issueFile->getDateModified()))));
$embedNode = $doc->createElementNS($deployment->getNamespace(), 'embed', base64_encode(file_get_contents($filePath)));
$embedNode->setAttribute('encoding', 'base64');
$issueFileNode->appendChild($embedNode);
$issueGalleyNode->appendChild($issueFileNode);
return true;
}
/**
* Create and add identifier nodes to an issue galley node.
*
* @param \DOMDocument $doc
* @param \DOMElement $issueGalleyNode
* @param IssueGalley $issueGalley
*/
public function addIdentifiers($doc, $issueGalleyNode, $issueGalley)
{
$deployment = $this->getDeployment();
// Add internal ID
$issueGalleyNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'id', $issueGalley->getId()));
$node->setAttribute('type', 'internal');
$node->setAttribute('advice', 'ignore');
// Add public ID
if ($pubId = $issueGalley->getStoredPubId('publisher-id')) {
$issueGalleyNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'id', htmlspecialchars($pubId, ENT_COMPAT, 'UTF-8')));
$node->setAttribute('type', 'public');
$node->setAttribute('advice', 'update');
}
}
}
@@ -0,0 +1,318 @@
<?php
/**
* @file plugins/importexport/native/filter/IssueNativeXmlFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class IssueNativeXmlFilter
*
* @ingroup plugins_importexport_native
*
* @brief Base class that converts a set of issues to a Native XML document
*/
namespace APP\plugins\importexport\native\filter;
use APP\core\Application;
use APP\facades\Repo;
use APP\issue\Issue;
use APP\issue\IssueGalleyDAO;
use APP\plugins\importexport\native\NativeImportExportDeployment;
use APP\plugins\PubIdPlugin;
use Exception;
use PKP\db\DAORegistry;
use PKP\filter\FilterGroup;
use PKP\plugins\importexport\native\filter\SubmissionNativeXmlFilter;
use PKP\plugins\importexport\PKPImportExportFilter;
use PKP\plugins\PluginRegistry;
class IssueNativeXmlFilter extends \PKP\plugins\importexport\native\filter\NativeExportFilter
{
/**
* Constructor
*
* @param FilterGroup $filterGroup
*/
public function __construct($filterGroup)
{
$this->setDisplayName('Native XML issue export');
parent::__construct($filterGroup);
}
//
// Implement template methods from Filter
//
/**
* @see Filter::process()
*
* @param array $issues Array of issues
*
* @return \DOMDocument
*/
public function &process(&$issues)
{
// Create the XML document
$doc = new \DOMDocument('1.0', 'utf-8');
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
$deployment = $this->getDeployment();
if (count($issues) == 1) {
// Only one issue specified; create root node
$rootNode = $this->createIssueNode($doc, $issues[0]);
} else {
// Multiple issues; wrap in a <issues> element
$rootNode = $doc->createElementNS($deployment->getNamespace(), 'issues');
foreach ($issues as $issue) {
$rootNode->appendChild($this->createIssueNode($doc, $issue));
}
}
$doc->appendChild($rootNode);
$rootNode->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
$rootNode->setAttribute('xsi:schemaLocation', $deployment->getNamespace() . ' ' . $deployment->getSchemaFilename());
return $doc;
}
//
// Submission conversion functions
//
/**
* Create and return an issue node.
*
* @param \DOMDocument $doc
* @param Issue $issue
*
* @return \DOMElement
*/
public function createIssueNode($doc, $issue)
{
// Create the root node and attributes
/** @var NativeImportExportDeployment */
$deployment = $this->getDeployment();
$deployment->setIssue($issue);
$issueNode = $doc->createElementNS($deployment->getNamespace(), 'issue');
$this->addIdentifiers($doc, $issueNode, $issue);
$issueNode->setAttribute('published', (int) $issue->getPublished());
$currentIssue = Repo::issue()->getCurrent($issue->getJournalId());
$isCurrentIssue = $currentIssue != null && $issue->getId() == $currentIssue->getId();
$issueNode->setAttribute('current', (int) $isCurrentIssue);
$issueNode->setAttribute('access_status', $issue->getAccessStatus());
$issueNode->setAttribute('url_path', $issue->getData('urlPath'));
$this->createLocalizedNodes($doc, $issueNode, 'description', $issue->getDescription(null));
$nativeFilterHelper = new NativeFilterHelper();
$issueNode->appendChild($nativeFilterHelper->createIssueIdentificationNode($this, $doc, $issue));
$this->addDates($doc, $issueNode, $issue);
$this->addSections($doc, $issueNode, $issue);
// cover images
$nativeFilterHelper = new NativeFilterHelper();
$coversNode = $nativeFilterHelper->createIssueCoversNode($this, $doc, $issue);
if ($coversNode) {
$issueNode->appendChild($coversNode);
}
$this->addIssueGalleys($doc, $issueNode, $issue);
$this->addArticles($doc, $issueNode, $issue);
return $issueNode;
}
/**
* Create and add identifier nodes to an issue node.
*
* @param \DOMDocument $doc
* @param \DOMElement $issueNode
* @param Issue $issue
*/
public function addIdentifiers($doc, $issueNode, $issue)
{
$deployment = $this->getDeployment();
// Add internal ID
$issueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'id', $issue->getId()));
$node->setAttribute('type', 'internal');
$node->setAttribute('advice', 'ignore');
// Add public ID
if ($pubId = $issue->getStoredPubId('publisher-id')) {
$issueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'id', htmlspecialchars($pubId, ENT_COMPAT, 'UTF-8')));
$node->setAttribute('type', 'public');
$node->setAttribute('advice', 'update');
}
// Add pub IDs by plugin
$pubIdPlugins = PluginRegistry::loadCategory('pubIds', true, $deployment->getContext()->getId());
foreach ($pubIdPlugins as $pubIdPlugin) {
$this->addPubIdentifier($doc, $issueNode, $issue, $pubIdPlugin);
}
// Add DOI
if ($doi = $issue->getStoredPubId('doi')) {
$issueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'id', htmlspecialchars($doi, ENT_COMPAT, 'UTF-8')));
$node->setAttribute('type', 'doi');
$node->setAttribute('advice', 'update');
}
}
/**
* Add a single pub ID element for a given plugin to the document.
*
* @param \DOMDocument $doc
* @param \DOMElement $issueNode
* @param Issue $issue
* @param PubIdPlugin $pubIdPlugin
*
* @return \DOMElement|null
*/
public function addPubIdentifier($doc, $issueNode, $issue, $pubIdPlugin)
{
$pubId = $issue->getStoredPubId($pubIdPlugin->getPubIdType());
if ($pubId) {
$deployment = $this->getDeployment();
$issueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'id', htmlspecialchars($pubId, ENT_COMPAT, 'UTF-8')));
$node->setAttribute('type', $pubIdPlugin->getPubIdType());
$node->setAttribute('advice', 'update');
return $node;
}
return null;
}
/**
* Create and add various date nodes to an issue node.
*
* @param \DOMDocument $doc
* @param \DOMElement $issueNode
* @param Issue $issue
*/
public function addDates($doc, $issueNode, $issue)
{
$deployment = $this->getDeployment();
if ($issue->getDatePublished()) {
$issueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'date_published', date('Y-m-d', strtotime($issue->getDatePublished()))));
}
if ($issue->getDateNotified()) {
$issueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'date_notified', date('Y-m-d', strtotime($issue->getDateNotified()))));
}
if ($issue->getLastModified()) {
$issueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'last_modified', date('Y-m-d', strtotime($issue->getLastModified()))));
}
if ($issue->getOpenAccessDate()) {
$issueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'open_access_date', date('Y-m-d', strtotime($issue->getOpenAccessDate()))));
}
}
/**
* Create and add articles to an issue node.
*
* @param \DOMDocument $doc
* @param \DOMElement $issueNode
* @param Issue $issue
*/
public function addArticles($doc, $issueNode, $issue)
{
/** @var SubmissionNativeXmlFilter */
$currentFilter = PKPImportExportFilter::getFilter('article=>native-xml', $this->getDeployment(), $this->opts);
$currentFilter->setIncludeSubmissionsNode(true);
$submissions = Repo::submission()
->getCollector()
->filterByContextIds([$issue->getJournalId()])
->filterByIssueIds([$issue->getId()])
->getMany()
->toArray();
$articlesDoc = $currentFilter->execute($submissions);
if ($articlesDoc->documentElement instanceof \DOMElement) {
$clone = $doc->importNode($articlesDoc->documentElement, true);
$issueNode->appendChild($clone);
}
}
/**
* Create and add issue galleys to an issue node.
*
* @param \DOMDocument $doc
* @param \DOMElement $issueNode
* @param Issue $issue
*/
public function addIssueGalleys($doc, $issueNode, $issue)
{
$currentFilter = PKPImportExportFilter::getFilter('issuegalley=>native-xml', $this->getDeployment());
$issueGalleyDao = DAORegistry::getDAO('IssueGalleyDAO'); /** @var IssueGalleyDAO $issueGalleyDao */
$issues = $issueGalleyDao->getByIssueId($issue->getId());
$issueGalleysDoc = $currentFilter->execute($issues);
if ($issueGalleysDoc && $issueGalleysDoc->documentElement instanceof \DOMElement) {
$clone = $doc->importNode($issueGalleysDoc->documentElement, true);
$issueNode->appendChild($clone);
} else {
$deployment = $this->getDeployment();
$deployment->addError(Application::ASSOC_TYPE_ISSUE, reset($issues)?->getId(), __('plugins.importexport.issueGalleys.exportFailed'));
throw new Exception(__('plugins.importexport.issueGalleys.exportFailed'));
}
}
/**
* Add the sections to the Issue DOM element.
*
* @param \DOMDocument $doc
* @param \DOMElement $issueNode
* @param Issue $issue
*/
public function addSections($doc, $issueNode, $issue)
{
$sections = Repo::section()->getByIssueId($issue->getId());
$deployment = $this->getDeployment();
$journal = $deployment->getContext();
// Boundary condition: no sections in this issue.
if (!count($sections)) {
return;
}
$sectionsNode = $doc->createElementNS($deployment->getNamespace(), 'sections');
foreach ($sections as $section) {
$sectionNode = $doc->createElementNS($deployment->getNamespace(), 'section');
$sectionNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'id', $section->getId()));
$node->setAttribute('type', 'internal');
$node->setAttribute('advice', 'ignore');
if ($section->getReviewFormId()) {
$sectionNode->setAttribute('review_form_id', $section->getReviewFormId());
}
$sectionNode->setAttribute('ref', $section->getAbbrev($journal->getPrimaryLocale()));
$sectionNode->setAttribute('seq', (int) $section->getSequence());
$sectionNode->setAttribute('editor_restricted', (int) $section->getEditorRestricted());
$sectionNode->setAttribute('meta_indexed', (int) $section->getMetaIndexed());
$sectionNode->setAttribute('meta_reviewed', (int) $section->getMetaReviewed());
$sectionNode->setAttribute('abstracts_not_required', (int) $section->getAbstractsNotRequired());
$sectionNode->setAttribute('hide_title', (int) $section->getHideTitle());
$sectionNode->setAttribute('hide_author', (int) $section->getHideAuthor());
$sectionNode->setAttribute('abstract_word_count', (int) $section->getAbstractWordCount());
$this->createLocalizedNodes($doc, $sectionNode, 'abbrev', $section->getAbbrev(null));
$this->createLocalizedNodes($doc, $sectionNode, 'policy', $section->getPolicy(null));
$this->createLocalizedNodes($doc, $sectionNode, 'title', $section->getTitle(null));
$sectionsNode->appendChild($sectionNode);
}
$issueNode->appendChild($sectionsNode);
}
}
@@ -0,0 +1,178 @@
<?php
/**
* @file plugins/importexport/native/filter/NativeFilterHelper.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeFilterHelper
*
* @ingroup plugins_importexport_native
*
* @brief Class that provides native import/export filter-related helper methods.
*/
namespace APP\plugins\importexport\native\filter;
use APP\core\Application;
use APP\file\PublicFileManager;
use APP\issue\Issue;
use DOMDocument;
use DOMElement;
use PKP\plugins\importexport\native\filter\NativeExportFilter;
use PKP\plugins\importexport\native\filter\NativeImportFilter;
class NativeFilterHelper extends \PKP\plugins\importexport\native\filter\PKPNativeFilterHelper
{
/**
* Create and return an issue identification node.
*
* @param NativeExportFilter $filter
* @param \DOMDocument $doc
* @param Issue $issue
*
* @return DOMElement
*/
public function createIssueIdentificationNode($filter, $doc, $issue)
{
$deployment = $filter->getDeployment();
$vol = $issue->getVolume();
$num = $issue->getNumber();
$year = $issue->getYear();
$title = $issue->getTitle(null);
assert($issue->getShowVolume() || $issue->getShowNumber() || $issue->getShowYear() || $issue->getShowTitle());
$issueIdentificationNode = $doc->createElementNS($deployment->getNamespace(), 'issue_identification');
if ($issue->getShowVolume()) {
assert(!empty($vol));
$issueIdentificationNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'volume', htmlspecialchars($vol, ENT_COMPAT, 'UTF-8')));
}
if ($issue->getShowNumber()) {
assert(!empty($num));
$issueIdentificationNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'number', htmlspecialchars($num, ENT_COMPAT, 'UTF-8')));
}
if ($issue->getShowYear()) {
assert(!empty($year));
$issueIdentificationNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'year', $year));
}
if ($issue->getShowTitle()) {
assert(!empty($title));
$filter->createLocalizedNodes($doc, $issueIdentificationNode, 'title', $title);
}
return $issueIdentificationNode;
}
/**
* Create and return an object covers node.
*/
public function createIssueCoversNode(NativeExportFilter $filter, DOMDocument $doc, Issue $object): ?DOMElement
{
$coverImages = $object->getCoverImage(null);
if (empty($coverImages)) {
return null;
}
$deployment = $filter->getDeployment();
$publicFileManager = new PublicFileManager();
$coversNode = $doc->createElementNS($deployment->getNamespace(), 'covers');
foreach ($coverImages as $locale => $coverImage) {
$coverNode = $doc->createElementNS($deployment->getNamespace(), 'cover');
$filePath = $publicFileManager->getContextFilesPath($object->getJournalId()) . '/' . $coverImage;
if (!file_exists($filePath)) {
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $object->getId(), __('plugins.importexport.common.error.issueCoverImageMissing', ['id' => $object->getId(), 'path' => $filePath]));
continue;
}
$coverNode->setAttribute('locale', $locale);
$coverNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'cover_image', htmlspecialchars($coverImage, ENT_COMPAT, 'UTF-8')));
$coverNode->appendChild($doc->createElementNS($deployment->getNamespace(), 'cover_image_alt_text', htmlspecialchars($object->getCoverImageAltText($locale), ENT_COMPAT, 'UTF-8')));
$embedNode = $doc->createElementNS($deployment->getNamespace(), 'embed', base64_encode(file_get_contents($filePath)));
$embedNode->setAttribute('encoding', 'base64');
$coverNode->appendChild($embedNode);
$coversNode->appendChild($coverNode);
}
return $coversNode->firstChild?->parentNode;
}
/**
* Parse out the object covers.
*
* @param NativeImportFilter $filter
* @param DOMElement $node
* @param Issue $object
*/
public function parseIssueCovers($filter, $node, $object)
{
$deployment = $filter->getDeployment();
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'cover':
$this->parseIssueCover($filter, $n, $object);
break;
default:
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $object->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $n->tagName]));
}
}
}
}
/**
* Parse out the cover and store it in the object.
*
* @param NativeImportFilter $filter
* @param DOMElement $node
* @param Issue $object
*/
public function parseIssueCover($filter, $node, $object)
{
$deployment = $filter->getDeployment();
$context = $deployment->getContext();
$locale = $node->getAttribute('locale');
if (empty($locale)) {
$locale = $context->getPrimaryLocale();
}
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'cover_image':
$object->setCoverImage(
preg_replace(
"/[^a-z0-9\.\-]+/",
'',
str_replace(
[' ', '_', ':'],
'-',
strtolower($n->textContent)
)
),
$locale
);
break;
case 'cover_image_alt_text':
$object->setCoverImageAltText($n->textContent, $locale);
break;
case 'embed':
if (!$object->getCoverImage($locale)) {
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $object->getId(), __('plugins.importexport.common.error.coverImageNameUnspecified'));
break;
}
$publicFileManager = new PublicFileManager();
$filePath = $publicFileManager->getContextFilesPath($context->getId()) . '/' . $object->getCoverImage($locale);
$allowedFileTypes = ['gif', 'jpg', 'png', 'webp'];
$extension = pathinfo(strtolower($filePath), PATHINFO_EXTENSION);
if (!in_array($extension, $allowedFileTypes)) {
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $object->getId(), __('plugins.importexport.common.error.invalidFileExtension'));
break;
}
file_put_contents($filePath, base64_decode($n->textContent));
break;
default:
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $object->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $n->tagName]));
}
}
}
}
}
@@ -0,0 +1,21 @@
<?php
/**
* @file plugins/importexport/native/filter/NativeXmlArticleFileFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeXmlArticleFileFilter
*
* @ingroup plugins_importexport_native
*
* @brief Class that converts a Native XML document to an article file.
*/
namespace APP\plugins\importexport\native\filter;
class NativeXmlArticleFileFilter extends \PKP\plugins\importexport\native\filter\NativeXmlSubmissionFileFilter
{
}
@@ -0,0 +1,52 @@
<?php
/**
* @file plugins/importexport/native/filter/NativeXmlArticleFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeXmlArticleFilter
*
* @ingroup plugins_importexport_native
*
* @brief Class that converts a Native XML document to a set of articles.
*/
namespace APP\plugins\importexport\native\filter;
use APP\core\Application;
use PKP\filter\Filter;
use PKP\plugins\importexport\PKPImportExportFilter;
class NativeXmlArticleFilter extends \PKP\plugins\importexport\native\filter\NativeXmlSubmissionFilter
{
/**
* Get the import filter for a given element.
*
* @param string $elementName Name of XML element
*
* @return Filter
*/
public function getImportFilter($elementName)
{
$deployment = $this->getDeployment();
$submission = $deployment->getSubmission();
switch ($elementName) {
case 'submission_file':
$importClass = 'SubmissionFile';
break;
case 'publication':
$importClass = 'Publication';
break;
default:
$importClass = null; // Suppress scrutinizer warn
$deployment->addWarning(Application::ASSOC_TYPE_SUBMISSION, $submission->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $elementName]));
}
// Caps on class name for consistency with imports, whose filter
// group names are generated implicitly.
$currentFilter = PKPImportExportFilter::getFilter('native-xml=>' . $importClass, $deployment);
return $currentFilter;
}
}
@@ -0,0 +1,113 @@
<?php
/**
* @file plugins/importexport/native/filter/NativeXmlArticleGalleyFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeXmlArticleGalleyFilter
*
* @ingroup plugins_importexport_native
*
* @brief Class that converts a Native XML document to a set of publication formats.
*/
namespace APP\plugins\importexport\native\filter;
use APP\core\Application;
use APP\facades\Repo;
use APP\submission\Submission;
use DOMElement;
use PKP\galley\Galley;
class NativeXmlArticleGalleyFilter extends \PKP\plugins\importexport\native\filter\NativeXmlRepresentationFilter
{
//
// Implement template methods from NativeImportFilter
//
/**
* Return the plural element name
*
* @return string
*/
public function getPluralElementName()
{
return 'article_galleys'; // defined if needed in the future.
}
/**
* Get the singular element name
*
* @return string
*/
public function getSingularElementName()
{
return 'article_galley';
}
/**
* Handle a submission element
*
* @param DOMElement $node
*
* @return Galley Galley object
*/
public function handleElement($node)
{
$deployment = $this->getDeployment();
$submission = $deployment->getSubmission();
assert($submission instanceof Submission);
$submissionFileRefNodes = $node->getElementsByTagName('submission_file_ref');
assert($submissionFileRefNodes->length <= 1);
$addSubmissionFile = false;
if ($submissionFileRefNodes->length == 1) {
/** @var DOMElement */
$fileNode = $submissionFileRefNodes->item(0);
$newSubmissionFileId = $deployment->getSubmissionFileDBId($fileNode->getAttribute('id'));
if ($newSubmissionFileId) {
$addSubmissionFile = true;
}
}
/** @var Galley $representation */
$representation = parent::handleElement($node);
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'name':
// Labels are not localized in OJS Galleys, but we use the <name locale="....">...</name> structure.
$locale = $n->getAttribute('locale');
if (empty($locale)) {
$locale = $submission->getLocale();
}
$representation->setLabel($n->textContent);
$representation->setLocale($locale);
break;
}
}
}
if ($addSubmissionFile) {
$representation->setData('submissionFileId', $newSubmissionFileId);
}
Repo::galley()->dao->insert($representation);
if ($addSubmissionFile) {
// Update the submission file.
$submissionFile = Repo::submissionFile()->get($newSubmissionFileId);
Repo::submissionFile()->edit(
$submissionFile,
[
'assocType' => Application::ASSOC_TYPE_REPRESENTATION,
'assocId' => $representation->getId(),
]
);
}
// representation proof files
return $representation;
}
}
@@ -0,0 +1,21 @@
<?php
/**
* @file plugins/importexport/native/filter/NativeXmlAuthorFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeXmlAuthorFilter
*
* @ingroup plugins_importexport_native
*
* @brief Class that converts a Native XML document to a set of articles.
*/
namespace APP\plugins\importexport\native\filter;
class NativeXmlAuthorFilter extends \PKP\plugins\importexport\native\filter\NativeXmlPKPAuthorFilter
{
}
@@ -0,0 +1,584 @@
<?php
/**
* @file plugins/importexport/native/filter/NativeXmlIssueFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeXmlIssueFilter
*
* @ingroup plugins_importexport_native
*
* @brief Base class that converts a Native XML document to a set of issues
*/
namespace APP\plugins\importexport\native\filter;
use APP\core\Application;
use APP\facades\Repo;
use APP\issue\Issue;
use APP\plugins\importexport\native\NativeImportExportDeployment;
use APP\section\Section;
use DOMElement;
use DOMNode;
use PKP\filter\FilterGroup;
use PKP\plugins\importexport\PKPImportExportFilter;
use PKP\plugins\PluginRegistry;
class NativeXmlIssueFilter extends \PKP\plugins\importexport\native\filter\NativeImportFilter
{
/**
* Constructor
*
* @param FilterGroup $filterGroup
*/
public function __construct($filterGroup)
{
$this->setDisplayName('Native XML issue import');
parent::__construct($filterGroup);
}
//
// Implement template methods from NativeImportFilter
//
/**
* Return the plural element name
*
* @return string
*/
public function getPluralElementName()
{
return 'issues';
}
/**
* Get the singular element name
*
* @return string
*/
public function getSingularElementName()
{
return 'issue';
}
/**
* Handle a singular element import.
*
* @param DOMElement $node
*
* @return Issue
*/
public function handleElement($node)
{
/** @var NativeImportExportDeployment */
$deployment = $this->getDeployment();
$context = $deployment->getContext();
// if the issue identification matches an existing issue, flag to process only child objects
$issueExists = false;
$issue = $this->_issueExists($node);
if ($issue) {
$issueExists = true;
} else {
// Create and insert the issue (ID needed for other entities)
$issue = Repo::issue()->newDataObject();
$issue->setJournalId($context->getId());
$issue->setPublished($node->getAttribute('published'));
$issue->setAccessStatus($node->getAttribute('access_status'));
$issue->setData('urlPath', strlen($urlPath = (string) $node->getAttribute('url_path')) ? $urlPath : null);
$issueId = Repo::issue()->add($issue);
// Should update current status on journal once issue has been created
if ($node->getAttribute('current')) {
Repo::issue()->updateCurrent($context->getId(), Repo::issue()->get($issueId));
}
$deployment->addProcessedObjectId(Application::ASSOC_TYPE_ISSUE, $issue->getId());
$deployment->addImportedRootEntity(Application::ASSOC_TYPE_ISSUE, $issue);
}
$deployment->setIssue($issue);
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
$this->handleChildElement($n, $issue, $issueExists);
}
}
if (!$issueExists) {
Repo::issue()->edit($issue, []); // Persist setters
}
return $issue;
}
/**
* Handle an element whose parent is the issue element.
*
* @param DOMElement $n
* @param Issue $issue
* @param bool $processOnlyChildren Do not modify the issue itself, only generate child objects
*/
public function handleChildElement($n, $issue, $processOnlyChildren)
{
$deployment = $this->getDeployment();
$context = $deployment->getContext();
$localizedSetterMappings = $this->_getLocalizedIssueSetterMappings();
$dateSetterMappings = $this->_getDateIssueSetterMappings();
if (isset($localizedSetterMappings[$n->tagName])) {
if (!$processOnlyChildren) {
// If applicable, call a setter for localized content.
$setterFunction = $localizedSetterMappings[$n->tagName];
[$locale, $value] = $this->parseLocalizedContent($n);
if (empty($locale)) {
$locale = $context->getPrimaryLocale();
}
$issue->$setterFunction($value, $locale);
}
} elseif (isset($dateSetterMappings[$n->tagName])) {
if (!$processOnlyChildren) {
// Not a localized element? Check for a date.
$setterFunction = $dateSetterMappings[$n->tagName];
$issue->$setterFunction($n->textContent);
}
} else {
switch ($n->tagName) {
// Otherwise, delegate to specific parsing code
case 'id':
if (!$processOnlyChildren) {
$this->parseIdentifier($n, $issue);
}
break;
case 'articles':
$this->parseArticles($n, $issue);
break;
case 'issue_galleys':
if (!$processOnlyChildren) {
$this->parseIssueGalleys($n, $issue);
}
break;
case 'sections':
$this->parseSections($n, $issue);
break;
case 'covers':
if (!$processOnlyChildren) {
$nativeFilterHelper = new NativeFilterHelper();
$nativeFilterHelper->parseIssueCovers($this, $n, $issue);
}
break;
case 'issue_identification':
if (!$processOnlyChildren) {
$this->parseIssueIdentification($n, $issue);
}
break;
default:
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $n->tagName]));
}
}
}
//
// Element parsing
//
/**
* Parse an identifier node and set up the issue object accordingly
*
* @param DOMElement $element
* @param Issue $issue
*/
public function parseIdentifier($element, $issue)
{
$deployment = $this->getDeployment();
$context = $deployment->getContext();
$advice = $element->getAttribute('advice');
switch ($element->getAttribute('type')) {
case 'internal':
// "update" advice not supported yet.
assert(!$advice || $advice == 'ignore');
break;
case 'public':
if ($advice == 'update') {
$issue->setStoredPubId('publisher-id', $element->textContent);
}
break;
default:
if ($advice == 'update') {
if ($element->getAttribute('type') == 'doi') {
$doiFound = Repo::doi()->getCollector()->filterByIdentifier($element->textContent)->getMany()->first();
if ($doiFound) {
$issue->setData('doiId', $doiFound->getId());
} else {
$newDoiObject = Repo::doi()->newDataObject(
[
'doi' => $element->textContent,
'contextId' => $context->getId()
]
);
$doiId = Repo::doi()->add($newDoiObject);
$issue->setData('doiId', $doiId);
}
} else {
// Load pub id plugins
$pubIdPlugins = PluginRegistry::loadCategory('pubIds', true, $context->getId());
$issue->setStoredPubId($element->getAttribute('type'), $element->textContent);
}
}
}
}
/**
* Parse an articles element
*
* @param DOMElement $node
* @param Issue $issue
*/
public function parseIssueGalleys($node, $issue)
{
$deployment = $this->getDeployment();
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'issue_galley':
$this->parseIssueGalley($n, $issue);
break;
default:
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $n->tagName]));
}
}
}
}
/**
* Parse an issue galley and add it to the issue.
*
* @param DOMElement $n
* @param Issue $issue
*/
public function parseIssueGalley($n, $issue)
{
$currentFilter = PKPImportExportFilter::getFilter('native-xml=>IssueGalley', $this->getDeployment());
$issueGalleyDoc = new \DOMDocument('1.0', 'utf-8');
$issueGalleyDoc->appendChild($issueGalleyDoc->importNode($n, true));
return $currentFilter->execute($issueGalleyDoc);
}
/**
* Parse an articles element
*
* @param DOMElement $node
* @param Issue $issue
*/
public function parseArticles($node, $issue)
{
$deployment = $this->getDeployment();
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'article':
$this->parseArticle($n, $issue);
break;
default:
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $n->tagName]));
}
}
}
}
/**
* Parse an article and add it to the issue.
*
* @param DOMElement $n
* @param Issue $issue
*/
public function parseArticle($n, $issue)
{
$currentFilter = PKPImportExportFilter::getFilter('native-xml=>article', $this->getDeployment());
$articleDoc = new \DOMDocument('1.0', 'utf-8');
$articleDoc->appendChild($articleDoc->importNode($n, true));
return $currentFilter->execute($articleDoc);
}
/**
* Parse a submission file and add it to the submission.
*
* @param DOMElement $node
* @param Issue $issue
*/
public function parseSections($node, $issue)
{
$deployment = $this->getDeployment();
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'section':
$this->parseSection($n);
break;
default:
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $n->tagName]));
}
}
}
}
/**
* Parse a section stored in an issue.
*
* @param DOMElement $node
*/
public function parseSection($node)
{
$deployment = $this->getDeployment();
$context = $deployment->getContext();
// Create the data object
$section = Repo::section()->newDataObject();
$section->setContextId($context->getId());
$reviewFormId = $node->getAttribute('review_form_id');
$section->setReviewFormId($reviewFormId ? (int) $reviewFormId : null);
$section->setSequence($node->getAttribute('seq'));
$section->setEditorRestricted((bool) $node->getAttribute('editor_restricted'));
$section->setMetaIndexed((bool) $node->getAttribute('meta_indexed'));
$section->setMetaReviewed((bool) $node->getAttribute('meta_reviewed'));
$section->setAbstractsNotRequired((bool) $node->getAttribute('abstracts_not_required'));
$section->setHideAuthor((bool) $node->getAttribute('hide_author'));
$section->setHideTitle((bool) $node->getAttribute('hide_title'));
$section->setAbstractWordCount($node->getAttribute('abstract_word_count'));
$unknownNodes = [];
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'id':
// Only support "ignore" advice for now
$advice = $n->getAttribute('advice');
assert(!$advice || $advice == 'ignore');
break;
case 'abbrev':
[$locale, $value] = $this->parseLocalizedContent($n);
if (empty($locale)) {
$locale = $context->getPrimaryLocale();
}
$section->setAbbrev($value, $locale);
break;
case 'policy':
[$locale, $value] = $this->parseLocalizedContent($n);
if (empty($locale)) {
$locale = $context->getPrimaryLocale();
}
$section->setPolicy($value, $locale);
break;
case 'title':
[$locale, $value] = $this->parseLocalizedContent($n);
if (empty($locale)) {
$locale = $context->getPrimaryLocale();
}
$section->setTitle($value, $locale);
break;
default:
$unknownNodes[] = $n->tagName;
}
}
}
if (!$this->_sectionExist($section)) {
$sectionId = Repo::section()->add($section);
if (count($unknownNodes)) {
foreach ($unknownNodes as $tagName) {
$deployment->addWarning(Application::ASSOC_TYPE_SECTION, $sectionId, __('plugins.importexport.common.error.unknownElement', ['param' => $tagName]));
}
}
$deployment->addProcessedObjectId(Application::ASSOC_TYPE_SECTION, $sectionId);
}
}
/**
* Parse out the issue identification and store it in an issue.
*
* @param DOMElement $node
* @param Issue $issue
* @param bool $allowWarnings Warnings should be suppressed if this function is not being used to populate a new issue
*/
public function parseIssueIdentification($node, $issue, $allowWarnings = true)
{
$deployment = $this->getDeployment();
$context = $deployment->getContext();
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'volume':
$issue->setVolume($n->textContent);
$issue->setShowVolume(1);
break;
case 'number':
$issue->setNumber($n->textContent);
$issue->setShowNumber(1);
break;
case 'year':
$issue->setYear($n->textContent);
$issue->setShowYear(1);
break;
case 'title':
[$locale, $value] = $this->parseLocalizedContent($n);
if (empty($locale)) {
$locale = $context->getPrimaryLocale();
}
$issue->setTitle($value, $locale);
$issue->setShowTitle(1);
break;
default:
if ($allowWarnings) {
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $n->tagName]));
}
}
}
}
}
//
// Helper functions
//
/**
* Get node name to setter function mapping for localized data.
*
* @return array
*/
public function _getLocalizedIssueSetterMappings()
{
return [
'description' => 'setDescription',
];
}
/**
* Get node name to setter function mapping for issue date fields.
*
* @return array
*/
public function _getDateIssueSetterMappings()
{
return [
'date_published' => 'setDatePublished',
'date_notified' => 'setDateNotified',
'last_modified' => 'setLastModified',
'open_access_date' => 'setOpenAccessDate',
];
}
/**
* Check if the issue already exists.
*
* @param DOMNode $node issue node
* return Issue|null matching issue, or null if no match
*/
public function _issueExists($node)
{
$deployment = $this->getDeployment();
$context = $deployment->getContext();
$issue = null;
foreach ($node->getElementsByTagName('issue_identification') as $n) {
$searchIssue = Repo::issue()->newDataObject();
$this->parseIssueIdentification($n, $searchIssue, false);
$collector = Repo::issue()->getCollector()
->filterByContextIds([$context->getId()]);
if ($searchIssue->getVolume() !== null) {
$collector->filterByVolumes([$searchIssue->getVolume()]);
}
if ($searchIssue->getNumber() !== null) {
$collector->filterByNumbers([$searchIssue->getNumber()]);
}
if ($searchIssue->getYear() !== null) {
$collector->filterByYears([$searchIssue->getYear()]);
}
if (!empty((array) $searchIssue->getTitle(null))) {
$collector->filterByTitles((array) $searchIssue->getTitle(null));
}
$foundIssues = $collector->getMany();
foreach ($foundIssues as $issue) {
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.native.import.error.issueIdentificationDuplicate', ['issueId' => $issue->getId(), 'issueIdentification' => $n->ownerDocument->saveXML($n)]));
}
}
return $issue;
}
/**
* Check if the section already exists.
*
* @param Section $importSection New created section
*
* @return bool
*/
public function _sectionExist($importSection)
{
/** @var NativeImportExportDeployment */
$deployment = $this->getDeployment();
$issue = $deployment->getIssue();
// title and, optionally, abbrev contain information that can
// be used to locate an existing section. If title and abbrev each match an
// existing section, but not the same section, throw an error.
$contextId = $importSection->getContextId();
$section = null;
$foundSectionId = $foundSectionTitle = null;
$index = 0;
$titles = $importSection->getTitle(null);
foreach ($titles as $locale => $title) {
$section = Repo::section()->getCollector()->filterByContextIds([$contextId])->filterByTitles([$title])->getMany()->first();
if ($section) {
$sectionId = $section->getId();
if ($foundSectionId) {
if ($foundSectionId != $sectionId) {
// Mismatching sections found.
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.native.import.error.sectionTitleMismatch', ['section1Title' => $title, 'section2Title' => $foundSectionTitle, 'issueTitle' => $issue->getIssueIdentification()]));
}
} elseif ($index > 0) {
// the current title matches, but the prev titles didn't
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.native.import.error.sectionTitleMatch', ['sectionTitle' => $title, 'issueTitle' => $issue->getIssueIdentification()]));
}
$foundSectionId = $sectionId;
$foundSectionTitle = $title;
} else {
if ($foundSectionId) {
// a prev title matched, but the current doesn't
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.native.import.error.sectionTitleMatch', ['sectionTitle' => $foundSectionTitle, 'issueTitle' => $issue->getIssueIdentification()]));
}
}
$index++;
}
// check abbrevs:
$abbrevSection = null;
$foundSectionId = $foundSectionAbbrev = null;
$index = 0;
$abbrevs = $importSection->getAbbrev(null);
foreach ($abbrevs as $locale => $abbrev) {
$section = Repo::section()->getCollector()->filterByContextIds([$contextId])->filterByAbbrevs([$abbrev])->getMany()->first();
if ($abbrevSection) {
$sectionId = $abbrevSection->getId();
if ($foundSectionId) {
if ($foundSectionId != $sectionId) {
// Mismatching sections found.
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.native.import.error.sectionAbbrevMismatch', ['section1Abbrev' => $abbrev, 'section2Abbrev' => $foundSectionAbbrev, 'issueTitle' => $issue->getIssueIdentification()]));
}
} elseif ($index > 0) {
// the current abbrev matches, but the prev abbrevs didn't
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.native.import.error.sectionAbbrevMatch', ['sectionAbbrev' => $abbrev, 'issueTitle' => $issue->getIssueIdentification()]));
}
$foundSectionId = $sectionId;
$foundSectionAbbrev = $abbrev;
} else {
if ($foundSectionId) {
// a prev abbrev matched, but the current doesn't
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE, $issue->getId(), __('plugins.importexport.native.import.error.sectionAbbrevMatch', ['sectionAbbrev' => $foundSectionAbbrev, 'issueTitle' => $issue->getIssueIdentification()]));
}
}
$index++;
}
if (isset($section) && isset($abbrevSection)) {
return $section->getId() == $abbrevSection->getId();
} else {
return isset($section) || isset($abbrevSection);
}
}
}
@@ -0,0 +1,172 @@
<?php
/**
* @file plugins/importexport/native/filter/NativeXmlIssueGalleyFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeXmlIssueGalleyFilter
*
* @ingroup plugins_importexport_native
*
* @brief Base class that converts a Native XML document to a set of issue galleys
*/
namespace APP\plugins\importexport\native\filter;
use APP\core\Application;
use APP\file\IssueFileManager;
use APP\issue\Issue;
use APP\issue\IssueFileDAO;
use APP\issue\IssueGalley;
use APP\issue\IssueGalleyDAO;
use APP\plugins\importexport\native\NativeImportExportDeployment;
use DOMElement;
use PKP\db\DAORegistry;
use PKP\filter\FilterGroup;
class NativeXmlIssueGalleyFilter extends \PKP\plugins\importexport\native\filter\NativeImportFilter
{
/**
* Constructor
*
* @param FilterGroup $filterGroup
*/
public function __construct($filterGroup)
{
$this->setDisplayName('Native XML issue galley import');
parent::__construct($filterGroup);
}
//
// Override methods in NativeImportFilter
//
/**
* Return the plural element name
*
* @return string
*/
public function getPluralElementName()
{
return 'issue_galleys';
}
/**
* Get the singular element name
*
* @return string
*/
public function getSingularElementName()
{
return 'issue_galley';
}
//
// Extend functions in the parent class
//
/**
* Handle a submission element
*
* @param DOMElement $node
*
* @return ?IssueGalley
*/
public function handleElement($node)
{
/** @var NativeImportExportDeployment */
$deployment = $this->getDeployment();
$context = $deployment->getContext();
$issue = $deployment->getIssue();
assert($issue instanceof Issue);
// Create the data object
$issueGalleyDao = DAORegistry::getDAO('IssueGalleyDAO'); /** @var IssueGalleyDAO $issueGalleyDao */
$issueGalley = $issueGalleyDao->newDataObject();
$issueGalley->setIssueId($issue->getId());
$locale = $node->getAttribute('locale');
if (empty($locale)) {
$locale = $context->getPrimaryLocale();
}
$issueGalley->setLocale($locale);
$issueGalley->setSequence($issueGalleyDao->getNextGalleySequence($issue->getId()));
// Handle metadata in subelements.
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'id':
$this->parseIdentifier($n, $issueGalley);
break;
case 'label': $issueGalley->setLabel($n->textContent);
break;
case 'issue_file':
$issueFileDao = DAORegistry::getDAO('IssueFileDAO'); /** @var IssueFileDAO $issueFileDao */
$issueFile = $issueFileDao->newDataObject();
$issueFile->setIssueId($issue->getId());
for ($o = $n->firstChild; $o !== null; $o = $o->nextSibling) {
if ($o instanceof DOMElement) {
switch ($o->tagName) {
case 'file_name': $issueFile->setServerFileName($o->textContent);
break;
case 'file_type': $issueFile->setFileType($o->textContent);
break;
case 'file_size': $issueFile->setFileSize($o->textContent);
break;
case 'content_type': $issueFile->setContentType((int)$o->textContent);
break;
case 'original_file_name': $issueFile->setOriginalFileName($o->textContent);
break;
case 'date_uploaded': $issueFile->setDateUploaded($o->textContent);
break;
case 'date_modified': $issueFile->setDateModified($o->textContent);
break;
case 'embed':
$issueFileManager = new IssueFileManager($issue->getId());
$filePath = $issueFileManager->getFilesDir() . $issueFileManager->contentTypeToPath($issueFile->getContentType()) . '/' . $issueFile->getServerFileName();
$issueFileManager->writeFile($filePath, base64_decode($o->textContent));
break;
}
}
}
$issueFileId = $issueFileDao->insertObject($issueFile);
$issueGalley->setFileId($issueFileId);
break;
}
}
}
if (!$issueGalley->getFileId()) {
$deployment->addWarning(Application::ASSOC_TYPE_ISSUE_GALLEY, 0, __('plugins.importexport.common.error.import.issueGalleyFileMissing'));
return null;
}
$issueGalleyDao->insertObject($issueGalley);
return $issueGalley;
}
/**
* Parse an identifier node and set up the galley object accordingly
*
* @param DOMElement $element
* @param IssueGalley $issue
*/
public function parseIdentifier($element, $issue)
{
$deployment = $this->getDeployment();
$advice = $element->getAttribute('advice');
switch ($element->getAttribute('type')) {
case 'internal':
// "update" advice not supported yet.
assert(!$advice || $advice == 'ignore');
break;
case 'public':
if ($advice == 'update') {
$issue->setStoredPubId('publisher-id', $element->textContent);
}
break;
}
}
}
@@ -0,0 +1,270 @@
<?php
/**
* @file plugins/importexport/native/filter/NativeXmlPublicationFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class NativeXmlPublicationFilter
*
* @ingroup plugins_importexport_native
*
* @brief Class that converts a Native XML document to a set of articles.
*/
namespace APP\plugins\importexport\native\filter;
use APP\core\Application;
use APP\facades\Repo;
use APP\issue\Issue;
use APP\plugins\importexport\native\NativeImportExportDeployment;
use APP\publication\Publication;
use DOMElement;
use PKP\filter\Filter;
use PKP\plugins\importexport\PKPImportExportFilter;
class NativeXmlPublicationFilter extends \PKP\plugins\importexport\native\filter\NativeXmlPKPPublicationFilter
{
/**
* Handle an Article import.
* The Article must have a valid section in order to be imported
*
* @param DOMElement $node
*/
public function handleElement($node)
{
$deployment = $this->getDeployment();
$context = $deployment->getContext();
$sectionAbbrev = $node->getAttribute('section_ref');
if ($sectionAbbrev !== '') {
$section = Repo::section()->getCollector()->filterByContextIds([$context->getId()])->filterByAbbrevs([$sectionAbbrev])->getMany()->first();
if (!$section) {
$deployment->addError(Application::ASSOC_TYPE_SUBMISSION, null, __('plugins.importexport.native.error.unknownSection', ['param' => $sectionAbbrev]));
} else {
return parent::handleElement($node);
}
}
}
/**
* Populate the submission object from the node, checking first for a valid section and published_date/issue relationship
*
* @param Publication $publication
* @param DOMElement $node
*
* @return Publication
*/
public function populateObject($publication, $node)
{
/** @var NativeImportExportDeployment */
$deployment = $this->getDeployment();
$context = $deployment->getContext();
$sectionAbbrev = $node->getAttribute('section_ref');
if ($sectionAbbrev !== '') {
$section = Repo::section()->getCollector()->filterByContextIds([$context->getId()])->filterByAbbrevs([$sectionAbbrev])->getMany()->first();
if (!$section) {
$deployment->addError(Application::ASSOC_TYPE_PUBLICATION, $publication->getId(), __('plugins.importexport.native.error.unknownSection', ['param' => $sectionAbbrev]));
} else {
$publication->setData('sectionId', $section->getId());
}
}
// check if publication is related to an issue, but has no published date
$datePublished = $node->getAttribute('date_published');
$issue = $deployment->getIssue();
$issue_identification = $node->getElementsByTagName('issue_identification');
if (!$datePublished && ($issue || $issue_identification->length)) {
$titleNodes = $node->getElementsByTagName('title');
$deployment->addWarning(Application::ASSOC_TYPE_PUBLICATION, $publication->getId(), __('plugins.importexport.native.import.error.publishedDateMissing', ['articleTitle' => $titleNodes->item(0)->textContent]));
}
$this->populatePublishedPublication($publication, $node);
return parent::populateObject($publication, $node);
}
/**
* Handle an element whose parent is the submission element.
*
* @param DOMElement $n
* @param Publication $publication
*/
public function handleChildElement($n, $publication)
{
switch ($n->tagName) {
case 'article_galley':
$this->parseArticleGalley($n, $publication);
break;
case 'issue_identification':
// do nothing, because this is done in populatePublishedSubmission
break;
case 'pages':
$publication->setData('pages', $n->textContent);
break;
case 'covers':
$nativeFilterHelper = new NativeFilterHelper();
$nativeFilterHelper->parsePublicationCovers($this, $n, $publication);
break;
default:
parent::handleChildElement($n, $publication);
}
}
/**
* Get the import filter for a given element.
*
* @param string $elementName Name of XML element
*
* @return Filter
*/
public function getImportFilter($elementName)
{
$deployment = $this->getDeployment();
$submission = $deployment->getSubmission();
switch ($elementName) {
case 'article_galley':
$importClass = 'ArticleGalley';
break;
default:
$importClass = null; // Suppress scrutinizer warn
$deployment->addWarning(Application::ASSOC_TYPE_SUBMISSION, $submission->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $elementName]));
}
// Caps on class name for consistency with imports, whose filter
// group names are generated implicitly.
$currentFilter = PKPImportExportFilter::getFilter('native-xml=>' . $importClass, $deployment);
return $currentFilter;
}
/**
* Parse an article galley and add it to the publication.
*
* @param DOMElement $n
* @param Publication $publication
*/
public function parseArticleGalley($n, $publication)
{
return $this->importWithXMLNode($n);
}
/**
* Class-specific methods for published publication.
*
* @param Publication $publication
* @param DOMElement $node
*
* @return Publication
*/
public function populatePublishedPublication($publication, $node)
{
/** @var NativeImportExportDeployment */
$deployment = $this->getDeployment();
$context = $deployment->getContext();
$issue = $deployment->getIssue();
if (empty($issue)) {
$issueIdentificationNodes = $node->getElementsByTagName('issue_identification');
if ($issueIdentificationNodes->length != 1) {
$titleNodes = $node->getElementsByTagName('title');
$deployment->addError(Application::ASSOC_TYPE_PUBLICATION, $publication->getId(), __('plugins.importexport.native.import.error.issueIdentificationMissing', ['articleTitle' => $titleNodes->item(0)->textContent]));
} else {
$issueIdentificationNode = $issueIdentificationNodes->item(0);
$issue = $this->parseIssueIdentification($publication, $issueIdentificationNode);
}
}
if ($issue) {
$publication->setData('issueId', $issue->getId());
}
return $publication;
}
/**
* Get the issue from the given identification.
*
* @param DOMElement $node
*
* @return Issue
*/
public function parseIssueIdentification($publication, $node)
{
$deployment = $this->getDeployment();
$context = $deployment->getContext();
$vol = $num = $year = null;
$titles = [];
for ($n = $node->firstChild; $n !== null; $n = $n->nextSibling) {
if ($n instanceof DOMElement) {
switch ($n->tagName) {
case 'volume':
$vol = $n->textContent;
break;
case 'number':
$num = $n->textContent;
break;
case 'year':
$year = $n->textContent;
break;
case 'title':
[$locale, $value] = $this->parseLocalizedContent($n);
if (empty($locale)) {
$locale = $context->getPrimaryLocale();
}
$titles[$locale] = $value;
break;
default:
$deployment->addWarning(Application::ASSOC_TYPE_PUBLICATION, $publication->getId(), __('plugins.importexport.common.error.unknownElement', ['param' => $n->tagName]));
}
}
}
$issue = null;
$collector = Repo::issue()->getCollector()
->filterByContextIds([$context->getId()]);
if ($vol !== null) {
$collector->filterByVolumes([$vol]);
}
if ($num !== null) {
$collector->filterByNumbers([$num]);
}
if ($year !== null) {
$collector->filterByYears([$year]);
}
if (!empty($titles)) {
$collector->filterByTitles($titles);
}
$issuesIdsByIdentification = $collector->getIds();
if ($issuesIdsByIdentification->count() != 1) {
$deployment->addError(Application::ASSOC_TYPE_PUBLICATION, $publication->getId(), __('plugins.importexport.native.import.error.issueIdentificationMatch', ['issueIdentification' => $node->ownerDocument->saveXML($node)]));
} else {
$issue = Repo::issue()->get($issuesIdsByIdentification->first());
}
if (!isset($issue)) {
$issue = Repo::issue()->newDataObject();
$issue->setVolume($vol);
$issue->setNumber($num);
$issue->setYear($year);
$issue->setShowVolume(1);
$issue->setShowNumber(1);
$issue->setShowYear(1);
$issue->setShowTitle(0);
$issue->setPublished(0);
$issue->setAccessStatus(0);
$issue->setJournalId($context->getId());
$issue->setTitle($titles, null);
$issueId = Repo::issue()->add($issue);
$issue->setId($issueId);
}
return $issue;
}
}
@@ -0,0 +1,84 @@
<?php
/**
* @file plugins/importexport/native/filter/PublicationNativeXmlFilter.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class PublicationNativeXmlFilter
*
* @ingroup plugins_importexport_native
*
* @brief Class that converts a Publication to a Native XML document.
*/
namespace APP\plugins\importexport\native\filter;
use APP\facades\Repo;
use APP\plugins\importexport\native\NativeImportExportDeployment;
use APP\publication\Publication;
class PublicationNativeXmlFilter extends \PKP\plugins\importexport\native\filter\PKPPublicationNativeXmlFilter
{
//
// Implement abstract methods from SubmissionNativeXmlFilter
//
/**
* Get the representation export filter group name
*
* @return string
*/
public function getRepresentationExportFilterGroupName()
{
return 'article-galley=>native-xml';
}
//
// Publication conversion functions
//
/**
* Create and return a publication node.
*
* @param \DOMDocument $doc
* @param Publication $entity
*
* @return \DOMElement
*/
public function createEntityNode($doc, $entity)
{
/** @var NativeImportExportDeployment */
$deployment = $this->getDeployment();
$entityNode = parent::createEntityNode($doc, $entity);
// Add the series, if one is designated.
if ($sectionId = $entity->getData('sectionId')) {
$section = Repo::section()->get($sectionId);
assert(isset($section));
$entityNode->setAttribute('section_ref', $section->getLocalizedAbbrev());
}
// if this is a published submission and not part/subelement of an issue element
// add issue identification element
if ($entity->getData('issueId') && !$deployment->getIssue()) {
$issue = Repo::issue()->get($entity->getData('issueId'));
$nativeFilterHelper = new NativeFilterHelper();
$entityNode->appendChild($nativeFilterHelper->createIssueIdentificationNode($this, $doc, $issue));
}
$pages = $entity->getData('pages');
if (!empty($pages)) {
$entityNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'pages', htmlspecialchars($pages, ENT_COMPAT, 'UTF-8')));
}
// cover images
$nativeFilterHelper = new NativeFilterHelper();
$coversNode = $nativeFilterHelper->createPublicationCoversNode($this, $doc, $entity);
if ($coversNode) {
$entityNode->appendChild($coversNode);
}
return $entityNode;
}
}
@@ -0,0 +1,184 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filterConfig SYSTEM "../../../../lib/pkp/dtd/filterConfig.dtd">
<!--
* filterConfig.xml
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Filter Configuration.
-->
<filterConfig>
<filterGroups>
<!-- Native XML article output -->
<filterGroup
symbolic="article=>native-xml"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="class::classes.submission.Submission[]"
outputType="xml::schema(plugins/importexport/native/native.xsd)" />
<!-- Native XML article input -->
<filterGroup
symbolic="native-xml=>article"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="xml::schema(plugins/importexport/native/native.xsd)"
outputType="class::classes.submission.Submission[]" />
<!-- Native XML issue output -->
<filterGroup
symbolic="issue=>native-xml"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="class::classes.issue.Issue[]"
outputType="xml::schema(plugins/importexport/native/native.xsd)" />
<!-- Native XML issue input -->
<filterGroup
symbolic="native-xml=>issue"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="xml::schema(plugins/importexport/native/native.xsd)"
outputType="class::classes.issue.Issue[]" />
<!-- Native XML issue galley output -->
<filterGroup
symbolic="issuegalley=>native-xml"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="class::classes.issue.IssueGalley[]"
outputType="xml::schema(plugins/importexport/native/native.xsd)" />
<!-- Native XML issue galley input -->
<filterGroup
symbolic="native-xml=>issuegalley"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="xml::schema(plugins/importexport/native/native.xsd)"
outputType="class::classes.issue.IssueGalley[]" />
<!-- Native XML author output -->
<filterGroup
symbolic="author=>native-xml"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="class::classes.author.Author[]"
outputType="xml::schema(plugins/importexport/native/native.xsd)" />
<!-- Native XML author input -->
<filterGroup
symbolic="native-xml=>author"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="xml::schema(plugins/importexport/native/native.xsd)"
outputType="class::classes.author.Author[]" />
<!-- Article file native XML output -->
<filterGroup
symbolic="SubmissionFile=>native-xml"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="class::lib.pkp.classes.submissionFile.SubmissionFile"
outputType="xml::schema(plugins/importexport/native/native.xsd)" />
<!-- Article file native XML input -->
<filterGroup
symbolic="native-xml=>SubmissionFile"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="xml::schema(plugins/importexport/native/native.xsd)"
outputType="class::lib.pkp.classes.submissionFile.SubmissionFile[]" />
<!-- Article Galley native XML output -->
<filterGroup
symbolic="article-galley=>native-xml"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="class::lib.pkp.classes.galley.Galley"
outputType="xml::schema(plugins/importexport/native/native.xsd)" />
<!-- Article Galley native XML input -->
<filterGroup
symbolic="native-xml=>ArticleGalley"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="xml::schema(plugins/importexport/native/native.xsd)"
outputType="class::lib.pkp.classes.galley.Galley[]" />
<!-- Publication native XML input -->
<filterGroup
symbolic="publication=>native-xml"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="class::classes.publication.Publication"
outputType="xml::schema(plugins/importexport/native/native.xsd)" />
<!-- Publication native XML input -->
<filterGroup
symbolic="native-xml=>Publication"
displayName="plugins.importexport.native.displayName"
description="plugins.importexport.native.description"
inputType="xml::schema(plugins/importexport/native/native.xsd)"
outputType="class::classes.publication.Publication[]" />
</filterGroups>
<filters>
<!-- Native XML article output -->
<filter
inGroup="article=>native-xml"
class="APP\plugins\importexport\native\filter\ArticleNativeXmlFilter"
isTemplate="0" />
<!-- Native XML article input -->
<filter
inGroup="native-xml=>article"
class="APP\plugins\importexport\native\filter\NativeXmlArticleFilter"
isTemplate="0" />
<!-- Native XML issue output -->
<filter
inGroup="issue=>native-xml"
class="APP\plugins\importexport\native\filter\IssueNativeXmlFilter"
isTemplate="0" />
<!-- Native XML issue input -->
<filter
inGroup="native-xml=>issue"
class="APP\plugins\importexport\native\filter\NativeXmlIssueFilter"
isTemplate="0" />
<!-- Native XML issue galley output -->
<filter
inGroup="issuegalley=>native-xml"
class="APP\plugins\importexport\native\filter\IssueGalleyNativeXmlFilter"
isTemplate="0" />
<!-- Native XML issue galley input -->
<filter
inGroup="native-xml=>issuegalley"
class="APP\plugins\importexport\native\filter\NativeXmlIssueGalleyFilter"
isTemplate="0" />
<!-- Native XML author output -->
<filter
inGroup="author=>native-xml"
class="APP\plugins\importexport\native\filter\AuthorNativeXmlFilter"
isTemplate="0" />
<!-- Native XML author input -->
<filter
inGroup="native-xml=>author"
class="APP\plugins\importexport\native\filter\NativeXmlAuthorFilter"
isTemplate="0" />
<!-- Native XML article file input -->
<filter
inGroup="native-xml=>SubmissionFile"
class="APP\plugins\importexport\native\filter\NativeXmlArticleFileFilter"
isTemplate="0" />
<!-- Native XML submission file output -->
<filter
inGroup="SubmissionFile=>native-xml"
class="PKP\plugins\importexport\native\filter\SubmissionFileNativeXmlFilter"
isTemplate="0" />
<!-- Native XML article galley output -->
<filter
inGroup="article-galley=>native-xml"
class="APP\plugins\importexport\native\filter\ArticleGalleyNativeXmlFilter"
isTemplate="0" />
<!-- Native XML article galley input -->
<filter
inGroup="native-xml=>ArticleGalley"
class="APP\plugins\importexport\native\filter\NativeXmlArticleGalleyFilter"
isTemplate="0" />
<filter
inGroup="publication=>native-xml"
class="APP\plugins\importexport\native\filter\PublicationNativeXmlFilter"
isTemplate="0" />
<filter
inGroup="native-xml=>Publication"
class="APP\plugins\importexport\native\filter\NativeXmlPublicationFilter"
isTemplate="0" />
</filters>
</filterConfig>
+16
View File
@@ -0,0 +1,16 @@
<?php
/**
* @file plugins/importexport/native/index.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup plugins_importexport_native
*
* @brief Wrapper for XML native import/export plugin.
*
*/
return new \APP\plugins\importexport\native\NativeImportExportPlugin();
@@ -0,0 +1,112 @@
# M. Ali <vorteem@gmail.com>, 2023.
# "M. Ali" <vorteem@gmail.com>, 2024.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:43+00:00\n"
"PO-Revision-Date: 2024-01-20 03:39+0000\n"
"Last-Translator: \"M. Ali\" <vorteem@gmail.com>\n"
"Language-Team: Arabic <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/ar/>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 4.18.2\n"
msgid "plugins.importexport.native.displayName"
msgstr "إضافة Native XML"
msgid "plugins.importexport.native.description"
msgstr "استيراد وتصدير المقالات والأعداد بالصيغ المحلية لـ XML."
msgid "plugins.importexport.native.import"
msgstr "استيراد"
msgid "plugins.importexport.native.import.instructions"
msgstr "إرفع ملف XML لاستيراده"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "إختر المقالات المزمع تصديرها"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "تصدير المقالات"
msgid "plugins.importexport.native.exportIssues"
msgstr "تصدير الأعداد"
msgid "plugins.importexport.native.results"
msgstr "استيراد النتائج"
msgid "plugins.inportexport.native.uploadFile"
msgstr "لطفاً، إرفع ملفاً ضمن \"استيراد\" للمتابعة."
msgid "plugins.importexport.native.importComplete"
msgstr "الاستيراد إكتمل بنجاح. الفقرات الآتية تم استيرادها:"
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"الاستعمال: {$scriptName} {$pluginName} [command] ...\n"
"Commands:\n"
"\timport [xmlFileName] [journal_path] [user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] [articleId2] ..."
"\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"عوامل إضافية مطلوبة لاستيراد البيانات كما يلي\n"
"اعتماداً على عقدة الجذر لملف XML.\n"
"\n"
"إن كانت عقدة الجذر هي <article> أو <articles>، المزيد من العوامل مطلوبة "
"أيضاً.\n"
"الصيغ الآتية مقبولة\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "قسم غير معروف: {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr ""
"لا بد من إعطاء اسم المستخدم باستعمال العامل --user_name أو -u بشكله المختصر."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr "إن عنوان القسم \"{$section1Title}\" وعنوان القسم \"{$section2Title}\" ضمن العدد \"{$issueTitle}\" يطابقان أقسام أخرى مغايرة في المجلة."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr "إن عنوان القسم \"{$sectionTitle}\" ضمن العدد \"{$issueTitle}\" يطابق أحد الأقسام الموجودة في المجلة، غير أن عنواناً آخر في هذا القسم لا يطابق عنواناً آخر ضمن ذلك القسم من المجلة."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr "إن مختصر القسم \"{$section1Abbrev}\" ومختصر القسم \"{$section2Abbrev}\" ضمن العدد \"{$issueTitle}\" يطابقان أقسام أخرى مغايرة في المجلة."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr "إن مختصر القسم \"{$sectionAbbrev}\" ضمن العدد \"{$issueTitle}\" يطابق أحد الأقسام الموجودة في المجلة، غير أن مختصراً آخر في هذا القسم لا يطابق مختصراً آخر ضمن ذلك القسم من المجلة."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr "لا أحد أو أكثر من واحد من الأعداد تطابق رمز تعريف العدد المذكور \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr "هناك عدد موجود يحمل الرمز التعريفي {$issueId} المطابق للرمز التعريفي للعدد المذكور \"{$issueIdentification}\". هذا العدد لن يتم تعديله، لكن ستتم إضافة المقالات إليه."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "إن عنصر تعريف العدد مفقود من المقالة \"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr "إن المقالة \"{$articleTitle}\" مضمنة في أحد الأعداد، لكنها بلا تأريخ نشر."
msgid "plugins.importexport.common.error.coverImageNameUnspecified"
msgstr "تم تضمين صورة الغلاف بدون تعيين الاسم."
msgid "plugins.importexport.common.error.invalidFileExtension"
msgstr "تم تحديد صورة غلاف ذات إمتداد ملف خاطئ."
@@ -0,0 +1,117 @@
# Osman Durmaz <osmandurmaz@hotmail.de>, 2023.
msgid ""
msgstr ""
"PO-Revision-Date: 2023-06-02 22:43+0000\n"
"Last-Translator: Osman Durmaz <osmandurmaz@hotmail.de>\n"
"Language-Team: Azerbaijani <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/az/>\n"
"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "Native XML qoşması"
msgid "plugins.importexport.native.import"
msgstr "İdxal edin"
msgid "plugins.importexport.native.import.instructions"
msgstr "İdxal ediləcək XML faylı yükləyin"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "İxrac etmək üçün məqalələri seçin"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Məqalələri ixrac edin"
msgid "plugins.importexport.native.exportIssues"
msgstr "Nömrələri ixrac edin"
msgid "plugins.importexport.native.results"
msgstr "İdxal edin nəticə"
msgid "plugins.importexport.native.importComplete"
msgstr "İdxal etmə uğurla tamamlandı. Aşağıdakı elementlər idxal edildi:"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Naməlum bölmə {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr "Göstərilən istifadəçi \"{$userName}\" mövcud deyil."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"\"{$section1Title}\" bölmə adı və \"{$issueTitle}\" başlıqlı nömrə \""
"{$section2Title}\" bölmə adı, mövcud fərqli jurnal bölmələri ilə uyuşdu."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"\"{$issueTitle}\" nömrəsindəki \"{$sectionTitle}\" bölmə başlığı, mövcud bir "
"Jurnal bölməsi ilə uyğundur, ancaq bu bölmənin başqa bir başlığı, mövcud "
"Jurnal bölməsinin başqa bir başlığı ilə uyğun gəlmir."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"\"{$section1Abbrev}\" bölməsinin qısa adı və \"{$issueTitle}\" nömrəsinin \""
"{$section2Abbrev}\" bölməsinin qısa adı, fərqli mövcud Jurnal bölmələri ilə "
"uyuşdu."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Nömrələrdən heç biri və ya birdən çox nömrə, göstərilən nömrə tərifi \""
"{$issueIdentification}\" ilə uyğun gəlmir."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "\"{$articleTitle}\" məqaləsi üçün nömrə tərifetmə elementi əskikdir."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"\"{$articleTitle}\" məqaləsi bir nömrə içində yer alır, ancaq nəşr tarixi "
"yoxdur."
msgid "plugins.importexport.native.description"
msgstr ""
"Məqalələri və nömrələri OJS-nin təbii XML formatına idxal və ixrac edin."
msgid "plugins.inportexport.native.uploadFile"
msgstr ""
"Davam etmək üçün zəhmət olmasa \"İçə Transfer et\" altında bir fayl yükləyin."
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"İstifadə: {$scriptName} {$pluginName} [command] ...\n"
"Əmrlər:\n"
" import [xmlFileName] [journal_path] [user_name] ...\n"
" export [xmlFileName] [journal_path] articles [articleId1] [articleId2] ...\n"
" export [xmlFileName] [journal_path] article [articleId]\n"
" export [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
" export [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"XML sənədinin kökünə bağlı olaraq aşağıdakı kimi dataları qəbul etmək üçün "
"əlavə parametrlər lazımdır.\n"
"\n"
"Kök düyün <article> və ya <articles> isə, əlavə parametlər lazımdır.\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
" issue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
" issue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
" issue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"\"{$issueTitle}\" nömrəsindəki \"{$sectionAbbrev}\" bölmənin qısaltması, "
"mövcud bir jurnalın bölməsi ilə uyğundur, ancaq bu bölmənin başqa bir "
"qısaltması ilə uyğun gəlmir."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"{$issueId} ID-si ilə mövcud nömrə, \"{$issueIdentification}\" ID-si ilə "
"verilən nömrə məlumatı ilə uyuşur. Bu nömrə dəyişdirilməyəcək, ancaq "
"məqalələr əlavə ediləcəkdir."
@@ -0,0 +1,132 @@
# Cyril Kamburov <cc@intermedia.bg>, 2021, 2022, 2023.
msgid ""
msgstr ""
"PO-Revision-Date: 2023-11-20 03:17+0000\n"
"Last-Translator: Cyril Kamburov <cc@intermedia.bg>\n"
"Language-Team: Bulgarian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/bg/>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.18.2\n"
msgid "plugins.importexport.native.displayName"
msgstr "Плъгин за собствен XML формат"
msgid "plugins.importexport.native.description"
msgstr ""
"Импортиране и експортиране на статии и цели броеве в собствен XML формат на "
"OJS."
msgid "plugins.importexport.native.import"
msgstr "Импорт"
msgid "plugins.importexport.native.import.instructions"
msgstr "Качване на XML файл за импорт"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Изберете статии за експорт"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Експорт на статии"
msgid "plugins.importexport.native.exportIssues"
msgstr "Експорт на броеве"
msgid "plugins.importexport.native.results"
msgstr "Резултати от импорт"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Моля, качете файл в „Импорт“ за да продължите."
msgid "plugins.importexport.native.importComplete"
msgstr "Импортирането завърши успешно. Следните елементи бяха внесени:"
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Начин на употреба: {$scriptName} {$pluginName} [command] ...\n"
"Команди:\n"
"\timport [xmlFileName] [journal_path] [--user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] "
"[articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"За импортиране на данни са необходими допълнителни параметри, както следва, "
"в зависимост\n"
"на основния възел на XML документа. .\n"
"\n"
"Ако основния възел е <article> или <articles> се изискват допълнителни "
"параметри.\n"
"Приемат се следните формати:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--"
"user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--"
"user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Непозната секция/раздел {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr ""
"Потребителят трябва да бъде предоставен чрез команден параметър --user_name "
"или -u."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Заглавието на секцията \"{$section1Title}\" и заглавието на секцията "
"\"{$section2Title}\" в \"{$issueTitle}\" в броя съвпадат с различните "
"съществуващи раздели на списанието."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"Заглавието на секцията \"{$sectionTitle}\" в \"{$issueTitle}\" в броя "
"съвпадат със съществуващ раздел на списанието, но друго заглавие на този "
"раздел не съвпада с друго заглавие на съществуващ раздел на списанието."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"Абревиатурата на секцията \"{$section1Abbrev}\" и абревиатурата на секцията "
"\"{$section2Title}\" в \"{$issueTitle}\" в броя съвпадат с различните "
"съществуващи раздели на списанието."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"Абревиатурата на секцията \"{$sectionAbbrev}\" в \"{$issueTitle}\" в броя "
"съвпадат със съществуващ раздел на списанието, но друга абревиатура в този "
"раздел не съвпада с друга абревиатура в съществуващ раздел на списанието."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Нито един или повече от един брой на списанието съответства на дадената "
"идентификация \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"Съществуващ брой с идентификатор {$issueId} съвпада с дадената идентификация "
"за брой \"{$issueIdentification}\". Този брой няма да бъде променен, но "
"статиите ще бъдат добавени."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr ""
"Елементът за идентификация на броя липсва за статията \"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"Статията \"{$articleTitle}\" се съдържа в броя, но няма дата на публикуване."
msgid "plugins.importexport.common.error.invalidFileExtension"
msgstr "Посочено е изображение на корицата с невалидно файлово разширение."
msgid "plugins.importexport.common.error.coverImageNameUnspecified"
msgstr "Изображението на корицата беше вградено без посочване на име."
@@ -0,0 +1,128 @@
# Jordi LC <jordi.lacruz@uab.cat>, 2021.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-08-03 09:36+0000\n"
"Last-Translator: Jordi LC <jordi.lacruz@uab.cat>\n"
"Language-Team: Catalan <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/ca_ES/>\n"
"Language: ca_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "Mòdul XML nadiu"
msgid "plugins.importexport.native.description"
msgstr "Importar i exportar articles i números en el format XML nadiu d'OJS."
msgid "plugins.importexport.native.import"
msgstr "Importar"
msgid "plugins.importexport.native.import.instructions"
msgstr "Carregar arxiu XML per importar"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Seleccioneu els articles per exportar"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Exportar articles"
msgid "plugins.importexport.native.exportIssues"
msgstr "Exportar números"
msgid "plugins.importexport.native.results"
msgstr "Importar resultats"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Carregueu un arxiu en l'apartat \"Importar\" per continuar."
msgid "plugins.importexport.native.importComplete"
msgstr ""
"La importació s'ha completat correctament. S'han importat els elements "
"següents:"
#, fuzzy
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Ús: {$scriptName} {$pluginName} [command] ...\n"
"Ordres:\n"
"\timport [xmlFileName] [journal_path] [user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] "
"[articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Són necessaris paràmetres addicionals per importar dades de la següent "
"manera,\n"
"en funció del node arrel del document XML.\n"
"\n"
"Si el node arrel és <article> o <articles>, seran necessaris paràmetres "
"addicionals.\n"
"S'accepten els formats següents:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Secció desconeguda {$param}"
#, fuzzy
msgid "plugins.importexport.native.error.unknownUser"
msgstr "L'usuari/ària especificat (\"{$userName}\") no existeix."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Els títols de les seccions \"{$section1Title}\" i \"{$section2Title}\" del "
"número \"{$issueTitle}\" corresponen a les diferents seccions existents de "
"la revista."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"El títol de secció \"{$sectionTitle}\" en el número \"{$issueTitle}\" es "
"correspon amb una secció existent de la revista, però un altre títol "
"d'aquesta secció no coincideix amb cap títol de la secció existent de la "
"revista."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"Les abreviatures de les seccions \"{$section1Abbrev}\" i "
"\"{$section2Abbrev}\" del número \"{$issueTitle}\" corresponen a les "
"diferents seccions existents de la revista."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"L'abreviatura de secció \"{$sectionTitle}\" en el número \"{$issueTitle}\" "
"es correspon amb una secció existent de la revista, però una altra "
"abreviatura d'aquesta secció no coincideix amb cap abreviatura de la secció "
"existent de la revista."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Cap número o més d'un coincideixen amb la identificació de número "
"proporcionada \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"El número existent amb l'identificador {$issueId} coincideix amb "
"l'identificador de número proporcionat \"{$issueIdentification}\". Aquest "
"número no es modificarà, però s'hi afegiran els articles."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr ""
"No es troba l'element identificador de número per a l'article "
"\"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"L'article \"{$articleTitle}\" està inclòs en un número, però no té data de "
"publicació."
@@ -0,0 +1,116 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2020-04-12 19:37+0000\n"
"Last-Translator: Hewa Salam Khalid <hewa.salam@koyauniversity.org>\n"
"Language-Team: Kurdish <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/ku_IQ/>\n"
"Language: ku_IQ\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "گرێدانی XMLی ڕەسەن"
msgid "plugins.importexport.native.description"
msgstr ""
"هاوردەکردن و هەناردەکردنی توێژینەوە و ژمارەی گۆڤارەکان لە سیستەمی گۆڤاری "
"کراوە بە ڕێکخستنی XML."
msgid "plugins.importexport.native.import"
msgstr "هاوردەکردن"
msgid "plugins.importexport.native.import.instructions"
msgstr "بارکردنی XML بۆ هاوردەکردن"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "ئەو توێژینەوانە دیاری بکە کە دەتەوێت هەناردەیان بکەیت"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "هەناردەکردنی توێژینەوەکان"
msgid "plugins.importexport.native.exportIssues"
msgstr "هەناردەکردنی ژمارەکانی گۆڤار"
msgid "plugins.importexport.native.results"
msgstr "ئەنجامەکان"
msgid "plugins.inportexport.native.uploadFile"
msgstr "تکایە فایلێک لە ژێر ''هاوردەکردن'' بار بکە بۆ بەردەوامبون."
msgid "plugins.importexport.native.importComplete"
msgstr "هاوردەکردنەکە سەرکەوتو بو. ئەم دانانە هاوردە کران:"
#, fuzzy
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"بەکارهێنان: {$scriptName} {$pluginName} [command] ...\n"
"فەرمانەکان:\n"
"\timport [xmlFileName] [journal_path] [user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] "
"[articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"هۆکارە داواکراوەکانی زیادکردن بۆ هێنانی زانیاری\n"
"بە پشتبەستن بە XML \n"
"\n"
"ئەگەر <article> یان <articles> سەرچاوە بون زانیاری زیاتر داوا کراوە\n"
"ئەم ڕێکخستنانە قبوڵ کران:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "بەشێکی نەناسراو {$param}"
#, fuzzy
msgid "plugins.importexport.native.error.unknownUser"
msgstr "بەکارهێنەری دیاریکراو: \"{$userName}\"بەردەست نییە."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"ناونیشانی بەشی\"{$section1Title}\" و ناونیشانی بەشی\"{$section2Title}\" لە "
"\"{$issueTitle}\" لەگەڵ بەشێکی دیکەی گۆڤارەکە هاوشێوەیە."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"ناونیشانی بەشی \"{$section1Title}\" لە \"{$issueTitle}\" لەگەڵ بەشێکی "
"دیکەی گۆڤارێکە هاوشێوەیە، بەڵام ناونیشانی بەشەکەی دیکە هاوشێوەیی تێدا نییە."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"کورتکراوەی بەشی \"{$section1Abbrev}\" و کورتکراوەی بەشی "
"\"{$section2Abbrev}\" لە ژمارەی \"{$issueTitle}\" هاوشێوەی بەشەکانی دیکەن "
"لەم گۆڤارەدا."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"کورتکراوەی بەشی\"{$sectionAbbrev}\" لە ژمارەی \"{$issueTitle}\" هاوشێوەی "
"یەکێک لە ژمارەکانە، بەڵام ئەوەی دیکە هاوشێوەیی تێدا نییە."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr "هیچ کام لە ژمارەکان هاوشێوەییان نییە \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"ژمارەیەکی گۆڤار ئەم پێناسەی هەڵگرتووە {$issueId} کە هاوشێوەیە لەگەڵ ژمارەی "
"\"{$issueIdentification}\". ئەم ژمارەیە گۆڕانکاری تێدا نەکراوە، بەڵام ئەم "
"توێژینەوانەی بۆ زیاد دەبێت."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "ناسێنەری ئەم ژمارەیە لە توێژینەوەی \"{$articleTitle}\"یدا ونە."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"توێژینەوەی \"{$articleTitle}\" لەگەڵ ژمارەیەکی گۆڤارە بەڵام ڕێککەوتی "
"بڵاوکردنەوەی لەسەر نییە."
@@ -0,0 +1,127 @@
# Jiří Dlouhý <jiri.dlouhy@czp.cuni.cz>, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:43+00:00\n"
"PO-Revision-Date: 2023-10-28 15:06+0000\n"
"Last-Translator: Jiří Dlouhý <jiri.dlouhy@czp.cuni.cz>\n"
"Language-Team: Czech <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/cs/>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "Plugin nativního XML"
msgid "plugins.importexport.native.description"
msgstr "Importuje a exportuje v OJS články a čísla v OJS nativním XML formátu."
msgid "plugins.importexport.native.import"
msgstr "Import"
msgid "plugins.importexport.native.import.instructions"
msgstr "Nahrát XML soubor pro import"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Zvolte článek pro export"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Exportovat články"
msgid "plugins.importexport.native.exportIssues"
msgstr "Exportovat čísla"
msgid "plugins.importexport.native.results"
msgstr "Výsledky importu"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Nahrajte, prosím, soubor pod \"Import\", abyste mohli pokračovat."
msgid "plugins.importexport.native.importComplete"
msgstr "Import byl úspěšně dokončen. Byly importovány následující položky:"
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Použití: {$scriptName} {$pluginName} [command] ...\n"
"Příkazy:\n"
"\timport [xmlFileName] [journal_path] [--user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] [articleId2] ..."
"\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Pro import dat jsou nutné další parametry v závislosti na\n"
"kořenovém uzlu dokumentu XML.\n"
"\n"
"Pokud je kořenový uzel <article> či <articles>, jsou požadovány další "
"parametry.\n"
"Přijímán je následující formát:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--user_name]"
"\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--user_name]"
"\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Neznámá sekce {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr "Uživatel musí být zadán pomocí parametru --user_name nebo -u."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Název sekce \"{$section1Title}\" a název sekce \"{$section2Title}\" v čísle "
"{$issueTitle} odpovídá různým stávajícím sekcím časopisu."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"Název sekce \"{$sectionTitle}\" v čísle {$issueTitle} odpovídal existující "
"sekci časopisu, ale jiný název této sekce neodpovídá jinému názvu stávající "
"sekce časopisu."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"Zkratka sekce \"{$section1Abbrev}\" a zkratka sekce {$section2Abbrev}\" "
"čísla \"{$issueTitle}\" odpovídají různým stávajícím sekcím časopisu."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"Zkratka sekce \"{$sectionAbbrev}\" v čísle \"{$issueTitle}\" odpovídá "
"existující sekci časopisu, ale další zkratka této sekce neodpovídá jiné "
"zkratce existující sekce časopisu."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Žádné nebo naopak více než jedno číslo odpovídá identifikaci daného čísla "
"\"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"Existující číslo s id {$issueId} odpovídá zadané identifikaci čísla "
"\"{$issueIdentification}\". Toto číslo se nezmění, ale články budou přidány."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "Identifikační element čísla chybí v článku \"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"Článek \"{$articleTitle}\" je obsažen v tomto čísle, ale nemá zadáno datum "
"zveřejnění."
msgid "plugins.importexport.common.error.coverImageNameUnspecified"
msgstr "Titulní obrázek byl vložen bez uvedení názvu."
msgid "plugins.importexport.common.error.invalidFileExtension"
msgstr "Byl zadán titulní obrázek s neplatnou příponou souboru."
@@ -0,0 +1,117 @@
# Alexandra Fogtmann-Schulz <alfo@kb.dk>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:43+00:00\n"
"PO-Revision-Date: 2023-10-30 13:43+0000\n"
"Last-Translator: Alexandra Fogtmann-Schulz <alfo@kb.dk>\n"
"Language-Team: Danish <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/da/>\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "Native XML-plugin"
msgid "plugins.importexport.native.description"
msgstr "Importér og eksportér artikler og numre i OJS' eget XML-format."
msgid "plugins.importexport.native.import"
msgstr "Importér"
msgid "plugins.importexport.native.import.instructions"
msgstr "Upload XML-fil til import"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Udvælg artikler til eksport"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Eksportér artikler"
msgid "plugins.importexport.native.exportIssues"
msgstr "Eksportér numre"
msgid "plugins.importexport.native.results"
msgstr "Importresultater"
msgid "plugins.inportexport.native.uploadFile"
msgstr "For at fortsætte skal du uploade en fil under \"Import\"."
msgid "plugins.importexport.native.importComplete"
msgstr "Importen blev gennemført. Følgende numre blev importeret:"
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Anvendelse: {$scriptName} {$pluginName} [command] ...\n"
"Kommandoer:\n"
"\timporter [xmlFileName] [journal_path] [--user_name] ...\n"
"\teksporter [xmlFileName] [journal_path] artikler [articleId1] [articleId2] "
"...\n"
"\teksporter [xmlFileName] [journal_path] artikel [articleId]\n"
"\teksporter [xmlFileName] [journal_path] numre [issueId1] [issueId2] ...\n"
"\teksporter [xmlFileName] [journal_path] nummer [issueId]\n"
"\n"
"Yderligere parametre er nødvendige for at importere data som følger, "
"afhængigt\n"
"af rodelement i XML-dokumentet.\n"
"\n"
"Hvis rodelementet er <article> eller <articles>, kræves yderligere parametre."
"\n"
"Følgende formater accepteres:\n"
"\n"
"{$scriptName} {$pluginName} importer [xmlFileName] [journal_path] "
"[--user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} importer [xmlFileName] [journal_path] "
"[--user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} importer [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Ukendt sektion {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr ""
"Der skal angives en bruger ved at benytte --user_name eller -u kommando-"
"parametrene."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Sektionstitlen \"{$section1Title}\" og sektionstitlen \"{$section2Title}\" i "
"\"{$issueTitle}\" nummer matchede de forskellige eksisterende "
"tidsskriftssektioner."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr "Sektionstitlen \"{$sectionTitle}\" i \"{$issueTitle}\" nummer matchede en eksisterende tidsskriftssektion, men en anden titel i denne sektion stemmer ikke overens med en anden titel i det eksisterende tidsskrift."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr "Sektionsforkortelsen \"{$section1Abbrev}\" og sektionsforkortelsen \"{$section2Abbrev}\" fra \"{$issueTitle}\" nummer matchede de forskellige eksisterende tidsskriftssektioner."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr "Sektionsforkortelsen \"{$sectionAbbrev}\" i \"{$issueTitle}\" nummer matchede en eksisterende tidsskriftssektion, men en anden forkortelse af denne sektion stemmer ikke overens med en anden forkortelse af den eksisterende tidsskriftssektion."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr "Intet eller flere end et nummer matchede den givne nummer-identifikation \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr "Eksisterende nummer med id {$issueId} matcher den givne nummer-identifikation \"{$issueIdentification}\". Dette nummer vil ikke blive ændret, men artikler vil blive tilføjet."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "Artiklen \"{$articleTitle}\" mangler nummer-identifikation."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr "Artiklen \"{$articleTitle}\" er indeholdt i et nummer, men har ingen publiceringsdato."
msgid "plugins.importexport.common.error.coverImageNameUnspecified"
msgstr "Der blev indlejret et forsidebillede uden at angive et navn."
msgid "plugins.importexport.common.error.invalidFileExtension"
msgstr "Der blev angivet et forsidebillede med et ugyldigt filtypenavn."
@@ -0,0 +1,104 @@
# Heike Riegler <heike.riegler@julius-kuehn.de>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:56:45-07:00\n"
"PO-Revision-Date: 2021-06-25 09:17+0000\n"
"Last-Translator: Heike Riegler <heike.riegler@julius-kuehn.de>\n"
"Language-Team: German <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/de_DE/>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "Natives XML-Plugin"
msgid "plugins.importexport.native.description"
msgstr "Artikel und Ausgaben in OJS' nativem XML-Format importieren und exportieren."
msgid "plugins.importexport.native.import"
msgstr "Import"
msgid "plugins.importexport.native.import.instructions"
msgstr "Lade XML-Datei zum Import hoch"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Wählen Sie Artikel aus, die exportiert werden sollen"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Artikel exportieren"
msgid "plugins.importexport.native.exportIssues"
msgstr "Ausgaben exportieren"
msgid "plugins.importexport.native.results"
msgstr "Import Ergebnisse"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Bitte laden Sie unter \"Import\" eine Datei hoch, um fortzufahren."
msgid "plugins.importexport.native.importComplete"
msgstr "Der Import wurde erfolgreich abgeschlossen. Die folgenden Elemente wurden importiert:"
#, fuzzy
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Nutzung: {$scriptName} {$pluginName} [command] ...\n"
"Befehle:\n"
"\timport [xmlFileName] [journal_path] [user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] [articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Zusätzliche Parameter sind wie folgt erforderlich, abhängig\n"
"von dem Wurzelelement der XML-Datei.\n"
"\n"
"Wenn das Wurzelelement <article> oder <articles> ist, sind zusätzliche Parameter erforderlich.\n"
"Die folgenden Formate sind zulässig:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
""
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Unbekannte Rubrik {$param}"
#, fuzzy
msgid "plugins.importexport.native.error.unknownUser"
msgstr "Der angegebene Nutzer/die angegebene Nutzerin, \"{$userName}\", existiert nicht."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr "Rubrikentitel \"{$section1Title}\" und Rubrikentitel \"{$section2Title}\" in Ausgabe \"{$issueTitle}\" sind mit existierenden Rubriken vereinbar."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr "Rubrikentitel \"{$sectionTitle}\" in Ausgabe \"{$issueTitle}\" ist mit einer existierenden Rubrik vereinbar, aber ein anderer Titel ist mit existierenden Rubrikentiteln in dieser Zeitschrift nicht vereinbar."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr "Rubrikenabkürzung \"{$section1Abbrev}\" und Rubrikenabkürzung \"{$section2Abbrev}\" in Ausgabe \"{$issueTitle}\" sind mit existierenden Rubriken vereinbar."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr "Die Rubrikenabkürzung \"{$sectionAbbrev}\" in Ausgabe \"{$issueTitle}\" ist mit einer existierenden Rubrik vereinbar, aber eine andere Rubrikenabkürzung ist mit existierenden Rubrikenabkürzungen in dieser Zeitschrift nicht vereinbar."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr "Keine oder mehr als eine Ausgabe passen zu der angegebenen Ausgabenkennung \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr "Die existierende Ausgabe mit der ID {$issueId} passt zur angegebenen Kennung \"{$issueIdentification}\". Diese Ausgabe wird nicht verändert, aber Artikel werden hinzugefügt werden."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "Das Element zur Ausgabenidentifizierung fehlt für den Artikel \"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr "Der Artikel \"{$articleTitle}\" ist in einer Ausgabe enthalten, aber hat kein Veröffentlichungsdatum."
@@ -0,0 +1,8 @@
# Weblate Admin <alec@smecher.bc.ca>, 2023.
msgid ""
msgstr ""
"Language: dsb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Weblate\n"
@@ -0,0 +1,130 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:56:45-07:00\n"
"PO-Revision-Date: 2019-09-30T06:56:45-07:00\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "plugins.importexport.native.displayName"
msgstr "Native XML Plugin"
msgid "plugins.importexport.native.description"
msgstr "Import and export articles and issues in OJS's native XML format."
msgid "plugins.importexport.native.import"
msgstr "Import"
msgid "plugins.importexport.native.import.instructions"
msgstr "Upload XML file to import"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Select articles to export"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Export Articles"
msgid "plugins.importexport.native.exportIssues"
msgstr "Export Issues"
msgid "plugins.importexport.native.results"
msgstr "Import Results"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Please upload a file under \"Import\" in order to continue."
msgid "plugins.importexport.native.importComplete"
msgstr "The import completed successfully. The following items were imported:"
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Usage: {$scriptName} {$pluginName} [command] ...\n"
"Commands:\n"
"\timport [xmlFileName] [journal_path] [--user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] "
"[articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Additional parameters are required for importing data as follows, depending\n"
"on the root node of the XML document.\n"
"\n"
"If the root node is <article> or <articles>, additional parameters are "
"required.\n"
"The following formats are accepted:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--"
"user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--"
"user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Unknown section {$param}"
msgid "plugins.importexport.common.error.invalidFileExtension"
msgstr "A cover image with an invalid file extension was specified."
msgid "plugins.importexport.common.error.coverImageNameUnspecified"
msgstr "A cover image was embedded without specifying a name."
msgid "plugins.importexport.native.error.unknownUser"
msgstr ""
"A user must be provided by using the --user_name or -u command parameter."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"The section title \"{$section1Title}\" and the section title "
"\"{$section2Title}\" in the \"{$issueTitle}\" issue matched the different "
"existing journal sections."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"The section title \"{$sectionTitle}\" in the \"{$issueTitle}\" issue matched "
"an existing journal section, but another title of this section doesn't match "
"with another title of the existing journal section."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"The section abbreviation \"{$section1Abbrev}\" and the section abbreviation "
"\"{$section2Abbrev}\" of the \"{$issueTitle}\" issue matched the different "
"existing journal sections."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"The section abbreviation \"{$sectionAbbrev}\" in the \"{$issueTitle}\" issue "
"matched an existing journal section, but another abbreviation of this "
"section doesn't match with another abbreviation of the existing journal "
"section."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"None or more than one issue matches the given issue identification "
"\"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"Existing issue with id {$issueId} matches the given issue identification "
"\"{$issueIdentification}\". This issue will not be modified, but articles "
"will be added."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr ""
"The issue identification element is missing for the article "
"\"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"The article \"{$articleTitle}\" is contained within an issue, but has no "
"published date."
@@ -0,0 +1,142 @@
# Jordi LC <jordi.lacruz@uab.cat>, 2021, 2024.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:43+00:00\n"
"PO-Revision-Date: 2024-02-15 15:39+0000\n"
"Last-Translator: Jordi LC <jordi.lacruz@uab.cat>\n"
"Language-Team: Spanish <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/es/>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.18.2\n"
msgid "plugins.importexport.native.displayName"
msgstr "Módulo XML nativo"
msgid "plugins.importexport.native.description"
msgstr "Importar y exportar libros en el formato XML nativo."
msgid "plugins.importexport.native.import"
msgstr "Importar"
msgid "plugins.importexport.native.import.instructions"
msgstr "Cargar archivo XML para importar"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Seleccione los artículos para exportar"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Exportar artículos"
msgid "plugins.importexport.native.exportIssues"
msgstr "Exportar números"
msgid "plugins.importexport.native.results"
msgstr "Importar resultados"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Cargue un archivo en el apartado \"Importar\" para continuar."
msgid "plugins.importexport.native.importComplete"
msgstr ""
"La importación se ha completado con éxito. Se han importado los siguientes "
"elementos:"
#, fuzzy
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Uso: {$scriptName} {$pluginName} [command] ...\n"
"Comandos:\n"
"\timport [xmlFileName] [journal_path] [user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] "
"[articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Se requieren los siguientes parámetros adicionales para importar datos, \n"
"en función del nodo raíz del documento XML.\n"
"\n"
"Si el nodo raíz es <article> o <articles>, se necesitarán parámetros "
"adicionales.\n"
"Se aceptan los formatos siguientes:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Sección desconocida {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr ""
"Se debe proporcionar un usuario/a a través del parámetro de comando --"
"user_name o -u."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Los títulos de sección \"{$section1Title}\" y \"{$section2Title}\" del "
"número \"{$issueTitle}\" corresponden a las diferentes secciones existentes "
"de la revista."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"El título de sección \"{$sectionTitle}\" del número \"{$issueTitle}\" se "
"corresponde con una sección existente de la revista, pero otro título de "
"esta sección no se corresponde con un título en la sección existente de la "
"revista."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"Las abreviaturas de sección \"{$section1Abbrev}\" y \"{$section2Abbrev}\" "
"del número \"{$issueTitle}\" se corresponden con las diferentes secciones "
"existentes de la revista."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"La abreviatura de sección \"{$sectionAbbrev}\" del número \"{$issueTitle}\" "
"se corresponde con una sección existente de la revista, pero otra "
"abreviatura de esta sección no se corresponde con una abreviatura en la "
"sección existente de la revista."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Ningún número o más de uno coinciden con la identificación de número "
"proporcionada (\"{$issueIdentification}\")."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"El número ya existente con el identificador {$issueId} coincide con el "
"identificador de número proporcionado (\"{$issueIdentification}\"). Este "
"número no se modificará, pero se añadirán los artículos."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr ""
"No se encuentra el elemento identificador de número para el artículo "
"\"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"El artículo \"{$articleTitle}\" está asignado a un número pero no tiene "
"fecha de publicación."
#~ msgid "plugins.importexport.native.export"
#~ msgstr "Exportar"
msgid "plugins.importexport.common.error.coverImageNameUnspecified"
msgstr "Se ha incrustado una imagen de portada sin especificar un nombre."
msgid "plugins.importexport.common.error.invalidFileExtension"
msgstr ""
"Se ha especificado una imagen de portada con una extensión de archivo "
"inválida."
@@ -0,0 +1,104 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:43+00:00\n"
"PO-Revision-Date: 2019-11-19T11:05:43+00:00\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "plugins.importexport.native.displayName"
msgstr "افزونه XML مقالات و شماره ها"
msgid "plugins.importexport.native.description"
msgstr "درون ریزی یا برون دهی مقالات و شماره ها"
msgid "plugins.importexport.native.import"
msgstr "درون ریزی"
msgid "plugins.importexport.native.import.instructions"
msgstr "آپلود یک فایل XML برای درون ریزی"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "مقاله مورد نظر برای برون دهی را انتخاب کنید."
msgid "plugins.importexport.native.exportSubmissions"
msgstr "برون دهی مقالات"
msgid "plugins.importexport.native.exportIssues"
msgstr "برون دهی شماره ها"
msgid "plugins.importexport.native.results"
msgstr "نتایج"
msgid "plugins.inportexport.native.uploadFile"
msgstr "برای ادامه ابتدا یک فایل را در قسمت \"درون ریزی\" آپلود کنید"
msgid "plugins.importexport.native.importComplete"
msgstr "درون ریزی با موفقیت انجام شد، موارد زیر به سیستم درون ریزی شد:"
#, fuzzy
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"نحوه استفاده: {$scriptName} {$pluginName} [command] ... فرامین: import "
"[xmlFileName] [journal_path] [user_name] ... export [xmlFileName] "
"[journal_path] articles [articleId1] [articleId2] ... export [xmlFileName] "
"[journal_path] article [articleId] export [xmlFileName] [journal_path] "
"issues [issueId1] [issueId2] ... export [xmlFileName] [journal_path] issue "
"[issueId]\tبرای وارد کردن داده ها پارامترهای دیگری به شرح ذیل بسته به root "
"node سند XML لازم است: چنانچه root node موجود <article> و یا <articles> "
"باشد پارامترهای دیگری نیز لازم است. الگوهای زیر قابل قبول است:"
"\t{$scriptName} {$pluginName} import [xmlFileName] [journal_path] "
"[user_name] issue_id [issueId] section_id [sectionId]\t{$scriptName} "
"{$pluginName} import [xmlFileName] [journal_path] [user_name] issue_id "
"[issueId] section_name [name]\t{$scriptName} {$pluginName} import "
"[xmlFileName] [journal_path] issue_id [issueId] section_abbrev [abbrev]"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "بخش ناشناس {$param}"
#, fuzzy
msgid "plugins.importexport.native.error.unknownUser"
msgstr "کاربر ذکر شده \"{$userName}\" وجود ندارد."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"نوع مقاله ذکر شده \"{$section1Title}\" و \"{$section2Title}\" در شماره مجله "
"\"{$issueTitle}\" برای نوع دیگری از مقاله در این مجله بکار رفته است."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"عنوان نوع مقاله \"{$sectionTitle}\" در شماره مجله \"{$issueTitle}\" برای یک "
"نوع دیگز مقاله بکار رفته است ولی عنوان دیگر این نوع مقاله تکراری نیست."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"علامت اختصاری نوع مقاله اول \"{$section1Abbrev}\" و دوم "
"\"{$section2Abbrev}\" در مجله شماره \"{$issueTitle}\" مطابقت با مجلات مختلفی "
"دارند."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"علامت اختصاری \"{$sectionAbbrev}\" در شماره مجله \"{$issueTitle}\" مطابق با "
"مجله موجودی است ولی علامت اختصاری دیگر آن مطابقت ندارد."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr "هیچ یا چندی شماره با این شناسه یافت شد. \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"شماره موجود با شناسه {$issueId} با شناسه داده شده «{$issueIdentification}» "
"مطابقت دارد. اطلاعات کلی شماره تغییری نخواهد کرد و تنها مقالات به آن افزوده "
"خواهد شد."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "شناسه شماره مقاله «{$articleTitle}» یافت نشد."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"مقاله «{$articleTitle}» در داخل شماره‌ای گنجانده شده است، اما دارای تاریخ "
"انتشاری نمی‌باشد."
@@ -0,0 +1,131 @@
# Antti-Jussi Nygård <ajnyga@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T11:05:43+00:00\n"
"PO-Revision-Date: 2023-12-05 19:46+0000\n"
"Last-Translator: Antti-Jussi Nygård <ajnyga@gmail.com>\n"
"Language-Team: Finnish <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/fi/>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.18.2\n"
msgid "plugins.importexport.native.displayName"
msgstr "Järjestelmän XML-lisäosa"
msgid "plugins.importexport.native.description"
msgstr ""
"Tuo ja vie artikkeleita ja numeroita OJS-järjestelmän omassa XML-muodossa."
msgid "plugins.importexport.native.import"
msgstr "Tuo"
msgid "plugins.importexport.native.import.instructions"
msgstr "Lataa tuotava XML-tiedosto"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Valitse vietävät artikkelit"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Vie artikkeleita"
msgid "plugins.importexport.native.exportIssues"
msgstr "Vie numeroita"
msgid "plugins.importexport.native.results"
msgstr "Tuonnin tulokset"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Ole hyvä ja lataa tiedosto kohdassa \"Tuo\" jatkaaksesi."
msgid "plugins.importexport.native.importComplete"
msgstr "Tuonti onnistui. Seuraavat kohteet tuotiin:"
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Käyttö: {$scriptName} {$pluginName} [command] ...\n"
"Komennot:\n"
"\timport [xmlFileName] [journal_path] [--user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] [articleId2] ..."
"\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Ylimääräisiä parametrejä tarvitaan tuontiin riippuen XML-tiedoston\n"
"juurielementistä.\n"
"\n"
"Mikäli juurielementti on <article> tai <articles>, ylimääräisiä parametrejä "
"tarvitaan.\n"
"Seuraavat muodot ovat sallittuja:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--user_name]"
"\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--user_name]"
"\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Tuntematon osasto {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr "Käyttäjä on annettava käyttämällä valintaa --user_name- tai -u."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Osaston otsikko \"{$section1Title}\" ja osaston otsikko \"{$section2Title}\" "
"numerossa \"{$issueTitle}\" täsmäsivät eri olemassa olevien osastojen kanssa."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"Osaston otsikko \"{$sectionTitle}\" numerossa \"{$issueTitle}\" täsmää jo "
"olemassa olevan julkaisun osaston kanssa, mutta toinen osastosta käytetty "
"lyhenne ei täsmää toisen lyhenteen kanssa, joka on käytössä olemassa "
"olevassa julkaisun osastossa."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"Osaston lyhenne \"{$section1Abbrev}\" ja osaston lyhenne "
"\"{$section2Abbrev}\" numerossa\"{$issueTitle}\" täsmäsivät eri olemassa "
"olevien osastojen kanssa."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"Osaston lyhenne \"{$sectionAbbrev}\"numerossa \"{$issueTitle}\" täsmää jo "
"olemassa olevan julkaisun osaston kanssa, mutta toinen osastosta käytetty "
"lyhenne ei täsmää toisen lyhenteen kanssa, joka on käytössä olemassa "
"olevassa julkaisun osastossa."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Ei yksikään tai useampi kuin yksi numero täsmää tunnistiedon "
"\"{$issueIdentification}\" kanssa."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"Numerolla {$issueId} on sama tunniste \"{$issueIdentification}\". Numeroa ei "
"muokata, mutta nyt tuotavat artikkelit lisätään siihen."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "Numeron tunnistetieto puuttuu artikkelista \"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"Artikkeli \"{$articleTitle}\" sisältyy numeroon, mutta sille ei ole annettu "
"julkaisupäivää."
msgid "plugins.importexport.common.error.invalidFileExtension"
msgstr "Kansikuvan tiedostopääte on virheellinen."
msgid "plugins.importexport.common.error.coverImageNameUnspecified"
msgstr "Kansikuvan nimi puuttuu."
@@ -0,0 +1,143 @@
# "Marie-Hélène Vézina [UdeMontréal]" <marie-helene.vezina@umontreal.ca>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:56:45-07:00\n"
"PO-Revision-Date: 2023-10-31 19:38+0000\n"
"Last-Translator: \"Marie-Hélène Vézina [UdeMontréal]\" <marie-helene."
"vezina@umontreal.ca>\n"
"Language-Team: French (Canada) <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/fr_CA/>\n"
"Language: fr_CA\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.18.2\n"
msgid "plugins.importexport.native.displayName"
msgstr "Plugiciel XML natif d'OJS"
msgid "plugins.importexport.native.description"
msgstr ""
"Importer et exporter des articles et des numéros dans le format XML natif "
"dOJS."
msgid "plugins.importexport.native.import"
msgstr "Importer"
msgid "plugins.importexport.native.import.instructions"
msgstr "Téléverser un fichier XML pour l'importer"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Sélectionner les articles à exporter"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Exporter les articles"
msgid "plugins.importexport.native.exportIssues"
msgstr "Exporter les numéros"
msgid "plugins.importexport.native.results"
msgstr "Résultats de l'importation"
msgid "plugins.inportexport.native.uploadFile"
msgstr ""
"Veuillez téléverser un fichier sous « Importer » pour pouvoir poursuivre."
msgid "plugins.importexport.native.importComplete"
msgstr ""
"L'importation a été complétée avec succès. Les éléments suivants ont été "
"importés :"
#, fuzzy
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Utilisation : {$scriptName} {$pluginName} [command] ...\n"
"Commandes :\n"
"\timport [xmlFileName] [journal_path] [user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] "
"[articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Des paramètres supplémentaires sont requis pour importer des données comme "
"suit, selon\n"
"le nœud racine du document XML.\n"
"\n"
"Si le noeud racine est <article> ou <articles>, des paramètres "
"supplémentaires sont requis.\n"
"Les formats suivants sont acceptés :\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Section {$param} inconnue"
#, fuzzy
msgid "plugins.importexport.native.error.unknownUser"
msgstr "L'utilisateur-trice spécifié-e, « {$userName} », n'existe pas."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Le titre de rubrique « {$section1Title} » et le titre de rubrique "
"« {$section2Title} » dans le numéro « {$issueTitle} » sont identiques à des "
"rubriques existantes dans la revue."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"Le titre de rubrique « {$sectionTitle} » dans le numéro « {$issueTitle} » "
"est identique à une rubrique existante dans la revue, mais un autre titre de "
"cette rubrique ne correspond pas à un autre titre dans une rubrique "
"existante de la revue."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"L'abréviation « {$section1Abbrev} » et l'abréviation « {$section2Abbrev} » "
"du numéro « {$issueTitle} » sont identiques à des rubriques existantes dans "
"la revue."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"L'abréviation de rubrique « {$sectionAbbrev} » du numéro « {$issueTitle} » "
"correspond à un rubrique existante de la revue, mais une autre abréviation "
"de cette rubrique ne correspond pas à aucune autre abréviation de rubrique "
"existante."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Aucun ou plus d'un numéro correspond à l'identifiant de numéro donné, soit "
"« {$issueIdentification} »."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"Un numéro existant (ID: {$issueId}) correspond à l'identifiant de numéro "
"donné (« {$issueIdentification} »). Le numéro ne sera pas modifié, mais les "
"articles seront ajoutés."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr ""
"L'élément d'identification du numéro est manquant pour l'article intitulé "
"« {$articleTitle} »."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"L'article intitulé « {$articleTitle} » se retrouve dans un numéro, mais n'a "
"pas de date de publication."
msgid "plugins.importexport.common.error.coverImageNameUnspecified"
msgstr "Une image de couverture a été incorporée sans spécifier de nom."
msgid "plugins.importexport.common.error.invalidFileExtension"
msgstr ""
"Une image de couverture avec une extension de fichier non valide a été "
"spécifiée."
@@ -0,0 +1,127 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-05-21 08:10+0000\n"
"Last-Translator: Hans Spijker <hans.spijker@huygens.knaw.nl>\n"
"Language-Team: French <http://translate.pkp.sfu.ca/projects/ojs/importexport-"
"native/fr_FR/>\n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "Module XML natif"
msgid "plugins.importexport.native.description"
msgstr ""
"Importer et exporter des articles et numéros au format XML natif d'OJS."
msgid "plugins.importexport.native.import"
msgstr "Importer"
msgid "plugins.importexport.native.import.instructions"
msgstr "Téléverser un fichier XML à importer"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Sélectionner les articles à exporter"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Exporter les articles"
msgid "plugins.importexport.native.exportIssues"
msgstr "Exporter les numéros"
msgid "plugins.importexport.native.results"
msgstr "Résultats de l'importation"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Veuillez téléverser un fichier sous « Importer » pour continuer."
msgid "plugins.importexport.native.importComplete"
msgstr ""
"L'importation a bien été réalisée. Les éléments suivants ont été importés :"
#, fuzzy
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Utilisation : {$scriptName} {$pluginName} [command] ...\n"
"Commandes :\n"
"\timport [xmlFileName] [journal_path] [user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] "
"[articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Des paramètres supplémentaires sont requis pour importer des données comme "
"suit, selon\n"
"le nœud racine du document XML.\n"
"\n"
"Si le noeud racine est <article> ou <articles>, des paramètres "
"supplémentaires sont requis.\n"
"Les formats suivants sont acceptés :\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Section {$param} inconnue"
#, fuzzy
msgid "plugins.importexport.native.error.unknownUser"
msgstr "L'utilisatrice ou utilisateur spécifié, « {$userName] », n'existe pas."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Le titre de rubrique « {$section1Title} » et le titre de rubrique "
"« {$section2Title} » dans le numéro « {$issueTitle} » sont identiques à des "
"rubriques existantes dans la revue."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"Le titre de rubrique « {$sectionTitle} » dans le numéro « {$issueTitle} » "
"est identique à une rubrique existante dans la revue, mais un autre titre de "
"cette rubrique ne correspond à aucun autre titre de rubrique existante de la "
"revue."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"L'abréviation « {$section1Abbrev} » et l'abréviation « {$section2Abbrev} » "
"du numéro « {$issueTitle} » sont identiques à des rubriques existantes dans "
"la revue."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"L'abréviation de rubrique « {$sectionAbbrev} » du numéro « {$issueTitle} » "
"correspond à un rubrique existante de la revue, mais une autre abréviation "
"de cette rubrique ne correspond pas à aucune autre abréviation de rubrique "
"existante."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Aucun ou plus d'un numéro correspond à l'identifiant de numéro donné "
"« {$issueIdentification} »."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"Un numéro existant (ID: {$issueId}) correspond à l'identifiant de numéro "
"donné (« {$issueIdentification} »). Le numéro ne sera pas modifié, mais les "
"articles seront ajoutés."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr ""
"L'élément d'identification du numéro est manquant pour l'article "
"« {$articleTitle} »."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"L'article « {$articleTitle} » est présent dans un numéro, mais n'a pas de "
"date de publication."
@@ -0,0 +1,121 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-05-22 12:35+0000\n"
"Last-Translator: Real Academia Galega <reacagal@gmail.com>\n"
"Language-Team: Galician <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/gl_ES/>\n"
"Language: gl_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "Complemento XML nativo"
msgid "plugins.importexport.native.description"
msgstr ""
"Importar e exportar artigos e números no formato XML orixinario de OJS."
msgid "plugins.importexport.native.import"
msgstr "Importar"
msgid "plugins.importexport.native.import.instructions"
msgstr "Cargar arquivo XML para importar"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Seleccione os artigos para exportar"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Exportar artigos"
msgid "plugins.importexport.native.exportIssues"
msgstr "Exportar números"
msgid "plugins.importexport.native.results"
msgstr "Resultados da importación"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Cargue un arquivo no apartado \"Importar\" para continuar."
msgid "plugins.importexport.native.importComplete"
msgstr ""
"A importación completouse correctamente. Importáronse os elementos seguintes:"
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Uso: {$scriptName} {$pluginName} [command] ...\n"
"Ordes:\n"
"\timport [xmlFileName] [journal_path] [user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] "
"[articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Requírense parámetros adicionais para importar datos da seguinte maneira, \n"
"dependendo do nodo raíz do documento XML.\n"
"\n"
"Se o nodo raíz é <article> ou <articles>, serán necesarios parámetros "
"adicionais.\n"
"Acéptanse os formatos seguintes:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Sección descoñecida {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr "O usuario/a especificado (\"{$userName}\") non existe."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Os títulos de sección \"{$section1Title}\" e \"{$section2Title}\" do número "
"\"{$issueTitle}\" corresponden ás diferentes seccións existentes na revista."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"O título de sección \"{$sectionTitle}\" no número \"{$issueTitle}\" "
"correspóndese cunha sección existente na revista, pero outro título desta "
"sección non coincide con ningún título da sección existente na revista."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"As abreviaturas das seccións \"{$section1Abbrev}\" e \"{$section2Abbrev}\" "
"do número \"{$issueTitle}\" correspóndense con diferentes seccións "
"existentes na revista."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"A abreviatura de sección \"{$sectionAbbrev}\" do número \"{$issueTitle}\" "
"correspóndese cunha sección existente na revista, pero outra abreviatura "
"desta sección non coincide con ningunha abreviatura da sección existente na "
"revista."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Ningún número ou máis dun coincide coa identificación de número "
"proporcionada \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"O número existente con id {$issueId} coincide co identificador de número "
"proporcionado (\"{$issueIdentification}\"). Este número non se modificará, "
"pero engadiranse os artigos."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr ""
"Falta o elemento identificador de número para o artigo \"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"O artigo \"{$articleTitle}\" está incluído nun número pero non ten data de "
"publicación."
@@ -0,0 +1,8 @@
# Weblate Admin <alec@smecher.bc.ca>, 2023.
msgid ""
msgstr ""
"Language: hsb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Weblate\n"
@@ -0,0 +1,107 @@
# Molnár Tamás <molnart@bibl.u-szeged.hu>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-13T21:07:39+00:00\n"
"PO-Revision-Date: 2021-09-22 08:45+0000\n"
"Last-Translator: Molnár Tamás <molnart@bibl.u-szeged.hu>\n"
"Language-Team: Hungarian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/hu_HU/>\n"
"Language: hu_HU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "Eredeti XML Plugin"
msgid "plugins.importexport.native.description"
msgstr "Cikkek és folyóiratszámok importálása és exportálása eredeti OJS XML formátumban."
msgid "plugins.importexport.native.import"
msgstr "Import"
msgid "plugins.importexport.native.import.instructions"
msgstr "XML fájl feltöltése importáláshoz"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Válasszon cikkeket exportáláshoz"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Cikkek exportálása"
msgid "plugins.importexport.native.exportIssues"
msgstr "Folyóiratszámok exportálása"
msgid "plugins.importexport.native.results"
msgstr "Eredmények importálása"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Kérjük, töltsön fel egy fájlt az \"Import\" alá, hogy folytathassa."
msgid "plugins.importexport.native.importComplete"
msgstr "Az import sikeresen megtörtént. kövekező elemek kerültek importálásra:"
#, fuzzy
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Usage: {$scriptName} {$pluginName} [command] ...\n"
"Commands:\n"
"\timport [xmlFileName] [journal_path] [user_name] ...\n"
"\texport [xmlFileName] [journal_path] cikkek [articleId1] [articleId2] ...\n"
"\texport [xmlFileName] [journal_path] cikk [articleId]\n"
"\texport [xmlFileName] [journal_path] folyóiratszámok [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] folyóiratszám [issueId]\n"
"\n"
"További adatok szükségesek az adatok importálásához a következőképpen, attól függően\n"
"az XML-dokumentum gyökércsomópontjától.\n"
"\n"
"Ha a gyökércsomópont <cikk> vagy <cikkek>, akkor további paraméterekre van szükség.\n"
"A következő formátumok fogadhatók el:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
""
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Ismeretlen rovat {$param}"
#, fuzzy
msgid "plugins.importexport.native.error.unknownUser"
msgstr "A kiválaszott felhasználó \"{$userName}\", nem létezik."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr "Ez a rovatcím \"{$section1Title}\" és ez a rovatcím \"{$section2Title}\" ebben a \"{$issueTitle}\" számban különböző létező rovatokhoz tartoznak."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"A rovatcím \"{$sectionTitle}\" ebben a \"{$issueTitle}\" számban megegyezik "
"egy létező folyóiratrovattal, de egy másik cím ebben a rovatban nem egyezik "
"egy másik cimmel a létező rovatban."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr "A rovatrövidítés \"{$section1Abbrev}\" és a rovatrövidítés \"{$section2Abbrev}\" ennél a folyóiratszámnál \"{$issueTitle}\" egy másik létező folyóiratrovattal egyezik."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr "A rovat rövidítése \"{$sectionAbbrev}\" ebben \"{$issueTitle}\" számban megyegyezik egy létező folyóiratrovattal, egy másik rovatrövidítés nem egyezik meg vele."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr "Egy vagy több kiadvány nem egyezik meg az adott folyóiratszám azonosítóval \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr "Létező folyóiratszám ezzel az azonosítóval {$issueId} megfelel az adott folyóiratszám azonosítónak \"{$issueIdentification}\". Ez a folyóiratszám nem módosul, de a cikkek hozzáadásra kerülnek."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "A szám azonosító elem hiányzik ennél a cikknél. \"{$articleTitle}\"."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr "A cikk \"{$articleTitle}\" egy számban szerepel, de nincs közzétételi dátuma."
@@ -0,0 +1,131 @@
# Artashes Mirzoyan <amirzoyan@sci.am>, 2022.
# Tigran Zargaryan <tigran@flib.sci.am>, 2022, 2023.
msgid ""
msgstr ""
"PO-Revision-Date: 2023-10-28 15:06+0000\n"
"Last-Translator: Tigran Zargaryan <tigran@flib.sci.am>\n"
"Language-Team: Armenian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/hy/>\n"
"Language: hy\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.13.1\n"
msgid "plugins.importexport.native.displayName"
msgstr "Բնիկ XML փլագին"
msgid "plugins.importexport.native.description"
msgstr ""
"Ներմուծեք և արտահանեք հոդվածներ և թողարկումներ OJS-ի բնիկ XML ձևաչափով:"
msgid "plugins.importexport.native.import"
msgstr "Ներմուծել"
msgid "plugins.importexport.native.import.instructions"
msgstr "Ներմուծելու համար վերբեռնեք XML նիշքը"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Ընտրեք հոդվածներ արտահանման համար"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Արտահանեք հոդվածներ"
msgid "plugins.importexport.native.exportIssues"
msgstr "Արտահանեք թողարկումներ"
msgid "plugins.importexport.native.results"
msgstr "Ներմուծեք արդյունքները"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Շարունակելու համար վերբեռնեք նիշքը «Ներմուծում» բաժնում:"
msgid "plugins.importexport.native.importComplete"
msgstr "Ներմուծումը հաջողությամբ ավարտվեց: Ներմուծվել են հետևյալ նյութերը:"
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Օգտագործում: {$scriptName} {$pluginName} [command] ...\n"
"Հրամաններ:\n"
"\timport [xmlFileName] [journal_path] [--user_name] ...\n"
"\texport [xmlFileName] [journal_path] articles [articleId1] "
"[articleId2] ...\n"
"\texport [xmlFileName] [journal_path] article [articleId]\n"
"\texport [xmlFileName] [journal_path] issues [issueId1] [issueId2] ...\n"
"\texport [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Տվյալների ներմուծման համար պահանջվում են լրացուցիչ պարամետրեր՝\n"
"կախված XML փաստաթղթի արմատային հանգույցից:\n"
"\n"
"Եթե արմատային հանգույցն է <հոդված> կամ <հոդվածներ>, կպահանջվեն լրացուցիչ "
"պարամետրեր։\n"
"Ընդունվում են հետևյալ ձևաչափերը.:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--"
"user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [--"
"user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Անհայտ բաժին {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr ""
"Օգտվող պետք է տրամադրվի՝ օգտագործելով --user_name կամ -u հրամանի պարամետրը:"
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Բաժնի վերնագիրը \"{$section1Title}\" և բաժնի վերնագիրը \"{$section2Title}\" "
"այս «{$issueTitle}» համարում համընկնում էին ամսագրի տարբեր առկա բաժիններին:"
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"\"{$sectionTitle}\" բաժնի անվանումը \"{$issueTitle}\" համարում համընկնում է "
"գոյություն ունեցող ամսագրի բաժնի հետ, սակայն այս բաժնի մեկ այլ վերնագիր չի "
"համընկնում առկա ամսագրի մեկ այլ վերնագրի հետ:"
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"\"{$section1Abbrev}\" բաժնի հապավումը և \"{$section2Abbrev}\" բաժնի "
"հապավումը \"{$issueTitle}\" համարի համընկնում էին ամսագրի տարբեր առկա "
"բաժիններին:"
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"Բաժնի \"{$sectionAbbrev}\" հապավումը «\"{$issueTitle}\" համարում համընկնում "
"է գոյություն ունեցող ամսագրի բաժնի հետ, սակայն այս բաժնի մեկ այլ հապավումը "
"չի համընկնում գոյություն ունեցող ամսագրի մեկ այլ հապավման հետ:"
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Մեկ կամ մեկից ավելի համարներ համապատասխանում են տվյալ համարի նույնականացմանը "
"\"{$issueIdentification}\":"
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"Առկա թողարկումը ID {$issueId} -ի հետ համապատասխանում է տվյալ թողարկման "
"նույնականացման \"{$issueIdentification}\" -ին: Այս թողարկումը չի փոփոխվի, "
"բայց հոդվածներ կավելացվեն։"
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr ""
"Թողարկման նույնականացման տարրը բացակայում է \"{$articleTitle}\" հոդվածի "
"համար:"
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"\"{$articleTitle}\" հոդվածը պարունակվում է թողարկման մեջ, բայց չունի "
"հրապարակման ամսաթիվ:"
msgid "plugins.importexport.common.error.coverImageNameUnspecified"
msgstr "Կազմի պատկերը տեղադրվել է առանց անուն նշելու:"
msgid "plugins.importexport.common.error.invalidFileExtension"
msgstr "Նշված է նիշքի անվավեր ընդլայնմամբ շապիկի պատկեր:"
@@ -0,0 +1,117 @@
# Ramli Baharuddin <ramli.baharuddin@relawanjurnal.id>, 2021, 2022.
msgid ""
msgstr ""
"PO-Revision-Date: 2022-07-15 11:33+0000\n"
"Last-Translator: Ramli Baharuddin <ramli.baharuddin@relawanjurnal.id>\n"
"Language-Team: Indonesian <http://translate.pkp.sfu.ca/projects/ojs/"
"importexport-native/id_ID/>\n"
"Language: id_ID\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.4.2\n"
msgid "plugins.importexport.native.displayName"
msgstr "Plugin XML Natif"
msgid "plugins.importexport.native.description"
msgstr "Impor dan ekspor artikel dan issue dalam format XML Natif OJS."
msgid "plugins.importexport.native.import"
msgstr "Impor"
msgid "plugins.importexport.native.import.instructions"
msgstr "Unggah file XML untuk diimpor"
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr "Pilih artikel untuk diekspor"
msgid "plugins.importexport.native.exportSubmissions"
msgstr "Ekspor artikel"
msgid "plugins.importexport.native.exportIssues"
msgstr "Ekspor Issue"
msgid "plugins.importexport.native.results"
msgstr "Impor Hasil"
msgid "plugins.inportexport.native.uploadFile"
msgstr "Unggahlah file pada \"Impor\" untuk melanjutkan."
msgid "plugins.importexport.native.importComplete"
msgstr "Impor berhasil. Berikut daftar item yang berhasil diimpor:"
msgid "plugins.importexport.native.cliUsage"
msgstr ""
"Usage: {$scriptName} {$pluginName} [command] ...\n"
"Perintah:\n"
"\timpor [xmlFileName] [journal_path] [user_name] ...\n"
"\tekspor [xmlFileName] [journal_path] artikel [articleId1] [articleId2] ...\n"
"\tekspor [xmlFileName] [journal_path] artikel [articleId]\n"
"\tekspor [xmlFileName] [journal_path] issue [issueId1] [issueId2] ...\n"
"\tekspor [xmlFileName] [journal_path] issue [issueId]\n"
"\n"
"Parameter tambahan diperlukan untuk mengimpor data sebagai berikut, "
"bergantung\n"
"pada root node dokumen XML.\n"
"\n"
"Jika root node <article> atau <articles>, parameter tambahan diperlukan.\n"
"Format berikut dibolehkan:\n"
"\n"
"{$scriptName} {$pluginName} import [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_id [sectionId]\n"
"\n"
"{$scriptName} {$pluginName} impor [xmlFileName] [journal_path] [user_name]\n"
"\tissue_id [issueId] section_name [name]\n"
"\n"
"{$scriptName} {$pluginName} impor [xmlFileName] [journal_path]\n"
"\tissue_id [issueId] section_abbrev [abbrev]\n"
msgid "plugins.importexport.native.error.unknownSection"
msgstr "Bagian Tak Diketahui {$param}"
msgid "plugins.importexport.native.error.unknownUser"
msgstr "Pengguna yang dimaksud, \"{$userName}\", tidak ada."
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
"Bagian judul \"{$section1Title}\" dan bagian judul \"{$section2Title}\" "
"dalam issue \"{$issueTitle}\" sam dengan bagian jurnal yang ada dan berbeda."
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
"Judul bagian \"{$sectionTitle}\" dalam issue \"{$issueTitle}\" sesuai dengan "
"bagian jurnal yang ada, tapi judul lain pada bagian ini tidak cocok dengan "
"judul bagian jurnal yang ada."
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
"Singkatan bagian \"{$section1Abbrev}\" dan singkatan bagian "
"\"{$section2Abbrev}\" dari issue \"{$issueTitle}\" sama dengan bagian jurnal "
"lain yang ada."
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
"Singkatan bagian \"{$sectionAbbrev}\" dalam issue \"{$issueTitle}\" sama "
"dengan bagian jurnal yang ada, tapi singkatan lagi pada bagian ini tidak "
"sama dengan singkatan lain dari bagian jurnal yang ada."
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
"Tidak ada atau lebih dari satu issue sama dengan identifikasi issue yang "
"diberikan \"{$issueIdentification}\"."
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
"Issue yang ada dengan id {$issueId} sama dengan identifikasi issue yang ada "
"\"{$issueIdentification}\". Issue ini tidak akan diubah, tapi akan "
"ditambahkan artikel."
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr "Elemen identifikasi issue untuk artikel \"{$articleTitle}\" hilang."
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""
"Artikel \"{$articleTitle}\" terdapat dalam issue, tapi tidak memiliki "
"tanggal terbit."
@@ -0,0 +1,71 @@
# Kolbrun Reynisdottir <kolla@probus.is>, 2022.
msgid ""
msgstr ""
"Language: is_IS\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Weblate\n"
msgid "plugins.importexport.native.displayName"
msgstr ""
msgid "plugins.importexport.native.description"
msgstr ""
msgid "plugins.importexport.native.import"
msgstr ""
msgid "plugins.importexport.native.import.instructions"
msgstr ""
msgid "plugins.importexport.native.exportSubmissionsSelect"
msgstr ""
msgid "plugins.importexport.native.exportSubmissions"
msgstr ""
msgid "plugins.importexport.native.exportIssues"
msgstr ""
msgid "plugins.importexport.native.results"
msgstr ""
msgid "plugins.inportexport.native.uploadFile"
msgstr ""
msgid "plugins.importexport.native.importComplete"
msgstr ""
msgid "plugins.importexport.native.cliUsage"
msgstr ""
msgid "plugins.importexport.native.error.unknownSection"
msgstr ""
msgid "plugins.importexport.native.error.unknownUser"
msgstr ""
msgid "plugins.importexport.native.import.error.sectionTitleMismatch"
msgstr ""
msgid "plugins.importexport.native.import.error.sectionTitleMatch"
msgstr ""
msgid "plugins.importexport.native.import.error.sectionAbbrevMismatch"
msgstr ""
msgid "plugins.importexport.native.import.error.sectionAbbrevMatch"
msgstr ""
msgid "plugins.importexport.native.import.error.issueIdentificationMatch"
msgstr ""
msgid "plugins.importexport.native.import.error.issueIdentificationDuplicate"
msgstr ""
msgid "plugins.importexport.native.import.error.issueIdentificationMissing"
msgstr ""
msgid "plugins.importexport.native.import.error.publishedDateMissing"
msgstr ""

Some files were not shown because too many files have changed in this diff Show More