diff --git a/.editorconfig b/.editorconfig
index bec7553240a..7f07e050e32 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -2,7 +2,13 @@ root = true
[*]
charset = utf-8
-indent_style = tab
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
+
+[*.php]
+indent_style = space
+indent_size = 4
+
+[*.{js,vue,json,less}]
+indent_style = tab
diff --git a/.github/workflows/stable-3_4_0.yml b/.github/workflows/stable-3_4_0.yml
new file mode 100644
index 00000000000..6a89de41853
--- /dev/null
+++ b/.github/workflows/stable-3_4_0.yml
@@ -0,0 +1,46 @@
+on:
+ push:
+ branches:
+ - '*'
+ pull_request:
+ branches:
+ ['stable-3_4_0']
+
+name: omp
+jobs:
+ omp:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - php-version: 8.1
+ validate: 'validate'
+ - php-version: 8.1
+ database: pgsql
+ test: 'test'
+ - php-version: 8.1
+ database: mariadb
+ test: 'test'
+ - php-version: 8.1
+ database: mysql
+ test: 'test'
+ upgrade: 'upgrade'
+ upgrade_test: '3.1.0,3.1.1-2,3.1.2,stable-3_2_0,stable-3_2_1,stable-3_3_0'
+ - php-version: 8.2
+ database: mysql
+ test: 'test'
+ - php-version: 8.2
+ database: pgsql
+ test: 'test'
+
+
+
+ name: omp
+ steps:
+ - uses: pkp/pkp-github-actions@v1
+ with:
+ node_version: 16
+ dataset_branch: 'stable-3_4_0'
+ DATASETS_ACCESS_KEY: ${{secrets.DATASETS_ACCESS_KEY}}
+ DEBUG_IN_TMATE: false
diff --git a/.gitignore b/.gitignore
index 2ee517b8000..3ec40ed6de5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@ temp
/plugins/paymethod/paypal/vendor/
.project
.project/
+.vscode
.buildpath
.settings/
.htaccess
@@ -17,3 +18,5 @@ styles/build.css
cypress.env.json
cypress/logs/
cypress/screenshots/
+.php_cs.cache
+.php-cs-fixer.cache
diff --git a/.gitmodules b/.gitmodules
index 82a075ed1c4..28fd2369f7d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,9 +1,6 @@
[submodule "lib/pkp"]
path = lib/pkp
url = https://github.com/pkp/pkp-lib
-[submodule "plugins/generic/usageStats"]
- path = plugins/generic/usageStats
- url = https://github.com/pkp/usageStats.git
[submodule "plugins/generic/customBlockManager"]
path = plugins/generic/customBlockManager
url = https://github.com/pkp/customBlockManager
@@ -28,21 +25,12 @@
[submodule "lib/ui-library"]
path = lib/ui-library
url = https://github.com/pkp/ui-library
-[submodule "plugins/themes/omp-dainst-theme"]
- path = plugins/themes/omp-dainst-theme
- url = https://github.com/dainst/omp-dainst-theme
-[submodule "plugins/pubIds/zenon"]
- path = plugins/pubIds/zenon
- url = https://github.com/dainst/ojs-zenon-plugin.git
-[submodule "plugins/generic/cilantro"]
- path = plugins/generic/cilantro
- url = https://github.com/dainst/ojs-cilantro-plugin
-[submodule "plugins/generic/daiBookViewer"]
- path = plugins/generic/daiBookViewer
- url = https://github.com/dainst/dai-book-viewer-ojs-plugin.git
-[submodule "plugins/themes/publications-theme"]
- path = plugins/themes/publications-theme
- url = https://github.com/dainst/publications-theme.git
-[submodule "plugins/generic/piwik"]
- path = plugins/generic/piwik
- url = https://github.com/pkp/piwik.git
+[submodule "plugins/generic/acron"]
+ path = plugins/generic/acron
+ url = https://github.com/pkp/acron
+[submodule "plugins/generic/citationStyleLanguage"]
+ path = plugins/generic/citationStyleLanguage
+ url = https://github.com/pkp/citationStyleLanguage
+[submodule "plugins/generic/webFeed"]
+ path = plugins/generic/webFeed
+ url = https://github.com/pkp/webFeed.git
diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php
new file mode 100644
index 00000000000..62ba5c0d0c2
--- /dev/null
+++ b/.php-cs-fixer.php
@@ -0,0 +1,39 @@
+in(__DIR__)
+ ->name('*.php')
+ // The next two rules are enabled by default, kept for clarity
+ ->ignoreDotFiles(true)
+ ->ignoreVCS(true)
+ // The pattern is matched against each found filename, thus:
+ // - The "/" is needed to avoid having "vendor" match "Newsvendor.php"
+ // - The presence of "node_modules" here doesn't prevent the Finder from recursing on it, so we merge these paths below at the "exclude()"
+ ->notPath($ignoredDirectories = ['cypress/', 'js/', 'locale/', 'node_modules/', 'styles/', 'templates/', 'vendor/'])
+ // Ignore root based directories
+ ->exclude(array_merge($ignoredDirectories, ['cache', 'dbscripts', 'docs', 'lib', 'public', 'registry', 'schemas']))
+ // Ignores Git folders
+ ->notPath((function () {
+ $recursiveIterator = new RecursiveIteratorIterator(
+ new RecursiveDirectoryIterator(__DIR__ . '/plugins', FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS | FilesystemIterator::CURRENT_AS_FILEINFO),
+ RecursiveIteratorIterator::SELF_FIRST
+ );
+ $recursiveIterator->setMaxDepth(1);
+ $gitFolders = new CallbackFilterIterator(
+ $recursiveIterator,
+ fn (SplFileInfo $file) => $recursiveIterator->getDepth() === $recursiveIterator->getMaxDepth()
+ && $file->isDir()
+ // Covers submodules (.git file) and external repositories (.git directory)
+ && file_exists("{$file}/.git")
+ );
+ $folders = [];
+ foreach ($gitFolders as $folder) {
+ $folders[] = str_replace(__DIR__ . '/', '', $folder);
+ }
+ return $folders;
+ })());
+
+$rules = include './lib/pkp/.php_cs_rules';
+$config = new PhpCsFixer\Config();
+return $config->setRules($rules)
+ ->setFinder($finder);
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
index 6318baed00b..e4bf4c2a5db 100644
--- a/.scrutinizer.yml
+++ b/.scrutinizer.yml
@@ -1,10 +1,8 @@
-before_commands:
- - 'git submodule update --init --recursive'
filter:
excluded_paths:
- - 'tests/*'
+ - 'tests/'
dependency_paths:
- - 'lib/pkp/lib/*'
+ - 'lib/pkp/lib/'
tools:
php_sim:
enabled: true
@@ -24,3 +22,16 @@ tools:
feature_patterns:
- '\badd(?:s|ed)?\b'
- '\bimplement(?:s|ed)?\b'
+build:
+ dependencies:
+ before:
+ - 'git submodule update --init --recursive'
+ - 'wget https://raw.githubusercontent.com/composer/getcomposer.org/76a7060ccb93902cd7576b67264ad91c8a2700e2/web/installer -O - -q | php -- --quiet'
+ - 'php composer.phar --working-dir=lib/pkp install --no-dev'
+ - 'php composer.phar --working-dir=plugins/paymethod/paypal install --no-dev'
+ - 'php composer.phar --working-dir=plugins/generic/citationStyleLanguage install --no-dev'
+ nodes:
+ analysis:
+ tests:
+ override:
+ - php-scrutinizer-run
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 81d281ec0f4..00000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,95 +0,0 @@
-dist: bionic
-
-env:
- global:
- # Used for saving generated test datasets. See Notion for details.
- - secure: fRBfUOCW74WoTqn++xJLCL6k0Ug4f8LSD75mbrfMWdP9Wuu5WzTpFH2K0fNOK2Znfg0Vqpr1442Sjjo+C4PxiM65RPIoi36CfFEqEPdhN2EF5kSXEngj97LF3SQzCklDxf/pI9Z9cbr5QgJhiVexLXuBg2Dsru/UvBD871+p4kA=
- - APPLICATION=omp
-
-# Configure the build matrix
-matrix:
- include:
- # Validation
- - env: TEST=validation
- php: 7.3
- # PostgreSQL / various PHP
- - env: TEST=pgsql
- php: 7.3
- - env: TEST=pgsql
- php: 7.4
- - env:
- - TEST: pgsql
- - SAVE_BUILD: true
- php: 8.0
- - env: TEST=pgsql
- php: 8.1
- # MySQL / various PHP
- - env: TEST=mysql
- php: 7.3
- - env: TEST=mysql
- php: 7.4
- - env:
- - TEST: mysql
- - SAVE_BUILD: true
- php: 8.0
- - env: TEST=mysql
- php: 8.1
-language: php
-python:
- - 3.3 # Required by Javascript linter/builder
-git:
- # Inhibit automatic submodule checkout (see below)
- submodules: false
-cache:
- npm: true
- directories:
- - $HOME/.composer/cache
- - $HOME/.cache
-addons:
- chrome: beta
- postgresql: "9.5"
- apt:
- update: true
-before_install:
- # Check out submodules (this script checks out developer forks if necessary)
- - ./tools/startSubmodulesTRAVIS.sh
-
- # Update to latest stable version of npm
- - npm i g -npm
-
- - |
- if [[ "$TEST" != "validation" ]]; then
- # Prepare for unit and integration tests.
-
- # Prepare the server environment
- ./lib/pkp/tools/travis/prepare-webserver.sh
-
- # Prepare the local codebase
- ./lib/pkp/tools/travis/install-composer-dependencies.sh
- npm install && npm run build
- else
- # Prepare for validation tests.
- npm install
- ./lib/pkp/tools/travis/install-linter.sh
- fi
-script:
- - |
- if [[ "$TEST" != "validation" ]]; then
- # Run the unit and integration tests.
- source ./lib/pkp/tools/travis/prepare-tests.sh
- ./lib/pkp/tools/travis/run-tests.sh
- else
- # Run the validation tests.
- ./lib/pkp/tools/travis/validate-xml.sh
- ./lib/pkp/tools/buildjs.sh -n
- ./lib/pkp/tools/checkHelp.sh
- ./lib/pkp/tools/travis/validate-json.sh
- npm run lint
- fi
-
-after_script:
- - cat error.log
-
-after_failure:
- - sudo apt-get install sharutils
- - tar cz cypress/screenshots | uuencode /dev/stdout
diff --git a/README.md b/README.md
index 52ea6174d4a..4642561c56e 100644
--- a/README.md
+++ b/README.md
@@ -1,58 +1,35 @@
# Open Monograph Press
-> Open Monograph Press (OMP) has been developed by the Public Knowledge Project. For general information about OMP and other open research systems, visit the [PKP web site][pkp].
+[](https://app.travis-ci.com/pkp/omp)
+[](https://scrutinizer-ci.com/g/pkp/omp/?branch=main)
-[](https://travis-ci.org/pkp/omp)
+Open Monograph Press (OMP) is open source software developed by the [Public Knowledge Project](https://pkp.sfu.ca/) to manage scholarly presses. [Learn More](https://pkp.sfu.ca/software/omp/)
-## Documentation
+## Usage
-You will find detailed guides in [docs](docs) folder.
+Read one of these guides to get started using OMP:
-## Using Git development source
+- Read the [Admin Guide](https://docs.pkp.sfu.ca/admin-guide/) to learn how to install and configure the application from an official release package. Use this guide to deploy to production.
+- Read the [Getting Started](https://docs.pkp.sfu.ca/dev/documentation/en/getting-started) guide to learn how to install the application from this source repository. Use this guide for local development.
-Checkout submodules and copy default configuration :
+Visit our [Documentation Hub](https://docs.pkp.sfu.ca/) for user guides, tutorials, and technical documentation.
- git submodule update --init --recursive
- cp config.TEMPLATE.inc.php config.inc.php
+## Bugs / Feature Requests
-Install or update dependencies via Composer (https://getcomposer.org/):
+> ⚠️ If you have found a security risk or vulnerability, please read our [security policy](SECURITY.md).
- composer --working-dir=lib/pkp install
- composer --working-dir=plugins/paymethod/paypal install
+All issues should be filed at the [pkp/pkp-lib](https://github.com/pkp/pkp-lib/issues/) repository. Feature requests can be made at our [Community Forum](https://forum.pkp.sfu.ca/). Learn more about how to [report a problem](https://docs.pkp.sfu.ca/dev/contributors/#report-a-problem).
-Install or update dependencies via [NPM](https://www.npmjs.com/):
+## Community Code of Conduct
- # install [nodejs](https://nodejs.org/en/) if you don't already have it
- npm install
- npm run build
+This repository is a PKP community space. All activities here are governed by [PKP's Code of Conduct](https://pkp.sfu.ca/code-of-conduct/). Please review the Code and help us create a welcoming environment for all participants.
-If your PHP version supports built-in development server :
+## Contributions
- php -S localhost:8000
-
-See [Development documentation](https://docs.pkp.sfu.ca/dev/) for more complete development guidance.
-
-## Bugs / Issues
-
-See https://github.com/pkp/pkp-lib/#issues for information on reporting issues.
-
-## Running Tests
-
-See [Unit Tests](https://pkp.sfu.ca/wiki/index.php?title=Unit_Tests), and also [Github Documentation for PKP Contributors](https://pkp.sfu.ca/wiki/index.php?title=Github_Documentation_for_PKP_Contributors) for Travis-based continuous integration testing.
+Read the [Contributor's Guide](https://docs.pkp.sfu.ca/dev/contributors/) to learn how to make a pull request. This document describes our code formatting guidelines as well as information about how we organize stable branches and submodules.
## License
-This software is released under the the [GNU General Public License][gpl-licence].
-
-See the file [COPYING][gpl-licence] included with this distribution for the terms
-of this license.
-
-Third parties are welcome to modify and redistribute OJS in entirety or parts
-according to the terms of this license. PKP also welcomes patches for
-improvements or bug fixes to the software.
+This software is released under the the GNU General Public License. See the file `docs/COPYING` included with this distribution for the terms of this license.
-[pkp]: http://pkp.sfu.ca/
-[readme]: docs/README
-[wiki-dev]: http://pkp.sfu.ca/wiki/index.php/HOW-TO_check_out_PKP_applications_from_git
-[php-unit]: http://phpunit.de/
-[gpl-licence]: docs/COPYING
+Third parties are welcome to modify and redistribute OMP in entirety or parts according to the terms of this license. PKP also welcomes patches for improvements or bug fixes to the software.
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000000..7d4f8eb92d7
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,28 @@
+# Security Policy
+
+## Supported Versions
+
+| Version | Supported | End Of Life |
+| ------- | ----------------------------------------------------- | ------------- |
+| 3.5.x | :x: Pre-release | 2026 (est) |
+| 3.4.x | :heavy_check_mark: Active development | 2025 (est) |
+| 3.3.x | :heavy_check_mark: Active maintenance | 2026 (est) |
+| 3.2.x | :x: Not supported | 2023 |
+| 3.1.x | :x: Not supported | 2022 |
+| 1.x | :x: Security only; upgrade recommended | 2022 |
+
+## Reporting a Vulnerability
+
+To report a vulnerability, please contact PKP privately using: pkp.contact@gmail.com
+
+You can expect a response via email to acknowledge your report within 2 working days.
+
+PKP will then work to verify the vulnerability and assess the risk. This is typically done within the first week of a report. Once these details are known, PKP will file a Github issue entry with limited details for tracking purposes. This initial report will not include enough information to fully disclose the vulnerability but will serve as a point of reference for development and fixes once they are available.
+
+When a fix is available, PKP will contact its user community privately via mailing list with details of the fix, and leave a window of typically 2 weeks for community members to patch or upgrade before public disclosure.
+
+PKP then discloses the vulnerability publicly by updating the Github issue entry with complete details and adding a notice about the vulnerability to the software download page (e.g. https://pkp.sfu.ca/software/omp). At this point, a CVE and credit for the discovery may be added to the entry.
+
+Depending on the severity of the issue PKP may back-port fixes to releases that are beyond the formal software end-of-life.
+
+We aim to have a fix available within a week of notification.
diff --git a/api/v1/_dois/BackendDoiHandler.php b/api/v1/_dois/BackendDoiHandler.php
new file mode 100644
index 00000000000..aa5d0b11c22
--- /dev/null
+++ b/api/v1/_dois/BackendDoiHandler.php
@@ -0,0 +1,151 @@
+_handlerPath = '_dois';
+ $this->_endpoints = array_merge_recursive($this->_endpoints, [
+ 'PUT' => [
+ [
+ 'pattern' => $this->getEndpointPattern() . "/chapters/{chapterId:\d+}",
+ 'handler' => [$this, 'editChapter'],
+ 'roles' => [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN],
+ ],
+ [
+ 'pattern' => $this->getEndpointPattern() . "/publicationFormats/{publicationFormatId:\d+}",
+ 'handler' => [$this, 'editPublicationFormat'],
+ 'roles' => [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN],
+ ],
+ [
+ 'pattern' => $this->getEndpointPattern() . "/submissionFiles/{submissionFileId:\d+}",
+ 'handler' => [$this, 'editSubmissionFile'],
+ 'roles' => [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN],
+ ]
+ ]
+ ]);
+ parent::__construct();
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function editChapter(SlimRequest $slimRequest, APIResponse $response, array $args): \Slim\Http\Response
+ {
+ $context = $this->getRequest()->getContext();
+
+ /** @var \APP\monograph\ChapterDAO $chapterDao */
+ $chapterDao = DAORegistry::getDAO('ChapterDAO');
+ $chapter = $chapterDao->getChapter($args['chapterId']);
+ if (!$chapter) {
+ return $response->withStatus(404)->withJsonError('api.404.resourceNotFound');
+ }
+
+ $publication = Repo::publication()->get($chapter->getData('publicationId'));
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+ if ($submission->getData('contextId') !== $context->getId()) {
+ return $response->withStatus(403)->withJsonError('api.dois.403.editItemOutOfContext');
+ }
+
+ $doiId = $slimRequest->getParsedBody()['doiId'];
+ $doi = Repo::doi()->get((int) $doiId);
+ if (!$doi) {
+ return $response->withStatus(404)->withJsonError('api.dois.404.doiNotFound');
+ }
+
+ $chapter->setData('doiId', $doi->getId());
+ $chapterDao->updateObject($chapter);
+ return $response->withStatus(200);
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function editPublicationFormat(SlimRequest $slimRequest, APIResponse $response, array $args): \Slim\Http\Response
+ {
+ $context = $this->getRequest()->getContext();
+
+ /** @var \APP\publicationFormat\PublicationFormatDAO $publicationFormatDao */
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO');
+ $publicationFormat = $publicationFormatDao->getById($args['publicationFormatId']);
+
+ $publication = Repo::publication()->get($publicationFormat->getData('publicationId'));
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+
+ if ($submission->getData('contextId') !== $context->getId()) {
+ return $response->withStatus(403)->withJsonError('api.dois.403.editItemOutOfContext');
+ }
+
+ $doiId = $slimRequest->getParsedBody()['doiId'];
+ $doi = Repo::doi()->get((int) $doiId);
+ if (!$doi) {
+ return $response->withStatus(404)->withJsonError('api.dois.404.doiNotFound');
+ }
+
+ $publicationFormat->setData('doiId', $doi->getId());
+ $publicationFormatDao->updateObject($publicationFormat);
+ return $response->withStatus(200);
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function editSubmissionFile(SlimRequest $slimRequest, APIResponse $response, array $args): \Slim\Http\Response
+ {
+ $context = $this->getRequest()->getContext();
+
+ $submissionFile = Repo::submissionFile()->get($args['submissionFileId']);
+ if (!$submissionFile) {
+ return $response->withStatus(404)->withJsonError('api.404.resourceNotFound');
+ }
+
+ $submission = Repo::submission()->get($submissionFile->getData('submissionId'));
+ if ($submission->getData('contextId') !== $context->getId()) {
+ return $response->withStatus(403)->withJsonError('api.dois.403.editItemOutOfContext');
+ }
+
+ $params = $this->convertStringsToSchema(\PKP\services\PKPSchemaService::SCHEMA_SUBMISSION_FILE, $slimRequest->getParsedBody());
+
+ $doi = Repo::doi()->get((int) $params['doiId']);
+ if (!$doi) {
+ return $response->withStatus(404)->withJsonError('api.dois.404.doiNotFound');
+ }
+
+ Repo::submissionFile()->edit($submissionFile, ['doiId' => $doi->getId()]);
+ $submissionFile = Repo::submissionFile()->get($submissionFile->getId());
+
+ /** @var GenreDAO */
+ $genreDao = DAORegistry::getDAO('GenreDAO');
+ $genres = $genreDao->getByContextId($submission->getData('contextId'))->toArray();
+
+ return $response->withJson(Repo::submissionFile()->getSchemaMap()->map($submissionFile, $genres));
+ }
+}
diff --git a/api/v1/_dois/index.php b/api/v1/_dois/index.php
new file mode 100644
index 00000000000..c2430f3bc16
--- /dev/null
+++ b/api/v1/_dois/index.php
@@ -0,0 +1,18 @@
+_endpoints = array(
- 'POST' => array(
- array(
- 'pattern' => "{$rootPattern}/saveDisplayFlags",
- 'handler' => array($this, 'saveDisplayFlags'),
- 'roles' => array(
- ROLE_ID_SITE_ADMIN,
- ROLE_ID_MANAGER,
- ),
- ),
- array(
- 'pattern' => "{$rootPattern}/saveFeaturedOrder",
- 'handler' => array($this, 'saveFeaturedOrder'),
- 'roles' => array(
- ROLE_ID_SITE_ADMIN,
- ROLE_ID_MANAGER,
- ),
- ),
- ),
- 'PUT' => [
- [
- 'pattern' => "{$rootPattern}/addToCatalog",
- 'handler' => [$this, 'addToCatalog'],
- 'roles' => [
- ROLE_ID_SITE_ADMIN,
- ROLE_ID_MANAGER,
- ],
- ],
- ],
- );
- parent::__construct();
- }
-
- /**
- * Add omp-specific parameters to the getMany request
- *
- * @param $hookName string
- * @param $args array [
- * @option $params array
- * @option $slimRequest Request Slim request object
- * @option $response Response object
- * ]
- */
- public function addAppSubmissionsParams($hookName, $args) {
- $params =& $args[0];
- $slimRequest = $args[1];
- $response = $args[2];
-
- $originalParams = $slimRequest->getQueryParams();
-
- // Bring in orderby constants
- import('lib.pkp.classes.submission.PKPSubmissionDAO');
- import('classes.submission.SubmissionDAO');
-
- // Add allowed order by options for OMP
- if (isset($originalParams['orderBy']) && in_array($originalParams['orderBy'], array(ORDERBY_DATE_PUBLISHED, ORDERBY_SERIES_POSITION))) {
- $params['orderBy'] = $originalParams['orderBy'];
- }
-
- // Add allowed order by option for featured/new releases
- if (isset($originalParams['orderByFeatured'])) {
- $params['orderByFeatured'] = true;
- }
-
- if (!empty($originalParams['categoryIds'])) {
- if (is_array($originalParams['categoryIds'])) {
- $params['categoryIds'] = array_map('intval', $originalParams['categoryIds']);
- } else {
- $params['categoryIds'] = array((int) $originalParams['categoryIds']);
- }
- }
-
- if (!empty($originalParams['seriesIds'])) {
- if (is_array($originalParams['seriesIds'])) {
- $params['seriesIds'] = array_map('intval', $originalParams['seriesIds']);
- } else {
- $params['seriesIds'] = array((int) $originalParams['seriesIds']);
- }
- }
- }
-
- /**
- * Save changes to a submission's featured or new release flags
- *
- * @param $slimRequest Request Slim request object
- * @param $response Response object
- * @param $args array {
- * @option array featured Optional. Featured flags with assoc type, id
- * and seq values.
- * @option array newRelease Optional. New release flags assoc type, id
- * and seq values.
- * }
- *
- * @return Response
- */
- public function saveDisplayFlags($slimRequest, $response, $args) {
- $params = $slimRequest->getParsedBody();
-
- $submissionId = isset($params['submissionId']) ? (int) $params['submissionId'] : null;
-
- if (empty($submissionId)) {
- return $response->withStatus(400)->withJsonError('api.submissions.400.missingRequired');
- }
-
- $featureDao = \DAORegistry::getDAO('FeatureDAO');
- $featureDao->deleteByMonographId($submissionId);
- if (!empty($params['featured'])) {
- foreach($params['featured'] as $feature) {
- $featureDao->insertFeature($submissionId, $feature['assoc_type'], $feature['assoc_id'], $feature['seq']);
- }
- }
-
- $newReleaseDao = \DAORegistry::getDAO('NewReleaseDAO');
- $newReleaseDao->deleteByMonographId($submissionId);
- if (!empty($params['newRelease'])) {
- foreach($params['newRelease'] as $newRelease) {
- $newReleaseDao->insertNewRelease($submissionId, $newRelease['assoc_type'], $newRelease['assoc_id']);
- }
- }
-
- $output = array(
- 'featured' => $featureDao->getFeaturedAll($submissionId),
- 'newRelease' => $newReleaseDao->getNewReleaseAll($submissionId),
- );
-
- return $response->withJson($output);
- }
-
- /**
- * Save changes to the sequence of featured items in the catalog, series or
- * category.
- *
- * @param $slimRequest Request Slim request object
- * @param $response Response object
- * @param $args array {
- * @option int assocType Whether these featured items are for a
- * press, category or series. Values: ASSOC_TYPE_*
- * @option int assocId The press, category or series id
- * @option array featured List of assoc arrays with submission ids and
- * seq value.
- * @option bool append Whether to replace or append the features to
- * the existing features for this assoc type and id. Default: false
- * }
- *
- * @return Response
- */
- public function saveFeaturedOrder($slimRequest, $response, $args) {
- $params = $slimRequest->getParsedBody();
-
- $assocType = isset($params['assocType']) && in_array($params['assocType'], array(ASSOC_TYPE_PRESS, ASSOC_TYPE_CATEGORY, ASSOC_TYPE_SERIES)) ? (int) $params['assocType'] : null;
- $assocId = isset($params['assocId']) ? (int) $params['assocId'] : null;
-
- if (empty($assocType) || empty($assocId)) {
- return $response->withStatus(400)->withJsonError('api.submissions.400.missingRequired');
- }
-
- $featureDao = \DAORegistry::getDAO('FeatureDAO');
- $featureDao->deleteByAssoc($assocType, $assocId);
- if (!empty($params['featured'])) {
- foreach($params['featured'] as $feature) {
- $featureDao->insertFeature($feature['id'], $assocType, $assocId, $feature['seq']);
- }
- }
-
- return $response->withJson(true);
- }
-
- /**
- * Add one or more submissions to the catalog
- *
- * @param $slimRequest Request Slim request object
- * @param $response Response object
- *
- * @return Response
- */
- public function addToCatalog($slimRequest, $response, $args) {
- $params = $slimRequest->getParsedBody();
-
- if (empty($params['submissionIds'])) {
- return $response->withStatus(400)->withJsonError('api.submissions.400.submissionIdsRequired');
- }
-
- $submissionIds = array_map('intval', (array) $params['submissionIds']);
-
- if (empty($submissionIds)) {
- return $response->withStatus(400)->withJsonError('api.submissions.400.submissionIdsRequired');
- }
-
-
- $primaryLocale = $this->getRequest()->getContext()->getPrimaryLocale();
- $allowedLocales = $this->getRequest()->getContext()->getSupportedFormLocales();
-
- $validPublications = [];
- foreach ($submissionIds as $submissionId) {
- $submission = Services::get('submission')->get($submissionId);
- if (!$submission) {
- return $response->withStatus(400)->withJsonError('api.submissions.400.submissionsNotFound');
- }
- $publication = $submission->getCurrentPublication();
- if ($publication->getData('status') === STATUS_PUBLISHED) {
- continue;
- }
- $errors = Services::get('publication')->validatePublish($publication, $submission, $allowedLocales, $primaryLocale);
- if (!empty($errors)) {
- return $response->withStatus(400)->withJson($errors);
- }
- $validPublications[] = $publication;
- }
-
- foreach($validPublications as $validPublication) {
- Services::get('publication')->publish($validPublication);
- }
-
- return $response->withJson(true);
- }
-}
diff --git a/api/v1/_submissions/BackendSubmissionsHandler.php b/api/v1/_submissions/BackendSubmissionsHandler.php
new file mode 100644
index 00000000000..137f3314a03
--- /dev/null
+++ b/api/v1/_submissions/BackendSubmissionsHandler.php
@@ -0,0 +1,241 @@
+_endpoints = [
+ 'POST' => [
+ [
+ 'pattern' => "{$rootPattern}/saveDisplayFlags",
+ 'handler' => [$this, 'saveDisplayFlags'],
+ 'roles' => [
+ Role::ROLE_ID_SITE_ADMIN,
+ Role::ROLE_ID_MANAGER,
+ ],
+ ],
+ [
+ 'pattern' => "{$rootPattern}/saveFeaturedOrder",
+ 'handler' => [$this, 'saveFeaturedOrder'],
+ 'roles' => [
+ Role::ROLE_ID_SITE_ADMIN,
+ Role::ROLE_ID_MANAGER,
+ ],
+ ],
+ ],
+ 'PUT' => [
+ [
+ 'pattern' => "{$rootPattern}/addToCatalog",
+ 'handler' => [$this, 'addToCatalog'],
+ 'roles' => [
+ Role::ROLE_ID_SITE_ADMIN,
+ Role::ROLE_ID_MANAGER,
+ ],
+ ],
+ ],
+ ];
+ parent::__construct();
+ }
+
+ /**
+ * Configure a submission Collector based on the query params
+ */
+ protected function getSubmissionCollector(array $queryParams): Collector
+ {
+ $collector = parent::getSubmissionCollector($queryParams);
+
+ // Add allowed order by options for OMP
+ if (isset($queryParams['orderBy']) && $queryParams['orderBy'] === Collector::ORDERBY_SERIES_POSITION) {
+ $direction = isset($queryParams['orderDirection']) && $queryParams['orderDirection'] === $collector::ORDER_DIR_ASC
+ ? $collector::ORDER_DIR_ASC
+ : $collector::ORDER_DIR_DESC;
+ $collector->orderBy(Collector::ORDERBY_SERIES_POSITION, $direction);
+ }
+
+ // Add allowed order by option for featured/new releases
+ if (!empty($queryParams['orderByFeatured'])) {
+ $collector->orderByFeatured();
+ }
+
+ if (isset($queryParams['seriesIds'])) {
+ $collector->filterBySeriesIds(
+ array_map('intval', $this->paramToArray($queryParams['seriesIds']))
+ );
+ }
+
+ return $collector;
+ }
+
+ /**
+ * Save changes to a submission's featured or new release flags
+ *
+ * @param SlimRequest $slimRequest Slim request object
+ * @param APIResponse $response object
+ * @param array $args {
+ *
+ * @option array featured Optional. Featured flags with assoc type, id
+ * and seq values.
+ * @option array newRelease Optional. New release flags assoc type, id
+ * and seq values.
+ * }
+ *
+ * @return APIResponse
+ */
+ public function saveDisplayFlags($slimRequest, $response, $args)
+ {
+ $params = $slimRequest->getParsedBody();
+
+ $submissionId = isset($params['submissionId']) ? (int) $params['submissionId'] : null;
+
+ if (empty($submissionId)) {
+ return $response->withStatus(400)->withJsonError('api.submissions.400.missingRequired');
+ }
+
+ /** @var FeatureDAO */
+ $featureDao = DAORegistry::getDAO('FeatureDAO');
+ $featureDao->deleteByMonographId($submissionId);
+ if (!empty($params['featured'])) {
+ foreach ($params['featured'] as $feature) {
+ $featureDao->insertFeature($submissionId, $feature['assoc_type'], $feature['assoc_id'], $feature['seq']);
+ }
+ }
+ /** @var NewReleaseDAO */
+ $newReleaseDao = DAORegistry::getDAO('NewReleaseDAO');
+ $newReleaseDao->deleteByMonographId($submissionId);
+ if (!empty($params['newRelease'])) {
+ foreach ($params['newRelease'] as $newRelease) {
+ $newReleaseDao->insertNewRelease($submissionId, $newRelease['assoc_type'], $newRelease['assoc_id']);
+ }
+ }
+
+ $output = [
+ 'featured' => $featureDao->getFeaturedAll($submissionId),
+ 'newRelease' => $newReleaseDao->getNewReleaseAll($submissionId),
+ ];
+
+ return $response->withJson($output);
+ }
+
+ /**
+ * Save changes to the sequence of featured items in the catalog, series or
+ * category.
+ *
+ * @param SlimRequest $slimRequest Slim request object
+ * @param APIResponse $response object
+ * @param array $args {
+ *
+ * @option int assocType Whether these featured items are for a
+ * press, category or series. Values: Application::ASSOC_TYPE_*
+ * @option int assocId The press, category or series id
+ * @option array featured List of assoc arrays with submission ids and
+ * seq value.
+ * @option bool append Whether to replace or append the features to
+ * the existing features for this assoc type and id. Default: false
+ * }
+ *
+ * @return APIResponse
+ */
+ public function saveFeaturedOrder($slimRequest, $response, $args)
+ {
+ $params = $slimRequest->getParsedBody();
+
+ $assocType = isset($params['assocType']) && in_array($params['assocType'], [Application::ASSOC_TYPE_PRESS, Application::ASSOC_TYPE_CATEGORY, Application::ASSOC_TYPE_SERIES]) ? (int) $params['assocType'] : null;
+ $assocId = isset($params['assocId']) ? (int) $params['assocId'] : null;
+
+ if (empty($assocType) || empty($assocId)) {
+ return $response->withStatus(400)->withJsonError('api.submissions.400.missingRequired');
+ }
+ /** @var FeatureDAO */
+ $featureDao = DAORegistry::getDAO('FeatureDAO');
+ $featureDao->deleteByAssoc($assocType, $assocId);
+ if (!empty($params['featured'])) {
+ foreach ($params['featured'] as $feature) {
+ $featureDao->insertFeature($feature['id'], $assocType, $assocId, $feature['seq']);
+ }
+ }
+
+ return $response->withJson(true);
+ }
+
+ /**
+ * Add one or more submissions to the catalog
+ *
+ * @param SlimRequest $slimRequest Slim request object
+ * @param APIResponse $response object
+ *
+ * @return APIResponse
+ */
+ public function addToCatalog($slimRequest, $response, $args)
+ {
+ $params = $slimRequest->getParsedBody();
+
+ if (empty($params['submissionIds'])) {
+ return $response->withStatus(400)->withJsonError('api.submissions.400.submissionIdsRequired');
+ }
+
+ $submissionIds = array_map('intval', (array) $params['submissionIds']);
+
+ if (empty($submissionIds)) {
+ return $response->withStatus(400)->withJsonError('api.submissions.400.submissionIdsRequired');
+ }
+
+
+ $primaryLocale = $this->getRequest()->getContext()->getPrimaryLocale();
+ $allowedLocales = $this->getRequest()->getContext()->getSupportedFormLocales();
+
+ $validPublications = [];
+ foreach ($submissionIds as $submissionId) {
+ $submission = Repo::submission()->get($submissionId);
+ if (!$submission) {
+ return $response->withStatus(400)->withJsonError('api.submissions.400.submissionsNotFound');
+ }
+ $publication = $submission->getCurrentPublication();
+ if ($publication->getData('status') === Submission::STATUS_PUBLISHED) {
+ continue;
+ }
+ $errors = Repo::publication()->validatePublish($publication, $submission, $allowedLocales, $primaryLocale);
+ if (!empty($errors)) {
+ return $response->withStatus(400)->withJson($errors);
+ }
+ $validPublications[] = $publication;
+ }
+
+ foreach ($validPublications as $validPublication) {
+ Repo::publication()->publish($validPublication);
+ }
+
+ return $response->withJson(true);
+ }
+}
diff --git a/api/v1/_submissions/index.php b/api/v1/_submissions/index.php
index ef9e21f9861..32e12592120 100644
--- a/api/v1/_submissions/index.php
+++ b/api/v1/_submissions/index.php
@@ -12,9 +12,9 @@
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup api_v1_backend
+ *
* @brief Handle requests for backend API.
*
*/
-import('api.v1._submissions.BackendSubmissionsHandler');
-return new BackendSubmissionsHandler();
+return new \APP\API\v1\_submissions\BackendSubmissionsHandler();
diff --git a/api/v1/_uploadPublicFile/index.php b/api/v1/_uploadPublicFile/index.php
index 186b0338c7a..460ca10ce84 100644
--- a/api/v1/_uploadPublicFile/index.php
+++ b/api/v1/_uploadPublicFile/index.php
@@ -11,7 +11,8 @@
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup api_v1_uploadPublicFile
+ *
* @brief Handle API requests for uploadPublicFile.
*/
-import('lib.pkp.api.v1._uploadPublicFile.PKPUploadPublicFileHandler');
-return new PKPUploadPublicFileHandler();
+
+return new \PKP\API\v1\_uploadPublicFile\PKPUploadPublicFileHandler();
diff --git a/api/v1/announcements/index.php b/api/v1/announcements/index.php
index 0284f891049..7624ea3690c 100644
--- a/api/v1/announcements/index.php
+++ b/api/v1/announcements/index.php
@@ -11,7 +11,8 @@
* Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
*
* @ingroup api_v1_announcements
+ *
* @brief Handle API requests for announcements.
*/
-import('lib.pkp.api.v1.announcements.PKPAnnouncementHandler');
-return new PKPAnnouncementHandler();
+
+return new \PKP\API\v1\announcements\PKPAnnouncementHandler();
diff --git a/api/v1/contexts/index.php b/api/v1/contexts/index.php
index 9c56e51bfa9..8f647ce1d4d 100644
--- a/api/v1/contexts/index.php
+++ b/api/v1/contexts/index.php
@@ -10,7 +10,8 @@
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup api_v1_contexts
+ *
* @brief Handle API requests for contexts (presses).
*/
-import('lib.pkp.api.v1.contexts.PKPContextHandler');
-return new PKPContextHandler();
+
+return new \PKP\API\v1\contexts\PKPContextHandler();
diff --git a/api/v1/dois/DoiHandler.php b/api/v1/dois/DoiHandler.php
new file mode 100644
index 00000000000..f81320ee481
--- /dev/null
+++ b/api/v1/dois/DoiHandler.php
@@ -0,0 +1,77 @@
+ DAORegistry::getDAO('ChapterDAO'),
+ Repo::doi()::TYPE_SUBMISSION_FILE => Repo::submissionFile(),
+ Repo::doi()::TYPE_REPRESENTATION => DAORegistry::getDAO('PublicationFormatDAO'),
+ default => null
+ };
+
+ if ($pubObjectHandler !== null) {
+ return $pubObjectHandler;
+ }
+
+ return parent::getPubObjectHandler($type);
+ }
+
+ /**
+ * @copydoc PKPDoiHandler::getViaPubObjectHandler()
+ */
+ protected function getViaPubObjectHandler(mixed $pubObjectHandler, int $pubObjectId): mixed
+ {
+ if ($pubObjectHandler instanceof ChapterDAO) {
+ return $pubObjectHandler->getChapter($pubObjectId);
+ } elseif ($pubObjectHandler instanceof PublicationFormatDAO) {
+ return $pubObjectHandler->getById($pubObjectId);
+ }
+
+ return parent::getViaPubObjectHandler($pubObjectHandler, $pubObjectId);
+ }
+
+ /**
+ * @copydoc PKPDoiHandler::editViaPubObjectHandler()
+ */
+ protected function editViaPubObjectHandler(mixed $pubObjectHandler, mixed $pubObject, ?int $doiId): void
+ {
+ if ($pubObjectHandler instanceof ChapterDAO) {
+ $pubObject->setData('doiId', $doiId);
+ $pubObjectHandler->updateObject($pubObject);
+ return;
+ } elseif ($pubObjectHandler instanceof PublicationFormatDAO) {
+ $pubObject->setData('doiId', $doiId);
+ $pubObjectHandler->updateObject($pubObject);
+ return;
+ }
+ parent::editViaPubObjectHandler($pubObjectHandler, $pubObject, $doiId);
+ }
+}
diff --git a/api/v1/dois/index.php b/api/v1/dois/index.php
new file mode 100644
index 00000000000..27da89885d4
--- /dev/null
+++ b/api/v1/dois/index.php
@@ -0,0 +1,18 @@
+sectionIdsQueryParam;
+ }
+}
diff --git a/api/v1/stats/index.php b/api/v1/stats/index.php
index c8e5476365f..322e81d1a32 100644
--- a/api/v1/stats/index.php
+++ b/api/v1/stats/index.php
@@ -12,18 +12,32 @@
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup api_v1_stats
+ *
* @brief Handle API requests for publication statistics
*
*/
+namespace APP\API\v1\stats;
+
+use APP\core\Application;
+
$requestPath = Application::get()->getRequest()->getRequestPath();
if (strpos($requestPath, '/stats/publications')) {
- import('api.v1.stats.publications.StatsPublicationHandler');
- return new StatsPublicationHandler();
+ return new \APP\API\v1\stats\publications\StatsPublicationHandler();
} elseif (strpos($requestPath, '/stats/editorial')) {
- import('api.v1.stats.editorial.StatsEditorialHandler');
- return new StatsEditorialHandler();
+ return new \APP\API\v1\stats\editorial\StatsEditorialHandler();
} elseif (strpos($requestPath, '/stats/users')) {
- import('lib.pkp.api.v1.stats.users.PKPStatsUserHandler');
- return new PKPStatsUserHandler();
+ return new \PKP\API\v1\stats\users\PKPStatsUserHandler();
+} elseif (strpos($requestPath, '/stats/contexts')) {
+ return new \PKP\API\v1\stats\contexts\PKPStatsContextHandler();
+} elseif (strpos($requestPath, '/stats/sushi')) {
+ return new \APP\API\v1\stats\sushi\StatsSushiHandler();
+} else {
+ http_response_code('404');
+ header('Content-Type: application/json');
+ echo json_encode([
+ 'error' => 'api.404.endpointNotFound',
+ 'errorMessage' => __('api.404.endpointNotFound'),
+ ]);
+ exit;
}
diff --git a/api/v1/stats/publications/StatsPublicationHandler.inc.php b/api/v1/stats/publications/StatsPublicationHandler.inc.php
deleted file mode 100644
index 41b7a3ac77f..00000000000
--- a/api/v1/stats/publications/StatsPublicationHandler.inc.php
+++ /dev/null
@@ -1,22 +0,0 @@
-sectionIdsQueryParam;
+ }
+}
diff --git a/api/v1/stats/sushi/StatsSushiHandler.php b/api/v1/stats/sushi/StatsSushiHandler.php
new file mode 100644
index 00000000000..90d8d24d34e
--- /dev/null
+++ b/api/v1/stats/sushi/StatsSushiHandler.php
@@ -0,0 +1,90 @@
+ $this->getEndpointPattern() . '/reports/tr',
+ 'handler' => [$this, 'getReportsTR'],
+ 'roles' => $roles
+ ],
+ [
+ 'pattern' => $this->getEndpointPattern() . '/reports/tr_b3',
+ 'handler' => [$this, 'getReportsTRB3'],
+ 'roles' => $roles
+ ],
+ ]
+ );
+ }
+
+ /**
+ * COUNTER 'Title Master Report' [TR].
+ * A customizable report detailing activity at the press level
+ * that allows the user to apply filters and select other configuration options for the report.
+ */
+ public function getReportsTR(SlimHttpRequest $slimRequest, APIResponse $response, array $args): APIResponse
+ {
+ return $this->getReportResponse(new TR(), $slimRequest, $response, $args);
+ }
+
+ /**
+ * COUNTER 'Book Usage by Access Type' [TR_B3].
+ * This is a Standard View of Title Master Report that reports on book usage showing all applicable Metric_Types broken down by Access_Type.
+ */
+ public function getReportsTRB3(SlimHttpRequest $slimRequest, APIResponse $response, array $args): APIResponse
+ {
+ return $this->getReportResponse(new TR_B3(), $slimRequest, $response, $args);
+ }
+
+ /**
+ * Get the application specific list of reports supported by the API
+ */
+ protected function getReportList(): array
+ {
+ return array_merge(parent::getReportList(), [
+ [
+ 'Report_Name' => 'Title Master Report',
+ 'Report_ID' => 'TR',
+ 'Release' => '5',
+ 'Report_Description' => __('sushi.reports.tr.description'),
+ 'Path' => 'reports/tr'
+ ],
+ [
+ 'Report_Name' => 'Book Usage by Access Type',
+ 'Report_ID' => 'TR_B3',
+ 'Release' => '5',
+ 'Report_Description' => __('sushi.reports.tr_b3.description'),
+ 'Path' => 'reports/tr_b3'
+ ],
+ ]);
+ }
+}
diff --git a/api/v1/submissions/index.php b/api/v1/submissions/index.php
index 9bdb80a9100..f786e90e0c1 100644
--- a/api/v1/submissions/index.php
+++ b/api/v1/submissions/index.php
@@ -12,14 +12,16 @@
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup api_v1_submissions
+ *
* @brief Handle requests for submission API functions.
*
*/
+
+use APP\core\Application;
+
$requestPath = Application::get()->getRequest()->getRequestPath();
if (strpos($requestPath, '/files')) {
- import('lib.pkp.api.v1.submissions.PKPSubmissionFileHandler');
- return new PKPSubmissionFileHandler();
+ return new \PKP\API\v1\submissions\PKPSubmissionFileHandler();
} else {
- import('lib.pkp.api.v1.submissions.PKPSubmissionHandler');
- return new PKPSubmissionHandler();
-}
\ No newline at end of file
+ return new \PKP\API\v1\submissions\PKPSubmissionHandler();
+}
diff --git a/api/v1/temporaryFiles/index.php b/api/v1/temporaryFiles/index.php
index f100cf1f101..b08e7736f85 100644
--- a/api/v1/temporaryFiles/index.php
+++ b/api/v1/temporaryFiles/index.php
@@ -10,7 +10,8 @@
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup api_v1_temporaryFiles
+ *
* @brief Handle API requests for temporary file uploading.
*/
-import('lib.pkp.api.v1.temporaryFiles.PKPTemporaryFilesHandler');
-return new PKPTemporaryFilesHandler();
+
+return new \PKP\API\v1\temporaryFiles\PKPTemporaryFilesHandler();
diff --git a/api/v1/users/UserHandler.inc.php b/api/v1/users/UserHandler.inc.php
deleted file mode 100644
index d97ced74b25..00000000000
--- a/api/v1/users/UserHandler.inc.php
+++ /dev/null
@@ -1,19 +0,0 @@
-getRequest();
+ $context = $request->getContext();
+
+ if (!$context) {
+ return $response->withStatus(404)->withJsonError('api.404.resourceNotFound');
+ }
+
+ $requestParams = $slimRequest->getQueryParams();
+
+ $vocab = $requestParams['vocab'] ?? '';
+ $locale = $requestParams['locale'] ?? Locale::getLocale();
+ $term = $requestParams['term'] ?? null;
+ $codeList = (int) ($requestParams['codeList'] ?? static::LANGUAGE_CODE_LIST);
+
+ if (!in_array($locale, $context->getData('supportedSubmissionLocales'))) {
+ return $response->withStatus(400)->withJsonError('api.vocabs.400.localeNotSupported', ['locale' => $locale]);
+ }
+
+ // In order to use the languages from ONIX, this route overwrites needs to overwrite only the SubmissionLanguageDAO::CONTROLLED_VOCAB_SUBMISSION_LANGUAGE vocabulary
+ if ($vocab !== SubmissionLanguageDAO::CONTROLLED_VOCAB_SUBMISSION_LANGUAGE) {
+ return parent::getMany(...func_get_args());
+ }
+
+ /** @var ONIXCodelistItemDAO */
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO');
+ $codes = array_map(fn ($value) => trim($value), array_values($onixCodelistItemDao->getCodes('List' . $codeList, [], $term)));
+ asort($codes);
+ return $response->withJson($codes, 200);
+ }
+}
diff --git a/api/v1/vocabs/index.php b/api/v1/vocabs/index.php
index 3a57ddda74b..839e954056c 100644
--- a/api/v1/vocabs/index.php
+++ b/api/v1/vocabs/index.php
@@ -11,8 +11,8 @@
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @ingroup api_v1_vocabs
+ *
* @brief Handle API requests for vocabs.
*/
-import('api.v1.vocabs.VocabHandler');
-return new VocabHandler();
+return new \APP\API\v1\vocabs\VocabHandler();
diff --git a/cache/.gitignore b/cache/.gitignore
index 7f75030631a..005717ead0b 100644
--- a/cache/.gitignore
+++ b/cache/.gitignore
@@ -1,6 +1,2 @@
-*.php
-*.html
-*.gz
-*.css
-URI/
-HTML/
+*
+!.gitignore
diff --git a/classes/author/Author.php b/classes/author/Author.php
new file mode 100644
index 00000000000..1a1c318f5e0
--- /dev/null
+++ b/classes/author/Author.php
@@ -0,0 +1,47 @@
+getData('isVolumeEditor');
+ }
+
+ /**
+ * Set whether or not this author should be displayed as a volume editor
+ *
+ * @param bool $isVolumeEditor
+ */
+ public function setIsVolumeEditor($isVolumeEditor)
+ {
+ $this->setData('isVolumeEditor', $isVolumeEditor);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ // Required for import/export toolset
+ class_alias('\APP\author\Author', '\Author');
+}
diff --git a/classes/author/Collector.php b/classes/author/Collector.php
new file mode 100644
index 00000000000..b9baae3fdae
--- /dev/null
+++ b/classes/author/Collector.php
@@ -0,0 +1,54 @@
+dao = $dao;
+ }
+
+ /**
+ * Limit results to authors assigned to this chapter by chapterId
+ */
+ public function filterByChapterIds(?array $chapterIds): self
+ {
+ $this->chapterIds = $chapterIds;
+ return $this;
+ }
+
+ /**
+ * @copydoc CollectorInterface::getQueryBuilder()
+ */
+ public function getQueryBuilder(): Builder
+ {
+ $q = parent::getQueryBuilder();
+
+ $q->when($this->chapterIds !== null, function ($query) {
+ $query->whereIn('author_id', function ($query) {
+ return $query->select('author_id')
+ ->from('submission_chapter_authors')
+ ->whereIn('chapter_id', $this->chapterIds);
+ });
+ });
+
+ return $q;
+ }
+}
diff --git a/classes/author/DAO.php b/classes/author/DAO.php
new file mode 100644
index 00000000000..b7fab6a235e
--- /dev/null
+++ b/classes/author/DAO.php
@@ -0,0 +1,58 @@
+chapterAuthorsTable)->insert([
+ 'author_id' => $authorId,
+ 'chapter_id' => $chapterId,
+ 'primary_contact' => $isPrimary,
+ 'seq' => $sequence,
+ ]);
+ }
+
+ /**
+ * Remove an author from a chapter
+ */
+ public function deleteChapterAuthorById(int $authorId, int $chapterId)
+ {
+ DB::table($this->chapterAuthorsTable)
+ ->where('author_id', '=', $authorId)
+ ->where('chapter_id', '=', $chapterId)
+ ->delete();
+ }
+
+ /**
+ * Remove all authors from a chapter
+ *
+ * TODO: May need to go (or taken into consideration) to \chapter\DAO when available
+ */
+ public function deleteChapterAuthors(Chapter $chapter)
+ {
+ DB::table($this->chapterAuthorsTable)
+ ->where('chapter_id', '=', $chapter->getId())
+ ->delete();
+ }
+}
diff --git a/classes/author/Repository.php b/classes/author/Repository.php
new file mode 100644
index 00000000000..6990011c139
--- /dev/null
+++ b/classes/author/Repository.php
@@ -0,0 +1,59 @@
+dao->insertChapterAuthor(
+ $authorId,
+ $chapterId,
+ $isPrimary,
+ $sequence
+ );
+ }
+
+ /**
+ * Remove an author from a chapter.
+ */
+ public function removeFromChapter(int $authorId, int $chapterId)
+ {
+ $this->dao->deleteChapterAuthorById(
+ $authorId,
+ $chapterId
+ );
+ }
+
+ /**
+ * Remove all authors from a chapter.
+ */
+ public function removeChapterAuthors(Chapter $chapter)
+ {
+ $this->dao->deleteChapterAuthors(
+ $chapter
+ );
+ }
+}
diff --git a/classes/codelist/CodelistItem.inc.php b/classes/codelist/CodelistItem.inc.php
deleted file mode 100644
index 4ea58d88d47..00000000000
--- a/classes/codelist/CodelistItem.inc.php
+++ /dev/null
@@ -1,75 +0,0 @@
-getData('text');
- }
-
- /**
- * Set the text component of the codelist.
- * @param $text string
- */
- function setText($text) {
- return $this->setData('text', $text);
- }
-
- /**
- * Get codelist code.
- * @return string
- */
- function getCode() {
- return $this->getData('code');
- }
-
- /**
- * Set codelist code.
- * @param $code string
- */
- function setCode($code) {
- return $this->setData('code', $code);
- }
-
- /**
- * @return String the numerical value representing this item in the ONIX 3.0 schema
- */
- function getOnixSubjectSchemeIdentifier() {
- assert(false); // provided by subclasses
- }
-}
-
-
diff --git a/classes/codelist/CodelistItem.php b/classes/codelist/CodelistItem.php
new file mode 100644
index 00000000000..42fa8ef4981
--- /dev/null
+++ b/classes/codelist/CodelistItem.php
@@ -0,0 +1,84 @@
+getData('text');
+ }
+
+ /**
+ * Set the text component of the codelist.
+ *
+ * @param string $text
+ */
+ public function setText($text)
+ {
+ return $this->setData('text', $text);
+ }
+
+ /**
+ * Get codelist code.
+ *
+ * @return string
+ */
+ public function getCode()
+ {
+ return $this->getData('code');
+ }
+
+ /**
+ * Set codelist code.
+ *
+ * @param string $code
+ */
+ public function setCode($code)
+ {
+ return $this->setData('code', $code);
+ }
+
+ /**
+ * @return string the numerical value representing this item in the ONIX 3.0 schema
+ */
+ public function getOnixSubjectSchemeIdentifier()
+ {
+ assert(false); // provided by subclasses
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\codelist\CodelistItem', '\CodelistItem');
+}
diff --git a/classes/codelist/CodelistItemDAO.inc.php b/classes/codelist/CodelistItemDAO.inc.php
deleted file mode 100644
index 7b95c896643..00000000000
--- a/classes/codelist/CodelistItemDAO.inc.php
+++ /dev/null
@@ -1,177 +0,0 @@
-getCacheName();
-
- $cache =& Registry::get($cacheName, true, null);
- if ($cache === null) {
- $cacheManager = CacheManager::getManager();
- $cache = $cacheManager->getFileCache(
- $this->getName() . '_codelistItems', $locale,
- [$this, '_cacheMiss']
- );
- $cacheTime = $cache->getCacheTime();
- if ($cacheTime !== null && $cacheTime < filemtime($this->getFilename($locale))) {
- $cache->flush();
- }
- }
-
- return $cache;
- }
-
- /**
- * Handle a cache miss
- * @param $cache GenericCache
- * @param $id mixed ID that wasn't found in the cache
- * @return null
- */
- function _cacheMiss($cache, $id) {
- $allCodelistItems =& Registry::get('all' . $this->getName() . 'CodelistItems', true, null);
- if ($allCodelistItems === null) {
- // Add a locale load to the debug notes.
- $notes =& Registry::get('system.debug.notes');
- $locale = $cache->cacheId;
- if ($locale == null) {
- $locale = AppLocale::getLocale();
- }
- $filename = $this->getFilename($locale);
- $notes[] = ['debug.notes.codelistItemListLoad', ['filename' => $filename]];
-
- // Reload locale registry file
- $xmlDao = new XMLDAO();
- $nodeName = $this->getName(); // i.e., subject
- $data = $xmlDao->parseStruct($filename, [$nodeName]);
-
- // Build array with ($charKey => [stuff])
- if (isset($data[$nodeName])) {
- foreach ($data[$nodeName] as $codelistData) {
- $allCodelistItems[$codelistData['attributes']['code']] = [
- $codelistData['attributes']['text'],
- ];
- }
- }
- if (is_array($allCodelistItems)) {
- asort($allCodelistItems);
- }
- $cache->setEntireCache($allCodelistItems);
- }
- return null;
- }
-
- /**
- * Get the cache name for this particular codelist database
- * @return string
- */
- function getCacheName() {
- return $this->getName() . 'Cache';
- }
-
- /**
- * Get the filename of the codelist database
- * @param $locale string
- * @return string
- */
- function getFilename($locale) {
- assert(false);
- }
-
- /**
- * Get the base node name particular codelist database
- * @return string
- */
- function getName() {
- assert(false);
- }
-
- /**
- * Get the name of the CodelistItem subclass.
- * @return CodelistItem
- */
- function newDataObject() {
- assert(false);
- }
-
- /**
- * Retrieve a codelist by code.
- * @param $codelistId int
- * @return CodelistItem
- */
- function getByCode($code) {
- $cache = $this->_getCache();
- return $this->_fromRow($code, $cache->get($code));
- }
-
- /**
- * Retrieve an array of all the codelist items.
- * @param $locale an optional locale to use
- * @return array of CodelistItems
- */
- function getCodelistItems($locale = null) {
- $cache = $this->_getCache($locale);
- $returner = [];
- foreach ($cache->getContents() as $code => $entry) {
- $returner[] = $this->_fromRow($code, $entry);
- }
- return $returner;
- }
-
- /**
- * Retrieve an array of all codelist names.
- * @param $locale an optional locale to use
- * @return array of CodelistItem names
- */
- function getNames($locale = null) {
- $cache = $this->_getCache($locale);
- $returner = [];
- $cacheContents = $cache->getContents();
- if (is_array($cacheContents)) {
- foreach ($cache->getContents() as $code => $entry) {
- $returner[] = $entry[0];
- }
- }
- return $returner;
- }
-
- /**
- * Internal function to construct and populate a Codelist object
- * @param $code string
- * @param $entry array
- * @return CodelistItem
- */
- function _fromRow($code, $entry) {
- $codelistItem = $this->newDataObject();
- $codelistItem->setCode($code);
- $codelistItem->setText($entry[0]);
-
- HookRegistry::call('CodelistItemDAO::_fromRow', [&$codelistItem, &$code, &$entry]);
-
- return $codelistItem;
- }
-}
-
diff --git a/classes/codelist/CodelistItemDAO.php b/classes/codelist/CodelistItemDAO.php
new file mode 100644
index 00000000000..ffe2e223a49
--- /dev/null
+++ b/classes/codelist/CodelistItemDAO.php
@@ -0,0 +1,210 @@
+getCacheName();
+
+ $cache = & Registry::get($cacheName, true, null);
+ if ($cache === null) {
+ $cacheManager = CacheManager::getManager();
+ $cache = $cacheManager->getFileCache(
+ $this->getName() . '_codelistItems',
+ $locale,
+ [$this, '_cacheMiss']
+ );
+ $cacheTime = $cache->getCacheTime();
+ if ($cacheTime !== null && $cacheTime < filemtime($this->getFilename($locale))) {
+ $cache->flush();
+ }
+ }
+
+ return $cache;
+ }
+
+ /**
+ * Handle a cache miss
+ *
+ * @param GenericCache $cache
+ * @param mixed $id ID that wasn't found in the cache
+ */
+ public function _cacheMiss($cache, $id)
+ {
+ $allCodelistItems = & Registry::get('all' . $this->getName() . 'CodelistItems', true, null);
+ if ($allCodelistItems === null) {
+ // Add a locale load to the debug notes.
+ $notes = & Registry::get('system.debug.notes');
+ $locale = $cache->cacheId ?? Locale::getLocale();
+ $filename = $this->getFilename($locale);
+ $notes[] = ['debug.notes.codelistItemListLoad', ['filename' => $filename]];
+
+ // Reload locale registry file
+ $xmlDao = new XMLDAO();
+ $nodeName = $this->getName(); // i.e., subject
+ $data = $xmlDao->parseStruct($filename, [$nodeName]);
+
+ // Build array with ($charKey => [stuff])
+ if (isset($data[$nodeName])) {
+ foreach ($data[$nodeName] as $codelistData) {
+ $allCodelistItems[$codelistData['attributes']['code']] = [
+ $codelistData['attributes']['text'],
+ ];
+ }
+ }
+ if (is_array($allCodelistItems)) {
+ asort($allCodelistItems);
+ }
+ $cache->setEntireCache($allCodelistItems);
+ }
+ return null;
+ }
+
+ /**
+ * Get the cache name for this particular codelist database
+ *
+ * @return string
+ */
+ public function getCacheName()
+ {
+ return $this->getName() . 'Cache';
+ }
+
+ /**
+ * Get the filename of the codelist database
+ *
+ * @param string $locale
+ *
+ * @return string
+ */
+ public function getFilename($locale)
+ {
+ assert(false);
+ }
+
+ /**
+ * Get the base node name particular codelist database
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ assert(false);
+ }
+
+ /**
+ * Get the name of the CodelistItem subclass.
+ *
+ * @return CodelistItem
+ */
+ public function newDataObject()
+ {
+ assert(false);
+ }
+
+ /**
+ * Retrieve a codelist by code.
+ *
+ * @return CodelistItem
+ */
+ public function getByCode($code)
+ {
+ $cache = $this->_getCache();
+ return $this->_fromRow($code, $cache->get($code));
+ }
+
+ /**
+ * Retrieve an array of all the codelist items.
+ *
+ * @param string $locale an optional locale to use
+ *
+ * @return array of CodelistItems
+ */
+ public function getCodelistItems($locale = null)
+ {
+ $cache = $this->_getCache($locale);
+ $returner = [];
+ foreach ($cache->getContents() as $code => $entry) {
+ $returner[] = $this->_fromRow($code, $entry);
+ }
+ return $returner;
+ }
+
+ /**
+ * Retrieve an array of all codelist names.
+ *
+ * @param string $locale an optional locale to use
+ *
+ * @return array of CodelistItem names
+ */
+ public function getNames($locale = null)
+ {
+ $cache = $this->_getCache($locale);
+ $returner = [];
+ $cacheContents = $cache->getContents();
+ if (is_array($cacheContents)) {
+ foreach ($cache->getContents() as $code => $entry) {
+ $returner[] = $entry[0];
+ }
+ }
+ return $returner;
+ }
+
+ /**
+ * Internal function to construct and populate a Codelist object
+ *
+ * @param string $code
+ * @param array $entry
+ *
+ * @return CodelistItem
+ */
+ public function _fromRow($code, $entry)
+ {
+ $codelistItem = $this->newDataObject();
+ $codelistItem->setCode($code);
+ $codelistItem->setText($entry[0]);
+
+ Hook::call('CodelistItemDAO::_fromRow', [&$codelistItem, &$code, &$entry]);
+
+ return $codelistItem;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\codelist\CodelistItemDAO', '\CodelistItemDAO');
+}
diff --git a/classes/codelist/ONIXCodelistItem.inc.php b/classes/codelist/ONIXCodelistItem.inc.php
deleted file mode 100644
index 0ae7b2884c6..00000000000
--- a/classes/codelist/ONIXCodelistItem.inc.php
+++ /dev/null
@@ -1,64 +0,0 @@
-getData('text');
- }
-
- /**
- * Set the text component of the codelist.
- * @param $text string
- */
- function setText($text) {
- return $this->setData('text', $text);
- }
-
- /**
- * Get codelist code.
- * @return string
- */
- function getCode() {
- return $this->getData('code');
- }
-
- /**
- * Set codelist code.
- * @param $code string
- */
- function setCode($code) {
- return $this->setData('code', $code);
- }
-}
-
diff --git a/classes/codelist/ONIXCodelistItem.php b/classes/codelist/ONIXCodelistItem.php
new file mode 100644
index 00000000000..2698d10ed25
--- /dev/null
+++ b/classes/codelist/ONIXCodelistItem.php
@@ -0,0 +1,73 @@
+getData('text');
+ }
+
+ /**
+ * Set the text component of the codelist.
+ *
+ * @param string $text
+ */
+ public function setText($text)
+ {
+ return $this->setData('text', $text);
+ }
+
+ /**
+ * Get codelist code.
+ *
+ * @return string
+ */
+ public function getCode()
+ {
+ return $this->getData('code');
+ }
+
+ /**
+ * Set codelist code.
+ *
+ * @param string $code
+ */
+ public function setCode($code)
+ {
+ return $this->setData('code', $code);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\codelist\ONIXCodelistItem', '\ONIXCodelistItem');
+}
diff --git a/classes/codelist/ONIXCodelistItemDAO.inc.php b/classes/codelist/ONIXCodelistItemDAO.inc.php
deleted file mode 100644
index 218f1c739ad..00000000000
--- a/classes/codelist/ONIXCodelistItemDAO.inc.php
+++ /dev/null
@@ -1,243 +0,0 @@
-getListName() . 'Cache';
-
- $cache =& Registry::get($cacheName, true, null);
- if ($cache === null) {
- $cacheManager = CacheManager::getManager();
- $cache = $cacheManager->getFileCache(
- $this->getListName() . '_codelistItems', $locale,
- [$this, '_cacheMiss']
- );
- $cacheTime = $cache->getCacheTime();
- if ($cacheTime !== null && $cacheTime < filemtime($this->getFilename($locale))) {
- $cache->flush();
- }
- }
-
- return $cache;
- }
-
- function _cacheMiss($cache, $id) {
- $allCodelistItems =& Registry::get('all' . $this->getListName() . 'CodelistItems', true, null);
- if ($allCodelistItems === null) {
- // Add a locale load to the debug notes.
- $notes =& Registry::get('system.debug.notes');
- $locale = $cache->cacheId;
- if ($locale == null) {
- $locale = AppLocale::getLocale();
- }
- $filename = $this->getFilename($locale);
- $notes[] = ['debug.notes.codelistItemListLoad', ['filename' => $filename]];
-
- // Reload locale registry file
- $xmlDao = new XMLDAO();
- $listName = $this->getListName(); // i.e., 'List30'
- import('classes.codelist.ONIXParserDOMHandler');
- $handler = new ONIXParserDOMHandler($listName);
-
- import('lib.pkp.classes.xslt.XSLTransformer');
- import('lib.pkp.classes.file.FileManager');
- import('lib.pkp.classes.file.TemporaryFileManager');
-
- $temporaryFileManager = new TemporaryFileManager();
- $fileManager = new FileManager();
-
- // Ensure that the temporary file dir exists
- $tmpDir = $temporaryFileManager->getBasePath();
- if (!file_exists($tmpDir)) mkdir($tmpDir);
-
- $tmpName = tempnam($tmpDir, 'ONX');
- $xslTransformer = new XSLTransformer();
- $xslTransformer->setParameters(['listName' => $listName]);
- $xslTransformer->setRegisterPHPFunctions(true);
-
- $xslFile = 'lib/pkp/xml/onixFilter.xsl';
- $filteredXml = $xslTransformer->transform($filename, XSL_TRANSFORMER_DOCTYPE_FILE, $xslFile, XSL_TRANSFORMER_DOCTYPE_FILE, XSL_TRANSFORMER_DOCTYPE_STRING);
- if (!$filteredXml) {assert(false);}
-
- $data = null;
-
- if (is_writeable($tmpName)) {
- $fp = fopen($tmpName, 'wb');
- fwrite($fp, $filteredXml);
- fclose($fp);
- $data = $xmlDao->parseWithHandler($tmpName, $handler);
- $fileManager->deleteByPath($tmpName);
- } else {
- fatalError('misconfigured directory permissions on: ' . $tmpDir);
- }
-
- // Build array with ($charKey => [stuff])
-
- if (isset($data[$listName])) {
- foreach ($data[$listName] as $code => $codelistData) {
- $allCodelistItems[$code] = $codelistData;
- }
- }
- if (is_array($allCodelistItems)) {
- asort($allCodelistItems);
- }
-
- $cache->setEntireCache($allCodelistItems);
-
- }
- return null;
- }
-
- /**
- * Get the filename for the ONIX codelist document. Use a localized
- * version if available, but if not, fall back on the master locale.
- * @param $locale string Locale code
- * @return string Path and filename to ONIX codelist document
- */
- function getFilename($locale) {
- $masterLocale = MASTER_LOCALE;
- $localizedFile = "locale/$locale/ONIX_BookProduct_CodeLists.xsd";
- if (AppLocale::isLocaleValid($locale) && file_exists($localizedFile)) {
- return $localizedFile;
- }
-
- // Fall back on the version for the master locale.
- return "locale/$masterLocale/ONIX_BookProduct_CodeLists.xsd";
- }
-
- /**
- * Set the name of the list we want.
- * @param $list string
- */
- function setListName($list) {
- $this->_list =& $list;
- }
-
- /**
- * Get the base node name particular codelist database.
- * @return string
- */
- function getListName() {
- return $this->_list;
- }
-
- /**
- * Get the name of the CodelistItem subclass.
- * @return ONIXCodelistItem
- */
- function newDataObject() {
- return new ONIXCodelistItem();
- }
-
- /**
- * Retrieve an array of all the codelist items.
- * @param $list the List string for this code list (i.e., List30)
- * @param $locale an optional locale to use
- * @return array of CodelistItems
- */
- function &getCodelistItems($list, $locale = null) {
- $this->setListName($list);
- $cache =& $this->_getCache($locale);
- $returner = [];
- foreach ($cache->getContents() as $code => $entry) {
- $returner[] =& $this->_fromRow($code, $entry);
- }
- return $returner;
- }
-
- /**
- * Retrieve an array of all codelist codes and values for a given list.
- * @param $list the List string for this code list (i.e., List30)
- * @param $codesToExclude an optional list of codes to exclude from the returned list
- * @param $codesFilter an optional filter to match codes against.
- * @param $locale an optional locale to use
- * @return array of CodelistItem names
- */
- function &getCodes($list, $codesToExclude = [], $codesFilter = null, $locale = null) {
- $this->setListName($list);
- $cache =& $this->_getCache($locale);
- $returner = [];
- $cacheContents =& $cache->getContents();
- if ($codesFilter = trim($codesFilter ?? '')) {
- $codesFilter = '/' . implode('|', array_map('preg_quote', PKPString::regexp_split('/\s+/', $codesFilter))) . '/i';
- }
- if (is_array($cacheContents)) {
- foreach ($cache->getContents() as $code => $entry) {
- if ($code != '') {
- if (!in_array($code, $codesToExclude) && (!$codesFilter || preg_match($codesFilter, $entry[0])))
- $returner[$code] =& $entry[0];
- }
- }
- }
- return $returner;
- }
-
- /**
- * Determines if a particular code value is valid for a given list.
- * @return boolean
- */
- function codeExistsInList($code, $list) {
- $listKeys = array_keys($this->getCodes($list));
- return ($code != null && in_array($code, $listKeys));
- }
-
- /**
- * Returns an ONIX code based on a unique value and List number.
- * @return string
- */
- function getCodeFromValue($value, $list) {
- $codes = $this->getCodes($list);
- $codes = array_flip($codes);
- if (array_key_exists($value, $codes)) {
- return $codes[$value];
- }
- return '';
- }
-
- /**
- * Internal function to return a Codelist object from a row.
- * @param $row array
- * @return CodelistItem
- */
- function &_fromRow($code, &$entry) {
- $codelistItem = $this->newDataObject();
- $codelistItem->setCode($code);
- $codelistItem->setText($entry[0]);
-
- HookRegistry::call('ONIXCodelistItemDAO::_fromRow', [&$codelistItem, &$code, &$entry]);
-
- return $codelistItem;
- }
-}
-
diff --git a/classes/codelist/ONIXCodelistItemDAO.php b/classes/codelist/ONIXCodelistItemDAO.php
new file mode 100644
index 00000000000..b0ea94a226f
--- /dev/null
+++ b/classes/codelist/ONIXCodelistItemDAO.php
@@ -0,0 +1,268 @@
+getListName() . 'Cache';
+
+ $cache = & Registry::get($cacheName, true, null);
+ if ($cache === null) {
+ $cacheManager = CacheManager::getManager();
+ $cache = $cacheManager->getFileCache(
+ $this->getListName() . '_codelistItems',
+ $locale,
+ [$this, '_cacheMiss']
+ );
+ $cacheTime = $cache->getCacheTime();
+ if ($cacheTime !== null && $cacheTime < filemtime($this->getFilename($locale))) {
+ $cache->flush();
+ }
+ }
+
+ return $cache;
+ }
+
+ public function _cacheMiss($cache, $id)
+ {
+ $allCodelistItems = & Registry::get('all' . $this->getListName() . 'CodelistItems', true, null);
+ if ($allCodelistItems === null) {
+ // Add a locale load to the debug notes.
+ $notes = & Registry::get('system.debug.notes');
+ $locale = $cache->cacheId ?? Locale::getLocale();
+ $filename = $this->getFilename($locale);
+ $notes[] = ['debug.notes.codelistItemListLoad', ['filename' => $filename]];
+
+ // Reload locale registry file
+ $xmlDao = new XMLDAO();
+ $listName = $this->getListName(); // i.e., 'List30'
+ $handler = new ONIXParserDOMHandler($listName);
+
+ $temporaryFileManager = new TemporaryFileManager();
+ $fileManager = new FileManager();
+
+ // Ensure that the temporary file dir exists
+ $tmpDir = $temporaryFileManager->getBasePath();
+ if (!file_exists($tmpDir)) {
+ mkdir($tmpDir);
+ }
+
+ $tmpName = tempnam($tmpDir, 'ONX');
+ $xslTransformer = new XSLTransformer();
+ $xslTransformer->setParameters(['listName' => $listName]);
+ $xslTransformer->setRegisterPHPFunctions(true);
+
+ $xslFile = 'lib/pkp/xml/onixFilter.xsl';
+ $filteredXml = $xslTransformer->transform($filename, XSLTransformer::XSL_TRANSFORMER_DOCTYPE_FILE, $xslFile, XSLTransformer::XSL_TRANSFORMER_DOCTYPE_FILE, XSLTransformer::XSL_TRANSFORMER_DOCTYPE_STRING);
+ if (!$filteredXml) {
+ assert(false);
+ }
+
+ $data = null;
+
+ if (is_writeable($tmpName)) {
+ $fp = fopen($tmpName, 'wb');
+ fwrite($fp, $filteredXml);
+ fclose($fp);
+ $data = $xmlDao->parseWithHandler($tmpName, $handler);
+ $fileManager->deleteByPath($tmpName);
+ } else {
+ fatalError('misconfigured directory permissions on: ' . $tmpDir);
+ }
+
+ // Build array with ($charKey => [stuff])
+
+ if (isset($data[$listName])) {
+ foreach ($data[$listName] as $code => $codelistData) {
+ $allCodelistItems[$code] = $codelistData;
+ }
+ }
+ if (is_array($allCodelistItems)) {
+ asort($allCodelistItems);
+ }
+
+ $cache->setEntireCache($allCodelistItems);
+ }
+ return null;
+ }
+
+ /**
+ * Get the filename for the ONIX codelist document. Use a localized
+ * version if available, but if not, fall back on the master locale.
+ *
+ * @param string $locale Locale code
+ *
+ * @return string Path and filename to ONIX codelist document
+ */
+ public function getFilename($locale)
+ {
+ $masterLocale = LocaleInterface::DEFAULT_LOCALE;
+ $localizedFile = "locale/{$locale}/ONIX_BookProduct_CodeLists.xsd";
+ if (Locale::isLocaleValid($locale) && file_exists($localizedFile)) {
+ return $localizedFile;
+ }
+
+ // Fall back on the version for the master locale.
+ return "locale/{$masterLocale}/ONIX_BookProduct_CodeLists.xsd";
+ }
+
+ /**
+ * Set the name of the list we want.
+ *
+ * @param string $list
+ */
+ public function setListName($list)
+ {
+ $this->_list = & $list;
+ }
+
+ /**
+ * Get the base node name particular codelist database.
+ *
+ * @return string
+ */
+ public function getListName()
+ {
+ return $this->_list;
+ }
+
+ /**
+ * Get the name of the CodelistItem subclass.
+ *
+ * @return ONIXCodelistItem
+ */
+ public function newDataObject()
+ {
+ return new ONIXCodelistItem();
+ }
+
+ /**
+ * Retrieve an array of all the codelist items.
+ *
+ * @param string $list the List string for this code list (i.e., List30)
+ * @param string $locale an optional locale to use
+ *
+ * @return array of CodelistItems
+ */
+ public function &getCodelistItems($list, $locale = null)
+ {
+ $this->setListName($list);
+ $cache = & $this->_getCache($locale);
+ $returner = [];
+ foreach ($cache->getContents() as $code => $entry) {
+ $returner[] = & $this->_fromRow($code, $entry);
+ }
+ return $returner;
+ }
+
+ /**
+ * Retrieve an array of all codelist codes and values for a given list.
+ *
+ * @param string $list the List string for this code list (i.e., List30)
+ * @param array $codesToExclude an optional list of codes to exclude from the returned list
+ * @param string $codesFilter an optional filter to match codes against.
+ * @param string $locale an optional locale to use
+ *
+ * @return array of CodelistItem names
+ */
+ public function &getCodes($list, $codesToExclude = [], $codesFilter = null, $locale = null)
+ {
+ $this->setListName($list);
+ $cache = & $this->_getCache($locale);
+ $returner = [];
+ $cacheContents = & $cache->getContents();
+ if ($codesFilter = trim($codesFilter ?? '')) {
+ $codesFilter = '/' . implode('|', array_map(fn ($term) => preg_quote($term, '/'), PKPString::regexp_split('/\s+/', $codesFilter))) . '/i';
+ }
+ if (is_array($cacheContents)) {
+ foreach ($cache->getContents() as $code => $entry) {
+ if ($code != '') {
+ if (!in_array($code, $codesToExclude) && (!$codesFilter || preg_match($codesFilter, $entry[0]))) {
+ $returner[$code] = & $entry[0];
+ }
+ }
+ }
+ }
+ return $returner;
+ }
+
+ /**
+ * Determines if a particular code value is valid for a given list.
+ *
+ * @return bool
+ */
+ public function codeExistsInList($code, $list)
+ {
+ $listKeys = array_keys($this->getCodes($list));
+ return ($code != null && in_array($code, $listKeys));
+ }
+
+ /**
+ * Returns an ONIX code based on a unique value and List number.
+ *
+ * @return string
+ */
+ public function getCodeFromValue($value, $list)
+ {
+ $codes = $this->getCodes($list);
+ $codes = array_flip($codes);
+ if (array_key_exists($value, $codes)) {
+ return $codes[$value];
+ }
+ return '';
+ }
+
+ /**
+ * Internal function to return a Codelist object from a row.
+ *
+ * @return ONIXCodelistItem
+ */
+ public function &_fromRow($code, &$entry)
+ {
+ $codelistItem = $this->newDataObject();
+ $codelistItem->setCode($code);
+ $codelistItem->setText($entry[0]);
+
+ Hook::call('ONIXCodelistItemDAO::_fromRow', [&$codelistItem, &$code, &$entry]);
+
+ return $codelistItem;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\codelist\ONIXCodelistItemDAO', '\ONIXCodelistItemDAO');
+}
diff --git a/classes/codelist/ONIXParserDOMHandler.inc.php b/classes/codelist/ONIXParserDOMHandler.inc.php
deleted file mode 100644
index 0694581a642..00000000000
--- a/classes/codelist/ONIXParserDOMHandler.inc.php
+++ /dev/null
@@ -1,133 +0,0 @@
-...
- */
-
-import('lib.pkp.classes.xml.XMLParserDOMHandler');
-import('lib.pkp.classes.xml.XMLNode');
-
-class ONIXParserDOMHandler extends XMLParserDOMHandler {
-
- /** @var string the list being searched for */
- var $_listName = null;
-
- /** @var boolean to maintain state */
- var $_foundRequestedList = false;
-
- /** @var array of items the parser eventually returns */
- var $_listItems = null;
-
- /** @var string to store the current character data */
- var $_currentValue = null;
-
- /** @var boolean currently inside an xs:documentation element */
- var $_insideDocumentation = false;
-
- /**
- * Constructor.
- * @param $listName string
- */
- function __construct($listName) {
- parent::__construct();
- $this->_listName = $listName;
- $this->_listItems = array();
- }
-
- /**
- * Callback function to act as the start element handler.
- * @param $parser XMLParser
- * @param $tag string
- * @param $attributes array
- */
- function startElement($parser, $tag, $attributes) {
- $this->currentData = null;
-
- switch ($tag) {
- case 'xs:simpleType':
- if ($attributes['name'] == $this->_listName) {
- $this->_foundRequestedList = true;
- }
- break;
- case 'xs:enumeration':
- if ($this->_foundRequestedList) {
- $this->_currentValue = $attributes['value'];
- $this->_listItems[$this->_currentValue] = array(); // initialize the array cell
- }
- break;
- case 'xs:documentation':
- if ($this->_foundRequestedList) {
- $this->_insideDocumentation = true;
- }
- break;
- }
-
- $node = new XMLNode($tag);
- $node->setAttributes($attributes);
- if (isset($this->currentNode)) {
- $this->currentNode->addChild($node);
- $node->setParent($this->currentNode);
-
- } else {
- $this->rootNode = $node;
- }
-
- $this->currentNode = $node;
- }
-
- /**
- * Callback function to act as the character data handler.
- * @param $parser XMLParser
- * @param $data string
- */
- function characterData($parser, $data) {
- if ($this->_insideDocumentation) {
- if (count($this->_listItems[$this->_currentValue]) == 1)
- $this->_listItems[$this->_currentValue][0] .= $data;
- else
- $this->_listItems[$this->_currentValue][0] = $data;
- }
- }
-
- /**
- * Callback function to act as the end element handler.
- * @param $parser XMLParser
- * @param $tag string
- */
- function endElement($parser, $tag) {
-
- switch ($tag) {
- case 'xs:simpleType':
- $this->_foundRequestedList = false;
- break;
- case 'xs:documentation':
- $this->_insideDocumentation = false;
- break;
- }
- }
-
- /**
- * Returns the array of found list items
- * @return array
- */
- function getResult() {
- return array($this->_listName => $this->_listItems);
- }
-}
-
-
diff --git a/classes/codelist/ONIXParserDOMHandler.php b/classes/codelist/ONIXParserDOMHandler.php
new file mode 100644
index 00000000000..ff62e516207
--- /dev/null
+++ b/classes/codelist/ONIXParserDOMHandler.php
@@ -0,0 +1,149 @@
+...
+ */
+
+namespace APP\codelist;
+
+use PKP\xml\XMLNode;
+use PKP\xml\XMLParserDOMHandler;
+use XMLParser;
+
+class ONIXParserDOMHandler extends XMLParserDOMHandler
+{
+ /** @var string the list being searched for */
+ public $_listName = null;
+
+ /** @var bool to maintain state */
+ public $_foundRequestedList = false;
+
+ /** @var array of items the parser eventually returns */
+ public $_listItems = null;
+
+ /** @var string to store the current character data */
+ public $_currentValue = null;
+
+ /** @var bool currently inside an xs:documentation element */
+ public $_insideDocumentation = false;
+
+ /**
+ * Constructor.
+ *
+ * @param string $listName
+ */
+ public function __construct($listName)
+ {
+ parent::__construct();
+ $this->_listName = $listName;
+ $this->_listItems = [];
+ }
+
+ /**
+ * Callback function to act as the start element handler.
+ *
+ * @param XMLParser $parser
+ * @param string $tag
+ * @param array $attributes
+ */
+ public function startElement($parser, $tag, $attributes)
+ {
+ $this->currentData = null;
+
+ switch ($tag) {
+ case 'xs:simpleType':
+ if ($attributes['name'] == $this->_listName) {
+ $this->_foundRequestedList = true;
+ }
+ break;
+ case 'xs:enumeration':
+ if ($this->_foundRequestedList) {
+ $this->_currentValue = $attributes['value'];
+ $this->_listItems[$this->_currentValue] = []; // initialize the array cell
+ }
+ break;
+ case 'xs:documentation':
+ if ($this->_foundRequestedList) {
+ $this->_insideDocumentation = true;
+ }
+ break;
+ }
+
+ $node = new XMLNode($tag);
+ $node->setAttributes($attributes);
+ if (isset($this->currentNode)) {
+ $this->currentNode->addChild($node);
+ $node->setParent($this->currentNode);
+ } else {
+ $this->rootNode = $node;
+ }
+
+ $this->currentNode = $node;
+ }
+
+ /**
+ * Callback function to act as the character data handler.
+ *
+ * @param XMLParser $parser
+ * @param string $data
+ */
+ public function characterData($parser, $data)
+ {
+ if ($this->_insideDocumentation) {
+ if (count($this->_listItems[$this->_currentValue]) == 1) {
+ $this->_listItems[$this->_currentValue][0] .= $data;
+ } else {
+ $this->_listItems[$this->_currentValue][0] = $data;
+ }
+ }
+ }
+
+ /**
+ * Callback function to act as the end element handler.
+ *
+ * @param XMLParser $parser
+ * @param string $tag
+ */
+ public function endElement($parser, $tag)
+ {
+ switch ($tag) {
+ case 'xs:simpleType':
+ $this->_foundRequestedList = false;
+ break;
+ case 'xs:documentation':
+ $this->_insideDocumentation = false;
+ break;
+ }
+ }
+
+ /**
+ * Returns the array of found list items
+ *
+ * @return array
+ */
+ public function getResult()
+ {
+ return [$this->_listName => $this->_listItems];
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\codelist\ONIXParserDOMHandler', '\ONIXParserDOMHandler');
+}
diff --git a/classes/codelist/Qualifier.inc.php b/classes/codelist/Qualifier.inc.php
deleted file mode 100644
index 9862ef5a9d3..00000000000
--- a/classes/codelist/Qualifier.inc.php
+++ /dev/null
@@ -1,46 +0,0 @@
-_onixSubjectSchemeIdentifier;
- }
-}
-
-
diff --git a/classes/codelist/Qualifier.php b/classes/codelist/Qualifier.php
new file mode 100644
index 00000000000..ebe5b052631
--- /dev/null
+++ b/classes/codelist/Qualifier.php
@@ -0,0 +1,44 @@
+_onixSubjectSchemeIdentifier;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\codelist\Qualifier', '\Qualifier');
+}
diff --git a/classes/codelist/QualifierDAO.inc.php b/classes/codelist/QualifierDAO.inc.php
deleted file mode 100644
index 5b791c00472..00000000000
--- a/classes/codelist/QualifierDAO.inc.php
+++ /dev/null
@@ -1,61 +0,0 @@
-_onixSubjectSchemeIdentifier;
- }
-}
-
-
diff --git a/classes/codelist/Subject.php b/classes/codelist/Subject.php
new file mode 100644
index 00000000000..c2e92d0871b
--- /dev/null
+++ b/classes/codelist/Subject.php
@@ -0,0 +1,46 @@
+_onixSubjectSchemeIdentifier;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\codelist\Subject', '\Subject');
+}
diff --git a/classes/codelist/SubjectDAO.inc.php b/classes/codelist/SubjectDAO.inc.php
deleted file mode 100644
index c0c74909d41..00000000000
--- a/classes/codelist/SubjectDAO.inc.php
+++ /dev/null
@@ -1,60 +0,0 @@
-id, 'PUT', $action, $locales);
-
- $this->addField(new FieldSelectSubmissions('submissionIds', [
- 'label' => __('catalog.manage.findSubmissions'),
- 'value' => [],
- 'apiUrl' => $apiUrl,
- 'getParams' => [
- 'stageIds' => [WORKFLOW_STAGE_ID_EDITING, WORKFLOW_STAGE_ID_PRODUCTION],
- 'status' => [STATUS_QUEUED, STATUS_SCHEDULED],
- ],
- ]));
- }
-}
diff --git a/classes/components/forms/catalog/AddEntryForm.php b/classes/components/forms/catalog/AddEntryForm.php
new file mode 100644
index 00000000000..c797d461403
--- /dev/null
+++ b/classes/components/forms/catalog/AddEntryForm.php
@@ -0,0 +1,46 @@
+id, 'PUT', $action, $locales);
+
+ $this->addField(new FieldSelectSubmissions('submissionIds', [
+ 'label' => __('catalog.manage.findSubmissions'),
+ 'value' => [],
+ 'apiUrl' => $apiUrl,
+ 'getParams' => [
+ 'stageIds' => [WORKFLOW_STAGE_ID_EDITING, WORKFLOW_STAGE_ID_PRODUCTION],
+ 'status' => [PKPSubmission::STATUS_QUEUED, PKPSubmission::STATUS_SCHEDULED],
+ ],
+ ]));
+ }
+}
diff --git a/classes/components/forms/context/AppearanceAdvancedForm.inc.php b/classes/components/forms/context/AppearanceAdvancedForm.inc.php
deleted file mode 100644
index cdd1782f88a..00000000000
--- a/classes/components/forms/context/AppearanceAdvancedForm.inc.php
+++ /dev/null
@@ -1,38 +0,0 @@
-addField(new FieldText('coverThumbnailsMaxWidth', [
- 'label' => __('manager.setup.coverThumbnailsMaxWidth'),
- 'description' => __('manager.setup.coverThumbnailsMaxWidthHeight.description'),
- 'value' => $context->getData('coverThumbnailsMaxWidth'),
- ]))
- ->addField(new FieldText('coverThumbnailsMaxHeight', [
- 'label' => __('manager.setup.coverThumbnailsMaxHeight'),
- 'description' => __('manager.setup.coverThumbnailsMaxWidthHeight.description'),
- 'value' => $context->getData('coverThumbnailsMaxHeight'),
- ]));
- }
-}
diff --git a/classes/components/forms/context/AppearanceAdvancedForm.php b/classes/components/forms/context/AppearanceAdvancedForm.php
new file mode 100644
index 00000000000..86aaab72507
--- /dev/null
+++ b/classes/components/forms/context/AppearanceAdvancedForm.php
@@ -0,0 +1,42 @@
+addField(new FieldText('coverThumbnailsMaxWidth', [
+ 'label' => __('manager.setup.coverThumbnailsMaxWidth'),
+ 'description' => __('manager.setup.coverThumbnailsMaxWidthHeight.description'),
+ 'value' => $context->getData('coverThumbnailsMaxWidth'),
+ ]))
+ ->addField(new FieldText('coverThumbnailsMaxHeight', [
+ 'label' => __('manager.setup.coverThumbnailsMaxHeight'),
+ 'description' => __('manager.setup.coverThumbnailsMaxWidthHeight.description'),
+ 'value' => $context->getData('coverThumbnailsMaxHeight'),
+ ]));
+ }
+}
diff --git a/classes/components/forms/context/AppearanceSetupForm.inc.php b/classes/components/forms/context/AppearanceSetupForm.inc.php
deleted file mode 100644
index 1a3b5bc0c94..00000000000
--- a/classes/components/forms/context/AppearanceSetupForm.inc.php
+++ /dev/null
@@ -1,72 +0,0 @@
-getSortSelectOptions();
- $catalogSortOptions = array_map(function($key, $label) {
- return ['value' => $key, 'label' => $label];
- }, array_keys($catalogSortOptions), $catalogSortOptions);
-
- $this->addField(new FieldOptions('displayInSpotlight', [
- 'label' => __('manager.setup.displayInSpotlight.label'),
- 'value' => (bool) $context->getData('displayInSpotlight'),
- 'options' => [
- ['value' => 'true', 'label' => __('manager.setup.displayInSpotlight')],
- ],
- ]))
- ->addField(new FieldOptions('displayFeaturedBooks', [
- 'label' => __('manager.setup.displayFeaturedBooks.label'),
- 'value' => (bool) $context->getData('displayFeaturedBooks'),
- 'options' => [
- ['value' => 'true', 'label' => __('manager.setup.displayFeaturedBooks')],
- ],
- ]))
- ->addField(new FieldOptions('displayNewReleases', [
- 'label' => __('manager.setup.displayNewReleases.label'),
- 'value' => (bool) $context->getData('displayNewReleases'),
- 'options' => [
- ['value' => 'true', 'label' => __('manager.setup.displayNewReleases')],
- ],
- ]))
- ->addField(new FieldOptions('catalogSortOption', [
- 'label' => __('catalog.sortBy'),
- 'description' => __('catalog.sortBy.catalogDescription'),
- 'type' => 'radio',
- 'value' => $context->getData('catalogSortOption'),
- 'options' => $catalogSortOptions,
- ]))
- ->addField(new FieldUploadImage('pressThumbnail', [
- 'label' => __('manager.setup.pressThumbnail'),
- 'tooltip' => __('manager.setup.pressThumbnail.description'),
- 'isMultilingual' => true,
- 'value' => $context->getData('pressThumbnail'),
- 'baseUrl' => $baseUrl,
- 'options' => [
- 'url' => $temporaryFileApiUrl,
- ],
- ]), [FIELD_POSITION_AFTER, 'pageHeaderLogoImage']);
- }
-}
diff --git a/classes/components/forms/context/AppearanceSetupForm.php b/classes/components/forms/context/AppearanceSetupForm.php
new file mode 100644
index 00000000000..bd20670ab52
--- /dev/null
+++ b/classes/components/forms/context/AppearanceSetupForm.php
@@ -0,0 +1,77 @@
+getSortSelectOptions();
+ $catalogSortOptions = array_map(function ($key, $label) {
+ return ['value' => $key, 'label' => $label];
+ }, array_keys($catalogSortOptions), $catalogSortOptions);
+
+ $this->addField(new FieldOptions('displayInSpotlight', [
+ 'label' => __('manager.setup.displayInSpotlight.label'),
+ 'value' => (bool) $context->getData('displayInSpotlight'),
+ 'options' => [
+ ['value' => 'true', 'label' => __('manager.setup.displayInSpotlight')],
+ ],
+ ]))
+ ->addField(new FieldOptions('displayFeaturedBooks', [
+ 'label' => __('manager.setup.displayFeaturedBooks.label'),
+ 'value' => (bool) $context->getData('displayFeaturedBooks'),
+ 'options' => [
+ ['value' => 'true', 'label' => __('manager.setup.displayFeaturedBooks')],
+ ],
+ ]))
+ ->addField(new FieldOptions('displayNewReleases', [
+ 'label' => __('manager.setup.displayNewReleases.label'),
+ 'value' => (bool) $context->getData('displayNewReleases'),
+ 'options' => [
+ ['value' => 'true', 'label' => __('manager.setup.displayNewReleases')],
+ ],
+ ]))
+ ->addField(new FieldOptions('catalogSortOption', [
+ 'label' => __('catalog.sortBy'),
+ 'description' => __('catalog.sortBy.catalogDescription'),
+ 'type' => 'radio',
+ 'value' => $context->getData('catalogSortOption'),
+ 'options' => $catalogSortOptions,
+ ]))
+ ->addField(new FieldUploadImage('pressThumbnail', [
+ 'label' => __('manager.setup.pressThumbnail'),
+ 'tooltip' => __('manager.setup.pressThumbnail.description'),
+ 'isMultilingual' => true,
+ 'value' => $context->getData('pressThumbnail'),
+ 'baseUrl' => $baseUrl,
+ 'options' => [
+ 'url' => $temporaryFileApiUrl,
+ ],
+ ]), [FIELD_POSITION_AFTER, 'pageHeaderLogoImage']);
+ }
+}
diff --git a/classes/components/forms/context/ContextForm.inc.php b/classes/components/forms/context/ContextForm.inc.php
deleted file mode 100644
index d7d6edcde22..00000000000
--- a/classes/components/forms/context/ContextForm.inc.php
+++ /dev/null
@@ -1,34 +0,0 @@
-addField(new FieldOptions('enabled', [
- 'label' => __('common.enable'),
- 'options' => [
- ['value' => true, 'label' => __('manager.setup.enablePressInstructions')],
- ],
- 'value' => $context ? (bool) $context->getData('enabled') : false,
- ]));
- }
-}
diff --git a/classes/components/forms/context/ContextForm.php b/classes/components/forms/context/ContextForm.php
new file mode 100644
index 00000000000..6a86f05d12b
--- /dev/null
+++ b/classes/components/forms/context/ContextForm.php
@@ -0,0 +1,38 @@
+addField(new FieldOptions('enabled', [
+ 'label' => __('common.enable'),
+ 'options' => [
+ ['value' => true, 'label' => __('manager.setup.enablePressInstructions')],
+ ],
+ 'value' => $context ? (bool) $context->getData('enabled') : false,
+ ]));
+ }
+}
diff --git a/classes/components/forms/context/DoiSetupSettingsForm.php b/classes/components/forms/context/DoiSetupSettingsForm.php
new file mode 100644
index 00000000000..6219aa2f04f
--- /dev/null
+++ b/classes/components/forms/context/DoiSetupSettingsForm.php
@@ -0,0 +1,83 @@
+objectTypeOptions = [
+ [
+ 'value' => Repo::doi()::TYPE_PUBLICATION,
+ 'label' => __('common.publications'),
+ 'allowedBy' => [],
+ ],
+ [
+ 'value' => Repo::doi()::TYPE_CHAPTER,
+ 'label' => __('submission.chapters'),
+ 'allowedBy' => [],
+ ],
+ [
+ 'value' => Repo::doi()::TYPE_REPRESENTATION,
+ 'label' => __('monograph.publicationFormats'),
+ 'allowedBy' => [],
+ ],
+ [
+ 'value' => Repo::doi()::TYPE_SUBMISSION_FILE,
+ 'label' => __('doi.manager.settings.enableSubmissionFileDoi'),
+ 'allowedBy' => [],
+ ],
+ ];
+ Hook::call('DoiSetupSettingsForm::getObjectTypes', [&$this->objectTypeOptions]);
+ if ($this->enabledRegistrationAgency === null) {
+ $filteredOptions = $this->objectTypeOptions;
+ } else {
+ $filteredOptions = array_filter($this->objectTypeOptions, function ($option) {
+ return in_array($this->enabledRegistrationAgency, $option['allowedBy']);
+ });
+ }
+
+ // Added in PKPDoiSetupSettingsForm, but not currently applicable to OMP
+ $this->removeField(Context::SETTING_DOI_AUTOMATIC_DEPOSIT);
+
+ $this->addField(new FieldOptions(Context::SETTING_ENABLED_DOI_TYPES, [
+ 'label' => __('doi.manager.settings.doiObjects'),
+ 'description' => __('doi.manager.settings.doiObjectsRequired'),
+ 'groupId' => self::DOI_SETTINGS_GROUP,
+ 'options' => $filteredOptions,
+ 'value' => $context->getData(Context::SETTING_ENABLED_DOI_TYPES) ? $context->getData(Context::SETTING_ENABLED_DOI_TYPES) : [],
+ ]), [FIELD_POSITION_BEFORE, Context::SETTING_DOI_PREFIX])
+ ->addField(new FieldText(Repo::doi()::CUSTOM_CHAPTER_PATTERN, [
+ 'label' => __('submission.chapters'),
+ 'groupId' => self::DOI_CUSTOM_SUFFIX_GROUP,
+ 'value' => $context->getData(Repo::doi()::CUSTOM_CHAPTER_PATTERN),
+ ]), [FIELD_POSITION_BEFORE, Repo::doi()::CUSTOM_REPRESENTATION_PATTERN])
+ ->addField(new FieldText(Repo::doi()::CUSTOM_FILE_PATTERN, [
+ 'label' => __('doi.manager.settings.enableSubmissionFileDoi'),
+ 'groupId' => self::DOI_CUSTOM_SUFFIX_GROUP,
+ 'value' => $context->getData(Repo::doi()::CUSTOM_FILE_PATTERN),
+ ]));
+ }
+}
diff --git a/classes/components/forms/context/LicenseForm.inc.php b/classes/components/forms/context/LicenseForm.inc.php
deleted file mode 100644
index b51a7e045cf..00000000000
--- a/classes/components/forms/context/LicenseForm.inc.php
+++ /dev/null
@@ -1,17 +0,0 @@
-getCodes('List44');
- $codeTypeOptions = array_map(function($code, $name) {
- return ['value' => $code, 'label' => $name];
- }, array_keys($codeTypes), $codeTypes);
-
- $this->addGroup([
- 'id' => 'onix',
- 'label' => __('manager.settings.publisher.identity'),
- 'description' => __('manager.settings.publisher.identity.description'),
- ], [FIELD_POSITION_AFTER, 'identity'])
- ->addField(new FieldText('publisher', [
- 'label' => __('manager.settings.publisher'),
- 'value' => $context->getData('publisher'),
- 'size' => 'large',
- 'groupId' => 'onix',
- ]))
- ->addField(new FieldText('location', [
- 'label' => __('manager.settings.location'),
- 'value' => $context->getData('location'),
- 'groupId' => 'onix',
- ]))
- ->addField(new FieldSelect('codeType', [
- 'label' => __('manager.settings.publisherCodeType'),
- 'value' => $context->getData('codeType'),
- 'options' => $codeTypeOptions,
- 'groupId' => 'onix',
- ]))
- ->addField(new FieldText('codeValue', [
- 'label' => __('manager.settings.publisherCode'),
- 'value' => $context->getData('codeValue'),
- 'groupId' => 'onix',
- ]));
- }
-}
diff --git a/classes/components/forms/context/MastheadForm.php b/classes/components/forms/context/MastheadForm.php
new file mode 100644
index 00000000000..ccd9816de65
--- /dev/null
+++ b/classes/components/forms/context/MastheadForm.php
@@ -0,0 +1,68 @@
+getCodes('List44');
+ $codeTypeOptions = array_map(function ($code, $name) {
+ return ['value' => $code, 'label' => $name];
+ }, array_keys($codeTypes), $codeTypes);
+
+ $this->addGroup([
+ 'id' => 'onix',
+ 'label' => __('manager.settings.publisher.identity'),
+ 'description' => __('manager.settings.publisher.identity.description'),
+ ], [FIELD_POSITION_AFTER, 'identity'])
+ ->addField(new FieldText('publisher', [
+ 'label' => __('manager.settings.publisher'),
+ 'value' => $context->getData('publisher'),
+ 'size' => 'large',
+ 'groupId' => 'onix',
+ ]))
+ ->addField(new FieldText('location', [
+ 'label' => __('manager.settings.location'),
+ 'value' => $context->getData('location'),
+ 'groupId' => 'onix',
+ ]))
+ ->addField(new FieldSelect('codeType', [
+ 'label' => __('manager.settings.publisherCodeType'),
+ 'value' => $context->getData('codeType'),
+ 'options' => $codeTypeOptions,
+ 'groupId' => 'onix',
+ ]))
+ ->addField(new FieldText('codeValue', [
+ 'label' => __('manager.settings.publisherCode'),
+ 'value' => $context->getData('codeValue'),
+ 'groupId' => 'onix',
+ ]));
+ }
+}
diff --git a/classes/components/forms/context/MetadataSettingsForm.inc.php b/classes/components/forms/context/MetadataSettingsForm.inc.php
deleted file mode 100644
index 7bb4fab71d3..00000000000
--- a/classes/components/forms/context/MetadataSettingsForm.inc.php
+++ /dev/null
@@ -1,50 +0,0 @@
-addField(new FieldOptions('enablePublisherId', [
- 'label' => __('submission.publisherId'),
- 'description' => __('submission.publisherId.description'),
- 'options' => [
- [
- 'value' => 'publication',
- 'label' => __('submission.publisherId.enable', ['objects' => __('common.publications')]),
- ],
- [
- 'value' => 'chapter',
- 'label' => __('submission.publisherId.enable', ['objects' => __('submission.chapters')]),
- ],
- [
- 'value' => 'representation',
- 'label' => __('submission.publisherId.enable', ['objects' => __('monograph.publicationFormats')]),
- ],
- [
- 'value' => 'file',
- 'label' => __('submission.publisherId.enable', ['objects' => __('submission.files')]),
- ],
- ],
- 'value' => $context->getData('enablePublisherId') ? $context->getData('enablePublisherId') : [],
- ]));
- }
-}
diff --git a/classes/components/forms/context/MetadataSettingsForm.php b/classes/components/forms/context/MetadataSettingsForm.php
new file mode 100644
index 00000000000..d35c3b23235
--- /dev/null
+++ b/classes/components/forms/context/MetadataSettingsForm.php
@@ -0,0 +1,54 @@
+addField(new FieldOptions('enablePublisherId', [
+ 'label' => __('submission.publisherId'),
+ 'description' => __('submission.publisherId.description'),
+ 'options' => [
+ [
+ 'value' => 'publication',
+ 'label' => __('submission.publisherId.enable', ['objects' => __('common.publications')]),
+ ],
+ [
+ 'value' => 'chapter',
+ 'label' => __('submission.publisherId.enable', ['objects' => __('submission.chapters')]),
+ ],
+ [
+ 'value' => 'representation',
+ 'label' => __('submission.publisherId.enable', ['objects' => __('monograph.publicationFormats')]),
+ ],
+ [
+ 'value' => 'file',
+ 'label' => __('submission.publisherId.enable', ['objects' => __('submission.files')]),
+ ],
+ ],
+ 'value' => $context->getData('enablePublisherId') ? $context->getData('enablePublisherId') : [],
+ ]));
+ }
+}
diff --git a/classes/components/forms/context/ReviewGuidanceForm.inc.php b/classes/components/forms/context/ReviewGuidanceForm.inc.php
deleted file mode 100644
index f67248aa3da..00000000000
--- a/classes/components/forms/context/ReviewGuidanceForm.inc.php
+++ /dev/null
@@ -1,34 +0,0 @@
-addField(new FieldRichTextarea('internalReviewGuidelines', [
- 'label' => __('manager.setup.internalReviewGuidelines'),
- 'helpTopic' => 'settings',
- 'helpSection' => 'workflow-review-guidelines',
- 'value' => $context->getData('internalReviewGuidelines'),
- 'isMultilingual' => true,
- ]), [FIELD_POSITION_BEFORE, 'reviewGuidelines']);
- }
-}
diff --git a/classes/components/forms/context/ReviewGuidanceForm.php b/classes/components/forms/context/ReviewGuidanceForm.php
new file mode 100644
index 00000000000..5b6378645d4
--- /dev/null
+++ b/classes/components/forms/context/ReviewGuidanceForm.php
@@ -0,0 +1,38 @@
+addField(new FieldRichTextarea('internalReviewGuidelines', [
+ 'label' => __('manager.setup.internalReviewGuidelines'),
+ 'helpTopic' => 'settings',
+ 'helpSection' => 'workflow-review-guidelines',
+ 'value' => $context->getData('internalReviewGuidelines'),
+ 'isMultilingual' => true,
+ ]), [FIELD_POSITION_BEFORE, 'reviewGuidelines']);
+ }
+}
diff --git a/classes/components/forms/context/UserAccessForm.inc.php b/classes/components/forms/context/UserAccessForm.inc.php
deleted file mode 100644
index 48f1736437b..00000000000
--- a/classes/components/forms/context/UserAccessForm.inc.php
+++ /dev/null
@@ -1,34 +0,0 @@
-addField(new FieldOptions('restrictMonographAccess', [
- 'label' => __('manager.setup.siteAccess.viewContent'),
- 'value' => (bool) $context->getData('restrictMonographAccess'),
- 'options' => [
- ['value' => true, 'label' => __('manager.setup.restrictMonographAccess')],
- ],
- ]), [FIELD_POSITION_AFTER, 'restrictSiteAccess']);
- }
-}
diff --git a/classes/components/forms/context/UserAccessForm.php b/classes/components/forms/context/UserAccessForm.php
new file mode 100644
index 00000000000..6b9d7ae23db
--- /dev/null
+++ b/classes/components/forms/context/UserAccessForm.php
@@ -0,0 +1,38 @@
+addField(new FieldOptions('restrictMonographAccess', [
+ 'label' => __('manager.setup.siteAccess.viewContent'),
+ 'value' => (bool) $context->getData('restrictMonographAccess'),
+ 'options' => [
+ ['value' => true, 'label' => __('manager.setup.restrictMonographAccess')],
+ ],
+ ]), [FIELD_POSITION_AFTER, 'restrictSiteAccess']);
+ }
+}
diff --git a/classes/components/forms/counter/CounterReportForm.php b/classes/components/forms/counter/CounterReportForm.php
new file mode 100644
index 00000000000..b7213d74edb
--- /dev/null
+++ b/classes/components/forms/counter/CounterReportForm.php
@@ -0,0 +1,52 @@
+reportFields['PR'] = array_map(function ($field) {
+ $field->groupId = 'default';
+ return $field;
+ }, $formFieldsPR);
+
+ $formFieldsPR_P1 = PR_P1::getReportSettingsFormFields();
+ $this->reportFields['PR_P1'] = array_map(function ($field) {
+ $field->groupId = 'default';
+ return $field;
+ }, $formFieldsPR_P1);
+
+ $formFieldsTR = TR::getReportSettingsFormFields();
+ $this->reportFields['TR'] = array_map(function ($field) {
+ $field->groupId = 'default';
+ return $field;
+ }, $formFieldsTR);
+
+ $formFieldsTR_B3 = TR_B3::getReportSettingsFormFields();
+ $this->reportFields['TR_B3'] = array_map(function ($field) {
+ $field->groupId = 'default';
+ return $field;
+ }, $formFieldsTR_B3);
+ }
+}
diff --git a/classes/components/forms/publication/CatalogEntryForm.inc.php b/classes/components/forms/publication/CatalogEntryForm.inc.php
deleted file mode 100644
index d6902893cad..00000000000
--- a/classes/components/forms/publication/CatalogEntryForm.inc.php
+++ /dev/null
@@ -1,109 +0,0 @@
-action = $action;
- $this->successMessage = __('publication.catalogEntry.success');
- $this->locales = $locales;
-
- // Series options
- $seriesOptions = [['value' => '', 'label' => '']];
- $result = DAORegistry::getDAO('SeriesDAO')->getByContextId($submission->getData('contextId'));
- while (!$result->eof()) {
- $series = $result->next();
- $seriesOptions[] = [
- 'value' => (int) $series->getId(),
- 'label' => (($series->getIsInactive())? __('publication.inactiveSeries', ['series' => $series->getLocalizedTitle()]) : $series->getLocalizedTitle()),
- ];
- }
-
- $this->addField(new FieldText('datePublished', [
- 'label' => __('publication.datePublished'),
- 'value' => $publication->getData('datePublished'),
- ]))
- ->addField(new FieldSelect('seriesId', [
- 'label' => __('series.series'),
- 'value' => $publication->getData('seriesId'),
- 'options' => $seriesOptions,
- ]))
- ->addField(new FieldText('seriesPosition', [
- 'label' => __('submission.submit.seriesPosition'),
- 'description' => __('submission.submit.seriesPosition.description'),
- 'value' => $publication->getData('seriesPosition'),
- ]));
-
- // Categories
- $categoryOptions = [];
- $categories = \DAORegistry::getDAO('CategoryDAO')->getByContextId($submission->getData('contextId'))->toAssociativeArray();
- foreach ($categories as $category) {
- $label = $category->getLocalizedTitle();
- if ($category->getParentId()) {
- $label = $categories[$category->getParentId()]->getLocalizedTitle() . ' > ' . $label;
- }
- $categoryOptions[] = [
- 'value' => (int) $category->getId(),
- 'label' => $label,
- ];
- }
- if (!empty($categoryOptions)) {
- $this->addField(new FieldOptions('categoryIds', [
- 'label' => __('submission.submit.placement.categories'),
- 'value' => (array) $publication->getData('categoryIds'),
- 'options' => $categoryOptions,
- ]));
- }
-
- $this->addField(new FieldText('urlPath', [
- 'label' => __('publication.urlPath'),
- 'description' => __('publication.urlPath.description'),
- 'value' => $publication->getData('urlPath'),
- ]))
- ->addField(new FieldUploadImage('coverImage', [
- 'label' => __('monograph.coverImage'),
- 'value' => $publication->getData('coverImage'),
- 'isMultilingual' => true,
- 'baseUrl' => $baseUrl,
- 'options' => [
- 'url' => $temporaryFileApiUrl,
- ],
- ]));
- }
-}
diff --git a/classes/components/forms/publication/CatalogEntryForm.php b/classes/components/forms/publication/CatalogEntryForm.php
new file mode 100644
index 00000000000..65475ba7880
--- /dev/null
+++ b/classes/components/forms/publication/CatalogEntryForm.php
@@ -0,0 +1,125 @@
+action = $action;
+ $this->successMessage = __('publication.catalogEntry.success');
+ $this->locales = $locales;
+
+ // Series options
+ $seriesOptions = [['value' => '', 'label' => '']];
+ $result = Repo::section()
+ ->getCollector()
+ ->filterByContextIds([$submission->getData('contextId')])
+ ->getMany();
+ foreach ($result as $series) {
+ $seriesOptions[] = [
+ 'value' => (int) $series->getId(),
+ 'label' => (($series->getIsInactive()) ? __('publication.inactiveSeries', ['series' => $series->getLocalizedTitle()]) : $series->getLocalizedTitle()),
+ ];
+ }
+
+ $this->addField(new FieldText('datePublished', [
+ 'label' => __('publication.datePublished'),
+ 'value' => $publication->getData('datePublished'),
+ ]))
+ ->addField(new FieldSelect('seriesId', [
+ 'label' => __('series.series'),
+ 'value' => $publication->getData('seriesId'),
+ 'options' => $seriesOptions,
+ ]))
+ ->addField(new FieldText('seriesPosition', [
+ 'label' => __('submission.submit.seriesPosition'),
+ 'description' => __('submission.submit.seriesPosition.description'),
+ 'value' => $publication->getData('seriesPosition'),
+ ]));
+
+ // Categories
+ $categoryOptions = [];
+ $categories = Repo::category()->getCollector()
+ ->filterByContextIds([$submission->getData('contextId')])
+ ->getMany()
+ ->toArray();
+
+ foreach ($categories as $category) {
+ $label = $category->getLocalizedTitle();
+ if ($category->getParentId()) {
+ $label = $categories[$category->getParentId()]->getLocalizedTitle() . ' > ' . $label;
+ }
+ $categoryOptions[] = [
+ 'value' => (int) $category->getId(),
+ 'label' => $label,
+ ];
+ }
+ if (!empty($categoryOptions)) {
+ $this->addField(new FieldOptions('categoryIds', [
+ 'label' => __('submission.submit.placement.categories'),
+ 'value' => (array) $publication->getData('categoryIds'),
+ 'options' => $categoryOptions,
+ ]));
+ }
+
+ $this->addField(new FieldText('urlPath', [
+ 'label' => __('publication.urlPath'),
+ 'description' => __('publication.urlPath.description'),
+ 'value' => $publication->getData('urlPath'),
+ ]))
+ ->addField(new FieldUploadImage('coverImage', [
+ 'label' => __('monograph.coverImage'),
+ 'value' => $publication->getData('coverImage'),
+ 'isMultilingual' => true,
+ 'baseUrl' => $baseUrl,
+ 'options' => [
+ 'url' => $temporaryFileApiUrl,
+ ],
+ ]));
+ }
+}
diff --git a/classes/components/forms/publication/ContributorForm.php b/classes/components/forms/publication/ContributorForm.php
new file mode 100644
index 00000000000..d78aef7f6c3
--- /dev/null
+++ b/classes/components/forms/publication/ContributorForm.php
@@ -0,0 +1,41 @@
+getData('workType') === Submission::WORK_TYPE_EDITED_VOLUME) {
+ $this->addField(new FieldOptions('isVolumeEditor', [
+ 'label' => __('author.volumeEditor'),
+ 'value' => false,
+ 'options' => [
+ [
+ 'value' => true,
+ 'label' => __('author.isVolumeEditor'),
+ ],
+ ],
+ ]));
+ }
+ }
+}
diff --git a/classes/components/forms/publication/PublicationLicenseForm.php b/classes/components/forms/publication/PublicationLicenseForm.php
new file mode 100644
index 00000000000..527511873ae
--- /dev/null
+++ b/classes/components/forms/publication/PublicationLicenseForm.php
@@ -0,0 +1,79 @@
+ $userGroups User groups in this context
+ */
+ public function __construct($action, $locales, $publication, $context, $userGroups)
+ {
+ parent::__construct($action, $locales, $publication, $context, $userGroups);
+
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+ if ($submission->getData('workType') === Submission::WORK_TYPE_EDITED_VOLUME) {
+ // Get the name of the context's license setting
+ $chapterLicenseUrlDescription = '';
+ $licenseOptions = Application::getCCLicenseOptions();
+ if ($publication->getData('licenseUrl')) {
+ if (array_key_exists($publication->getData('licenseUrl'), $licenseOptions)) {
+ $licenseName = __($licenseOptions[$publication->getData('licenseUrl')]);
+ } else {
+ $licenseName = $publication->getData('licenseUrl');
+ }
+ $chapterLicenseUrlDescription = __('submission.license.description', [
+ 'licenseUrl' => $publication->getData('licenseUrl'),
+ 'licenseName' => $licenseName,
+ ]);
+ } elseif ($context->getData('licenseUrl')) {
+ if (array_key_exists($context->getData('licenseUrl'), $licenseOptions)) {
+ $licenseName = __($licenseOptions[$context->getData('licenseUrl')]);
+ } else {
+ $licenseName = $context->getData('licenseUrl');
+ }
+ $chapterLicenseUrlDescription = __('submission.license.description', [
+ 'licenseUrl' => $context->getData('licenseUrl'),
+ 'licenseName' => $licenseName,
+ ]);
+ }
+
+ $this->addField(new FieldText('chapterLicenseUrl', [
+ 'label' => __('publication.chapterDefaultLicenseURL'),
+ 'description' => $chapterLicenseUrlDescription,
+ 'optIntoEdit' => ($publication->getData('licenseUrl') || $context->getData('licenseUrl')) && !$publication->getData('chapterLicenseUrl'),
+ 'optIntoEditLabel' => __('common.override'),
+ 'value' => $publication->getData('chapterLicenseUrl'),
+ ]));
+ }
+ }
+}
diff --git a/classes/components/forms/publication/PublishForm.inc.php b/classes/components/forms/publication/PublishForm.inc.php
deleted file mode 100644
index 7f7c63a9d18..00000000000
--- a/classes/components/forms/publication/PublishForm.inc.php
+++ /dev/null
@@ -1,79 +0,0 @@
-action = $action;
- $this->successMessage = __('publication.publish.success');
- $this->errors = $requirementErrors;
- $this->publication = $publication;
- $this->submissionContext = $submissionContext;
-
- // Set separate messages and buttons if publication requirements have passed
- if (empty($requirementErrors)) {
- $msg = __('publication.publish.confirmation');
- $this->addPage([
- 'id' => 'default',
- 'submitButton' => [
- 'label' => __('publication.publish'),
- ],
- ]);
- } else {
- $msg = '
' . __('publication.publish.requirements') . '
';
- $msg .= '';
- foreach ($requirementErrors as $error) {
- $msg .= '- ' . $error . '
';
- }
- $msg .= '
';
- $this->addPage([
- 'id' => 'default',
- ]);
- }
-
- $this->addGroup([
- 'id' => 'default',
- 'pageId' => 'default',
- ])
- ->addField(new FieldHTML('validation', [
- 'description' => $msg,
- 'groupId' => 'default',
- ]));
- }
-}
diff --git a/classes/components/forms/publication/PublishForm.php b/classes/components/forms/publication/PublishForm.php
new file mode 100644
index 00000000000..8beb3d4b51d
--- /dev/null
+++ b/classes/components/forms/publication/PublishForm.php
@@ -0,0 +1,88 @@
+action = $action;
+ $this->successMessage = __('publication.publish.success');
+ $this->errors = $requirementErrors;
+ $this->publication = $publication;
+ $this->submissionContext = $submissionContext;
+
+ // Set separate messages and buttons if publication requirements have passed
+ if (empty($requirementErrors)) {
+ $msg = __('publication.publish.confirmation');
+ $this->addPage([
+ 'id' => 'default',
+ 'submitButton' => [
+ 'label' => __('publication.publish'),
+ ],
+ ]);
+ } else {
+ $msg = '' . __('publication.publish.requirements') . '
';
+ $msg .= '';
+ foreach ($requirementErrors as $error) {
+ $msg .= '- ' . $error . '
';
+ }
+ $msg .= '
';
+ $this->addPage([
+ 'id' => 'default',
+ ]);
+ }
+
+ $this->addGroup([
+ 'id' => 'default',
+ 'pageId' => 'default',
+ ])
+ ->addField(new FieldHTML('validation', [
+ 'description' => $msg,
+ 'groupId' => 'default',
+ ]));
+ }
+}
diff --git a/classes/components/forms/submission/AudienceForm.inc.php b/classes/components/forms/submission/AudienceForm.inc.php
deleted file mode 100644
index 73a3d910cd4..00000000000
--- a/classes/components/forms/submission/AudienceForm.inc.php
+++ /dev/null
@@ -1,85 +0,0 @@
-action = $action;
- $this->successMessage = __('monograph.audience.success');
-
- $audienceCodes = $this->getOptions(DAORegistry::getDAO('ONIXCodelistItemDAO')->getCodes('List28'));
- $audienceRangeQualifiers = $this->getOptions(DAORegistry::getDAO('ONIXCodelistItemDAO')->getCodes('List30'));
- $audienceRanges = $this->getOptions(DAORegistry::getDAO('ONIXCodelistItemDAO')->getCodes('List77'));
-
- $this->addField(new FieldSelect('audience', [
- 'label' => __('monograph.audience'),
- 'value' => $submission->getData('audience'),
- 'options' => $audienceCodes,
- ]))
- ->addField(new FieldSelect('audienceRangeQualifier', [
- 'label' => __('monograph.audience.rangeQualifier'),
- 'value' => $submission->getData('audienceRangeQualifier'),
- 'options' => $audienceRangeQualifiers,
- ]))
- ->addField(new FieldSelect('audienceRangeFrom', [
- 'label' => __('monograph.audience.rangeFrom'),
- 'value' => $submission->getData('audienceRangeFrom'),
- 'options' => $audienceRanges,
- ]))
- ->addField(new FieldSelect('audienceRangeTo', [
- 'label' => __('monograph.audience.rangeTo'),
- 'value' => $submission->getData('audienceRangeTo'),
- 'options' => $audienceRanges,
- ]))
- ->addField(new FieldSelect('audienceRangeExact', [
- 'label' => __('monograph.audience.rangeExact'),
- 'value' => $submission->getData('audienceRangeExact'),
- 'options' => $audienceRanges,
- ]));
- }
-
- /**
- * Convert Onix code list to select field options
- *
- * @param array the list items
- * @return array
- */
- public function getOptions($list) {
- $options = [];
- foreach ($list as $value => $label) {
- $options[] = [
- 'value' => $value,
- 'label' => $label,
- ];
- }
- return $options;
- }
-}
diff --git a/classes/components/forms/submission/AudienceForm.php b/classes/components/forms/submission/AudienceForm.php
new file mode 100644
index 00000000000..6692a1e4a7c
--- /dev/null
+++ b/classes/components/forms/submission/AudienceForm.php
@@ -0,0 +1,99 @@
+action = $action;
+ $this->successMessage = __('monograph.audience.success');
+
+ /** @var ONIXCodelistItemDAO */
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO');
+ $audienceCodes = $this->getOptions($onixCodelistItemDao->getCodes('List28'));
+ $audienceRangeQualifiers = $this->getOptions($onixCodelistItemDao->getCodes('List30'));
+ $audienceRanges = $this->getOptions($onixCodelistItemDao->getCodes('List77'));
+
+ $this->addField(new FieldSelect('audience', [
+ 'label' => __('monograph.audience'),
+ 'value' => $submission->getData('audience'),
+ 'options' => $audienceCodes,
+ ]))
+ ->addField(new FieldSelect('audienceRangeQualifier', [
+ 'label' => __('monograph.audience.rangeQualifier'),
+ 'value' => $submission->getData('audienceRangeQualifier'),
+ 'options' => $audienceRangeQualifiers,
+ ]))
+ ->addField(new FieldSelect('audienceRangeFrom', [
+ 'label' => __('monograph.audience.rangeFrom'),
+ 'value' => $submission->getData('audienceRangeFrom'),
+ 'options' => $audienceRanges,
+ ]))
+ ->addField(new FieldSelect('audienceRangeTo', [
+ 'label' => __('monograph.audience.rangeTo'),
+ 'value' => $submission->getData('audienceRangeTo'),
+ 'options' => $audienceRanges,
+ ]))
+ ->addField(new FieldSelect('audienceRangeExact', [
+ 'label' => __('monograph.audience.rangeExact'),
+ 'value' => $submission->getData('audienceRangeExact'),
+ 'options' => $audienceRanges,
+ ]));
+ }
+
+ /**
+ * Convert Onix code list to select field options
+ *
+ * @param array $list the list items
+ *
+ * @return array
+ */
+ public function getOptions($list)
+ {
+ $options = [];
+ foreach ($list as $value => $label) {
+ $options[] = [
+ 'value' => $value,
+ 'label' => $label,
+ ];
+ }
+ return $options;
+ }
+}
diff --git a/classes/components/forms/submission/ForTheEditors.php b/classes/components/forms/submission/ForTheEditors.php
new file mode 100644
index 00000000000..aae0364d58e
--- /dev/null
+++ b/classes/components/forms/submission/ForTheEditors.php
@@ -0,0 +1,57 @@
+addSeriesField($series, $publication);
+ }
+
+ protected function addSeriesField(array $series, Publication $publication): void
+ {
+ if (empty($series)) {
+ return;
+ }
+ $seriesOptions = [];
+ /** @var Section $iSeries */
+ foreach ($series as $iSeries) {
+ $seriesOptions[] = [
+ 'value' => $iSeries->getId(),
+ 'label' => $iSeries->getLocalizedFullTitle(),
+ ];
+ }
+ $this->addField(new FieldOptions('seriesId', [
+ 'label' => __('series.series'),
+ 'type' => 'radio',
+ 'options' => $seriesOptions,
+ 'value' => $publication->getData('seriesId') ?? '',
+ ]));
+ }
+}
diff --git a/classes/components/forms/submission/PublicationDatesForm.inc.php b/classes/components/forms/submission/PublicationDatesForm.inc.php
deleted file mode 100644
index 1e8303939f7..00000000000
--- a/classes/components/forms/submission/PublicationDatesForm.inc.php
+++ /dev/null
@@ -1,48 +0,0 @@
-action = $action;
- $this->successMessage = __('publication.catalogEntry.success');
-
- $this->addField(new FieldOptions('enableChapterPublicationDates', [
- 'label' => __('submission.catalogEntry.chapterPublicationDates'),
- 'type' => 'checkbox',
- 'value' => $submission->getData('enableChapterPublicationDates'),
- 'options' => [
- ['value' => true, 'false' => __('submission.catalogEntry.disableChapterPublicationDates')],
- ['value' => true, 'label' => __('submission.catalogEntry.enableChapterPublicationDates')],
- ]
- ]));
- }
-}
diff --git a/classes/components/forms/submission/PublicationDatesForm.php b/classes/components/forms/submission/PublicationDatesForm.php
new file mode 100644
index 00000000000..757b17bcdac
--- /dev/null
+++ b/classes/components/forms/submission/PublicationDatesForm.php
@@ -0,0 +1,57 @@
+action = $action;
+ $this->successMessage = __('publication.catalogEntry.success');
+
+ $this->addField(new FieldOptions('enableChapterPublicationDates', [
+ 'label' => __('submission.catalogEntry.chapterPublicationDates'),
+ 'type' => 'radio',
+ 'value' => $submission->getData('enableChapterPublicationDates'),
+ 'options' => [
+ ['value' => false, 'label' => __('submission.catalogEntry.disableChapterPublicationDates')],
+ ['value' => true, 'label' => __('submission.catalogEntry.enableChapterPublicationDates')],
+ ]
+ ]));
+ }
+}
diff --git a/classes/components/forms/submission/ReconfigureSubmission.php b/classes/components/forms/submission/ReconfigureSubmission.php
new file mode 100644
index 00000000000..165df0cf113
--- /dev/null
+++ b/classes/components/forms/submission/ReconfigureSubmission.php
@@ -0,0 +1,48 @@
+addField(new FieldOptions('workType', [
+ 'type' => 'radio',
+ 'label' => __('submission.workflowType'),
+ 'description' => __('submission.workflowType.description'),
+ 'options' => [
+ [
+ 'value' => Submission::WORK_TYPE_AUTHORED_WORK,
+ 'label' => __('submission.workflowType.authoredWork'),
+ ],
+ [
+ 'value' => Submission::WORK_TYPE_EDITED_VOLUME,
+ 'label' => __('submission.workflowType.editedVolume'),
+ ],
+ ],
+ 'value' => $submission->getData('workType'),
+ 'isRequired' => true,
+ ]));
+ }
+}
diff --git a/classes/components/forms/submission/StartSubmission.php b/classes/components/forms/submission/StartSubmission.php
new file mode 100644
index 00000000000..6c7cd0e3753
--- /dev/null
+++ b/classes/components/forms/submission/StartSubmission.php
@@ -0,0 +1,48 @@
+addField(new FieldOptions('workType', [
+ 'type' => 'radio',
+ 'label' => __('submission.workflowType'),
+ 'description' => __('submission.workflowType.description'),
+ 'options' => [
+ [
+ 'value' => Submission::WORK_TYPE_AUTHORED_WORK,
+ 'label' => __('submission.workflowType.authoredWork'),
+ ],
+ [
+ 'value' => Submission::WORK_TYPE_EDITED_VOLUME,
+ 'label' => __('submission.workflowType.editedVolume'),
+ ],
+ ],
+ 'value' => Submission::WORK_TYPE_AUTHORED_WORK,
+ 'isRequired' => true,
+
+ ]), [FIELD_POSITION_AFTER, 'title']);
+ }
+}
diff --git a/classes/components/listPanels/CatalogListPanel.inc.php b/classes/components/listPanels/CatalogListPanel.inc.php
deleted file mode 100644
index 71277c92133..00000000000
--- a/classes/components/listPanels/CatalogListPanel.inc.php
+++ /dev/null
@@ -1,168 +0,0 @@
-getRequest();
- $context = $request->getContext();
-
- list($catalogSortBy, $catalogSortDir) = explode('-', $context->getData('catalogSortOption'));
- $catalogSortBy = empty($catalogSortBy) ? ORDERBY_DATE_PUBLISHED : $catalogSortBy;
- $catalogSortDir = $catalogSortDir == SORT_DIRECTION_ASC ? 'ASC' : 'DESC';
- $config['catalogSortBy'] = $catalogSortBy;
- $config['catalogSortDir'] = $catalogSortDir;
-
- $this->getParams = array_merge(
- $this->getParams,
- [
- 'status' => STATUS_PUBLISHED,
- 'orderByFeatured' => true,
- 'orderBy' => $catalogSortBy,
- 'orderDirection' => $catalogSortDir,
- ]
- );
-
- $config = parent::getConfig();
-
- $config['apiUrl'] = $this->apiUrl;
- $config['count'] = $this->count;
- $config['getParams'] = $this->getParams;
- $config['itemsMax'] = $this->itemsMax;
-
- $config['filters'] = [];
-
- if ($context) {
- $config['contextId'] = $context->getId();
-
- $categories = [];
- $categoryDao = \DAORegistry::getDAO('CategoryDAO');
- $categoriesResult = $categoryDao->getByContextId($context->getId());
- while (!$categoriesResult->eof()) {
- $category = $categoriesResult->next();
- list($categorySortBy, $categorySortDir) = explode('-', $category->getSortOption());
- $categorySortDir = empty($categorySortDir) ? $catalogSortDir : ($categorySortDir == SORT_DIRECTION_ASC ? 'ASC' : 'DESC');
- $categories[] = [
- 'param' => 'categoryIds',
- 'value' => (int) $category->getId(),
- 'title' => $category->getLocalizedTitle(),
- 'sortBy' => $categorySortBy,
- 'sortDir' => $categorySortDir,
- ];
- }
- if (count($categories)) {
- $config['filters'][] = [
- 'heading' => __('catalog.categories'),
- 'filters' => $categories,
- ];
- }
-
- $series = [];
- $seriesDao = \DAORegistry::getDAO('SeriesDAO');
- $seriesResult = $seriesDao->getByPressId($context->getId());
- while (!$seriesResult->eof()) {
- $seriesObj = $seriesResult->next();
- list($seriesSortBy, $seriesSortDir) = explode('-', $seriesObj->getSortOption());
- $seriesSortDir = empty($seriesSortDir) ? $catalogSortDir : ($seriesSortDir == SORT_DIRECTION_ASC ? 'ASC' : 'DESC');
- $series[] = [
- 'param' => 'seriesIds',
- 'value' => (int) $seriesObj->getId(),
- 'title' => $seriesObj->getLocalizedTitle(),
- 'sortBy' => $seriesSortBy,
- 'sortDir' => $seriesSortDir,
- ];
- }
- if (count($series)) {
- $config['filters'][] = [
- 'heading' => __('catalog.manage.series'),
- 'filters' => $series,
- ];
- }
- }
-
- // Attach a CSRF token for post requests
- $config['csrfToken'] = $request->getSession()->getCSRFToken();
-
- // Get the form to add a new entry
- $addEntryApiUrl = $request->getDispatcher()->url(
- $request,
- ROUTE_API,
- $context->getPath(),
- '_submissions/addToCatalog'
- );
- $searchSubmissionsApiUrl = $request->getDispatcher()->url(
- $request,
- ROUTE_API,
- $context->getPath(),
- 'submissions'
- );
- $supportedFormLocales = $context->getSupportedFormLocales();
- $localeNames = \AppLocale::getAllLocales();
- $locales = array_map(function($localeKey) use ($localeNames) {
- return ['key' => $localeKey, 'label' => $localeNames[$localeKey]];
- }, $supportedFormLocales);
- $addEntryForm = new \APP\components\forms\catalog\AddEntryForm($addEntryApiUrl, $searchSubmissionsApiUrl, $locales);
- $config['addEntryForm'] = $addEntryForm->getConfig();
-
- $templateMgr = \TemplateManager::getManager($request);
- $templateMgr->setConstants([
- 'ASSOC_TYPE_PRESS',
- 'ASSOC_TYPE_CATEGORY',
- 'ASSOC_TYPE_SERIES',
- ]);
-
- $templateMgr->setLocaleKeys([
- 'submission.catalogEntry.new',
- 'submission.list.saveFeatureOrder',
- 'submission.list.orderFeatures',
- 'catalog.manage.categoryFeatured',
- 'catalog.manage.seriesFeatured',
- 'catalog.manage.featured',
- 'catalog.manage.feature.categoryNewRelease',
- 'catalog.manage.feature.seriesNewRelease',
- 'catalog.manage.feature.newRelease',
- 'submission.list.orderingFeatures',
- 'submission.list.orderingFeaturesSection',
- 'catalog.manage.isFeatured',
- 'catalog.manage.isNotFeatured',
- 'catalog.manage.isNewRelease',
- 'catalog.manage.isNotNewRelease',
- 'submission.list.viewEntry',
- 'submission.list.viewSubmission',
- ]);
-
- return $config;
- }
-}
diff --git a/classes/components/listPanels/CatalogListPanel.php b/classes/components/listPanels/CatalogListPanel.php
new file mode 100644
index 00000000000..f1ced69a352
--- /dev/null
+++ b/classes/components/listPanels/CatalogListPanel.php
@@ -0,0 +1,175 @@
+getRequest();
+ $context = $request->getContext();
+
+ $catalogSortBy = Collector::ORDERBY_DATE_PUBLISHED;
+ $catalogSortDir = 'DESC';
+ if ($context->getData('catalogSortOption')) {
+ [$catalogSortBy, $catalogSortDir] = explode('-', $context->getData('catalogSortOption'));
+ }
+ $config['catalogSortBy'] = $catalogSortBy;
+ $config['catalogSortDir'] = $catalogSortDir;
+
+ $this->getParams = array_merge(
+ $this->getParams,
+ [
+ 'status' => PKPSubmission::STATUS_PUBLISHED,
+ 'orderByFeatured' => true,
+ 'orderBy' => $catalogSortBy,
+ 'orderDirection' => $catalogSortDir,
+ ]
+ );
+
+ $config = parent::getConfig();
+
+ $config['apiUrl'] = $this->apiUrl;
+ $config['count'] = $this->count;
+ $config['getParams'] = $this->getParams;
+ $config['itemsMax'] = $this->itemsMax;
+
+ $config['filters'] = [];
+
+ if ($context) {
+ $config['contextId'] = $context->getId();
+
+ $categories = [];
+ $categoriesCollection = Repo::category()->getCollector()
+ ->filterByContextIds([$context->getId()])
+ ->getMany();
+
+ foreach ($categoriesCollection as $category) {
+ [$categorySortBy, $categorySortDir] = explode('-', $category->getSortOption());
+ $categorySortDir = empty($categorySortDir) ? $catalogSortDir : ($categorySortDir == SORT_DIRECTION_ASC ? 'ASC' : 'DESC');
+ $categories[] = [
+ 'param' => 'categoryIds',
+ 'value' => (int) $category->getId(),
+ 'title' => $category->getLocalizedTitle(),
+ 'sortBy' => $categorySortBy,
+ 'sortDir' => $categorySortDir,
+ ];
+ }
+ if (count($categories)) {
+ $config['filters'][] = [
+ 'heading' => __('catalog.categories'),
+ 'filters' => $categories,
+ ];
+ }
+
+ $series = [];
+ $seriesResult = Repo::section()
+ ->getCollector()
+ ->filterByContextIds([$context->getId()])
+ ->getMany();
+ foreach ($seriesResult as $seriesObj) {
+ [$seriesSortBy, $seriesSortDir] = explode('-', $seriesObj->getSortOption());
+ $seriesSortDir = empty($seriesSortDir) ? $catalogSortDir : ($seriesSortDir == SORT_DIRECTION_ASC ? 'ASC' : 'DESC');
+ $series[] = [
+ 'param' => 'seriesIds',
+ 'value' => (int) $seriesObj->getId(),
+ 'title' => $seriesObj->getLocalizedTitle(),
+ 'sortBy' => $seriesSortBy,
+ 'sortDir' => $seriesSortDir,
+ ];
+ }
+ if (count($series)) {
+ $config['filters'][] = [
+ 'heading' => __('catalog.manage.series'),
+ 'filters' => $series,
+ ];
+ }
+ }
+
+ // Attach a CSRF token for post requests
+ $config['csrfToken'] = $request->getSession()->getCSRFToken();
+
+ // Get the form to add a new entry
+ $addEntryApiUrl = $request->getDispatcher()->url(
+ $request,
+ PKPApplication::ROUTE_API,
+ $context->getPath(),
+ '_submissions/addToCatalog'
+ );
+ $searchSubmissionsApiUrl = $request->getDispatcher()->url(
+ $request,
+ PKPApplication::ROUTE_API,
+ $context->getPath(),
+ 'submissions'
+ );
+
+ $locales = $context->getSupportedFormLocaleNames();
+ $locales = array_map(fn (string $locale, string $name) => ['key' => $locale, 'label' => $name], array_keys($locales), $locales);
+ $addEntryForm = new \APP\components\forms\catalog\AddEntryForm($addEntryApiUrl, $searchSubmissionsApiUrl, $locales);
+ $config['addEntryForm'] = $addEntryForm->getConfig();
+
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->setConstants([
+ 'ASSOC_TYPE_PRESS' => Application::ASSOC_TYPE_PRESS,
+ 'ASSOC_TYPE_CATEGORY' => Application::ASSOC_TYPE_CATEGORY,
+ 'ASSOC_TYPE_SERIES' => Application::ASSOC_TYPE_SERIES,
+ ]);
+
+ $templateMgr->setLocaleKeys([
+ 'submission.catalogEntry.new',
+ 'submission.list.saveFeatureOrder',
+ 'submission.list.orderFeatures',
+ 'catalog.manage.categoryFeatured',
+ 'catalog.manage.seriesFeatured',
+ 'catalog.manage.featured',
+ 'catalog.manage.feature.categoryNewRelease',
+ 'catalog.manage.feature.seriesNewRelease',
+ 'catalog.manage.feature.newRelease',
+ 'submission.list.orderingFeatures',
+ 'submission.list.orderingFeaturesSection',
+ 'catalog.manage.isFeatured',
+ 'catalog.manage.isNotFeatured',
+ 'catalog.manage.isNewRelease',
+ 'catalog.manage.isNotNewRelease',
+ 'submission.list.viewEntry',
+ 'submission.list.viewSubmission',
+ ]);
+
+ return $config;
+ }
+}
diff --git a/classes/components/listPanels/ContributorsListPanel.php b/classes/components/listPanels/ContributorsListPanel.php
new file mode 100644
index 00000000000..8124df5e99c
--- /dev/null
+++ b/classes/components/listPanels/ContributorsListPanel.php
@@ -0,0 +1,31 @@
+locales,
+ $this->submission,
+ $this->context
+ );
+ }
+}
diff --git a/classes/components/listPanels/DoiListPanel.php b/classes/components/listPanels/DoiListPanel.php
new file mode 100644
index 00000000000..f1a358e0dbf
--- /dev/null
+++ b/classes/components/listPanels/DoiListPanel.php
@@ -0,0 +1,70 @@
+getRequest();
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->setLocaleKeys([
+ 'manager.dois.formatIdentifier.file'
+ ]);
+
+ return $config;
+ }
+
+ /**
+ * Add any application-specific config to the list panel setup
+ */
+ protected function setAppConfig(array &$config): void
+ {
+ $config['executeActionApiUrl'] = $this->doiApiUrl . '/submissions';
+ $config['filters'][] = [
+ 'heading' => __('manager.dois.publicationStatus'),
+ 'filters' => [
+ [
+ 'title' => __('publication.status.published'),
+ 'param' => 'status',
+ 'value' => (string) PKPSubmission::STATUS_PUBLISHED
+ ],
+ [
+ 'title' => __('publication.status.unpublished'),
+ 'param' => 'status',
+ 'value' => PKPSubmission::STATUS_QUEUED . ', ' . PKPSubmission::STATUS_SCHEDULED
+ ]
+ ]
+ ];
+
+ // Provide required locale keys
+ $request = Application::get()->getRequest();
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->setLocaleKeys(['submission.monograph']);
+ }
+}
diff --git a/classes/components/listPanels/EmailTemplatesListPanel.inc.php b/classes/components/listPanels/EmailTemplatesListPanel.inc.php
deleted file mode 100644
index b7e5b4d2401..00000000000
--- a/classes/components/listPanels/EmailTemplatesListPanel.inc.php
+++ /dev/null
@@ -1,30 +0,0 @@
- 'stageIds',
- 'value' => WORKFLOW_STAGE_ID_SUBMISSION,
- 'title' => __('manager.publication.submissionStage'),
- ),
- array(
- 'param' => 'stageIds',
- 'value' => WORKFLOW_STAGE_ID_INTERNAL_REVIEW,
- 'title' => __('workflow.review.internalReview'),
- ),
- array(
- 'param' => 'stageIds',
- 'value' => WORKFLOW_STAGE_ID_EXTERNAL_REVIEW,
- 'title' => __('workflow.review.externalReview'),
- ),
- array(
- 'param' => 'stageIds',
- 'value' => WORKFLOW_STAGE_ID_EDITING,
- 'title' => __('submission.copyediting'),
- ),
- array(
- 'param' => 'stageIds',
- 'value' => WORKFLOW_STAGE_ID_PRODUCTION,
- 'title' => __('manager.publication.productionStage'),
- ),
- );
- }
-}
diff --git a/classes/components/listPanels/SubmissionsListPanel.php b/classes/components/listPanels/SubmissionsListPanel.php
new file mode 100644
index 00000000000..a092feca1ff
--- /dev/null
+++ b/classes/components/listPanels/SubmissionsListPanel.php
@@ -0,0 +1,57 @@
+ 'stageIds',
+ 'value' => WORKFLOW_STAGE_ID_SUBMISSION,
+ 'title' => __('manager.publication.submissionStage'),
+ ],
+ [
+ 'param' => 'stageIds',
+ 'value' => WORKFLOW_STAGE_ID_INTERNAL_REVIEW,
+ 'title' => __('workflow.review.internalReview'),
+ ],
+ [
+ 'param' => 'stageIds',
+ 'value' => WORKFLOW_STAGE_ID_EXTERNAL_REVIEW,
+ 'title' => __('workflow.review.externalReview'),
+ ],
+ [
+ 'param' => 'stageIds',
+ 'value' => WORKFLOW_STAGE_ID_EDITING,
+ 'title' => __('submission.copyediting'),
+ ],
+ [
+ 'param' => 'stageIds',
+ 'value' => WORKFLOW_STAGE_ID_PRODUCTION,
+ 'title' => __('manager.publication.productionStage'),
+ ],
+ ];
+ }
+}
diff --git a/classes/controllers/grid/users/author/form/AuthorForm.php b/classes/controllers/grid/users/author/form/AuthorForm.php
new file mode 100644
index 00000000000..38adbda1c41
--- /dev/null
+++ b/classes/controllers/grid/users/author/form/AuthorForm.php
@@ -0,0 +1,25 @@
+app->bind(Request::class, PKPRequest::class);
+
+ $this->app->bind(\APP\submissionFile\Collector::class, SubmissionFileCollector::class);
+ $this->app->bind(\APP\submissionFile\SubmissionFile::class, BaseSubmissionFile::class);
+ }
+}
diff --git a/classes/core/Application.inc.php b/classes/core/Application.inc.php
deleted file mode 100644
index 5dbd79b318e..00000000000
--- a/classes/core/Application.inc.php
+++ /dev/null
@@ -1,217 +0,0 @@
- full.class.Path for this application.
- * @return array
- */
- public function getDAOMap() {
- return array_merge(parent::getDAOMap(), array(
- 'AuthorDAO' => 'classes.monograph.AuthorDAO',
- 'ChapterAuthorDAO' => 'classes.monograph.ChapterAuthorDAO',
- 'ChapterDAO' => 'classes.monograph.ChapterDAO',
- 'FeatureDAO' => 'classes.press.FeatureDAO',
- 'IdentificationCodeDAO' => 'classes.publicationFormat.IdentificationCodeDAO',
- 'LayoutAssignmentDAO' => 'submission.layoutAssignment.LayoutAssignmentDAO',
- 'MarketDAO' => 'classes.publicationFormat.MarketDAO',
- 'MetricsDAO' => 'lib.pkp.classes.statistics.PKPMetricsDAO',
- 'SubmissionDAO' => 'classes.submission.SubmissionDAO',
- 'MonographFileEmailLogDAO' => 'classes.log.MonographFileEmailLogDAO',
- 'MonographSearchDAO' => 'classes.search.MonographSearchDAO',
- 'NewReleaseDAO' => 'classes.press.NewReleaseDAO',
- 'OAIDAO' => 'classes.oai.omp.OAIDAO',
- 'OMPCompletedPaymentDAO' => 'classes.payment.omp.OMPCompletedPaymentDAO',
- 'ONIXCodelistItemDAO' => 'classes.codelist.ONIXCodelistItemDAO',
- 'PressDAO' => 'classes.press.PressDAO',
- 'PressSettingsDAO' => 'classes.press.PressSettingsDAO',
- 'ProductionAssignmentDAO' => 'classes.submission.productionAssignment.ProductionAssignmentDAO',
- 'PublicationDateDAO' => 'classes.publicationFormat.PublicationDateDAO',
- 'PublicationFormatDAO' => 'classes.publicationFormat.PublicationFormatDAO',
- 'QualifierDAO' => 'classes.codelist.QualifierDAO',
- 'RepresentativeDAO' => 'classes.monograph.RepresentativeDAO',
- 'ReviewerSubmissionDAO' => 'classes.submission.reviewer.ReviewerSubmissionDAO',
- 'SalesRightsDAO' => 'classes.publicationFormat.SalesRightsDAO',
- 'SeriesDAO' => 'classes.press.SeriesDAO',
- 'SpotlightDAO' => 'classes.spotlight.SpotlightDAO',
- 'SubjectDAO' => 'classes.codelist.SubjectDAO',
- ));
- }
-
- /**
- * Get the list of plugin categories for this application.
- * @return array
- */
- public function getPluginCategories() {
- return array(
- // NB: Meta-data plug-ins are first in the list as this
- // will make them being loaded (and installed) first.
- // This is necessary as several other plug-in categories
- // depend on meta-data. This is a very rudimentary type of
- // dependency management for plug-ins.
- 'metadata',
- 'pubIds',
- 'blocks',
- 'generic',
- 'gateways',
- 'themes',
- 'importexport',
- 'oaiMetadataFormats',
- 'paymethod',
- 'reports',
- );
- }
-
- /**
- * Get the top-level context DAO.
- */
- public static function getContextDAO() {
- return DAORegistry::getDAO('PressDAO');
- }
-
- /**
- * Get the section DAO.
- * @return SeriesDAO
- */
- public static function getSectionDAO() {
- return DAORegistry::getDAO('SeriesDAO');
- }
-
- /**
- * Get the representation DAO.
- */
- public static function getRepresentationDAO() {
- return DAORegistry::getDAO('PublicationFormatDAO');
- }
-
- /**
- * Get a SubmissionSearchIndex instance.
- */
- public static function getSubmissionSearchIndex() {
- import('classes.search.MonographSearchIndex');
- return new MonographSearchIndex();
- }
-
- /**
- * Get a SubmissionSearchDAO instance.
- */
- public static function getSubmissionSearchDAO() {
- return DAORegistry::getDAO('MonographSearchDAO');
- }
-
- /**
- * Get the stages used by the application.
- */
- public static function getApplicationStages() {
- // We leave out WORKFLOW_STAGE_ID_PUBLISHED since it technically is not a 'stage'.
- return array(
- WORKFLOW_STAGE_ID_SUBMISSION,
- WORKFLOW_STAGE_ID_INTERNAL_REVIEW,
- WORKFLOW_STAGE_ID_EXTERNAL_REVIEW,
- WORKFLOW_STAGE_ID_EDITING,
- WORKFLOW_STAGE_ID_PRODUCTION
- );
- }
-
- /**
- * Get the file directory array map used by the application.
- */
- public static function getFileDirectories() {
- return array('context' => '/presses/', 'submission' => '/monographs/');
- }
-
- /**
- * Returns the context type for this application.
- */
- public static function getContextAssocType() {
- return ASSOC_TYPE_PRESS;
- }
-
- /**
- * Get the payment manager.
- * @param $context Context
- * @return OMPPaymentManager
- */
- public static function getPaymentManager($context) {
- import('classes.payment.omp.OMPPaymentManager');
- return new OMPPaymentManager($context);
- }
-}
diff --git a/classes/core/Application.php b/classes/core/Application.php
new file mode 100644
index 00000000000..51ede4c20d7
--- /dev/null
+++ b/classes/core/Application.php
@@ -0,0 +1,255 @@
+ full.class.Path for this application.
+ *
+ * @return array
+ */
+ public function getDAOMap()
+ {
+ return array_merge(parent::getDAOMap(), [
+ 'ChapterDAO' => 'APP\monograph\ChapterDAO',
+ 'FeatureDAO' => 'APP\press\FeatureDAO',
+ 'IdentificationCodeDAO' => 'APP\publicationFormat\IdentificationCodeDAO',
+ 'LayoutAssignmentDAO' => 'submission\layoutAssignment\LayoutAssignmentDAO',
+ 'MarketDAO' => 'APP\publicationFormat\MarketDAO',
+ 'MetricsDAO' => 'PKP\statistics\PKPMetricsDAO',
+ 'MonographFileEmailLogDAO' => 'APP\log\MonographFileEmailLogDAO',
+ 'MonographSearchDAO' => 'APP\search\MonographSearchDAO',
+ 'NewReleaseDAO' => 'APP\press\NewReleaseDAO',
+ 'OAIDAO' => 'APP\oai\omp\OAIDAO',
+ 'OMPCompletedPaymentDAO' => 'APP\payment\omp\OMPCompletedPaymentDAO',
+ 'ONIXCodelistItemDAO' => 'APP\codelist\ONIXCodelistItemDAO',
+ 'PressDAO' => 'APP\press\PressDAO',
+ 'ProductionAssignmentDAO' => 'APP\submission\productionAssignment\ProductionAssignmentDAO',
+ 'PublicationDateDAO' => 'APP\publicationFormat\PublicationDateDAO',
+ 'PublicationFormatDAO' => 'APP\publicationFormat\PublicationFormatDAO',
+ 'QualifierDAO' => 'APP\codelist\QualifierDAO',
+ 'RepresentativeDAO' => 'APP\monograph\RepresentativeDAO',
+ 'SalesRightsDAO' => 'APP\publicationFormat\SalesRightsDAO',
+ 'SpotlightDAO' => 'APP\spotlight\SpotlightDAO',
+ 'SubjectDAO' => 'APP\codelist\SubjectDAO',
+ 'TemporaryTotalsDAO' => 'APP\statistics\TemporaryTotalsDAO',
+ 'TemporaryItemInvestigationsDAO' => 'APP\statistics\TemporaryItemInvestigationsDAO',
+ 'TemporaryItemRequestsDAO' => 'APP\statistics\TemporaryItemRequestsDAO',
+ 'TemporaryTitleInvestigationsDAO' => 'APP\statistics\TemporaryTitleInvestigationsDAO',
+ 'TemporaryTitleRequestsDAO' => 'APP\statistics\TemporaryTitleRequestsDAO',
+ ]);
+ }
+
+ /**
+ * Get the list of plugin categories for this application.
+ *
+ * @return array
+ */
+ public function getPluginCategories()
+ {
+ return [
+ // NB: Meta-data plug-ins are first in the list as this
+ // will make them being loaded (and installed) first.
+ // This is necessary as several other plug-in categories
+ // depend on meta-data. This is a very rudimentary type of
+ // dependency management for plug-ins.
+ 'metadata',
+ 'pubIds',
+ 'blocks',
+ 'generic',
+ 'gateways',
+ 'themes',
+ 'importexport',
+ 'oaiMetadataFormats',
+ 'paymethod',
+ 'reports',
+ ];
+ }
+
+ /**
+ * Get the top-level context DAO.
+ */
+ public static function getContextDAO(): PressDAO
+ {
+ /** @var PressDAO */
+ $dao = DAORegistry::getDAO('PressDAO');
+ return $dao;
+ }
+
+ /**
+ * Get the representation DAO.
+ *
+ * @return PublicationFormatDAO|RepresentationDAOInterface
+ */
+ public static function getRepresentationDAO(): RepresentationDAOInterface
+ {
+ /** @var PublicationFormatDAO|RepresentationDAOInterface */
+ $dao = DAORegistry::getDAO('PublicationFormatDAO');
+ return $dao;
+ }
+
+ /**
+ * Get a SubmissionSearchIndex instance.
+ */
+ public static function getSubmissionSearchIndex()
+ {
+ return new \APP\search\MonographSearchIndex();
+ }
+
+ /**
+ * Get a SubmissionSearchDAO instance.
+ */
+ public static function getSubmissionSearchDAO()
+ {
+ return DAORegistry::getDAO('MonographSearchDAO');
+ }
+
+ /**
+ * Get the stages used by the application.
+ */
+ public static function getApplicationStages()
+ {
+ // We leave out WORKFLOW_STAGE_ID_PUBLISHED since it technically is not a 'stage'.
+ return [
+ WORKFLOW_STAGE_ID_SUBMISSION,
+ WORKFLOW_STAGE_ID_INTERNAL_REVIEW,
+ WORKFLOW_STAGE_ID_EXTERNAL_REVIEW,
+ WORKFLOW_STAGE_ID_EDITING,
+ WORKFLOW_STAGE_ID_PRODUCTION
+ ];
+ }
+
+ /**
+ * Get the file directory array map used by the application.
+ */
+ public static function getFileDirectories()
+ {
+ return ['context' => '/presses/', 'submission' => '/monographs/'];
+ }
+
+ /**
+ * Returns the context type for this application.
+ */
+ public static function getContextAssocType()
+ {
+ return self::ASSOC_TYPE_PRESS;
+ }
+
+ /**
+ * Get the payment manager.
+ *
+ * @param Press $context
+ *
+ * @return OMPPaymentManager
+ */
+ public static function getPaymentManager($context)
+ {
+ return new OMPPaymentManager($context);
+ }
+
+ public static function getSectionIdPropName(): string
+ {
+ return 'seriesId';
+ }
+}
diff --git a/classes/core/PageRouter.inc.php b/classes/core/PageRouter.inc.php
deleted file mode 100644
index f3704788f49..00000000000
--- a/classes/core/PageRouter.inc.php
+++ /dev/null
@@ -1,37 +0,0 @@
-///
- * is assumed to be "index" for top-level site requests.
- */
-
-
-import('lib.pkp.classes.core.PKPRequest');
-
-class Request extends PKPRequest {
- /**
- * Deprecated
- * @see PKPPageRouter::getRequestedContextPath()
- */
- public function getRequestedPressPath() {
- $press = $this->_delegateToRouter('getRequestedContextPath', 1);
- HookRegistry::call('Request::getRequestedPressPath', array(&$press));
- return $press;
- }
-
- /**
- * Deprecated
- * @see PKPPageRouter::getContext()
- */
- public function &getPress() {
- $returner = $this->_delegateToRouter('getContext', 1);
- return $returner;
- }
-
- /**
- * Deprecated
- * @see PKPPageRouter::getRequestedContextPath()
- */
- public function getRequestedContextPath($contextLevel = null) {
- // Emulate the old behavior of getRequestedContextPath for
- // backwards compatibility.
- if (is_null($contextLevel)) {
- return $this->_delegateToRouter('getRequestedContextPaths');
- } else {
- return array($this->_delegateToRouter('getRequestedContextPath', $contextLevel));
- }
- }
-
- /**
- * Deprecated
- * @see PKPPageRouter::getContext()
- */
- public function &getContext($level = 1) {
- $returner = $this->_delegateToRouter('getContext', $level);
- return $returner;
- }
-
- /**
- * Deprecated
- * @see PKPPageRouter::getContextByName()
- */
- public function &getContextByName($contextName) {
- $returner = $this->_delegateToRouter('getContextByName', $contextName);
- return $returner;
- }
-
- /**
- * Deprecated
- * @see PKPPageRouter::url()
- */
- public function url($pressPath = null, $page = null, $op = null, $path = null,
- $params = null, $anchor = null, $escape = false) {
- return $this->_delegateToRouter('url', $pressPath, $page, $op, $path,
- $params, $anchor, $escape);
- }
-
- /**
- * Deprecated
- * @see PageRouter::redirectHome()
- */
- public function redirectHome() {
- return $this->_delegateToRouter('redirectHome');
- }
-
- /**
- * @see PKPRequest::getUserAgent()
- */
- public function getUserAgent() {
- static $userAgent;
- $userAgent = parent::getUserAgent();
-
- if (strpos($userAgent, 'Shockwave Flash')) {
- $userAgent = $_SERVER['HTTP_BROWSER_USER_AGENT'];
- }
-
- return $userAgent;
- }
-}
-
-
diff --git a/classes/core/Request.php b/classes/core/Request.php
new file mode 100644
index 00000000000..110f1bab09f
--- /dev/null
+++ b/classes/core/Request.php
@@ -0,0 +1,76 @@
+///
+ * is assumed to be "index" for top-level site requests.
+ */
+
+namespace APP\core;
+
+use APP\press\Press;
+use PKP\core\PKPRequest;
+
+class Request extends PKPRequest
+{
+ /**
+ * @see PKPPageRouter::getContext()
+ */
+ public function getPress(): ?Press
+ {
+ return $this->getContext();
+ }
+
+ /**
+ * Deprecated
+ *
+ * @see PKPPageRouter::getContext()
+ */
+ public function getContext(): ?Press
+ {
+ return parent::getContext();
+ }
+
+ /**
+ * Deprecated
+ *
+ * @see PKPPageRouter::url()
+ *
+ * @param null|mixed $pressPath
+ * @param null|mixed $page
+ * @param null|mixed $op
+ * @param null|mixed $path
+ * @param null|mixed $params
+ * @param null|mixed $anchor
+ */
+ public function url(
+ $pressPath = null,
+ $page = null,
+ $op = null,
+ $path = null,
+ $params = null,
+ $anchor = null,
+ $escape = false
+ ) {
+ return $this->_delegateToRouter(
+ 'url',
+ $pressPath,
+ $page,
+ $op,
+ $path,
+ $params,
+ $anchor,
+ $escape
+ );
+ }
+}
diff --git a/classes/core/Services.inc.php b/classes/core/Services.inc.php
deleted file mode 100644
index 4bb1da2a9bc..00000000000
--- a/classes/core/Services.inc.php
+++ /dev/null
@@ -1,28 +0,0 @@
-container->register(new APP\Services\OMPServiceProvider());
- }
-
-}
diff --git a/classes/core/Services.php b/classes/core/Services.php
new file mode 100644
index 00000000000..dd255c97be3
--- /dev/null
+++ b/classes/core/Services.php
@@ -0,0 +1,34 @@
+container->register(new \APP\services\OMPServiceProvider());
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\core\Services', '\Services');
+}
diff --git a/classes/decision/Decision.php b/classes/decision/Decision.php
new file mode 100644
index 00000000000..1a4c287bc27
--- /dev/null
+++ b/classes/decision/Decision.php
@@ -0,0 +1,39 @@
+decisionTypes)) {
+ $decisionTypes = new Collection([
+ new Accept(),
+ new AcceptFromInternal(),
+ new Decline(),
+ new DeclineInternal(),
+ new InitialDecline(),
+ new NewInternalReviewRound(),
+ new NewExternalReviewRound(),
+ new RecommendAccept(),
+ new RecommendDecline(),
+ new RecommendResubmit(),
+ new RecommendRevisions(),
+ new RecommendAcceptInternal(),
+ new RecommendDeclineInternal(),
+ new RecommendResubmitInternal(),
+ new RecommendRevisionsInternal(),
+ new RecommendSendExternalReview(),
+ new RequestRevisionsInternal(),
+ new RequestRevisions(),
+ new Resubmit(),
+ new RevertDecline(),
+ new RevertDeclineInternal(),
+ new RevertInitialDecline(),
+ new SendExternalReview(),
+ new SendInternalReview(),
+ new SendToProduction(),
+ new SkipInternalReview(),
+ new SkipExternalReview(),
+ new BackFromProduction(),
+ new BackFromCopyediting(),
+ new CancelInternalReviewRound(),
+ new CancelReviewRound(),
+ ]);
+ Hook::call('Decision::types', [$decisionTypes]);
+ $this->decisionTypes = $decisionTypes;
+ }
+
+ return $this->decisionTypes;
+ }
+
+ public function getDeclineDecisionTypes(): array
+ {
+ return [
+ new InitialDecline(),
+ new DeclineInternal(),
+ new Decline(),
+ ];
+ }
+
+ public function isRecommendation(int $decision): bool
+ {
+ return in_array($decision, [
+ Decision::RECOMMEND_ACCEPT,
+ Decision::RECOMMEND_DECLINE,
+ Decision::RECOMMEND_PENDING_REVISIONS,
+ Decision::RECOMMEND_RESUBMIT,
+ Decision::RECOMMEND_ACCEPT_INTERNAL,
+ Decision::RECOMMEND_DECLINE_INTERNAL,
+ Decision::RECOMMEND_PENDING_REVISIONS_INTERNAL,
+ Decision::RECOMMEND_RESUBMIT_INTERNAL,
+ Decision::RECOMMEND_EXTERNAL_REVIEW
+ ]);
+ }
+
+ protected function getReviewNotificationTypes(): array
+ {
+ return [
+ Notification::NOTIFICATION_TYPE_PENDING_INTERNAL_REVISIONS,
+ Notification::NOTIFICATION_TYPE_PENDING_EXTERNAL_REVISIONS,
+ ];
+ }
+
+ public function getDecisionTypesMadeByRecommendingUsers(int $stageId): array
+ {
+ $recommendatorsAvailableDecisions = [];
+ switch($stageId) {
+ case WORKFLOW_STAGE_ID_SUBMISSION:
+ $recommendatorsAvailableDecisions = [
+ new SendInternalReview()
+ ];
+ }
+
+ Hook::call('Workflow::RecommendatorDecisions', [&$recommendatorsAvailableDecisions, $stageId]);
+
+ return $recommendatorsAvailableDecisions;
+ }
+}
diff --git a/classes/decision/types/AcceptFromInternal.php b/classes/decision/types/AcceptFromInternal.php
new file mode 100644
index 00000000000..e802b46b217
--- /dev/null
+++ b/classes/decision/types/AcceptFromInternal.php
@@ -0,0 +1,28 @@
+getReviewRoundCountBySubmissionId($submission->getId(), WORKFLOW_STAGE_ID_INTERNAL_REVIEW) > 1) {
+ return WORKFLOW_STAGE_ID_INTERNAL_REVIEW;
+ }
+
+ return WORKFLOW_STAGE_ID_SUBMISSION;
+ }
+}
diff --git a/classes/decision/types/DeclineInternal.php b/classes/decision/types/DeclineInternal.php
new file mode 100644
index 00000000000..45170cd521e
--- /dev/null
+++ b/classes/decision/types/DeclineInternal.php
@@ -0,0 +1,28 @@
+addFileList(
+ __('editor.submission.revisions'),
+ Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$submission->getId()])
+ ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_INTERNAL_REVIEW_REVISION])
+ );
+ }
+}
diff --git a/classes/decision/types/SendInternalReview.php b/classes/decision/types/SendInternalReview.php
new file mode 100644
index 00000000000..65f397a59fc
--- /dev/null
+++ b/classes/decision/types/SendInternalReview.php
@@ -0,0 +1,184 @@
+ $submission?->getCurrentPublication()?->getLocalizedFullTitle(null, 'html') ?? '']);
+ }
+
+ public function validate(array $props, Submission $submission, Context $context, Validator $validator, ?int $reviewRoundId = null)
+ {
+ parent::validate($props, $submission, $context, $validator, $reviewRoundId);
+
+ if (!isset($props['actions'])) {
+ return;
+ }
+
+ foreach ((array) $props['actions'] as $index => $action) {
+ $actionErrorKey = 'actions.' . $index;
+ switch ($action['id']) {
+ case $this->ACTION_NOTIFY_AUTHORS:
+ $this->validateNotifyAuthorsAction($action, $actionErrorKey, $validator, $submission);
+ break;
+ }
+ }
+ }
+
+ public function runAdditionalActions(Decision $decision, Submission $submission, User $editor, Context $context, array $actions)
+ {
+ parent::runAdditionalActions($decision, $submission, $editor, $context, $actions);
+
+ foreach ($actions as $action) {
+ switch ($action['id']) {
+ case $this->ACTION_NOTIFY_AUTHORS:
+ $this->sendAuthorEmail(
+ new DecisionSendInternalReviewNotifyAuthor($context, $submission, $decision),
+ $this->getEmailDataFromAction($action),
+ $editor,
+ $submission,
+ $context
+ );
+ break;
+ }
+ }
+ }
+
+ public function getSteps(Submission $submission, Context $context, User $editor, ?ReviewRound $reviewRound): Steps
+ {
+ $steps = new Steps($this, $submission, $context);
+
+ $fakeDecision = $this->getFakeDecision($submission, $editor);
+ $fileAttachers = $this->getFileAttachers($submission, $context);
+
+ $authors = $steps->getStageParticipants(Role::ROLE_ID_AUTHOR);
+ if (count($authors)) {
+ $mailable = new DecisionSendInternalReviewNotifyAuthor($context, $submission, $fakeDecision);
+ $steps->addStep(new Email(
+ $this->ACTION_NOTIFY_AUTHORS,
+ __('editor.submission.decision.notifyAuthors'),
+ __('editor.submission.decision.sendInternalReview.notifyAuthorsDescription'),
+ $authors,
+ $mailable
+ ->sender($editor)
+ ->recipients($authors),
+ $context->getSupportedFormLocales(),
+ $fileAttachers
+ ));
+ }
+
+ $promoteFilesStep = new PromoteFiles(
+ 'promoteFilesToReview',
+ __('editor.submission.selectFiles'),
+ __('editor.submission.decision.promoteFiles.internalReview'),
+ SubmissionFile::SUBMISSION_FILE_INTERNAL_REVIEW_FILE,
+ $submission,
+ $this->getFileGenres($context->getId())
+ );
+
+ $steps->addStep($this->withFilePromotionLists($submission, $promoteFilesStep));
+
+ return $steps;
+ }
+
+ /**
+ * Get the submission file stages that are permitted to be attached to emails
+ * sent in this decision
+ *
+ * @return int[]
+ */
+ protected function getAllowedAttachmentFileStages(): array
+ {
+ return [
+ SubmissionFile::SUBMISSION_FILE_SUBMISSION,
+ ];
+ }
+
+ /**
+ * Get the file promotion step with file promotion lists
+ * added to it
+ */
+ protected function withFilePromotionLists(Submission $submission, PromoteFiles $step): PromoteFiles
+ {
+ return $step->addFileList(
+ __('submission.submit.submissionFiles'),
+ Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$submission->getId()])
+ ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_SUBMISSION])
+ );
+ }
+}
diff --git a/classes/decision/types/SkipInternalReview.php b/classes/decision/types/SkipInternalReview.php
new file mode 100644
index 00000000000..9b28ead1e28
--- /dev/null
+++ b/classes/decision/types/SkipInternalReview.php
@@ -0,0 +1,25 @@
+
+ */
+ protected function getAllowedAttachmentFileStages(): array
+ {
+ return [
+ SubmissionFile::SUBMISSION_FILE_REVIEW_ATTACHMENT,
+ SubmissionFile::SUBMISSION_FILE_INTERNAL_REVIEW_FILE,
+ SubmissionFile::SUBMISSION_FILE_INTERNAL_REVIEW_REVISION,
+ ];
+ }
+
+ /**
+ * Get the file attacher components supported for emails in this decision
+ */
+ protected function getFileAttachers(Submission $submission, Context $context, ?ReviewRound $reviewRound = null): array
+ {
+ $attachers = [
+ new Upload(
+ $context,
+ __('common.upload.addFile'),
+ __('common.upload.addFile.description'),
+ __('common.upload.addFile')
+ ),
+ ];
+
+ if ($reviewRound) {
+ /** @var ReviewAssignmentDAO $reviewAssignmentDAO */
+ $reviewAssignmentDAO = DAORegistry::getDAO('ReviewAssignmentDAO');
+ $reviewAssignments = $reviewAssignmentDAO->getByReviewRoundId($reviewRound->getId());
+ $reviewerFiles = [];
+ if (!empty($reviewAssignments)) {
+ $reviewerFiles = Repo::submissionFile()->getCollector()
+ ->filterBySubmissionIds([$submission->getId()])
+ ->filterByAssoc(Application::ASSOC_TYPE_REVIEW_ASSIGNMENT, array_keys($reviewAssignments))
+ ->getMany();
+ }
+ $attachers[] = new ReviewFiles(
+ __('reviewer.submission.reviewFiles'),
+ __('email.addAttachment.reviewFiles.description'),
+ __('email.addAttachment.reviewFiles.attach'),
+ $reviewerFiles,
+ $reviewAssignments,
+ $context
+ );
+ }
+
+ $attachers[] = (new FileStage(
+ $context,
+ $submission,
+ __('submission.submit.submissionFiles'),
+ __('email.addAttachment.submissionFiles.reviewDescription'),
+ __('email.addAttachment.submissionFiles.attach')
+ ))
+ ->withFileStage(
+ $this->getRevisionFileStage(),
+ __('editor.submission.revisions'),
+ $reviewRound
+ )->withFileStage(
+ $this->getReviewFileStage(),
+ __('reviewer.submission.reviewFiles'),
+ $reviewRound
+ );
+
+ $attachers[] = new Library(
+ $context,
+ $submission
+ );
+
+ return $attachers;
+ }
+}
diff --git a/classes/doi/DAO.php b/classes/doi/DAO.php
new file mode 100644
index 00000000000..73e6a7bf15a
--- /dev/null
+++ b/classes/doi/DAO.php
@@ -0,0 +1,99 @@
+getData(Context::SETTING_ENABLED_DOI_TYPES) ?? [];
+
+ $q = DB::table($this->table, 'd')
+ ->leftJoin('publications as p', 'd.doi_id', '=', 'p.doi_id')
+ ->leftJoin('submissions as s', 'p.publication_id', '=', 's.current_publication_id')
+ ->where('d.context_id', '=', $context->getId())
+ ->where(function (Builder $q) use ($enabledDoiTypes) {
+ // Publication DOIs
+ $q->when(in_array(Repo::doi()::TYPE_PUBLICATION, $enabledDoiTypes), function (Builder $q) {
+ $q->whereIn('d.doi_id', function (Builder $q) {
+ $q->select('p.doi_id')
+ ->from('publications', 'p')
+ ->leftJoin('submissions as s', 'p.publication_id', '=', 's.current_publication_id')
+ ->whereColumn('p.publication_id', '=', 's.current_publication_id')
+ ->whereNotNull('p.doi_id')
+ ->where('p.status', '=', PKPSubmission::STATUS_PUBLISHED);
+ });
+ });
+ // Chapter DOIs
+ $q->when(in_array(Repo::doi()::TYPE_CHAPTER, $enabledDoiTypes), function (Builder $q) {
+ $q->orWhereIn('d.doi_id', function (Builder $q) {
+ $q->select('spc.doi_id')
+ ->from('submission_chapters', 'spc')
+ ->join('publications as p', 'spc.publication_id', '=', 'p.publication_id')
+ ->leftJoin('submissions as s', 'p.publication_id', '=', 's.current_publication_id')
+ ->whereColumn('p.publication_id', '=', 's.current_publication_id')
+ ->whereNotNull('spc.doi_id')
+ ->where('p.status', '=', PKPSubmission::STATUS_PUBLISHED);
+ });
+ });
+ // Publication format DOIs
+ $q->when(in_array(Repo::doi()::TYPE_REPRESENTATION, $enabledDoiTypes), function (Builder $q) {
+ $q->orWhereIn('d.doi_id', function (Builder $q) {
+ $q->select('pf.doi_id')
+ ->from('publication_formats', 'pf')
+ ->join('publications as p', 'pf.publication_id', '=', 'p.publication_id')
+ ->leftJoin('submissions as s', 'p.publication_id', '=', 's.current_publication_id')
+ ->whereColumn('p.publication_id', '=', 's.current_publication_id')
+ ->whereNotNull('pf.doi_id')
+ ->where('p.status', '=', PKPSubmission::STATUS_PUBLISHED);
+ });
+ });
+ // Submission file DOIs
+ $q->when(in_array(Repo::doi()::TYPE_SUBMISSION_FILE, $enabledDoiTypes), function (Builder $q) {
+ $q->orWhereIn('d.doi_id', function (Builder $q) {
+ $q->select('sf.doi_id')
+ ->from('submission_files', 'sf')
+ ->join('submissions as s', 's.submission_id', '=', 'sf.submission_id')
+ ->leftJoin('publications as p', 's.current_publication_id', '=', 'p.publication_id')
+ ->whereColumn('p.publication_id', '=', 's.current_publication_id')
+ ->where('sf.file_stage', '=', SubmissionFile::SUBMISSION_FILE_PROOF)
+ ->whereNotNull('sf.doi_id')
+ ->where('p.status', '=', PKPSubmission::STATUS_PUBLISHED);
+ });
+ });
+ })
+ ->whereIn('d.status', [Doi::STATUS_UNREGISTERED, Doi::STATUS_ERROR, Doi::STATUS_STALE]);
+ return $q->get(['s.submission_id', 'd.doi_id']);
+ }
+}
diff --git a/classes/doi/Repository.php b/classes/doi/Repository.php
new file mode 100644
index 00000000000..1231424d211
--- /dev/null
+++ b/classes/doi/Repository.php
@@ -0,0 +1,278 @@
+ $this->dao]);
+ }
+
+ /**
+ * Create a DOI for the given publication
+ */
+ public function mintPublicationDoi(Publication $publication, Submission $submission, Context $context): int
+ {
+ if ($context->getData(Context::SETTING_DOI_SUFFIX_TYPE) === Repo::doi()::SUFFIX_DEFAULT) {
+ $doiSuffix = $this->generateDefaultSuffix();
+ } else {
+ $doiSuffix = $this->generateSuffixPattern($publication, $context, $context->getData(Context::SETTING_DOI_SUFFIX_TYPE), $submission);
+ }
+
+ return $this->mintAndStoreDoi($context, $doiSuffix);
+ }
+
+ /**
+ * Create a DOI for the given chapter
+ */
+ public function mintChapterDoi(Chapter $chapter, Submission $submission, Context $context): int
+ {
+ if ($context->getData(Context::SETTING_DOI_SUFFIX_TYPE) === Repo::doi()::SUFFIX_DEFAULT) {
+ $doiSuffix = $this->generateDefaultSuffix();
+ } else {
+ $doiSuffix = $this->generateSuffixPattern($chapter, $context, $context->getData(Context::SETTING_DOI_SUFFIX_TYPE), $submission, $chapter);
+ }
+
+ return $this->mintAndStoreDoi($context, $doiSuffix);
+ }
+
+ /**
+ * Create a DOI for the given publication format
+ */
+ public function mintPublicationFormatDoi(PublicationFormat $publicationFormat, Submission $submission, Context $context): int
+ {
+ if ($context->getData(Context::SETTING_DOI_SUFFIX_TYPE) === Repo::doi()::SUFFIX_DEFAULT) {
+ $doiSuffix = $this->generateDefaultSuffix();
+ } else {
+ $doiSuffix = $this->generateSuffixPattern($publicationFormat, $context, $context->getData(Context::SETTING_DOI_SUFFIX_TYPE), $submission, null, $publicationFormat);
+ }
+
+ return $this->mintAndStoreDoi($context, $doiSuffix);
+ }
+
+ /**
+ * Create a DOI for the given submission file
+ */
+ public function mintSubmissionFileDoi(SubmissionFile $submissionFile, Submission $submission, Context $context): int
+ {
+ if ($context->getData(Context::SETTING_DOI_SUFFIX_TYPE) === Repo::doi()::SUFFIX_DEFAULT) {
+ $doiSuffix = $this->generateDefaultSuffix();
+ } else {
+ $doiSuffix = $this->generateSuffixPattern($submissionFile, $context, $context->getData(Context::SETTING_DOI_SUFFIX_TYPE), $submission, null, null, $submissionFile);
+ }
+
+ return $this->mintAndStoreDoi($context, $doiSuffix);
+ }
+
+ public function getDoisForSubmission(int $submissionId): array
+ {
+ $doiIds = Collection::make();
+
+ $submission = Repo::submission()->get($submissionId);
+ /** @var Publication[] $publications */
+ $publications = [$submission->getCurrentPublication()];
+
+ /** @var PressDAO $contextDao */
+ $contextDao = Application::getContextDAO();
+ /** @var Press */
+ $context = $contextDao->getById($submission->getData('contextId'));
+
+ foreach ($publications as $publication) {
+ $publicationDoiId = $publication->getData('doiId');
+ if (!empty($publicationDoiId) && $context->isDoiTypeEnabled(self::TYPE_PUBLICATION)) {
+ $doiIds->add($publicationDoiId);
+ }
+
+ // Chapters
+ $chapters = $publication->getData('chapters');
+ foreach ($chapters as $chapter) {
+ $chapterDoiId = $chapter->getData('doiId');
+ if (!empty($chapterDoiId) && $context->isDoiTypeEnabled(self::TYPE_CHAPTER)) {
+ $doiIds->add($chapterDoiId);
+ }
+ }
+
+ // Publication formats
+ $publicationFormats = $publication->getData('publicationFormats');
+ foreach ($publicationFormats as $publicationFormat) {
+ $publicationFormatDoiId
+ = $publicationFormat->getData('doiId');
+ if (!empty($publicationFormatDoiId) && $context->isDoiTypeEnabled(self::TYPE_REPRESENTATION)) {
+ $doiIds->add($publicationFormatDoiId);
+ }
+ }
+
+ // Submission files
+ if ($context->isDoiTypeEnabled(self::TYPE_SUBMISSION_FILE)) {
+ $submissionFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$publication->getData('submissionId')])
+ ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_PROOF])
+ ->getMany();
+
+ /** @var SubmissionFile $submissionFile */
+ foreach ($submissionFiles as $submissionFile) {
+ $submissionFileDoiId = $submissionFile->getData('doiId');
+ if (!empty($submissionFileDoiId)) {
+ $doiIds->add($submissionFileDoiId);
+ }
+ }
+ }
+ }
+
+ return $doiIds->unique()->toArray();
+ }
+
+ /**
+ * Generate a suffix using a provided pattern type
+ *
+ * @param string $patternType Repo::doi()::CUSTOM_SUFFIX_* constants
+ *
+ */
+ protected function generateSuffixPattern(
+ DataObject $object,
+ Context $context,
+ string $patternType,
+ ?Submission $submission = null,
+ ?Chapter $chapter = null,
+ ?Representation $representation = null,
+ ?SubmissionFile $submissionFile = null
+ ): string {
+ $doiSuffix = '';
+ switch ($patternType) {
+ case self::SUFFIX_CUSTOM_PATTERN:
+ $pubIdSuffixPattern = $this->getPubIdSuffixPattern($object, $context);
+ $doiSuffix = PubIdPlugin::generateCustomPattern($context, $pubIdSuffixPattern, $object, $submission, $chapter, $representation, $submissionFile);
+ break;
+ case self::SUFFIX_MANUAL:
+ break;
+ }
+
+ return $doiSuffix;
+ }
+
+ /**
+ * Gets legacy, user-generated suffix pattern associated with object type and context
+ *
+ */
+ private function getPubIdSuffixPattern(DataObject $object, Context $context): ?string
+ {
+ if ($object instanceof SubmissionFile) {
+ return $context->getData(Repo::doi()::CUSTOM_FILE_PATTERN);
+ } elseif ($object instanceof Representation) {
+ return $context->getData(Repo::doi()::CUSTOM_REPRESENTATION_PATTERN);
+ } elseif ($object instanceof Chapter) {
+ return $context->getData(Repo::doi()::CUSTOM_CHAPTER_PATTERN);
+ } else {
+ return $context->getData(Repo::doi()::CUSTOM_PUBLICATION_PATTERN);
+ }
+ }
+
+ /**
+ * Get app-specific DOI type constants to check when scheduling deposit for submissions
+ *
+ */
+ protected function getValidSubmissionDoiTypes(): array
+ {
+ return [
+ self::TYPE_PUBLICATION,
+ self::TYPE_CHAPTER,
+ self::TYPE_REPRESENTATION,
+ self::TYPE_SUBMISSION_FILE
+ ];
+ }
+
+ /**
+ * Checks whether a DOI object is referenced by ID on any pub objects for a given pub object type.
+ *
+ * @param string $pubObjectType One of Repo::doi()::TYPE_* constants
+ */
+ public function isAssigned(int $doiId, string $pubObjectType): bool
+ {
+ $getChapterCount = function () use ($doiId) {
+ /** @var ChapterDAO $chapterDao */
+ $chapterDao = DAORegistry::getDAO('ChapterDAO');
+ return count($chapterDao->getByDoiId($doiId)->toArray());
+ };
+
+ $getPublicationFormatCount = function () use ($doiId) {
+ /** @var PublicationFormatDAO $publicationFormatDao */
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO');
+ return count($publicationFormatDao->getByDoiId($doiId)->toArray());
+ };
+
+ $getSubmissionFilesCount = function () use ($doiId) {
+ Hook::add('SubmissionFile::Collector::getQueryBuilder', function ($hookName, $args) use ($doiId) {
+ /** @var Builder $qb */
+ $qb = & $args[0];
+ $qb->when($doiId !== null, function (Builder $qb) use ($doiId) {
+ $qb->where('sf.doi_id', '=', $doiId);
+ });
+ });
+
+ return Repo::submissionFile()
+ ->getCollector()
+ ->getQueryBuilder()
+ ->getCountForPagination();
+ };
+
+ $isAssigned = match ($pubObjectType) {
+ Repo::doi()::TYPE_CHAPTER => $getChapterCount(),
+ Repo::doi()::TYPE_REPRESENTATION => $getPublicationFormatCount(),
+ Repo::doi()::TYPE_SUBMISSION_FILE => $getSubmissionFilesCount(),
+ default => false,
+ };
+
+
+
+ return $isAssigned || parent::isAssigned($doiId, $pubObjectType);
+ }
+}
diff --git a/classes/emailTemplate/DAO.php b/classes/emailTemplate/DAO.php
new file mode 100644
index 00000000000..3e2fca2e1c9
--- /dev/null
+++ b/classes/emailTemplate/DAO.php
@@ -0,0 +1,29 @@
+ 'pressName',
+ 'contextUrl' => 'pressUrl',
+ 'contextSignature' => 'pressSignature',
+ ];
+ }
+}
diff --git a/classes/facades/Repo.php b/classes/facades/Repo.php
new file mode 100644
index 00000000000..2e64dc5e88d
--- /dev/null
+++ b/classes/facades/Repo.php
@@ -0,0 +1,73 @@
+make(DoiRepository::class);
+ }
+
+ public static function publication(): PublicationRepository
+ {
+ return app(PublicationRepository::class);
+ }
+
+ public static function section(): SectionRepository
+ {
+ return app(SectionRepository::class);
+ }
+
+ public static function submission(): SubmissionRepository
+ {
+ return app(SubmissionRepository::class);
+ }
+
+ public static function submissionFile(): SubmissionFileRepository
+ {
+ return app(SubmissionFileRepository::class);
+ }
+
+ public static function user(): UserRepository
+ {
+ return app(UserRepository::class);
+ }
+
+ public static function mailable(): MailRepository
+ {
+ return app(MailRepository::class);
+ }
+}
diff --git a/classes/file/LibraryFileManager.inc.php b/classes/file/LibraryFileManager.inc.php
deleted file mode 100644
index 497da0b5bd8..00000000000
--- a/classes/file/LibraryFileManager.inc.php
+++ /dev/null
@@ -1,78 +0,0 @@
-getTypeSuffixMap();
- return $typeSuffixMap[$type];
- }
-
- /**
- * Get the type => suffix mapping array
- * @return array
- */
- function &getTypeSuffixMap() {
- static $map = array(
- LIBRARY_FILE_TYPE_CONTRACT => 'CON',
- );
- $parent = parent::getTypeSuffixMap();
- $map = array_merge($map, $parent);
- return $map;
- }
-
- /**
- * Get the type => locale key mapping array
- * @return array
- */
- function &getTypeTitleKeyMap() {
- static $map = array(
- LIBRARY_FILE_TYPE_CONTRACT => 'settings.libraryFiles.category.contracts',
- );
- $parent = parent::getTypeTitleKeyMap();
- $map = array_merge($map, $parent);
- return $map;
- }
-
- /**
- * Get the type => name mapping array
- * @return array
- */
- function &getTypeNameMap() {
- static $map = array(
- LIBRARY_FILE_TYPE_CONTRACT => 'contacts',
- );
- $parent = parent::getTypeNameMap();
- $map = array_merge($map, $parent);
- return $map;
- }
-}
-
-
diff --git a/classes/file/LibraryFileManager.php b/classes/file/LibraryFileManager.php
new file mode 100644
index 00000000000..b31c1c11833
--- /dev/null
+++ b/classes/file/LibraryFileManager.php
@@ -0,0 +1,83 @@
+getTypeSuffixMap();
+ return $typeSuffixMap[$type];
+ }
+
+ /**
+ * Get the type => suffix mapping array
+ *
+ * @return array
+ */
+ public function &getTypeSuffixMap()
+ {
+ static $map = [
+ LibraryFile::LIBRARY_FILE_TYPE_CONTRACT => 'CON',
+ ];
+ $parent = parent::getTypeSuffixMap();
+ $map = array_merge($map, $parent);
+ return $map;
+ }
+
+ /**
+ * Get the type => locale key mapping array
+ *
+ * @return array
+ */
+ public function &getTypeTitleKeyMap()
+ {
+ static $map = [
+ LibraryFile::LIBRARY_FILE_TYPE_CONTRACT => 'settings.libraryFiles.category.contracts',
+ ];
+ $parent = parent::getTypeTitleKeyMap();
+ $map = array_merge($map, $parent);
+ return $map;
+ }
+
+ /**
+ * Get the type => name mapping array
+ *
+ * @return array
+ */
+ public function &getTypeNameMap()
+ {
+ static $map = [
+ LibraryFile::LIBRARY_FILE_TYPE_CONTRACT => 'contacts',
+ ];
+ $parent = parent::getTypeNameMap();
+ $map = array_merge($map, $parent);
+ return $map;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\file\LibraryFileManager', '\LibraryFileManager');
+}
diff --git a/classes/file/PublicFileManager.inc.php b/classes/file/PublicFileManager.inc.php
deleted file mode 100644
index 2d56f879e59..00000000000
--- a/classes/file/PublicFileManager.inc.php
+++ /dev/null
@@ -1,27 +0,0 @@
- $baseDir . 'locale.po',
- LOCALE_COMPONENT_APP_AUTHOR => $baseDir . 'author.po',
- LOCALE_COMPONENT_APP_MANAGER => $baseDir . 'manager.po',
- LOCALE_COMPONENT_APP_SUBMISSION => $baseDir . 'submission.po',
- LOCALE_COMPONENT_APP_EDITOR => $baseDir . 'editor.po',
- LOCALE_COMPONENT_APP_ADMIN => $baseDir . 'admin.po',
- LOCALE_COMPONENT_APP_DEFAULT => $baseDir . 'default.po',
- LOCALE_COMPONENT_APP_API => $baseDir . 'api.po',
- LOCALE_COMPONENT_APP_EMAIL => $baseDir . 'emails.po',
- );
- }
-}
-
-
diff --git a/classes/i18n/AppLocale.php b/classes/i18n/AppLocale.php
new file mode 100644
index 00000000000..9cabf4ce5cb
--- /dev/null
+++ b/classes/i18n/AppLocale.php
@@ -0,0 +1,35 @@
+getSite();
- $adminEmail = $site->getLocalizedContactEmail();
- import('lib.pkp.classes.submission.SubmissionFile'); // SUBMISSION_FILE_ constants
- import('lib.pkp.classes.file.FileManager');
- $fileManager = new FileManager();
-
- $contexts = $pressDao->getAll();
- while ($context = $contexts->next()) {
- $submissions = $submissionDao->getByContextId($context->getId());
- while ($submission = $submissions->next()) {
- $submissionDir = Services::get('submissionFile')->getSubmissionDir($context->getId(), $submission->getId());
- $rows = Capsule::table('submission_files')
- ->where('submission_id', '=', $submission->getId())
- ->get();
- foreach ($rows as $row) {
- $generatedFilename = sprintf(
- '%d-%s-%d-%d-%d-%s.%s',
- $row->submission_id,
- $row->genre_id,
- $row->file_id,
- $row->revision,
- $row->file_stage,
- date('Ymd', strtotime($row->date_uploaded)),
- strtolower_codesafe($fileManager->parseFileExtension($row->original_file_name))
- );
- $basePath = sprintf(
- '%s/%s/%s/',
- Config::getVar('files', 'files_dir'),
- $submissionDir,
- $this->_fileStageToPath($row->file_stage)
- );
- $globPattern = $$row->submission_id . '-' .
- '*' . '-' . // Genre name and designation globbed (together)
- $row->file_id . '-' .
- $row->revision . '-' .
- $row->file_stage . '-' .
- date('Ymd', strtotime($row->date_uploaded)) .
- '.' . strtolower_codesafe($fileManager->parseFileExtension($row->original_file_name));
-
- $matchedResults = glob($basePath . $globPattern);
- if (count($matchedResults)>1) {
- error_log("Duplicate potential files for \"$globPattern\"!", 1, $adminEmail);
- continue;
- }
- if (count($matchedResults) == 1) {
- // 1 result matched.
- $discoveredFilename = array_shift($matchedResults);
- if ($dryrun) {
- echo "Need to rename \"$discoveredFilename\" to \"$generatedFilename\".\n";
- } else {
- rename($discoveredFilename, $basePath . $generatedFilename);
- }
- } else {
- // 0 results matched.
- error_log("Unable to find a match for \"$globPattern\".\n", 1, $adminEmail);
- continue;
- }
- }
- }
- }
- return true;
- }
-
- /**
- * Enable the default theme plugin for versions < 1.1.
- * @return boolean
- */
- function enableDefaultTheme() {
- $pressDao = DAORegistry::getDAO('PressDAO'); /* @var $pressDao PressDAO */
- $contexts = $pressDao->getAll();
- $pluginSettingsDao = DAORegistry::getDAO('PluginSettingsDAO'); /* @var $pluginSettingsDao PluginSettingsDAO */
-
- // Site-wide
- $pluginSettingsDao->updateSetting(0, 'defaultthemeplugin', 'enabled', '1', 'int');
-
- // For each press
- while ($context = $contexts->next()) {
- $pluginSettingsDao->updateSetting($context->getId(), 'defaultthemeplugin', 'enabled', '1', 'int');
- }
- return true;
- }
-
- /**
- * Synchronize the ASSOC_TYPE_SERIES constant to ASSOC_TYPE_SECTION defined in PKPApplication.
- * @return boolean
- */
- function syncSeriesAssocType() {
- // Can be any DAO.
- $dao = DAORegistry::getDAO('UserDAO'); /* @var $dao DAO */
- $tablesToUpdate = [
- 'features',
- 'data_object_tombstone_oai_set_objects',
- 'new_releases',
- 'spotlights',
- 'notifications',
- 'email_templates',
- 'email_templates_data',
- 'controlled_vocabs',
- 'event_log',
- 'email_log',
- 'metadata_descriptions',
- 'notes',
- 'item_views'
- ];
-
- foreach ($tablesToUpdate as $tableName) {
- $dao->update('UPDATE ' . $tableName . ' SET assoc_type = ' . ASSOC_TYPE_SERIES . ' WHERE assoc_type = 526');
- }
-
- return true;
- }
-
- /**
- * Fix incorrectly stored author settings. (See bug #8663.)
- * @return boolean
- */
- function fixAuthorSettings() {
- $authorDao = DAORegistry::getDAO('AuthorDAO'); /* @var $authorDao AuthorDAO */
-
- // Get all authors with broken data
- $result = $authorDao->retrieve(
- 'SELECT DISTINCT author_id
- FROM author_settings
- WHERE (setting_name = ? OR setting_name = ?)
- AND setting_type = ?',
- ['affiliation', 'biography', 'object']
- );
-
- foreach ($result as $row) {
- $authorId = $row->author_id;
-
- $author = $authorDao->getById($authorId);
- if (!$author) continue; // Bonehead check (DB integrity)
-
- foreach ((array) $author->getAffiliation(null) as $locale => $affiliation) {
- if (is_array($affiliation)) foreach($affiliation as $locale => $s) {
- $author->setAffiliation($s, $locale);
- }
- }
-
- foreach ((array) $author->getBiography(null) as $locale => $biography) {
- if (is_array($biography)) foreach($biography as $locale => $s) {
- $author->setBiography($s, $locale);
- }
- }
- $authorDao->updateObject($author);
- }
- return true;
- }
-
- /**
- * Convert email templates to HTML.
- * @return boolean True indicates success.
- */
- function htmlifyEmailTemplates() {
- $emailTemplateDao = DAORegistry::getDAO('EmailTemplateDAO'); /* @var $emailTemplateDao EmailTemplateDAO */
-
- // Convert the email templates in email_templates_data to localized
- $result = $emailTemplateDao->retrieve('SELECT * FROM email_templates_data');
- foreach ($result as $row) {
- $emailTemplateDao->update(
- 'UPDATE email_templates_data
- SET body = ?
- WHERE email_key = ? AND
- locale = ? AND
- assoc_type = ? AND
- assoc_id = ?',
- [
- preg_replace('/{\$[a-zA-Z]+Url}/', '\0', nl2br($row->body)),
- $row->email_key,
- $row->locale,
- $row->assoc_type,
- $row->assoc_id
- ]
- );
- }
-
- // Convert the email templates in email_templates_default_data to localized
- $result = $emailTemplateDao->retrieve('SELECT * FROM email_templates_default_data');
- foreach ($result as $row) {
- $emailTemplateDao->update(
- 'UPDATE email_templates_default_data
- SET body = ?
- WHERE email_key = ? AND
- locale = ?',
- [
- preg_replace('/{\$[a-zA-Z]+Url}/', '\0', nl2br($row->body)),
- $row->email_key,
- $row->locale,
- ]
- );
- }
-
- // Localize the email header and footer fields.
- $contextDao = DAORegistry::getDAO('PressDAO'); /* @var $contextDao PressDAO */
- $settingsDao = DAORegistry::getDAO('PressSettingsDAO'); /* @var $settingsDao PressSettingsDAO */
- $contexts = $contextDao->getAll();
- while ($context = $contexts->next()) {
- foreach (['emailFooter', 'emailSignature'] as $settingName) {
- $settingsDao->updateSetting(
- $context->getId(),
- $settingName,
- $context->getData('emailHeader'),
- 'string'
- );
- }
- }
-
- return true;
- }
-
- /**
- * Convert signoffs to queries.
- * @return boolean True indicates success.
- */
- function convertQueries() {
- $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
- import('lib.pkp.classes.submission.SubmissionFile');
-
- $filesResult = $submissionFileDao->retrieve(
- 'SELECT DISTINCT sf.file_id, sf.assoc_type, sf.assoc_id, sf.submission_id, sf.original_file_name, sf.revision, s.symbolic, s.date_notified, s.date_completed, s.user_id, s.signoff_id FROM submission_files sf, signoffs s WHERE s.assoc_type=? AND s.assoc_id=sf.file_id AND s.symbolic IN (?, ?)',
- [ASSOC_TYPE_SUBMISSION_FILE, 'SIGNOFF_COPYEDITING', 'SIGNOFF_PROOFING']
- );
-
- $queryDao = DAORegistry::getDAO('QueryDAO'); /* @var $queryDao QueryDAO */
- $noteDao = DAORegistry::getDAO('NoteDAO'); /* @var $noteDao NoteDAO */
- $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
- $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); /* @var $stageAssignmentDao StageAssignmentDAO */
-
- //
- // 1. Go through all signoff/file pairs and migrate them into queries.
- // Queries should be created per file and users should be consolidated
- // from potentially multiple audit assignments into fewer queries.
- //
- foreach ($filesResult as $row) {
- $fileId = $row->file_id;
- $symbolic = $row->symbolic;
- $dateNotified = $row->date_notified?strtotime($row->date_notified):null;
- $dateCompleted = $row->date_completed?strtotime($row->date_completed):null;
- $userId = $row->user_id;
- $signoffId = $row->signoff_id;
- $fileAssocType = $row->assoc_type;
- $fileAssocId = $row->assoc_id;
- $submissionId = $row->submission_id;
- $originalFileName = $row->original_file_name;
- $revision = $row->revision;
-
- // Reproduces removed SubmissionFile::getFileLabel() method
- $label = $originalFileName;
- $filename = Capsule::table('submission_file_settings')
- ->where('file_id', '=', $fileId)
- ->where('setting_name', '=', 'name')
- ->first();
- if ($filename) {
- $label = $filename->setting_value;
- }
- if ($revision) {
- $label .= '(' . $revision . ')';
- }
-
- $assocType = $assocId = $query = null; // Prevent PHP scrutinizer warnings
- switch ($symbolic) {
- case 'SIGNOFF_COPYEDITING':
- $query = $queryDao->newDataObject();
- $query->setAssocType($assocType = ASSOC_TYPE_SUBMISSION);
- $query->setAssocId($assocId = $submissionId);
- $query->setStageId(WORKFLOW_STAGE_ID_EDITING);
- break;
- case 'SIGNOFF_PROOFING':
- // We've already migrated a signoff for this file; add this user to it too.
- if ($fileAssocType == ASSOC_TYPE_NOTE) {
- $note = $noteDao->getById($fileAssocId);
- assert($note && $note->getAssocType() == ASSOC_TYPE_QUERY);
- if (count($queryDao->getParticipantIds($note->getAssocId(), $userId))==0) $queryDao->insertParticipant($fileAssocId, $userId);
- $this->_transferSignoffData($signoffId, $note->getAssocId());
- continue 2;
- }
- $query = $queryDao->newDataObject();
- assert($fileAssocType==ASSOC_TYPE_REPRESENTATION);
- $query->setAssocType($assocType = ASSOC_TYPE_SUBMISSION);
- $query->setAssocId($assocId = $submissionId);
- $query->setStageId(WORKFLOW_STAGE_ID_PRODUCTION);
- break;
- default: assert(false);
- }
- $query->setSequence(REALLY_BIG_NUMBER);
- $query->setIsClosed($dateCompleted?true:false);
- $queryDao->insertObject($query);
- $queryDao->resequence($assocType, $assocId);
-
- // Build a list of all users who should be involved in the query
- $user = $userDao->getById($userId);
- $assignedUserIds = [$userId];
- foreach ([ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT] as $roleId) {
- $stageAssignments = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, $roleId, $query->getStageId());
- while ($stageAssignment = $stageAssignments->next()) {
- $assignedUserIds[] = $stageAssignment->getUserId();
- }
- }
- // Add the assigned auditor as a query participant
- foreach (array_unique($assignedUserIds) as $assignedUserId) {
- $queryDao->insertParticipant($query->getId(), $assignedUserId);
- }
-
- // Create a head note
- $headNote = $noteDao->newDataObject();
- $headNote->setAssocType(ASSOC_TYPE_QUERY);
- $headNote->setAssocId($query->getId());
- switch($symbolic) {
- case 'SIGNOFF_COPYEDITING':
- $headNote->setTitle('Copyediting for "' . $label . '"');
- $headNote->setContents('Auditing assignment for the file "' . htmlspecialchars($label) . '" (Signoff ID: ' . $signoffId . ')');
- break;
- case 'SIGNOFF_PROOFING':
- $headNote->setTitle('Proofreading for ' . $label);
- $headNote->setContents('Proofing assignment for the file "' . htmlspecialchars($label) . '" (Signoff ID: ' . $signoffId . ')');
- break;
- default: assert(false);
- }
- $noteDao->insertObject($headNote);
-
- // Correct the creation date (automatically assigned) with the signoff value
- $headNote->setDateCreated($dateNotified);
- $noteDao->updateObject($headNote);
-
- // Add completion as a note
- if ($dateCompleted) {
- $completionNote = $noteDao->newDataObject();
- $completionNote->setAssocType(ASSOC_TYPE_QUERY);
- $completionNote->setAssocId($query->getId());
- $completionNote->setContents('The assignment is complete.');
- $completionNote->setUserId($userId);
- $noteDao->insertObject($completionNote);
- $completionNote->setDateCreated($dateCompleted);
- $noteDao->updateObject($completionNote);
- }
-
- $this->_transferSignoffData($signoffId, $query->getId());
- }
- return true;
- }
-
- /**
- * The assoc_type = ASSOC_TYPE_REPRESENTATION (from SIGNOFF_PROOFING migration)
- * should be changed to assoc_type = ASSOC_TYPE_SUBMISSION, for queries to be
- * displayed in the production discussions list.
- * After changing this, the submission queries should be resequenced, in their
- * order in the DB table.
- * @return boolean True indicates success.
- */
- function fixQueriesAssocTypes() {
- // Get queries by submission ids, in order to resequence them correctly after the assoc_type change
- $queryDao = DAORegistry::getDAO('QueryDAO'); /* @var $queryDao QueryDAO */
- $allQueriesResult = $queryDao->retrieve(
- 'SELECT DISTINCT q.*,
- COALESCE(pf.submission_id, qs.assoc_id) AS submission_id
- FROM queries q
- LEFT JOIN publication_formats pf ON (q.assoc_type = ? AND q.assoc_id = pf.publication_format_id AND q.stage_id = ?)
- LEFT JOIN queries qs ON (qs.assoc_type = ?)
- WHERE q.assoc_type = ? OR q.assoc_type = ?
- ORDER BY query_id',
- [(int) ASSOC_TYPE_REPRESENTATION, (int) WORKFLOW_STAGE_ID_PRODUCTION, (int) ASSOC_TYPE_SUBMISSION, (int) ASSOC_TYPE_SUBMISSION, (int) ASSOC_TYPE_REPRESENTATION]
- );
- $allQueries = [];
- foreach ($allQueriesResult as $row) {
- $allQueries[$row->submission_id]['queries'][] = $query = $queryDao->_fromRow((array) $row);
- // mark if this submission queries should be fixed
- $fix = array_key_exists('fix', $allQueries[$row->submission_id]) ? $allQueries[$row->submission_id]['fix'] : false;
- $allQueries[$row->submission_id]['fix'] = ($query->getAssocType() == ASSOC_TYPE_REPRESENTATION) || $fix;
- }
- foreach ($allQueries as $submissionId => $queriesBySubmission) {
- // Touch i.e. fix and resequence only the submission queries that contained assoc_type = ASSOC_TYPE_REPRESENTATION
- if ($allQueries[$submissionId]['fix']) {
- $i = 1;
- foreach($queriesBySubmission['queries'] as $query) {
- if ($query->getAssocType() == ASSOC_TYPE_REPRESENTATION) {
- $query->setAssocType(ASSOC_TYPE_SUBMISSION);
- $query->setAssocId($submissionId);
- }
- $query->setSequence($i);
- $queryDao->updateObject($query);
- $i++;
- }
- }
- }
- return true;
- }
-
- /**
- * Convert comments to editors to queries.
- * @return boolean True indicates success.
- */
- function convertCommentsToEditor() {
- $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
- $stageAssignmetDao = DAORegistry::getDAO('StageAssignmentDAO'); /* @var $stageAssignmetDao StageAssignmentDAO */
- $queryDao = DAORegistry::getDAO('QueryDAO'); /* @var $queryDao QueryDAO */
- $noteDao = DAORegistry::getDAO('NoteDAO'); /* @var $noteDao NoteDAO */
- $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */
-
- import('lib.pkp.classes.security.Role'); // ROLE_ID_...
-
- $commentsResult = $submissionDao->retrieve(
- 'SELECT s.submission_id, s.context_id, s.comments_to_ed, s.date_submitted
- FROM submissions_tmp s
- WHERE s.comments_to_ed IS NOT NULL AND s.comments_to_ed != \'\''
- );
- foreach ($commentsResult as $row) {
- $commentsToEd = PKPString::stripUnsafeHtml($row->comments_to_ed);
- if ($commentsToEd == '') continue;
-
- $authorAssignments = $stageAssignmetDao->getBySubmissionAndRoleId($row->submission_id, ROLE_ID_AUTHOR);
- if ($authorAssignment = $authorAssignments->next()) {
- // We assume the results are ordered by stage_assignment_id i.e. first author assignemnt is first
- $userId = $authorAssignment->getUserId();
- } else {
- $managerUserGroup = $userGroupDao->getDefaultByRoleId($row->context_id, ROLE_ID_MANAGER);
- $managerUsers = $userGroupDao->getUsersById($managerUserGroup->getId(), $row->context_id);
- $userId = $managerUsers->next()->getId();
- }
- assert($userId);
-
- $query = $queryDao->newDataObject();
- $query->setAssocType(ASSOC_TYPE_SUBMISSION);
- $query->setAssocId($row->submission_id);
- $query->setStageId(WORKFLOW_STAGE_ID_SUBMISSION);
- $query->setSequence(REALLY_BIG_NUMBER);
-
- $queryDao->insertObject($query);
- $queryDao->resequence(ASSOC_TYPE_SUBMISSION, $row->submission_id);
- $queryDao->insertParticipant($query->getId(), $userId);
-
- $queryId = $query->getId();
-
- $note = $noteDao->newDataObject();
- $note->setUserId($userId);
- $note->setAssocType(ASSOC_TYPE_QUERY);
- $note->setTitle('Cover Note to Editor');
- $note->setContents($commentsToEd);
- $note->setDateCreated(strtotime($row->date_submitted));
- $note->setDateModified(strtotime($row->date_submitted));
- $note->setAssocId($queryId);
- $noteDao->insertObject($note);
- }
-
- // remove temporary table
- $submissionDao->update('DROP TABLE submissions_tmp');
-
- return true;
- }
-
- /**
- * Private function to reassign signoff notes and files to queries.
- * @param $signoffId int Signoff ID
- * @param $queryId int Query ID
- */
- private function _transferSignoffData($signoffId, $queryId) {
- $noteDao = DAORegistry::getDAO('NoteDAO'); /* @var $noteDao NoteDAO */
- $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
- $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
-
- $notes = $noteDao->getByAssoc(1048582 /* ASSOC_TYPE_SIGNOFF */, $signoffId);
- while ($note = $notes->next()) {
- $note->setAssocType(ASSOC_TYPE_QUERY);
- $note->setAssocId($queryId);
- $noteDao->updateObject($note);
-
- // Convert any attached files
- $submissionFilesIterator = Services::get('submissionFile')->getMany([
- 'assocTypes' => [ASSOC_TYPE_NOTE],
- 'assocIds' => [$note->getId()],
- ]);
- foreach ($submissionFilesIterator as $submissionFile) {
- $submissionFile->setData('fileStage', SUBMISSION_FILE_QUERY);
- $submissionFileDao->updateObject($submissionFile);
- }
- }
-
- // Transfer signoff signoffs into notes
- $signoffsResult = $submissionFileDao->retrieve(
- 'SELECT * FROM signoffs WHERE symbolic = ? AND assoc_type = ? AND assoc_id = ?',
- ['SIGNOFF_SIGNOFF', 1048582 /* ASSOC_TYPE_SIGNOFF */, $signoffId]
- );
- foreach ($signoffsResult as $row) {
- $metaSignoffId = $row->signoff_id;
- $userId = $row->user_id;
- $dateCompleted = $row->date_completed ? strtotime($row->date_completed) : null;
-
- if ($dateCompleted) {
- $user = $userDao->getById($userId);
- $note = $noteDao->newDataObject();
- $note->setAssocType(ASSOC_TYPE_QUERY);
- $note->setAssocId($queryId);
- $note->setUserId($userId);
- $note->setContents('The completed task has been reviewed by ' . htmlspecialchars($user->getFullName()) . ' (' . $user->getEmail() . ').');
- $noteDao->insertObject($note);
- $note->setDateCreated(Core::getCurrentDate());
- $noteDao->updateObject($note);
- }
- $submissionFileDao->update('DELETE FROM signoffs WHERE signoff_id=?', [$metaSignoffId]);
- }
-
- $submissionFileDao->update('DELETE FROM signoffs WHERE signoff_id=?', [$signoffId]);
- }
-
- /**
- * If StaticPages table exists we should port the data as NMIs
- * @return boolean
- */
- function migrateStaticPagesToNavigationMenuItems() {
- if ($this->tableExists('static_pages')) {
- $contextDao = Application::getContextDAO();
- $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /* @var $navigationMenuItemDao NavigationMenuItemDAO */
-
- import('plugins.generic.staticPages.classes.StaticPagesDAO');
-
- $staticPagesDao = new StaticPagesDAO();
-
- $contexts = $contextDao->getAll();
- while ($context = $contexts->next()) {
- $contextStaticPages = $staticPagesDao->getByContextId($context->getId())->toAssociativeArray();
- foreach($contextStaticPages as $staticPage) {
- $retNMIId = $navigationMenuItemDao->portStaticPage($staticPage);
- if ($retNMIId) {
- $staticPagesDao->deleteById($staticPage->getId());
- } else {
- error_log('WARNING: The StaticPage "' . $staticPage->getLocalizedTitle() . '" uses a path (' . $staticPage->getPath() . ') that conflicts with an existing Custom Navigation Menu Item path. Skipping this StaticPage.');
- }
- }
- }
- }
-
- return true;
- }
-
- /**
- * Migrate first and last user names as multilingual into the DB table user_settings.
- * @return boolean
- */
- function migrateUserAndAuthorNames() {
- $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
- import('lib.pkp.classes.identity.Identity'); // IDENTITY_SETTING_...
- // the user names will be saved in the site's primary locale
- $userDao->update("INSERT INTO user_settings (user_id, locale, setting_name, setting_value, setting_type) SELECT DISTINCT u.user_id, s.primary_locale, ?, u.first_name, 'string' FROM users_tmp u, site s", [IDENTITY_SETTING_GIVENNAME]);
- $userDao->update("INSERT INTO user_settings (user_id, locale, setting_name, setting_value, setting_type) SELECT DISTINCT u.user_id, s.primary_locale, ?, u.last_name, 'string' FROM users_tmp u, site s", [IDENTITY_SETTING_FAMILYNAME]);
- // the author names will be saved in the submission's primary locale
- $userDao->update("INSERT INTO author_settings (author_id, locale, setting_name, setting_value, setting_type) SELECT DISTINCT a.author_id, s.locale, ?, a.first_name, 'string' FROM authors_tmp a, submissions s WHERE s.submission_id = a.submission_id", [IDENTITY_SETTING_GIVENNAME]);
- $userDao->update("INSERT INTO author_settings (author_id, locale, setting_name, setting_value, setting_type) SELECT DISTINCT a.author_id, s.locale, ?, a.last_name, 'string' FROM authors_tmp a, submissions s WHERE s.submission_id = a.submission_id", [IDENTITY_SETTING_FAMILYNAME]);
-
- // middle name will be migrated to the given name
- // note that given names are already migrated to the settings table
- switch (Config::getVar('database', 'driver')) {
- case 'mysql':
- case 'mysqli':
- // the alias for _settings table cannot be used for some reason -- syntax error
- $userDao->update("UPDATE user_settings, users_tmp u SET user_settings.setting_value = CONCAT(user_settings.setting_value, ' ', u.middle_name) WHERE user_settings.setting_name = ? AND u.user_id = user_settings.user_id AND u.middle_name IS NOT NULL AND u.middle_name <> ''", [IDENTITY_SETTING_GIVENNAME]);
- $userDao->update("UPDATE author_settings, authors_tmp a SET author_settings.setting_value = CONCAT(author_settings.setting_value, ' ', a.middle_name) WHERE author_settings.setting_name = ? AND a.author_id = author_settings.author_id AND a.middle_name IS NOT NULL AND a.middle_name <> ''", [IDENTITY_SETTING_GIVENNAME]);
- break;
- case 'postgres':
- case 'postgres64':
- case 'postgres7':
- case 'postgres8':
- case 'postgres9':
- $userDao->update("UPDATE user_settings SET setting_value = CONCAT(setting_value, ' ', u.middle_name) FROM users_tmp u WHERE user_settings.setting_name = ? AND u.user_id = user_settings.user_id AND u.middle_name IS NOT NULL AND u.middle_name <> ''", [IDENTITY_SETTING_GIVENNAME]);
- $userDao->update("UPDATE author_settings SET setting_value = CONCAT(setting_value, ' ', a.middle_name) FROM authors_tmp a WHERE author_settings.setting_name = ? AND a.author_id = author_settings.author_id AND a.middle_name IS NOT NULL AND a.middle_name <> ''", [IDENTITY_SETTING_GIVENNAME]);
- break;
- default: throw new Exception('Unknown database type!');
- }
-
- // salutation and suffix will be migrated to the preferred public name
- // user preferred public names will be inserted for each supported site locales
- $siteDao = DAORegistry::getDAO('SiteDAO'); /* @var $siteDao SiteDAO */
- $site = $siteDao->getSite();
- $supportedLocales = $site->getSupportedLocales();
- $userResult = $userDao->retrieve(
- "SELECT user_id, first_name, last_name, middle_name, salutation, suffix FROM users_tmp
- WHERE (salutation IS NOT NULL AND salutation <> '') OR
- (suffix IS NOT NULL AND suffix <> '')"
- );
- foreach ($userResult as $row) {
- $userId = $row->user_id;
- $firstName = $row->first_name;
- $lastName = $row->last_name;
- $middleName = $row->middle_name;
- $salutation = $row->salutation;
- $suffix = $row->suffix;
- foreach ($supportedLocales as $siteLocale) {
- $preferredPublicName = ($salutation != '' ? "$salutation " : '') . "$firstName " . ($middleName != '' ? "$middleName " : '') . $lastName . ($suffix != '' ? ", $suffix" : '');
- if (AppLocale::isLocaleWithFamilyFirst($siteLocale)) {
- $preferredPublicName = "$lastName, " . ($salutation != '' ? "$salutation " : '') . $firstName . ($middleName != '' ? " $middleName" : '');
- }
- $userDao->update(
- "INSERT INTO user_settings (user_id, locale, setting_name, setting_value, setting_type) VALUES (?, ?, 'preferredPublicName', ?, 'string')",
- [(int) $userId, $siteLocale, $preferredPublicName]
- );
- }
- }
-
- // author suffix will be migrated to the author preferred public name
- // author preferred public names will be inserted for each press supported locale
- // get supported locales for the press (there shold actually be only one press)
- $pressDao = DAORegistry::getDAO('PressDAO'); /* @var $pressDao PressDAO */
- $presses = $pressDao->getAll();
- $pressessSupportedLocales = [];
- while ($press = $presses->next()) {
- $pressessSupportedLocales[$press->getId()] = $press->getSupportedLocales();
- }
- // get all authors with a suffix
- $authorResult = $userDao->retrieve(
- "SELECT a.author_id, a.first_name, a.last_name, a.middle_name, a.suffix, p.press_id FROM authors_tmp a
- LEFT JOIN submissions s ON (s.submission_id = a.submission_id)
- LEFT JOIN presses p ON (p.press_id = s.context_id)
- WHERE suffix IS NOT NULL AND suffix <> ''"
- );
- foreach ($authorResult as $row) {
- $authorId = $row->author_id;
- $firstName = $row->first_name;
- $lastName = $row->last_name;
- $middleName = $row->middle_name;
- $suffix = $row->suffix;
- $pressId = $row->press_id;
- $supportedLocales = $pressessSupportedLocales[$pressId];
- foreach ($supportedLocales as $locale) {
- $preferredPublicName = "$firstName " . ($middleName != '' ? "$middleName " : '') . $lastName . ($suffix != '' ? ", $suffix" : '');
- if (AppLocale::isLocaleWithFamilyFirst($locale)) {
- $preferredPublicName = "$lastName, " . $firstName . ($middleName != '' ? " $middleName" : '');
- }
- $userDao->update(
- "INSERT INTO author_settings (author_id, locale, setting_name, setting_value, setting_type) VALUES (?, ?, 'preferredPublicName', ?, 'string')",
- [(int) $authorId, $locale, $preferredPublicName]
- );
- }
- }
-
- // remove temporary table
- $siteDao->update('DROP TABLE users_tmp');
- $siteDao->update('DROP TABLE authors_tmp');
- return true;
- }
-
- /**
- * Update permit_metadata_edit and can_change_metadata for user_groups and stage_assignments tables.
- *
- * @return boolean True indicates success.
- */
- function changeUserRolesAndStageAssignmentsForStagePermitSubmissionEdit() {
- $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); /** @var $stageAssignmentDao StageAssignmentDAO */
- $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); /** @var $userGroupDao UserGroupDAO */
-
- $roles = UserGroupDAO::getNotChangeMetadataEditPermissionRoles();
- $roleString = '(' . implode(",", $roles) . ')';
-
- $userGroupDao->update('UPDATE user_groups SET permit_metadata_edit = 1 WHERE role_id IN ' . $roleString);
- switch (Config::getVar('database', 'driver')) {
- case 'mysql':
- case 'mysqli':
- $stageAssignmentDao->update('UPDATE stage_assignments sa JOIN user_groups ug on sa.user_group_id = ug.user_group_id SET sa.can_change_metadata = 1 WHERE ug.role_id IN ' . $roleString);
- break;
- case 'postgres':
- case 'postgres64':
- case 'postgres7':
- case 'postgres8':
- case 'postgres9':
- $stageAssignmentDao->update('UPDATE stage_assignments sa SET can_change_metadata=1 FROM user_groups ug WHERE sa.user_group_id = ug.user_group_id AND ug.role_id IN ' . $roleString);
- break;
- default: throw new Exception("Unknown database type!");
- }
-
- return true;
- }
-
- /**
- * Update how submission cover images are stored
- *
- * 1. Move the cover images into /public and rename them.
- *
- * 2. Change the coverImage setting to a multilingual setting
- * stored under the submission_settings table, which will
- * be migrated to the publication_settings table once it
- * is created.
- */
- function migrateSubmissionCoverImages() {
- import('lib.pkp.classes.file.FileManager');
- import('classes.file.PublicFileManager');
-
- $fileManager = new \FileManager();
- $publicFileManager = new \PublicFileManager();
- $contexts = [];
-
- $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
- $result = $submissionDao->retrieve(
- 'SELECT ps.submission_id as submission_id,
- ps.cover_image as cover_image,
- s.context_id as context_id
- FROM published_submissions ps
- LEFT JOIN submissions s ON (s.submission_id = ps.submission_id)'
- );
- foreach ($result as $row) {
- if (empty($row->cover_image)) continue;
- $coverImage = unserialize($row->cover_image);
- if (empty($coverImage)) continue;
-
- if (!isset($contexts[$row->context_id])) {
- $contexts[$row->context_id] = Services::get('context')->get($row->context_id);
- };
- $context = $contexts[$row->context_id];
-
- // Get existing image paths
- $basePath = Services::get('submissionFile')->getSubmissionDir($row->context_id, $row->submission_id);
- $coverPath = Config::getVar('files', 'files_dir') . '/' . $basePath . '/simple/' . $coverImage['name'];
- $coverPathInfo = pathinfo($coverPath);
- $thumbPath = Config::getVar('files', 'files_dir') . '/' . $basePath . '/simple/' . $coverImage['thumbnailName'];
- $thumbPathInfo = pathinfo($thumbPath);
-
- // Copy the files to the public directory
- $newCoverPath = join('_', [
- 'submission',
- $row->submission_id,
- $row->submission_id,
- 'coverImage',
- ]) . '.' . $coverPathInfo['extension'];
- $publicFileManager->copyContextFile(
- $row->context_id,
- $coverPath,
- $newCoverPath
- );
- $newThumbPath = join('_', [
- 'submission',
- $row->submission_id,
- $row->submission_id,
- 'coverImage',
- 't'
- ]) . '.' . $thumbPathInfo['extension'];
- $publicFileManager->copyContextFile(
- $row->context_id,
- $thumbPath,
- $newThumbPath
- );
-
- // Create a submission_settings entry for each locale
- if(isset($context)) {
- foreach ($context->getSupportedFormLocales() as $localeKey) {
- $newCoverPathInfo = pathinfo($newCoverPath);
- $submissionDao = DAORegistry::getDAO('SubmissionDAO');
- /* @var $submissionDao SubmissionDAO */
- $submissionDao->update(
- 'INSERT INTO submission_settings (submission_id, setting_name, setting_value, setting_type, locale)
- VALUES (?, ?, ?, ?, ?)',
- [
- $row->submission_id,
- 'coverImage',
- serialize([
- 'uploadName' => $newCoverPathInfo['basename'],
- 'dateUploaded' => $coverImage['dateUploaded'],
- 'altText' => '',
- ]),
- 'object',
- $localeKey,
- ]
- );
- }
- }
-
- // Delete the old images
- $fileManager->deleteByPath($coverPath);
- $fileManager->deleteByPath($thumbPath);
- }
-
- return true;
- }
-
- /**
- * Get the directory of a file based on its file stage
- *
- * @param int $fileStage ONe of SUBMISSION_FILE_ constants
- * @return string
- */
- function _fileStageToPath($fileStage) {
- import('lib.pkp.classes.submission.SubmissionFile');
- static $fileStagePathMap = [
- SUBMISSION_FILE_SUBMISSION => 'submission',
- SUBMISSION_FILE_NOTE => 'note',
- SUBMISSION_FILE_REVIEW_FILE => 'submission/review',
- SUBMISSION_FILE_REVIEW_ATTACHMENT => 'submission/review/attachment',
- SUBMISSION_FILE_REVIEW_REVISION => 'submission/review/revision',
- SUBMISSION_FILE_FINAL => 'submission/final',
- SUBMISSION_FILE_COPYEDIT => 'submission/copyedit',
- SUBMISSION_FILE_DEPENDENT => 'submission/proof',
- SUBMISSION_FILE_PROOF => 'submission/proof',
- SUBMISSION_FILE_PRODUCTION_READY => 'submission/productionReady',
- SUBMISSION_FILE_ATTACHMENT => 'attachment',
- SUBMISSION_FILE_QUERY => 'submission/query',
- ];
-
- if (!isset($fileStagePathMap[$fileStage])) {
- throw new Exception('A file assigned to the file stage ' . $fileStage . ' could not be migrated.');
- }
-
- return $fileStagePathMap[$fileStage];
- }
-}
-
-
diff --git a/classes/install/Upgrade.php b/classes/install/Upgrade.php
new file mode 100644
index 00000000000..172d2fc7254
--- /dev/null
+++ b/classes/install/Upgrade.php
@@ -0,0 +1,366 @@
+ 'pressName',
+ 'contextUrl' => 'pressUrl',
+ 'contextSignature' => 'pressSignature',
+ ];
+
+ /**
+ * Constructor.
+ *
+ * @param array $params upgrade parameters
+ */
+ public function __construct($params, $installFile = 'upgrade.xml', $isPlugin = false)
+ {
+ parent::__construct($installFile, $params, $isPlugin);
+ }
+
+
+ /**
+ * Returns true iff this is an upgrade process.
+ *
+ * @return bool
+ */
+ public function isUpgrade()
+ {
+ return true;
+ }
+
+
+ //
+ // Specific upgrade actions
+ //
+ /**
+ * If StaticPages table exists we should port the data as NMIs
+ *
+ * @return bool
+ */
+ public function migrateStaticPagesToNavigationMenuItems()
+ {
+ if ($this->tableExists('static_pages')) {
+ $contextDao = Application::getContextDAO();
+ $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /** @var NavigationMenuItemDAO $navigationMenuItemDao */
+
+ $staticPagesDao = new \APP\plugins\generic\staticPages\classes\StaticPagesDAO();
+
+ $contexts = $contextDao->getAll();
+ while ($context = $contexts->next()) {
+ $contextStaticPages = $staticPagesDao->getByContextId($context->getId())->toAssociativeArray();
+ foreach ($contextStaticPages as $staticPage) {
+ $retNMIId = $navigationMenuItemDao->portStaticPage($staticPage);
+ if ($retNMIId) {
+ $staticPagesDao->deleteById($staticPage->getId());
+ } else {
+ error_log('WARNING: The StaticPage "' . $staticPage->getLocalizedTitle() . '" uses a path (' . $staticPage->getPath() . ') that conflicts with an existing Custom Navigation Menu Item path. Skipping this StaticPage.');
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Migrate first and last user names as multilingual into the DB table user_settings.
+ *
+ * @return bool
+ */
+ public function migrateUserAndAuthorNames()
+ {
+ // the user names will be saved in the site's primary locale
+ DB::update("INSERT INTO user_settings (user_id, locale, setting_name, setting_value, setting_type) SELECT DISTINCT u.user_id, s.primary_locale, ?, u.first_name, 'string' FROM users_tmp u, site s", [Identity::IDENTITY_SETTING_GIVENNAME]);
+ DB::update("INSERT INTO user_settings (user_id, locale, setting_name, setting_value, setting_type) SELECT DISTINCT u.user_id, s.primary_locale, ?, u.last_name, 'string' FROM users_tmp u, site s", [Identity::IDENTITY_SETTING_FAMILYNAME]);
+ // the author names will be saved in the submission's primary locale
+ DB::update("INSERT INTO author_settings (author_id, locale, setting_name, setting_value, setting_type) SELECT DISTINCT a.author_id, s.locale, ?, a.first_name, 'string' FROM authors_tmp a, submissions s WHERE s.submission_id = a.submission_id", [Identity::IDENTITY_SETTING_GIVENNAME]);
+ DB::update("INSERT INTO author_settings (author_id, locale, setting_name, setting_value, setting_type) SELECT DISTINCT a.author_id, s.locale, ?, a.last_name, 'string' FROM authors_tmp a, submissions s WHERE s.submission_id = a.submission_id", [Identity::IDENTITY_SETTING_FAMILYNAME]);
+
+ // middle name will be migrated to the given name
+ // note that given names are already migrated to the settings table
+ switch (Config::getVar('database', 'driver')) {
+ case 'mysql':
+ case 'mysqli':
+ // the alias for _settings table cannot be used for some reason -- syntax error
+ DB::update("UPDATE user_settings, users_tmp u SET user_settings.setting_value = CONCAT(user_settings.setting_value, ' ', u.middle_name) WHERE user_settings.setting_name = ? AND u.user_id = user_settings.user_id AND u.middle_name IS NOT NULL AND u.middle_name <> ''", [Identity::IDENTITY_SETTING_GIVENNAME]);
+ DB::update("UPDATE author_settings, authors_tmp a SET author_settings.setting_value = CONCAT(author_settings.setting_value, ' ', a.middle_name) WHERE author_settings.setting_name = ? AND a.author_id = author_settings.author_id AND a.middle_name IS NOT NULL AND a.middle_name <> ''", [Identity::IDENTITY_SETTING_GIVENNAME]);
+ break;
+ case 'postgres':
+ case 'postgres64':
+ case 'postgres7':
+ case 'postgres8':
+ case 'postgres9':
+ DB::update("UPDATE user_settings SET setting_value = CONCAT(setting_value, ' ', u.middle_name) FROM users_tmp u WHERE user_settings.setting_name = ? AND u.user_id = user_settings.user_id AND u.middle_name IS NOT NULL AND u.middle_name <> ''", [Identity::IDENTITY_SETTING_GIVENNAME]);
+ DB::update("UPDATE author_settings SET setting_value = CONCAT(setting_value, ' ', a.middle_name) FROM authors_tmp a WHERE author_settings.setting_name = ? AND a.author_id = author_settings.author_id AND a.middle_name IS NOT NULL AND a.middle_name <> ''", [Identity::IDENTITY_SETTING_GIVENNAME]);
+ break;
+ default: throw new Exception('Unknown database type!');
+ }
+
+ // salutation and suffix will be migrated to the preferred public name
+ // user preferred public names will be inserted for each supported site locales
+ $siteDao = DAORegistry::getDAO('SiteDAO'); /** @var SiteDAO $siteDao */
+ $site = $siteDao->getSite();
+ $supportedLocales = $site->getSupportedLocales();
+ $userResult = DB::select(
+ "SELECT user_id, first_name, last_name, middle_name, salutation, suffix FROM users_tmp
+ WHERE (salutation IS NOT NULL AND salutation <> '') OR
+ (suffix IS NOT NULL AND suffix <> '')"
+ );
+ foreach ($userResult as $row) {
+ $userId = $row->user_id;
+ $firstName = $row->first_name;
+ $lastName = $row->last_name;
+ $middleName = $row->middle_name;
+ $salutation = $row->salutation;
+ $suffix = $row->suffix;
+ foreach ($supportedLocales as $siteLocale) {
+ $preferredPublicName = ($salutation != '' ? "{$salutation} " : '') . "{$firstName} " . ($middleName != '' ? "{$middleName} " : '') . $lastName . ($suffix != '' ? ", {$suffix}" : '');
+ DB::update(
+ "INSERT INTO user_settings (user_id, locale, setting_name, setting_value, setting_type) VALUES (?, ?, 'preferredPublicName', ?, 'string')",
+ [(int) $userId, $siteLocale, $preferredPublicName]
+ );
+ }
+ }
+
+ // author suffix will be migrated to the author preferred public name
+ // author preferred public names will be inserted for each press supported locale
+ // get supported locales for the press (there should actually be only one press)
+ $pressDao = DAORegistry::getDAO('PressDAO'); /** @var PressDAO $pressDao */
+ $presses = $pressDao->getAll();
+ $pressessSupportedLocales = [];
+ while ($press = $presses->next()) {
+ $pressessSupportedLocales[$press->getId()] = $press->getSupportedLocales();
+ }
+ // get all authors with a suffix
+ $authorResult = DB::select(
+ "SELECT a.author_id, a.first_name, a.last_name, a.middle_name, a.suffix, p.press_id FROM authors_tmp a
+ LEFT JOIN submissions s ON (s.submission_id = a.submission_id)
+ LEFT JOIN presses p ON (p.press_id = s.context_id)
+ WHERE suffix IS NOT NULL AND suffix <> ''"
+ );
+ foreach ($authorResult as $row) {
+ $authorId = $row->author_id;
+ $firstName = $row->first_name;
+ $lastName = $row->last_name;
+ $middleName = $row->middle_name;
+ $suffix = $row->suffix;
+ $pressId = $row->press_id;
+ $supportedLocales = $pressessSupportedLocales[$pressId];
+ foreach ($supportedLocales as $locale) {
+ $preferredPublicName = "{$firstName} " . ($middleName != '' ? "{$middleName} " : '') . $lastName . ($suffix != '' ? ", {$suffix}" : '');
+ DB::update(
+ "INSERT INTO author_settings (author_id, locale, setting_name, setting_value, setting_type) VALUES (?, ?, 'preferredPublicName', ?, 'string')",
+ [(int) $authorId, $locale, $preferredPublicName]
+ );
+ }
+ }
+
+ // remove temporary table
+ $siteDao->update('DROP TABLE users_tmp');
+ $siteDao->update('DROP TABLE authors_tmp');
+ return true;
+ }
+
+ /**
+ * Update permit_metadata_edit and can_change_metadata for user_groups and stage_assignments tables.
+ *
+ * @return bool True indicates success.
+ */
+ public function changeUserRolesAndStageAssignmentsForStagePermitSubmissionEdit()
+ {
+ $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); /** @var StageAssignmentDAO $stageAssignmentDao */
+
+ $roles = Repo::userGroup()::NOT_CHANGE_METADATA_EDIT_PERMISSION_ROLES;
+ $roleString = '(' . implode(',', $roles) . ')';
+
+ DB::table('user_groups')
+ ->whereIn('role_id', $roles)
+ ->update(['permit_metadata_edit' => 1]);
+
+ switch (Config::getVar('database', 'driver')) {
+ case 'mysql':
+ case 'mysqli':
+ $stageAssignmentDao->update('UPDATE stage_assignments sa JOIN user_groups ug on sa.user_group_id = ug.user_group_id SET sa.can_change_metadata = 1 WHERE ug.role_id IN ' . $roleString);
+ break;
+ case 'postgres':
+ case 'postgres64':
+ case 'postgres7':
+ case 'postgres8':
+ case 'postgres9':
+ $stageAssignmentDao->update('UPDATE stage_assignments sa SET can_change_metadata=1 FROM user_groups ug WHERE sa.user_group_id = ug.user_group_id AND ug.role_id IN ' . $roleString);
+ break;
+ default: throw new Exception('Unknown database type!');
+ }
+
+ return true;
+ }
+
+ /**
+ * Update how submission cover images are stored
+ *
+ * 1. Move the cover images into /public and rename them.
+ *
+ * 2. Change the coverImage setting to a multilingual setting
+ * stored under the submission_settings table, which will
+ * be migrated to the publication_settings table once it
+ * is created.
+ */
+ public function migrateSubmissionCoverImages()
+ {
+ $fileManager = new FileManager();
+ $publicFileManager = new PublicFileManager();
+ $contexts = [];
+
+ $result = Repo::submission()->dao->deprecatedDao->retrieve(
+ 'SELECT ps.submission_id as submission_id,
+ ps.cover_image as cover_image,
+ s.context_id as context_id
+ FROM published_submissions ps
+ LEFT JOIN submissions s ON (s.submission_id = ps.submission_id)'
+ );
+ foreach ($result as $row) {
+ if (empty($row->cover_image)) {
+ continue;
+ }
+ $coverImage = unserialize($row->cover_image);
+ if (empty($coverImage)) {
+ continue;
+ }
+
+ if (!isset($contexts[$row->context_id])) {
+ $contexts[$row->context_id] = Services::get('context')->get($row->context_id);
+ };
+ $context = $contexts[$row->context_id];
+
+ // Get existing image paths
+ $basePath = Repo::submissionFile()
+ ->getSubmissionDir($row->context_id, $row->submission_id);
+ $coverPath = Config::getVar('files', 'files_dir') . '/' . $basePath . '/simple/' . $coverImage['name'];
+ $coverPathInfo = pathinfo($coverPath);
+ $thumbPath = Config::getVar('files', 'files_dir') . '/' . $basePath . '/simple/' . $coverImage['thumbnailName'];
+ $thumbPathInfo = pathinfo($thumbPath);
+
+ // Copy the files to the public directory
+ $newCoverPath = join('_', [
+ 'submission',
+ $row->submission_id,
+ $row->submission_id,
+ 'coverImage',
+ ]) . '.' . $coverPathInfo['extension'];
+ $publicFileManager->copyContextFile(
+ $row->context_id,
+ $coverPath,
+ $newCoverPath
+ );
+ $newThumbPath = join('_', [
+ 'submission',
+ $row->submission_id,
+ $row->submission_id,
+ 'coverImage',
+ 't'
+ ]) . '.' . $thumbPathInfo['extension'];
+ $publicFileManager->copyContextFile(
+ $row->context_id,
+ $thumbPath,
+ $newThumbPath
+ );
+
+ // Create a submission_settings entry for each locale
+ if (isset($context)) {
+ foreach ($context->getSupportedFormLocales() as $localeKey) {
+ $newCoverPathInfo = pathinfo($newCoverPath);
+ Repo::submission()->dao->deprecatedDao->update(
+ 'INSERT INTO submission_settings (submission_id, setting_name, setting_value, setting_type, locale)
+ VALUES (?, ?, ?, ?, ?)',
+ [
+ $row->submission_id,
+ 'coverImage',
+ serialize([
+ 'uploadName' => $newCoverPathInfo['basename'],
+ 'dateUploaded' => $coverImage['dateUploaded'],
+ 'altText' => '',
+ ]),
+ 'object',
+ $localeKey,
+ ]
+ );
+ }
+ }
+
+ // Delete the old images
+ $fileManager->deleteByPath($coverPath);
+ $fileManager->deleteByPath($thumbPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Get the directory of a file based on its file stage
+ *
+ * @param int $fileStage One of SubmissionFile::SUBMISSION_FILE_ constants
+ *
+ * @return string
+ */
+ public function _fileStageToPath($fileStage)
+ {
+ static $fileStagePathMap = [
+ SubmissionFile::SUBMISSION_FILE_SUBMISSION => 'submission',
+ SubmissionFile::SUBMISSION_FILE_NOTE => 'note',
+ SubmissionFile::SUBMISSION_FILE_REVIEW_FILE => 'submission/review',
+ SubmissionFile::SUBMISSION_FILE_REVIEW_ATTACHMENT => 'submission/review/attachment',
+ SubmissionFile::SUBMISSION_FILE_REVIEW_REVISION => 'submission/review/revision',
+ SubmissionFile::SUBMISSION_FILE_FINAL => 'submission/final',
+ SubmissionFile::SUBMISSION_FILE_COPYEDIT => 'submission/copyedit',
+ SubmissionFile::SUBMISSION_FILE_DEPENDENT => 'submission/proof',
+ SubmissionFile::SUBMISSION_FILE_PROOF => 'submission/proof',
+ SubmissionFile::SUBMISSION_FILE_PRODUCTION_READY => 'submission/productionReady',
+ SubmissionFile::SUBMISSION_FILE_ATTACHMENT => 'attachment',
+ SubmissionFile::SUBMISSION_FILE_QUERY => 'submission/query',
+ ];
+
+ if (!isset($fileStagePathMap[$fileStage])) {
+ throw new Exception('A file assigned to the file stage ' . $fileStage . ' could not be migrated.');
+ }
+
+ return $fileStagePathMap[$fileStage];
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\install\Upgrade', '\Upgrade');
+}
diff --git a/classes/log/MonographFileEmailLogDAO.inc.php b/classes/log/MonographFileEmailLogDAO.inc.php
deleted file mode 100644
index cbc19450869..00000000000
--- a/classes/log/MonographFileEmailLogDAO.inc.php
+++ /dev/null
@@ -1,43 +0,0 @@
-setAssocType(ASSOC_TYPE_SUBMISSION_FILE);
- return $returner;
- }
-
- /**
- * Get monograph file email log entries by file ID and event type.
- * @param $fileId int
- * @param $eventType int SUBMISSION_EMAIL_...
- * @param $userId int optional Return only emails sent to this user.
- * @return DAOResultFactory
- */
- function getByEventType($fileId, $eventType, $userId = null) {
- return parent::_getByEventType(ASSOC_TYPE_SUBMISSION_FILE, $fileId, $eventType, $userId);
- }
-}
-
-
diff --git a/classes/log/MonographFileEmailLogDAO.php b/classes/log/MonographFileEmailLogDAO.php
new file mode 100644
index 00000000000..ab1cd656b8a
--- /dev/null
+++ b/classes/log/MonographFileEmailLogDAO.php
@@ -0,0 +1,57 @@
+setAssocType(Application::ASSOC_TYPE_SUBMISSION_FILE);
+ return $returner;
+ }
+
+ /**
+ * Get monograph file email log entries by file ID and event type.
+ *
+ * @param int $fileId
+ * @param int $eventType SUBMISSION_EMAIL_...
+ * @param int $userId optional Return only emails sent to this user.
+ *
+ * @return DAOResultFactory
+ */
+ public function getByEventType($fileId, $eventType, $userId = null)
+ {
+ return parent::_getByEventType(Application::ASSOC_TYPE_SUBMISSION_FILE, $fileId, $eventType, $userId);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\log\MonographFileEmailLogDAO', '\MonographFileEmailLogDAO');
+}
diff --git a/classes/log/MonographFileEmailLogEntry.inc.php b/classes/log/MonographFileEmailLogEntry.inc.php
deleted file mode 100644
index a8554fc24c3..00000000000
--- a/classes/log/MonographFileEmailLogEntry.inc.php
+++ /dev/null
@@ -1,37 +0,0 @@
-setAssocId($fileId);
- }
-
- function getFileId() {
- return $this->getAssocId();
- }
-
-}
-
-
diff --git a/classes/log/MonographFileEmailLogEntry.php b/classes/log/MonographFileEmailLogEntry.php
new file mode 100644
index 00000000000..b61a0b13ca9
--- /dev/null
+++ b/classes/log/MonographFileEmailLogEntry.php
@@ -0,0 +1,38 @@
+setAssocId($fileId);
+ }
+
+ public function getFileId()
+ {
+ return $this->getAssocId();
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\log\MonographFileEmailLogEntry', '\MonographFileEmailLogEntry');
+}
diff --git a/classes/log/SubmissionEventLogEntry.inc.php b/classes/log/SubmissionEventLogEntry.inc.php
deleted file mode 100644
index 610e969f6cf..00000000000
--- a/classes/log/SubmissionEventLogEntry.inc.php
+++ /dev/null
@@ -1,34 +0,0 @@
-submission;
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $series = $seriesDao->getById($submission->getSeriesId());
- $paramArray['seriesPath'] = $series ? htmlspecialchars($series->getPath()) : '';
- $paramArray['seriesName'] = $series ? htmlspecialchars($series->getLocalizedTitle()) : '';
- parent::assignParams($paramArray);
- }
-
- /**
- * Send this email to all assigned series editors in the given stage
- * @param $submissionId int
- * @param $stageId int
- */
- function toAssignedSeriesEditors($submissionId, $stageId) {
- return $this->toAssignedSubEditors($submissionId, $stageId);
- }
-
- /**
- * CC this email to all assigned series editors in the given stage
- * @param $submissionId int
- * @param $stageId int
- * @return array of Users (note, this differs from OxS which returns EditAssignment objects)
- */
- function ccAssignedSeriesEditors($submissionId, $stageId) {
- return $this->ccAssignedSubEditors($submissionId, $stageId);
- }
-
- /**
- * BCC this email to all assigned series editors in the given stage
- * @param $submissionId int
- * @param $stageId int
- */
- function bccAssignedSeriesEditors($submissionId, $stageId) {
- return $this->bccAssignedSubEditors($submissionId, $stageId);
- }
-}
-
-
diff --git a/classes/mail/Repository.php b/classes/mail/Repository.php
new file mode 100644
index 00000000000..f9213f6deae
--- /dev/null
+++ b/classes/mail/Repository.php
@@ -0,0 +1,29 @@
+merge(collect([
+ mailables\DecisionSendInternalReviewNotifyAuthor::class,
+ ]));
+ }
+}
diff --git a/classes/mail/mailables/DecisionSendInternalReviewNotifyAuthor.php b/classes/mail/mailables/DecisionSendInternalReviewNotifyAuthor.php
new file mode 100644
index 00000000000..8f647234339
--- /dev/null
+++ b/classes/mail/mailables/DecisionSendInternalReviewNotifyAuthor.php
@@ -0,0 +1,32 @@
+ __('emailTemplate.variable.context.contextAcronym'),
+ ]
+ );
+ }
+
+ /**
+ * @copydoc Variable::values()
+ */
+ public function values(string $locale): array
+ {
+ $values = parent::values($locale);
+
+ // Pass the values into the context signature so variables
+ // used in the signature can be rendered.
+ $values[static::CONTEXT_SIGNATURE] = $this->getContextSignature($values);
+ $values[static::CONTEXT_ACRONYM] = htmlspecialchars($this->context->getLocalizedData('acronym'));
+
+ return $values;
+ }
+}
diff --git a/classes/mail/variables/SubmissionEmailVariable.php b/classes/mail/variables/SubmissionEmailVariable.php
new file mode 100644
index 00000000000..5983f5edc08
--- /dev/null
+++ b/classes/mail/variables/SubmissionEmailVariable.php
@@ -0,0 +1,35 @@
+getDispatcher()->url(
+ Application::get()->getRequest(),
+ Application::ROUTE_PAGE,
+ $context->getPath(),
+ 'catalog',
+ 'book',
+ $this->submission->getBestId()
+ );
+ }
+}
diff --git a/classes/migration/OMPMigration.inc.php b/classes/migration/OMPMigration.inc.php
deleted file mode 100644
index e51bfaa0639..00000000000
--- a/classes/migration/OMPMigration.inc.php
+++ /dev/null
@@ -1,326 +0,0 @@
-create('identification_codes', function (Blueprint $table) {
- $table->bigInteger('identification_code_id')->autoIncrement();
- $table->bigInteger('publication_format_id');
- $table->string('code', 40);
- $table->string('value', 255);
- $table->index(['identification_code_id', 'publication_format_id', 'code'], 'identification_codes_key');
- });
-
- Capsule::schema()->create('publication_dates', function (Blueprint $table) {
- $table->bigInteger('publication_date_id')->autoIncrement();
- $table->bigInteger('publication_format_id');
- $table->string('role', 40);
- $table->string('date_format', 40);
- $table->string('date', 255);
- $table->index(['publication_date_id', 'publication_format_id', 'role'], 'format_publication_dates_pkey');
- });
-
- Capsule::schema()->create('sales_rights', function (Blueprint $table) {
- $table->bigInteger('sales_rights_id')->autoIncrement();
- $table->bigInteger('publication_format_id');
- $table->string('type', 40);
- // ROW is 'rest of world'. ROW sales types have no territories assigned to them
- $table->smallInteger('row_setting')->default(0);
- $table->text('countries_included')->nullable();
- $table->text('countries_excluded')->nullable();
- $table->text('regions_included')->nullable();
- $table->text('regions_excluded')->nullable();
- $table->index(['sales_rights_id', 'publication_format_id'], 'format_sales_rights_pkey');
- });
-
- Capsule::schema()->create('markets', function (Blueprint $table) {
- $table->bigInteger('market_id')->autoIncrement();
- $table->bigInteger('publication_format_id');
- $table->text('countries_included')->nullable();
- $table->text('countries_excluded')->nullable();
- $table->text('regions_included')->nullable();
- $table->text('regions_excluded')->nullable();
- $table->string('market_date_role', 40);
- $table->string('market_date_format', 40);
- $table->string('market_date', 255);
- $table->string('price', 255)->nullable();
- $table->string('discount', 255)->nullable();
- $table->string('price_type_code', 255)->nullable();
- $table->string('currency_code', 255)->nullable();
- $table->string('tax_rate_code', 255)->nullable();
- $table->string('tax_type_code', 255)->nullable();
- $table->bigInteger('agent_id')->nullable();
- $table->bigInteger('supplier_id')->nullable();
- $table->index(['market_id', 'publication_format_id'], 'format_markets_pkey');
- });
-
- Capsule::schema()->create('representatives', function (Blueprint $table) {
- $table->bigInteger('representative_id')->autoIncrement();
- $table->bigInteger('submission_id');
- $table->string('role', 40);
- $table->string('representative_id_type', 255)->nullable();
- $table->string('representative_id_value', 255)->nullable();
- $table->string('name', 255)->nullable();
- $table->string('phone', 255)->nullable();
- $table->string('email', 255)->nullable();
- $table->string('url', 2047)->nullable();
- $table->smallInteger('is_supplier')->default(1);
- $table->index(['representative_id', 'submission_id'], 'format_representatives_pkey');
- });
-
- Capsule::schema()->create('features', function (Blueprint $table) {
- $table->bigInteger('submission_id');
- $table->bigInteger('assoc_type');
- $table->bigInteger('assoc_id');
- $table->bigInteger('seq');
- $table->unique(['assoc_type', 'assoc_id', 'submission_id'], 'press_features_pkey');
- });
-
- Capsule::schema()->create('new_releases', function (Blueprint $table) {
- $table->bigInteger('submission_id');
- $table->bigInteger('assoc_type');
- $table->bigInteger('assoc_id');
- $table->unique(['assoc_type', 'assoc_id', 'submission_id'], 'new_releases_pkey');
- });
-
- // Press series.
- Capsule::schema()->create('series', function (Blueprint $table) {
- $table->bigInteger('series_id')->autoIncrement();
- $table->bigInteger('press_id');
- $table->bigInteger('review_form_id')->nullable();
- // NOTNULL not included for the sake of 1.1 upgrade, which didn't include this column
- $table->float('seq', 8, 2)->default(0)->nullable();
- $table->smallInteger('featured')->default(0);
- $table->smallInteger('editor_restricted')->default(0);
- $table->string('path', 255);
- $table->text('image')->nullable();
- $table->smallInteger('is_inactive')->default(0);
- $table->index(['press_id'], 'series_press_id');
- $table->unique(['press_id', 'path'], 'series_path');
- });
-
- // Series-specific settings
- Capsule::schema()->create('series_settings', function (Blueprint $table) {
- $table->bigInteger('series_id');
- $table->string('locale', 14)->default('');
- $table->string('setting_name', 255);
- $table->text('setting_value')->nullable();
- $table->string('setting_type', 6)->comment('(bool|int|float|string|object)');
- $table->unique(['series_id', 'locale', 'setting_name'], 'series_settings_pkey');
- });
-
- // Associations for categories within a series.
- Capsule::schema()->create('series_categories', function (Blueprint $table) {
- $table->bigInteger('series_id');
- $table->bigInteger('category_id');
- $table->unique(['series_id', 'category_id'], 'series_categories_id');
- });
-
- // Publications
- Capsule::schema()->create('publications', function (Blueprint $table) {
- $table->bigInteger('publication_id')->autoIncrement();
- $table->date('date_published')->nullable();
- $table->datetime('last_modified')->nullable();
- $table->string('locale', 14)->nullable();
- $table->bigInteger('primary_contact_id')->nullable();
- $table->string('publication_date_type', 32)->default('pub')->nullable();
- // PUBLICATION_TYPE_PUBLICATION
- $table->string('publication_type', 32)->default('publication')->nullable();
- $table->float('seq', 8, 2)->default(0);
- $table->bigInteger('series_id')->nullable();
- $table->string('series_position', 255)->nullable();
- $table->bigInteger('submission_id');
- $table->smallInteger('status')->default(1);
- $table->string('url_path', 64)->nullable();
- $table->bigInteger('version')->nullable();
- $table->index(['submission_id'], 'publications_submission_id');
- $table->index(['series_id'], 'publications_section_id');
- });
-
- // Publication formats assigned to published submissions
- Capsule::schema()->create('publication_formats', function (Blueprint $table) {
- $table->bigInteger('publication_format_id')->autoIncrement();
- $table->bigInteger('publication_id');
- // DEPRECATED: Held over for the OJS 2.x to 3. upgrade process pkp/pkp-lib#3572
- $table->bigInteger('submission_id')->nullable();
- $table->smallInteger('physical_format')->default(1)->nullable();
- $table->string('entry_key', 64)->nullable();
- $table->float('seq', 8, 2)->default(0);
- $table->string('file_size', 255)->nullable();
- $table->string('front_matter', 255)->nullable();
- $table->string('back_matter', 255)->nullable();
- $table->string('height', 255)->nullable();
- $table->string('height_unit_code', 255)->nullable();
- $table->string('width', 255)->nullable();
- $table->string('width_unit_code', 255)->nullable();
- $table->string('thickness', 255)->nullable();
- $table->string('thickness_unit_code', 255)->nullable();
- $table->string('weight', 255)->nullable();
- $table->string('weight_unit_code', 255)->nullable();
- $table->string('product_composition_code', 255)->nullable();
- $table->string('product_form_detail_code', 255)->nullable();
- $table->string('country_manufacture_code', 255)->nullable();
- $table->string('imprint', 255)->nullable();
- $table->string('product_availability_code', 255)->nullable();
- $table->string('technical_protection_code', 255)->nullable();
- $table->string('returnable_indicator_code', 255)->nullable();
- $table->string('remote_url', 2047)->nullable();
- $table->string('url_path', 64)->nullable();
- $table->smallInteger('is_approved')->default(0);
- $table->smallInteger('is_available')->default(0);
- $table->index(['submission_id'], 'publication_format_submission_id');
- });
-
- // Publication Format metadata.
- Capsule::schema()->create('publication_format_settings', function (Blueprint $table) {
- $table->bigInteger('publication_format_id');
- $table->string('locale', 14)->default('');
- $table->string('setting_name', 255);
- $table->text('setting_value')->nullable();
- $table->string('setting_type', 6)->comment('(bool|int|float|string|object)');
- $table->index(['publication_format_id'], 'publication_format_id_key');
- $table->unique(['publication_format_id', 'locale', 'setting_name'], 'publication_format_settings_pkey');
- });
-
- Capsule::schema()->create('submission_chapters', function (Blueprint $table) {
- $table->bigInteger('chapter_id')->autoIncrement();
- $table->bigInteger('primary_contact_id')->nullable();
- $table->bigInteger('publication_id');
- $table->float('seq', 8, 2)->default(0);
- $table->index(['chapter_id'], 'chapters_chapter_id');
- $table->index(['publication_id'], 'chapters_publication_id');
- });
-
- // Language dependent monograph chapter metadata.
- Capsule::schema()->create('submission_chapter_settings', function (Blueprint $table) {
- $table->bigInteger('chapter_id');
- $table->string('locale', 14)->default('');
- $table->string('setting_name', 255);
- $table->text('setting_value')->nullable();
- $table->string('setting_type', 6)->comment('(bool|int|float|string|object)');
- $table->index(['chapter_id'], 'submission_chapter_settings_chapter_id');
- $table->unique(['chapter_id', 'locale', 'setting_name'], 'submission_chapter_settings_pkey');
- });
-
- Capsule::schema()->create('submission_chapter_authors', function (Blueprint $table) {
- $table->bigInteger('author_id');
- $table->bigInteger('chapter_id');
- $table->smallInteger('primary_contact')->default(0);
- $table->float('seq', 8, 2)->default(0);
- $table->unique(['author_id', 'chapter_id'], 'chapter_authors_pkey');
- });
-
- // Presses and basic press settings.
- Capsule::schema()->create('presses', function (Blueprint $table) {
- $table->bigInteger('press_id')->autoIncrement();
- $table->string('path', 32);
- $table->float('seq', 8, 2)->default(0);
- $table->string('primary_locale', 14);
- $table->smallInteger('enabled')->default(1);
- $table->unique(['path'], 'press_path');
- });
-
- // Press settings.
- Capsule::schema()->create('press_settings', function (Blueprint $table) {
- $table->bigInteger('press_id');
- $table->string('locale', 14)->default('');
- $table->string('setting_name', 255);
- $table->text('setting_value')->nullable();
- $table->string('setting_type', 6)->nullable();
- $table->index(['press_id'], 'press_settings_press_id');
- $table->unique(['press_id', 'locale', 'setting_name'], 'press_settings_pkey');
- });
-
- // Spotlights
- Capsule::schema()->create('spotlights', function (Blueprint $table) {
- $table->bigInteger('spotlight_id')->autoIncrement();
- $table->smallInteger('assoc_type');
- $table->smallInteger('assoc_id');
- $table->bigInteger('press_id');
- $table->index(['assoc_type', 'assoc_id'], 'spotlights_assoc');
- });
-
- // Spotlight metadata.
- Capsule::schema()->create('spotlight_settings', function (Blueprint $table) {
- $table->bigInteger('spotlight_id');
- $table->string('locale', 14)->default('');
- $table->string('setting_name', 255);
- $table->text('setting_value')->nullable();
- $table->string('setting_type', 6)->comment('(bool|int|float|string|object|date)');
- $table->index(['spotlight_id'], 'spotlight_settings_id');
- $table->unique(['spotlight_id', 'locale', 'setting_name'], 'spotlight_settings_pkey');
- });
-
- // Logs queued (unfulfilled) payments.
- Capsule::schema()->create('queued_payments', function (Blueprint $table) {
- $table->bigInteger('queued_payment_id')->autoIncrement();
- $table->datetime('date_created');
- $table->datetime('date_modified');
- $table->date('expiry_date')->nullable();
- $table->text('payment_data')->nullable();
- });
-
- // Logs completed (fulfilled) payments.
- Capsule::schema()->create('completed_payments', function (Blueprint $table) {
- $table->bigInteger('completed_payment_id')->autoIncrement();
- $table->datetime('timestamp');
- $table->bigInteger('payment_type');
- $table->bigInteger('context_id');
- $table->bigInteger('user_id')->nullable();
- // NOTE: assoc_id NOT numeric to incorporate file idents
- $table->string('assoc_id', 16)->nullable();
- $table->float('amount', 8, 2);
- $table->string('currency_code_alpha', 3)->nullable();
- $table->string('payment_method_plugin_name', 80)->nullable();
- });
- }
-
- /**
- * Reverse the migration.
- * @return void
- */
- public function down() {
- Capsule::schema()->drop('completed_payments');
- Capsule::schema()->drop('identification_codes');
- Capsule::schema()->drop('publication_dates');
- Capsule::schema()->drop('sales_rights');
- Capsule::schema()->drop('markets');
- Capsule::schema()->drop('representatives');
- Capsule::schema()->drop('features');
- Capsule::schema()->drop('new_releases');
- Capsule::schema()->drop('series');
- Capsule::schema()->drop('series_settings');
- Capsule::schema()->drop('series_categories');
- Capsule::schema()->drop('publications');
- Capsule::schema()->drop('publication_formats');
- Capsule::schema()->drop('publication_format_settings');
- Capsule::schema()->drop('submission_chapters');
- Capsule::schema()->drop('submission_chapter_settings');
- Capsule::schema()->drop('submission_chapter_authors');
- Capsule::schema()->drop('presses');
- Capsule::schema()->drop('press_settings');
- Capsule::schema()->drop('spotlights');
- Capsule::schema()->drop('spotlight_settings');
- Capsule::schema()->drop('queued_payments');
- Capsule::schema()->drop('completed_payments');
- }
-}
diff --git a/classes/migration/install/MetricsMigration.php b/classes/migration/install/MetricsMigration.php
new file mode 100644
index 00000000000..decb60c44ce
--- /dev/null
+++ b/classes/migration/install/MetricsMigration.php
@@ -0,0 +1,529 @@
+comment('Daily statistics for views of the homepage.');
+ $table->bigIncrements('metrics_context_id');
+
+ $table->string('load_id', 50);
+ $table->index(['load_id'], 'metrics_context_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_context_context_id');
+
+ $table->date('date');
+ $table->integer('metric');
+ });
+ Schema::create('metrics_series', function (Blueprint $table) {
+ $table->comment('Daily statistics for views of published submissions in each series.');
+ $table->bigIncrements('metrics_series_id');
+
+ $table->string('load_id', 50);
+ $table->index(['load_id'], 'metrics_series_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_series_context_id');
+
+ $table->bigInteger('series_id');
+ $table->foreign('series_id')->references('series_id')->on('series')->onDelete('cascade');
+ $table->index(['series_id'], 'metrics_series_series_id');
+
+ $table->date('date');
+ $table->integer('metric');
+
+ $table->index(['context_id', 'series_id'], 'metrics_series_context_id_series_id');
+ });
+ Schema::create('metrics_submission', function (Blueprint $table) {
+ $table->comment('Daily statistics for views and downloads of published submissions and files.');
+ $table->bigIncrements('metrics_submission_id');
+
+ $table->string('load_id', 50);
+ $table->index(['load_id'], 'ms_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_submission_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_submission_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'metrics_submission_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'metrics_submission_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'metrics_submission_submission_file_id');
+
+ $table->bigInteger('file_type')->nullable();
+ $table->bigInteger('assoc_type');
+ $table->date('date');
+ $table->integer('metric');
+
+ $table->index(['context_id', 'submission_id', 'assoc_type', 'file_type'], 'ms_context_id_submission_id_assoc_type_file_type');
+ });
+ Schema::create('metrics_counter_submission_daily', function (Blueprint $table) {
+ $table->comment('Daily statistics matching the COUNTER R5 protocol for views and downloads of published submissions and files.');
+ $table->bigIncrements('metrics_counter_submission_daily_id');
+
+ $table->string('load_id', 50);
+ $table->index(['load_id'], 'msd_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msd_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_counter_submission_daily_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msd_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_counter_submission_daily_submission_id');
+
+ $table->date('date');
+ $table->integer('metric_book_investigations');
+ $table->integer('metric_book_investigations_unique');
+ $table->integer('metric_book_requests');
+ $table->integer('metric_book_requests_unique');
+ $table->integer('metric_chapter_investigations');
+ $table->integer('metric_chapter_investigations_unique');
+ $table->integer('metric_chapter_requests');
+ $table->integer('metric_chapter_requests_unique');
+ $table->integer('metric_title_investigations_unique');
+ $table->integer('metric_title_requests_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msd_context_id_submission_id');
+ $table->unique(['load_id', 'context_id', 'submission_id', 'date'], 'msd_uc_load_id_context_id_submission_id_date');
+ });
+ Schema::create('metrics_counter_submission_monthly', function (Blueprint $table) {
+ $table->comment('Monthly statistics matching the COUNTER R5 protocol for views and downloads of published submissions and files.');
+ $table->bigIncrements('metrics_counter_submission_monthly_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msm_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_counter_submission_monthly_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msm_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_counter_submission_monthly_submission_id');
+
+ $table->integer('month');
+ $table->integer('metric_book_investigations');
+ $table->integer('metric_book_investigations_unique');
+ $table->integer('metric_book_requests');
+ $table->integer('metric_book_requests_unique');
+ $table->integer('metric_chapter_investigations');
+ $table->integer('metric_chapter_investigations_unique');
+ $table->integer('metric_chapter_requests');
+ $table->integer('metric_chapter_requests_unique');
+ $table->integer('metric_title_investigations_unique');
+ $table->integer('metric_title_requests_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msm_context_id_submission_id');
+ $table->unique(['context_id', 'submission_id', 'month'], 'msm_uc_context_id_submission_id_month');
+ });
+ Schema::create('metrics_counter_submission_institution_daily', function (Blueprint $table) {
+ $table->comment('Daily statistics matching the COUNTER R5 protocol for views and downloads from institutions.');
+ $table->bigIncrements('metrics_counter_submission_institution_daily_id');
+
+ $table->string('load_id', 50);
+ $table->index(['load_id'], 'msid_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msid_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'msid_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msid_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'msid_submission_id');
+
+ $table->bigInteger('institution_id');
+ $table->foreign('institution_id', 'msid_institution_id_foreign')->references('institution_id')->on('institutions')->onDelete('cascade');
+ $table->index(['institution_id'], 'msid_institution_id');
+
+ $table->date('date');
+ $table->integer('metric_book_investigations');
+ $table->integer('metric_book_investigations_unique');
+ $table->integer('metric_book_requests');
+ $table->integer('metric_book_requests_unique');
+ $table->integer('metric_chapter_investigations');
+ $table->integer('metric_chapter_investigations_unique');
+ $table->integer('metric_chapter_requests');
+ $table->integer('metric_chapter_requests_unique');
+ $table->integer('metric_title_investigations_unique');
+ $table->integer('metric_title_requests_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msid_context_id_submission_id');
+ $table->unique(['load_id', 'context_id', 'submission_id', 'institution_id', 'date'], 'msid_uc_load_id_context_id_submission_id_institution_id_date');
+ });
+ Schema::create('metrics_counter_submission_institution_monthly', function (Blueprint $table) {
+ $table->comment('Monthly statistics matching the COUNTER R5 protocol for views and downloads from institutions.');
+ $table->bigIncrements('metrics_counter_submission_institution_monthly_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msim_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'msim_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msim_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'msim_submission_id');
+
+ $table->bigInteger('institution_id');
+ $table->foreign('institution_id', 'msim_institution_id_foreign')->references('institution_id')->on('institutions')->onDelete('cascade');
+ $table->index(['institution_id'], 'msim_institution_id');
+
+ $table->integer('month');
+ $table->integer('metric_book_investigations');
+ $table->integer('metric_book_investigations_unique');
+ $table->integer('metric_book_requests');
+ $table->integer('metric_book_requests_unique');
+ $table->integer('metric_chapter_investigations');
+ $table->integer('metric_chapter_investigations_unique');
+ $table->integer('metric_chapter_requests');
+ $table->integer('metric_chapter_requests_unique');
+ $table->integer('metric_title_investigations_unique');
+ $table->integer('metric_title_requests_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msim_context_id_submission_id');
+ $table->unique(['context_id', 'submission_id', 'institution_id', 'month'], 'msim_uc_context_id_submission_id_institution_id_month');
+ });
+ Schema::create('metrics_submission_geo_daily', function (Blueprint $table) {
+ $table->comment('Daily statistics by country, region and city for views and downloads of published submissions and files.');
+ $table->bigIncrements('metrics_submission_geo_daily_id');
+
+ $table->string('load_id', 50);
+ $table->index(['load_id'], 'msgd_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msgd_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_submission_geo_daily_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msgd_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_submission_geo_daily_submission_id');
+
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->date('date');
+ $table->integer('metric');
+ $table->integer('metric_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msgd_context_id_submission_id');
+ switch (DB::getDriverName()) {
+ case 'mysql':
+ // See "Create a database table" here: https://db-ip.com/db/format/ip-to-city-lite/csv.html
+ // where city is defined as varchar(80)
+ $table->unique([DB::raw('load_id, context_id, submission_id, country, region, city(80), date')], 'msgd_uc_load_context_submission_c_r_c_date');
+ break;
+ case 'pgsql':
+ $table->unique(['load_id', 'context_id', 'submission_id', 'country', 'region', 'city', 'date'], 'msgd_uc_load_context_submission_c_r_c_date');
+ break;
+ }
+ });
+ Schema::create('metrics_submission_geo_monthly', function (Blueprint $table) {
+ $table->comment('Monthly statistics by country, region and city for views and downloads of published submissions and files.');
+ $table->bigIncrements('metrics_submission_geo_monthly_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msgm_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_submission_geo_monthly_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msgm_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_submission_geo_monthly_submission_id');
+
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->integer('month');
+ $table->integer('metric');
+ $table->integer('metric_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msgm_context_id_submission_id');
+ switch (DB::getDriverName()) {
+ case 'mysql':
+ // See "Create a database table" here: https://db-ip.com/db/format/ip-to-city-lite/csv.html
+ // where city is defined as varchar(80)
+ $table->unique([DB::raw('context_id, submission_id, country, region, city(80), month')], 'msgm_uc_context_submission_c_r_c_month');
+ break;
+ case 'pgsql':
+ $table->unique(['context_id', 'submission_id', 'country', 'region', 'city', 'month'], 'msgm_uc_context_submission_c_r_c_month');
+ break;
+ }
+ });
+
+ // Usage stats total book and chapter item temporary records
+ Schema::create('usage_stats_total_temporary_records', function (Blueprint $table) {
+ $table->comment('Temporary stats totals based on visitor log records. Data in this table is provisional. See the metrics_* tables for compiled stats.');
+ $table->bigIncrements('usage_stats_temp_total_id');
+
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 64);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+ $table->string('canonical_url', 255);
+
+ $table->bigInteger('series_id')->nullable();
+ $table->foreign('series_id', 'ust_series_id_foreign')->references('series_id')->on('series')->onDelete('cascade');
+ $table->index(['series_id'], 'ust_series_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'ust_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'ust_context_id');
+
+ $table->bigInteger('submission_id')->nullable();
+ $table->foreign('submission_id', 'ust_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'ust_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'ust_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'ust_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'ust_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'ust_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'ust_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'ust_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 50);
+
+ $table->index(['load_id', 'context_id', 'ip'], 'ust_load_id_context_id_ip');
+ });
+
+ // Usage stats unique book and chapter item investigations temporary records
+ // No need to consider series_id here because investigations are only relevant/calculated on submission level.
+ Schema::create('usage_stats_unique_item_investigations_temporary_records', function (Blueprint $table) {
+ $table->comment('Temporary stats on unique downloads based on visitor log records. Data in this table is provisional. See the metrics_* tables for compiled stats.');
+ $table->bigIncrements('usage_stats_temp_unique_item_id');
+
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 64);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'usii_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'usii_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'usii_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'usii_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'usii_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'usii_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'usii_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'usii_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'usii_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'usii_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 50);
+
+ $table->index(['load_id', 'context_id', 'ip'], 'usii_load_id_context_id_ip');
+ });
+
+ // Usage stats unique book and chapter item requests temporary records
+ // No need to consider series_id here because requests are only relevant/calculated on submission level.
+ Schema::create('usage_stats_unique_item_requests_temporary_records', function (Blueprint $table) {
+ $table->comment('Temporary stats on unique views based on visitor log records. Data in this table is provisional. See the metrics_* tables for compiled stats.');
+ $table->bigIncrements('usage_stats_temp_item_id');
+
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 64);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'usir_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'usir_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'usir_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'usir_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'usir_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'usir_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'usir_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'usir_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'usir_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'usir_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 50);
+
+ $table->index(['load_id', 'context_id', 'ip'], 'usir_load_id_context_id_ip');
+ });
+
+ // Usage stats unique title investigations temporary records
+ // No need to consider series_id here because investigations are only relevant/calculated on submission level.
+ Schema::create('usage_stats_unique_title_investigations_temporary_records', function (Blueprint $table) {
+ $table->comment('Temporary stats for views and downloads from institutions based on visitor log records. Data in this table is provisional. See the metrics_* tables for compiled stats.');
+ $table->bigIncrements('usage_stats_temp_unique_investigations_id');
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 64);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'usti_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'usti_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'usti_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'usti_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'usti_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'usti_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'usti_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'usti_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'usti_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'usti_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 50);
+
+ $table->index(['load_id', 'context_id', 'ip'], 'usti_load_id_context_id_ip');
+ });
+
+ // Usage stats unique title requests temporary records
+ // No need to consider series_id here because requests are only relevant/calculated on submission level.
+ Schema::create('usage_stats_unique_title_requests_temporary_records', function (Blueprint $table) {
+ $table->comment('Temporary stats for unique title requests. Data in this table is provisional. See the metrics_* tables for compiled stats.');
+ $table->bigIncrements('usage_stats_temp_unique_requests_id');
+
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 64);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'ustr_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'ustr_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'ustr_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'ustr_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'ustr_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'ustr_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'ustr_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'ustr_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'ustr_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'ustr_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 50);
+
+ $table->index(['load_id', 'context_id', 'ip'], 'ustr_load_id_context_id_ip');
+ });
+
+ // Usage stats institution temporary records
+ Schema::create('usage_stats_institution_temporary_records', function (Blueprint $table) {
+ $table->comment('Temporary stats by institution. Data in this table is provisional. See the metrics_* tables for compiled stats.');
+ $table->bigIncrements('usage_stats_temp_institution_id');
+
+ $table->string('load_id', 50);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('institution_id');
+ $table->foreign('institution_id', 'usi_institution_id_foreign')->references('institution_id')->on('institutions')->onDelete('cascade');
+ $table->index(['institution_id'], 'usi_institution_id');
+
+ $table->unique(['load_id', 'line_number', 'institution_id'], 'usi_load_id_line_number_institution_id');
+ });
+ }
+
+ /**
+ * Reverse the migration.
+ */
+ public function down(): void
+ {
+ Schema::drop('metrics_context');
+ Schema::drop('metrics_series');
+ Schema::drop('metrics_submission');
+ Schema::drop('metrics_counter_submission_daily');
+ Schema::drop('metrics_counter_submission_monthly');
+ Schema::drop('metrics_counter_submission_institution_daily');
+ Schema::drop('metrics_counter_submission_institution_monthly');
+ Schema::drop('metrics_submission_geo_daily');
+ Schema::drop('metrics_submission_geo_monthly');
+ Schema::drop('usage_stats_total_temporary_records');
+ Schema::drop('usage_stats_unique_item_investigations_temporary_records');
+ Schema::drop('usage_stats_unique_item_requests_temporary_records');
+ Schema::drop('usage_stats_unique_title_investigations_temporary_records');
+ Schema::drop('usage_stats_unique_title_requests_temporary_records');
+ Schema::drop('usage_stats_institution_temporary_records');
+ }
+}
diff --git a/classes/migration/install/OMPMigration.php b/classes/migration/install/OMPMigration.php
new file mode 100644
index 00000000000..bb93fa74e47
--- /dev/null
+++ b/classes/migration/install/OMPMigration.php
@@ -0,0 +1,459 @@
+comment('Each publication is one version of a submission.');
+ $table->bigInteger('publication_id')->autoIncrement();
+ $table->date('date_published')->nullable();
+ $table->datetime('last_modified')->nullable();
+
+ $table->bigInteger('primary_contact_id')->nullable();
+ $table->foreign('primary_contact_id', 'publications_author_id')->references('author_id')->on('authors')->onDelete('set null');
+ $table->index(['primary_contact_id'], 'publications_primary_contact_id');
+
+ $table->string('publication_date_type', 32)->default('pub')->nullable();
+ // PUBLICATION_TYPE_PUBLICATION
+ $table->string('publication_type', 32)->default('publication')->nullable();
+ $table->float('seq', 8, 2)->default(0);
+
+ // FK relationship is defined where series table is created
+ $table->bigInteger('series_id')->nullable();
+ $table->index(['series_id'], 'publications_section_id');
+
+ $table->string('series_position', 255)->nullable();
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'publications_submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'publications_submission_id');
+
+ $table->smallInteger('status')->default(1);
+ $table->string('url_path', 64)->nullable();
+ $table->bigInteger('version')->nullable();
+
+ $table->bigInteger('doi_id')->nullable();
+ $table->foreign('doi_id')->references('doi_id')->on('dois')->nullOnDelete();
+ $table->index(['doi_id'], 'publications_doi_id');
+ });
+ // The following foreign key relationships are for tables defined in SubmissionsMigration
+ // but they depend on publications to exist so are created here.
+ Schema::table('submissions', function (Blueprint $table) {
+ $table->foreign('current_publication_id', 'submissions_publication_id')->references('publication_id')->on('publications')->onDelete('set null');
+ });
+ Schema::table('publication_settings', function (Blueprint $table) {
+ $table->foreign('publication_id')->references('publication_id')->on('publications')->onDelete('cascade');
+ });
+ Schema::table('authors', function (Blueprint $table) {
+ $table->foreign('publication_id')->references('publication_id')->on('publications')->onDelete('cascade');
+ });
+
+ // Publication formats assigned to published submissions
+ Schema::create('publication_formats', function (Blueprint $table) {
+ $table->comment('Publication formats are representations of a publication in a particular format, e.g. PDF, hardcover, etc. Each publication format may contain many chapters.');
+ $table->bigInteger('publication_format_id')->autoIncrement();
+
+ $table->bigInteger('publication_id');
+ $table->foreign('publication_id', 'publication_formats_publication_id')->references('publication_id')->on('publications')->onDelete('cascade');
+ $table->index(['publication_id'], 'publication_formats_publication_id');
+
+ $table->smallInteger('physical_format')->default(1)->nullable();
+ $table->string('entry_key', 64)->nullable();
+ $table->float('seq', 8, 2)->default(0);
+ $table->string('file_size', 255)->nullable();
+ $table->string('front_matter', 255)->nullable();
+ $table->string('back_matter', 255)->nullable();
+ $table->string('height', 255)->nullable();
+ $table->string('height_unit_code', 255)->nullable();
+ $table->string('width', 255)->nullable();
+ $table->string('width_unit_code', 255)->nullable();
+ $table->string('thickness', 255)->nullable();
+ $table->string('thickness_unit_code', 255)->nullable();
+ $table->string('weight', 255)->nullable();
+ $table->string('weight_unit_code', 255)->nullable();
+ $table->string('product_composition_code', 255)->nullable();
+ $table->string('product_form_detail_code', 255)->nullable();
+ $table->string('country_manufacture_code', 255)->nullable();
+ $table->string('imprint', 255)->nullable();
+ $table->string('product_availability_code', 255)->nullable();
+ $table->string('technical_protection_code', 255)->nullable();
+ $table->string('returnable_indicator_code', 255)->nullable();
+ $table->string('remote_url', 2047)->nullable();
+ $table->string('url_path', 64)->nullable();
+ $table->smallInteger('is_approved')->default(0);
+ $table->smallInteger('is_available')->default(0);
+
+ $table->bigInteger('doi_id')->nullable();
+ $table->foreign('doi_id')->references('doi_id')->on('dois')->nullOnDelete();
+ $table->index(['doi_id'], 'publication_formats_doi_id');
+ });
+
+ // Publication Format metadata.
+ Schema::create('publication_format_settings', function (Blueprint $table) {
+ $table->comment('More data about publication formats, including localized properties.');
+ $table->bigIncrements('publication_format_setting_id');
+
+ $table->bigInteger('publication_format_id');
+ $table->foreign('publication_format_id', 'publication_format_settings_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'publication_format_id_key');
+
+ $table->string('locale', 14)->default('');
+ $table->string('setting_name', 255);
+ $table->text('setting_value')->nullable();
+ $table->string('setting_type', 6)->comment('(bool|int|float|string|object)');
+ $table->unique(['publication_format_id', 'locale', 'setting_name'], 'publication_format_settings_unique');
+ });
+
+ Schema::create('identification_codes', function (Blueprint $table) {
+ $table->comment('ONIX identification codes for publication formats.');
+ $table->bigInteger('identification_code_id')->autoIncrement();
+
+ $table->bigInteger('publication_format_id');
+ $table->foreign('publication_format_id', 'identification_codes_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'identification_codes_publication_format_id');
+
+ $table->string('code', 40);
+ $table->string('value', 255);
+
+ $table->index(['identification_code_id', 'publication_format_id', 'code'], 'identification_codes_key');
+ });
+
+ Schema::create('publication_dates', function (Blueprint $table) {
+ $table->comment('ONIX publication dates for publication formats.');
+ $table->bigInteger('publication_date_id')->autoIncrement();
+
+ $table->bigInteger('publication_format_id');
+ $table->foreign('publication_format_id', 'publication_dates_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'publication_dates_publication_format_id');
+
+ $table->string('role', 40);
+ $table->string('date_format', 40);
+ $table->string('date', 255);
+
+ $table->index(['publication_date_id', 'publication_format_id', 'role'], 'format_publication_dates_pkey');
+ });
+
+ Schema::create('sales_rights', function (Blueprint $table) {
+ $table->comment('ONIX sales rights for publication formats.');
+ $table->bigInteger('sales_rights_id')->autoIncrement();
+
+ $table->bigInteger('publication_format_id');
+ $table->foreign('publication_format_id', 'sales_rights_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'sales_rights_publication_format_id');
+
+ $table->string('type', 40);
+ // ROW is 'rest of world'. ROW sales types have no territories assigned to them
+ $table->smallInteger('row_setting')->default(0);
+ $table->text('countries_included')->nullable();
+ $table->text('countries_excluded')->nullable();
+ $table->text('regions_included')->nullable();
+ $table->text('regions_excluded')->nullable();
+
+ $table->index(['sales_rights_id', 'publication_format_id'], 'format_sales_rights_pkey');
+ });
+
+ Schema::create('markets', function (Blueprint $table) {
+ $table->comment('ONIX market information for publication formats.');
+ $table->bigInteger('market_id')->autoIncrement();
+
+ $table->bigInteger('publication_format_id');
+ $table->foreign('publication_format_id', 'markets_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'markets_publication_format_id');
+
+ $table->text('countries_included')->nullable();
+ $table->text('countries_excluded')->nullable();
+ $table->text('regions_included')->nullable();
+ $table->text('regions_excluded')->nullable();
+ $table->string('market_date_role', 40);
+ $table->string('market_date_format', 40);
+ $table->string('market_date', 255);
+ $table->string('price', 255)->nullable();
+ $table->string('discount', 255)->nullable();
+ $table->string('price_type_code', 255)->nullable();
+ $table->string('currency_code', 255)->nullable();
+ $table->string('tax_rate_code', 255)->nullable();
+ $table->string('tax_type_code', 255)->nullable();
+
+ // FIXME: These columns don't appear to be used
+ $table->bigInteger('agent_id')->nullable();
+ $table->bigInteger('supplier_id')->nullable();
+
+ $table->index(['market_id', 'publication_format_id'], 'format_markets_pkey');
+ });
+
+ Schema::create('representatives', function (Blueprint $table) {
+ $table->comment('ONIX representatives for publication formats.');
+ $table->bigInteger('representative_id')->autoIncrement();
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'representatives_submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'representatives_submission_id');
+
+ $table->string('role', 40);
+ $table->string('representative_id_type', 255)->nullable();
+ $table->string('representative_id_value', 255)->nullable();
+ $table->string('name', 255)->nullable();
+ $table->string('phone', 255)->nullable();
+ $table->string('email', 255)->nullable();
+ $table->string('url', 2047)->nullable();
+ $table->smallInteger('is_supplier')->default(1);
+
+ $table->index(['representative_id', 'submission_id'], 'format_representatives_pkey');
+ });
+
+ Schema::create('features', function (Blueprint $table) {
+ $table->comment('Information about which submissions are featured in the press.');
+ $table->bigIncrements('feature_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'features_submission_id');
+
+ $table->bigInteger('assoc_type');
+ $table->bigInteger('assoc_id');
+
+ $table->bigInteger('seq');
+
+ $table->unique(['assoc_type', 'assoc_id', 'submission_id'], 'press_features_unique');
+ });
+
+ Schema::create('new_releases', function (Blueprint $table) {
+ $table->comment('Information about which submissions in the press are considered new releases.');
+ $table->bigIncrements('new_release_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'new_releases_submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'new_releases_submission_id');
+
+ $table->bigInteger('assoc_type');
+ $table->bigInteger('assoc_id');
+
+ $table->unique(['assoc_type', 'assoc_id', 'submission_id'], 'new_releases_unique');
+ });
+
+ // Press series.
+ Schema::create('series', function (Blueprint $table) {
+ $table->comment('A list of press series, into which submissions can be organized.');
+ $table->bigInteger('series_id')->autoIncrement();
+
+ $table->bigInteger('press_id');
+ $table->foreign('press_id', 'series_press_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['press_id'], 'series_press_id');
+
+ $table->bigInteger('review_form_id')->nullable();
+ $table->foreign('review_form_id', 'series_review_form_id')->references('review_form_id')->on('review_forms')->onDelete('set null');
+ $table->index(['review_form_id'], 'series_review_form_id');
+
+ // NOT NULL not included for the sake of 1.1 upgrade, which didn't include this column
+ $table->float('seq', 8, 2)->default(0)->nullable();
+
+ $table->smallInteger('featured')->default(0);
+ $table->smallInteger('editor_restricted')->default(0);
+ $table->string('path', 255);
+ $table->text('image')->nullable();
+ $table->smallInteger('is_inactive')->default(0);
+
+ $table->unique(['press_id', 'path'], 'series_path');
+ });
+ Schema::table('publications', function (Blueprint $table) {
+ $table->foreign('series_id', 'publications_series_id')->references('series_id')->on('series')->onDelete('set null');
+ });
+
+ // Series-specific settings
+ Schema::create('series_settings', function (Blueprint $table) {
+ $table->comment('More data about series, including localized properties such as series titles.');
+ $table->bigIncrements('series_setting_id');
+
+ $table->bigInteger('series_id');
+ $table->foreign('series_id', 'series_settings_series_id')->references('series_id')->on('series')->onDelete('cascade');
+ $table->index(['series_id'], 'series_settings_series_id');
+
+ $table->string('locale', 14)->default('');
+ $table->string('setting_name', 255);
+ $table->text('setting_value')->nullable();
+
+ $table->unique(['series_id', 'locale', 'setting_name'], 'series_settings_unique');
+ });
+
+ Schema::create('submission_chapters', function (Blueprint $table) {
+ $table->comment('A list of chapters for each submission (when submissions are divided into chapters).');
+ $table->bigInteger('chapter_id')->autoIncrement();
+ $table->index(['chapter_id'], 'chapters_chapter_id');
+
+ $table->bigInteger('primary_contact_id')->nullable();
+ $table->foreign('primary_contact_id')->references('author_id')->on('authors')->onDelete('set null');
+ $table->index(['primary_contact_id'], 'submission_chapters_primary_contact_id');
+
+ $table->bigInteger('publication_id');
+ $table->foreign('publication_id', 'submission_chapters_publication_id')->references('publication_id')->on('publications')->onDelete('cascade');
+ $table->index(['publication_id'], 'submission_chapters_publication_id');
+
+ $table->float('seq', 8, 2)->default(0);
+
+ // FK defined below (circular reference)
+ $table->bigInteger('source_chapter_id')->nullable();
+ $table->index(['source_chapter_id'], 'submission_chapters_source_chapter_id');
+
+ $table->bigInteger('doi_id')->nullable();
+ $table->foreign('doi_id')->references('doi_id')->on('dois')->nullOnDelete();
+ });
+ Schema::table('submission_chapters', function (Blueprint $table) {
+ $table->foreign('source_chapter_id')->references('chapter_id')->on('submission_chapters')->onDelete('set null');
+ });
+
+ // Language dependent monograph chapter metadata.
+ Schema::create('submission_chapter_settings', function (Blueprint $table) {
+ $table->comment('More information about submission chapters, including localized properties such as chapter titles.');
+ $table->bigIncrements('submission_chapter_setting_id');
+
+ $table->bigInteger('chapter_id');
+
+ $table->foreign('chapter_id')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'submission_chapter_settings_chapter_id');
+
+ $table->string('locale', 14)->default('');
+ $table->string('setting_name', 255);
+ $table->text('setting_value')->nullable();
+ $table->string('setting_type', 6)->comment('(bool|int|float|string|object)');
+
+ $table->unique(['chapter_id', 'locale', 'setting_name'], 'submission_chapter_settings_unique');
+ });
+
+ Schema::create('submission_chapter_authors', function (Blueprint $table) {
+ $table->comment('The list of authors associated with each submission chapter.');
+ $table->bigInteger('author_id');
+ $table->foreign('author_id')->references('author_id')->on('authors')->onDelete('cascade');
+ $table->index(['author_id'], 'submission_chapter_authors_author_id');
+
+ $table->bigInteger('chapter_id');
+ $table->foreign('chapter_id')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'submission_chapter_authors_chapter_id');
+
+ $table->smallInteger('primary_contact')->default(0);
+ $table->float('seq', 8, 2)->default(0);
+
+ $table->unique(['author_id', 'chapter_id'], 'chapter_authors_pkey');
+ });
+
+ // Add doi_id to submission files
+ Schema::table('submission_files', function (Blueprint $table) {
+ $table->bigInteger('doi_id')->nullable();
+ $table->foreign('doi_id')->references('doi_id')->on('dois')->nullOnDelete();
+ $table->index(['doi_id'], 'submission_files_doi_id');
+ });
+
+
+ // Spotlights
+ Schema::create('spotlights', function (Blueprint $table) {
+ $table->comment('Information about which submissions to the press are spotlighted.');
+ $table->bigInteger('spotlight_id')->autoIncrement();
+
+ $table->smallInteger('assoc_type');
+ $table->smallInteger('assoc_id');
+
+ $table->bigInteger('press_id');
+ $table->foreign('press_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['press_id'], 'spotlights_press_id');
+
+ $table->index(['assoc_type', 'assoc_id'], 'spotlights_assoc');
+ });
+
+ // Spotlight metadata.
+ Schema::create('spotlight_settings', function (Blueprint $table) {
+ $table->comment('More data about spotlights, including localized properties.');
+ $table->bigIncrements('spotlight_setting_id');
+
+ $table->bigInteger('spotlight_id');
+ $table->foreign('spotlight_id')->references('spotlight_id')->on('spotlights')->onCascade('delete');
+ $table->index(['spotlight_id'], 'spotlight_settings_id');
+
+ $table->string('locale', 14)->default('');
+ $table->string('setting_name', 255);
+ $table->text('setting_value')->nullable();
+ $table->string('setting_type', 6)->comment('(bool|int|float|string|object|date)');
+
+ $table->unique(['spotlight_id', 'locale', 'setting_name'], 'spotlight_settings_unique');
+ });
+
+ // Logs queued (unfulfilled) payments.
+ Schema::create('queued_payments', function (Blueprint $table) {
+ $table->comment('A list of queued (unfilled) payments, i.e. payments that have not yet been completed via an online payment system.');
+ $table->bigInteger('queued_payment_id')->autoIncrement();
+ $table->datetime('date_created');
+ $table->datetime('date_modified');
+ $table->date('expiry_date')->nullable();
+ $table->text('payment_data')->nullable();
+ });
+
+ // Logs completed (fulfilled) payments.
+ Schema::create('completed_payments', function (Blueprint $table) {
+ $table->comment('A list of completed (fulfilled) payments, with information about the type of payment and the entity it relates to.');
+ $table->bigInteger('completed_payment_id')->autoIncrement();
+ $table->datetime('timestamp');
+ $table->bigInteger('payment_type');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'completed_payments_context_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'completed_payments_context_id');
+
+ $table->bigInteger('user_id')->nullable();
+ $table->foreign('user_id')->references('user_id')->on('users')->onDelete('set null');
+ $table->index(['user_id'], 'completed_payments_user_id');
+
+ // NOTE: assoc_id NOT numeric to incorporate file idents
+ $table->string('assoc_id', 16)->nullable();
+ $table->float('amount', 8, 2);
+ $table->string('currency_code_alpha', 3)->nullable();
+ $table->string('payment_method_plugin_name', 80)->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migration.
+ */
+ public function down(): void
+ {
+ Schema::drop('completed_payments');
+ Schema::drop('identification_codes');
+ Schema::drop('publication_dates');
+ Schema::drop('sales_rights');
+ Schema::drop('markets');
+ Schema::drop('representatives');
+ Schema::drop('features');
+ Schema::drop('new_releases');
+ Schema::drop('series');
+ Schema::drop('series_settings');
+ Schema::drop('publications');
+ Schema::drop('submission_chapters');
+ Schema::drop('submission_chapter_settings');
+ Schema::drop('submission_chapter_authors');
+ Schema::drop('spotlights');
+ Schema::drop('spotlight_settings');
+ Schema::drop('queued_payments');
+ Schema::drop('completed_payments');
+ Schema::drop('publication_formats');
+ Schema::drop('publication_format_settings');
+ }
+}
diff --git a/classes/migration/install/PressMigration.php b/classes/migration/install/PressMigration.php
new file mode 100644
index 00000000000..382e3d40043
--- /dev/null
+++ b/classes/migration/install/PressMigration.php
@@ -0,0 +1,63 @@
+comment('A list of presses managed by the system.');
+ $table->bigInteger('press_id')->autoIncrement();
+ $table->string('path', 32);
+ $table->float('seq', 8, 2)->default(0);
+ $table->string('primary_locale', 14);
+ $table->smallInteger('enabled')->default(1);
+ $table->unique(['path'], 'press_path');
+ });
+
+ // Press settings.
+ Schema::create('press_settings', function (Blueprint $table) {
+ $table->comment('More data about presses, including localized properties such as policies.');
+ $table->bigIncrements('press_setting_id');
+
+ $table->bigInteger('press_id');
+ $table->foreign('press_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['press_id'], 'press_settings_press_id');
+
+ $table->string('locale', 14)->default('');
+ $table->string('setting_name', 255);
+ $table->text('setting_value')->nullable();
+
+ $table->unique(['press_id', 'locale', 'setting_name'], 'press_settings_unique');
+ });
+ }
+
+ /**
+ * Reverse the migration.
+ */
+ public function down(): void
+ {
+ Schema::drop('presses');
+ Schema::drop('press_settings');
+ }
+}
diff --git a/classes/migration/install/SeriesCategoriesMigration.php b/classes/migration/install/SeriesCategoriesMigration.php
new file mode 100644
index 00000000000..37f8c2a18ed
--- /dev/null
+++ b/classes/migration/install/SeriesCategoriesMigration.php
@@ -0,0 +1,48 @@
+comment('A list of relationships between series and category information.');
+ $table->bigInteger('series_id');
+ $table->foreign('series_id', 'series_categories_series_id')->references('series_id')->on('series')->onDelete('cascade');
+ $table->index(['series_id'], 'series_categories_series_id');
+
+ $table->bigInteger('category_id');
+ $table->foreign('category_id', 'series_categories_category_id')->references('category_id')->on('categories')->onDelete('cascade');
+ $table->index(['category_id'], 'series_categories_category_id');
+
+ $table->unique(['series_id', 'category_id'], 'series_categories_id');
+ });
+ }
+
+ /**
+ * Reverse the migration.
+ */
+ public function down(): void
+ {
+ Schema::drop('series_categories');
+ }
+}
diff --git a/classes/migration/upgrade/OMPv3_3_0UpgradeMigration.inc.php b/classes/migration/upgrade/OMPv3_3_0UpgradeMigration.inc.php
deleted file mode 100644
index d49ec598a9a..00000000000
--- a/classes/migration/upgrade/OMPv3_3_0UpgradeMigration.inc.php
+++ /dev/null
@@ -1,229 +0,0 @@
-table('press_settings', function (Blueprint $table) {
- // pkp/pkp-lib#6096 DB field type TEXT is cutting off long content
- $table->mediumText('setting_value')->nullable()->change();
- });
- if (!Capsule::schema()->hasColumn('series', 'is_inactive')) {
- Capsule::schema()->table('series', function (Blueprint $table) {
- $table->smallInteger('is_inactive')->default(0);
- });
- }
- Capsule::schema()->table('review_forms', function (Blueprint $table) {
- $table->bigInteger('assoc_type')->nullable(false)->change();
- $table->bigInteger('assoc_id')->nullable(false)->change();
- });
-
- $this->_settingsAsJSON();
-
- $this->_migrateSubmissionFiles();
-
- // Delete the old MODS34 filters
- Capsule::statement("DELETE FROM filters WHERE class_name='plugins.metadata.mods34.filter.Mods34SchemaMonographAdapter'");
- Capsule::statement("DELETE FROM filter_groups WHERE symbolic IN ('monograph=>mods34', 'mods34=>monograph')");
-
- // pkp/pkp-lib#6604 ONIX filters still refer to Monograph rather than Submission
- Capsule::statement("UPDATE filter_groups SET input_type = 'class::classes.submission.Submission' WHERE input_type = 'class::classes.monograph.Monograph';");
- Capsule::statement("UPDATE filter_groups SET output_type = 'class::classes.submission.Submission[]' WHERE input_type = 'class::classes.monograph.Monograph[]';");
-
- // pkp/pkp-lib#6609 ONIX filters does not take array of submissions as input
- Capsule::statement("UPDATE filter_groups SET input_type = 'class::classes.submission.Submission[]' WHERE symbolic = 'monograph=>onix30-xml';");
-
- // pkp/pkp-lib#6807 Make sure all submission last modification dates are set
- Capsule::statement('UPDATE submissions SET last_modified = NOW() WHERE last_modified IS NULL');
- }
-
- /**
- * Reverse the downgrades
- * @return void
- */
- public function down() {
- Capsule::schema()->table('press_settings', function (Blueprint $table) {
- // pkp/pkp-lib#6096 DB field type TEXT is cutting off long content
- $table->text('setting_value')->nullable()->change();
- });
- }
-
- /**
- * @return void
- * @brief reset serialized arrays and convert array and objects to JSON for serialization, see pkp/pkp-lib#5772
- */
- private function _settingsAsJSON() {
-
- // Convert settings where type can be retrieved from schema.json
- $schemaDAOs = ['SiteDAO', 'AnnouncementDAO', 'AuthorDAO', 'PressDAO', 'EmailTemplateDAO', 'PublicationDAO', 'SubmissionDAO'];
- $processedTables = [];
- foreach ($schemaDAOs as $daoName) {
- $dao = DAORegistry::getDAO($daoName);
- $schemaService = Services::get('schema');
-
- if (is_a($dao, 'SchemaDAO')) {
- $schema = $schemaService->get($dao->schemaName);
- $tableName = $dao->settingsTableName;
- } else if ($daoName === 'SiteDAO') {
- $schema = $schemaService->get(SCHEMA_SITE);
- $tableName = 'site_settings';
- } else {
- continue; // if parent class changes, the table is processed with other settings tables
- }
-
- $processedTables[] = $tableName;
- foreach ($schema->properties as $propName => $propSchema) {
- if (empty($propSchema->readOnly)) {
- if ($propSchema->type === 'array' || $propSchema->type === 'object') {
- Capsule::table($tableName)->where('setting_name', $propName)->get()->each(function ($row) use ($tableName) {
- $this->_toJSON($row, $tableName, ['setting_name', 'locale'], 'setting_value');
- });
- }
- }
- }
- }
-
- // Convert settings where only setting_type column is available
- $tables = Capsule::connection()->getDoctrineSchemaManager()->listTableNames();
- foreach ($tables as $tableName) {
- if (substr($tableName, -9) !== '_settings' || in_array($tableName, $processedTables)) continue;
- if ($tableName === 'plugin_settings') {
- Capsule::table($tableName)->where('setting_type', 'object')->get()->each(function ($row) use ($tableName) {
- $this->_toJSON($row, $tableName, ['plugin_name', 'context_id', 'setting_name'], 'setting_value');
- });
- } else {
- Capsule::table($tableName)->where('setting_type', 'object')->get()->each(function ($row) use ($tableName) {
- $this->_toJSON($row, $tableName, ['setting_name', 'locale'], 'setting_value');
- });
- }
- }
-
- // Finally, convert values of other tables dependent from DAO::convertToDB
- Capsule::table('review_form_responses')->where('response_type', 'object')->get()->each(function ($row) {
- $this->_toJSON($row, 'review_form_responses', ['review_id'], 'response_value');
- });
-
- Capsule::table('site')->get()->each(function ($row) {
- $localeToConvert = function($localeType) use($row) {
- $serializedValue = $row->{$localeType};
- if (@unserialize($serializedValue) === false) return;
- $oldLocaleValue = unserialize($serializedValue);
-
- if (is_array($oldLocaleValue) && $this->_isNumerical($oldLocaleValue)) $oldLocaleValue = array_values($oldLocaleValue);
-
- $newLocaleValue = json_encode($oldLocaleValue, JSON_UNESCAPED_UNICODE);
- Capsule::table('site')->take(1)->update([$localeType => $newLocaleValue]);
- };
-
- $localeToConvert('installed_locales');
- $localeToConvert('supported_locales');
- });
- }
-
- /**
- * @param $row stdClass row representation
- * @param $tableName string name of a settings table
- * @param $searchBy array additional parameters to the where clause that should be combined with AND operator
- * @param $valueToConvert string column name for values to convert to JSON
- * @return void
- */
- private function _toJSON($row, $tableName, $searchBy, $valueToConvert) {
- // Check if value can be unserialized
- $serializedOldValue = $row->{$valueToConvert};
- if (@unserialize($serializedOldValue) === false) return;
- $oldValue = unserialize($serializedOldValue);
-
- // Reset arrays to avoid keys being mixed up
- if (is_array($oldValue) && $this->_isNumerical($oldValue)) $oldValue = array_values($oldValue);
- $newValue = json_encode($oldValue, JSON_UNESCAPED_UNICODE); // don't convert utf-8 characters to unicode escaped code
-
- $id = array_key_first((array)$row); // get first/primary key column
-
- // Remove empty filters
- $searchBy = array_filter($searchBy, function ($item) use ($row) {
- if (empty($row->{$item})) return false;
- return true;
- });
-
- $queryBuilder = Capsule::table($tableName)->where($id, $row->{$id});
- foreach ($searchBy as $key => $column) {
- $queryBuilder = $queryBuilder->where($column, $row->{$column});
- }
- $queryBuilder->update([$valueToConvert => $newValue]);
- }
-
- /**
- * @param $array array to check
- * @return bool
- * @brief checks unserialized array; returns true if array keys are integers
- * otherwise if keys are mixed and sequence starts from any positive integer it will be serialized as JSON object instead of an array
- * See pkp/pkp-lib#5690 for more details
- */
- private function _isNumerical($array) {
- foreach ($array as $item => $value) {
- if (!is_integer($item)) return false; // is an associative array;
- }
-
- return true;
- }
-
- /**
- * Complete submission file migrations specific to OMP
- *
- * The main submission file migration is done in
- * PKPv3_3_0UpgradeMigration and that migration must
- * be run before this one.
- */
- private function _migrateSubmissionFiles() {
-
- // Update file stage for all internal review files
- Capsule::table('submission_files as sf')
- ->leftJoin('review_round_files as rrf', 'sf.submission_file_id', '=', 'rrf.submission_file_id')
- ->where('sf.file_stage', '=', SUBMISSION_FILE_REVIEW_FILE)
- ->where('rrf.stage_id', '=', WORKFLOW_STAGE_ID_INTERNAL_REVIEW)
- ->update(['sf.file_stage' => SUBMISSION_FILE_INTERNAL_REVIEW_FILE]);
- Capsule::table('submission_files as sf')
- ->leftJoin('review_round_files as rrf', 'sf.submission_file_id', '=', 'rrf.submission_file_id')
- ->where('sf.file_stage', '=', SUBMISSION_FILE_REVIEW_REVISION)
- ->where('rrf.stage_id', '=', WORKFLOW_STAGE_ID_INTERNAL_REVIEW)
- ->update(['sf.file_stage' => SUBMISSION_FILE_INTERNAL_REVIEW_REVISION]);
-
- // Update the fileStage property for all event logs where the
- // file has been moved to an internal review file stage
- $internalStageIds = [
- SUBMISSION_FILE_INTERNAL_REVIEW_FILE,
- SUBMISSION_FILE_INTERNAL_REVIEW_REVISION,
- ];
- foreach ($internalStageIds as $internalStageId) {
- $submissionIds = Capsule::table('submission_files')
- ->where('file_stage', '=', $internalStageId)
- ->pluck('submission_file_id');
- $logIdsToChange = Capsule::table('event_log_settings')
- ->where('setting_name', '=', 'submissionFileId')
- ->whereIn('setting_value', $submissionIds)
- ->pluck('log_id');
- Capsule::table('event_log_settings')
- ->whereIn('log_id', $logIdsToChange)
- ->where('setting_name', '=', 'fileStage')
- ->update(['setting_value' => $internalStageId]);
- }
- }
-}
diff --git a/classes/migration/upgrade/OMPv3_3_0UpgradeMigration.php b/classes/migration/upgrade/OMPv3_3_0UpgradeMigration.php
new file mode 100644
index 00000000000..10806dacbcb
--- /dev/null
+++ b/classes/migration/upgrade/OMPv3_3_0UpgradeMigration.php
@@ -0,0 +1,156 @@
+ [
+ 'enableBulkEmails',
+ 'installedLocales',
+ 'pageHeaderTitleImage',
+ 'sidebar',
+ 'styleSheet',
+ 'supportedLocales',
+ ],
+ 'press_settings' => [
+ 'disableBulkEmailUserGroups',
+ 'favicon',
+ 'homepageImage',
+ 'pageHeaderLogoImage',
+ 'sidebar',
+ 'styleSheet',
+ 'submissionChecklist',
+ 'supportedFormLocales',
+ 'supportedLocales',
+ 'supportedSubmissionLocales',
+ 'enablePublisherId',
+ 'pressThumbnail',
+ ],
+ 'publication_settings' => [
+ 'categoryIds',
+ 'coverImage',
+ 'disciplines',
+ 'keywords',
+ 'languages',
+ 'subjects',
+ 'supportingAgencies',
+ ]
+ ];
+ }
+
+ /**
+ * Run the migrations.
+ */
+ public function up(): void
+ {
+ parent::up();
+
+ // Delete the old MODS34 filters
+ DB::statement("DELETE FROM filters WHERE class_name='plugins.metadata.mods34.filter.Mods34SchemaMonographAdapter'");
+ DB::statement("DELETE FROM filter_groups WHERE symbolic IN ('monograph=>mods34', 'mods34=>monograph')");
+
+ // pkp/pkp-lib#6604 ONIX filters still refer to Monograph rather than Submission
+ DB::statement("UPDATE filter_groups SET input_type = 'class::classes.submission.Submission' WHERE input_type = 'class::classes.monograph.Monograph';");
+ DB::statement("UPDATE filter_groups SET output_type = 'class::classes.submission.Submission[]' WHERE input_type = 'class::classes.monograph.Monograph[]';");
+
+ // pkp/pkp-lib#6609 ONIX filters does not take array of submissions as input
+ DB::statement("UPDATE filter_groups SET input_type = 'class::classes.submission.Submission[]' WHERE symbolic = 'monograph=>onix30-xml';");
+ }
+
+ /**
+ * Complete specific submission file migrations
+ *
+ * The main submission file migration is done in
+ * PKPv3_3_0UpgradeMigration and that migration must
+ * be run before this one.
+ */
+ protected function migrateSubmissionFiles()
+ {
+ parent::migrateSubmissionFiles();
+
+ // Update file stage for all internal review files
+ DB::table('submission_files as sf')
+ ->leftJoin('review_round_files as rrf', 'sf.submission_file_id', '=', 'rrf.submission_file_id')
+ ->where('sf.file_stage', '=', self::SUBMISSION_FILE_REVIEW_FILE)
+ ->where('rrf.stage_id', '=', self::WORKFLOW_STAGE_ID_INTERNAL_REVIEW)
+ ->update(['sf.file_stage' => self::SUBMISSION_FILE_INTERNAL_REVIEW_FILE]);
+ DB::table('submission_files as sf')
+ ->leftJoin('review_round_files as rrf', 'sf.submission_file_id', '=', 'rrf.submission_file_id')
+ ->where('sf.file_stage', '=', self::SUBMISSION_FILE_REVIEW_REVISION)
+ ->where('rrf.stage_id', '=', self::WORKFLOW_STAGE_ID_INTERNAL_REVIEW)
+ ->update(['sf.file_stage' => self::SUBMISSION_FILE_INTERNAL_REVIEW_REVISION]);
+
+ // Update the fileStage property for all event logs where the
+ // file has been moved to an internal review file stage
+ $internalStageIds = [
+ self::SUBMISSION_FILE_INTERNAL_REVIEW_FILE,
+ self::SUBMISSION_FILE_INTERNAL_REVIEW_REVISION,
+ ];
+ foreach ($internalStageIds as $internalStageId) {
+ $submissionIds = DB::table('submission_files')
+ ->where('file_stage', '=', $internalStageId)
+ ->pluck('submission_file_id');
+ $logIdsToChange = DB::table('event_log_settings')
+ ->where('setting_name', '=', 'submissionFileId')
+ ->whereIn('setting_value', $submissionIds)
+ ->pluck('log_id');
+ DB::table('event_log_settings')
+ ->whereIn('log_id', $logIdsToChange)
+ ->where('setting_name', '=', 'fileStage')
+ ->update(['setting_value' => $internalStageId]);
+ }
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I3573_AddPrimaryKeys.php b/classes/migration/upgrade/v3_4_0/I3573_AddPrimaryKeys.php
new file mode 100644
index 00000000000..0bef23e2d7d
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I3573_AddPrimaryKeys.php
@@ -0,0 +1,60 @@
+ 'publication_format_setting_id',
+ 'features' => 'feature_id', // INDEX RENAME?
+ 'new_releases' => 'new_release_id',
+ 'spotlight_settings' => 'spotlight_setting_id',
+ 'submission_chapter_settings' => 'submission_chapter_setting_id',
+ 'series_settings' => 'series_setting_id',
+ 'press_settings' => 'press_setting_id',
+ 'metrics_context' => 'metrics_context_id',
+ 'metrics_series' => 'metrics_series_id',
+ 'metrics_submission' => 'metrics_submission_id',
+ 'metrics_counter_submission_daily' => 'metrics_counter_submission_daily_id',
+ 'metrics_counter_submission_monthly' => 'metrics_counter_submission_monthly_id',
+ 'metrics_counter_submission_institution_daily' => 'metrics_counter_submission_institution_daily_id',
+ 'metrics_counter_submission_institution_monthly' => 'metrics_counter_submission_institution_monthly_id',
+ 'metrics_submission_geo_daily' => 'metrics_submission_geo_daily_id',
+ 'metrics_submission_geo_monthly' => 'metrics_submission_geo_monthly_id',
+ 'usage_stats_total_temporary_records' => 'usage_stats_temp_total_id',
+ 'usage_stats_unique_item_investigations_temporary_records' => 'usage_stats_temp_unique_item_id',
+ 'usage_stats_unique_item_requests_temporary_records' => 'usage_stats_temp_item_id',
+ 'usage_stats_unique_title_investigations_temporary_records' => 'usage_stats_temp_unique_investigations_id',
+ 'usage_stats_unique_title_requests_temporary_records' => 'usage_stats_temp_unique_requests_id',
+ 'usage_stats_institution_temporary_records' => 'usage_stats_temp_institution_id',
+ ]);
+ }
+
+ public static function getIndexData(): array
+ {
+ return array_merge(parent::getIndexData(), [
+ 'press_settings' => ['press_settings_pkey', ['press_id', 'locale', 'setting_name'], 'press_settings_unique', true],
+ 'series_settings' => ['series_settings_pkey', ['series_id', 'locale', 'setting_name'], 'series_settings_unique', true],
+ 'publication_format_settings' => ['publication_format_settings_pkey', ['publication_format_id', 'locale', 'setting_name'], 'publication_format_settings_unique', true],
+ 'submission_chapter_settings' => ['submission_chapter_settings_pkey', ['chapter_id', 'locale', 'setting_name'], 'submission_chapter_settings_unique', true],
+ 'features' => ['press_features_pkey', ['assoc_type', 'assoc_id', 'submission_id'], 'press_features_unique', true],
+ 'new_releases' => ['new_releases_pkey', ['assoc_type', 'assoc_id', 'submission_id'], 'new_releases_unique', true],
+ 'spotlight_settings' => ['spotlight_settings_pkey', ['spotlight_id', 'locale', 'setting_name'], 'spotlight_settings_unique', true],
+ ]);
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I5716_EmailTemplateAssignments.php b/classes/migration/upgrade/v3_4_0/I5716_EmailTemplateAssignments.php
new file mode 100644
index 00000000000..c886c8c615a
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I5716_EmailTemplateAssignments.php
@@ -0,0 +1,49 @@
+ 'APP\plugins\metadata\dc11\filter\Dc11SchemaPublicationFormatAdapter',
+ 'plugins.importexport.native.filter.MonographNativeXmlFilter' => 'APP\plugins\importexport\native\filter\MonographNativeXmlFilter',
+ 'plugins.importexport.native.filter.NativeXmlMonographFilter' => 'APP\plugins\importexport\native\filter\NativeXmlMonographFilter',
+ 'plugins.importexport.native.filter.AuthorNativeXmlFilter' => 'APP\plugins\importexport\native\filter\AuthorNativeXmlFilter',
+ 'plugins.importexport.native.filter.NativeXmlAuthorFilter' => 'APP\plugins\importexport\native\filter\NativeXmlAuthorFilter',
+ 'plugins.importexport.native.filter.PublicationFormatNativeXmlFilter' => 'APP\plugins\importexport\native\filter\PublicationFormatNativeXmlFilter',
+ 'plugins.importexport.native.filter.NativeXmlPublicationFormatFilter' => 'APP\plugins\importexport\native\filter\NativeXmlPublicationFormatFilter',
+ 'plugins.importexport.native.filter.NativeXmlMonographFileFilter' => 'APP\plugins\importexport\native\filter\NativeXmlMonographFileFilter',
+ 'plugins.importexport.onix30.filter.MonographONIX30XmlFilter' => 'APP\plugins\importexport\onix30\filter\MonographONIX30XmlFilter',
+ 'plugins.importexport.native.filter.PublicationNativeXmlFilter' => 'APP\plugins\importexport\native\filter\PublicationNativeXmlFilter',
+ 'plugins.importexport.native.filter.NativeXmlPublicationFilter' => 'APP\plugins\importexport\native\filter\NativeXmlPublicationFilter',
+ 'plugins.importexport.native.filter.ChapterNativeXmlFilter' => 'APP\plugins\importexport\native\filter\ChapterNativeXmlFilter',
+ 'plugins.importexport.native.filter.NativeXmlChapterFilter' => 'APP\plugins\importexport\native\filter\NativeXmlChapterFilter',
+
+ // pkp-lib filters
+ 'lib.pkp.plugins.importexport.users.filter.PKPUserUserXmlFilter' => 'PKP\plugins\importexport\users\filter\PKPUserUserXmlFilter',
+ 'lib.pkp.plugins.importexport.users.filter.UserXmlPKPUserFilter' => 'PKP\plugins\importexport\users\filter\UserXmlPKPUserFilter',
+ 'lib.pkp.plugins.importexport.users.filter.UserGroupNativeXmlFilter' => 'PKP\plugins\importexport\users\filter\UserGroupNativeXmlFilter',
+ 'lib.pkp.plugins.importexport.users.filter.NativeXmlUserGroupFilter' => 'PKP\plugins\importexport\users\filter\NativeXmlUserGroupFilter',
+ 'lib.pkp.plugins.importexport.native.filter.SubmissionFileNativeXmlFilter' => 'PKP\plugins\importexport\native\filter\SubmissionFileNativeXmlFilter',
+ ];
+
+ public const TASK_RENAME_MAP = [
+ 'lib.pkp.classes.task.ReviewReminder' => 'PKP\task\ReviewReminder',
+ 'lib.pkp.classes.task.PublishSubmissions' => 'PKP\task\PublishSubmissions',
+ 'lib.pkp.classes.task.StatisticsReport' => '\PKP\task\StatisticsReport',
+ 'lib.pkp.classes.task.RemoveUnvalidatedExpiredUsers' => 'PKP\task\RemoveUnvalidatedExpiredUsers',
+ 'lib.pkp.classes.task.UpdateIPGeoDB' => 'PKP\classes\task\UpdateIPGeoDB',
+ 'classes.tasks.UsageStatsLoader' => 'APP\tasks\UsageStatsLoader',
+ 'lib.pkp.classes.task.EditorialReminders' => 'PKP\task\EditorialReminders',
+ ];
+
+ /**
+ * Run the migration.
+ */
+ public function up(): void
+ {
+ foreach (self::FILTER_RENAME_MAP as $oldName => $newName) {
+ DB::statement('UPDATE filters SET class_name = ? WHERE class_name = ?', [$newName, $oldName]);
+ }
+ foreach (self::TASK_RENAME_MAP as $oldName => $newName) {
+ DB::statement('UPDATE scheduled_tasks SET class_name = ? WHERE class_name = ?', [$newName, $oldName]);
+ }
+ DB::statement('UPDATE filter_groups SET output_type=? WHERE output_type = ?', ['metadata::APP\plugins\metadata\dc11\schema\Dc11Schema(PUBLICATION_FORMAT)', 'metadata::plugins.metadata.dc11.schema.Dc11Schema(PUBLICATION_FORMAT)']);
+ }
+
+ /**
+ * Reverse the downgrades
+ */
+ public function down(): void
+ {
+ foreach (self::FILTER_RENAME_MAP as $oldName => $newName) {
+ DB::statement('UPDATE filters SET class_name = ? WHERE class_name = ?', [$oldName, $newName]);
+ }
+ foreach (self::TASK_RENAME_MAP as $oldName => $newName) {
+ DB::statement('UPDATE scheduled_tasks SET class_name = ? WHERE class_name = ?', [$oldName, $newName]);
+ }
+ DB::statement('UPDATE filter_groups SET output_type=? WHERE output_type = ?', ['metadata::plugins.metadata.dc11.schema.Dc11Schema(PUBLICATION_FORMAT)', 'metadata::APP\plugins\metadata\dc11\schema\Dc11Schema(PUBLICATION_FORMAT)']);
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php b/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php
new file mode 100644
index 00000000000..9b1d2d7fc70
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php
@@ -0,0 +1,147 @@
+foreign('press_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['press_id'], 'spotlights_press_id');
+ });
+ Schema::table('spotlight_settings', function (Blueprint $table) {
+ $table->foreign('spotlight_id')->references('spotlight_id')->on('spotlights')->onDelete('cascade');
+ $table->index(['spotlight_id'], 'spotlight_settings_spotlight_id');
+ });
+ Schema::table('series_settings', function (Blueprint $table) {
+ $table->foreign('series_id', 'series_settings_series_id')->references('series_id')->on('series')->onDelete('cascade');
+ $table->index(['series_id'], 'series_settings_series_id');
+ });
+ Schema::table('series_categories', function (Blueprint $table) {
+ $table->foreign('series_id', 'series_categories_series_id')->references('series_id')->on('series')->onDelete('cascade');
+ $table->index(['series_id'], 'series_categories_series_id');
+
+ $table->foreign('category_id', 'series_categories_category_id')->references('category_id')->on('categories')->onDelete('cascade');
+ $table->index(['category_id'], 'series_categories_category_id');
+ });
+ Schema::table('series', function (Blueprint $table) {
+ $table->foreign('press_id', 'series_press_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->foreign('review_form_id', 'series_review_form_id')->references('review_form_id')->on('review_forms')->onDelete('set null');
+ $table->index(['review_form_id'], 'series_review_form_id');
+ });
+ Schema::table('completed_payments', function (Blueprint $table) {
+ $table->foreign('context_id', 'completed_payments_context_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'completed_payments_context_id');
+
+ $table->foreign('user_id')->references('user_id')->on('users')->onDelete('set null');
+ $table->index(['user_id'], 'completed_payments_user_id');
+ });
+
+ Schema::table('publications', function (Blueprint $table) {
+ $table->foreign('primary_contact_id', 'publications_author_id')->references('author_id')->on('authors')->onDelete('set null');
+ $table->index(['primary_contact_id'], 'publications_primary_contact_id');
+
+ $table->foreign('submission_id', 'publications_submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+
+ $table->foreign('series_id', 'publications_series_id')->references('series_id')->on('series')->onDelete('set null');
+ });
+
+ Schema::table('publication_formats', function (Blueprint $table) {
+ $table->foreign('publication_id', 'publication_formats_publication_id')->references('publication_id')->on('publications')->onDelete('cascade');
+ $table->index(['publication_id'], 'publication_formats_publication_id');
+ });
+
+ Schema::table('submission_chapters', function (Blueprint $table) {
+ $table->foreign('publication_id', 'submission_chapters_publication_id')->references('publication_id')->on('publications')->onDelete('cascade');
+ $table->index(['publication_id'], 'submission_chapters_publication_id');
+
+ $table->foreign('primary_contact_id')->references('author_id')->on('authors')->onDelete('set null');
+ $table->index(['primary_contact_id'], 'submission_chapters_primary_contact_id');
+ });
+
+ Schema::table('submission_chapter_settings', function (Blueprint $table) {
+ $table->foreign('chapter_id')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ });
+
+ Schema::table('submission_chapter_authors', function (Blueprint $table) {
+ $table->foreign('chapter_id')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'submission_chapter_authors_chapter_id');
+
+ $table->foreign('author_id')->references('author_id')->on('authors')->onDelete('cascade');
+ $table->index(['author_id'], 'submission_chapter_authors_author_id');
+ });
+
+ Schema::table('markets', function (Blueprint $table) {
+ $table->foreign('publication_format_id', 'markets_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'markets_publication_format_id');
+ });
+
+ Schema::table('publication_format_settings', function (Blueprint $table) {
+ $table->foreign('publication_format_id', 'publication_format_settings_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'publication_format_settings_publication_format_id');
+ });
+
+ Schema::table('publication_dates', function (Blueprint $table) {
+ $table->foreign('publication_format_id', 'publication_dates_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'publication_dates_publication_format_id');
+ });
+
+ Schema::table('identification_codes', function (Blueprint $table) {
+ $table->foreign('publication_format_id', 'identification_codes_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'identification_codes_publication_format_id');
+ });
+
+ Schema::table('sales_rights', function (Blueprint $table) {
+ $table->foreign('publication_format_id', 'sales_rights_publication_format_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['publication_format_id'], 'sales_rights_publication_format_id');
+ });
+
+ Schema::table('new_releases', function (Blueprint $table) {
+ $table->foreign('submission_id', 'new_releases_submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'new_releases_submission_id');
+ });
+
+ Schema::table('representatives', function (Blueprint $table) {
+ $table->foreign('submission_id', 'representatives_submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'representatives_submission_id');
+ });
+
+ Schema::table('features', function (Blueprint $table) {
+ $table->foreign('submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'features_submission_id');
+ });
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I6241_RequiredGenres.php b/classes/migration/upgrade/v3_4_0/I6241_RequiredGenres.php
new file mode 100644
index 00000000000..30611ab31f4
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I6241_RequiredGenres.php
@@ -0,0 +1,29 @@
+where('entry_key', 'MANUSCRIPT') // "Book Manuscript" from genres.xml
+ ->update(['required' => 1]);
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I6306_EnableCategories.php b/classes/migration/upgrade/v3_4_0/I6306_EnableCategories.php
new file mode 100644
index 00000000000..4b0ed7ed820
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I6306_EnableCategories.php
@@ -0,0 +1,29 @@
+bigIncrements('metrics_context_id');
+
+ $table->string('load_id', 255);
+ $table->index(['load_id'], 'metrics_context_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_context_context_id');
+
+ $table->date('date');
+ $table->integer('metric');
+ });
+ Schema::create('metrics_series', function (Blueprint $table) {
+ $table->bigIncrements('metrics_series_id');
+
+ $table->string('load_id', 255);
+ $table->index(['load_id'], 'metrics_series_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_series_context_id');
+
+ $table->bigInteger('series_id');
+ $table->foreign('series_id')->references('series_id')->on('series')->onDelete('cascade');
+ $table->index(['series_id'], 'metrics_series_series_id');
+
+ $table->date('date');
+ $table->integer('metric');
+
+ $table->index(['context_id', 'series_id'], 'metrics_series_context_id_series_id');
+ });
+ Schema::create('metrics_submission', function (Blueprint $table) {
+ $table->bigIncrements('metrics_submission_id');
+
+ $table->string('load_id', 255);
+ $table->index(['load_id'], 'ms_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_submission_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_submission_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'metrics_submission_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'metrics_submission_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'metrics_submission_submission_file_id');
+
+ $table->bigInteger('file_type')->nullable();
+ $table->bigInteger('assoc_type');
+ $table->date('date');
+ $table->integer('metric');
+
+ $table->index(['context_id', 'submission_id', 'assoc_type', 'file_type'], 'ms_context_id_submission_id_assoc_type_file_type');
+ });
+ Schema::create('metrics_counter_submission_daily', function (Blueprint $table) {
+ $table->bigIncrements('metrics_counter_submission_daily_id');
+
+ $table->string('load_id', 255);
+ $table->index(['load_id'], 'msd_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msd_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_counter_submission_daily_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msd_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_counter_submission_daily_submission_id');
+
+ $table->date('date');
+ $table->integer('metric_book_investigations');
+ $table->integer('metric_book_investigations_unique');
+ $table->integer('metric_book_requests');
+ $table->integer('metric_book_requests_unique');
+ $table->integer('metric_chapter_investigations');
+ $table->integer('metric_chapter_investigations_unique');
+ $table->integer('metric_chapter_requests');
+ $table->integer('metric_chapter_requests_unique');
+ $table->integer('metric_title_investigations_unique');
+ $table->integer('metric_title_requests_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msd_context_id_submission_id');
+ $table->unique(['load_id', 'context_id', 'submission_id', 'date'], 'msd_uc_load_id_context_id_submission_id_date');
+ });
+ Schema::create('metrics_counter_submission_monthly', function (Blueprint $table) {
+ $table->bigIncrements('metrics_counter_submission_monthly_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msm_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_counter_submission_monthly_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msm_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_counter_submission_monthly_submission_id');
+
+ $table->integer('month');
+ $table->integer('metric_book_investigations');
+ $table->integer('metric_book_investigations_unique');
+ $table->integer('metric_book_requests');
+ $table->integer('metric_book_requests_unique');
+ $table->integer('metric_chapter_investigations');
+ $table->integer('metric_chapter_investigations_unique');
+ $table->integer('metric_chapter_requests');
+ $table->integer('metric_chapter_requests_unique');
+ $table->integer('metric_title_investigations_unique');
+ $table->integer('metric_title_requests_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msm_context_id_submission_id');
+ $table->unique(['context_id', 'submission_id', 'month'], 'msm_uc_context_id_submission_id_month');
+ });
+ Schema::create('metrics_counter_submission_institution_daily', function (Blueprint $table) {
+ $table->bigIncrements('metrics_counter_submission_institution_daily_id');
+
+ $table->string('load_id', 255);
+ $table->index(['load_id'], 'msid_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msid_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'msid_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msid_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'msid_submission_id');
+
+ $table->bigInteger('institution_id');
+ $table->foreign('institution_id', 'msid_institution_id_foreign')->references('institution_id')->on('institutions')->onDelete('cascade');
+ $table->index(['institution_id'], 'msid_institution_id');
+
+ $table->date('date');
+ $table->integer('metric_book_investigations');
+ $table->integer('metric_book_investigations_unique');
+ $table->integer('metric_book_requests');
+ $table->integer('metric_book_requests_unique');
+ $table->integer('metric_chapter_investigations');
+ $table->integer('metric_chapter_investigations_unique');
+ $table->integer('metric_chapter_requests');
+ $table->integer('metric_chapter_requests_unique');
+ $table->integer('metric_title_investigations_unique');
+ $table->integer('metric_title_requests_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msid_context_id_submission_id');
+ $table->unique(['load_id', 'context_id', 'submission_id', 'institution_id', 'date'], 'msid_uc_load_id_context_id_submission_id_institution_id_date');
+ });
+ Schema::create('metrics_counter_submission_institution_monthly', function (Blueprint $table) {
+ $table->bigIncrements('metrics_counter_submission_institution_monthly_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msim_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'msim_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msim_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'msim_submission_id');
+
+ $table->bigInteger('institution_id');
+ $table->foreign('institution_id', 'msim_institution_id_foreign')->references('institution_id')->on('institutions')->onDelete('cascade');
+ $table->index(['institution_id'], 'msim_institution_id');
+
+ $table->integer('month');
+ $table->integer('metric_book_investigations');
+ $table->integer('metric_book_investigations_unique');
+ $table->integer('metric_book_requests');
+ $table->integer('metric_book_requests_unique');
+ $table->integer('metric_chapter_investigations');
+ $table->integer('metric_chapter_investigations_unique');
+ $table->integer('metric_chapter_requests');
+ $table->integer('metric_chapter_requests_unique');
+ $table->integer('metric_title_investigations_unique');
+ $table->integer('metric_title_requests_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msim_context_id_submission_id');
+ $table->unique(['context_id', 'submission_id', 'institution_id', 'month'], 'msim_uc_context_id_submission_id_institution_id_month');
+ });
+ Schema::create('metrics_submission_geo_daily', function (Blueprint $table) {
+ $table->bigIncrements('metrics_submission_geo_daily_id');
+
+ $table->string('load_id', 255);
+ $table->index(['load_id'], 'msgd_load_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msgd_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_submission_geo_daily_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msgd_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_submission_geo_daily_submission_id');
+
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->date('date');
+ $table->integer('metric');
+ $table->integer('metric_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msgd_context_id_submission_id');
+ $table->unique(['load_id', 'context_id', 'submission_id', 'country', 'region', 'city', 'date'], 'msgd_uc_load_context_submission_c_r_c_date');
+ });
+ Schema::create('metrics_submission_geo_monthly', function (Blueprint $table) {
+ $table->bigIncrements('metrics_submission_geo_monthly_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'msgm_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'metrics_submission_geo_monthly_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'msgm_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'metrics_submission_geo_monthly_submission_id');
+
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->integer('month');
+ $table->integer('metric');
+ $table->integer('metric_unique');
+
+ $table->index(['context_id', 'submission_id'], 'msgm_context_id_submission_id');
+ $table->unique(['context_id', 'submission_id', 'country', 'region', 'city', 'month'], 'msgm_uc_context_submission_c_r_c_month');
+ });
+ // Usage stats total book and chapter item temporary records
+ Schema::create('usage_stats_total_temporary_records', function (Blueprint $table) {
+ $table->bigIncrements('usage_stats_temp_total_id');
+
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 255);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+ $table->string('canonical_url', 255);
+
+ $table->bigInteger('series_id')->nullable();
+ $table->foreign('series_id', 'ust_series_id_foreign')->references('series_id')->on('series')->onDelete('cascade');
+ $table->index(['series_id'], 'ust_series_id');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'ust_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'ust_context_id');
+
+ $table->bigInteger('submission_id')->nullable();
+ $table->foreign('submission_id', 'ust_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'ust_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'ust_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'ust_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'ust_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'ust_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'ust_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'ust_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 255);
+ });
+ // Usage stats unique book and chapter item investigations temporary records
+ // No need to consider series_id here because investigations are only relevant/calculated on submission level.
+ Schema::create('usage_stats_unique_item_investigations_temporary_records', function (Blueprint $table) {
+ $table->bigIncrements('usage_stats_temp_unique_item_id');
+
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 255);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'usii_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'usii_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'usii_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'usii_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'usii_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'usii_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'usii_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'usii_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'usii_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'usii_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 255);
+ });
+ // Usage stats unique book and chapter item requests temporary records
+ // No need to consider series_id here because requests are only relevant/calculated on submission level.
+ Schema::create('usage_stats_unique_item_requests_temporary_records', function (Blueprint $table) {
+ $table->bigIncrements('usage_stats_temp_item_id');
+
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 255);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'usir_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'usir_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'usir_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'usir_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'usir_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'usir_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'usir_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'usir_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'usir_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'usir_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 255);
+ });
+ // Usage stats unique title investigations temporary records
+ // No need to consider series_id here because investigations are only relevant/calculated on submission level.
+ Schema::create('usage_stats_unique_title_investigations_temporary_records', function (Blueprint $table) {
+ $table->bigIncrements('usage_stats_temp_unique_investigations_id');
+
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 255);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'usti_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'usti_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'usti_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'usti_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'usti_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'usti_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'usti_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'usti_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'usti_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'usti_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 255);
+ });
+ // Usage stats unique title requests temporary records
+ // No need to consider series_id here because requests are only relevant/calculated on submission level.
+ Schema::create('usage_stats_unique_title_requests_temporary_records', function (Blueprint $table) {
+ $table->bigIncrements('usage_stats_temp_unique_requests_id');
+
+ $table->dateTime('date', $precision = 0);
+ $table->string('ip', 255);
+ $table->string('user_agent', 255);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('context_id');
+ $table->foreign('context_id', 'ustr_context_id_foreign')->references('press_id')->on('presses')->onDelete('cascade');
+ $table->index(['context_id'], 'ustr_context_id');
+
+ $table->bigInteger('submission_id');
+ $table->foreign('submission_id', 'ustr_submission_id_foreign')->references('submission_id')->on('submissions')->onDelete('cascade');
+ $table->index(['submission_id'], 'ustr_submission_id');
+
+ $table->bigInteger('chapter_id')->nullable();
+ $table->foreign('chapter_id', 'ustr_chapter_id_foreign')->references('chapter_id')->on('submission_chapters')->onDelete('cascade');
+ $table->index(['chapter_id'], 'ustr_chapter_id');
+
+ $table->bigInteger('representation_id')->nullable();
+ $table->foreign('representation_id', 'ustr_representation_id_foreign')->references('publication_format_id')->on('publication_formats')->onDelete('cascade');
+ $table->index(['representation_id'], 'ustr_representation_id');
+
+ $table->bigInteger('submission_file_id')->unsigned()->nullable();
+ $table->foreign('submission_file_id', 'ustr_submission_file_id_foreign')->references('submission_file_id')->on('submission_files')->onDelete('cascade');
+ $table->index(['submission_file_id'], 'ustr_submission_file_id');
+
+ $table->bigInteger('assoc_type');
+ $table->smallInteger('file_type')->nullable();
+ $table->string('country', 2)->default('');
+ $table->string('region', 3)->default('');
+ $table->string('city', 255)->default('');
+ $table->string('load_id', 255);
+ });
+ // Usage stats institution temporary records
+ Schema::create('usage_stats_institution_temporary_records', function (Blueprint $table) {
+ $table->bigIncrements('usage_stats_temp_institution_id');
+
+ $table->string('load_id', 255);
+ $table->bigInteger('line_number');
+
+ $table->bigInteger('institution_id');
+ $table->foreign('institution_id', 'usi_institution_id_foreign')->references('institution_id')->on('institutions')->onDelete('cascade');
+ $table->index(['institution_id'], 'usi_institution_id');
+
+ $table->unique(['load_id', 'line_number', 'institution_id'], 'usi_load_id_line_number_institution_id');
+ });
+ }
+
+ /**
+ * Reverse the downgrades
+ *
+ * @throws DowngradeNotSupportedException
+ */
+ public function down(): void
+ {
+ throw new DowngradeNotSupportedException();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I6782_MetricsContext.php b/classes/migration/upgrade/v3_4_0/I6782_MetricsContext.php
new file mode 100644
index 00000000000..134f8fd4262
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I6782_MetricsContext.php
@@ -0,0 +1,30 @@
+select(DB::raw("m.load_id, m.context_id, m.assoc_id, {$dayFormatSql}, m.metric"))
+ ->where('m.assoc_type', '=', self::ASSOC_TYPE_SERIES)
+ ->where('m.metric_type', '=', 'omp::counter');
+ DB::table('metrics_series')->insertUsing(['load_id', 'context_id', 'series_id', 'date', 'metric'], $selectSeriesMetrics);
+ }
+
+ /**
+ * Reverse the downgrades
+ *
+ * @throws DowngradeNotSupportedException
+ */
+ public function down(): void
+ {
+ throw new DowngradeNotSupportedException();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I6782_MetricsSubmission.php b/classes/migration/upgrade/v3_4_0/I6782_MetricsSubmission.php
new file mode 100644
index 00000000000..781d3f71f90
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I6782_MetricsSubmission.php
@@ -0,0 +1,80 @@
+select(DB::raw("m.load_id, m.context_id, m.assoc_id, null, null, null, null, m.assoc_type, {$dayFormatSql}, m.metric"))
+ ->where('m.assoc_type', '=', self::ASSOC_TYPE_SUBMISSION)
+ ->where('m.metric_type', '=', 'omp::counter');
+ DB::table('metrics_submission')->insertUsing(['load_id', 'context_id', 'submission_id', 'chapter_id', 'representation_id', 'submission_file_id', 'file_type', 'assoc_type', 'date', 'metric'], $selectSubmissionMetrics);
+
+ $selectSubmissionFileMetrics = DB::table('metrics as m')
+ ->leftJoin('submission_file_settings as sfs', function ($join) {
+ $join->on('m.assoc_id', '=', 'sfs.submission_file_id');
+ $join->where('m.assoc_type', '=', self::ASSOC_TYPE_SUBMISSION_FILE);
+ $join->where('sfs.setting_name', '=', 'chapterId');
+ })
+ ->select(DB::raw("m.load_id, m.context_id, m.submission_id, CAST(sfs.setting_value AS {$bigIntCast}), m.representation_id, m.assoc_id, m.file_type, m.assoc_type, {$dayFormatSql}, m.metric"))
+ ->where('m.assoc_type', '=', self::ASSOC_TYPE_SUBMISSION_FILE)
+ ->where('m.metric_type', '=', 'omp::counter');
+ DB::table('metrics_submission')->insertUsing(['load_id', 'context_id', 'submission_id', 'chapter_id', 'representation_id', 'submission_file_id', 'file_type', 'assoc_type', 'date', 'metric'], $selectSubmissionFileMetrics);
+
+ $selectSubmissionSuppFileMetrics = DB::table('metrics as m')
+ ->leftJoin('submission_file_settings as sfs', function ($join) {
+ $join->on('m.assoc_id', '=', 'sfs.submission_file_id');
+ $join->where('m.assoc_type', '=', self::ASSOC_TYPE_SUBMISSION_FILE_COUNTER_OTHER);
+ $join->where('sfs.setting_name', '=', 'chapterId');
+ })
+ ->select(DB::raw("m.load_id, m.context_id, m.submission_id, CAST(sfs.setting_value AS {$bigIntCast}), m.representation_id, m.assoc_id, m.file_type, m.assoc_type, {$dayFormatSql}, m.metric"))
+ ->where('m.assoc_type', '=', self::ASSOC_TYPE_SUBMISSION_FILE_COUNTER_OTHER)
+ ->where('m.metric_type', '=', 'omp::counter');
+ DB::table('metrics_submission')->insertUsing(['load_id', 'context_id', 'submission_id', 'chapter_id', 'representation_id', 'submission_file_id', 'file_type', 'assoc_type', 'date', 'metric'], $selectSubmissionSuppFileMetrics);
+ }
+
+ /**
+ * Reverse the downgrades
+ *
+ * @throws DowngradeNotSupportedException
+ */
+ public function down(): void
+ {
+ throw new DowngradeNotSupportedException();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I6782_OrphanedMetrics.php b/classes/migration/upgrade/v3_4_0/I6782_OrphanedMetrics.php
new file mode 100644
index 00000000000..6527bb9d43a
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I6782_OrphanedMetrics.php
@@ -0,0 +1,85 @@
+leftJoin('series AS s', 'm.assoc_id', '=', 's.series_id')->where('m.assoc_type', '=', self::ASSOC_TYPE_SERIES)->whereNull('s.series_id')->distinct()->pluck('m.assoc_id');
+ $orphanedSeries = DB::table('metrics')->select($metricsColumns)->where('assoc_type', '=', self::ASSOC_TYPE_SERIES)->whereIn('assoc_id', $orphanedIds)->where('metric_type', '=', $this->getMetricType());
+ DB::table('metrics_tmp')->insertUsing($metricsColumns, $orphanedSeries);
+ DB::table('metrics')->where('assoc_type', '=', self::ASSOC_TYPE_SERIES)->whereIn('assoc_id', $orphanedIds)->delete();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I6782_RemovePlugins.php b/classes/migration/upgrade/v3_4_0/I6782_RemovePlugins.php
new file mode 100644
index 00000000000..b19e3e0db9b
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I6782_RemovePlugins.php
@@ -0,0 +1,58 @@
+disableVersion, we will remove the entry from the table 'versions' and 'plugin_settings'
+ // because the plugin cannot be used any more
+ DB::table('versions')
+ ->where('product_type', '=', 'plugins.generic')
+ ->where('product', '=', 'usageStats')
+ ->delete();
+ DB::table('plugin_settings')
+ ->where('plugin_name', '=', 'usagestatsplugin')
+ ->delete();
+
+ // It is not needed to remove usageStats plugin scheduled task from the Acron plugin, because
+ // PKPAcronPlugin function _parseCrontab() will be called at the end of update, that
+ // will overwrite the old crontab setting.
+
+ // Remove the old scheduled task from the table scheduled_tasks
+ DB::table('scheduled_tasks')->where('class_name', '=', 'plugins.generic.usageStats.UsageStatsLoader')->delete();
+ }
+
+ /**
+ * Reverse the downgrades
+ *
+ * @throws DowngradeNotSupportedException
+ */
+ public function down(): void
+ {
+ throw new DowngradeNotSupportedException();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I6807_SetLastModified.php b/classes/migration/upgrade/v3_4_0/I6807_SetLastModified.php
new file mode 100644
index 00000000000..8ee2d3f3888
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I6807_SetLastModified.php
@@ -0,0 +1,37 @@
+bigInteger('doi_id')->nullable();
+ $table->foreign('doi_id')->references('doi_id')->on('dois')->nullOnDelete();
+ $table->index(['doi_id'], 'submission_chapters_doi_id');
+ });
+
+ // Add doiId to publication formats
+ Schema::table('publication_formats', function (Blueprint $table) {
+ $table->bigInteger('doi_id')->nullable();
+ $table->foreign('doi_id')->references('doi_id')->on('dois')->nullOnDelete();
+ $table->index(['doi_id'], 'publication_formats_doi_id');
+ });
+
+ // Add doiId to submission files
+ Schema::table('submission_files', function (Blueprint $table) {
+ $table->bigInteger('doi_id')->nullable();
+ $table->foreign('doi_id')->references('doi_id')->on('dois')->nullOnDelete();
+ $table->index(['doi_id'], 'submission_files_doi_id');
+ });
+
+ $this->migrateExistingDataUp();
+ }
+
+ /**
+ * Reverse the downgrades
+ *
+ * @throws DowngradeNotSupportedException
+ */
+ public function down(): void
+ {
+ throw new DowngradeNotSupportedException();
+ }
+
+ protected function migrateExistingDataUp(): void
+ {
+ parent::migrateExistingDataUp();
+ // Find all existing DOIs, move to new DOI objects and add foreign key for pub object
+ $this->_migrateRepresentationDoisUp();
+ $this->_migrateChapterDoisUp();
+ $this->_migrateSubmissionFileDoisUp();
+ }
+
+ /**
+ * Move representation/publication format DOIs from publication_format_settings table to DOI objects
+ */
+ private function _migrateRepresentationDoisUp(): void
+ {
+ $q = DB::table('submissions', 's')
+ ->select(['s.context_id', 'pf.publication_format_id', 'pf.doi_id', 'pfss.setting_name', 'pfss.setting_value'])
+ ->leftJoin('publications as p', 'p.submission_id', '=', 's.submission_id')
+ ->leftJoin('publication_formats as pf', 'p.publication_id', '=', 'pf.publication_id')
+ ->leftJoin('publication_format_settings as pfss', 'pf.publication_format_id', '=', 'pfss.publication_format_id')
+ ->where('pfss.setting_name', '=', 'pub-id::doi');
+
+ $q->chunkById(1000, function ($items) {
+ foreach ($items as $item) {
+ // Double-check to ensure a DOI object does not already exist for publication
+ if ($item->doi_id === null) {
+ $doiId = $this->_addDoi($item->context_id, $item->setting_value);
+
+ // Add association to newly created DOI to publication
+ DB::table('publication_formats')
+ ->where('publication_format_id', '=', $item->publication_format_id)
+ ->update(['doi_id' => $doiId]);
+ } else {
+ // Otherwise, update existing DOI object
+ $this->_updateDoi($item->doi_id, $item->context_id, $item->setting_value);
+ }
+ }
+ }, 'pf.publication_format_id', 'publication_format_id');
+
+ // Remove pub-id::doi settings entry
+ DB::table('publication_settings')
+ ->where('setting_name', '=', 'pub-id::doi')
+ ->delete();
+ }
+
+ /**
+ * Move chapter DOIs from submission_chapter_settings table to DOI objects
+ */
+ private function _migrateChapterDoisUp(): void
+ {
+ $q = DB::table('submissions', 's')
+ ->select(['s.context_id', 'sc.chapter_id', 'sc.doi_id', 'scss.setting_name', 'scss.setting_value'])
+ ->leftJoin('publications as p', 'p.submission_id', '=', 's.submission_id')
+ ->leftJoin('submission_chapters as sc', 'p.publication_id', '=', 'sc.publication_id')
+ ->leftJoin('submission_chapter_settings as scss', 'sc.chapter_id', '=', 'scss.chapter_id')
+ ->where('scss.setting_name', '=', 'pub-id::doi');
+
+ $q->chunkById(1000, function ($items) {
+ foreach ($items as $item) {
+ // Double-check to ensure a DOI object does not already exist for publication
+ if ($item->doi_id === null) {
+ $doiId = $this->_addDoi($item->context_id, $item->setting_value);
+
+ // Add association to newly created DOI to publication
+ DB::table('submission_chapters')
+ ->where('chapter_id', '=', $item->chapter_id)
+ ->update(['doi_id' => $doiId]);
+ } else {
+ // Otherwise, update existing DOI object
+ $this->_updateDoi($item->doi_id, $item->context_id, $item->setting_value);
+ }
+ }
+ }, 'sc.chapter_id', 'chapter_id');
+
+ // Remove pub-id::doi settings entry
+ DB::table('publication_settings')
+ ->where('setting_name', '=', 'pub-id::doi')
+ ->delete();
+ }
+
+ /**
+ * Move submission file DOIs from submission_file_settings table to DOI objects
+ */
+ private function _migrateSubmissionFileDoisUp(): void
+ {
+ $q = DB::table('submissions', 's')
+ ->select(['s.context_id', 'sf.submission_file_id', 'sf.doi_id', 'sfss.setting_name', 'sfss.setting_value'])
+ ->leftJoin('submission_files as sf', 's.submission_id', '=', 'sf.submission_id')
+ ->leftJoin('submission_file_settings as sfss', 'sf.submission_file_id', '=', 'sfss.submission_file_id')
+ ->where('sfss.setting_name', '=', 'pub-id::doi');
+
+ $q->chunkById(1000, function ($items) {
+ foreach ($items as $item) {
+ // Double-check to ensure a DOI object does not already exist for publication
+ if ($item->doi_id === null) {
+ $doiId = $this->_addDoi($item->context_id, $item->setting_value);
+
+ // Add association to newly created DOI to publication
+ DB::table('submission_files')
+ ->where('submission_file_id', '=', $item->submission_file_id)
+ ->update(['doi_id' => $doiId]);
+ } else {
+ // Otherwise, update existing DOI object
+ $this->_updateDoi($item->doi_id, $item->context_id, $item->setting_value);
+ }
+ }
+ }, 'sf.submission_file_id', 'submission_file_id');
+
+ // Remove pub-id::doi settings entry
+ DB::table('publication_settings')
+ ->where('setting_name', '=', 'pub-id::doi')
+ ->delete();
+ }
+
+ /**
+ * Gets app-specific context table name, e.g. journals
+ */
+ protected function getContextTable(): string
+ {
+ return 'presses';
+ }
+
+ /**
+ * Gets app-specific context_id column, e.g. journal_id
+ */
+ protected function getContextIdColumn(): string
+ {
+ return 'press_id';
+ }
+
+ /**
+ * Gets app-specific context settings table, e.g. journal_settings
+ */
+ protected function getContextSettingsTable(): string
+ {
+ return 'press_settings';
+ }
+
+ /**
+ * Adds app-specific suffix patterns to data collector stdClass
+ */
+ protected function addSuffixPatternsData(\stdClass $data): \stdClass
+ {
+ $data->doiChapterSuffixPattern = [];
+ $data->doiSubmissionFileSuffixPattern = [];
+
+ return $data;
+ }
+
+ /**
+ * Adds suffix pattern settings from DB into reducer's data
+ */
+ protected function insertSuffixPatternsData(\stdClass $carry, \stdClass $item): \stdClass
+ {
+ switch ($item->setting_name) {
+ case 'doiChapterSuffixPattern':
+ $carry->doiChapterSuffixPattern[] = [
+ $this->getContextIdColumn() => $item->context_id,
+ 'setting_name' => $item->setting_name,
+ 'setting_value' => $item->setting_value
+ ];
+ return $carry;
+ case 'doiSubmissionFileSuffixPattern':
+ $carry->doiSubmissionFileSuffixPattern[] = [
+ $this->getContextIdColumn() => $item->context_id,
+ 'setting_name' => $item->setting_name,
+ 'setting_value' => $item->setting_value
+ ];
+ return $carry;
+ default:
+ return $carry;
+ }
+ }
+
+ /**
+ * Adds insert-ready statements for all applicable suffix pattern items
+ */
+ protected function prepareSuffixPatternsForInsert(\stdClass $processedData, array $insertData): array
+ {
+ foreach ($processedData->doiChapterSuffixPattern as $item) {
+ $insertData[] = $item;
+ }
+ foreach ($processedData->doiSubmissionFileSuffixPattern as $item) {
+ $insertData[] = $item;
+ }
+
+ return $insertData;
+ }
+
+ /**
+ * Add app-specific enabled DOI types for insert into DB
+ */
+ protected function insertEnabledDoiTypes(\stdClass $carry, \stdClass $item): \stdClass
+ {
+ $enabledType = null;
+ if ($item->setting_name === 'enableChapterDoi') {
+ $enabledType = 'chapter';
+ } elseif ($item->setting_name === 'enableSubmissionFileDoi') {
+ $enabledType = 'file';
+ }
+
+
+ if ($enabledType !== null) {
+ if (!isset($carry->enabledDoiTypes[$item->context_id])) {
+ $carry->enabledDoiTypes[$item->context_id] = [
+ $this->getContextIdColumn() => $item->context_id,
+ 'setting_name' => 'enabledDoiTypes',
+ 'setting_value' => [],
+ ];
+ }
+
+ if ($item->setting_value === '1') {
+ $carry->enabledDoiTypes[$item->context_id]['setting_value'][] = $enabledType;
+ }
+ }
+
+ return $carry;
+ }
+
+ /**
+ * Get an array with the keys for each suffix pattern type
+ */
+ protected function getSuffixPatternNames(): array
+ {
+ return [
+ 'doiPublicationSuffixPattern',
+ 'doiRepresentationSuffixPattern',
+ 'doiChapterSuffixPattern',
+ 'doiSubmissionFileSuffixPattern',
+ ];
+ }
+
+ /**
+ * Returns the default pattern for the given suffix pattern type
+ */
+ protected function getSuffixPatternValue(string $suffixPatternName): string
+ {
+ $pattern = '';
+ switch ($suffixPatternName) {
+ case 'doiPublicationSuffixPattern':
+ $pattern = '%p.%m';
+ break;
+ case 'doiRepresentationSuffixPattern':
+ $pattern = '%p.%m.%f';
+ break;
+ case 'doiChapterSuffixPattern':
+ $pattern = '%p.%m.c%c';
+ break;
+ case 'doiSubmissionFileSuffixPattern':
+ $pattern = '%p.%m.%f.%s';
+ break;
+ }
+
+ return $pattern;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\migration\upgrade\v3_4_0\I7014_DoiMigration', '\I7014_DoiMigration');
+}
diff --git a/classes/migration/upgrade/v3_4_0/I7128_SeriesEntityDAORefactor.php b/classes/migration/upgrade/v3_4_0/I7128_SeriesEntityDAORefactor.php
new file mode 100644
index 00000000000..15af525b70e
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I7128_SeriesEntityDAORefactor.php
@@ -0,0 +1,44 @@
+dropColumn('setting_type');
+ });
+ }
+ }
+
+ /**
+ * Reverse the downgrades
+ *
+ * @throws DowngradeNotSupportedException
+ */
+ public function down(): void
+ {
+ throw new DowngradeNotSupportedException();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I7132_AddSourceChapterId.php b/classes/migration/upgrade/v3_4_0/I7132_AddSourceChapterId.php
new file mode 100644
index 00000000000..bcdbecb3fe3
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I7132_AddSourceChapterId.php
@@ -0,0 +1,45 @@
+bigInteger('source_chapter_id')->nullable();
+ $table->foreign('source_chapter_id')->references('chapter_id')->on('submission_chapters')->onDelete('set null');
+ $table->index(['source_chapter_id'], 'submission_chapters_source_chapter_id');
+ });
+ }
+
+ /**
+ * Reverse the downgrades
+ */
+ public function down(): void
+ {
+ //remove source_chapter_id
+ Schema::table('submission_chapters', function ($table) {
+ $table->dropForeign('submission_chapters_source_chapter_id_foreign');
+ $table->dropColumn('source_chapter_id');
+ });
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I7190_RemoveOrphanFilters.php b/classes/migration/upgrade/v3_4_0/I7190_RemoveOrphanFilters.php
new file mode 100644
index 00000000000..1ca82be838d
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I7190_RemoveOrphanFilters.php
@@ -0,0 +1,62 @@
+whereNotIn(
+ 'symbolic',
+ [
+ 'mods34=>mods34-xml',
+ 'ArtworkFile=>native-xml',
+ 'native-xml=>ArtworkFile',
+ 'MonographFile=>native-xml',
+ 'SubmissionArtworkFile=>native-xml',
+ 'SupplementaryFile=>native-xml',
+ 'native-xml=>SubmissionArtworkFile',
+ 'native-xml=>SupplementaryFile'
+ ]
+ )
+ ->delete();
+
+ DB::table('filters')
+ ->whereNotExists(
+ fn (Builder $query) => $query
+ ->from('filter_groups', 'fg')
+ ->whereColumn('fg.filter_group_id', '=', 'filters.filter_group_id')
+ )
+ ->delete();
+ }
+
+ /**
+ * Reverse the downgrades
+ *
+ * @throws DowngradeNotSupportedException
+ */
+ public function down(): void
+ {
+ throw new DowngradeNotSupportedException();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I7191_EditorAssignments.php b/classes/migration/upgrade/v3_4_0/I7191_EditorAssignments.php
new file mode 100644
index 00000000000..1f688e423db
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I7191_EditorAssignments.php
@@ -0,0 +1,33 @@
+upNewDecisions();
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ parent::down();
+ $this->downNewDecisions();
+ }
+
+ /**
+ * Migrate to the new decision classes
+ *
+ * The same decision may have been taken in more than one stage
+ * before. For example, SUBMISSION_EDITOR_DECISION_ACCEPT may
+ * have been taken in the submission, internal review, or external
+ * review stage. Now, this is represented by three decisions:
+ *
+ * APP\decision\Decision::ACCEPT
+ * APP\decision\Decision::SKIP_EXTERNAL_REVIEW
+ * APP\decision\Decision::ACCEPT_INTERNAL
+ *
+ * This migration maps all of the old decisions to the new ones.
+ */
+ public function upNewDecisions()
+ {
+ foreach ($this->getDecisionMap() as $oldDecision => $changes) {
+ foreach ($changes as $stageId => $newDecision) {
+ DB::table('edit_decisions')
+ ->where('stage_id', '=', $stageId)
+ ->where('decision', '=', $oldDecision)
+ ->update(['decision' => $newDecision]);
+ }
+ }
+ }
+
+ /**
+ * Reverse the decision type changes
+ *
+ * @see self::upNewSubmissionDecisions()
+ */
+ public function downNewDecisions()
+ {
+ foreach ($this->getDecisionMap() as $oldDecision => $changes) {
+ foreach ($changes as $stageId => $newDecision) {
+ DB::table('edit_decisions')
+ ->where('stage_id', '=', $stageId)
+ ->where('decision', '=', $newDecision)
+ ->update(['decision' => $oldDecision]);
+ }
+ }
+ }
+
+ /**
+ * Get a map of the decisions in the following format
+ *
+ * [
+ * $oldDecisionA => [
+ * $stageId1 => $newDecision1,
+ * $stageId2 => $newDecision2,
+ * ],
+ * $oldDecisionB => [
+ * $stageId1 => $newDecision1,
+ * ],
+ * ]
+ *
+ * Only decisions that need to be changed are listed.
+ */
+ protected function getDecisionMap(): array
+ {
+ return [
+ // Change Decision::ACCEPT...
+ 2 => [
+ // ...in WORKFLOW_STAGE_ID_SUBMISSION to Decision::SKIP_EXTERNAL_REVIEW
+ 1 => 19,
+ // ...in WORKFLOW_STAGE_ID_INTERNAL_REVIEW to Decision::ACCEPT_INTERNAL
+ 2 => 24,
+ // Accept decisions in WORKFLOW_STAGE_ID_EXTERNAL_REVIEW are not changed.
+ ],
+
+ // Change Decision::EXTERNAL_REVIEW...
+ 3 => [
+ // ...in WORKFLOW_STAGE_ID_SUBMISSION to Decision::SKIP_INTERNAL_REVIEW
+ 1 => 23,
+ // Send to external review decisions in WORKFLOW_STAGE_ID_INTERNAL_REVIEW are not changed.
+ ],
+
+ // Change Decision::DECLINE...
+ 6 => [
+ // ...in WORKFLOW_STAGE_ID_INTERNAL_REVIEW to Decision::DECLINE_INTERNAL
+ 2 => 27,
+ ],
+
+ // Change Decision::RECOMMEND_ACCEPT...
+ 11 => [
+ // ... in WORKFLOW_STAGE_ID_INTERNAL_REVIEW to Decision::RECOMMEND_ACCEPT_INTERNAL
+ 2 => 28,
+ ],
+
+ // Change Decision::RECOMMEND_DECLINE...
+ 14 => [
+ // ... in WORKFLOW_STAGE_ID_INTERNAL_REVIEW to Decision::RECOMMEND_DECLINE_INTERNAL
+ 2 => 31,
+ ],
+
+ // Change Decision::RECOMMEND_RESUBMIT...
+ 13 => [
+ // ... in WORKFLOW_STAGE_ID_INTERNAL_REVIEW to Decision::RECOMMEND_RESUBMIT_INTERNAL
+ 2 => 30,
+ ],
+
+ // Change Decision::RECOMMEND_PENDING_REVISIONS...
+ 12 => [
+ // ... in WORKFLOW_STAGE_ID_INTERNAL_REVIEW to Decision::RECOMMEND_PENDING_REVISIONS_INTERNAL
+ 2 => 29,
+ ],
+
+ // Change Decision::PENDING_REVISIONS...
+ 4 => [
+ // ... in WORKFLOW_STAGE_ID_INTERNAL_REVIEW to Decision::PENDING_REVISIONS_INTERNAL
+ 2 => 25,
+ ],
+
+ // Change Decision::RESUBMIT...
+ 5 => [
+ // ... in WORKFLOW_STAGE_ID_INTERNAL_REVIEW to Decision::RESUBMIT_INTERNAL
+ 2 => 26,
+ ],
+ ];
+ }
+
+ protected function getContextTable(): string
+ {
+ return 'presses';
+ }
+
+ protected function getContextSettingsTable(): string
+ {
+ return 'press_settings';
+ }
+
+ protected function getContextIdColumn(): string
+ {
+ return 'press_id';
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I7434_WorkType.php b/classes/migration/upgrade/v3_4_0/I7434_WorkType.php
new file mode 100644
index 00000000000..140c5fff159
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I7434_WorkType.php
@@ -0,0 +1,54 @@
+where('setting_name', '=', 'workType')
+ ->delete();
+ }
+
+ /**
+ * Reverse the migration
+ */
+ public function down(): void
+ {
+ // Data should not be returned to the settings table
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I7725_DecisionConstantsUpdate.php b/classes/migration/upgrade/v3_4_0/I7725_DecisionConstantsUpdate.php
new file mode 100644
index 00000000000..800333298b3
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I7725_DecisionConstantsUpdate.php
@@ -0,0 +1,204 @@
+ [WORKFLOW_STAGE_ID_SUBMISSION],
+ 'current_value' => 9,
+ 'updated_value' => 8,
+ ],
+
+ // \PKP\decision\Decision::RECOMMEND_ACCEPT
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 11,
+ 'updated_value' => 9,
+ ],
+
+ // \PKP\decision\Decision::RECOMMEND_PENDING_REVISIONS
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 12,
+ 'updated_value' => 10,
+ ],
+
+ // \PKP\decision\Decision::RECOMMEND_RESUBMIT
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 13,
+ 'updated_value' => 11,
+ ],
+
+ // \PKP\decision\Decision::RECOMMEND_DECLINE
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 14,
+ 'updated_value' => 12,
+ ],
+
+ // \PKP\decision\Decision::RECOMMEND_EXTERNAL_REVIEW
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 15,
+ 'updated_value' => 13,
+ ],
+
+ // \PKP\decision\Decision::NEW_EXTERNAL_ROUND
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 16,
+ 'updated_value' => 14,
+ ],
+
+ // \PKP\decision\Decision::REVERT_DECLINE
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 17,
+ 'updated_value' => 15,
+ ],
+
+ // \PKP\decision\Decision::REVERT_INITIAL_DECLINE
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_SUBMISSION],
+ 'current_value' => 18,
+ 'updated_value' => 16,
+ ],
+
+ // \PKP\decision\Decision::SKIP_EXTERNAL_REVIEW
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EDITING],
+ 'current_value' => 19,
+ 'updated_value' => 17,
+ ],
+
+ // \PKP\decision\Decision::SKIP_INTERNAL_REVIEW
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 20,
+ 'updated_value' => 18,
+ ],
+
+ // \PKP\decision\Decision::ACCEPT_INTERNAL
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EDITING],
+ 'current_value' => 21,
+ 'updated_value' => 19,
+ ],
+
+ // \PKP\decision\Decision::PENDING_REVISIONS_INTERNAL
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_INTERNAL_REVIEW],
+ 'current_value' => 22,
+ 'updated_value' => 20
+ ],
+
+ // \PKP\decision\Decision::RESUBMIT_INTERNAL
+ [
+ 'stage_id' => [],
+ 'current_value' => 23,
+ 'updated_value' => 21,
+ ],
+
+ // \PKP\decision\Decision::DECLINE_INTERNAL
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_INTERNAL_REVIEW],
+ 'current_value' => 24,
+ 'updated_value' => 22,
+ ],
+
+ // \PKP\decision\Decision::RECOMMEND_ACCEPT_INTERNAL
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_INTERNAL_REVIEW],
+ 'current_value' => 25,
+ 'updated_value' => 23,
+ ],
+
+ // \PKP\decision\Decision::RECOMMEND_PENDING_REVISIONS_INTERNAL
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_INTERNAL_REVIEW],
+ 'current_value' => 26,
+ 'updated_value' => 24,
+ ],
+
+ // \PKP\decision\Decision::RECOMMEND_RESUBMIT_INTERNAL
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_INTERNAL_REVIEW],
+ 'current_value' => 27,
+ 'updated_value' => 25,
+ ],
+
+ // \PKP\decision\Decision::RECOMMEND_DECLINE_INTERNAL
+ [
+ 'stage_id' => [],
+ 'current_value' => 28,
+ 'updated_value' => 26,
+ ],
+
+ // \PKP\decision\Decision::REVERT_INTERNAL_DECLINE
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_INTERNAL_REVIEW],
+ 'current_value' => 29,
+ 'updated_value' => 27,
+ ],
+
+ // \PKP\decision\Decision::NEW_INTERNAL_ROUND
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_INTERNAL_REVIEW],
+ 'current_value' => 30,
+ 'updated_value' => 28,
+ ],
+
+ // \PKP\decision\Decision::BACK_FROM_PRODUCTION
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_EDITING],
+ 'current_value' => 31,
+ 'updated_value' => 29,
+ ],
+
+ // \PKP\decision\Decision::BACK_FROM_COPYEDITING
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_SUBMISSION, WORKFLOW_STAGE_ID_INTERNAL_REVIEW, WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 32,
+ 'updated_value' => 30,
+ ],
+
+ // \PKP\decision\Decision::CANCEL_REVIEW_ROUND
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_SUBMISSION, WORKFLOW_STAGE_ID_INTERNAL_REVIEW, WORKFLOW_STAGE_ID_EXTERNAL_REVIEW],
+ 'current_value' => 33,
+ 'updated_value' => 31,
+ ],
+
+ // \PKP\decision\Decision::CANCEL_INTERNAL_REVIEW_ROUND
+ [
+ 'stage_id' => [WORKFLOW_STAGE_ID_SUBMISSION, WORKFLOW_STAGE_ID_INTERNAL_REVIEW],
+ 'current_value' => 34,
+ 'updated_value' => 32,
+ ],
+ ];
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I8027_DoiVersioning.php b/classes/migration/upgrade/v3_4_0/I8027_DoiVersioning.php
new file mode 100644
index 00000000000..342f18ea594
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I8027_DoiVersioning.php
@@ -0,0 +1,52 @@
+distinct()
+ ->get(['press_id']);
+ $insertStatements = $pressIds->reduce(function ($carry, $item) {
+ $carry[] = [
+ 'press_id' => $item->press_id,
+ 'setting_name' => 'doiVersioning',
+ 'setting_value' => 0
+ ];
+
+ return $carry;
+ }, []);
+
+ DB::table('press_settings')
+ ->insert($insertStatements);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function down(): void
+ {
+ DB::table('press_settings')
+ ->where('setting_name', '=', 'doiVersioning')
+ ->delete();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I8151_ExtendSettingValues.php b/classes/migration/upgrade/v3_4_0/I8151_ExtendSettingValues.php
new file mode 100755
index 00000000000..cf3ae64daf2
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I8151_ExtendSettingValues.php
@@ -0,0 +1,57 @@
+mediumText('setting_value')->nullable()->change();
+ });
+
+ Schema::table('series_settings', function (Blueprint $table) {
+ $table->mediumText('setting_value')->nullable()->change();
+ });
+
+ Schema::table('submission_chapter_settings', function (Blueprint $table) {
+ $table->mediumText('setting_value')->nullable()->change();
+ });
+
+ Schema::table('press_settings', function (Blueprint $table) {
+ $table->mediumText('setting_value')->nullable()->change();
+ });
+
+ Schema::table('spotlight_settings', function (Blueprint $table) {
+ $table->mediumText('setting_value')->nullable()->change();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ // This downgrade is intentionally not implemented. Changing MEDIUMTEXT back to TEXT
+ // may result in data truncation. Having MEDIUMTEXT in place of TEXT in an otherwise
+ // downgraded database will not have side-effects.
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I8933_EventLogLocalized.php b/classes/migration/upgrade/v3_4_0/I8933_EventLogLocalized.php
new file mode 100644
index 00000000000..d9e689b0de2
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I8933_EventLogLocalized.php
@@ -0,0 +1,96 @@
+get(['press_id', 'primary_locale']);
+ // Add site primary locale at the end of the collection; to be used when associated context (based on a submission) cannot be determined
+ $contexts->push((object) [
+ 'press_id' => null,
+ 'primary_locale' => DB::table('site')->value('primary_locale')
+ ]);
+ /**
+ * Update locale for localized settings by context primary locale.
+ * All event types using settings that require update have submission assoc type,
+ * we can join event logs with submissions table to get the context ID
+ */
+ foreach ($contexts as $context) {
+ $idsToUpdate = DB::table('event_log as e')
+ ->leftJoin('submissions as s', 'e.assoc_id', '=', 's.submission_id')
+ ->where('assoc_type', 0x0100009) // PKPApplication::ASSOC_TYPE_SUBMISSION
+ ->whereIn('event_type', [
+ 268435475, // SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_REMOVE
+ 268435474, // SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_CREATE
+ 268435464, // SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_PUBLISH
+ 268435465, // SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_UNPUBLISH
+ 268435476, // SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_AVAILABLE
+ 268435477, // SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_UNAVAILABLE
+ ])
+ ->whereIn('e.log_id', function (Builder $qb) {
+ $qb->select('es.log_id')
+ ->from('event_log_settings as es')
+ ->whereIn('setting_name', ['publicationFormatName', 'filename']);
+ })
+ ->where('s.context_id', $context->press_id)
+ ->pluck('log_id');
+
+ foreach ($idsToUpdate->chunk(parent::CHUNK_SIZE) as $ids) {
+ DB::table('event_log_settings')->whereIn('log_id', $ids)->update(['locale' => $context->primary_locale]);
+ }
+ }
+ }
+
+ /**
+ * Add setting to the map for renaming
+ */
+ protected function mapSettings(): Collection
+ {
+ $map = parent::mapSettings();
+ $map->put(268435475, [ // SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_REMOVE
+ 'formatName' => 'publicationFormatName'
+ ]);
+ $map->put(0x50000007, [ // SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_CREATE
+ 'file' => 'filename',
+ 'name' => 'userFullName'
+ ]);
+ $map->put(268435474, [ // SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_CREATE
+ 'formatName' => 'publicationFormatName'
+ ]);
+ return $map;
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I8992_FixEmptyUrlPaths.php b/classes/migration/upgrade/v3_4_0/I8992_FixEmptyUrlPaths.php
new file mode 100644
index 00000000000..5b865dc1c8e
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I8992_FixEmptyUrlPaths.php
@@ -0,0 +1,30 @@
+introspectTable('publication_formats')->hasIndex('publication_format_submission_id')) {
+ Schema::table('publication_formats', fn (Blueprint $table) => $table->dropIndex('publication_format_submission_id'));
+ }
+
+ if (Schema::hasColumn('publication_formats', 'submission_id')) {
+ Schema::dropColumns('publication_formats', 'submission_id');
+ }
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I9040_DropSettingType.php b/classes/migration/upgrade/v3_4_0/I9040_DropSettingType.php
new file mode 100644
index 00000000000..35cba3b13f0
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I9040_DropSettingType.php
@@ -0,0 +1,26 @@
+ 'title-ASC',
+ 'title-2' => 'title-DESC',
+ 'datePublished-1' => 'datePublished-ASC',
+ 'datePublished-2' => 'datePublished-DESC',
+ 'seriesPosition-1' => 'seriesPosition-ASC',
+ 'seriesPosition-2' => 'seriesPosition-DESC',
+ ];
+
+ /**
+ * Run the migration.
+ */
+ public function up(): void
+ {
+ foreach (static::SETTING_VALUE_MAP as $from => $to) {
+ DB::statement('UPDATE press_settings SET setting_value=? WHERE setting_value=? AND setting_name = ?', [$to, $from, 'catalogSortOption']);
+ }
+ }
+
+ /**
+ * Reverse the migration
+ */
+ public function down(): void
+ {
+ foreach (static::SETTING_VALUE_MAP as $from => $to) {
+ DB::statement('UPDATE press_settings SET setting_value=? WHERE setting_value=? AND setting_name = ?', [$from, $to, 'catalogSortOption']);
+ }
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php b/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php
new file mode 100644
index 00000000000..389c7bd7191
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php
@@ -0,0 +1,88 @@
+string('load_id', 50)->change();
+ });
+ }
+
+ // Drop the too big unique indexes
+ // msgd_uc_load_context_submission_c_r_c_date and
+ // msgm_uc_context_submission_c_r_c_month,
+ // and create new ones using city column prefix for MySQL
+ Schema::table('metrics_submission_geo_daily', function (Blueprint $table) {
+ $table->dropUnique('msgd_uc_load_context_submission_c_r_c_date');
+ switch (DB::getDriverName()) {
+ case 'mysql':
+ $table->unique([DB::raw('load_id, context_id, submission_id, country, region, city(80), date')], 'msgd_uc_load_context_submission_c_r_c_date');
+ break;
+ case 'pgsql':
+ $table->unique(['load_id', 'context_id', 'submission_id', 'country', 'region', 'city', 'date'], 'msgd_uc_load_context_submission_c_r_c_date');
+ break;
+ }
+ });
+ Schema::table('metrics_submission_geo_monthly', function (Blueprint $table) {
+ $table->dropUnique('msgm_uc_context_submission_c_r_c_month');
+ switch (DB::getDriverName()) {
+ case 'mysql':
+ $table->unique([DB::raw('context_id, submission_id, country, region, city(80), month')], 'msgm_uc_context_submission_c_r_c_month');
+ break;
+ case 'pgsql':
+ $table->unique(['context_id', 'submission_id', 'country', 'region', 'city', 'month'], 'msgm_uc_context_submission_c_r_c_month');
+ break;
+ }
+ });
+ }
+
+ /**
+ * Reverse the downgrades
+ *
+ * @throws DowngradeNotSupportedException
+ */
+ public function down(): void
+ {
+ throw new DowngradeNotSupportedException();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/I9627_AddUsageStatsTemporaryTablesIndexes.php b/classes/migration/upgrade/v3_4_0/I9627_AddUsageStatsTemporaryTablesIndexes.php
new file mode 100644
index 00000000000..ddee3c6e76f
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/I9627_AddUsageStatsTemporaryTablesIndexes.php
@@ -0,0 +1,62 @@
+getDoctrineSchemaManager();
+ Schema::table('usage_stats_unique_title_investigations_temporary_records', function (Blueprint $table) use ($sm) {
+ $indexesFound = $sm->listTableIndexes('usage_stats_unique_title_investigations_temporary_records');
+ if (!array_key_exists('usti_load_id_context_id_ip', $indexesFound)) {
+ $table->index(['load_id', 'context_id', 'ip'], 'usti_load_id_context_id_ip');
+ }
+ });
+ Schema::table('usage_stats_unique_title_requests_temporary_records', function (Blueprint $table) use ($sm) {
+ $indexesFound = $sm->listTableIndexes('usage_stats_unique_title_requests_temporary_records');
+ if (!array_key_exists('ustr_load_id_context_id_ip', $indexesFound)) {
+ $table->index(['load_id', 'context_id', 'ip'], 'ustr_load_id_context_id_ip');
+ }
+ });
+ }
+
+ /**
+ * Reverse the downgrades
+ *
+ * @throws DowngradeNotSupportedException
+ */
+ public function down(): void
+ {
+ throw new DowngradeNotSupportedException();
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/InstallEmailTemplates.php b/classes/migration/upgrade/v3_4_0/InstallEmailTemplates.php
new file mode 100644
index 00000000000..7c4ac7a89e4
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/InstallEmailTemplates.php
@@ -0,0 +1,56 @@
+ 'pressName',
+ 'contextUrl' => 'pressUrl',
+ 'contextSignature' => 'pressSignature',
+ ];
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/MergeLocalesMigration.php b/classes/migration/upgrade/v3_4_0/MergeLocalesMigration.php
new file mode 100644
index 00000000000..2ceb5cdd16d
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/MergeLocalesMigration.php
@@ -0,0 +1,35 @@
+ ['press_id', 'press_setting_id'],
+ 'publication_format_settings' => ['publication_format_id', 'publication_format_setting_id'],
+ 'series_settings' => ['series_id', 'series_setting_id'],
+ 'spotlight_settings' => ['spotlight_id', 'spotlight_setting_id'],
+ 'submission_chapter_settings' => ['chapter_id', 'submission_chapter_setting_id'],
+ ])->merge(parent::getSettingsTables());
+ }
+}
diff --git a/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php b/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php
new file mode 100644
index 00000000000..32e4ab81114
--- /dev/null
+++ b/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php
@@ -0,0 +1,228 @@
+addTableProcessor('publication_formats', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~2 entities: doi_id->dois.doi_id(not found in previous version) publication_id->publications.publication_id
+ $affectedRows += $this->deleteRequiredReference('publication_formats', 'publication_id', 'publications', 'publication_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('submission_chapters', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~4 entities: doi_id->dois.doi_id(not found in previous version) primary_contact_id->authors.author_id publication_id->publications.publication_id source_chapter_id->submission_chapters.chapter_id
+ $affectedRows += $this->deleteRequiredReference('submission_chapters', 'publication_id', 'publications', 'publication_id');
+
+ $affectedRows += $this->cleanOptionalReference('submission_chapters', 'primary_contact_id', 'authors', 'author_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('publications', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~4 entities: primary_contact_id->authors.author_id doi_id->dois.doi_id(not found in previous version) series_id->series.series_id submission_id->submissions.submission_id
+ $affectedRows += $this->cleanOptionalReference('publications', 'series_id', 'series', 'series_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('series', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~2 entities: press_id->presses.press_id review_form_id->review_forms.review_form_id
+ $affectedRows += $this->deleteRequiredReference('series', $this->getContextKeyField(), $this->getContextTable(), $this->getContextKeyField());
+ $affectedRows += $this->cleanOptionalReference('series', 'review_form_id', 'review_forms', 'review_form_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('spotlights', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: press_id->presses.press_id
+ $affectedRows += $this->deleteRequiredReference('spotlights', $this->getContextKeyField(), $this->getContextTable(), $this->getContextKeyField());
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('completed_payments', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~2 entities: context_id->presses.press_id user_id->users.user_id
+ $affectedRows += $this->deleteRequiredReference('completed_payments', 'context_id', $this->getContextTable(), $this->getContextKeyField());
+ $affectedRows += $this->deleteOptionalReference('completed_payments', 'user_id', 'users', 'user_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('features', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: submission_id->submissions.submission_id
+ $affectedRows += $this->deleteRequiredReference('features', 'submission_id', 'submissions', 'submission_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('identification_codes', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: publication_format_id->publication_formats.publication_format_id
+ $affectedRows += $this->deleteRequiredReference('identification_codes', 'publication_format_id', 'publication_formats', 'publication_format_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('markets', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: publication_format_id->publication_formats.publication_format_id
+ $affectedRows += $this->deleteRequiredReference('markets', 'publication_format_id', 'publication_formats', 'publication_format_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('new_releases', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: submission_id->submissions.submission_id
+ $affectedRows += $this->deleteRequiredReference('new_releases', 'submission_id', 'submissions', 'submission_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('press_settings', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: press_id->presses.press_id
+ $affectedRows += $this->deleteRequiredReference($this->getContextSettingsTable(), $this->getContextKeyField(), $this->getContextTable(), $this->getContextKeyField());
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('publication_dates', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: publication_format_id->publication_formats.publication_format_id
+ $affectedRows += $this->deleteRequiredReference('publication_dates', 'publication_format_id', 'publication_formats', 'publication_format_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('publication_format_settings', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: publication_format_id->publication_formats.publication_format_id
+ $affectedRows += $this->deleteRequiredReference('publication_format_settings', 'publication_format_id', 'publication_formats', 'publication_format_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('representatives', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: submission_id->submissions.submission_id
+ $affectedRows += $this->deleteRequiredReference('representatives', 'submission_id', 'submissions', 'submission_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('sales_rights', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: publication_format_id->publication_formats.publication_format_id
+ $affectedRows += $this->deleteRequiredReference('sales_rights', 'publication_format_id', 'publication_formats', 'publication_format_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('series_categories', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~2 entities: category_id->categories.category_id series_id->series.series_id
+ $affectedRows += $this->deleteRequiredReference('series_categories', 'series_id', 'series', 'series_id');
+ $affectedRows += $this->deleteRequiredReference('series_categories', 'category_id', 'categories', 'category_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('series_settings', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: series_id->series.series_id
+ $affectedRows += $this->deleteRequiredReference('series_settings', 'series_id', 'series', 'series_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('spotlight_settings', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: spotlight_id->spotlights.spotlight_id
+ $affectedRows += $this->deleteRequiredReference('spotlight_settings', 'spotlight_id', 'spotlights', 'spotlight_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('submission_chapter_authors', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~2 entities: author_id->authors.author_id chapter_id->submission_chapters.chapter_id
+ $affectedRows += $this->deleteRequiredReference('submission_chapter_authors', 'chapter_id', 'submission_chapters', 'chapter_id');
+ $affectedRows += $this->deleteRequiredReference('submission_chapter_authors', 'author_id', 'authors', 'author_id');
+ return $affectedRows;
+ });
+
+ $this->addTableProcessor('submission_chapter_settings', function (): int {
+ $affectedRows = 0;
+ // Depends directly on ~1 entities: chapter_id->submission_chapters.chapter_id
+ $affectedRows += $this->deleteRequiredReference('submission_chapter_settings', 'chapter_id', 'submission_chapters', 'chapter_id');
+ return $affectedRows;
+ });
+ }
+
+ protected function getEntityRelationships(): array
+ {
+ return [
+ $this->getContextTable() => ['submissions', 'user_groups', 'series', 'categories', 'navigation_menu_items', 'filters', 'genres', 'announcement_types', 'navigation_menus', 'spotlights', 'notifications', 'library_files', 'email_templates', $this->getContextSettingsTable(), 'plugin_settings', 'user_group_stage', 'subeditor_submission_group', 'notification_subscription_settings', 'completed_payments'],
+ 'submissions' => ['publication_formats', 'submission_files', 'publications', 'review_rounds', 'review_assignments', 'submission_search_objects', 'library_files', 'submission_settings', 'submission_comments', 'stage_assignments', 'review_round_files', 'representatives', 'new_releases', 'features', 'edit_decisions'],
+ 'users' => ['submission_files', 'review_assignments', 'email_log', 'notifications', 'event_log', 'user_user_groups', 'user_settings', 'user_interests', 'temporary_files', 'submission_comments', 'subeditor_submission_group', 'stage_assignments', 'sessions', 'query_participants', 'notification_subscription_settings', 'notes', 'email_log_users', 'edit_decisions', 'completed_payments', 'access_keys'],
+ 'submission_files' => ['submission_files', 'submission_file_settings', 'submission_file_revisions', 'review_round_files', 'review_files'],
+ 'publication_formats' => ['sales_rights', 'publication_format_settings', 'publication_dates', 'markets', 'identification_codes'],
+ 'submission_chapters' => ['submission_chapters', 'submission_chapter_settings', 'submission_chapter_authors'],
+ 'publications' => ['submissions', 'publication_formats', 'submission_chapters', 'authors', 'citations', 'publication_settings', 'publication_categories'],
+ 'user_groups' => ['authors', 'user_user_groups', 'user_group_stage', 'user_group_settings', 'subeditor_submission_group', 'stage_assignments'],
+ 'series' => ['publications', 'series_settings', 'series_categories'],
+ 'authors' => ['submission_chapters', 'publications', 'submission_chapter_authors', 'author_settings'],
+ 'categories' => ['categories', 'series_categories', 'publication_categories', 'category_settings'],
+ 'review_forms' => ['series', 'review_assignments', 'review_form_elements', 'review_form_settings'],
+ 'review_rounds' => ['review_assignments', 'review_round_files', 'edit_decisions'],
+ 'data_object_tombstones' => ['data_object_tombstone_settings', 'data_object_tombstone_oai_set_objects'],
+ 'files' => ['submission_files', 'submission_file_revisions'],
+ 'filters' => ['filters', 'filter_settings'],
+ 'genres' => ['submission_files', 'genre_settings'],
+ 'navigation_menu_item_assignments' => ['navigation_menu_item_assignments', 'navigation_menu_item_assignment_settings'],
+ 'navigation_menu_items' => ['navigation_menu_item_assignments', 'navigation_menu_item_settings'],
+ 'announcement_types' => ['announcements', 'announcement_type_settings'],
+ 'review_assignments' => ['review_form_responses', 'review_files'],
+ 'review_form_elements' => ['review_form_responses', 'review_form_element_settings'],
+ 'controlled_vocab_entries' => ['user_interests', 'controlled_vocab_entry_settings'],
+ 'queries' => ['query_participants'],
+ 'navigation_menus' => ['navigation_menu_item_assignments'],
+ 'library_files' => ['library_file_settings'],
+ 'event_log' => ['event_log_settings'],
+ 'email_templates' => ['email_templates_settings'],
+ 'email_log' => ['email_log_users'],
+ 'spotlights' => ['spotlight_settings'],
+ 'static_pages' => ['static_page_settings'],
+ 'controlled_vocabs' => ['controlled_vocab_entries'],
+ 'citations' => ['citation_settings'],
+ 'submission_search_keyword_list' => ['submission_search_object_keywords'],
+ 'submission_search_objects' => ['submission_search_object_keywords'],
+ 'announcements' => ['announcement_settings'],
+ 'filter_groups' => ['filters'],
+ 'notifications' => ['notification_settings']
+ ];
+ }
+}
diff --git a/classes/monograph/Author.inc.php b/classes/monograph/Author.inc.php
deleted file mode 100644
index ecc84315231..00000000000
--- a/classes/monograph/Author.inc.php
+++ /dev/null
@@ -1,38 +0,0 @@
-getData('isVolumeEditor');
- }
-
- /**
- * Set whether or not this author should be displayed as a volume editor
- * @param $isVolumeEditor boolean
- */
- public function setIsVolumeEditor($isVolumeEditor) {
- $this->setData('isVolumeEditor', $isVolumeEditor);
- }
-}
-
-
diff --git a/classes/monograph/AuthorDAO.inc.php b/classes/monograph/AuthorDAO.inc.php
deleted file mode 100644
index 71cc4d00f90..00000000000
--- a/classes/monograph/AuthorDAO.inc.php
+++ /dev/null
@@ -1,26 +0,0 @@
-getData($key, $preferredLocale)) {
- return $this->getData($key, $preferredLocale);
- }
- // 2. User's current locale
- if (!empty($this->getData($key, AppLocale::getLocale()))) {
- return $this->getData($key, AppLocale::getLocale());
- }
- // 3. The first locale we can find data for
- $data = $this->getData($key, null);
- foreach ((array) $data as $value) {
- if (!empty($value)) {
- return $value;
- }
- }
-
- return null;
- }
-
- /**
- * Get the combined prefix, title and subtitle for all locales
- * @return array
- */
- function getFullTitles() {
- $allTitles = (array) $this->getData('title');
- $return = [];
- foreach ($allTitles as $locale => $title) {
- if (!$title) {
- continue;
- }
- $return[$locale] = $this->getLocalizedFullTitle($locale);
- }
- return $return;
- }
-
- /**
- * Get the chapter full title (with title and subtitle).
- * @param string $preferedLocale
- * @return string
- */
- function getLocalizedFullTitle($preferedLocale = null) {
-
- $fullTitle = $this->getLocalizedTitle($preferedLocale);
-
- if ($subtitle = $this->getLocalizedSubtitle($preferedLocale)) {
- $fullTitle = PKPString::concatTitleFields(array($fullTitle, $subtitle));
- }
-
- return $fullTitle;
- }
-
- /**
- * Get localized title of a chapter.
- */
- function getLocalizedTitle($preferedLocale = null) {
- return $this->getLocalizedData('title', $preferedLocale);
- }
-
- /**
- * Get title of chapter (primary locale)
- * @param $locale string
- * @return string
- */
- function getTitle($locale = null) {
- return $this->getData('title', $locale);
- }
-
- /**
- * Set title of chapter
- * @param $title string
- * @param $locale string
- */
- function setTitle($title, $locale = null) {
- return $this->setData('title', $title, $locale);
- }
-
- /**
- * Get localized sub title of a chapter.
- */
- function getLocalizedSubtitle($preferedLocale = null) {
- return $this->getLocalizedData('subtitle', $preferedLocale);
- }
-
- /**
- * Get sub title of chapter (primary locale)
- * @param $locale string
- * @return string
- */
- function getSubtitle($locale = null) {
- return $this->getData('subtitle', $locale);
- }
-
- /**
- * Set sub title of chapter
- * @param $subtitle string
- * @param $locale string
- */
- function setSubtitle($subtitle, $locale = null) {
- return $this->setData('subtitle', $subtitle, $locale);
- }
-
- /**
- * Get sequence of chapter.
- * @return float
- */
- function getSequence() {
- return $this->getData('sequence');
- }
-
- /**
- * Set sequence of chapter.
- * @param $sequence float
- */
- function setSequence($sequence) {
- return $this->setData('sequence', $sequence);
- }
-
- /**
- * Get all authors of this chapter.
- * @return DAOResultFactory Iterator of authors
- */
- function getAuthors() {
- $chapterAuthorDao = DAORegistry::getDAO('ChapterAuthorDAO'); /* @var $chapterAuthorDao ChapterAuthorDAO */
- return $chapterAuthorDao->getAuthors($this->getData('publicationId'), $this->getId());
- }
-
- /**
- * Get the author names for this chapter and return them as a string.
- * @param $preferred boolean If the preferred public name should be used, if exist
- * @return string
- */
- function getAuthorNamesAsString($preferred = true) {
- $authorNames = array();
- $authors = $this->getAuthors();
- while ($author = $authors->next()) {
- $authorNames[] = $author->getFullName($preferred);
- }
- return join(', ', $authorNames);
- }
-
- /**
- * Get stored public ID of the chapter.
- * @param @literal $pubIdType string One of the NLM pub-id-type values or
- * 'other::something' if not part of the official NLM list
- * (see ). @endliteral
- * @return int
- */
- function getStoredPubId($pubIdType) {
- return $this->getData('pub-id::'.$pubIdType);
- }
-
- /**
- * Set the stored public ID of the chapter.
- * @param $pubIdType string One of the NLM pub-id-type values or
- * 'other::something' if not part of the official NLM list
- * (see ).
- * @param $pubId string
- */
- function setStoredPubId($pubIdType, $pubId) {
- $this->setData('pub-id::'.$pubIdType, $pubId);
- }
-
- /**
- * @copydoc DataObject::getDAO()
- */
- function getDAO() {
- return DAORegistry::getDAO('ChapterDAO');
- }
-
- /**
- * Get abstract of chapter (primary locale)
- * @param $locale string
- * @return string
- */
- function getAbstract($locale = null) {
- return $this->getData('abstract', $locale);
- }
-
- /**
- * Set abstract of chapter
- * @param $abstract string
- * @param $locale string
- */
- function setAbstract($abstract, $locale = null) {
- return $this->setData('abstract', $abstract, $locale);
- }
- /**
- * Get localized abstract of a chapter.
- */
- function getLocalizedAbstract() {
- return $this->getLocalizedData('abstract');
- }
-
- /**
- * get date published
- * @return date
- */
- function getDatePublished() {
- return $this->getData('datePublished');
- }
-
- /**
- * set date published
- * @param $datePublished date
- */
- function setDatePublished($datePublished) {
- return $this->setData('datePublished', $datePublished);
- }
-
- /**
- * get pages
- * @return string
- */
- function getPages() {
- return $this->getData('pages');
- }
-
- /**
- * set pages
- * @param $pages string
- */
- function setPages($pages) {
- $this->setData('pages', $pages);
- }
-}
-
-
diff --git a/classes/monograph/Chapter.php b/classes/monograph/Chapter.php
new file mode 100644
index 00000000000..39827e827c2
--- /dev/null
+++ b/classes/monograph/Chapter.php
@@ -0,0 +1,386 @@
+getData('title');
+ $fullTitles = [];
+ foreach ($titles as $locale => $title) {
+ if (!$title) {
+ continue;
+ }
+ $fullTitles[$locale] = $this->getLocalizedFullTitle($locale);
+ }
+ return $fullTitles;
+ }
+
+ /**
+ * Get the chapter full title (with title and subtitle).
+ *
+ * @param null|mixed $preferredLocale
+ *
+ * @return string
+ */
+ public function getLocalizedFullTitle($preferredLocale = null)
+ {
+ $title = $this->getLocalizedData('title', $preferredLocale);
+ $subtitle = $this->getLocalizedData('subtitle', $preferredLocale);
+ if ($subtitle) {
+ return PKPString::concatTitleFields([$title, $subtitle]);
+ }
+ return $title;
+ }
+
+ /**
+ * Get localized title of a chapter.
+ */
+ public function getLocalizedTitle()
+ {
+ return $this->getLocalizedData('title');
+ }
+
+ /**
+ * Get title of chapter (primary locale)
+ *
+ * @param string $locale
+ *
+ * @return string
+ */
+ public function getTitle($locale = null)
+ {
+ return $this->getData('title', $locale);
+ }
+
+ /**
+ * Set title of chapter
+ *
+ * @param string $title
+ * @param string $locale
+ */
+ public function setTitle($title, $locale = null)
+ {
+ return $this->setData('title', $title, $locale);
+ }
+
+ /**
+ * Get localized sub title of a chapter.
+ */
+ public function getLocalizedSubtitle()
+ {
+ return $this->getLocalizedData('subtitle');
+ }
+
+ /**
+ * Get sub title of chapter (primary locale)
+ *
+ * @param string $locale
+ *
+ * @return string
+ */
+ public function getSubtitle($locale = null)
+ {
+ return $this->getData('subtitle', $locale);
+ }
+
+ /**
+ * Set sub title of chapter
+ *
+ * @param string $subtitle
+ * @param string $locale
+ */
+ public function setSubtitle($subtitle, $locale = null)
+ {
+ return $this->setData('subtitle', $subtitle, $locale);
+ }
+
+ /**
+ * Get sequence of chapter.
+ *
+ * @return float
+ */
+ public function getSequence()
+ {
+ return $this->getData('sequence');
+ }
+
+ /**
+ * Set sequence of chapter.
+ *
+ * @param float $sequence
+ */
+ public function setSequence($sequence)
+ {
+ return $this->setData('sequence', $sequence);
+ }
+
+ /**
+ * Get all authors of this chapter.
+ *
+ * @return LazyCollection Iterator of authors
+ */
+ public function getAuthors()
+ {
+ return Repo::author()->getCollector()
+ ->filterByChapterIds([$this->getId()])
+ ->filterByPublicationIds([$this->getData('publicationId')])
+ ->getMany();
+ }
+
+ /**
+ * Get the author names for this chapter and return them as a string.
+ *
+ * @param bool $preferred If the preferred public name should be used, if exist
+ *
+ * @return string
+ */
+ public function getAuthorNamesAsString($preferred = true)
+ {
+ $authorNames = [];
+ $authors = $this->getAuthors();
+ foreach ($authors as $author) {
+ $authorNames[] = $author->getFullName($preferred);
+ }
+ return join(', ', $authorNames);
+ }
+
+ /**
+ * Get stored public ID of the chapter.
+ *
+ * @param string $pubIdType @literal string One of the NLM pub-id-type values or
+ * 'other::something' if not part of the official NLM list
+ * (see ). @endliteral
+ *
+ * @return string
+ */
+ public function getStoredPubId($pubIdType)
+ {
+ if ($pubIdType == 'doi') {
+ return $this->getDoi();
+ } else {
+ return $this->getData('pub-id::' . $pubIdType);
+ }
+ }
+
+ /**
+ * Set the stored public ID of the chapter.
+ *
+ * @param string $pubIdType One of the NLM pub-id-type values or
+ * 'other::something' if not part of the official NLM list
+ * (see ).
+ * @param string $pubId
+ */
+ public function setStoredPubId($pubIdType, $pubId)
+ {
+ if ($pubIdType == 'doi') {
+ if ($doiObject = $this->getData('doiObject')) {
+ Repo::doi()->edit($doiObject, ['doi' => $pubId]);
+ } else {
+ $publication = Repo::publication()->get($this->getData('publicationId'));
+ $submission = Repo::submission()->get($publication->getId());
+ $contextId = $submission->getData('contextId');
+
+ $newDoiObject = Repo::doi()->newDataObject(
+ [
+ 'doi' => $pubId,
+ 'contextId' => $contextId
+ ]
+ );
+ $doiId = Repo::doi()->add($newDoiObject);
+ $this->setData('doiId', $doiId);
+ }
+ } else {
+ $this->setData('pub-id::' . $pubIdType, $pubId);
+ }
+ }
+
+ /**
+ * @copydoc DataObject::getDAO()
+ */
+ public function getDAO()
+ {
+ return DAORegistry::getDAO('ChapterDAO');
+ }
+
+ /**
+ * Get abstract of chapter (primary locale)
+ *
+ * @param string $locale
+ *
+ * @return string
+ */
+ public function getAbstract($locale = null)
+ {
+ return $this->getData('abstract', $locale);
+ }
+
+ /**
+ * Set abstract of chapter
+ *
+ * @param string $abstract
+ * @param string $locale
+ */
+ public function setAbstract($abstract, $locale = null)
+ {
+ return $this->setData('abstract', $abstract, $locale);
+ }
+ /**
+ * Get localized abstract of a chapter.
+ */
+ public function getLocalizedAbstract()
+ {
+ return $this->getLocalizedData('abstract');
+ }
+
+ /**
+ * get date published
+ *
+ * @return string
+ */
+ public function getDatePublished()
+ {
+ return $this->getData('datePublished');
+ }
+
+ /**
+ * set date published
+ *
+ * @param string $datePublished
+ */
+ public function setDatePublished($datePublished)
+ {
+ return $this->setData('datePublished', $datePublished);
+ }
+
+ /**
+ * get pages
+ *
+ * @return string
+ */
+ public function getPages()
+ {
+ return $this->getData('pages');
+ }
+
+ /**
+ * set pages
+ *
+ * @param string $pages
+ */
+ public function setPages($pages)
+ {
+ $this->setData('pages', $pages);
+ }
+
+ /**
+ * Get source chapter id of chapter.
+ *
+ * @return null|int
+ */
+ public function getSourceChapterId()
+ {
+ if (!$this->getData('sourceChapterId')) {
+ $this->setSourceChapterId($this->getId());
+ }
+ return $this->getData('sourceChapterId');
+ }
+
+ /**
+ * Set source chapter id of chapter.
+ *
+ */
+ public function setSourceChapterId(?int $sourceChapterId): void
+ {
+ $this->setData('sourceChapterId', $sourceChapterId);
+ }
+
+ /**
+ * Is a landing page enabled or disabled.
+ *
+ * @return null|int
+ */
+ public function isPageEnabled()
+ {
+ return $this->getData('isPageEnabled');
+ }
+
+ /**
+ * Enable or disable a landing page.
+ *
+ */
+ public function setPageEnabled(?int $enable): void
+ {
+ $this->setData('isPageEnabled', $enable);
+ }
+
+ /**
+ * Returns current DOI
+ *
+ */
+ public function getDoi(): ?string
+ {
+ $doiObject = $this->getData('doiObject');
+
+ if (empty($doiObject)) {
+ return null;
+ } else {
+ return $doiObject->getData('doi');
+ }
+ }
+
+ /**
+ * get license url
+ *
+ * @return null|string
+ */
+ public function getLicenseUrl()
+ {
+ return $this->getData('licenseUrl');
+ }
+
+ /**
+ * set license url
+ *
+ */
+ public function setLicenseUrl(?string $licenseUrl): void
+ {
+ $this->setData('licenseUrl', $licenseUrl);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\monograph\Chapter', '\Chapter');
+}
diff --git a/classes/monograph/ChapterAuthor.inc.php b/classes/monograph/ChapterAuthor.inc.php
deleted file mode 100644
index 87b8d98da14..00000000000
--- a/classes/monograph/ChapterAuthor.inc.php
+++ /dev/null
@@ -1,42 +0,0 @@
-getData('chapterId');
- }
-
- /**
- * Set ID of chapter.
- * @param $chapterId int
- */
- function setChapterId($chapterId) {
- return $this->setData('chapterId', $chapterId);
- }
-}
-
-
diff --git a/classes/monograph/ChapterAuthorDAO.inc.php b/classes/monograph/ChapterAuthorDAO.inc.php
deleted file mode 100644
index 02e334744ee..00000000000
--- a/classes/monograph/ChapterAuthorDAO.inc.php
+++ /dev/null
@@ -1,164 +0,0 @@
-retrieve(
- 'SELECT a.*,
- sca.chapter_id,
- sca.primary_contact,
- sca.seq,
- ug.show_title,
- s.locale AS submission_locale
- FROM authors a
- JOIN publications p ON (p.publication_id = a.publication_id)
- JOIN submissions s ON (s.submission_id = p.submission_id)
- JOIN submission_chapter_authors sca ON (a.author_id = sca.author_id)
- JOIN user_groups ug ON (a.user_group_id = ug.user_group_id)' .
- ( (count($params) > 0) ? ' WHERE' : '' ) .
- ( isset($publicationId) ? ' a.publication_id = ?' : '' ) .
- ( (isset($publicationId) && isset($chapterId)) ? ' AND' : '' ) .
- ( isset($chapterId) ? ' sca.chapter_id = ?' : '' ) .
- ' ORDER BY sca.chapter_id, sca.seq',
- $params
- ),
- $this,
- '_fromRow',
- ['id']
- );
- }
-
- /**
- * Get all authors IDs for a given chapter.
- * @param $chapterId int
- * @return array
- */
- function getAuthorIdsByChapterId($chapterId) {
- $result = $this->retrieve(
- 'SELECT author_id
- FROM submission_chapter_authors
- WHERE chapter_id = ?',
- [(int) $chapterId]
- );
- $authorIds = [];
- foreach ($result as $row) $authorIds[] = $row->author_id;
- return $authorIds;
- }
-
- /**
- * Add an author to a chapter.
- * @param $chapterId int
- * @param $monographId int
- * @return array
- */
- function insertChapterAuthor($authorId, $chapterId, $isPrimary = false, $sequence = 0) {
- //FIXME: How to handle sequence?
- $this->update(
- 'INSERT INTO submission_chapter_authors
- (author_id, chapter_id, primary_contact, seq)
- VALUES
- (?, ?, ?, ?)',
- [
- (int) $authorId,
- (int) $chapterId,
- (int) $isPrimary,
- (int) $sequence
- ]
- );
- }
-
- /**
- * Remove an author from a chapter
- * @param $chapterId int
- */
- function deleteChapterAuthorById($authorId, $chapterId = null) {
- $params = [(int) $authorId];
- if ($chapterId) $params[] = (int) $chapterId;
-
- $this->update(
- 'DELETE FROM submission_chapter_authors WHERE author_id = ?' .
- ($chapterId?' AND chapter_id = ?':''),
- $params
- );
- }
-
- /**
- * Remove all authors from a chapter
- * @param $chapterId int
- */
- function deleteChapterAuthorsByChapterId($chapterId) {
- $this->update(
- 'DELETE FROM submission_chapter_authors WHERE chapter_id = ?',
- [(int) $chapterId]
- );
- }
-
- /**
- * Construct and return a new data object.
- * @return ChapterAuthor
- */
- function newDataObject() {
- return new ChapterAuthor();
- }
-
- /**
- * Internal function to return an Author object from a row.
- * @param $row array
- * @return Author
- */
- function _fromRow($row) {
- // Start with an Author object and copy the common elements
- $authorDao = DAORegistry::getDAO('AuthorDAO'); /* @var $authorDao AuthorDAO */
- $author = $authorDao->_fromRow($row);
-
- $chapterAuthor = $this->newDataObject();
- $chapterAuthor->setId((int) $author->getId());
- $chapterAuthor->setGivenName($author->getGivenName(null), null);
- $chapterAuthor->setFamilyName($author->getFamilyName(null), null);
- $chapterAuthor->setAffiliation($author->getAffiliation(null), null);
- $chapterAuthor->setCountry($author->getCountry());
- $chapterAuthor->setEmail($author->getEmail());
- $chapterAuthor->setUrl($author->getUrl());
- $chapterAuthor->setUserGroupId($author->getUserGroupId());
-
- // Add additional data that is chapter author specific
- $chapterAuthor->setPrimaryContact($row['primary_contact']);
- $chapterAuthor->setSequence((int) $row['seq']); ;
- $chapterAuthor->setChapterId((int) $row['chapter_id']);
-
- return $chapterAuthor;
- }
-}
-
-
diff --git a/classes/monograph/ChapterDAO.inc.php b/classes/monograph/ChapterDAO.inc.php
deleted file mode 100644
index d1b428f6598..00000000000
--- a/classes/monograph/ChapterDAO.inc.php
+++ /dev/null
@@ -1,306 +0,0 @@
-retrieve(
- 'SELECT * FROM submission_chapters WHERE chapter_id = ?'
- . ($publicationId !== null?' AND publication_id = ? ':''),
- $params
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Retrieve all chapters of a publication.
- * @param $publicationId int
- * @param $orderBySequence boolean
- * @return DAOResultFactory
- */
- function getByPublicationId($publicationId, $orderBySequence = true) {
- return new DAOResultFactory(
- $this->retrieve(
- 'SELECT spc.*
- FROM submission_chapters spc
- INNER JOIN publications p ON (spc.publication_id = p.publication_id)
- WHERE p.publication_id = ?'
- . ($orderBySequence ? ' ORDER BY spc.seq ASC' : ''),
- [(int) $publicationId]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Retrieve all chapters of a press.
- * @param $pressId int
- * @return DAOResultFactory
- */
- function getByContextId($pressId) {
- return new DAOResultFactory(
- $this->retrieve(
- 'SELECT spc.*
- FROM submission_chapters spc
- INNER JOIN publications p ON (spc.publication_id = p.publication_id)
- INNER JOIN submissions s ON (p.submission_id = s.submission_id)
- WHERE s.context_id = ?',
- [(int) $pressId]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Get the list of fields for which locale data is stored.
- * @return array
- */
- function getLocaleFieldNames() {
- return ['title', 'subtitle','abstract'];
- }
-
- /**
- * Get a list of additional fields that do not have
- * dedicated accessors.
- * @return array
- */
- function getAdditionalFieldNames() {
- $additionalFields = parent::getAdditionalFieldNames();
- // FIXME: Move this to a PID plug-in.
- $additionalFields[] = 'pub-id::publisher-id';
- $additionalFields[] = 'datePublished';
- $additionalFields[] = 'pages';
- return $additionalFields;
- }
-
- /**
- * Get a new data object
- * @return Chapter
- */
- function newDataObject() {
- return new Chapter();
- }
-
- /**
- * Internal function to return a Chapter object from a row.
- * @param $row array
- * @return Chapter
- */
- function _fromRow($row) {
- $chapter = $this->newDataObject();
- $chapter->setId((int) $row['chapter_id']);
- $chapter->setData('publicationId', (int) $row['publication_id']);
- $chapter->setSequence((int) $row['seq']);
-
- $this->getDataObjectSettings('submission_chapter_settings', 'chapter_id', $row['chapter_id'], $chapter);
-
- HookRegistry::call('ChapterDAO::_fromRow', array(&$chapter, &$row));
-
- return $chapter;
- }
-
- /**
- * Update the settings for this object
- * @param $chapter object
- */
- function updateLocaleFields($chapter) {
- $this->updateDataObjectSettings(
- 'submission_chapter_settings',
- $chapter,
- ['chapter_id' => $chapter->getId()]
- );
- }
-
- /**
- * Insert a new board chapter.
- * @param $chapter Chapter
- */
- function insertChapter($chapter) {
- $this->update(
- 'INSERT INTO submission_chapters
- (publication_id, seq)
- VALUES
- (?, ?)',
- [
- (int) $chapter->getData('publicationId'),
- (int) $chapter->getSequence(),
- ]
- );
-
- $chapter->setId($this->getInsertId());
- $this->updateLocaleFields($chapter);
- return $chapter->getId();
- }
-
- /**
- * Update an existing board chapter.
- * @param $chapter Chapter
- */
- function updateObject($chapter) {
- $this->update(
- 'UPDATE submission_chapters
- SET publication_id = ?,
- seq = ?
- WHERE
- chapter_id = ?',
- [
- (int) $chapter->getData('publicationId'),
- (int) $chapter->getSequence(),
- (int) $chapter->getId()
- ]
- );
- $this->updateLocaleFields($chapter);
- }
-
- /**
- * Delete a board chapter, including membership info
- * @param $chapter Chapter
- */
- function deleteObject($chapter) {
- $this->deleteById($chapter->getId());
- }
-
- /**
- * Delete a board chapter, including membership info
- * @param $chapterId int
- */
- function deleteById($chapterId) {
- $this->update('DELETE FROM submission_chapter_authors WHERE chapter_id = ?', [(int) $chapterId]);
- $this->update('DELETE FROM submission_chapter_settings WHERE chapter_id = ?', [(int) $chapterId]);
- $this->update('DELETE FROM submission_chapters WHERE chapter_id = ?', [(int) $chapterId]);
- $this->update('DELETE FROM submission_file_settings WHERE setting_name = ? AND setting_value = ?', ['chapterId', (int) $chapterId]);
- }
-
- /**
- * Sequentially renumber chapters in their sequence order, optionally by monographId
- * @param $publicationId int
- */
- function resequenceChapters($publicationId) {
- $params = [];
- if ($publicationId !== null) $params[] = (int) $publicationId;
-
- $result = $this->retrieve(
- 'SELECT chapter_id FROM submission_chapters
- WHERE 1=1'
- . ($publicationId !== null ? ' AND publication_id = ?':'')
- . ' ORDER BY seq',
- $params
- );
-
- $i=0;
- foreach ($result as $row) {
- $this->update(
- 'UPDATE submission_chapters SET seq = ? WHERE chapter_id = ?',
- [++$i, $row->chapter_id]
- );
- }
- }
-
- /**
- * Get the ID of the last inserted board chapter.
- * @return int
- */
- function getInsertId() {
- return $this->_getInsertId('submission_chapters', 'chapter_id');
- }
-
- /**
- * @copydoc PKPPubIdPluginDAO::pubIdExists()
- */
- function pubIdExists($pubIdType, $pubId, $excludePubObjectId, $contextId) {
- $result = $this->retrieve(
- 'SELECT COUNT(*) AS row_count
- FROM submission_chapter_settings scs
- INNER JOIN submission_chapters sc ON scs.chapter_id = sc.chapter_id
- INNER JOIN publications p ON sc.publication_id = p.publication_id
- INNER JOIN submissions s ON p.submission_id = s.submission_id
- WHERE scs.setting_name = ?
- AND scs.setting_value = ?
- AND sc.chapter_id <> ?
- AND s.context_id = ?',
- [
- 'pub-id::' . $pubIdType,
- $pubId,
- (int) $excludePubObjectId,
- (int) $contextId
- ]
- );
- $row = $result->current();
- return $row ? (boolean) $row->row_count : false;
- }
-
- /**
- * @copydoc PKPPubIdPluginDAO::changePubId()
- */
- function changePubId($pubObjectId, $pubIdType, $pubId) {
- $this->replace(
- 'submission_chapter_settings',
- [
- 'chapter_id' => (int) $pubObjectId,
- 'locale' => '',
- 'setting_name' => 'pub-id::' . $pubIdType,
- 'setting_type' => 'string',
- 'setting_value' => (string) $pubId
- ],
- ['chapter_id', 'locale', 'setting_name']
- );
- }
-
- /**
- * @copydoc PKPPubIdPluginDAO::deletePubId()
- */
- function deletePubId($pubObjectId, $pubIdType) {
- $this->update(
- 'DELETE FROM submission_chapter_settings WHERE setting_name = ? AND chapter_id = ?',
- [
- 'pub-id::' . $pubIdType,
- (int) $pubObjectId
- ]
- );
- $this->flushCache();
- }
-
- /**
- * @copydoc PKPPubIdPluginDAO::deleteAllPubIds()
- */
- function deleteAllPubIds($contextId, $pubIdType) {
- $chapters = $this->getByContextId($contextId);
- while ($chapter = $chapters->next()) {
- $this->update(
- 'DELETE FROM submission_chapter_settings WHERE setting_name = ? AND chapter_id = ?',
- [
- 'pub-id::' . $pubIdType,
- (int) $chapter->getId()
- ]
- );
- }
- $this->flushCache();
- }
-}
diff --git a/classes/monograph/ChapterDAO.php b/classes/monograph/ChapterDAO.php
new file mode 100644
index 00000000000..87e87e235e0
--- /dev/null
+++ b/classes/monograph/ChapterDAO.php
@@ -0,0 +1,414 @@
+retrieve(
+ 'SELECT * FROM submission_chapters WHERE chapter_id = ?'
+ . ($publicationId !== null ? ' AND publication_id = ? ' : ''),
+ $params
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Retrieve all chapters of a publication.
+ *
+ * @param int $publicationId
+ * @param bool $orderBySequence
+ *
+ * @return DAOResultFactory
+ */
+ public function getByPublicationId($publicationId, $orderBySequence = true)
+ {
+ return new DAOResultFactory(
+ $this->retrieve(
+ 'SELECT spc.*
+ FROM submission_chapters spc
+ INNER JOIN publications p ON (spc.publication_id = p.publication_id)
+ WHERE p.publication_id = ?'
+ . ($orderBySequence ? ' ORDER BY spc.seq ASC' : ''),
+ [(int) $publicationId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve all chapters of a press.
+ *
+ * @param int $pressId
+ *
+ * @return DAOResultFactory
+ */
+ public function getByContextId($pressId)
+ {
+ return new DAOResultFactory(
+ $this->retrieve(
+ 'SELECT spc.*
+ FROM submission_chapters spc
+ INNER JOIN publications p ON (spc.publication_id = p.publication_id)
+ INNER JOIN submissions s ON (p.submission_id = s.submission_id)
+ WHERE s.context_id = ?',
+ [(int) $pressId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve all chapters that include a given DOI ID
+ *
+ * @return DAOResultFactory
+ */
+ public function getByDoiId(int $doiId): DAOResultFactory
+ {
+ return new DAOResultFactory(
+ $this->retrieve(
+ 'SELECT spc.*
+ FROM submission_chapters spc
+ WHERE spc.doi_id = ?',
+ [$doiId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve all chapters by source chapter id.
+ *
+ * @return DAOResultFactory
+ */
+ public function getBySourceChapterId(int $sourceChapterId, bool $orderByPublicationId = true): DAOResultFactory
+ {
+ return new DAOResultFactory(
+ $this->retrieve(
+ 'SELECT *
+ FROM submission_chapters
+ WHERE source_chapter_id = ?
+ OR (source_chapter_id IS NULL AND chapter_id = ?)'
+ . ($orderByPublicationId ? ' ORDER BY publication_id ASC' : ''),
+ [$sourceChapterId, $sourceChapterId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve a chapter by source chapter ID and publication ID.
+ */
+ public function getBySourceChapterAndPublication(int $sourceChapterId, int $publicationId): Chapter|null
+ {
+ $result = $this->retrieve(
+ 'SELECT *
+ FROM submission_chapters
+ WHERE (source_chapter_id = ? OR (source_chapter_id IS NULL AND chapter_id = ?))
+ AND publication_id = ?',
+ [$sourceChapterId, $sourceChapterId, $publicationId]
+ );
+
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Get the list of fields for which locale data is stored.
+ *
+ * @return array
+ */
+ public function getLocaleFieldNames()
+ {
+ $localFieldNames = parent::getLocaleFieldNames();
+ $localFieldNames[] = 'title';
+ $localFieldNames[] = 'subtitle';
+ $localFieldNames[] = 'abstract';
+
+ return $localFieldNames;
+ }
+
+ /**
+ * Get a list of additional fields that do not have
+ * dedicated accessors.
+ *
+ * @return array
+ */
+ public function getAdditionalFieldNames()
+ {
+ $additionalFields = parent::getAdditionalFieldNames();
+ // FIXME: Move this to a PID plug-in.
+ $additionalFields[] = 'pub-id::publisher-id';
+ $additionalFields[] = 'datePublished';
+ $additionalFields[] = 'pages';
+ $additionalFields[] = 'isPageEnabled';
+ $additionalFields[] = 'licenseUrl';
+ return $additionalFields;
+ }
+
+ /**
+ * Get a new data object
+ *
+ * @return Chapter
+ */
+ public function newDataObject()
+ {
+ return new Chapter();
+ }
+
+ /**
+ * Internal function to return a Chapter object from a row.
+ *
+ * @param array $row
+ *
+ * @return Chapter
+ */
+ public function _fromRow($row)
+ {
+ $chapter = $this->newDataObject();
+ $chapter->setId((int) $row['chapter_id']);
+ $chapter->setData('publicationId', (int) $row['publication_id']);
+ $chapter->setSequence((int) $row['seq']);
+ $chapter->setData('sourceChapterId', (int) ($row['source_chapter_id'] ?? $row['chapter_id']));
+ $chapter->setData('doiId', $row['doi_id']);
+
+ if (!empty($chapter->getData('doiId'))) {
+ $chapter->setData('doiObject', Repo::doi()->get($chapter->getData('doiId')));
+ } else {
+ $chapter->setData('doiObject', null);
+ }
+
+ $this->getDataObjectSettings('submission_chapter_settings', 'chapter_id', $row['chapter_id'], $chapter);
+
+ Hook::call('ChapterDAO::_fromRow', [&$chapter, &$row]);
+
+ return $chapter;
+ }
+
+ /**
+ * Update the settings for this object
+ *
+ * @param object $chapter
+ */
+ public function updateLocaleFields($chapter)
+ {
+ $this->updateDataObjectSettings(
+ 'submission_chapter_settings',
+ $chapter,
+ ['chapter_id' => $chapter->getId()]
+ );
+ }
+
+ /**
+ * Insert a new board chapter.
+ *
+ * @param Chapter $chapter
+ */
+ public function insertChapter($chapter)
+ {
+ $params = [
+ (int) $chapter->getData('publicationId'),
+ (int) $chapter->getSequence(),
+ $chapter->getSourceChapterId(),
+ ];
+ $query = 'INSERT INTO submission_chapters (publication_id, seq, source_chapter_id) VALUES (?, ?, ?)';
+
+ $this->update($query, $params);
+ $chapter->setId($this->getInsertId());
+ $this->updateObject($chapter);
+ return $chapter->getId();
+ }
+
+ /**
+ * Update an existing board chapter.
+ *
+ * @param Chapter $chapter
+ */
+ public function updateObject($chapter): void
+ {
+ $this->update(
+ 'UPDATE submission_chapters
+ SET publication_id = ?,
+ seq = ?,
+ source_chapter_id = ?,
+ doi_id = ?
+ WHERE
+ chapter_id = ?',
+ [
+ (int) $chapter->getData('publicationId'),
+ (int) $chapter->getSequence(),
+ $chapter->getSourceChapterId(),
+ $chapter->getData('doiId'),
+ (int) $chapter->getId()
+ ]
+ );
+ $this->updateLocaleFields($chapter);
+ }
+
+ /**
+ * Delete a board chapter, including membership info
+ *
+ * @param Chapter $chapter
+ */
+ public function deleteObject($chapter)
+ {
+ $this->deleteById($chapter->getId());
+ }
+
+ /**
+ * Delete a board chapter, including membership info
+ *
+ * @param int $chapterId
+ */
+ public function deleteById($chapterId)
+ {
+ $this->update('DELETE FROM submission_chapter_authors WHERE chapter_id = ?', [(int) $chapterId]);
+ $this->update('DELETE FROM submission_chapter_settings WHERE chapter_id = ?', [(int) $chapterId]);
+ $this->update('DELETE FROM submission_chapters WHERE chapter_id = ?', [(int) $chapterId]);
+ $this->update('DELETE FROM submission_file_settings WHERE setting_name = ? AND setting_value = ?', ['chapterId', (int) $chapterId]);
+ }
+
+ /**
+ * Sequentially renumber chapters in their sequence order, optionally by monographId
+ *
+ * @param int $publicationId
+ */
+ public function resequenceChapters($publicationId)
+ {
+ $params = [];
+ if ($publicationId !== null) {
+ $params[] = (int) $publicationId;
+ }
+
+ $result = $this->retrieve(
+ 'SELECT chapter_id FROM submission_chapters
+ WHERE 1=1'
+ . ($publicationId !== null ? ' AND publication_id = ?' : '')
+ . ' ORDER BY seq',
+ $params
+ );
+
+ $i = 0;
+ foreach ($result as $row) {
+ $this->update(
+ 'UPDATE submission_chapters SET seq = ? WHERE chapter_id = ?',
+ [++$i, $row->chapter_id]
+ );
+ }
+ }
+
+ /**
+ * @copydoc PKPPubIdPluginDAO::pubIdExists()
+ */
+ public function pubIdExists($pubIdType, $pubId, $excludePubObjectId, $contextId)
+ {
+ $result = $this->retrieve(
+ 'SELECT COUNT(*) AS row_count
+ FROM submission_chapter_settings scs
+ INNER JOIN submission_chapters sc ON scs.chapter_id = sc.chapter_id
+ INNER JOIN publications p ON sc.publication_id = p.publication_id
+ INNER JOIN submissions s ON p.submission_id = s.submission_id
+ WHERE scs.setting_name = ?
+ AND scs.setting_value = ?
+ AND sc.chapter_id <> ?
+ AND s.context_id = ?',
+ [
+ 'pub-id::' . $pubIdType,
+ $pubId,
+ (int) $excludePubObjectId,
+ (int) $contextId
+ ]
+ );
+ $row = $result->current();
+ return $row ? (bool) $row->row_count : false;
+ }
+
+ /**
+ * @copydoc PKPPubIdPluginDAO::changePubId()
+ */
+ public function changePubId($pubObjectId, $pubIdType, $pubId)
+ {
+ DB::table('submission_chapter_settings')->updateOrInsert(
+ ['chapter_id' => (int) $pubObjectId, 'locale' => '', 'setting_name' => 'pub-id::' . $pubIdType],
+ ['setting_type' => 'string', 'setting_value' => (string) $pubId]
+ );
+ }
+
+ /**
+ * @copydoc PKPPubIdPluginDAO::deletePubId()
+ */
+ public function deletePubId($pubObjectId, $pubIdType)
+ {
+ $this->update(
+ 'DELETE FROM submission_chapter_settings WHERE setting_name = ? AND chapter_id = ?',
+ [
+ 'pub-id::' . $pubIdType,
+ (int) $pubObjectId
+ ]
+ );
+ $this->flushCache();
+ }
+
+ /**
+ * @copydoc PKPPubIdPluginDAO::deleteAllPubIds()
+ */
+ public function deleteAllPubIds($contextId, $pubIdType)
+ {
+ $chapters = $this->getByContextId($contextId);
+ while ($chapter = $chapters->next()) {
+ $this->update(
+ 'DELETE FROM submission_chapter_settings WHERE setting_name = ? AND chapter_id = ?',
+ [
+ 'pub-id::' . $pubIdType,
+ (int) $chapter->getId()
+ ]
+ );
+ }
+ $this->flushCache();
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\monograph\ChapterDAO', '\ChapterDAO');
+}
diff --git a/classes/monograph/Representative.inc.php b/classes/monograph/Representative.inc.php
deleted file mode 100644
index ca56cce7bad..00000000000
--- a/classes/monograph/Representative.inc.php
+++ /dev/null
@@ -1,177 +0,0 @@
-getData('monographId');
- }
-
- /**
- * set monograph id.
- * @param $monographId int
- */
- function setMonographId($monographId) {
- return $this->setData('monographId', $monographId);
- }
-
- /**
- * Set the ONIX code for this representative role (List93 for Suppliers, List69 for Agents)
- * @param $type string
- */
- function setRole($role) {
- $this->setData('role', $role);
- }
-
- /**
- * Get the ONIX code for this representative role.
- * @return string
- */
- function getRole() {
- return $this->getData('role');
- }
-
- /**
- * Get the human readable name for this ONIX code
- * @return string
- */
- function getNameForONIXCode() {
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- if ($this->getIsSupplier()) {
- $listName = 'List93'; // List93 -> Publisher to retailers, Wholesaler, etc
- } else {
- $listName = 'List69'; // List93 -> Local Publisher, Sales Agent, etc
- }
- $codes =& $onixCodelistItemDao->getCodes($listName);
- return $codes[$this->getRole()];
- }
-
- /**
- * Set the ONIX code for this representative's ID type (List92) (GLN, SAN, etc). GLN is the recommended one.
- * @param $representativeIdType string
- */
- function setRepresentativeIdType($representativeIdType) {
- $this->setData('representativeIdType', $representativeIdType);
- }
-
- /**
- * Get the representative ID type (ONIX Code).
- * @return string
- */
- function getRepresentativeIdType() {
- return $this->getData('representativeIdType');
- }
-
- /**
- * Set this representative's ID value.
- * @param $representativeIdValue string
- */
- function setRepresentativeIdValue($representativeIdValue) {
- $this->setData('representativeIdValue', $representativeIdValue);
- }
-
- /**
- * Get the representative ID value.
- * @return string
- */
- function getRepresentativeIdValue() {
- return $this->getData('representativeIdValue');
- }
-
- /**
- * Get the representative name.
- * @return string
- */
- function getName() {
- return $this->getData('name');
- }
-
- /**
- * Set the representative name.
- * @param string $name
- */
- function setName($name) {
- $this->setData('name', $name);
- }
-
- /**
- * Get the representative phone.
- * @return string
- */
- function getPhone() {
- return $this->getData('phone');
- }
-
- /**
- * Set the representative phone.
- * @param string $phone
- */
- function setPhone($phone) {
- $this->setData('phone', $phone);
- }
-
- /**
- * Get the representative email address.
- * @return string
- */
- function getEmail() {
- return $this->getData('email');
- }
-
- /**
- * Set the representative email address.
- * @param string $email
- */
- function setEmail($email) {
- $this->setData('email', $email);
- }
-
- /**
- * Get the representative's url.
- * @return string
- */
- function getUrl() {
- return $this->getData('url');
- }
-
- /**
- * Set the representative url.
- * @param string $url
- */
- function setUrl($url) {
- $this->setData('url', $url);
- }
-
- /**
- * Get the representative's is_supplier setting.
- * @return int
- */
- function getIsSupplier() {
- return $this->getData('isSupplier');
- }
-
- /**
- * Set the representative's is_supplier setting.
- * @param int $isSupplier
- */
- function setIsSupplier($isSupplier) {
- $this->setData('isSupplier', $isSupplier);
- }
-}
-
diff --git a/classes/monograph/Representative.php b/classes/monograph/Representative.php
new file mode 100644
index 00000000000..8991930e9d0
--- /dev/null
+++ b/classes/monograph/Representative.php
@@ -0,0 +1,224 @@
+getData('monographId');
+ }
+
+ /**
+ * set monograph id.
+ *
+ * @param int $monographId
+ */
+ public function setMonographId($monographId)
+ {
+ return $this->setData('monographId', $monographId);
+ }
+
+ /**
+ * Set the ONIX code for this representative role (List93 for Suppliers, List69 for Agents)
+ */
+ public function setRole($role)
+ {
+ $this->setData('role', $role);
+ }
+
+ /**
+ * Get the ONIX code for this representative role.
+ *
+ * @return string
+ */
+ public function getRole()
+ {
+ return $this->getData('role');
+ }
+
+ /**
+ * Get the human readable name for this ONIX code
+ *
+ * @return string
+ */
+ public function getNameForONIXCode()
+ {
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ if ($this->getIsSupplier()) {
+ $listName = 'List93'; // List93 -> Publisher to retailers, Wholesaler, etc
+ } else {
+ $listName = 'List69'; // List93 -> Local Publisher, Sales Agent, etc
+ }
+ $codes = & $onixCodelistItemDao->getCodes($listName);
+ return $codes[$this->getRole()];
+ }
+
+ /**
+ * Set the ONIX code for this representative's ID type (List92) (GLN, SAN, etc). GLN is the recommended one.
+ *
+ * @param string $representativeIdType
+ */
+ public function setRepresentativeIdType($representativeIdType)
+ {
+ $this->setData('representativeIdType', $representativeIdType);
+ }
+
+ /**
+ * Get the representative ID type (ONIX Code).
+ *
+ * @return string
+ */
+ public function getRepresentativeIdType()
+ {
+ return $this->getData('representativeIdType');
+ }
+
+ /**
+ * Set this representative's ID value.
+ *
+ * @param string $representativeIdValue
+ */
+ public function setRepresentativeIdValue($representativeIdValue)
+ {
+ $this->setData('representativeIdValue', $representativeIdValue);
+ }
+
+ /**
+ * Get the representative ID value.
+ *
+ * @return string
+ */
+ public function getRepresentativeIdValue()
+ {
+ return $this->getData('representativeIdValue');
+ }
+
+ /**
+ * Get the representative name.
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->getData('name');
+ }
+
+ /**
+ * Set the representative name.
+ *
+ * @param string $name
+ */
+ public function setName($name)
+ {
+ $this->setData('name', $name);
+ }
+
+ /**
+ * Get the representative phone.
+ *
+ * @return string
+ */
+ public function getPhone()
+ {
+ return $this->getData('phone');
+ }
+
+ /**
+ * Set the representative phone.
+ *
+ * @param string $phone
+ */
+ public function setPhone($phone)
+ {
+ $this->setData('phone', $phone);
+ }
+
+ /**
+ * Get the representative email address.
+ *
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->getData('email');
+ }
+
+ /**
+ * Set the representative email address.
+ *
+ * @param string $email
+ */
+ public function setEmail($email)
+ {
+ $this->setData('email', $email);
+ }
+
+ /**
+ * Get the representative's url.
+ *
+ * @return string
+ */
+ public function getUrl()
+ {
+ return $this->getData('url');
+ }
+
+ /**
+ * Set the representative url.
+ *
+ * @param string $url
+ */
+ public function setUrl($url)
+ {
+ $this->setData('url', $url);
+ }
+
+ /**
+ * Get the representative's is_supplier setting.
+ *
+ * @return int
+ */
+ public function getIsSupplier()
+ {
+ return $this->getData('isSupplier');
+ }
+
+ /**
+ * Set the representative's is_supplier setting.
+ *
+ * @param int $isSupplier
+ */
+ public function setIsSupplier($isSupplier)
+ {
+ $this->setData('isSupplier', $isSupplier);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\monograph\Representative', '\Representative');
+}
diff --git a/classes/monograph/RepresentativeDAO.inc.php b/classes/monograph/RepresentativeDAO.inc.php
deleted file mode 100644
index 23a59586070..00000000000
--- a/classes/monograph/RepresentativeDAO.inc.php
+++ /dev/null
@@ -1,190 +0,0 @@
-retrieve(
- 'SELECT r.*
- FROM representatives r
- JOIN submissions s ON (r.submission_id = s.submission_id)
- WHERE r.representative_id = ?
- ' . ($monographId?' AND s.submission_id = ?':''),
- $params
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Retrieve all supplier representatives for a monograph.
- * @param $monographId int
- * @return DAOResultFactory containing matching representatives.
- */
- function getSuppliersByMonographId($monographId) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT * FROM representatives WHERE submission_id = ? AND is_supplier = ?',
- [(int) $monographId, 1]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Retrieve all agent representatives for a monograph.
- * @param $monographId int
- * @return DAOResultFactory containing matching representatives.
- */
- function getAgentsByMonographId($monographId) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT * FROM representatives WHERE submission_id = ? AND is_supplier = ?',
- [(int) $monographId, 0]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Construct a new data object corresponding to this DAO.
- * @return Representative
- */
- function newDataObject() {
- return new Representative();
- }
-
- /**
- * Internal function to return a Representative object from a row.
- * @param $row array
- * @param $callHooks boolean
- * @return Representative
- */
- function _fromRow($row, $callHooks = true) {
- $representative = $this->newDataObject();
- $representative->setId($row['representative_id']);
- $representative->setRole($row['role']);
- $representative->setRepresentativeIdType($row['representative_id_type']);
- $representative->setRepresentativeIdValue($row['representative_id_value']);
- $representative->setName($row['name']);
- $representative->setPhone($row['phone']);
- $representative->setEmail($row['email']);
- $representative->setUrl($row['url']);
- $representative->setIsSupplier($row['is_supplier']);
- $representative->setMonographId($row['submission_id']);
-
- if ($callHooks) HookRegistry::call('RepresentativeDAO::_fromRow', array(&$representative, &$row));
-
- return $representative;
- }
-
- /**
- * Insert a new representative entry.
- * @param $representative Representative
- */
- function insertObject($representative) {
- $this->update(
- 'INSERT INTO representatives
- (submission_id, role, representative_id_type, representative_id_value, name, phone, email, url, is_supplier)
- VALUES
- (?, ?, ?, ?, ?, ?, ?, ?, ?)',
- [
- (int) $representative->getMonographId(),
- $representative->getRole(),
- $representative->getRepresentativeIdType(),
- $representative->getRepresentativeIdValue(),
- $representative->getName(),
- $representative->getPhone(),
- $representative->getEmail(),
- $representative->getUrl(),
- (int) $representative->getIsSupplier()
- ]
- );
-
- $representative->setId($this->getInsertId());
- return $representative->getId();
- }
-
- /**
- * Update an existing representative entry.
- * @param $representative Representative
- */
- function updateObject($representative) {
- $this->update(
- 'UPDATE representatives
- SET role = ?,
- representative_id_type = ?,
- representative_id_value = ?,
- name = ?,
- phone = ?,
- email = ?,
- url = ?,
- is_supplier = ?
- WHERE representative_id = ?',
- [
- $representative->getRole(),
- $representative->getRepresentativeIdType(),
- $representative->getRepresentativeIdValue(),
- $representative->getName(),
- $representative->getPhone(),
- $representative->getEmail(),
- $representative->getUrl(),
- (int) $representative->getIsSupplier(),
- (int) $representative->getId()
- ]
- );
- }
-
- /**
- * Delete a representative entry by object.
- * @param $representative Representative
- */
- function deleteObject($representative) {
- return $this->deleteById($representative->getId());
- }
-
- /**
- * delete a representative entry by id.
- * @param $entryId int
- */
- function deleteById($entryId) {
- return $this->update(
- 'DELETE FROM representatives WHERE representative_id = ?', [(int) $entryId]
- );
- }
-
- /**
- * Get the ID of the last inserted representative entry.
- * @return int
- */
- function getInsertId() {
- return $this->_getInsertId('representatives', 'representative_id');
- }
-}
-
-
diff --git a/classes/monograph/RepresentativeDAO.php b/classes/monograph/RepresentativeDAO.php
new file mode 100644
index 00000000000..4ad4ff1fd6d
--- /dev/null
+++ b/classes/monograph/RepresentativeDAO.php
@@ -0,0 +1,217 @@
+retrieve(
+ 'SELECT r.*
+ FROM representatives r
+ JOIN submissions s ON (r.submission_id = s.submission_id)
+ WHERE r.representative_id = ?
+ ' . ($monographId ? ' AND s.submission_id = ?' : ''),
+ $params
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Retrieve all supplier representatives for a monograph.
+ *
+ * @param int $monographId
+ *
+ * @return DAOResultFactory containing matching representatives.
+ */
+ public function getSuppliersByMonographId($monographId)
+ {
+ return new DAOResultFactory(
+ $this->retrieveRange(
+ 'SELECT * FROM representatives WHERE submission_id = ? AND is_supplier = ?',
+ [(int) $monographId, 1]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve all agent representatives for a monograph.
+ *
+ * @param int $monographId
+ *
+ * @return DAOResultFactory containing matching representatives.
+ */
+ public function getAgentsByMonographId($monographId)
+ {
+ return new DAOResultFactory(
+ $this->retrieveRange(
+ 'SELECT * FROM representatives WHERE submission_id = ? AND is_supplier = ?',
+ [(int) $monographId, 0]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Construct a new data object corresponding to this DAO.
+ *
+ * @return Representative
+ */
+ public function newDataObject()
+ {
+ return new Representative();
+ }
+
+ /**
+ * Internal function to return a Representative object from a row.
+ *
+ * @param array $row
+ * @param bool $callHooks
+ *
+ * @return Representative
+ */
+ public function _fromRow($row, $callHooks = true)
+ {
+ $representative = $this->newDataObject();
+ $representative->setId($row['representative_id']);
+ $representative->setRole($row['role']);
+ $representative->setRepresentativeIdType($row['representative_id_type']);
+ $representative->setRepresentativeIdValue($row['representative_id_value']);
+ $representative->setName($row['name']);
+ $representative->setPhone($row['phone']);
+ $representative->setEmail($row['email']);
+ $representative->setUrl($row['url']);
+ $representative->setIsSupplier($row['is_supplier']);
+ $representative->setMonographId($row['submission_id']);
+
+ if ($callHooks) {
+ Hook::call('RepresentativeDAO::_fromRow', [&$representative, &$row]);
+ }
+
+ return $representative;
+ }
+
+ /**
+ * Insert a new representative entry.
+ *
+ * @param Representative $representative
+ */
+ public function insertObject($representative)
+ {
+ $this->update(
+ 'INSERT INTO representatives
+ (submission_id, role, representative_id_type, representative_id_value, name, phone, email, url, is_supplier)
+ VALUES
+ (?, ?, ?, ?, ?, ?, ?, ?, ?)',
+ [
+ (int) $representative->getMonographId(),
+ $representative->getRole(),
+ $representative->getRepresentativeIdType(),
+ $representative->getRepresentativeIdValue(),
+ $representative->getName(),
+ $representative->getPhone(),
+ $representative->getEmail(),
+ $representative->getUrl(),
+ (int) $representative->getIsSupplier()
+ ]
+ );
+
+ $representative->setId($this->getInsertId());
+ return $representative->getId();
+ }
+
+ /**
+ * Update an existing representative entry.
+ *
+ * @param Representative $representative
+ */
+ public function updateObject($representative)
+ {
+ $this->update(
+ 'UPDATE representatives
+ SET role = ?,
+ representative_id_type = ?,
+ representative_id_value = ?,
+ name = ?,
+ phone = ?,
+ email = ?,
+ url = ?,
+ is_supplier = ?
+ WHERE representative_id = ?',
+ [
+ $representative->getRole(),
+ $representative->getRepresentativeIdType(),
+ $representative->getRepresentativeIdValue(),
+ $representative->getName(),
+ $representative->getPhone(),
+ $representative->getEmail(),
+ $representative->getUrl(),
+ (int) $representative->getIsSupplier(),
+ (int) $representative->getId()
+ ]
+ );
+ }
+
+ /**
+ * Delete a representative entry by object.
+ *
+ * @param Representative $representative
+ */
+ public function deleteObject($representative)
+ {
+ return $this->deleteById($representative->getId());
+ }
+
+ /**
+ * delete a representative entry by id.
+ *
+ * @param int $entryId
+ */
+ public function deleteById($entryId)
+ {
+ return $this->update(
+ 'DELETE FROM representatives WHERE representative_id = ?',
+ [(int) $entryId]
+ );
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\monograph\RepresentativeDAO', '\RepresentativeDAO');
+}
diff --git a/classes/notification/Notification.inc.php b/classes/notification/Notification.inc.php
deleted file mode 100644
index e28564ffda6..00000000000
--- a/classes/notification/Notification.inc.php
+++ /dev/null
@@ -1,27 +0,0 @@
-getType()) {
- case NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD:
- return __('notification.type.configurePaymentMethod.title');
- }
- return parent::getNotificationTitle($notification);
- }
-
- /**
- * @copydoc PKPNotificationManager::getIconClass()
- */
- public function getIconClass($notification) {
- switch ($notification->getType()) {
- case NOTIFICATION_TYPE_REVIEWER_COMMENT:
- return 'notifyIconNewComment';
- }
- return parent::getIconClass($notification);
- }
-
- /**
- * @copydoc PKPNotificationManager::getStyleClass()
- */
- public function getStyleClass($notification) {
- switch ($notification->getType()) {
- case NOTIFICATION_TYPE_LAYOUT_ASSIGNMENT:
- case NOTIFICATION_TYPE_INDEX_ASSIGNMENT:
- case NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD:
- return NOTIFICATION_STYLE_CLASS_WARNING;
- }
- return parent::getStyleClass($notification);
- }
-
- /**
- * @copydoc PKPNotificationManager::isVisibleToAllUsers()
- */
- public function isVisibleToAllUsers($notificationType, $assocType, $assocId) {
- switch ($notificationType) {
- case NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD:
- return true;
- default:
- return parent::isVisibleToAllUsers($notificationType, $assocType, $assocId);
- }
- }
-
- /**
- * @copydoc PKPNotificationManager::getMgrDelegate()
- */
- protected function getMgrDelegate($notificationType, $assocType, $assocId) {
- switch ($notificationType) {
- case NOTIFICATION_TYPE_EDITOR_ASSIGNMENT_INTERNAL_REVIEW:
- assert($assocType == ASSOC_TYPE_SUBMISSION && is_numeric($assocId));
- import('lib.pkp.classes.notification.managerDelegate.EditorAssignmentNotificationManager');
- return new EditorAssignmentNotificationManager($notificationType);
- case NOTIFICATION_TYPE_EDITOR_DECISION_INTERNAL_REVIEW:
- assert($assocType == ASSOC_TYPE_SUBMISSION && is_numeric($assocId));
- import('lib.pkp.classes.notification.managerDelegate.EditorDecisionNotificationManager');
- return new EditorDecisionNotificationManager($notificationType);
- case NOTIFICATION_TYPE_PENDING_INTERNAL_REVISIONS:
- assert($assocType == ASSOC_TYPE_SUBMISSION && is_numeric($assocId));
- import('lib.pkp.classes.notification.managerDelegate.PendingRevisionsNotificationManager');
- return new PendingRevisionsNotificationManager($notificationType);
- case NOTIFICATION_TYPE_APPROVE_SUBMISSION:
- case NOTIFICATION_TYPE_FORMAT_NEEDS_APPROVED_SUBMISSION:
- case NOTIFICATION_TYPE_VISIT_CATALOG:
- assert($assocType == ASSOC_TYPE_SUBMISSION && is_numeric($assocId));
- import('classes.notification.managerDelegate.ApproveSubmissionNotificationManager');
- return new ApproveSubmissionNotificationManager($notificationType);
- }
- // Otherwise, fall back on parent class
- return parent::getMgrDelegate($notificationType, $assocType, $assocId);
- }
-}
-
-
diff --git a/classes/notification/NotificationManager.php b/classes/notification/NotificationManager.php
new file mode 100644
index 00000000000..d222527b8a6
--- /dev/null
+++ b/classes/notification/NotificationManager.php
@@ -0,0 +1,127 @@
+getType()) {
+ case Notification::NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD:
+ return __('notification.type.configurePaymentMethod.title');
+ }
+ return parent::getNotificationTitle($notification);
+ }
+
+ /**
+ * @copydoc PKPNotificationManager::getIconClass()
+ */
+ public function getIconClass($notification)
+ {
+ switch ($notification->getType()) {
+ case Notification::NOTIFICATION_TYPE_REVIEWER_COMMENT:
+ return 'notifyIconNewComment';
+ }
+ return parent::getIconClass($notification);
+ }
+
+ /**
+ * @copydoc PKPNotificationManager::getStyleClass()
+ */
+ public function getStyleClass($notification)
+ {
+ switch ($notification->getType()) {
+ case Notification::NOTIFICATION_TYPE_LAYOUT_ASSIGNMENT:
+ case Notification::NOTIFICATION_TYPE_INDEX_ASSIGNMENT:
+ case Notification::NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD:
+ return NOTIFICATION_STYLE_CLASS_WARNING;
+ }
+ return parent::getStyleClass($notification);
+ }
+
+ /**
+ * @copydoc PKPNotificationManager::isVisibleToAllUsers()
+ */
+ public function isVisibleToAllUsers($notificationType, $assocType, $assocId)
+ {
+ switch ($notificationType) {
+ case Notification::NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD:
+ return true;
+ default:
+ return parent::isVisibleToAllUsers($notificationType, $assocType, $assocId);
+ }
+ }
+
+ /**
+ * @copydoc PKPNotificationManager::getMgrDelegate()
+ */
+ protected function getMgrDelegate($notificationType, $assocType, $assocId)
+ {
+ switch ($notificationType) {
+ case Notification::NOTIFICATION_TYPE_EDITOR_ASSIGNMENT_INTERNAL_REVIEW:
+ assert($assocType == Application::ASSOC_TYPE_SUBMISSION && is_numeric($assocId));
+ return new EditorAssignmentNotificationManager($notificationType);
+ case Notification::NOTIFICATION_TYPE_EDITOR_DECISION_INTERNAL_REVIEW:
+ assert($assocType == Application::ASSOC_TYPE_SUBMISSION && is_numeric($assocId));
+ return new EditorDecisionNotificationManager($notificationType);
+ case Notification::NOTIFICATION_TYPE_PENDING_INTERNAL_REVISIONS:
+ assert($assocType == Application::ASSOC_TYPE_SUBMISSION && is_numeric($assocId));
+ return new PendingRevisionsNotificationManager($notificationType);
+ case Notification::NOTIFICATION_TYPE_APPROVE_SUBMISSION:
+ case Notification::NOTIFICATION_TYPE_FORMAT_NEEDS_APPROVED_SUBMISSION:
+ case Notification::NOTIFICATION_TYPE_VISIT_CATALOG:
+ assert($assocType == Application::ASSOC_TYPE_SUBMISSION && is_numeric($assocId));
+ return new ApproveSubmissionNotificationManager($notificationType);
+ }
+ // Otherwise, fall back on parent class
+ return parent::getMgrDelegate($notificationType, $assocType, $assocId);
+ }
+
+ public function getNotificationTypeByEditorDecision(Decision $decision): ?int
+ {
+ switch ($decision->getData('decision')) {
+ case Decision::INTERNAL_REVIEW:
+ return Notification::NOTIFICATION_TYPE_EDITOR_DECISION_INTERNAL_REVIEW;
+ case Decision::PENDING_REVISIONS_INTERNAL:
+ return Notification::NOTIFICATION_TYPE_PENDING_INTERNAL_REVISIONS;
+ default:
+ return parent::getNotificationTypeByEditorDecision($decision);
+ }
+ return null;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\notification\NotificationManager', '\NotificationManager');
+}
diff --git a/classes/notification/form/NotificationSettingsForm.inc.php b/classes/notification/form/NotificationSettingsForm.inc.php
deleted file mode 100644
index 8249d2472ca..00000000000
--- a/classes/notification/form/NotificationSettingsForm.inc.php
+++ /dev/null
@@ -1,21 +0,0 @@
-getRouter();
- $dispatcher = $router->getDispatcher();
- $contextDao = Application::getContextDAO();
- $context = $contextDao->getById($notification->getContextId());
-
- switch ($notification->getType()) {
- case NOTIFICATION_TYPE_VISIT_CATALOG:
- return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'manageCatalog');
- }
-
- return parent::getNotificationUrl($request, $notification);
- }
-
- /**
- * @copydoc PKPNotificationOperationManager::getNotificationTitle()
- */
- function getNotificationTitle($notification) {
- switch ($notification->getType()) {
- case NOTIFICATION_TYPE_APPROVE_SUBMISSION:
- case NOTIFICATION_TYPE_FORMAT_NEEDS_APPROVED_SUBMISSION:
- return __('notification.type.approveSubmissionTitle');
- case NOTIFICATION_TYPE_VISIT_CATALOG:
- return __('notification.type.visitCatalogTitle');
- }
- }
-
- /**
- * @copydoc PKPNotificationOperationManager::getNotificationMessage()
- */
- public function getNotificationMessage($request, $notification) {
- switch ($notification->getType()) {
- case NOTIFICATION_TYPE_FORMAT_NEEDS_APPROVED_SUBMISSION:
- return __('notification.type.formatNeedsApprovedSubmission');
- case NOTIFICATION_TYPE_VISIT_CATALOG:
- return __('notification.type.visitCatalog');
- case NOTIFICATION_TYPE_APPROVE_SUBMISSION:
- return __('notification.type.approveSubmission');
- }
-
- return parent::getNotificationMessage($request, $notification);
- }
-}
-
diff --git a/classes/notification/managerDelegate/ApproveSubmissionNotificationManager.php b/classes/notification/managerDelegate/ApproveSubmissionNotificationManager.php
new file mode 100644
index 00000000000..c91b2c1891d
--- /dev/null
+++ b/classes/notification/managerDelegate/ApproveSubmissionNotificationManager.php
@@ -0,0 +1,78 @@
+getRouter();
+ $dispatcher = $router->getDispatcher();
+ $contextDao = Application::getContextDAO();
+ $context = $contextDao->getById($notification->getContextId());
+
+ switch ($notification->getType()) {
+ case Notification::NOTIFICATION_TYPE_VISIT_CATALOG:
+ return $dispatcher->url($request, Application::ROUTE_PAGE, $context->getPath(), 'manageCatalog');
+ }
+
+ return parent::getNotificationUrl($request, $notification);
+ }
+
+ /**
+ * @copydoc PKPNotificationOperationManager::getNotificationTitle()
+ */
+ public function getNotificationTitle($notification)
+ {
+ switch ($notification->getType()) {
+ case Notification::NOTIFICATION_TYPE_APPROVE_SUBMISSION:
+ case Notification::NOTIFICATION_TYPE_FORMAT_NEEDS_APPROVED_SUBMISSION:
+ return __('notification.type.approveSubmissionTitle');
+ case Notification::NOTIFICATION_TYPE_VISIT_CATALOG:
+ return __('notification.type.visitCatalogTitle');
+ }
+ }
+
+ /**
+ * @copydoc PKPNotificationOperationManager::getNotificationMessage()
+ */
+ public function getNotificationMessage($request, $notification)
+ {
+ switch ($notification->getType()) {
+ case Notification::NOTIFICATION_TYPE_FORMAT_NEEDS_APPROVED_SUBMISSION:
+ return __('notification.type.formatNeedsApprovedSubmission');
+ case Notification::NOTIFICATION_TYPE_VISIT_CATALOG:
+ return __('notification.type.visitCatalog');
+ case Notification::NOTIFICATION_TYPE_APPROVE_SUBMISSION:
+ return __('notification.type.approveSubmission');
+ }
+
+ return parent::getNotificationMessage($request, $notification);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\notification\managerDelegate\ApproveSubmissionNotificationManager', '\ApproveSubmissionNotificationManager');
+}
diff --git a/classes/oai/omp/OAIDAO.inc.php b/classes/oai/omp/OAIDAO.inc.php
deleted file mode 100644
index 0195d74dd80..00000000000
--- a/classes/oai/omp/OAIDAO.inc.php
+++ /dev/null
@@ -1,247 +0,0 @@
-_publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO');
- $this->_seriesDao = DAORegistry::getDAO('SeriesDAO');
- $this->_pressDao = DAORegistry::getDAO('PressDAO');
- }
-
- /**
- * Cached function to get a press
- * @param $pressId int
- * @return Press
- */
- function getPress($pressId) {
- if (!isset($this->_pressCache[$pressId])) {
- $this->_pressCache[$pressId] = $this->_pressDao->getById($pressId);
- }
- return $this->_pressCache[$pressId];
- }
-
- /**
- * Cached function to get a press series
- * @param $seriesId int
- * @return Series
- */
- function getSeries($seriesId) {
- if (!isset($this->_seriesCache[$seriesId])) {
- $this->_seriesCache[$seriesId] = $this->_seriesDao->getById($seriesId);
- }
- return $this->_seriesCache[$seriesId];
- }
-
- //
- // Sets
- //
-
- /**
- * Return hierarchy of OAI sets (presses plus press series).
- * @param $pressId int|null
- * @param $offset int
- * @param $total int
- * @return array OAISet
- */
- function getSets($pressId, $offset, $limit, &$total) {
- if (isset($pressId)) {
- $presses = [$this->getPress($pressId)];
- } else {
- $pressFactory = $this->_pressDao->getAll();
- $presses = $pressFactory->toArray();
- }
-
- // FIXME Set descriptions
- $sets = [];
- foreach ($presses as $press) {
- $title = $press->getLocalizedName();
- $abbrev = $press->getPath();
-
- $dataObjectTombstoneDao = DAORegistry::getDAO('DataObjectTombstoneDAO'); /* @var $dataObjectTombstoneDao DataObjectTombstoneDAO */
- $publicationFormatSets = $dataObjectTombstoneDao->getSets(ASSOC_TYPE_PRESS, $press->getId());
-
- if (!array_key_exists(urlencode($abbrev), $publicationFormatSets)) array_push($sets, new OAISet(urlencode($abbrev), $title, ''));
-
- $seriesFactory = $this->_seriesDao->getByPressId($press->getId());
- foreach ($seriesFactory->toArray() as $series) {
- if (array_key_exists(urlencode($abbrev) . ':' . urlencode($series->getPath()), $publicationFormatSets)) {
- unset($publicationFormatSets[urlencode($abbrev) . ':' . urlencode($series->getPath())]);
- }
- array_push($sets, new OAISet(urlencode($abbrev) . ':' . urlencode($series->getPath()), $series->getLocalizedTitle(), ''));
- }
- foreach ($publicationFormatSets as $publicationFormatSetSpec => $publicationFormatSetName) {
- array_push($sets, new OAISet($publicationFormatSetSpec, $publicationFormatSetName, ''));
- }
- }
-
- HookRegistry::call('OAIDAO::getSets', [&$this, $pressId, $offset, $limit, $total, &$sets]);
-
- $total = count($sets);
- $sets = array_slice($sets, $offset, $limit);
-
- return $sets;
- }
-
- /**
- * Return the press ID and series ID corresponding to a press/series pairing.
- * @param $pressSpec string
- * @param $seriesSpec string
- * @param $restrictPressId int
- * @return array (int, int, int)
- */
- function getSetPressSeriesId($pressSpec, $seriesSpec, $restrictPressId = null) {
- $press = $this->_pressDao->getByPath($pressSpec);
- if (!isset($press) || (isset($restrictPressId) && $press->getId() != $restrictPressId)) {
- return [0, 0];
- }
-
- $pressId = $press->getId();
- $seriesId = null;
-
- if (isset($seriesSpec)) {
- $series = $this->_seriesDao->getByPath($seriesSpec, $press->getId());
- if ($series && is_a($series, 'Series')) {
- $seriesId = $series->getId();
- } else {
- $seriesId = 0;
- }
- }
-
- return [$pressId, $seriesId];
- }
-
-
- //
- // Protected methods.
- //
- /**
- * @see lib/pkp/classes/oai/PKPOAIDAO::setOAIData()
- */
- function setOAIData($record, $row, $isRecord = true) {
- $press = $this->getPress($row['press_id']);
- $series = $this->getSeries($row['series_id']);
- $publicationFormatId = $row['data_object_id'];
-
- $record->identifier = $this->oai->publicationFormatIdToIdentifier($publicationFormatId);
- $record->sets = [urlencode($press->getPath()) . ($series?':' . urlencode($series->getPath()):'')];
-
- if ($isRecord) {
- $publicationFormat = $this->_publicationFormatDao->getById($publicationFormatId);
- $publication = Services::get('publication')->get($publicationFormat->getData('publicationId'));
- $submission = Services::get('submission')->get($publication->getData('submissionId'));
- $record->setData('publicationFormat', $publicationFormat);
- $record->setData('monograph', $submission);
- $record->setData('press', $press);
- $record->setData('series', $series);
- }
-
- return $record;
- }
-
- /**
- * Get a OAI records record set.
- * @param $setIds array Objects ids that specify an OAI set,
- * in hierarchical order.
- * @param $from int/string *nix timestamp or ISO datetime string
- * @param $until int/string *nix timestamp or ISO datetime string
- * @param $set string
- * @param $submissionId int Optional
- * @param $orderBy string UNFILTERED
- * @return Iterable
- */
- function _getRecordsRecordSet($setIds, $from, $until, $set, $submissionId = null, $orderBy = 'press_id, data_object_id') {
- $pressId = array_shift($setIds);
- $seriesId = array_shift($setIds);
-
- $params = [];
- if ($pressId) $params[] = (int) $pressId;
- if ($seriesId) $params[] = (int) $seriesId;
- if ($submissionId) $params[] = (int) $submissionId;
- if ($pressId) $params[] = (int) $pressId;
- if ($seriesId) $params[] = (int) $seriesId;
- if (isset($set)) $params[] = $set;
- if ($submissionId) $params[] = (int) $submissionId;
-
- import('lib.pkp.classes.submission.PKPSubmission'); // STATUS_PUBLISHED
- return $this->retrieve(
- 'SELECT ms.last_modified AS last_modified,
- pf.publication_format_id AS data_object_id,
- p.press_id AS press_id,
- pub.series_id AS series_id,
- NULL AS tombstone_id,
- NULL AS set_spec,
- NULL AS oai_identifier
- FROM publication_formats pf
- JOIN publications pub ON (pub.publication_id = pf.publication_id)
- JOIN submissions ms ON (ms.current_publication_id = pub.publication_id)
- LEFT JOIN series s ON (s.series_id = pub.series_id)
- JOIN presses p ON (p.press_id = ms.context_id)
- WHERE p.enabled = 1
- ' . ($pressId?' AND p.press_id = ?':'') . '
- ' . ($seriesId?' AND pub.series_id = ?':'') . '
- AND ms.status = ' . STATUS_PUBLISHED . '
- AND pf.is_available = 1
- AND pub.date_published IS NOT NULL
- ' . ($from?' AND ms.last_modified >= ' . $this->datetimeToDB($from):'') . '
- ' . ($until?' AND ms.last_modified <= ' . $this->datetimeToDB($until):'') . '
- ' . ($submissionId?' AND pf.publication_format_id=?':'') . '
- UNION
- SELECT dot.date_deleted AS last_modified,
- dot.data_object_id AS data_object_id,
- tsop.assoc_id AS press_id,
- tsos.assoc_id AS series_id,
- dot.tombstone_id,
- dot.set_spec,
- dot.oai_identifier
- FROM
- data_object_tombstones dot
- LEFT JOIN data_object_tombstone_oai_set_objects tsop ON ' . (isset($pressId) ? '(tsop.tombstone_id = dot.tombstone_id AND tsop.assoc_type = ' . ASSOC_TYPE_PRESS . ' AND tsop.assoc_id = ?)' : 'tsop.assoc_id = null') . '
- LEFT JOIN data_object_tombstone_oai_set_objects tsos ON ' . (isset($seriesId) ? '(tsos.tombstone_id = dot.tombstone_id AND tsos.assoc_type = ' . ASSOC_TYPE_SERIES . ' AND tsos.assoc_id = ?)' : 'tsos.assoc_id = null') . '
- WHERE 1=1
- ' . ($from?' AND dot.date_deleted >= ' . $this->datetimeToDB($from):'') . '
- ' . ($until?' AND dot.date_deleted <= ' . $this->datetimeToDB($until):'') . '
- ' . (isset($set)?' AND dot.set_spec = ?':'') . '
- ' . ($submissionId?' AND dot.data_object_id = ?':'') . '
- ORDER BY ' . $orderBy,
- $params
- );
- }
-}
-
-
diff --git a/classes/oai/omp/OAIDAO.php b/classes/oai/omp/OAIDAO.php
new file mode 100644
index 00000000000..ac5f7356480
--- /dev/null
+++ b/classes/oai/omp/OAIDAO.php
@@ -0,0 +1,303 @@
+_publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO');
+ $this->_pressDao = DAORegistry::getDAO('PressDAO');
+ }
+
+ /**
+ * Cached function to get a press
+ *
+ * @param int $pressId
+ *
+ * @return Press
+ */
+ public function getPress($pressId)
+ {
+ if (!isset($this->_pressCache[$pressId])) {
+ $this->_pressCache[$pressId] = $this->_pressDao->getById($pressId);
+ }
+ return $this->_pressCache[$pressId];
+ }
+
+ /**
+ * Cached function to get a press series
+ *
+ * @param int $seriesId
+ *
+ * @return Section
+ */
+ public function getSeries($seriesId)
+ {
+ if (!isset($this->_seriesCache[$seriesId])) {
+ $this->_seriesCache[$seriesId] = $seriesId ? Repo::section()->get($seriesId) : null;
+ }
+ return $this->_seriesCache[$seriesId];
+ }
+
+ //
+ // Sets
+ //
+
+ /**
+ * Return hierarchy of OAI sets (presses plus press series).
+ *
+ * @param int|null $pressId
+ * @param int $offset
+ * @param int $total
+ *
+ * @return array OAISet
+ */
+ public function getSets($pressId, $offset, $limit, &$total)
+ {
+ if (isset($pressId)) {
+ $presses = [$this->getPress($pressId)];
+ } else {
+ $pressFactory = $this->_pressDao->getAll();
+ $presses = $pressFactory->toArray();
+ }
+
+ // FIXME Set descriptions
+ $sets = [];
+ foreach ($presses as $press) {
+ $title = $press->getLocalizedName();
+
+ $dataObjectTombstoneDao = DAORegistry::getDAO('DataObjectTombstoneDAO'); /** @var DataObjectTombstoneDAO $dataObjectTombstoneDao */
+ $publicationFormatSets = $dataObjectTombstoneDao->getSets(Application::ASSOC_TYPE_PRESS, $press->getId());
+
+ if (!array_key_exists(self::setSpec($press), $publicationFormatSets)) {
+ array_push($sets, new OAISet(self::setSpec($press), $title, ''));
+ }
+
+ $seriesFactory = Repo::section()
+ ->getCollector()
+ ->filterByContextIds([$press->getId()])
+ ->getMany();
+ foreach ($seriesFactory as $series) {
+ $setSpec = self::setSpec($press, $series);
+ if (array_key_exists($setSpec, $publicationFormatSets)) {
+ unset($publicationFormatSets[$setSpec]);
+ }
+ array_push($sets, new OAISet($setSpec, $series->getLocalizedTitle(), ''));
+ }
+ foreach ($publicationFormatSets as $publicationFormatSetSpec => $publicationFormatSetName) {
+ array_push($sets, new OAISet($publicationFormatSetSpec, $publicationFormatSetName, ''));
+ }
+ }
+
+ Hook::call('OAIDAO::getSets', [&$this, $pressId, $offset, $limit, $total, &$sets]);
+
+ $total = count($sets);
+ $sets = array_slice($sets, $offset, $limit);
+
+ return $sets;
+ }
+
+ /**
+ * Return the press ID and series ID corresponding to a press/series pairing.
+ *
+ * @param string $pressSpec
+ * @param string $seriesSpec
+ * @param int $restrictPressId
+ *
+ * @return int[] (int, int)
+ */
+ public function getSetPressSeriesId($pressSpec, $seriesSpec, $restrictPressId = null)
+ {
+ $press = $this->_pressDao->getByPath($pressSpec);
+ if (!isset($press) || (isset($restrictPressId) && $press->getId() != $restrictPressId)) {
+ return [0, 0];
+ }
+
+ $pressId = $press->getId();
+ $seriesId = null;
+
+ if (isset($seriesSpec)) {
+ $series = Repo::section()->getByPath($seriesSpec, $press->getId());
+ $seriesId = !is_null($series) ? $series->getId() : 0;
+ }
+
+ return [$pressId, $seriesId];
+ }
+
+ public static function setSpec($press, $series = null): string
+ {
+ // path is restricted to ascii alphanumeric, '-' and '_' so it only contains valid setSpec chars
+ return isset($series)
+ ? $press->getPath() . ':' . $series->getPath()
+ : $press->getPath();
+ }
+
+
+ //
+ // Protected methods.
+ //
+ /**
+ * @see lib/pkp/classes/oai/PKPOAIDAO::setOAIData()
+ */
+ public function setOAIData($record, $row, $isRecord = true)
+ {
+ $press = $this->getPress($row['press_id']);
+ $series = $this->getSeries($row['series_id']);
+ $publicationFormatId = $row['data_object_id'];
+
+ /** @var PressOAI */
+ $oai = $this->oai;
+ $record->identifier = $oai->publicationFormatIdToIdentifier($publicationFormatId);
+ $record->sets = [self::setSpec($press, $series)];
+
+ if ($isRecord) {
+ $publicationFormat = $this->_publicationFormatDao->getById($publicationFormatId);
+ $publication = Repo::publication()->get($publicationFormat->getData('publicationId'));
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+ $record->setData('publicationFormat', $publicationFormat);
+ $record->setData('monograph', $submission);
+ $record->setData('press', $press);
+ $record->setData('series', $series);
+ }
+
+ return $record;
+ }
+
+ /**
+ * @copydoc PKPOAIDAO::_getRecordsRecordSet
+ *
+ * @param null|mixed $submissionId
+ */
+ public function _getRecordsRecordSetQuery($setIds, $from, $until, $set, $submissionId = null, $orderBy = 'press_id, data_object_id')
+ {
+ $pressId = array_shift($setIds);
+ $seriesId = array_shift($setIds);
+
+ return DB::table('publication_formats AS pf')
+ ->select([
+ 'ms.last_modified AS last_modified',
+ 'pf.publication_format_id AS data_object_id',
+ DB::raw('NULL AS tombstone_id'),
+ DB::raw('NULL AS set_spec'),
+ DB::raw('NULL AS oai_identifier'),
+ 'p.press_id AS press_id',
+ 'pub.series_id AS series_id',
+ ])
+ ->join('publications AS pub', 'pub.publication_id', '=', 'pf.publication_id')
+ ->join('submissions AS ms', 'ms.current_publication_id', '=', 'pub.publication_id')
+ ->leftJoin('series AS s', 's.series_id', '=', 'pub.series_id')
+ ->join('presses AS p', 'p.press_id', '=', 'ms.context_id')
+ ->where('p.enabled', '=', 1)
+ ->when($pressId, function ($query, $pressId) {
+ return $query->where('p.press_id', '=', $pressId);
+ })
+ ->when($seriesId, function ($query, $seriesId) {
+ return $query->where('pub.series_id', '=', $seriesId);
+ })
+ ->where('ms.status', '=', PKPSubmission::STATUS_PUBLISHED)
+ ->where('pf.is_available', '=', 1)
+ ->whereNotNull('pub.date_published')
+ ->when($from, function ($query, $from) {
+ return $query->whereDate('ms.last_modified', '>=', \DateTime::createFromFormat('U', $from));
+ })
+ ->when($until, function ($query, $until) {
+ return $query->whereDate('ms.last_modified', '<=', \DateTime::createFromFormat('U', $until));
+ })
+ ->when($submissionId, function ($query, $submissionId) {
+ return $query->where('pf.publication_format_id', '=', $submissionId);
+ })
+ ->union(
+ DB::table('data_object_tombstones AS dot')
+ ->select([
+ 'dot.date_deleted AS last_modified',
+ 'dot.data_object_id AS data_object_id',
+ 'dot.tombstone_id',
+ 'dot.set_spec',
+ 'dot.oai_identifier',
+ ])
+ ->when(isset($pressId), function ($query, $pressId) {
+ return $query->join('data_object_tombstone_oai_set_objects AS tsop', function ($join) use ($pressId) {
+ $join->on('tsop.tombstone_id', '=', 'dot.tombstone_id');
+ $join->where('tsop.assoc_type', '=', Application::ASSOC_TYPE_PRESS);
+ $join->where('tsop.assoc_id', '=', (int) $pressId);
+ })->addSelect(['tsop.assoc_id AS press_id']);
+ }, function ($query) {
+ return $query->addSelect([DB::raw('NULL AS press_id')]);
+ })
+ ->when(isset($seriesId), function ($query, $seriesId) {
+ return $query->join('data_object_tombstone_oai_set_objects AS tsos', function ($join) use ($seriesId) {
+ $join->on('tsos.tombstone_id', '=', 'dot.tombstone_id');
+ $join->where('tsos.assoc_type', '=', Application::ASSOC_TYPE_SERIES);
+ $join->where('tsos.assoc_id', '=', (int) $seriesId);
+ })->addSelect(['tsos.assoc_id AS series_id']);
+ }, function ($query) {
+ return $query->addSelect([DB::raw('NULL AS series_id')]);
+ })
+ ->when(isset($set), function ($query) use ($set) {
+ return $query->where('dot.set_spec', '=', $set);
+ })
+ ->when($from, function ($query, $from) {
+ return $query->whereDate('dot.date_deleted', '>=', \DateTime::createFromFormat('U', $from));
+ })
+ ->when($until, function ($query, $until) {
+ return $query->whereDate('dot.date_deleted', '<=', \DateTime::createFromFormat('U', $until));
+ })
+ ->when($submissionId, function ($query, $submissionId) {
+ return $query->where('dot.data_object_id', '=', (int) $submissionId);
+ })
+ )
+ ->orderBy(DB::raw($orderBy));
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\oai\omp\OAIDAO', '\OAIDAO');
+}
diff --git a/classes/oai/omp/PressOAI.inc.php b/classes/oai/omp/PressOAI.inc.php
deleted file mode 100644
index 83f5e99f957..00000000000
--- a/classes/oai/omp/PressOAI.inc.php
+++ /dev/null
@@ -1,252 +0,0 @@
-getRequest();
-
- $this->site = $request->getSite();
- $this->press = $request->getPress();
- $this->pressId = isset($this->press) ? $this->press->getId() : null;
- $this->dao = DAORegistry::getDAO('OAIDAO');
- $this->dao->setOAI($this);
- }
-
- /**
- * Return a list of ignorable GET parameters.
- * @return array
- */
- function getNonPathInfoParams() {
- return array('press', 'page');
- }
-
- /**
- * Convert monograph ID to OAI identifier.
- * @param $publicationFormatId int
- * @return string
- */
- function publicationFormatIdToIdentifier($publicationFormatId) {
- return $this->_getIdentifierPrefix() . $publicationFormatId;
- }
-
- /**
- * Convert OAI identifier to monograph ID.
- * @param $identifier string
- * @return int
- */
- function identifierToPublicationFormatId($identifier) {
- $prefix = $this->_getIdentifierPrefix();
- if (strstr($identifier, $prefix)) {
- return (int) str_replace($prefix, '', $identifier);
- } else {
- return false;
- }
- }
-
- /**
- * Get press ID and series ID corresponding to a set specifier.
- * @param $setSpec string
- * @param $pressId int
- * @return array
- */
- function setSpecToSeriesId($setSpec, $pressId = null) {
- $tmpArray = preg_split('/:/', $setSpec);
- if (count($tmpArray) == 1) {
- list($pressSpec) = $tmpArray;
- $pressSpec = urldecode($pressSpec);
- $seriesSpec = null;
- } else if (count($tmpArray) == 2) {
- list($pressSpec, $seriesSpec) = $tmpArray;
- $pressSpec = urldecode($pressSpec);
- $seriesSpec = urldecode($seriesSpec);
- } else {
- return array(0, 0);
- }
- return $this->dao->getSetPressSeriesId($pressSpec, $seriesSpec, $this->pressId);
- }
-
-
- //
- // OAI interface functions
- //
-
- /**
- * @see OAI#repositoryInfo
- */
- function repositoryInfo() {
- $info = new OAIRepository();
-
- if (isset($this->press)) {
- $info->repositoryName = $this->press->getLocalizedName();
- $info->adminEmail = $this->press->getSetting('contactEmail');
-
- } else {
- $info->repositoryName = $this->site->getLocalizedTitle();
- $info->adminEmail = $this->site->getLocalizedContactEmail();
- }
-
- $info->sampleIdentifier = $this->publicationFormatIdToIdentifier(1);
- $info->earliestDatestamp = $this->dao->getEarliestDatestamp(array($this->pressId));
-
- $info->toolkitTitle = 'Open Monograph Press';
- $versionDao = DAORegistry::getDAO('VersionDAO'); /* @var $versionDao VersionDAO */
- $currentVersion = $versionDao->getCurrentVersion();
- $info->toolkitVersion = $currentVersion->getVersionString(false);
- $info->toolkitURL = 'http://pkp.sfu.ca/omp/';
-
- return $info;
- }
-
- /**
- * @see OAI#validIdentifier
- */
- function validIdentifier($identifier) {
- return $this->identifierToPublicationFormatId($identifier) !== false;
- }
-
- /**
- * @see OAI#identifierExists
- */
- function identifierExists($identifier) {
- $recordExists = false;
- $publicationFormatId = $this->identifierToPublicationFormatId($identifier);
- if ($publicationFormatId) {
- $recordExists = $this->dao->recordExists($publicationFormatId, array($this->pressId));
- }
- return $recordExists;
- }
-
- /**
- * @see OAI#record
- */
- function record($identifier) {
- $publicationFormatId = $this->identifierToPublicationFormatId($identifier);
- if ($publicationFormatId) {
- $record = $this->dao->getRecord($publicationFormatId, array($this->pressId));
- }
- if (!isset($record)) {
- $record = false;
- }
- return $record;
- }
-
- /**
- * @see OAI#records
- */
- function records($metadataPrefix, $from, $until, $set, $offset, $limit, &$total) {
- $records = null;
- if (!HookRegistry::call('PressOAI::records', array(&$this, $from, $until, $set, $offset, $limit, &$total, &$records))) {
- $seriesId = null;
- if (isset($set)) {
- list($pressId, $seriesId) = $this->setSpecToSeriesId($set);
- } else {
- $pressId = $this->pressId;
- }
- $records = $this->dao->getRecords(array($pressId, $seriesId), $from, $until, $set, $offset, $limit, $total);
- }
- return $records;
- }
-
- /**
- * @see OAI#identifiers
- */
- function identifiers($metadataPrefix, $from, $until, $set, $offset, $limit, &$total) {
- $records = null;
- if (!HookRegistry::call('PressOAI::identifiers', array(&$this, $from, $until, $set, $offset, $limit, &$total, &$records))) {
- $seriesId = null;
- if (isset($set)) {
- list($pressId, $seriesId) = $this->setSpecToSeriesId($set);
- } else {
- $pressId = $this->pressId;
- }
- $records = $this->dao->getIdentifiers(array($pressId, $seriesId), $from, $until, $set, $offset, $limit, $total);
- }
- return $records;
- }
-
- /**
- * @see OAI#sets
- */
- function sets($offset, $limit, &$total) {
- $sets = null;
- if (!HookRegistry::call('PressOAI::sets', array(&$this, $offset, $limit, &$total, &$sets))) {
- $sets = $this->dao->getSets($this->pressId, $offset, $limit, $total);
- }
- return $sets;
- }
-
- /**
- * @see OAI#resumptionToken
- */
- function resumptionToken($tokenId) {
- $this->dao->clearTokens();
- $token = $this->dao->getToken($tokenId);
- if (!isset($token)) {
- $token = false;
- }
- return $token;
- }
-
- /**
- * @see OAI#saveResumptionToken
- */
- function saveResumptionToken($offset, $params) {
- $token = new OAIResumptionToken(null, $offset, $params, time() + $this->config->tokenLifetime);
- $this->dao->insertToken($token);
- return $token;
- }
-
-
- //
- // Private helper methods
- //
- /**
- * Get the OAI identifier prefix.
- * @return string
- */
- function _getIdentifierPrefix() {
- return 'oai:' . $this->config->repositoryId . ':' . 'publicationFormat/';
- }
-}
-
-
diff --git a/classes/oai/omp/PressOAI.php b/classes/oai/omp/PressOAI.php
new file mode 100644
index 00000000000..58d9e31b696
--- /dev/null
+++ b/classes/oai/omp/PressOAI.php
@@ -0,0 +1,276 @@
+getRequest();
+
+ $this->site = $request->getSite();
+ $this->press = $request->getPress();
+ $this->pressId = isset($this->press) ? $this->press->getId() : null;
+ /** @var OAIDAO */
+ $this->dao = DAORegistry::getDAO('OAIDAO');
+ $this->dao->setOAI($this);
+ }
+
+ /**
+ * Convert monograph ID to OAI identifier.
+ *
+ * @param int $publicationFormatId
+ *
+ * @return string
+ */
+ public function publicationFormatIdToIdentifier($publicationFormatId)
+ {
+ return $this->_getIdentifierPrefix() . $publicationFormatId;
+ }
+
+ /**
+ * Convert OAI identifier to monograph ID.
+ *
+ * @param string $identifier
+ *
+ * @return int
+ */
+ public function identifierToPublicationFormatId($identifier)
+ {
+ $prefix = $this->_getIdentifierPrefix();
+ if (strstr($identifier, $prefix)) {
+ return (int) str_replace($prefix, '', $identifier);
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Get press ID and series ID corresponding to a set specifier.
+ *
+ * @param string $setSpec
+ * @param int $pressId
+ *
+ * @return array
+ */
+ public function setSpecToSeriesId($setSpec, $pressId = null)
+ {
+ $tmpArray = preg_split('/:/', $setSpec);
+ if (count($tmpArray) == 1) {
+ [$pressSpec] = $tmpArray;
+ $seriesSpec = null;
+ } elseif (count($tmpArray) == 2) {
+ [$pressSpec, $seriesSpec] = $tmpArray;
+ } else {
+ return [0, 0];
+ }
+ return $this->dao->getSetPressSeriesId($pressSpec, $seriesSpec, $this->pressId);
+ }
+
+
+ //
+ // OAI interface functions
+ //
+
+ /**
+ * @see OAI#repositoryInfo
+ */
+ public function repositoryInfo()
+ {
+ $info = new OAIRepository();
+
+ if (isset($this->press)) {
+ $info->repositoryName = $this->press->getLocalizedName();
+ $info->adminEmail = $this->press->getSetting('contactEmail');
+ } else {
+ $info->repositoryName = $this->site->getLocalizedTitle();
+ $info->adminEmail = $this->site->getLocalizedContactEmail();
+ }
+
+ $info->sampleIdentifier = $this->publicationFormatIdToIdentifier(1);
+ $info->earliestDatestamp = $this->dao->getEarliestDatestamp([$this->pressId]);
+
+ $info->toolkitTitle = 'Open Monograph Press';
+ $versionDao = DAORegistry::getDAO('VersionDAO'); /** @var VersionDAO $versionDao */
+ $currentVersion = $versionDao->getCurrentVersion();
+ $info->toolkitVersion = $currentVersion->getVersionString(false);
+ $info->toolkitURL = 'https://pkp.sfu.ca/omp/';
+
+ return $info;
+ }
+
+ /**
+ * @see OAI#validIdentifier
+ */
+ public function validIdentifier($identifier)
+ {
+ return $this->identifierToPublicationFormatId($identifier) !== false;
+ }
+
+ /**
+ * @see OAI#identifierExists
+ */
+ public function identifierExists($identifier)
+ {
+ $recordExists = false;
+ $publicationFormatId = $this->identifierToPublicationFormatId($identifier);
+ if ($publicationFormatId) {
+ $recordExists = $this->dao->recordExists($publicationFormatId, [$this->pressId]);
+ }
+ return $recordExists;
+ }
+
+ /**
+ * @see OAI#record
+ */
+ public function record($identifier)
+ {
+ $publicationFormatId = $this->identifierToPublicationFormatId($identifier);
+ if ($publicationFormatId) {
+ $record = $this->dao->getRecord($publicationFormatId, [$this->pressId]);
+ }
+ if (!isset($record)) {
+ $record = false;
+ }
+ return $record;
+ }
+
+ /**
+ * @see OAI#records
+ */
+ public function records($metadataPrefix, $from, $until, $set, $offset, $limit, &$total)
+ {
+ $records = null;
+ if (!Hook::call('PressOAI::records', [&$this, $from, $until, $set, $offset, $limit, &$total, &$records])) {
+ $seriesId = null;
+ if (isset($set)) {
+ [$pressId, $seriesId] = $this->setSpecToSeriesId($set);
+ } else {
+ $pressId = $this->pressId;
+ }
+ $records = $this->dao->getRecords([$pressId, $seriesId], $from, $until, $set, $offset, $limit, $total);
+ }
+ return $records;
+ }
+
+ /**
+ * @see OAI#identifiers
+ */
+ public function identifiers($metadataPrefix, $from, $until, $set, $offset, $limit, &$total)
+ {
+ $records = null;
+ if (!Hook::call('PressOAI::identifiers', [&$this, $from, $until, $set, $offset, $limit, &$total, &$records])) {
+ $seriesId = null;
+ if (isset($set)) {
+ [$pressId, $seriesId] = $this->setSpecToSeriesId($set);
+ } else {
+ $pressId = $this->pressId;
+ }
+ $records = $this->dao->getIdentifiers([$pressId, $seriesId], $from, $until, $set, $offset, $limit, $total);
+ }
+ return $records;
+ }
+
+ /**
+ * @see OAI#sets
+ */
+ public function sets($offset, $limit, &$total)
+ {
+ $sets = null;
+ if (!Hook::call('PressOAI::sets', [&$this, $offset, $limit, &$total, &$sets])) {
+ $sets = $this->dao->getSets($this->pressId, $offset, $limit, $total);
+ }
+ return $sets;
+ }
+
+ /**
+ * @see OAI#resumptionToken
+ */
+ public function resumptionToken($tokenId)
+ {
+ $this->dao->clearTokens();
+ $token = $this->dao->getToken($tokenId);
+ if (!isset($token)) {
+ $token = false;
+ }
+ return $token;
+ }
+
+ /**
+ * @see OAI#saveResumptionToken
+ */
+ public function saveResumptionToken($offset, $params)
+ {
+ $token = new OAIResumptionToken(null, $offset, $params, time() + $this->config->tokenLifetime);
+ $this->dao->insertToken($token);
+ return $token;
+ }
+
+
+ //
+ // Private helper methods
+ //
+ /**
+ * Get the OAI identifier prefix.
+ *
+ * @return string
+ */
+ public function _getIdentifierPrefix()
+ {
+ return 'oai:' . $this->config->repositoryId . ':' . 'publicationFormat/';
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\oai\omp\PressOAI', '\PressOAI');
+}
diff --git a/classes/observers/events/UsageEvent.php b/classes/observers/events/UsageEvent.php
new file mode 100644
index 00000000000..329ec063cc5
--- /dev/null
+++ b/classes/observers/events/UsageEvent.php
@@ -0,0 +1,97 @@
+chapter = $chapter;
+ $this->series = $series;
+ parent::__construct($assocType, $context, $submission, $publicationFormat, $submissionFile);
+ }
+
+ /**
+ * Get the canonical URL for the usage object
+ *
+ * @throws Exception
+ */
+ protected function getCanonicalUrl(): string
+ {
+ if (in_array($this->assocType, [Application::ASSOC_TYPE_CHAPTER, Application::ASSOC_TYPE_SERIES, Application::ASSOC_TYPE_PRESS])) {
+ $canonicalUrlPage = $canonicalUrlOp = null;
+ $canonicalUrlParams = [];
+ switch ($this->assocType) {
+ case Application::ASSOC_TYPE_CHAPTER:
+ $canonicalUrlOp = 'book';
+ $canonicalUrlParams = [$this->submission->getId()];
+ $router = $this->request->getRouter(); /** @var PageRouter $router */
+ $op = $router->getRequestedOp($this->request);
+ $args = $router->getRequestedArgs($this->request);
+ if ($op == 'book' && count($args) > 1) {
+ $submissionId = array_shift($args);
+ $subPath = empty($args) ? 0 : array_shift($args);
+ if ($subPath === 'version') {
+ $publicationId = (int) array_shift($args);
+ $canonicalUrlParams[] = 'version';
+ $canonicalUrlParams[] = $publicationId;
+ $subPath = empty($args) ? 0 : array_shift($args);
+ }
+ if ($subPath === 'chapter') {
+ $canonicalUrlParams[] = 'chapter';
+ $canonicalUrlParams[] = $this->chapter->getId();
+ }
+ }
+ break;
+ case Application::ASSOC_TYPE_SERIES:
+ $router = $this->request->getRouter(); /** @var PageRouter $router */
+ $args = $router->getRequestedArgs($this->request);
+ $canonicalUrlOp = 'series';
+ $canonicalUrlParams = [$args[0]]; // series path
+ break;
+ case Application::ASSOC_TYPE_PRESS:
+ $router = $this->request->getRouter(); /** @var PageRouter $router */
+ $page = $router->getRequestedPage($this->request);
+ if ($page == 'catalog') {
+ $canonicalUrlPage = 'catalog';
+ $canonicalUrlOp = 'index';
+ break;
+ } else {
+ return parent::getCanonicalUrl();
+ }
+ }
+ $canonicalUrl = $this->getRouterCanonicalUrl($this->request, $canonicalUrlPage, $canonicalUrlOp, $canonicalUrlParams);
+ return $canonicalUrl;
+ } else {
+ return parent::getCanonicalUrl();
+ }
+ }
+}
diff --git a/classes/observers/listeners/SendSubmissionAcknowledgement.php b/classes/observers/listeners/SendSubmissionAcknowledgement.php
new file mode 100644
index 00000000000..3a7a47abf16
--- /dev/null
+++ b/classes/observers/listeners/SendSubmissionAcknowledgement.php
@@ -0,0 +1,34 @@
+listen(
+ SubmissionSubmitted::class,
+ SendSubmissionAcknowledgement::class
+ );
+ }
+}
diff --git a/classes/payment/omp/OMPCompletedPaymentDAO.inc.php b/classes/payment/omp/OMPCompletedPaymentDAO.inc.php
deleted file mode 100644
index 6cc9803908c..00000000000
--- a/classes/payment/omp/OMPCompletedPaymentDAO.inc.php
+++ /dev/null
@@ -1,190 +0,0 @@
-retrieve(
- 'SELECT * FROM completed_payments WHERE completed_payment_id = ?' . ($contextId?' AND context_id = ?':''),
- $params
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Insert a new completed payment.
- * @param $completedPayment CompletedPayment
- */
- function insertCompletedPayment($completedPayment) {
- $this->update(
- sprintf('INSERT INTO completed_payments
- (timestamp, payment_type, context_id, user_id, assoc_id, amount, currency_code_alpha, payment_method_plugin_name)
- VALUES
- (%s, ?, ?, ?, ?, ?, ?, ?)',
- $this->datetimeToDB(Core::getCurrentDate())),
- [
- (int) $completedPayment->getType(),
- (int) $completedPayment->getContextId(),
- (int) $completedPayment->getUserId(),
- $completedPayment->getAssocId(), /* NOT int */
- $completedPayment->getAmount(),
- $completedPayment->getCurrencyCode(),
- $completedPayment->getPayMethodPluginName()
- ]
- );
-
- return $this->getInsertId();
- }
-
- /**
- * Update an existing completed payment.
- * @param $completedPayment CompletedPayment
- */
- function updateObject($completedPayment) {
- $returner = false;
-
- $this->update(
- sprintf('UPDATE completed_payments
- SET
- timestamp = %s,
- payment_type = ?,
- context_id = ?,
- user_id = ?,
- assoc_id = ?,
- amount = ?,
- currency_code_alpha = ?,
- payment_method_plugin_name = ?
- WHERE completed_payment_id = ?',
- $this->datetimeToDB($completedPayment->getTimestamp())),
- [
- (int) $completedPayment->getType(),
- (int) $completedPayment->getContextId(),
- (int) $completedPayment->getUserId(),
- (int) $completedPayment->getAssocId(),
- $completedPayment->getAmount(),
- $completedPayment->getCurrencyCode(),
- $completedPayment->getPayMethodPluginName(),
- (int) $completedPayment->getId()
- ]
- );
- }
-
- /**
- * Get the ID of the last inserted completed payment.
- * @return int
- */
- function getInsertId() {
- return $this->_getInsertId('completed_payments', 'completed_payment_id');
- }
-
- /**
- * Look for a completed PURCHASE_PUBLICATION_FORMAT payment matching the article ID
- * @param $userId int
- * @param $submissionFileId int
- * @return boolean
- */
- function hasPaidPurchaseFile ($userId, $submissionFileId) {
- $result = $this->retrieve(
- 'SELECT count(*) AS row_count FROM completed_payments WHERE payment_type = ? AND user_id = ? AND assoc_id = ?',
- [
- PAYMENT_TYPE_PURCHASE_FILE,
- (int) $userId,
- $submissionFileId
- ]
- );
- $row = $result->current();
- return $row ? (boolean) $row->row_count : false;
- }
-
- /**
- * Retrieve an array of payments for a particular context ID.
- * @param $contextId int
- * @param $rangeInfo DBResultRange|null
- * @return object DAOResultFactory containing matching payments
- */
- function getByContextId($contextId, $rangeInfo = null) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT * FROM completed_payments WHERE context_id = ? ORDER BY timestamp DESC',
- [(int) $contextId],
- $rangeInfo
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Retrieve an array of payments for a particular user ID.
- * @param $userId int
- * @param $rangeInfo DBResultRange|null
- * @return DAOResultFactory Matching payments
- */
- function getByUserId($userId, $rangeInfo = null) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT * FROM completed_payments WHERE user_id = ? ORDER BY timestamp DESC',
- [(int) $userId],
- $rangeInfo
- ),
- $this,
- '_returnPaymentFromRow'
- );
- }
-
- /**
- * Return a new data object.
- * @return CompletedPayment
- */
- function newDataObject() {
- return new CompletedPayment();
- }
-
- /**
- * Internal function to return a CompletedPayment object from a row.
- * @param $row array
- * @return CompletedPayment
- */
- function _fromRow($row) {
- $payment = $this->newDataObject();
- $payment->setTimestamp($this->datetimeFromDB($row['timestamp']));
- $payment->setId($row['completed_payment_id']);
- $payment->setType($row['payment_type']);
- $payment->setContextId($row['context_id']);
- $payment->setAmount($row['amount']);
- $payment->setCurrencyCode($row['currency_code_alpha']);
- $payment->setUserId($row['user_id']);
- $payment->setAssocId($row['assoc_id']);
- $payment->setPayMethodPluginName($row['payment_method_plugin_name']);
-
- return $payment;
- }
-}
-
-
diff --git a/classes/payment/omp/OMPCompletedPaymentDAO.php b/classes/payment/omp/OMPCompletedPaymentDAO.php
new file mode 100644
index 00000000000..feb3269672c
--- /dev/null
+++ b/classes/payment/omp/OMPCompletedPaymentDAO.php
@@ -0,0 +1,219 @@
+retrieve(
+ 'SELECT * FROM completed_payments WHERE completed_payment_id = ?' . ($contextId ? ' AND context_id = ?' : ''),
+ $params
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Insert a new completed payment.
+ *
+ * @param CompletedPayment $completedPayment
+ */
+ public function insertCompletedPayment($completedPayment)
+ {
+ $this->update(
+ sprintf(
+ 'INSERT INTO completed_payments
+ (timestamp, payment_type, context_id, user_id, assoc_id, amount, currency_code_alpha, payment_method_plugin_name)
+ VALUES
+ (%s, ?, ?, ?, ?, ?, ?, ?)',
+ $this->datetimeToDB(Core::getCurrentDate())
+ ),
+ [
+ (int) $completedPayment->getType(),
+ (int) $completedPayment->getContextId(),
+ (int) $completedPayment->getUserId(),
+ $completedPayment->getAssocId(), /* NOT int */
+ $completedPayment->getAmount(),
+ $completedPayment->getCurrencyCode(),
+ $completedPayment->getPayMethodPluginName()
+ ]
+ );
+
+ return $this->getInsertId();
+ }
+
+ /**
+ * Update an existing completed payment.
+ *
+ * @param CompletedPayment $completedPayment
+ */
+ public function updateObject($completedPayment)
+ {
+ $returner = false;
+
+ $this->update(
+ sprintf(
+ 'UPDATE completed_payments
+ SET
+ timestamp = %s,
+ payment_type = ?,
+ context_id = ?,
+ user_id = ?,
+ assoc_id = ?,
+ amount = ?,
+ currency_code_alpha = ?,
+ payment_method_plugin_name = ?
+ WHERE completed_payment_id = ?',
+ $this->datetimeToDB($completedPayment->getTimestamp())
+ ),
+ [
+ (int) $completedPayment->getType(),
+ (int) $completedPayment->getContextId(),
+ (int) $completedPayment->getUserId(),
+ (int) $completedPayment->getAssocId(),
+ $completedPayment->getAmount(),
+ $completedPayment->getCurrencyCode(),
+ $completedPayment->getPayMethodPluginName(),
+ (int) $completedPayment->getId()
+ ]
+ );
+ }
+
+ /**
+ * Look for a completed PURCHASE_PUBLICATION_FORMAT payment matching the article ID
+ *
+ * @param int $userId
+ * @param int $submissionFileId
+ *
+ * @return bool
+ */
+ public function hasPaidPurchaseFile($userId, $submissionFileId)
+ {
+ $result = $this->retrieve(
+ 'SELECT count(*) AS row_count FROM completed_payments WHERE payment_type = ? AND user_id = ? AND assoc_id = ?',
+ [
+ OMPPaymentManager::PAYMENT_TYPE_PURCHASE_FILE,
+ (int) $userId,
+ $submissionFileId
+ ]
+ );
+ $row = $result->current();
+ return $row ? (bool) $row->row_count : false;
+ }
+
+ /**
+ * Retrieve an array of payments for a particular context ID.
+ *
+ * @param int $contextId
+ * @param DBResultRange|null $rangeInfo
+ *
+ * @return DAOResultFactory containing matching payments
+ */
+ public function getByContextId($contextId, $rangeInfo = null)
+ {
+ return new DAOResultFactory(
+ $this->retrieveRange(
+ 'SELECT * FROM completed_payments WHERE context_id = ? ORDER BY timestamp DESC',
+ [(int) $contextId],
+ $rangeInfo
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve an array of payments for a particular user ID.
+ *
+ * @param int $userId
+ * @param DBResultRange|null $rangeInfo
+ *
+ * @return DAOResultFactory Matching payments
+ */
+ public function getByUserId($userId, $rangeInfo = null)
+ {
+ return new DAOResultFactory(
+ $this->retrieveRange(
+ 'SELECT * FROM completed_payments WHERE user_id = ? ORDER BY timestamp DESC',
+ [(int) $userId],
+ $rangeInfo
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Return a new data object.
+ *
+ * @return CompletedPayment
+ */
+ public function newDataObject()
+ {
+ return new CompletedPayment();
+ }
+
+ /**
+ * Internal function to return a CompletedPayment object from a row.
+ *
+ * @param array $row
+ *
+ * @return CompletedPayment
+ */
+ public function _fromRow($row)
+ {
+ $payment = $this->newDataObject();
+ $payment->setTimestamp($this->datetimeFromDB($row['timestamp']));
+ $payment->setId($row['completed_payment_id']);
+ $payment->setType($row['payment_type']);
+ $payment->setContextId($row['context_id']);
+ $payment->setAmount($row['amount']);
+ $payment->setCurrencyCode($row['currency_code_alpha']);
+ $payment->setUserId($row['user_id']);
+ $payment->setAssocId($row['assoc_id']);
+ $payment->setPayMethodPluginName($row['payment_method_plugin_name']);
+
+ return $payment;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\payment\omp\OMPCompletedPaymentDAO', '\OMPCompletedPaymentDAO');
+}
diff --git a/classes/payment/omp/OMPPaymentManager.inc.php b/classes/payment/omp/OMPPaymentManager.inc.php
deleted file mode 100644
index 1f26000ffa6..00000000000
--- a/classes/payment/omp/OMPPaymentManager.inc.php
+++ /dev/null
@@ -1,153 +0,0 @@
-_context && $this->_context->getData('currency');
- }
-
- /**
- * Create a queued payment.
- * @param $request PKPRequest
- * @param $type int PAYMENT_TYPE_...
- * @param $userId int ID of user responsible for payment
- * @param $assocId int ID of associated entity
- * @param $amount numeric Amount of currency $currencyCode
- * @param $currencyCode string optional ISO 4217 currency code
- * @return QueuedPayment
- */
- function createQueuedPayment($request, $type, $userId, $assocId, $amount, $currencyCode = null) {
- $payment = new QueuedPayment($amount, $this->_context->getData('currency'), $userId, $assocId);
- $payment->setContextId($this->_context->getId());
- $payment->setType($type);
-
- switch ($type) {
- case PAYMENT_TYPE_PURCHASE_FILE:
- import('lib.pkp.classes.submission.SubmissionFile'); // const
- $submissionFile = Services::get('submissionFile')->get($assocId);
- if ($submissionFile->getData('fileStage') != SUBMISSION_FILE_PROOF) {
- throw new Exception('The submission file for this queued payment is not in the correct file stage.');
- }
- assert($submissionFile);
- $payment->setRequestUrl($request->url(null, 'catalog', 'view', array(
- $submissionFile->getData('submissionId'),
- $submissionFile->getData('assocId'),
- $assocId
- )));
- break;
- default:
- // Invalid payment type.
- assert(false);
- break;
- }
-
- return $payment;
- }
-
- /**
- * Get the payment plugin.
- * @return PaymentPlugin
- */
- function getPaymentPlugin() {
- $paymentMethodPluginName = $this->_context->getData('paymentPluginName');
- $paymentMethodPlugin = null;
- if (!empty($paymentMethodPluginName)) {
- $plugins = PluginRegistry::loadCategory('paymethod');
- if (isset($plugins[$paymentMethodPluginName])) $paymentMethodPlugin = $plugins[$paymentMethodPluginName];
- }
- return $paymentMethodPlugin;
- }
-
- /**
- * Fulfill a queued payment.
- * @param $request PKPRequest
- * @param $queuedPayment QueuedPayment
- * @param $payMethodPluginName string Name of payment plugin.
- * @return mixed Dependent on payment type.
- */
- function fulfillQueuedPayment($request, $queuedPayment, $payMethodPluginName = null) {
- $returner = false;
- if ($queuedPayment) switch ($queuedPayment->getType()) {
- case PAYMENT_TYPE_PURCHASE_FILE:
- $returner = true;
- break;
- default:
- // Invalid payment type
- assert(false);
- }
-
- $ompCompletedPaymentDao = DAORegistry::getDAO('OMPCompletedPaymentDAO'); /* @var $ompCompletedPaymentDao OMPCompletedPaymentDAO */
- $completedPayment = $this->createCompletedPayment($queuedPayment, $payMethodPluginName);
- $ompCompletedPaymentDao->insertCompletedPayment($completedPayment);
-
- $queuedPaymentDao = DAORegistry::getDAO('QueuedPaymentDAO'); /* @var $queuedPaymentDao QueuedPaymentDAO */
- $queuedPaymentDao->deleteById($queuedPayment->getId());
-
- return $returner;
- }
-
- /**
- * Create a completed payment from a queued payment.
- * @param $queuedPayment QueuedPayment Payment to complete.
- * @param $payMethod string Name of payment plugin used.
- * @return CompletedPayment
- */
- function createCompletedPayment($queuedPayment, $payMethod) {
- import('lib.pkp.classes.payment.CompletedPayment');
- $payment = new CompletedPayment();
- $payment->setContextId($queuedPayment->getContextId());
- $payment->setType($queuedPayment->getType());
- $payment->setAmount($queuedPayment->getAmount());
- $payment->setCurrencyCode($queuedPayment->getCurrencyCode());
- $payment->setUserId($queuedPayment->getUserId());
- $payment->setAssocId($queuedPayment->getAssocId());
- $payment->setPayMethodPluginName($payMethod);
-
- return $payment;
- }
-
- /**
- * Returns the name of a payment.
- * @return string
- */
- function getPaymentName($payment) {
- switch ($payment->getType()) {
- case PAYMENT_TYPE_PURCHASE_FILE:
- $submissionFile = Services::get('submissionFile')->get($payment->getAssocId());
- if (!$submissionFile || $submissionFile->getData('assocType') !== ASSOC_TYPE_PUBLICATION_FORMAT) {
- return false;
- }
-
- return $submissionFile->getLocalizedData('name');
- default:
- // Invalid payment type
- assert(false);
- }
- }
-}
-
-
diff --git a/classes/payment/omp/OMPPaymentManager.php b/classes/payment/omp/OMPPaymentManager.php
new file mode 100644
index 00000000000..f67c698eee7
--- /dev/null
+++ b/classes/payment/omp/OMPPaymentManager.php
@@ -0,0 +1,187 @@
+_context && $this->_context->getData('currency');
+ }
+
+ /**
+ * Create a queued payment.
+ *
+ * @param Request $request
+ * @param int $type PAYMENT_TYPE_...
+ * @param int $userId ID of user responsible for payment
+ * @param int $assocId ID of associated entity
+ * @param float $amount Amount of currency $currencyCode
+ * @param string $currencyCode optional ISO 4217 currency code
+ *
+ * @return QueuedPayment
+ */
+ public function createQueuedPayment($request, $type, $userId, $assocId, $amount, $currencyCode = null)
+ {
+ $payment = new QueuedPayment($amount, $this->_context->getData('currency'), $userId, $assocId);
+ $payment->setContextId($this->_context->getId());
+ $payment->setType($type);
+
+ switch ($type) {
+ case self::PAYMENT_TYPE_PURCHASE_FILE:
+ $submissionFile = Repo::submissionFile()->get($assocId);
+ if ($submissionFile->getData('fileStage') != SubmissionFile::SUBMISSION_FILE_PROOF) {
+ throw new Exception('The submission file for this queued payment is not in the correct file stage.');
+ }
+ assert($submissionFile);
+ $payment->setRequestUrl($request->url(null, 'catalog', 'view', [
+ $submissionFile->getData('submissionId'),
+ $submissionFile->getData('assocId'),
+ $assocId
+ ]));
+ break;
+ default:
+ // Invalid payment type.
+ assert(false);
+ break;
+ }
+
+ return $payment;
+ }
+
+ /**
+ * Get the payment plugin.
+ *
+ * @return PaymethodPlugin
+ */
+ public function getPaymentPlugin()
+ {
+ $paymentMethodPluginName = $this->_context->getData('paymentPluginName');
+ $paymentMethodPlugin = null;
+ if (!empty($paymentMethodPluginName)) {
+ $plugins = PluginRegistry::loadCategory('paymethod');
+ if (isset($plugins[$paymentMethodPluginName])) {
+ $paymentMethodPlugin = $plugins[$paymentMethodPluginName];
+ }
+ }
+ return $paymentMethodPlugin;
+ }
+
+ /**
+ * Fulfill a queued payment.
+ *
+ * @param Request $request
+ * @param QueuedPayment $queuedPayment
+ * @param string $payMethodPluginName Name of payment plugin.
+ *
+ * @return mixed Dependent on payment type.
+ */
+ public function fulfillQueuedPayment($request, $queuedPayment, $payMethodPluginName = null)
+ {
+ $returner = false;
+ if ($queuedPayment) {
+ switch ($queuedPayment->getType()) {
+ case self::PAYMENT_TYPE_PURCHASE_FILE:
+ $returner = true;
+ break;
+ default:
+ // Invalid payment type
+ assert(false);
+ }
+ }
+
+ $ompCompletedPaymentDao = DAORegistry::getDAO('OMPCompletedPaymentDAO'); /** @var OMPCompletedPaymentDAO $ompCompletedPaymentDao */
+ $completedPayment = $this->createCompletedPayment($queuedPayment, $payMethodPluginName);
+ $ompCompletedPaymentDao->insertCompletedPayment($completedPayment);
+
+ $queuedPaymentDao = DAORegistry::getDAO('QueuedPaymentDAO'); /** @var QueuedPaymentDAO $queuedPaymentDao */
+ $queuedPaymentDao->deleteById($queuedPayment->getId());
+
+ return $returner;
+ }
+
+ /**
+ * Create a completed payment from a queued payment.
+ *
+ * @param QueuedPayment $queuedPayment Payment to complete.
+ * @param string $payMethod Name of payment plugin used.
+ *
+ * @return CompletedPayment
+ */
+ public function createCompletedPayment($queuedPayment, $payMethod)
+ {
+ $payment = new CompletedPayment();
+ $payment->setContextId($queuedPayment->getContextId());
+ $payment->setType($queuedPayment->getType());
+ $payment->setAmount($queuedPayment->getAmount());
+ $payment->setCurrencyCode($queuedPayment->getCurrencyCode());
+ $payment->setUserId($queuedPayment->getUserId());
+ $payment->setAssocId($queuedPayment->getAssocId());
+ $payment->setPayMethodPluginName($payMethod);
+
+ return $payment;
+ }
+
+ /**
+ * Returns the name of a payment.
+ *
+ * @return string
+ */
+ public function getPaymentName($payment)
+ {
+ switch ($payment->getType()) {
+ case self::PAYMENT_TYPE_PURCHASE_FILE:
+ $submissionFile = Repo::submissionFile()->get($payment->getAssocId());
+ if (!$submissionFile || $submissionFile->getData('assocType') !== Application::ASSOC_TYPE_PUBLICATION_FORMAT) {
+ return false;
+ }
+
+ return $submissionFile->getLocalizedData('name');
+ default:
+ // Invalid payment type
+ assert(false);
+ }
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\payment\omp\OMPPaymentManager', '\OMPPaymentManager');
+ define('PAYMENT_TYPE_PURCHASE_FILE', OMPPaymentManager::PAYMENT_TYPE_PURCHASE_FILE);
+}
diff --git a/classes/plugins/IDoiRegistrationAgency.php b/classes/plugins/IDoiRegistrationAgency.php
new file mode 100644
index 00000000000..76f03a0ae03
--- /dev/null
+++ b/classes/plugins/IDoiRegistrationAgency.php
@@ -0,0 +1,36 @@
+getPubIdType();
-
- // If we already have an assigned pub id, use it.
- $storedPubId = $pubObject->getStoredPubId($pubIdType);
- if ($storedPubId) return $storedPubId;
-
- // Determine the type of the publishing object.
- $pubObjectType = $this->getPubObjectType($pubObject);
-
- // Initialize variables for publication objects.
- $submission = ($pubObjectType == 'Submission' ? $pubObject : null);
- $representation = ($pubObjectType == 'Representation' ? $pubObject : null);
- $submissionFile = ($pubObjectType == 'SubmissionFile' ? $pubObject : null);
- $chapter = ($pubObjectType == 'Chapter' ? $pubObject : null);
-
- // Get the context id.
- if ($pubObjectType == 'Submission') {
- $contextId = $pubObject->getContextId();
- } else {
- // Retrieve the submission.
- if (is_a($pubObject, 'Chapter') || is_a($pubObject, 'Representation')) {
- $publication = Services::get('publication')->get($pubObject->getData('publicationId'));
- $submission = Services::get('submission')->get($publication->getData('submissionId'));
- } else {
- assert(is_a($pubObject, 'SubmissionFile'));
- $submission = Services::get('submission')->get($pubObject->getData('submissionId'));
- }
- if (!$submission) return null;
- // Now we can identify the context.
- $contextId = $submission->getContextId();
- }
- // Check the context
- $context = $this->getContext($contextId);
- if (!$context) return null;
- $contextId = $context->getId();
-
- // Check whether pub ids are enabled for the given object type.
- $objectTypeEnabled = $this->isObjectTypeEnabled($pubObjectType, $contextId);
- if (!$objectTypeEnabled) return null;
-
- // Retrieve the pub id prefix.
- $pubIdPrefix = $this->getSetting($contextId, $this->getPrefixFieldName());
- if (empty($pubIdPrefix)) return null;
-
- // Generate the pub id suffix.
- $suffixFieldName = $this->getSuffixFieldName();
- $suffixGenerationStrategy = $this->getSetting($contextId, $suffixFieldName);
- switch ($suffixGenerationStrategy) {
- case 'customId':
- $pubIdSuffix = $pubObject->getData($suffixFieldName);
- break;
-
- case 'pattern':
- $suffixPatternsFieldNames = $this->getSuffixPatternsFieldNames();
- $pubIdSuffix = $this->getSetting($contextId, $suffixPatternsFieldNames[$pubObjectType]);
-
- // %p - press initials
- $pubIdSuffix = PKPString::regexp_replace('/%p/', PKPString::regexp_replace('/[^-._;()\/A-Za-z0-9]/', '', PKPString::strtolower($context->getAcronym($context->getPrimaryLocale()))), $pubIdSuffix);
-
- // %x - custom identifier
- if ($pubObject->getStoredPubId('publisher-id')) {
- $pubIdSuffix = PKPString::regexp_replace('/%x/', $pubObject->getStoredPubId('publisher-id'), $pubIdSuffix);
- }
-
- if ($submission) {
- // %m - monograph id
- $pubIdSuffix = PKPString::regexp_replace('/%m/', $submission->getId(), $pubIdSuffix);
- }
-
- if ($chapter) {
- // %c - chapter id
- $pubIdSuffix = PKPString::regexp_replace('/%c/', $chapter->getId(), $pubIdSuffix);
- }
-
- if ($representation) {
- // %f - publication format id
- $pubIdSuffix = PKPString::regexp_replace('/%f/', $representation->getId(), $pubIdSuffix);
- }
-
- if ($submissionFile) {
- // %s - file id
- $pubIdSuffix = PKPString::regexp_replace('/%s/', $submissionFile->getId(), $pubIdSuffix);
- }
-
- break;
-
- default:
- $pubIdSuffix = PKPString::regexp_replace('/[^-._;()\/A-Za-z0-9]/', '', PKPString::strtolower($context->getAcronym($context->getPrimaryLocale())));
-
- if ($submission) {
- $pubIdSuffix .= '.' . $submission->getId();
- }
-
- if ($chapter) {
- $pubIdSuffix .= '.c' . $chapter->getId();
- }
-
- if ($representation) {
- $pubIdSuffix .= '.' . $representation->getId();
- }
-
- if ($submissionFile) {
- $pubIdSuffix .= '.' . $submissionFile->getId();
- }
- }
- if (empty($pubIdSuffix)) return null;
-
- // Costruct the pub id from prefix and suffix.
- $pubId = $this->constructPubId($pubIdPrefix, $pubIdSuffix, $contextId);
-
- return $pubId;
- }
-
- /**
- * @copydoc PKPPubIdPlugin::getDAOs()
- */
- function getDAOs() {
- return array_merge(parent::getDAOs(), array('Chapter' => DAORegistry::getDAO('ChapterDAO')));
- }
-
- /**
- * @copydoc PKPPubIdPlugin::checkDuplicate()
- */
- function checkDuplicate($pubId, $pubObjectType, $excludeId, $contextId) {
- foreach ($this->getPubObjectTypes() as $type) {
- if ($type === 'Chapter') {
- $excludeTypeId = $type === $pubObjectType ? $excludeId : null;
- if (DAORegistry::getDAO('ChapterDAO')->pubIdExists($this->getPubIdType(), $pubId, $excludeTypeId, $contextId)) {
- return false;
- }
- }
- }
-
- return true;
- }
-}
-
-
diff --git a/classes/plugins/PubIdPlugin.php b/classes/plugins/PubIdPlugin.php
new file mode 100644
index 00000000000..c5011076c60
--- /dev/null
+++ b/classes/plugins/PubIdPlugin.php
@@ -0,0 +1,239 @@
+getPubIdType();
+
+ // If we already have an assigned pub id, use it.
+ $storedPubId = $pubObject->getStoredPubId($pubIdType);
+ if ($storedPubId) {
+ return $storedPubId;
+ }
+
+ // Determine the type of the publishing object.
+ $pubObjectType = $this->getPubObjectType($pubObject);
+
+ // Initialize variables for publication objects.
+ $submission = null;
+ // Publication is actually handled differently now, but keep it here however for now.
+ $publication = ($pubObjectType == 'Publication' ? $pubObject : null);
+ $representation = ($pubObjectType == 'Representation' ? $pubObject : null);
+ $submissionFile = ($pubObjectType == 'SubmissionFile' ? $pubObject : null);
+ $chapter = ($pubObjectType == 'Chapter' ? $pubObject : null);
+
+ // Retrieve the submission.
+ if (is_a($pubObject, 'Chapter') || is_a($pubObject, 'Representation')) {
+ $publication = Repo::publication()->get($pubObject->getData('publicationId'));
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+ } else { // Publication or SubmissionFile
+ $submission = Repo::submission()->get($pubObject->getData('submissionId'));
+ }
+ if (!$submission) {
+ return null;
+ }
+ // Now we can identify the context.
+ $contextId = $submission->getData('contextId');
+
+ // Check the context
+ $context = $this->getContext($contextId);
+ if (!$context) {
+ return null;
+ }
+ $contextId = $context->getId();
+
+ // Check whether pub ids are enabled for the given object type.
+ $objectTypeEnabled = $this->isObjectTypeEnabled($pubObjectType, $contextId);
+ if (!$objectTypeEnabled) {
+ return null;
+ }
+
+ // Retrieve the pub id prefix.
+ $pubIdPrefix = $this->getSetting($contextId, $this->getPrefixFieldName());
+ if (empty($pubIdPrefix)) {
+ return null;
+ }
+
+ // Generate the pub id suffix.
+ $suffixFieldName = $this->getSuffixFieldName();
+ $suffixGenerationStrategy = $this->getSetting($contextId, $suffixFieldName);
+ switch ($suffixGenerationStrategy) {
+ case 'customId':
+ $pubIdSuffix = $pubObject->getData($suffixFieldName);
+ break;
+
+ case 'pattern':
+ $suffixPatternsFieldNames = $this->getSuffixPatternsFieldNames();
+ $pubIdSuffix = $this->getSetting($contextId, $suffixPatternsFieldNames[$pubObjectType]);
+
+ $pubIdSuffix = $this::generateCustomPattern($context, $pubIdSuffix, $pubObject, $submission, $chapter, $representation, $submissionFile);
+
+ break;
+
+ default:
+ $pubIdSuffix = $this::generateDefaultPattern($context, $submission, $chapter, $representation, $submissionFile);
+ }
+ if (empty($pubIdSuffix)) {
+ return null;
+ }
+
+ // Construct the pub id from prefix and suffix.
+ $pubId = $this->constructPubId($pubIdPrefix, $pubIdSuffix, $contextId);
+
+ return $pubId;
+ }
+
+ /**
+ * Generate the default, semantic-based pub-id suffix pattern
+ *
+ */
+ public static function generateDefaultPattern(
+ Context $context,
+ ?Submission $submission = null,
+ ?Chapter $chapter = null,
+ ?Representation $representation = null,
+ ?SubmissionFile $submissionFile = null
+ ): string {
+ $pubIdSuffix = PKPString::regexp_replace('/[^-._;()\/A-Za-z0-9]/', '', PKPString::strtolower($context->getAcronym($context->getPrimaryLocale())));
+
+ if ($submission) {
+ $pubIdSuffix .= '.' . $submission->getId();
+ }
+
+ if ($chapter) {
+ $pubIdSuffix .= '.c' . $chapter->getId();
+ }
+
+ if ($representation) {
+ $pubIdSuffix .= '.' . $representation->getId();
+ }
+
+ if ($submissionFile) {
+ $pubIdSuffix .= '.' . $submissionFile->getId();
+ }
+
+ return $pubIdSuffix;
+ }
+
+ /**
+ * Generate the custom, user-defined pub-id suffix pattern
+ *
+ */
+ public static function generateCustomPattern(
+ Context $context,
+ string $pubIdSuffix,
+ DataObject $pubObject,
+ ?Submission $submission = null,
+ ?Chapter $chapter = null,
+ ?Representation $representation = null,
+ ?SubmissionFile $submissionFile = null
+ ): string {
+ // %p - press initials
+ $pubIdSuffix = PKPString::regexp_replace('/%p/', PKPString::regexp_replace('/[^-._;()\/A-Za-z0-9]/', '', PKPString::strtolower($context->getAcronym($context->getPrimaryLocale()))), $pubIdSuffix);
+ /** @var Chapter $pubObject */
+ // %x - custom identifier
+ if ($pubObject->getStoredPubId('publisher-id')) {
+ $pubIdSuffix = PKPString::regexp_replace('/%x/', $pubObject->getStoredPubId('publisher-id'), $pubIdSuffix);
+ }
+
+ if ($submission) {
+ // %m - monograph id
+ $pubIdSuffix = PKPString::regexp_replace('/%m/', $submission->getId(), $pubIdSuffix);
+ }
+
+ if ($chapter) {
+ // %c - chapter id
+ $pubIdSuffix = PKPString::regexp_replace('/%c/', $chapter->getId(), $pubIdSuffix);
+ }
+
+ if ($representation) {
+ // %f - publication format id
+ $pubIdSuffix = PKPString::regexp_replace('/%f/', $representation->getId(), $pubIdSuffix);
+ }
+
+ if ($submissionFile) {
+ // %s - file id
+ $pubIdSuffix = PKPString::regexp_replace('/%s/', $submissionFile->getId(), $pubIdSuffix);
+ }
+
+ return $pubIdSuffix;
+ }
+
+ /**
+ * @copydoc PKPPubIdPlugin::getDAOs()
+ */
+ public function getDAOs()
+ {
+ return array_merge(parent::getDAOs(), [DAORegistry::getDAO('ChapterDAO')]);
+ }
+
+ /**
+ * @copydoc PKPPubIdPlugin::checkDuplicate()
+ */
+ public function checkDuplicate($pubId, $pubObjectType, $excludeId, $contextId)
+ {
+ /** @var ChapterDAO */
+ $chapterDao = DAORegistry::getDAO('ChapterDAO');
+ foreach ($this->getPubObjectTypes() as $type => $fqcn) {
+ if ($type === 'Chapter') {
+ $excludeTypeId = $type === $pubObjectType ? $excludeId : null;
+ if ($chapterDao->pubIdExists($this->getPubIdType(), $pubId, $excludeTypeId, $contextId)) {
+ return false;
+ }
+ }
+ }
+
+ return parent::checkDuplicate($pubId, $pubObjectType, $excludeId, $contextId);
+ }
+}
diff --git a/classes/press/FeatureDAO.inc.php b/classes/press/FeatureDAO.inc.php
deleted file mode 100644
index 8aed73c3f0c..00000000000
--- a/classes/press/FeatureDAO.inc.php
+++ /dev/null
@@ -1,209 +0,0 @@
- monograph ID
- */
- function getMonographIdsByAssoc($assocType, $assocId) {
- $result = $this->retrieve(
- 'SELECT submission_id, seq FROM features WHERE assoc_type = ? AND assoc_id = ? ORDER BY seq',
- [(int) $assocType, (int) $assocId]
- );
-
- $returner = [];
- foreach ($result as $row) {
- $returner[$row->seq] = $row->submission_id;
- }
- return $returner;
- }
-
- /**
- * Get feature sequences by association.
- * @param $assocType int ASSOC_TYPE_...
- * @param $assocId int
- * @return array Associative array monograph ID => seq
- */
- function getSequencesByAssoc($assocType, $assocId) {
- return array_flip($this->getMonographIdsByAssoc($assocType, $assocId));
- }
-
- /**
- * Insert a new feature.
- * @param $monographId int
- * @param $assocType int ASSOC_TYPE_...
- * @param $assocId int
- * @param $seq int
- */
- function insertFeature($monographId, $assocType, $assocId, $seq) {
- $this->update(
- 'INSERT INTO features
- (submission_id, assoc_type, assoc_id, seq)
- VALUES
- (?, ?, ?, ?)',
- [
- (int) $monographId,
- (int) $assocType,
- (int) $assocId,
- (int) $seq
- ]
- );
- }
-
- /**
- * Delete a feature by ID.
- * @param $featureId int
- * @param $pressId int optional
- */
- function deleteByMonographId($monographId) {
- $this->update(
- 'DELETE FROM features WHERE submission_id = ?',
- [(int) $monographId]
- );
- }
-
- /**
- * Delete a feature by association.
- * @param $assocType int ASSOC_TYPE_...
- * @param $assocId int
- */
- function deleteByAssoc($assocType, $assocId) {
- $this->update(
- 'DELETE FROM features WHERE assoc_type = ? AND assoc_id = ?',
- [(int) $assocType, (int) $assocId]
- );
- }
-
- /**
- * Delete a feature.
- * @param $monographId int
- * @param $assocType int ASSOC_TYPE_...
- * @param $assocId int
- */
- function deleteFeature($monographId, $assocType, $assocId) {
- $this->update(
- 'DELETE FROM features
- WHERE submission_id = ? AND
- assoc_type = ? AND
- assoc_id = ?',
- [
- (int) $monographId,
- (int) $assocType,
- (int) $assocId
- ]
- );
- }
-
- /**
- * Check if the passed monograph id is featured on the
- * passed associated object.
- * @param $monographId int The monograph id to check the feature state.
- * @param $assocType int The associated object type that the monograph
- * is featured.
- * @param $assocId int The associated object id that the monograph is
- * featured.
- * @return boolean Whether or not the monograph is featured.
- */
- function isFeatured($monographId, $assocType, $assocId) {
- $result = $this->retrieve(
- 'SELECT submission_id FROM features WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
- [(int) $monographId, (int) $assocType, (int) $assocId]
- );
- return (boolean) $result->current();
- }
-
- /**
- * Return the monograph's featured settings in all assoc types
- * @param $monographId int The monograph id to get the feature state.
- * @return array
- */
- function getFeaturedAll($monographId) {
- $result = $this->retrieve(
- 'SELECT assoc_type, assoc_id, seq FROM features WHERE submission_id = ?',
- [(int) $monographId]
- );
-
- $featured = [];
- foreach ($result as $row) {
- $featured[] = array(
- 'assoc_type' => (int) $row->assoc_type,
- 'assoc_id' => (int) $row->assoc_id,
- 'seq' => (int) $row->seq,
- );
- }
- return $featured;
- }
-
- /**
- * Get the current sequence position of the passed monograph id.
- * @param $monographId int The monograph id to check the sequence position.
- * @param $assocType int The monograph associated object type.
- * @param $assocId int The monograph associated object id.
- * @return int or boolean The monograph sequence position or false if no
- * monograph feature is set.
- */
- function getSequencePosition($monographId, $assocType, $assocId) {
- $result = $this->retrieve(
- 'SELECT seq FROM features WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
- [(int) $monographId, (int) $assocType, (int) $assocId]
- );
- $row = $result->current();
- return $row ? $row->seq : false;
- }
-
- function setSequencePosition($monographId, $assocType, $assocId, $sequencePosition) {
- $this->update(
- 'UPDATE features SET seq = ? WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
- [(int) $sequencePosition, (int) $monographId, (int) $assocType, (int) $assocId]
- );
- }
-
- /**
- * Resequence features by association.
- * @param $assocType int ASSOC_TYPE_...
- * @param $assocId int per $assocType
- * @param $seqMonographId if specified, sequence of monograph to return
- * @return array Associative array of id => seq for resequenced set
- */
- function resequenceByAssoc($assocType, $assocId) {
- $result = $this->retrieve(
- 'SELECT submission_id FROM features WHERE assoc_type = ? AND assoc_id = ? ORDER BY seq',
- [(int) $assocType, (int) $assocId]
- );
-
- $returner = [];
- $i=2;
- foreach ($result as $row) {
- $this->update(
- 'UPDATE features SET seq = ? WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
- [
- $i,
- $row->submission_id,
- (int) $assocType,
- (int) $assocId
- ]
- );
- $returner[$row->submission_id] = $i;
- $i += 2;
- }
- return $returner;
- }
-}
-
-
diff --git a/classes/press/FeatureDAO.php b/classes/press/FeatureDAO.php
new file mode 100644
index 00000000000..0b479399965
--- /dev/null
+++ b/classes/press/FeatureDAO.php
@@ -0,0 +1,239 @@
+ monograph ID
+ */
+ public function getMonographIdsByAssoc($assocType, $assocId)
+ {
+ $result = $this->retrieve(
+ 'SELECT submission_id, seq FROM features WHERE assoc_type = ? AND assoc_id = ? ORDER BY seq',
+ [(int) $assocType, (int) $assocId]
+ );
+
+ $returner = [];
+ foreach ($result as $row) {
+ $returner[$row->seq] = $row->submission_id;
+ }
+ return $returner;
+ }
+
+ /**
+ * Get feature sequences by association.
+ *
+ * @param int $assocType Application::ASSOC_TYPE_...
+ * @param int $assocId
+ *
+ * @return array Associative array monograph ID => seq
+ */
+ public function getSequencesByAssoc($assocType, $assocId)
+ {
+ return array_flip($this->getMonographIdsByAssoc($assocType, $assocId));
+ }
+
+ /**
+ * Insert a new feature.
+ *
+ * @param int $monographId
+ * @param int $assocType Application::ASSOC_TYPE_...
+ * @param int $assocId
+ * @param int $seq
+ */
+ public function insertFeature($monographId, $assocType, $assocId, $seq)
+ {
+ $this->update(
+ 'INSERT INTO features
+ (submission_id, assoc_type, assoc_id, seq)
+ VALUES
+ (?, ?, ?, ?)',
+ [
+ (int) $monographId,
+ (int) $assocType,
+ (int) $assocId,
+ (int) $seq
+ ]
+ );
+ }
+
+ /**
+ * Delete a feature by ID.
+ */
+ public function deleteByMonographId($monographId)
+ {
+ $this->update(
+ 'DELETE FROM features WHERE submission_id = ?',
+ [(int) $monographId]
+ );
+ }
+
+ /**
+ * Delete a feature by association.
+ *
+ * @param int $assocType Application::ASSOC_TYPE_...
+ * @param int $assocId
+ */
+ public function deleteByAssoc($assocType, $assocId)
+ {
+ $this->update(
+ 'DELETE FROM features WHERE assoc_type = ? AND assoc_id = ?',
+ [(int) $assocType, (int) $assocId]
+ );
+ }
+
+ /**
+ * Delete a feature.
+ *
+ * @param int $monographId
+ * @param int $assocType Application::ASSOC_TYPE_...
+ * @param int $assocId
+ */
+ public function deleteFeature($monographId, $assocType, $assocId)
+ {
+ $this->update(
+ 'DELETE FROM features
+ WHERE submission_id = ? AND
+ assoc_type = ? AND
+ assoc_id = ?',
+ [
+ (int) $monographId,
+ (int) $assocType,
+ (int) $assocId
+ ]
+ );
+ }
+
+ /**
+ * Check if the passed monograph id is featured on the
+ * passed associated object.
+ *
+ * @param int $monographId The monograph id to check the feature state.
+ * @param int $assocType The associated object type that the monograph
+ * is featured.
+ * @param int $assocId The associated object id that the monograph is
+ * featured.
+ *
+ * @return bool Whether or not the monograph is featured.
+ */
+ public function isFeatured($monographId, $assocType, $assocId)
+ {
+ $result = $this->retrieve(
+ 'SELECT submission_id FROM features WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
+ [(int) $monographId, (int) $assocType, (int) $assocId]
+ );
+ return (bool) $result->current();
+ }
+
+ /**
+ * Return the monograph's featured settings in all assoc types
+ *
+ * @param int $monographId The monograph id to get the feature state.
+ *
+ * @return array
+ */
+ public function getFeaturedAll($monographId)
+ {
+ $result = $this->retrieve(
+ 'SELECT assoc_type, assoc_id, seq FROM features WHERE submission_id = ?',
+ [(int) $monographId]
+ );
+
+ $featured = [];
+ foreach ($result as $row) {
+ $featured[] = [
+ 'assoc_type' => (int) $row->assoc_type,
+ 'assoc_id' => (int) $row->assoc_id,
+ 'seq' => (int) $row->seq,
+ ];
+ }
+ return $featured;
+ }
+
+ /**
+ * Get the current sequence position of the passed monograph id.
+ *
+ * @param int $monographId The monograph id to check the sequence position.
+ * @param int $assocType The monograph associated object type.
+ * @param int $assocId The monograph associated object id.
+ *
+ * @return int or boolean The monograph sequence position or false if no
+ * monograph feature is set.
+ */
+ public function getSequencePosition($monographId, $assocType, $assocId)
+ {
+ $result = $this->retrieve(
+ 'SELECT seq FROM features WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
+ [(int) $monographId, (int) $assocType, (int) $assocId]
+ );
+ $row = $result->current();
+ return $row ? $row->seq : false;
+ }
+
+ public function setSequencePosition($monographId, $assocType, $assocId, $sequencePosition)
+ {
+ $this->update(
+ 'UPDATE features SET seq = ? WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
+ [(int) $sequencePosition, (int) $monographId, (int) $assocType, (int) $assocId]
+ );
+ }
+
+ /**
+ * Resequence features by association.
+ *
+ * @param int $assocType Application::ASSOC_TYPE_...
+ * @param int $assocId per $assocType
+ *
+ * @return array Associative array of id => seq for resequenced set
+ */
+ public function resequenceByAssoc($assocType, $assocId)
+ {
+ $result = $this->retrieve(
+ 'SELECT submission_id FROM features WHERE assoc_type = ? AND assoc_id = ? ORDER BY seq',
+ [(int) $assocType, (int) $assocId]
+ );
+
+ $returner = [];
+ $i = 2;
+ foreach ($result as $row) {
+ $this->update(
+ 'UPDATE features SET seq = ? WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
+ [
+ $i,
+ $row->submission_id,
+ (int) $assocType,
+ (int) $assocId
+ ]
+ );
+ $returner[$row->submission_id] = $i;
+ $i += 2;
+ }
+ return $returner;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\press\FeatureDAO', '\FeatureDAO');
+}
diff --git a/classes/press/NewReleaseDAO.inc.php b/classes/press/NewReleaseDAO.inc.php
deleted file mode 100644
index 9dbf867b37b..00000000000
--- a/classes/press/NewReleaseDAO.inc.php
+++ /dev/null
@@ -1,178 +0,0 @@
- true]
- */
- function getMonographIdsByAssoc($assocType, $assocId) {
- $result = $this->retrieve(
- 'SELECT submission_id FROM new_releases WHERE assoc_type = ? AND assoc_id = ?',
- [(int) $assocType, (int) $assocId]
- );
-
- $returner = [];
- foreach ($result as $row) {
- $returner[$row->submission_id] = true;
- }
- return $returner;
- }
-
- /**
- * Get monographs by association.
- * @param $assocType int ASSOC_TYPE_...
- * @param $assocId int
- * @return array Monograph
- */
- function getMonographsByAssoc($assocType, $assocId) {
- // import STATUS_PUBLISHED constant
- import('classes.submission.Submission');
- $result = $this->retrieve(
- 'SELECT n.submission_id AS submission_id
- FROM new_releases n,
- submissions s,
- publications p
- WHERE n.submission_id = s.submission_id
- AND p.publication_id = s.current_publication_id
- AND n.assoc_type = ? AND n.assoc_id = ?
- AND s.status = ?
- ORDER BY p.date_published DESC',
- [(int) $assocType, (int) $assocId, STATUS_PUBLISHED]
- );
-
- $returner = [];
- foreach ($result as $row) {
- $returner[] = Services::get('submission')->get($row->submission_id);
- }
- return $returner;
- }
-
- /**
- * Insert a new NewRelease.
- * @param $monographId int
- * @param $assocType int ASSOC_TYPE_...
- * @param $assocId int
- */
- function insertNewRelease($monographId, $assocType, $assocId) {
- $this->update(
- 'INSERT INTO new_releases
- (submission_id, assoc_type, assoc_id)
- VALUES
- (?, ?, ?)',
- [
- (int) $monographId,
- (int) $assocType,
- (int) $assocId
- ]
- );
- }
-
- /**
- * Delete a new release by ID.
- * @param $monographId int
- * @param $pressId int optional
- */
- function deleteByMonographId($monographId) {
- $this->update(
- 'DELETE FROM new_releases WHERE submission_id = ?',
- [(int) $monographId]
- );
- }
-
- /**
- * Delete a new release by association.
- * @param $assocType int ASSOC_TYPE_...
- * @param $assocId int
- */
- function deleteByAssoc($assocType, $assocId) {
- $this->update(
- 'DELETE FROM new_releases WHERE assoc_type = ? AND assoc_id = ?',
- [(int) $assocType, (int) $assocId]
- );
- }
-
- /**
- * Delete a new release.
- * @param $monographId int
- * @param $assocType int ASSOC_TYPE_...
- * @param $assocId int
- */
- function deleteNewRelease($monographId, $assocType, $assocId) {
- $this->update(
- 'DELETE FROM new_releases
- WHERE submission_id = ? AND
- assoc_type = ? AND
- assoc_id = ?',
- [
- (int) $monographId,
- (int) $assocType,
- (int) $assocId
- ]
- );
- }
-
- /**
- * Check if the passed monograph id is marked as new release
- * on the passed associated object.
- * @param $monographId int The monograph id to check the new release state.
- * @param $assocType int The associated object type that the monograph
- * is checked for a new release mark.
- * @param $assocId int The associated object id that the monograph is
- * checked for a new release mark.
- * @return boolean Whether or not the monograph is marked as a new release.
- */
- function isNewRelease($monographId, $assocType, $assocId) {
- $result = $this->retrieve(
- 'SELECT submission_id FROM new_releases WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
- [(int) $monographId, (int) $assocType, (int) $assocId]
- );
- return (boolean) $result->current();
- }
-
- /**
- * Return the monograph's new release settings in all assoc types
- *
- * @param $monographId int The monograph ID to get the new release state
- * @return array
- */
- function getNewReleaseAll($monographId) {
- $result = $this->retrieve(
- 'SELECT assoc_type, assoc_id FROM new_releases WHERE submission_id = ?',
- [(int) $monographId]
- );
-
- $newRelease = [];
- foreach ($result as $row) {
- $newRelease[] = [
- 'assoc_type' => (int) $row->assoc_type,
- 'assoc_id' => (int) $row->assoc_id,
- ];
- }
- return $newRelease;
- }
-}
-
-
diff --git a/classes/press/NewReleaseDAO.php b/classes/press/NewReleaseDAO.php
new file mode 100644
index 00000000000..2afe54a65cb
--- /dev/null
+++ b/classes/press/NewReleaseDAO.php
@@ -0,0 +1,197 @@
+ true]
+ */
+ public function getMonographIdsByAssoc($assocType, $assocId)
+ {
+ $result = $this->retrieve(
+ 'SELECT submission_id FROM new_releases WHERE assoc_type = ? AND assoc_id = ?',
+ [(int) $assocType, (int) $assocId]
+ );
+
+ $returner = [];
+ foreach ($result as $row) {
+ $returner[$row->submission_id] = true;
+ }
+ return $returner;
+ }
+
+ /**
+ * Get monographs by association.
+ *
+ * @param int $assocType Application::ASSOC_TYPE_...
+ * @param int $assocId
+ *
+ * @return array Monograph
+ */
+ public function getMonographsByAssoc($assocType, $assocId)
+ {
+ $result = $this->retrieve(
+ 'SELECT n.submission_id AS submission_id
+ FROM new_releases n,
+ submissions s,
+ publications p
+ WHERE n.submission_id = s.submission_id
+ AND p.publication_id = s.current_publication_id
+ AND n.assoc_type = ? AND n.assoc_id = ?
+ AND s.status = ?
+ ORDER BY p.date_published DESC',
+ [(int) $assocType, (int) $assocId, PKPSubmission::STATUS_PUBLISHED]
+ );
+
+ $returner = [];
+ foreach ($result as $row) {
+ $returner[] = Repo::submission()->get($row->submission_id);
+ }
+ return $returner;
+ }
+
+ /**
+ * Insert a new NewRelease.
+ *
+ * @param int $monographId
+ * @param int $assocType Application::ASSOC_TYPE_...
+ * @param int $assocId
+ */
+ public function insertNewRelease($monographId, $assocType, $assocId)
+ {
+ $this->update(
+ 'INSERT INTO new_releases
+ (submission_id, assoc_type, assoc_id)
+ VALUES
+ (?, ?, ?)',
+ [
+ (int) $monographId,
+ (int) $assocType,
+ (int) $assocId
+ ]
+ );
+ }
+
+ /**
+ * Delete a new release by ID.
+ *
+ * @param int $monographId
+ */
+ public function deleteByMonographId($monographId)
+ {
+ $this->update(
+ 'DELETE FROM new_releases WHERE submission_id = ?',
+ [(int) $monographId]
+ );
+ }
+
+ /**
+ * Delete a new release by association.
+ *
+ * @param int $assocType Application::ASSOC_TYPE_...
+ * @param int $assocId
+ */
+ public function deleteByAssoc($assocType, $assocId)
+ {
+ $this->update(
+ 'DELETE FROM new_releases WHERE assoc_type = ? AND assoc_id = ?',
+ [(int) $assocType, (int) $assocId]
+ );
+ }
+
+ /**
+ * Delete a new release.
+ *
+ * @param int $monographId
+ * @param int $assocType Application::ASSOC_TYPE_...
+ * @param int $assocId
+ */
+ public function deleteNewRelease($monographId, $assocType, $assocId)
+ {
+ $this->update(
+ 'DELETE FROM new_releases
+ WHERE submission_id = ? AND
+ assoc_type = ? AND
+ assoc_id = ?',
+ [
+ (int) $monographId,
+ (int) $assocType,
+ (int) $assocId
+ ]
+ );
+ }
+
+ /**
+ * Check if the passed monograph id is marked as new release
+ * on the passed associated object.
+ *
+ * @param int $monographId The monograph id to check the new release state.
+ * @param int $assocType The associated object type that the monograph
+ * is checked for a new release mark.
+ * @param int $assocId The associated object id that the monograph is
+ * checked for a new release mark.
+ *
+ * @return bool Whether or not the monograph is marked as a new release.
+ */
+ public function isNewRelease($monographId, $assocType, $assocId)
+ {
+ $result = $this->retrieve(
+ 'SELECT submission_id FROM new_releases WHERE submission_id = ? AND assoc_type = ? AND assoc_id = ?',
+ [(int) $monographId, (int) $assocType, (int) $assocId]
+ );
+ return (bool) $result->current();
+ }
+
+ /**
+ * Return the monograph's new release settings in all assoc types
+ *
+ * @param int $monographId The monograph ID to get the new release state
+ *
+ * @return array
+ */
+ public function getNewReleaseAll($monographId)
+ {
+ $result = $this->retrieve(
+ 'SELECT assoc_type, assoc_id FROM new_releases WHERE submission_id = ?',
+ [(int) $monographId]
+ );
+
+ $newRelease = [];
+ foreach ($result as $row) {
+ $newRelease[] = [
+ 'assoc_type' => (int) $row->assoc_type,
+ 'assoc_id' => (int) $row->assoc_id,
+ ];
+ }
+ return $newRelease;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\press\NewReleaseDAO', '\NewReleaseDAO');
+}
diff --git a/classes/press/Press.inc.php b/classes/press/Press.inc.php
deleted file mode 100644
index 745e616dcf5..00000000000
--- a/classes/press/Press.inc.php
+++ /dev/null
@@ -1,101 +0,0 @@
-getData('name');
- foreach (array(AppLocale::getLocale(), AppLocale::getPrimaryLocale()) as $locale) {
- if (isset($titleArray[$locale])) return $titleArray[$locale];
- }
- return null;
- }
-
- /**
- * @deprecated Since OMP 3.2.1, use getLocalizedPageHeaderTitle instead.
- * @return string
- */
- function getPageHeaderTitle() {
- return $this->getLocalizedPageHeaderTitle();
- }
-
- /**
- * Get "localized" press page logo (if applicable).
- * @return array|null
- * @deprecated 3.3.0, use getLocalizedData() instead
- */
- function getLocalizedPageHeaderLogo() {
- $logoArray = $this->getData('pageHeaderLogoImage');
- foreach (array(AppLocale::getLocale(), AppLocale::getPrimaryLocale()) as $locale) {
- if (isset($logoArray[$locale])) return $logoArray[$locale];
- }
- return null;
- }
-
- /**
- * @deprecated Since OMP 3.2.1, use getLocalizedPageHeaderLogo instead.
- * @return array|null
- */
- function getPageHeaderLogo() {
- return $this->getLocalizedPageHeaderLogo();
- }
-
- /**
- * Returns true if this press contains the fields required for creating valid
- * ONIX export metadata.
- * @return boolean
- */
- function hasRequiredOnixHeaderFields() {
- if ($this->getData('codeType') != '' && $this->getData('codeValue') != '') {
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Get the association type for this context.
- * @return int
- */
- public function getAssocType() {
- return ASSOC_TYPE_PRESS;
- }
-
- /**
- * Get the DAO for this context object.
- * @return DAO
- */
- function getDAO() {
- return DAORegistry::getDAO('PressDAO');
- }
-}
diff --git a/classes/press/Press.php b/classes/press/Press.php
new file mode 100644
index 00000000000..2a577d38199
--- /dev/null
+++ b/classes/press/Press.php
@@ -0,0 +1,128 @@
+getData('name');
+ foreach ([Locale::getLocale(), $this->getPrimaryLocale()] as $locale) {
+ if (isset($titleArray[$locale])) {
+ return $titleArray[$locale];
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @deprecated Since OMP 3.2.1, use getLocalizedPageHeaderTitle instead.
+ *
+ * @return string
+ */
+ public function getPageHeaderTitle()
+ {
+ return $this->getLocalizedPageHeaderTitle();
+ }
+
+ /**
+ * Get "localized" press page logo (if applicable).
+ *
+ * @return array|null
+ *
+ * @deprecated 3.3.0, use getLocalizedData() instead
+ */
+ public function getLocalizedPageHeaderLogo()
+ {
+ $logoArray = $this->getData('pageHeaderLogoImage');
+ foreach ([Locale::getLocale(), $this->getPrimaryLocale()] as $locale) {
+ if (isset($logoArray[$locale])) {
+ return $logoArray[$locale];
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @deprecated Since OMP 3.2.1, use getLocalizedPageHeaderLogo instead.
+ *
+ * @return array|null
+ */
+ public function getPageHeaderLogo()
+ {
+ return $this->getLocalizedPageHeaderLogo();
+ }
+
+ /**
+ * Returns true if this press contains the fields required for creating valid
+ * ONIX export metadata.
+ *
+ * @return bool
+ */
+ public function hasRequiredOnixHeaderFields()
+ {
+ if ($this->getData('codeType') != '' && $this->getData('codeValue') != '') {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Get the association type for this context.
+ *
+ * @return int
+ */
+ public function getAssocType()
+ {
+ return Application::ASSOC_TYPE_PRESS;
+ }
+
+ /**
+ * Get the DAO for this context object.
+ *
+ * @return PressDAO
+ */
+ public function getDAO()
+ {
+ /** @var PressDAO */
+ $dao = DAORegistry::getDAO('PressDAO');
+ return $dao;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\press\Press', '\Press');
+}
diff --git a/classes/press/PressDAO.inc.php b/classes/press/PressDAO.inc.php
deleted file mode 100644
index 88bbf464cd8..00000000000
--- a/classes/press/PressDAO.inc.php
+++ /dev/null
@@ -1,106 +0,0 @@
- 'press_id',
- 'urlPath' => 'path',
- 'enabled' => 'enabled',
- 'seq' => 'seq',
- 'primaryLocale' => 'primary_locale',
- ];
-
- /**
- * Construct a new data object corresponding to this DAO.
- * @return Press
- */
- function newDataObject() {
- return new Press();
- }
-
- /**
- * Delete the public IDs of all publishing objects in a press.
- * @param $pressId int
- * @param $pubIdType string One of the NLM pub-id-type values or
- * 'other::something' if not part of the official NLM list
- * (see ).
- */
- function deleteAllPubIds($pressId, $pubIdType) {
- $pubObjectDaos = array('PublicationDAO', 'ChapterDAO', 'PublicationFormatDAO');
- foreach($pubObjectDaos as $daoName) {
- $dao = DAORegistry::getDAO($daoName);
- $dao->deleteAllPubIds($pressId, $pubIdType);
- }
- import('classes.submission.SubmissionFileDAO');
- $submissionFileDao = new SubmissionFileDAO();
- $submissionFileDao->deleteAllPubIds($pressId, $pubIdType);
- }
-
-
- /**
- * Check whether the given public ID exists for any publishing
- * object in a press.
- * @param $pressId int
- * @param $pubIdType string One of the NLM pub-id-type values or
- * 'other::something' if not part of the official NLM list
- * (see ).
- * @param $pubId string
- * @param $assocType int The object type of an object to be excluded from
- * the search. Identified by one of the ASSOC_TYPE_* constants.
- * @param $assocId int The id of an object to be excluded from the search.
- * @param $forSameType boolean Whether only the same objects should be considered.
- * @return boolean
- */
- function anyPubIdExists($pressId, $pubIdType, $pubId,
- $assocType = ASSOC_TYPE_ANY, $assocId = 0, $forSameType = false) {
- $pubObjectDaos = array(
- ASSOC_TYPE_SUBMISSION => DAORegistry::getDAO('SubmissionDAO'),
- ASSOC_TYPE_CHAPTER => DAORegistry::getDAO('ChapterDAO'),
- ASSOC_TYPE_REPRESENTATION => Application::getRepresentationDAO(),
- ASSOC_TYPE_SUBMISSION_FILE => DAORegistry::getDAO('SubmissionFileDAO')
- );
- if ($forSameType) {
- $dao = $pubObjectDaos[$assocType];
- $excludedId = $assocId;
- if ($dao->pubIdExists($pubIdType, $pubId, $excludedId, $pressId)) return true;
- return false;
- }
- foreach($pubObjectDaos as $daoAssocType => $dao) {
- if ($assocType == $daoAssocType) {
- $excludedId = $assocId;
- } else {
- $excludedId = 0;
- }
- if ($dao->pubIdExists($pubIdType, $pubId, $excludedId, $pressId)) return true;
- }
- return false;
- }
-}
diff --git a/classes/press/PressDAO.php b/classes/press/PressDAO.php
new file mode 100644
index 00000000000..ec2714fb276
--- /dev/null
+++ b/classes/press/PressDAO.php
@@ -0,0 +1,140 @@
+
+ */
+class PressDAO extends ContextDAO
+{
+ /** @copydoc SchemaDAO::$schemaName */
+ public $schemaName = 'context';
+
+ /** @copydoc SchemaDAO::$tableName */
+ public $tableName = 'presses';
+
+ /** @copydoc SchemaDAO::$settingsTableName */
+ public $settingsTableName = 'press_settings';
+
+ /** @copydoc SchemaDAO::$primaryKeyColumn */
+ public $primaryKeyColumn = 'press_id';
+
+ /** @var array Maps schema properties for the primary table to their column names */
+ public $primaryTableColumns = [
+ 'id' => 'press_id',
+ 'urlPath' => 'path',
+ 'enabled' => 'enabled',
+ 'seq' => 'seq',
+ 'primaryLocale' => 'primary_locale',
+ ];
+
+ /**
+ * Construct a new data object corresponding to this DAO.
+ *
+ * @return Press
+ */
+ public function newDataObject()
+ {
+ return new Press();
+ }
+
+ /**
+ * Delete the public IDs of all publishing objects in a press.
+ *
+ * @param int $pressId
+ * @param string $pubIdType One of the NLM pub-id-type values or
+ * 'other::something' if not part of the official NLM list
+ * (see ).
+ */
+ public function deleteAllPubIds($pressId, $pubIdType)
+ {
+ $pubObjectDaos = ['ChapterDAO', 'PublicationFormatDAO'];
+ foreach ($pubObjectDaos as $daoName) {
+ /** @var ChapterDAO|PublicationFormatDAO */
+ $dao = DAORegistry::getDAO($daoName);
+ $dao->deleteAllPubIds($pressId, $pubIdType);
+ }
+
+ Repo::submissionFile()->dao->deleteAllPubIds($pressId, $pubIdType);
+ Repo::publication()->dao->deleteAllPubIds($pressId, $pubIdType);
+ }
+
+
+ /**
+ * Check whether the given public ID exists for any publishing
+ * object in a press.
+ *
+ * @param int $pressId
+ * @param string $pubIdType One of the NLM pub-id-type values or
+ * 'other::something' if not part of the official NLM list
+ * (see ).
+ * @param string $pubId
+ * @param int $assocType The object type of an object to be excluded from
+ * the search. Identified by one of the Application::ASSOC_TYPE_* constants.
+ * @param int $assocId The id of an object to be excluded from the search.
+ * @param bool $forSameType Whether only the same objects should be considered.
+ *
+ * @return bool
+ */
+ public function anyPubIdExists(
+ $pressId,
+ $pubIdType,
+ $pubId,
+ $assocType = MetadataTypeDescription::ASSOC_TYPE_ANY,
+ $assocId = 0,
+ $forSameType = false
+ ) {
+ $pubObjectDaos = [
+ Application::ASSOC_TYPE_SUBMISSION => Repo::submission()->dao,
+ Application::ASSOC_TYPE_CHAPTER => DAORegistry::getDAO('ChapterDAO'),
+ Application::ASSOC_TYPE_REPRESENTATION => Application::getRepresentationDAO(),
+ Application::ASSOC_TYPE_SUBMISSION_FILE => Repo::submissionFile()->dao,
+ ];
+ if ($forSameType) {
+ $dao = $pubObjectDaos[$assocType];
+ $excludedId = $assocId;
+ if ($dao->pubIdExists($pubIdType, $pubId, $excludedId, $pressId)) {
+ return true;
+ }
+ return false;
+ }
+ foreach ($pubObjectDaos as $daoAssocType => $dao) {
+ if ($assocType == $daoAssocType) {
+ $excludedId = $assocId;
+ } else {
+ $excludedId = 0;
+ }
+ if ($dao->pubIdExists($pubIdType, $pubId, $excludedId, $pressId)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\press\PressDAO', '\PressDAO');
+}
diff --git a/classes/press/PressSettingsDAO.inc.php b/classes/press/PressSettingsDAO.inc.php
deleted file mode 100644
index 7ac8fe8497a..00000000000
--- a/classes/press/PressSettingsDAO.inc.php
+++ /dev/null
@@ -1,42 +0,0 @@
-getContextId();
- }
-
- /**
- * Set ID of press.
- * @param $pressId int
- */
- function setPressId($pressId) {
- return $this->setContextId($pressId);
- }
-
- /**
- * Get localized title of section.
- * @param $includePrefix bool
- * @return string
- */
- function getLocalizedTitle($includePrefix = true) {
- $title = $this->getLocalizedData('title');
- if ($includePrefix) {
- $title = $this->getLocalizedPrefix() . ' ' . $title;
- }
- return $title;
- }
-
- /**
- * Get title of section.
- * @param $locale
- * @param $includePrefix bool
- * @return string
- */
- function getTitle($locale, $includePrefix = true) {
- $title = $this->getData('title', $locale);
- if ($includePrefix) {
- if (is_array($title)) {
- foreach($title as $locale => $currentTitle) {
- $title[$locale] = $this->getPrefix($locale) . ' ' . $currentTitle;
- }
- } else {
- $title = $this->getPrefix($locale) . ' ' . $title;
- }
- }
- return $title;
- }
-
- /**
- * Get the series full title (with title and subtitle).
- * @return string
- */
- function getLocalizedFullTitle() {
- $fullTitle = $this->getLocalizedTitle();
-
- if ($subtitle = $this->getLocalizedSubtitle()) {
- $fullTitle = PKPString::concatTitleFields(array($fullTitle, $subtitle));
- }
-
- return $fullTitle;
- }
-
- /**
- * Get localized prefix for the series.
- * @return string
- */
- function getLocalizedPrefix() {
- return $this->getLocalizedData('prefix');
- }
-
- /**
- * Get prefix of series.
- * @param $locale string
- * @return string
- */
- function getPrefix($locale) {
- return $this->getData('prefix', $locale);
- }
-
- /**
- * Set prefix of series.
- * @param $prefix string
- * @param $locale string
- */
- function setPrefix($prefix, $locale) {
- return $this->setData('prefix', $prefix, $locale);
- }
-
- /**
- * Get the localized version of the subtitle
- * @return string
- */
- function getLocalizedSubtitle() {
- return $this->getLocalizedData('subtitle');
- }
-
- /**
- * Get the subtitle for a given locale
- * @param string $locale
- * @return string
- */
- function getSubtitle($locale) {
- return $this->getData('subtitle', $locale);
- }
-
- /**
- * Set the subtitle for a locale
- * @param string $subtitle
- * @param string $locale
- */
- function setSubtitle($subtitle, $locale) {
- return $this->setData('subtitle', $subtitle, $locale);
- }
-
- /**
- * Get path to series (in URL).
- * @return string
- */
- function getPath() {
- return $this->getData('path');
- }
-
- /**
- * Set path to series (in URL).
- * @param $path string
- */
- function setPath($path) {
- return $this->setData('path', $path);
- }
-
- /**
- * Get series description.
- * @return string
- */
- function getLocalizedDescription() {
- return $this->getLocalizedData('description');
- }
-
- /**
- * Get series description.
- * @return string
- */
- function getDescription($locale) {
- return $this->getData('description', $locale);
- }
-
- /**
- * Set series description.
- * @param string
- */
- function setDescription($description, $locale) {
- $this->setData('description', $description, $locale);
- }
-
- /**
- * Get the featured flag.
- * @return boolean
- */
- function getFeatured() {
- return $this->getData('featured');
- }
-
- /**
- * Set the featured flag.
- * @param $featured boolean
- */
- function setFeatured($featured) {
- $this->setData('featured', $featured);
- }
-
- /**
- * Get the image.
- * @return array
- */
- function getImage() {
- return $this->getData('image');
- }
-
- /**
- * Set the image.
- * @param $image array
- */
- function setImage($image) {
- return $this->setData('image', $image);
- }
-
- /**
- * Get online ISSN.
- * @return string
- */
- function getOnlineISSN() {
- return $this->getData('onlineIssn');
- }
-
- /**
- * Set online ISSN.
- * @param $onlineIssn string
- */
- function setOnlineISSN($onlineIssn) {
- return $this->setData('onlineIssn', $onlineIssn);
- }
-
- /**
- * Get print ISSN.
- * @return string
- */
- function getPrintISSN() {
- return $this->getData('printIssn');
- }
-
- /**
- * Set print ISSN.
- * @param $printIssn string
- */
- function setPrintISSN($printIssn) {
- return $this->setData('printIssn', $printIssn);
- }
-
- /**
- * Get the option how the books in this series should be sorted,
- * in the form: concat(sortBy, sortDir).
- * @return string
- */
- function getSortOption() {
- return $this->getData('sortOption');
- }
-
- /**
- * Set the option how the books in this series should be sorted,
- * in the form: concat(sortBy, sortDir).
- * @param $sortOption string
- */
- function setSortOption($sortOption) {
- return $this->setData('sortOption', $sortOption);
- }
-
- /**
- * Returns a string with the full name of all series
- * editors, separated by a comma.
- * @return string
- */
- function getEditorsString() {
- $subEditorsDao = DAORegistry::getDAO('SubEditorsDAO'); /* @var $subEditorsDao SubEditorsDAO */
- $editors = $subEditorsDao->getBySubmissionGroupId($this->getId(), ASSOC_TYPE_SECTION, $this->getPressId());
-
- $separator = ', ';
- $str = '';
-
- foreach ($editors as $editor) {
- if (!empty($str)) {
- $str .= $separator;
- }
-
- $str .= $editor->getFullName();
- $editor = null;
- }
-
- return $str;
- }
-
- /**
- * Return boolean indicating if series should be inactivated.
- * @return int
- */
- function getIsInactive() {
- return $this->getData('isInactive');
- }
-
- /**
- * Set if series should be inactivated.
- * @param $isInactive int
- */
- function setIsInactive($isInactive) {
- $this->setData('isInactive', $isInactive);
- }
-
-}
-
-
diff --git a/classes/press/SeriesDAO.inc.php b/classes/press/SeriesDAO.inc.php
deleted file mode 100644
index d2b659011d0..00000000000
--- a/classes/press/SeriesDAO.inc.php
+++ /dev/null
@@ -1,375 +0,0 @@
-retrieve(
- 'SELECT *
- FROM series
- WHERE series_id = ?
- ' . ($pressId?' AND press_id = ?':''),
- $params
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Retrieve a series by path.
- * @param $path string
- * @param $pressId int
- * @return Series|null
- */
- function getByPath($path, $pressId) {
- $result = $this->retrieve(
- 'SELECT * FROM series WHERE path = ? AND press_id = ?',
- [(string) $path, (int) $pressId]
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Construct a new data object corresponding to this DAO.
- * @return Series
- */
- function newDataObject() {
- return new Series();
- }
-
- /**
- * Internal function to return an Series object from a row.
- * @param $row array
- * @return Series
- */
- function _fromRow($row) {
- $series = parent::_fromRow($row);
-
- $series->setId($row['series_id']);
- $series->setPressId($row['press_id']);
- $series->setFeatured($row['featured']);
- $series->setImage(unserialize($row['image']));
- $series->setPath($row['path']);
- $series->setIsInactive($row['is_inactive']);
-
- $this->getDataObjectSettings('series_settings', 'series_id', $row['series_id'], $series);
-
- HookRegistry::call('SeriesDAO::_fromRow', array(&$series, &$row));
-
- return $series;
- }
-
- /**
- * Get the list of fields for which data can be localized.
- * @return array
- */
- function getLocaleFieldNames() {
- return array_merge(
- parent::getLocaleFieldNames(),
- ['description', 'prefix', 'subtitle']
- );
- }
-
- /**
- * Get a list of additional fields.
- * @return array
- */
- function getAdditionalFieldNames() {
- return array_merge(
- parent::getAdditionalFieldNames(),
- ['onlineIssn', 'printIssn', 'sortOption']
- );
- }
-
- /**
- * Update the localized fields for this table
- * @param $series object
- */
- function updateLocaleFields($series) {
- $this->updateDataObjectSettings(
- 'series_settings',
- $series,
- ['series_id' => (int) $series->getId()]
- );
- }
-
- /**
- * Insert a new series.
- * @param $series Series
- */
- function insertObject($series) {
- $this->update(
- 'INSERT INTO series
- (press_id, seq, featured, path, image, editor_restricted, is_inactive)
- VALUES
- (?, ?, ?, ?, ?, ?, ?)',
- [
- (int) $series->getPressId(),
- (float) $series->getSequence(),
- (int) $series->getFeatured(),
- (string) $series->getPath(),
- serialize($series->getImage() ? $series->getImage() : array()),
- (int) $series->getEditorRestricted(),
- (int) $series->getIsInactive() ? 1 : 0,
- ]
- );
-
- $series->setId($this->getInsertId());
- $this->updateLocaleFields($series);
- return $series->getId();
- }
-
- /**
- * Update an existing series.
- * @param $series Series
- */
- function updateObject($series) {
- $this->update(
- 'UPDATE series
- SET press_id = ?,
- seq = ?,
- featured = ?,
- path = ?,
- image = ?,
- editor_restricted = ?,
- is_inactive = ?
- WHERE series_id = ?',
- [
- (int) $series->getPressId(),
- (float) $series->getSequence(),
- (int) $series->getFeatured(),
- (string) $series->getPath(),
- serialize($series->getImage() ? $series->getImage() : array()),
- (int) $series->getEditorRestricted(),
- (int) $series->getIsInactive(),
- (int) $series->getId(),
- ]
- );
- $this->updateLocaleFields($series);
- }
-
- /**
- * Delete an series by ID.
- * @param $seriesId int
- * @param $contextId int optional
- */
- function deleteById($seriesId, $contextId = null) {
- // Validate the $contextId, if supplied.
- if (!$this->seriesExists($seriesId, $contextId)) return false;
-
- $subEditorsDao = DAORegistry::getDAO('SubEditorsDAO'); /* @var $subEditorsDao SubEditorsDAO */
- $subEditorsDao->deleteBySubmissionGroupId($seriesId, ASSOC_TYPE_SECTION, $contextId);
-
- // Remove monographs from this series
- $submissionsIterator = Services::get('submission')->getMany(['seriesIds' => $seriesId, 'count' => 1000]);
- foreach ($submissionsIterator as $submission) {
- foreach ((array) $submission->getData('publications') as $publication) {
- Services::get('publication')->edit($publication, ['seriesId' => 0]);
- }
- }
-
- // Delete the series and settings.
- $this->update('DELETE FROM series WHERE series_id = ?', [(int) $seriesId]);
- $this->update('DELETE FROM series_settings WHERE series_id = ?', [(int) $seriesId]);
- }
-
- /**
- * Delete series by press ID
- * NOTE: This does not delete dependent entries EXCEPT from series_editors. It is intended
- * to be called only when deleting a press.
- * @param $pressId int
- */
- function deleteByPressId($pressId) {
- $this->deleteByContextId($pressId);
- }
-
- /**
- * Retrieve all series for a press.
- * @return DAOResultFactory containing Series ordered by sequence
- */
- function getByPressId($pressId, $rangeInfo = null) {
- return $this->getByContextId($pressId, $rangeInfo);
- }
-
- /**
- * @copydoc PKPSectionDAO::getByContextId()
- */
- function getByContextId($pressId, $rangeInfo = null, $submittableOnly = false) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT s.*, COALESCE(stpl.setting_value, stl.setting_value) AS series_title FROM series s
- LEFT JOIN series_settings stpl ON (s.series_id = stpl.series_id AND stpl.setting_name = ? AND stpl.locale = ?)
- LEFT JOIN series_settings stl ON (s.series_id = stl.series_id AND stl.setting_name = ? AND stl.locale = ?)
- WHERE press_id = ?
- ORDER BY seq',
- [
- 'title', AppLocale::getPrimaryLocale(),
- 'title', AppLocale::getLocale(),
- (int) $pressId
- ],
- $rangeInfo
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Retrieve the IDs and titles of the series for a press in an associative array.
- * @return array
- */
- function getTitlesByPressId($pressId, $submittableOnly = false) {
- $seriesTitles = [];
-
- $seriesIterator = $this->getByPressId($pressId, null);
- while ($series = $seriesIterator->next()) {
- if ($submittableOnly) {
- if (!$series->getEditorRestricted()) {
- $seriesTitles[$series->getId()] = $series->getLocalizedTitle();
- }
- } else {
- $seriesTitles[$series->getId()] = $series->getLocalizedTitle();
- }
- }
-
- return $seriesTitles;
- }
-
- /**
- * Check if an series exists with the specified ID.
- * @param $seriesId int
- * @param $pressId int
- * @return boolean
- */
- function seriesExists($seriesId, $pressId) {
- $result = $this->retrieve(
- 'SELECT COUNT(*) AS row_count FROM series WHERE series_id = ? AND press_id = ?',
- [(int) $seriesId, (int) $pressId]
- );
- $row = $result->current();
- return $row && $row->row_count;
- }
-
- /**
- * Get the ID of the last inserted series.
- * @return int
- */
- function getInsertId() {
- return $this->_getInsertId('series', 'series_id');
- }
-
- /**
- * Associate a category with a series.
- * @param $seriesId int
- * @param $categoryId int
- */
- function addCategory($seriesId, $categoryId) {
- $this->update(
- 'INSERT INTO series_categories
- (series_id, category_id)
- VALUES
- (?, ?)',
- [(int) $seriesId, (int) $categoryId]
- );
- }
-
- /**
- * Unassociate all categories with a series
- *
- * @param $seriesId int
- */
- public function removeCategories($seriesId) {
- $this->update('DELETE FROM series_categories WHERE series_id = ?', [(int) $seriesId]);
- }
-
- /**
- * Get the categories associated with a given series.
- * @param $seriesId int
- * @return DAOResultFactory
- */
- function getCategories($seriesId, $pressId = null) {
- $params = [(int) $seriesId];
- if ($pressId) $params[] = (int) $pressId;
- return new DAOResultFactory(
- $this->retrieve(
- 'SELECT c.*
- FROM categories c,
- series_categories sc,
- series s
- WHERE c.category_id = sc.category_id AND
- s.series_id = ? AND
- ' . ($pressId?' c.context_id = s.press_id AND s.press_id = ? AND':'') . '
- s.series_id = sc.series_id',
- $params
- ),
- DAORegistry::getDAO('CategoryDAO'),
- '_fromRow'
- );
- }
-
- /**
- * Get the categories not associated with a given series.
- * @param $seriesId int
- * @return DAOResultFactory
- */
- function getUnassignedCategories($seriesId, $pressId = null) {
- $params = [(int) $seriesId];
- if ($pressId) $params[] = (int) $pressId;
- return new DAOResultFactory(
- $this->retrieve(
- 'SELECT c.*
- FROM series s
- JOIN categories c ON (c.context_id = s.press_id)
- LEFT JOIN series_categories sc ON (s.series_id = sc.series_id AND sc.category_id = c.category_id)
- WHERE s.series_id = ? AND
- ' . ($pressId?' s.press_id = ? AND':'') . '
- sc.series_id IS NULL',
- $params
- ),
- DAORegistry::getDAO('CategoryDAO'),
- '_fromRow'
- );
- }
-
- /**
- * Check if an series exists with the specified ID.
- * @param $seriesId int
- * @param $pressId int
- * @return boolean
- */
- function categoryAssociationExists($seriesId, $categoryId) {
- $result = $this->retrieve(
- 'SELECT COUNT(*) AS row_count FROM series_categories WHERE series_id = ? AND category_id = ?',
- array((int) $seriesId, (int) $categoryId)
- );
- $row = $result->current();
- return $row && $row->row_count;
- }
-}
-
-
diff --git a/classes/publication/DAO.php b/classes/publication/DAO.php
new file mode 100644
index 00000000000..555bef3ab5a
--- /dev/null
+++ b/classes/publication/DAO.php
@@ -0,0 +1,52 @@
+ 'publication_id',
+ 'accessStatus' => 'access_status',
+ 'datePublished' => 'date_published',
+ 'lastModified' => 'last_modified',
+ 'locale' => 'locale',
+ 'primaryContactId' => 'primary_contact_id',
+ 'seq' => 'seq',
+ 'seriesId' => 'series_id',
+ 'submissionId' => 'submission_id',
+ 'status' => 'status',
+ 'urlPath' => 'url_path',
+ 'version' => 'version',
+ 'seriesPosition' => 'series_position',
+ 'doiId' => 'doi_id'
+ ];
+
+ /**
+ * @copydoc SchemaDAO::_fromRow()
+ */
+ public function fromRow(object $primaryRow): Publication
+ {
+ /** @var ChapterDAO */
+ $chapterDao = DAORegistry::getDAO('ChapterDAO');
+ $publication = parent::fromRow($primaryRow);
+ $publication->setData('publicationFormats', Application::getRepresentationDao()->getByPublicationId($publication->getId()));
+ $publication->setData('chapters', $chapterDao->getByPublicationId($publication->getId())->toArray());
+ return $publication;
+ }
+}
diff --git a/classes/publication/Publication.inc.php b/classes/publication/Publication.inc.php
deleted file mode 100644
index c06eaa449da..00000000000
--- a/classes/publication/Publication.inc.php
+++ /dev/null
@@ -1,76 +0,0 @@
-getData('authors');
- $editorNames = [];
- foreach ($authors as $author) {
- if ($author->getIsVolumeEditor()) {
- $editorNames[] = __('submission.editorName', array('editorName' => $author->getFullName()));
- }
- }
-
- // Spaces are stripped from the locale strings, so we have to add the
- // space in here.
- return join(__('common.commaListSeparator') . ' ', $editorNames);
- }
-
- /**
- * Get the URL to a localized cover image
- *
- * @param int $contextId
- * @return string
- */
- public function getLocalizedCoverImageUrl($contextId) {
- $coverImage = $this->getLocalizedData('coverImage');
-
- if (!$coverImage) {
- return Application::get()->getRequest()->getBaseUrl() . '/templates/images/book-default.png';
- }
-
- import('classes.file.PublicFileManager');
- $publicFileManager = new PublicFileManager();
-
- return join('/', [
- Application::get()->getRequest()->getBaseUrl(),
- $publicFileManager->getContextFilesPath($contextId),
- $coverImage['uploadName'],
- ]);
- }
-
- /**
- * Get the URL to the thumbnail of a localized cover image
- *
- * @param int $contextId
- * @return string
- */
- public function getLocalizedCoverImageThumbnailUrl($contextId) {
- $url = $this->getLocalizedCoverImageUrl($contextId);
- $pathParts = pathinfo($url);
- return join('/', [
- $pathParts['dirname'],
- Services::get('publication')->getThumbnailFilename($pathParts['basename']),
- ]);
- }
-}
\ No newline at end of file
diff --git a/classes/publication/Publication.php b/classes/publication/Publication.php
new file mode 100644
index 00000000000..e21def25782
--- /dev/null
+++ b/classes/publication/Publication.php
@@ -0,0 +1,93 @@
+getData('authors');
+ $editorNames = [];
+ foreach ($authors as $author) {
+ if ($author->getIsVolumeEditor()) {
+ $editorNames[] = __('submission.editorName', ['editorName' => $author->getFullName()]);
+ }
+ }
+
+ // Spaces are stripped from the locale strings, so we have to add the
+ // space in here.
+ return join(__('common.commaListSeparator') . ' ', $editorNames);
+ }
+
+ /**
+ * Get the URL to a localized cover image
+ *
+ * @param int $contextId
+ * @param string $preferredLocale Return the cover image in a specified locale.
+ *
+ * @return string
+ */
+ public function getLocalizedCoverImageUrl($contextId, $preferredLocale = null)
+ {
+ $coverImage = $this->getLocalizedData('coverImage', $preferredLocale);
+
+ if (!$coverImage) {
+ return Application::get()->getRequest()->getBaseUrl() . '/templates/images/book-default.png';
+ }
+
+ $publicFileManager = new PublicFileManager();
+
+ return join('/', [
+ Application::get()->getRequest()->getBaseUrl(),
+ $publicFileManager->getContextFilesPath($contextId),
+ $coverImage['uploadName'],
+ ]);
+ }
+
+ /**
+ * Get the URL to the thumbnail of a localized cover image
+ *
+ * @param int $contextId
+ *
+ * @return string
+ */
+ public function getLocalizedCoverImageThumbnailUrl($contextId)
+ {
+ $url = $this->getLocalizedCoverImageUrl($contextId);
+ $pathParts = pathinfo($url);
+ return join('/', [
+ $pathParts['dirname'],
+ Repo::publication()->getThumbnailFilename($pathParts['basename']),
+ ]);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publication\Publication', '\Publication');
+}
diff --git a/classes/publication/PublicationDAO.inc.php b/classes/publication/PublicationDAO.inc.php
deleted file mode 100644
index de16366fb7c..00000000000
--- a/classes/publication/PublicationDAO.inc.php
+++ /dev/null
@@ -1,48 +0,0 @@
- 'publication_id',
- 'accessStatus' => 'access_status',
- 'datePublished' => 'date_published',
- 'lastModified' => 'last_modified',
- 'locale' => 'locale',
- 'primaryContactId' => 'primary_contact_id',
- 'seq' => 'seq',
- 'seriesId' => 'series_id',
- 'submissionId' => 'submission_id',
- 'status' => 'status',
- 'urlPath' => 'url_path',
- 'version' => 'version',
- 'seriesPosition' => 'series_position',
- ];
-
- /**
- * @copydoc SchemaDAO::_fromRow()
- */
- public function _fromRow($primaryRow) {
- $publication = parent::_fromRow($primaryRow);
-
- $publication->setData('publicationFormats', Application::getRepresentationDao()->getByPublicationId($publication->getId())->toArray());
- $publication->setData('chapters', DAORegistry::getDAO('ChapterDAO')->getByPublicationId($publication->getId())->toArray());
-
- return $publication;
- }
-}
\ No newline at end of file
diff --git a/classes/publication/Repository.php b/classes/publication/Repository.php
new file mode 100644
index 00000000000..6c5ef04cace
--- /dev/null
+++ b/classes/publication/Repository.php
@@ -0,0 +1,514 @@
+ $this->dao]);
+ }
+
+ /** @copydoc PKP\publication\Repository::validate() */
+ public function validate($publication, array $props, Submission $submission, Context $context): array
+ {
+ $errors = parent::validate($publication, $props, $submission, $context);
+
+ // Ensure that the specified series exists
+ if (isset($props['seriesId'])) {
+ $series = Repo::section()->get($props['seriesId']);
+ if (!$series) {
+ $errors['seriesId'] = [__('publication.invalidSeries')];
+ }
+ }
+
+ return $errors;
+ }
+
+ /** @copydoc \PKP\publication\Repository::add() */
+ public function add(Publication $publication): int
+ {
+ $id = parent::add($publication);
+
+ $publication = $this->get($id);
+
+ // Create a thumbnail for the cover image
+ if ($publication->getData('coverImage')) {
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+ $submissionContext = $this->request->getContext();
+ if ($submissionContext->getId() !== $submission->getData('contextId')) {
+ $submissionContext = Services::get('context')->get($submission->getData('contextId'));
+ }
+
+ $supportedLocales = $submissionContext->getSupportedSubmissionLocales();
+ foreach ($supportedLocales as $localeKey) {
+ if (!array_key_exists($localeKey, $publication->getData('coverImage'))) {
+ continue;
+ }
+
+ $publicFileManager = new PublicFileManager();
+ $coverImage = $publication->getData('coverImage', $localeKey);
+ $coverImageFilePath = $publicFileManager->getContextFilesPath($submissionContext->getId()) . '/' . $coverImage['uploadName'];
+ $this->makeThumbnail(
+ $coverImageFilePath,
+ $this->getThumbnailFileName($coverImage['uploadName']),
+ $submissionContext->getData('coverThumbnailsMaxWidth'),
+ $submissionContext->getData('coverThumbnailsMaxHeight')
+ );
+ }
+ }
+
+ return $id;
+ }
+
+ /** @copydoc \PKP\publication\Repository::version() */
+ public function version(Publication $publication): int
+ {
+ // Get some data about the publication being versioned before any changes are made
+ $oldPublicationFormats = $publication->getData('publicationFormats');
+ $oldAuthors = Repo::author()->getCollector()
+ ->filterByPublicationIds([$publication->getId()])
+ ->getMany();
+
+ $chapterDao = DAORegistry::getDAO('ChapterDAO'); /** @var ChapterDAO $chapterDao */
+ $oldChaptersIterator = $chapterDao->getByPublicationId($publication->getId());
+ $oldPublicationId = $publication->getId();
+ $submissionId = $publication->getData('submissionId');
+
+ $newId = parent::version($publication);
+
+ $newPublication = $this->get($newId);
+
+ $context = Application::get()->getRequest()->getContext();
+
+ $isDoiVersioningEnabled = $context->getData(Context::SETTING_DOI_VERSIONING);
+
+ // Publication Formats (and all associated objects)
+ $newSubmissionFiles = [];
+ foreach ($oldPublicationFormats as $oldPublicationFormat) {
+ $newPublicationFormat = clone $oldPublicationFormat;
+ $newPublicationFormat->setData('id', null);
+ $newPublicationFormat->setData('publicationId', $newPublication->getId());
+ if ($isDoiVersioningEnabled) {
+ $newPublicationFormat->setData('doiId', null);
+ }
+ Application::getRepresentationDAO()->insertObject($newPublicationFormat);
+
+ // Duplicate publication format metadata
+ $metadataDaos = ['IdentificationCodeDAO', 'MarketDAO', 'PublicationDateDAO', 'SalesRightsDAO'];
+ foreach ($metadataDaos as $metadataDao) {
+ /** @var IdentificationCodeDAO|MarketDAO|PublicationDateDAO|SalesRightsDAO */
+ $dao = DAORegistry::getDAO($metadataDao);
+ $result = $dao->getByPublicationFormatId($oldPublicationFormat->getId());
+ while (!$result->eof()) {
+ $oldObject = $result->next();
+ $newObject = clone $oldObject;
+ $newObject->setData('id', null);
+ $newObject->setData('publicationFormatId', $newPublicationFormat->getId());
+ $dao->insertObject($newObject);
+ }
+ }
+
+ $submissionFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$submissionId])
+ ->filterByAssoc(
+ Application::ASSOC_TYPE_REPRESENTATION,
+ [$oldPublicationFormat->getId()]
+ )
+ ->getMany();
+
+ // Duplicate publication format files
+ foreach ($submissionFiles as $submissionFile) {
+ $newSubmissionFile = clone $submissionFile;
+ $newSubmissionFile->setData('id', null);
+ $newSubmissionFile->setData('assocId', $newPublicationFormat->getId());
+ if ($isDoiVersioningEnabled) {
+ $newSubmissionFile->setData('doiId', null);
+ }
+ $newSubmissionFileId = Repo::submissionFile()->add($newSubmissionFile);
+ $newSubmissionFile = Repo::submissionFile()->get($newSubmissionFileId);
+ $newSubmissionFiles[] = $newSubmissionFile;
+
+ $dependentFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_DEPENDENT])
+ ->filterByAssoc(
+ Application::ASSOC_TYPE_SUBMISSION_FILE,
+ [$submissionFile->getId()]
+ )
+ ->includeDependentFiles()
+ ->getMany();
+
+ foreach ($dependentFiles as $dependentFile) {
+ $newDependentFile = clone $dependentFile;
+ $newDependentFile->setData('id', null);
+ $newDependentFile->setData('assocId', $newSubmissionFile->getId());
+ Repo::submissionFile()->add($newDependentFile);
+ }
+ }
+ }
+
+ // Chapters (and all associated objects)
+ $newAuthors = Repo::author()->getCollector()
+ ->filterByPublicationIds([$newPublication->getId()])
+ ->getMany();
+
+ while ($oldChapter = $oldChaptersIterator->next()) {
+ $newChapter = clone $oldChapter;
+ $newChapter->setData('id', null);
+ $newChapter->setData('publicationId', $newPublication->getId());
+ if ($isDoiVersioningEnabled) {
+ $newChapter->setData('doiId', null);
+ }
+ $newChapterId = $chapterDao->insertChapter($newChapter);
+ $newChapter = $chapterDao->getChapter($newChapterId);
+
+ // Update file chapter associations for new files
+ foreach ($newSubmissionFiles as $newSubmissionFile) {
+ if ($newSubmissionFile->getChapterId() == $oldChapter->getId()) {
+ Repo::submissionFile()
+ ->edit(
+ $newSubmissionFile,
+ ['chapterId' => $newChapter->getId()]
+ );
+ }
+ }
+
+ // We need to link new authors to chapters. To do this, we need a way to
+ // link old authors to the new ones. We use seq property, which should be
+ // unique for each author to determine which new author is a copy of the
+ // old one. We then map the old chapter author associations to the new
+ // authors.
+ $oldChapterAuthors = Repo::author()->getCollector()
+ ->filterByChapterIds([$oldChapter->getId()])
+ ->filterByPublicationIds([$oldPublicationId])
+ ->getMany();
+
+ foreach ($newAuthors as $newAuthor) {
+ foreach ($oldAuthors as $oldAuthor) {
+ if ($newAuthor->getData('seq') === $oldAuthor->getData('seq')) {
+ foreach ($oldChapterAuthors as $oldChapterAuthor) {
+ if ($oldChapterAuthor->getId() === $oldAuthor->getId()) {
+ Repo::author()->addToChapter(
+ $newAuthor->getId(),
+ $newChapter->getId(),
+ $newAuthor->getId() === $newPublication->getData('primaryContactId'),
+ $oldChapterAuthor->getData('seq')
+ );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return $newId;
+ }
+
+ /** @copydoc \PKP\publication\Repository::edit() */
+ public function edit(Publication $publication, array $params): Publication
+ {
+ $oldCoverImage = $publication->getData('coverImage');
+
+ $updatedPublication = parent::edit($publication, $params);
+
+ $coverImages = $updatedPublication->getData('coverImage');
+
+ // Create or delete the thumbnail of a cover image
+ if (array_key_exists('coverImage', $params)) {
+ $publicFileManager = new PublicFileManager();
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+ $submissionContext = $this->request->getContext();
+ if ($submissionContext->getId() !== $submission->getData('contextId')) {
+ $submissionContext = Services::get('context')->get($submission->getData('contextId'));
+ }
+
+ foreach ($params['coverImage'] as $localeKey => $newCoverImage) {
+ if (is_null($newCoverImage)) {
+ if (empty($oldCoverImage[$localeKey])) {
+ continue;
+ }
+
+ $coverImageFilePath = $publicFileManager->getContextFilesPath($submission->getData('contextId')) . '/' . $oldCoverImage[$localeKey]['uploadName'];
+ if (!file_exists($coverImageFilePath)) {
+ $publicFileManager->removeContextFile($submission->getData('contextId'), $this->getThumbnailFileName($oldCoverImage[$localeKey]['uploadName']));
+ }
+
+ // Otherwise generate a new thumbnail if a cover image exists
+ } elseif (!empty($newCoverImage) && array_key_exists('temporaryFileId', $newCoverImage)) {
+ $coverImageFilePath = $publicFileManager->getContextFilesPath($submission->getData('contextId')) . '/' . $coverImages[$localeKey]['uploadName'];
+ $this->makeThumbnail(
+ $coverImageFilePath,
+ $this->getThumbnailFileName($coverImages[$localeKey]['uploadName']),
+ $submissionContext->getData('coverThumbnailsMaxWidth'),
+ $submissionContext->getData('coverThumbnailsMaxHeight')
+ );
+ }
+ }
+ }
+ return $updatedPublication;
+ }
+
+ /** @copydoc \PKP\publication\Repository::publish() */
+ public function publish(Publication $publication)
+ {
+ Hook::add('Publication::publish::before', [$this, 'addChapterLicense']);
+ parent::publish($publication);
+
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+
+ // If this is a new current publication (the "version of record"), then
+ // tombstones must be updated to reflect the new publication format entries
+ // in the OAI feed
+ if ($submission->getData('currentPublicationId') === $publication->getId()) {
+ $context = $this->request->getContext();
+ if (!$context || $context->getId() !== $submission->getData('contextId')) {
+ $context = Services::get('context')->get($submission->getData('contextId'));
+ }
+
+ // Remove publication format tombstones for this publication
+ $publicationFormatTombstoneMgr = new PublicationFormatTombstoneManager();
+ $publicationFormatTombstoneMgr->deleteTombstonesByPublicationId($publication->getId());
+
+ // Create publication format tombstones for any other published versions
+ foreach ($submission->getData('publications') as $iPublication) {
+ if ($iPublication->getId() !== $publication->getId() && $iPublication->getData('status') === Submission::STATUS_PUBLISHED) {
+ $publicationFormatTombstoneMgr->insertTombstonesByPublicationId($iPublication->getId(), $context);
+ }
+ }
+ }
+
+ // Update notification
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->updateNotification(
+ $this->request,
+ [Notification::NOTIFICATION_TYPE_APPROVE_SUBMISSION],
+ null,
+ Application::ASSOC_TYPE_MONOGRAPH,
+ $publication->getData('submissionId')
+ );
+ }
+
+ /** @copydoc \PKP\publication\Repository::setStatusOnPublish() */
+ protected function setStatusOnPublish(Publication $publication)
+ {
+ // If the publish date is in the future, set the status to scheduled
+ $datePublished = $publication->getData('datePublished');
+ if ($datePublished && strtotime($datePublished) > strtotime(Core::getCurrentDate())) {
+ $publication->setData('status', Submission::STATUS_SCHEDULED);
+ } else {
+ $publication->setData('status', Submission::STATUS_PUBLISHED);
+ }
+
+ // If there is no publish date, set it
+ if (!$publication->getData('datePublished')) {
+ $publication->setData('datePublished', Core::getCurrentDate());
+ }
+ }
+
+ /** @copydoc \PKP\publication\Repository::unpublish() */
+ public function unpublish(Publication $publication)
+ {
+ parent::unpublish($publication);
+
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+ $submissionContext = Services::get('context')->get($submission->getData('contextId'));
+
+ // Create tombstones for this publication
+ $publicationFormatTombstoneMgr = new PublicationFormatTombstoneManager();
+ $publicationFormatTombstoneMgr->insertTombstonesByPublicationId($publication->getId(), $submissionContext);
+
+ // Delete tombstones for the new current publication
+ $currentPublication = null;
+ foreach ($submission->getData('publications') as $publication) {
+ if ($publication->getId() === $submission->getData('currentPublicationId')) {
+ $currentPublication = $publication;
+ break;
+ }
+ }
+ if ($currentPublication && $currentPublication->getData('status') === Submission::STATUS_PUBLISHED) {
+ $publicationFormatTombstoneMgr->deleteTombstonesByPublicationId($currentPublication->getId());
+ }
+
+
+ // Update notification
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->updateNotification(
+ $this->request,
+ [Notification::NOTIFICATION_TYPE_APPROVE_SUBMISSION],
+ null,
+ Application::ASSOC_TYPE_MONOGRAPH,
+ $publication->getData('submissionId')
+ );
+ }
+
+ /** @copydoc \PKP\publication\Repository::delete() */
+ public function delete(Publication $publication)
+ {
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+ $context = Services::get('context')->get($submission->getData('contextId'));
+
+ // Delete Publication Formats (and all related objects)
+ $publicationFormats = $publication->getData('publicationFormats');
+ foreach ($publicationFormats as $publicationFormat) {
+ Services::get('publicationFormat')->deleteFormat($publicationFormat, $submission, $context);
+ }
+
+ // Delete chapters and assigned chapter authors.
+ $chapterDao = DAORegistry::getDAO('ChapterDAO'); /** @var ChapterDAO $chapterDao */
+ $chapters = $chapterDao->getByPublicationId($publication->getId());
+ while ($chapter = $chapters->next()) {
+ // also removes Chapter Author and file associations
+ $chapterDao->deleteObject($chapter);
+ }
+
+ parent::delete($publication);
+ }
+
+ /**
+ * Derive a thumbnail filename from the cover image filename
+ *
+ * book_1_1_cover.png --> book_1_1_cover_t.png
+ *
+ * @param string $fileName
+ *
+ * @return string The thumbnail filename
+ */
+ public function getThumbnailFileName($fileName)
+ {
+ $pathInfo = pathinfo($fileName);
+ return $pathInfo['filename'] . '_t.' . $pathInfo['extension'];
+ }
+
+ /**
+ * Generate a thumbnail of an image
+ *
+ * @param string $filePath The full path and name of the file
+ * @param int $maxWidth The maximum allowed width of the thumbnail
+ * @param int $maxHeight The maximum allowed height of the thumbnail
+ */
+ public function makeThumbnail($filePath, $thumbFileName, $maxWidth, $maxHeight)
+ {
+ $pathParts = pathinfo($filePath);
+ $thumbFilePath = $pathParts['dirname'] . '/' . $thumbFileName;
+
+ $cover = null;
+ switch ($pathParts['extension']) {
+ case 'jpg': $cover = imagecreatefromjpeg($filePath);
+ break;
+ case 'png': $cover = imagecreatefrompng($filePath);
+ break;
+ case 'gif': $cover = imagecreatefromgif($filePath);
+ break;
+ case 'webp': $cover = imagecreatefromwebp($filePath);
+ break;
+ case 'svg': $cover = copy($filePath, $thumbFilePath);
+ break;
+ }
+ if (!isset($cover)) {
+ throw new Exception('Can not build thumbnail because the file was not found or the file extension was not recognized.');
+ }
+
+ if ($pathParts['extension'] != 'svg') {
+ // Calculate the scaling ratio for each dimension.
+ $originalSizeArray = getimagesize($filePath);
+ $xRatio = min(1, $maxWidth / $originalSizeArray[0]);
+ $yRatio = min(1, $maxHeight / $originalSizeArray[1]);
+
+ // Choose the smallest ratio and create the target.
+ $ratio = min($xRatio, $yRatio);
+
+ $thumbWidth = round($ratio * $originalSizeArray[0]);
+ $thumbHeight = round($ratio * $originalSizeArray[1]);
+ $thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
+ imagecopyresampled($thumb, $cover, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $originalSizeArray[0], $originalSizeArray[1]);
+
+ switch ($pathParts['extension']) {
+ case 'jpg': imagejpeg($thumb, $pathParts['dirname'] . '/' . $thumbFileName);
+ break;
+ case 'png': imagepng($thumb, $pathParts['dirname'] . '/' . $thumbFileName);
+ break;
+ case 'gif': imagegif($thumb, $pathParts['dirname'] . '/' . $thumbFileName);
+ break;
+ case 'webp': imagewebp($thumb, $thumbFilePath);
+ break;
+ }
+
+ imagedestroy($thumb);
+ }
+ }
+
+ /**
+ * Create all DOIs associated with the publication
+ *
+ * @return mixed
+ */
+ protected function createDois(Publication $newPublication): void
+ {
+ $submission = Repo::submission()->get($newPublication->getData('submissionId'));
+ Repo::submission()->createDois($submission);
+ }
+
+ public function addChapterLicense(string $hookName, array $params): bool
+ {
+ $newPublication = $params[0];
+ $publication = $params[1];
+ $itsPublished = ($newPublication->getData('status') === PKPSubmission::STATUS_PUBLISHED);
+ $submission = Repo::submission()->get($publication->getData('submissionId'));
+
+ if ($itsPublished && $submission->getData('workType') === Submission::WORK_TYPE_EDITED_VOLUME) {
+ if (!$newPublication->getData('chapterLicenseUrl')) {
+ $newPublication->setData('chapterLicenseUrl', $newPublication->getData('licenseUrl'));
+ }
+
+ $chapterDao = DAORegistry::getDAO('ChapterDAO'); /** @var ChapterDAO $chapterDao */
+ $chaptersIterator = $chapterDao->getByPublicationId($newPublication->getId());
+
+ while ($chapter = $chaptersIterator->next()) {
+ if (!$chapter->getLicenseUrl()) {
+ $chapter->setLicenseUrl($newPublication->getData('chapterLicenseUrl'));
+ $chapterDao->updateLocaleFields($chapter);
+ }
+ }
+ }
+ return false;
+ }
+}
diff --git a/classes/publication/maps/Schema.php b/classes/publication/maps/Schema.php
new file mode 100644
index 00000000000..b46a130af66
--- /dev/null
+++ b/classes/publication/maps/Schema.php
@@ -0,0 +1,105 @@
+_data;
+ if ($anonymize) {
+ $data['authors'] = [];
+ } else {
+ $data['authors'] = Repo::author()
+ ->getCollector()
+ ->filterByChapterIds([$chapter->getId()])
+ ->filterByPublicationIds([$publication->getId()])
+ ->getMany()
+ ->map(function ($chapterAuthor) {
+ return $chapterAuthor->_data;
+ });
+ }
+ if ($data['doiId'] !== null) {
+ $data['doiObject'] = Repo::doi()->getSchemaMap()->summarize($data['doiObject']);
+ }
+ return $data;
+ }, $publication->getData('chapters'));
+ }
+
+ if (in_array('publicationFormats', $props)) {
+ // Get all submission files assigned to a publication format
+ $submissionFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$publication->getData('submissionId')])
+ ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_PROOF])
+ ->getMany();
+
+ /** @var GenreDAO $genreDao */
+ $genreDao = DAORegistry::getDAO('GenreDAO');
+ $genres = $genreDao->getByContextId($this->submission->getData('contextId'))->toArray();
+
+ $publicationFormats = array_map(
+ function ($publicationFormat) use ($submissionFiles, $genres) {
+ $data = $publicationFormat->_data;
+
+ if ($data['doiId'] !== null) {
+ $data['doiObject'] = Repo::doi()->getSchemaMap()->summarize($data['doiObject']);
+ }
+
+ // Get SubmissionFiles related to each format and attach
+ $formatSpecificFiles = $submissionFiles->filter(function ($submissionFile) use ($publicationFormat) {
+ return $publicationFormat->getId() === $submissionFile->getData('assocId');
+ });
+ return array_merge($data, [
+ 'submissionFiles' => Repo::submissionFile()->getSchemaMap()->mapMany($formatSpecificFiles, $genres)->values()->toArray()
+ ]);
+ },
+ $publication->getData('publicationFormats')
+ );
+
+ // Call array_values to reset array keys so that the output will convert to an array in JSON
+ $output['publicationFormats'] = array_values($publicationFormats);
+ }
+
+ if (in_array('urlPublished', $props)) {
+ $output['urlPublished'] = $this->request->getDispatcher()->url(
+ $this->request,
+ Application::ROUTE_PAGE,
+ $this->context->getData('urlPath'),
+ 'catalog',
+ 'book',
+ [$this->submission->getBestId(), 'version', $publication->getId()]
+ );
+ }
+
+ $output = $this->schemaService->addMissingMultilingualValues(PKPSchemaService::SCHEMA_PUBLICATION, $output, $this->context->getSupportedSubmissionLocales());
+
+ ksort($output);
+
+ return $this->withExtensions($output, $publication);
+ }
+}
diff --git a/classes/publicationFormat/IdentificationCode.inc.php b/classes/publicationFormat/IdentificationCode.inc.php
deleted file mode 100644
index 78276333322..00000000000
--- a/classes/publicationFormat/IdentificationCode.inc.php
+++ /dev/null
@@ -1,84 +0,0 @@
-getData('publicationFormatId');
- }
-
- /**
- * set publication format id
- * @param $pressId int
- */
- function setPublicationFormatId($publicationFormatId) {
- return $this->setData('publicationFormatId', $publicationFormatId);
- }
-
- /**
- * Set the ONIX code for this identification code
- * @param $code string
- */
- function setCode($code) {
- $this->setData('code', $code);
- }
-
- /**
- * Get the ONIX code for the identification code
- * @return string
- */
- function getCode() {
- return $this->getData('code');
- }
-
- /**
- * Get the human readable name for this ONIX code
- * @return string
- */
- function getNameForONIXCode() {
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $codes =& $onixCodelistItemDao->getCodes('List5'); // List5 is for ISBN, GTIN-13, etc.
- return $codes[$this->getCode()];
- }
-
- /**
- * Set the value for this identification code
- * @param $value string
- */
- function setValue($value) {
- $this->setData('value', $value);
- }
-
- /**
- * Get the value for the identification code
- * @return string
- */
- function getValue() {
- return $this->getData('value');
- }
-}
-
-
diff --git a/classes/publicationFormat/IdentificationCode.php b/classes/publicationFormat/IdentificationCode.php
new file mode 100644
index 00000000000..125a3b8e65f
--- /dev/null
+++ b/classes/publicationFormat/IdentificationCode.php
@@ -0,0 +1,100 @@
+getData('publicationFormatId');
+ }
+
+ /**
+ * set publication format id
+ */
+ public function setPublicationFormatId($publicationFormatId)
+ {
+ return $this->setData('publicationFormatId', $publicationFormatId);
+ }
+
+ /**
+ * Set the ONIX code for this identification code
+ *
+ * @param string $code
+ */
+ public function setCode($code)
+ {
+ $this->setData('code', $code);
+ }
+
+ /**
+ * Get the ONIX code for the identification code
+ *
+ * @return string
+ */
+ public function getCode()
+ {
+ return $this->getData('code');
+ }
+
+ /**
+ * Get the human readable name for this ONIX code
+ *
+ * @return string
+ */
+ public function getNameForONIXCode()
+ {
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $codes = & $onixCodelistItemDao->getCodes('List5'); // List5 is for ISBN, GTIN-13, etc.
+ return $codes[$this->getCode()];
+ }
+
+ /**
+ * Set the value for this identification code
+ *
+ * @param string $value
+ */
+ public function setValue($value)
+ {
+ $this->setData('value', $value);
+ }
+
+ /**
+ * Get the value for the identification code
+ *
+ * @return string
+ */
+ public function getValue()
+ {
+ return $this->getData('value');
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publicationFormat\IdentificationCode', '\IdentificationCode');
+}
diff --git a/classes/publicationFormat/IdentificationCodeDAO.inc.php b/classes/publicationFormat/IdentificationCodeDAO.inc.php
deleted file mode 100644
index ef5b365b495..00000000000
--- a/classes/publicationFormat/IdentificationCodeDAO.inc.php
+++ /dev/null
@@ -1,149 +0,0 @@
-retrieve(
- 'SELECT i.*
- FROM identification_codes i
- JOIN publication_formats pf ON (i.publication_format_id = pf.publication_format_id)
- WHERE i.identification_code_id = ?
- ' . ($publicationId?' AND pf.publication_id = ?':''),
- $params
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Retrieve all identification codes for a publication format
- * @param $publicationFormatId int
- * @return DAOResultFactory containing matching identification codes
- */
- function getByPublicationFormatId($publicationFormatId) {
- return new DAOResultFactory(
- $result = $this->retrieveRange(
- 'SELECT * FROM identification_codes WHERE publication_format_id = ?',
- [(int) $publicationFormatId]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Construct a new data object corresponding to this DAO.
- * @return IdentificationCode
- */
- function newDataObject() {
- return new IdentificationCode();
- }
-
- /**
- * Internal function to return a IdentificationCode object from a row.
- * @param $row array
- * @param $callHooks boolean
- * @return IdentificationCode
- */
- function _fromRow($row, $callHooks = true) {
- $identificationCode = $this->newDataObject();
- $identificationCode->setId($row['identification_code_id']);
- $identificationCode->setCode($row['code']);
- $identificationCode->setValue($row['value']);
- $identificationCode->setPublicationFormatId($row['publication_format_id']);
-
- if ($callHooks) HookRegistry::call('IdentificationCodeDAO::_fromRow', [&$identificationCode, &$row]);
-
- return $identificationCode;
- }
-
- /**
- * Insert a new identification code.
- * @param $identificationCode IdentificationCode
- */
- function insertObject($identificationCode) {
- $this->update(
- 'INSERT INTO identification_codes
- (publication_format_id, code, value)
- VALUES
- (?, ?, ?)',
- [
- (int) $identificationCode->getPublicationFormatId(),
- $identificationCode->getCode(),
- $identificationCode->getValue()
- ]
- );
-
- $identificationCode->setId($this->getInsertId());
- return $identificationCode->getId();
- }
-
- /**
- * Update an existing identification code.
- * @param $identificationCode IdentificationCode
- */
- function updateObject($identificationCode) {
- $this->update(
- 'UPDATE identification_codes
- SET code = ?, value = ?
- WHERE identification_code_id = ?',
- [
- $identificationCode->getCode(),
- $identificationCode->getValue(),
- (int) $identificationCode->getId()
- ]
- );
- }
-
- /**
- * Delete an identification code by id.
- * @param $identificationCode IdentificationCode
- */
- function deleteObject($identificationCode) {
- return $this->deleteById($identificationCode->getId());
- }
-
- /**
- * delete a identification code by id.
- * @param $entryId int
- */
- function deleteById($entryId) {
- return $this->update(
- 'DELETE FROM identification_codes WHERE identification_code_id = ?', [(int) $entryId]
- );
- }
-
- /**
- * Get the ID of the last inserted identification code.
- * @return int
- */
- function getInsertId() {
- return $this->_getInsertId('identification_codes', 'identification_code_id');
- }
-}
-
-
diff --git a/classes/publicationFormat/IdentificationCodeDAO.php b/classes/publicationFormat/IdentificationCodeDAO.php
new file mode 100644
index 00000000000..63c0d1cd53e
--- /dev/null
+++ b/classes/publicationFormat/IdentificationCodeDAO.php
@@ -0,0 +1,173 @@
+retrieve(
+ 'SELECT i.*
+ FROM identification_codes i
+ JOIN publication_formats pf ON (i.publication_format_id = pf.publication_format_id)
+ WHERE i.identification_code_id = ?
+ ' . ($publicationId ? ' AND pf.publication_id = ?' : ''),
+ $params
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Retrieve all identification codes for a publication format
+ *
+ * @param int $publicationFormatId
+ *
+ * @return DAOResultFactory containing matching identification codes
+ */
+ public function getByPublicationFormatId($publicationFormatId)
+ {
+ return new DAOResultFactory(
+ $result = $this->retrieveRange(
+ 'SELECT * FROM identification_codes WHERE publication_format_id = ?',
+ [(int) $publicationFormatId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Construct a new data object corresponding to this DAO.
+ *
+ * @return IdentificationCode
+ */
+ public function newDataObject()
+ {
+ return new IdentificationCode();
+ }
+
+ /**
+ * Internal function to return a IdentificationCode object from a row.
+ *
+ * @param array $row
+ * @param bool $callHooks
+ *
+ * @return IdentificationCode
+ */
+ public function _fromRow($row, $callHooks = true)
+ {
+ $identificationCode = $this->newDataObject();
+ $identificationCode->setId($row['identification_code_id']);
+ $identificationCode->setCode($row['code']);
+ $identificationCode->setValue($row['value']);
+ $identificationCode->setPublicationFormatId($row['publication_format_id']);
+
+ if ($callHooks) {
+ Hook::call('IdentificationCodeDAO::_fromRow', [&$identificationCode, &$row]);
+ }
+
+ return $identificationCode;
+ }
+
+ /**
+ * Insert a new identification code.
+ *
+ * @param IdentificationCode $identificationCode
+ */
+ public function insertObject($identificationCode)
+ {
+ $this->update(
+ 'INSERT INTO identification_codes
+ (publication_format_id, code, value)
+ VALUES
+ (?, ?, ?)',
+ [
+ (int) $identificationCode->getPublicationFormatId(),
+ $identificationCode->getCode(),
+ $identificationCode->getValue()
+ ]
+ );
+
+ $identificationCode->setId($this->getInsertId());
+ return $identificationCode->getId();
+ }
+
+ /**
+ * Update an existing identification code.
+ *
+ * @param IdentificationCode $identificationCode
+ */
+ public function updateObject($identificationCode)
+ {
+ $this->update(
+ 'UPDATE identification_codes
+ SET code = ?, value = ?
+ WHERE identification_code_id = ?',
+ [
+ $identificationCode->getCode(),
+ $identificationCode->getValue(),
+ (int) $identificationCode->getId()
+ ]
+ );
+ }
+
+ /**
+ * Delete an identification code by id.
+ *
+ * @param IdentificationCode $identificationCode
+ */
+ public function deleteObject($identificationCode)
+ {
+ return $this->deleteById($identificationCode->getId());
+ }
+
+ /**
+ * delete a identification code by id.
+ *
+ * @param int $entryId
+ */
+ public function deleteById($entryId)
+ {
+ return $this->update(
+ 'DELETE FROM identification_codes WHERE identification_code_id = ?',
+ [(int) $entryId]
+ );
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publicationFormat\IdentificationCodeDAO', '\IdentificationCodeDAO');
+}
diff --git a/classes/publicationFormat/Market.inc.php b/classes/publicationFormat/Market.inc.php
deleted file mode 100644
index ff7b3e2dec5..00000000000
--- a/classes/publicationFormat/Market.inc.php
+++ /dev/null
@@ -1,329 +0,0 @@
-getData('publicationFormatId');
- }
-
- /**
- * set publication format id
- * @param $pressId int
- */
- function setPublicationFormatId($publicationFormatId) {
- return $this->setData('publicationFormatId', $publicationFormatId);
- }
-
- /**
- * Get the included countries for this market entry
- * @return array
- */
- function getCountriesIncluded() {
- return $this->getData('countriesIncluded');
- }
-
- /**
- * Set the included country list for this market entry
- * @param $countriesIncluded array
- */
- function setCountriesIncluded($countriesIncluded) {
- $this->setData('countriesIncluded', array_filter($countriesIncluded, array(&$this, '_removeEmptyElements')));
- }
-
- /**
- * Get the excluded countries for this market entry
- * @return array
- */
- function getCountriesExcluded() {
- return $this->getData('countriesExcluded');
- }
-
- /**
- * Set the excluded country list for this market entry
- * @param $countriesExcluded array
- */
- function setCountriesExcluded($countriesExcluded) {
- $this->setData('countriesExcluded', array_filter($countriesExcluded, array(&$this, '_removeEmptyElements')));
- }
-
- /**
- * Get the included regions for this market entry
- * @return array
- */
- function getRegionsIncluded() {
- return $this->getData('regionsIncluded');
- }
-
- /**
- * Set the included region list for this market entry
- * @param $regionsIncluded array
- */
- function setRegionsIncluded($regionsIncluded) {
- $this->setData('regionsIncluded', array_filter($regionsIncluded, array(&$this, '_removeEmptyElements')));
- }
-
- /**
- * Get the excluded regions for this market entry
- * @return array
- */
- function getRegionsExcluded() {
- return $this->getData('regionsExcluded');
- }
-
- /**
- * Set the excluded region list for this market entry
- * @param $regionsExcluded array
- */
- function setRegionsExcluded($regionsExcluded) {
- $this->setData('regionsExcluded', array_filter($regionsExcluded, array(&$this, '_removeEmptyElements')));
- }
-
- /**
- * Get the date role for this Market.
- * @return string
- */
- function getDateRole() {
- return $this->getData('dateRole');
- }
-
- /**
- * Set the date role for this Market. (List163)
- * @param String $dateRole
- */
- function setDateRole($dateRole) {
- $this->setData('dateRole', $dateRole);
- }
-
- /**
- * Get the date format for this Market.
- * @return string
- */
- function getDateFormat() {
- return $this->getData('dateFormat');
- }
-
- /**
- * Set the date format for this Market. (List55)
- * @param string $dateFormat
- */
- function setDateFormat($dateFormat) {
- $this->setData('dateFormat', $dateFormat);
- }
-
- /**
- * Get the date for this Market.
- * @return string
- */
- function getDate() {
- return $this->getData('date');
- }
-
- /**
- * Set this Market's date.
- * @param string $date
- */
- function setDate($date) {
- $this->setData('date', $date);
- }
-
- /**
- * Get the currency code (ONIX value) used for this market (List96).
- * @return string
- */
- function getCurrencyCode() {
- return $this->getData('currencyCode');
- }
-
- /**
- * Set the currency code (ONIX value) for a market.
- * @param string $currencyCode
- */
- function setCurrencyCode($currencyCode) {
- return $this->setData('currencyCode', $currencyCode);
- }
-
- /**
- * Get the price.
- * @return string
- */
- function getPrice() {
- return $this->getData('price');
- }
-
- /**
- * Set the price.
- * @param string $price
- */
- function setPrice($price) {
- return $this->setData('price', $price);
- }
-
- /**
- * Get the discount.
- * @return string
- */
- function getDiscount() {
- return $this->getData('discount');
- }
-
- /**
- * Set the discount.
- * @param string $discount
- */
- function setDiscount($discount) {
- return $this->setData('discount', $discount);
- }
-
-
- /**
- * Get the price type code (ONIX code) used for this market (List58).
- * @return string
- */
- function getPriceTypeCode() {
- return $this->getData('priceTypeCode');
- }
-
- /**
- * Set the price type code (ONIX code) for a market.
- * @param string $priceTypeCode
- */
- function setPriceTypeCode($priceTypeCode) {
- return $this->setData('priceTypeCode', $priceTypeCode);
- }
-
- /**
- * Get the tax rate code (ONIX value) used for this market (List62).
- * @return string
- */
- function getTaxRateCode() {
- return $this->getData('taxRateCode');
- }
-
- /**
- * Set the tax rate code (ONIX value) for a market.
- * @param string $taxRateCode
- */
- function setTaxRateCode($taxRateCode) {
- return $this->setData('taxRateCode', $taxRateCode);
- }
-
- /**
- * Get the tax type code used (ONIX value) for this market (List171).
- * @return string
- */
- function getTaxTypeCode() {
- return $this->getData('taxTypeCode');
- }
-
- /**
- * Set the tax type code (ONIX value) for a market.
- * @param string $taxTypeCode
- */
- function setTaxTypeCode($taxTypeCode) {
- return $this->setData('taxTypeCode', $taxTypeCode);
- }
-
- /**
- * Get the id of the assigned agent, if there is one.
- * @return string
- */
- function getAgentId() {
- return $this->getData('agentId');
- }
-
- /**
- * Set the id of the assigned agent.
- * @param int $agentId
- */
- function setAgentId($agentId) {
- return $this->setData('agentId', $agentId);
- }
-
- /**
- * Get the id of the assigned supplier, if there is one.
- * @return string
- */
- function getSupplierId() {
- return $this->getData('supplierId');
- }
-
- /**
- * Set the id of the assigned supplier.
- * @param int $supplierId
- */
- function setSupplierId($supplierId) {
- return $this->setData('supplierId', $supplierId);
- }
-
- /**
- * Returns a string briefly describing the territories for this market
- * @return string
- */
- function getTerritoriesAsString() {
- $territories = __('grid.catalogEntry.included');
- $territories .= ': ' . join(', ', array_merge($this->getCountriesIncluded(), $this->getRegionsIncluded()));
- $territories .= ', ' . __('grid.catalogEntry.excluded');
- $territories .= ': ' . join(', ', array_merge($this->getCountriesExcluded(), $this->getRegionsExcluded()));
-
- return $territories;
- }
-
- /**
- * Returns a string containing the name of the reps assigned to this Market territory.
- * @return string
- */
- function getAssignedRepresentativeNames() {
- $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /* @var $representativeDao RepresentativeDAO */
- $agent = $representativeDao->getById($this->getAgentId());
- $supplier = $representativeDao->getById($this->getSupplierId());
-
- $returner = '';
-
- if (isset($agent) && isset($supplier)) {
- $returner = join(', ', array($agent->getName(), $supplier->getName()));
- } else if (isset($agent) && !isset($supplier)) {
- $returner = $agent->getName();
- } else if (isset($supplier)) {
- $returner = $supplier->getName();
- }
-
- return $returner;
- }
-
- /**
- * Internal function for an array_filter to remove empty countries.
- * array_filter() can be called without a callback to remove empty array elements but it depends
- * on type juggling and may not be reliable.
- * @param String $value
- * @return boolean
- */
- function _removeEmptyElements($value) {
- return (trim($value) != '') ? true : false;
- }
-}
-
-
diff --git a/classes/publicationFormat/Market.php b/classes/publicationFormat/Market.php
new file mode 100644
index 00000000000..3918960f77d
--- /dev/null
+++ b/classes/publicationFormat/Market.php
@@ -0,0 +1,402 @@
+getData('publicationFormatId');
+ }
+
+ /**
+ * set publication format id
+ */
+ public function setPublicationFormatId($publicationFormatId)
+ {
+ return $this->setData('publicationFormatId', $publicationFormatId);
+ }
+
+ /**
+ * Get the included countries for this market entry
+ *
+ * @return array
+ */
+ public function getCountriesIncluded()
+ {
+ return $this->getData('countriesIncluded');
+ }
+
+ /**
+ * Set the included country list for this market entry
+ *
+ * @param array $countriesIncluded
+ */
+ public function setCountriesIncluded($countriesIncluded)
+ {
+ $this->setData('countriesIncluded', array_filter($countriesIncluded, [&$this, '_removeEmptyElements']));
+ }
+
+ /**
+ * Get the excluded countries for this market entry
+ *
+ * @return array
+ */
+ public function getCountriesExcluded()
+ {
+ return $this->getData('countriesExcluded');
+ }
+
+ /**
+ * Set the excluded country list for this market entry
+ *
+ * @param array $countriesExcluded
+ */
+ public function setCountriesExcluded($countriesExcluded)
+ {
+ $this->setData('countriesExcluded', array_filter($countriesExcluded, [&$this, '_removeEmptyElements']));
+ }
+
+ /**
+ * Get the included regions for this market entry
+ *
+ * @return array
+ */
+ public function getRegionsIncluded()
+ {
+ return $this->getData('regionsIncluded');
+ }
+
+ /**
+ * Set the included region list for this market entry
+ *
+ * @param array $regionsIncluded
+ */
+ public function setRegionsIncluded($regionsIncluded)
+ {
+ $this->setData('regionsIncluded', array_filter($regionsIncluded, [&$this, '_removeEmptyElements']));
+ }
+
+ /**
+ * Get the excluded regions for this market entry
+ *
+ * @return array
+ */
+ public function getRegionsExcluded()
+ {
+ return $this->getData('regionsExcluded');
+ }
+
+ /**
+ * Set the excluded region list for this market entry
+ *
+ * @param array $regionsExcluded
+ */
+ public function setRegionsExcluded($regionsExcluded)
+ {
+ $this->setData('regionsExcluded', array_filter($regionsExcluded, [&$this, '_removeEmptyElements']));
+ }
+
+ /**
+ * Get the date role for this Market.
+ *
+ * @return string
+ */
+ public function getDateRole()
+ {
+ return $this->getData('dateRole');
+ }
+
+ /**
+ * Set the date role for this Market. (List163)
+ *
+ * @param string $dateRole
+ */
+ public function setDateRole($dateRole)
+ {
+ $this->setData('dateRole', $dateRole);
+ }
+
+ /**
+ * Get the date format for this Market.
+ *
+ * @return string
+ */
+ public function getDateFormat()
+ {
+ return $this->getData('dateFormat');
+ }
+
+ /**
+ * Set the date format for this Market. (List55)
+ *
+ * @param string $dateFormat
+ */
+ public function setDateFormat($dateFormat)
+ {
+ $this->setData('dateFormat', $dateFormat);
+ }
+
+ /**
+ * Get the date for this Market.
+ *
+ * @return string
+ */
+ public function getDate()
+ {
+ return $this->getData('date');
+ }
+
+ /**
+ * Set this Market's date.
+ *
+ * @param string $date
+ */
+ public function setDate($date)
+ {
+ $this->setData('date', $date);
+ }
+
+ /**
+ * Get the currency code (ONIX value) used for this market (List96).
+ *
+ * @return string
+ */
+ public function getCurrencyCode()
+ {
+ return $this->getData('currencyCode');
+ }
+
+ /**
+ * Set the currency code (ONIX value) for a market.
+ *
+ * @param string $currencyCode
+ */
+ public function setCurrencyCode($currencyCode)
+ {
+ return $this->setData('currencyCode', $currencyCode);
+ }
+
+ /**
+ * Get the price.
+ *
+ * @return string
+ */
+ public function getPrice()
+ {
+ return $this->getData('price');
+ }
+
+ /**
+ * Set the price.
+ *
+ * @param string $price
+ */
+ public function setPrice($price)
+ {
+ return $this->setData('price', $price);
+ }
+
+ /**
+ * Get the discount.
+ *
+ * @return string
+ */
+ public function getDiscount()
+ {
+ return $this->getData('discount');
+ }
+
+ /**
+ * Set the discount.
+ *
+ * @param string $discount
+ */
+ public function setDiscount($discount)
+ {
+ return $this->setData('discount', $discount);
+ }
+
+
+ /**
+ * Get the price type code (ONIX code) used for this market (List58).
+ *
+ * @return string
+ */
+ public function getPriceTypeCode()
+ {
+ return $this->getData('priceTypeCode');
+ }
+
+ /**
+ * Set the price type code (ONIX code) for a market.
+ *
+ * @param string $priceTypeCode
+ */
+ public function setPriceTypeCode($priceTypeCode)
+ {
+ return $this->setData('priceTypeCode', $priceTypeCode);
+ }
+
+ /**
+ * Get the tax rate code (ONIX value) used for this market (List62).
+ *
+ * @return string
+ */
+ public function getTaxRateCode()
+ {
+ return $this->getData('taxRateCode');
+ }
+
+ /**
+ * Set the tax rate code (ONIX value) for a market.
+ *
+ * @param string $taxRateCode
+ */
+ public function setTaxRateCode($taxRateCode)
+ {
+ return $this->setData('taxRateCode', $taxRateCode);
+ }
+
+ /**
+ * Get the tax type code used (ONIX value) for this market (List171).
+ *
+ * @return string
+ */
+ public function getTaxTypeCode()
+ {
+ return $this->getData('taxTypeCode');
+ }
+
+ /**
+ * Set the tax type code (ONIX value) for a market.
+ *
+ * @param string $taxTypeCode
+ */
+ public function setTaxTypeCode($taxTypeCode)
+ {
+ return $this->setData('taxTypeCode', $taxTypeCode);
+ }
+
+ /**
+ * Get the id of the assigned agent, if there is one.
+ *
+ * @return string
+ */
+ public function getAgentId()
+ {
+ return $this->getData('agentId');
+ }
+
+ /**
+ * Set the id of the assigned agent.
+ *
+ * @param int $agentId
+ */
+ public function setAgentId($agentId)
+ {
+ return $this->setData('agentId', $agentId);
+ }
+
+ /**
+ * Get the id of the assigned supplier, if there is one.
+ *
+ * @return string
+ */
+ public function getSupplierId()
+ {
+ return $this->getData('supplierId');
+ }
+
+ /**
+ * Set the id of the assigned supplier.
+ *
+ * @param int $supplierId
+ */
+ public function setSupplierId($supplierId)
+ {
+ return $this->setData('supplierId', $supplierId);
+ }
+
+ /**
+ * Returns a string briefly describing the territories for this market
+ *
+ * @return string
+ */
+ public function getTerritoriesAsString()
+ {
+ $territories = __('grid.catalogEntry.included');
+ $territories .= ': ' . join(', ', array_merge($this->getCountriesIncluded(), $this->getRegionsIncluded()));
+ $territories .= ', ' . __('grid.catalogEntry.excluded');
+ $territories .= ': ' . join(', ', array_merge($this->getCountriesExcluded(), $this->getRegionsExcluded()));
+
+ return $territories;
+ }
+
+ /**
+ * Returns a string containing the name of the reps assigned to this Market territory.
+ *
+ * @return string
+ */
+ public function getAssignedRepresentativeNames()
+ {
+ $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /** @var RepresentativeDAO $representativeDao */
+ $agent = $representativeDao->getById($this->getAgentId());
+ $supplier = $representativeDao->getById($this->getSupplierId());
+
+ $returner = '';
+
+ if (isset($agent) && isset($supplier)) {
+ $returner = join(', ', [$agent->getName(), $supplier->getName()]);
+ } elseif (isset($agent) && !isset($supplier)) {
+ $returner = $agent->getName();
+ } elseif (isset($supplier)) {
+ $returner = $supplier->getName();
+ }
+
+ return $returner;
+ }
+
+ /**
+ * Internal function for an array_filter to remove empty countries.
+ * array_filter() can be called without a callback to remove empty array elements but it depends
+ * on type juggling and may not be reliable.
+ *
+ * @param string $value
+ *
+ * @return bool
+ */
+ public function _removeEmptyElements($value)
+ {
+ return (trim($value) != '') ? true : false;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publicationFormat\Market', '\Market');
+}
diff --git a/classes/publicationFormat/MarketDAO.inc.php b/classes/publicationFormat/MarketDAO.inc.php
deleted file mode 100644
index 7cc3401153e..00000000000
--- a/classes/publicationFormat/MarketDAO.inc.php
+++ /dev/null
@@ -1,200 +0,0 @@
-retrieve(
- 'SELECT m.*
- FROM markets m
- JOIN publication_formats pf ON (m.publication_format_id = pf.publication_format_id)
- WHERE m.market_id = ?
- ' . ($publicationId?' AND pf.publication_id = ?':''),
- $params
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Retrieve all market for a publication format
- * @param $publicationFormatId int
- * @return DAOResultFactory containing matching market.
- */
- function getByPublicationFormatId($publicationFormatId) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT * FROM markets WHERE publication_format_id = ?',
- [(int) $publicationFormatId]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Construct a new data object corresponding to this DAO.
- * @return Market
- */
- function newDataObject() {
- return new Market();
- }
-
- /**
- * Internal function to return a Market object from a row.
- * @param $row array
- * @param $callHooks boolean
- * @return Market
- */
- function _fromRow($row, $callHooks = true) {
- $market = $this->newDataObject();
- $market->setId($row['market_id']);
- $market->setCountriesIncluded(unserialize($row['countries_included']));
- $market->setCountriesExcluded(unserialize($row['countries_excluded']));
- $market->setRegionsIncluded(unserialize($row['regions_included']));
- $market->setRegionsExcluded(unserialize($row['regions_excluded']));
- $market->setDateRole($row['market_date_role']);
- $market->setDateFormat($row['market_date_format']);
- $market->setDate($row['market_date']);
- $market->setDiscount($row['discount']);
- $market->setPrice($row['price']);
- $market->setPriceTypeCode($row['price_type_code']);
- $market->setCurrencyCode($row['currency_code']);
- $market->setTaxRateCode($row['tax_rate_code']);
- $market->setTaxTypeCode($row['tax_type_code']);
- $market->setAgentId($row['agent_id']);
- $market->setSupplierId($row['supplier_id']);
- $market->setPublicationFormatId($row['publication_format_id']);
-
- if ($callHooks) HookRegistry::call('MarketDAO::_fromRow', [&$market, &$row]);
-
- return $market;
- }
-
- /**
- * Insert a new market entry.
- * @param $market Market
- */
- function insertObject($market) {
- $this->update(
- 'INSERT INTO markets
- (publication_format_id, countries_included, countries_excluded, regions_included, regions_excluded, market_date_role, market_date_format, market_date, price, discount, price_type_code, currency_code, tax_rate_code, tax_type_code, agent_id, supplier_id)
- VALUES
- (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
- [
- (int) $market->getPublicationFormatId(),
- serialize($market->getCountriesIncluded() ? $market->getCountriesIncluded() : array()),
- serialize($market->getCountriesExcluded() ? $market->getCountriesExcluded() : array()),
- serialize($market->getRegionsIncluded() ? $market->getRegionsIncluded() : array()),
- serialize($market->getRegionsExcluded() ? $market->getRegionsExcluded() : array()),
- $market->getDateRole(),
- $market->getDateFormat(),
- $market->getDate(),
- $market->getPrice(),
- $market->getDiscount(),
- $market->getPriceTypeCode(),
- $market->getCurrencyCode(),
- $market->getTaxRateCode(),
- $market->getTaxTypeCode(),
- (int) $market->getAgentId(),
- (int) $market->getSupplierId()
- ]
- );
-
- $market->setId($this->getInsertId());
- return $market->getId();
- }
-
- /**
- * Update an existing market entry.
- * @param $market Market
- */
- function updateObject($market) {
- $this->update(
- 'UPDATE markets
- SET countries_included = ?,
- countries_excluded = ?,
- regions_included = ?,
- regions_excluded = ?,
- market_date_role = ?,
- market_date_format = ?,
- market_date = ?,
- price = ?,
- discount = ?,
- price_type_code = ?,
- currency_code = ?,
- tax_rate_code = ?,
- tax_type_code = ?,
- agent_id = ?,
- supplier_id = ?
- WHERE market_id = ?',
- [
- serialize($market->getCountriesIncluded() ? $market->getCountriesIncluded() : array()),
- serialize($market->getCountriesExcluded() ? $market->getCountriesExcluded() : array()),
- serialize($market->getRegionsIncluded() ? $market->getRegionsIncluded() : array()),
- serialize($market->getRegionsExcluded() ? $market->getRegionsExcluded() : array()),
- $market->getDateRole(),
- $market->getDateFormat(),
- $market->getDate(),
- $market->getPrice(),
- $market->getDiscount(),
- $market->getPriceTypeCode(),
- $market->getCurrencyCode(),
- $market->getTaxRateCode(),
- $market->getTaxTypeCode(),
- (int) $market->getAgentId(),
- (int) $market->getSupplierId(),
- (int) $market->getId()
- ]
- );
- }
-
- /**
- * Delete a market entry by id.
- * @param $market Market
- */
- function deleteObject($market) {
- return $this->deleteById($market->getId());
- }
-
- /**
- * Delete a market entry by id.
- * @param $entryId int
- */
- function deleteById($entryId) {
- $this->update('DELETE FROM markets WHERE market_id = ?', [(int) $entryId]);
- }
-
- /**
- * Get the ID of the last inserted market entry.
- * @return int
- */
- function getInsertId() {
- return $this->_getInsertId('markets', 'market_id');
- }
-}
-
-
diff --git a/classes/publicationFormat/MarketDAO.php b/classes/publicationFormat/MarketDAO.php
new file mode 100644
index 00000000000..f14952843f0
--- /dev/null
+++ b/classes/publicationFormat/MarketDAO.php
@@ -0,0 +1,219 @@
+retrieve(
+ 'SELECT m.*
+ FROM markets m
+ JOIN publication_formats pf ON (m.publication_format_id = pf.publication_format_id)
+ WHERE m.market_id = ?
+ ' . ($publicationId ? ' AND pf.publication_id = ?' : ''),
+ $params
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Retrieve all market for a publication format
+ *
+ * @param int $publicationFormatId
+ *
+ * @return DAOResultFactory containing matching market.
+ */
+ public function getByPublicationFormatId($publicationFormatId)
+ {
+ return new DAOResultFactory(
+ $this->retrieveRange(
+ 'SELECT * FROM markets WHERE publication_format_id = ?',
+ [(int) $publicationFormatId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Construct a new data object corresponding to this DAO.
+ *
+ * @return Market
+ */
+ public function newDataObject()
+ {
+ return new Market();
+ }
+
+ /**
+ * Internal function to return a Market object from a row.
+ *
+ * @param array $row
+ * @param bool $callHooks
+ *
+ * @return Market
+ */
+ public function _fromRow($row, $callHooks = true)
+ {
+ $market = $this->newDataObject();
+ $market->setId($row['market_id']);
+ $market->setCountriesIncluded(unserialize($row['countries_included']));
+ $market->setCountriesExcluded(unserialize($row['countries_excluded']));
+ $market->setRegionsIncluded(unserialize($row['regions_included']));
+ $market->setRegionsExcluded(unserialize($row['regions_excluded']));
+ $market->setDateRole($row['market_date_role']);
+ $market->setDateFormat($row['market_date_format']);
+ $market->setDate($row['market_date']);
+ $market->setDiscount($row['discount']);
+ $market->setPrice($row['price']);
+ $market->setPriceTypeCode($row['price_type_code']);
+ $market->setCurrencyCode($row['currency_code']);
+ $market->setTaxRateCode($row['tax_rate_code']);
+ $market->setTaxTypeCode($row['tax_type_code']);
+ $market->setAgentId($row['agent_id']);
+ $market->setSupplierId($row['supplier_id']);
+ $market->setPublicationFormatId($row['publication_format_id']);
+
+ if ($callHooks) {
+ Hook::call('MarketDAO::_fromRow', [&$market, &$row]);
+ }
+
+ return $market;
+ }
+
+ /**
+ * Insert a new market entry.
+ *
+ * @param Market $market
+ */
+ public function insertObject($market)
+ {
+ $this->update(
+ 'INSERT INTO markets
+ (publication_format_id, countries_included, countries_excluded, regions_included, regions_excluded, market_date_role, market_date_format, market_date, price, discount, price_type_code, currency_code, tax_rate_code, tax_type_code, agent_id, supplier_id)
+ VALUES
+ (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
+ [
+ (int) $market->getPublicationFormatId(),
+ serialize($market->getCountriesIncluded() ? $market->getCountriesIncluded() : []),
+ serialize($market->getCountriesExcluded() ? $market->getCountriesExcluded() : []),
+ serialize($market->getRegionsIncluded() ? $market->getRegionsIncluded() : []),
+ serialize($market->getRegionsExcluded() ? $market->getRegionsExcluded() : []),
+ $market->getDateRole(),
+ $market->getDateFormat(),
+ $market->getDate(),
+ $market->getPrice(),
+ $market->getDiscount(),
+ $market->getPriceTypeCode(),
+ $market->getCurrencyCode(),
+ $market->getTaxRateCode(),
+ $market->getTaxTypeCode(),
+ (int) $market->getAgentId(),
+ (int) $market->getSupplierId()
+ ]
+ );
+
+ $market->setId($this->getInsertId());
+ return $market->getId();
+ }
+
+ /**
+ * Update an existing market entry.
+ *
+ * @param Market $market
+ */
+ public function updateObject($market)
+ {
+ $this->update(
+ 'UPDATE markets
+ SET countries_included = ?,
+ countries_excluded = ?,
+ regions_included = ?,
+ regions_excluded = ?,
+ market_date_role = ?,
+ market_date_format = ?,
+ market_date = ?,
+ price = ?,
+ discount = ?,
+ price_type_code = ?,
+ currency_code = ?,
+ tax_rate_code = ?,
+ tax_type_code = ?,
+ agent_id = ?,
+ supplier_id = ?
+ WHERE market_id = ?',
+ [
+ serialize($market->getCountriesIncluded() ? $market->getCountriesIncluded() : []),
+ serialize($market->getCountriesExcluded() ? $market->getCountriesExcluded() : []),
+ serialize($market->getRegionsIncluded() ? $market->getRegionsIncluded() : []),
+ serialize($market->getRegionsExcluded() ? $market->getRegionsExcluded() : []),
+ $market->getDateRole(),
+ $market->getDateFormat(),
+ $market->getDate(),
+ $market->getPrice(),
+ $market->getDiscount(),
+ $market->getPriceTypeCode(),
+ $market->getCurrencyCode(),
+ $market->getTaxRateCode(),
+ $market->getTaxTypeCode(),
+ (int) $market->getAgentId(),
+ (int) $market->getSupplierId(),
+ (int) $market->getId()
+ ]
+ );
+ }
+
+ /**
+ * Delete a market entry by id.
+ *
+ * @param Market $market
+ */
+ public function deleteObject($market)
+ {
+ return $this->deleteById($market->getId());
+ }
+
+ /**
+ * Delete a market entry by id.
+ *
+ * @param int $entryId
+ */
+ public function deleteById($entryId)
+ {
+ $this->update('DELETE FROM markets WHERE market_id = ?', [(int) $entryId]);
+ }
+}
diff --git a/classes/publicationFormat/PublicationDate.inc.php b/classes/publicationFormat/PublicationDate.inc.php
deleted file mode 100644
index 177cb4adaf3..00000000000
--- a/classes/publicationFormat/PublicationDate.inc.php
+++ /dev/null
@@ -1,233 +0,0 @@
-dateFormats =& $onixCodelistItemDao->getCodes('List55');
-
- parent::__construct();
- }
-
- /**
- * get publication format id
- * @return int
- */
- function getPublicationFormatId() {
- return $this->getData('publicationFormatId');
- }
-
- /**
- * set publication format id
- * @param $publicationFormatId int
- */
- function setPublicationFormatId($publicationFormatId) {
- return $this->setData('publicationFormatId', $publicationFormatId);
- }
-
- /**
- * Set the ONIX code for this publication date
- * @param $role string
- */
- function setRole($role) {
- $this->setData('role', $role);
- }
-
- /**
- * Get the ONIX code for the publication date
- * @return string
- */
- function getRole() {
- return $this->getData('role');
- }
-
- /**
- * Set the date format for this publication date (ONIX Codelist List55)
- * @param $format string
- */
- function setDateFormat($format) {
- $this->setData('dateFormat', $format);
- }
-
- /**
- * Get the date format for the publication date
- * @return string
- */
- function getDateFormat() {
- return $this->getData('dateFormat');
- }
-
- /**
- * Get the human readable name for this ONIX code
- * @return string
- */
- function getNameForONIXCode() {
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $codes =& $onixCodelistItemDao->getCodes('List163'); // List163 is for Publication date, Embargo date, Announcement date, etc
- return $codes[$this->getRole()];
- }
-
- /**
- * Set the date for this publication date
- * @param $date string
- */
- function setDate($date) {
- $this->setData('date', $date);
- }
-
- /**
- * Get the date for the publication date
- * @return string
- */
- function getDate() {
- return $this->getData('date');
- }
-
- /**
- * Determines if this date is from the Hijri calendar.
- * @return boolean
- */
- function isHijriCalendar() {
- $format = $this->dateFormats[$this->getDateFormat()];
- if (stristr($format, '(H)')) {
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * determines whether or not the date should be parsed out with a date format.
- * @return boolean
- */
- function isFreeText() {
- $format = $this->dateFormats[$this->getDateFormat()];
- if (stristr($format, 'string')) {
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * returns a readable version of the entered date, based on
- * the format specified from List55. Necessary, so it can be
- * parsed correctly in the template.
- * @return string
- */
- function getReadableDates() {
- $format = $this->dateFormats[$this->getDateFormat()];
- $dateFormatShort = \Application::get()->getRequest()->getContext()->getLocalizedDateFormatShort();
-
- if ($this->isHijriCalendar()) {
- $format = preg_replace('/\s*\(H\)/i', '', $format);
- }
-
- // store the dates we parse.
- $dates = array();
-
- if (!$this->isFreeText()) { // this is not a free-form code
- // assume that the characters in the format match up with
- // the characters in the entered date. Iterate until the end.
-
- $numbers = str_split($this->getDate());
-
- // these two should be the same length.
- assert(count($numbers) == count(str_split($format)));
-
- // Some date codes have two dates (ie, a range).
- // Split these up into both dates.
- if (substr_count($format, 'Y') == 8) {
- preg_match('/^(YYYY.*)(YYYY.*)$/', $format, $matches);
- $dateFormats = array($matches[1], $matches[2]);
- } else {
- $dateFormats = array($format);
- }
-
- foreach ($dateFormats as $format) {
- $formatCharacters = str_split($format);
- $previousFormatCharacter = '';
- $thisDate = '';
- $separator = '-';
- $containsMonth = false;
-
- for ($i = 0 ; $i < count($formatCharacters) ; $i ++) {
- switch ($formatCharacters[$i]) {
- // if there is a Time included, change the separator.
- // Do not include the number, add a space instead.
- case 'T':
- $separator = ':';
- $thisDate .= ' ';
- break;
- case 'M': // falls through to default. This is just a marker.
- $containsMonth = true;
- default:
- if ($i > 0 && $previousFormatCharacter != $formatCharacters[$i] && $previousFormatCharacter != 'T') {
- $thisDate .= $separator;
- }
- $thisDate .= $numbers[$i];
- break;
- }
-
- $previousFormatCharacter = $formatCharacters[$i];
- }
-
- // Perform date formatting here instead of in the template since
- // testing is easier.
- if ($containsMonth) {
- $thisDate = strftime($dateFormatShort, strtotime($thisDate));
- }
-
- $dates[] = $thisDate;
- // remove the first date from the numbers and extract again.
- $numbers = array_slice($numbers, count($formatCharacters));
- }
-
- } else {
- $dates[] = $this->getDate();
- }
- return $dates;
- }
-
- /**
- * Return a best guess of the UNIX time corresponding to this date
- * @return int? Number of seconds since the UNIX epoch, or null if it could not be determined
- * FIXME: Hirji support
- */
- function getUnixTime() {
- $date = $this->getDate();
- switch ($this->getDateFormat()) {
- case '12': return strtotime($date);
- case '05': return strtotime("$date-01-01");
- case '01': return strtotime("$date-01");
- case '13': // FIXME: improve resolution below day
- case '14': // FIXME: improve resolution below day
- case '06': // FIXME: improve resolution below day
- case '00': return strtotime(substr($date, 0, 4) . '-' . substr($date, 4, 2) . '-' . substr($date, 6, 2));
- }
- return null;
- }
-}
-
-
diff --git a/classes/publicationFormat/PublicationDate.php b/classes/publicationFormat/PublicationDate.php
new file mode 100644
index 00000000000..dfdf2fa8e00
--- /dev/null
+++ b/classes/publicationFormat/PublicationDate.php
@@ -0,0 +1,271 @@
+dateFormats = & $onixCodelistItemDao->getCodes('List55');
+
+ parent::__construct();
+ }
+
+ /**
+ * get publication format id
+ *
+ * @return int
+ */
+ public function getPublicationFormatId()
+ {
+ return $this->getData('publicationFormatId');
+ }
+
+ /**
+ * set publication format id
+ *
+ * @param int $publicationFormatId
+ */
+ public function setPublicationFormatId($publicationFormatId)
+ {
+ return $this->setData('publicationFormatId', $publicationFormatId);
+ }
+
+ /**
+ * Set the ONIX code for this publication date
+ *
+ * @param string $role
+ */
+ public function setRole($role)
+ {
+ $this->setData('role', $role);
+ }
+
+ /**
+ * Get the ONIX code for the publication date
+ *
+ * @return string
+ */
+ public function getRole()
+ {
+ return $this->getData('role');
+ }
+
+ /**
+ * Set the date format for this publication date (ONIX Codelist List55)
+ *
+ * @param string $format
+ */
+ public function setDateFormat($format)
+ {
+ $this->setData('dateFormat', $format);
+ }
+
+ /**
+ * Get the date format for the publication date
+ *
+ * @return string
+ */
+ public function getDateFormat()
+ {
+ return $this->getData('dateFormat');
+ }
+
+ /**
+ * Get the human readable name for this ONIX code
+ *
+ * @return string
+ */
+ public function getNameForONIXCode()
+ {
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $codes = & $onixCodelistItemDao->getCodes('List163'); // List163 is for Publication date, Embargo date, Announcement date, etc
+ return $codes[$this->getRole()];
+ }
+
+ /**
+ * Set the date for this publication date
+ *
+ * @param string $date
+ */
+ public function setDate($date)
+ {
+ $this->setData('date', $date);
+ }
+
+ /**
+ * Get the date for the publication date
+ *
+ * @return string
+ */
+ public function getDate()
+ {
+ return $this->getData('date');
+ }
+
+ /**
+ * Determines if this date is from the Hijri calendar.
+ *
+ * @return bool
+ */
+ public function isHijriCalendar()
+ {
+ $format = $this->dateFormats[$this->getDateFormat()];
+ if (stristr($format, '(H)')) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * determines whether or not the date should be parsed out with a date format.
+ *
+ * @return bool
+ */
+ public function isFreeText()
+ {
+ $format = $this->dateFormats[$this->getDateFormat()];
+ if (stristr($format, 'string')) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * returns a readable version of the entered date, based on
+ * the format specified from List55. Necessary, so it can be
+ * parsed correctly in the template.
+ *
+ * @return string[]
+ */
+ public function getReadableDates()
+ {
+ $format = $this->dateFormats[$this->getDateFormat()];
+ $dateFormatShort = PKPString::convertStrftimeFormat(Application::get()->getRequest()->getContext()->getLocalizedDateFormatShort());
+
+ if ($this->isHijriCalendar()) {
+ $format = preg_replace('/\s*\(H\)/i', '', $format);
+ }
+
+ // store the dates we parse.
+ $dates = [];
+
+ if (!$this->isFreeText()) { // this is not a free-form code
+ // assume that the characters in the format match up with
+ // the characters in the entered date. Iterate until the end.
+
+ $numbers = str_split($this->getDate());
+
+ // these two should be the same length.
+ assert(count($numbers) == count(str_split($format)));
+
+ // Some date codes have two dates (ie, a range).
+ // Split these up into both dates.
+ if (substr_count($format, 'Y') == 8) {
+ preg_match('/^(YYYY.*)(YYYY.*)$/', $format, $matches);
+ $dateFormats = [$matches[1], $matches[2]];
+ } else {
+ $dateFormats = [$format];
+ }
+
+ foreach ($dateFormats as $format) {
+ $formatCharacters = str_split($format);
+ $previousFormatCharacter = '';
+ $thisDate = '';
+ $separator = '-';
+ $containsMonth = false;
+
+ for ($i = 0 ; $i < count($formatCharacters) ; $i ++) {
+ switch ($formatCharacters[$i]) {
+ // if there is a Time included, change the separator.
+ // Do not include the number, add a space instead.
+ case 'T':
+ $separator = ':';
+ $thisDate .= ' ';
+ break;
+ case 'M': // falls through to default. This is just a marker.
+ $containsMonth = true;
+ // no break
+ default:
+ if ($i > 0 && $previousFormatCharacter != $formatCharacters[$i] && $previousFormatCharacter != 'T') {
+ $thisDate .= $separator;
+ }
+ $thisDate .= $numbers[$i];
+ break;
+ }
+
+ $previousFormatCharacter = $formatCharacters[$i];
+ }
+
+ // Perform date formatting here instead of in the template since
+ // testing is easier.
+ if ($containsMonth) {
+ $thisDate = date($dateFormatShort, strtotime($thisDate));
+ }
+
+ $dates[] = $thisDate;
+ // remove the first date from the numbers and extract again.
+ $numbers = array_slice($numbers, count($formatCharacters));
+ }
+ } else {
+ $dates[] = $this->getDate();
+ }
+ return $dates;
+ }
+
+ /**
+ * Return a best guess of the UNIX time corresponding to this date
+ *
+ * @return ?int Number of seconds since the UNIX epoch, or null if it could not be determined
+ * FIXME: Hirji support
+ */
+ public function getUnixTime()
+ {
+ $date = $this->getDate();
+ switch ($this->getDateFormat()) {
+ case '12': return strtotime($date);
+ case '05': return strtotime("{$date}-01-01");
+ case '01': return strtotime("{$date}-01");
+ case '13': // FIXME: improve resolution below day
+ case '14': // FIXME: improve resolution below day
+ case '06': // FIXME: improve resolution below day
+ case '00': return strtotime(substr($date, 0, 4) . '-' . substr($date, 4, 2) . '-' . substr($date, 6, 2));
+ }
+ return null;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publicationFormat\PublicationDate', '\PublicationDate');
+}
diff --git a/classes/publicationFormat/PublicationDateDAO.inc.php b/classes/publicationFormat/PublicationDateDAO.inc.php
deleted file mode 100644
index 00e38716d0f..00000000000
--- a/classes/publicationFormat/PublicationDateDAO.inc.php
+++ /dev/null
@@ -1,150 +0,0 @@
-retrieve(
- 'SELECT p.*
- FROM publication_dates p
- JOIN publication_formats pf ON (p.publication_format_id = pf.publication_format_id)
- WHERE p.publication_date_id = ?
- ' . ($publicationId?' AND pf.publication_id = ?':''),
- $params
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Retrieve all publication dates for an assigned publication format
- * @param $representationId int
- * @return DAOResultFactory containing matching publication dates
- */
- function getByPublicationFormatId($representationId) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT * FROM publication_dates WHERE publication_format_id = ?',
- [(int) $representationId]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Construct a new data object corresponding to this DAO.
- * @return PublicationDate
- */
- function newDataObject() {
- return new PublicationDate();
- }
-
- /**
- * Internal function to return a PublicationDate object from a row.
- * @param $row array
- * @param $callHooks boolean
- * @return PublicationDate
- */
- function _fromRow($row, $callHooks = true) {
- $publicationDate = $this->newDataObject();
- $publicationDate->setId($row['publication_date_id']);
- $publicationDate->setRole($row['role']);
- $publicationDate->setDateFormat($row['date_format']);
- $publicationDate->setDate($row['date']);
- $publicationDate->setPublicationFormatId($row['publication_format_id']);
-
- if ($callHooks) HookRegistry::call('PublicationDateDAO::_fromRow', [&$publicationDate, &$row]);
-
- return $publicationDate;
- }
-
- /**
- * Insert a new publication date.
- * @param $publicationDate PublicationDate
- */
- function insertObject($publicationDate) {
- $this->update(
- 'INSERT INTO publication_dates
- (publication_format_id, role, date_format, date)
- VALUES
- (?, ?, ?, ?)',
- [
- (int) $publicationDate->getPublicationFormatId(),
- $publicationDate->getRole(),
- $publicationDate->getDateFormat(),
- $publicationDate->getDate()
- ]
- );
-
- $publicationDate->setId($this->getInsertId());
- return $publicationDate->getId();
- }
-
- /**
- * Update an existing publication date.
- * @param $publicationDate PublicationDate
- */
- function updateObject($publicationDate) {
- $this->update(
- 'UPDATE publication_dates
- SET role = ?, date_format =?, date = ?
- WHERE publication_date_id = ?',
- [
- $publicationDate->getRole(),
- $publicationDate->getDateFormat(),
- $publicationDate->getDate(),
- (int) $publicationDate->getId()
- ]
- );
- }
-
- /**
- * Delete a publication date.
- * @param $publicationDate PublicationDate
- */
- function deleteObject($publicationDate) {
- return $this->deleteById($publicationDate->getId());
- }
-
- /**
- * delete a publication date by id.
- * @param $entryId int
- */
- function deleteById($entryId) {
- $this->update('DELETE FROM publication_dates WHERE publication_date_id = ?', [(int) $entryId]);
- }
-
- /**
- * Get the ID of the last inserted publication date.
- * @return int
- */
- function getInsertId() {
- return $this->_getInsertId('publication_dates', 'publication_date_id');
- }
-}
-
-
diff --git a/classes/publicationFormat/PublicationDateDAO.php b/classes/publicationFormat/PublicationDateDAO.php
new file mode 100644
index 00000000000..e4b98683df7
--- /dev/null
+++ b/classes/publicationFormat/PublicationDateDAO.php
@@ -0,0 +1,173 @@
+retrieve(
+ 'SELECT p.*
+ FROM publication_dates p
+ JOIN publication_formats pf ON (p.publication_format_id = pf.publication_format_id)
+ WHERE p.publication_date_id = ?
+ ' . ($publicationId ? ' AND pf.publication_id = ?' : ''),
+ $params
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Retrieve all publication dates for an assigned publication format
+ *
+ * @param int $representationId
+ *
+ * @return DAOResultFactory containing matching publication dates
+ */
+ public function getByPublicationFormatId($representationId)
+ {
+ return new DAOResultFactory(
+ $this->retrieveRange(
+ 'SELECT * FROM publication_dates WHERE publication_format_id = ?',
+ [(int) $representationId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Construct a new data object corresponding to this DAO.
+ *
+ * @return PublicationDate
+ */
+ public function newDataObject()
+ {
+ return new PublicationDate();
+ }
+
+ /**
+ * Internal function to return a PublicationDate object from a row.
+ *
+ * @param array $row
+ * @param bool $callHooks
+ *
+ * @return PublicationDate
+ */
+ public function _fromRow($row, $callHooks = true)
+ {
+ $publicationDate = $this->newDataObject();
+ $publicationDate->setId($row['publication_date_id']);
+ $publicationDate->setRole($row['role']);
+ $publicationDate->setDateFormat($row['date_format']);
+ $publicationDate->setDate($row['date']);
+ $publicationDate->setPublicationFormatId($row['publication_format_id']);
+
+ if ($callHooks) {
+ Hook::call('PublicationDateDAO::_fromRow', [&$publicationDate, &$row]);
+ }
+
+ return $publicationDate;
+ }
+
+ /**
+ * Insert a new publication date.
+ *
+ * @param PublicationDate $publicationDate
+ */
+ public function insertObject($publicationDate)
+ {
+ $this->update(
+ 'INSERT INTO publication_dates
+ (publication_format_id, role, date_format, date)
+ VALUES
+ (?, ?, ?, ?)',
+ [
+ (int) $publicationDate->getPublicationFormatId(),
+ $publicationDate->getRole(),
+ $publicationDate->getDateFormat(),
+ $publicationDate->getDate()
+ ]
+ );
+
+ $publicationDate->setId($this->getInsertId());
+ return $publicationDate->getId();
+ }
+
+ /**
+ * Update an existing publication date.
+ *
+ * @param PublicationDate $publicationDate
+ */
+ public function updateObject($publicationDate)
+ {
+ $this->update(
+ 'UPDATE publication_dates
+ SET role = ?, date_format =?, date = ?
+ WHERE publication_date_id = ?',
+ [
+ $publicationDate->getRole(),
+ $publicationDate->getDateFormat(),
+ $publicationDate->getDate(),
+ (int) $publicationDate->getId()
+ ]
+ );
+ }
+
+ /**
+ * Delete a publication date.
+ *
+ * @param PublicationDate $publicationDate
+ */
+ public function deleteObject($publicationDate)
+ {
+ return $this->deleteById($publicationDate->getId());
+ }
+
+ /**
+ * delete a publication date by id.
+ *
+ * @param int $entryId
+ */
+ public function deleteById($entryId)
+ {
+ $this->update('DELETE FROM publication_dates WHERE publication_date_id = ?', [(int) $entryId]);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publicationFormat\PublicationDateDAO', '\PublicationDateDAO');
+}
diff --git a/classes/publicationFormat/PublicationFormat.inc.php b/classes/publicationFormat/PublicationFormat.inc.php
deleted file mode 100644
index 96ee16a1119..00000000000
--- a/classes/publicationFormat/PublicationFormat.inc.php
+++ /dev/null
@@ -1,525 +0,0 @@
-getData('urlPath')
- ? $this->getData('urlPath')
- : $this->getId();
- }
-
- /**
- * get physical format flag
- * @return bool
- */
- function getPhysicalFormat() {
- return $this->getData('physicalFormat');
- }
-
- /**
- * set physical format flag
- * @param $physicalFormat bool
- */
- function setPhysicalFormat($physicalFormat) {
- return $this->setData('physicalFormat', $physicalFormat);
- }
-
- /**
- * Get the ONIX code for this publication format
- * @return string
- */
- function getEntryKey() {
- return $this->getData('entryKey');
- }
-
- /**
- * Sets the ONIX code for the publication format
- * @param $code string
- */
- function setEntryKey($entryKey) {
- $this->setData('entryKey', $entryKey);
- }
-
- /**
- * Get the human readable name for this ONIX code
- * @return string
- */
- function getNameForONIXCode() {
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $codes = $onixCodelistItemDao->getCodes('List7'); // List7 is for object formats
- return $codes[$this->getEntryKey()];
- }
-
- /**
- * Get the country of manufacture code that this format was manufactured in.
- * @return string
- */
- function getCountryManufactureCode() {
- return $this->getData('countryManufactureCode');
- }
-
- /**
- * Set the country of manufacture code for a publication format.
- * @param $countryManufactureCode string
- */
- function setCountryManufactureCode($countryManufactureCode) {
- return $this->setData('countryManufactureCode', $countryManufactureCode);
- }
-
- /**
- * Get the product availability code (ONIX value) for this format (List65).
- * @return string
- */
- function getProductAvailabilityCode() {
- return $this->getData('productAvailabilityCode');
- }
-
- /**
- * Set the product availability code (ONIX value) for a publication format.
- * @param $productAvailabilityCode string
- */
- function setProductAvailabilityCode($productAvailabilityCode) {
- return $this->setData('productAvailabilityCode', $productAvailabilityCode);
- }
-
- /**
- * Get the height of the monograph format.
- * @return string
- */
- function getHeight() {
- return $this->getData('height');
- }
-
- /**
- * Set the height of a publication format.
- * @param $height string
- */
- function setHeight($height) {
- return $this->setData('height', $height);
- }
-
- /**
- * Get the height unit (ONIX value) of the monograph format (List50).
- * @return string
- */
- function getHeightUnitCode() {
- return $this->getData('heightUnitCode');
- }
-
- /**
- * Set the height unit (ONIX value) for a publication format.
- * @param $heightUnitCode string
- */
- function setHeightUnitCode($heightUnitCode) {
- return $this->setData('heightUnitCode', $heightUnitCode);
- }
-
- /**
- * Get the width of the monograph format.
- * @return string
- */
- function getWidth() {
- return $this->getData('width');
- }
-
- /**
- * Set the width of a publication format.
- * @param $width string
- */
- function setWidth($width) {
- return $this->setData('width', $width);
- }
-
- /**
- * Get the width unit code (ONIX value) of the monograph format (List50).
- * @return string
- */
- function getWidthUnitCode() {
- return $this->getData('widthUnitCode');
- }
-
- /**
- * Set the width unit code (ONIX value) for a publication format.
- * @param $widthUnitCode string
- */
- function setWidthUnitCode($widthUnitCode) {
- return $this->setData('widthUnitCode', $widthUnitCode);
- }
-
- /**
- * Get the thickness of the monograph format.
- * @return string
- */
- function getThickness() {
- return $this->getData('thickness');
- }
-
- /**
- * Set the thickness of a publication format.
- * @param $thickness string
- */
- function setThickness($thickness) {
- return $this->setData('thickness', $thickness);
- }
-
- /**
- * Get the thickness unit code (ONIX value) of the monograph format (List50).
- * @return string
- */
- function getThicknessUnitCode() {
- return $this->getData('thicknessUnitCode');
- }
-
- /**
- * Set the thickness unit code (ONIX value) for a publication format.
- * @param $thicknessUnitCode string
- */
- function setThicknessUnitCode($thicknessUnitCode) {
- return $this->setData('thicknessUnitCode', $thicknessUnitCode);
- }
-
- /**
- * Get the weight of the monograph format.
- * @return string
- */
- function getWeight() {
- return $this->getData('weight');
- }
-
- /**
- * Set the weight for a publication format.
- * @param $weight string
- */
- function setWeight($weight) {
- return $this->setData('weight', $weight);
- }
-
- /**
- * Get the weight unit code (ONIX value) of the monograph format (List95).
- * @return string
- */
- function getWeightUnitCode() {
- return $this->getData('weightUnitCode');
- }
-
- /**
- * Set the weight unit code (ONIX value) for a publication format.
- * @param $weightUnitCode string
- */
- function setWeightUnitCode($weightUnitCode) {
- return $this->setData('weightUnitCode', $weightUnitCode);
- }
-
- /**
- * Get the file size of the monograph format.
- * @return string
- */
- function getFileSize() {
- return $this->getData('fileSize');
- }
-
- /**
- * Get the file size of the monograph format based on calculated sizes
- * for approved proof files.
- * @return string
- */
- function getCalculatedFileSize() {
- $fileSize = 0;
- $publication = Services::get('publication')->get($this->getData('publicationId'));
- import('lib.pkp.classes.submission.SubmissionFile'); // File constants
- $stageMonographFiles = Services::get('submissionFile')->getMany([
- 'submissionIds' => [$publication->getData('submissionId')],
- 'fileStages' => [SUBMISSION_FILE_PROOF],
- 'assocTypes' => [ASSOC_TYPE_PUBLICATION_FORMAT],
- 'assocIds' => [$this->getId()],
- ]);
-
- foreach ($stageMonographFiles as $monographFile) {
- if ($monographFile->getViewable()) {
- $fileSize += (int) Services::get('file')->fs->getSize($monographFile->getData('path'));
- }
- }
-
- return sprintf('%d.3', $fileSize/(1024*1024)); // bytes to Mb
- }
-
- /**
- * Set the file size of the publication format.
- * @param $fileSize string
- */
- function setFileSize($fileSize) {
- return $this->setData('fileSize', $fileSize);
- }
-
- /**
- * Get the SalesRights objects for this format.
- * @return DAOResultFactory SalesRights
- */
- function getSalesRights() {
- $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /* @var $salesRightsDao SalesRightsDAO */
- return $salesRightsDao->getByPublicationFormatId($this->getId());
- }
-
- /**
- * Get the IdentificationCode objects for this format.
- * @return DAOResultFactory IdentificationCode
- */
- function getIdentificationCodes() {
- $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /* @var $identificationCodeDao IdentificationCodeDAO */
- return $identificationCodeDao->getByPublicationFormatId($this->getId());
- }
-
- /**
- * Get the PublicationDate objects for this format.
- * @return Array PublicationDate
- */
- function getPublicationDates() {
- $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /* @var $publicationDateDao PublicationDateDAO */
- return $publicationDateDao->getByPublicationFormatId($this->getId());
- }
-
- /**
- * Get the Market objects for this format.
- * @return DAOResultFactory Market
- */
- function getMarkets() {
- $marketDao = DAORegistry::getDAO('MarketDAO'); /* @var $marketDao MarketDAO */
- return $marketDao->getByPublicationFormatId($this->getId());
- }
-
- /**
- * Get the product form detail code (ONIX value) for the format used for this format (List151).
- * @return string
- */
- function getProductFormDetailCode() {
- return $this->getData('productFormDetailCode');
- }
-
- /**
- * Set the product form detail code (ONIX value) for a publication format.
- * @param $productFormDetailCode string
- */
- function setProductFormDetailCode($productFormDetailCode) {
- return $this->setData('productFormDetailCode', $productFormDetailCode);
- }
-
- /**
- * Get the product composition code (ONIX value) used for this format (List2).
- * @return string
- */
- function getProductCompositionCode() {
- return $this->getData('productCompositionCode');
- }
-
- /**
- * Set the product composition code (ONIX value) for a publication format.
- * @param $productCompositionCode string
- */
- function setProductCompositionCode($productCompositionCode) {
- return $this->setData('productCompositionCode', $productCompositionCode);
- }
-
- /**
- * Get the page count for the front matter section of a publication format.
- * @return string
- */
- function getFrontMatter() {
- return $this->getData('frontMatter');
- }
-
- /**
- * Set the front matter page count for a publication format.
- * @param $frontMatter string
- */
- function setFrontMatter($frontMatter) {
- return $this->setData('frontMatter', $frontMatter);
- }
-
- /**
- * Get the page count for the back matter section of a publication format.
- * @return string
- */
- function getBackMatter() {
- return $this->getData('backMatter');
- }
-
- /**
- * Set the back matter page count for a publication format.
- * @param $backMatter string
- */
- function setBackMatter($backMatter) {
- return $this->setData('backMatter', $backMatter);
- }
-
- /**
- * Get the imprint brand name for a publication format.
- * @return string
- */
- function getImprint() {
- return $this->getData('imprint');
- }
-
- /**
- * Set the imprint brand name for a publication format.
- * @param $imprint string
- */
- function setImprint($imprint) {
- return $this->setData('imprint', $imprint);
- }
-
- /**
- * Get the technical protection code for a digital publication format (List144).
- * @return string
- */
- function getTechnicalProtectionCode() {
- return $this->getData('technicalProtectionCode');
- }
-
- /**
- * Set the technical protection code for a publication format.
- * @param $technicalProtectionCode string
- */
- function setTechnicalProtectionCode($technicalProtectionCode) {
- return $this->setData('technicalProtectionCode', $technicalProtectionCode);
- }
-
- /**
- * Get the return code for a physical publication format (List66).
- * @return string
- */
- function getReturnableIndicatorCode() {
- return $this->getData('returnableIndicatorCode');
- }
-
- /**
- * Set the return code for a publication format.
- * @param $returnableIndicatorCode string
- */
- function setReturnableIndicatorCode($returnableIndicatorCode) {
- return $this->setData('returnableIndicatorCode', $returnableIndicatorCode);
- }
-
- /**
- * Get whether or not this format is available in the catalog.
- * @return int
- */
- function getIsAvailable() {
- return $this->getData('isAvailable');
- }
-
- /**
- * Set whether or not this format is available in the catalog.
- * @param $isAvailable int
- */
- function setIsAvailable($isAvailable) {
- return $this->setData('isAvailable', $isAvailable);
- }
-
- /**
- * Check to see if this publication format has everything it needs for valid ONIX export
- * Ideally, do this with a DOMDocument schema validation. We do it this way for now because
- * of a potential issue with libxml2: http://stackoverflow.com/questions/6284827
- *
- * @return String
- */
- function hasNeededONIXFields() {
- // ONIX requires one identification code and a market region with a defined price.
- $assignedIdentificationCodes = $this->getIdentificationCodes();
- $assignedMarkets = $this->getMarkets();
-
- $errors = array();
- if ($assignedMarkets->wasEmpty()) {
- $errors[] = 'monograph.publicationFormat.noMarketsAssigned';
- }
-
- if ($assignedIdentificationCodes->wasEmpty()) {
- $errors[] = 'monograph.publicationFormat.noCodesAssigned';
- }
-
- return array_merge($errors, $this->_checkRequiredFieldsAssigned());
- }
-
- /**
- * Internal function to provide some validation for the ONIX export by
- * checking the required ONIX fields associated with this format.
- * @return array
- */
- function _checkRequiredFieldsAssigned() {
- $requiredFields = array('productCompositionCode' => 'grid.catalogEntry.codeRequired', 'productAvailabilityCode' => 'grid.catalogEntry.productAvailabilityRequired');
-
- $errors = array();
-
- foreach ($requiredFields as $field => $errorCode) {
- if ($this->getData($field) == '') {
- $errors[] = $errorCode;
- }
- }
-
- if (!$this->getPhysicalFormat()) {
- if (!$this->getFileSize() && !$this->getCalculatedFileSize()) {
- $errors['fileSize'] = 'grid.catalogEntry.fileSizeRequired';
- }
- }
-
- return $errors;
- }
-
- /**
- * Get the press id from the monograph assigned to this publication format.
- * @return int
- */
- function getPressId() {
- return $this->getContextId();
- }
-
- /**
- * Return the format's physical dimensions
- * @return string
- */
- function getDimensions() {
-
- if (!$this->getPhysicalFormat()) {
- return '';
- }
-
- $width = $this->getWidth();
- $height = $this->getHeight();
- $thickness = $this->getThickness();
-
- $dimensions = array();
- if (!empty($width)) { $dimensions[] = $width . $this->getWidthUnitCode(); }
- if (!empty($height)) { $dimensions[] = $height . $this->getHeightUnitCode(); }
- if (!empty($thickness)) { $dimensions[] = $thickness . $this->getThicknessUnitCode(); }
-
- return join( __('monograph.publicationFormat.productDimensionsSeparator'), $dimensions );
- }
-}
-
-
diff --git a/classes/publicationFormat/PublicationFormat.php b/classes/publicationFormat/PublicationFormat.php
new file mode 100644
index 00000000000..fb7cffdf292
--- /dev/null
+++ b/classes/publicationFormat/PublicationFormat.php
@@ -0,0 +1,668 @@
+getData('urlPath')) ? $urlPath : $this->getId();
+ }
+
+ /**
+ * get physical format flag
+ *
+ * @return bool
+ */
+ public function getPhysicalFormat()
+ {
+ return $this->getData('physicalFormat');
+ }
+
+ /**
+ * set physical format flag
+ *
+ * @param bool $physicalFormat
+ */
+ public function setPhysicalFormat($physicalFormat)
+ {
+ return $this->setData('physicalFormat', $physicalFormat);
+ }
+
+ /**
+ * Get the ONIX code for this publication format
+ *
+ * @return string
+ */
+ public function getEntryKey()
+ {
+ return $this->getData('entryKey');
+ }
+
+ /**
+ * Sets the ONIX code for the publication format
+ */
+ public function setEntryKey($entryKey)
+ {
+ $this->setData('entryKey', $entryKey);
+ }
+
+ /**
+ * Get the human readable name for this ONIX code
+ *
+ * @return string
+ */
+ public function getNameForONIXCode()
+ {
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $codes = $onixCodelistItemDao->getCodes('List7'); // List7 is for object formats
+ return $codes[$this->getEntryKey()];
+ }
+
+ /**
+ * Get the country of manufacture code that this format was manufactured in.
+ *
+ * @return string
+ */
+ public function getCountryManufactureCode()
+ {
+ return $this->getData('countryManufactureCode');
+ }
+
+ /**
+ * Set the country of manufacture code for a publication format.
+ *
+ * @param string $countryManufactureCode
+ */
+ public function setCountryManufactureCode($countryManufactureCode)
+ {
+ return $this->setData('countryManufactureCode', $countryManufactureCode);
+ }
+
+ /**
+ * Get the product availability code (ONIX value) for this format (List65).
+ *
+ * @return string
+ */
+ public function getProductAvailabilityCode()
+ {
+ return $this->getData('productAvailabilityCode');
+ }
+
+ /**
+ * Set the product availability code (ONIX value) for a publication format.
+ *
+ * @param string $productAvailabilityCode
+ */
+ public function setProductAvailabilityCode($productAvailabilityCode)
+ {
+ return $this->setData('productAvailabilityCode', $productAvailabilityCode);
+ }
+
+ /**
+ * Get the height of the monograph format.
+ *
+ * @return string
+ */
+ public function getHeight()
+ {
+ return $this->getData('height');
+ }
+
+ /**
+ * Set the height of a publication format.
+ *
+ * @param string $height
+ */
+ public function setHeight($height)
+ {
+ return $this->setData('height', $height);
+ }
+
+ /**
+ * Get the height unit (ONIX value) of the monograph format (List50).
+ *
+ * @return string
+ */
+ public function getHeightUnitCode()
+ {
+ return $this->getData('heightUnitCode');
+ }
+
+ /**
+ * Set the height unit (ONIX value) for a publication format.
+ *
+ * @param string $heightUnitCode
+ */
+ public function setHeightUnitCode($heightUnitCode)
+ {
+ return $this->setData('heightUnitCode', $heightUnitCode);
+ }
+
+ /**
+ * Get the width of the monograph format.
+ *
+ * @return string
+ */
+ public function getWidth()
+ {
+ return $this->getData('width');
+ }
+
+ /**
+ * Set the width of a publication format.
+ *
+ * @param string $width
+ */
+ public function setWidth($width)
+ {
+ return $this->setData('width', $width);
+ }
+
+ /**
+ * Get the width unit code (ONIX value) of the monograph format (List50).
+ *
+ * @return string
+ */
+ public function getWidthUnitCode()
+ {
+ return $this->getData('widthUnitCode');
+ }
+
+ /**
+ * Set the width unit code (ONIX value) for a publication format.
+ *
+ * @param string $widthUnitCode
+ */
+ public function setWidthUnitCode($widthUnitCode)
+ {
+ return $this->setData('widthUnitCode', $widthUnitCode);
+ }
+
+ /**
+ * Get the thickness of the monograph format.
+ *
+ * @return string
+ */
+ public function getThickness()
+ {
+ return $this->getData('thickness');
+ }
+
+ /**
+ * Set the thickness of a publication format.
+ *
+ * @param string $thickness
+ */
+ public function setThickness($thickness)
+ {
+ return $this->setData('thickness', $thickness);
+ }
+
+ /**
+ * Get the thickness unit code (ONIX value) of the monograph format (List50).
+ *
+ * @return string
+ */
+ public function getThicknessUnitCode()
+ {
+ return $this->getData('thicknessUnitCode');
+ }
+
+ /**
+ * Set the thickness unit code (ONIX value) for a publication format.
+ *
+ * @param string $thicknessUnitCode
+ */
+ public function setThicknessUnitCode($thicknessUnitCode)
+ {
+ return $this->setData('thicknessUnitCode', $thicknessUnitCode);
+ }
+
+ /**
+ * Get the weight of the monograph format.
+ *
+ * @return string
+ */
+ public function getWeight()
+ {
+ return $this->getData('weight');
+ }
+
+ /**
+ * Set the weight for a publication format.
+ *
+ * @param string $weight
+ */
+ public function setWeight($weight)
+ {
+ return $this->setData('weight', $weight);
+ }
+
+ /**
+ * Get the weight unit code (ONIX value) of the monograph format (List95).
+ *
+ * @return string
+ */
+ public function getWeightUnitCode()
+ {
+ return $this->getData('weightUnitCode');
+ }
+
+ /**
+ * Set the weight unit code (ONIX value) for a publication format.
+ *
+ * @param string $weightUnitCode
+ */
+ public function setWeightUnitCode($weightUnitCode)
+ {
+ return $this->setData('weightUnitCode', $weightUnitCode);
+ }
+
+ /**
+ * Get the file size of the monograph format.
+ *
+ * @return string
+ */
+ public function getFileSize()
+ {
+ return $this->getData('fileSize');
+ }
+
+ /**
+ * Get the file size of the monograph format based on calculated sizes
+ * for approved proof files.
+ *
+ * @return string
+ */
+ public function getCalculatedFileSize()
+ {
+ $fileSize = 0;
+ $publication = Repo::publication()->get((int) $this->getData('publicationId'));
+ $stageMonographFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$publication->getData('submissionId')])
+ ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_PROOF])
+ ->filterByAssoc(
+ Application::ASSOC_TYPE_PUBLICATION_FORMAT,
+ [$this->getId()]
+ )
+ ->getMany();
+
+ foreach ($stageMonographFiles as $monographFile) {
+ if ($monographFile->getViewable()) {
+ $fileSize += (int) Services::get('file')->fs->fileSize($monographFile->getData('path'));
+ }
+ }
+
+ return sprintf('%d.3', $fileSize / (1024 * 1024)); // bytes to Mb
+ }
+
+ /**
+ * Set the file size of the publication format.
+ *
+ * @param string $fileSize
+ */
+ public function setFileSize($fileSize)
+ {
+ return $this->setData('fileSize', $fileSize);
+ }
+
+ /**
+ * Get the SalesRights objects for this format.
+ *
+ * @return DAOResultFactory SalesRights
+ */
+ public function getSalesRights()
+ {
+ $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /** @var SalesRightsDAO $salesRightsDao */
+ return $salesRightsDao->getByPublicationFormatId($this->getId());
+ }
+
+ /**
+ * Get the IdentificationCode objects for this format.
+ *
+ * @return DAOResultFactory IdentificationCode
+ */
+ public function getIdentificationCodes()
+ {
+ $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /** @var IdentificationCodeDAO $identificationCodeDao */
+ return $identificationCodeDao->getByPublicationFormatId($this->getId());
+ }
+
+ /**
+ * Get the PublicationDate objects for this format.
+ *
+ * @return DAOResultFactory PublicationDate
+ */
+ public function getPublicationDates()
+ {
+ $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /** @var PublicationDateDAO $publicationDateDao */
+ return $publicationDateDao->getByPublicationFormatId($this->getId());
+ }
+
+ /**
+ * Get the Market objects for this format.
+ *
+ * @return DAOResultFactory Market
+ */
+ public function getMarkets()
+ {
+ $marketDao = DAORegistry::getDAO('MarketDAO'); /** @var MarketDAO $marketDao */
+ return $marketDao->getByPublicationFormatId($this->getId());
+ }
+
+ /**
+ * Get the product form detail code (ONIX value) for the format used for this format (List151).
+ *
+ * @return string
+ */
+ public function getProductFormDetailCode()
+ {
+ return $this->getData('productFormDetailCode');
+ }
+
+ /**
+ * Set the product form detail code (ONIX value) for a publication format.
+ *
+ * @param string $productFormDetailCode
+ */
+ public function setProductFormDetailCode($productFormDetailCode)
+ {
+ return $this->setData('productFormDetailCode', $productFormDetailCode);
+ }
+
+ /**
+ * Get the product composition code (ONIX value) used for this format (List2).
+ *
+ * @return string
+ */
+ public function getProductCompositionCode()
+ {
+ return $this->getData('productCompositionCode');
+ }
+
+ /**
+ * Set the product composition code (ONIX value) for a publication format.
+ *
+ * @param string $productCompositionCode
+ */
+ public function setProductCompositionCode($productCompositionCode)
+ {
+ return $this->setData('productCompositionCode', $productCompositionCode);
+ }
+
+ /**
+ * Get the page count for the front matter section of a publication format.
+ *
+ * @return string
+ */
+ public function getFrontMatter()
+ {
+ return $this->getData('frontMatter');
+ }
+
+ /**
+ * Set the front matter page count for a publication format.
+ *
+ * @param string $frontMatter
+ */
+ public function setFrontMatter($frontMatter)
+ {
+ return $this->setData('frontMatter', $frontMatter);
+ }
+
+ /**
+ * Get the page count for the back matter section of a publication format.
+ *
+ * @return string
+ */
+ public function getBackMatter()
+ {
+ return $this->getData('backMatter');
+ }
+
+ /**
+ * Set the back matter page count for a publication format.
+ *
+ * @param string $backMatter
+ */
+ public function setBackMatter($backMatter)
+ {
+ return $this->setData('backMatter', $backMatter);
+ }
+
+ /**
+ * Get the imprint brand name for a publication format.
+ *
+ * @return string
+ */
+ public function getImprint()
+ {
+ return $this->getData('imprint');
+ }
+
+ /**
+ * Set the imprint brand name for a publication format.
+ *
+ * @param string $imprint
+ */
+ public function setImprint($imprint)
+ {
+ return $this->setData('imprint', $imprint);
+ }
+
+ /**
+ * Get the technical protection code for a digital publication format (List144).
+ *
+ * @return string
+ */
+ public function getTechnicalProtectionCode()
+ {
+ return $this->getData('technicalProtectionCode');
+ }
+
+ /**
+ * Set the technical protection code for a publication format.
+ *
+ * @param string $technicalProtectionCode
+ */
+ public function setTechnicalProtectionCode($technicalProtectionCode)
+ {
+ return $this->setData('technicalProtectionCode', $technicalProtectionCode);
+ }
+
+ /**
+ * Get the return code for a physical publication format (List66).
+ *
+ * @return string
+ */
+ public function getReturnableIndicatorCode()
+ {
+ return $this->getData('returnableIndicatorCode');
+ }
+
+ /**
+ * Set the return code for a publication format.
+ *
+ * @param string $returnableIndicatorCode
+ */
+ public function setReturnableIndicatorCode($returnableIndicatorCode)
+ {
+ return $this->setData('returnableIndicatorCode', $returnableIndicatorCode);
+ }
+
+ /**
+ * Get whether or not this format is available in the catalog.
+ *
+ * @return int
+ */
+ public function getIsAvailable()
+ {
+ return $this->getData('isAvailable');
+ }
+
+ /**
+ * Set whether or not this format is available in the catalog.
+ *
+ * @param int $isAvailable
+ */
+ public function setIsAvailable($isAvailable)
+ {
+ return $this->setData('isAvailable', $isAvailable);
+ }
+
+ /**
+ * Check to see if this publication format has everything it needs for valid ONIX export
+ * Ideally, do this with a DOMDocument schema validation. We do it this way for now because
+ * of a potential issue with libxml2: http://stackoverflow.com/questions/6284827
+ *
+ * @return string[]
+ */
+ public function hasNeededONIXFields()
+ {
+ // ONIX requires one identification code and a market region with a defined price.
+ $assignedIdentificationCodes = $this->getIdentificationCodes();
+ $assignedMarkets = $this->getMarkets();
+
+ $errors = [];
+ if ($assignedMarkets->wasEmpty()) {
+ $errors[] = 'monograph.publicationFormat.noMarketsAssigned';
+ }
+
+ if ($assignedIdentificationCodes->wasEmpty()) {
+ $errors[] = 'monograph.publicationFormat.noCodesAssigned';
+ }
+
+ return array_merge($errors, $this->_checkRequiredFieldsAssigned());
+ }
+
+ /**
+ * Internal function to provide some validation for the ONIX export by
+ * checking the required ONIX fields associated with this format.
+ *
+ * @return array
+ */
+ public function _checkRequiredFieldsAssigned()
+ {
+ $requiredFields = ['productCompositionCode' => 'grid.catalogEntry.codeRequired', 'productAvailabilityCode' => 'grid.catalogEntry.productAvailabilityRequired'];
+
+ $errors = [];
+
+ foreach ($requiredFields as $field => $errorCode) {
+ if ($this->getData($field) == '') {
+ $errors[] = $errorCode;
+ }
+ }
+
+ if (!$this->getPhysicalFormat()) {
+ if (!$this->getFileSize() && !$this->getCalculatedFileSize()) {
+ $errors['fileSize'] = 'grid.catalogEntry.fileSizeRequired';
+ }
+ }
+
+ return $errors;
+ }
+
+ /**
+ * Get the press id from the monograph assigned to this publication format.
+ *
+ * @return int
+ */
+ public function getPressId()
+ {
+ return $this->getContextId();
+ }
+
+ /**
+ * Return the format's physical dimensions
+ *
+ * @return string
+ */
+ public function getDimensions()
+ {
+ if (!$this->getPhysicalFormat()) {
+ return '';
+ }
+
+ $width = $this->getWidth();
+ $height = $this->getHeight();
+ $thickness = $this->getThickness();
+
+ $dimensions = [];
+ if (!empty($width)) {
+ $dimensions[] = $width . $this->getWidthUnitCode();
+ }
+ if (!empty($height)) {
+ $dimensions[] = $height . $this->getHeightUnitCode();
+ }
+ if (!empty($thickness)) {
+ $dimensions[] = $thickness . $this->getThicknessUnitCode();
+ }
+
+ return join(__('monograph.publicationFormat.productDimensionsSeparator'), $dimensions);
+ }
+
+ /**
+ * Set the stored public ID of the submission.
+ *
+ * @param string $pubIdType One of the NLM pub-id-type values or
+ * 'other::something' if not part of the official NLM list
+ * (see ).
+ * @param string $pubId
+ */
+ public function setStoredPubId($pubIdType, $pubId)
+ {
+ if ($pubIdType == 'doi') {
+ if ($doiObject = $this->getData('doiObject')) {
+ Repo::doi()->edit($doiObject, ['doi' => $pubId]);
+ } else {
+ $newDoiObject = Repo::doi()->newDataObject(
+ [
+ 'doi' => $pubId,
+ 'contextId' => $this->getContextId()
+ ]
+ );
+ $doiId = Repo::doi()->add($newDoiObject);
+ $this->setData('doiId', $doiId);
+ }
+ } else {
+ parent::setStoredPubId($pubIdType, $pubId);
+ }
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publicationFormat\PublicationFormat', '\PublicationFormat');
+}
diff --git a/classes/publicationFormat/PublicationFormatDAO.inc.php b/classes/publicationFormat/PublicationFormatDAO.inc.php
deleted file mode 100644
index d56b2334575..00000000000
--- a/classes/publicationFormat/PublicationFormatDAO.inc.php
+++ /dev/null
@@ -1,475 +0,0 @@
-retrieve(
- 'SELECT pf.*
- FROM publication_formats pf
- ' . ($contextId?'
- JOIN publications p ON (p.publication_id = pf.publicationId)
- JOIN submissions s ON (s.submission_id=p.submission_id)':'') . '
- WHERE pf.publication_format_id=?' .
- ($publicationId?' AND pf.publication_id = ?':'') .
- ($contextId?' AND s.context_id = ?':''),
- $params
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Find publication format by querying publication format settings.
- * @param $settingName string
- * @param $settingValue mixed
- * @param $publicationId int optional
- * @param $pressId int optional
- * @return array The publication formats identified by setting.
- */
- function getBySetting($settingName, $settingValue, $publicationId = null, $pressId = null) {
- $params = [$settingName];
-
- $sql = 'SELECT pf.*
- FROM publication_formats pf ';
- if ($pressId) {
- $sql .= 'INNER JOIN publications p ON p.publication_id = pf.publication_id
- INNER JOIN submissions s ON s.submission_id = p.submission_id ';
- }
- if (is_null($settingValue)) {
- $sql .= 'LEFT JOIN publication_format_settings pfs ON pf.publication_format_id = pfs.publication_format_id AND pfs.setting_name = ?
- WHERE (pfs.setting_value IS NULL OR pfs.setting_value = \'\')';
- } else {
- $params[] = (string) $settingValue;
- $sql .= 'INNER JOIN publication_format_settings pfs ON pf.publication_format_id = pfs.publication_format_id
- WHERE pfs.setting_name = ? AND pfs.setting_value = ?';
- }
-
- if ($publicationId) {
- $params[] = (int) $publicationId;
- $sql .= ' AND pf.publication_id = ?';
- }
-
- if ($pressId) {
- $params[] = (int) $pressId;
- $sql .= ' AND s.context_id = ?';
- }
-
- $orderByContextId = $pressId ? 's.context_id, ' : '';
- $sql .= ' ORDER BY ' . $orderByContextId . 'pf.seq, pf.publication_format_id';
- $result = $this->retrieve($sql, $params);
-
- $publicationFormats = [];
- foreach ($result as $row) {
- $publicationFormats[] = $this->_fromRow((array) $row);
- }
- return $publicationFormats;
- }
-
- /**
- * Retrieve publication format by public ID
- * @param $pubIdType string One of the NLM pub-id-type values or
- * 'other::something' if not part of the official NLM list
- * (see ).
- * @param $pubId string
- * @param $publicationId int optional
- * @param $pressId int optional
- * @return PublicationFormat|null
- */
- function getByPubId($pubIdType, $pubId, $publicationId = null, $pressId = null) {
- if (empty($pubId)) return null;
- $publicationFormats = $this->getBySetting('pub-id::'.$pubIdType, $pubId, $publicationId, $pressId);
- return array_shift($publicationFormats);
- }
-
- /**
- * Retrieve publication format by public ID or, failing that,
- * internal ID; public ID takes precedence.
- * @param $representationId string
- * @param $publicationId int
- * @return PublicationFormat|null
- */
- function getByBestId($representationId, $publicationId) {
- $result = $this->retrieve(
- 'SELECT pf.*
- FROM publication_formats pf
- WHERE pf.url_path = ?
- AND pf.publication_id = ?',
- [
- $representationId,
- $publicationId,
- ]
- );
- if ($row = $result->current()) {
- return $this->_fromRow((array) $row);
- } elseif (is_int($representationId) || ctype_digit($representationId)) {
- return $this->getById($representationId);
- }
- return null;
- }
-
- /**
- * @copydoc RepresentationDAO::getByPublicationId()
- */
- function getByPublicationId($publicationId, $contextId = null) {
- $params = [(int) $publicationId];
- if ($contextId) $params[] = (int) $contextId;
-
- return new DAOResultFactory(
- $this->retrieve(
- 'SELECT pf.*
- FROM publication_formats pf ' .
- ($contextId ?
- 'INNER JOIN publications p ON (pf.publication_id=p.publication_id)
- INNER JOIN submissions s ON (s.submission_id = p.submission_id) '
- : '') .
- 'WHERE pf.publication_id=? '
- . ($contextId?' AND s.context_id = ? ':'')
- . 'ORDER BY pf.seq',
- $params
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Retrieves a list of publication formats for a press
- * @param int pressId
- * @return DAOResultFactory (PublicationFormat)
- */
- function getByContextId($pressId) {
- return new DAOResultFactory(
- $this->retrieve(
- 'SELECT pf.*
- FROM publication_formats pf
- JOIN publications p ON (p.publication_id = pf.publication_id)
- JOIN submissions s ON (s.submission_id = p.submission_id)
- WHERE s.context_id = ?
- ORDER BY pf.seq',
- [(int) $pressId]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Retrieves a list of approved publication formats for a publication
- * @param int $publicationId
- * @return DAOResultFactory (PublicationFormat)
- */
- function getApprovedByPublicationId($publicationId) {
- return new DAOResultFactory(
- $this->retrieve(
- 'SELECT *
- FROM publication_formats
- WHERE publication_id = ? AND is_approved=1
- ORDER BY seq',
- [(int) $publicationId]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Delete an publication format by ID.
- * @param $representationId int
- */
- function deleteById($representationId) {
- $this->update('DELETE FROM publication_format_settings WHERE publication_format_id = ?', [(int) $representationId]);
- $this->update('DELETE FROM publication_formats WHERE publication_format_id = ?', [(int) $representationId]);
- }
-
- /**
- * Update the settings for this object
- * @param $publicationFormat object
- */
- function updateLocaleFields($publicationFormat) {
- $this->updateDataObjectSettings(
- 'publication_format_settings',
- $publicationFormat,
- ['publication_format_id' => $publicationFormat->getId()]
- );
- }
-
- /**
- * Construct a new data object corresponding to this DAO.
- * @return PublicationFormat
- */
- function newDataObject() {
- return new PublicationFormat();
- }
-
- /**
- * Internal function to return an PublicationFormat object from a row.
- * @param $row array
- * @param $callHooks boolean
- * @return PublicationFormat
- */
- function _fromRow($row, $params = array(), $callHooks = true) {
- $publicationFormat = $this->newDataObject();
-
- // Add the additional Publication Format data
- $publicationFormat->setIsApproved($row['is_approved']);
- $publicationFormat->setEntryKey($row['entry_key']);
- $publicationFormat->setPhysicalFormat($row['physical_format']);
- $publicationFormat->setSequence((int) $row['seq']);
- $publicationFormat->setId((int) $row['publication_format_id']);
- $publicationFormat->setData('publicationId', (int) $row['publication_id']);
- $publicationFormat->setFileSize($row['file_size']);
- $publicationFormat->setFrontMatter($row['front_matter']);
- $publicationFormat->setBackMatter($row['back_matter']);
- $publicationFormat->setHeight($row['height']);
- $publicationFormat->setHeightUnitCode($row['height_unit_code']);
- $publicationFormat->setWidth($row['width']);
- $publicationFormat->setWidthUnitCode($row['width_unit_code']);
- $publicationFormat->setThickness($row['thickness']);
- $publicationFormat->setThicknessUnitCode($row['thickness_unit_code']);
- $publicationFormat->setWeight($row['weight']);
- $publicationFormat->setWeightUnitCode($row['weight_unit_code']);
- $publicationFormat->setProductCompositionCode($row['product_composition_code']);
- $publicationFormat->setProductFormDetailCode($row['product_form_detail_code']);
- $publicationFormat->setCountryManufactureCode($row['country_manufacture_code']);
- $publicationFormat->setImprint($row['imprint']);
- $publicationFormat->setProductAvailabilityCode($row['product_availability_code']);
- $publicationFormat->setTechnicalProtectionCode($row['technical_protection_code']);
- $publicationFormat->setReturnableIndicatorCode($row['returnable_indicator_code']);
- $publicationFormat->setRemoteURL($row['remote_url']);
- $publicationFormat->setData('urlPath', $row['url_path']);
- $publicationFormat->setIsAvailable($row['is_available']);
-
- $this->getDataObjectSettings(
- 'publication_format_settings',
- 'publication_format_id',
- $row['publication_format_id'],
- $publicationFormat
- );
-
- if ($callHooks) HookRegistry::call('PublicationFormatDAO::_fromRow', [&$publicationFormat, &$row]);
-
- return $publicationFormat;
- }
-
- /**
- * Insert a publication format.
- * @param $publicationFormat PublicationFormat
- * @return int the publication format id.
- */
- function insertObject($publicationFormat) {
- $this->update(
- 'INSERT INTO publication_formats
- (is_approved, entry_key, physical_format, publication_id, seq, file_size, front_matter, back_matter, height, height_unit_code, width, width_unit_code, thickness, thickness_unit_code, weight, weight_unit_code, product_composition_code, product_form_detail_code, country_manufacture_code, imprint, product_availability_code, technical_protection_code, returnable_indicator_code, remote_url, url_path, is_available)
- VALUES
- (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
- [
- (int) $publicationFormat->getIsApproved(),
- $publicationFormat->getEntryKey(),
- (int) $publicationFormat->getPhysicalFormat(),
- (int) $publicationFormat->getData('publicationId'),
- (int) $publicationFormat->getSequence(),
- $publicationFormat->getFileSize(),
- $publicationFormat->getFrontMatter(),
- $publicationFormat->getBackMatter(),
- $publicationFormat->getHeight(),
- $publicationFormat->getHeightUnitCode(),
- $publicationFormat->getWidth(),
- $publicationFormat->getWidthUnitCode(),
- $publicationFormat->getThickness(),
- $publicationFormat->getThicknessUnitCode(),
- $publicationFormat->getWeight(),
- $publicationFormat->getWeightUnitCode(),
- $publicationFormat->getProductCompositionCode(),
- $publicationFormat->getProductFormDetailCode(),
- $publicationFormat->getCountryManufactureCode(),
- $publicationFormat->getImprint(),
- $publicationFormat->getProductAvailabilityCode(),
- $publicationFormat->getTechnicalProtectionCode(),
- $publicationFormat->getReturnableIndicatorCode(),
- $publicationFormat->getRemoteURL(),
- $publicationFormat->getData('urlPath'),
- (int) $publicationFormat->getIsAvailable(),
- ]
- );
-
- $publicationFormat->setId($this->_getInsertId('publication_formats', 'publication_format_id'));
- $this->updateLocaleFields($publicationFormat);
-
- return $publicationFormat->getId();
- }
-
- /**
- * Update an existing publication format.
- * @param $publicationFormat PublicationFormat
- */
- function updateObject($publicationFormat) {
- $this->update(
- 'UPDATE publication_formats
- SET is_approved = ?,
- entry_key = ?,
- physical_format = ?,
- seq = ?,
- file_size = ?,
- front_matter = ?,
- back_matter = ?,
- height = ?,
- height_unit_code = ?,
- width = ?,
- width_unit_code = ?,
- thickness = ?,
- thickness_unit_code = ?,
- weight = ?,
- weight_unit_code = ?,
- product_composition_code = ?,
- product_form_detail_code = ?,
- country_manufacture_code = ?,
- imprint = ?,
- product_availability_code = ?,
- technical_protection_code = ?,
- returnable_indicator_code = ?,
- remote_url = ?,
- url_path = ?,
- is_available = ?
- WHERE publication_format_id = ?',
- [
- (int) $publicationFormat->getIsApproved(),
- $publicationFormat->getEntryKey(),
- (int) $publicationFormat->getPhysicalFormat(),
- (int) $publicationFormat->getSequence(),
- $publicationFormat->getFileSize(),
- $publicationFormat->getFrontMatter(),
- $publicationFormat->getBackMatter(),
- $publicationFormat->getHeight(),
- $publicationFormat->getHeightUnitCode(),
- $publicationFormat->getWidth(),
- $publicationFormat->getWidthUnitCode(),
- $publicationFormat->getThickness(),
- $publicationFormat->getThicknessUnitCode(),
- $publicationFormat->getWeight(),
- $publicationFormat->getWeightUnitCode(),
- $publicationFormat->getProductCompositionCode(),
- $publicationFormat->getProductFormDetailCode(),
- $publicationFormat->getCountryManufactureCode(),
- $publicationFormat->getImprint(),
- $publicationFormat->getProductAvailabilityCode(),
- $publicationFormat->getTechnicalProtectionCode(),
- $publicationFormat->getReturnableIndicatorCode(),
- $publicationFormat->getRemoteURL(),
- $publicationFormat->getData('urlPath'),
- (int) $publicationFormat->getIsAvailable(),
- (int) $publicationFormat->getId()
- ]
- );
-
- $this->updateLocaleFields($publicationFormat);
- }
-
- /**
- * Get a list of fields for which we store localized data
- * @return array
- */
- function getLocaleFieldNames() {
- return ['name'];
- }
-
- /**
- * @see DAO::getAdditionalFieldNames()
- */
- function getAdditionalFieldNames() {
- $additionalFields = parent::getAdditionalFieldNames();
- $additionalFields[] = 'pub-id::publisher-id';
- return $additionalFields;
- }
-
- /**
- * @copydoc PKPPubIdPluginDAO::pubIdExists()
- */
- function pubIdExists($pubIdType, $pubId, $excludePubObjectId, $contextId) {
- $result = $this->retrieve(
- 'SELECT COUNT(*) AS row_count
- FROM publication_format_settings pft
- INNER JOIN publication_formats pf ON pft.publication_format_id = pf.publication_format_id
- INNER JOIN publications p ON p.publication_id = pf.publication_id
- INNER JOIN submissions s ON p.submission_id = s.submission_id
- WHERE pft.setting_name = ?
- AND pft.setting_value = ?
- AND pf.publication_format_id <> ?
- AND s.context_id = ?',
- [
- 'pub-id::' . $pubIdType,
- $pubId,
- (int) $excludePubObjectId,
- (int) $contextId
- ]
- );
- $row = $result->current();
- return $row && $row->row_count;
- }
-
- /**
- * @copydoc PKPPubIdPluginDAO::changePubId()
- */
- function changePubId($pubObjectId, $pubIdType, $pubId) {
- $this->replace(
- 'publication_format_settings',
- [
- 'publication_format_id' => (int) $pubObjectId,
- 'locale' => '',
- 'setting_name' => 'pub-id::'.$pubIdType,
- 'setting_type' => 'string',
- 'setting_value' => (string)$pubId
- ],
- ['publication_format_id', 'locale', 'setting_name']
- );
- }
-
- /**
- * @copydoc PKPPubIdPluginDAO::deletePubId()
- */
- function deletePubId($pubObjectId, $pubIdType) {
- $this->update(
- 'DELETE FROM publication_format_settings WHERE setting_name = ? AND publication_format_id = ?',
- ['pub-id::' . $pubIdType, (int)$pubObjectId]
- );
- $this->flushCache();
- }
-
- /**
- * @copydoc PKPPubIdPluginDAO::deleteAllPubIds()
- */
- function deleteAllPubIds($contextId, $pubIdType) {
- $formats = $this->getByContextId($contextId);
- while ($format = $formats->next()) {
- $this->update(
- 'DELETE FROM publication_format_settings WHERE setting_name = ? AND publication_format_id = ?',
- ['pub-id::' . $pubIdType, (int)$format->getId()]
- );
- }
- $this->flushCache();
- }
-}
-
-
diff --git a/classes/publicationFormat/PublicationFormatDAO.php b/classes/publicationFormat/PublicationFormatDAO.php
new file mode 100644
index 00000000000..8aca9988517
--- /dev/null
+++ b/classes/publicationFormat/PublicationFormatDAO.php
@@ -0,0 +1,563 @@
+retrieve(
+ 'SELECT pf.*
+ FROM publication_formats pf
+ ' . ($contextId ? '
+ JOIN publications p ON (p.publication_id = pf.publicationId)
+ JOIN submissions s ON (s.submission_id=p.submission_id)' : '') . '
+ WHERE pf.publication_format_id=?' .
+ ($publicationId ? ' AND pf.publication_id = ?' : '') .
+ ($contextId ? ' AND s.context_id = ?' : ''),
+ $params
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Find publication format by querying publication format settings.
+ *
+ * @param string $settingName
+ * @param int $publicationId optional
+ * @param int $pressId optional
+ *
+ * @return array The publication formats identified by setting.
+ */
+ public function getBySetting($settingName, $settingValue, $publicationId = null, $pressId = null)
+ {
+ $params = [$settingName];
+
+ $sql = 'SELECT pf.*
+ FROM publication_formats pf ';
+ if ($pressId) {
+ $sql .= 'INNER JOIN publications p ON p.publication_id = pf.publication_id
+ INNER JOIN submissions s ON s.submission_id = p.submission_id ';
+ }
+ if (is_null($settingValue)) {
+ $sql .= 'LEFT JOIN publication_format_settings pfs ON pf.publication_format_id = pfs.publication_format_id AND pfs.setting_name = ?
+ WHERE (pfs.setting_value IS NULL OR pfs.setting_value = \'\')';
+ } else {
+ $params[] = (string) $settingValue;
+ $sql .= 'INNER JOIN publication_format_settings pfs ON pf.publication_format_id = pfs.publication_format_id
+ WHERE pfs.setting_name = ? AND pfs.setting_value = ?';
+ }
+
+ if ($publicationId) {
+ $params[] = (int) $publicationId;
+ $sql .= ' AND pf.publication_id = ?';
+ }
+
+ if ($pressId) {
+ $params[] = (int) $pressId;
+ $sql .= ' AND s.context_id = ?';
+ }
+
+ $orderByContextId = $pressId ? 's.context_id, ' : '';
+ $sql .= ' ORDER BY ' . $orderByContextId . 'pf.seq, pf.publication_format_id';
+ $result = $this->retrieve($sql, $params);
+
+ $publicationFormats = [];
+ foreach ($result as $row) {
+ $publicationFormats[] = $this->_fromRow((array) $row);
+ }
+ return $publicationFormats;
+ }
+
+ /**
+ * Retrieve publication format by public ID
+ *
+ * @param string $pubIdType One of the NLM pub-id-type values or
+ * 'other::something' if not part of the official NLM list
+ * (see ).
+ * @param string $pubId
+ * @param int $publicationId optional
+ * @param int $pressId optional
+ *
+ * @return PublicationFormat|null
+ */
+ public function getByPubId($pubIdType, $pubId, $publicationId = null, $pressId = null)
+ {
+ if (empty($pubId)) {
+ return null;
+ }
+ $publicationFormats = $this->getBySetting('pub-id::' . $pubIdType, $pubId, $publicationId, $pressId);
+ return array_shift($publicationFormats);
+ }
+
+ /**
+ * Retrieve all publication formats that include a given DOI ID
+ *
+ * @return DAOResultFactory
+ */
+ public function getByDoiId(int $doiId): DAOResultFactory
+ {
+ return new DAOResultFactory(
+ $this->retrieve(
+ 'SELECT pf.*
+ FROM publication_formats pf
+ WHERE pf.doi_id = ?',
+ [$doiId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve publication format by public ID or, failing that,
+ * internal ID; public ID takes precedence.
+ *
+ * @param string $representationId
+ * @param int $publicationId
+ *
+ * @return PublicationFormat|null
+ */
+ public function getByBestId($representationId, $publicationId)
+ {
+ $result = $this->retrieve(
+ 'SELECT pf.*
+ FROM publication_formats pf
+ WHERE pf.url_path = ?
+ AND pf.publication_id = ?',
+ [
+ $representationId,
+ $publicationId,
+ ]
+ );
+ if ($row = $result->current()) {
+ return $this->_fromRow((array) $row);
+ } elseif (is_int($representationId) || ctype_digit($representationId)) {
+ return $this->getById($representationId);
+ }
+ return null;
+ }
+
+ /**
+ * @copydoc RepresentationDAO::getByPublicationId()
+ *
+ * @param null|mixed $contextId
+ *
+ * @return DAOResultFactory
+ */
+ public function getByPublicationId($publicationId, $contextId = null): array
+ {
+ $params = [(int) $publicationId];
+ if ($contextId) {
+ $params[] = (int) $contextId;
+ }
+
+ $result = new DAOResultFactory(
+ $this->retrieve(
+ 'SELECT pf.*
+ FROM publication_formats pf ' .
+ ($contextId ?
+ 'INNER JOIN publications p ON (pf.publication_id=p.publication_id)
+ INNER JOIN submissions s ON (s.submission_id = p.submission_id) '
+ : '') .
+ 'WHERE pf.publication_id=? '
+ . ($contextId ? ' AND s.context_id = ? ' : '')
+ . 'ORDER BY pf.seq',
+ $params
+ ),
+ $this,
+ '_fromRow'
+ );
+
+ return $result->toAssociativeArray();
+ }
+
+ /**
+ * Retrieves a list of publication formats for a press
+ *
+ * @param int $pressId
+ *
+ * @return DAOResultFactory
+ */
+ public function getByContextId($pressId)
+ {
+ return new DAOResultFactory(
+ $this->retrieve(
+ 'SELECT pf.*
+ FROM publication_formats pf
+ JOIN publications p ON (p.publication_id = pf.publication_id)
+ JOIN submissions s ON (s.submission_id = p.submission_id)
+ WHERE s.context_id = ?
+ ORDER BY pf.seq',
+ [(int) $pressId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieves a list of approved publication formats for a publication
+ *
+ * @param int $publicationId
+ *
+ * @return DAOResultFactory
+ */
+ public function getApprovedByPublicationId($publicationId)
+ {
+ return new DAOResultFactory(
+ $this->retrieve(
+ 'SELECT *
+ FROM publication_formats
+ WHERE publication_id = ? AND is_approved=1
+ ORDER BY seq',
+ [(int) $publicationId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Delete an publication format by ID.
+ *
+ * @param int $representationId
+ */
+ public function deleteById($representationId)
+ {
+ $this->update('DELETE FROM publication_format_settings WHERE publication_format_id = ?', [(int) $representationId]);
+ $this->update('DELETE FROM publication_formats WHERE publication_format_id = ?', [(int) $representationId]);
+ }
+
+ /**
+ * Update the settings for this object
+ *
+ * @param object $publicationFormat
+ */
+ public function updateLocaleFields($publicationFormat)
+ {
+ $this->updateDataObjectSettings(
+ 'publication_format_settings',
+ $publicationFormat,
+ ['publication_format_id' => $publicationFormat->getId()]
+ );
+ }
+
+ /**
+ * Construct a new data object corresponding to this DAO.
+ *
+ */
+ public function newDataObject(): PublicationFormat
+ {
+ return new PublicationFormat();
+ }
+
+ /**
+ * Internal function to return an PublicationFormat object from a row.
+ *
+ * @param array $row
+ * @param bool $callHooks
+ *
+ * @return PublicationFormat
+ */
+ public function _fromRow($row, $params = [], $callHooks = true)
+ {
+ $publicationFormat = $this->newDataObject();
+
+ // Add the additional Publication Format data
+ $publicationFormat->setIsApproved($row['is_approved']);
+ $publicationFormat->setEntryKey($row['entry_key']);
+ $publicationFormat->setPhysicalFormat($row['physical_format']);
+ $publicationFormat->setSequence((int) $row['seq']);
+ $publicationFormat->setId((int) $row['publication_format_id']);
+ $publicationFormat->setData('publicationId', (int) $row['publication_id']);
+ $publicationFormat->setFileSize($row['file_size']);
+ $publicationFormat->setFrontMatter($row['front_matter']);
+ $publicationFormat->setBackMatter($row['back_matter']);
+ $publicationFormat->setHeight($row['height']);
+ $publicationFormat->setHeightUnitCode($row['height_unit_code']);
+ $publicationFormat->setWidth($row['width']);
+ $publicationFormat->setWidthUnitCode($row['width_unit_code']);
+ $publicationFormat->setThickness($row['thickness']);
+ $publicationFormat->setThicknessUnitCode($row['thickness_unit_code']);
+ $publicationFormat->setWeight($row['weight']);
+ $publicationFormat->setWeightUnitCode($row['weight_unit_code']);
+ $publicationFormat->setProductCompositionCode($row['product_composition_code']);
+ $publicationFormat->setProductFormDetailCode($row['product_form_detail_code']);
+ $publicationFormat->setCountryManufactureCode($row['country_manufacture_code']);
+ $publicationFormat->setImprint($row['imprint']);
+ $publicationFormat->setProductAvailabilityCode($row['product_availability_code']);
+ $publicationFormat->setTechnicalProtectionCode($row['technical_protection_code']);
+ $publicationFormat->setReturnableIndicatorCode($row['returnable_indicator_code']);
+ $publicationFormat->setRemoteURL($row['remote_url']);
+ $publicationFormat->setData('urlPath', $row['url_path']);
+ $publicationFormat->setIsAvailable($row['is_available']);
+ $publicationFormat->setData('doiId', $row['doi_id']);
+
+ if (!empty($publicationFormat->getData('doiId'))) {
+ $publicationFormat->setData('doiObject', Repo::doi()->get($publicationFormat->getData('doiId')));
+ } else {
+ $publicationFormat->setData('doiObject', null);
+ }
+
+ $this->getDataObjectSettings(
+ 'publication_format_settings',
+ 'publication_format_id',
+ $row['publication_format_id'],
+ $publicationFormat
+ );
+
+ if ($callHooks) {
+ Hook::call('PublicationFormatDAO::_fromRow', [&$publicationFormat, &$row]);
+ }
+
+ return $publicationFormat;
+ }
+
+ /**
+ * Insert a publication format.
+ *
+ * @param PublicationFormat $publicationFormat
+ *
+ * @return int the publication format id.
+ */
+ public function insertObject($publicationFormat)
+ {
+ $this->update(
+ 'INSERT INTO publication_formats
+ (is_approved, entry_key, physical_format, publication_id, seq, file_size, front_matter, back_matter, height, height_unit_code, width, width_unit_code, thickness, thickness_unit_code, weight, weight_unit_code, product_composition_code, product_form_detail_code, country_manufacture_code, imprint, product_availability_code, technical_protection_code, returnable_indicator_code, remote_url, url_path, is_available, doi_id)
+ VALUES
+ (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
+ [
+ (int) $publicationFormat->getIsApproved(),
+ $publicationFormat->getEntryKey(),
+ (int) $publicationFormat->getPhysicalFormat(),
+ (int) $publicationFormat->getData('publicationId'),
+ (int) $publicationFormat->getSequence(),
+ $publicationFormat->getFileSize(),
+ $publicationFormat->getFrontMatter(),
+ $publicationFormat->getBackMatter(),
+ $publicationFormat->getHeight(),
+ $publicationFormat->getHeightUnitCode(),
+ $publicationFormat->getWidth(),
+ $publicationFormat->getWidthUnitCode(),
+ $publicationFormat->getThickness(),
+ $publicationFormat->getThicknessUnitCode(),
+ $publicationFormat->getWeight(),
+ $publicationFormat->getWeightUnitCode(),
+ $publicationFormat->getProductCompositionCode(),
+ $publicationFormat->getProductFormDetailCode(),
+ $publicationFormat->getCountryManufactureCode(),
+ $publicationFormat->getImprint(),
+ $publicationFormat->getProductAvailabilityCode(),
+ $publicationFormat->getTechnicalProtectionCode(),
+ $publicationFormat->getReturnableIndicatorCode(),
+ $publicationFormat->getRemoteURL(),
+ $publicationFormat->getData('urlPath'),
+ (int) $publicationFormat->getIsAvailable(),
+ $publicationFormat->getData('doiId') === null ? null : (int) $publicationFormat->getData('doiId')
+ ]
+ );
+
+ $publicationFormat->setId($this->_getInsertId());
+ $this->updateLocaleFields($publicationFormat);
+
+ return $publicationFormat->getId();
+ }
+
+ /**
+ * Update an existing publication format.
+ *
+ * @param PublicationFormat $publicationFormat
+ */
+ public function updateObject(Representation $publicationFormat): void
+ {
+ $this->update(
+ 'UPDATE publication_formats
+ SET is_approved = ?,
+ entry_key = ?,
+ physical_format = ?,
+ seq = ?,
+ file_size = ?,
+ front_matter = ?,
+ back_matter = ?,
+ height = ?,
+ height_unit_code = ?,
+ width = ?,
+ width_unit_code = ?,
+ thickness = ?,
+ thickness_unit_code = ?,
+ weight = ?,
+ weight_unit_code = ?,
+ product_composition_code = ?,
+ product_form_detail_code = ?,
+ country_manufacture_code = ?,
+ imprint = ?,
+ product_availability_code = ?,
+ technical_protection_code = ?,
+ returnable_indicator_code = ?,
+ remote_url = ?,
+ url_path = ?,
+ is_available = ?,
+ doi_id = ?
+ WHERE publication_format_id = ?',
+ [
+ (int) $publicationFormat->getIsApproved(),
+ $publicationFormat->getEntryKey(),
+ (int) $publicationFormat->getPhysicalFormat(),
+ (int) $publicationFormat->getSequence(),
+ $publicationFormat->getFileSize(),
+ $publicationFormat->getFrontMatter(),
+ $publicationFormat->getBackMatter(),
+ $publicationFormat->getHeight(),
+ $publicationFormat->getHeightUnitCode(),
+ $publicationFormat->getWidth(),
+ $publicationFormat->getWidthUnitCode(),
+ $publicationFormat->getThickness(),
+ $publicationFormat->getThicknessUnitCode(),
+ $publicationFormat->getWeight(),
+ $publicationFormat->getWeightUnitCode(),
+ $publicationFormat->getProductCompositionCode(),
+ $publicationFormat->getProductFormDetailCode(),
+ $publicationFormat->getCountryManufactureCode(),
+ $publicationFormat->getImprint(),
+ $publicationFormat->getProductAvailabilityCode(),
+ $publicationFormat->getTechnicalProtectionCode(),
+ $publicationFormat->getReturnableIndicatorCode(),
+ $publicationFormat->getRemoteURL(),
+ $publicationFormat->getData('urlPath'),
+ (int) $publicationFormat->getIsAvailable(),
+ $publicationFormat->getData('doiId'),
+ (int) $publicationFormat->getId()
+ ]
+ );
+
+ $this->updateLocaleFields($publicationFormat);
+ }
+
+ /**
+ * Get a list of fields for which we store localized data
+ *
+ * @return array
+ */
+ public function getLocaleFieldNames()
+ {
+ return ['name'];
+ }
+
+ /**
+ * @see DAO::getAdditionalFieldNames()
+ */
+ public function getAdditionalFieldNames()
+ {
+ $additionalFields = parent::getAdditionalFieldNames();
+ $additionalFields[] = 'pub-id::publisher-id';
+ return $additionalFields;
+ }
+
+ /**
+ * @copydoc PKPPubIdPluginDAO::pubIdExists()
+ */
+ public function pubIdExists($pubIdType, $pubId, $excludePubObjectId, $contextId)
+ {
+ $result = $this->retrieve(
+ 'SELECT COUNT(*) AS row_count
+ FROM publication_format_settings pft
+ INNER JOIN publication_formats pf ON pft.publication_format_id = pf.publication_format_id
+ INNER JOIN publications p ON p.publication_id = pf.publication_id
+ INNER JOIN submissions s ON p.submission_id = s.submission_id
+ WHERE pft.setting_name = ?
+ AND pft.setting_value = ?
+ AND pf.publication_format_id <> ?
+ AND s.context_id = ?',
+ [
+ 'pub-id::' . $pubIdType,
+ $pubId,
+ (int) $excludePubObjectId,
+ (int) $contextId
+ ]
+ );
+ $row = $result->current();
+ return $row && $row->row_count;
+ }
+
+ /**
+ * @copydoc PKPPubIdPluginDAO::changePubId()
+ */
+ public function changePubId($pubObjectId, $pubIdType, $pubId)
+ {
+ DB::table('publication_format_settings')->updateOrInsert(
+ ['publication_format_id' => (int) $pubObjectId, 'locale' => '', 'setting_name' => 'pub-id::' . $pubIdType],
+ ['setting_type' => 'string', 'setting_value' => (string)$pubId]
+ );
+ }
+
+ /**
+ * @copydoc PKPPubIdPluginDAO::deletePubId()
+ */
+ public function deletePubId($pubObjectId, $pubIdType)
+ {
+ $this->update(
+ 'DELETE FROM publication_format_settings WHERE setting_name = ? AND publication_format_id = ?',
+ ['pub-id::' . $pubIdType, (int)$pubObjectId]
+ );
+ $this->flushCache();
+ }
+
+ /**
+ * @copydoc PKPPubIdPluginDAO::deleteAllPubIds()
+ */
+ public function deleteAllPubIds($contextId, $pubIdType)
+ {
+ $formats = $this->getByContextId($contextId);
+ while ($format = $formats->next()) {
+ $this->update(
+ 'DELETE FROM publication_format_settings WHERE setting_name = ? AND publication_format_id = ?',
+ ['pub-id::' . $pubIdType, (int)$format->getId()]
+ );
+ }
+ $this->flushCache();
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publicationFormat\PublicationFormatDAO', '\PublicationFormatDAO');
+}
diff --git a/classes/publicationFormat/PublicationFormatTombstoneManager.inc.php b/classes/publicationFormat/PublicationFormatTombstoneManager.inc.php
deleted file mode 100755
index 8ca636c87ef..00000000000
--- a/classes/publicationFormat/PublicationFormatTombstoneManager.inc.php
+++ /dev/null
@@ -1,157 +0,0 @@
-get($publicationFormat->getData('publicationId'));
- $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
- $monograph = $submissionDao->getById($publication->getData('submissionId'));
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $series = $seriesDao->getById($monograph->getSeriesId());
-
- $dataObjectTombstoneDao = DAORegistry::getDAO('DataObjectTombstoneDAO'); /* @var $dataObjectTombstoneDao DataObjectTombstoneDAO */
- // delete publication format tombstone to ensure that there aren't
- // more than one tombstone for this publication format
- $dataObjectTombstoneDao->deleteByDataObjectId($publicationFormat->getId());
- // insert publication format tombstone
- if (is_a($series, 'Series')) {
- $setSpec = urlencode($press->getPath()) . ':' . urlencode($series->getPath());
- $setName = $series->getLocalizedTitle();
- } else {
- $setSpec = urlencode($press->getPath());
- $setName = $press->getLocalizedName();
- }
- $oaiIdentifier = 'oai:' . Config::getVar('oai', 'repository_id') . ':' . 'publicationFormat/' . $publicationFormat->getId();
- $OAISetObjectsIds = array(
- ASSOC_TYPE_PRESS => $monograph->getPressId(),
- ASSOC_TYPE_SERIES => $monograph->getSeriesId()
- );
-
- $publicationFormatTombstone = $dataObjectTombstoneDao->newDataObject(); /* @var $publicationFormatTombstone DataObjectTombstone */
- $publicationFormatTombstone->setDataObjectId($publicationFormat->getId());
- $publicationFormatTombstone->stampDateDeleted();
- $publicationFormatTombstone->setSetSpec($setSpec);
- $publicationFormatTombstone->setSetName($setName);
- $publicationFormatTombstone->setOAIIdentifier($oaiIdentifier);
- $publicationFormatTombstone->setOAISetObjectsIds($OAISetObjectsIds);
- $dataObjectTombstoneDao->insertObject($publicationFormatTombstone);
-
- if (HookRegistry::call('PublicationFormatTombstoneManager::insertPublicationFormatTombstone', array(&$publicationFormatTombstone, &$publicationFormat, &$press))) return;
- }
-
- /**
- * Insert tombstone for every publication format inside
- * the passed array.
- * @param $publicationFormats array
- */
- function insertTombstonesByPublicationFormats($publicationFormats, $press) {
- foreach($publicationFormats as $publicationFormat) {
- $this->insertTombstoneByPublicationFormat($publicationFormat, $press);
- }
- }
-
- /**
- * Insert tombstone for every publication format of the
- * published submissions inside the passed press.
- * @param $press
- */
- function insertTombstonesByPress($press) {
- import('lib.pkp.classes.submission.PKPSubmission');
- $submissionsIterator = Services::get('submission')->getMany(['contextId' => $press->getId(), 'status' => STATUS_PUBLISHED, 'count' => 2000]);
- foreach ($submissionsIterator as $submission) {
- foreach ($submission->getData('publications') as $publication) {
- if ($publication->getData('status') === STATUS_PUBLISHED) {
- foreach ((array) $publication->getData('publicationFormats') as $publicationFormat) {
- if ($publication->getIsAvailable()) {
- $this->insertTombstoneByPublicationFormat($publicationFormat, $press);
- }
- }
- }
- }
- }
- }
-
- /**
- * Delete tombstone for every passed publication format.
- * @param $publicationFormats array
- */
- function deleteTombstonesByPublicationFormats($publicationFormats) {
- foreach ($publicationFormats as $publicationFormat) {
- $tombstoneDao = DAORegistry::getDAO('DataObjectTombstoneDAO'); /* @var $tombstoneDao DataObjectTombstoneDAO */
- $tombstoneDao->deleteByDataObjectId($publicationFormat->getId());
- }
- }
-
- /**
- * Delete tombstone for every publication format inside the passed press.
- * @param $pressId int
- */
- function deleteTombstonesByPressId($pressId) {
- import('lib.pkp.classes.submission.PKPSubmission');
- $submissionsIterator = Services::get('submission')->getMany(['contextId' => $pressId, 'status' => STATUS_PUBLISHED, 'count' => 2000]);
- foreach ($submissionsIterator as $submission) {
- foreach ($submission->getData('publications') as $publication) {
- $this->deleteTombstonesByPublicationFormats($publication->getData('publicationFormats'));
- }
- }
- }
-
- /**
- * Delete tombstones for every publication format in a publication
- *
- * @param int $publicationId
- */
- function deleteTombstonesByPublicationId(int $publicationId) {
- $publicationFormats = DAORegistry::getDAO('PublicationFormatDAO')
- ->getByPublicationId($publicationId)
- ->toArray();
- $this->deleteTombstonesByPublicationFormats($publicationFormats);
- }
-
- /**
- * Insert tombstones for every available publication format in a publication
- *
- * This method will delete any existing tombstones to ensure that duplicates
- * are not created.
- *
- * @param int $publicationId
- * @param Press $context
- */
- function insertTombstonesByPublicationId(int $publicationId, $context) {
- $this->deleteTombstonesByPublicationId($publicationId);
- $publicationFormats = DAORegistry::getDAO('PublicationFormatDAO')
- ->getByPublicationId($publicationId)
- ->toArray();
- foreach ($publicationFormats as $publicationFormat) {
- if ($publicationFormat->getIsAvailable()) {
- $this->insertTombstoneByPublicationFormat($publicationFormat, $context);
- }
- }
- }
-}
-
-
diff --git a/classes/publicationFormat/PublicationFormatTombstoneManager.php b/classes/publicationFormat/PublicationFormatTombstoneManager.php
new file mode 100755
index 00000000000..ba99e945db6
--- /dev/null
+++ b/classes/publicationFormat/PublicationFormatTombstoneManager.php
@@ -0,0 +1,187 @@
+get($publicationFormat->getData('publicationId'));
+ $monograph = Repo::submission()->get($publication->getData('submissionId'));
+ $series = $publication->getData('seriesId') ? Repo::section()->get($publication->getData('seriesId')) : null;
+
+ $dataObjectTombstoneDao = DAORegistry::getDAO('DataObjectTombstoneDAO'); /** @var DataObjectTombstoneDAO $dataObjectTombstoneDao */
+ // delete publication format tombstone to ensure that there aren't
+ // more than one tombstone for this publication format
+ $dataObjectTombstoneDao->deleteByDataObjectId($publicationFormat->getId());
+ // insert publication format tombstone
+ if ($series) {
+ $setSpec = OAIDAO::setSpec($press, $series);
+ $setName = $series->getLocalizedTitle();
+ } else {
+ $setSpec = OAIDAO::setSpec($press);
+ $setName = $press->getLocalizedName();
+ }
+ $oaiIdentifier = 'oai:' . Config::getVar('oai', 'repository_id') . ':' . 'publicationFormat/' . $publicationFormat->getId();
+ $OAISetObjectsIds = [
+ Application::ASSOC_TYPE_PRESS => $monograph->getData('contextId'),
+ Application::ASSOC_TYPE_SERIES => $publication->getData('seriesId')
+ ];
+
+ $publicationFormatTombstone = $dataObjectTombstoneDao->newDataObject(); /** @var DataObjectTombstone $publicationFormatTombstone */
+ $publicationFormatTombstone->setDataObjectId($publicationFormat->getId());
+ $publicationFormatTombstone->stampDateDeleted();
+ $publicationFormatTombstone->setSetSpec($setSpec);
+ $publicationFormatTombstone->setSetName($setName);
+ $publicationFormatTombstone->setOAIIdentifier($oaiIdentifier);
+ $publicationFormatTombstone->setOAISetObjectsIds($OAISetObjectsIds);
+ $dataObjectTombstoneDao->insertObject($publicationFormatTombstone);
+
+ if (Hook::call('PublicationFormatTombstoneManager::insertPublicationFormatTombstone', [&$publicationFormatTombstone, &$publicationFormat, &$press])) {
+ return;
+ }
+ }
+
+ /**
+ * Insert tombstone for every publication format inside
+ * the passed array.
+ *
+ * @param array $publicationFormats
+ */
+ public function insertTombstonesByPublicationFormats($publicationFormats, $press)
+ {
+ foreach ($publicationFormats as $publicationFormat) {
+ $this->insertTombstoneByPublicationFormat($publicationFormat, $press);
+ }
+ }
+
+ /**
+ * Insert tombstone for every publication format of the
+ * published submissions inside the passed press.
+ *
+ * @param Press $press
+ */
+ public function insertTombstonesByPress($press)
+ {
+ $submissions = Repo::submission()
+ ->getCollector()
+ ->filterByContextIds([$press->getId()])
+ ->filterByStatus([Submission::STATUS_PUBLISHED])
+ ->getMany();
+
+ foreach ($submissions as $submission) {
+ foreach ($submission->getData('publications') as $publication) {
+ if ($publication->getData('status') === PKPSubmission::STATUS_PUBLISHED) {
+ $this->insertTombstonesByPublicationId($publication->getId(), $press);
+ }
+ }
+ }
+ }
+
+ /**
+ * Delete tombstone for every passed publication format.
+ *
+ * @param array $publicationFormats
+ */
+ public function deleteTombstonesByPublicationFormats($publicationFormats)
+ {
+ foreach ($publicationFormats as $publicationFormat) {
+ $tombstoneDao = DAORegistry::getDAO('DataObjectTombstoneDAO'); /** @var DataObjectTombstoneDAO $tombstoneDao */
+ $tombstoneDao->deleteByDataObjectId($publicationFormat->getId());
+ }
+ }
+
+ /**
+ * Delete tombstone for every publication format inside the passed press.
+ *
+ * @param int $pressId
+ */
+ public function deleteTombstonesByPressId($pressId)
+ {
+ $submissions = Repo::submission()
+ ->getCollector()
+ ->filterByContextIds([$pressId])
+ ->filterByStatus([Submission::STATUS_PUBLISHED])
+ ->getMany();
+
+ foreach ($submissions as $submission) {
+ foreach ($submission->getData('publications') as $publication) {
+ $this->deleteTombstonesByPublicationFormats($publication->getData('publicationFormats'));
+ }
+ }
+ }
+
+ /**
+ * Delete tombstones for every publication format in a publication
+ *
+ */
+ public function deleteTombstonesByPublicationId(int $publicationId)
+ {
+ /** @var PublicationFormatDAO */
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO');
+ $publicationFormats = $publicationFormatDao
+ ->getByPublicationId($publicationId);
+ $this->deleteTombstonesByPublicationFormats($publicationFormats);
+ }
+
+ /**
+ * Insert tombstones for every available publication format in a publication
+ *
+ * This method will delete any existing tombstones to ensure that duplicates
+ * are not created.
+ *
+ * @param Press $context
+ */
+ public function insertTombstonesByPublicationId(int $publicationId, $context)
+ {
+ $this->deleteTombstonesByPublicationId($publicationId);
+ /** @var PublicationFormatDAO */
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO');
+ $publicationFormats = $publicationFormatDao
+ ->getByPublicationId($publicationId);
+ foreach ($publicationFormats as $publicationFormat) {
+ if ($publicationFormat->getIsAvailable()) {
+ $this->insertTombstoneByPublicationFormat($publicationFormat, $context);
+ }
+ }
+ }
+}
diff --git a/classes/publicationFormat/SalesRights.inc.php b/classes/publicationFormat/SalesRights.inc.php
deleted file mode 100644
index 13a4032c3ee..00000000000
--- a/classes/publicationFormat/SalesRights.inc.php
+++ /dev/null
@@ -1,159 +0,0 @@
-getData('publicationFormatId');
- }
-
- /**
- * set publication format id
- * @param $pressId int
- */
- function setPublicationFormatId($publicationFormatId) {
- return $this->setData('publicationFormatId', $publicationFormatId);
- }
-
- /**
- * Set the ONIX code for this sales rights entry
- * @param $type string
- */
- function setType($type) {
- $this->setData('type', $type);
- }
-
- /**
- * Get the ONIX code for this sales rights entry
- * @return string
- */
- function getType() {
- return $this->getData('type');
- }
-
- /**
- * Get the human readable name for this ONIX code
- * @return string
- */
- function getNameForONIXCode() {
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $codes =& $onixCodelistItemDao->getCodes('List46'); // List46 is for things like 'unrestricted sale with exclusive rights', etc.
- return $codes[$this->getType()];
- }
-
- /**
- * Set the ROWSetting for this sales rights entry (Rest Of World)
- * @param $rowSetting boolean
- */
- function setROWSetting($rowSetting) {
- $this->setData('rowSetting', $rowSetting);
- }
-
- /**
- * Get the ROWSetting value for this sales rights entry (Rest Of World)
- * @return string
- */
- function getROWSetting() {
- return $this->getData('rowSetting');
- }
-
- /**
- * Get the included countries for this sales rights entry
- * @return array
- */
- function getCountriesIncluded() {
- return $this->getData('countriesIncluded');
- }
-
- /**
- * Set the included country list for this sales rights entry
- * @param $countriesIncluded array
- */
- function setCountriesIncluded($countriesIncluded) {
- $this->setData('countriesIncluded', array_filter($countriesIncluded, array(&$this, '_removeEmptyElements')));
- }
-
- /**
- * Get the excluded countries for this sales rights entry
- * @return array
- */
- function getCountriesExcluded() {
- return $this->getData('countriesExcluded');
- }
-
- /**
- * Set the excluded country list for this sales rights entry
- * @param $countriesExcluded array
- */
- function setCountriesExcluded($countriesExcluded) {
- $this->setData('countriesExcluded', array_filter($countriesExcluded, array(&$this, '_removeEmptyElements')));
- }
-
- /**
- * Get the included regions for this sales rights entry
- * @return array
- */
- function getRegionsIncluded() {
- return $this->getData('regionsIncluded');
- }
-
- /**
- * Set the included region list for this sales rights entry
- * @param $regionsIncluded array
- */
- function setRegionsIncluded($regionsIncluded) {
- $this->setData('regionsIncluded', array_filter($regionsIncluded, array(&$this, '_removeEmptyElements')));
- }
-
- /**
- * Get the excluded regions for this sales rights entry
- * @return array
- */
- function getRegionsExcluded() {
- return $this->getData('regionsExcluded');
- }
-
- /**
- * Set the excluded region list for this sales rights entry
- * @param $regionsExcluded array
- */
- function setRegionsExcluded($regionsExcluded) {
- $this->setData('regionsExcluded', array_filter($regionsExcluded, array(&$this, '_removeEmptyElements')));
- }
-
- /**
- * Internal function for an array_filter to remove empty countries.
- * array_filter() can be called without a callback to remove empty array elements but it depends
- * on type juggling and may not be reliable.
- * @param String $value
- * @return boolean
- */
- function _removeEmptyElements($value) {
- return (trim($value) != '') ? true : false;
- }
-}
-
-
diff --git a/classes/publicationFormat/SalesRights.php b/classes/publicationFormat/SalesRights.php
new file mode 100644
index 00000000000..954df4998cb
--- /dev/null
+++ b/classes/publicationFormat/SalesRights.php
@@ -0,0 +1,193 @@
+getData('publicationFormatId');
+ }
+
+ /**
+ * set publication format id
+ */
+ public function setPublicationFormatId($publicationFormatId)
+ {
+ return $this->setData('publicationFormatId', $publicationFormatId);
+ }
+
+ /**
+ * Set the ONIX code for this sales rights entry
+ *
+ * @param string $type
+ */
+ public function setType($type)
+ {
+ $this->setData('type', $type);
+ }
+
+ /**
+ * Get the ONIX code for this sales rights entry
+ *
+ * @return string
+ */
+ public function getType()
+ {
+ return $this->getData('type');
+ }
+
+ /**
+ * Get the human readable name for this ONIX code
+ *
+ * @return string
+ */
+ public function getNameForONIXCode()
+ {
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $codes = & $onixCodelistItemDao->getCodes('List46'); // List46 is for things like 'unrestricted sale with exclusive rights', etc.
+ return $codes[$this->getType()];
+ }
+
+ /**
+ * Set the ROWSetting for this sales rights entry (Rest Of World)
+ *
+ * @param bool $rowSetting
+ */
+ public function setROWSetting($rowSetting)
+ {
+ $this->setData('rowSetting', $rowSetting);
+ }
+
+ /**
+ * Get the ROWSetting value for this sales rights entry (Rest Of World)
+ *
+ * @return string
+ */
+ public function getROWSetting()
+ {
+ return $this->getData('rowSetting');
+ }
+
+ /**
+ * Get the included countries for this sales rights entry
+ *
+ * @return array
+ */
+ public function getCountriesIncluded()
+ {
+ return $this->getData('countriesIncluded');
+ }
+
+ /**
+ * Set the included country list for this sales rights entry
+ *
+ * @param array $countriesIncluded
+ */
+ public function setCountriesIncluded($countriesIncluded)
+ {
+ $this->setData('countriesIncluded', array_filter($countriesIncluded, [&$this, '_removeEmptyElements']));
+ }
+
+ /**
+ * Get the excluded countries for this sales rights entry
+ *
+ * @return array
+ */
+ public function getCountriesExcluded()
+ {
+ return $this->getData('countriesExcluded');
+ }
+
+ /**
+ * Set the excluded country list for this sales rights entry
+ *
+ * @param array $countriesExcluded
+ */
+ public function setCountriesExcluded($countriesExcluded)
+ {
+ $this->setData('countriesExcluded', array_filter($countriesExcluded, [&$this, '_removeEmptyElements']));
+ }
+
+ /**
+ * Get the included regions for this sales rights entry
+ *
+ * @return array
+ */
+ public function getRegionsIncluded()
+ {
+ return $this->getData('regionsIncluded');
+ }
+
+ /**
+ * Set the included region list for this sales rights entry
+ *
+ * @param array $regionsIncluded
+ */
+ public function setRegionsIncluded($regionsIncluded)
+ {
+ $this->setData('regionsIncluded', array_filter($regionsIncluded, [&$this, '_removeEmptyElements']));
+ }
+
+ /**
+ * Get the excluded regions for this sales rights entry
+ *
+ * @return array
+ */
+ public function getRegionsExcluded()
+ {
+ return $this->getData('regionsExcluded');
+ }
+
+ /**
+ * Set the excluded region list for this sales rights entry
+ *
+ * @param array $regionsExcluded
+ */
+ public function setRegionsExcluded($regionsExcluded)
+ {
+ $this->setData('regionsExcluded', array_filter($regionsExcluded, [&$this, '_removeEmptyElements']));
+ }
+
+ /**
+ * Internal function for an array_filter to remove empty countries.
+ * array_filter() can be called without a callback to remove empty array elements but it depends
+ * on type juggling and may not be reliable.
+ *
+ * @param string $value
+ *
+ * @return bool
+ */
+ public function _removeEmptyElements($value)
+ {
+ return (trim($value) != '') ? true : false;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publicationFormat\SalesRights', '\SalesRights');
+}
diff --git a/classes/publicationFormat/SalesRightsDAO.inc.php b/classes/publicationFormat/SalesRightsDAO.inc.php
deleted file mode 100644
index 6bce94f802b..00000000000
--- a/classes/publicationFormat/SalesRightsDAO.inc.php
+++ /dev/null
@@ -1,179 +0,0 @@
-retrieve(
- 'SELECT s.*
- FROM sales_rights s
- JOIN publication_formats pf ON (s.publication_format_id = pf.publication_format_id)
- WHERE s.sales_rights_id = ?
- ' . ($publicationId?' AND pf.publication_id = ?':''),
- $params
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Retrieve all sales rights for a publication format
- * @param $publicationFormatId int
- * @return DAOResultFactory containing matching sales rights.
- */
- function getByPublicationFormatId($publicationFormatId) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT * FROM sales_rights WHERE publication_format_id = ?',
- [(int) $publicationFormatId]
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Retrieve the specific Sales Rights instance for which ROW is set to true. There should only be one per format.
- * @param $publicationFormatId int
- * @return SalesRights|null
- */
- function getROWByPublicationFormatId($publicationFormatId) {
- $result = $this->retrieve(
- 'SELECT * FROM sales_rights WHERE row_setting = ? AND publication_format_id = ?',
- [1, (int) $publicationFormatId]
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Construct a new data object corresponding to this DAO.
- * @return SalesRights
- */
- function newDataObject() {
- return new SalesRights();
- }
-
- /**
- * Internal function to return a SalesRights object from a row.
- * @param $row array
- * @param $callHooks boolean
- * @return SalesRights
- */
- function _fromRow($row, $callHooks = true) {
- $salesRights = $this->newDataObject();
- $salesRights->setId($row['sales_rights_id']);
- $salesRights->setType($row['type']);
- $salesRights->setROWSetting($row['row_setting']);
- $salesRights->setCountriesIncluded(unserialize($row['countries_included']));
- $salesRights->setCountriesExcluded(unserialize($row['countries_excluded']));
- $salesRights->setRegionsIncluded(unserialize($row['regions_included']));
- $salesRights->setRegionsExcluded(unserialize($row['regions_excluded']));
-
- $salesRights->setPublicationFormatId($row['publication_format_id']);
-
- if ($callHooks) HookRegistry::call('SalesRightsDAO::_fromRow', array(&$salesRights, &$row));
-
- return $salesRights;
- }
-
- /**
- * Insert a new sales rights entry.
- * @param $salesRights SalesRights
- */
- function insertObject($salesRights) {
- $this->update(
- 'INSERT INTO sales_rights
- (publication_format_id, type, row_setting, countries_included, countries_excluded, regions_included, regions_excluded)
- VALUES
- (?, ?, ?, ?, ?, ?, ?)',
- [
- (int) $salesRights->getPublicationFormatId(),
- $salesRights->getType(),
- $salesRights->getROWSetting(),
- serialize($salesRights->getCountriesIncluded() ? $salesRights->getCountriesIncluded() : array()),
- serialize($salesRights->getCountriesExcluded() ? $salesRights->getCountriesExcluded() : array()),
- serialize($salesRights->getRegionsIncluded() ? $salesRights->getRegionsIncluded() : array()),
- serialize($salesRights->getRegionsExcluded() ? $salesRights->getRegionsExcluded() : array())
- ]
- );
-
- $salesRights->setId($this->getInsertId());
- return $salesRights->getId();
- }
-
- /**
- * Update an existing sales rights entry.
- * @param $salesRights SalesRights
- */
- function updateObject($salesRights) {
- $this->update(
- 'UPDATE sales_rights
- SET type = ?,
- row_setting = ?,
- countries_included = ?,
- countries_excluded = ?,
- regions_included = ?,
- regions_excluded = ?
- WHERE sales_rights_id = ?',
- [
- $salesRights->getType(),
- $salesRights->getROWSetting(),
- serialize($salesRights->getCountriesIncluded() ? $salesRights->getCountriesIncluded() : array()),
- serialize($salesRights->getCountriesExcluded() ? $salesRights->getCountriesExcluded() : array()),
- serialize($salesRights->getRegionsIncluded() ? $salesRights->getRegionsIncluded() : array()),
- serialize($salesRights->getRegionsExcluded() ? $salesRights->getRegionsExcluded() : array()),
- (int) $salesRights->getId()
- ]
- );
- }
-
- /**
- * Delete a sales rights entry by id.
- * @param $salesRights SalesRights
- */
- function deleteObject($salesRights) {
- return $this->deleteById($salesRights->getId());
- }
-
- /**
- * delete a sales rights entry by id.
- * @param $entryId int
- */
- function deleteById($entryId) {
- $this->update('DELETE FROM sales_rights WHERE sales_rights_id = ?', [(int) $entryId]);
- }
-
- /**
- * Get the ID of the last inserted sales rights entry.
- * @return int
- */
- function getInsertId() {
- return $this->_getInsertId('sales_rights', 'sales_rights_id');
- }
-}
-
-
diff --git a/classes/publicationFormat/SalesRightsDAO.php b/classes/publicationFormat/SalesRightsDAO.php
new file mode 100644
index 00000000000..1ae135e40f9
--- /dev/null
+++ b/classes/publicationFormat/SalesRightsDAO.php
@@ -0,0 +1,205 @@
+retrieve(
+ 'SELECT s.*
+ FROM sales_rights s
+ JOIN publication_formats pf ON (s.publication_format_id = pf.publication_format_id)
+ WHERE s.sales_rights_id = ?
+ ' . ($publicationId ? ' AND pf.publication_id = ?' : ''),
+ $params
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Retrieve all sales rights for a publication format
+ *
+ * @param int $publicationFormatId
+ *
+ * @return DAOResultFactory containing matching sales rights.
+ */
+ public function getByPublicationFormatId($publicationFormatId)
+ {
+ return new DAOResultFactory(
+ $this->retrieveRange(
+ 'SELECT * FROM sales_rights WHERE publication_format_id = ?',
+ [(int) $publicationFormatId]
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve the specific Sales Rights instance for which ROW is set to true. There should only be one per format.
+ *
+ * @param int $publicationFormatId
+ *
+ * @return SalesRights|null
+ */
+ public function getROWByPublicationFormatId($publicationFormatId)
+ {
+ $result = $this->retrieve(
+ 'SELECT * FROM sales_rights WHERE row_setting = ? AND publication_format_id = ?',
+ [1, (int) $publicationFormatId]
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Construct a new data object corresponding to this DAO.
+ *
+ * @return SalesRights
+ */
+ public function newDataObject()
+ {
+ return new SalesRights();
+ }
+
+ /**
+ * Internal function to return a SalesRights object from a row.
+ *
+ * @param array $row
+ * @param bool $callHooks
+ *
+ * @return SalesRights
+ */
+ public function _fromRow($row, $callHooks = true)
+ {
+ $salesRights = $this->newDataObject();
+ $salesRights->setId($row['sales_rights_id']);
+ $salesRights->setType($row['type']);
+ $salesRights->setROWSetting($row['row_setting']);
+ $salesRights->setCountriesIncluded(unserialize($row['countries_included']));
+ $salesRights->setCountriesExcluded(unserialize($row['countries_excluded']));
+ $salesRights->setRegionsIncluded(unserialize($row['regions_included']));
+ $salesRights->setRegionsExcluded(unserialize($row['regions_excluded']));
+
+ $salesRights->setPublicationFormatId($row['publication_format_id']);
+
+ if ($callHooks) {
+ Hook::call('SalesRightsDAO::_fromRow', [&$salesRights, &$row]);
+ }
+
+ return $salesRights;
+ }
+
+ /**
+ * Insert a new sales rights entry.
+ *
+ * @param SalesRights $salesRights
+ */
+ public function insertObject($salesRights)
+ {
+ $this->update(
+ 'INSERT INTO sales_rights
+ (publication_format_id, type, row_setting, countries_included, countries_excluded, regions_included, regions_excluded)
+ VALUES
+ (?, ?, ?, ?, ?, ?, ?)',
+ [
+ (int) $salesRights->getPublicationFormatId(),
+ $salesRights->getType(),
+ $salesRights->getROWSetting(),
+ serialize($salesRights->getCountriesIncluded() ? $salesRights->getCountriesIncluded() : []),
+ serialize($salesRights->getCountriesExcluded() ? $salesRights->getCountriesExcluded() : []),
+ serialize($salesRights->getRegionsIncluded() ? $salesRights->getRegionsIncluded() : []),
+ serialize($salesRights->getRegionsExcluded() ? $salesRights->getRegionsExcluded() : [])
+ ]
+ );
+
+ $salesRights->setId($this->getInsertId());
+ return $salesRights->getId();
+ }
+
+ /**
+ * Update an existing sales rights entry.
+ *
+ * @param SalesRights $salesRights
+ */
+ public function updateObject($salesRights)
+ {
+ $this->update(
+ 'UPDATE sales_rights
+ SET type = ?,
+ row_setting = ?,
+ countries_included = ?,
+ countries_excluded = ?,
+ regions_included = ?,
+ regions_excluded = ?
+ WHERE sales_rights_id = ?',
+ [
+ $salesRights->getType(),
+ $salesRights->getROWSetting(),
+ serialize($salesRights->getCountriesIncluded() ? $salesRights->getCountriesIncluded() : []),
+ serialize($salesRights->getCountriesExcluded() ? $salesRights->getCountriesExcluded() : []),
+ serialize($salesRights->getRegionsIncluded() ? $salesRights->getRegionsIncluded() : []),
+ serialize($salesRights->getRegionsExcluded() ? $salesRights->getRegionsExcluded() : []),
+ (int) $salesRights->getId()
+ ]
+ );
+ }
+
+ /**
+ * Delete a sales rights entry by id.
+ *
+ * @param SalesRights $salesRights
+ */
+ public function deleteObject($salesRights)
+ {
+ return $this->deleteById($salesRights->getId());
+ }
+
+ /**
+ * delete a sales rights entry by id.
+ *
+ * @param int $entryId
+ */
+ public function deleteById($entryId)
+ {
+ $this->update('DELETE FROM sales_rights WHERE sales_rights_id = ?', [(int) $entryId]);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\publicationFormat\SalesRightsDAO', '\SalesRightsDAO');
+}
diff --git a/classes/search/MonographSearch.inc.php b/classes/search/MonographSearch.inc.php
deleted file mode 100644
index 84c6f9e52e0..00000000000
--- a/classes/search/MonographSearch.inc.php
+++ /dev/null
@@ -1,341 +0,0 @@
- &$data) {
- // Reference is necessary to permit modification
- $data['score'] = ($resultCount * $data['count']) + $i++;
- }
-
- // If we got a primary sort order then apply it and use score as secondary
- // order only.
- // NB: We apply order after merging and before paging/formatting. Applying
- // order before merging would require us to retrieve dependent objects for
- // results being purged later. Doing everything in a closed SQL is not
- // possible (e.g. for authors). Applying sort order after paging and
- // formatting is not possible as we have to order the whole list before
- // slicing it. So this seems to be the most appropriate place, although we
- // may have to retrieve some objects again when formatting results.
- $orderedResults = array();
- $authorDao = DAORegistry::getDAO('AuthorDAO'); /* @var $authorDao AuthorDAO */
- $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
- $contextDao = Application::getContextDAO();
- $contextTitles = array();
- if ($orderBy == 'popularityAll' || $orderBy == 'popularityMonth') {
- $application = Application::get();
- $metricType = $application->getDefaultMetricType();
- if (is_null($metricType)) {
- // If no default metric has been found then sort by score...
- $orderBy = 'score';
- } else {
- // Retrieve a metrics report for all submissions.
- $column = STATISTICS_DIMENSION_SUBMISSION_ID;
- $filter = array(
- STATISTICS_DIMENSION_ASSOC_TYPE => array(ASSOC_TYPE_GALLEY, ASSOC_TYPE_SUBMISSION),
- STATISTICS_DIMENSION_SUBMISSION_ID => array(array_keys($unorderedResults))
- );
- if ($orderBy == 'popularityMonth') {
- $oneMonthAgo = date('Ymd', strtotime('-1 month'));
- $today = date('Ymd');
- $filter[STATISTICS_DIMENSION_DAY] = array('from' => $oneMonthAgo, 'to' => $today);
- }
- $rawReport = $application->getMetrics($metricType, $column, $filter);
- foreach ($rawReport as $row) {
- $unorderedResults[$row['submission_id']]['metric'] = (int)$row['metric'];
- }
- }
- }
-
- $i=0; // Used to prevent ties from clobbering each other
- foreach ($unorderedResults as $submissionId => $data) {
- // Exclude unwanted IDs.
- if (in_array($submissionId, $exclude)) continue;
-
- switch ($orderBy) {
- case 'authors':
- $submission = $submissionDao->getById($submissionId);
- $orderKey = $submission->getAuthorString();
- break;
-
- case 'title':
- $submission = $submissionDao->getById($submissionId);
- $orderKey = '';
- if (!empty($submission->getCurrentPublication())) {
- $orderKey = $submission->getCurrentPublication()->getLocalizedData('title');
- }
- break;
-
- case 'pressTitle':
- if (!isset($contextTitles[$data['press_id']])) {
- $press = $contextDao->getById($data['press_id']);
- $contextTitles[$data['press_id']] = $press->getLocalizedName();
- }
- $orderKey = $contextTitles[$data['press_id']];
- break;
-
- case 'publicationDate':
- $orderKey = $data[$orderBy];
- break;
-
- case 'popularityAll':
- case 'popularityMonth':
- $orderKey = (isset($data['metric']) ? $data['metric'] : 0);
- break;
-
- default: // order by score.
- $orderKey = $data['score'];
- }
- if (!isset($orderedResults[$orderKey])) {
- $orderedResults[$orderKey] = array();
- }
- $orderedResults[$orderKey][$data['score'] + $i++] = $submissionId;
- }
-
- // Order the results by primary order.
- if (strtolower($orderDir) == 'asc') {
- ksort($orderedResults);
- } else {
- krsort($orderedResults);
- }
-
- // Order the result by secondary order and flatten it.
- $finalOrder = array();
- foreach($orderedResults as $orderKey => $submissionIds) {
- if (count($submissionIds) == 1) {
- $finalOrder[] = array_pop($submissionIds);
- } else {
- if (strtolower($orderDir) == 'asc') {
- ksort($submissionIds);
- } else {
- krsort($submissionIds);
- }
- $finalOrder = array_merge($finalOrder, array_values($submissionIds));
- }
- }
- return $finalOrder;
- }
-
- /**
- * Retrieve the search filters from the request.
- * @param $request Request
- * @return array All search filters (empty and active)
- */
- function getSearchFilters($request) {
- $searchFilters = array(
- 'query' => $request->getUserVar('query'),
- 'searchPress' => $request->getUserVar('searchPress'),
- 'abstract' => $request->getUserVar('abstract'),
- 'authors' => $request->getUserVar('authors'),
- 'title' => $request->getUserVar('title'),
- 'galleyFullText' => $request->getUserVar('galleyFullText'),
- 'suppFiles' => $request->getUserVar('suppFiles'),
- 'discipline' => $request->getUserVar('discipline'),
- 'subject' => $request->getUserVar('subject'),
- 'type' => $request->getUserVar('type'),
- 'coverage' => $request->getUserVar('coverage'),
- 'indexTerms' => $request->getUserVar('indexTerms')
- );
-
- // Is this a simplified query from the navigation
- // block plugin?
- $simpleQuery = $request->getUserVar('simpleQuery');
- if (!empty($simpleQuery)) {
- // In the case of a simplified query we get the
- // filter type from a drop-down.
- $searchType = $request->getUserVar('searchField');
- if (array_key_exists($searchType, $searchFilters)) {
- $searchFilters[$searchType] = $simpleQuery;
- }
- }
-
- // Publishing dates.
- $fromDate = $request->getUserDateVar('dateFrom', 1, 1);
- $searchFilters['fromDate'] = (is_null($fromDate) ? null : date('Y-m-d H:i:s', $fromDate));
- $toDate = $request->getUserDateVar('dateTo', 32, 12, null, 23, 59, 59);
- $searchFilters['toDate'] = (is_null($toDate) ? null : date('Y-m-d H:i:s', $toDate));
-
- // Instantiate the context.
- $context = $request->getContext();
- $siteSearch = !((boolean)$context);
- if ($siteSearch) {
- $contextDao = Application::getContextDAO();
- if (!empty($searchFilters['searchPress'])) {
- $context = $contextDao->getById($searchFilters['searchPress']);
- } elseif (array_key_exists('pressTitle', $request->getUserVars())) {
- $contexts = $contextDao->getAll(true);
- while ($context = $contexts->next()) {
- if (in_array(
- $request->getUserVar('pressTitle'),
- (array) $context->getTitle(null)
- )) break;
- }
- }
- }
- $searchFilters['searchPress'] = $context;
- $searchFilters['siteSearch'] = $siteSearch;
-
- return $searchFilters;
- }
-
- /**
- * Load the keywords array from a given search filter.
- * @param $searchFilters array Search filters as returned from
- * MonographSearch::getSearchFilters()
- * @return array Keyword array as required by SubmissionSearch::retrieveResults()
- */
- function getKeywordsFromSearchFilters($searchFilters) {
- $indexFieldMap = $this->getIndexFieldMap();
- $indexFieldMap[SUBMISSION_SEARCH_INDEX_TERMS] = 'indexTerms';
- $keywords = array();
- if (isset($searchFilters['query'])) {
- $keywords[null] = $searchFilters['query'];
- }
- foreach($indexFieldMap as $bitmap => $searchField) {
- if (isset($searchFilters[$searchField]) && !empty($searchFilters[$searchField])) {
- $keywords[$bitmap] = $searchFilters[$searchField];
- }
- }
- return $keywords;
- }
-
- /**
- * @copydoc SubmissionSearch::formatResults()
- */
- function formatResults($results, $user = null) {
- $contextDao = Application::getContextDAO();
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
-
- $publishedSubmissionCache = array();
- $monographCache = array();
- $contextCache = array();
- $seriesCache = array();
-
- $returner = array();
- foreach ($results as $monographId) {
- // Get the monograph, storing in cache if necessary.
- if (!isset($monographCache[$monographId])) {
- $submission = Services::get('submission')->get($monographId);
- $monographCache[$monographId] = $submission;
- $publishedSubmissionCache[$monographId] = $submission;
- }
- unset($monograph, $publishedSubmission);
- $monograph = $monographCache[$monographId];
- $publishedSubmission = $publishedSubmissionCache[$monographId];
-
- if ($monograph) {
- $seriesId = $monograph->getSeriesId();
- if (!isset($seriesCache[$seriesId])) {
- $seriesCache[$seriesId] = $seriesDao->getById($seriesId);
- }
-
- // Get the context, storing in cache if necessary.
- $contextId = $monograph->getData('contextId');
- if (!isset($contextCache[$contextId])) {
- $contextCache[$contextId] = $contextDao->getById($contextId);
- }
-
- // Store the retrieved objects in the result array.
- $returner[] = array(
- 'press' => $contextCache[$contextId],
- 'monograph' => $monograph,
- 'publishedSubmission' => $publishedSubmission,
- 'seriesArrangment' => $seriesCache[$seriesId]
- );
- }
- }
- return $returner;
- }
-
- function getIndexFieldMap() {
- return array(
- SUBMISSION_SEARCH_AUTHOR => 'authors',
- SUBMISSION_SEARCH_TITLE => 'title',
- SUBMISSION_SEARCH_ABSTRACT => 'abstract',
- SUBMISSION_SEARCH_GALLEY_FILE => 'galleyFullText',
- SUBMISSION_SEARCH_SUPPLEMENTARY_FILE => 'suppFiles',
- SUBMISSION_SEARCH_DISCIPLINE => 'discipline',
- SUBMISSION_SEARCH_SUBJECT => 'subject',
- SUBMISSION_SEARCH_KEYWORD => 'keyword',
- SUBMISSION_SEARCH_TYPE => 'type',
- SUBMISSION_SEARCH_COVERAGE => 'coverage'
- );
- }
-
- /**
- * See SubmissionSearch::getResultSetOrderingOptions()
- */
- function getResultSetOrderingOptions($request) {
- $resultSetOrderingOptions = array(
- 'score' => __('search.results.orderBy.relevance'),
- 'authors' => __('search.results.orderBy.author'),
- 'publicationDate' => __('search.results.orderBy.date'),
- 'title' => __('search.results.orderBy.monograph')
- );
-
- // Only show the "popularity" options if we have a default metric.
- $application = Application::get();
- $metricType = $application->getDefaultMetricType();
- if (!is_null($metricType)) {
- $resultSetOrderingOptions['popularityAll'] = __('search.results.orderBy.popularityAll');
- $resultSetOrderingOptions['popularityMonth'] = __('search.results.orderBy.popularityMonth');
- }
-
- // Only show the "press title" option if we have several presses.
- $context = $request->getContext();
- if (!is_a($context, 'Context')) {
- $resultSetOrderingOptions['pressTitle'] = __('search.results.orderBy.press');
- }
-
- // Let plugins mangle the search ordering options.
- HookRegistry::call(
- 'SubmissionSearch::getResultSetOrderingOptions',
- array($context, &$resultSetOrderingOptions)
- );
-
- return $resultSetOrderingOptions;
- }
-
- /**
- * See SubmissionSearch::getDefaultOrderDir()
- */
- function getDefaultOrderDir($orderBy) {
- $orderDir = 'asc';
- if (in_array($orderBy, array('score', 'publicationDate', 'popularityAll', 'popularityMonth'))) {
- $orderDir = 'desc';
- }
- return $orderDir;
- }
-
- /**
- * Return the search DAO
- * @return DAO
- */
- protected function getSearchDao() {
- return DAORegistry::getDAO('MonographSearchDAO');
- }
-}
-
-
diff --git a/classes/search/MonographSearch.php b/classes/search/MonographSearch.php
new file mode 100644
index 00000000000..63f4d910b53
--- /dev/null
+++ b/classes/search/MonographSearch.php
@@ -0,0 +1,362 @@
+ $data) {
+ $unorderedResults[$submissionId]['score'] = ($resultCount * $data['count']) + $i++;
+ $contextIds[] = $data['press_id'];
+ }
+
+ // If we got a primary sort order then apply it and use score as secondary
+ // order only.
+ // NB: We apply order after merging and before paging/formatting. Applying
+ // order before merging would require us to retrieve dependent objects for
+ // results being purged later. Doing everything in a closed SQL is not
+ // possible (e.g. for authors). Applying sort order after paging and
+ // formatting is not possible as we have to order the whole list before
+ // slicing it. So this seems to be the most appropriate place, although we
+ // may have to retrieve some objects again when formatting results.
+ $orderedResults = [];
+ $contextDao = Application::getContextDAO();
+ $contextTitles = [];
+ if ($orderBy == 'popularityAll' || $orderBy == 'popularityMonth') {
+ // Retrieve a metrics report for all submissions.
+ $filter = [
+ 'submissionIds' => [array_keys($unorderedResults)],
+ 'contextIds' => $contextIds,
+ 'assocTypes' => [Application::ASSOC_TYPE_SUBMISSION, Application::ASSOC_TYPE_SUBMISSION_FILE]
+ ];
+ if ($orderBy == 'popularityMonth') {
+ $oneMonthAgo = date('Ymd', strtotime('-1 month'));
+ $today = date('Ymd');
+ $filter['dateStart'] = $oneMonthAgo;
+ $filter['dateEnd'] = $today;
+ }
+ $rawReport = Services::get('publicationStats')->getTotals($filter);
+ foreach ($rawReport as $row) {
+ $unorderedResults[$row->submission_id]['metric'] = $row->metric;
+ }
+ }
+
+ $i = 0; // Used to prevent ties from clobbering each other
+ $authorUserGroups = Repo::userGroup()->getCollector()->filterByRoleIds([\PKP\security\Role::ROLE_ID_AUTHOR])->getMany();
+ foreach ($unorderedResults as $submissionId => $data) {
+ // Exclude unwanted IDs.
+ if (in_array($submissionId, $exclude)) {
+ continue;
+ }
+
+ switch ($orderBy) {
+ case 'authors':
+ $submission = Repo::submission()->get($submissionId);
+ $orderKey = $submission->getCurrentPublication()->getAuthorString($authorUserGroups);
+ break;
+
+ case 'title':
+ $submission = Repo::submission()->get($submissionId);
+ $orderKey = '';
+ if (!empty($submission->getCurrentPublication())) {
+ $orderKey = $submission->getCurrentPublication()->getLocalizedData('title');
+ }
+ break;
+
+ case 'pressTitle':
+ if (!isset($contextTitles[$data['press_id']])) {
+ /** @var Press */
+ $press = $contextDao->getById($data['press_id']);
+ $contextTitles[$data['press_id']] = $press->getLocalizedName();
+ }
+ $orderKey = $contextTitles[$data['press_id']];
+ break;
+
+ case 'publicationDate':
+ $orderKey = $data[$orderBy];
+ break;
+
+ case 'popularityAll':
+ case 'popularityMonth':
+ $orderKey = ($data['metric'] ?? 0);
+ break;
+
+ default: // order by score.
+ $orderKey = $data['score'];
+ }
+ if (!isset($orderedResults[$orderKey])) {
+ $orderedResults[$orderKey] = [];
+ }
+ $orderedResults[$orderKey][$data['score'] + $i++] = $submissionId;
+ }
+
+ // Order the results by primary order.
+ if (strtolower($orderDir) == 'asc') {
+ ksort($orderedResults);
+ } else {
+ krsort($orderedResults);
+ }
+
+ // Order the result by secondary order and flatten it.
+ $finalOrder = [];
+ foreach ($orderedResults as $orderKey => $submissionIds) {
+ if (count($submissionIds) == 1) {
+ $finalOrder[] = array_pop($submissionIds);
+ } else {
+ if (strtolower($orderDir) == 'asc') {
+ ksort($submissionIds);
+ } else {
+ krsort($submissionIds);
+ }
+ $finalOrder = array_merge($finalOrder, array_values($submissionIds));
+ }
+ }
+ return $finalOrder;
+ }
+
+ /**
+ * Retrieve the search filters from the request.
+ *
+ * @param Request $request
+ *
+ * @return array All search filters (empty and active)
+ */
+ public function getSearchFilters($request)
+ {
+ $searchFilters = [
+ 'query' => $request->getUserVar('query'),
+ 'searchPress' => $request->getUserVar('searchPress'),
+ 'abstract' => $request->getUserVar('abstract'),
+ 'authors' => $request->getUserVar('authors'),
+ 'title' => $request->getUserVar('title'),
+ 'galleyFullText' => $request->getUserVar('galleyFullText'),
+ 'suppFiles' => $request->getUserVar('suppFiles'),
+ 'discipline' => $request->getUserVar('discipline'),
+ 'subject' => $request->getUserVar('subject'),
+ 'type' => $request->getUserVar('type'),
+ 'coverage' => $request->getUserVar('coverage'),
+ 'indexTerms' => $request->getUserVar('indexTerms')
+ ];
+
+ // Is this a simplified query from the navigation
+ // block plugin?
+ $simpleQuery = $request->getUserVar('simpleQuery');
+ if (!empty($simpleQuery)) {
+ // In the case of a simplified query we get the
+ // filter type from a drop-down.
+ $searchType = $request->getUserVar('searchField');
+ if (array_key_exists($searchType, $searchFilters)) {
+ $searchFilters[$searchType] = $simpleQuery;
+ }
+ }
+
+ // Publishing dates.
+ $fromDate = $request->getUserDateVar('dateFrom', 1, 1);
+ $searchFilters['fromDate'] = (is_null($fromDate) ? null : date('Y-m-d H:i:s', $fromDate));
+ $toDate = $request->getUserDateVar('dateTo', 32, 12, null, 23, 59, 59);
+ $searchFilters['toDate'] = (is_null($toDate) ? null : date('Y-m-d H:i:s', $toDate));
+
+ // Instantiate the context.
+ $context = $request->getContext();
+ $siteSearch = !((bool)$context);
+ if ($siteSearch) {
+ $contextDao = Application::getContextDAO();
+ if (!empty($searchFilters['searchPress'])) {
+ $context = $contextDao->getById($searchFilters['searchPress']);
+ } elseif (array_key_exists('pressTitle', $request->getUserVars())) {
+ $contexts = $contextDao->getAll(true);
+ while ($context = $contexts->next()) {
+ if (in_array(
+ $request->getUserVar('pressTitle'),
+ (array) $context->getName(null)
+ )) {
+ break;
+ }
+ }
+ }
+ }
+ $searchFilters['searchPress'] = $context;
+ $searchFilters['siteSearch'] = $siteSearch;
+
+ return $searchFilters;
+ }
+
+ /**
+ * Load the keywords array from a given search filter.
+ *
+ * @param array $searchFilters Search filters as returned from
+ * MonographSearch::getSearchFilters()
+ *
+ * @return array Keyword array as required by SubmissionSearch::retrieveResults()
+ */
+ public function getKeywordsFromSearchFilters($searchFilters)
+ {
+ $indexFieldMap = $this->getIndexFieldMap();
+ $indexFieldMap[SubmissionSearch::SUBMISSION_SEARCH_INDEX_TERMS] = 'indexTerms';
+ $keywords = [];
+ if (isset($searchFilters['query'])) {
+ $keywords[''] = $searchFilters['query'];
+ }
+ foreach ($indexFieldMap as $bitmap => $searchField) {
+ if (isset($searchFilters[$searchField]) && !empty($searchFilters[$searchField])) {
+ $keywords[$bitmap] = $searchFilters[$searchField];
+ }
+ }
+ return $keywords;
+ }
+
+ /**
+ * @copydoc SubmissionSearch::formatResults()
+ *
+ * @param null|mixed $user
+ */
+ public function formatResults($results, $user = null)
+ {
+ $contextDao = Application::getContextDAO();
+
+ $publishedSubmissionCache = [];
+ $monographCache = [];
+ $contextCache = [];
+ $seriesCache = [];
+
+ $returner = [];
+ foreach ($results as $monographId) {
+ // Get the monograph, storing in cache if necessary.
+ if (!isset($monographCache[$monographId])) {
+ $submission = Repo::submission()->get($monographId);
+ $monographCache[$monographId] = $submission;
+ $publishedSubmissionCache[$monographId] = $submission;
+ }
+ unset($monograph, $publishedSubmission);
+ $monograph = $monographCache[$monographId];
+ $publishedSubmission = $publishedSubmissionCache[$monographId];
+
+ if ($monograph) {
+ $seriesId = $monograph->getSeriesId();
+ if (!isset($seriesCache[$seriesId])) {
+ $seriesCache[$seriesId] = $seriesId ? Repo::section()->get($seriesId) : null;
+ }
+
+ // Get the context, storing in cache if necessary.
+ $contextId = $monograph->getData('contextId');
+ if (!isset($contextCache[$contextId])) {
+ $contextCache[$contextId] = $contextDao->getById($contextId);
+ }
+
+ // Store the retrieved objects in the result array.
+ $returner[] = [
+ 'press' => $contextCache[$contextId],
+ 'monograph' => $monograph,
+ 'publishedSubmission' => $publishedSubmission,
+ 'seriesArrangement' => $seriesCache[$seriesId]
+ ];
+ }
+ }
+ return $returner;
+ }
+
+ public function getIndexFieldMap()
+ {
+ return [
+ SubmissionSearch::SUBMISSION_SEARCH_AUTHOR => 'authors',
+ SubmissionSearch::SUBMISSION_SEARCH_TITLE => 'title',
+ SubmissionSearch::SUBMISSION_SEARCH_ABSTRACT => 'abstract',
+ SubmissionSearch::SUBMISSION_SEARCH_GALLEY_FILE => 'galleyFullText',
+ SubmissionSearch::SUBMISSION_SEARCH_SUPPLEMENTARY_FILE => 'suppFiles',
+ SubmissionSearch::SUBMISSION_SEARCH_DISCIPLINE => 'discipline',
+ SubmissionSearch::SUBMISSION_SEARCH_SUBJECT => 'subject',
+ SubmissionSearch::SUBMISSION_SEARCH_KEYWORD => 'keyword',
+ SubmissionSearch::SUBMISSION_SEARCH_TYPE => 'type',
+ SubmissionSearch::SUBMISSION_SEARCH_COVERAGE => 'coverage'
+ ];
+ }
+
+ /**
+ * See SubmissionSearch::getResultSetOrderingOptions()
+ */
+ public function getResultSetOrderingOptions($request)
+ {
+ $resultSetOrderingOptions = [
+ 'score' => __('search.results.orderBy.relevance'),
+ 'authors' => __('search.results.orderBy.author'),
+ 'publicationDate' => __('search.results.orderBy.date'),
+ 'title' => __('search.results.orderBy.monograph')
+ ];
+
+ // Only show the "popularity" options if we have a default metric.
+ $resultSetOrderingOptions['popularityAll'] = __('search.results.orderBy.popularityAll');
+ $resultSetOrderingOptions['popularityMonth'] = __('search.results.orderBy.popularityMonth');
+
+ // Only show the "press title" option if we have several presses.
+ $context = $request->getContext();
+ if (!is_a($context, 'Context')) {
+ $resultSetOrderingOptions['pressTitle'] = __('search.results.orderBy.press');
+ }
+
+ // Let plugins mangle the search ordering options.
+ Hook::call(
+ 'SubmissionSearch::getResultSetOrderingOptions',
+ [$context, &$resultSetOrderingOptions]
+ );
+
+ return $resultSetOrderingOptions;
+ }
+
+ /**
+ * See SubmissionSearch::getDefaultOrderDir()
+ */
+ public function getDefaultOrderDir($orderBy)
+ {
+ $orderDir = 'asc';
+ if (in_array($orderBy, ['score', 'publicationDate', 'popularityAll', 'popularityMonth'])) {
+ $orderDir = 'desc';
+ }
+ return $orderDir;
+ }
+
+ /**
+ * Return the search DAO
+ *
+ * @return MonographSearchDAO
+ */
+ protected function getSearchDao()
+ {
+ /** @var MonographSearchDAO */
+ $dao = DAORegistry::getDAO('MonographSearchDAO');
+ return $dao;
+ }
+}
diff --git a/classes/search/MonographSearchDAO.inc.php b/classes/search/MonographSearchDAO.inc.php
deleted file mode 100644
index a72753ca340..00000000000
--- a/classes/search/MonographSearchDAO.inc.php
+++ /dev/null
@@ -1,93 +0,0 @@
- 0) $sqlWhere .= ' AND o0.object_id = o'.$i.'.object_id AND o0.pos+'.$i.' = o'.$i.'.pos';
-
- $params[] = $phrase[$i];
- }
-
- if (!empty($type)) {
- $sqlWhere .= ' AND (o.type & ?) != 0';
- $params[] = $type;
- }
-
- if (!empty($press)) {
- $sqlWhere .= ' AND s.context_id = ?';
- $params[] = $press->getId();
- }
-
- import('classes.submission.Submission'); // import STATUS_PUBLISHED constant
- $params[] = STATUS_PUBLISHED;
-
- $result = $this->retrieve(
- $sql = 'SELECT
- o.submission_id,
- s.context_id as press_id,
- p.date_published as s_pub,
- COUNT(*) AS count
- FROM
- submissions s,
- publications p,
- submission_search_objects o NATURAL JOIN ' . $sqlFrom . '
- WHERE o.submission_id = s.submission_id
- AND s.current_publication_id = p.publication_id
- AND ' . $sqlWhere . '
- AND s.status = ?
- GROUP BY o.submission_id, s.context_id, p.date_published
- ORDER BY count DESC
- LIMIT ' . $limit,
- $params,
- 3600 * $cacheHours // Cache for 24 hours
- );
-
- $returner = [];
- foreach ($result as $row) {
- $returner[$row->submission_id] = [
- 'count' => $row->count,
- 'press_id' => $row->press_id,
- 'publicationDate' => $this->datetimeFromDB($row->s_pub)
- ];
- }
- return $returner;
- }
-}
-
-
diff --git a/classes/search/MonographSearchDAO.php b/classes/search/MonographSearchDAO.php
new file mode 100644
index 00000000000..387aa900791
--- /dev/null
+++ b/classes/search/MonographSearchDAO.php
@@ -0,0 +1,111 @@
+ 0) {
+ $sqlWhere .= ' AND o0.object_id = o' . $i . '.object_id AND o0.pos+' . $i . ' = o' . $i . '.pos';
+ }
+
+ $params[] = $phrase[$i];
+ }
+
+ if (!empty($type)) {
+ $sqlWhere .= ' AND (o.type & ?) != 0';
+ $params[] = $type;
+ }
+
+ if (!empty($press)) {
+ $sqlWhere .= ' AND s.context_id = ?';
+ $params[] = $press->getId();
+ }
+
+ $params[] = PKPSubmission::STATUS_PUBLISHED;
+
+ $result = $this->retrieve(
+ $sql = 'SELECT
+ o.submission_id,
+ s.context_id as press_id,
+ p.date_published as s_pub,
+ COUNT(*) AS count
+ FROM
+ submissions s,
+ publications p,
+ submission_search_objects o NATURAL JOIN ' . $sqlFrom . '
+ WHERE o.submission_id = s.submission_id
+ AND s.current_publication_id = p.publication_id
+ AND ' . $sqlWhere . '
+ AND s.status = ?
+ GROUP BY o.submission_id, s.context_id, p.date_published
+ ORDER BY count DESC
+ LIMIT ' . $limit,
+ $params,
+ 3600 * $cacheHours // Cache for 24 hours
+ );
+
+ $returner = [];
+ foreach ($result as $row) {
+ $returner[$row->submission_id] = [
+ 'count' => $row->count,
+ 'press_id' => $row->press_id,
+ 'publicationDate' => $this->datetimeFromDB($row->s_pub)
+ ];
+ }
+ return $returner;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\search\MonographSearchDAO', '\MonographSearchDAO');
+}
diff --git a/classes/search/MonographSearchIndex.inc.php b/classes/search/MonographSearchIndex.inc.php
deleted file mode 100644
index 0e60534921b..00000000000
--- a/classes/search/MonographSearchIndex.inc.php
+++ /dev/null
@@ -1,231 +0,0 @@
-filterKeywords($text);
- for ($i = 0, $count = count($keywords); $i < $count; $i++) {
- if ($searchDao->insertObjectKeyword($objectId, $keywords[$i], $position) !== null) {
- $position += 1;
- }
- }
- }
-
- /**
- * Add a block of text to the search index.
- * @param $monographId int
- * @param $type int
- * @param $text string
- * @param $assocId int optional
- */
- public function updateTextIndex($monographId, $type, $text, $assocId = null) {
- $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /* @var $searchDao MonographSearchDAO */
- $objectId = $searchDao->insertObject($monographId, $type, $assocId);
- $position = 0;
- $this->indexObjectKeywords($objectId, $text, $position);
- }
-
- /**
- * Add a file to the search index.
- * @param $monographId int
- * @param $type int
- * @param $submissionFileId int
- */
- public function updateFileIndex($monographId, $type, $submissionFileId) {
- $submisssionFile = Services::get('submissionFile')->get($submissionFileId);
-
- if (isset($submisssionFile)) {
- $parser = SearchFileParser::fromFile($submisssionFile);
- }
-
- if (isset($parser)) {
- if ($parser->open()) {
- $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /* @var $searchDao MonographSearchDAO */
- $objectId = $searchDao->insertObject($monographId, $type, $submissionFileId);
-
- $position = 0;
- while(($text = $parser->read()) !== false) {
- $this->indexObjectKeywords($objectId, $text, $position);
- }
- $parser->close();
- } else {
- // cannot open parser; unsupported format?
- }
- }
- }
-
- /**
- * Delete keywords from the search index.
- * @param $monographId int
- * @param $type int optional
- * @param $assocId int optional
- */
- public function deleteTextIndex($monographId, $type = null, $assocId = null) {
- $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /* @var $searchDao MonographSearchDAO */
- return $searchDao->deleteSubmissionKeywords($monographId, $type, $assocId);
- }
-
- /**
- * Index monograph metadata.
- * @param Submission $submission
- */
- public function submissionMetadataChanged($submission) {
- $publication = $submission->getCurrentPublication();
-
- // Build author keywords
- $authorText = [];
- foreach ($publication->getData('authors') as $author) {
- $authorText = array_merge(
- $authorText,
- array_values((array) $author->getData('givenName')),
- array_values((array) $author->getData('familyName')),
- array_values((array) $author->getData('preferredPublicName')),
- array_values(array_map('strip_tags', (array) $author->getData('affiliation'))),
- array_values(array_map('strip_tags', (array) $author->getData('biography')))
- );
- }
-
- // Update search index
- import('classes.search.MonographSearch');
- $submissionId = $submission->getId();
- $this->updateTextIndex($submissionId, SUBMISSION_SEARCH_AUTHOR, $authorText);
- $this->updateTextIndex($submissionId, SUBMISSION_SEARCH_TITLE, $publication->getData('title'));
- $this->updateTextIndex($submissionId, SUBMISSION_SEARCH_ABSTRACT, $publication->getData('abstract'));
-
- $this->updateTextIndex($submissionId, SUBMISSION_SEARCH_SUBJECT, (array) $this->_flattenLocalizedArray($publication->getData('subjects')));
- $this->updateTextIndex($submissionId, SUBMISSION_SEARCH_KEYWORD, (array) $this->_flattenLocalizedArray($publication->getData('keywords')));
- $this->updateTextIndex($submissionId, SUBMISSION_SEARCH_DISCIPLINE, (array) $this->_flattenLocalizedArray($publication->getData('disciplines')));
- $this->updateTextIndex($submissionId, SUBMISSION_SEARCH_TYPE, (array) $publication->getData('type'));
- $this->updateTextIndex($submissionId, SUBMISSION_SEARCH_COVERAGE, (array) $publication->getData('coverage'));
- // FIXME Index sponsors too?
- }
-
- /**
- * Index all monograph files (galley files).
- * @param $monograph Monograph
- */
- public function submissionFilesChanged($monograph) {
- // Index galley files
- import('lib.pkp.classes.submission.SubmissionFile'); // Constants
- import('classes.search.MonographSearch'); // Constants
- $submissionFiles = Services::get('submissionFile')->getMany([
- 'submissionIds' => [$monograph->getId()],
- 'fileStages' => [SUBMISSION_FILE_PROOF],
- ]);
-
- foreach ($submissionFiles as $submissionFile) {
- $this->updateFileIndex($monograph->getId(), SUBMISSION_SEARCH_GALLEY_FILE, $submissionFile->getId());
- }
- }
-
- /**
- * @copydoc SubmissionSearchIndex::clearSubmissionFiles()
- */
- public function clearSubmissionFiles($submission) {
- $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /* @var $searchDao MonographSearchDAO */
- $searchDao->deleteSubmissionKeywords($submission->getId(), SUBMISSION_SEARCH_GALLEY_FILE);
- }
-
- /**
- * @copydoc SubmissionSearchIndex::submissionChangesFinished()
- */
- public function submissionChangesFinished() {
- // Trigger a hook to let the indexing back-end know that
- // the index may be updated.
- HookRegistry::call(
- 'MonographSearchIndex::monographChangesFinished'
- );
-
- // The default indexing back-end works completely synchronously
- // and will therefore not do anything here.
- }
-
- /**
- * @copydoc SubmissionSearchIndex::submissionChangesFinished()
- */
- public function monographChangesFinished() {
- if (Config::getVar('debug', 'deprecation_warnings')) trigger_error('Deprecated call to monographChangesFinished. Use submissionChangesFinished instead.');
- $this->submissionChangesFinished();
- }
-
-
- /**
- * Rebuild the search index for all presses.
- * @param $log boolean Whether or not to log progress to the console.
- */
- public function rebuildIndex($log = false) {
- // Clear index
- if ($log) echo 'Clearing index ... ';
- $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /* @var $searchDao MonographSearchDAO */
- // FIXME Abstract into MonographSearchDAO?
- $searchDao->update('DELETE FROM submission_search_object_keywords');
- $searchDao->update('DELETE FROM submission_search_objects');
- $searchDao->update('DELETE FROM submission_search_keyword_list');
- $searchDao->setCacheDir(Config::getVar('files', 'files_dir') . '/_db');
- if ($log) echo "done\n";
-
- // Build index
- $pressDao = DAORegistry::getDAO('PressDAO'); /* @var $pressDao PressDAO */
- $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
-
- $presses = $pressDao->getAll();
- while ($press = $presses->next()) {
- $numIndexed = 0;
-
- if ($log) echo "Indexing \"", $press->getLocalizedName(), "\" ... ";
-
- $monographs = $submissionDao->getByContextId($press->getId());
- while (!$monographs->eof()) {
- $monograph = $monographs->next();
- if ($monograph->getDatePublished()) {
- $this->submissionMetadataChanged($monograph);
- $this->submissionFilesChanged($monograph);
- $numIndexed++;
- }
- }
- $this->submissionChangesFinished();
-
- if ($log) echo $numIndexed, " monographs indexed\n";
- }
- }
-
- /**
- * Flattens array of localized fields to a single, non-associative array of items
- *
- * @param $arrayWithLocales array Array of localized fields
- * @return array
- */
- protected function _flattenLocalizedArray($arrayWithLocales) {
- $flattenedArray = array();
- foreach ($arrayWithLocales as $localeArray) {
- $flattenedArray = array_merge(
- $flattenedArray,
- $localeArray
- );
- }
- return $flattenedArray;
- }
-}
-
diff --git a/classes/search/MonographSearchIndex.php b/classes/search/MonographSearchIndex.php
new file mode 100644
index 00000000000..f54c317d0e5
--- /dev/null
+++ b/classes/search/MonographSearchIndex.php
@@ -0,0 +1,343 @@
+filterKeywords($text);
+ $searchDao->insertObjectKeywords($objectId, $keywords);
+ }
+
+ /**
+ * Add a block of text to the search index.
+ *
+ * @param int $monographId
+ * @param int $type
+ * @param string|string[] $text
+ * @param int $assocId optional
+ */
+ public function updateTextIndex($monographId, $type, $text, $assocId = null)
+ {
+ $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /** @var MonographSearchDAO $searchDao */
+ $objectId = $searchDao->insertObject($monographId, $type, $assocId);
+ $this->indexObjectKeywords($objectId, $text);
+ }
+
+ /**
+ * Add a file to the search index.
+ *
+ * @param int $monographId
+ * @param int $type
+ * @param SubmissionFile $submissionFile
+ */
+ public function submissionFileChanged($monographId, $type, $submissionFile)
+ {
+ if (Hook::ABORT === Hook::call('MonographSearchIndex::submissionFileChanged', [$monographId, $type, $submissionFile->getId()])) {
+ return;
+ }
+
+ // If no search plug-in is activated then fall back to the default database search implementation.
+ $parser = SearchFileParser::fromFile($submissionFile);
+ if (!$parser) {
+ error_log("Skipped indexation: No suitable parser for the submission file \"{$submissionFile->getData('path')}\"");
+ return;
+ }
+ try {
+ $parser->open();
+ try {
+ $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /** @var MonographSearchDAO $searchDao */
+ $objectId = $searchDao->insertObject($monographId, $type, $submissionFile->getId());
+ do {
+ for ($buffer = ''; ($chunk = $parser->read()) !== false && strlen($buffer .= $chunk) < static::MINIMUM_DATA_LENGTH;);
+ if (strlen($buffer)) {
+ $this->indexObjectKeywords($objectId, $buffer);
+ }
+ } while ($chunk !== false);
+ } finally {
+ $parser->close();
+ }
+ } catch (Throwable $e) {
+ throw new Exception("Indexation failed for the file: \"{$submissionFile->getData('path')}\"", 0, $e);
+ }
+ }
+
+ /**
+ * Delete keywords from the search index.
+ *
+ * @param int $monographId
+ * @param int $type optional
+ * @param int $assocId optional
+ */
+ public function deleteTextIndex($monographId, $type = null, $assocId = null)
+ {
+ $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /** @var MonographSearchDAO $searchDao */
+ return $searchDao->deleteSubmissionKeywords($monographId, $type, $assocId);
+ }
+
+ /**
+ * Index monograph metadata.
+ *
+ * @param Submission $submission
+ */
+ public function submissionMetadataChanged($submission)
+ {
+ // Check whether a search plug-in jumps in.
+ if (Hook::ABORT === Hook::call('MonographSearchIndex::monographMetadataChanged', [$submission])) {
+ return;
+ }
+
+ $publication = $submission->getCurrentPublication();
+
+ // Build author keywords
+ $authorText = [];
+ foreach ($publication->getData('authors') as $author) {
+ $authorText = array_merge(
+ $authorText,
+ array_values((array) $author->getData('givenName')),
+ array_values((array) $author->getData('familyName')),
+ array_values((array) $author->getData('preferredPublicName')),
+ array_values(array_map('strip_tags', (array) $author->getData('affiliation'))),
+ array_values(array_map('strip_tags', (array) $author->getData('biography')))
+ );
+ }
+
+ // Update search index
+ $submissionId = $submission->getId();
+ $this->updateTextIndex($submissionId, SubmissionSearch::SUBMISSION_SEARCH_AUTHOR, $authorText);
+ $this->updateTextIndex($submissionId, SubmissionSearch::SUBMISSION_SEARCH_TITLE, $publication->getData('title'));
+ $this->updateTextIndex($submissionId, SubmissionSearch::SUBMISSION_SEARCH_ABSTRACT, $publication->getData('abstract'));
+
+ $this->updateTextIndex($submissionId, SubmissionSearch::SUBMISSION_SEARCH_SUBJECT, (array) $this->_flattenLocalizedArray($publication->getData('subjects')));
+ $this->updateTextIndex($submissionId, SubmissionSearch::SUBMISSION_SEARCH_KEYWORD, (array) $this->_flattenLocalizedArray($publication->getData('keywords')));
+ $this->updateTextIndex($submissionId, SubmissionSearch::SUBMISSION_SEARCH_DISCIPLINE, (array) $this->_flattenLocalizedArray($publication->getData('disciplines')));
+ $this->updateTextIndex($submissionId, SubmissionSearch::SUBMISSION_SEARCH_TYPE, (array) $publication->getData('type'));
+ $this->updateTextIndex($submissionId, SubmissionSearch::SUBMISSION_SEARCH_COVERAGE, (array) $publication->getData('coverage'));
+ // FIXME Index sponsors too?
+ }
+
+ /**
+ * Index all monograph files (galley files).
+ *
+ * @param Submission $monograph
+ */
+ public function submissionFilesChanged($monograph)
+ {
+ // If a search plug-in is activated then skip the default database search implementation.
+ if (Hook::ABORT === Hook::call('MonographSearchIndex::submissionFilesChanged', [$monograph])) {
+ return;
+ }
+
+ // Index galley files
+ $submissionFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$monograph->getId()])
+ ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_PROOF])
+ ->getMany();
+
+ $exceptions = [];
+ foreach ($submissionFiles as $submissionFile) {
+ try {
+ $this->submissionFileChanged($monograph->getId(), SubmissionSearch::SUBMISSION_SEARCH_GALLEY_FILE, $submissionFile);
+ } catch (Throwable $e) {
+ $exceptions[] = $e;
+ }
+ $dependentFiles = Repo::submissionFile()->getCollector()
+ ->filterByAssoc(
+ Application::ASSOC_TYPE_SUBMISSION_FILE,
+ [$submissionFile->getId()]
+ )
+ ->filterBySubmissionIds([$monograph->getId()])
+ ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_DEPENDENT])
+ ->includeDependentFiles()
+ ->getMany();
+
+ foreach ($dependentFiles as $dependentFile) {
+ try {
+ $this->submissionFileChanged($monograph->getId(), SubmissionSearch::SUBMISSION_SEARCH_SUPPLEMENTARY_FILE, $dependentFile);
+ } catch (Throwable $e) {
+ $exceptions[] = $e;
+ }
+ }
+ }
+ if (count($exceptions)) {
+ $errorMessage = implode("\n\n", $exceptions);
+ throw new Exception("The following errors happened while indexing the submission ID {$monograph->getId()}:\n{$errorMessage}");
+ }
+ }
+
+ /**
+ * @copydoc SubmissionSearchIndex::clearSubmissionFiles()
+ */
+ public function clearSubmissionFiles($submission)
+ {
+ $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /** @var MonographSearchDAO $searchDao */
+ $searchDao->deleteSubmissionKeywords($submission->getId(), SubmissionSearch::SUBMISSION_SEARCH_GALLEY_FILE);
+ }
+
+ /**
+ * Signal to the indexing back-end that a file was deleted.
+ *
+ * @see MonographSearchIndex::submissionMetadataChanged() above for more
+ * comments.
+ *
+ * @param int $type optional
+ * @param int $assocId optional
+ */
+ public function submissionFileDeleted($monographId, $type = null, $assocId = null)
+ {
+ // If a search plug-in is activated then skip the default database search implementation.
+ if (Hook::ABORT === Hook::call('MonographSearchIndex::submissionFileDeleted', [$monographId, $type, $assocId])) {
+ return;
+ }
+
+ $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /** @var MonographSearchDAO $searchDao */
+ return $searchDao->deleteSubmissionKeywords($monographId, $type, $assocId);
+ }
+
+ /**
+ * @copydoc SubmissionSearchIndex::submissionChangesFinished()
+ */
+ public function submissionChangesFinished()
+ {
+ // Trigger a hook to let the indexing back-end know that
+ // the index may be updated.
+ Hook::call(
+ 'MonographSearchIndex::monographChangesFinished'
+ );
+
+ // The default indexing back-end works completely synchronously
+ // and will therefore not do anything here.
+ }
+
+ /**
+ * @copydoc SubmissionSearchIndex::submissionChangesFinished()
+ */
+ public function monographChangesFinished()
+ {
+ if (Config::getVar('debug', 'deprecation_warnings')) {
+ trigger_error('Deprecated call to monographChangesFinished. Use submissionChangesFinished instead.');
+ }
+ $this->submissionChangesFinished();
+ }
+
+
+ /**
+ * Rebuild the search index for all presses.
+ *
+ * @param bool $log Whether or not to log progress to the console.
+ * @param \APP\press\Press $press If given the user wishes to
+ * re-index only one press. Not all search implementations
+ * may be able to do so. Most notably: The default SQL
+ * implementation does not support press-specific re-indexing
+ * as index data is not partitioned by press.
+ * @param array $switches Optional index administration switches.
+ */
+ public function rebuildIndex($log = false, $press = null, $switches = [])
+ {
+ // If a search plug-in is activated then skip the default database search implementation.
+ if (Hook::ABORT === Hook::call('MonographSearchIndex::rebuildIndex', [$log, $press, $switches])) {
+ return;
+ }
+
+ // Check that no press was given as we do not support press-specific re-indexing.
+ if ($press instanceof Press) {
+ exit(__('search.cli.rebuildIndex.indexingByPressNotSupported') . "\n");
+ }
+
+ // Clear index
+ if ($log) {
+ echo __('search.cli.rebuildIndex.clearingIndex') . ' ... ';
+ }
+ $searchDao = DAORegistry::getDAO('MonographSearchDAO'); /** @var MonographSearchDAO $searchDao */
+ $searchDao->clearIndex();
+ if ($log) {
+ echo __('search.cli.rebuildIndex.done') . "\n";
+ }
+
+ // Build index
+ $pressDao = DAORegistry::getDAO('PressDAO'); /** @var PressDAO $pressDao */
+
+ $presses = $pressDao->getAll()->toIterator();
+ foreach ($presses as $press) {
+ $numIndexed = 0;
+
+ if ($log) {
+ echo __('search.cli.rebuildIndex.indexing', ['pressName' => $press->getLocalizedName()]) . ' ... ';
+ }
+
+ $submissions = Repo::submission()
+ ->getCollector()
+ ->filterByContextIds([$press->getId()])
+ ->getMany();
+
+ foreach ($submissions as $submission) {
+ dispatch(new UpdateSubmissionSearchJob($submission->getId()));
+ ++$numIndexed;
+ }
+
+ if ($log) {
+ echo __('search.cli.rebuildIndex.result', ['numIndexed' => $numIndexed]) . "\n";
+ }
+ }
+ }
+
+ /**
+ * Flattens array of localized fields to a single, non-associative array of items
+ *
+ * @param array $arrayWithLocales Array of localized fields
+ *
+ * @return array
+ */
+ protected function _flattenLocalizedArray($arrayWithLocales)
+ {
+ $flattenedArray = [];
+ foreach ($arrayWithLocales as $localeArray) {
+ $flattenedArray = array_merge(
+ $flattenedArray,
+ $localeArray
+ );
+ }
+ return $flattenedArray;
+ }
+}
diff --git a/classes/section/DAO.php b/classes/section/DAO.php
new file mode 100644
index 00000000000..87a234fc709
--- /dev/null
+++ b/classes/section/DAO.php
@@ -0,0 +1,123 @@
+ 'series_id',
+ 'contextId' => 'press_id',
+ 'reviewFormId' => 'review_form_id',
+ 'sequence' => 'seq',
+ 'featured' => 'featured',
+ 'editorRestricted' => 'editor_restricted',
+ 'path' => 'path',
+ 'image' => 'image',
+ 'isInactive' => 'is_inactive'
+ ];
+
+ /**
+ * Get the parent object ID column name
+ */
+ public function getParentColumn(): string
+ {
+ return 'press_id';
+ }
+
+ /**
+ * Retrieve a series by path.
+ */
+ public function getByPath(string $path, int $pressId = null): ?Section
+ {
+ $row = DB::table($this->table)
+ ->where('path', $path)
+ ->when($pressId !== null, fn (Builder $query) => $query->where($this->getParentColumn(), $pressId))
+ ->first();
+ return $row ? $this->fromRow($row) : null;
+ }
+
+ /**
+ * Associate a category with a series.
+ */
+ public function addToCategory(int $seriesId, int $categoryId): void
+ {
+ DB::table('series_categories')
+ ->insert(['series_id' => $seriesId, 'category_id' => $categoryId]);
+ }
+
+ /**
+ * Disassociate all categories with a series
+ */
+ public function removeFromCategory(int $seriesId): void
+ {
+ DB::table('series_categories')
+ ->where('series_id', $seriesId)
+ ->delete();
+ }
+
+ /**
+ * Get the category IDs associated with a series
+ */
+ public function getAssignedCategoryIds(int $seriesId): Enumerable
+ {
+ return DB::table('series_categories')
+ ->where('series_id', $seriesId)
+ ->pluck('category_id');
+ }
+
+ /**
+ * Get the categories associated with a series.
+ */
+ public function getAssignedCategories(int $seriesId, ?int $contextId = null): Enumerable
+ {
+ return $this
+ ->getAssignedCategoryIds($seriesId)
+ ->map(fn ($categoryId) => Repo::category()->get($categoryId, $contextId));
+ }
+
+ /**
+ * Check if an association between a series and a category exists.
+ */
+ public function categoryAssociationExists(int $seriesId, int $categoryId): bool
+ {
+ return DB::table('series_categories')
+ ->where('series_id', $seriesId)
+ ->where('category_id', $categoryId)
+ ->exists();
+ }
+}
diff --git a/classes/section/Repository.php b/classes/section/Repository.php
new file mode 100644
index 00000000000..70a66266034
--- /dev/null
+++ b/classes/section/Repository.php
@@ -0,0 +1,70 @@
+dao->getByPath($path, $pressId);
+ }
+
+ /** @copydoc DAO::addToCategory() */
+ public function addToCategory(int $seriesId, int $categoryId): void
+ {
+ $this->dao->addToCategory($seriesId, $categoryId);
+ }
+
+ /** @copydoc DAO::removeFromCategory() */
+ public function removeFromCategory(int $seriesId): void
+ {
+ $this->dao->removeFromCategory($seriesId);
+ }
+
+ /** @copydoc DAO::getAssignedCategoryIds() */
+ public function getAssignedCategoryIds(int $seriesId): Enumerable
+ {
+ return $this->dao->getAssignedCategoryIds($seriesId);
+ }
+
+ /** @copydoc DAO::getAssignedCategories() */
+ public function getAssignedCategories(int $seriesId, ?int $contextId = null): Enumerable
+ {
+ return $this->dao->getAssignedCategories($seriesId, $contextId);
+ }
+
+ /** @copydoc DAO::categoryAssociationExists() */
+ public function categoryAssociationExists(int $seriesId, int $categoryId): bool
+ {
+ return $this->dao->categoryAssociationExists($seriesId, $categoryId);
+ }
+
+ /**
+ * Check if the section has any submissions assigned to it.
+ */
+ public function isEmpty(int $seriesId, int $contextId): bool
+ {
+ return Repo::submission()
+ ->getCollector()
+ ->filterByContextIds([$contextId])
+ ->filterBySeriesIds([$seriesId])
+ ->getCount() === 0;
+ }
+}
diff --git a/classes/section/Section.php b/classes/section/Section.php
new file mode 100644
index 00000000000..9f23f1e2abf
--- /dev/null
+++ b/classes/section/Section.php
@@ -0,0 +1,300 @@
+getLocalizedData('title');
+ if ($includePrefix) {
+ $title = $this->getLocalizedPrefix() . ' ' . $title;
+ }
+ return $title;
+ }
+
+ /**
+ * Get title of series.
+ */
+ public function getTitle(?string $locale, bool $includePrefix = true): string|array|null
+ {
+ $title = $this->getData('title', $locale);
+ if ($includePrefix) {
+ if (is_array($title)) {
+ foreach ($title as $locale => $currentTitle) {
+ $title[$locale] = $this->getPrefix($locale) . ' ' . $currentTitle;
+ }
+ } else {
+ $title = $this->getPrefix($locale) . ' ' . $title;
+ }
+ }
+ return $title;
+ }
+
+ /**
+ * Get the series full title (with title + prefix and subtitle).
+ */
+ public function getLocalizedFullTitle(): string
+ {
+ $fullTitle = $this->getLocalizedTitle();
+ if ($subtitle = $this->getLocalizedSubtitle()) {
+ $fullTitle = PKPString::concatTitleFields([$fullTitle, $subtitle]);
+ }
+ return $fullTitle;
+ }
+
+ /**
+ * Get localized prefix of series.
+ */
+ public function getLocalizedPrefix(): ?string
+ {
+ return $this->getLocalizedData('prefix');
+ }
+
+ /**
+ * Get prefix of series.
+ */
+ public function getPrefix(?string $locale): string|array|null
+ {
+ return $this->getData('prefix', $locale);
+ }
+
+ /**
+ * Set prefix of series.
+ */
+ public function setPrefix(string|array $prefix, string $locale = null): void
+ {
+ $this->setData('prefix', $prefix, $locale);
+ }
+
+ /**
+ * Get localized subtitle of series
+ */
+ public function getLocalizedSubtitle(): ?string
+ {
+ return $this->getLocalizedData('subtitle');
+ }
+
+ /**
+ * Get subtitle of series
+ */
+ public function getSubtitle(?string $locale): string|array|null
+ {
+ return $this->getData('subtitle', $locale);
+ }
+
+ /**
+ * Set subtitle of series
+ */
+ public function setSubtitle(string|array $subtitle, string $locale = null): void
+ {
+ $this->setData('subtitle', $subtitle, $locale);
+ }
+
+ /**
+ * Get the featured flag.
+ */
+ public function getFeatured(): bool
+ {
+ return $this->getData('featured');
+ }
+
+ /**
+ * Set the featured flag.
+ */
+ public function setFeatured(bool $featured): void
+ {
+ $this->setData('featured', $featured);
+ }
+
+ /**
+ * Get the image.
+ */
+ public function getImage(): array
+ {
+ return $this->getData('image');
+ }
+
+ /**
+ * Set the image.
+ */
+ public function setImage(array $image): void
+ {
+ $this->setData('image', $image);
+ }
+
+ /**
+ * Get online ISSN.
+ */
+ public function getOnlineISSN(): ?string
+ {
+ return $this->getData('onlineIssn');
+ }
+
+ /**
+ * Set online ISSN.
+ */
+ public function setOnlineISSN(?string $onlineIssn): void
+ {
+ $this->setData('onlineIssn', $onlineIssn);
+ }
+
+ /**
+ * Get print ISSN.
+ */
+ public function getPrintISSN(): ?string
+ {
+ return $this->getData('printIssn');
+ }
+
+ /**
+ * Get ID of primary review form.
+ */
+ public function getReviewFormId(): ?int
+ {
+ return $this->getData('reviewFormId');
+ }
+
+ /**
+ * Set ID of primary review form.
+ */
+ public function setReviewFormId(?int $reviewFormId): void
+ {
+ $this->setData('reviewFormId', $reviewFormId);
+ }
+
+ /**
+ * Set print ISSN.
+ */
+ public function setPrintISSN(?string $printIssn): void
+ {
+ $this->setData('printIssn', $printIssn);
+ }
+
+ /**
+ * Get the option how the books in this series should be sorted,
+ * in the form: sortBy-sortDir.
+ */
+ public function getSortOption(): ?string
+ {
+ return $this->getData('sortOption');
+ }
+
+ /**
+ * Set the option how the books in this series should be sorted,
+ * in the form: sortBy-sortDir.
+ */
+ public function setSortOption(?string $sortOption): void
+ {
+ $this->setData('sortOption', $sortOption);
+ }
+
+ /**
+ * Get section path.
+ *
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->getData('path');
+ }
+
+ /**
+ * Set section path.
+ *
+ * @param string $path
+ */
+ public function setPath($path)
+ {
+ return $this->setData('path', $path);
+ }
+
+ /**
+ * Get localized series description.
+ */
+ public function getLocalizedDescription(): ?string
+ {
+ return $this->getLocalizedData('description');
+ }
+
+ /**
+ * Get series description.
+ */
+ public function getDescription(?string $locale): string|array|null
+ {
+ return $this->getData('description', $locale);
+ }
+
+ /**
+ * Set series description.
+ */
+ public function setDescription(string|array $description, string $locale = null): void
+ {
+ $this->setData('description', $description, $locale);
+ }
+
+ /**
+ * Returns a string with the full name of all series
+ * editors, separated by a comma.
+ *
+ */
+ public function getEditorsString(): string
+ {
+ $subEditorsDao = DAORegistry::getDAO('SubEditorsDAO'); /** @var SubEditorsDAO $subEditorsDao */
+ $assignments = $subEditorsDao->getBySubmissionGroupIds([$this->getId()], Application::ASSOC_TYPE_SECTION, $this->getData('contextId'));
+ $editors = Repo::user()
+ ->getCollector()
+ ->filterByUserIds(
+ $assignments
+ ->map(fn (stdClass $assignment) => $assignment->userId)
+ ->filter()
+ ->toArray()
+ )
+ ->getMany();
+
+ $separator = ', ';
+ $str = '';
+
+ foreach ($editors as $editor) {
+ if (!empty($str)) {
+ $str .= $separator;
+ }
+
+ $str .= $editor->getFullName();
+ $editor = null;
+ }
+
+ return $str;
+ }
+}
diff --git a/classes/section/maps/Schema.php b/classes/section/maps/Schema.php
new file mode 100644
index 00000000000..c6d4d5034d7
--- /dev/null
+++ b/classes/section/maps/Schema.php
@@ -0,0 +1,41 @@
+request->getDispatcher()->url(
+ $this->request,
+ Application::ROUTE_PAGE,
+ $this->context->getPath(),
+ 'catalog',
+ 'series',
+ $series->getPath()
+ );
+ }
+ $output = $this->schemaService->addMissingMultilingualValues($this->schema, $output, $this->context->getSupportedFormLocales());
+ ksort($output);
+ return $this->withExtensions($output, $series);
+ }
+}
diff --git a/classes/security/authorization/OmpPublishedSubmissionAccessPolicy.inc.php b/classes/security/authorization/OmpPublishedSubmissionAccessPolicy.inc.php
deleted file mode 100644
index 31ae83bf376..00000000000
--- a/classes/security/authorization/OmpPublishedSubmissionAccessPolicy.inc.php
+++ /dev/null
@@ -1,34 +0,0 @@
-addPolicy(new OmpPublishedSubmissionRequiredPolicy($request, $args, $submissionParameterName));
- }
-}
-
-
diff --git a/classes/security/authorization/OmpPublishedSubmissionAccessPolicy.php b/classes/security/authorization/OmpPublishedSubmissionAccessPolicy.php
new file mode 100644
index 00000000000..faba10fdbe4
--- /dev/null
+++ b/classes/security/authorization/OmpPublishedSubmissionAccessPolicy.php
@@ -0,0 +1,42 @@
+addPolicy(new OmpPublishedSubmissionRequiredPolicy($request, $args, $submissionParameterName));
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\security\authorization\OmpPublishedSubmissionAccessPolicy', '\OmpPublishedSubmissionAccessPolicy');
+}
diff --git a/classes/security/authorization/OmpPublishedSubmissionRequiredPolicy.inc.php b/classes/security/authorization/OmpPublishedSubmissionRequiredPolicy.inc.php
deleted file mode 100644
index 5dabd01a4b0..00000000000
--- a/classes/security/authorization/OmpPublishedSubmissionRequiredPolicy.inc.php
+++ /dev/null
@@ -1,83 +0,0 @@
-context = $request->getContext();
- }
-
- //
- // Implement template methods from AuthorizationPolicy
- //
- /**
- * @see DataObjectRequiredPolicy::dataObjectEffect()
- */
- function dataObjectEffect() {
- $submissionId = $this->getDataObjectId();
- if (!$submissionId) return AUTHORIZATION_DENY;
-
- // Make sure the published submissions belongs to the press.
- $submission = Services::get('submission')->getByUrlPath($submissionId, $this->context->getId());
- if (!$submission && ctype_digit((string) $submissionId)) {
- $submission = Services::get('submission')->get($submissionId);
- if ($submission && $submission->getContextId() != $this->context->getId()) return AUTHORIZATION_DENY;
- }
- if (!$submission || $submission->getData('status') !== STATUS_PUBLISHED) return AUTHORIZATION_DENY;
-
- // Save the published submission to the authorization context.
- $this->addAuthorizedContextObject(ASSOC_TYPE_SUBMISSION, $submission);
- return AUTHORIZATION_PERMIT;
- }
-
- /**
- * @copydoc DataObjectRequiredPolicy::getDataObjectId()
- * Considers a not numeric public URL identifier
- */
- function getDataObjectId($lookOnlyByParameterName = false) {
- // Identify the data object id.
- $router = $this->_request->getRouter();
- switch(true) {
- case is_a($router, 'PKPPageRouter'):
- if ( ctype_digit((string) $this->_request->getUserVar($this->_parameterName)) ) {
- // We may expect a object id in the user vars
- return (int) $this->_request->getUserVar($this->_parameterName);
- } else if (isset($this->_args[0])) {
- // Or the object id can be expected as the first path in the argument list
- return $this->_args[0];
- }
- break;
-
- default:
- return parent::getDataObjectId($lookOnlyByParameterName);
- }
-
- return false;
- }
-}
-
-
diff --git a/classes/security/authorization/OmpPublishedSubmissionRequiredPolicy.php b/classes/security/authorization/OmpPublishedSubmissionRequiredPolicy.php
new file mode 100644
index 00000000000..4245cec1a91
--- /dev/null
+++ b/classes/security/authorization/OmpPublishedSubmissionRequiredPolicy.php
@@ -0,0 +1,101 @@
+context = $request->getContext();
+ }
+
+ //
+ // Implement template methods from AuthorizationPolicy
+ //
+ /**
+ * @see DataObjectRequiredPolicy::dataObjectEffect()
+ */
+ public function dataObjectEffect()
+ {
+ $submissionId = $this->getDataObjectId();
+ if (!$submissionId) {
+ return AuthorizationPolicy::AUTHORIZATION_DENY;
+ }
+
+ // Make sure the published submissions belongs to the press.
+ $submission = ctype_digit((string) $submissionId)
+ ? Repo::submission()->get((int) $submissionId, $this->context->getId())
+ : Repo::submission()->getByUrlPath($submissionId, $this->context->getId());
+
+ if (!$submission) {
+ return AuthorizationPolicy::AUTHORIZATION_DENY;
+ }
+
+ // Save the published submission to the authorization context.
+ $this->addAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION, $submission);
+ return AuthorizationPolicy::AUTHORIZATION_PERMIT;
+ }
+
+ /**
+ * @copydoc DataObjectRequiredPolicy::getDataObjectId()
+ * Considers a not numeric public URL identifier
+ */
+ public function getDataObjectId($lookOnlyByParameterName = false)
+ {
+ // Identify the data object id.
+ $router = $this->_request->getRouter();
+ switch (true) {
+ case $router instanceof \PKP\core\PKPPageRouter:
+ if (ctype_digit((string) $this->_request->getUserVar($this->_parameterName))) {
+ // We may expect a object id in the user vars
+ return (int) $this->_request->getUserVar($this->_parameterName);
+ } elseif (isset($this->_args[0])) {
+ // Or the object id can be expected as the first path in the argument list
+ return $this->_args[0];
+ }
+ break;
+
+ default:
+ return parent::getDataObjectId($lookOnlyByParameterName);
+ }
+
+ return false;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\security\authorization\OmpPublishedSubmissionRequiredPolicy', '\OmpPublishedSubmissionRequiredPolicy');
+}
diff --git a/classes/services/ContextService.inc.php b/classes/services/ContextService.inc.php
deleted file mode 100644
index 7ca52705730..00000000000
--- a/classes/services/ContextService.inc.php
+++ /dev/null
@@ -1,276 +0,0 @@
-installFileDirs = array(
- \Config::getVar('files', 'files_dir') . '/%s/%d',
- \Config::getVar('files', 'files_dir'). '/%s/%d/monographs',
- \Config::getVar('files', 'public_files_dir') . '/%s/%d',
- );
-
- \HookRegistry::register('Context::edit', array($this, 'afterEditContext'));
- \HookRegistry::register('Context::delete::before', array($this, 'beforeDeleteContext'));
- \HookRegistry::register('Context::delete', array($this, 'afterDeleteContext'));
- \HookRegistry::register('Context::validate', array($this, 'validateContext'));
- }
-
- /**
- * Update press-specific settings when a context is edited
- *
- * @param $hookName string
- * @param $args array [
- * @option Press The new context
- * @option Press The current context
- * @option array The params to edit
- * @option Request
- * ]
- */
- public function afterEditContext($hookName, $args) {
- $newContext = $args[0];
- $currentContext = $args[1];
- $params = $args[2];
- $request = $args[3];
-
- // If the context is enabled or disabled, create or delete publication
- // format tombstones for all published submissions
- if ($newContext->getData('enabled') !== $currentContext->getData('enabled')) {
- import('classes.publicationFormat.PublicationFormatTombstoneManager');
- $publicationFormatTombstoneMgr = new \PublicationFormatTombstoneManager();
- if ($newContext->getData('enabled')) {
- $publicationFormatTombstoneMgr->deleteTombstonesByPressId($newContext->getId());
- } else {
- $publicationFormatTombstoneMgr->insertTombstonesByPress($newContext);
- }
- }
-
- // If the cover image sizes have been changed, resize existing images
- if (($newContext->getData('coverThumbnailsMaxWidth') !== $currentContext->getData('coverThumbnailsMaxWidth'))
- || ($newContext->getData('coverThumbnailsMaxHeight') !== $currentContext->getData('coverThumbnailsMaxHeight'))) {
- $this->resizeCoverThumbnails($newContext, $newContext->getData('coverThumbnailsMaxWidth'), $newContext->getData('coverThumbnailsMaxHeight'));
- }
-
- // Move an uploaded press thumbnail and set the updated data
- if (!empty($params['pressThumbnail'])) {
- $supportedLocales = $newContext->getSupportedFormLocales();
- foreach ($supportedLocales as $localeKey) {
- if (!array_key_exists($localeKey, $params['pressThumbnail'])) {
- continue;
- }
- $localeValue = $this->_saveFileParam(
- $newContext,
- $params['pressThumbnail'][$localeKey],
- 'pressThumbnail',
- $request->getUser()->getId(),
- $localeKey,
- true
- );
- $newContext->setData('pressThumbnail', $localeValue, $localeKey);
- }
- }
- }
-
- /**
- * Perform actions before a context has been deleted
- *
- * This should only be used in cases where you need the context to still exist
- * in the database to complete the actions. Otherwise, use
- * ContextService::afterDeleteContext().
- *
- * @param $hookName string
- * @param $args array [
- * @option Context The new context
- * @option Request
- * ]
- */
- public function beforeDeleteContext($hookName, $args) {
- $context = $args[0];
-
- // Create publication format tombstones for all published submissions
- import('classes.publicationFormat.PublicationFormatTombstoneManager');
- $publicationFormatTombstoneMgr = new \PublicationFormatTombstoneManager();
- $publicationFormatTombstoneMgr->insertTombstonesByPress($context);
- }
-
- /**
- * Perform additional actions after a context has been deleted
- *
- * @param $hookName string
- * @param $args array [
- * @option Context The new context
- * @option Request
- * ]
- */
- public function afterDeleteContext($hookName, $args) {
- $context = $args[0];
-
- $seriesDao = \DAORegistry::getDAO('SeriesDAO');
- $seriesDao->deleteByPressId($context->getId());
-
- $submissionDao = \DAORegistry::getDAO('SubmissionDAO');
- $submissionDao->deleteByContextId($context->getId());
-
- $featureDao = \DAORegistry::getDAO('FeatureDAO');
- $featureDao->deleteByAssoc(ASSOC_TYPE_PRESS, $context->getId());
-
- $newReleaseDao = \DAORegistry::getDAO('NewReleaseDAO');
- $newReleaseDao->deleteByAssoc(ASSOC_TYPE_PRESS, $context->getId());
-
- import('classes.file.PublicFileManager');
- $publicFileManager = new \PublicFileManager();
- $publicFileManager->rmtree($publicFileManager->getContextFilesPath($context->getId()));
- }
-
- /**
- * Make additional validation checks
- *
- * @param $hookName string
- * @param $args array [
- * @option Context The new context
- * @option Request
- * ]
- */
- public function validateContext($hookName, $args) {
- $errors =& $args[0];
- $props = $args[2];
-
- if (!empty($props['codeType'])) {
- if (!\DAORegistry::getDAO('ONIXCodelistItemDAO')->codeExistsInList($props['codeType'], 'List44')) {
- $errors['codeType'] = [__('manager.settings.publisherCodeType.invalid')];
- }
- }
- }
-
- /**
- * Resize cover image thumbnails
- *
- * Processes all cover images to resize the thumbnails according to the passed
- * width and height maximums.
- *
- * @param $context Context
- * @param $maxWidth int The maximum width allowed for a cover image
- * @param $maxHeight int The maximum width allowed for a cover image
- */
- public function resizeCoverThumbnails($context, $maxWidth, $maxHeight) {
- import('lib.pkp.classes.file.FileManager');
- import('classes.file.PublicFileManager');
- import('lib.pkp.classes.file.ContextFileManager');
- $fileManager = new \FileManager();
- $publicFileManager = new \PublicFileManager();
- $contextFileManager = new \ContextFileManager($context->getId());
-
- $objectDaos = [
- \DAORegistry::getDAO('CategoryDAO'),
- \DAORegistry::getDAO('SeriesDAO'),
- \DAORegistry::getDAO('SubmissionDAO'),
- ];
- foreach ($objectDaos as $objectDao) {
- $objects = $objectDao->getByContextId($context->getId());
- while ($object = $objects->next()) {
- if (is_a($object, 'Submission')) {
- foreach ($object->getData('publications') as $publication) {
- foreach ((array) $publication->getData('coverImage') as $coverImage) {
- $coverImageFilePath = $publicFileManager->getContextFilesPath($context->getId()) . '/' . $coverImage['uploadName'];
- Services::get('publication')->makeThumbnail(
- $coverImageFilePath,
- Services::get('publication')->getThumbnailFileName($coverImage['uploadName']),
- $maxWidth,
- $maxHeight
- );
- }
- }
- } else {
- $cover = $object->getImage();
- if (is_a($object, 'Series')) {
- $basePath = $contextFileManager->getBasePath() . 'series/';
- } elseif (is_a($object, 'Category')) {
- $basePath = $contextFileManager->getBasePath() . 'categories/';
- }
- }
- if ($cover) {
- // delete old cover thumbnail
- $fileManager->deleteByPath($basePath . $cover['thumbnailName']);
-
- // get settings necessary for the new thumbnail
- $coverExtension = $fileManager->getExtension($cover['name']);
- $xRatio = min(1, $maxWidth / $cover['width']);
- $yRatio = min(1, $maxHeight / $cover['height']);
- $ratio = min($xRatio, $yRatio);
- $thumbnailWidth = round($ratio * $cover['width']);
- $thumbnailHeight = round($ratio * $cover['height']);
-
- // create a thumbnail image of the defined size
- $thumbnail = imagecreatetruecolor($thumbnailWidth, $thumbnailHeight);
-
- // generate the image of the original cover
- switch ($coverExtension) {
- case 'jpg': $coverImage = imagecreatefromjpeg($basePath . $cover['name']); break;
- case 'png': $coverImage = imagecreatefrompng($basePath . $cover['name']); break;
- case 'gif': $coverImage = imagecreatefromgif($basePath . $cover['name']); break;
- default: $coverImage = null; // Suppress warn
- }
- assert($coverImage);
-
- // copy the cover image to the thumbnail
- imagecopyresampled($thumbnail, $coverImage, 0, 0, 0, 0, $thumbnailWidth, $thumbnailHeight, $cover['width'], $cover['height']);
-
- // create the thumbnail file
- switch ($coverExtension) {
- case 'jpg': imagejpeg($thumbnail, $basePath . $cover['thumbnailName']); break;
- case 'png': imagepng($thumbnail, $basePath . $cover['thumbnailName']); break;
- case 'gif': imagegif($thumbnail, $basePath . $cover['thumbnailName']); break;
- }
-
- imagedestroy($thumbnail);
- if (is_a($object, 'Submission')) {
- $object->setCoverImage(array(
- 'name' => $cover['name'],
- 'width' => $cover['width'],
- 'height' => $cover['height'],
- 'thumbnailName' => $cover['thumbnailName'],
- 'thumbnailWidth' => $thumbnailWidth,
- 'thumbnailHeight' => $thumbnailHeight,
- 'uploadName' => $cover['uploadName'],
- 'dateUploaded' => $cover['dateUploaded'],
- ));
- } else {
- $object->setImage(array(
- 'name' => $cover['name'],
- 'width' => $cover['width'],
- 'height' => $cover['height'],
- 'thumbnailName' => $cover['thumbnailName'],
- 'thumbnailWidth' => $thumbnailWidth,
- 'thumbnailHeight' => $thumbnailHeight,
- 'uploadName' => $cover['uploadName'],
- 'dateUploaded' => $cover['dateUploaded'],
- ));
- }
- // Update category object to store new thumbnail information.
- $objectDao->updateObject($object);
- }
- unset($object);
- }
- }
- }
-}
diff --git a/classes/services/ContextService.php b/classes/services/ContextService.php
new file mode 100644
index 00000000000..3e90ae8c03c
--- /dev/null
+++ b/classes/services/ContextService.php
@@ -0,0 +1,335 @@
+installFileDirs = [
+ Config::getVar('files', 'files_dir') . '/%s/%d',
+ Config::getVar('files', 'files_dir') . '/%s/%d/monographs',
+ Config::getVar('files', 'public_files_dir') . '/%s/%d',
+ ];
+
+ Hook::add('Context::edit', [$this, 'afterEditContext']);
+ Hook::add('Context::delete::before', [$this, 'beforeDeleteContext']);
+ Hook::add('Context::delete', [$this, 'afterDeleteContext']);
+ Hook::add('Context::validate', [$this, 'validateContext']);
+ }
+
+ /**
+ * Update press-specific settings when a context is edited
+ *
+ * @param string $hookName
+ * @param array $args [
+ *
+ * @option Press The new context
+ * @option Press The current context
+ * @option array The params to edit
+ * @option Request
+ * ]
+ */
+ public function afterEditContext($hookName, $args)
+ {
+ $newContext = $args[0];
+ $currentContext = $args[1];
+ $params = $args[2];
+ $request = $args[3];
+
+ // If the context is enabled or disabled, create or delete publication
+ // format tombstones for all published submissions
+ if ($newContext->getData('enabled') !== $currentContext->getData('enabled')) {
+ $publicationFormatTombstoneMgr = new PublicationFormatTombstoneManager();
+ if ($newContext->getData('enabled')) {
+ $publicationFormatTombstoneMgr->deleteTombstonesByPressId($newContext->getId());
+ } else {
+ $publicationFormatTombstoneMgr->insertTombstonesByPress($newContext);
+ }
+ }
+
+ // If the cover image sizes have been changed, resize existing images
+ if (($newContext->getData('coverThumbnailsMaxWidth') !== $currentContext->getData('coverThumbnailsMaxWidth'))
+ || ($newContext->getData('coverThumbnailsMaxHeight') !== $currentContext->getData('coverThumbnailsMaxHeight'))) {
+ $this->resizeCoverThumbnails($newContext, $newContext->getData('coverThumbnailsMaxWidth'), $newContext->getData('coverThumbnailsMaxHeight'));
+ }
+
+ // Move an uploaded press thumbnail and set the updated data
+ if (!empty($params['pressThumbnail'])) {
+ $supportedLocales = $newContext->getSupportedFormLocales();
+ foreach ($supportedLocales as $localeKey) {
+ if (!array_key_exists($localeKey, $params['pressThumbnail'])) {
+ continue;
+ }
+ $localeValue = $this->_saveFileParam(
+ $newContext,
+ $params['pressThumbnail'][$localeKey],
+ 'pressThumbnail',
+ $request->getUser()->getId(),
+ $localeKey,
+ true
+ );
+ $newContext->setData('pressThumbnail', $localeValue, $localeKey);
+ }
+ }
+ }
+
+ /**
+ * Perform actions before a context has been deleted
+ *
+ * This should only be used in cases where you need the context to still exist
+ * in the database to complete the actions. Otherwise, use
+ * ContextService::afterDeleteContext().
+ *
+ * @param string $hookName
+ * @param array $args [
+ *
+ * @option Context The new context
+ * @option Request
+ * ]
+ */
+ public function beforeDeleteContext($hookName, $args)
+ {
+ $context = $args[0];
+
+ // Create publication format tombstones for all published submissions
+ $publicationFormatTombstoneMgr = new PublicationFormatTombstoneManager();
+ $publicationFormatTombstoneMgr->insertTombstonesByPress($context);
+
+ /** @var GenreDAO */
+ $genreDao = DAORegistry::getDAO('GenreDAO');
+ $genreDao->deleteByContextId($context->getId());
+ }
+
+ /**
+ * Perform additional actions after a context has been deleted
+ *
+ * @param string $hookName
+ * @param array $args [
+ *
+ * @option Context The new context
+ * @option Request
+ * ]
+ */
+ public function afterDeleteContext($hookName, $args)
+ {
+ $context = $args[0];
+
+ Repo::section()->deleteMany(
+ Repo::section()
+ ->getCollector()
+ ->filterByContextIds([$context->getId()])
+ );
+
+ Repo::submission()->deleteByContextId($context->getId());
+
+ /** @var FeatureDAO */
+ $featureDao = DAORegistry::getDAO('FeatureDAO');
+ $featureDao->deleteByAssoc(Application::ASSOC_TYPE_PRESS, $context->getId());
+
+ /** @var NewReleaseDAO */
+ $newReleaseDao = DAORegistry::getDAO('NewReleaseDAO');
+ $newReleaseDao->deleteByAssoc(Application::ASSOC_TYPE_PRESS, $context->getId());
+
+ $publicFileManager = new PublicFileManager();
+ $publicFileManager->rmtree($publicFileManager->getContextFilesPath($context->getId()));
+ }
+
+ /**
+ * Make additional validation checks
+ *
+ * @param string $hookName
+ * @param array $args [
+ *
+ * @option Context The new context
+ * @option Request
+ * ]
+ */
+ public function validateContext($hookName, $args)
+ {
+ $errors = & $args[0];
+ $props = $args[2];
+
+ if (!empty($props['codeType'])) {
+ /** @var ONIXCodelistItemDAO */
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO');
+ if (!$onixCodelistItemDao->codeExistsInList($props['codeType'], 'List44')) {
+ $errors['codeType'] = [__('manager.settings.publisherCodeType.invalid')];
+ }
+ }
+ }
+
+ /**
+ * Resize cover image thumbnails
+ *
+ * Processes all cover images to resize the thumbnails according to the passed
+ * width and height maximums.
+ *
+ * @param Press $context
+ * @param int $maxWidth The maximum width allowed for a cover image
+ * @param int $maxHeight The maximum width allowed for a cover image
+ */
+ public function resizeCoverThumbnails($context, $maxWidth, $maxHeight)
+ {
+ $fileManager = new FileManager();
+ $publicFileManager = new PublicFileManager();
+ $contextFileManager = new ContextFileManager($context->getId());
+
+ $objectDaos = [
+ Repo::submission()->dao,
+ Repo::section()->dao,
+ Repo::submission()->dao,
+ ];
+ foreach ($objectDaos as $objectDao) {
+ if ($objectDao instanceof \PKP\submission\DAO) {
+ $objects = Repo::submission()
+ ->getCollector()
+ ->filterByContextIds([$context->getId()])
+ ->getMany()
+ ->toArray();
+ } elseif ($objectDao instanceof \PKP\category\DAO) {
+ $objects = Repo::category()->getCollector()
+ ->filterByContextIds([$context->getId()])
+ ->getMany()
+ ->toArray();
+ } elseif ($objectDao instanceof \PKP\section\DAO) {
+ $objects = Repo::section()
+ ->getCollector()
+ ->filterByContextIds([$context->getId()])
+ ->getMany()
+ ->toArray();
+ } else {
+ throw new \Exception('Unknown DAO ' . get_class($objectDao) . ' for cover image!');
+ }
+
+ foreach ($objects as $object) {
+ if ($object instanceof Submission) {
+ foreach ($object->getData('publications') as $publication) {
+ foreach ((array) $publication->getData('coverImage') as $coverImage) {
+ $coverImageFilePath = $publicFileManager->getContextFilesPath($context->getId()) . '/' . $coverImage['uploadName'];
+ Repo::publication()->makeThumbnail(
+ $coverImageFilePath,
+ Repo::publication()->getThumbnailFileName($coverImage['uploadName']),
+ $maxWidth,
+ $maxHeight
+ );
+ }
+ }
+ continue;
+ }
+
+ // $object is a category or section
+ $cover = $object->getImage();
+ if ($object instanceof \APP\section\Section) {
+ $basePath = $contextFileManager->getBasePath() . 'series/';
+ } elseif ($object instanceof \PKP\category\Category) {
+ $basePath = $contextFileManager->getBasePath() . 'categories/';
+ }
+
+ if ($cover) {
+ // delete old cover thumbnail
+ $fileManager->deleteByPath($basePath . $cover['thumbnailName']);
+
+ // get settings necessary for the new thumbnail
+ $coverExtension = $fileManager->getExtension($cover['name']);
+ $xRatio = min(1, $maxWidth / $cover['width']);
+ $yRatio = min(1, $maxHeight / $cover['height']);
+ $ratio = min($xRatio, $yRatio);
+ $thumbnailWidth = round($ratio * $cover['width']);
+ $thumbnailHeight = round($ratio * $cover['height']);
+
+ // create a thumbnail image of the defined size
+ $thumbnail = imagecreatetruecolor($thumbnailWidth, $thumbnailHeight);
+
+ // generate the image of the original cover
+ switch ($coverExtension) {
+ case 'jpg': $coverImage = imagecreatefromjpeg($basePath . $cover['name']);
+ break;
+ case 'png': $coverImage = imagecreatefrompng($basePath . $cover['name']);
+ break;
+ case 'gif': $coverImage = imagecreatefromgif($basePath . $cover['name']);
+ break;
+ default: $coverImage = null; // Suppress warn
+ }
+ assert($coverImage);
+
+ // copy the cover image to the thumbnail
+ imagecopyresampled($thumbnail, $coverImage, 0, 0, 0, 0, $thumbnailWidth, $thumbnailHeight, $cover['width'], $cover['height']);
+
+ // create the thumbnail file
+ switch ($coverExtension) {
+ case 'jpg': imagejpeg($thumbnail, $basePath . $cover['thumbnailName']);
+ break;
+ case 'png': imagepng($thumbnail, $basePath . $cover['thumbnailName']);
+ break;
+ case 'gif': imagegif($thumbnail, $basePath . $cover['thumbnailName']);
+ break;
+ }
+
+ imagedestroy($thumbnail);
+ if ($object instanceof Submission) {
+ $object->setData('coverImage', [
+ 'name' => $cover['name'],
+ 'width' => $cover['width'],
+ 'height' => $cover['height'],
+ 'thumbnailName' => $cover['thumbnailName'],
+ 'thumbnailWidth' => $thumbnailWidth,
+ 'thumbnailHeight' => $thumbnailHeight,
+ 'uploadName' => $cover['uploadName'],
+ 'dateUploaded' => $cover['dateUploaded'],
+ ]);
+ } else {
+ $object->setImage([
+ 'name' => $cover['name'],
+ 'width' => $cover['width'],
+ 'height' => $cover['height'],
+ 'thumbnailName' => $cover['thumbnailName'],
+ 'thumbnailWidth' => $thumbnailWidth,
+ 'thumbnailHeight' => $thumbnailHeight,
+ 'uploadName' => $cover['uploadName'],
+ 'dateUploaded' => $cover['dateUploaded'],
+ ]);
+ }
+ // Update category object to store new thumbnail information.
+ $objectDao->update($object);
+ }
+ }
+ }
+ }
+}
diff --git a/classes/services/NavigationMenuService.inc.php b/classes/services/NavigationMenuService.inc.php
deleted file mode 100644
index 20fc5e41803..00000000000
--- a/classes/services/NavigationMenuService.inc.php
+++ /dev/null
@@ -1,210 +0,0 @@
- array(
- 'title' => __('navigation.catalog'),
- 'description' => __('navigation.navigationMenus.catalog.description'),
- ),
- NMI_TYPE_NEW_RELEASE => array(
- 'title' => __('navigation.navigationMenus.newRelease'),
- 'description' => __('navigation.navigationMenus.newRelease.description'),
- ),
- );
-
- $request = \Application::get()->getRequest();
- $context = $request->getContext();
- $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
-
- $seriesDao = \DAORegistry::getDAO('SeriesDAO');
- $series = $seriesDao->getByContextId($contextId);
-
- if ($series->count) {
- $newArray = array(
- NMI_TYPE_SERIES => array(
- 'title' => __('navigation.navigationMenus.series.generic'),
- 'description' => __('navigation.navigationMenus.series.description'),
- ),
- );
-
- $ompTypes = array_merge($ompTypes, $newArray);
-
- }
-
- $categoryDao = \DAORegistry::getDAO('CategoryDAO');
- $categories = $categoryDao->getByParentId(null, $contextId);
-
- if ($categories->count) {
- $newArray = array(
- NMI_TYPE_CATEGORY => array(
- 'title' => __('navigation.navigationMenus.category.generic'),
- 'description' => __('navigation.navigationMenus.category.description'),
- ),
- );
-
- $ompTypes = array_merge($ompTypes, $newArray);
- }
-
- $types = array_merge($types, $ompTypes);
- }
-
- /**
- * Return all navigationMenuItem Types custom edit templates.
- * @param $hookName string
- * @param $args array of arguments passed
- */
- public function getMenuItemCustomEditTemplatesCallback($hookName, $args) {
- $templates =& $args[0];
-
- \AppLocale::requireComponents(LOCALE_COMPONENT_APP_COMMON, LOCALE_COMPONENT_PKP_USER);
-
- $ompTemplates = array(
- NMI_TYPE_CATEGORY => array(
- 'template' => 'controllers/grid/navigationMenus/categoriesNMIType.tpl',
- ),
- NMI_TYPE_SERIES => array(
- 'template' => 'controllers/grid/navigationMenus/seriesNMIType.tpl',
- ),
- );
-
- $templates = array_merge($templates, $ompTemplates);
- }
-
- /**
- * Callback for display menu item functionallity
- * @param $hookName string
- * @param $args array of arguments passed
- */
- function getDisplayStatusCallback($hookName, $args) {
- $navigationMenuItem =& $args[0];
-
- $request = \Application::get()->getRequest();
- $dispatcher = $request->getDispatcher();
- $templateMgr = \TemplateManager::getManager(\Application::get()->getRequest());
-
- $isUserLoggedIn = \Validation::isLoggedIn();
- $isUserLoggedInAs = \Validation::isLoggedInAs();
- $context = $request->getContext();
- $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
-
- $this->transformNavMenuItemTitle($templateMgr, $navigationMenuItem);
-
- $menuItemType = $navigationMenuItem->getType();
-
- if ($navigationMenuItem->getIsDisplayed()) {
- $menuItemType = $navigationMenuItem->getType();
-
- $relatedObject = null;
-
- switch ($menuItemType) {
- case NMI_TYPE_SERIES:
- $seriesId = $navigationMenuItem->getPath();
-
- $seriesDao = \DAORegistry::getDAO('SeriesDAO');
- $relatedObject = $seriesDao->getById($seriesId, $contextId);
-
- break;
- case NMI_TYPE_CATEGORY:
- $categoryId = $navigationMenuItem->getPath();
-
- $categoryDao = \DAORegistry::getDAO('CategoryDAO');
- $relatedObject = $categoryDao->getById($categoryId, $contextId);
-
- break;
- }
-
- // Set the URL
- switch ($menuItemType) {
- case NMI_TYPE_CATALOG:
- $navigationMenuItem->setUrl($dispatcher->url(
- $request,
- ROUTE_PAGE,
- null,
- 'catalog',
- null,
- null
- ));
- break;
- case NMI_TYPE_NEW_RELEASE:
- $navigationMenuItem->setUrl($dispatcher->url(
- $request,
- ROUTE_PAGE,
- null,
- 'catalog',
- 'newReleases',
- null
- ));
- break;
- case NMI_TYPE_SERIES:
- if ($relatedObject) {
- $navigationMenuItem->setUrl($dispatcher->url(
- $request,
- ROUTE_PAGE,
- null,
- 'catalog',
- 'series',
- $relatedObject->getPath()
- ));
- } else {
- $navigationMenuItem->setIsDisplayed(false);
- }
- break;
- case NMI_TYPE_CATEGORY:
- if ($relatedObject) {
- $navigationMenuItem->setUrl($dispatcher->url(
- $request,
- ROUTE_PAGE,
- null,
- 'catalog',
- 'category',
- $relatedObject->getPath()
- ));
- } else {
- $navigationMenuItem->setIsDisplayed(false);
- }
- break;
- }
- }
- }
-}
diff --git a/classes/services/NavigationMenuService.php b/classes/services/NavigationMenuService.php
new file mode 100644
index 00000000000..d4cb7e81de8
--- /dev/null
+++ b/classes/services/NavigationMenuService.php
@@ -0,0 +1,232 @@
+ [
+ 'title' => __('navigation.catalog'),
+ 'description' => __('navigation.navigationMenus.catalog.description'),
+ ],
+ self::NMI_TYPE_NEW_RELEASE => [
+ 'title' => __('navigation.navigationMenus.newRelease'),
+ 'description' => __('navigation.navigationMenus.newRelease.description'),
+ ],
+ ];
+
+ $request = Application::get()->getRequest();
+ $context = $request->getContext();
+ $contextId = $context ? $context->getId() : Application::CONTEXT_ID_NONE;
+
+ $series = Repo::section()
+ ->getCollector()
+ ->filterByContextIds([$contextId])
+ ->getMany();
+
+ if ($series->count()) {
+ $newArray = [
+ self::NMI_TYPE_SERIES => [
+ 'title' => __('navigation.navigationMenus.series.generic'),
+ 'description' => __('navigation.navigationMenus.series.description'),
+ ],
+ ];
+
+ $ompTypes = array_merge($ompTypes, $newArray);
+ }
+
+ $categoryCount = Repo::category()->getCollector()
+ ->filterByParentIds([null])
+ ->filterByContextIds([$contextId])
+ ->getCount();
+
+ if ($categoryCount) {
+ $newArray = [
+ self::NMI_TYPE_CATEGORY => [
+ 'title' => __('navigation.navigationMenus.category.generic'),
+ 'description' => __('navigation.navigationMenus.category.description'),
+ ],
+ ];
+
+ $ompTypes = array_merge($ompTypes, $newArray);
+ }
+
+ $types = array_merge($types, $ompTypes);
+ }
+
+ /**
+ * Return all navigationMenuItem Types custom edit templates.
+ *
+ * @param string $hookName
+ * @param array $args of arguments passed
+ */
+ public function getMenuItemCustomEditTemplatesCallback($hookName, $args)
+ {
+ $templates = & $args[0];
+
+ $ompTemplates = [
+ self::NMI_TYPE_CATEGORY => [
+ 'template' => 'controllers/grid/navigationMenus/categoriesNMIType.tpl',
+ ],
+ self::NMI_TYPE_SERIES => [
+ 'template' => 'controllers/grid/navigationMenus/seriesNMIType.tpl',
+ ],
+ ];
+
+ $templates = array_merge($templates, $ompTemplates);
+ }
+
+ /**
+ * Callback for display menu item functionality
+ *
+ * @param string $hookName
+ * @param array $args of arguments passed
+ */
+ public function getDisplayStatusCallback($hookName, $args)
+ {
+ $navigationMenuItem = & $args[0];
+
+ $request = Application::get()->getRequest();
+ $dispatcher = $request->getDispatcher();
+ $templateMgr = TemplateManager::getManager(Application::get()->getRequest());
+
+ $isUserLoggedIn = Validation::isLoggedIn();
+ $isUserLoggedInAs = (bool) Validation::loggedInAs();
+ $context = $request->getContext();
+ $contextId = $context ? $context->getId() : Application::CONTEXT_ID_NONE;
+
+ $this->transformNavMenuItemTitle($templateMgr, $navigationMenuItem);
+
+ $menuItemType = $navigationMenuItem->getType();
+
+ if ($navigationMenuItem->getIsDisplayed()) {
+ $menuItemType = $navigationMenuItem->getType();
+
+ $relatedObject = null;
+
+ switch ($menuItemType) {
+ case self::NMI_TYPE_SERIES:
+ $seriesId = $navigationMenuItem->getPath();
+ $relatedObject = $seriesId ? Repo::section()->get($seriesId, $contextId) : null;
+ break;
+ case self::NMI_TYPE_CATEGORY:
+ $categoryId = $navigationMenuItem->getPath();
+ $relatedObject = Repo::category()->get($categoryId);
+ if ($relatedObject && $relatedObject->getContextId() != $contextId) {
+ $relatedObject = null;
+ }
+ break;
+ }
+
+ // Set the URL
+ switch ($menuItemType) {
+ case self::NMI_TYPE_CATALOG:
+ $navigationMenuItem->setUrl($dispatcher->url(
+ $request,
+ PKPApplication::ROUTE_PAGE,
+ null,
+ 'catalog',
+ null,
+ null
+ ));
+ break;
+ case self::NMI_TYPE_NEW_RELEASE:
+ $navigationMenuItem->setUrl($dispatcher->url(
+ $request,
+ PKPApplication::ROUTE_PAGE,
+ null,
+ 'catalog',
+ 'newReleases',
+ null
+ ));
+ break;
+ case self::NMI_TYPE_SERIES:
+ if ($relatedObject) {
+ $navigationMenuItem->setUrl($dispatcher->url(
+ $request,
+ PKPApplication::ROUTE_PAGE,
+ null,
+ 'catalog',
+ 'series',
+ $relatedObject->getPath()
+ ));
+ } else {
+ $navigationMenuItem->setIsDisplayed(false);
+ }
+ break;
+ case self::NMI_TYPE_CATEGORY:
+ if ($relatedObject) {
+ $navigationMenuItem->setUrl($dispatcher->url(
+ $request,
+ PKPApplication::ROUTE_PAGE,
+ null,
+ 'catalog',
+ 'category',
+ $relatedObject->getPath()
+ ));
+ } else {
+ $navigationMenuItem->setIsDisplayed(false);
+ }
+ break;
+ }
+ }
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ foreach ([
+ 'NMI_TYPE_CATALOG',
+ 'NMI_TYPE_SERIES',
+ 'NMI_TYPE_CATEGORY',
+ 'NMI_TYPE_NEW_RELEASE',
+ ] as $constantName) {
+ define($constantName, constant('\APP\services\NavigationMenuService::' . $constantName));
+ }
+}
diff --git a/classes/services/OMPServiceProvider.inc.php b/classes/services/OMPServiceProvider.inc.php
deleted file mode 100644
index 93088c258b7..00000000000
--- a/classes/services/OMPServiceProvider.inc.php
+++ /dev/null
@@ -1,119 +0,0 @@
-deleteById($publicationFormat->getId());
-
- // Delete publication format metadata
- $metadataDaos = ['IdentificationCodeDAO', 'MarketDAO', 'PublicationDateDAO', 'SalesRightsDAO'];
- foreach ($metadataDaos as $metadataDao) {
- $result = DAORegistry::getDAO($metadataDao)->getByPublicationFormatId($publicationFormat->getId());
- while (!$result->eof()) {
- $object = $result->next();
- DAORegistry::getDAO($metadataDao)->deleteObject($object);
- }
- }
-
- // Delete submission files for this publication format
- $submissionFiles = Services::get('submissionFile')->getMany([
- 'submissionIds' => [$submission->getId()],
- 'assocTypes' => [ASSOC_TYPE_REPRESENTATION],
- 'assocIds' => [$publicationFormat->getId()],
- ]);
- foreach ($submissionFiles as $submissionFile) {
- Services::get('submissionFile')->delete($submissionFile);
- }
-
- // Log the deletion of the format.
- import('lib.pkp.classes.log.SubmissionLog');
- import('classes.log.SubmissionEventLogEntry');
- \SubmissionLog::logEvent(Application::get()->getRequest(), $submission, SUBMISSION_LOG_PUBLICATION_FORMAT_REMOVE, 'submission.event.publicationFormatRemoved', array('formatName' => $publicationFormat->getLocalizedName()));
- }
-}
diff --git a/classes/services/PublicationFormatService.php b/classes/services/PublicationFormatService.php
new file mode 100644
index 00000000000..ac49470cbee
--- /dev/null
+++ b/classes/services/PublicationFormatService.php
@@ -0,0 +1,84 @@
+deleteById($publicationFormat->getId());
+
+ // Delete publication format metadata
+ $metadataDaos = ['IdentificationCodeDAO', 'MarketDAO', 'PublicationDateDAO', 'SalesRightsDAO'];
+ foreach ($metadataDaos as $metadataDao) {
+ /** @var IdentificationCodeDAO|MarketDAO|PublicationDateDAO|SalesRightsDAO */
+ $dao = DAORegistry::getDAO($metadataDao);
+ $result = $dao->getByPublicationFormatId($publicationFormat->getId());
+ while (!$result->eof()) {
+ $object = $result->next();
+ $dao->deleteObject($object);
+ }
+ }
+
+ $submissionFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$submission->getId()])
+ ->filterByAssoc(
+ Application::ASSOC_TYPE_REPRESENTATION,
+ [$publicationFormat->getId()]
+ )
+ ->getMany();
+
+ // Delete submission files for this publication format
+ foreach ($submissionFiles as $submissionFile) {
+ Repo::submissionFile()->delete($submissionFile);
+ }
+
+ // Log the deletion of the format.
+ $eventLog = Repo::eventLog()->newDataObject([
+ 'assocType' => PKPApplication::ASSOC_TYPE_SUBMISSION,
+ 'assocId' => $submission->getId(),
+ 'eventType' => SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_REMOVE,
+ 'userId' => Application::get()->getRequest()->getUser()?->getId(),
+ 'message' => 'submission.event.publicationFormatRemoved',
+ 'isTranslated' => false,
+ 'dateLogged' => Core::getCurrentDate(),
+ 'publicationFormatName' => $publicationFormat->getData('name') // formatName
+ ]);
+ Repo::eventLog()->add($eventLog);
+ }
+}
diff --git a/classes/services/PublicationService.inc.php b/classes/services/PublicationService.inc.php
deleted file mode 100644
index 0e894a66013..00000000000
--- a/classes/services/PublicationService.inc.php
+++ /dev/null
@@ -1,548 +0,0 @@
-getDispatcher();
-
- // Get required submission and context
- $submission = !empty($args['submission'])
- ? $args['submission']
- : $args['submission'] = Services::get('submission')->get($publication->getData('submissionId'));
-
- $submissionContext = !empty($dependencies['context'])
- ? $dependencies['context']
- : $dependencies['context'] = Services::get('context')->get($submission->getData('contextId'));
-
- foreach ($props as $prop) {
- switch ($prop) {
- case 'chapters':
- $values[$prop] = array_map(
- function($chapter) use ($publication) {
- $data = $chapter->_data;
- $data['authors'] = array_map(
- function($chapterAuthor) {
- return $chapterAuthor->_data;
- },
- DAORegistry::getDAO('ChapterAuthorDAO')->getAuthors($publication->getId(), $chapter->getId())->toArray()
- );
- return $data;
- },
- $publication->getData('chapters')
- );
- break;
- case 'publicationFormats':
- $values[$prop] = array_map(
- function($publicationFormat) {
- return $publicationFormat->_data;
- },
- $publication->getData('publicationFormats')
- );
- break;
- case 'urlPublished':
- $values[$prop] = $dispatcher->url(
- $request,
- ROUTE_PAGE,
- $submissionContext->getData('urlPath'),
- 'catalog',
- 'book',
- [$submission->getBestId(), 'version', $publication->getId()]
- );
- break;
- }
- }
- }
-
- /**
- * Make additional validation checks
- *
- * @param $hookName string
- * @param $args array [
- * @option array Validation errors already identified
- * @option string One of the VALIDATE_ACTION_* constants
- * @option array The props being validated
- * @option array The locales accepted for this object
- * @option string The primary locale for this object
- * ]
- */
- public function validatePublication($hookName, $args) {
- $errors =& $args[0];
- $props = $args[2];
-
- // Ensure that the specified series exists
- if (isset($props['seriesId'])) {
- $series = Application::get()->getSectionDAO()->getById($props['seriesId']);
- if (!$series) {
- $errors['seriesId'] = [__('publication.invalidSeries')];
- }
- }
- }
-
- /**
- * Perform OMP-specific steps when adding a publication
- *
- * @param string $hookName
- * @param array $args [
- * @option Publication
- * @option Request
- * ]
- */
- public function addPublication($hookName, $args) {
- $publication = $args[0];
- $request = $args[1];
-
- // Create a thumbnail for the cover image
- if ($publication->getData('coverImage')) {
-
- $submission = Services::get('submission')->get($publication->getData('submissionId'));
- $submissionContext = $request->getContext();
- if ($submissionContext->getId() !== $submission->getData('contextId')) {
- $submissionContext = Services::get('context')->get($submission->getData('contextId'));
- }
-
- $supportedLocales = $submissionContext->getSupportedSubmissionLocales();
- foreach ($supportedLocales as $localeKey) {
- if (!array_key_exists($localeKey, $publication->getData('coverImage'))) {
- continue;
- }
-
- import('classes.file.PublicFileManager');
- $publicFileManager = new \PublicFileManager();
- $coverImage = $publication->getData('coverImage', $localeKey);
- $coverImageFilePath = $publicFileManager->getContextFilesPath($submissionContext->getId()) . '/' . $coverImage['uploadName'];
- $this->makeThumbnail(
- $coverImageFilePath,
- $this->getThumbnailFileName($coverImage['uploadName']),
- $submissionContext->getData('coverThumbnailsMaxWidth'),
- $submissionContext->getData('coverThumbnailsMaxHeight')
- );
- }
- }
- }
-
- /**
- * Perform OMP-specific steps when editing a publication
- *
- * @param string $hookName
- * @param array $args [
- * @option Publication The new publication details
- * @option Publication The old publication details
- * @option array The params with the edited values
- * @option Request
- * ]
- */
- public function editPublication($hookName, $args) {
- $newPublication = $args[0];
- $oldPublication = $args[1];
- $params = $args[2];
-
- // Create or delete the thumbnail of a cover image
- if (array_key_exists('coverImage', $params)) {
- import('classes.file.PublicFileManager');
- $publicFileManager = new \PublicFileManager();
- $submission = Services::get('submission')->get($newPublication->getData('submissionId'));
-
- // Get the submission context
- $submissionContext = \Application::get()->getRequest()->getContext();
- if ($submissionContext->getId() !== $submission->getData('contextId')) {
- $submissionContext = Services::get('context')->get($submission->getData('contextId'));
- }
-
- foreach ($params['coverImage'] as $localeKey => $value) {
-
- // Delete the thumbnail if the cover image has been deleted
- if (is_null($value)) {
- $oldCoverImage = $oldPublication->getData('coverImage', $localeKey);
- if (!$oldCoverImage) {
- continue;
- }
-
- $coverImageFilePath = $publicFileManager->getContextFilesPath($submission->getData('contextId')) . '/' . $oldCoverImage['uploadName'];
- if (!file_exists($coverImageFilePath)) {
- $publicFileManager->removeContextFile($submission->getData('contextId'), $this->getThumbnailFileName($oldCoverImage['uploadName']));
- }
-
- // Otherwise generate a new thumbnail if a cover image exists
- } else {
- $newCoverImage = $newPublication->getData('coverImage', $localeKey);
- if (!$newCoverImage) {
- continue;
- }
-
- $coverImageFilePath = $publicFileManager->getContextFilesPath($submission->getData('contextId')) . '/' . $newCoverImage['uploadName'];
- $this->makeThumbnail(
- $coverImageFilePath,
- $this->getThumbnailFileName($newCoverImage['uploadName']),
- $submissionContext->getData('coverThumbnailsMaxWidth'),
- $submissionContext->getData('coverThumbnailsMaxHeight')
- );
- }
- }
- }
- }
-
- /**
- * Copy OMP-specific objects when a new publication version is created
- *
- * @param $hookName string
- * @param $args array [
- * @option Publication The new version of the publication
- * @option Publication The old version of the publication
- * @option Request
- * ]
- */
- public function versionPublication($hookName, $args) {
- $newPublication =& $args[0];
- $oldPublication = $args[1];
- $request = $args[2];
-
- // Publication Formats (and all associated objects)
- $oldPublicationFormats = $oldPublication->getData('publicationFormats');
- $newSubmissionFiles = [];
- foreach ($oldPublicationFormats as $oldPublicationFormat) {
- $newPublicationFormat = clone $oldPublicationFormat;
- $newPublicationFormat->setData('id', null);
- $newPublicationFormat->setData('publicationId', $newPublication->getId());
- Application::getRepresentationDAO()->insertObject($newPublicationFormat);
-
- // Duplicate publication format metadata
- $metadataDaos = ['IdentificationCodeDAO', 'MarketDAO', 'PublicationDateDAO', 'SalesRightsDAO'];
- foreach ($metadataDaos as $metadataDao) {
- $result = DAORegistry::getDAO($metadataDao)->getByPublicationFormatId($oldPublicationFormat->getId());
- while (!$result->eof()) {
- $oldObject = $result->next();
- $newObject = clone $oldObject;
- $newObject->setData('id', null);
- $newObject->setData('publicationFormatId', $newPublicationFormat->getId());
- DAORegistry::getDAO($metadataDao)->insertObject($newObject);
- }
- }
-
- // Duplicate publication format files
- $submissionFiles = Services::get('submissionFile')->getMany([
- 'submissionIds' => [$oldPublication->getData('submissionId')],
- 'assocTypes' => [ASSOC_TYPE_REPRESENTATION],
- 'assocIds' => [$oldPublicationFormat->getId()],
- ]);
- foreach ($submissionFiles as $submissionFile) {
- $newSubmissionFile = clone $submissionFile;
- $newSubmissionFile->setData('id', null);
- $newSubmissionFile->setData('assocId', $newPublicationFormat->getId());
- $newSubmissionFile = Services::get('submissionFile')->add($newSubmissionFile, $request);
- $newSubmissionFiles[] = $newSubmissionFile;
-
- $dependentFiles = Services::get('submissionFile')->getMany([
- 'fileStages' => [SUBMISSION_FILE_DEPENDENT],
- 'assocTypes' => [ASSOC_TYPE_SUBMISSION_FILE],
- 'assocIds' => [$submissionFile->getId()],
- 'includeDependentFiles' => true,
- ]);
- foreach ($dependentFiles as $dependentFile) {
- $newDependentFile = clone $dependentFile;
- $newDependentFile->setData('id', null);
- $newDependentFile->setData('assocId', $newSubmissionFile->getId());
- Services::get('submissionFile')->add($newDependentFile, $request);
- }
- }
- }
-
- // Chapters (and all associated objects)
- $oldAuthorsIterator = Services::get('author')->getMany(['publicationIds' => $oldPublication->getId()]);
- $oldAuthors = iterator_to_array($oldAuthorsIterator);
- $newAuthorsIterator = Services::get('author')->getMany(['publicationIds' => $newPublication->getId()]);
- $newAuthors = iterator_to_array($newAuthorsIterator);
- $result = DAORegistry::getDAO('ChapterDAO')->getByPublicationId($oldPublication->getId());
- while (!$result->eof()) {
- $oldChapter = $result->next();
- $newChapter = clone $oldChapter;
- $newChapter->setData('id', null);
- $newChapter->setData('publicationId', $newPublication->getId());
- $newChapterId = DAORegistry::getDAO('ChapterDAO')->insertChapter($newChapter);
- $newChapter = DAORegistry::getDAO('ChapterDAO')->getChapter($newChapterId);
-
- // Update file chapter associations for new files
- foreach ($newSubmissionFiles as $newSubmissionFile) {
- if ($newSubmissionFile->getChapterId() == $oldChapter->getId()) {
- Services::get('submissionFile')->edit($newSubmissionFile, ['chapterId' => $newChapter->getId()], $request);
- }
- }
-
- // We need to link new authors to chapters. To do this, we need a way to
- // link old authors to the new ones. We use seq property, which should be
- // unique for each author to determine which new author is a copy of the
- // old one. We then map the old chapter author associations to the new
- // authors.
- $oldChapterAuthors = DAORegistry::getDAO('ChapterAuthorDAO')->getAuthors($oldPublication->getId(), $oldChapter->getId())->toArray();
- foreach ($newAuthors as $newAuthor) {
- foreach ($oldAuthors as $oldAuthor) {
- if ($newAuthor->getData('seq') === $oldAuthor->getData('seq')) {
- foreach ($oldChapterAuthors as $oldChapterAuthor) {
- if ($oldChapterAuthor->getId() === $oldAuthor->getId()) {
- DAORegistry::getDAO('ChapterAuthorDAO')->insertChapterAuthor(
- $newAuthor->getId(),
- $newChapter->getId(),
- $newAuthor->getId() === $newPublication->getData('primaryContactId'),
- $oldChapterAuthor->getData('seq')
- );
- }
- }
- }
- }
- }
- }
-
- $newPublication = $this->get($newPublication->getId());
- }
-
- /**
- * Modify a publication before it is published
- *
- * @param $hookName string
- * @param $args array [
- * @option Publication The new version of the publication
- * @option Publication The old version of the publication
- * ]
- */
- public function publishPublicationBefore($hookName, $args) {
- $newPublication = $args[0];
- $oldPublication = $args[1];
-
- // If the publish date is in the future, set the status to scheduled
- $datePublished = $oldPublication->getData('datePublished');
- if ($datePublished && strtotime($datePublished) > strtotime(\Core::getCurrentDate())) {
- $newPublication->setData('status', STATUS_SCHEDULED);
- }
- }
-
- /**
- * Fire events after a publication has been published
- *
- * @param $hookName string
- * @param $args array [
- * @option Publication The new version of the publication
- * @option Publication The old version of the publication
- * @option Submission The publication's submission
- * ]
- */
- public function publishPublication($hookName, $args) {
- $newPublication = $args[0];
- $submission = $args[2];
-
- // If this is a new current publication (the "version of record"), then
- // tombstones must be updated to reflect the new publication format entries
- // in the OAI feed
- if ($submission->getData('currentPublicationId') === $newPublication->getId()) {
- $context = Application::get()->getRequest()->getContext();
- if (!$context || $context->getId() !== $submission->getData('contextId')) {
- $context = Services::get('context')->get($submission->getData('contextId'));
- }
-
- // Remove publication format tombstones for this publication
- import('classes.publicationFormat.PublicationFormatTombstoneManager');
- $publicationFormatTombstoneMgr = new \PublicationFormatTombstoneManager();
- $publicationFormatTombstoneMgr->deleteTombstonesByPublicationId($newPublication->getId());
-
- // Create publication format tombstones for any other published versions
- foreach ($submission->getData('publications') as $publication) {
- if ($publication->getId() !== $newPublication->getId() && $publication->getData('status') === STATUS_PUBLISHED) {
- $publicationFormatTombstoneMgr->insertTombstonesByPublicationId($publication->getId(), $context);
- }
- }
- }
-
- // Update notification
- $request = \Application::get()->getRequest();
- $notificationMgr = new \NotificationManager();
- $notificationMgr->updateNotification(
- $request,
- array(NOTIFICATION_TYPE_APPROVE_SUBMISSION),
- null,
- ASSOC_TYPE_MONOGRAPH,
- $newPublication->getData('submissionId')
- );
- }
-
- /**
- * Fire events after a publication has been unpublished
- *
- * @param $hookName string
- * @param $args array [
- * @option Publication The new version of the publication
- * @option Publication The old version of the publication
- * @option Submission The publication's submission
- * ]
- */
- public function unpublishPublication($hookName, $args) {
- $newPublication = $args[0];
- $oldPublication = $args[1];
- $submission = Services::get('submission')->get($newPublication->getData('submissionId'));
- $submissionContext = Services::get('context')->get($submission->getData('contextId'));
-
- // Create tombstones for this publication
- import('classes.publicationFormat.PublicationFormatTombstoneManager');
- $publicationFormatTombstoneMgr = new \PublicationFormatTombstoneManager();
- $publicationFormatTombstoneMgr->insertTombstonesByPublicationId($newPublication->getId(), $submissionContext);
-
- // Delete tombstones for the new current publication
- $currentPublication = null;
- foreach ($submission->getData('publications') as $publication) {
- if ($publication->getId() === $submission->getData('currentPublicationId')) {
- $currentPublication = $publication;
- break;
- }
- }
- if ($currentPublication->getData('status') === STATUS_PUBLISHED) {
- $publicationFormatTombstoneMgr->deleteTombstonesByPublicationId($currentPublication->getId());
- }
-
-
- // Update notification
- $request = \Application::get()->getRequest();
- $notificationMgr = new \NotificationManager();
- $notificationMgr->updateNotification(
- $request,
- array(NOTIFICATION_TYPE_APPROVE_SUBMISSION),
- null,
- ASSOC_TYPE_MONOGRAPH,
- $newPublication->getData('submissionId')
- );
- }
-
- /**
- * Delete OJS-specific objects before a publication is deleted
- *
- * @param $hookName string
- * @param $args array [
- * @option Publication The publication being deleted
- * ]
- */
- public function deletePublicationBefore($hookName, $args) {
- $publication = $args[0];
- $submission = Services::get('submission')->get($publication->getData('submissionId'));
- $context = Services::get('context')->get($submission->getData('contextId'));
-
- // Publication Formats (and all related objects)
- $publicationFormats = $publication->getData('publicationFormats');
- foreach ($publicationFormats as $publicationFormat) {
- Services::get('publicationFormat')->deleteFormat($publicationFormat, $submission, $context);
- }
-
- // Delete chapters and assigned chapter authors.
- $chapters = DAORegistry::getDAO('ChapterDAO')->getByPublicationId($publication->getId());
- while ($chapter = $chapters->next()) {
- // also removes Chapter Author and file associations
- DAORegistry::getDAO('ChapterDAO')->deleteObject($chapter);
- }
- }
-
- /**
- * Derive a thumbnail filename from the cover image filename
- *
- * book_1_1_cover.png --> book_1_1_cover_t.png
- *
- * @param string $fileName
- * @return string The thumbnail filename
- */
- public function getThumbnailFileName($fileName) {
- $pathInfo = pathinfo($fileName);
- return $pathInfo['filename'] . '_t.' . $pathInfo['extension'];
- }
-
- /**
- * Generate a thumbnail of an image
- *
- * @param string $filePath The full path and name of the file
- * @param int $maxWidth The maximum allowed width of the thumbnail
- * @param int $maxHeight The maximum allowed height of the thumbnail
- */
- public function makeThumbnail($filePath, $thumbFileName, $maxWidth, $maxHeight) {
- $pathParts = pathinfo($filePath);
- $thumbFilePath = $pathParts['dirname'] . '/' . $thumbFileName;
-
- $cover = null;
- switch ($pathParts['extension']) {
- case 'jpg': $cover = imagecreatefromjpeg($filePath); break;
- case 'png': $cover = imagecreatefrompng($filePath); break;
- case 'gif': $cover = imagecreatefromgif($filePath); break;
- case 'webp': $cover = imagecreatefromwebp($filePath); break;
- case 'svg': $cover = copy($filePath, $thumbFilePath); break;
- }
- if (!isset($cover)) {
- throw new \Exception('Can not build thumbnail because the file was not found or the file extension was not recognized.');
- }
- if ($pathParts['extension'] != 'svg') {
- // Calculate the scaling ratio for each dimension.
- $originalSizeArray = getimagesize($filePath);
- $xRatio = min(1, $maxWidth / $originalSizeArray[0]);
- $yRatio = min(1, $maxHeight / $originalSizeArray[1]);
-
- // Choose the smallest ratio and create the target.
- $ratio = min($xRatio, $yRatio);
-
- $thumbWidth = round($ratio * $originalSizeArray[0]);
- $thumbHeight = round($ratio * $originalSizeArray[1]);
- $thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
- imagecopyresampled($thumb, $cover, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $originalSizeArray[0], $originalSizeArray[1]);
-
- switch ($pathParts['extension']) {
- case 'jpg': imagejpeg($thumb, $thumbFilePath); break;
- case 'png': imagepng($thumb, $thumbFilePath); break;
- case 'gif': imagegif($thumb, $thumbFilePath); break;
- case 'webp': imagewebp($thumb, $thumbFilePath); break;
- }
-
- imagedestroy($thumb);
- }
-
- }
-}
diff --git a/classes/services/StatsEditorialService.inc.php b/classes/services/StatsEditorialService.inc.php
deleted file mode 100644
index 036af8ca4eb..00000000000
--- a/classes/services/StatsEditorialService.inc.php
+++ /dev/null
@@ -1,30 +0,0 @@
-filterBySections($args['seriesIds']);
- }
- return $statsQB;
- }
-}
\ No newline at end of file
diff --git a/classes/services/StatsEditorialService.php b/classes/services/StatsEditorialService.php
new file mode 100644
index 00000000000..691b9e70651
--- /dev/null
+++ b/classes/services/StatsEditorialService.php
@@ -0,0 +1,55 @@
+filterBySections($args['seriesIds']);
+ }
+ return $statsQB;
+ }
+
+ protected function getAcceptedDecisions(): array
+ {
+ return [
+ Decision::ACCEPT,
+ Decision::ACCEPT_INTERNAL,
+ Decision::SKIP_EXTERNAL_REVIEW,
+ Decision::SEND_TO_PRODUCTION,
+ ];
+ }
+
+ protected function getDeclinedDecisions(): array
+ {
+ return [
+ Decision::DECLINE,
+ Decision::INITIAL_DECLINE,
+ Decision::DECLINE_INTERNAL,
+ ];
+ }
+}
diff --git a/classes/services/StatsPublicationService.php b/classes/services/StatsPublicationService.php
new file mode 100644
index 00000000000..9ca88b0399e
--- /dev/null
+++ b/classes/services/StatsPublicationService.php
@@ -0,0 +1,20 @@
+filterBySections($args['seriesIds']);
- }
- return $statsQB;
- }
-}
\ No newline at end of file
diff --git a/classes/services/SubmissionFileService.inc.php b/classes/services/SubmissionFileService.inc.php
deleted file mode 100644
index 15509c4cbcb..00000000000
--- a/classes/services/SubmissionFileService.inc.php
+++ /dev/null
@@ -1,48 +0,0 @@
-filterByCategories($requestArgs['categoryIds']);
- }
-
- if (!empty($requestArgs['seriesIds'])) {
- $submissionQB->filterBySeries($requestArgs['seriesIds']);
- }
-
- if (!empty($requestArgs['orderByFeatured'])) {
- $submissionQB->orderByFeatured();
- }
-
- return $submissionQB;
- }
-
- /**
- * Add app-specific query statements to the list get query
- *
- * @param $hookName string
- * @param $args array [
- * @option object $queryObject
- * @option QueryBuilders\SubmissionQueryBuilder $queryBuilder
- * ]
- *
- * @return object
- */
- public function modifySubmissionQueryObject($hookName, $args) {
- $queryObject =& $args[0];
- $queryBuilder = $args[1];
-
- $queryObject = $queryBuilder->appGet($queryObject);
-
- return true;
- }
-
- /**
- * Add app-specific properties to submissions
- *
- * @param $hookName string Submission::getBackendListProperties::properties
- * @param $args array [
- * @option $props array Existing properties
- * @option $submission Submission The associated submission
- * @option $args array Request args
- * ]
- *
- * @return array
- */
- public function modifyBackendListPropertyValues($hookName, $args) {
- $props =& $args[0];
-
- $props[] = 'series';
- $props[] = 'category';
- $props[] = 'featured';
- $props[] = 'newRelease';
- }
-
- /**
- * Add app-specific property values to a submission
- *
- * @param $hookName string Submission::getProperties::values
- * @param $args array [
- * @option $values array Key/value store of property values
- * @option $submission Submission The associated submission
- * @option $props array Requested properties
- * @option $args array Request args
- * ]
- *
- * @return array
- */
- public function modifyPropertyValues($hookName, $args) {
- $values =& $args[0];
- $submission = $args[1];
- $props = $args[2];
- $propertyArgs = $args[3];
- $request = $args[3]['request'];
- $context = $request->getContext();
- $dispatcher = $request->getDispatcher();
-
- foreach ($props as $prop) {
- switch ($prop) {
- case 'urlPublished':
- $values[$prop] = $dispatcher->url(
- $request,
- ROUTE_PAGE,
- $context->getPath(),
- 'catalog',
- 'book',
- $submission->getBestId()
- );
- break;
- case 'featured':
- $featureDao = \DAORegistry::getDAO('FeatureDAO');
- $values[$prop] = $featureDao->getFeaturedAll($submission->getId());
- break;
- case 'newRelease':
- $newReleaseDao = \DAORegistry::getDAO('NewReleaseDAO');
- $values[$prop] = $newReleaseDao->getNewReleaseAll($submission->getId());
- break;
- }
- }
- }
-}
diff --git a/classes/services/queryBuilders/ContextQueryBuilder.inc.php b/classes/services/queryBuilders/ContextQueryBuilder.inc.php
deleted file mode 100644
index 0e4c1a9c3b5..00000000000
--- a/classes/services/queryBuilders/ContextQueryBuilder.inc.php
+++ /dev/null
@@ -1,27 +0,0 @@
-seriesIds = $seriesIds;
- return $this;
- }
-
- /**
- * Implement app-specific ordering options for catalog
- *
- * Publication date, Title or Series position, with featured items first
- *
- * @param string $column
- * @param string $direction
- *
- * @return \App\Services\QueryBuilders\SubmissionQueryBuilder
- */
- public function orderBy($column, $direction = 'DESC') {
- // Bring in orderby constants
- import('classes.submission.SubmissionDAO');
- switch ($column) {
- case ORDERBY_SERIES_POSITION:
- $this->orderColumn = 'po.series_position';
- break;
- default:
- return parent::orderBy($column, $direction);
- }
- $this->orderDirection = $direction;
-
- return $this;
- }
-
- /**
- * Order featured items first
- *
- * @return \App\Services\QueryBuilders\SubmissionQueryBuilder
- */
- public function orderByFeatured() {
- $this->orderByFeaturedSeq = true;
- }
-
- /**
- * Execute additional actions for app-specific query objects
- *
- * @param object Query object
- * @param SubmissionQueryBuilder Query object
- * @return object Query object
- */
- public function appGet($q) {
-
- if (!empty($this->seriesIds)) {
- $q->leftJoin('publications as publication_s', 's.current_publication_id', '=', 'publication_s.publication_id');
- $q->whereIn('publication_s.series_id', $this->seriesIds);
- }
-
- // order by series position
- if ($this->orderColumn === 'po.series_position') {
- $this->columns[] = 'po.series_position';
- $q->leftJoin('publications as po', 's.current_publication_id', '=', 'po.publication_id');
- $q->groupBy('po.series_position');
- }
-
- if (!empty($this->orderByFeaturedSeq)) {
- if (!empty($this->seriesIds)) {
- $assocType = ASSOC_TYPE_SERIES;
- $assocIds = $this->seriesIds;
- } elseif (!empty($this->categoryIds)) {
- $assocType = ASSOC_TYPE_CATEGORY;
- $assocIds = $this->categoryIds;
- } else {
- $assocType = ASSOC_TYPE_PRESS;
- $assocIds = [$this->contextId ? $this->contextId : CONTEXT_ID_NONE];
- }
- $q->leftJoin('features as sf', function($join) use ($assocType, $assocIds) {
- $join->on('s.submission_id', '=', 'sf.submission_id')
- ->on('sf.assoc_type', '=', Capsule::raw($assocType));
- foreach ($assocIds as $assocId) {
- $join->on('sf.assoc_id', '=', Capsule::raw(intval($assocId)));
- }
- });
-
- // Featured sorting should be the first sort parameter. We sort by
- // the seq parameter, with null values last
- $q->groupBy(Capsule::raw('sf.seq'));
- $this->columns[] = 'sf.seq';
- $this->columns[] = Capsule::raw('case when sf.seq is null then 1 else 0 end');
- array_unshift(
- $q->orders,
- array('type' => 'raw', 'sql' => 'case when sf.seq is null then 1 else 0 end'),
- array('column' => 'sf.seq', 'direction' => 'ASC')
- );
- }
-
- return $q;
- }
-}
diff --git a/classes/spotlight/Spotlight.inc.php b/classes/spotlight/Spotlight.inc.php
deleted file mode 100644
index a75abea8071..00000000000
--- a/classes/spotlight/Spotlight.inc.php
+++ /dev/null
@@ -1,167 +0,0 @@
-getData('assocId');
- }
-
- /**
- * Set assoc ID for this spotlight.
- * @param $assocId int
- */
- function setAssocId($assocId) {
- return $this->setData('assocId', $assocId);
- }
-
- /**
- * Get assoc type for this spotlight.
- * @return int
- */
- function getAssocType() {
- return $this->getData('assocType');
- }
-
- /**
- * Set assoc type for this spotlight.
- * @param $assocType int
- */
- function setAssocType($assocType) {
- return $this->setData('assocType', $assocType);
- }
-
- /**
- * Get the press id for this spotlight.
- * @return int
- */
- function getPressId() {
- return $this->getData('pressId');
- }
-
- /**
- * Set press Id for this spotlight.
- * @param $pressId int
- */
- function setPressId($pressId) {
- return $this->setData('pressId', $pressId);
- }
-
- /**
- * Get localized spotlight title
- * @return string
- */
- function getLocalizedTitle() {
- return $this->getLocalizedData('title');
- }
-
- /**
- * Get spotlight title.
- * @param $locale
- * @return string
- */
- function getTitle($locale) {
- return $this->getData('title', $locale);
- }
-
- /**
- * Set spotlight title.
- * @param $title string
- * @param $locale string
- */
- function setTitle($title, $locale) {
- return $this->setData('title', $title, $locale);
- }
-
- /**
- * Get localized full description
- * @return string
- */
- function getLocalizedDescription() {
- return $this->getLocalizedData('description');
- }
-
- /**
- * Get spotlight description.
- * @param $locale string
- * @return string
- */
- function getDescription($locale) {
- return $this->getData('description', $locale);
- }
-
- /**
- * Set spotlight description.
- * @param $description string
- * @param $locale string
- */
- function setDescription($description, $locale) {
- return $this->setData('description', $description, $locale);
- }
-
- /**
- * Fetch a plain text (localized) string for this Spotlight type
- * @return string
- */
- function getLocalizedType() {
- $spotlightTypes = array(
- SPOTLIGHT_TYPE_BOOK => __('grid.content.spotlights.form.type.book'),
- SPOTLIGHT_TYPE_SERIES => __('series.series'),
- );
-
- return $spotlightTypes[$this->getAssocType()];
- }
-
- /**
- * Returns the associated item with this spotlight.
- * @return DataObject
- */
- function getSpotlightItem() {
- switch ($this->getAssocType()) {
- case SPOTLIGHT_TYPE_BOOK:
- return Services::get('submission')->get($this->getAssocId());
- break;
- case SPOTLIGHT_TYPE_SERIES:
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- return $seriesDao->getById($this->getAssocId(), $this->getPressId());
- break;
- default:
- assert(false);
- break;
- }
- }
-}
-
-
diff --git a/classes/spotlight/Spotlight.php b/classes/spotlight/Spotlight.php
new file mode 100644
index 00000000000..5fecb2874b9
--- /dev/null
+++ b/classes/spotlight/Spotlight.php
@@ -0,0 +1,206 @@
+getData('assocId');
+ }
+
+ /**
+ * Set assoc ID for this spotlight.
+ *
+ * @param int $assocId
+ */
+ public function setAssocId($assocId)
+ {
+ return $this->setData('assocId', $assocId);
+ }
+
+ /**
+ * Get assoc type for this spotlight.
+ *
+ * @return int
+ */
+ public function getAssocType()
+ {
+ return $this->getData('assocType');
+ }
+
+ /**
+ * Set assoc type for this spotlight.
+ *
+ * @param int $assocType
+ */
+ public function setAssocType($assocType)
+ {
+ return $this->setData('assocType', $assocType);
+ }
+
+ /**
+ * Get the press id for this spotlight.
+ *
+ * @return int
+ */
+ public function getPressId()
+ {
+ return $this->getData('pressId');
+ }
+
+ /**
+ * Set press Id for this spotlight.
+ *
+ * @param int $pressId
+ */
+ public function setPressId($pressId)
+ {
+ return $this->setData('pressId', $pressId);
+ }
+
+ /**
+ * Get localized spotlight title
+ *
+ * @return string
+ */
+ public function getLocalizedTitle()
+ {
+ return $this->getLocalizedData('title');
+ }
+
+ /**
+ * Get spotlight title.
+ *
+ * @param string $locale
+ *
+ * @return string
+ */
+ public function getTitle($locale)
+ {
+ return $this->getData('title', $locale);
+ }
+
+ /**
+ * Set spotlight title.
+ *
+ * @param string $title
+ * @param string $locale
+ */
+ public function setTitle($title, $locale)
+ {
+ return $this->setData('title', $title, $locale);
+ }
+
+ /**
+ * Get localized full description
+ *
+ * @return string
+ */
+ public function getLocalizedDescription()
+ {
+ return $this->getLocalizedData('description');
+ }
+
+ /**
+ * Get spotlight description.
+ *
+ * @param string $locale
+ *
+ * @return string
+ */
+ public function getDescription($locale)
+ {
+ return $this->getData('description', $locale);
+ }
+
+ /**
+ * Set spotlight description.
+ *
+ * @param string $description
+ * @param string $locale
+ */
+ public function setDescription($description, $locale)
+ {
+ return $this->setData('description', $description, $locale);
+ }
+
+ /**
+ * Fetch a plain text (localized) string for this Spotlight type
+ *
+ * @return string
+ */
+ public function getLocalizedType()
+ {
+ $spotlightTypes = [
+ self::SPOTLIGHT_TYPE_BOOK => __('grid.content.spotlights.form.type.book'),
+ self::SPOTLIGHT_TYPE_SERIES => __('series.series'),
+ ];
+
+ return $spotlightTypes[$this->getAssocType()];
+ }
+
+ /**
+ * Returns the associated item with this spotlight.
+ *
+ * @return Section|Submission|null
+ */
+ public function getSpotlightItem()
+ {
+ switch ($this->getAssocType()) {
+ case self::SPOTLIGHT_TYPE_BOOK:
+ return Repo::submission()->get($this->getAssocId());
+ case self::SPOTLIGHT_TYPE_SERIES:
+ return Repo::section()->get($this->getAssocId(), $this->getPressId());
+ default:
+ assert(false);
+ break;
+ }
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\spotlight\Spotlight', '\Spotlight');
+ foreach ([
+ 'SPOTLIGHT_TYPE_BOOK',
+ 'SPOTLIGHT_TYPE_SERIES',
+ 'MAX_SPOTLIGHTS_VISIBLE',
+ ] as $constantName) {
+ define($constantName, constant('\Spotlight::' . $constantName));
+ }
+}
diff --git a/classes/spotlight/SpotlightDAO.inc.php b/classes/spotlight/SpotlightDAO.inc.php
deleted file mode 100644
index 4e8bed9bcd5..00000000000
--- a/classes/spotlight/SpotlightDAO.inc.php
+++ /dev/null
@@ -1,321 +0,0 @@
-retrieve(
- 'SELECT * FROM spotlights WHERE spotlight_id = ?',
- [(int) $spotlightId]
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Retrieve spotlight Assoc ID by spotlight ID.
- * @param $spotlightId int
- * @return int
- */
- function getSpotlightAssocId($spotlightId) {
- $result = $this->retrieve(
- 'SELECT assoc_id FROM spotlights WHERE spotlight_id = ?',
- [(int) $spotlightId]
- );
- $row = $result->current();
- return $row ? $row->assoc_id : 0;
- }
-
- /**
- * Retrieve spotlight Assoc ID by spotlight ID.
- * @param $spotlightId int
- * @return int
- */
- function getSpotlightAssocType($spotlightId) {
- $result = $this->retrieve(
- 'SELECT assoc_type FROM spotlights WHERE spotlight_id = ?',
- [(int) $spotlightId]
- );
- $row = $result->current();
- return $row ? $row->assoc_type : 0;
- }
-
- /**
- * Get the list of localized field names for this table
- * @return array
- */
- function getLocaleFieldNames() {
- return ['title', 'description'];
- }
-
- /**
- * Get a new data object.
- * @return DataObject
- */
- function newDataObject() {
- return new Spotlight();
- }
-
- /**
- * Internal function to return an Spotlight object from a row.
- * @param $row array
- * @return Spotlight
- */
- function _fromRow($row) {
- $spotlight = $this->newDataObject();
- $spotlight->setId($row['spotlight_id']);
- $spotlight->setAssocType($row['assoc_type']);
- $spotlight->setAssocId($row['assoc_id']);
- $spotlight->setPressId($row['press_id']);
-
- $this->getDataObjectSettings('spotlight_settings', 'spotlight_id', $row['spotlight_id'], $spotlight);
-
- return $spotlight;
- }
-
- /**
- * Update the settings for this object
- * @param $spotlight object
- */
- function updateLocaleFields($spotlight) {
- $this->updateDataObjectSettings(
- 'spotlight_settings',
- $spotlight,
- ['spotlight_id' => $spotlight->getId()]
- );
- }
-
- /**
- * Insert a new Spotlight.
- * @param $spotlight Spotlight
- * @return int
- */
- function insertObject($spotlight) {
- $this->update(
- 'INSERT INTO spotlights
- (assoc_type, assoc_id, press_id)
- VALUES
- (?, ?, ?)',
- [
- (int) $spotlight->getAssocType(),
- (int) $spotlight->getAssocId(),
- (int) $spotlight->getPressId(),
- ]
- );
- $spotlight->setId($this->getInsertId());
- $this->updateLocaleFields($spotlight);
- return $spotlight->getId();
- }
-
- /**
- * Update an existing spotlight.
- * @param $spotlight Spotlight
- * @return boolean
- */
- function updateObject($spotlight) {
- $returner = $this->update(
- 'UPDATE spotlights
- SET
- assoc_type = ?,
- assoc_id = ?,
- press_id = ?
- WHERE spotlight_id = ?',
- [
- (int) $spotlight->getAssocType(),
- (int) $spotlight->getAssocId(),
- (int) $spotlight->getPressId(),
- (int) $spotlight->getId()
- ]
- );
- $this->updateLocaleFields($spotlight);
- return $returner;
- }
-
- /**
- * Delete a spotlight.
- * @param $spotlight Spotlight
- * @return boolean
- */
- function deleteObject($spotlight) {
- return $this->deleteById($spotlight->getId());
- }
-
- /**
- * Delete an spotlight by spotlight ID.
- * @param $spotlightId int
- */
- function deleteById($spotlightId) {
- $this->update('DELETE FROM spotlight_settings WHERE spotlight_id = ?', [(int) $spotlightId]);
- $this->update('DELETE FROM spotlights WHERE spotlight_id = ?', [(int) $spotlightId]);
- }
-
- /**
- * Delete spotlights by spotlight type ID.
- * @param $typeId int
- * @return boolean
- */
- function deleteByTypeId($typeId) {
- $spotlights = $this->getByTypeId($typeId);
- while (($spotlight = $spotlights->next())) {
- $this->deleteObject($spotlight);
- }
- }
-
- /**
- * Delete spotlights by Assoc ID
- * @param $assocType int
- * @param $assocId int
- */
- function deleteByAssoc($assocType, $assocId) {
- $spotlights = $this->getByAssocId($assocType, $assocId);
- while ($spotlight = $spotlights->next()) {
- $this->deleteById($spotlight->getId());
- }
- }
-
- /**
- * Retrieve an array of spotlights matching a press id.
- * @param $pressId int
- * @return array Array containing matching Spotlights
- */
- function getByPressId($pressId, $rangeInfo = null) {
- $result = $this->retrieveRange(
- 'SELECT *
- FROM spotlights
- WHERE press_id = ?
- ORDER BY spotlight_id DESC',
- [(int) $pressId],
- $rangeInfo
- );
- $returner = [];
- foreach ($result as $row) {
- $spotlight = $this->_fromRow((array) $row);
- if ($spotlight->getSpotlightItem()) {
- $returner[$spotlight->getId()] = $spotlight;
- }
- }
- return $returner;
- }
-
- /**
- * Retrieve a random spotlight matching a press id.
- * @param $pressId int
- * @param $quantity int (optional) If more than one is needed,
- * specify here.
- * @return array or null
- */
- function getRandomByPressId($pressId, $quantity = 1) {
- $spotlights = array_values($this->getByPressId($pressId));
- $returner = array();
- if (count($spotlights) > 0) {
- if (count($spotlights) <= $quantity) {
- // Return the ones that we have.
- $returner = $spotlights;
- } else {
- // Get the random spotlights.
- for($quantity; $quantity > 0; $quantity--) {
- $randNumber = rand(0, count($spotlights) - 1);
- $returner[] = $spotlights[$randNumber];
- unset($spotlights[$randNumber]);
- // Reset spotlights array index.
- $spotlights = array_values($spotlights);
- }
- }
- }
-
- if (count($returner) == 0) {
- $returner = null;
- }
-
- return $returner;
- }
-
- /**
- * Retrieve an array of spotlights matching a particular assoc ID.
- * @param $assocType int
- * @param $assocId int
- * @return object DAOResultFactory containing matching Spotlights
- */
- function getByAssoc($assocType, $assocId, $rangeInfo = null) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT *
- FROM spotlights
- WHERE assoc_type = ? AND assoc_id = ?
- ORDER BY spotlight_id DESC',
- [(int) $assocType, (int) $assocId],
- $rangeInfo
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Retrieve an array of numSpotlights spotlights matching a particular Assoc ID.
- * @param $assocType int
- * @return object DAOResultFactory containing matching Spotlights
- */
- function getNumSpotlightsByAssoc($assocType, $assocId, $rangeInfo = null) {
- return new DAOResultFactory(
- $this->retrieveRange(
- 'SELECT *
- FROM spotlights
- WHERE assoc_type = ?
- AND assoc_id = ?
- ORDER BY spotlight_id DESC',
- [(int) $assocType, (int) $assocId],
- $rangeInfo
- ),
- $this,
- '_fromRow'
- );
- }
-
- /**
- * Retrieve most recent spotlight by Assoc ID.
- * @param $assocType int
- * @return Spotlight|null
- */
- function getMostRecentSpotlightByAssoc($assocType, $assocId) {
- $result = $this->retrieve(
- 'SELECT *
- FROM spotlights
- WHERE assoc_type = ?
- AND assoc_id = ?
- ORDER BY spotlight_id DESC LIMIT 1',
- [(int) $assocType, (int) $assocId]
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Get the ID of the last inserted spotlight.
- * @return int
- */
- function getInsertId() {
- return $this->_getInsertId('spotlights', 'spotlight_id');
- }
-}
-
-
diff --git a/classes/spotlight/SpotlightDAO.php b/classes/spotlight/SpotlightDAO.php
new file mode 100644
index 00000000000..f99287a521a
--- /dev/null
+++ b/classes/spotlight/SpotlightDAO.php
@@ -0,0 +1,342 @@
+retrieve(
+ 'SELECT * FROM spotlights WHERE spotlight_id = ?',
+ [(int) $spotlightId]
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+
+ /**
+ * Retrieve spotlight Assoc ID by spotlight ID.
+ *
+ * @param int $spotlightId
+ *
+ * @return int
+ */
+ public function getSpotlightAssocId($spotlightId)
+ {
+ $result = $this->retrieve(
+ 'SELECT assoc_id FROM spotlights WHERE spotlight_id = ?',
+ [(int) $spotlightId]
+ );
+ $row = $result->current();
+ return $row ? $row->assoc_id : 0;
+ }
+
+ /**
+ * Retrieve spotlight Assoc ID by spotlight ID.
+ *
+ * @param int $spotlightId
+ *
+ * @return int
+ */
+ public function getSpotlightAssocType($spotlightId)
+ {
+ $result = $this->retrieve(
+ 'SELECT assoc_type FROM spotlights WHERE spotlight_id = ?',
+ [(int) $spotlightId]
+ );
+ $row = $result->current();
+ return $row ? $row->assoc_type : 0;
+ }
+
+ /**
+ * Get the list of localized field names for this table
+ *
+ * @return array
+ */
+ public function getLocaleFieldNames()
+ {
+ return ['title', 'description'];
+ }
+
+ /**
+ * Get a new data object.
+ *
+ * @return Spotlight
+ */
+ public function newDataObject()
+ {
+ return new Spotlight();
+ }
+
+ /**
+ * Internal function to return an Spotlight object from a row.
+ *
+ * @param array $row
+ *
+ * @return Spotlight
+ */
+ public function _fromRow($row)
+ {
+ $spotlight = $this->newDataObject();
+ $spotlight->setId($row['spotlight_id']);
+ $spotlight->setAssocType($row['assoc_type']);
+ $spotlight->setAssocId($row['assoc_id']);
+ $spotlight->setPressId($row['press_id']);
+
+ $this->getDataObjectSettings('spotlight_settings', 'spotlight_id', $row['spotlight_id'], $spotlight);
+
+ return $spotlight;
+ }
+
+ /**
+ * Update the settings for this object
+ *
+ * @param object $spotlight
+ */
+ public function updateLocaleFields($spotlight)
+ {
+ $this->updateDataObjectSettings(
+ 'spotlight_settings',
+ $spotlight,
+ ['spotlight_id' => $spotlight->getId()]
+ );
+ }
+
+ /**
+ * Insert a new Spotlight.
+ *
+ * @param Spotlight $spotlight
+ *
+ * @return int
+ */
+ public function insertObject($spotlight)
+ {
+ $this->update(
+ 'INSERT INTO spotlights
+ (assoc_type, assoc_id, press_id)
+ VALUES
+ (?, ?, ?)',
+ [
+ (int) $spotlight->getAssocType(),
+ (int) $spotlight->getAssocId(),
+ (int) $spotlight->getPressId(),
+ ]
+ );
+ $spotlight->setId($this->getInsertId());
+ $this->updateLocaleFields($spotlight);
+ return $spotlight->getId();
+ }
+
+ /**
+ * Update an existing spotlight.
+ *
+ * @param Spotlight $spotlight
+ *
+ * @return bool
+ */
+ public function updateObject($spotlight)
+ {
+ $returner = $this->update(
+ 'UPDATE spotlights
+ SET
+ assoc_type = ?,
+ assoc_id = ?,
+ press_id = ?
+ WHERE spotlight_id = ?',
+ [
+ (int) $spotlight->getAssocType(),
+ (int) $spotlight->getAssocId(),
+ (int) $spotlight->getPressId(),
+ (int) $spotlight->getId()
+ ]
+ );
+ $this->updateLocaleFields($spotlight);
+ return $returner;
+ }
+
+ /**
+ * Delete a spotlight.
+ *
+ * @param Spotlight $spotlight
+ */
+ public function deleteObject($spotlight)
+ {
+ return $this->deleteById($spotlight->getId());
+ }
+
+ /**
+ * Delete an spotlight by spotlight ID.
+ *
+ * @param int $spotlightId
+ */
+ public function deleteById($spotlightId)
+ {
+ $this->update('DELETE FROM spotlight_settings WHERE spotlight_id = ?', [(int) $spotlightId]);
+ $this->update('DELETE FROM spotlights WHERE spotlight_id = ?', [(int) $spotlightId]);
+ }
+
+ /**
+ * Retrieve an array of spotlights matching a press id.
+ *
+ * @param int $pressId
+ * @param ?DBResultRange $rangeInfo
+ *
+ * @return array Array containing matching Spotlights
+ */
+ public function getByPressId($pressId, $rangeInfo = null)
+ {
+ $result = $this->retrieveRange(
+ 'SELECT *
+ FROM spotlights
+ WHERE press_id = ?
+ ORDER BY spotlight_id DESC',
+ [(int) $pressId],
+ $rangeInfo
+ );
+ $returner = [];
+ foreach ($result as $row) {
+ $spotlight = $this->_fromRow((array) $row);
+ if ($spotlight->getSpotlightItem()) {
+ $returner[$spotlight->getId()] = $spotlight;
+ }
+ }
+ return $returner;
+ }
+
+ /**
+ * Retrieve a random spotlight matching a press id.
+ *
+ * @param int $pressId
+ * @param int $quantity (optional) If more than one is needed,
+ * specify here.
+ *
+ * @return array or null
+ */
+ public function getRandomByPressId($pressId, $quantity = 1)
+ {
+ $spotlights = array_values($this->getByPressId($pressId));
+ $returner = [];
+ if (count($spotlights) > 0) {
+ if (count($spotlights) <= $quantity) {
+ // Return the ones that we have.
+ $returner = $spotlights;
+ } else {
+ // Get the random spotlights.
+ for ($quantity; $quantity > 0; $quantity--) {
+ $randNumber = rand(0, count($spotlights) - 1);
+ $returner[] = $spotlights[$randNumber];
+ unset($spotlights[$randNumber]);
+ // Reset spotlights array index.
+ $spotlights = array_values($spotlights);
+ }
+ }
+ }
+
+ if (count($returner) == 0) {
+ $returner = null;
+ }
+
+ return $returner;
+ }
+
+ /**
+ * Retrieve an array of spotlights matching a particular assoc ID.
+ *
+ * @param int $assocType
+ * @param int $assocId
+ * @param ?DBResultRange $rangeInfo
+ *
+ * @return DAOResultFactory containing matching Spotlights
+ */
+ public function getByAssoc($assocType, $assocId, $rangeInfo = null)
+ {
+ return new DAOResultFactory(
+ $this->retrieveRange(
+ 'SELECT *
+ FROM spotlights
+ WHERE assoc_type = ? AND assoc_id = ?
+ ORDER BY spotlight_id DESC',
+ [(int) $assocType, (int) $assocId],
+ $rangeInfo
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve an array of numSpotlights spotlights matching a particular Assoc ID.
+ *
+ * @param int $assocType
+ * @param ?DBResultRange $rangeInfo
+ *
+ * @return DAOResultFactory containing matching Spotlights
+ */
+ public function getNumSpotlightsByAssoc($assocType, $assocId, $rangeInfo = null)
+ {
+ return new DAOResultFactory(
+ $this->retrieveRange(
+ 'SELECT *
+ FROM spotlights
+ WHERE assoc_type = ?
+ AND assoc_id = ?
+ ORDER BY spotlight_id DESC',
+ [(int) $assocType, (int) $assocId],
+ $rangeInfo
+ ),
+ $this,
+ '_fromRow'
+ );
+ }
+
+ /**
+ * Retrieve most recent spotlight by Assoc ID.
+ *
+ * @param int $assocType
+ *
+ * @return Spotlight|null
+ */
+ public function getMostRecentSpotlightByAssoc($assocType, $assocId)
+ {
+ $result = $this->retrieve(
+ 'SELECT *
+ FROM spotlights
+ WHERE assoc_type = ?
+ AND assoc_id = ?
+ ORDER BY spotlight_id DESC LIMIT 1',
+ [(int) $assocType, (int) $assocId]
+ );
+ $row = $result->current();
+ return $row ? $this->_fromRow((array) $row) : null;
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\spotlight\SpotlightDAO', '\SpotlightDAO');
+}
diff --git a/classes/statistics/StatisticsHelper.inc.php b/classes/statistics/StatisticsHelper.inc.php
deleted file mode 100644
index 9d5de27f201..00000000000
--- a/classes/statistics/StatisticsHelper.inc.php
+++ /dev/null
@@ -1,61 +0,0 @@
- __('context.context'),
- ASSOC_TYPE_SERIES => __('series.series'),
- ASSOC_TYPE_MONOGRAPH => __('submission.monograph'),
- ASSOC_TYPE_PUBLICATION_FORMAT => __('grid.catalogEntry.publicationFormatType')
- );
-
- return $objectTypes;
- }
-
-}
-
-
diff --git a/classes/statistics/StatisticsHelper.php b/classes/statistics/StatisticsHelper.php
new file mode 100644
index 00000000000..3c2d10cbb3f
--- /dev/null
+++ b/classes/statistics/StatisticsHelper.php
@@ -0,0 +1,58 @@
+ $entryData->chapterId]
+ );
+ }
+
+ /**
+ * Remove Unique Clicks for book and chapter items
+ * If multiple transactions represent the same item and occur in the same user-sessions, only one unique activity MUST be counted for that item.
+ * Unique book item is a submission (with chapter ID = NULL).
+ * Unique chapter item is a chapter.
+ * A user session is defined by the combination of IP address + user agent + transaction date + hour of day.
+ * Only the last unique activity will be retained (and thus counted), all the other will be removed.
+ *
+ * See https://www.projectcounter.org/code-of-practice-five-sections/7-processing-rules-underlying-counter-reporting-data/#counting
+ */
+ public function compileBookItemUniqueClicks(string $loadId): void
+ {
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ DB::statement(
+ "
+ DELETE FROM {$this->table} usui
+ WHERE EXISTS (
+ SELECT * FROM (
+ SELECT 1 FROM {$this->table} usuit
+ WHERE usui.load_id = ? AND usuit.load_id = usui.load_id AND
+ usuit.context_id = usui.context_id AND
+ usuit.ip = usui.ip AND
+ usuit.user_agent = usui.user_agent AND
+ usuit.submission_id = usui.submission_id AND
+ usuit.chapter_id IS NULL AND usui.chapter_id IS NULL AND
+ EXTRACT(HOUR FROM usuit.date) = EXTRACT(HOUR FROM usui.date) AND
+ usui.line_number < usuit.line_number
+ ) AS tmp
+ )
+ ",
+ [$loadId]
+ );
+ } else {
+ DB::statement(
+ "
+ DELETE FROM usui USING {$this->table} usui
+ INNER JOIN {$this->table} usuit ON (
+ usuit.load_id = usui.load_id AND
+ usuit.context_id = usui.context_id AND
+ usuit.ip = usui.ip AND
+ usuit.user_agent = usui.user_agent AND
+ usuit.submission_id = usui.submission_id
+ )
+ WHERE usui.load_id = ? AND
+ usuit.chapter_id IS NULL AND usui.chapter_id IS NULL AND
+ TIMESTAMPDIFF(HOUR, usui.date, usuit.date) = 0 AND
+ usui.line_number < usuit.line_number
+ ",
+ [$loadId]
+ );
+ }
+ }
+ public function compileChapterItemUniqueClicks(string $loadId): void
+ {
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ DB::statement(
+ "
+ DELETE FROM {$this->table} usui
+ WHERE EXISTS (
+ SELECT * FROM (
+ SELECT 1 FROM {$this->table} usuit
+ WHERE usuit.load_id = ? AND usuit.load_id = usui.load_id AND
+ usuit.context_id = usui.context_id AND
+ usuit.ip = usui.ip AND
+ usuit.user_agent = usui.user_agent AND
+ usuit.submission_id = usui.submission_id AND
+ usuit.chapter_id = usui.chapter_id AND usuit.chapter_id IS NOT NULL AND
+ EXTRACT(HOUR FROM usuit.date) = EXTRACT(HOUR FROM usui.date) AND
+ usui.line_number < usuit.line_number
+ ) AS tmp
+ )
+ ",
+ [$loadId]
+ );
+ } else {
+ DB::statement(
+ "
+ DELETE FROM usui USING {$this->table} usui
+ INNER JOIN {$this->table} usuit ON (
+ usuit.load_id = usui.load_id AND
+ usuit.context_id = usui.context_id AND
+ usuit.ip = usui.ip AND
+ usuit.user_agent = usui.user_agent AND
+ usuit.submission_id = usui.submission_id AND
+ usuit.chapter_id = usui.chapter_id
+ )
+ WHERE usuit.load_id = ? AND
+ usuit.chapter_id IS NOT NULL AND
+ TIMESTAMPDIFF(HOUR, usui.date, usuit.date) = 0 AND
+ usui.line_number < usuit.line_number
+ ",
+ [$loadId]
+ );
+ }
+ }
+
+ /**
+ * Load unique COUNTER item (book and chapter) investigations
+ */
+ public function compileCounterSubmissionDailyMetrics(string $loadId): void
+ {
+ // construct metric_book_investigations_unique upsert
+ $metricBookInvestigationsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, 0 as metric_book_investigations, count(*) as metric, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table}
+ WHERE load_id = ? AND submission_id IS NOT NULL AND chapter_id IS NULL
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricBookInvestigationsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_book_investigations_unique = excluded.metric_book_investigations_unique;
+ ';
+ } else {
+ $metricBookInvestigationsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_book_investigations_unique = metric;
+ ';
+ }
+ DB::statement($metricBookInvestigationsUniqueUpsertSql, [$loadId]);
+
+ // construct metric_chapter_investigations_unique upsert
+ $metricChapterInvestigationsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, count(*) as metric, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table}
+ WHERE load_id = ? AND submission_id IS NOT NULL AND chapter_id IS NOT NULL
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricChapterInvestigationsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_chapter_investigations_unique = excluded.metric_chapter_investigations_unique;
+ ';
+ } else {
+ $metricChapterInvestigationsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_chapter_investigations_unique = metric;
+ ';
+ }
+ DB::statement($metricChapterInvestigationsUniqueUpsertSql, [$loadId]);
+ }
+
+ /**
+ * Load unique institutional COUNTER item (book and chapter9 investigations
+ */
+ public function compileCounterSubmissionInstitutionDailyMetrics(string $loadId): void
+ {
+ // construct metric_book_investigations_unique upsert
+ $metricBookInvestigationsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT usui.load_id, usui.context_id, usui.submission_id, DATE(usui.date) as date, usi.institution_id, 0 as metric_book_investigations, count(*) as metric, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table} usui
+ JOIN usage_stats_institution_temporary_records usi on (usi.load_id = usui.load_id AND usi.line_number = usui.line_number)
+ WHERE usui.load_id = ? AND submission_id IS NOT NULL AND chapter_id IS NULL AND usi.institution_id = ?
+ GROUP BY usui.load_id, usui.context_id, usui.submission_id, DATE(usui.date), usi.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricBookInvestigationsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_book_investigations_unique = excluded.metric_book_investigations_unique;
+ ';
+ } else {
+ $metricBookInvestigationsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_book_investigations_unique = metric;
+ ';
+ }
+
+ // construct metric_chapter_investigations_unique upsert
+ $metricChapterInvestigationsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT usuci.load_id, usuci.context_id, usuci.submission_id, DATE(usuci.date) as date, usi.institution_id, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, count(*) as metric, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table} usuci
+ JOIN usage_stats_institution_temporary_records usi on (usi.load_id = usuci.load_id AND usi.line_number = usuci.line_number)
+ WHERE usuci.load_id = ? AND submission_id IS NOT NULL AND chapter_id IS NOT NULL AND usi.institution_id = ?
+ GROUP BY usuci.load_id, usuci.context_id, usuci.submission_id, DATE(usuci.date), usi.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricChapterInvestigationsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_chapter_investigations_unique = excluded.metric_chapter_investigations_unique;
+ ';
+ } else {
+ $metricChapterInvestigationsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_chapter_investigations_unique = metric;
+ ';
+ }
+
+ $temporaryInstitutionsDAO = DAORegistry::getDAO('TemporaryInstitutionsDAO'); /** @var TemporaryInstitutionsDAO $temporaryInstitutionsDAO */
+ $institutionIds = $temporaryInstitutionsDAO->getInstitutionIdsByLoadId($loadId);
+ foreach ($institutionIds as $institutionId) {
+ DB::statement($metricBookInvestigationsUniqueUpsertSql, [$loadId, (int) $institutionId]);
+ DB::statement($metricChapterInvestigationsUniqueUpsertSql, [$loadId, (int) $institutionId]);
+ }
+ }
+}
diff --git a/classes/statistics/TemporaryItemRequestsDAO.php b/classes/statistics/TemporaryItemRequestsDAO.php
new file mode 100644
index 00000000000..ebdfc8a2bc5
--- /dev/null
+++ b/classes/statistics/TemporaryItemRequestsDAO.php
@@ -0,0 +1,239 @@
+ $entryData->chapterId]
+ );
+ }
+
+ /**
+ * Remove Unique Clicks
+ * If multiple transactions represent the same item and occur in the same user-sessions, only one unique activity MUST be counted for that item.
+ * Unique book item is a submission (with chapter ID = NULL).
+ * Unique chapter item is a chapter.
+ * A user session is defined by the combination of IP address + user agent + transaction date + hour of day.
+ * Only the last unique activity will be retained (and thus counted), all the other will be removed.
+ *
+ * See https://www.projectcounter.org/code-of-practice-five-sections/7-processing-rules-underlying-counter-reporting-data/#counting
+ */
+ public function compileBookItemUniqueClicks(string $loadId): void
+ {
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ DB::statement(
+ "
+ DELETE FROM {$this->table} usur
+ WHERE EXISTS (
+ SELECT * FROM (
+ SELECT 1 FROM {$this->table} usurt
+ WHERE usur.load_id = ? AND usurt.load_id = usur.load_id AND
+ usurt.context_id = usur.context_id AND
+ usurt.ip = usur.ip AND
+ usurt.user_agent = usur.user_agent AND
+ usurt.submission_id = usur.submission_id AND
+ usurt.chapter_id IS NULL AND usur.chapter_id IS NULL AND
+ EXTRACT(HOUR FROM usurt.date) = EXTRACT(HOUR FROM usur.date) AND
+ usur.line_number < usurt.line_number
+ ) AS tmp
+ )
+ ",
+ [$loadId]
+ );
+ } else {
+ DB::statement(
+ "
+ DELETE FROM usur USING {$this->table} usur
+ INNER JOIN {$this->table} usurt ON (
+ usurt.load_id = usur.load_id AND
+ usurt.context_id = usur.context_id AND
+ usurt.ip = usur.ip AND
+ usurt.user_agent = usur.user_agent AND
+ usurt.submission_id = usur.submission_id
+ )
+ WHERE usur.load_id = ? AND
+ usurt.chapter_id IS NULL AND usur.chapter_id IS NULL AND
+ TIMESTAMPDIFF(HOUR, usur.date, usurt.date) = 0 AND
+ usur.line_number < usurt.line_number
+ ",
+ [$loadId]
+ );
+ }
+ }
+ public function compileChapterItemUniqueClicks(string $loadId): void
+ {
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ DB::statement(
+ "
+ DELETE FROM {$this->table} usur
+ WHERE EXISTS (
+ SELECT * FROM (
+ SELECT 1 FROM {$this->table} usurt
+ WHERE usur.load_id = ? AND usurt.load_id = usur.load_id AND
+ usurt.context_id = usur.context_id AND
+ usurt.ip = usur.ip AND
+ usurt.user_agent = usur.user_agent AND
+ usurt.submission_id = usur.submission_id AND
+ usurt.chapter_id = usur.chapter_id AND usurt.chapter_id IS NOT NULL AND
+ EXTRACT(HOUR FROM usurt.date) = EXTRACT(HOUR FROM usur.date) AND
+ usur.line_number < usurt.line_number
+ ) AS tmp
+ )
+ ",
+ [$loadId]
+ );
+ } else {
+ DB::statement(
+ "
+ DELETE FROM usur USING {$this->table} usur
+ INNER JOIN {$this->table} usurt ON (
+ usurt.load_id = usur.load_id AND
+ usurt.context_id = usur.context_id AND
+ usurt.ip = usur.ip AND
+ usurt.user_agent = usur.user_agent AND
+ usurt.submission_id = usur.submission_id AND
+ usurt.chapter_id = usur.chapter_id
+ )
+ WHERE usur.load_id = ? AND
+ usurt.chapter_id IS NOT NULL AND
+ TIMESTAMPDIFF(HOUR, usur.date, usurt.date) = 0 AND
+ usur.line_number < usurt.line_number
+ ",
+ [$loadId]
+ );
+ }
+ }
+
+ /**
+ * Load unique COUNTER item (book and chapter) requests (primary files downloads)
+ */
+ public function compileCounterSubmissionDailyMetrics(string $loadId): void
+ {
+ // construct metric_book_requests_unique upsert
+ // assoc_type should always be Application::ASSOC_TYPE_SUBMISSION_FILE, but include the condition however
+ $metricBookRequestsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, count(*) as metric, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table}
+ WHERE load_id = ? AND assoc_type = ? AND chapter_id IS NULL
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricBookRequestsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_book_requests_unique = excluded.metric_book_requests_unique;
+ ';
+ } else {
+ $metricBookRequestsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_book_requests_unique = metric;
+ ';
+ }
+ DB::statement($metricBookRequestsUniqueUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE]);
+
+ // construct metric_chapter_requests_unique upsert
+ // assoc_type should always be Application::ASSOC_TYPE_SUBMISSION_FILE, but include the condition however
+ $metricChapterRequestsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, count(*) as metric, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table}
+ WHERE load_id = ? AND assoc_type = ? AND chapter_id IS NOT NULL
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricChapterRequestsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_chapter_requests_unique = excluded.metric_chapter_requests_unique;
+ ';
+ } else {
+ $metricChapterRequestsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_chapter_requests_unique = metric;
+ ';
+ }
+ DB::statement($metricChapterRequestsUniqueUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE]);
+ }
+
+ /**
+ * Load unique institutional COUNTER item (book and chapter) requests (primary files downloads)
+ */
+ public function compileCounterSubmissionInstitutionDailyMetrics(string $loadId): void
+ {
+ // construct metric_book_requests_unique upsert
+ // assoc_type should always be Application::ASSOC_TYPE_SUBMISSION_FILE, but include the condition however
+ $metricBookRequestsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT usur.load_id, usur.context_id, usur.submission_id, DATE(usur.date) as date, usi.institution_id, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, count(*) as metric, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table} usur
+ JOIN usage_stats_institution_temporary_records usi on (usi.load_id = usur.load_id AND usi.line_number = usur.line_number)
+ WHERE usur.load_id = ? AND usur.assoc_type = ? AND chapter_id IS NULL AND usi.institution_id = ?
+ GROUP BY usur.load_id, usur.context_id, usur.submission_id, DATE(usur.date), usi.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricBookRequestsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_book_requests_unique = excluded.metric_book_requests_unique;
+ ';
+ } else {
+ $metricBookRequestsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_book_requests_unique = metric;
+ ';
+ }
+
+ // construct metric_chapter_requests_unique upsert
+ // assoc_type should always be Application::ASSOC_TYPE_SUBMISSION_FILE, but include the condition however
+ $metricChapterRequestsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT usucr.load_id, usucr.context_id, usucr.submission_id, DATE(usucr.date) as date, usi.institution_id, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, count(*) as metric, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table} usucr
+ JOIN usage_stats_institution_temporary_records usi on (usi.load_id = usucr.load_id AND usi.line_number = usucr.line_number)
+ WHERE usucr.load_id = ? AND usucr.assoc_type = ? AND chapter_id IS NOT NULL AND usi.institution_id = ?
+ GROUP BY usucr.load_id, usucr.context_id, usucr.submission_id, DATE(usucr.date), usi.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricChapterRequestsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_chapter_requests_unique = excluded.metric_chapter_requests_unique;
+ ';
+ } else {
+ $metricChapterRequestsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_chapter_requests_unique = metric;
+ ';
+ }
+
+ $temporaryInstitutionsDAO = DAORegistry::getDAO('TemporaryInstitutionsDAO'); /** @var TemporaryInstitutionsDAO $temporaryInstitutionsDAO */
+ $institutionIds = $temporaryInstitutionsDAO->getInstitutionIdsByLoadId($loadId);
+ foreach ($institutionIds as $institutionId) {
+ DB::statement($metricBookRequestsUniqueUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE, (int) $institutionId]);
+ DB::statement($metricChapterRequestsUniqueUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE, (int) $institutionId]);
+ }
+ }
+}
diff --git a/classes/statistics/TemporaryTitleInvestigationsDAO.php b/classes/statistics/TemporaryTitleInvestigationsDAO.php
new file mode 100644
index 00000000000..64d873531d5
--- /dev/null
+++ b/classes/statistics/TemporaryTitleInvestigationsDAO.php
@@ -0,0 +1,201 @@
+table)->insert([
+ 'date' => $entryData->time,
+ 'ip' => $entryData->ip,
+ 'user_agent' => substr($entryData->userAgent, 0, 255),
+ 'line_number' => $lineNumber,
+ 'context_id' => $entryData->contextId,
+ 'submission_id' => $entryData->submissionId,
+ 'chapter_id' => $entryData->chapterId,
+ 'representation_id' => $entryData->representationId,
+ 'submission_file_id' => $entryData->submissionFileId,
+ 'assoc_type' => $entryData->assocType,
+ 'file_type' => $entryData->fileType,
+ 'country' => !empty($entryData->country) ? $entryData->country : '',
+ 'region' => !empty($entryData->region) ? $entryData->region : '',
+ 'city' => !empty($entryData->city) ? $entryData->city : '',
+ 'load_id' => $loadId,
+ ]);
+ }
+
+ /**
+ * Delete all temporary records associated
+ * with the passed load id.
+ */
+ public function deleteByLoadId(string $loadId): void
+ {
+ DB::table($this->table)->where('load_id', '=', $loadId)->delete();
+ }
+
+ /**
+ * Remove Unique Title Clicks
+ * If multiple transactions represent the same title and occur in the same user-sessions, only one unique activity MUST be counted for that item.
+ * A title represents the parent work that the item is part of.
+ * Unique title is a submission.
+ * A user session is defined by the combination of IP address + user agent + transaction date + hour of day.
+ * Only the last unique activity will be retained (and thus counted), all the other will be removed.
+ *
+ * See https://www.projectcounter.org/code-of-practice-five-sections/7-processing-rules-underlying-counter-reporting-data/#titles
+ */
+ public function compileTitleUniqueClicks(string $loadId): void
+ {
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ DB::statement(
+ "
+ DELETE FROM {$this->table} usuti
+ WHERE EXISTS (
+ SELECT * FROM (
+ SELECT 1 FROM {$this->table} usutit
+ WHERE usuti.load_id = ? AND usutit.load_id = usuti.load_id AND
+ usutit.context_id = usuti.context_id AND
+ usutit.ip = usuti.ip AND
+ usutit.user_agent = usuti.user_agent AND
+ usutit.submission_id = usuti.submission_id AND
+ EXTRACT(HOUR FROM usutit.date) = EXTRACT(HOUR FROM usuti.date) AND
+ usuti.line_number < usutit.line_number
+ ) AS tmp
+ )
+ ",
+ [$loadId]
+ );
+ } else {
+ DB::statement(
+ "
+ DELETE FROM usuti USING {$this->table} usuti
+ INNER JOIN {$this->table} usutit ON (
+ usutit.load_id = usuti.load_id AND
+ usutit.context_id = usuti.context_id AND
+ usutit.ip = usuti.ip AND
+ usutit.user_agent = usuti.user_agent AND
+ usutit.submission_id = usuti.submission_id)
+ WHERE usuti.load_id = ? AND
+ TIMESTAMPDIFF(HOUR, usuti.date, usutit.date) = 0 AND
+ usuti.line_number < usutit.line_number
+ ",
+ [$loadId]
+ );
+ }
+ }
+
+ /**
+ * Load unique geographical usage on the submission level
+ */
+ public function compileSubmissionGeoDailyMetrics(string $loadId): void
+ {
+ // construct metric_unique upsert
+ $metricUniqueUpsertSql = "
+ INSERT INTO metrics_submission_geo_daily (load_id, context_id, submission_id, date, country, region, city, metric, metric_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, country, region, city, 0 as metric, count(*) as metric_unique_tmp
+ FROM {$this->table}
+ WHERE load_id = ? AND submission_id IS NOT NULL AND (country <> '' OR region <> '' OR city <> '')
+ GROUP BY load_id, context_id, submission_id, DATE(date), country, region, city) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msgd_uc_load_context_submission_c_r_c_date DO UPDATE
+ SET metric_unique = excluded.metric_unique;
+ ';
+ } else {
+ $metricUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_unique = metric_unique_tmp;
+ ';
+ }
+ // load metric_unique
+ DB::statement($metricUniqueUpsertSql, [$loadId]);
+ }
+
+ /**
+ * Load unique COUNTER title (submission) investigations
+ */
+ public function compileCounterSubmissionDailyMetrics(string $loadId): void
+ {
+ // construct metric_title_investigations_unique upsert
+ $metricTitleInvestigationsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, count(*) as metric, 0 as metric_title_requests_unique
+ FROM {$this->table}
+ WHERE load_id = ? AND submission_id IS NOT NULL
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricTitleInvestigationsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_title_investigations_unique = excluded.metric_title_investigations_unique;
+ ';
+ } else {
+ $metricTitleInvestigationsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_title_investigations_unique = metric;
+ ';
+ }
+ DB::statement($metricTitleInvestigationsUniqueUpsertSql, [$loadId]);
+ }
+
+ /**
+ * Load unique institutional COUNTER title (submission) investigations
+ */
+ public function compileCounterSubmissionInstitutionDailyMetrics(string $loadId): void
+ {
+ // construct metric_title_investigations_unique upsert
+ $metricTitleInvestigationsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT usuti.load_id, usuti.context_id, usuti.submission_id, DATE(usuti.date) as date, usi.institution_id, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, count(*) as metric, 0 as metric_title_requests_unique
+ FROM {$this->table} usuti
+ JOIN usage_stats_institution_temporary_records usi on (usi.load_id = usuti.load_id AND usi.line_number = usuti.line_number)
+ WHERE usuti.load_id = ? AND submission_id IS NOT NULL AND usi.institution_id = ?
+ GROUP BY usuti.load_id, usuti.context_id, usuti.submission_id, DATE(usuti.date), usi.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricTitleInvestigationsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_title_investigations_unique = excluded.metric_title_investigations_unique;
+ ';
+ } else {
+ $metricTitleInvestigationsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_title_investigations_unique = metric;
+ ';
+ }
+
+ $temporaryInstitutionsDAO = DAORegistry::getDAO('TemporaryInstitutionsDAO'); /** @var TemporaryInstitutionsDAO $temporaryInstitutionsDAO */
+ $institutionIds = $temporaryInstitutionsDAO->getInstitutionIdsByLoadId($loadId);
+ foreach ($institutionIds as $institutionId) {
+ DB::statement($metricTitleInvestigationsUniqueUpsertSql, [$loadId, (int) $institutionId]);
+ }
+ }
+}
diff --git a/classes/statistics/TemporaryTitleRequestsDAO.php b/classes/statistics/TemporaryTitleRequestsDAO.php
new file mode 100644
index 00000000000..98abbbdadb2
--- /dev/null
+++ b/classes/statistics/TemporaryTitleRequestsDAO.php
@@ -0,0 +1,178 @@
+table)->insert([
+ 'date' => $entryData->time,
+ 'ip' => $entryData->ip,
+ 'user_agent' => substr($entryData->userAgent, 0, 255),
+ 'line_number' => $lineNumber,
+ 'context_id' => $entryData->contextId,
+ 'submission_id' => $entryData->submissionId,
+ 'chapter_id' => $entryData->chapterId,
+ 'representation_id' => $entryData->representationId,
+ 'submission_file_id' => $entryData->submissionFileId,
+ 'assoc_type' => $entryData->assocType,
+ 'file_type' => $entryData->fileType,
+ 'country' => !empty($entryData->country) ? $entryData->country : '',
+ 'region' => !empty($entryData->region) ? $entryData->region : '',
+ 'city' => !empty($entryData->city) ? $entryData->city : '',
+ 'load_id' => $loadId,
+ ]);
+ }
+
+ /**
+ * Delete all temporary records associated
+ * with the passed load id.
+ */
+ public function deleteByLoadId(string $loadId): void
+ {
+ DB::table($this->table)->where('load_id', '=', $loadId)->delete();
+ }
+
+ /**
+ * Remove Unique Title Clicks
+ * If multiple transactions represent the same title and occur in the same user-sessions, only one unique activity MUST be counted for that item.
+ * A title represents the parent work that the item is part of.
+ * Unique title is a submission.
+ * A user session is defined by the combination of IP address + user agent + transaction date + hour of day.
+ * Only the last unique activity will be retained (and thus counted), all the other will be removed.
+ *
+ * See https://www.projectcounter.org/code-of-practice-five-sections/7-processing-rules-underlying-counter-reporting-data/#titles
+ */
+ public function compileTitleUniqueClicks(string $loadId): void
+ {
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ DB::statement(
+ "
+ DELETE FROM {$this->table} usutr
+ WHERE EXISTS (
+ SELECT * FROM (
+ SELECT 1 FROM {$this->table} usutrt
+ WHERE usutr.load_id = ? AND usutrt.load_id = usutr.load_id AND
+ usutrt.context_id = usutr.context_id AND
+ usutrt.ip = usutr.ip AND
+ usutrt.user_agent = usutr.user_agent AND
+ usutrt.submission_id = usutr.submission_id AND
+ EXTRACT(HOUR FROM usutrt.date) = EXTRACT(HOUR FROM usutr.date) AND
+ usutr.line_number < usutrt.line_number
+ ) AS tmp
+ )
+ ",
+ [$loadId]
+ );
+ } else {
+ DB::statement(
+ "
+ DELETE FROM usutr USING {$this->table} usutr
+ INNER JOIN {$this->table} usutrt ON (
+ usutrt.load_id = usutr.load_id AND
+ usutrt.context_id = usutr.context_id AND
+ usutrt.ip = usutr.ip AND
+ usutrt.user_agent = usutr.user_agent AND
+ usutrt.submission_id = usutr.submission_id
+ )
+ WHERE usutr.load_id = ? AND
+ TIMESTAMPDIFF(HOUR, usutr.date, usutrt.date) = 0 AND
+ usutr.line_number < usutrt.line_number
+ ",
+ [$loadId]
+ );
+ }
+ }
+
+ /**
+ * Load unique COUNTER title (submission) requests (primary files downloads)
+ */
+ public function compileCounterSubmissionDailyMetrics(string $loadId): void
+ {
+ // construct metric_title_requests_unique upsert
+ // assoc_type should always be Application::ASSOC_TYPE_SUBMISSION_FILE, but include the condition however
+ $metricTitleRequestsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, count(*) as metric
+ FROM {$this->table}
+ WHERE load_id = ? AND assoc_type = ?
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricTitleRequestsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_title_requests_unique = excluded.metric_title_requests_unique;
+ ';
+ } else {
+ $metricTitleRequestsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_title_requests_unique = metric;
+ ';
+ }
+ DB::statement($metricTitleRequestsUniqueUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE]);
+ }
+
+ /**
+ * Load unique institutional COUNTER title (submission) requests (primary files downloads)
+ */
+ public function compileCounterSubmissionInstitutionDailyMetrics(string $loadId): void
+ {
+ // construct metric_title_requests_unique upsert
+ // assoc_type should always be Application::ASSOC_TYPE_SUBMISSION_FILE, but include the condition however
+ $metricTitleRequestsUniqueUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT usutr.load_id, usutr.context_id, usutr.submission_id, DATE(usutr.date) as date, usi.institution_id, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, count(*) as metric
+ FROM {$this->table} usutr
+ JOIN usage_stats_institution_temporary_records usi on (usi.load_id = usutr.load_id AND usi.line_number = usutr.line_number)
+ WHERE usutr.load_id = ? AND usutr.assoc_type = ? AND usi.institution_id = ?
+ GROUP BY usutr.load_id, usutr.context_id, usutr.submission_id, DATE(usutr.date), usi.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricTitleRequestsUniqueUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_title_requests_unique = excluded.metric_title_requests_unique;
+ ';
+ } else {
+ $metricTitleRequestsUniqueUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_title_requests_unique = metric;
+ ';
+ }
+
+ $temporaryInstitutionsDAO = DAORegistry::getDAO('TemporaryInstitutionsDAO'); /** @var TemporaryInstitutionsDAO $temporaryInstitutionsDAO */
+ $institutionIds = $temporaryInstitutionsDAO->getInstitutionIdsByLoadId($loadId);
+ foreach ($institutionIds as $institutionId) {
+ DB::statement($metricTitleRequestsUniqueUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE, (int) $institutionId]);
+ }
+ }
+}
diff --git a/classes/statistics/TemporaryTotalsDAO.php b/classes/statistics/TemporaryTotalsDAO.php
new file mode 100644
index 00000000000..57c14cb09b1
--- /dev/null
+++ b/classes/statistics/TemporaryTotalsDAO.php
@@ -0,0 +1,286 @@
+ $entryData->chapterId,
+ 'series_id' => $entryData->seriesId,
+ ]
+ );
+ }
+
+ /**
+ * Load usage for series landing pages
+ */
+ public function compileSeriesMetrics(string $loadId): void
+ {
+ $date = DateTimeImmutable::createFromFormat('Ymd', substr($loadId, -12, 8));
+ DB::table('metrics_series')->where('load_id', '=', $loadId)->orWhereDate('date', '=', $date)->delete();
+ $selectSeriesMetrics = DB::table($this->table)
+ ->select(DB::raw('load_id, context_id, series_id, DATE(date) as date, count(*) as metric'))
+ ->where('load_id', '=', $loadId)
+ ->where('assoc_type', '=', Application::ASSOC_TYPE_SERIES)
+ ->groupBy(DB::raw('load_id, context_id, series_id, DATE(date)'));
+ DB::table('metrics_series')->insertUsing(['load_id', 'context_id', 'series_id', 'date', 'metric'], $selectSeriesMetrics);
+ }
+
+ /**
+ * Load usage for submissions (abstract page, primary fiels, supp files, chapter landing page)
+ */
+ public function compileSubmissionMetrics(string $loadId): void
+ {
+ $date = DateTimeImmutable::createFromFormat('Ymd', substr($loadId, -12, 8));
+ DB::table('metrics_submission')->where('load_id', '=', $loadId)->orWhereDate('date', '=', $date)->delete();
+ $selectSubmissionMetrics = DB::table($this->table)
+ ->select(DB::raw('load_id, context_id, submission_id, assoc_type, DATE(date) as date, count(*) as metric'))
+ ->where('load_id', '=', $loadId)
+ ->where('assoc_type', '=', Application::ASSOC_TYPE_SUBMISSION)
+ ->groupBy(DB::raw('load_id, context_id, submission_id, assoc_type, DATE(date)'));
+ DB::table('metrics_submission')->insertUsing(['load_id', 'context_id', 'submission_id', 'assoc_type', 'date', 'metric'], $selectSubmissionMetrics);
+
+ $selectSubmissionFileMetrics = DB::table($this->table)
+ ->select(DB::raw('load_id, context_id, submission_id, representation_id, chapter_id, submission_file_id, file_type, assoc_type, DATE(date) as date, count(*) as metric'))
+ ->where('load_id', '=', $loadId)
+ ->where('assoc_type', '=', Application::ASSOC_TYPE_SUBMISSION_FILE)
+ ->groupBy(DB::raw('load_id, context_id, submission_id, representation_id, chapter_id, submission_file_id, file_type, assoc_type, DATE(date)'));
+ DB::table('metrics_submission')->insertUsing(['load_id', 'context_id', 'submission_id', 'representation_id', 'chapter_id', 'submission_file_id', 'file_type', 'assoc_type', 'date', 'metric'], $selectSubmissionFileMetrics);
+
+ $selectSubmissionSuppFileMetrics = DB::table($this->table)
+ ->select(DB::raw('load_id, context_id, submission_id, representation_id, chapter_id, submission_file_id, file_type, assoc_type, DATE(date) as date, count(*) as metric'))
+ ->where('load_id', '=', $loadId)
+ ->where('assoc_type', '=', Application::ASSOC_TYPE_SUBMISSION_FILE_COUNTER_OTHER)
+ ->groupBy(DB::raw('load_id, context_id, submission_id, representation_id, chapter_id, submission_file_id, file_type, assoc_type, DATE(date)'));
+ DB::table('metrics_submission')->insertUsing(['load_id', 'context_id', 'submission_id', 'representation_id', 'chapter_id', 'submission_file_id', 'file_type', 'assoc_type', 'date', 'metric'], $selectSubmissionSuppFileMetrics);
+
+ $selectChapterMetrics = DB::table($this->table)
+ ->select(DB::raw('load_id, context_id, submission_id, chapter_id, assoc_type, DATE(date) as date, count(*) as metric'))
+ ->where('load_id', '=', $loadId)
+ ->where('assoc_type', '=', Application::ASSOC_TYPE_CHAPTER)
+ ->groupBy(DB::raw('load_id, context_id, submission_id, chapter_id, assoc_type, DATE(date)'));
+ DB::table('metrics_submission')->insertUsing(['load_id', 'context_id', 'submission_id', 'chapter_id', 'assoc_type', 'date', 'metric'], $selectChapterMetrics);
+ }
+
+ /**
+ * Load total COUNTER submission (book and chapter) usage (investigations and requests)
+ */
+ public function compileCounterSubmissionDailyMetrics(string $loadId): void
+ {
+ // construct metric_book_investigations upsert
+ $metricBookInvestigationsUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, count(*) as metric, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table}
+ WHERE load_id = ? AND submission_id IS NOT NULL AND chapter_id IS NULL
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricBookInvestigationsUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_book_investigations = excluded.metric_book_investigations;
+ ';
+ } else {
+ $metricBookInvestigationsUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_book_investigations = metric;
+ ';
+ }
+ DB::statement($metricBookInvestigationsUpsertSql, [$loadId]);
+
+ // construct metric_book_requests upsert
+ $metricBookRequestsUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, count(*) as metric, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table}
+ WHERE load_id = ? AND assoc_type = ? AND chapter_id IS NULL
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricBookRequestsUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_book_requests = excluded.metric_book_requests;
+ ';
+ } else {
+ $metricBookRequestsUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_book_requests = metric;
+ ';
+ }
+ DB::statement($metricBookRequestsUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE]);
+
+ // construct metric_chapter_investigations upsert
+ $metricChapterInvestigationsUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, count(*) as metric, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table}
+ WHERE load_id = ? AND submission_id IS NOT NULL AND chapter_id IS NOT NULL
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricChapterInvestigationsUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_chapter_investigations = excluded.metric_chapter_investigations;
+ ';
+ } else {
+ $metricChapterInvestigationsUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_chapter_investigations = metric;
+ ';
+ }
+ DB::statement($metricChapterInvestigationsUpsertSql, [$loadId]);
+
+ // construct metric_chapter_requests upsert
+ $metricChapterRequestsUpsertSql = "
+ INSERT INTO metrics_counter_submission_daily (load_id, context_id, submission_id, date, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (SELECT load_id, context_id, submission_id, DATE(date) as date, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, count(*) as metric, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table}
+ WHERE load_id = ? AND assoc_type = ? AND chapter_id IS NOT NULL
+ GROUP BY load_id, context_id, submission_id, DATE(date)) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricChapterRequestsUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msd_uc_load_id_context_id_submission_id_date DO UPDATE
+ SET metric_chapter_requests = excluded.metric_chapter_requests;
+ ';
+ } else {
+ $metricChapterRequestsUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_chapter_requests = metric;
+ ';
+ }
+ DB::statement($metricChapterRequestsUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE]);
+ }
+
+ /**
+ * Load total institutional COUNTER submission (book and chapter) usage (investigations and requests)
+ */
+ public function compileCounterSubmissionInstitutionDailyMetrics(string $loadId): void
+ {
+ // construct metric_book_investigations upsert
+ $metricBookInvestigationsUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT ustt.load_id, ustt.context_id, ustt.submission_id, DATE(ustt.date) as date, usit.institution_id, count(*) as metric, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table} ustt
+ JOIN usage_stats_institution_temporary_records usit on (usit.load_id = ustt.load_id AND usit.line_number = ustt.line_number)
+ WHERE ustt.load_id = ? AND submission_id IS NOT NULL AND chapter_id IS NULL AND usit.institution_id = ?
+ GROUP BY ustt.load_id, ustt.context_id, ustt.submission_id, DATE(ustt.date), usit.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricBookInvestigationsUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_book_investigations = excluded.metric_book_investigations;
+ ';
+ } else {
+ $metricBookInvestigationsUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_book_investigations = metric;
+ ';
+ }
+
+ // construct metric_book_requests upsert
+ $metricBookRequestsUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT ustt.load_id, ustt.context_id, ustt.submission_id, DATE(ustt.date) as date, usit.institution_id, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, count(*) as metric, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table} ustt
+ JOIN usage_stats_institution_temporary_records usit on (usit.load_id = ustt.load_id AND usit.line_number = ustt.line_number)
+ WHERE ustt.load_id = ? AND ustt.assoc_type = ? AND chapter_id IS NULL AND usit.institution_id = ?
+ GROUP BY ustt.load_id, ustt.context_id, ustt.submission_id, DATE(ustt.date), usit.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricBookRequestsUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_book_requests = excluded.metric_book_requests;
+ ';
+ } else {
+ $metricBookRequestsUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_book_requests = metric;
+ ';
+ }
+
+ // construct metric_chapter_investigations upsert
+ $metricChapterInvestigationsUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT ustt.load_id, ustt.context_id, ustt.submission_id, DATE(ustt.date) as date, usit.institution_id, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, count(*) as metric, 0 as metric_chapter_investigations_unique, 0 as metric_chapter_requests, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table} ustt
+ JOIN usage_stats_institution_temporary_records usit on (usit.load_id = ustt.load_id AND usit.line_number = ustt.line_number)
+ WHERE ustt.load_id = ? AND submission_id IS NOT NULL AND chapter_id IS NOT NULL AND usit.institution_id = ?
+ GROUP BY ustt.load_id, ustt.context_id, ustt.submission_id, DATE(ustt.date), usit.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricChapterInvestigationsUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_chapter_investigations = excluded.metric_chapter_investigations;
+ ';
+ } else {
+ $metricChapterInvestigationsUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_chapter_investigations = metric;
+ ';
+ }
+
+ // construct metric_chapter_requests upsert
+ $metricChapterRequestsUpsertSql = "
+ INSERT INTO metrics_counter_submission_institution_daily (load_id, context_id, submission_id, date, institution_id, metric_book_investigations, metric_book_investigations_unique, metric_book_requests, metric_book_requests_unique, metric_chapter_investigations, metric_chapter_investigations_unique, metric_chapter_requests, metric_chapter_requests_unique, metric_title_investigations_unique, metric_title_requests_unique)
+ SELECT * FROM (
+ SELECT ustt.load_id, ustt.context_id, ustt.submission_id, DATE(ustt.date) as date, usit.institution_id, 0 as metric_book_investigations, 0 as metric_book_investigations_unique, 0 as metric_book_requests, 0 as metric_book_requests_unique, 0 as metric_chapter_investigations, 0 as metric_chapter_investigations_unique, count(*) as metric, 0 as metric_chapter_requests_unique, 0 as metric_title_investigations_unique, 0 as metric_title_requests_unique
+ FROM {$this->table} ustt
+ JOIN usage_stats_institution_temporary_records usit on (usit.load_id = ustt.load_id AND usit.line_number = ustt.line_number)
+ WHERE ustt.load_id = ? AND ustt.assoc_type = ? AND chapter_id IS NOT NULL AND usit.institution_id = ?
+ GROUP BY ustt.load_id, ustt.context_id, ustt.submission_id, DATE(ustt.date), usit.institution_id) AS t
+ ";
+ if (substr(Config::getVar('database', 'driver'), 0, strlen('postgres')) === 'postgres') {
+ $metricChapterRequestsUpsertSql .= '
+ ON CONFLICT ON CONSTRAINT msid_uc_load_id_context_id_submission_id_institution_id_date DO UPDATE
+ SET metric_chapter_requests = excluded.metric_chapter_requests;
+ ';
+ } else {
+ $metricChapterRequestsUpsertSql .= '
+ ON DUPLICATE KEY UPDATE metric_chapter_requests = metric;
+ ';
+ }
+
+ $temporaryInstitutionsDAO = DAORegistry::getDAO('TemporaryInstitutionsDAO'); /** @var TemporaryInstitutionsDAO $temporaryInstitutionsDAO */
+ $institutionIds = $temporaryInstitutionsDAO->getInstitutionIdsByLoadId($loadId);
+ foreach ($institutionIds as $institutionId) {
+ DB::statement($metricBookInvestigationsUpsertSql, [$loadId, (int) $institutionId]);
+ DB::statement($metricBookRequestsUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE, (int) $institutionId]);
+ DB::statement($metricChapterInvestigationsUpsertSql, [$loadId, (int) $institutionId]);
+ DB::statement($metricChapterRequestsUpsertSql, [$loadId, Application::ASSOC_TYPE_SUBMISSION_FILE, (int) $institutionId]);
+ }
+ }
+}
diff --git a/classes/submission/Collector.php b/classes/submission/Collector.php
new file mode 100644
index 00000000000..81111f5dc46
--- /dev/null
+++ b/classes/submission/Collector.php
@@ -0,0 +1,177 @@
+dao = $dao;
+ }
+
+ /**
+ * Limit results to submissions assigned to these series
+ */
+ public function filterBySeriesIds(array $seriesIds): self
+ {
+ $this->seriesIds = $seriesIds;
+ return $this;
+ }
+
+ /**
+ * Put featured items first in the results
+ *
+ * If filtering by series or categories, this will put featured
+ * items in that series or category first. By default, it puts
+ * the items featured in the context at the top.
+ */
+ public function orderByFeatured(): self
+ {
+ $this->orderByFeatured = true;
+ return $this;
+ }
+
+ /**
+ * Add APP-specific filtering methods for submission sub objects DOI statuses
+ *
+ */
+ protected function addDoiStatusFilterToQuery(Builder $q)
+ {
+ $q->whereIn('s.current_publication_id', function (Builder $q) {
+ $q->select('current_p.publication_id')
+ ->from('publications as current_p')
+ ->leftJoin('submission_chapters as current_c', 'current_p.publication_id', '=', 'current_c.publication_id')
+ ->leftJoin('publication_formats as current_pf', 'current_p.publication_id', '=', 'current_pf.publication_id')
+ ->leftJoin('dois as pd', 'pd.doi_id', '=', 'current_p.doi_id')
+ ->leftJoin('dois as cd', 'cd.doi_id', '=', 'current_c.doi_id')
+ ->leftJoin('dois as pfd', 'pfd.doi_id', '=', 'current_pf.doi_id')
+ ->whereIn('pd.status', $this->doiStatuses)
+ ->orWhereIn('cd.status', $this->doiStatuses)
+ ->orWhereIn('pfd.status', $this->doiStatuses);
+ });
+ }
+
+
+ /**
+ * Add APP-specific filtering methods for checking if submission sub objects have DOIs assigned
+ */
+ protected function addHasDoisFilterToQuery(Builder $q)
+ {
+ $q->whereIn('s.current_publication_id', function (Builder $q) {
+ $q->select('current_p.publication_id')
+ ->from('publications', 'current_p')
+ ->leftJoin('submission_chapters as current_c', 'current_p.publication_id', '=', 'current_c.publication_id')
+ ->leftJoin('publication_formats as current_pf', 'current_p.publication_id', '=', 'current_pf.publication_id')
+ ->where(function (Builder $q) {
+ $q->when($this->hasDois === true, function (Builder $q) {
+ $q->when(in_array(Repo::doi()::TYPE_PUBLICATION, $this->enabledDoiTypes), function (Builder $q) {
+ $q->whereNotNull('current_p.doi_id');
+ });
+ $q->when(in_array(Repo::doi()::TYPE_CHAPTER, $this->enabledDoiTypes), function (Builder $q) {
+ $q->orWhereNotNull('current_c.doi_id');
+ });
+ $q->when(in_array(Repo::doi()::TYPE_REPRESENTATION, $this->enabledDoiTypes), function (Builder $q) {
+ $q->orWhereNotNull('current_pf.doi_id');
+ });
+ });
+ $q->when($this->hasDois === false, function (Builder $q) {
+ $q->when(in_array(Repo::doi()::TYPE_PUBLICATION, $this->enabledDoiTypes), function (Builder $q) {
+ $q->whereNull('current_p.doi_id');
+ });
+ $q->when(in_array(Repo::doi()::TYPE_CHAPTER, $this->enabledDoiTypes), function (Builder $q) {
+ $q->orWhere(function (Builder $q) {
+ $q->whereNull('current_c.doi_id');
+ $q->whereNotNull('current_c.chapter_id');
+ });
+ });
+ $q->when(in_array(Repo::doi()::TYPE_REPRESENTATION, $this->enabledDoiTypes), function (Builder $q) {
+ $q->orWhere(function (Builder $q) {
+ $q->whereNull('current_pf.doi_id');
+ $q->whereNotNull('current_pf.publication_format_id');
+ });
+ });
+ });
+ });
+ });
+ }
+
+ /**
+ * @copydoc CollectorInterface::getQueryBuilder()
+ */
+ public function getQueryBuilder(): Builder
+ {
+ $q = parent::getQueryBuilder();
+
+ if (is_array($this->seriesIds)) {
+ $q->leftJoin('publications as publication_s', 's.current_publication_id', '=', 'publication_s.publication_id');
+ $q->whereIn('publication_s.series_id', $this->seriesIds);
+ }
+
+ // order by series position
+ if ($this->orderBy === self::ORDERBY_SERIES_POSITION) {
+ $this->columns[] = 'po.series_position';
+ $q->reorder()->orderBy('po.series_position', $this->orderDirection);
+ }
+
+ if (!empty($this->orderByFeatured)) {
+ if (is_array($this->seriesIds)) {
+ $assocType = Application::ASSOC_TYPE_SERIES;
+ $assocIds = $this->seriesIds;
+ } elseif (is_array($this->categoryIds)) {
+ $assocType = Application::ASSOC_TYPE_CATEGORY;
+ $assocIds = $this->categoryIds;
+ } else {
+ $assocType = Application::ASSOC_TYPE_PRESS;
+ $assocIds = is_array($this->contextIds)
+ ? $this->contextIds
+ : [Application::CONTEXT_ID_NONE];
+ }
+
+ $q->leftJoin('features as sf', function ($join) use ($assocType, $assocIds) {
+ $join->on('s.submission_id', '=', 'sf.submission_id')
+ ->where('sf.assoc_type', '=', $assocType)
+ ->whereIn('sf.assoc_id', $assocIds);
+ });
+
+ // Featured sorting should be the first sort parameter. We sort by
+ // the seq parameter, with null values last
+
+ $q->addSelect('sf.seq');
+ $q->addSelect(DB::raw('case when sf.seq is null then 1 else 0 end'));
+ array_unshift(
+ $q->orders,
+ ['type' => 'raw', 'sql' => 'case when sf.seq is null then 1 else 0 end'],
+ ['column' => 'sf.seq', 'direction' => 'ASC']
+ );
+ }
+
+ return $q;
+ }
+}
diff --git a/classes/submission/DAO.php b/classes/submission/DAO.php
new file mode 100644
index 00000000000..894da373af1
--- /dev/null
+++ b/classes/submission/DAO.php
@@ -0,0 +1,52 @@
+ 'submission_id',
+ 'contextId' => 'context_id',
+ 'currentPublicationId' => 'current_publication_id',
+ 'dateLastActivity' => 'date_last_activity',
+ 'dateSubmitted' => 'date_submitted',
+ 'lastModified' => 'last_modified',
+ 'locale' => 'locale',
+ 'stageId' => 'stage_id',
+ 'status' => 'status',
+ 'submissionProgress' => 'submission_progress',
+ 'workType' => 'work_type',
+ ];
+
+ /** @copydoc \PKP\submission\DAO::deleteById() */
+ public function deleteById(int $id)
+ {
+ // Delete references to features or new releases.
+ $featureDao = DAORegistry::getDAO('FeatureDAO'); /** @var FeatureDAO $featureDao */
+ $featureDao->deleteByMonographId($id);
+
+ $newReleaseDao = DAORegistry::getDAO('NewReleaseDAO'); /** @var NewReleaseDAO $newReleaseDao */
+ $newReleaseDao->deleteByMonographId($id);
+
+ event(new SubmissionDeleted($id));
+
+ parent::deleteById($id);
+ }
+}
diff --git a/classes/submission/Repository.php b/classes/submission/Repository.php
new file mode 100644
index 00000000000..c387a92b33e
--- /dev/null
+++ b/classes/submission/Repository.php
@@ -0,0 +1,134 @@
+getSortOption(Collector::ORDERBY_SERIES_POSITION, Collector::ORDER_DIR_ASC) => __('catalog.sortBy.seriesPositionAsc'),
+ $this->getSortOption(Collector::ORDERBY_SERIES_POSITION, Collector::ORDER_DIR_DESC) => __('catalog.sortBy.seriesPositionDesc'),
+ ]
+ );
+ }
+
+ /**
+ * Creates and assigns DOIs to all sub-objects if:
+ * 1) the suffix pattern can currently be created, and
+ * 2) it does not already exist.
+ *
+ */
+ public function createDois(Submission $submission): array
+ {
+ /** @var PressDAO $contextDao */
+ $contextDao = Application::getContextDAO();
+
+ /** @var Press $context */
+ $context = $contextDao->getById($submission->getData('contextId'));
+
+ $publication = $submission->getCurrentPublication();
+
+ $doiCreationFailures = [];
+
+ if ($context->isDoiTypeEnabled(Repo::doi()::TYPE_PUBLICATION) && empty($publication->getData('doiId'))) {
+ try {
+ $doiId = Repo::doi()->mintPublicationDoi($publication, $submission, $context);
+ Repo::publication()->edit($publication, ['doiId' => $doiId]);
+ } catch (DoiException $exception) {
+ $doiCreationFailures[] = $exception;
+ }
+ }
+
+ // Chapters
+ /** @var Chapter[] $chapters */
+ $chapters = $publication->getData('chapters');
+ if ($context->isDoiTypeEnabled(Repo::doi()::TYPE_CHAPTER) && !empty($chapters)) {
+ /** @var ChapterDAO $chapterDao */
+ $chapterDao = DAORegistry::getDAO('ChapterDAO');
+ foreach ($chapters as $chapter) {
+ if (empty($chapter->getData('doiId'))) {
+ try {
+ $doiId = Repo::doi()->mintChapterDoi($chapter, $submission, $context);
+ $chapter->setData('doiId', $doiId);
+ $chapterDao->updateObject($chapter);
+ } catch (DoiException $exception) {
+ $doiCreationFailures[] = $exception;
+ }
+ }
+ }
+ }
+
+ // Publication formats
+ $publicationFormats = $publication->getData('publicationFormats');
+ if ($context->isDoiTypeEnabled(Repo::doi()::TYPE_REPRESENTATION) && !empty($publicationFormats)) {
+ /** @var PublicationFormatDAO $publicationFormatDao */
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO');
+ /** @var PublicationFormat $publicationFormat */
+ foreach ($publicationFormats as $publicationFormat) {
+ if (empty($publicationFormat->getData('doiId'))) {
+ try {
+ $doiId = Repo::doi()->mintPublicationFormatDoi($publicationFormat, $submission, $context);
+ $publicationFormat->setData('doiId', $doiId);
+ $publicationFormatDao->updateObject($publicationFormat);
+ } catch (DoiException $exception) {
+ $doiCreationFailures[] = $exception;
+ }
+ }
+ }
+ }
+
+ // Submission files
+ if ($context->isDoiTypeEnabled(Repo::doi()::TYPE_SUBMISSION_FILE)) {
+ // Get all submission files assigned to a publication format
+ $submissionFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$publication->getData('submissionId')])
+ ->filterByFileStages([SubmissionFile::SUBMISSION_FILE_PROOF])
+ ->getMany();
+
+ /** @var SubmissionFile $submissionFile */
+ foreach ($submissionFiles as $submissionFile) {
+ if (empty($submissionFile->getData('doiId'))) {
+ try {
+ $doiId = Repo::doi()->mintSubmissionFileDoi($submissionFile, $submission, $context);
+ Repo::submissionFile()->edit($submissionFile, ['doiId' => $doiId]);
+ } catch (DoiException $exception) {
+ $doiCreationFailures[] = $exception;
+ }
+ }
+ }
+ }
+
+ return $doiCreationFailures;
+ }
+}
diff --git a/classes/submission/Submission.inc.php b/classes/submission/Submission.inc.php
deleted file mode 100644
index 332b620296f..00000000000
--- a/classes/submission/Submission.inc.php
+++ /dev/null
@@ -1,272 +0,0 @@
-getContextId();
- }
-
- /**
- * set press id
- * @param $pressId int
- * @deprecated 3.2.0.0
- */
- function setPressId($pressId) {
- return $this->setContextId($pressId);
- }
-
- /**
- * Get the series id.
- * @return int
- * @deprecated 3.2.0.0
- */
- function getSeriesId() {
- return $this->getSectionId();
- }
-
- /**
- * @see Submission::getSectionId()
- * @deprecated 3.2.0.0
- */
- function getSectionId() {
- $publication = $this->getCurrentPublication();
- if (!$publication) {
- return 0;
- }
- return $publication->getData('seriesId');
- }
-
- /**
- * Set the series id.
- * @param $id int
- * @deprecated 3.2.0.0
- */
- function setSeriesId($id) {
- $publication = $this->getCurrentPublication();
- if ($publication) {
- $publication->setData('seriesId', $id);
- }
- }
-
- /**
- * Get the position of this monograph within a series.
- * @return string
- * @deprecated 3.2.0.0
- */
- function getSeriesPosition() {
- $publication = $this->getCurrentPublication();
- if (!$publication) {
- return '';
- }
- return $publication->getData('seriesPosition');
- }
-
- /**
- * Set the series position for this monograph.
- * @param $seriesPosition string
- * @deprecated 3.2.0.0
- */
- function setSeriesPosition($seriesPosition) {
- $publication = $this->getCurrentPublication();
- if ($publication) {
- $publication->setData('seriesPosition', $seriesPosition);
- }
- }
-
- /**
- * Get the work type (constant in WORK_TYPE_...)
- * @return int
- * @deprecated 3.2.0.0
- */
- function getWorkType() {
- return $this->getData('workType');
- }
-
- /**
- * Set the work type (constant in WORK_TYPE_...)
- * @param $workType int
- * @deprecated 3.2.0.0
- */
- function setWorkType($workType) {
- $this->setData('workType', $workType);
- }
-
- /**
- * Get localized supporting agencies array.
- * @return array
- * @deprecated 3.2.0.0
- */
- function getLocalizedSupportingAgencies() {
- $publication = $this->getCurrentPublication();
- if (!$publication) {
- return [];
- }
- return $publication->getLocalizedData('supportingAgencies');
- }
-
- /**
- * Get supporting agencies.
- * @param $locale
- * @return array
- * @deprecated 3.2.0.0
- */
- function getSupportingAgencies($locale) {
- $publication = $this->getCurrentPublication();
- if (!$publication) {
- return [];
- }
- return $publication->getData('supportingAgencies', $locale);
- }
-
- /**
- * Set supporting agencies.
- * @param $supportingAgencies array
- * @param $locale
- * @deprecated 3.2.0.0
- */
- function setSupportingAgencies($supportingAgencies, $locale) {
- $publication = $this->getCurrentPublication();
- if ($publication) {
- $publication->setData('seriesPosition', $supportingAgencies, $locale);
- }
- }
-
- /**
- * Get the value of a license field from the containing context.
- * @param $locale string Locale code
- * @param $field PERMISSIONS_FIELD_...
- * @param $publication Publication
- * @return string|array|null
- */
- function _getContextLicenseFieldValue($locale, $field, $publication = null) {
- $context = Services::get('context')->get($this->getData('contextId'));
- $fieldValue = null; // Scrutinizer
- switch ($field) {
- case PERMISSIONS_FIELD_LICENSE_URL:
- $fieldValue = $context->getData('licenseUrl');
- break;
- case PERMISSIONS_FIELD_COPYRIGHT_HOLDER:
- switch($context->getData('copyrightHolderType')) {
- case 'author':
- $fieldValue = array($context->getPrimaryLocale() => $this->getAuthorString());
- break;
- case 'context':
- case null:
- $fieldValue = $context->getName(null);
- break;
- default:
- $fieldValue = $context->getData('copyrightHolderOther');
- break;
- }
- break;
- case PERMISSIONS_FIELD_COPYRIGHT_YEAR:
- $fieldValue = date('Y');
- if (!$publication) {
- $publication = $this->getCurrentPublication();
- }
- if ($publication->getData('datePublished')) {
- $fieldValue = date('Y', strtotime($publication->getData('datePublished')));
- }
- break;
- default: assert(false);
- }
-
- // Return the fetched license field
- if ($locale === null) return $fieldValue;
- if (isset($fieldValue[$locale])) return $fieldValue[$locale];
- return null;
- }
-
- /**
- * get cover page server-side file name
- * @return string
- * @deprecated 3.2.0.0
- */
- function getCoverImage() {
- $publication = $this->getCurrentPublication();
- if (!$publication) {
- return '';
- }
- return $publication->getData('coverImage');
- }
-
- /**
- * get cover page alternate text
- * @return string
- * @deprecated 3.2.0.0
- */
- function getCoverImageAltText() {
- $publication = $this->getCurrentPublication();
- if (!$publication) {
- return '';
- }
- $coverImage = $publication->getData('coverImage');
- return empty($coverImage['altText']) ? '' : $coverImage['altText'];
- }
-
- /**
- * Get a string indicating all authors or, if it is an edited volume, editors.
- * @param $preferred boolean If the preferred public name should be used, if exist
- * @return string
- * @deprecated 3.2.0.0
- */
- public function getAuthorOrEditorString($preferred = true) {
-
- if ($this->getWorkType() != WORK_TYPE_EDITED_VOLUME) {
- $userGroupIds = array_map(function($author) {
- return $author->getData('userGroupId');
- }, $this->getAuthors(true));
- $userGroups = array_map(function($userGroupId) {
- return DAORegistry::getDAO('UserGroupDAO')->getbyId($userGroupId);
- }, array_unique($userGroupIds));
- return $this->getCurrentPublication()->getAuthorString($userGroups);
- }
-
- return $this->getCurrentPublication()->getEditorString();
- }
-
- /**
- * get enableChapterPublicationDates status
- * @return int
- */
- function getEnableChapterPublicationDates() {
- return $this->getData('enableChapterPublicationDates');
- }
-
- /**
- * set enableChapterPublicationDates status
- * @param $enableChapterPublicationDates int
- */
- function setEnableChapterPublicationDates($enableChapterPublicationDates) {
- $this->setData('enableChapterPublicationDates', $enableChapterPublicationDates);
- }
-
-}
diff --git a/classes/submission/Submission.php b/classes/submission/Submission.php
new file mode 100644
index 00000000000..b61f059394b
--- /dev/null
+++ b/classes/submission/Submission.php
@@ -0,0 +1,341 @@
+getContextId();
+ }
+
+ /**
+ * set press id
+ *
+ * @param int $pressId
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function setPressId($pressId)
+ {
+ return $this->setContextId($pressId);
+ }
+
+ /**
+ * Get the series id.
+ *
+ * @return int
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function getSeriesId()
+ {
+ return $this->getSectionId();
+ }
+
+ /**
+ * @see Submission::getSectionId()
+ * @deprecated 3.2.0.0
+ */
+ public function getSectionId()
+ {
+ $publication = $this->getCurrentPublication();
+ if (!$publication) {
+ return 0;
+ }
+ return $publication->getData('seriesId');
+ }
+
+ /**
+ * Set the series id.
+ *
+ * @param int $id
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function setSeriesId($id)
+ {
+ $publication = $this->getCurrentPublication();
+ if ($publication) {
+ $publication->setData('seriesId', $id);
+ }
+ }
+
+ /**
+ * Get the position of this monograph within a series.
+ *
+ * @return string
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function getSeriesPosition()
+ {
+ $publication = $this->getCurrentPublication();
+ if (!$publication) {
+ return '';
+ }
+ return $publication->getData('seriesPosition');
+ }
+
+ /**
+ * Set the series position for this monograph.
+ *
+ * @param string $seriesPosition
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function setSeriesPosition($seriesPosition)
+ {
+ $publication = $this->getCurrentPublication();
+ if ($publication) {
+ $publication->setData('seriesPosition', $seriesPosition);
+ }
+ }
+
+ /**
+ * Get the work type (constant in WORK_TYPE_...)
+ *
+ * @return int
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function getWorkType()
+ {
+ return $this->getData('workType');
+ }
+
+ /**
+ * Set the work type (constant in WORK_TYPE_...)
+ *
+ * @param int $workType
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function setWorkType($workType)
+ {
+ $this->setData('workType', $workType);
+ }
+
+ /**
+ * Get localized supporting agencies array.
+ *
+ * @return array
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function getLocalizedSupportingAgencies()
+ {
+ $publication = $this->getCurrentPublication();
+ if (!$publication) {
+ return [];
+ }
+ return $publication->getLocalizedData('supportingAgencies');
+ }
+
+ /**
+ * Get supporting agencies.
+ *
+ * @param string $locale
+ *
+ * @return array
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function getSupportingAgencies($locale)
+ {
+ $publication = $this->getCurrentPublication();
+ if (!$publication) {
+ return [];
+ }
+ return $publication->getData('supportingAgencies', $locale);
+ }
+
+ /**
+ * Set supporting agencies.
+ *
+ * @param array $supportingAgencies
+ * @param string $locale
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function setSupportingAgencies($supportingAgencies, $locale)
+ {
+ $publication = $this->getCurrentPublication();
+ if ($publication) {
+ $publication->setData('seriesPosition', $supportingAgencies, $locale);
+ }
+ }
+
+ /**
+ * Get the value of a license field from the containing context.
+ *
+ * @param string $locale Locale code
+ * @param int $field PERMISSIONS_FIELD_...
+ * @param Publication $publication
+ *
+ * @return string|array|null
+ */
+ public function _getContextLicenseFieldValue($locale, $field, $publication = null)
+ {
+ $context = Services::get('context')->get($this->getData('contextId'));
+ $fieldValue = null; // Scrutinizer
+ switch ($field) {
+ case static::PERMISSIONS_FIELD_LICENSE_URL:
+ $fieldValue = $context->getData('licenseUrl');
+ break;
+ case static::PERMISSIONS_FIELD_COPYRIGHT_HOLDER:
+ switch ($context->getData('copyrightHolderType')) {
+ case 'author':
+ if (!$publication) {
+ $publication = $this->getCurrentPublication();
+ }
+ $authorUserGroups = Repo::userGroup()->getCollector()->filterByRoleIds([\PKP\security\Role::ROLE_ID_AUTHOR])->filterByContextIds([$context->getId()])->getMany();
+ $fieldValue = [$context->getPrimaryLocale() => $publication->getAuthorString($authorUserGroups)];
+ break;
+ case 'context':
+ case null:
+ $fieldValue = $context->getName(null);
+ break;
+ default:
+ $fieldValue = $context->getData('copyrightHolderOther');
+ break;
+ }
+ break;
+ case static::PERMISSIONS_FIELD_COPYRIGHT_YEAR:
+ $fieldValue = date('Y');
+ if (!$publication) {
+ $publication = $this->getCurrentPublication();
+ }
+ if ($publication->getData('datePublished')) {
+ $fieldValue = date('Y', strtotime($publication->getData('datePublished')));
+ }
+ break;
+ default: assert(false);
+ }
+
+ // Return the fetched license field
+ if ($locale === null) {
+ return $fieldValue;
+ }
+ if (isset($fieldValue[$locale])) {
+ return $fieldValue[$locale];
+ }
+ return null;
+ }
+
+ /**
+ * get cover page server-side file name
+ *
+ * @return string
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function getCoverImage()
+ {
+ $publication = $this->getCurrentPublication();
+ if (!$publication) {
+ return '';
+ }
+ return $publication->getData('coverImage');
+ }
+
+ /**
+ * get cover page alternate text
+ *
+ * @return string
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function getCoverImageAltText()
+ {
+ $publication = $this->getCurrentPublication();
+ if (!$publication) {
+ return '';
+ }
+ $coverImage = $publication->getData('coverImage');
+ return empty($coverImage['altText']) ? '' : $coverImage['altText'];
+ }
+
+ /**
+ * Get a string indicating all authors or, if it is an edited volume, editors.
+ *
+ * @param bool $preferred If the preferred public name should be used, if exist
+ *
+ * @return string
+ *
+ * @deprecated 3.2.0.0
+ */
+ public function getAuthorOrEditorString($preferred = true)
+ {
+ if ($this->getWorkType() != self::WORK_TYPE_EDITED_VOLUME) {
+ $userGroups = Repo::userGroup()->getCollector()
+ ->filterByContextIds([$this->getData('contextId')])
+ ->getMany();
+
+ return $this->getCurrentPublication()->getAuthorString($userGroups);
+ }
+
+ return $this->getCurrentPublication()->getEditorString();
+ }
+
+ /**
+ * get enableChapterPublicationDates status
+ *
+ * @return int
+ */
+ public function getEnableChapterPublicationDates()
+ {
+ return $this->getData('enableChapterPublicationDates');
+ }
+
+ /**
+ * set enableChapterPublicationDates status
+ *
+ * @param int $enableChapterPublicationDates
+ */
+ public function setEnableChapterPublicationDates($enableChapterPublicationDates)
+ {
+ $this->setData('enableChapterPublicationDates', $enableChapterPublicationDates);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\submission\Submission', '\Submission');
+ define('WORK_TYPE_EDITED_VOLUME', Submission::WORK_TYPE_EDITED_VOLUME);
+ define('WORK_TYPE_AUTHORED_WORK', Submission::WORK_TYPE_AUTHORED_WORK);
+}
diff --git a/classes/submission/SubmissionDAO.inc.php b/classes/submission/SubmissionDAO.inc.php
deleted file mode 100644
index 696b5dad262..00000000000
--- a/classes/submission/SubmissionDAO.inc.php
+++ /dev/null
@@ -1,76 +0,0 @@
- 'submission_id',
- 'contextId' => 'context_id',
- 'currentPublicationId' => 'current_publication_id',
- 'dateLastActivity' => 'date_last_activity',
- 'dateSubmitted' => 'date_submitted',
- 'lastModified' => 'last_modified',
- 'locale' => 'locale',
- 'stageId' => 'stage_id',
- 'status' => 'status',
- 'submissionProgress' => 'submission_progress',
- 'workType' => 'work_type',
- ];
-
- /**
- * Get a new data object representing the monograph.
- * @return Submission
- */
- public function newDataObject() {
- return new Submission();
- }
-
- /**
- * @copydoc PKPSubmissionDAO::deleteById
- */
- function deleteById($submissionId) {
- parent::deleteById($submissionId);
-
- // Delete references to features or new releases.
- $featureDao = DAORegistry::getDAO('FeatureDAO'); /* @var $featureDao FeatureDAO */
- $featureDao->deleteByMonographId($submissionId);
-
- $newReleaseDao = DAORegistry::getDAO('NewReleaseDAO'); /* @var $newReleaseDao NewReleaseDAO */
- $newReleaseDao->deleteByMonographId($submissionId);
-
- $monographSearchIndex = Application::getSubmissionSearchIndex();
- $monographSearchIndex->deleteTextIndex($submissionId);
- $monographSearchIndex->submissionChangesFinished();
- }
-
- /**
- * Get possible sort options.
- * @return array
- */
- public function getSortSelectOptions() {
- return array_merge(parent::getSortSelectOptions(), array(
- $this->getSortOption(ORDERBY_SERIES_POSITION, SORT_DIRECTION_ASC) => __('catalog.sortBy.seriesPositionAsc'),
- $this->getSortOption(ORDERBY_SERIES_POSITION, SORT_DIRECTION_DESC) => __('catalog.sortBy.seriesPositionDesc'),
- ));
- }
-}
-
diff --git a/classes/submission/SubmissionFileDAO.inc.php b/classes/submission/SubmissionFileDAO.inc.php
deleted file mode 100644
index 21bb8db182c..00000000000
--- a/classes/submission/SubmissionFileDAO.inc.php
+++ /dev/null
@@ -1,63 +0,0 @@
- 'assoc_id',
- 'assocType' => 'assoc_type',
- 'createdAt' => 'created_at',
- 'directSalesPrice' => 'direct_sales_price',
- 'fileId' => 'file_id',
- 'fileStage' => 'file_stage',
- 'genreId' => 'genre_id',
- 'id' => 'submission_file_id',
- 'salesType' => 'sales_type',
- 'sourceSubmissionFileId' => 'source_submission_file_id',
- 'submissionId' => 'submission_id',
- 'updatedAt' => 'updated_at',
- 'uploaderUserId' => 'uploader_user_id',
- 'viewable' => 'viewable',
- ];
-
- /**
- * Update the files associated with a chapter
- *
- * @param array $submissionFileIds
- * @param int $chapterId
- */
- public function updateChapterFiles($submissionFileIds, $chapterId) {
- Capsule::table('submission_file_settings')
- ->where('setting_name', '=', 'chapterId')
- ->where('setting_value', '=', $chapterId)
- ->delete();
-
- if (!empty($submissionFileIds)) {
- $insertRows = array_map(function($submissionFileId) use ($chapterId) {
- return [
- 'submission_file_id' => $submissionFileId,
- 'setting_name' => 'chapterId',
- 'setting_value' => $chapterId,
- ];
- }, $submissionFileIds);
- Capsule::table('submission_file_settings')->insert($insertRows);
- }
- }
-}
diff --git a/classes/submission/SubmissionMetadataFormImplementation.inc.php b/classes/submission/SubmissionMetadataFormImplementation.inc.php
deleted file mode 100644
index 49bb8ebfe73..00000000000
--- a/classes/submission/SubmissionMetadataFormImplementation.inc.php
+++ /dev/null
@@ -1,41 +0,0 @@
-_parentForm->setData('series', $seriesDao->getById($submission->getSeriesId()));
- }
- }
-}
-
-
diff --git a/classes/submission/form/SubmissionSubmitStep1Form.inc.php b/classes/submission/form/SubmissionSubmitStep1Form.inc.php
deleted file mode 100644
index 717b5efddcb..00000000000
--- a/classes/submission/form/SubmissionSubmitStep1Form.inc.php
+++ /dev/null
@@ -1,132 +0,0 @@
-addCheck(new FormValidatorCustom($this, 'seriesId', 'optional', 'author.submit.seriesRequired', array(DAORegistry::getDAO('SeriesDAO'), 'getById'), array($context->getId())));
- }
-
- /**
- * @copydoc PKPSubmissionSubmitStep1Form::fetch
- */
- function fetch($request, $template = null, $display = false) {
- $roleDao = DAORegistry::getDAO('RoleDAO');
- $user = $request->getUser();
- $canSubmitAll = $roleDao->userHasRole($this->context->getId(), $user->getId(), ROLE_ID_MANAGER) ||
- $roleDao->userHasRole($this->context->getId(), $user->getId(), ROLE_ID_SUB_EDITOR);
-
- // Get series for this context
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $activeSeries = [];
- $seriesIterator = $seriesDao->getByContextId($this->context->getId(), null, !$canSubmitAll);
- while ($series = $seriesIterator->next()) {
- if (!$series->getIsInactive()) {
- $activeSeries[$series->getId()] = $series->getLocalizedTitle();
- }
- }
- $seriesOptions = ['' => __('submission.submit.selectSeries')] + $activeSeries;
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign('seriesOptions', $seriesOptions);
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * @copydoc PKPSubmissionSubmitStep1Form::initData
- */
- function initData($data = array()) {
- if (isset($this->submission)) {
- parent::initData(array(
- 'seriesId' => $this->submission->getSeriesId(),
- 'seriesPosition' => $this->submission->getSeriesPosition(),
- 'workType' => $this->submission->getWorkType(),
- ));
- } else {
- parent::initData();
- }
- }
-
- /**
- * Perform additional validation checks
- * @copydoc PKPSubmissionSubmitStep1Form::validate
- */
- function validate($callHooks = true) {
- if (!parent::validate($callHooks)) return false;
-
- $request = Application::get()->getRequest();
- $context = $request->getContext();
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $series = $seriesDao->getById($this->getData('seriesId'), $context->getId());
- $seriesIsInactive = ($series && $series->getIsInactive()) ? true : false;
- // Ensure that submissions are enabled and the assigned series is activated
- if ($context->getData('disableSubmissions') || $seriesIsInactive) {
- return false;
- }
-
- return true;
- }
-
- /**
- * Assign form data to user-submitted data.
- */
- function readInputData() {
- $this->readUserVars(array(
- 'workType', 'seriesId', 'seriesPosition',
- ));
- parent::readInputData();
- }
-
- /**
- * Set the submission data from the form.
- * @param $submission Submission
- */
- function setSubmissionData($submission) {
- $submission->setWorkType($this->getData('workType'));
- $submission->setSeriesId($this->getData('seriesId'));
- $submission->setSeriesPosition($this->getData('seriesPosition'));
- parent::setSubmissionData($submission);
- }
-
- /**
- * Save changes to submission.
- * @return int the submission ID
- */
- function execute(...$functionParams) {
-
- $submissionId = parent::execute(...$functionParams);
-
- $request = Application::get()->getRequest();
-
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /** @var SeriesDAO $seriesDao */
-
- $series = $seriesDao->getById((int)$request->getUserVar('seriesId'), (int)$request->getContext()->getId());
-
- Services::get('publication')
- ->edit(
- $this->submission->getCurrentPublication(),
- ['seriesId' => $series ? $series->getId() : null],
- $request
- );
-
- return $submissionId;
- }
-}
diff --git a/classes/submission/form/SubmissionSubmitStep2Form.inc.php b/classes/submission/form/SubmissionSubmitStep2Form.inc.php
deleted file mode 100644
index 639f5cd1031..00000000000
--- a/classes/submission/form/SubmissionSubmitStep2Form.inc.php
+++ /dev/null
@@ -1,21 +0,0 @@
-submission, 'SUBMISSION_ACK', null, null, false);
- $authorMail = new MonographMailTemplate($this->submission, 'SUBMISSION_ACK_NOT_USER', null, null, false);
-
- $request = Application::get()->getRequest();
- $context = $request->getContext();
- $router = $request->getRouter();
- if ($mail->isEnabled()) {
- // submission ack emails should be from the contact.
- $mail->setFrom($this->context->getData('contactEmail'), $this->context->getData('contactName'));
- $authorMail->setFrom($this->context->getData('contactEmail'), $this->context->getData('contactName'));
-
- $user = $request->getUser();
- $primaryAuthor = $this->submission->getPrimaryAuthor();
- if (!isset($primaryAuthor)) {
- $authors = $this->submission->getAuthors();
- $primaryAuthor = $authors[0];
- }
- $mail->addRecipient($user->getEmail(), $user->getFullName());
-
- if ($user->getEmail() != $primaryAuthor->getEmail()) {
- $authorMail->addRecipient($primaryAuthor->getEmail(), $primaryAuthor->getFullName());
- }
-
- $assignedAuthors = $this->submission->getAuthors();
-
- foreach ($assignedAuthors as $author) {
- $authorEmail = $author->getEmail();
- // only add the author email if they have not already been added as the primary author
- // or user creating the submission.
- if ($authorEmail != $primaryAuthor->getEmail() && $authorEmail != $user->getEmail()) {
- $authorMail->addRecipient($author->getEmail(), $author->getFullName());
- }
- }
- $mail->bccAssignedSeriesEditors($this->submissionId, WORKFLOW_STAGE_ID_SUBMISSION);
-
- $mail->assignParams([
- 'authorName' => htmlspecialchars($user->getFullName()),
- 'authorUsername' => htmlspecialchars($user->getUsername()),
- 'editorialContactSignature' => htmlspecialchars($context->getData('contactName')) . '
' . htmlspecialchars($context->getLocalizedName()),
- 'submissionUrl' => $router->url($request, null, 'authorDashboard', 'submission', $this->submissionId),
- ]);
-
- $authorMail->assignParams([
- 'submitterName' => htmlspecialchars($user->getFullName()),
- 'editorialContactSignature' => htmlspecialchars($context->getData('contactName')) . "
" . htmlspecialchars($context->getLocalizedName()),
- ]);
-
- if (!$mail->send($request)) {
- import('classes.notification.NotificationManager');
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('email.compose.error')));
- }
-
- $recipients = $authorMail->getRecipients();
- if (!empty($recipients)) {
- if (!$authorMail->send($request)) {
- import('classes.notification.NotificationManager');
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('email.compose.error')));
- }
- }
- }
-
- // Log submission.
- import('lib.pkp.classes.log.SubmissionLog');
- import('classes.log.SubmissionEventLogEntry'); // constants
- SubmissionLog::logEvent($request, $this->submission, SUBMISSION_LOG_SUBMISSION_SUBMIT, 'submission.event.submissionSubmitted');
-
- return $this->submissionId;
- }
-}
diff --git a/classes/submission/maps/Schema.php b/classes/submission/maps/Schema.php
new file mode 100644
index 00000000000..16c8a1b0ba3
--- /dev/null
+++ b/classes/submission/maps/Schema.php
@@ -0,0 +1,68 @@
+request->getDispatcher()->url(
+ $this->request,
+ Application::ROUTE_PAGE,
+ $this->context->getPath(),
+ 'catalog',
+ 'book',
+ $submission->getBestId()
+ );
+ }
+
+ if (in_array('featured', $props)) {
+ $featureDao = DAORegistry::getDAO('FeatureDAO'); /** @var FeatureDAO $featureDao */
+ $output['featured'] = $featureDao->getFeaturedAll($submission->getId());
+ }
+
+ if (in_array('newRelease', $props)) {
+ $newReleaseDao = DAORegistry::getDAO('NewReleaseDAO'); /** @var NewReleaseDAO $newReleaseDao */
+ $output['newRelease'] = $newReleaseDao->getNewReleaseAll($submission->getId());
+ }
+
+ $output = $this->schemaService->addMissingMultilingualValues($this->schemaService::SCHEMA_SUBMISSION, $output, $this->context->getSupportedSubmissionLocales());
+
+ ksort($output);
+
+ return $this->withExtensions($output, $submission);
+ }
+}
diff --git a/classes/submission/reviewer/ReviewerSubmission.inc.php b/classes/submission/reviewer/ReviewerSubmission.inc.php
deleted file mode 100644
index 333431eb8d7..00000000000
--- a/classes/submission/reviewer/ReviewerSubmission.inc.php
+++ /dev/null
@@ -1,372 +0,0 @@
-getData('competingInterests');
- }
-
- /**
- * Set the competing interests statement.
- * @param $competingInterests string
- */
- public function setCompetingInterests($competingInterests) {
- $this->setData('competingInterests', $competingInterests);
- }
-
- /**
- * Get ID of review assignment.
- * @return int
- */
- public function getReviewId() {
- return $this->getData('reviewId');
- }
-
- /**
- * Set ID of review assignment
- * @param $reviewId int
- */
- public function setReviewId($reviewId) {
- $this->setData('reviewId', $reviewId);
- }
-
- /**
- * Get ID of reviewer.
- * @return int
- */
- public function getReviewerId() {
- return $this->getData('reviewerId');
- }
-
- /**
- * Set ID of reviewer.
- * @param $reviewerId int
- */
- public function setReviewerId($reviewerId) {
- $this->setData('reviewerId', $reviewerId);
- }
-
- /**
- * Get full name of reviewer.
- * @return string
- */
- public function getReviewerFullName() {
- return $this->getData('reviewerFullName');
- }
-
- /**
- * Set full name of reviewer.
- * @param $reviewerFullName string
- */
- public function setReviewerFullName($reviewerFullName) {
- $this->setData('reviewerFullName', $reviewerFullName);
- }
-
- /**
- * Get editor decisions.
- * @return array
- */
- public function getDecisions() {
- return $this->editorDecisions;
- }
-
- /**
- * Set editor decisions.
- * @param $editorDecisions array
- * @param $round int
- */
- public function setDecisions($editorDecisions) {
- return $this->editorDecisions = $editorDecisions;
- }
-
- /**
- * Get reviewer recommendation.
- * @return string
- */
- public function getRecommendation() {
- return $this->getData('recommendation');
- }
-
- /**
- * Set reviewer recommendation.
- * @param $recommendation string
- */
- public function setRecommendation($recommendation) {
- $this->setData('recommendation', $recommendation);
- }
-
- /**
- * Get the reviewer's assigned date.
- * @return string
- */
- public function getDateAssigned() {
- return $this->getData('dateAssigned');
- }
-
- /**
- * Set the reviewer's assigned date.
- * @param $dateAssigned string
- */
- public function setDateAssigned($dateAssigned) {
- $this->setData('dateAssigned', $dateAssigned);
- }
-
- /**
- * Get the reviewer's notified date.
- * @return string
- */
- public function getDateNotified() {
- return $this->getData('dateNotified');
- }
-
- /**
- * Set the reviewer's notified date.
- * @param $dateNotified string
- */
- public function setDateNotified($dateNotified) {
- $this->setData('dateNotified', $dateNotified);
- }
-
- /**
- * Get the reviewer's confirmed date.
- * @return string
- */
- public function getDateConfirmed() {
- return $this->getData('dateConfirmed');
- }
-
- /**
- * Set the reviewer's confirmed date.
- * @param $dateConfirmed string
- */
- public function setDateConfirmed($dateConfirmed) {
- $this->setData('dateConfirmed', $dateConfirmed);
- }
-
- /**
- * Get the reviewer's completed date.
- * @return string
- */
- public function getDateCompleted() {
- return $this->getData('dateCompleted');
- }
-
- /**
- * Set the reviewer's completed date.
- * @param $dateCompleted string
- */
- public function setDateCompleted($dateCompleted) {
- $this->setData('dateCompleted', $dateCompleted);
- }
-
- /**
- * Get the reviewer's acknowledged date.
- * @return string
- */
- public function getDateAcknowledged() {
- return $this->getData('dateAcknowledged');
- }
-
- /**
- * Set the reviewer's acknowledged date.
- * @param $dateAcknowledged string
- */
- public function setDateAcknowledged($dateAcknowledged) {
- $this->setData('dateAcknowledged', $dateAcknowledged);
- }
-
- /**
- * Get the reviewer's due date.
- * @return string
- */
- public function getDateDue() {
- return $this->getData('dateDue');
- }
-
- /**
- * Set the reviewer's due date.
- * @param $dateDue string
- */
- public function setDateDue($dateDue) {
- $this->setData('dateDue', $dateDue);
- }
-
- /**
- * Get the reviewer's response due date.
- * @return string
- */
- public function getDateResponseDue() {
- return $this->getData('dateResponseDue');
- }
-
- /**
- * Set the reviewer's response due date.
- * @param $dateResponseDue string
- */
- public function setDateResponseDue($dateResponseDue) {
- $this->setData('dateResponseDue', $dateResponseDue);
- }
-
- /**
- * Get the declined value.
- * @return boolean
- */
- public function getDeclined() {
- return $this->getData('declined');
- }
-
- /**
- * Set the reviewer's declined value.
- * @param $declined boolean
- */
- public function setDeclined($declined) {
- $this->setData('declined', $declined);
- }
-
- /**
- * Get the cancelled value.
- * @return boolean
- */
- public function getCancelled() {
- return $this->getData('cancelled');
- }
-
- /**
- * Set the reviewer's cancelled value.
- * @param $cancelled boolean
- */
- public function setCancelled($cancelled) {
- $this->setData('cancelled', $cancelled);
- }
-
- /**
- * Get reviewer file id.
- * @return int
- */
- public function getReviewerFileId() {
- return $this->getData('reviewerFileId');
- }
-
- /**
- * Set reviewer file id.
- * @param $reviewerFileId int
- */
- public function setReviewerFileId($reviewerFileId) {
- $this->setData('reviewerFileId', $reviewerFileId);
- }
-
- /**
- * Get quality.
- * @return int
- */
- public function getQuality() {
- return $this->getData('quality');
- }
-
- /**
- * Set quality.
- * @param $quality int
- */
- public function setQuality($quality) {
- $this->setData('quality', $quality);
- }
-
- /**
- * Get stageId.
- * @return int
- */
- public function getStageId() {
- return $this->getData('stageId');
- }
-
- /**
- * Set stageId.
- * @param $stageId int
- */
- public function setStageId($stageId) {
- $this->setData('stageId', $stageId);
- }
-
- /**
- * Get the method of the review (open, anonymous, or double-anonymous).
- * @return int
- */
- public function getReviewMethod() {
- return $this->getData('reviewMethod');
- }
-
- /**
- * Set the type of review.
- * @param $method int
- */
- public function setReviewMethod($method) {
- $this->setData('reviewMethod', $method);
- }
-
- /**
- * Get round.
- * @return int
- */
- public function getRound() {
- return $this->getData('round');
- }
-
- /**
- * Set round.
- * @param $round int
- */
- public function setRound($round) {
- $this->setData('round', $round);
- }
-
- /**
- * Get step.
- * @return int
- */
- public function getStep() {
- return $this->getData('step');
- }
-
- /**
- * Set status.
- * @param $status int
- */
- public function setStep($step) {
- $this->setData('step', $step);
- }
-}
-
-
diff --git a/classes/submission/reviewer/ReviewerSubmissionDAO.inc.php b/classes/submission/reviewer/ReviewerSubmissionDAO.inc.php
deleted file mode 100644
index 538b9fa2d3d..00000000000
--- a/classes/submission/reviewer/ReviewerSubmissionDAO.inc.php
+++ /dev/null
@@ -1,166 +0,0 @@
-authorDao = DAORegistry::getDAO('AuthorDAO');
- $this->userDao = DAORegistry::getDAO('UserDAO');
- $this->reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
- $this->submissionCommentDao = DAORegistry::getDAO('SubmissionCommentDAO');
- }
-
- /**
- * Retrieve a reviewer submission by monograph ID.
- * @param $monographId int
- * @param $reviewerId int
- * @return ReviewerSubmission|null
- */
- function getReviewerSubmission($reviewId) {
- $primaryLocale = AppLocale::getPrimaryLocale();
- $locale = AppLocale::getLocale();
- $result = $this->retrieve(
- 'SELECT m.*, p.date_published,
- r.*,
- COALESCE(stl.setting_value, stpl.setting_value) AS series_title
- FROM submissions m
- LEFT JOIN publications p ON (m.current_publication_id = p.publication_id)
- LEFT JOIN review_assignments r ON (m.submission_id = r.submission_id)
- LEFT JOIN series s ON (s.series_id = p.series_id)
- LEFT JOIN series_settings stpl ON (s.series_id = stpl.series_id AND stpl.setting_name = ? AND stpl.locale = ?)
- LEFT JOIN series_settings stl ON (s.series_id = stl.series_id AND stl.setting_name = ? AND stl.locale = ?)
- WHERE r.review_id = ?',
- [
- 'title', $primaryLocale, // Series title
- 'title', $locale, // Series title
- (int) $reviewId
- ]
- );
- $row = $result->current();
- return $row ? $this->_fromRow((array) $row) : null;
- }
-
- /**
- * Construct a new data object corresponding to this DAO.
- * @return ReviewerSubmission
- */
- function newDataObject() {
- return new ReviewerSubmission();
- }
-
- /**
- * Internal function to return a ReviewerSubmission object from a row.
- * @param $row array
- * @return ReviewerSubmission
- */
- function _fromRow($row) {
- // Get the ReviewerSubmission object, populated with Monograph data
- $reviewerSubmission = parent::_fromRow($row);
- $reviewer = $this->userDao->getById($row['reviewer_id']);
-
- // Editor Decisions
- $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); /* @var $editDecisionDao EditDecisionDAO */
- $decisions = $editDecisionDao->getEditorDecisions($row['submission_id']);
- $reviewerSubmission->setDecisions($decisions);
-
- // Review Assignment
- $reviewerSubmission->setReviewId($row['review_id']);
- $reviewerSubmission->setReviewerId($row['reviewer_id']);
- $reviewerSubmission->setReviewerFullName($reviewer->getFullName());
- $reviewerSubmission->setCompetingInterests($row['competing_interests']);
- $reviewerSubmission->setRecommendation($row['recommendation']);
- $reviewerSubmission->setDateAssigned($this->datetimeFromDB($row['date_assigned']));
- $reviewerSubmission->setDateNotified($this->datetimeFromDB($row['date_notified']));
- $reviewerSubmission->setDateConfirmed($this->datetimeFromDB($row['date_confirmed']));
- $reviewerSubmission->setDateCompleted($this->datetimeFromDB($row['date_completed']));
- $reviewerSubmission->setDateAcknowledged($this->datetimeFromDB($row['date_acknowledged']));
- $reviewerSubmission->setDateDue($this->datetimeFromDB($row['date_due']));
- $reviewerSubmission->setDateResponseDue($this->datetimeFromDB($row['date_response_due']));
- $reviewerSubmission->setDeclined($row['declined']);
- $reviewerSubmission->setCancelled($row['cancelled']);
- $reviewerSubmission->setQuality($row['quality']);
- $reviewerSubmission->setRound($row['round']);
- $reviewerSubmission->setStep($row['step']);
- $reviewerSubmission->setStageId($row['stage_id']);
- $reviewerSubmission->setReviewMethod($row['review_method']);
-
- HookRegistry::call('ReviewerSubmissionDAO::_fromRow', array(&$reviewerSubmission, &$row));
- return $reviewerSubmission;
- }
-
- /**
- * Update an existing review submission.
- * @param $reviewSubmission ReviewSubmission
- */
- function updateReviewerSubmission($reviewerSubmission) {
- $this->update(
- sprintf('UPDATE review_assignments
- SET submission_id = ?,
- reviewer_id = ?,
- stage_id = ?,
- review_method = ?,
- round = ?,
- step = ?,
- competing_interests = ?,
- recommendation = ?,
- declined = ?,
- cancelled = ?,
- date_assigned = %s,
- date_notified = %s,
- date_confirmed = %s,
- date_completed = %s,
- date_acknowledged = %s,
- date_due = %s,
- date_response_due = %s,
- quality = ?
- WHERE review_id = ?',
- $this->datetimeToDB($reviewerSubmission->getDateAssigned()),
- $this->datetimeToDB($reviewerSubmission->getDateNotified()),
- $this->datetimeToDB($reviewerSubmission->getDateConfirmed()),
- $this->datetimeToDB($reviewerSubmission->getDateCompleted()),
- $this->datetimeToDB($reviewerSubmission->getDateAcknowledged()),
- $this->datetimeToDB($reviewerSubmission->getDateDue()),
- $this->datetimeToDB($reviewerSubmission->getDateResponseDue())),
- [
- (int) $reviewerSubmission->getId(),
- (int) $reviewerSubmission->getReviewerId(),
- (int) $reviewerSubmission->getStageId(),
- (int) $reviewerSubmission->getReviewMethod(),
- (int) $reviewerSubmission->getRound(),
- (int) $reviewerSubmission->getStep(),
- $reviewerSubmission->getCompetingInterests(),
- (int) $reviewerSubmission->getRecommendation(),
- (int) $reviewerSubmission->getDeclined(),
- (int) $reviewerSubmission->getCancelled(),
- (int) $reviewerSubmission->getQuality(),
- (int) $reviewerSubmission->getReviewId()
- ]
- );
- }
-}
-
-
diff --git a/classes/submissionFile/DAO.php b/classes/submissionFile/DAO.php
new file mode 100644
index 00000000000..d0f25951dd6
--- /dev/null
+++ b/classes/submissionFile/DAO.php
@@ -0,0 +1,80 @@
+ 'assoc_id',
+ 'assocType' => 'assoc_type',
+ 'createdAt' => 'created_at',
+ 'directSalesPrice' => 'direct_sales_price',
+ 'fileId' => 'file_id',
+ 'fileStage' => 'file_stage',
+ 'genreId' => 'genre_id',
+ 'id' => 'submission_file_id',
+ 'salesType' => 'sales_type',
+ 'sourceSubmissionFileId' => 'source_submission_file_id',
+ 'submissionId' => 'submission_id',
+ 'updatedAt' => 'updated_at',
+ 'uploaderUserId' => 'uploader_user_id',
+ 'viewable' => 'viewable',
+ 'doiId' => 'doi_id'
+ ];
+
+ /**
+ * Update the files associated with a chapter
+ *
+ * @param array $submissionFileIds
+ * @param int $chapterId
+ */
+ public function updateChapterFiles($submissionFileIds, $chapterId)
+ {
+ DB::table('submission_file_settings')
+ ->where('setting_name', '=', 'chapterId')
+ ->where('setting_value', '=', $chapterId)
+ ->delete();
+
+ if (!empty($submissionFileIds)) {
+ $insertRows = array_map(function ($submissionFileId) use ($chapterId) {
+ return [
+ 'submission_file_id' => $submissionFileId,
+ 'setting_name' => 'chapterId',
+ 'setting_value' => $chapterId,
+ ];
+ }, $submissionFileIds);
+ DB::table('submission_file_settings')->insert($insertRows);
+ }
+ }
+
+ /**
+ * @copydoc SchemaDAO::fromRow()
+ */
+ public function fromRow(object $primaryRow): SubmissionFile
+ {
+ $submissionFile = parent::fromRow($primaryRow);
+
+ if (!empty($submissionFile->getData('doiId'))) {
+ $submissionFile->setData('doiObject', Repo::doi()->get($submissionFile->getData('doiId')));
+ }
+
+ return $submissionFile;
+ }
+}
diff --git a/classes/submissionFile/Repository.php b/classes/submissionFile/Repository.php
new file mode 100644
index 00000000000..863c47a2363
--- /dev/null
+++ b/classes/submissionFile/Repository.php
@@ -0,0 +1,75 @@
+schemaService = $schemaService;
+ $this->dao = $dao;
+ $this->request = $request;
+ }
+
+ public function getCollector(): Collector
+ {
+ return App::makeWith(Collector::class, ['dao' => $this->dao]);
+ }
+
+ public function getFileStages(): array
+ {
+ $stages = [
+ SubmissionFile::SUBMISSION_FILE_SUBMISSION,
+ SubmissionFile::SUBMISSION_FILE_NOTE,
+ SubmissionFile::SUBMISSION_FILE_INTERNAL_REVIEW_FILE,
+ SubmissionFile::SUBMISSION_FILE_REVIEW_FILE,
+ SubmissionFile::SUBMISSION_FILE_REVIEW_ATTACHMENT,
+ SubmissionFile::SUBMISSION_FILE_FINAL,
+ SubmissionFile::SUBMISSION_FILE_COPYEDIT,
+ SubmissionFile::SUBMISSION_FILE_PROOF,
+ SubmissionFile::SUBMISSION_FILE_PRODUCTION_READY,
+ SubmissionFile::SUBMISSION_FILE_ATTACHMENT,
+ SubmissionFile::SUBMISSION_FILE_REVIEW_REVISION,
+ SubmissionFile::SUBMISSION_FILE_INTERNAL_REVIEW_REVISION,
+ SubmissionFile::SUBMISSION_FILE_DEPENDENT,
+ SubmissionFile::SUBMISSION_FILE_QUERY,
+ ];
+
+ Hook::call('SubmissionFile::fileStages', [&$stages]);
+
+ return $stages;
+ }
+}
diff --git a/classes/submissionFile/maps/Schema.php b/classes/submissionFile/maps/Schema.php
new file mode 100644
index 00000000000..4520b630444
--- /dev/null
+++ b/classes/submissionFile/maps/Schema.php
@@ -0,0 +1,41 @@
+getData('doiId')) {
+ $retVal = Repo::doi()->getSchemaMap()->summarize($item->getData('doiObject'));
+ } else {
+ $retVal = null;
+ }
+ $output['doiObject'] = $retVal;
+ }
+
+ ksort($output);
+
+ return $output;
+ }
+}
diff --git a/classes/sushi/PR.php b/classes/sushi/PR.php
new file mode 100644
index 00000000000..68607003c2c
--- /dev/null
+++ b/classes/sushi/PR.php
@@ -0,0 +1,353 @@
+ 'Data_Type',
+ 'supportedValues' => ['Book'],
+ 'param' => 'data_type'
+ ],
+ [
+ 'name' => 'Metric_Type',
+ 'supportedValues' => ['Total_Item_Investigations', 'Unique_Item_Investigations', 'Total_Item_Requests', 'Unique_Item_Requests', 'Unique_Title_Investigations', 'Unique_Title_Requests'],
+ 'param' => 'metric_type'
+ ],
+ [
+ 'name' => 'Access_Method',
+ 'supportedValues' => ['Regular'],
+ 'param' => 'access_method'
+ ],
+ ];
+ }
+
+ /**
+ * Get attributes supported by this report.
+ *
+ * The attributes will be displayed and they define what the metrics will be aggregated by.
+ * Data_Type and Access_Method are currently always the same for this report,
+ * so they will only be displayed and not considered for metrics aggregation.
+ * The only attribute considered for metrics aggregation is granularity=Month.
+ */
+ public function getSupportedAttributes(): array
+ {
+ return [
+ [
+ 'name' => 'Attributes_To_Show',
+ 'supportedValues' => ['Data_Type', 'Access_Method'],
+ 'param' => 'attributes_to_show'
+ ],
+ [
+ 'name' => 'granularity',
+ 'supportedValues' => ['Month', 'Totals'],
+ 'param' => 'granularity'],
+ ];
+ }
+
+
+ /** Get DB query results for the report */
+ protected function getQueryResults(): Collection
+ {
+ $params['contextIds'] = [$this->context->getId()];
+ $params['institutionId'] = $this->customerId;
+ $params['dateStart'] = $this->beginDate;
+ $params['dateEnd'] = $this->endDate;
+ // do not consider metric_type filter now, but for display
+
+ $statsService = Services::get('sushiStats');
+ $metricsQB = $statsService->getQueryBuilder($params);
+ $groupBy = [];
+ // consider granularity=Month to group the metrics by month
+ if ($this->granularity == 'Month') {
+ $groupBy = [PKPStatisticsHelper::STATISTICS_DIMENSION_MONTH];
+ $orderBy[] = [PKPStatisticsHelper::STATISTICS_DIMENSION_MONTH => 'asc'];
+ }
+ $metricsQB = $metricsQB->getSum($groupBy);
+ // if set, consider results ordering by month
+ foreach ($orderBy as $orderByValue) {
+ foreach ($orderByValue as $column => $direction) {
+ $metricsQB = $metricsQB->orderBy($column, $direction);
+ }
+ }
+ $results = $metricsQB->get();
+ if (!$results->count()) {
+ $this->addWarning([
+ 'Code' => 3030,
+ 'Severity' => 'Error',
+ 'Message' => 'No Usage Available for Requested Dates',
+ 'Data' => __('sushi.exception.3030', ['beginDate' => $this->beginDate, 'endDate' => $this->endDate])
+ ]);
+ }
+ return $results;
+ }
+
+ /** Get report items */
+ public function getReportItems(): array
+ {
+ $results = $this->getQueryResults();
+
+ // There is only one platform, so there will be only one report item
+ $item['Platform'] = $this->platformName;
+
+ foreach ($this->attributesToShow as $attributeToShow) {
+ if ($attributeToShow == 'Data_Type') {
+ $item['Data_Type'] = self::DATA_TYPE;
+ } elseif ($attributeToShow == 'Access_Method') {
+ $item['Access_Method'] = self::ACCESS_METHOD;
+ }
+ }
+
+ $performances = [];
+ foreach ($results as $result) {
+ // if granularity=Month, the results will contain metrics for each month
+ // else the results will only contain the summarized metrics for the whole period
+ if (isset($result->month)) {
+ $periodBeginDate = date_format(date_create($result->month . '01'), 'Y-m-01');
+ $periodEndDate = date_format(date_create($result->month . '01'), 'Y-m-t');
+ } else {
+ $periodBeginDate = date_format(date_create($this->beginDate), 'Y-m-01');
+ $periodEndDate = date_format(date_create($this->endDate), 'Y-m-t');
+ }
+ $periodMetrics['Period'] = [
+ 'Begin_Date' => $periodBeginDate,
+ 'End_Date' => $periodEndDate,
+ ];
+
+ $instances = [];
+ $metrics['Total_Item_Investigations'] = $result->metric_book_investigations + $result->metric_chapter_investigations;
+ $metrics['Unique_Item_Investigations'] = $result->metric_book_investigations_unique + $result->metric_chapter_investigations_unique;
+ $metrics['Total_Item_Requests'] = $result->metric_book_requests + $result->metric_chapter_requests;
+ $metrics['Unique_Item_Requests'] = $result->metric_book_requests_unique + $result->metric_chapter_requests_unique;
+ $metrics['Unique_Title_Investigations'] = $result->metric_title_investigations_unique;
+ $metrics['Unique_Title_Requests'] = $result->metric_title_requests_unique;
+ // filter here by requested metric types
+ foreach ($this->metricTypes as $metricType) {
+ if ($metrics[$metricType] > 0) {
+ $instances[] = [
+ 'Metric_Type' => $metricType,
+ 'Count' => (int) $metrics[$metricType]
+ ];
+ }
+ }
+ $periodMetrics['Instance'] = $instances;
+ $performances[] = $periodMetrics;
+ }
+ $item['Performance'] = $performances;
+ $items = [$item];
+ return $items;
+ }
+
+ /** Get TSV report column names */
+ public function getTSVColumnNames(): array
+ {
+ $columnRow = ['Platform'];
+ if (in_array('Data_Type', $this->attributesToShow)) {
+ array_push($columnRow, 'Data_Type');
+ }
+ if (in_array('Access_Method', $this->attributesToShow)) {
+ array_push($columnRow, 'Access_Method');
+ }
+ array_push($columnRow, 'Metric_Type', 'Reporting_Period_Total');
+ if ($this->granularity == 'Month') {
+ $period = $this->getMonthlyDatePeriod();
+ foreach ($period as $dt) {
+ array_push($columnRow, $dt->format('M-Y'));
+ }
+ }
+ return [$columnRow];
+ }
+
+ /** Get TSV report rows */
+ public function getTSVReportItems(): array
+ {
+ $results = $this->getQueryResults();
+
+ // get total numbers for every metric type
+ $metricsTotal['Total_Item_Investigations'] = $results->pluck('metric_book_investigations')->sum() + $results->pluck('metric_chapter_investigations')->sum();
+ $metricsTotal['Unique_Item_Investigations'] = $results->pluck('metric_book_investigations_unique')->sum() + $results->pluck('metric_chapter_investigations_unique')->sum();
+ $metricsTotal['Total_Item_Requests'] = $results->pluck('metric_book_requests')->sum() + $results->pluck('metric_chapter_requests')->sum();
+ $metricsTotal['Unique_Item_Requests'] = $results->pluck('metric_book_requests_unique')->sum() + $results->pluck('metric_chapter_requests_unique')->sum();
+ $metricsTotal['Unique_Title_Investigations'] = $results->pluck('metric_title_investigations_unique')->sum();
+ $metricsTotal['Unique_Title_Requests'] = $results->pluck('metric_title_requests_unique')->sum();
+
+ $resultRows = [];
+ // filter here by requested metric types
+ foreach ($this->metricTypes as $metricType) {
+ // if the total numbers for the given metric type > 0
+ if ($metricsTotal[$metricType] > 0) {
+ // construct the result row
+ $resultRow = [];
+ array_push($resultRow, $this->platformName); // Platform
+ if (in_array('Data_Type', $this->attributesToShow)) {
+ array_push($resultRow, self::DATA_TYPE); // Data_Type
+ }
+ if (in_array('Access_Method', $this->attributesToShow)) {
+ array_push($resultRow, self::ACCESS_METHOD); // Access_Method
+ }
+ array_push($resultRow, $metricType); // Metric_Type
+ array_push($resultRow, $metricsTotal[$metricType]); // Reporting_Period_Total
+ if ($this->granularity == 'Month') { // metrics for each month in the given period
+ $period = $this->getMonthlyDatePeriod();
+ foreach ($period as $dt) {
+ $month = $dt->format('Ym');
+ $result = $results->firstWhere('month', '=', $month);
+ if ($result === null) {
+ array_push($resultRow, '0');
+ } else {
+ $metrics['Total_Item_Investigations'] = $result->metric_book_investigations + $result->metric_chapter_investigations;
+ $metrics['Unique_Item_Investigations'] = $result->metric_book_investigations_unique + $result->metric_chapter_investigations_unique;
+ $metrics['Total_Item_Requests'] = $result->metric_book_requests + $result->metric_chapter_requests;
+ $metrics['Unique_Item_Requests'] = $result->metric_book_requests_unique + $result->metric_chapter_requests_unique;
+ $metrics['Unique_Title_Investigations'] = $result->metric_title_investigations_unique;
+ $metrics['Unique_Title_Requests'] = $result->metric_title_requests_unique;
+ array_push($resultRow, $metrics[$metricType]);
+ }
+ }
+ }
+ $resultRows[] = $resultRow;
+ }
+ }
+
+ return $resultRows;
+ }
+
+ /** Get report specific form fields */
+ public static function getReportSettingsFormFields(): array
+ {
+ $formFields = parent::getCommonReportSettingsFormFields();
+
+ $metricTypes = [
+ 'Total_Item_Investigations',
+ 'Unique_Item_Investigations',
+ 'Total_Item_Requests',
+ 'Unique_Item_Requests',
+ 'Unique_Title_Investigations',
+ 'Unique_Title_Requests'
+ ];
+ $metricTypeOptions = [];
+ foreach ($metricTypes as $metricType) {
+ $metricTypeOptions[] = ['value' => $metricType, 'label' => $metricType];
+ }
+ $formFields[] = new FieldOptions('metric_type', [
+ 'label' => __('manager.statistics.counterR5Report.settings.metricType'),
+ 'options' => $metricTypeOptions,
+ 'value' => $metricTypes,
+ 'groupId' => 'default',
+ ]);
+
+ $attributesToShow = ['Data_Type', 'Access_Method'];
+ $attributesToShowOptions = [];
+ foreach ($attributesToShow as $attributeToShow) {
+ $attributesToShowOptions[] = ['value' => $attributeToShow, 'label' => $attributeToShow];
+ }
+ $formFields[] = new FieldOptions('attributes_to_show', [
+ 'label' => __('manager.statistics.counterR5Report.settings.attributesToShow'),
+ 'options' => $attributesToShowOptions,
+ 'value' => [],
+ 'groupId' => 'default',
+ ]);
+
+ $formFields[] = new FieldOptions('granularity', [
+ 'label' => __('manager.statistics.counterR5Report.settings.excludeMonthlyDetails'),
+ 'options' => [
+ ['value' => true, 'label' => __('manager.statistics.counterR5Report.settings.excludeMonthlyDetails')],
+ ],
+ 'value' => false,
+ 'groupId' => 'default',
+ ]);
+
+ return $formFields;
+ }
+}
diff --git a/classes/sushi/PR_P1.php b/classes/sushi/PR_P1.php
new file mode 100644
index 00000000000..2346543d32b
--- /dev/null
+++ b/classes/sushi/PR_P1.php
@@ -0,0 +1,124 @@
+ 'Metric_Type',
+ 'Value' => 'Total_Item_Requests|Unique_Item_Requests|Unique_Title_Requests'
+ ],
+ [
+ 'Name' => 'Access_Method',
+ 'Value' => 'Regular'
+ ],
+ ];
+ $this->filters = array_merge($filters, $predefinedFilters);
+ }
+
+ /**
+ * Set attributes based on the requested parameters.
+ * No attributes are supported by this report.
+ */
+ public function setAttributes(array $attributes): void
+ {
+ $this->attributes = [];
+ }
+
+ /** Get report specific form fields */
+ public static function getReportSettingsFormFields(): array
+ {
+ return parent::getCommonReportSettingsFormFields();
+ }
+}
diff --git a/classes/sushi/TR.php b/classes/sushi/TR.php
new file mode 100644
index 00000000000..5d608ef407e
--- /dev/null
+++ b/classes/sushi/TR.php
@@ -0,0 +1,814 @@
+ 'YOP',
+ 'supportedValues' => [],
+ 'param' => 'yop'
+ ],
+ [
+ 'name' => 'Item_Id',
+ 'supportedValues' => [$this->context->getId()],
+ 'param' => 'item_id'
+ ],
+ [
+ 'name' => 'Access_Type',
+ 'supportedValues' => [self::ACCESS_TYPE],
+ 'param' => 'access_type'
+ ],
+ [
+ 'name' => 'Section_Type',
+ 'supportedValues' => ['Book', 'Chapter'],
+ 'param' => 'section_type'
+ ],
+ [
+ 'name' => 'Data_Type',
+ 'supportedValues' => [self::DATA_TYPE],
+ 'param' => 'data_type'
+ ],
+ [
+ 'name' => 'Metric_Type',
+ 'supportedValues' => ['Total_Item_Investigations', 'Unique_Item_Investigations', 'Total_Item_Requests', 'Unique_Item_Requests', 'Unique_Title_Investigations', 'Unique_Title_Requests'],
+ 'param' => 'metric_type'
+ ],
+ [
+ 'name' => 'Access_Method',
+ 'supportedValues' => [self::ACCESS_METHOD],
+ 'param' => 'access_method'
+ ],
+ ];
+ }
+
+ /**
+ * Get attributes supported by this report.
+ *
+ * The attributes will be displayed and they define what the metrics will be aggregated by.
+ * Data_Type, Access_Method, and Access_Type are currently always the same for this report,
+ * so they will only be displayed and not considered for metrics aggregation.
+ * The only attributes considered for metrics aggregation are Attributes_To_Show=YOP and granularity=Month.
+ */
+ public function getSupportedAttributes(): array
+ {
+ return [
+ [
+ 'name' => 'Attributes_To_Show',
+ 'supportedValues' => ['Data_Type', 'Access_Method', 'Section_Type', 'Access_Type', 'YOP'],
+ 'param' => 'attributes_to_show'
+ ],
+ [
+ 'name' => 'granularity',
+ 'supportedValues' => ['Month', 'Totals'],
+ 'param' => 'granularity'
+ ],
+ ];
+ }
+
+ /**
+ * Set filters based on the requested parameters.
+ */
+ public function setFilters(array $filters): void
+ {
+ parent::setFilters($filters);
+ foreach ($filters as $filter) {
+ switch ($filter['Name']) {
+ case 'YOP':
+ $this->yearsOfPublication = explode('|', $filter['Value']);
+ break;
+ case 'Section_Type':
+ $this->sectionTypes = explode('|', $filter['Value']);
+ }
+ }
+ // check section_type and metric_type mismatch ?
+ }
+
+ /** Get DB query results for the report */
+ protected function getQueryResults(): Collection
+ {
+ $params['contextIds'] = [$this->context->getId()];
+ $params['institutionId'] = $this->customerId;
+ $params['dateStart'] = $this->beginDate;
+ $params['dateEnd'] = $this->endDate;
+ $params['yearsOfPublication'] = $this->yearsOfPublication;
+ // do not consider section_type filter now, but later when grouping by submission
+ // do not consider metric_type filter now, but for display
+
+ $statsService = Services::get('sushiStats');
+ $metricsQB = $statsService->getQueryBuilder($params);
+ // consider attributes to group the metrics by
+ $groupBy = ['m.' . PKPStatisticsHelper::STATISTICS_DIMENSION_SUBMISSION_ID];
+ $orderBy = ['m.' . PKPStatisticsHelper::STATISTICS_DIMENSION_SUBMISSION_ID => 'asc'];
+ // This report is on submission level, and the relationship between submission_id and YOP is one to one,
+ // so no need to group or order by YOP -- it is enough to group and order by submission_id
+ if ($this->granularity == 'Month') {
+ $groupBy[] = 'm.' . PKPStatisticsHelper::STATISTICS_DIMENSION_MONTH;
+ $orderBy['m.' . PKPStatisticsHelper::STATISTICS_DIMENSION_MONTH] = 'asc';
+ }
+ $metricsQB = $metricsQB->getSum($groupBy);
+ // if set, consider results ordering
+ foreach ($orderBy as $column => $direction) {
+ $metricsQB = $metricsQB->orderBy($column, $direction);
+ }
+ $results = $metricsQB->get();
+ if (!$results->count()) {
+ $this->addWarning([
+ 'Code' => 3030,
+ 'Severity' => 'Error',
+ 'Message' => 'No Usage Available for Requested Dates',
+ 'Data' => __('sushi.exception.3030', ['beginDate' => $this->beginDate, 'endDate' => $this->endDate])
+ ]);
+ }
+ return $results;
+ }
+
+ /**
+ * Get report items
+ */
+ public function getReportItems(): array
+ {
+ $results = $this->getQueryResults();
+
+ // Group result by submission ID
+ // If Section_Type is attribute to show, group additionally by section type
+ // Also filter results by requested section and metric types
+ $resultsGroupedBySubmission = $items = [];
+ foreach ($results as $result) {
+ $includeResult = false;
+ if (in_array('Book', $this->sectionTypes) &&
+ !empty(array_intersect($this->metricTypes, ['Total_Item_Investigations', 'Unique_Item_Investigations', 'Total_Item_Requests', 'Unique_Item_Requests'])) &&
+ ($result->metric_book_investigations > 0 || $result->metric_book_investigations_unique > 0 || $result->metric_book_requests > 0 || $result->metric_book_requests_unique > 0)) {
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ $resultsGroupedBySubmission[$result->submission_id]['Book'][] = $result;
+ }
+ $includeResult = true;
+ }
+ if (in_array('Chapter', $this->sectionTypes) &&
+ !empty(array_intersect($this->metricTypes, ['Total_Item_Investigations', 'Unique_Item_Investigations', 'Total_Item_Requests', 'Unique_Item_Requests'])) &&
+ ($result->metric_chapter_investigations > 0 || $result->metric_chapter_investigations_unique > 0 || $result->metric_chapter_requests > 0 || $result->metric_chapter_requests_unique > 0)) {
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ $resultsGroupedBySubmission[$result->submission_id]['Chapter'][] = $result;
+ }
+ $includeResult = true;
+ }
+ if (in_array('Title', $this->sectionTypes) &&
+ !empty(array_intersect($this->metricTypes, ['Unique_Title_Investigations', 'Unique_Title_Requests'])) &&
+ ($result->metric_title_investigations_unique > 0 || $result->metric_title_requests_unique > 0)) {
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ $resultsGroupedBySubmission[$result->submission_id]['Title'][] = $result;
+ }
+ $includeResult = true;
+ }
+ if (!in_array('Section_Type', $this->attributesToShow) && $includeResult) {
+ $resultsGroupedBySubmission[$result->submission_id][] = $result;
+ }
+ }
+
+ foreach ($resultsGroupedBySubmission as $submissionId => $submissionResults) {
+ // Section_Type is in attributes_to_show, the query results are grouped by section type
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ foreach ($submissionResults as $sectionType => $results) {
+ // Get the submission properties
+ $submission = Repo::submission()->get($submissionId);
+ if (!$submission || !$submission->getOriginalPublication()) {
+ break;
+ }
+ $currentPublication = $submission->getCurrentPublication();
+ $submissionLocale = $submission->getData('locale');
+ $itemTitle = $currentPublication->getLocalizedTitle($submissionLocale);
+
+ $item = [
+ 'Title' => $itemTitle,
+ 'Platform' => $this->platformName,
+ 'Publisher' => $this->context->getData('publisherInstitution'),
+ ];
+ $item['Item_ID'][] = [
+ 'Type' => 'Proprietary',
+ 'Value' => $this->platformId . ':' . $submissionId,
+ ];
+ $doi = $currentPublication->getDoi();
+ if (isset($doi)) {
+ $item['Item_ID'][] = [
+ 'Type' => 'DOI',
+ 'Value' => $doi,
+ ];
+ }
+
+ $datePublished = $submission->getOriginalPublication()->getData('datePublished');
+ foreach ($this->attributesToShow as $attributeToShow) {
+ if ($attributeToShow == 'Data_Type') {
+ $item['Data_Type'] = self::DATA_TYPE;
+ } elseif ($attributeToShow == 'Section_Type') {
+ // do not display section type for title metrics
+ if ($sectionType != 'Title') {
+ $item['Section_Type'] = $sectionType;
+ }
+ } elseif ($attributeToShow == 'Access_Type') {
+ $item['Access_Type'] = self::ACCESS_TYPE;
+ } elseif ($attributeToShow == 'Access_Method') {
+ $item['Access_Method'] = self::ACCESS_METHOD;
+ } elseif ($attributeToShow == 'YOP') {
+ $item['YOP'] = date('Y', strtotime($datePublished));
+ }
+ }
+
+ $performances = [];
+ foreach ($results as $result) {
+ // if granularity=Month, the results will contain metrics for each month
+ // else the results will only contain the summarized metrics for the whole period
+ if (isset($result->month)) {
+ $periodBeginDate = date_format(date_create($result->month . '01'), 'Y-m-01');
+ $periodEndDate = date_format(date_create($result->month . '01'), 'Y-m-t');
+ } else {
+ $periodBeginDate = date_format(date_create($this->beginDate), 'Y-m-01');
+ $periodEndDate = date_format(date_create($this->endDate), 'Y-m-t');
+ }
+ $periodMetrics['Period'] = [
+ 'Begin_Date' => $periodBeginDate,
+ 'End_Date' => $periodEndDate,
+ ];
+
+ $instances = $metrics = [];
+ switch ($sectionType) {
+ case 'Book':
+ $metrics['Total_Item_Investigations'] = $result->metric_book_investigations;
+ $metrics['Unique_Item_Investigations'] = $result->metric_book_investigations_unique;
+ $metrics['Total_Item_Requests'] = $result->metric_book_requests;
+ $metrics['Unique_Item_Requests'] = $result->metric_book_requests_unique;
+ break;
+ case 'Chapter':
+ $metrics['Total_Item_Investigations'] = $result->metric_chapter_investigations;
+ $metrics['Unique_Item_Investigations'] = $result->metric_chapter_investigations_unique;
+ $metrics['Total_Item_Requests'] = $result->metric_chapter_requests;
+ $metrics['Unique_Item_Requests'] = $result->metric_chapter_requests_unique;
+ break;
+ case 'Title':
+ $metrics['Unique_Title_Investigations'] = $result->metric_title_investigations_unique;
+ $metrics['Unique_Title_Requests'] = $result->metric_title_requests_unique;
+ break;
+ }
+ // filter here by requested metric types
+ foreach ($this->metricTypes as $metricType) {
+ if (array_key_exists($metricType, $metrics) && $metrics[$metricType] > 0) {
+ $instances[] = [
+ 'Metric_Type' => $metricType,
+ 'Count' => (int) $metrics[$metricType]
+ ];
+ }
+ }
+ $periodMetrics['Instance'] = $instances;
+ $performances[] = $periodMetrics;
+ }
+ $item['Performance'] = $performances;
+ $items[] = $item;
+ }
+ } else { // Section_Type is not in attributes_to_show
+ $results = $submissionResults;
+ // Get the submission properties
+ $submission = Repo::submission()->get($submissionId);
+ if (!$submission || !$submission->getOriginalPublication()) {
+ break;
+ }
+ $currentPublication = $submission->getCurrentPublication();
+ $submissionLocale = $submission->getData('locale');
+ $itemTitle = $currentPublication->getLocalizedTitle($submissionLocale);
+
+ $item = [
+ 'Title' => $itemTitle,
+ 'Platform' => $this->platformName,
+ 'Publisher' => $this->context->getData('publisherInstitution'),
+ ];
+ $item['Item_ID'][] = [
+ 'Type' => 'Proprietary',
+ 'Value' => $this->platformId . ':' . $submissionId,
+ ];
+ $doi = $currentPublication->getDoi();
+ if (isset($doi)) {
+ $item['Item_ID'][] = [
+ 'Type' => 'DOI',
+ 'Value' => $doi,
+ ];
+ }
+
+ $datePublished = $submission->getOriginalPublication()->getData('datePublished');
+ foreach ($this->attributesToShow as $attributeToShow) {
+ if ($attributeToShow == 'Data_Type') {
+ $item['Data_Type'] = self::DATA_TYPE;
+ } elseif ($attributeToShow == 'Access_Type') {
+ $item['Access_Type'] = self::ACCESS_TYPE;
+ } elseif ($attributeToShow == 'Access_Method') {
+ $item['Access_Method'] = self::ACCESS_METHOD;
+ } elseif ($attributeToShow == 'YOP') {
+ $item['YOP'] = date('Y', strtotime($datePublished));
+ }
+ // Section_Type is not in attributes_to_show
+ // so do not consider it here
+ }
+
+ $performances = [];
+ foreach ($results as $result) {
+ // if granularity=Month, the results will contain metrics for each month
+ // else the results will only contain the summarized metrics for the whole period
+ if (isset($result->month)) {
+ $periodBeginDate = date_format(date_create($result->month . '01'), 'Y-m-01');
+ $periodEndDate = date_format(date_create($result->month . '01'), 'Y-m-t');
+ } else {
+ $periodBeginDate = date_format(date_create($this->beginDate), 'Y-m-01');
+ $periodEndDate = date_format(date_create($this->endDate), 'Y-m-t');
+ }
+ $periodMetrics['Period'] = [
+ 'Begin_Date' => $periodBeginDate,
+ 'End_Date' => $periodEndDate,
+ ];
+
+ $instances = [];
+ // consider section_type filter
+ $metrics['Total_Item_Investigations'] = $metrics['Unique_Item_Investigations'] =
+ $metrics['Total_Item_Requests'] = $metrics['Unique_Item_Requests'] = 0;
+ if (in_array('Book', $this->sectionTypes)) {
+ $metrics['Total_Item_Investigations'] += $result->metric_book_investigations;
+ $metrics['Unique_Item_Investigations'] += $result->metric_book_investigations_unique;
+ $metrics['Total_Item_Requests'] += $result->metric_book_requests;
+ $metrics['Unique_Item_Requests'] += $result->metric_book_requests_unique;
+ }
+ if (in_array('Chapter', $this->sectionTypes)) {
+ $metrics['Total_Item_Investigations'] += $result->metric_chapter_investigations;
+ $metrics['Unique_Item_Investigations'] += $result->metric_chapter_investigations_unique;
+ $metrics['Total_Item_Requests'] += $result->metric_chapter_requests;
+ $metrics['Unique_Item_Requests'] += $result->metric_chapter_requests_unique;
+ }
+ if (in_array('Title', $this->sectionTypes)) {
+ $metrics['Unique_Title_Investigations'] = $result->metric_title_investigations_unique;
+ $metrics['Unique_Title_Requests'] = $result->metric_title_requests_unique;
+ }
+ // filter here by requested metric types
+ foreach ($this->metricTypes as $metricType) {
+ if (array_key_exists($metricType, $metrics) && $metrics[$metricType] > 0) {
+ $instances[] = [
+ 'Metric_Type' => $metricType,
+ 'Count' => (int) $metrics[$metricType]
+ ];
+ }
+ }
+ $periodMetrics['Instance'] = $instances;
+ $performances[] = $periodMetrics;
+ }
+ $item['Performance'] = $performances;
+ $items[] = $item;
+ }
+ }
+
+ return $items;
+ }
+
+ /** Get TSV report column names */
+ public function getTSVColumnNames(): array
+ {
+ $columnRow = ['Title', 'Publisher', 'Publisher ID', 'Platform', 'DOI', 'Proprietary_ID', 'ISBN', 'Print_ISSN', 'Online_ISSN', 'URI'];
+
+ if (in_array('Data_Type', $this->attributesToShow)) {
+ array_push($columnRow, 'Data_Type');
+ }
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ array_push($columnRow, 'Section_Type');
+ }
+ if (in_array('YOP', $this->attributesToShow)) {
+ array_push($columnRow, 'YOP');
+ }
+ if (in_array('Access_Type', $this->attributesToShow)) {
+ array_push($columnRow, 'Access_Type');
+ }
+ if (in_array('Access_Method', $this->attributesToShow)) {
+ array_push($columnRow, 'Access_Method');
+ }
+
+ array_push($columnRow, 'Metric_Type', 'Reporting_Period_Total');
+
+ if ($this->granularity == 'Month') {
+ $period = $this->getMonthlyDatePeriod();
+ foreach ($period as $dt) {
+ array_push($columnRow, $dt->format('M-Y'));
+ }
+ }
+
+ return [$columnRow];
+ }
+
+ /** Get TSV report rows */
+ public function getTSVReportItems(): array
+ {
+ $results = $this->getQueryResults();
+
+ // Group result by submission ID
+ // If Section_Type is attribute to show, group additionally by section type
+ // Also filter results by requested section and metric types
+ $resultsGroupedBySubmission = $resultRows = [];
+ foreach ($results as $result) {
+ $includeResult = false;
+ if (in_array('Book', $this->sectionTypes) &&
+ !empty(array_intersect($this->metricTypes, ['Total_Item_Investigations', 'Unique_Item_Investigations', 'Total_Item_Requests', 'Unique_Item_Requests'])) &&
+ ($result->metric_book_investigations > 0 || $result->metric_book_investigations_unique > 0 || $result->metric_book_requests > 0 || $result->metric_book_requests_unique > 0)) {
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ $resultsGroupedBySubmission[$result->submission_id]['Book'][] = $result;
+ }
+ $includeResult = true;
+ }
+ if (in_array('Chapter', $this->sectionTypes) &&
+ !empty(array_intersect($this->metricTypes, ['Total_Item_Investigations', 'Unique_Item_Investigations', 'Total_Item_Requests', 'Unique_Item_Requests'])) &&
+ ($result->metric_chapter_investigations > 0 || $result->metric_chapter_investigations_unique > 0 || $result->metric_chapter_requests > 0 || $result->metric_chapter_requests_unique > 0)) {
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ $resultsGroupedBySubmission[$result->submission_id]['Chapter'][] = $result;
+ }
+ $includeResult = true;
+ }
+ if (in_array('Title', $this->sectionTypes) &&
+ !empty(array_intersect($this->metricTypes, ['Unique_Title_Investigations', 'Unique_Title_Requests'])) &&
+ ($result->metric_title_investigations_unique > 0 || $result->metric_title_requests_unique > 0)) {
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ $resultsGroupedBySubmission[$result->submission_id]['Title'][] = $result;
+ }
+ $includeResult = true;
+ }
+ if (!in_array('Section_Type', $this->attributesToShow) && $includeResult) {
+ $resultsGroupedBySubmission[$result->submission_id][] = $result;
+ }
+ }
+
+ foreach ($resultsGroupedBySubmission as $submissionId => $submissionResults) {
+ // Section_Type is in attributes_to_show, the query results are grouped by section type
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ foreach ($submissionResults as $sectionType => $results) {
+ $results = collect($results);
+
+ // get total numbers for every metric type
+ $metricsTotal['Total_Item_Investigations'] = $metricsTotal['Unique_Item_Investigations'] =
+ $metricsTotal['Total_Item_Requests'] = $metricsTotal['Unique_Item_Requests'] = 0;
+ switch ($sectionType) {
+ case 'Book':
+ $metricsTotal['Total_Item_Investigations'] = $results->pluck('metric_book_investigations')->sum();
+ $metricsTotal['Unique_Item_Investigations'] = $results->pluck('metric_book_investigations_unique')->sum();
+ $metricsTotal['Total_Item_Requests'] = $results->pluck('metric_book_requests')->sum();
+ $metricsTotal['Unique_Item_Requests'] = $results->pluck('metric_book_requests_unique')->sum();
+ break;
+ case 'Chapter':
+ $metricsTotal['Total_Item_Investigations'] = $results->pluck('metric_chapter_investigations')->sum();
+ $metricsTotal['Unique_Item_Investigations'] = $results->pluck('metric_chapter_investigations_unique')->sum();
+ $metricsTotal['Total_Item_Requests'] = $results->pluck('metric_chapter_requests')->sum();
+ $metricsTotal['Unique_Item_Requests'] = $results->pluck('metric_chapter_requests_unique')->sum();
+ break;
+ case 'Title':
+ $metricsTotal['Unique_Title_Investigations'] = $results->pluck('metric_title_investigations_unique')->sum();
+ $metricsTotal['Unique_Title_Requests'] = $results->pluck('metric_title_requests_unique')->sum();
+ break;
+ }
+
+ // Get the submission properties
+ $submission = Repo::submission()->get($submissionId);
+ if (!$submission || !$submission->getOriginalPublication()) {
+ break;
+ }
+ $currentPublication = $submission->getCurrentPublication();
+ $submissionLocale = $submission->getData('locale');
+ $itemTitle = $currentPublication->getLocalizedTitle($submissionLocale);
+ $doi = $currentPublication->getDoi();
+ $datePublished = $submission->getOriginalPublication()->getData('datePublished');
+
+ // filter here by requested metric types
+ foreach ($this->metricTypes as $metricType) {
+ if (array_key_exists($metricType, $metricsTotal) && $metricsTotal[$metricType] > 0) {
+ // construct the result row
+ $resultRow = [
+ $itemTitle, // Title
+ $this->context->getData('publisherInstitution'), // Publisher
+ '', // Publisher ID
+ $this->platformName, // Platform
+ $doi ?? '', // DOI
+ $this->platformId . ':' . $submissionId, // Proprietary_ID
+ '', // ISBN
+ '', // Print_ISSN
+ '', // Online_ISSN
+ '', // URI
+ ];
+
+ if (in_array('Data_Type', $this->attributesToShow)) {
+ array_push($resultRow, self::DATA_TYPE); // Data_Type
+ }
+ if (in_array('Section_Type', $this->attributesToShow)) {
+ // do not display section type for title metrics
+ if ($sectionType != 'Title') {
+ array_push($resultRow, $sectionType); // Section_Type
+ } else {
+ array_push($resultRow, '');
+ }
+ }
+ if (in_array('YOP', $this->attributesToShow)) {
+ array_push($resultRow, date('Y', strtotime($datePublished))); // YOP
+ }
+ if (in_array('Access_Type', $this->attributesToShow)) {
+ array_push($resultRow, self::ACCESS_TYPE); // Access_Type
+ }
+ if (in_array('Access_Method', $this->attributesToShow)) {
+ array_push($resultRow, self::ACCESS_METHOD); // Access_Method
+ }
+ array_push($resultRow, $metricType); // Metric_Type
+ array_push($resultRow, $metricsTotal[$metricType]); // Reporting_Period_Total
+
+ if ($this->granularity == 'Month') { // metrics for each month in the given period
+ $period = $this->getMonthlyDatePeriod();
+ foreach ($period as $dt) {
+ $month = $dt->format('Ym');
+ $result = $results->firstWhere('month', '=', $month);
+ if ($result === null) {
+ array_push($resultRow, '0');
+ } else {
+ switch ($sectionType) {
+ case 'Book':
+ $metrics['Total_Item_Investigations'] = $result->metric_book_investigations;
+ $metrics['Unique_Item_Investigations'] = $result->metric_book_investigations_unique;
+ $metrics['Total_Item_Requests'] = $result->metric_book_requests;
+ $metrics['Unique_Item_Requests'] = $result->metric_book_requests_unique;
+ break;
+ case 'Chapter':
+ $metrics['Total_Item_Investigations'] = $result->metric_chapter_investigations;
+ $metrics['Unique_Item_Investigations'] = $result->metric_chapter_investigations_unique;
+ $metrics['Total_Item_Requests'] = $result->metric_chapter_requests;
+ $metrics['Unique_Item_Requests'] = $result->metric_chapter_requests_unique;
+ break;
+ case 'Title':
+ $metrics['Unique_Title_Investigations'] = $result->metric_title_investigations_unique;
+ $metrics['Unique_Title_Requests'] = $result->metric_title_requests_unique;
+ break;
+ }
+ array_push($resultRow, $metrics[$metricType]);
+ }
+ }
+ }
+ $resultRows[] = $resultRow;
+ }
+ }
+ }
+ } else { // Section_Type is not in attributes_to_show
+ $results = collect($submissionResults);
+
+ $metricsTotal['Total_Item_Investigations'] = $metricsTotal['Unique_Item_Investigations'] =
+ $metricsTotal['Total_Item_Requests'] = $metricsTotal['Unique_Item_Requests'] = 0;
+ if (in_array('Book', $this->sectionTypes)) {
+ $metricsTotal['Total_Item_Investigations'] += $results->pluck('metric_book_investigations')->sum();
+ $metricsTotal['Unique_Item_Investigations'] += $results->pluck('metric_book_investigations_unique')->sum();
+ $metricsTotal['Total_Item_Requests'] += $results->pluck('metric_book_requests')->sum();
+ $metricsTotal['Unique_Item_Requests'] += $results->pluck('metric_book_requests_unique')->sum();
+ }
+ if (in_array('Chapter', $this->sectionTypes)) {
+ $metricsTotal['Total_Item_Investigations'] += $results->pluck('metric_chapter_investigations')->sum();
+ $metricsTotal['Unique_Item_Investigations'] += $results->pluck('metric_chapter_investigations_unique')->sum();
+ $metricsTotal['Total_Item_Requests'] += $results->pluck('metric_chapter_requests')->sum();
+ $metricsTotal['Unique_Item_Requests'] += $results->pluck('metric_chapter_requests_unique')->sum();
+ }
+ if (in_array('Title', $this->sectionTypes)) {
+ $metricsTotal['Unique_Title_Investigations'] = $results->pluck('metric_title_investigations_unique')->sum();
+ $metricsTotal['Unique_Title_Requests'] = $results->pluck('metric_title_requests_unique')->sum();
+ }
+
+ // Get the submission properties
+ $submission = Repo::submission()->get($submissionId);
+ if (!$submission || !$submission->getOriginalPublication()) {
+ break;
+ }
+ $currentPublication = $submission->getCurrentPublication();
+ $submissionLocale = $submission->getData('locale');
+ $itemTitle = $currentPublication->getLocalizedTitle($submissionLocale);
+ $doi = $currentPublication->getDoi();
+ $datePublished = $submission->getOriginalPublication()->getData('datePublished');
+
+ // filter here by requested metric types
+ foreach ($this->metricTypes as $metricType) {
+ if (array_key_exists($metricType, $metricsTotal) && $metricsTotal[$metricType] > 0) {
+ // construct the result row
+ $resultRow = [
+ $itemTitle, // Title
+ $this->context->getData('publisherInstitution'), // Publisher
+ '', // Publisher ID
+ $this->platformName, // Platform
+ $doi ?? '', // DOI
+ $this->platformId . ':' . $submissionId, // Proprietary_ID
+ '', // ISBN
+ '', // Print_ISSN
+ '', // Online_ISSN
+ '', // URI
+ ];
+
+ if (in_array('Data_Type', $this->attributesToShow)) {
+ array_push($resultRow, self::DATA_TYPE); // Data_Type
+ }
+ // Section_Type is not in attributes_to_show
+ // so no need to consider it here
+ if (in_array('YOP', $this->attributesToShow)) {
+ array_push($resultRow, date('Y', strtotime($datePublished))); // YOP
+ }
+ if (in_array('Access_Type', $this->attributesToShow)) {
+ array_push($resultRow, self::ACCESS_TYPE); // Access_Type
+ }
+ if (in_array('Access_Method', $this->attributesToShow)) {
+ array_push($resultRow, self::ACCESS_METHOD); // Access_Method
+ }
+ array_push($resultRow, $metricType); // Metric_Type
+ array_push($resultRow, $metricsTotal[$metricType]); // Reporting_Period_Total
+
+ if ($this->granularity == 'Month') { // metrics for each month in the given period
+ $period = $this->getMonthlyDatePeriod();
+ foreach ($period as $dt) {
+ $month = $dt->format('Ym');
+ $result = $results->firstWhere('month', '=', $month);
+ if ($result === null) {
+ array_push($resultRow, '0');
+ } else {
+ // consider section_type filter
+ $metrics['Total_Item_Investigations'] = $metrics['Unique_Item_Investigations'] =
+ $metrics['Total_Item_Requests'] = $metrics['Unique_Item_Requests'] = 0;
+ if (in_array('Book', $this->sectionTypes)) {
+ $metrics['Total_Item_Investigations'] += $result->metric_book_investigations;
+ $metrics['Unique_Item_Investigations'] += $result->metric_book_investigations_unique;
+ $metrics['Total_Item_Requests'] += $result->metric_book_requests;
+ $metrics['Unique_Item_Requests'] += $result->metric_book_requests_unique;
+ }
+ if (in_array('Chapter', $this->sectionTypes)) {
+ $metrics['Total_Item_Investigations'] += $result->metric_chapter_investigations;
+ $metrics['Unique_Item_Investigations'] += $result->metric_chapter_investigations_unique;
+ $metrics['Total_Item_Requests'] += $result->metric_chapter_requests;
+ $metrics['Unique_Item_Requests'] += $result->metric_chapter_requests_unique;
+ }
+ if (in_array('Title', $this->sectionTypes)) {
+ $metrics['Unique_Title_Investigations'] = $result->metric_title_investigations_unique;
+ $metrics['Unique_Title_Requests'] = $result->metric_title_requests_unique;
+ }
+ array_push($resultRow, $metrics[$metricType]);
+ }
+ }
+ }
+ $resultRows[] = $resultRow;
+ }
+ }
+ }
+ }
+
+ return $resultRows;
+ }
+
+ /** Get report specific form fields */
+ public static function getReportSettingsFormFields(): array
+ {
+ $formFields = parent::getCommonReportSettingsFormFields();
+
+ $metricTypes = [
+ 'Total_Item_Investigations',
+ 'Unique_Item_Investigations',
+ 'Total_Item_Requests',
+ 'Unique_Item_Requests',
+ 'Unique_Title_Investigations',
+ 'Unique_Title_Requests'
+ ];
+ $metricTypeOptions = [];
+ foreach ($metricTypes as $metricType) {
+ $metricTypeOptions[] = ['value' => $metricType, 'label' => $metricType];
+ }
+ $formFields[] = new FieldOptions('metric_type', [
+ 'label' => __('manager.statistics.counterR5Report.settings.metricType'),
+ 'options' => $metricTypeOptions,
+ 'groupId' => 'default',
+ 'value' => $metricTypes,
+ ]);
+
+ $attributesToShow = ['Data_Type', 'Access_Method', 'Section_Type', 'Access_Type', 'YOP'];
+ $attributesToShowOptions = [];
+ foreach ($attributesToShow as $attributeToShow) {
+ $attributesToShowOptions[] = ['value' => $attributeToShow, 'label' => $attributeToShow];
+ }
+ $formFields[] = new FieldOptions('attributes_to_show', [
+ 'label' => __('manager.statistics.counterR5Report.settings.attributesToShow'),
+ 'options' => $attributesToShowOptions,
+ 'groupId' => 'default',
+ 'value' => [],
+ ]);
+
+ $formFields[] = new FieldText('yop', [
+ 'label' => __('manager.statistics.counterR5Report.settings.yop'),
+ 'description' => __('manager.statistics.counterR5Report.settings.date.yop.description'),
+ 'size' => 'small',
+ 'isMultilingual' => false,
+ 'isRequired' => false,
+ 'groupId' => 'default',
+ ]);
+
+ $formFields[] = new FieldOptions('granularity', [
+ 'label' => __('manager.statistics.counterR5Report.settings.excludeMonthlyDetails'),
+ 'options' => [
+ ['value' => true, 'label' => __('manager.statistics.counterR5Report.settings.excludeMonthlyDetails')],
+ ],
+ 'value' => false,
+ 'groupId' => 'default',
+ ]);
+
+ return $formFields;
+ }
+}
diff --git a/classes/sushi/TR_B3.php b/classes/sushi/TR_B3.php
new file mode 100644
index 00000000000..b23527521f7
--- /dev/null
+++ b/classes/sushi/TR_B3.php
@@ -0,0 +1,121 @@
+ 'Metric_Type',
+ 'Value' => 'Total_Item_Investigations|Unique_Item_Investigations|Total_Item_Requests|Unique_Item_Requests|Unique_Title_Investigations|Unique_Title_Requests'
+ ],
+ [
+ 'Name' => 'Access_Method',
+ 'Value' => self::ACCESS_METHOD
+ ],
+ [
+ 'Name' => 'Data_Type',
+ 'Value' => self::DATA_TYPE
+ ],
+ ];
+ $this->filters = array_merge($filters, $predefinedFilters);
+ }
+
+ /**
+ * Set attributes based on the requested parameters.
+ * No attributes are supported by this report.
+ */
+ public function setAttributes(array $attributes): void
+ {
+ $this->attributes = [];
+ }
+
+ /** Get report specific form fields */
+ public static function getReportSettingsFormFields(): array
+ {
+ return parent::getCommonReportSettingsFormFields();
+ }
+}
diff --git a/classes/tasks/UsageStatsLoader.php b/classes/tasks/UsageStatsLoader.php
new file mode 100644
index 00000000000..0f76039113c
--- /dev/null
+++ b/classes/tasks/UsageStatsLoader.php
@@ -0,0 +1,54 @@
+getContext();
- $site = $request->getSite();
-
- $publicFileManager = new PublicFileManager();
- $siteFilesDir = $request->getBaseUrl() . '/' . $publicFileManager->getSiteFilesPath();
- $this->assign('sitePublicFilesDir', $siteFilesDir);
- $this->assign('publicFilesDir', $siteFilesDir); // May be overridden by press
-
- // Pass app-specific details to template
- $this->assign([
- 'brandImage' => 'templates/images/omp_brand.png',
- 'packageKey' => 'common.software',
- ]);
-
- // Get a count of unread tasks.
- if ($user = $request->getUser()) {
- $notificationDao = DAORegistry::getDAO('NotificationDAO'); /* @var $notificationDao NotificationDAO */
- // Exclude certain tasks, defined in the notifications grid handler
- import('lib.pkp.controllers.grid.notifications.TaskNotificationsGridHandler');
- $this->assign('unreadNotificationCount', $notificationDao->getNotificationCount(false, $user->getId(), null, NOTIFICATION_LEVEL_TASK));
- }
-
- if (isset($context)) {
- $this->assign([
- 'currentPress' => $context,
- 'siteTitle' => $context->getLocalizedName(),
- 'publicFilesDir' => $request->getBaseUrl() . '/' . $publicFileManager->getContextFilesPath($context->getId()),
- 'primaryLocale' => $context->getPrimaryLocale(),
- 'supportedLocales' => $context->getSupportedLocaleNames(),
- 'numPageLinks' => $context->getData('numPageLinks'),
- 'itemsPerPage' => $context->getData('itemsPerPage'),
- 'enableAnnouncements' => $context->getData('enableAnnouncements'),
- 'disableUserReg' => $context->getData('disableUserReg'),
- ]);
-
- // Assign stylesheets and footer
- $contextStyleSheet = $context->getData('styleSheet');
- if ($contextStyleSheet) {
- $this->addStyleSheet(
- 'contextStylesheet',
- $request->getBaseUrl() . '/' . $publicFileManager->getContextFilesPath($context->getId()) . '/' . $contextStyleSheet['uploadName'],
- ['priority' => STYLE_SEQUENCE_LAST]
- );
- }
-
- $this->assign('pageFooter', $context->getLocalizedData('pageFooter'));
- } else {
- // Check if registration is open for any contexts
- $contextDao = Application::getContextDAO();
- $contexts = $contextDao->getAll(true)->toArray();
- $contextsForRegistration = [];
- foreach($contexts as $context) {
- if (!$context->getData('disableUserReg')) {
- $contextsForRegistration[] = $context;
- }
- }
-
- $this->assign([
- 'contexts' => $contextsForRegistration,
- 'disableUserReg' => empty($contextsForRegistration),
- 'siteTitle' => $site->getLocalizedTitle(),
- 'primaryLocale' => $site->getPrimaryLocale(),
- 'supportedLocales' => $site->getSupportedLocaleNames(),
- 'pageFooter' => $site->getLocalizedData('pageFooter'),
- ]);
- }
- }
- }
-
- /**
- * @copydoc PKPTemplateManager::setupBackendPage()
- */
- function setupBackendPage() {
- parent::setupBackendPage();
-
- $request = Application::get()->getRequest();
- if (defined('SESSION_DISABLE_INIT')
- || !$request->getContext()
- || !$request->getUser()) {
- return;
- }
-
- $router = $request->getRouter();
- $handler = $router->getHandler();
- $userRoles = (array) $handler->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
-
- $menu = (array) $this->getState('menu');
-
- // Add catalog after submissions items
- if (in_array(ROLE_ID_MANAGER, $userRoles)) {
- $catalogLink = [
- 'name' => __('navigation.catalog'),
- 'url' => $router->url($request, null, 'manageCatalog'),
- 'isCurrent' => $request->getRequestedPage() === 'manageCatalog',
- ];
-
- $index = array_search('submissions', array_keys($menu));
- if ($index === false || count($menu) <= ($index + 1)) {
- $menu['catalog'] = $catalogLink;
- } else {
- $menu = array_slice($menu, 0, $index + 1, true) +
- ['catalog' => $catalogLink] +
- array_slice($menu, $index + 1, null, true);
- }
- }
-
- $this->setState(['menu' => $menu]);
- }
-}
diff --git a/classes/template/TemplateManager.php b/classes/template/TemplateManager.php
new file mode 100644
index 00000000000..f15d7f0db40
--- /dev/null
+++ b/classes/template/TemplateManager.php
@@ -0,0 +1,166 @@
+getContext(); /** @var Context $context */
+ $site = $request->getSite(); /** @var Site $site */
+
+ $publicFileManager = new PublicFileManager();
+ $siteFilesDir = $request->getBaseUrl() . '/' . $publicFileManager->getSiteFilesPath();
+ $this->assign('sitePublicFilesDir', $siteFilesDir);
+ $this->assign('publicFilesDir', $siteFilesDir); // May be overridden by press
+
+ // Pass app-specific details to template
+ $this->assign([
+ 'brandImage' => 'templates/images/omp_brand.png',
+ 'packageKey' => 'common.software',
+ ]);
+
+ // Get a count of unread tasks.
+ if ($user = $request->getUser()) {
+ $notificationDao = DAORegistry::getDAO('NotificationDAO'); /** @var NotificationDAO $notificationDao */
+ // Exclude certain tasks, defined in the notifications grid handler
+ $this->assign('unreadNotificationCount', $notificationDao->getNotificationCount(false, $user->getId(), null, Notification::NOTIFICATION_LEVEL_TASK));
+ }
+
+ if (isset($context)) {
+ $this->assign([
+ 'currentPress' => $context,
+ 'siteTitle' => $context->getLocalizedName(),
+ 'publicFilesDir' => $request->getBaseUrl() . '/' . $publicFileManager->getContextFilesPath($context->getId()),
+ 'primaryLocale' => $context->getPrimaryLocale(),
+ 'supportedLocales' => $context->getSupportedLocaleNames(LocaleMetadata::LANGUAGE_LOCALE_ONLY),
+ 'numPageLinks' => $context->getData('numPageLinks'),
+ 'itemsPerPage' => $context->getData('itemsPerPage'),
+ 'enableAnnouncements' => $context->getData('enableAnnouncements'),
+ 'disableUserReg' => $context->getData('disableUserReg'),
+ ]);
+
+ // Assign stylesheets and footer
+ $contextStyleSheet = $context->getData('styleSheet');
+ if ($contextStyleSheet) {
+ $this->addStyleSheet(
+ 'contextStylesheet',
+ $request->getBaseUrl() . '/' . $publicFileManager->getContextFilesPath($context->getId()) . '/' . $contextStyleSheet['uploadName'],
+ ['priority' => self::STYLE_SEQUENCE_LAST]
+ );
+ }
+
+ $this->assign('pageFooter', $context->getLocalizedData('pageFooter'));
+ } else {
+ // Check if registration is open for any contexts
+ $contextDao = Application::getContextDAO();
+ $contexts = $contextDao->getAll(true)->toArray();
+ $contextsForRegistration = [];
+ foreach ($contexts as $context) {
+ if (!$context->getData('disableUserReg')) {
+ $contextsForRegistration[] = $context;
+ }
+ }
+
+ $this->assign([
+ 'contexts' => $contextsForRegistration,
+ 'disableUserReg' => empty($contextsForRegistration),
+ 'siteTitle' => $site->getLocalizedTitle(),
+ 'primaryLocale' => $site->getPrimaryLocale(),
+ 'supportedLocales' => Locale::getFormattedDisplayNames(
+ $site->getSupportedLocales(),
+ Locale::getLocales(),
+ LocaleMetadata::LANGUAGE_LOCALE_ONLY
+ ),
+ 'pageFooter' => $site->getLocalizedData('pageFooter'),
+ ]);
+ }
+ }
+ }
+
+ /**
+ * @copydoc PKPTemplateManager::setupBackendPage()
+ */
+ public function setupBackendPage()
+ {
+ parent::setupBackendPage();
+
+ $request = Application::get()->getRequest();
+ if (SessionManager::isDisabled() || !$request->getContext() || !$request->getUser()) {
+ return;
+ }
+
+ $router = $request->getRouter();
+ $handler = $router->getHandler();
+ $userRoles = (array) $handler->getAuthorizedContextObject(Application::ASSOC_TYPE_USER_ROLES);
+
+ $menu = (array) $this->getState('menu');
+
+ // Add catalog after submissions items
+ if (count(array_intersect([Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN], $userRoles))) {
+ $catalogLink = [
+ 'name' => __('navigation.catalog'),
+ 'url' => $router->url($request, null, 'manageCatalog'),
+ 'isCurrent' => $request->getRequestedPage() === 'manageCatalog',
+ ];
+
+ $index = array_search('submissions', array_keys($menu));
+ if ($index === false || count($menu) <= $index + 1) {
+ $menu['catalog'] = $catalogLink;
+ } else {
+ $menu = array_slice($menu, 0, $index + 1, true)
+ + ['catalog' => $catalogLink]
+ + array_slice($menu, $index + 1, null, true);
+ }
+ }
+
+ $this->setState(['menu' => $menu]);
+ }
+}
+
+if (!PKP_STRICT_MODE) {
+ class_alias('\APP\template\TemplateManager', '\TemplateManager');
+}
diff --git a/classes/user/Repository.php b/classes/user/Repository.php
new file mode 100644
index 00000000000..059eb96fd97
--- /dev/null
+++ b/classes/user/Repository.php
@@ -0,0 +1,40 @@
+getByUserId($oldUserId);
+ while ($payment = $paymentFactory->next()) {
+ $payment->setUserId($newUserId);
+ $paymentDao->updateObject($payment);
+ }
+
+ return true;
+ }
+}
diff --git a/classes/user/UserAction.inc.php b/classes/user/UserAction.inc.php
deleted file mode 100644
index 57470c9e672..00000000000
--- a/classes/user/UserAction.inc.php
+++ /dev/null
@@ -1,37 +0,0 @@
-getByUserId($oldUserId);
- while ($payment = $paymentFactory->next()) {
- $payment->setUserId($newUserId);
- $paymentDao->updateObject($payment);
- }
-
- return true;
- }
-}
-
diff --git a/classes/workflow/EditorDecisionActionsManager.inc.php b/classes/workflow/EditorDecisionActionsManager.inc.php
deleted file mode 100644
index fbac8220d33..00000000000
--- a/classes/workflow/EditorDecisionActionsManager.inc.php
+++ /dev/null
@@ -1,220 +0,0 @@
-_submissionStageDecisions($submission, $stageId) +
- $this->_internalReviewStageDecisions($context, $submission) +
- $this->_externalReviewStageDecisions($context, $submission) +
- $this->_editorialStageDecisions();
-
- $actionLabels = array();
- foreach($decisions as $decision) {
- if ($allDecisionsData[$decision]['title']) {
- $actionLabels[$decision] = $allDecisionsData[$decision]['title'];
- } else {
- assert(false);
- }
- }
-
- return $actionLabels;
- }
-
- /**
- * Check for editor decisions in the review round.
- * @param $context Context
- * @param $reviewRound ReviewRound
- * @param $decisions array
- * @return boolean
- */
- public function getEditorTakenActionInReviewRound($context, $reviewRound, $decisions = array()) {
- $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); /* @var $editDecisionDao EditDecisionDAO */
- $editorDecisions = $editDecisionDao->getEditorDecisions($reviewRound->getSubmissionId(), $reviewRound->getStageId(), $reviewRound->getRound());
-
- if (empty($decisions)) {
- $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
- $submission = $submissionDao->getById($reviewRound->getSubmissionId());
- $decisions = array_keys($this->_internalReviewStageDecisions($context, $submission));
- }
- $takenDecision = false;
- foreach ($editorDecisions as $decision) {
- if (in_array($decision['decision'], $decisions)) {
- $takenDecision = true;
- break;
- }
- }
-
- return $takenDecision;
- }
-
- /**
- * @copydoc PKPEditorDecisionActionsManager::getStageDecisions()
- */
- public function getStageDecisions($context, $submission, $stageId, $makeDecision = true) {
- switch ($stageId) {
- case WORKFLOW_STAGE_ID_INTERNAL_REVIEW:
- return $this->_internalReviewStageDecisions($context, $submission, $stageId, $makeDecision);
- }
- return parent::getStageDecisions($context, $submission, $stageId, $makeDecision);
- }
-
- /**
- * Get an associative array matching editor recommendation codes with locale strings.
- * (Includes default '' => "Choose One" string.)
- * @param $stageId integer
- * @return array recommendation => localeString
- */
- public function getRecommendationOptions($stageId) {
- $recommendationOptions = parent::getRecommendationOptions($stageId);
- if ($stageId == WORKFLOW_STAGE_ID_INTERNAL_REVIEW) {
- $recommendationOptions[SUBMISSION_EDITOR_RECOMMEND_EXTERNAL_REVIEW] = 'editor.submission.decision.sendExternalReview';
- }
- return $recommendationOptions;
- }
-
- //
- // Private helper methods.
- //
- /**
- * @copydoc PKPEditorDecisionActionsManager::_submissionStageDecisions()
- */
- protected function _submissionStageDecisions($submission, $stageId, $makeDecision = true) {
- $decisions = parent::_submissionStageDecisions($submission, $stageId, $makeDecision);
- $decisions[SUBMISSION_EDITOR_DECISION_INTERNAL_REVIEW] = array(
- 'name' => 'internalReview',
- 'operation' => 'internalReview',
- 'title' => 'editor.submission.decision.sendInternalReview',
- );
- return $decisions;
- }
-
- /**
- * Define and return editor decisions for the review stage.
- * If the user cannot make decisions i.e. if it is a recommendOnly user,
- * there will be no decisions options in the review stage.
- * @param $makeDecision boolean If the user can make decisions
- * @return array
- */
- protected function _internalReviewStageDecisions($context, $submission, $makeDecision = true) {
- $decisions = array();
- if ($makeDecision) {
- $decisions = array(
- SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS => array(
- 'operation' => 'sendReviewsInReview',
- 'name' => 'requestRevisions',
- 'title' => 'editor.submission.decision.requestRevisions',
- ),
- SUBMISSION_EDITOR_DECISION_RESUBMIT => array(
- 'name' => 'resubmit',
- 'title' => 'editor.submission.decision.resubmit',
- ),
- SUBMISSION_EDITOR_DECISION_NEW_ROUND => array(
- 'name' => 'newround',
- 'title' => 'editor.submission.decision.newRound',
- ),
- SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW => array(
- 'operation' => 'promoteInReview',
- 'name' => 'externalReview',
- 'title' => 'editor.submission.decision.sendExternalReview',
- 'toStage' => 'workflow.review.externalReview',
- ),
- SUBMISSION_EDITOR_DECISION_ACCEPT => array(
- 'operation' => 'promoteInReview',
- 'name' => 'accept',
- 'title' => 'editor.submission.decision.accept',
- 'toStage' => 'submission.copyediting',
- ),
- );
-
- if ($submission->getStatus() == STATUS_QUEUED){
- $decisions = $decisions + array(
- SUBMISSION_EDITOR_DECISION_DECLINE => array(
- 'operation' => 'sendReviewsInReview',
- 'name' => 'decline',
- 'title' => 'editor.submission.decision.decline',
- ),
- );
- }
- if ($submission->getStatus() == STATUS_DECLINED){
- $decisions = $decisions + array(
- SUBMISSION_EDITOR_DECISION_REVERT_DECLINE => array(
- 'name' => 'revert',
- 'operation' => 'revertDecline',
- 'title' => 'editor.submission.decision.revertDecline',
- ),
- );
- }
-
- }
- return $decisions;
- }
-
- /**
- * Define and return editor decisions for the review stage.
- * If the user cannot make decisions i.e. if it is a recommendOnly user,
- * there will be no decisions options in the review stage.
- * @param $context Context
- * @param $makeDecision boolean If the user can make decisions
- * @return array
- */
- protected function _externalReviewStageDecisions($context, $submission, $makeDecision = true) {
- $decisions = $this->_internalReviewStageDecisions($context, $submission, $makeDecision);
- unset($decisions[SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW]);
- return $decisions;
- }
-
- /**
- * @copydoc PKPEditorDecisionActionsManager::getStageNotifications()
- * @return array
- */
- public function getStageNotifications() {
- return parent::getStageNotifications() + array(
- NOTIFICATION_TYPE_EDITOR_ASSIGNMENT_INTERNAL_REVIEW
- );
- }
-}
-
-
diff --git a/config.TEMPLATE.inc.php b/config.TEMPLATE.inc.php
index ae354df3718..9d521e7c1e8 100644
--- a/config.TEMPLATE.inc.php
+++ b/config.TEMPLATE.inc.php
@@ -1,4 +1,4 @@
-;
+;
; DO NOT DELETE THE ABOVE LINE!!!
; Doing so will expose this configuration file through your web site!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -31,6 +31,10 @@
; The canonical URL to the OMP installation (excluding the trailing slash)
base_url = base_url
+; Enable strict mode. This will more aggressively cause errors/warnings when
+; deprecated behaviour exists in the codebase.
+strict = Off
+
; Session cookie name
session_cookie_name = OMPSID
@@ -41,6 +45,11 @@
; (set to 0 to force expiration at end of current session)
session_lifetime = 30
+; SameSite configuration for the cookie, see possible values and explanations
+; at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
+; To set the "Secure" attribute for the cookie see the setting force_ssl at the [security] group
+session_samesite = Lax
+
; Enable support for running scheduled tasks
; Set this to On if you have set up the scheduled tasks script to
; execute periodically
@@ -53,24 +62,18 @@
scheduled_tasks_report_error_only = On
; Site time zone
-; Please refer to lib/pkp/registry/timeZones.xml for a full list of supported
+; Please refer to https://www.php.net/timezones for a full list of supported
; time zones.
-; I.e.:
-;
-; time_zone="Amsterdam"
+; I.e.: "Europe/Amsterdam"
+; time_zone="Europe/Amsterdam"
time_zone = "UTC"
; Short and long date formats
-date_format_short = "%Y-%m-%d"
-date_format_long = "%B %e, %Y"
-datetime_format_short = "%Y-%m-%d %I:%M %p"
-datetime_format_long = "%B %e, %Y - %I:%M %p"
-time_format = "%I:%M %p"
-
-; Use URL parameters instead of CGI PATH_INFO. This is useful for broken server
-; setups that don't support the PATH_INFO environment variable.
-; WARNING: This option is DEPRECATED and will be removed in the future.
-disable_path_info = Off
+date_format_short = "Y-m-d"
+date_format_long = "F j, Y"
+datetime_format_short = "Y-m-d h:i A"
+datetime_format_long = "F j, Y - h:i A"
+time_format = "h:i A"
; Use fopen(...) for URL-based reads. Modern versions of dspace
; will not accept requests using fopen, as it does not provide a
@@ -80,14 +83,15 @@
; Base URL override settings: Entries like the following examples can
; be used to override the base URLs used by OMP. If you want to use a
-; proxy to rewrite URLs to OMP, configure your proxy's URL here.
-; Syntax: base_url[press_path] = http://www.myUrl.com
-; To override URLs that aren't part of a particular press, use a
-; press_path of "index".
-; Examples:
-; base_url[index] = http://www.myUrl.com
-; base_url[myPress] = http://www.myUrl.com/myPress
-; base_url[myOtherPress] = http://myOtherPress.myUrl.com
+; proxy to rewrite URLs to OMP, configure your proxy's URL with this format.
+; Syntax: base_url[press_path] = http://www.example.com
+;
+; Example1: URLs that aren't part of a particular press.
+; Example1: base_url[index] = http://www.example.com
+; Example2: URLs that map to a subdirectory.
+; Example2: base_url[myPress] = http://www.example.com/myPress
+; Example3: URLs that map to a subdomain.
+; Example3: base_url[myOtherPress] = http://myOtherPress.example.com
; Generate RESTful URLs using mod_rewrite. This requires the
; rewrite directive to be enabled in your .htaccess or httpd.conf.
@@ -101,9 +105,15 @@
; allowed_hosts = '["myjournal.tld", "anotherjournal.tld", "mylibrary.tld"]'
allowed_hosts = ''
+; Restrict the list of allowed hosts to prevent HOST header injection.
+; See docs/README.md for more details. The list should be JSON-formatted.
+; An empty string indicates that all hosts should be trusted (not recommended!)
+; Example:
+; allowed_hosts = '["myjournal.tld", "anotherjournal.tld", "mylibrary.tld"]'
+allowed_hosts = ''
+
; Allow the X_FORWARDED_FOR header to override the REMOTE_ADDR as the source IP
-; Set this to "On" if you are behind a reverse proxy and you control the
-; X_FORWARDED_FOR header.
+; Set this to "On" if you are behind a reverse proxy and you control the X_FORWARDED_FOR
; Warning: This defaults to "On" if unset for backwards compatibility.
trust_x_forwarded_for = Off
@@ -116,6 +126,16 @@
; alert purposes only.
enable_beacon = On
+; The number of days a new user has to validate their account
+; A new user account will be expired and removed if this many days have passed since the user registered
+; their account, and they have not validated their account or logged in. If the user_validation_period is set to
+; 0, unvalidated accounts will never be removed. Use this setting to automatically remove bot registrations.
+user_validation_period = 28
+
+; Turn sandbox mode to On in order to prevent the software from interacting with outside systems.
+; Use this for development or testing purposes.
+sandbox = Off
+
;;;;;;;;;;;;;;;;;;;;;
; Database Settings ;
@@ -182,10 +202,7 @@
[i18n]
; Default locale
-locale = en_US
-
-; Client output/input character set
-client_charset = utf-8
+locale = en
; Database connection character set
connection_charset = utf8
@@ -222,6 +239,7 @@
; a possible revision
filename_revision_match = 70
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Fileinfo (MIME) Settings ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -236,7 +254,8 @@
[security]
-; Force SSL connections site-wide
+; Force SSL connections site-wide and also sets the "Secure" flag for session cookies
+; See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#secure
force_ssl = Off
; Force SSL connections for login only
@@ -259,8 +278,7 @@
; The unique secret used for encoding and decoding API keys
api_key_secret = ""
-; The number of seconds before a password reset hash expires (defaults to
-; 7200 seconds (2 hours)
+; The number of seconds before a password reset hash expires (defaults to 7200 / 2 hours)
reset_seconds = 7200
; Allowed HTML tags for fields that permit restricted HTML.
@@ -269,28 +287,11 @@
; stripped.
allowed_html = "a[href|target|title],em,strong,cite,code,ul,ol,li[class],dl,dt,dd,b,i,u,img[src|alt],sup,sub,br,p"
-;Is implicit authentication enabled or not
-
-;implicit_auth = On
-
-;Implicit Auth Header Variables
-
-;implicit_auth_header_first_name = HTTP_TDL_GIVENNAME
-;implicit_auth_header_last_name = HTTP_TDL_SN
-;implicit_auth_header_email = HTTP_TDL_MAIL
-;implicit_auth_header_phone = HTTP_TDL_TELEPHONENUMBER
-;implicit_auth_header_initials = HTTP_TDL_METADATA_INITIALS
-;implicit_auth_header_mailing_address = HTTP_TDL_METADATA_TDLHOMEPOSTALADDRESS
-;implicit_auth_header_uin = HTTP_TDL_TDLUID
-
-; A space delimited list of uins to make admin
-;implicit_auth_admin_list = "100000040@tdl.org 85B7FA892DAA90F7@utexas.edu 100000012@tdl.org"
-
-; URL of the implicit auth 'Way Finder' page. See pages/login/LoginHandler.inc.php for usage.
-
-;implicit_auth_wayf_url = "/Shibboleth.sso/wayf"
-
+; Allowed HTML tags for submission titles only
+; Unspecified attributes will be stripped.
+allowed_title_html = "b,i,u,sup,sub"
+;N.b.: The implicit_auth parameter has been removed in favor of plugin implementations such as shibboleth
;;;;;;;;;;;;;;;;;;
; Email Settings ;
@@ -298,6 +299,13 @@
[email]
+; Default method to send emails
+; Available options: sendmail, smtp, log, phpmailer
+default = sendmail
+
+; Path to the sendmail, -bs argument is for using SMTP protocol
+sendmail_path = "/usr/sbin/sendmail -bs"
+
; Use SMTP for sending mail instead of mail()
; smtp = On
@@ -327,6 +335,10 @@
; Note: this is not recommended per PHPMailer documentation
; smtp_suppress_cert_check = On
+; Enable suppressing SSL/TLS peer verification by SMTP transports
+; Note: this is not recommended for security reasons
+; smtp_suppress_cert_check = On
+
; Allow envelope sender to be specified
; (may not be possible with some server configurations)
; allow_envelope_sender = Off
@@ -335,7 +347,7 @@
; default_envelope_sender = my_address@my_host.com
; Force the default envelope sender (if present)
-; This is useful if setting up a site-wide noreply address
+; This is useful if setting up a site-wide no-reply address
; The reply-to field will be set with the reply-to or from address.
; force_default_envelope_sender = Off
@@ -356,14 +368,6 @@
; and '%s' to insert the localized sitename.
; dmarc_compliant_from_displayname = '%n via %s'
-; Amount of time required between attempts to send non-editorial emails
-; in seconds. This can be used to help prevent email relaying via OMP.
-time_between_emails = 3600
-
-; Maximum number of recipients that can be included in a single email
-; (either as To:, Cc:, or Bcc: addresses) for a non-priveleged user
-max_recipients = 10
-
; If enabled, email addresses must be validated before login is possible.
require_validation = Off
@@ -417,7 +421,8 @@
; Enable OAI front-end to the site
oai = On
-; OAI Repository identifier
+; OAI Repository identifier. This setting forms part of OAI-PMH record IDs.
+; Changing this setting may affect existing clients and is not recommended.
repository_id = omp.pkp.sfu.ca
@@ -427,10 +432,10 @@
[interface]
-; Number of items to display per page; overridable on a per-press basis
+; Number of items to display per page; can be overridden on a per-press basis
items_per_page = 50
-; Number of page links to display; overridable on a per-press basis
+; Number of page links to display; can be overridden on a per-press basis
page_links = 10
@@ -452,6 +457,9 @@
; Whether or not to use Captcha on user registration
captcha_on_register = on
+; Whether or not to use Captcha on user login
+captcha_on_login = on
+
; Validate the hostname in the ReCaptcha response
recaptcha_enforce_hostname = Off
@@ -527,3 +535,61 @@
; This setting overrides the 'curl.cainfo' parameter of the php.ini configuration file.
[curl]
; cainfo = ""
+
+
+;;;;;;;;;;;;;;;;;;;;;;;
+; Job Queues Settings ;
+;;;;;;;;;;;;;;;;;;;;;;;
+
+[queues]
+
+; Default queue driver
+default_connection = "database"
+
+; Default queue to use when a job is added to the queue
+default_queue = "queue"
+
+; Whether or not to turn on the built-in job runner
+;
+; When enabled, jobs will be processed at the end of each web
+; request to the application.
+;
+; Use of the built-in job runner is highly discouraged for high-volume
+; sites. Instead, a worker daemon or cron job should be configured
+; to process jobs off the application's main thread.
+;
+; See: https://docs.pkp.sfu.ca/admin-guide/en/advanced-jobs
+;
+job_runner = On
+
+; The maximum number of jobs to run in a single request when using
+; the built-in job runner.
+job_runner_max_jobs = 30
+
+; The maximum number of seconds the built-in job runner should spend
+; running jobs in a single request.
+;
+; This should be less than the max_execution_time the server has
+; configured for PHP.
+;
+; Lower this setting if jobs are failing due to timeouts.
+job_runner_max_execution_time = 30
+
+; The maximum consumerable memory that should be spent by the built-in
+; job runner when running jobs.
+;
+; Set as a percentage, such as 80%:
+;
+; job_runner_max_memory = 80
+;
+; Or set as a fixed value in megabytes:
+;
+; job_runner_max_memory = 128M
+;
+; When setting a fixed value in megabytes, this should be less than the
+; memory_limit the server has configured for PHP.
+job_runner_max_memory = 80
+
+; Remove failed jobs from the database after the following number of days.
+; Remove this setting to leave failed jobs in the database.
+delete_failed_jobs_after = 180
diff --git a/controllers/api/file/ManageFileApiHandler.inc.php b/controllers/api/file/ManageFileApiHandler.inc.php
deleted file mode 100644
index e4c0df13a04..00000000000
--- a/controllers/api/file/ManageFileApiHandler.inc.php
+++ /dev/null
@@ -1,120 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT, ROLE_ID_REVIEWER, ROLE_ID_AUTHOR),
- array('identifiers', 'updateIdentifiers', 'clearPubId',)
- );
- }
-
- /**
- * @copydoc PKPManageFileApiHandler::editMetadata
- */
- function editMetadata($args, $request) {
- $submissionFile = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION_FILE);
- if ($submissionFile->getFileStage() == SUBMISSION_FILE_PROOF) {
- $publisherIdEnabled = in_array('file', (array) $request->getContext()->getData('enablePublisherId'));
- $pubIdPlugins = PluginRegistry::getPlugins('pubIds');
- $pubIdEnabled = false;
- foreach ($pubIdPlugins as $pubIdPlugin) {
- if ($pubIdPlugin->isObjectTypeEnabled('SubmissionFile', $request->getContext()->getId())) {
- $pubIdEnabled = true;
- break;
- }
- }
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign('showIdentifierTab', $publisherIdEnabled || $pubIdEnabled);
- }
- return parent::editMetadata($args, $request);
- }
-
- /**
- * Edit proof submission file pub ids.
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function identifiers($args, $request) {
- $submissionFile = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION_FILE);
- $stageId = $request->getUserVar('stageId');
- import('controllers.tab.pubIds.form.PublicIdentifiersForm');
- $form = new PublicIdentifiersForm($submissionFile, $stageId);
- $form->initData();
- return new JSONMessage(true, $form->fetch($request));
- }
-
- /**
- * Update proof submission file pub ids.
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateIdentifiers($args, $request) {
- $submissionFile = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION_FILE);
- $stageId = $request->getUserVar('stageId');
- import('lib.pkp.controllers.tab.pubIds.form.PKPPublicIdentifiersForm');
- $form = new PKPPublicIdentifiersForm($submissionFile, $stageId);
- $form->readInputData();
- if ($form->validate()) {
- $form->execute();
- return DAO::getDataChangedEvent($submissionFile->getId());
- } else {
- return new JSONMessage(true, $form->fetch($request));
- }
- }
-
- /**
- * Clear proof submission file pub id.
- * @param $args array
- * @param $request Request
- * @return JSONMessage JSON object
- */
- function clearPubId($args, $request) {
- $submissionFile = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION_FILE);
- $stageId = $request->getUserVar('stageId');
- import('lib.pkp.controllers.tab.pubIds.form.PKPPublicIdentifiersForm');
- $form = new PKPPublicIdentifiersForm($submissionFile, $stageId);
- $form->clearPubId($request->getUserVar('pubIdPlugIn'));
- return new JSONMessage(true);
- }
-
-
- //
- // Subclassed methods
- //
-
- /**
- * Get the list of notifications to be updated on metadata form submission.
- * @return array
- */
- protected function getUpdateNotifications() {
- $updateNotifications = parent::getUpdateNotifications();
- $updateNotifications[] = NOTIFICATION_TYPE_PENDING_INTERNAL_REVISIONS;
- return $updateNotifications;
- }
-}
-
-
diff --git a/controllers/api/file/ManageFileApiHandler.php b/controllers/api/file/ManageFileApiHandler.php
new file mode 100644
index 00000000000..98ab5a1257a
--- /dev/null
+++ b/controllers/api/file/ManageFileApiHandler.php
@@ -0,0 +1,140 @@
+addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_ASSISTANT, Role::ROLE_ID_REVIEWER, Role::ROLE_ID_AUTHOR],
+ ['identifiers', 'updateIdentifiers', 'clearPubId',]
+ );
+ }
+
+ /**
+ * @copydoc PKPManageFileApiHandler::editMetadata
+ */
+ public function editMetadata($args, $request)
+ {
+ $submissionFile = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION_FILE);
+ if ($submissionFile->getFileStage() == SubmissionFile::SUBMISSION_FILE_PROOF) {
+ $publisherIdEnabled = in_array('file', (array) $request->getContext()->getData('enablePublisherId'));
+ $pubIdPlugins = PluginRegistry::getPlugins('pubIds');
+ $pubIdEnabled = false;
+ foreach ($pubIdPlugins as $pubIdPlugin) {
+ if ($pubIdPlugin->isObjectTypeEnabled('SubmissionFile', $request->getContext()->getId())) {
+ $pubIdEnabled = true;
+ break;
+ }
+ }
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->assign('showIdentifierTab', $publisherIdEnabled || $pubIdEnabled);
+ }
+ return parent::editMetadata($args, $request);
+ }
+
+ /**
+ * Edit proof submission file pub ids.
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function identifiers($args, $request)
+ {
+ $submissionFile = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION_FILE);
+ $stageId = $request->getUserVar('stageId');
+ $form = new PublicIdentifiersForm($submissionFile, $stageId);
+ $form->initData();
+ return new JSONMessage(true, $form->fetch($request));
+ }
+
+ /**
+ * Update proof submission file pub ids.
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateIdentifiers($args, $request)
+ {
+ $submissionFile = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION_FILE);
+ $stageId = $request->getUserVar('stageId');
+ $form = new PKPPublicIdentifiersForm($submissionFile, $stageId);
+ $form->readInputData();
+ if ($form->validate()) {
+ $form->execute();
+ return DAO::getDataChangedEvent($submissionFile->getId());
+ } else {
+ return new JSONMessage(true, $form->fetch($request));
+ }
+ }
+
+ /**
+ * Clear proof submission file pub id.
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function clearPubId($args, $request)
+ {
+ $submissionFile = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION_FILE);
+ $stageId = $request->getUserVar('stageId');
+ $form = new PKPPublicIdentifiersForm($submissionFile, $stageId);
+ $form->clearPubId($request->getUserVar('pubIdPlugIn'));
+ return new JSONMessage(true);
+ }
+
+
+ //
+ // Subclassed methods
+ //
+
+ /**
+ * Get the list of notifications to be updated on metadata form submission.
+ *
+ * @return array
+ */
+ protected function getUpdateNotifications()
+ {
+ $updateNotifications = parent::getUpdateNotifications();
+ $updateNotifications[] = Notification::NOTIFICATION_TYPE_PENDING_INTERNAL_REVISIONS;
+ return $updateNotifications;
+ }
+}
diff --git a/controllers/grid/catalogEntry/IdentificationCodeGridCellProvider.inc.php b/controllers/grid/catalogEntry/IdentificationCodeGridCellProvider.inc.php
deleted file mode 100644
index 01accc65c4d..00000000000
--- a/controllers/grid/catalogEntry/IdentificationCodeGridCellProvider.inc.php
+++ /dev/null
@@ -1,49 +0,0 @@
-getData();
- $columnId = $column->getId();
- assert(is_a($element, 'DataObject') && !empty($columnId));
- switch ($columnId) {
- case 'code':
- return array('label' => $element->getNameForONIXCode());
- case 'value':
- return array('label' => $element->getValue());
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/IdentificationCodeGridCellProvider.php b/controllers/grid/catalogEntry/IdentificationCodeGridCellProvider.php
new file mode 100644
index 00000000000..3c14c53cbcc
--- /dev/null
+++ b/controllers/grid/catalogEntry/IdentificationCodeGridCellProvider.php
@@ -0,0 +1,51 @@
+getData();
+ $columnId = $column->getId();
+ assert($element instanceof \PKP\core\DataObject && !empty($columnId));
+ /** @var IdentificationCode $element */
+ switch ($columnId) {
+ case 'code':
+ return ['label' => $element->getNameForONIXCode()];
+ case 'value':
+ return ['label' => $element->getValue()];
+ }
+ }
+}
diff --git a/controllers/grid/catalogEntry/IdentificationCodeGridHandler.inc.php b/controllers/grid/catalogEntry/IdentificationCodeGridHandler.inc.php
deleted file mode 100644
index c8dbf52d74c..00000000000
--- a/controllers/grid/catalogEntry/IdentificationCodeGridHandler.inc.php
+++ /dev/null
@@ -1,350 +0,0 @@
-addRoleAssignment(
- [ROLE_ID_MANAGER],
- ['fetchGrid', 'fetchRow', 'addCode', 'editCode', 'updateCode', 'deleteCode']
- );
- }
-
-
- //
- // Getters/Setters
- //
- /**
- * Get the submission associated with this grid.
- * @return Submission
- */
- function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Set the Submission
- * @param Submission
- */
- function setSubmission($submission) {
- $this->_submission = $submission;
- }
-
- /**
- * Get the publication associated with this grid.
- * @return Publication
- */
- function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the Publication
- * @param Publication
- */
- function setPublication($publication) {
- $this->_publication = $publication;
- }
-
- /**
- * Get the publication format assocated with these identification codes
- * @return PublicationFormat
- */
- function getPublicationFormat() {
- return $this->_publicationFormat;
- }
-
- /**
- * Set the publication format
- * @param PublicationFormat
- */
- function setPublicationFormat($publicationFormat) {
- $this->_publicationFormat = $publicationFormat;
- }
-
- //
- // Overridden methods from PKPHandler
- //
- /**
- * @see PKPHandler::authorize()
- * @param $request PKPRequest
- * @param $args array
- * @param $roleAssignments array
- */
- function authorize($request, &$args, $roleAssignments) {
- import('lib.pkp.classes.security.authorization.PublicationAccessPolicy');
- $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
- return parent::authorize($request, $args, $roleAssignments);
- }
-
- /**
- * @copydoc GridHandler::initialize()
- */
- function initialize($request, $args = null) {
- parent::initialize($request, $args);
-
- // Retrieve the authorized submission.
- $this->setSubmission($this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION));
- $this->setPublication($this->getAuthorizedContextObject(ASSOC_TYPE_PUBLICATION));
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $representationId = null;
-
- // Retrieve the associated publication format for this grid.
- $identificationCodeId = (int) $request->getUserVar('identificationCodeId'); // set if editing or deleting a code
-
- if ($identificationCodeId) {
- $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /* @var $identificationCodeDao IdentificationCodeDAO */
- $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
- if ($identificationCode) {
- $representationId = $identificationCode->getPublicationFormatId();
- }
- } else { // empty form for new Code
- $representationId = (int) $request->getUserVar('representationId');
- }
-
- $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
-
- if ($publicationFormat) {
- $this->setPublicationFormat($publicationFormat);
- } else {
- fatalError('The publication format is not assigned to authorized submission!');
- }
-
- // Load submission-specific translations
- AppLocale::requireComponents(
- LOCALE_COMPONENT_APP_SUBMISSION,
- LOCALE_COMPONENT_PKP_SUBMISSION,
- LOCALE_COMPONENT_PKP_USER,
- LOCALE_COMPONENT_APP_DEFAULT,
- LOCALE_COMPONENT_PKP_DEFAULT
- );
-
- // Basic grid configuration
- $this->setTitle('monograph.publicationFormat.productIdentifierType');
-
- // Grid actions
- $router = $request->getRouter();
- $actionArgs = $this->getRequestArgs();
- $this->addAction(
- new LinkAction(
- 'addCode',
- new AjaxModal(
- $router->url($request, null, null, 'addCode', null, $actionArgs),
- __('grid.action.addCode'),
- 'modal_add_item'
- ),
- __('grid.action.addCode'),
- 'add_item'
- )
- );
-
- // Columns
- $cellProvider = new IdentificationCodeGridCellProvider();
- $this->addColumn(
- new GridColumn(
- 'value',
- 'grid.catalogEntry.identificationCodeValue',
- null,
- null,
- $cellProvider,
- array('width' => 50, 'alignment' => COLUMN_ALIGNMENT_LEFT)
- )
- );
- $this->addColumn(
- new GridColumn(
- 'code',
- 'grid.catalogEntry.identificationCodeType',
- null,
- null,
- $cellProvider
- )
- );
- }
-
-
- //
- // Overridden methods from GridHandler
- //
- /**
- * @see GridHandler::getRowInstance()
- * @return IdentificationCodeGridRow
- */
- function getRowInstance() {
- return new IdentificationCodeGridRow($this->getSubmission(), $this->getPublication());
- }
-
- /**
- * Get the arguments that will identify the data in the grid
- * In this case, the submission.
- * @return array
- */
- function getRequestArgs() {
- return [
- 'submissionId' => $this->getSubmission()->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- 'representationId' => $this->getPublicationFormat()->getId()
- ];
- }
-
- /**
- * @see GridHandler::loadData
- */
- function loadData($request, $filter = null) {
- $publicationFormat = $this->getPublicationFormat();
- $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /* @var $identificationCodeDao IdentificationCodeDAO */
- $data = $identificationCodeDao->getByPublicationFormatId($publicationFormat->getId());
- return $data->toArray();
- }
-
-
- //
- // Public Identification Code Grid Actions
- //
- /**
- * Edit a new (empty) code
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function addCode($args, $request) {
- return $this->editCode($args, $request);
- }
-
- /**
- * Edit a code
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editCode($args, $request) {
- // Identify the code to be updated
- $identificationCodeId = (int) $request->getUserVar('identificationCodeId');
- $submission = $this->getSubmission();
-
- $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /* @var $identificationCodeDao IdentificationCodeDAO */
- $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.IdentificationCodeForm');
- $identificationCodeForm = new IdentificationCodeForm($submission, $this->getPublication(), $identificationCode);
- $identificationCodeForm->initData();
-
- return new JSONMessage(true, $identificationCodeForm->fetch($request));
- }
-
- /**
- * Update a code
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateCode($args, $request) {
- // Identify the code to be updated
- $identificationCodeId = $request->getUserVar('identificationCodeId');
- $submission = $this->getSubmission();
-
- $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /* @var $identificationCodeDao IdentificationCodeDAO */
- $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.IdentificationCodeForm');
- $identificationCodeForm = new IdentificationCodeForm($submission, $this->getPublication(), $identificationCode);
- $identificationCodeForm->readInputData();
- if ($identificationCodeForm->validate()) {
- $identificationCodeId = $identificationCodeForm->execute();
-
- if(!isset($identificationCode)) {
- // This is a new code
- $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
- // New added code action notification content.
- $notificationContent = __('notification.addedIdentificationCode');
- } else {
- // code edit action notification content.
- $notificationContent = __('notification.editedIdentificationCode');
- }
-
- // Create trivial notification.
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => $notificationContent));
-
- // Prepare the grid row data
- $row = $this->getRowInstance();
- $row->setGridId($this->getId());
- $row->setId($identificationCodeId);
- $row->setData($identificationCode);
- $row->initialize($request);
-
- // Render the row into a JSON response
- return DAO::getDataChangedEvent();
-
- } else {
- return new JSONMessage(true, $identificationCodeForm->fetch($request));
- }
- }
-
- /**
- * Delete a code
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deleteCode($args, $request) {
-
- // Identify the code to be deleted
- $identificationCodeId = $request->getUserVar('identificationCodeId');
-
- $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /* @var $identificationCodeDao IdentificationCodeDAO */
- $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
- if ($identificationCode != null) { // authorized
-
- $result = $identificationCodeDao->deleteObject($identificationCode);
-
- if ($result) {
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.removedIdentificationCode')));
- return DAO::getDataChangedEvent();
- } else {
- return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
- }
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/IdentificationCodeGridHandler.php b/controllers/grid/catalogEntry/IdentificationCodeGridHandler.php
new file mode 100644
index 00000000000..c7b0e4644f2
--- /dev/null
+++ b/controllers/grid/catalogEntry/IdentificationCodeGridHandler.php
@@ -0,0 +1,383 @@
+addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN],
+ ['fetchGrid', 'fetchRow', 'addCode', 'editCode', 'updateCode', 'deleteCode']
+ );
+ }
+
+
+ //
+ // Getters/Setters
+ //
+ /**
+ * Get the submission associated with this grid.
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Set the Submission
+ *
+ * @param Submission
+ */
+ public function setSubmission($submission)
+ {
+ $this->_submission = $submission;
+ }
+
+ /**
+ * Get the publication associated with this grid.
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the Publication
+ *
+ * @param Publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+ /**
+ * Get the publication format associated with these identification codes
+ *
+ * @return PublicationFormat
+ */
+ public function getPublicationFormat()
+ {
+ return $this->_publicationFormat;
+ }
+
+ /**
+ * Set the publication format
+ *
+ * @param PublicationFormat
+ */
+ public function setPublicationFormat($publicationFormat)
+ {
+ $this->_publicationFormat = $publicationFormat;
+ }
+
+ //
+ // Overridden methods from PKPHandler
+ //
+ /**
+ * @see PKPHandler::authorize()
+ *
+ * @param Request $request
+ * @param array $args
+ * @param array $roleAssignments
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+
+ /**
+ * @copydoc GridHandler::initialize()
+ *
+ * @param null|mixed $args
+ */
+ public function initialize($request, $args = null)
+ {
+ parent::initialize($request, $args);
+
+ // Retrieve the authorized submission.
+ $this->setSubmission($this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION));
+ $this->setPublication($this->getAuthorizedContextObject(Application::ASSOC_TYPE_PUBLICATION));
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $representationId = null;
+
+ // Retrieve the associated publication format for this grid.
+ $identificationCodeId = (int) $request->getUserVar('identificationCodeId'); // set if editing or deleting a code
+
+ if ($identificationCodeId) {
+ $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /** @var IdentificationCodeDAO $identificationCodeDao */
+ $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
+ if ($identificationCode) {
+ $representationId = $identificationCode->getPublicationFormatId();
+ }
+ } else { // empty form for new Code
+ $representationId = (int) $request->getUserVar('representationId');
+ }
+
+ $publicationFormat = $representationId
+ ? $publicationFormatDao->getById((int) $representationId, $this->getPublication()->getId())
+ : null;
+
+ if ($publicationFormat) {
+ $this->setPublicationFormat($publicationFormat);
+ } else {
+ throw new Exception('The publication format is not assigned to authorized submission!');
+ }
+
+ // Basic grid configuration
+ $this->setTitle('monograph.publicationFormat.productIdentifierType');
+
+ // Grid actions
+ $router = $request->getRouter();
+ $actionArgs = $this->getRequestArgs();
+ $this->addAction(
+ new LinkAction(
+ 'addCode',
+ new AjaxModal(
+ $router->url($request, null, null, 'addCode', null, $actionArgs),
+ __('grid.action.addCode'),
+ 'modal_add_item'
+ ),
+ __('grid.action.addCode'),
+ 'add_item'
+ )
+ );
+
+ // Columns
+ $cellProvider = new IdentificationCodeGridCellProvider();
+ $this->addColumn(
+ new GridColumn(
+ 'value',
+ 'grid.catalogEntry.identificationCodeValue',
+ null,
+ null,
+ $cellProvider,
+ ['width' => 50, 'alignment' => GridColumn::COLUMN_ALIGNMENT_LEFT]
+ )
+ );
+ $this->addColumn(
+ new GridColumn(
+ 'code',
+ 'grid.catalogEntry.identificationCodeType',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ }
+
+
+ //
+ // Overridden methods from GridHandler
+ //
+ /**
+ * @see GridHandler::getRowInstance()
+ *
+ * @return IdentificationCodeGridRow
+ */
+ public function getRowInstance()
+ {
+ return new IdentificationCodeGridRow($this->getSubmission(), $this->getPublication());
+ }
+
+ /**
+ * Get the arguments that will identify the data in the grid
+ * In this case, the submission.
+ *
+ * @return array
+ */
+ public function getRequestArgs()
+ {
+ return [
+ 'submissionId' => $this->getSubmission()->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ 'representationId' => $this->getPublicationFormat()->getId()
+ ];
+ }
+
+ /**
+ * @see GridHandler::loadData
+ *
+ * @param null|mixed $filter
+ */
+ public function loadData($request, $filter = null)
+ {
+ $publicationFormat = $this->getPublicationFormat();
+ $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /** @var IdentificationCodeDAO $identificationCodeDao */
+ $data = $identificationCodeDao->getByPublicationFormatId($publicationFormat->getId());
+ return $data->toArray();
+ }
+
+
+ //
+ // Public Identification Code Grid Actions
+ //
+ /**
+ * Edit a new (empty) code
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function addCode($args, $request)
+ {
+ return $this->editCode($args, $request);
+ }
+
+ /**
+ * Edit a code
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editCode($args, $request)
+ {
+ // Identify the code to be updated
+ $identificationCodeId = (int) $request->getUserVar('identificationCodeId');
+ $submission = $this->getSubmission();
+
+ $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /** @var IdentificationCodeDAO $identificationCodeDao */
+ $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
+
+ // Form handling
+ $identificationCodeForm = new IdentificationCodeForm($submission, $this->getPublication(), $identificationCode);
+ $identificationCodeForm->initData();
+
+ return new JSONMessage(true, $identificationCodeForm->fetch($request));
+ }
+
+ /**
+ * Update a code
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateCode($args, $request)
+ {
+ // Identify the code to be updated
+ $identificationCodeId = $request->getUserVar('identificationCodeId');
+ $submission = $this->getSubmission();
+
+ $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /** @var IdentificationCodeDAO $identificationCodeDao */
+ $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
+
+ // Form handling
+ $identificationCodeForm = new IdentificationCodeForm($submission, $this->getPublication(), $identificationCode);
+ $identificationCodeForm->readInputData();
+ if ($identificationCodeForm->validate()) {
+ $identificationCodeId = $identificationCodeForm->execute();
+
+ if (!isset($identificationCode)) {
+ // This is a new code
+ $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
+ // New added code action notification content.
+ $notificationContent = __('notification.addedIdentificationCode');
+ } else {
+ // code edit action notification content.
+ $notificationContent = __('notification.editedIdentificationCode');
+ }
+
+ // Create trivial notification.
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => $notificationContent]);
+
+ // Prepare the grid row data
+ $row = $this->getRowInstance();
+ $row->setGridId($this->getId());
+ $row->setId($identificationCodeId);
+ $row->setData($identificationCode);
+ $row->initialize($request);
+
+ // Render the row into a JSON response
+ return DAO::getDataChangedEvent();
+ } else {
+ return new JSONMessage(true, $identificationCodeForm->fetch($request));
+ }
+ }
+
+ /**
+ * Delete a code
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deleteCode($args, $request)
+ {
+ // Identify the code to be deleted
+ $identificationCodeId = $request->getUserVar('identificationCodeId');
+
+ $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /** @var IdentificationCodeDAO $identificationCodeDao */
+ $identificationCode = $identificationCodeDao->getById($identificationCodeId, $this->getPublication()->getId());
+ if (!$identificationCode) {
+ return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
+ }
+
+ $identificationCodeDao->deleteObject($identificationCode);
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => __('notification.removedIdentificationCode')]);
+ return DAO::getDataChangedEvent();
+ }
+}
diff --git a/controllers/grid/catalogEntry/IdentificationCodeGridRow.inc.php b/controllers/grid/catalogEntry/IdentificationCodeGridRow.inc.php
deleted file mode 100644
index 6efe2885580..00000000000
--- a/controllers/grid/catalogEntry/IdentificationCodeGridRow.inc.php
+++ /dev/null
@@ -1,97 +0,0 @@
-_monograph = $monograph;
- $this->_publication = $publication;
- parent::__construct();
- }
-
- //
- // Overridden methods from GridRow
- //
- /**
- * @copydoc GridRow::initialize()
- */
- function initialize($request, $template = null) {
- // Do the default initialization
- parent::initialize($request, $template);
-
- $monograph = $this->getMonograph();
-
- // Is this a new row or an existing row?
- $identificationCode = $this->_data;
-
- if ($identificationCode != null && is_numeric($identificationCode->getId())) {
- $router = $request->getRouter();
- $actionArgs = [
- 'submissionId' => $monograph->getId(),
- 'publicationId' => $this->_publication->getId(),
- 'identificationCodeId' => $identificationCode->getId()
- ];
-
- // Add row-level actions
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'editCode',
- new AjaxModal(
- $router->url($request, null, null, 'editCode', null, $actionArgs),
- __('grid.action.edit'),
- 'modal_edit'
- ),
- __('grid.action.edit'),
- 'edit'
- )
- );
-
- import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
- $this->addAction(
- new LinkAction(
- 'deleteCode',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('common.confirmDelete'),
- __('common.delete'),
- $router->url($request, null, null, 'deleteCode', null, $actionArgs),
- 'modal_delete'
- ),
- __('grid.action.delete'),
- 'delete'
- )
- );
- }
- }
-
- /**
- * Get the monograph for this row (already authorized)
- * @return Monograph
- */
- function getMonograph() {
- return $this->_monograph;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/IdentificationCodeGridRow.php b/controllers/grid/catalogEntry/IdentificationCodeGridRow.php
new file mode 100644
index 00000000000..3444e0d8a5f
--- /dev/null
+++ b/controllers/grid/catalogEntry/IdentificationCodeGridRow.php
@@ -0,0 +1,109 @@
+_monograph = $monograph;
+ $this->_publication = $publication;
+ parent::__construct();
+ }
+
+ //
+ // Overridden methods from GridRow
+ //
+ /**
+ * @copydoc GridRow::initialize()
+ *
+ * @param null|mixed $template
+ */
+ public function initialize($request, $template = null)
+ {
+ // Do the default initialization
+ parent::initialize($request, $template);
+
+ $monograph = $this->getMonograph();
+
+ // Is this a new row or an existing row?
+ $identificationCode = $this->_data;
+
+ if ($identificationCode != null && is_numeric($identificationCode->getId())) {
+ $router = $request->getRouter();
+ $actionArgs = [
+ 'submissionId' => $monograph->getId(),
+ 'publicationId' => $this->_publication->getId(),
+ 'identificationCodeId' => $identificationCode->getId()
+ ];
+
+ // Add row-level actions
+ $this->addAction(
+ new LinkAction(
+ 'editCode',
+ new AjaxModal(
+ $router->url($request, null, null, 'editCode', null, $actionArgs),
+ __('grid.action.edit'),
+ 'modal_edit'
+ ),
+ __('grid.action.edit'),
+ 'edit'
+ )
+ );
+
+ $this->addAction(
+ new LinkAction(
+ 'deleteCode',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('common.confirmDelete'),
+ __('common.delete'),
+ $router->url($request, null, null, 'deleteCode', null, $actionArgs),
+ 'modal_delete'
+ ),
+ __('grid.action.delete'),
+ 'delete'
+ )
+ );
+ }
+ }
+
+ /**
+ * Get the monograph for this row (already authorized)
+ *
+ * @return Submission
+ */
+ public function getMonograph()
+ {
+ return $this->_monograph;
+ }
+}
diff --git a/controllers/grid/catalogEntry/MarketsGridCellProvider.inc.php b/controllers/grid/catalogEntry/MarketsGridCellProvider.inc.php
deleted file mode 100644
index c3a767b3c21..00000000000
--- a/controllers/grid/catalogEntry/MarketsGridCellProvider.inc.php
+++ /dev/null
@@ -1,51 +0,0 @@
-getData();
- $columnId = $column->getId();
- assert(is_a($element, 'DataObject') && !empty($columnId));
- switch ($columnId) {
- case 'territory':
- return array('label' => $element->getTerritoriesAsString());
- case 'rep':
- return array('label' => $element->getAssignedRepresentativeNames());
- case 'price':
- return array('label' => $element->getPrice() . $element->getCurrencyCode());
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/MarketsGridCellProvider.php b/controllers/grid/catalogEntry/MarketsGridCellProvider.php
new file mode 100644
index 00000000000..e656b357f3e
--- /dev/null
+++ b/controllers/grid/catalogEntry/MarketsGridCellProvider.php
@@ -0,0 +1,53 @@
+getData();
+ $columnId = $column->getId();
+ assert(is_a($element, 'DataObject') && !empty($columnId));
+ /** @var Market $element */
+ switch ($columnId) {
+ case 'territory':
+ return ['label' => $element->getTerritoriesAsString()];
+ case 'rep':
+ return ['label' => $element->getAssignedRepresentativeNames()];
+ case 'price':
+ return ['label' => $element->getPrice() . $element->getCurrencyCode()];
+ }
+ }
+}
diff --git a/controllers/grid/catalogEntry/MarketsGridHandler.inc.php b/controllers/grid/catalogEntry/MarketsGridHandler.inc.php
deleted file mode 100644
index 5a54239e107..00000000000
--- a/controllers/grid/catalogEntry/MarketsGridHandler.inc.php
+++ /dev/null
@@ -1,357 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_MANAGER),
- array('fetchGrid', 'fetchRow', 'addMarket', 'editMarket',
- 'updateMarket', 'deleteMarket'));
- }
-
-
- //
- // Getters/Setters
- //
- /**
- * Get the submission associated with this grid.
- * @return Submission
- */
- function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Set the Submission
- * @param Submission
- */
- function setSubmission($submission) {
- $this->_submission = $submission;
- }
-
- /**
- * Get the Publication associated with this grid.
- * @return Publication
- */
- function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the Publication
- * @param Publication
- */
- function setPublication($publication) {
- $this->_publication = $publication;
- }
-
- /**
- * Get the publication format assocated with these markets
- * @return PublicationFormat
- */
- function getPublicationFormat() {
- return $this->_publicationFormat;
- }
-
- /**
- * Set the publication format
- * @param PublicationFormat
- */
- function setPublicationFormat($publicationFormat) {
- $this->_publicationFormat = $publicationFormat;
- }
-
- //
- // Overridden methods from PKPHandler
- //
- /**
- * @see PKPHandler::authorize()
- * @param $request PKPRequest
- * @param $args array
- * @param $roleAssignments array
- */
- function authorize($request, &$args, $roleAssignments) {
- import('lib.pkp.classes.security.authorization.PublicationAccessPolicy');
- $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
- return parent::authorize($request, $args, $roleAssignments);
- }
-
- /**
- * @copydoc GridHandler::initialize()
- */
- function initialize($request, $args = null) {
- parent::initialize($request, $args);
-
- // Retrieve the authorized submission.
- $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
- $this->setPublication($this->getAuthorizedContextObject(ASSOC_TYPE_PUBLICATION));
- $this->setSubmission($submission);
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $representationId = null;
-
- // Retrieve the associated publication format for this grid.
- $marketId = (int) $request->getUserVar('marketId'); // set if editing or deleting a market entry
-
- if ($marketId) {
- $marketDao = DAORegistry::getDAO('MarketDAO'); /* @var $marketDao MarketDAO */
- $market = $marketDao->getById($marketId, $this->getPublication()->getId());
- if ($market) {
- $representationId = $market->getPublicationFormatId();
- }
- } else { // empty form for new Market
- $representationId = (int) $request->getUserVar('representationId');
- }
-
- $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
-
- if ($publicationFormat) {
- $this->setPublicationFormat($publicationFormat);
- } else {
- fatalError('The publication format is not assigned to authorized submission!');
- }
-
- // Load submission-specific translations
- AppLocale::requireComponents(
- LOCALE_COMPONENT_APP_SUBMISSION,
- LOCALE_COMPONENT_PKP_SUBMISSION,
- LOCALE_COMPONENT_PKP_USER,
- LOCALE_COMPONENT_APP_DEFAULT,
- LOCALE_COMPONENT_PKP_DEFAULT
- );
-
- // Basic grid configuration
- $this->setTitle('grid.catalogEntry.markets');
-
- // Grid actions
- $router = $request->getRouter();
- $actionArgs = $this->getRequestArgs();
- $this->addAction(
- new LinkAction(
- 'addMarket',
- new AjaxModal(
- $router->url($request, null, null, 'addMarket', null, $actionArgs),
- __('grid.action.addMarket'),
- 'modal_add_item'
- ),
- __('grid.action.addMarket'),
- 'add_item'
- )
- );
-
- // Columns
- $cellProvider = new MarketsGridCellProvider();
- $this->addColumn(
- new GridColumn(
- 'territory',
- 'grid.catalogEntry.marketTerritory',
- null,
- null,
- $cellProvider
- )
- );
- $this->addColumn(
- new GridColumn(
- 'rep',
- 'grid.catalogEntry.representatives',
- null,
- null,
- $cellProvider
- )
- );
- $this->addColumn(
- new GridColumn(
- 'price',
- 'monograph.publicationFormat.price',
- null,
- null,
- $cellProvider
- )
- );
- }
-
-
- //
- // Overridden methods from GridHandler
- //
- /**
- * @see GridHandler::getRowInstance()
- * @return MarketsGridRow
- */
- function getRowInstance() {
- return new MarketsGridRow($this->getSubmission(), $this->getPublication());
- }
-
- /**
- * Get the arguments that will identify the data in the grid
- * In this case, the submission.
- * @return array
- */
- function getRequestArgs() {
- return [
- 'submissionId' => $this->getSubmission()->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- 'representationId' => $this->getPublicationFormat()->getId()
- ];
- }
-
- /**
- * @copydoc GridHandler::loadData
- */
- function loadData($request, $filter = null) {
- $publicationFormat = $this->getPublicationFormat();
- $marketDao = DAORegistry::getDAO('MarketDAO'); /* @var $marketDao MarketDAO */
- $data = $marketDao->getByPublicationFormatId($publicationFormat->getId());
- return $data->toArray();
- }
-
-
- //
- // Public Market Grid Actions
- //
- /**
- * Add a new market
- * @param $args array
- * @param $request PKPRequest
- */
- function addMarket($args, $request) {
- return $this->editMarket($args, $request);
- }
-
- /**
- * Edit a markets entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editMarket($args, $request) {
- // Identify the market entry to be updated
- $marketId = (int) $request->getUserVar('marketId');
- $submission = $this->getSubmission();
-
- $marketDao = DAORegistry::getDAO('MarketDAO'); /* @var $marketDao MarketDAO */
- $market = $marketDao->getById($marketId, $this->getPublication()->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.MarketForm');
- $marketForm = new MarketForm($submission, $this->getPublication(), $market);
- $marketForm->initData();
-
- return new JSONMessage(true, $marketForm->fetch($request));
- }
-
- /**
- * Update a markets entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateMarket($args, $request) {
- // Identify the market entry to be updated
- $marketId = $request->getUserVar('marketId');
- $submission = $this->getSubmission();
-
- $marketDao = DAORegistry::getDAO('MarketDAO'); /* @var $marketDao MarketDAO */
- $market = $marketDao->getById($marketId, $this->getPublication()->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.MarketForm');
- $marketForm = new MarketForm($submission, $this->getPublication(), $market);
- $marketForm->readInputData();
- if ($marketForm->validate()) {
- $marketId = $marketForm->execute();
-
- if(!isset($market)) {
- // This is a new entry
- $market = $marketDao->getById($marketId, $this->getPublication()->getId());
- // New added entry action notification content.
- $notificationContent = __('notification.addedMarket');
- } else {
- // entry edit action notification content.
- $notificationContent = __('notification.editedMarket');
- }
-
- // Create trivial notification.
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => $notificationContent));
-
- // Prepare the grid row data
- $row = $this->getRowInstance();
- $row->setGridId($this->getId());
- $row->setId($marketId);
- $row->setData($market);
- $row->initialize($request);
-
- // Render the row into a JSON response
- return DAO::getDataChangedEvent();
-
- } else {
- return new JSONMessage(true, $marketForm->fetch($request));
- }
- }
-
- /**
- * Delete a market entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deleteMarket($args, $request) {
-
- // Identify the markets entry to be deleted
- $marketId = $request->getUserVar('marketId');
-
- $marketDao = DAORegistry::getDAO('MarketDAO'); /* @var $marketDao MarketDAO */
- $market = $marketDao->getById($marketId, $this->getPublication()->getId());
- if ($market != null) { // authorized
-
- $result = $marketDao->deleteObject($market);
-
- if ($result) {
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.removedMarket')));
- return DAO::getDataChangedEvent();
- } else {
- return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
- }
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/MarketsGridHandler.php b/controllers/grid/catalogEntry/MarketsGridHandler.php
new file mode 100644
index 00000000000..e41c6fadf5c
--- /dev/null
+++ b/controllers/grid/catalogEntry/MarketsGridHandler.php
@@ -0,0 +1,391 @@
+addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN],
+ ['fetchGrid', 'fetchRow', 'addMarket', 'editMarket',
+ 'updateMarket', 'deleteMarket']
+ );
+ }
+
+
+ //
+ // Getters/Setters
+ //
+ /**
+ * Get the submission associated with this grid.
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Set the Submission
+ *
+ * @param Submission
+ */
+ public function setSubmission($submission)
+ {
+ $this->_submission = $submission;
+ }
+
+ /**
+ * Get the Publication associated with this grid.
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the Publication
+ *
+ * @param Publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+ /**
+ * Get the publication format associated with these markets
+ *
+ * @return PublicationFormat
+ */
+ public function getPublicationFormat()
+ {
+ return $this->_publicationFormat;
+ }
+
+ /**
+ * Set the publication format
+ *
+ * @param PublicationFormat
+ */
+ public function setPublicationFormat($publicationFormat)
+ {
+ $this->_publicationFormat = $publicationFormat;
+ }
+
+ //
+ // Overridden methods from PKPHandler
+ //
+ /**
+ * @see PKPHandler::authorize()
+ *
+ * @param Request $request
+ * @param array $args
+ * @param array $roleAssignments
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+
+ /**
+ * @copydoc GridHandler::initialize()
+ *
+ * @param null|mixed $args
+ */
+ public function initialize($request, $args = null)
+ {
+ parent::initialize($request, $args);
+
+ // Retrieve the authorized submission.
+ $submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION);
+ $this->setPublication($this->getAuthorizedContextObject(Application::ASSOC_TYPE_PUBLICATION));
+ $this->setSubmission($submission);
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $representationId = null;
+
+ // Retrieve the associated publication format for this grid.
+ $marketId = (int) $request->getUserVar('marketId'); // set if editing or deleting a market entry
+
+ if ($marketId) {
+ $marketDao = DAORegistry::getDAO('MarketDAO'); /** @var MarketDAO $marketDao */
+ $market = $marketDao->getById($marketId, $this->getPublication()->getId());
+ if ($market) {
+ $representationId = $market->getPublicationFormatId();
+ }
+ } else { // empty form for new Market
+ $representationId = (int) $request->getUserVar('representationId');
+ }
+
+ $publicationFormat = $representationId
+ ? $publicationFormatDao->getById((int) $representationId, $this->getPublication()->getId())
+ : null;
+
+ if ($publicationFormat) {
+ $this->setPublicationFormat($publicationFormat);
+ } else {
+ throw new Exception('The publication format is not assigned to authorized submission!');
+ }
+
+ // Basic grid configuration
+ $this->setTitle('grid.catalogEntry.markets');
+
+ // Grid actions
+ $router = $request->getRouter();
+ $actionArgs = $this->getRequestArgs();
+ $this->addAction(
+ new LinkAction(
+ 'addMarket',
+ new AjaxModal(
+ $router->url($request, null, null, 'addMarket', null, $actionArgs),
+ __('grid.action.addMarket'),
+ 'modal_add_item'
+ ),
+ __('grid.action.addMarket'),
+ 'add_item'
+ )
+ );
+
+ // Columns
+ $cellProvider = new MarketsGridCellProvider();
+ $this->addColumn(
+ new GridColumn(
+ 'territory',
+ 'grid.catalogEntry.marketTerritory',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ $this->addColumn(
+ new GridColumn(
+ 'rep',
+ 'grid.catalogEntry.representatives',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ $this->addColumn(
+ new GridColumn(
+ 'price',
+ 'monograph.publicationFormat.price',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ }
+
+
+ //
+ // Overridden methods from GridHandler
+ //
+ /**
+ * @see GridHandler::getRowInstance()
+ *
+ * @return MarketsGridRow
+ */
+ public function getRowInstance()
+ {
+ return new MarketsGridRow($this->getSubmission(), $this->getPublication());
+ }
+
+ /**
+ * Get the arguments that will identify the data in the grid
+ * In this case, the submission.
+ *
+ * @return array
+ */
+ public function getRequestArgs()
+ {
+ return [
+ 'submissionId' => $this->getSubmission()->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ 'representationId' => $this->getPublicationFormat()->getId()
+ ];
+ }
+
+ /**
+ * @copydoc GridHandler::loadData
+ *
+ * @param null|mixed $filter
+ */
+ public function loadData($request, $filter = null)
+ {
+ $publicationFormat = $this->getPublicationFormat();
+ $marketDao = DAORegistry::getDAO('MarketDAO'); /** @var MarketDAO $marketDao */
+ $data = $marketDao->getByPublicationFormatId($publicationFormat->getId());
+ return $data->toArray();
+ }
+
+
+ //
+ // Public Market Grid Actions
+ //
+ /**
+ * Add a new market
+ *
+ * @param array $args
+ * @param Request $request
+ */
+ public function addMarket($args, $request)
+ {
+ return $this->editMarket($args, $request);
+ }
+
+ /**
+ * Edit a markets entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editMarket($args, $request)
+ {
+ // Identify the market entry to be updated
+ $marketId = (int) $request->getUserVar('marketId');
+ $submission = $this->getSubmission();
+
+ $marketDao = DAORegistry::getDAO('MarketDAO'); /** @var MarketDAO $marketDao */
+ $market = $marketDao->getById($marketId, $this->getPublication()->getId());
+
+ // Form handling
+ $marketForm = new MarketForm($submission, $this->getPublication(), $market);
+ $marketForm->initData();
+
+ return new JSONMessage(true, $marketForm->fetch($request));
+ }
+
+ /**
+ * Update a markets entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateMarket($args, $request)
+ {
+ // Identify the market entry to be updated
+ $marketId = $request->getUserVar('marketId');
+ $submission = $this->getSubmission();
+
+ $marketDao = DAORegistry::getDAO('MarketDAO'); /** @var MarketDAO $marketDao */
+ $market = $marketDao->getById($marketId, $this->getPublication()->getId());
+
+ // Form handling
+ $marketForm = new MarketForm($submission, $this->getPublication(), $market);
+ $marketForm->readInputData();
+ if ($marketForm->validate()) {
+ $marketId = $marketForm->execute();
+
+ if (!isset($market)) {
+ // This is a new entry
+ $market = $marketDao->getById($marketId, $this->getPublication()->getId());
+ // New added entry action notification content.
+ $notificationContent = __('notification.addedMarket');
+ } else {
+ // entry edit action notification content.
+ $notificationContent = __('notification.editedMarket');
+ }
+
+ // Create trivial notification.
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => $notificationContent]);
+
+ // Prepare the grid row data
+ $row = $this->getRowInstance();
+ $row->setGridId($this->getId());
+ $row->setId($marketId);
+ $row->setData($market);
+ $row->initialize($request);
+
+ // Render the row into a JSON response
+ return DAO::getDataChangedEvent();
+ } else {
+ return new JSONMessage(true, $marketForm->fetch($request));
+ }
+ }
+
+ /**
+ * Delete a market entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deleteMarket($args, $request)
+ {
+ // Identify the markets entry to be deleted
+ $marketId = $request->getUserVar('marketId');
+
+ $marketDao = DAORegistry::getDAO('MarketDAO'); /** @var MarketDAO $marketDao */
+ $market = $marketDao->getById($marketId, $this->getPublication()->getId());
+ if (!$market) {
+ return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
+ }
+
+ $marketDao->deleteObject($market);
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => __('notification.removedMarket')]);
+ return DAO::getDataChangedEvent();
+ }
+}
diff --git a/controllers/grid/catalogEntry/MarketsGridRow.inc.php b/controllers/grid/catalogEntry/MarketsGridRow.inc.php
deleted file mode 100644
index 333d6974fcd..00000000000
--- a/controllers/grid/catalogEntry/MarketsGridRow.inc.php
+++ /dev/null
@@ -1,98 +0,0 @@
-_monograph = $monograph;
- $this->_publication = $publication;
- parent::__construct();
- }
-
- //
- // Overridden methods from GridRow
- //
- /**
- * @copydoc GridRow::initialize()
- */
- function initialize($request, $template = null) {
- // Do the default initialization
- parent::initialize($request, $template);
-
- $monograph = $this->getMonograph();
-
- // Is this a new row or an existing row?
- $market = $this->_data;
-
- if ($market != null && is_numeric($market->getId())) {
- $router = $request->getRouter();
- $actionArgs = array(
- 'submissionId' => $monograph->getId(),
- 'publicationId' => $this->_publication->getId(),
- 'marketId' => $market->getId()
- );
-
- // Add row-level actions
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'editMarket',
- new AjaxModal(
- $router->url($request, null, null, 'editMarket', null, $actionArgs),
- __('grid.action.edit'),
- 'modal_edit'
- ),
- __('grid.action.edit'),
- 'edit'
- )
- );
-
- import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
- $this->addAction(
- new LinkAction(
- 'deleteMarket',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('common.confirmDelete'),
- __('common.delete'),
- $router->url($request, null, null, 'deleteMarket', null, $actionArgs),
- 'modal_delete'
- ),
- __('grid.action.delete'),
- 'delete'
- )
- );
- }
- }
-
- /**
- * Get the monograph for this row (already authorized)
- * @return Monograph
- */
- function getMonograph() {
- return $this->_monograph;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/MarketsGridRow.php b/controllers/grid/catalogEntry/MarketsGridRow.php
new file mode 100644
index 00000000000..00d2d233384
--- /dev/null
+++ b/controllers/grid/catalogEntry/MarketsGridRow.php
@@ -0,0 +1,110 @@
+_monograph = $monograph;
+ $this->_publication = $publication;
+ parent::__construct();
+ }
+
+ //
+ // Overridden methods from GridRow
+ //
+ /**
+ * @copydoc GridRow::initialize()
+ *
+ * @param null|mixed $template
+ */
+ public function initialize($request, $template = null)
+ {
+ // Do the default initialization
+ parent::initialize($request, $template);
+
+ $monograph = $this->getMonograph();
+
+ // Is this a new row or an existing row?
+ $market = $this->_data;
+
+ if ($market != null && is_numeric($market->getId())) {
+ $router = $request->getRouter();
+ $actionArgs = [
+ 'submissionId' => $monograph->getId(),
+ 'publicationId' => $this->_publication->getId(),
+ 'marketId' => $market->getId()
+ ];
+
+ // Add row-level actions
+ $this->addAction(
+ new LinkAction(
+ 'editMarket',
+ new AjaxModal(
+ $router->url($request, null, null, 'editMarket', null, $actionArgs),
+ __('grid.action.edit'),
+ 'modal_edit'
+ ),
+ __('grid.action.edit'),
+ 'edit'
+ )
+ );
+
+ $this->addAction(
+ new LinkAction(
+ 'deleteMarket',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('common.confirmDelete'),
+ __('common.delete'),
+ $router->url($request, null, null, 'deleteMarket', null, $actionArgs),
+ 'modal_delete'
+ ),
+ __('grid.action.delete'),
+ 'delete'
+ )
+ );
+ }
+ }
+
+ /**
+ * Get the monograph for this row (already authorized)
+ *
+ * @return Submission
+ */
+ public function getMonograph()
+ {
+ return $this->_monograph;
+ }
+}
diff --git a/controllers/grid/catalogEntry/PublicationDateGridCellProvider.inc.php b/controllers/grid/catalogEntry/PublicationDateGridCellProvider.inc.php
deleted file mode 100644
index 0f8835ad96f..00000000000
--- a/controllers/grid/catalogEntry/PublicationDateGridCellProvider.inc.php
+++ /dev/null
@@ -1,48 +0,0 @@
-getData();
- $columnId = $column->getId();
- assert(is_a($element, 'DataObject') && !empty($columnId));
- switch ($columnId) {
- case 'code':
- return array('label' => $element->getNameForONIXCode());
- case 'value':
- return array('label' => $element->getDate());
- }
- }
-}
-
diff --git a/controllers/grid/catalogEntry/PublicationDateGridCellProvider.php b/controllers/grid/catalogEntry/PublicationDateGridCellProvider.php
new file mode 100644
index 00000000000..071a1c4f215
--- /dev/null
+++ b/controllers/grid/catalogEntry/PublicationDateGridCellProvider.php
@@ -0,0 +1,51 @@
+getData();
+ $columnId = $column->getId();
+ assert(is_a($element, 'DataObject') && !empty($columnId));
+ /** @var PublicationDate $element */
+ switch ($columnId) {
+ case 'code':
+ return ['label' => $element->getNameForONIXCode()];
+ case 'value':
+ return ['label' => $element->getDate()];
+ }
+ }
+}
diff --git a/controllers/grid/catalogEntry/PublicationDateGridHandler.inc.php b/controllers/grid/catalogEntry/PublicationDateGridHandler.inc.php
deleted file mode 100644
index eff6470e484..00000000000
--- a/controllers/grid/catalogEntry/PublicationDateGridHandler.inc.php
+++ /dev/null
@@ -1,351 +0,0 @@
-addRoleAssignment(
- [ROLE_ID_MANAGER],
- ['fetchGrid', 'fetchRow', 'addDate', 'editDate', 'updateDate', 'deleteDate']
- );
- }
-
-
- //
- // Getters/Setters
- //
- /**
- * Get the submission associated with this grid.
- * @return Submission
- */
- function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Set the Submission
- * @param Submission
- */
- function setSubmission($submission) {
- $this->_submission = $submission;
- }
-
- /**
- * Get the publication associated with this grid.
- * @return Publication
- */
- function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the Publication
- * @param Publication
- */
- function setPublication($publication) {
- $this->_publication = $publication;
- }
-
- /**
- * Get the publication format assocated with these dates
- * @return PublicationFormat
- */
- function getPublicationFormat() {
- return $this->_publicationFormat;
- }
-
- /**
- * Set the publication format
- * @param PublicationFormat
- */
- function setPublicationFormat($publicationFormat) {
- $this->_publicationFormat = $publicationFormat;
- }
-
- //
- // Overridden methods from PKPHandler
- //
- /**
- * @see PKPHandler::authorize()
- * @param $request PKPRequest
- * @param $args array
- * @param $roleAssignments array
- */
- function authorize($request, &$args, $roleAssignments) {
- import('lib.pkp.classes.security.authorization.PublicationAccessPolicy');
- $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
- return parent::authorize($request, $args, $roleAssignments);
- }
-
- /**
- * @copydoc GridHandler::initialize()
- */
- function initialize($request, $args = null) {
- parent::initialize($request, $args);
-
- // Retrieve the authorized submission.
- $this->setSubmission($this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION));
- $this->setPublication($this->getAuthorizedContextObject(ASSOC_TYPE_PUBLICATION));
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $representationId = null;
-
- // Retrieve the associated publication format for this grid.
- $publicationDateId = (int) $request->getUserVar('publicationDateId'); // set if editing or deleting a date
-
- if ($publicationDateId) {
- $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /* @var $publicationDateDao PublicationDateDAO */
- $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
- if ($publicationDate) {
- $representationId = $publicationDate->getPublicationFormatId();
- }
- } else { // empty form for new Date
- $representationId = (int) $request->getUserVar('representationId');
- }
-
- $submission = $this->getSubmission();
- $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
-
- if ($publicationFormat) {
- $this->setPublicationFormat($publicationFormat);
- } else {
- fatalError('The publication format is not assigned to authorized submission!');
- }
-
- // Load submission-specific translations
- AppLocale::requireComponents(
- LOCALE_COMPONENT_APP_SUBMISSION,
- LOCALE_COMPONENT_PKP_SUBMISSION,
- LOCALE_COMPONENT_PKP_USER,
- LOCALE_COMPONENT_APP_DEFAULT,
- LOCALE_COMPONENT_PKP_DEFAULT
- );
-
- // Basic grid configuration
- $this->setTitle('grid.catalogEntry.publicationDates');
-
- // Grid actions
- $router = $request->getRouter();
- $actionArgs = $this->getRequestArgs();
- $this->addAction(
- new LinkAction(
- 'addDate',
- new AjaxModal(
- $router->url($request, null, null, 'addDate', null, $actionArgs),
- __('grid.action.addDate'),
- 'modal_add_item'
- ),
- __('grid.action.addDate'),
- 'add_item'
- )
- );
-
- // Columns
- $cellProvider = new PublicationDateGridCellProvider();
- $this->addColumn(
- new GridColumn(
- 'value',
- 'grid.catalogEntry.dateValue',
- null,
- null,
- $cellProvider,
- array('width' => 50, 'alignment' => COLUMN_ALIGNMENT_LEFT)
- )
- );
- $this->addColumn(
- new GridColumn(
- 'code',
- 'grid.catalogEntry.dateRole',
- null,
- null,
- $cellProvider
- )
- );
- }
-
-
- //
- // Overridden methods from GridHandler
- //
- /**
- * @see GridHandler::getRowInstance()
- * @return PublicationDateGridRow
- */
- function getRowInstance() {
- return new PublicationDateGridRow($this->getSubmission(), $this->getPublication());
- }
-
- /**
- * Get the arguments that will identify the data in the grid
- * In this case, the submission.
- * @return array
- */
- function getRequestArgs() {
- return [
- 'submissionId' => $this->getSubmission()->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- 'representationId' => $this->getPublicationFormat()->getId()
- ];
- }
-
- /**
- * @see GridHandler::loadData
- */
- function loadData($request, $filter = null) {
- $publicationFormat = $this->getPublicationFormat();
- $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /* @var $publicationDateDao PublicationDateDAO */
- $data = $publicationDateDao->getByPublicationFormatId($publicationFormat->getId());
- return $data->toArray();
- }
-
-
- //
- // Public Date Grid Actions
- //
- /**
- * Edit a new (empty) date
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function addDate($args, $request) {
- return $this->editDate($args, $request);
- }
-
- /**
- * Edit a date
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editDate($args, $request) {
- // Identify the date to be updated
- $publicationDateId = (int) $request->getUserVar('publicationDateId');
- $submission = $this->getSubmission();
-
- $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /* @var $publicationDateDao PublicationDateDAO */
- $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.PublicationDateForm');
- $publicationDateForm = new PublicationDateForm($submission, $this->getPublication(), $publicationDate);
- $publicationDateForm->initData();
-
- return new JSONMessage(true, $publicationDateForm->fetch($request));
- }
-
- /**
- * Update a date
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateDate($args, $request) {
- // Identify the code to be updated
- $publicationDateId = $request->getUserVar('publicationDateId');
- $submission = $this->getSubmission();
-
- $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /* @var $publicationDateDao PublicationDateDAO */
- $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.PublicationDateForm');
- $publicationDateForm = new PublicationDateForm($submission, $this->getPublication(), $publicationDate);
- $publicationDateForm->readInputData();
- if ($publicationDateForm->validate()) {
- $publicationDateId = $publicationDateForm->execute();
-
- if(!isset($publicationDate)) {
- // This is a new code
- $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
- // New added code action notification content.
- $notificationContent = __('notification.addedPublicationDate');
- } else {
- // code edit action notification content.
- $notificationContent = __('notification.editedPublicationDate');
- }
-
- // Create trivial notification.
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => $notificationContent));
-
- // Prepare the grid row data
- $row = $this->getRowInstance();
- $row->setGridId($this->getId());
- $row->setId($publicationDateId);
- $row->setData($publicationDate);
- $row->initialize($request);
-
- // Render the row into a JSON response
- return DAO::getDataChangedEvent();
-
- } else {
- return new JSONMessage(true, $publicationDateForm->fetch($request));
- }
- }
-
- /**
- * Delete a date
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deleteDate($args, $request) {
-
- // Identify the code to be deleted
- $publicationDateId = $request->getUserVar('publicationDateId');
-
- $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /* @var $publicationDateDao PublicationDateDAO */
- $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
- if ($publicationDate != null) { // authorized
-
- $result = $publicationDateDao->deleteObject($publicationDate);
-
- if ($result) {
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.removedPublicationDate')));
- return DAO::getDataChangedEvent();
- } else {
- return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
- }
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/PublicationDateGridHandler.php b/controllers/grid/catalogEntry/PublicationDateGridHandler.php
new file mode 100644
index 00000000000..42b792e17bc
--- /dev/null
+++ b/controllers/grid/catalogEntry/PublicationDateGridHandler.php
@@ -0,0 +1,383 @@
+addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN],
+ ['fetchGrid', 'fetchRow', 'addDate', 'editDate', 'updateDate', 'deleteDate']
+ );
+ }
+
+
+ //
+ // Getters/Setters
+ //
+ /**
+ * Get the submission associated with this grid.
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Set the Submission
+ *
+ * @param Submission
+ */
+ public function setSubmission($submission)
+ {
+ $this->_submission = $submission;
+ }
+
+ /**
+ * Get the publication associated with this grid.
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the Publication
+ *
+ * @param Publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+ /**
+ * Get the publication format associated with these dates
+ *
+ * @return PublicationFormat
+ */
+ public function getPublicationFormat()
+ {
+ return $this->_publicationFormat;
+ }
+
+ /**
+ * Set the publication format
+ *
+ * @param PublicationFormat
+ */
+ public function setPublicationFormat($publicationFormat)
+ {
+ $this->_publicationFormat = $publicationFormat;
+ }
+
+ //
+ // Overridden methods from PKPHandler
+ //
+ /**
+ * @see PKPHandler::authorize()
+ *
+ * @param Request $request
+ * @param array $args
+ * @param array $roleAssignments
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+
+ /**
+ * @copydoc GridHandler::initialize()
+ *
+ * @param null|mixed $args
+ */
+ public function initialize($request, $args = null)
+ {
+ parent::initialize($request, $args);
+
+ // Retrieve the authorized submission.
+ $this->setSubmission($this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION));
+ $this->setPublication($this->getAuthorizedContextObject(Application::ASSOC_TYPE_PUBLICATION));
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $representationId = null;
+
+ // Retrieve the associated publication format for this grid.
+ $publicationDateId = (int) $request->getUserVar('publicationDateId'); // set if editing or deleting a date
+
+ if ($publicationDateId) {
+ $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /** @var PublicationDateDAO $publicationDateDao */
+ $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
+ if ($publicationDate) {
+ $representationId = $publicationDate->getPublicationFormatId();
+ }
+ } else { // empty form for new Date
+ $representationId = (int) $request->getUserVar('representationId');
+ }
+
+ $publicationFormat = $representationId
+ ? $publicationFormatDao->getById((int) $representationId, $this->getPublication()->getId())
+ : null;
+
+ if ($publicationFormat) {
+ $this->setPublicationFormat($publicationFormat);
+ } else {
+ throw new Exception('The publication format is not assigned to authorized submission!');
+ }
+
+ // Basic grid configuration
+ $this->setTitle('grid.catalogEntry.publicationDates');
+
+ // Grid actions
+ $router = $request->getRouter();
+ $actionArgs = $this->getRequestArgs();
+ $this->addAction(
+ new LinkAction(
+ 'addDate',
+ new AjaxModal(
+ $router->url($request, null, null, 'addDate', null, $actionArgs),
+ __('grid.action.addDate'),
+ 'modal_add_item'
+ ),
+ __('grid.action.addDate'),
+ 'add_item'
+ )
+ );
+
+ // Columns
+ $cellProvider = new PublicationDateGridCellProvider();
+ $this->addColumn(
+ new GridColumn(
+ 'value',
+ 'grid.catalogEntry.dateValue',
+ null,
+ null,
+ $cellProvider,
+ ['width' => 50, 'alignment' => GridColumn::COLUMN_ALIGNMENT_LEFT]
+ )
+ );
+ $this->addColumn(
+ new GridColumn(
+ 'code',
+ 'grid.catalogEntry.dateRole',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ }
+
+
+ //
+ // Overridden methods from GridHandler
+ //
+ /**
+ * @see GridHandler::getRowInstance()
+ *
+ * @return PublicationDateGridRow
+ */
+ public function getRowInstance()
+ {
+ return new PublicationDateGridRow($this->getSubmission(), $this->getPublication());
+ }
+
+ /**
+ * Get the arguments that will identify the data in the grid
+ * In this case, the submission.
+ *
+ * @return array
+ */
+ public function getRequestArgs()
+ {
+ return [
+ 'submissionId' => $this->getSubmission()->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ 'representationId' => $this->getPublicationFormat()->getId()
+ ];
+ }
+
+ /**
+ * @see GridHandler::loadData
+ *
+ * @param null|mixed $filter
+ */
+ public function loadData($request, $filter = null)
+ {
+ $publicationFormat = $this->getPublicationFormat();
+ $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /** @var PublicationDateDAO $publicationDateDao */
+ $data = $publicationDateDao->getByPublicationFormatId($publicationFormat->getId());
+ return $data->toArray();
+ }
+
+
+ //
+ // Public Date Grid Actions
+ //
+ /**
+ * Edit a new (empty) date
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function addDate($args, $request)
+ {
+ return $this->editDate($args, $request);
+ }
+
+ /**
+ * Edit a date
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editDate($args, $request)
+ {
+ // Identify the date to be updated
+ $publicationDateId = (int) $request->getUserVar('publicationDateId');
+ $submission = $this->getSubmission();
+
+ $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /** @var PublicationDateDAO $publicationDateDao */
+ $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
+
+ // Form handling
+ $publicationDateForm = new PublicationDateForm($submission, $this->getPublication(), $publicationDate);
+ $publicationDateForm->initData();
+
+ return new JSONMessage(true, $publicationDateForm->fetch($request));
+ }
+
+ /**
+ * Update a date
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateDate($args, $request)
+ {
+ // Identify the code to be updated
+ $publicationDateId = $request->getUserVar('publicationDateId');
+ $submission = $this->getSubmission();
+
+ $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /** @var PublicationDateDAO $publicationDateDao */
+ $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
+
+ // Form handling
+ $publicationDateForm = new PublicationDateForm($submission, $this->getPublication(), $publicationDate);
+ $publicationDateForm->readInputData();
+ if ($publicationDateForm->validate()) {
+ $publicationDateId = $publicationDateForm->execute();
+
+ if (!isset($publicationDate)) {
+ // This is a new code
+ $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
+ // New added code action notification content.
+ $notificationContent = __('notification.addedPublicationDate');
+ } else {
+ // code edit action notification content.
+ $notificationContent = __('notification.editedPublicationDate');
+ }
+
+ // Create trivial notification.
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => $notificationContent]);
+
+ // Prepare the grid row data
+ $row = $this->getRowInstance();
+ $row->setGridId($this->getId());
+ $row->setId($publicationDateId);
+ $row->setData($publicationDate);
+ $row->initialize($request);
+
+ // Render the row into a JSON response
+ return DAO::getDataChangedEvent();
+ } else {
+ return new JSONMessage(true, $publicationDateForm->fetch($request));
+ }
+ }
+
+ /**
+ * Delete a date
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deleteDate($args, $request)
+ {
+ // Identify the code to be deleted
+ $publicationDateId = $request->getUserVar('publicationDateId');
+
+ $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /** @var PublicationDateDAO $publicationDateDao */
+ $publicationDate = $publicationDateDao->getById($publicationDateId, $this->getPublication()->getId());
+ if (!$publicationDate) {
+ return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
+ }
+
+ $publicationDateDao->deleteObject($publicationDate);
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => __('notification.removedPublicationDate')]);
+ return DAO::getDataChangedEvent();
+ }
+}
diff --git a/controllers/grid/catalogEntry/PublicationDateGridRow.inc.php b/controllers/grid/catalogEntry/PublicationDateGridRow.inc.php
deleted file mode 100644
index da2b8d5c191..00000000000
--- a/controllers/grid/catalogEntry/PublicationDateGridRow.inc.php
+++ /dev/null
@@ -1,99 +0,0 @@
-_monograph = $monograph;
- $this->_publication = $publication;
- parent::__construct();
- }
-
- //
- // Overridden methods from GridRow
- //
- /**
- * @copydoc GridRow::initialize()
- */
- function initialize($request, $template = null) {
- // Do the default initialization
- parent::initialize($request, $template);
-
- $monograph = $this->getMonograph();
-
- // Is this a new row or an existing row?
- $publicationDate = $this->_data;
-
- if ($publicationDate != null && is_numeric($publicationDate->getId())) {
- $router = $request->getRouter();
- $actionArgs = array(
- 'submissionId' => $monograph->getId(),
- 'publicationId' => $this->_publication->getId(),
- 'publicationDateId' => $publicationDate->getId()
- );
-
- // Add row-level actions
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'editDate',
- new AjaxModal(
- $router->url($request, null, null, 'editDate', null, $actionArgs),
- __('grid.action.edit'),
- 'modal_edit'
- ),
- __('grid.action.edit'),
- 'edit'
- )
- );
-
- import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
- $this->addAction(
- new LinkAction(
- 'deleteDate',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('common.confirmDelete'),
- __('common.delete'),
- $router->url($request, null, null, 'deleteDate', null, $actionArgs),
- 'modal_delete'
- ),
- __('grid.action.delete'),
- 'delete'
- )
- );
- }
- }
-
- /**
- * Get the monograph for this row (already authorized)
- * @return Monograph
- */
- function getMonograph() {
- return $this->_monograph;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/PublicationDateGridRow.php b/controllers/grid/catalogEntry/PublicationDateGridRow.php
new file mode 100644
index 00000000000..4ffa7f91b61
--- /dev/null
+++ b/controllers/grid/catalogEntry/PublicationDateGridRow.php
@@ -0,0 +1,112 @@
+_monograph = $monograph;
+ $this->_publication = $publication;
+ parent::__construct();
+ }
+
+ //
+ // Overridden methods from GridRow
+ //
+ /**
+ * @copydoc GridRow::initialize()
+ *
+ * @param null|mixed $template
+ */
+ public function initialize($request, $template = null)
+ {
+ // Do the default initialization
+ parent::initialize($request, $template);
+
+ $monograph = $this->getMonograph();
+
+ // Is this a new row or an existing row?
+ $publicationDate = $this->_data;
+
+ if ($publicationDate != null && is_numeric($publicationDate->getId())) {
+ $router = $request->getRouter();
+ $actionArgs = [
+ 'submissionId' => $monograph->getId(),
+ 'publicationId' => $this->_publication->getId(),
+ 'publicationDateId' => $publicationDate->getId()
+ ];
+
+ // Add row-level actions
+ $this->addAction(
+ new LinkAction(
+ 'editDate',
+ new AjaxModal(
+ $router->url($request, null, null, 'editDate', null, $actionArgs),
+ __('grid.action.edit'),
+ 'modal_edit'
+ ),
+ __('grid.action.edit'),
+ 'edit'
+ )
+ );
+
+ $this->addAction(
+ new LinkAction(
+ 'deleteDate',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('common.confirmDelete'),
+ __('common.delete'),
+ $router->url($request, null, null, 'deleteDate', null, $actionArgs),
+ 'modal_delete'
+ ),
+ __('grid.action.delete'),
+ 'delete'
+ )
+ );
+ }
+ }
+
+ /**
+ * Get the monograph for this row (already authorized)
+ *
+ * @return Submission
+ */
+ public function getMonograph()
+ {
+ return $this->_monograph;
+ }
+}
diff --git a/controllers/grid/catalogEntry/PublicationFormatCategoryGridDataProvider.inc.php b/controllers/grid/catalogEntry/PublicationFormatCategoryGridDataProvider.inc.php
deleted file mode 100644
index 33e0adb0e07..00000000000
--- a/controllers/grid/catalogEntry/PublicationFormatCategoryGridDataProvider.inc.php
+++ /dev/null
@@ -1,119 +0,0 @@
-_gridHandler = $gridHandler;
- import('lib.pkp.classes.submission.SubmissionFile');
- parent::__construct(SUBMISSION_FILE_PROOF);
- $this->setStageId(WORKFLOW_STAGE_ID_PRODUCTION);
- }
-
-
- //
- // Getters/setters
- //
- /**
- * Get the representation associated with this grid
- * @return Representation
- */
- function getRepresentation() {
- return $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
- }
-
- /**
- * Get the submission associated with this grid
- * @return Submission
- */
- function getSubmission() {
- return $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
- }
-
- /**
- * Get the publication associated with this grid
- * @return Publication
- */
- function getPublication() {
- return $this->getAuthorizedContextObject(ASSOC_TYPE_PUBLICATION);
- }
-
- //
- // Overridden public methods from FilesGridDataProvider
- //
- /**
- * @copydoc GridHandler::getRequestArgs()
- */
- function getRequestArgs() {
- $representation = $this->getRepresentation();
- return array_merge(
- parent::getRequestArgs(),
- array(
- 'representationId' => $representation->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- 'assocType' => ASSOC_TYPE_REPRESENTATION,
- 'assocId' => $representation->getId(),
- )
- );
- }
-
- /**
- * @copydoc GridHandler::loadData
- */
- function loadData($filter = array()) {
- return Application::getRepresentationDAO()
- ->getByPublicationId($this->getPublication()->getId())
- ->toAssociativeArray();
- }
-
- /**
- * @copydoc GridDataProvider::loadCategoryData()
- */
- function loadCategoryData($request, $categoryDataElement, $filter = null, $reviewRound = null) {
- assert(is_a($categoryDataElement, 'Representation'));
-
- // Retrieve all submission files for the given file stage.
- /** @var $categoryDataElement Representation */
- assert(is_a($categoryDataElement, "Representation"));
-
- $submissionFiles = Services::get('submissionFile')->getMany([
- 'submissionIds' => [$this->getPublication()->getData('submissionId')],
- 'assocTypes' => [ASSOC_TYPE_REPRESENTATION],
- 'assocIds' => [$categoryDataElement->getId()],
- 'fileStages' => [$this->getFileStage()],
- ]);
-
- // if it is a remotely hosted content, don't provide the files rows
- $remoteURL = $categoryDataElement->getRemoteURL();
- if ($remoteURL) {
- $this->_gridHandler->setEmptyCategoryRowText('grid.remotelyHostedItem');
- return array();
- }
- $this->_gridHandler->setEmptyCategoryRowText('grid.noItems');
- return $this->getDataProvider()->prepareSubmissionFileData($submissionFiles, false, $filter);
-
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/PublicationFormatCategoryGridDataProvider.php b/controllers/grid/catalogEntry/PublicationFormatCategoryGridDataProvider.php
new file mode 100644
index 00000000000..21be47b59ad
--- /dev/null
+++ b/controllers/grid/catalogEntry/PublicationFormatCategoryGridDataProvider.php
@@ -0,0 +1,141 @@
+_gridHandler = $gridHandler;
+ parent::__construct(SubmissionFile::SUBMISSION_FILE_PROOF);
+ $this->setStageId(WORKFLOW_STAGE_ID_PRODUCTION);
+ }
+
+
+ //
+ // Getters/setters
+ //
+ /**
+ * Get the representation associated with this grid
+ *
+ * @return Representation
+ */
+ public function getRepresentation()
+ {
+ return $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+ }
+
+ /**
+ * Get the submission associated with this grid
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION);
+ }
+
+ /**
+ * Get the publication associated with this grid
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->getAuthorizedContextObject(Application::ASSOC_TYPE_PUBLICATION);
+ }
+
+ //
+ // Overridden public methods from FilesGridDataProvider
+ //
+ /**
+ * @copydoc GridHandler::getRequestArgs()
+ */
+ public function getRequestArgs()
+ {
+ $representation = $this->getRepresentation();
+ return array_merge(
+ parent::getRequestArgs(),
+ [
+ 'representationId' => $representation->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ 'assocType' => Application::ASSOC_TYPE_REPRESENTATION,
+ 'assocId' => $representation->getId(),
+ ]
+ );
+ }
+
+ /**
+ * @copydoc GridHandler::loadData
+ */
+ public function loadData($filter = [])
+ {
+ return Application::getRepresentationDAO()
+ ->getByPublicationId($this->getPublication()->getId());
+ }
+
+ /**
+ * @copydoc GridDataProvider::loadCategoryData()
+ *
+ * @param null|mixed $filter
+ * @param null|mixed $reviewRound
+ */
+ public function loadCategoryData($request, $categoryDataElement, $filter = null, $reviewRound = null)
+ {
+ assert(is_a($categoryDataElement, 'Representation'));
+
+ // Retrieve all submission files for the given file stage.
+ /** @var Representation $categoryDataElement */
+ assert(is_a($categoryDataElement, 'Representation'));
+
+ $submissionFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$this->getPublication()->getData('submissionId')])
+ ->filterByAssoc(
+ Application::ASSOC_TYPE_REPRESENTATION,
+ [$categoryDataElement->getId()]
+ )
+ ->filterByFileStages([$this->getFileStage()])
+ ->getMany();
+
+ // if it is a remotely hosted content, don't provide the files rows
+ $remoteURL = $categoryDataElement->getRemoteURL();
+ if ($remoteURL) {
+ $this->_gridHandler->setEmptyCategoryRowText('grid.remotelyHostedItem');
+ return [];
+ }
+ $this->_gridHandler->setEmptyCategoryRowText('grid.noItems');
+ /** @var SubmissionFilesGridDataProvider */
+ $dataProvider = $this->getDataProvider();
+ return $dataProvider->prepareSubmissionFileData($submissionFiles->toArray(), false, $filter);
+ }
+}
diff --git a/controllers/grid/catalogEntry/PublicationFormatGridCategoryRow.inc.php b/controllers/grid/catalogEntry/PublicationFormatGridCategoryRow.inc.php
deleted file mode 100644
index 1f56bc537a7..00000000000
--- a/controllers/grid/catalogEntry/PublicationFormatGridCategoryRow.inc.php
+++ /dev/null
@@ -1,127 +0,0 @@
-_submission = $submission;
- $this->_canManage = $canManage;
- $this->_publication = $publication;
- parent::__construct();
- $this->setCellProvider($cellProvider);
- }
-
- //
- // Overridden methods from GridCategoryRow
- //
- /**
- * @copydoc GridCategoryRow::getCategoryLabel()
- */
- function getCategoryLabel() {
- return $this->getData()->getLocalizedName();
- }
-
-
- //
- // Overridden methods from GridRow
- //
- /**
- * @copydoc GridRow::initialize()
- */
- function initialize($request, $template = null) {
- // Do the default initialization
- parent::initialize($request, $template);
-
- // Retrieve the submission from the request
- $submission = $this->getSubmission();
-
- // Is this a new row or an existing row?
- $representation = $this->getData();
- if ($representation && is_numeric($representation->getId()) && $this->_canManage) {
- $router = $request->getRouter();
- $actionArgs = array(
- 'submissionId' => $submission->getId(),
- 'representationId' => $representation->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- );
-
- // Add row-level actions
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'editFormat',
- new AjaxModal(
- $router->url($request, null, null, 'editFormat', null, $actionArgs),
- __('grid.action.edit'),
- 'modal_edit'
- ),
- __('grid.action.edit'),
- 'edit'
- )
- );
-
- import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
- $this->addAction(
- new LinkAction(
- 'deleteFormat',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('common.confirmDelete'),
- __('common.delete'),
- $router->url($request, null, null, 'deleteFormat', null, $actionArgs),
- 'modal_delete'
- ),
- __('grid.action.delete'),
- 'delete'
- )
- );
- }
- }
-
- /**
- * Get the submission for this row (already authorized)
- * @return Submission
- */
- function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Get the publication for this row (already authorized)
- * @return Publication
- */
- function getPublication() {
- return $this->_publication;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/PublicationFormatGridCategoryRow.php b/controllers/grid/catalogEntry/PublicationFormatGridCategoryRow.php
new file mode 100644
index 00000000000..a1c471327d5
--- /dev/null
+++ b/controllers/grid/catalogEntry/PublicationFormatGridCategoryRow.php
@@ -0,0 +1,143 @@
+_submission = $submission;
+ $this->_canManage = $canManage;
+ $this->_publication = $publication;
+ parent::__construct();
+ $this->setCellProvider($cellProvider);
+ }
+
+ //
+ // Overridden methods from GridCategoryRow
+ //
+ /**
+ * @copydoc GridCategoryRow::getCategoryLabel()
+ */
+ public function getCategoryLabel()
+ {
+ return $this->getData()->getLocalizedName();
+ }
+
+
+ //
+ // Overridden methods from GridRow
+ //
+ /**
+ * @copydoc GridRow::initialize()
+ *
+ * @param null|mixed $template
+ */
+ public function initialize($request, $template = null)
+ {
+ // Do the default initialization
+ parent::initialize($request, $template);
+
+ // Retrieve the submission from the request
+ $submission = $this->getSubmission();
+
+ // Is this a new row or an existing row?
+ $representation = $this->getData();
+ if ($representation && is_numeric($representation->getId()) && $this->_canManage) {
+ $router = $request->getRouter();
+ $actionArgs = [
+ 'submissionId' => $submission->getId(),
+ 'representationId' => $representation->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ ];
+
+ // Add row-level actions
+ $this->addAction(
+ new LinkAction(
+ 'editFormat',
+ new AjaxModal(
+ $router->url($request, null, null, 'editFormat', null, $actionArgs),
+ __('grid.action.edit'),
+ 'modal_edit'
+ ),
+ __('grid.action.edit'),
+ 'edit'
+ )
+ );
+
+ $this->addAction(
+ new LinkAction(
+ 'deleteFormat',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('common.confirmDelete'),
+ __('common.delete'),
+ $router->url($request, null, null, 'deleteFormat', null, $actionArgs),
+ 'modal_delete'
+ ),
+ __('grid.action.delete'),
+ 'delete'
+ )
+ );
+ }
+ }
+
+ /**
+ * Get the submission for this row (already authorized)
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Get the publication for this row (already authorized)
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+}
diff --git a/controllers/grid/catalogEntry/PublicationFormatGridCellProvider.inc.php b/controllers/grid/catalogEntry/PublicationFormatGridCellProvider.inc.php
deleted file mode 100644
index e39ec9d9397..00000000000
--- a/controllers/grid/catalogEntry/PublicationFormatGridCellProvider.inc.php
+++ /dev/null
@@ -1,268 +0,0 @@
-_submissionId = $submissionId;
- $this->_publicationId = $publicationId;
- $this->_canManage = $canManage;
- }
-
-
- //
- // Getters and setters.
- //
- /**
- * Get submission ID.
- * @return int
- */
- function getSubmissionId() {
- return $this->_submissionId;
- }
-
- /**
- * Get publication ID.
- * @return int
- */
- function getPublicationId() {
- return $this->_publicationId;
- }
-
-
- //
- // Template methods from GridCellProvider
- //
- /**
- * Extracts variables for a given column from a data element
- * so that they may be assigned to template before rendering.
- * @param $row GridRow
- * @param $column GridColumn
- * @return array
- */
- function getTemplateVarsFromRowColumn($row, $column) {
- $data = $row->getData();
-
- if (is_a($data, 'Representation')) {
- /** @var $data Representation */
- switch ($column->getId()) {
- case 'indent': return array();
- case 'name':
- $remoteURL = $data->getRemoteURL();
- if ($remoteURL) {
- return array('label' => ''.htmlspecialchars($data->getLocalizedName()).'' . '' . $data->getNameForONIXCode() . '');
- }
- return array('label' => htmlspecialchars($data->getLocalizedName()) . '' . $data->getNameForONIXCode() . '');
- case 'isAvailable':
- return array('status' => $data->getIsAvailable()?'completed':'new');
- case 'isComplete':
- return array('status' => $data->getIsApproved()?'completed':'new');
- }
- } else {
- assert(is_array($data) && isset($data['submissionFile']));
- $proofFile = $data['submissionFile'];
- switch ($column->getId()) {
- case 'isAvailable':
- return array('status' => ($proofFile->getSalesType() != null && $proofFile->getDirectSalesPrice() != null)?'completed':'new');
- case 'name':
- import('lib.pkp.controllers.grid.files.FileNameGridColumn');
- $fileNameGridColumn = new FileNameGridColumn(true, WORKFLOW_STAGE_ID_PRODUCTION);
- return $fileNameGridColumn->getTemplateVarsFromRow($row);
- case 'isComplete':
- return array('status' => $proofFile->getViewable()?'completed':'new');
- }
- }
-
- return parent::getTemplateVarsFromRowColumn($row, $column);
- }
-
- /**
- * Get request arguments.
- * @param $row GridRow
- * @return array
- */
- function getRequestArgs($row) {
- return array(
- 'submissionId' => $this->getSubmissionId(),
- 'publicationId' => $this->getPublicationId(),
- );
- }
-
- /**
- * @see GridCellProvider::getCellActions()
- */
- function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) {
- $data = $row->getData();
- $router = $request->getRouter();
- if (is_a($data, 'Representation')) {
- switch ($column->getId()) {
- case 'isAvailable':
- return array(new LinkAction(
- 'availableRepresentation',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __($data->getIsAvailable()?'grid.catalogEntry.availableRepresentation.removeMessage':'grid.catalogEntry.availableRepresentation.message'),
- __('grid.catalogEntry.availableRepresentation.title'),
- $router->url(
- $request, null, null, 'setAvailable', null,
- array(
- 'representationId' => $data->getId(),
- 'newAvailableState' => $data->getIsAvailable()?0:1,
- 'submissionId' => $this->getSubmissionId(),
- 'publicationId' => $data->getData('publicationId'),
- )
- ),
- 'modal_approve'
- ),
- $data->getIsAvailable()?__('grid.catalogEntry.isAvailable'):__('grid.catalogEntry.isNotAvailable'),
- $data->getIsAvailable()?'complete':'incomplete',
- __('grid.action.formatAvailable')
- ));
- case 'name':
- // if it is a remotely hosted content, don't provide
- // file upload and select link actions
- $remoteURL = $data->getRemoteURL();
- if ($remoteURL) {
- return array();
- }
- // If this is just an author account, don't give any actions
- if (!$this->_canManage) return array();
- import('lib.pkp.controllers.api.file.linkAction.AddFileLinkAction');
- import('lib.pkp.controllers.grid.files.fileList.linkAction.SelectFilesLinkAction');
- AppLocale::requireComponents(LOCALE_COMPONENT_PKP_EDITOR);
- return array(
- new AddFileLinkAction(
- $request, $this->getSubmissionId(), WORKFLOW_STAGE_ID_PRODUCTION,
- array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT), SUBMISSION_FILE_PROOF,
- ASSOC_TYPE_REPRESENTATION, $data->getId()
- ),
- new SelectFilesLinkAction(
- $request,
- array(
- 'submissionId' => $this->getSubmissionId(),
- 'assocType' => ASSOC_TYPE_REPRESENTATION,
- 'assocId' => $data->getId(),
- 'representationId' => $data->getId(),
- 'publicationId' => $this->getPublicationId(),
- 'stageId' => WORKFLOW_STAGE_ID_PRODUCTION,
- 'fileStage' => SUBMISSION_FILE_PROOF,
- ),
- __('editor.submission.selectFiles')
- )
- );
- case 'isComplete':
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- return array(new LinkAction(
- 'approveRepresentation',
- new AjaxModal(
- $router->url(
- $request, null, null, 'setApproved', null,
- array(
- 'representationId' => $data->getId(),
- 'newApprovedState' => $data->getIsApproved()?0:1,
- 'submissionId' => $this->getSubmissionId(),
- 'publicationId' => $data->getData('publicationId'),
- )
- ),
- __('grid.catalogEntry.approvedRepresentation.title'),
- 'modal_approve'
- ),
- $data->getIsApproved()?__('submission.complete'):__('submission.incomplete'),
- $data->getIsApproved()?'complete':'incomplete',
- __('grid.action.setApproval')
- ));
- }
- } else {
- assert(is_array($data) && isset($data['submissionFile']));
- $submissionFile = $data['submissionFile'];
- switch ($column->getId()) {
- case 'isAvailable':
- $salesType = preg_replace('/[^\da-z]/i', '', $submissionFile->getSalesType() ?? '');
- $salesTypeString = 'editor.monograph.approvedProofs.edit.linkTitle';
- if ($salesType == 'openAccess') {
- $salesTypeString = 'payment.directSales.openAccess';
- } elseif ($salesType == 'directSales') {
- $salesTypeString = 'payment.directSales.directSales';
- } elseif ($salesType == 'notAvailable') {
- $salesTypeString = 'payment.directSales.notAvailable';
- }
- return array(new LinkAction(
- 'editApprovedProof',
- new AjaxModal(
- $router->url($request, null, null, 'editApprovedProof', null, array(
- 'submissionFileId' => $submissionFile->getId(),
- 'submissionId' => $submissionFile->getData('submissionId'),
- 'publicationId' => $this->getPublicationId(),
- 'representationId' => $submissionFile->getData('assocId'),
- )),
- __('editor.monograph.approvedProofs.edit'),
- 'edit'
- ),
- __($salesTypeString),
- $salesType
- ));
- case 'name':
- import('lib.pkp.controllers.grid.files.FileNameGridColumn');
- $fileNameColumn = new FileNameGridColumn(true, WORKFLOW_STAGE_ID_PRODUCTION, true);
- return $fileNameColumn->getCellActions($request, $row, $position);
- case 'isComplete':
- AppLocale::requireComponents(LOCALE_COMPONENT_PKP_EDITOR);
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $title = __($submissionFile->getViewable()?'editor.submission.proofreading.revokeProofApproval':'editor.submission.proofreading.approveProof');
- return array(new LinkAction(
- $submissionFile->getViewable()?'approved':'not_approved',
- new AjaxModal(
- $router->url(
- $request, null, null, 'setProofFileCompletion',
- null,
- array(
- 'submissionId' => $submissionFile->getData('submissionId'),
- 'publicationId' => $this->getPublicationId(),
- 'submissionFileId' => $submissionFile->getId(),
- 'approval' => !$submissionFile->getData('viewable'),
- )
- ),
- $title,
- 'modal_approve'
- ),
- $submissionFile->getViewable()?__('grid.catalogEntry.availableRepresentation.approved'):__('grid.catalogEntry.availableRepresentation.notApproved'),
- $submissionFile->getViewable()?'complete':'incomplete',
- __('grid.action.setApproval')
- ));
- }
- }
- return parent::getCellActions($request, $row, $column, $position);
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/PublicationFormatGridCellProvider.php b/controllers/grid/catalogEntry/PublicationFormatGridCellProvider.php
new file mode 100644
index 00000000000..2153c22ccbf
--- /dev/null
+++ b/controllers/grid/catalogEntry/PublicationFormatGridCellProvider.php
@@ -0,0 +1,303 @@
+_submissionId = $submissionId;
+ $this->_publicationId = $publicationId;
+ $this->_canManage = $canManage;
+ }
+
+
+ //
+ // Getters and setters.
+ //
+ /**
+ * Get submission ID.
+ *
+ * @return int
+ */
+ public function getSubmissionId()
+ {
+ return $this->_submissionId;
+ }
+
+ /**
+ * Get publication ID.
+ *
+ * @return int
+ */
+ public function getPublicationId()
+ {
+ return $this->_publicationId;
+ }
+
+
+ //
+ // Template methods from GridCellProvider
+ //
+ /**
+ * Extracts variables for a given column from a data element
+ * so that they may be assigned to template before rendering.
+ *
+ * @param GridRow $row
+ * @param GridColumn $column
+ *
+ * @return array
+ */
+ public function getTemplateVarsFromRowColumn($row, $column)
+ {
+ $data = $row->getData();
+
+ if (is_a($data, 'Representation')) {
+ /** @var Representation $data */
+ switch ($column->getId()) {
+ case 'indent': return [];
+ case 'name':
+ $remoteURL = $data->getRemoteURL();
+ if ($remoteURL) {
+ return ['label' => '' . htmlspecialchars($data->getLocalizedName()) . '' . '' . $data->getNameForONIXCode() . ''];
+ }
+ return ['label' => htmlspecialchars($data->getLocalizedName()) . '' . $data->getNameForONIXCode() . ''];
+ case 'isAvailable':
+ return ['status' => $data->getIsAvailable() ? 'completed' : 'new'];
+ case 'isComplete':
+ return ['status' => $data->getIsApproved() ? 'completed' : 'new'];
+ }
+ } else {
+ assert(is_array($data) && isset($data['submissionFile']));
+ $proofFile = $data['submissionFile'];
+ switch ($column->getId()) {
+ case 'isAvailable':
+ return ['status' => ($proofFile->getSalesType() != null && $proofFile->getDirectSalesPrice() != null) ? 'completed' : 'new'];
+ case 'name':
+ $fileNameGridColumn = new FileNameGridColumn(true, WORKFLOW_STAGE_ID_PRODUCTION);
+ return $fileNameGridColumn->getTemplateVarsFromRow($row);
+ case 'isComplete':
+ return ['status' => $proofFile->getViewable() ? 'completed' : 'new'];
+ }
+ }
+
+ return parent::getTemplateVarsFromRowColumn($row, $column);
+ }
+
+ /**
+ * Get request arguments.
+ *
+ * @param GridRow $row
+ *
+ * @return array
+ */
+ public function getRequestArgs($row)
+ {
+ return [
+ 'submissionId' => $this->getSubmissionId(),
+ 'publicationId' => $this->getPublicationId(),
+ ];
+ }
+
+ /**
+ * @see GridCellProvider::getCellActions()
+ */
+ public function getCellActions($request, $row, $column, $position = GridHandler::GRID_ACTION_POSITION_DEFAULT)
+ {
+ $data = $row->getData();
+ $router = $request->getRouter();
+ if (is_a($data, 'Representation')) {
+ switch ($column->getId()) {
+ case 'isAvailable':
+ return [new LinkAction(
+ 'availableRepresentation',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __($data->getIsAvailable() ? 'grid.catalogEntry.availableRepresentation.removeMessage' : 'grid.catalogEntry.availableRepresentation.message'),
+ __('grid.catalogEntry.availableRepresentation.title'),
+ $router->url(
+ $request,
+ null,
+ null,
+ 'setAvailable',
+ null,
+ [
+ 'representationId' => $data->getId(),
+ 'newAvailableState' => $data->getIsAvailable() ? 0 : 1,
+ 'submissionId' => $this->getSubmissionId(),
+ 'publicationId' => $data->getData('publicationId'),
+ ]
+ ),
+ 'modal_approve'
+ ),
+ $data->getIsAvailable() ? __('grid.catalogEntry.isAvailable') : __('grid.catalogEntry.isNotAvailable'),
+ $data->getIsAvailable() ? 'complete' : 'incomplete',
+ __('grid.action.formatAvailable')
+ )];
+ case 'name':
+ // if it is a remotely hosted content, don't provide
+ // file upload and select link actions
+ $remoteURL = $data->getRemoteURL();
+ if ($remoteURL) {
+ return [];
+ }
+ // If this is just an author account, don't give any actions
+ if (!$this->_canManage) {
+ return [];
+ }
+ return [
+ new AddFileLinkAction(
+ $request,
+ $this->getSubmissionId(),
+ WORKFLOW_STAGE_ID_PRODUCTION,
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_ASSISTANT],
+ SubmissionFile::SUBMISSION_FILE_PROOF,
+ Application::ASSOC_TYPE_REPRESENTATION,
+ $data->getId()
+ ),
+ new SelectFilesLinkAction(
+ $request,
+ [
+ 'submissionId' => $this->getSubmissionId(),
+ 'assocType' => Application::ASSOC_TYPE_REPRESENTATION,
+ 'assocId' => $data->getId(),
+ 'representationId' => $data->getId(),
+ 'publicationId' => $this->getPublicationId(),
+ 'stageId' => WORKFLOW_STAGE_ID_PRODUCTION,
+ 'fileStage' => SubmissionFile::SUBMISSION_FILE_PROOF,
+ ],
+ __('editor.submission.selectFiles')
+ )
+ ];
+ case 'isComplete':
+ return [new LinkAction(
+ 'approveRepresentation',
+ new AjaxModal(
+ $router->url(
+ $request,
+ null,
+ null,
+ 'setApproved',
+ null,
+ [
+ 'representationId' => $data->getId(),
+ 'newApprovedState' => $data->getIsApproved() ? 0 : 1,
+ 'submissionId' => $this->getSubmissionId(),
+ 'publicationId' => $data->getData('publicationId'),
+ ]
+ ),
+ __('grid.catalogEntry.approvedRepresentation.title'),
+ 'modal_approve'
+ ),
+ $data->getIsApproved() ? __('submission.complete') : __('submission.incomplete'),
+ $data->getIsApproved() ? 'complete' : 'incomplete',
+ __('grid.action.setApproval')
+ )];
+ }
+ } else {
+ assert(is_array($data) && isset($data['submissionFile']));
+ $submissionFile = $data['submissionFile'];
+ switch ($column->getId()) {
+ case 'isAvailable':
+ $salesType = preg_replace('/[^\da-z]/i', '', $submissionFile->getSalesType());
+ $salesTypeString = 'editor.monograph.approvedProofs.edit.linkTitle';
+ if ($salesType == 'openAccess') {
+ $salesTypeString = 'payment.directSales.openAccess';
+ } elseif ($salesType == 'directSales') {
+ $salesTypeString = 'payment.directSales.directSales';
+ } elseif ($salesType == 'notAvailable') {
+ $salesTypeString = 'payment.directSales.notAvailable';
+ }
+ return [new LinkAction(
+ 'editApprovedProof',
+ new AjaxModal(
+ $router->url($request, null, null, 'editApprovedProof', null, [
+ 'submissionFileId' => $submissionFile->getId(),
+ 'submissionId' => $submissionFile->getData('submissionId'),
+ 'publicationId' => $this->getPublicationId(),
+ 'representationId' => $submissionFile->getData('assocId'),
+ ]),
+ __('editor.monograph.approvedProofs.edit'),
+ 'edit'
+ ),
+ __($salesTypeString),
+ $salesType
+ )];
+ case 'name':
+ $fileNameColumn = new FileNameGridColumn(true, WORKFLOW_STAGE_ID_PRODUCTION, true);
+ return $fileNameColumn->getCellActions($request, $row, $position);
+ case 'isComplete':
+ $title = __($submissionFile->getViewable() ? 'editor.submission.proofreading.revokeProofApproval' : 'editor.submission.proofreading.approveProof');
+ return [new LinkAction(
+ $submissionFile->getViewable() ? 'approved' : 'not_approved',
+ new AjaxModal(
+ $router->url(
+ $request,
+ null,
+ null,
+ 'setProofFileCompletion',
+ null,
+ [
+ 'submissionId' => $submissionFile->getData('submissionId'),
+ 'publicationId' => $this->getPublicationId(),
+ 'submissionFileId' => $submissionFile->getId(),
+ 'approval' => !$submissionFile->getData('viewable'),
+ ]
+ ),
+ $title,
+ 'modal_approve'
+ ),
+ $submissionFile->getViewable() ? __('grid.catalogEntry.availableRepresentation.approved') : __('grid.catalogEntry.availableRepresentation.notApproved'),
+ $submissionFile->getViewable() ? 'complete' : 'incomplete',
+ __('grid.action.setApproval')
+ )];
+ }
+ }
+ return parent::getCellActions($request, $row, $column, $position);
+ }
+}
diff --git a/controllers/grid/catalogEntry/PublicationFormatGridHandler.inc.php b/controllers/grid/catalogEntry/PublicationFormatGridHandler.inc.php
deleted file mode 100644
index 4c95898eec0..00000000000
--- a/controllers/grid/catalogEntry/PublicationFormatGridHandler.inc.php
+++ /dev/null
@@ -1,683 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR),
- array(
- 'setAvailable', 'editApprovedProof', 'saveApprovedProof',
- )
- );
- $this->addRoleAssignment(
- array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT),
- array(
- 'addFormat', 'editFormat', 'editFormatTab', 'updateFormat', 'deleteFormat',
- 'setApproved', 'setProofFileCompletion', 'selectFiles',
- 'identifiers', 'updateIdentifiers', 'clearPubId',
- 'dependentFiles', 'editFormatMetadata', 'updateFormatMetadata'
- )
- );
- $this->addRoleAssignment(
- array(ROLE_ID_AUTHOR, ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT),
- array(
- 'fetchGrid', 'fetchRow', 'fetchCategory',
- )
- );
- }
-
-
- //
- // Getters/Setters
- //
- /**
- * Get the submission associated with this publication format grid.
- * @return Submission
- */
- function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Set the submission
- * @param $submission Submission
- */
- function setSubmission($submission) {
- $this->_submission = $submission;
- }
-
- /**
- * Get the publication associated with this publication format grid.
- * @return Publication
- */
- function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the publication
- * @param $publication Publication
- */
- function setPublication($publication) {
- $this->_publication = $publication;
- }
-
- //
- // Overridden methods from PKPHandler
- //
- /**
- * @copydoc CategoryGridHandler::initialize
- */
- function initialize($request, $args = null) {
- parent::initialize($request, $args);
-
- // Retrieve the authorized submission.
- $this->setSubmission($this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION));
- $this->setPublication($this->getAuthorizedContextObject(ASSOC_TYPE_PUBLICATION));
-
- // Load submission-specific translations
- AppLocale::requireComponents(
- LOCALE_COMPONENT_PKP_SUBMISSION,
- LOCALE_COMPONENT_PKP_EDITOR,
- LOCALE_COMPONENT_PKP_USER,
- LOCALE_COMPONENT_PKP_DEFAULT
- );
- $this->setTitle('monograph.publicationFormats');
-
- // Load submission-specific translations
- AppLocale::requireComponents(
- LOCALE_COMPONENT_APP_SUBMISSION,
- LOCALE_COMPONENT_APP_DEFAULT,
- LOCALE_COMPONENT_APP_EDITOR
- );
-
- if($this->getPublication()->getData('status') !== STATUS_PUBLISHED) {
- // Grid actions
- $router = $request->getRouter();
- $actionArgs = $this->getRequestArgs();
- $userRoles = $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
- $this->_canManage = 0 != count(array_intersect($userRoles, array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT)));
- if ($this->_canManage) $this->addAction(
- new LinkAction(
- 'addFormat',
- new AjaxModal(
- $router->url($request, null, null, 'addFormat', null, $actionArgs),
- __('grid.action.addFormat'),
- 'modal_add_item'
- ),
- __('grid.action.addFormat'),
- 'add_item'
- )
- );
- }
-
- // Columns
- import('controllers.grid.catalogEntry.PublicationFormatGridCellProvider');
- $this->_cellProvider = new PublicationFormatGridCellProvider($this->getSubmission()->getId(), $this->_canManage, $this->getPublication()->getId());
- $this->addColumn(
- new GridColumn(
- 'name',
- 'common.name',
- null,
- null,
- $this->_cellProvider,
- array('width' => 60, 'anyhtml' => true)
- )
- );
- if ($this->_canManage) {
- $this->addColumn(
- new GridColumn(
- 'isComplete',
- 'common.complete',
- null,
- 'controllers/grid/common/cell/statusCell.tpl',
- $this->_cellProvider,
- array('width' => 20)
- )
- );
- $this->addColumn(
- new GridColumn(
- 'isAvailable',
- 'grid.catalogEntry.availability',
- null,
- 'controllers/grid/common/cell/statusCell.tpl',
- $this->_cellProvider,
- array('width' => 20)
- )
- );
- }
- }
-
- /**
- * @see PKPHandler::authorize()
- * @param $request PKPRequest
- * @param $args array
- * @param $roleAssignments array
- */
- function authorize($request, &$args, $roleAssignments) {
- import('lib.pkp.classes.security.authorization.PublicationAccessPolicy');
- $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
-
- if ($request->getUserVar('representationId')) {
- import('lib.pkp.classes.security.authorization.internal.RepresentationRequiredPolicy');
- $this->addPolicy(new RepresentationRequiredPolicy($request, $args));
- }
-
- return parent::authorize($request, $args, $roleAssignments);
- }
-
-
- //
- // Overridden methods from GridHandler
- //
- /**
- * @see GridHandler::getRowInstance()
- * @return PublicationFormatGridCategoryRow
- */
- function getCategoryRowInstance() {
- return new PublicationFormatGridCategoryRow($this->getSubmission(), $this->_cellProvider, $this->_canManage, $this->getPublication());
- }
-
-
- //
- // Public Publication Format Grid Actions
- //
- /**
- * Edit a publication format modal
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editFormat($args, $request) {
- $representationDao = Application::getRepresentationDAO();
- $representationId = $request->getUserVar('representationId');
- $representation = $representationDao->getById(
- $representationId,
- $this->getPublication()->getId()
- );
- // Check if this is a remote galley
- $remoteURL = isset($representation) ? $representation->getRemoteURL() : null;
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign('submissionId', $this->getSubmission()->getId());
- $templateMgr->assign('publicationId', $this->getPublication()->getId());
- $templateMgr->assign('representationId', $representationId);
- $templateMgr->assign('remoteRepresentation', $remoteURL);
-
- $publisherIdEnabled = in_array('representation', (array) $request->getContext()->getData('enablePublisherId'));
- $pubIdPlugins = PluginRegistry::getPlugins('pubIds');
- $pubIdEnabled = false;
- foreach ($pubIdPlugins as $pubIdPlugin) {
- if ($pubIdPlugin->isObjectTypeEnabled('Representation', $request->getContext()->getId())) {
- $pubIdEnabled = true;
- break;
- }
- }
- $templateMgr->assign('showIdentifierTab', $publisherIdEnabled || $pubIdEnabled);
-
- return new JSONMessage(true, $templateMgr->fetch('controllers/grid/catalogEntry/editFormat.tpl'));
- }
-
- /**
- * Edit a format
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editFormatTab($args, $request) {
- $representationDao = Application::getRepresentationDAO();
- $representation = $representationDao->getById(
- $request->getUserVar('representationId'),
- $this->getPublication()->getId()
- );
-
- import('controllers.grid.catalogEntry.form.PublicationFormatForm');
- $publicationFormatForm = new PublicationFormatForm($this->getSubmission(), $representation, $this->getPublication());
- $publicationFormatForm->initData();
-
- return new JSONMessage(true, $publicationFormatForm->fetch($request));
- }
-
- /**
- * Update a format
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateFormat($args, $request) {
- $representationDao = Application::getRepresentationDAO();
- $representation = $representationDao->getById(
- $request->getUserVar('representationId'),
- $this->getPublication()->getId()
- );
-
- import('controllers.grid.catalogEntry.form.PublicationFormatForm');
- $publicationFormatForm = new PublicationFormatForm($this->getSubmission(), $representation, $this->getPublication());
- $publicationFormatForm->readInputData();
- if ($publicationFormatForm->validate()) {
- $publicationFormatForm->execute();
- return DAO::getDataChangedEvent();
- }
- return new JSONMessage(true, $publicationFormatForm->fetch($request));
- }
-
- /**
- * Delete a format
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deleteFormat($args, $request) {
- $context = $request->getContext();
- $submission = $this->getSubmission();
- $representationDao = Application::getRepresentationDAO();
- $representation = $representationDao->getById(
- $request->getUserVar('representationId'),
- $this->getPublication()->getId()
- );
-
- if (!$request->checkCSRF() || !$representation) {
- return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
- }
-
- Services::get('publicationFormat')->deleteFormat($representation, $submission, $context);
-
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.removedPublicationFormat')));
-
- return DAO::getDataChangedEvent();
- }
-
- /**
- * Set a format's "approved" state
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function setApproved($args, $request) {
- $representation = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
- $representationDao = Application::getRepresentationDAO();
-
- if (!$representation) return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
-
- $confirmationText = __('grid.catalogEntry.approvedRepresentation.removeMessage');
- if ($request->getUserVar('newApprovedState')) {
- $confirmationText = __('grid.catalogEntry.approvedRepresentation.message');
- }
- import('lib.pkp.controllers.grid.pubIds.form.PKPAssignPublicIdentifiersForm');
- $formTemplate = $this->getAssignPublicIdentifiersFormTemplate();
- $assignPublicIdentifiersForm = new PKPAssignPublicIdentifiersForm($formTemplate, $representation, $request->getUserVar('newApprovedState'), $confirmationText);
- if (!$request->getUserVar('confirmed')) {
- // Display assign pub ids modal
- $assignPublicIdentifiersForm->initData();
- return new JSONMessage(true, $assignPublicIdentifiersForm->fetch($request));
- }
- if ($request->getUserVar('newApprovedState')) {
- // Assign pub ids
- $assignPublicIdentifiersForm->readInputData();
- $assignPublicIdentifiersForm->execute();
- }
-
- $newApprovedState = (int) $request->getUserVar('newApprovedState');
- $representation->setIsApproved($newApprovedState);
- $representationDao->updateObject($representation);
-
- // log the state changing of the format.
- import('lib.pkp.classes.log.SubmissionLog');
- import('classes.log.SubmissionEventLogEntry');
- SubmissionLog::logEvent(
- $request, $this->getSubmission(),
- $newApprovedState?SUBMISSION_LOG_PUBLICATION_FORMAT_PUBLISH:SUBMISSION_LOG_PUBLICATION_FORMAT_UNPUBLISH,
- $newApprovedState?'submission.event.publicationFormatPublished':'submission.event.publicationFormatUnpublished',
- array('publicationFormatName' => $representation->getLocalizedName())
- );
-
- // Update the formats tombstones.
- import('classes.publicationFormat.PublicationFormatTombstoneManager');
- $publicationFormatTombstoneMgr = new PublicationFormatTombstoneManager();
- if ($representation->getIsAvailable() && $representation->getIsApproved()) {
- // Delete any existing tombstone.
- $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats(array($representation));
- } else {
- // (Re)create a tombstone for this publication format.
- $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats(array($representation));
- $publicationFormatTombstoneMgr->insertTombstoneByPublicationFormat($representation, $request->getContext());
- }
-
- return DAO::getDataChangedEvent($representation->getId());
- }
-
- /**
- * Set a format's "available" state
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function setAvailable($args, $request) {
- $context = $request->getContext();
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $publicationFormat = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
-
- if (!$publicationFormat) return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
-
- $newAvailableState = (int) $request->getUserVar('newAvailableState');
- $publicationFormat->setIsAvailable($newAvailableState);
- $publicationFormatDao->updateObject($publicationFormat);
-
- // log the state changing of the format.
- import('lib.pkp.classes.log.SubmissionLog');
- import('classes.log.SubmissionEventLogEntry');
- SubmissionLog::logEvent(
- $request, $this->getSubmission(),
- $newAvailableState?SUBMISSION_LOG_PUBLICATION_FORMAT_AVAILABLE:SUBMISSION_LOG_PUBLICATION_FORMAT_UNAVAILABLE,
- $newAvailableState?'submission.event.publicationFormatMadeAvailable':'submission.event.publicationFormatMadeUnavailable',
- array('publicationFormatName' => $publicationFormat->getLocalizedName())
- );
-
- // Update the formats tombstones.
- import('classes.publicationFormat.PublicationFormatTombstoneManager');
- $publicationFormatTombstoneMgr = new PublicationFormatTombstoneManager();
- if ($publicationFormat->getIsAvailable() && $publicationFormat->getIsApproved()) {
- // Delete any existing tombstone.
- $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats(array($publicationFormat));
- } else {
- // (Re)create a tombstone for this publication format.
- $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats(array($publicationFormat));
- $publicationFormatTombstoneMgr->insertTombstoneByPublicationFormat($publicationFormat, $context);
- }
-
- return DAO::getDataChangedEvent($publicationFormat->getId());
- }
-
- /**
- * Edit an approved proof.
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editApprovedProof($args, $request) {
- $this->initialize($request);
- $submission = $this->getSubmission();
- $representation = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
-
- import('controllers.grid.files.proof.form.ApprovedProofForm');
- $approvedProofForm = new ApprovedProofForm($submission, $representation, $request->getUserVar('submissionFileId'));
- $approvedProofForm->initData();
-
- return new JSONMessage(true, $approvedProofForm->fetch($request));
- }
-
- /**
- * Save an approved proof.
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function saveApprovedProof($args, $request) {
- $submission = $this->getSubmission();
- $representation = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
-
- import('controllers.grid.files.proof.form.ApprovedProofForm');
- $approvedProofForm = new ApprovedProofForm($submission, $representation, $request->getUserVar('submissionFileId'));
- $approvedProofForm->readInputData();
-
- if ($approvedProofForm->validate()) {
- $approvedProofForm->execute();
- return DAO::getDataChangedEvent();
- }
- return new JSONMessage(true, $approvedProofForm->fetch($request));
- }
-
- /**
- * Get the filename of the "assign public identifiers" form template.
- * @return string
- */
- function getAssignPublicIdentifiersFormTemplate() {
- return 'controllers/grid/pubIds/form/assignPublicIdentifiersForm.tpl';
- }
-
- //
- // Overridden methods from GridHandler
- //
- /**
- * @copydoc GridHandler::getRowInstance()
- */
- function getRowInstance() {
- return new PublicationFormatGridRow($this->_canManage);
- }
-
- /**
- * Get the arguments that will identify the data in the grid
- * In this case, the submission.
- * @return array
- */
- function getRequestArgs() {
- return array(
- 'submissionId' => $this->getSubmission()->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- );
- }
-
-
- //
- // Public grid actions
- //
- /**
- * Add a new publication format
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function addFormat($args, $request) {
- return $this->editFormat($args, $request);
- }
-
- /**
- * Set the approval status for a file.
- * @param $args array
- * @param $request PKPRequest
- */
- function setProofFileCompletion($args, $request) {
- $submission = $this->getSubmission();
- import('lib.pkp.classes.submission.SubmissionFile'); // Constants
- $submissionFile = Services::get('submissionFile')->get($request->getUserVar('submissionFileId'));
- if ($submissionFile->getData('fileStage') !== SUBMISSION_FILE_PROOF || $submissionFile->getData('submissionId') != $submission->getId()) {
- return new JSONMessage(false);
- }
- $confirmationText = __('editor.submission.proofreading.confirmRemoveCompletion');
- if ($request->getUserVar('approval')) {
- $confirmationText = __('editor.submission.proofreading.confirmCompletion');
- }
- if ($submissionFile && $submissionFile->getData('assocType')==ASSOC_TYPE_REPRESENTATION) {
- import('lib.pkp.controllers.grid.pubIds.form.PKPAssignPublicIdentifiersForm');
- $formTemplate = $this->getAssignPublicIdentifiersFormTemplate();
- $assignPublicIdentifiersForm = new PKPAssignPublicIdentifiersForm($formTemplate, $submissionFile, $request->getUserVar('approval'), $confirmationText);
- if (!$request->getUserVar('confirmed')) {
- // Display assign pub ids modal
- $assignPublicIdentifiersForm->initData();
- return new JSONMessage(true, $assignPublicIdentifiersForm->fetch($request));
- }
- if ($request->getUserVar('approval')) {
- // Asign pub ids
- $assignPublicIdentifiersForm->readInputData();
- $assignPublicIdentifiersForm->execute();
- }
- // Update the approval flag
- $params = ['viewable' => (bool) $request->getUserVar('approval')];
- $submissionFile = Services::get('submissionFile')->edit($submissionFile, $params, $request);
-
- // Log the event
- import('lib.pkp.classes.log.SubmissionFileLog');
- import('lib.pkp.classes.log.SubmissionFileEventLogEntry'); // constants
- $user = $request->getUser();
- SubmissionFileLog::logEvent($request, $submissionFile, SUBMISSION_LOG_FILE_SIGNOFF_SIGNOFF, 'submission.event.signoffSignoff', array('file' => $submissionFile->getLocalizedData('name'), 'name' => $user->getFullName(), 'username' => $user->getUsername()));
-
- return DAO::getDataChangedEvent();
- }
- return new JSONMessage(false);
- }
-
- /**
- * Show the form to allow the user to select files from previous stages
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function selectFiles($args, $request) {
- $representation = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
-
- import('lib.pkp.controllers.grid.files.proof.form.ManageProofFilesForm');
- $manageProofFilesForm = new ManageProofFilesForm($this->getSubmission()->getId(), $this->getPublication()->getId(), $representation->getId());
- $manageProofFilesForm->initData();
- return new JSONMessage(true, $manageProofFilesForm->fetch($request));
- }
-
- /**
- * Load a form to edit a format's metadata
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editFormatMetadata($args, $request) {
- $representation = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
-
- import('controllers.grid.catalogEntry.form.PublicationFormatMetadataForm');
- $publicationFormatForm = new PublicationFormatMetadataForm($this->getSubmission(), $this->getPublication(), $representation);
- $publicationFormatForm->initData();
-
- return new JSONMessage(true, $publicationFormatForm->fetch($request));
- }
-
- /**
- * Save a form to edit format's metadata
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateFormatMetadata($args, $request) {
- $representation = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
-
- import('controllers.grid.catalogEntry.form.PublicationFormatMetadataForm');
- $publicationFormatForm = new PublicationFormatMetadataForm($this->getSubmission(), $this->getPublication(), $representation);
- $publicationFormatForm->readInputData();
- if ($publicationFormatForm->validate()) {
- $publicationFormatForm->execute();
- return DAO::getDataChangedEvent();
- }
-
- return new JSONMessage(true, $publicationFormatForm->fetch($request));
- }
-
- /**
- * Edit pub ids
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function identifiers($args, $request) {
- $representation = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
-
- import('controllers.tab.pubIds.form.PublicIdentifiersForm');
- $form = new PublicIdentifiersForm($representation);
- $form->initData();
- return new JSONMessage(true, $form->fetch($request));
- }
-
- /**
- * Update pub ids
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateIdentifiers($args, $request) {
- $representation = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
-
- import('controllers.tab.pubIds.form.PublicIdentifiersForm');
- $form = new PublicIdentifiersForm($representation);
- $form->readInputData();
- if ($form->validate()) {
- $form->execute();
- return DAO::getDataChangedEvent();
- } else {
- return new JSONMessage(true, $form->fetch($request));
- }
- }
-
- /**
- * Clear pub id
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function clearPubId($args, $request) {
- if (!$request->checkCSRF()) return new JSONMessage(false);
-
- $representation = $this->getAuthorizedContextObject(ASSOC_TYPE_REPRESENTATION);
-
- import('controllers.tab.pubIds.form.PublicIdentifiersForm');
- $form = new PublicIdentifiersForm($representation);
- $form->clearPubId($request->getUserVar('pubIdPlugIn'));
- return new JSONMessage(true);
- }
-
- /**
- * Show dependent files for a monograph file.
- * @param $args array
- * @param $request PKPRequest
- */
- function dependentFiles($args, $request) {
- $submission = $this->getSubmission();
- import('lib.pkp.classes.submission.SubmissionFile'); // Constants
- $submissionFile = Services::get('submissionFile')->get($request->getUserVar('submissionFileId'));
- if ($submissionFile->getData('fileStage') !== SUBMISSION_FILE_PROOF || $submissionFile->getData('submissionId') != $submission->getId()) {
- return new JSONMessage(false);
- }
-
- // Check if this is a remote galley
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign(array(
- 'submissionId' => $this->getSubmission()->getId(),
- 'submissionFile' => $submissionFile,
- ));
- return new JSONMessage(true, $templateMgr->fetch('controllers/grid/catalogEntry/dependentFiles.tpl'));
- }
-}
diff --git a/controllers/grid/catalogEntry/PublicationFormatGridHandler.php b/controllers/grid/catalogEntry/PublicationFormatGridHandler.php
new file mode 100644
index 00000000000..6fbfdb65825
--- /dev/null
+++ b/controllers/grid/catalogEntry/PublicationFormatGridHandler.php
@@ -0,0 +1,784 @@
+addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_SITE_ADMIN],
+ [
+ 'setAvailable', 'editApprovedProof', 'saveApprovedProof',
+ ]
+ );
+ $this->addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_ASSISTANT, Role::ROLE_ID_SITE_ADMIN],
+ [
+ 'addFormat', 'editFormat', 'editFormatTab', 'updateFormat', 'deleteFormat',
+ 'setApproved', 'setProofFileCompletion', 'selectFiles',
+ 'identifiers', 'updateIdentifiers', 'clearPubId',
+ 'dependentFiles', 'editFormatMetadata', 'updateFormatMetadata'
+ ]
+ );
+ $this->addRoleAssignment(
+ [Role::ROLE_ID_AUTHOR, Role::ROLE_ID_MANAGER, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_ASSISTANT, Role::ROLE_ID_SITE_ADMIN],
+ [
+ 'fetchGrid', 'fetchRow', 'fetchCategory',
+ ]
+ );
+ }
+
+
+ //
+ // Getters/Setters
+ //
+ /**
+ * Get the submission associated with this publication format grid.
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Set the submission
+ *
+ * @param Submission $submission
+ */
+ public function setSubmission($submission)
+ {
+ $this->_submission = $submission;
+ }
+
+ /**
+ * Get the publication associated with this publication format grid.
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the publication
+ *
+ * @param Publication $publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+ //
+ // Overridden methods from PKPHandler
+ //
+ /**
+ * @copydoc CategoryGridHandler::initialize
+ *
+ * @param null|mixed $args
+ */
+ public function initialize($request, $args = null)
+ {
+ parent::initialize($request, $args);
+
+ // Retrieve the authorized submission.
+ $this->setSubmission($this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION));
+ $this->setPublication($this->getAuthorizedContextObject(Application::ASSOC_TYPE_PUBLICATION));
+
+ $this->setTitle('monograph.publicationFormats');
+
+ if ($this->getPublication()->getData('status') !== PKPSubmission::STATUS_PUBLISHED) {
+ // Grid actions
+ $router = $request->getRouter();
+ $actionArgs = $this->getRequestArgs();
+ $userRoles = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_USER_ROLES);
+ $this->_canManage = 0 != count(array_intersect($userRoles, [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_ASSISTANT]));
+ if ($this->_canManage) {
+ $this->addAction(
+ new LinkAction(
+ 'addFormat',
+ new AjaxModal(
+ $router->url($request, null, null, 'addFormat', null, $actionArgs),
+ __('grid.action.addFormat'),
+ 'modal_add_item'
+ ),
+ __('grid.action.addFormat'),
+ 'add_item'
+ )
+ );
+ }
+ }
+
+ // Columns
+ $this->_cellProvider = new PublicationFormatGridCellProvider($this->getSubmission()->getId(), $this->_canManage, $this->getPublication()->getId());
+ $this->addColumn(
+ new GridColumn(
+ 'name',
+ 'common.name',
+ null,
+ null,
+ $this->_cellProvider,
+ ['width' => 60, 'anyhtml' => true]
+ )
+ );
+ if ($this->_canManage) {
+ $this->addColumn(
+ new GridColumn(
+ 'isComplete',
+ 'common.complete',
+ null,
+ 'controllers/grid/common/cell/statusCell.tpl',
+ $this->_cellProvider,
+ ['width' => 20]
+ )
+ );
+ $this->addColumn(
+ new GridColumn(
+ 'isAvailable',
+ 'grid.catalogEntry.availability',
+ null,
+ 'controllers/grid/common/cell/statusCell.tpl',
+ $this->_cellProvider,
+ ['width' => 20]
+ )
+ );
+ }
+ }
+
+ /**
+ * @see PKPHandler::authorize()
+ *
+ * @param Request $request
+ * @param array $args
+ * @param array $roleAssignments
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
+
+ if ($request->getUserVar('representationId')) {
+ $this->addPolicy(new RepresentationRequiredPolicy($request, $args));
+ }
+
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+
+
+ //
+ // Overridden methods from GridHandler
+ //
+ /**
+ * @see GridHandler::getRowInstance()
+ *
+ * @return PublicationFormatGridCategoryRow
+ */
+ public function getCategoryRowInstance()
+ {
+ return new PublicationFormatGridCategoryRow($this->getSubmission(), $this->_cellProvider, $this->_canManage, $this->getPublication());
+ }
+
+
+ //
+ // Public Publication Format Grid Actions
+ //
+ /**
+ * Edit a publication format modal
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editFormat($args, $request)
+ {
+ $representation = $this->getRequestedPublicationFormat($request);
+ // Check if this is a remote galley
+ $remoteURL = isset($representation) ? $representation->getRemoteURL() : null;
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->assign('submissionId', $this->getSubmission()->getId());
+ $templateMgr->assign('publicationId', $this->getPublication()->getId());
+ $templateMgr->assign('remoteRepresentation', $remoteURL);
+ if ($representation) {
+ $templateMgr->assign('representationId', $representation->getId());
+ }
+
+ $publisherIdEnabled = in_array('representation', (array) $request->getContext()->getData('enablePublisherId'));
+ $pubIdPlugins = PluginRegistry::getPlugins('pubIds');
+ $pubIdEnabled = false;
+ foreach ($pubIdPlugins as $pubIdPlugin) {
+ if ($pubIdPlugin->isObjectTypeEnabled('Representation', $request->getContext()->getId())) {
+ $pubIdEnabled = true;
+ break;
+ }
+ }
+ $templateMgr->assign('showIdentifierTab', $publisherIdEnabled || $pubIdEnabled);
+
+ return new JSONMessage(true, $templateMgr->fetch('controllers/grid/catalogEntry/editFormat.tpl'));
+ }
+
+ /**
+ * Edit a format
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editFormatTab($args, $request)
+ {
+ $representation = $this->getRequestedPublicationFormat($request);
+
+ $publicationFormatForm = new PublicationFormatForm($this->getSubmission(), $representation, $this->getPublication());
+ $publicationFormatForm->initData();
+
+ return new JSONMessage(true, $publicationFormatForm->fetch($request));
+ }
+
+ /**
+ * Update a format
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateFormat($args, $request)
+ {
+ $representation = $this->getRequestedPublicationFormat($request);
+
+ $publicationFormatForm = new PublicationFormatForm($this->getSubmission(), $representation, $this->getPublication());
+ $publicationFormatForm->readInputData();
+ if ($publicationFormatForm->validate()) {
+ $publicationFormatForm->execute();
+ return DAO::getDataChangedEvent();
+ }
+ return new JSONMessage(true, $publicationFormatForm->fetch($request));
+ }
+
+ /**
+ * Delete a format
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deleteFormat($args, $request)
+ {
+ $context = $request->getContext();
+ $submission = $this->getSubmission();
+ $representation = $this->getRequestedPublicationFormat($request);
+
+ if (!$request->checkCSRF()) {
+ return new JSONMessage(false, __('form.csrfInvalid'));
+ }
+
+ if (!$representation) {
+ return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
+ }
+
+ /** @var PublicationFormatService */
+ $publicationFormatService = Services::get('publicationFormat');
+ $publicationFormatService->deleteFormat($representation, $submission, $context);
+
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => __('notification.removedPublicationFormat')]);
+
+ return DAO::getDataChangedEvent();
+ }
+
+ /**
+ * Set a format's "approved" state
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function setApproved($args, $request)
+ {
+ $representation = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+ $representationDao = Application::getRepresentationDAO();
+
+ if (!$representation) {
+ return new JSONMessage(false, __('common.unknownError'));
+ }
+
+ $confirmationText = __('grid.catalogEntry.approvedRepresentation.removeMessage');
+ if ($request->getUserVar('newApprovedState')) {
+ $confirmationText = __('grid.catalogEntry.approvedRepresentation.message');
+ }
+ $formTemplate = $this->getAssignPublicIdentifiersFormTemplate();
+ $assignPublicIdentifiersForm = new PKPAssignPublicIdentifiersForm($formTemplate, $representation, $request->getUserVar('newApprovedState'), $confirmationText);
+ if (!$request->getUserVar('confirmed')) {
+ // Display assign pub ids modal
+ $assignPublicIdentifiersForm->initData();
+ return new JSONMessage(true, $assignPublicIdentifiersForm->fetch($request));
+ }
+ if ($request->getUserVar('newApprovedState')) {
+ // Assign pub ids
+ $assignPublicIdentifiersForm->readInputData();
+ $assignPublicIdentifiersForm->execute();
+ }
+
+ $newApprovedState = (int) $request->getUserVar('newApprovedState');
+ $representation->setIsApproved($newApprovedState);
+ $representationDao->updateObject($representation);
+
+ $logEntry = Repo::eventLog()->newDataObject([
+ 'assocType' => PKPApplication::ASSOC_TYPE_SUBMISSION,
+ 'assocId' => $this->getSubmission()->getId(),
+ 'eventType' => $newApprovedState ? SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_PUBLISH : SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_UNPUBLISH,
+ 'userId' => $request->getUser()?->getId(),
+ 'message' => $newApprovedState ? 'submission.event.publicationFormatPublished' : 'submission.event.publicationFormatUnpublished',
+ 'isTranslated' => false,
+ 'dateLogged' => Core::getCurrentDate(),
+ 'publicationFormatName' => $representation->getData('name')
+ ]);
+ Repo::eventLog()->add($logEntry);
+
+ // Update the formats tombstones.
+ $publicationFormatTombstoneMgr = new PublicationFormatTombstoneManager();
+ if ($representation->getIsAvailable() && $representation->getIsApproved()) {
+ // Delete any existing tombstone.
+ $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats([$representation]);
+ } else {
+ // (Re)create a tombstone for this publication format.
+ $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats([$representation]);
+ $publicationFormatTombstoneMgr->insertTombstoneByPublicationFormat($representation, $request->getContext());
+ }
+
+ return DAO::getDataChangedEvent($representation->getId());
+ }
+
+ /**
+ * Set a format's "available" state
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function setAvailable($args, $request)
+ {
+ $context = $request->getContext();
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $publicationFormat = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+
+ if (!$publicationFormat) {
+ return new JSONMessage(false, __('common.unknownError'));
+ }
+
+ $newAvailableState = (int) $request->getUserVar('newAvailableState');
+ $publicationFormat->setIsAvailable($newAvailableState);
+ $publicationFormatDao->updateObject($publicationFormat);
+
+ // log the state changing of the format.
+ $logEntry = Repo::eventLog()->newDataObject([
+ 'assocType' => PKPApplication::ASSOC_TYPE_SUBMISSION,
+ 'assocId' => $this->getSubmission()->getId(),
+ 'eventType' => $newAvailableState ? SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_AVAILABLE : SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_UNAVAILABLE,
+ 'userId' => $request->getUser()?->getId(),
+ 'message' => $newAvailableState ? 'submission.event.publicationFormatMadeAvailable' : 'submission.event.publicationFormatMadeUnavailable',
+ 'isTranslated' => false,
+ 'dateLogged' => Core::getCurrentDate(),
+ 'publicationFormatName' => $publicationFormat->getData('name')
+ ]);
+ Repo::eventLog()->add($logEntry);
+
+ // Update the formats tombstones.
+ $publicationFormatTombstoneMgr = new PublicationFormatTombstoneManager();
+ if ($publicationFormat->getIsAvailable() && $publicationFormat->getIsApproved()) {
+ // Delete any existing tombstone.
+ $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats([$publicationFormat]);
+ } else {
+ // (Re)create a tombstone for this publication format.
+ $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats([$publicationFormat]);
+ $publicationFormatTombstoneMgr->insertTombstoneByPublicationFormat($publicationFormat, $context);
+ }
+
+ return DAO::getDataChangedEvent($publicationFormat->getId());
+ }
+
+ /**
+ * Edit an approved proof.
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editApprovedProof($args, $request)
+ {
+ $this->initialize($request);
+ $submission = $this->getSubmission();
+ $representation = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+
+ $approvedProofForm = new ApprovedProofForm($submission, $representation, $request->getUserVar('submissionFileId'));
+ $approvedProofForm->initData();
+
+ return new JSONMessage(true, $approvedProofForm->fetch($request));
+ }
+
+ /**
+ * Save an approved proof.
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function saveApprovedProof($args, $request)
+ {
+ $submission = $this->getSubmission();
+ $representation = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+
+ $approvedProofForm = new ApprovedProofForm($submission, $representation, $request->getUserVar('submissionFileId'));
+ $approvedProofForm->readInputData();
+
+ if ($approvedProofForm->validate()) {
+ $approvedProofForm->execute();
+ return DAO::getDataChangedEvent();
+ }
+ return new JSONMessage(true, $approvedProofForm->fetch($request));
+ }
+
+ /**
+ * Get the filename of the "assign public identifiers" form template.
+ *
+ * @return string
+ */
+ public function getAssignPublicIdentifiersFormTemplate()
+ {
+ return 'controllers/grid/pubIds/form/assignPublicIdentifiersForm.tpl';
+ }
+
+ //
+ // Overridden methods from GridHandler
+ //
+ /**
+ * @copydoc GridHandler::getRowInstance()
+ */
+ public function getRowInstance()
+ {
+ return new PublicationFormatGridRow($this->_canManage);
+ }
+
+ /**
+ * Get the arguments that will identify the data in the grid
+ * In this case, the submission.
+ *
+ * @return array
+ */
+ public function getRequestArgs()
+ {
+ return [
+ 'submissionId' => $this->getSubmission()->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ ];
+ }
+
+
+ //
+ // Public grid actions
+ //
+ /**
+ * Add a new publication format
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function addFormat($args, $request)
+ {
+ return $this->editFormat($args, $request);
+ }
+
+ /**
+ * Set the approval status for a file.
+ *
+ * @param array $args
+ * @param Request $request
+ */
+ public function setProofFileCompletion($args, $request)
+ {
+ $submission = $this->getSubmission();
+ $submissionFileId = (int) $request->getUserVar('submissionFileId');
+ $submissionFile = Repo::submissionFile()->get($submissionFileId);
+ if ($submissionFile->getData('fileStage') !== SubmissionFile::SUBMISSION_FILE_PROOF || $submissionFile->getData('submissionId') != $submission->getId()) {
+ return new JSONMessage(false);
+ }
+ $confirmationText = __('editor.submission.proofreading.confirmRemoveCompletion');
+ if ($request->getUserVar('approval')) {
+ $confirmationText = __('editor.submission.proofreading.confirmCompletion');
+ }
+ if ($submissionFile && $submissionFile->getData('assocType') == Application::ASSOC_TYPE_REPRESENTATION) {
+ $formTemplate = $this->getAssignPublicIdentifiersFormTemplate();
+ $assignPublicIdentifiersForm = new PKPAssignPublicIdentifiersForm($formTemplate, $submissionFile, $request->getUserVar('approval'), $confirmationText);
+ if (!$request->getUserVar('confirmed')) {
+ // Display assign pub ids modal
+ $assignPublicIdentifiersForm->initData();
+ return new JSONMessage(true, $assignPublicIdentifiersForm->fetch($request));
+ }
+ if ($request->getUserVar('approval')) {
+ // Assign pub ids
+ $assignPublicIdentifiersForm->readInputData();
+ $assignPublicIdentifiersForm->execute();
+ }
+ // Update the approval flag
+ $params = ['viewable' => (bool) $request->getUserVar('approval')];
+ Repo::submissionFile()
+ ->edit($submissionFile, $params);
+
+ $submissionFile = Repo::submissionFile()->get($submissionFileId);
+
+ // Log the event
+ $user = $request->getUser();
+ $eventLog = Repo::eventLog()->newDataObject([
+ 'assocType' => PKPApplication::ASSOC_TYPE_SUBMISSION_FILE,
+ 'assocId' => $submissionFile->getId(),
+ 'eventType' => SubmissionFileEventLogEntry::SUBMISSION_LOG_FILE_SIGNOFF_SIGNOFF,
+ 'userId' => $user->getId(),
+ 'message' => 'submission.event.signoffSignoff',
+ 'isTranslated' => false,
+ 'dateLogged' => Core::getCurrentDate(),
+ 'filename' => $submissionFile->getData('name'),
+ 'userFullName' => $user->getFullName(),
+ 'username' => $user->getUsername()
+ ]);
+ Repo::eventLog()->add($eventLog);
+
+ return DAO::getDataChangedEvent();
+ }
+
+ return new JSONMessage(false);
+ }
+
+ /**
+ * Show the form to allow the user to select files from previous stages
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function selectFiles($args, $request)
+ {
+ $representation = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+
+ $manageProofFilesForm = new ManageProofFilesForm($this->getSubmission()->getId(), $this->getPublication()->getId(), $representation->getId());
+ $manageProofFilesForm->initData();
+ return new JSONMessage(true, $manageProofFilesForm->fetch($request));
+ }
+
+ /**
+ * Load a form to edit a format's metadata
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editFormatMetadata($args, $request)
+ {
+ $representation = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+
+ $publicationFormatForm = new PublicationFormatMetadataForm($this->getSubmission(), $this->getPublication(), $representation);
+ $publicationFormatForm->initData();
+
+ return new JSONMessage(true, $publicationFormatForm->fetch($request));
+ }
+
+ /**
+ * Save a form to edit format's metadata
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateFormatMetadata($args, $request)
+ {
+ $representation = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+
+ $publicationFormatForm = new PublicationFormatMetadataForm($this->getSubmission(), $this->getPublication(), $representation);
+ $publicationFormatForm->readInputData();
+ if ($publicationFormatForm->validate()) {
+ $publicationFormatForm->execute();
+ return DAO::getDataChangedEvent();
+ }
+
+ return new JSONMessage(true, $publicationFormatForm->fetch($request));
+ }
+
+ /**
+ * Edit pub ids
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function identifiers($args, $request)
+ {
+ $representation = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+
+ $form = new PublicIdentifiersForm($representation);
+ $form->initData();
+ return new JSONMessage(true, $form->fetch($request));
+ }
+
+ /**
+ * Update pub ids
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateIdentifiers($args, $request)
+ {
+ $representation = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+
+ $form = new PublicIdentifiersForm($representation);
+ $form->readInputData();
+ if ($form->validate()) {
+ $form->execute();
+ return DAO::getDataChangedEvent();
+ } else {
+ return new JSONMessage(true, $form->fetch($request));
+ }
+ }
+
+ /**
+ * Clear pub id
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function clearPubId($args, $request)
+ {
+ if (!$request->checkCSRF()) {
+ return new JSONMessage(false);
+ }
+
+ $representation = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_REPRESENTATION);
+
+ $form = new PublicIdentifiersForm($representation);
+ $form->clearPubId($request->getUserVar('pubIdPlugIn'));
+ return new JSONMessage(true);
+ }
+
+ /**
+ * Show dependent files for a monograph file.
+ *
+ * @param array $args
+ * @param Request $request
+ */
+ public function dependentFiles($args, $request)
+ {
+ $submission = $this->getSubmission();
+ $submissionFile = Repo::submissionFile()->get((int) $request->getUserVar('submissionFileId'));
+ if ($submissionFile->getData('fileStage') !== SubmissionFile::SUBMISSION_FILE_PROOF || $submissionFile->getData('submissionId') != $submission->getId()) {
+ return new JSONMessage(false);
+ }
+
+ // Check if this is a remote galley
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->assign([
+ 'submissionId' => $this->getSubmission()->getId(),
+ 'submissionFile' => $submissionFile,
+ ]);
+ return new JSONMessage(true, $templateMgr->fetch('controllers/grid/catalogEntry/dependentFiles.tpl'));
+ }
+
+ /**
+ * Get a publication format from the request param
+ */
+ public function getRequestedPublicationFormat(Request $request): ?PublicationFormat
+ {
+ $representationDao = Application::getRepresentationDAO();
+ $representationId = $request->getUserVar('representationId');
+ return $representationId
+ ? $representationDao->getById(
+ (int) $representationId,
+ $this->getPublication()->getId()
+ )
+ : null;
+ }
+}
diff --git a/controllers/grid/catalogEntry/PublicationFormatGridRow.inc.php b/controllers/grid/catalogEntry/PublicationFormatGridRow.inc.php
deleted file mode 100644
index 822d33bc8b6..00000000000
--- a/controllers/grid/catalogEntry/PublicationFormatGridRow.inc.php
+++ /dev/null
@@ -1,72 +0,0 @@
-_canManage = $canManage;
-
- parent::__construct(
- new FilesGridCapabilities(
- $canManage?FILE_GRID_ADD|FILE_GRID_DELETE|FILE_GRID_MANAGE|FILE_GRID_EDIT|FILE_GRID_VIEW_NOTES:0
- ),
- WORKFLOW_STAGE_ID_PRODUCTION
- );
- }
-
-
- //
- // Overridden template methods from GridRow
- //
- /**
- * @copydoc SubmissionFilesGridRow::initialize()
- */
- function initialize($request, $template = 'controllers/grid/gridRow.tpl') {
- parent::initialize($request, $template);
- $submissionFileData =& $this->getData();
- $submissionFile =& $submissionFileData['submissionFile']; /* @var $submissionFile SubmissionFile */
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $router = $request->getRouter();
- $mimetype = $submissionFile->getData('mimetype');
- if ($this->_canManage && in_array($mimetype, array('application/xml', 'text/html'))) {
- $this->addAction(new LinkAction(
- 'dependentFiles',
- new AjaxModal(
- $router->url($request, null, null, 'dependentFiles', null, array_merge(
- $this->getRequestArgs(),
- array(
- 'submissionFileId' => $submissionFile->getId(),
- )
- )),
- __('submission.dependentFiles'),
- 'modal_edit'
- ),
- __('submission.dependentFiles'),
- 'edit'
- ));
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/PublicationFormatGridRow.php b/controllers/grid/catalogEntry/PublicationFormatGridRow.php
new file mode 100644
index 00000000000..8f2187d2c1b
--- /dev/null
+++ b/controllers/grid/catalogEntry/PublicationFormatGridRow.php
@@ -0,0 +1,79 @@
+_canManage = $canManage;
+
+ parent::__construct(
+ new FilesGridCapabilities(
+ $canManage ? FilesGridCapabilities::FILE_GRID_ADD | FilesGridCapabilities::FILE_GRID_DELETE | FilesGridCapabilities::FILE_GRID_MANAGE | FilesGridCapabilities::FILE_GRID_EDIT | FilesGridCapabilities::FILE_GRID_VIEW_NOTES : 0
+ ),
+ WORKFLOW_STAGE_ID_PRODUCTION
+ );
+ }
+
+
+ //
+ // Overridden template methods from GridRow
+ //
+ /**
+ * @copydoc SubmissionFilesGridRow::initialize()
+ */
+ public function initialize($request, $template = 'controllers/grid/gridRow.tpl')
+ {
+ parent::initialize($request, $template);
+ $submissionFileData = & $this->getData();
+ $submissionFile = & $submissionFileData['submissionFile']; /** @var SubmissionFile $submissionFile */
+ $router = $request->getRouter();
+ $mimetype = $submissionFile->getData('mimetype');
+ if ($this->_canManage && in_array($mimetype, ['application/xml', 'text/html'])) {
+ $this->addAction(new LinkAction(
+ 'dependentFiles',
+ new AjaxModal(
+ $router->url($request, null, null, 'dependentFiles', null, array_merge(
+ $this->getRequestArgs(),
+ [
+ 'submissionFileId' => $submissionFile->getId(),
+ ]
+ )),
+ __('submission.dependentFiles'),
+ 'modal_edit'
+ ),
+ __('submission.dependentFiles'),
+ 'edit'
+ ));
+ }
+ }
+}
diff --git a/controllers/grid/catalogEntry/RepresentativesGridCategoryRow.inc.php b/controllers/grid/catalogEntry/RepresentativesGridCategoryRow.inc.php
deleted file mode 100644
index 3a1a91cd3c0..00000000000
--- a/controllers/grid/catalogEntry/RepresentativesGridCategoryRow.inc.php
+++ /dev/null
@@ -1,43 +0,0 @@
-getData();
- return __($data['name']);
- }
-}
-
diff --git a/controllers/grid/catalogEntry/RepresentativesGridCategoryRow.php b/controllers/grid/catalogEntry/RepresentativesGridCategoryRow.php
new file mode 100644
index 00000000000..1d6df797ace
--- /dev/null
+++ b/controllers/grid/catalogEntry/RepresentativesGridCategoryRow.php
@@ -0,0 +1,36 @@
+getData();
+ return __($data['name']);
+ }
+}
diff --git a/controllers/grid/catalogEntry/RepresentativesGridCellProvider.inc.php b/controllers/grid/catalogEntry/RepresentativesGridCellProvider.inc.php
deleted file mode 100644
index b6b1fbde35b..00000000000
--- a/controllers/grid/catalogEntry/RepresentativesGridCellProvider.inc.php
+++ /dev/null
@@ -1,50 +0,0 @@
-getData();
-
- $columnId = $column->getId();
- assert(is_a($element, 'DataObject') && !empty($columnId));
- switch ($columnId) {
- case 'role':
- return array('label' => $element->getNameForONIXCode());
- case 'name':
- return array('label' => $element->getName());
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/RepresentativesGridCellProvider.php b/controllers/grid/catalogEntry/RepresentativesGridCellProvider.php
new file mode 100644
index 00000000000..8de478eb28e
--- /dev/null
+++ b/controllers/grid/catalogEntry/RepresentativesGridCellProvider.php
@@ -0,0 +1,52 @@
+getData();
+
+ $columnId = $column->getId();
+ assert(is_a($element, 'DataObject') && !empty($columnId));
+ /** @var Representation $element */
+ switch ($columnId) {
+ case 'role':
+ return ['label' => $element->getNameForONIXCode()];
+ case 'name':
+ return ['label' => $element->getName()];
+ }
+ }
+}
diff --git a/controllers/grid/catalogEntry/RepresentativesGridHandler.inc.php b/controllers/grid/catalogEntry/RepresentativesGridHandler.inc.php
deleted file mode 100644
index e9cd1ef98ef..00000000000
--- a/controllers/grid/catalogEntry/RepresentativesGridHandler.inc.php
+++ /dev/null
@@ -1,340 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT),
- array('fetchGrid', 'fetchCategory', 'fetchRow', 'addRepresentative', 'editRepresentative',
- 'updateRepresentative', 'deleteRepresentative'));
- }
-
-
- //
- // Getters/Setters
- //
- /**
- * Get the monograph associated with this grid.
- * @return Monograph
- */
- function getMonograph() {
- return $this->_monograph;
- }
-
- /**
- * Set the Monograph
- * @param Monograph
- */
- function setMonograph($monograph) {
- $this->_monograph = $monograph;
- }
-
-
- //
- // Overridden methods from PKPHandler
- //
- /**
- * @see PKPHandler::authorize()
- * @param $request PKPRequest
- * @param $args array
- * @param $roleAssignments array
- */
- function authorize($request, &$args, $roleAssignments) {
- import('lib.pkp.classes.security.authorization.SubmissionAccessPolicy');
- $this->addPolicy(new SubmissionAccessPolicy($request, $args, $roleAssignments));
- return parent::authorize($request, $args, $roleAssignments);
- }
-
- /*
- * @copydoc CategoryGridHandler::initialize
- */
- function initialize($request, $args = null) {
- parent::initialize($request, $args);
-
- // Retrieve the authorized monograph.
- $this->setMonograph($this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH));
-
- $representativeId = (int) $request->getUserVar('representativeId'); // set if editing or deleting a representative entry
-
- if ($representativeId != 0) {
- $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /* @var $representativeDao RepresentativeDAO */
- $representative = $representativeDao->getById($representativeId, $this->getMonograph()->getId());
- if (!isset($representative)) {
- fatalError('Representative referenced outside of authorized monograph context!');
- }
- }
-
- // Load submission-specific translations
- AppLocale::requireComponents(
- LOCALE_COMPONENT_APP_SUBMISSION,
- LOCALE_COMPONENT_PKP_SUBMISSION,
- LOCALE_COMPONENT_PKP_USER,
- LOCALE_COMPONENT_APP_DEFAULT,
- LOCALE_COMPONENT_PKP_DEFAULT
- );
-
- // Basic grid configuration
- $this->setTitle('grid.catalogEntry.representatives');
-
- // Grid actions
- $router = $request->getRouter();
- $actionArgs = $this->getRequestArgs();
- $this->addAction(
- new LinkAction(
- 'addRepresentative',
- new AjaxModal(
- $router->url($request, null, null, 'addRepresentative', null, $actionArgs),
- __('grid.action.addRepresentative'),
- 'modal_add_item'
- ),
- __('grid.action.addRepresentative'),
- 'add_item'
- )
- );
-
- // Columns
- $cellProvider = new RepresentativesGridCellProvider();
- $this->addColumn(
- new GridColumn(
- 'name',
- 'grid.catalogEntry.representativeName',
- null,
- null,
- $cellProvider
- )
- );
- $this->addColumn(
- new GridColumn(
- 'role',
- 'grid.catalogEntry.representativeRole',
- null,
- null,
- $cellProvider
- )
- );
- }
-
-
- //
- // Overridden methods from GridHandler
- //
- /**
- * @see GridHandler::getRowInstance()
- * @return RepresentativesGridRow
- */
- function getRowInstance() {
- return new RepresentativesGridRow($this->getMonograph());
- }
-
- /**
- * @see CategoryGridHandler::getCategoryRowInstance()
- * @return RepresentativesGridCategoryRow
- */
- function getCategoryRowInstance() {
- return new RepresentativesGridCategoryRow();
- }
-
- /**
- * @see CategoryGridHandler::loadCategoryData()
- */
- function loadCategoryData($request, &$category, $filter = null) {
- $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /* @var $representativeDao RepresentativeDAO */
- if ($category['isSupplier']) {
- $representatives = $representativeDao->getSuppliersByMonographId($this->getMonograph()->getId());
- } else {
- $representatives = $representativeDao->getAgentsByMonographId($this->getMonograph()->getId());
- }
- return $representatives->toAssociativeArray();
- }
-
- /**
- * @see CategoryGridHandler::getCategoryRowIdParameterName()
- */
- function getCategoryRowIdParameterName() {
- return 'representativeCategoryId';
- }
-
- /**
- * @see CategoryGridHandler::getRequestArgs()
- */
- function getRequestArgs() {
- $monograph = $this->getMonograph();
- return array_merge(
- parent::getRequestArgs(),
- array('submissionId' => $monograph->getId())
- );
- }
-
- /**
- * @see GridHandler::loadData
- */
- function loadData($request, $filter = null) {
- // set our labels for the two Representative categories
- $categories = array(
- array('name' => 'grid.catalogEntry.agentsCategory', 'isSupplier' => false),
- array('name' => 'grid.catalogEntry.suppliersCategory', 'isSupplier' => true)
- );
-
- return $categories;
- }
-
-
- //
- // Public Representatives Grid Actions
- //
-
- function addRepresentative($args, $request) {
- return $this->editRepresentative($args, $request);
- }
-
- /**
- * Edit a representative entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editRepresentative($args, $request) {
- // Identify the representative entry to be updated
- $representativeId = (int) $request->getUserVar('representativeId');
- $monograph = $this->getMonograph();
-
- $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /* @var $representativeDao RepresentativeDAO */
- $representative = $representativeDao->getById($representativeId, $monograph->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.RepresentativeForm');
- $representativeForm = new RepresentativeForm($monograph, $representative);
- $representativeForm->initData();
-
- return new JSONMessage(true, $representativeForm->fetch($request));
- }
-
- /**
- * Update a representative entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateRepresentative($args, $request) {
- // Identify the representative entry to be updated
- $representativeId = $request->getUserVar('representativeId');
- $monograph = $this->getMonograph();
-
- $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /* @var $representativeDao RepresentativeDAO */
- $representative = $representativeDao->getById($representativeId, $monograph->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.RepresentativeForm');
- $representativeForm = new RepresentativeForm($monograph, $representative);
- $representativeForm->readInputData();
- if ($representativeForm->validate()) {
- $representativeId = $representativeForm->execute();
-
- if(!isset($representative)) {
- // This is a new entry
- $representative = $representativeDao->getById($representativeId, $monograph->getId());
- // New added entry action notification content.
- $notificationContent = __('notification.addedRepresentative');
- } else {
- // entry edit action notification content.
- $notificationContent = __('notification.editedRepresentative');
- }
-
- // Create trivial notification.
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => $notificationContent));
-
- // Prepare the grid row data
- $row = $this->getRowInstance();
- $row->setGridId($this->getId());
- $row->setId($representativeId);
- $row->setData($representative);
- $row->initialize($request);
-
- // Render the row into a JSON response
- return DAO::getDataChangedEvent($representativeId, (int) $representative->getIsSupplier());
-
- } else {
- return new JSONMessage(true, $representativeForm->fetch($request));
- }
- }
-
- /**
- * Delete a representative entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deleteRepresentative($args, $request) {
- \AppLocale::requireComponents(LOCALE_COMPONENT_PKP_MANAGER, LOCALE_COMPONENT_APP_MANAGER);
-
- // Identify the representative entry to be deleted
- $representativeId = $request->getUserVar('representativeId');
-
- $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /* @var $representativeDao RepresentativeDAO */
- $representative = $representativeDao->getById($representativeId, $this->getMonograph()->getId());
-
- if (!$representative) {
- return new JSONMessage(false, __('api.404.resourceNotFound'));
- }
-
- // Don't allow a representative to be deleted if they are associated
- // with a publication format's market metadata
- $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
- foreach ($submission->getData('publications') as $publication) {
- foreach ($publication->getData('publicationFormats') as $publicationFormat) {
- $markets = DAORegistry::getDAO('MarketDAO')->getByPublicationFormatId($publicationFormat->getId())->toArray();
- foreach ($markets as $market) {
- if (in_array($representative->getId(), [$market->getAgentId(), $market->getSupplierId()])) {
- return new JSONMessage(false, __('manager.representative.inUse'));
- }
- }
- }
- }
-
- $result = $representativeDao->deleteObject($representative);
-
- if ($result) {
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.removedRepresentative')));
- return DAO::getDataChangedEvent($representative->getId(), (int) $representative->getIsSupplier());
- } else {
- return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/RepresentativesGridHandler.php b/controllers/grid/catalogEntry/RepresentativesGridHandler.php
new file mode 100644
index 00000000000..444ef8a9cdd
--- /dev/null
+++ b/controllers/grid/catalogEntry/RepresentativesGridHandler.php
@@ -0,0 +1,363 @@
+addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_ASSISTANT],
+ ['fetchGrid', 'fetchCategory', 'fetchRow', 'addRepresentative', 'editRepresentative',
+ 'updateRepresentative', 'deleteRepresentative']
+ );
+ }
+
+
+ //
+ // Getters/Setters
+ //
+ /**
+ * Get the monograph associated with this grid.
+ *
+ * @return Submission
+ */
+ public function getMonograph()
+ {
+ return $this->_monograph;
+ }
+
+ /**
+ * Set the Monograph
+ *
+ * @param Submission
+ */
+ public function setMonograph($monograph)
+ {
+ $this->_monograph = $monograph;
+ }
+
+
+ //
+ // Overridden methods from PKPHandler
+ //
+ /**
+ * @see PKPHandler::authorize()
+ *
+ * @param Request $request
+ * @param array $args
+ * @param array $roleAssignments
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $this->addPolicy(new SubmissionAccessPolicy($request, $args, $roleAssignments));
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+
+ /**
+ * @copydoc CategoryGridHandler::initialize
+ *
+ * @param null|mixed $args
+ */
+ public function initialize($request, $args = null)
+ {
+ parent::initialize($request, $args);
+
+ // Retrieve the authorized monograph.
+ $this->setMonograph($this->getAuthorizedContextObject(Application::ASSOC_TYPE_MONOGRAPH));
+
+ $representativeId = (int) $request->getUserVar('representativeId'); // set if editing or deleting a representative entry
+
+ if ($representativeId != 0) {
+ $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /** @var RepresentativeDAO $representativeDao */
+ $representative = $representativeDao->getById($representativeId, $this->getMonograph()->getId());
+ if (!isset($representative)) {
+ fatalError('Representative referenced outside of authorized monograph context!');
+ }
+ }
+
+ // Basic grid configuration
+ $this->setTitle('grid.catalogEntry.representatives');
+
+ // Grid actions
+ $router = $request->getRouter();
+ $actionArgs = $this->getRequestArgs();
+ $this->addAction(
+ new LinkAction(
+ 'addRepresentative',
+ new AjaxModal(
+ $router->url($request, null, null, 'addRepresentative', null, $actionArgs),
+ __('grid.action.addRepresentative'),
+ 'modal_add_item'
+ ),
+ __('grid.action.addRepresentative'),
+ 'add_item'
+ )
+ );
+
+ // Columns
+ $cellProvider = new RepresentativesGridCellProvider();
+ $this->addColumn(
+ new GridColumn(
+ 'name',
+ 'grid.catalogEntry.representativeName',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ $this->addColumn(
+ new GridColumn(
+ 'role',
+ 'grid.catalogEntry.representativeRole',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ }
+
+
+ //
+ // Overridden methods from GridHandler
+ //
+ /**
+ * @see GridHandler::getRowInstance()
+ *
+ * @return RepresentativesGridRow
+ */
+ public function getRowInstance()
+ {
+ return new RepresentativesGridRow($this->getMonograph());
+ }
+
+ /**
+ * @see CategoryGridHandler::getCategoryRowInstance()
+ *
+ * @return RepresentativesGridCategoryRow
+ */
+ public function getCategoryRowInstance()
+ {
+ return new RepresentativesGridCategoryRow();
+ }
+
+ /**
+ * @see CategoryGridHandler::loadCategoryData()
+ *
+ * @param null|mixed $filter
+ */
+ public function loadCategoryData($request, &$category, $filter = null)
+ {
+ $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /** @var RepresentativeDAO $representativeDao */
+ if ($category['isSupplier']) {
+ $representatives = $representativeDao->getSuppliersByMonographId($this->getMonograph()->getId());
+ } else {
+ $representatives = $representativeDao->getAgentsByMonographId($this->getMonograph()->getId());
+ }
+ return $representatives->toAssociativeArray();
+ }
+
+ /**
+ * @see CategoryGridHandler::getCategoryRowIdParameterName()
+ */
+ public function getCategoryRowIdParameterName()
+ {
+ return 'representativeCategoryId';
+ }
+
+ /**
+ * @see CategoryGridHandler::getRequestArgs()
+ */
+ public function getRequestArgs()
+ {
+ $monograph = $this->getMonograph();
+ return array_merge(
+ parent::getRequestArgs(),
+ ['submissionId' => $monograph->getId()]
+ );
+ }
+
+ /**
+ * @see GridHandler::loadData
+ *
+ * @param null|mixed $filter
+ */
+ public function loadData($request, $filter = null)
+ {
+ // set our labels for the two Representative categories
+ $categories = [
+ ['name' => 'grid.catalogEntry.agentsCategory', 'isSupplier' => false],
+ ['name' => 'grid.catalogEntry.suppliersCategory', 'isSupplier' => true]
+ ];
+
+ return $categories;
+ }
+
+
+ //
+ // Public Representatives Grid Actions
+ //
+
+ public function addRepresentative($args, $request)
+ {
+ return $this->editRepresentative($args, $request);
+ }
+
+ /**
+ * Edit a representative entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editRepresentative($args, $request)
+ {
+ // Identify the representative entry to be updated
+ $representativeId = (int) $request->getUserVar('representativeId');
+ $monograph = $this->getMonograph();
+
+ $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /** @var RepresentativeDAO $representativeDao */
+ $representative = $representativeDao->getById($representativeId, $monograph->getId());
+
+ // Form handling
+ $representativeForm = new RepresentativeForm($monograph, $representative);
+ $representativeForm->initData();
+
+ return new JSONMessage(true, $representativeForm->fetch($request));
+ }
+
+ /**
+ * Update a representative entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateRepresentative($args, $request)
+ {
+ // Identify the representative entry to be updated
+ $representativeId = $request->getUserVar('representativeId');
+ $monograph = $this->getMonograph();
+
+ $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /** @var RepresentativeDAO $representativeDao */
+ $representative = $representativeDao->getById($representativeId, $monograph->getId());
+
+ // Form handling
+ $representativeForm = new RepresentativeForm($monograph, $representative);
+ $representativeForm->readInputData();
+ if ($representativeForm->validate()) {
+ $representativeId = $representativeForm->execute();
+
+ if (!isset($representative)) {
+ // This is a new entry
+ $representative = $representativeDao->getById($representativeId, $monograph->getId());
+ // New added entry action notification content.
+ $notificationContent = __('notification.addedRepresentative');
+ } else {
+ // entry edit action notification content.
+ $notificationContent = __('notification.editedRepresentative');
+ }
+
+ // Create trivial notification.
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => $notificationContent]);
+
+ // Prepare the grid row data
+ $row = $this->getRowInstance();
+ $row->setGridId($this->getId());
+ $row->setId($representativeId);
+ $row->setData($representative);
+ $row->initialize($request);
+
+ // Render the row into a JSON response
+ return DAO::getDataChangedEvent($representativeId, (int) $representative->getIsSupplier());
+ } else {
+ return new JSONMessage(true, $representativeForm->fetch($request));
+ }
+ }
+
+ /**
+ * Delete a representative entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deleteRepresentative($args, $request)
+ {
+ // Identify the representative entry to be deleted
+ $representativeId = $request->getUserVar('representativeId');
+
+ $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /** @var RepresentativeDAO $representativeDao */
+ $representative = $representativeDao->getById($representativeId, $this->getMonograph()->getId());
+
+ if (!$representative) {
+ return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
+ }
+
+ // Don't allow a representative to be deleted if they are associated
+ // with a publication format's market metadata
+ $submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION);
+ /** @var MarketDAO */
+ $marketDao = DAORegistry::getDAO('MarketDAO');
+ foreach ($submission->getData('publications') as $publication) {
+ foreach ($publication->getData('publicationFormats') as $publicationFormat) {
+ $markets = $marketDao->getByPublicationFormatId($publicationFormat->getId())->toArray();
+ foreach ($markets as $market) {
+ if (in_array($representative->getId(), [$market->getAgentId(), $market->getSupplierId()])) {
+ return new JSONMessage(false, __('manager.representative.inUse'));
+ }
+ }
+ }
+ }
+
+ $representativeDao->deleteObject($representative);
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => __('notification.removedRepresentative')]);
+ return DAO::getDataChangedEvent($representative->getId(), (int) $representative->getIsSupplier());
+ }
+}
diff --git a/controllers/grid/catalogEntry/RepresentativesGridRow.inc.php b/controllers/grid/catalogEntry/RepresentativesGridRow.inc.php
deleted file mode 100644
index 5403e9e3959..00000000000
--- a/controllers/grid/catalogEntry/RepresentativesGridRow.inc.php
+++ /dev/null
@@ -1,93 +0,0 @@
-_monograph = $monograph;
- parent::__construct();
- }
-
- //
- // Overridden methods from GridRow
- //
- /**
- * @copydoc GridRow::initialize()
- */
- function initialize($request, $template = null) {
- // Do the default initialization
- parent::initialize($request, $template);
-
- $monograph = $this->getMonograph();
-
- // Is this a new row or an existing row?
- $representative = $this->_data;
- if ($representative != null && is_numeric($representative->getId())) {
- $router = $request->getRouter();
- $actionArgs = array_merge(
- parent::getRequestArgs(),
- array('submissionId' => $monograph->getId(),
- 'representativeId' => $representative->getId())
- );
-
- // Add row-level actions
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'editRepresentative',
- new AjaxModal(
- $router->url($request, null, null, 'editRepresentative', null, $actionArgs),
- __('grid.action.edit'),
- 'modal_edit'
- ),
- __('grid.action.edit'),
- 'edit'
- )
- );
-
- import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
- $this->addAction(
- new LinkAction(
- 'deleteRepresentative',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('common.confirmDelete'),
- __('common.delete'),
- $router->url($request, null, null, 'deleteRepresentative', null, $actionArgs),
- 'modal_delete'
- ),
- __('grid.action.delete'),
- 'delete'
- )
- );
- }
- }
-
- /**
- * Get the monograph for this row (already authorized)
- * @return Monograph
- */
- function getMonograph() {
- return $this->_monograph;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/RepresentativesGridRow.php b/controllers/grid/catalogEntry/RepresentativesGridRow.php
new file mode 100644
index 00000000000..f671b6f281c
--- /dev/null
+++ b/controllers/grid/catalogEntry/RepresentativesGridRow.php
@@ -0,0 +1,104 @@
+_monograph = $monograph;
+ parent::__construct();
+ }
+
+ //
+ // Overridden methods from GridRow
+ //
+ /**
+ * @copydoc GridRow::initialize()
+ *
+ * @param null|mixed $template
+ */
+ public function initialize($request, $template = null)
+ {
+ // Do the default initialization
+ parent::initialize($request, $template);
+
+ $monograph = $this->getMonograph();
+
+ // Is this a new row or an existing row?
+ $representative = $this->_data;
+ if ($representative != null && is_numeric($representative->getId())) {
+ $router = $request->getRouter();
+ $actionArgs = array_merge(
+ parent::getRequestArgs() ?? [],
+ ['submissionId' => $monograph->getId(),
+ 'representativeId' => $representative->getId()]
+ );
+
+ // Add row-level actions
+ $this->addAction(
+ new LinkAction(
+ 'editRepresentative',
+ new AjaxModal(
+ $router->url($request, null, null, 'editRepresentative', null, $actionArgs),
+ __('grid.action.edit'),
+ 'modal_edit'
+ ),
+ __('grid.action.edit'),
+ 'edit'
+ )
+ );
+
+ $this->addAction(
+ new LinkAction(
+ 'deleteRepresentative',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('common.confirmDelete'),
+ __('common.delete'),
+ $router->url($request, null, null, 'deleteRepresentative', null, $actionArgs),
+ 'modal_delete'
+ ),
+ __('grid.action.delete'),
+ 'delete'
+ )
+ );
+ }
+ }
+
+ /**
+ * Get the monograph for this row (already authorized)
+ *
+ * @return Submission
+ */
+ public function getMonograph()
+ {
+ return $this->_monograph;
+ }
+}
diff --git a/controllers/grid/catalogEntry/SalesRightsGridCellProvider.inc.php b/controllers/grid/catalogEntry/SalesRightsGridCellProvider.inc.php
deleted file mode 100644
index 98af18c8f73..00000000000
--- a/controllers/grid/catalogEntry/SalesRightsGridCellProvider.inc.php
+++ /dev/null
@@ -1,49 +0,0 @@
-getData();
- $columnId = $column->getId();
- assert(is_a($element, 'DataObject') && !empty($columnId));
- switch ($columnId) {
- case 'type':
- return array('label' => $element->getNameForONIXCode());
- case 'ROW':
- return array('isChecked' => $element->getROWSetting());
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/SalesRightsGridCellProvider.php b/controllers/grid/catalogEntry/SalesRightsGridCellProvider.php
new file mode 100644
index 00000000000..1ac5059a16f
--- /dev/null
+++ b/controllers/grid/catalogEntry/SalesRightsGridCellProvider.php
@@ -0,0 +1,51 @@
+getData();
+ $columnId = $column->getId();
+ assert(is_a($element, 'DataObject') && !empty($columnId));
+ /** @var SalesRights $element */
+ switch ($columnId) {
+ case 'type':
+ return ['label' => $element->getNameForONIXCode()];
+ case 'ROW':
+ return ['isChecked' => $element->getROWSetting()];
+ }
+ }
+}
diff --git a/controllers/grid/catalogEntry/SalesRightsGridHandler.inc.php b/controllers/grid/catalogEntry/SalesRightsGridHandler.inc.php
deleted file mode 100644
index 4f11cd050d6..00000000000
--- a/controllers/grid/catalogEntry/SalesRightsGridHandler.inc.php
+++ /dev/null
@@ -1,347 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_MANAGER),
- array('fetchGrid', 'fetchRow', 'addRights', 'editRights',
- 'updateRights', 'deleteRights'));
- }
-
-
- //
- // Getters/Setters
- //
- /**
- * Get the submission associated with this grid.
- * @return Submission
- */
- function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Set the Submission
- * @param Submission
- */
- function setSubmission($submission) {
- $this->_submission = $submission;
- }
-
- /**
- * Get the publication associated with this grid.
- * @return Publicaton
- */
- function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the Publicaton
- * @param Publicaton
- */
- function setPublication($publication) {
- $this->_publication = $publication;
- }
-
- /**
- * Get the publication format assocated with these sales rights
- * @return PublicationFormat
- */
- function getPublicationFormat() {
- return $this->_publicationFormat;
- }
-
- /**
- * Set the publication format
- * @param PublicationFormat
- */
- function setPublicationFormat($publicationFormat) {
- $this->_publicationFormat = $publicationFormat;
- }
-
- //
- // Overridden methods from PKPHandler
- //
- /**
- * @see PKPHandler::authorize()
- * @param $request PKPRequest
- * @param $args array
- * @param $roleAssignments array
- */
- function authorize($request, &$args, $roleAssignments) {
- import('lib.pkp.classes.security.authorization.PublicationAccessPolicy');
- $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
- return parent::authorize($request, $args, $roleAssignments);
- }
-
- /**
- * @copydoc GridHandler::initialize()
- */
- function initialize($request, $args = null) {
- parent::initialize($request, $args);
-
- // Retrieve the authorized submission.
- $this->setSubmission($this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION));
- $this->setPublication($this->getAuthorizedContextObject(ASSOC_TYPE_PUBLICATION));
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $representationId = null;
-
- // Retrieve the associated publication format for this grid.
- $salesRightsId = (int) $request->getUserVar('salesRightsId'); // set if editing or deleting a sales rights entry
-
- if ($salesRightsId) {
- $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /* @var $salesRightsDao SalesRightsDAO */
- $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
- if ($salesRights) {
- $representationId = $salesRights->getPublicationFormatId();
- }
- } else { // empty form for new SalesRights
- $representationId = (int) $request->getUserVar('representationId');
- }
-
- $submission = $this->getSubmission();
- $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
-
- if ($publicationFormat) {
- $this->setPublicationFormat($publicationFormat);
- } else {
- fatalError('The publication format is not assigned to authorized submission!');
- }
-
- // Load submission-specific translations
- AppLocale::requireComponents(
- LOCALE_COMPONENT_APP_SUBMISSION,
- LOCALE_COMPONENT_PKP_SUBMISSION,
- LOCALE_COMPONENT_PKP_USER,
- LOCALE_COMPONENT_APP_DEFAULT,
- LOCALE_COMPONENT_PKP_DEFAULT
- );
-
- // Basic grid configuration
- $this->setTitle('grid.catalogEntry.salesRights');
-
- // Grid actions
- $router = $request->getRouter();
- $actionArgs = $this->getRequestArgs();
- $this->addAction(
- new LinkAction(
- 'addRights',
- new AjaxModal(
- $router->url($request, null, null, 'addRights', null, $actionArgs),
- __('grid.action.addRights'),
- 'modal_add_item'
- ),
- __('grid.action.addRights'),
- 'add_item'
- )
- );
-
- // Columns
- $cellProvider = new SalesRightsGridCellProvider();
- $this->addColumn(
- new GridColumn(
- 'type',
- 'grid.catalogEntry.salesRightsType',
- null,
- null,
- $cellProvider
- )
- );
- $this->addColumn(
- new GridColumn(
- 'ROW',
- 'grid.catalogEntry.salesRightsROW',
- null,
- 'controllers/grid/common/cell/checkMarkCell.tpl',
- $cellProvider
- )
- );
- }
-
-
- //
- // Overridden methods from GridHandler
- //
- /**
- * @see GridHandler::getRowInstance()
- * @return SalesRightsGridRow
- */
- function getRowInstance() {
- return new SalesRightsGridRow($this->getSubmission());
- }
-
- /**
- * Get the arguments that will identify the data in the grid
- * In this case, the submission.
- * @return array
- */
- function getRequestArgs() {
- return [
- 'submissionId' => $this->getSubmission()->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- 'representationId' => $this->getPublicationFormat()->getId()
- ];
- }
-
- /**
- * @see GridHandler::loadData
- */
- function loadData($request, $filter = null) {
- $publicationFormat = $this->getPublicationFormat();
- $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /* @var $salesRightsDao SalesRightsDAO */
- $data = $salesRightsDao->getByPublicationFormatId($publicationFormat->getId());
- return $data->toArray();
- }
-
-
- //
- // Public Sales Rights Grid Actions
- //
- /**
- * Edit a new (empty) rights entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function addRights($args, $request) {
- return $this->editRights($args, $request);
- }
-
- /**
- * Edit a sales rights entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editRights($args, $request) {
- // Identify the sales rights entry to be updated
- $salesRightsId = (int) $request->getUserVar('salesRightsId');
- $submission = $this->getSubmission();
-
- $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /* @var $salesRightsDao SalesRightsDAO */
- $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.SalesRightsForm');
- $salesRightsForm = new SalesRightsForm($submission, $this->getPublication(), $salesRights);
- $salesRightsForm->initData();
-
- return new JSONMessage(true, $salesRightsForm->fetch($request));
- }
-
- /**
- * Update a sales rights entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateRights($args, $request) {
- // Identify the sales rights entry to be updated
- $salesRightsId = $request->getUserVar('salesRightsId');
- $submission = $this->getSubmission();
-
- $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /* @var $salesRightsDao SalesRightsDAO */
- $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
-
- // Form handling
- import('controllers.grid.catalogEntry.form.SalesRightsForm');
- $salesRightsForm = new SalesRightsForm($submission, $this->getPublication(), $salesRights);
- $salesRightsForm->readInputData();
- if ($salesRightsForm->validate()) {
- $salesRightsId = $salesRightsForm->execute();
-
- if(!isset($salesRights)) {
- // This is a new entry
- $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
- // New added entry action notification content.
- $notificationContent = __('notification.addedSalesRights');
- } else {
- // entry edit action notification content.
- $notificationContent = __('notification.editedSalesRights');
- }
-
- // Create trivial notification.
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => $notificationContent));
-
- // Prepare the grid row data
- $row = $this->getRowInstance();
- $row->setGridId($this->getId());
- $row->setId($salesRightsId);
- $row->setData($salesRights);
- $row->initialize($request);
-
- // Render the row into a JSON response
- return DAO::getDataChangedEvent();
-
- } else {
- return new JSONMessage(true, $salesRightsForm->fetch($request));
- }
- }
-
- /**
- * Delete a sales rights entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deleteRights($args, $request) {
-
- // Identify the sales rights entry to be deleted
- $salesRightsId = $request->getUserVar('salesRightsId');
-
- $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /* @var $salesRightsDao SalesRightsDAO */
- $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
- if ($salesRights != null) { // authorized
-
- $result = $salesRightsDao->deleteObject($salesRights);
-
- if ($result) {
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.removedSalesRights')));
- return DAO::getDataChangedEvent();
- } else {
- return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
- }
- }
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/SalesRightsGridHandler.php b/controllers/grid/catalogEntry/SalesRightsGridHandler.php
new file mode 100644
index 00000000000..073609c03a1
--- /dev/null
+++ b/controllers/grid/catalogEntry/SalesRightsGridHandler.php
@@ -0,0 +1,381 @@
+addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN],
+ ['fetchGrid', 'fetchRow', 'addRights', 'editRights', 'updateRights', 'deleteRights']
+ );
+ }
+
+
+ //
+ // Getters/Setters
+ //
+ /**
+ * Get the submission associated with this grid.
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Set the Submission
+ *
+ * @param Submission
+ */
+ public function setSubmission($submission)
+ {
+ $this->_submission = $submission;
+ }
+
+ /**
+ * Get the publication associated with this grid.
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the Publication
+ *
+ * @param Publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+ /**
+ * Get the publication format associated with these sales rights
+ *
+ * @return PublicationFormat
+ */
+ public function getPublicationFormat()
+ {
+ return $this->_publicationFormat;
+ }
+
+ /**
+ * Set the publication format
+ *
+ * @param PublicationFormat
+ */
+ public function setPublicationFormat($publicationFormat)
+ {
+ $this->_publicationFormat = $publicationFormat;
+ }
+
+ //
+ // Overridden methods from PKPHandler
+ //
+ /**
+ * @see PKPHandler::authorize()
+ *
+ * @param Request $request
+ * @param array $args
+ * @param array $roleAssignments
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+
+ /**
+ * @copydoc GridHandler::initialize()
+ *
+ * @param null|mixed $args
+ */
+ public function initialize($request, $args = null)
+ {
+ parent::initialize($request, $args);
+
+ // Retrieve the authorized submission.
+ $this->setSubmission($this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION));
+ $this->setPublication($this->getAuthorizedContextObject(Application::ASSOC_TYPE_PUBLICATION));
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $representationId = null;
+
+ // Retrieve the associated publication format for this grid.
+ $salesRightsId = (int) $request->getUserVar('salesRightsId'); // set if editing or deleting a sales rights entry
+
+ if ($salesRightsId) {
+ $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /** @var SalesRightsDAO $salesRightsDao */
+ $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
+ if ($salesRights) {
+ $representationId = $salesRights->getPublicationFormatId();
+ }
+ } else { // empty form for new SalesRights
+ $representationId = (int) $request->getUserVar('representationId');
+ }
+
+ $publicationFormat = $representationId
+ ? $publicationFormatDao->getById((int) $representationId, $this->getPublication()->getId())
+ : null;
+
+ if ($publicationFormat) {
+ $this->setPublicationFormat($publicationFormat);
+ } else {
+ throw new Exception('The publication format is not assigned to authorized submission!');
+ }
+
+ // Basic grid configuration
+ $this->setTitle('grid.catalogEntry.salesRights');
+
+ // Grid actions
+ $router = $request->getRouter();
+ $actionArgs = $this->getRequestArgs();
+ $this->addAction(
+ new LinkAction(
+ 'addRights',
+ new AjaxModal(
+ $router->url($request, null, null, 'addRights', null, $actionArgs),
+ __('grid.action.addRights'),
+ 'modal_add_item'
+ ),
+ __('grid.action.addRights'),
+ 'add_item'
+ )
+ );
+
+ // Columns
+ $cellProvider = new SalesRightsGridCellProvider();
+ $this->addColumn(
+ new GridColumn(
+ 'type',
+ 'grid.catalogEntry.salesRightsType',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ $this->addColumn(
+ new GridColumn(
+ 'ROW',
+ 'grid.catalogEntry.salesRightsROW',
+ null,
+ 'controllers/grid/common/cell/checkMarkCell.tpl',
+ $cellProvider
+ )
+ );
+ }
+
+
+ //
+ // Overridden methods from GridHandler
+ //
+ /**
+ * @see GridHandler::getRowInstance()
+ *
+ * @return SalesRightsGridRow
+ */
+ public function getRowInstance()
+ {
+ return new SalesRightsGridRow($this->getSubmission());
+ }
+
+ /**
+ * Get the arguments that will identify the data in the grid
+ * In this case, the submission.
+ *
+ * @return array
+ */
+ public function getRequestArgs()
+ {
+ return [
+ 'submissionId' => $this->getSubmission()->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ 'representationId' => $this->getPublicationFormat()->getId()
+ ];
+ }
+
+ /**
+ * @see GridHandler::loadData
+ *
+ * @param null|mixed $filter
+ */
+ public function loadData($request, $filter = null)
+ {
+ $publicationFormat = $this->getPublicationFormat();
+ $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /** @var SalesRightsDAO $salesRightsDao */
+ $data = $salesRightsDao->getByPublicationFormatId($publicationFormat->getId());
+ return $data->toArray();
+ }
+
+
+ //
+ // Public Sales Rights Grid Actions
+ //
+ /**
+ * Edit a new (empty) rights entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function addRights($args, $request)
+ {
+ return $this->editRights($args, $request);
+ }
+
+ /**
+ * Edit a sales rights entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editRights($args, $request)
+ {
+ // Identify the sales rights entry to be updated
+ $salesRightsId = (int) $request->getUserVar('salesRightsId');
+ $submission = $this->getSubmission();
+
+ $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /** @var SalesRightsDAO $salesRightsDao */
+ $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
+
+ // Form handling
+ $salesRightsForm = new SalesRightsForm($submission, $this->getPublication(), $salesRights);
+ $salesRightsForm->initData();
+
+ return new JSONMessage(true, $salesRightsForm->fetch($request));
+ }
+
+ /**
+ * Update a sales rights entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateRights($args, $request)
+ {
+ // Identify the sales rights entry to be updated
+ $salesRightsId = $request->getUserVar('salesRightsId');
+ $submission = $this->getSubmission();
+
+ $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /** @var SalesRightsDAO $salesRightsDao */
+ $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
+
+ // Form handling
+ $salesRightsForm = new SalesRightsForm($submission, $this->getPublication(), $salesRights);
+ $salesRightsForm->readInputData();
+ if ($salesRightsForm->validate()) {
+ $salesRightsId = $salesRightsForm->execute();
+
+ if (!isset($salesRights)) {
+ // This is a new entry
+ $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
+ // New added entry action notification content.
+ $notificationContent = __('notification.addedSalesRights');
+ } else {
+ // entry edit action notification content.
+ $notificationContent = __('notification.editedSalesRights');
+ }
+
+ // Create trivial notification.
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => $notificationContent]);
+
+ // Prepare the grid row data
+ $row = $this->getRowInstance();
+ $row->setGridId($this->getId());
+ $row->setId($salesRightsId);
+ $row->setData($salesRights);
+ $row->initialize($request);
+
+ // Render the row into a JSON response
+ return DAO::getDataChangedEvent();
+ } else {
+ return new JSONMessage(true, $salesRightsForm->fetch($request));
+ }
+ }
+
+ /**
+ * Delete a sales rights entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deleteRights($args, $request)
+ {
+ // Identify the sales rights entry to be deleted
+ $salesRightsId = $request->getUserVar('salesRightsId');
+ $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /** @var SalesRightsDAO $salesRightsDao */
+ $salesRights = $salesRightsDao->getById($salesRightsId, $this->getPublication()->getId());
+ if (!$salesRights) {
+ return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
+ }
+
+ $salesRightsDao->deleteObject($salesRights);
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => __('notification.removedSalesRights')]);
+ return DAO::getDataChangedEvent();
+ }
+}
diff --git a/controllers/grid/catalogEntry/SalesRightsGridRow.inc.php b/controllers/grid/catalogEntry/SalesRightsGridRow.inc.php
deleted file mode 100644
index 80e78c7db64..00000000000
--- a/controllers/grid/catalogEntry/SalesRightsGridRow.inc.php
+++ /dev/null
@@ -1,93 +0,0 @@
-_monograph = $monograph;
- parent::__construct();
- }
-
- //
- // Overridden methods from GridRow
- //
- /**
- * @copydoc GridRow::initialize()
- */
- function initialize($request, $template = null) {
- // Do the default initialization
- parent::initialize($request, $template);
-
- $monograph = $this->getMonograph();
-
- // Is this a new row or an existing row?
- $salesRights = $this->_data;
-
- if ($salesRights != null && is_numeric($salesRights->getId())) {
- $router = $request->getRouter();
- $actionArgs = array(
- 'submissionId' => $monograph->getId(),
- 'salesRightsId' => $salesRights->getId()
- );
-
- // Add row-level actions
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'editRights',
- new AjaxModal(
- $router->url($request, null, null, 'editRights', null, $actionArgs),
- __('grid.action.edit'),
- 'modal_edit'
- ),
- __('grid.action.edit'),
- 'edit'
- )
- );
-
- import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
- $this->addAction(
- new LinkAction(
- 'deleteRights',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('common.confirmDelete'),
- __('common.delete'),
- $router->url($request, null, null, 'deleteRights', null, $actionArgs),
- 'modal_delete'
- ),
- __('grid.action.delete'),
- 'delete'
- )
- );
- }
- }
-
- /**
- * Get the monograph for this row (already authorized)
- * @return Monograph
- */
- function &getMonograph() {
- return $this->_monograph;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/SalesRightsGridRow.php b/controllers/grid/catalogEntry/SalesRightsGridRow.php
new file mode 100644
index 00000000000..88c4e67d1e0
--- /dev/null
+++ b/controllers/grid/catalogEntry/SalesRightsGridRow.php
@@ -0,0 +1,104 @@
+_monograph = $monograph;
+ parent::__construct();
+ }
+
+ //
+ // Overridden methods from GridRow
+ //
+ /**
+ * @copydoc GridRow::initialize()
+ *
+ * @param null|mixed $template
+ */
+ public function initialize($request, $template = null)
+ {
+ // Do the default initialization
+ parent::initialize($request, $template);
+
+ $monograph = $this->getMonograph();
+
+ // Is this a new row or an existing row?
+ $salesRights = $this->_data;
+
+ if ($salesRights != null && is_numeric($salesRights->getId())) {
+ $router = $request->getRouter();
+ $actionArgs = ($this->getRequestArgs() ?: []) + [
+ 'submissionId' => $monograph->getId(),
+ 'salesRightsId' => $salesRights->getId()
+ ];
+
+ // Add row-level actions
+ $this->addAction(
+ new LinkAction(
+ 'editRights',
+ new AjaxModal(
+ $router->url($request, null, null, 'editRights', null, $actionArgs),
+ __('grid.action.edit'),
+ 'modal_edit'
+ ),
+ __('grid.action.edit'),
+ 'edit'
+ )
+ );
+
+ $this->addAction(
+ new LinkAction(
+ 'deleteRights',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('common.confirmDelete'),
+ __('common.delete'),
+ $router->url($request, null, null, 'deleteRights', null, $actionArgs),
+ 'modal_delete'
+ ),
+ __('grid.action.delete'),
+ 'delete'
+ )
+ );
+ }
+ }
+
+ /**
+ * Get the monograph for this row (already authorized)
+ *
+ * @return Submission
+ */
+ public function &getMonograph()
+ {
+ return $this->_monograph;
+ }
+}
diff --git a/controllers/grid/catalogEntry/form/IdentificationCodeForm.inc.php b/controllers/grid/catalogEntry/form/IdentificationCodeForm.inc.php
deleted file mode 100644
index 1c988d8baff..00000000000
--- a/controllers/grid/catalogEntry/form/IdentificationCodeForm.inc.php
+++ /dev/null
@@ -1,216 +0,0 @@
-setSubmission($submission);
- $this->setPublication($publication);
- $this->setIdentificationCode($identificationCode);
-
- // Validation checks for this form
- $this->addCheck(new FormValidator($this, 'code', 'required', 'grid.catalogEntry.codeRequired'));
- $this->addCheck(new FormValidator($this, 'value', 'required', 'grid.catalogEntry.valueRequired'));
- $this->addCheck(new FormValidator($this, 'representationId', 'required', 'grid.catalogEntry.publicationFormatRequired'));
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
- //
- // Getters and Setters
- //
- /**
- * Get the code
- * @return IdentificationCode
- */
- public function getIdentificationCode() {
- return $this->_identificationCode;
- }
-
- /**
- * Set the code
- * @param @identificationCode IdentificationCode
- */
- public function setIdentificationCode($identificationCode) {
- $this->_identificationCode = $identificationCode;
- }
-
- /**
- * Get the Submission
- * @return Submission
- */
- public function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Set the Submission
- * @param Submission
- */
- public function setSubmission($submission) {
- $this->_submission = $submission;
- }
-
- /**
- * Get the Publication
- * @return Publication
- */
- public function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the Publication
- * @param Publication
- */
- public function setPublication($publication) {
- $this->_publication = $publication;
- }
-
-
- //
- // Overridden template methods
- //
- /**
- * Initialize form data from the identification code.
- */
- public function initData() {
- $code = $this->getIdentificationCode();
-
- if ($code) {
- $this->_data = array(
- 'identificationCodeId' => $code->getId(),
- 'code' => $code->getCode(),
- 'value' => $code->getValue(),
- );
- }
- }
-
- /**
- * @copydoc Form::fetch()
- */
- public function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
- $submission = $this->getSubmission();
- $templateMgr->assign([
- 'submissionId' => $submission->getId(),
- 'publicationId' => $this->getPublication()->getId()
- ]);
-
- if ($identificationCode = $this->getIdentificationCode()) {
- $templateMgr->assign([
- 'identificationCodeId' => $identificationCode->getId(),
- 'code' => $identificationCode->getCode(),
- 'value' => $identificationCode->getValue()
- ]);
- $representationId = $identificationCode->getPublicationFormatId();
- } else { // loading a blank form
- $representationId = (int) $request->getUserVar('representationId');
- }
-
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
-
- if ($publicationFormat) { // the format exists for this submission
- $templateMgr->assign('representationId', $representationId);
- $identificationCodes = $publicationFormat->getIdentificationCodes();
- $assignedCodes = array_keys($identificationCodes->toAssociativeArray('code')); // currently assigned codes
- if ($identificationCode) $assignedCodes = array_diff($assignedCodes, array($identificationCode->getCode())); // allow existing codes to keep their value
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
-
- // since the pubId DOI plugin may be enabled, we give that precedence and remove DOI from here if that is the case.
- $pubIdPlugins = PluginRegistry::loadCategory('pubIds', true);
- foreach ($pubIdPlugins as $plugin) {
- if ($plugin->getEnabled() && $plugin->getPubIdType() == 'doi') {
- $assignedCodes[] = '06'; // 06 is DOI in ONIX-speak.
- }
- }
- $codes = $onixCodelistItemDao->getCodes('List5', $assignedCodes); // ONIX list for these
- $templateMgr->assign('identificationCodes', $codes);
- } else {
- fatalError('Format not in authorized submission');
- }
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * Assign form data to user-submitted data.
- * @see Form::readInputData()
- */
- public function readInputData() {
- $this->readUserVars(array(
- 'identificationCodeId',
- 'representationId',
- 'code',
- 'value',
- ));
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- parent::execute(...$functionArgs);
- $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /* @var $identificationCodeDao IdentificationCodeDAO */
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
-
- $submission = $this->getSubmission();
- $identificationCode = $this->getIdentificationCode();
- $publicationFormat = $publicationFormatDao->getById($this->getData('representationId', $this->getPublication()->getId()));
-
- if (!$identificationCode) {
- // this is a new code to this published submission
- $identificationCode = $identificationCodeDao->newDataObject();
- $existingFormat = false;
- if ($publicationFormat != null) { // ensure this format is in this submission
- $identificationCode->setPublicationFormatId($publicationFormat->getId());
- } else {
- fatalError('This format not in authorized submission context!');
- }
- } else {
- $existingFormat = true;
- if ($publicationFormat->getId() != $identificationCode->getPublicationFormatId()) throw new Exception('Invalid format!');
- }
-
- $identificationCode->setCode($this->getData('code'));
- $identificationCode->setValue($this->getData('value'));
-
- if ($existingFormat) {
- $identificationCodeDao->updateObject($identificationCode);
- $identificationCodeId = $identificationCode->getId();
- } else {
- $identificationCodeId = $identificationCodeDao->insertObject($identificationCode);
- }
-
- return $identificationCodeId;
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/form/IdentificationCodeForm.php b/controllers/grid/catalogEntry/form/IdentificationCodeForm.php
new file mode 100644
index 00000000000..2c510dd0b82
--- /dev/null
+++ b/controllers/grid/catalogEntry/form/IdentificationCodeForm.php
@@ -0,0 +1,248 @@
+setSubmission($submission);
+ $this->setPublication($publication);
+ $this->setIdentificationCode($identificationCode);
+
+ // Validation checks for this form
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'code', 'required', 'grid.catalogEntry.codeRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'value', 'required', 'grid.catalogEntry.valueRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'representationId', 'required', 'grid.catalogEntry.publicationFormatRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+ //
+ // Getters and Setters
+ //
+ /**
+ * Get the code
+ *
+ * @return IdentificationCode
+ */
+ public function getIdentificationCode()
+ {
+ return $this->_identificationCode;
+ }
+
+ /**
+ * Set the code
+ *
+ * @param IdentificationCode $identificationCode
+ */
+ public function setIdentificationCode($identificationCode)
+ {
+ $this->_identificationCode = $identificationCode;
+ }
+
+ /**
+ * Get the Submission
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Set the Submission
+ *
+ * @param Submission
+ */
+ public function setSubmission($submission)
+ {
+ $this->_submission = $submission;
+ }
+
+ /**
+ * Get the Publication
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the Publication
+ *
+ * @param Publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+
+ //
+ // Overridden template methods
+ //
+ /**
+ * Initialize form data from the identification code.
+ */
+ public function initData()
+ {
+ $code = $this->getIdentificationCode();
+
+ if ($code) {
+ $this->_data = [
+ 'identificationCodeId' => $code->getId(),
+ 'code' => $code->getCode(),
+ 'value' => $code->getValue(),
+ ];
+ }
+ }
+
+ /**
+ * @copydoc Form::fetch()
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+ $submission = $this->getSubmission();
+ $templateMgr->assign([
+ 'submissionId' => $submission->getId(),
+ 'publicationId' => $this->getPublication()->getId()
+ ]);
+
+ if ($identificationCode = $this->getIdentificationCode()) {
+ $templateMgr->assign([
+ 'identificationCodeId' => $identificationCode->getId(),
+ 'code' => $identificationCode->getCode(),
+ 'value' => $identificationCode->getValue()
+ ]);
+ $representationId = $identificationCode->getPublicationFormatId();
+ } else { // loading a blank form
+ $representationId = (int) $request->getUserVar('representationId');
+ }
+
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
+
+ if ($publicationFormat) { // the format exists for this submission
+ $templateMgr->assign('representationId', $representationId);
+ $identificationCodes = $publicationFormat->getIdentificationCodes();
+ $assignedCodes = array_keys($identificationCodes->toAssociativeArray('code')); // currently assigned codes
+ if ($identificationCode) {
+ $assignedCodes = array_diff($assignedCodes, [$identificationCode->getCode()]);
+ } // allow existing codes to keep their value
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+
+ // Since DOIs may be separately enabled, we give that precedence and remove DOI from here if that is the case.
+ $context = $request->getContext();
+ if ($context->areDoisEnabled()) {
+ $assignedCodes[] = '06'; // 06 is DOI in ONIX-speak.
+ }
+ $codes = $onixCodelistItemDao->getCodes('List5', $assignedCodes); // ONIX list for these
+ $templateMgr->assign('identificationCodes', $codes);
+ } else {
+ fatalError('Format not in authorized submission');
+ }
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ *
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ $this->readUserVars([
+ 'identificationCodeId',
+ 'representationId',
+ 'code',
+ 'value',
+ ]);
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ parent::execute(...$functionArgs);
+ $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /** @var IdentificationCodeDAO $identificationCodeDao */
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+
+ $identificationCode = $this->getIdentificationCode();
+ $publicationFormat = $publicationFormatDao->getById($this->getData('representationId'), $this->getPublication()->getId());
+
+ if (!$identificationCode) {
+ // this is a new code to this published submission
+ $identificationCode = $identificationCodeDao->newDataObject();
+ $existingFormat = false;
+ if ($publicationFormat != null) { // ensure this format is in this submission
+ $identificationCode->setPublicationFormatId($publicationFormat->getId());
+ } else {
+ fatalError('This format not in authorized submission context!');
+ }
+ } else {
+ $existingFormat = true;
+ if ($publicationFormat->getId() != $identificationCode->getPublicationFormatId()) {
+ throw new Exception('Invalid format!');
+ }
+ }
+
+ $identificationCode->setCode($this->getData('code'));
+ $identificationCode->setValue($this->getData('value'));
+
+ if ($existingFormat) {
+ $identificationCodeDao->updateObject($identificationCode);
+ $identificationCodeId = $identificationCode->getId();
+ } else {
+ $identificationCodeId = $identificationCodeDao->insertObject($identificationCode);
+ }
+
+ return $identificationCodeId;
+ }
+}
diff --git a/controllers/grid/catalogEntry/form/MarketForm.inc.php b/controllers/grid/catalogEntry/form/MarketForm.inc.php
deleted file mode 100644
index 91f006886a4..00000000000
--- a/controllers/grid/catalogEntry/form/MarketForm.inc.php
+++ /dev/null
@@ -1,277 +0,0 @@
-setSubmission($submission);
- $this->setPublication($publication);
- $this->setMarket($market);
-
- // Validation checks for this form
- $this->addCheck(new FormValidator($this, 'representationId', 'required', 'grid.catalogEntry.publicationFormatRequired'));
- $this->addCheck(new FormValidator($this, 'date', 'required', 'grid.catalogEntry.dateRequired'));
- $this->addCheck(new FormValidator($this, 'price', 'required', 'grid.catalogEntry.priceRequired'));
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
- //
- // Getters and Setters
- //
- /**
- * Get the entry
- * @return Market
- */
- public function getMarket() {
- return $this->_market;
- }
-
- /**
- * Set the entry
- * @param @market Market
- */
- public function setMarket($market) {
- $this->_market = $market;
- }
-
- /**
- * Get the Submission
- * @return Submission
- */
- public function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Set the Submission
- * @param Submission
- */
- public function setSubmission($submission) {
- $this->_submission = $submission;
- }
-
- /**
- * Get the Publication
- * @return Publication
- */
- public function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the Publication
- * @param Publication
- */
- public function setPublication($publication) {
- $this->_publication = $publication;
- }
-
-
- //
- // Overridden template methods
- //
- /**
- * Initialize form data from the market entry.
- */
- public function initData() {
- $market = $this->getMarket();
-
- if ($market) {
- $this->_data = array(
- 'marketId' => $market->getId(),
- 'countriesIncluded' => $market->getCountriesIncluded(),
- 'countriesExcluded' => $market->getCountriesExcluded(),
- 'regionsIncluded' => $market->getRegionsIncluded(),
- 'regionsExcluded' => $market->getRegionsExcluded(),
- 'date' => $market->getDate(),
- 'dateFormat' => $market->getDateFormat(),
- 'discount' => $market->getDiscount(),
- 'dateRole' => $market->getDateRole(),
- 'agentId' => $market->getAgentId(),
- 'supplierId' => $market->getSupplierId(),
- );
- }
- }
-
- /**
- * @copydoc Form::fetch()
- */
- public function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
- $submission = $this->getSubmission();
- $templateMgr->assign('submissionId', $submission->getId());
- $templateMgr->assign('publicationId', $this->getPublication()->getId());
- $market = $this->getMarket();
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $templateMgr->assign(array(
- 'countryCodes' => $onixCodelistItemDao->getCodes('List91'), // countries (CA, US, GB, etc)
- 'regionCodes' => $onixCodelistItemDao->getCodes('List49'), // regions (British Columbia, England, etc)
- 'publicationDateFormats' => $onixCodelistItemDao->getCodes('List55'), // YYYYMMDD, YYMMDD, etc
- 'publicationDateRoles' => $onixCodelistItemDao->getCodes('List163'),
- 'currencyCodes' => $onixCodelistItemDao->getCodes('List96'), // GBP, USD, CAD, etc
- 'priceTypeCodes' => $onixCodelistItemDao->getCodes('List58'), // without tax, with tax, etc
- 'extentTypeCodes' => $onixCodelistItemDao->getCodes('List23'), // word count, FM page count, BM page count, main page count, etc
- 'taxRateCodes' => $onixCodelistItemDao->getCodes('List62'), // higher rate, standard rate, zero rate
- 'taxTypeCodes' => $onixCodelistItemDao->getCodes('List171'), // VAT, GST
- ));
-
- $availableAgents = DAORegistry::getDAO('RepresentativeDAO')->getAgentsByMonographId($submission->getId());
- $agentOptions = array();
- while ($agent = $availableAgents->next()) {
- $agentOptions[$agent->getId()] = $agent->getName();
- }
- $templateMgr->assign('availableAgents', $agentOptions);
-
- $availableSuppliers = DAORegistry::getDAO('RepresentativeDAO')->getSuppliersByMonographId($submission->getId());
- $supplierOptions = array();
- while ($supplier = $availableSuppliers->next()) {
- $supplierOptions[$supplier->getId()] = $supplier->getName();
- }
- $templateMgr->assign('availableSuppliers', $supplierOptions);
-
- if ($market) {
- $templateMgr->assign(array(
- 'marketId' => $market->getId(),
- 'countriesIncluded' => $market->getCountriesIncluded(),
- 'countriesExcluded' => $market->getCountriesExcluded(),
- 'regionsIncluded' => $market->getRegionsIncluded(),
- 'regionsExcluded' => $market->getRegionsExcluded(),
- 'date' => $market->getDate(),
- 'dateRole' => $market->getDateRole(),
- 'dateFormat' => $market->getDateFormat(),
- 'discount' => $market->getDiscount(),
- 'price' => $market->getPrice(),
- 'priceTypeCode' => $market->getPriceTypeCode(),
- 'currencyCode' => $market->getCurrencyCode() != '' ? $market->getCurrencyCode() : 'CAD',
- 'taxRateCode' => $market->getTaxRateCode(),
- 'taxTypeCode' => $market->getTaxTypeCode() != '' ? $market->getTaxTypeCode() : '02',
- 'agentId' => $market->getAgentId(),
- 'supplierId' => $market->getSupplierId(),
- ));
-
- $representationId = $market->getPublicationFormatId();
- } else { // loading a blank form
- $representationId = (int) $request->getUserVar('representationId');
- $templateMgr->assign(array(
- 'dateFormat' => '20', // YYYYMMDD Onix code as a default
- 'dateRole' => '01', // 'Date of Publication' as default
- 'currencyCode' => 'CAD',
- ));
- }
-
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
-
- if ($publicationFormat) { // the format exists for this submission
- $templateMgr->assign('representationId', $representationId);
- } else {
- fatalError('Format not in authorized submission');
- }
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * Assign form data to user-submitted data.
- * @see Form::readInputData()
- */
- public function readInputData() {
- $this->readUserVars(array(
- 'marketId',
- 'representationId',
- 'countriesIncluded',
- 'countriesExcluded',
- 'regionsIncluded',
- 'regionsExcluded',
- 'date',
- 'dateFormat',
- 'dateRole',
- 'discount',
- 'price',
- 'priceTypeCode',
- 'currencyCode',
- 'taxRateCode',
- 'taxTypeCode',
- 'agentId',
- 'supplierId',
- ));
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- parent::execute(...$functionArgs);
- $marketDao = DAORegistry::getDAO('MarketDAO'); /* @var $marketDao MarketDAO */
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
-
- $submission = $this->getSubmission();
- $market = $this->getMarket();
- $publicationFormat = $publicationFormatDao->getById($this->getData('representationId'), $this->getPublication()->getId());
-
- if (!$market) {
- // this is a new assigned format to this published submission
- $market = $marketDao->newDataObject();
- $existingFormat = false;
- if ($publicationFormat != null) { // ensure this assigned format is in this submission
- $market->setPublicationFormatId($publicationFormat->getId());
- } else {
- fatalError('This assigned format not in authorized submission context!');
- }
- } else {
- $existingFormat = true;
- if ($publicationFormat->getId() != $market->getPublicationFormatId()) throw new Exception('Invalid format!');
- }
-
- $market->setCountriesIncluded($this->getData('countriesIncluded') ? $this->getData('countriesIncluded') : array());
- $market->setCountriesExcluded($this->getData('countriesExcluded') ? $this->getData('countriesExcluded') : array());
- $market->setRegionsIncluded($this->getData('regionsIncluded') ? $this->getData('regionsIncluded') : array());
- $market->setRegionsExcluded($this->getData('regionsExcluded') ? $this->getData('regionsExcluded') : array());
- $market->setDate($this->getData('date'));
- $market->setDateFormat($this->getData('dateFormat'));
- $market->setDiscount($this->getData('discount'));
- $market->setDateRole($this->getData('dateRole'));
- $market->setPrice($this->getData('price'));
- $market->setPriceTypeCode($this->getData('priceTypeCode'));
- $market->setCurrencyCode($this->getData('currencyCode'));
- $market->setTaxRateCode($this->getData('taxRateCode'));
- $market->setTaxTypeCode($this->getData('taxTypeCode'));
- $market->setAgentId($this->getData('agentId'));
- $market->setSupplierId($this->getData('supplierId'));
-
- if ($existingFormat) {
- $marketDao->updateObject($market);
- $marketId = $market->getId();
- } else {
- $marketId = $marketDao->insertObject($market);
- }
-
- return $marketId;
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/form/MarketForm.php b/controllers/grid/catalogEntry/form/MarketForm.php
new file mode 100644
index 00000000000..9d2dea5562c
--- /dev/null
+++ b/controllers/grid/catalogEntry/form/MarketForm.php
@@ -0,0 +1,316 @@
+setSubmission($submission);
+ $this->setPublication($publication);
+ $this->setMarket($market);
+
+ // Validation checks for this form
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'representationId', 'required', 'grid.catalogEntry.publicationFormatRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'date', 'required', 'grid.catalogEntry.dateRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'price', 'required', 'grid.catalogEntry.priceRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+ //
+ // Getters and Setters
+ //
+ /**
+ * Get the entry
+ *
+ * @return Market
+ */
+ public function getMarket()
+ {
+ return $this->_market;
+ }
+
+ /**
+ * Set the entry
+ *
+ * @param Market $market
+ */
+ public function setMarket($market)
+ {
+ $this->_market = $market;
+ }
+
+ /**
+ * Get the Submission
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Set the Submission
+ *
+ * @param Submission
+ */
+ public function setSubmission($submission)
+ {
+ $this->_submission = $submission;
+ }
+
+ /**
+ * Get the Publication
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the Publication
+ *
+ * @param Publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+
+ //
+ // Overridden template methods
+ //
+ /**
+ * Initialize form data from the market entry.
+ */
+ public function initData()
+ {
+ $market = $this->getMarket();
+
+ if ($market) {
+ $this->_data = [
+ 'marketId' => $market->getId(),
+ 'countriesIncluded' => $market->getCountriesIncluded(),
+ 'countriesExcluded' => $market->getCountriesExcluded(),
+ 'regionsIncluded' => $market->getRegionsIncluded(),
+ 'regionsExcluded' => $market->getRegionsExcluded(),
+ 'date' => $market->getDate(),
+ 'dateFormat' => $market->getDateFormat(),
+ 'discount' => $market->getDiscount(),
+ 'dateRole' => $market->getDateRole(),
+ 'agentId' => $market->getAgentId(),
+ 'supplierId' => $market->getSupplierId(),
+ ];
+ }
+ }
+
+ /**
+ * @copydoc Form::fetch()
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+ $submission = $this->getSubmission();
+ $templateMgr->assign('submissionId', $submission->getId());
+ $templateMgr->assign('publicationId', $this->getPublication()->getId());
+ $market = $this->getMarket();
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $templateMgr->assign([
+ 'countryCodes' => $onixCodelistItemDao->getCodes('List91'), // countries (CA, US, GB, etc)
+ 'regionCodes' => $onixCodelistItemDao->getCodes('List49'), // regions (British Columbia, England, etc)
+ 'publicationDateFormats' => $onixCodelistItemDao->getCodes('List55'), // YYYYMMDD, YYMMDD, etc
+ 'publicationDateRoles' => $onixCodelistItemDao->getCodes('List163'),
+ 'currencyCodes' => $onixCodelistItemDao->getCodes('List96'), // GBP, USD, CAD, etc
+ 'priceTypeCodes' => $onixCodelistItemDao->getCodes('List58'), // without tax, with tax, etc
+ 'extentTypeCodes' => $onixCodelistItemDao->getCodes('List23'), // word count, FM page count, BM page count, main page count, etc
+ 'taxRateCodes' => $onixCodelistItemDao->getCodes('List62'), // higher rate, standard rate, zero rate
+ 'taxTypeCodes' => $onixCodelistItemDao->getCodes('List171'), // VAT, GST
+ ]);
+
+ /** @var RepresentativeDAO */
+ $representativeDao = DAORegistry::getDAO('RepresentativeDAO');
+ $availableAgents = $representativeDao->getAgentsByMonographId($submission->getId());
+ $agentOptions = [];
+ while ($agent = $availableAgents->next()) {
+ $agentOptions[$agent->getId()] = $agent->getName();
+ }
+ $templateMgr->assign('availableAgents', $agentOptions);
+
+ $availableSuppliers = $representativeDao->getSuppliersByMonographId($submission->getId());
+ $supplierOptions = [];
+ while ($supplier = $availableSuppliers->next()) {
+ $supplierOptions[$supplier->getId()] = $supplier->getName();
+ }
+ $templateMgr->assign('availableSuppliers', $supplierOptions);
+
+ if ($market) {
+ $templateMgr->assign([
+ 'marketId' => $market->getId(),
+ 'countriesIncluded' => $market->getCountriesIncluded(),
+ 'countriesExcluded' => $market->getCountriesExcluded(),
+ 'regionsIncluded' => $market->getRegionsIncluded(),
+ 'regionsExcluded' => $market->getRegionsExcluded(),
+ 'date' => $market->getDate(),
+ 'dateRole' => $market->getDateRole(),
+ 'dateFormat' => $market->getDateFormat(),
+ 'discount' => $market->getDiscount(),
+ 'price' => $market->getPrice(),
+ 'priceTypeCode' => $market->getPriceTypeCode(),
+ 'currencyCode' => $market->getCurrencyCode() != '' ? $market->getCurrencyCode() : 'CAD',
+ 'taxRateCode' => $market->getTaxRateCode(),
+ 'taxTypeCode' => $market->getTaxTypeCode() != '' ? $market->getTaxTypeCode() : '02',
+ 'agentId' => $market->getAgentId(),
+ 'supplierId' => $market->getSupplierId(),
+ ]);
+
+ $representationId = $market->getPublicationFormatId();
+ } else { // loading a blank form
+ $representationId = (int) $request->getUserVar('representationId');
+ $templateMgr->assign([
+ 'dateFormat' => '20', // YYYYMMDD Onix code as a default
+ 'dateRole' => '01', // 'Date of Publication' as default
+ 'currencyCode' => 'CAD',
+ ]);
+ }
+
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
+
+ if ($publicationFormat) { // the format exists for this submission
+ $templateMgr->assign('representationId', $representationId);
+ } else {
+ fatalError('Format not in authorized submission');
+ }
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ *
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ $this->readUserVars([
+ 'marketId',
+ 'representationId',
+ 'countriesIncluded',
+ 'countriesExcluded',
+ 'regionsIncluded',
+ 'regionsExcluded',
+ 'date',
+ 'dateFormat',
+ 'dateRole',
+ 'discount',
+ 'price',
+ 'priceTypeCode',
+ 'currencyCode',
+ 'taxRateCode',
+ 'taxTypeCode',
+ 'agentId',
+ 'supplierId',
+ ]);
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ parent::execute(...$functionArgs);
+ $marketDao = DAORegistry::getDAO('MarketDAO'); /** @var MarketDAO $marketDao */
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+
+ $submission = $this->getSubmission();
+ $market = $this->getMarket();
+ $publicationFormat = $publicationFormatDao->getById($this->getData('representationId'), $this->getPublication()->getId());
+
+ if (!$market) {
+ // this is a new assigned format to this published submission
+ $market = $marketDao->newDataObject();
+ $existingFormat = false;
+ if ($publicationFormat != null) { // ensure this assigned format is in this submission
+ $market->setPublicationFormatId($publicationFormat->getId());
+ } else {
+ fatalError('This assigned format not in authorized submission context!');
+ }
+ } else {
+ $existingFormat = true;
+ if ($publicationFormat->getId() != $market->getPublicationFormatId()) {
+ throw new Exception('Invalid format!');
+ }
+ }
+
+ $market->setCountriesIncluded($this->getData('countriesIncluded') ? $this->getData('countriesIncluded') : []);
+ $market->setCountriesExcluded($this->getData('countriesExcluded') ? $this->getData('countriesExcluded') : []);
+ $market->setRegionsIncluded($this->getData('regionsIncluded') ? $this->getData('regionsIncluded') : []);
+ $market->setRegionsExcluded($this->getData('regionsExcluded') ? $this->getData('regionsExcluded') : []);
+ $market->setDate($this->getData('date'));
+ $market->setDateFormat($this->getData('dateFormat'));
+ $market->setDiscount($this->getData('discount'));
+ $market->setDateRole($this->getData('dateRole'));
+ $market->setPrice($this->getData('price'));
+ $market->setPriceTypeCode($this->getData('priceTypeCode'));
+ $market->setCurrencyCode($this->getData('currencyCode'));
+ $market->setTaxRateCode($this->getData('taxRateCode'));
+ $market->setTaxTypeCode($this->getData('taxTypeCode'));
+ $market->setAgentId($this->getData('agentId'));
+ $market->setSupplierId($this->getData('supplierId'));
+
+ if ($existingFormat) {
+ $marketDao->updateObject($market);
+ $marketId = $market->getId();
+ } else {
+ $marketId = $marketDao->insertObject($market);
+ }
+
+ return $marketId;
+ }
+}
diff --git a/controllers/grid/catalogEntry/form/PublicationDateForm.inc.php b/controllers/grid/catalogEntry/form/PublicationDateForm.inc.php
deleted file mode 100644
index e13914faf03..00000000000
--- a/controllers/grid/catalogEntry/form/PublicationDateForm.inc.php
+++ /dev/null
@@ -1,230 +0,0 @@
-setSubmission($submission);
- $this->setPublication($publication);
- $this->setPublicationDate($publicationDate);
-
- // Validation checks for this form
- $form = $this;
- $this->addCheck(new FormValidator($this, 'role', 'required', 'grid.catalogEntry.roleRequired'));
- $this->addCheck(new FormValidator($this, 'dateFormat', 'required', 'grid.catalogEntry.dateFormatRequired'));
-
- $this->addCheck(new FormValidatorCustom(
- $this, 'date', 'required', 'grid.catalogEntry.dateRequired',
- function($date) use ($form) {
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $dateFormat = $form->getData('dateFormat');
- if (!$dateFormat) return false;
- $dateFormats = $onixCodelistItemDao->getCodes('List55');
- $format = $dateFormats[$dateFormat];
- if (stristr($format, 'string') && $date != '') return true;
- $format = trim(preg_replace('/\s*\(.*?\)/i', '', $format));
- if (count(str_split($date)) == count(str_split($format))) return true;
- return false;
- }
- ));
-
- $this->addCheck(new FormValidator($this, 'representationId', 'required', 'grid.catalogEntry.publicationFormatRequired'));
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
- //
- // Getters and Setters
- //
- /**
- * Get the date
- * @return PublicationDate
- */
- public function getPublicationDate() {
- return $this->_publicationDate;
- }
-
- /**
- * Set the date
- * @param @publicationDate PublicationDate
- */
- public function setPublicationDate($publicationDate) {
- $this->_publicationDate = $publicationDate;
- }
-
- /**
- * Get the Submission
- * @return Submission
- */
- public function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Set the Submission
- * @param Submission
- */
- public function setSubmission($submission) {
- $this->_submission = $submission;
- }
-
- /**
- * Get the Publication
- * @return Publication
- */
- public function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the Publication
- * @param Publication
- */
- public function setPublication($publication) {
- $this->_publication = $publication;
- }
-
-
- //
- // Overridden template methods
- //
- /**
- * Initialize form data from the publication date.
- */
- public function initData() {
- $date = $this->getPublicationDate();
-
- if ($date) {
- $this->_data = array(
- 'publicationDateId' => $date->getId(),
- 'role' => $date->getRole(),
- 'dateFormat' => $date->getDateFormat(),
- 'date' => $date->getDate(),
- );
- }
- }
-
- /**
- * @copydoc Form::fetch()
- */
- public function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
- $submission = $this->getSubmission();
- $templateMgr->assign('submissionId', $submission->getId());
- $templateMgr->assign('publicationId', $this->getPublication()->getId());
- $publicationDate = $this->getPublicationDate();
-
- if ($publicationDate) {
- $templateMgr->assign('publicationDateId', $publicationDate->getId());
- $templateMgr->assign('role', $publicationDate->getRole());
- $templateMgr->assign('dateFormat', $publicationDate->getDateFormat());
- $templateMgr->assign('date', $publicationDate->getDate());
- $representationId = $publicationDate->getPublicationFormatId();
- } else { // loading a blank form
- $representationId = (int) $request->getUserVar('representationId');
- $templateMgr->assign('dateFormat', '20'); // YYYYMMDD Onix code as a default
- }
-
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
-
- if ($publicationFormat) { // the format exists for this submission
- $templateMgr->assign('representationId', $representationId);
- $publicationDates = $publicationFormat->getPublicationDates();
- $assignedRoles = array_keys($publicationDates->toAssociativeArray('role')); // currently assigned roles
- if ($publicationDate) $assignedRoles = array_diff($assignedRoles, array($publicationDate->getRole())); // allow existing roles to keep their value
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $roles = $onixCodelistItemDao->getCodes('List163', $assignedRoles); // ONIX list for these
- $templateMgr->assign('publicationDateRoles', $roles);
-
- //load our date formats
- $dateFormats = $onixCodelistItemDao->getCodes('List55');
- $templateMgr->assign('publicationDateFormats', $dateFormats);
- } else {
- fatalError('Format not in authorized submission');
- }
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * Assign form data to user-submitted data.
- * @see Form::readInputData()
- */
- public function readInputData() {
- $this->readUserVars(array(
- 'publicationDateId',
- 'representationId',
- 'role',
- 'dateFormat',
- 'date',
- ));
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- parent::execute(...$functionArgs);
- $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /* @var $publicationDateDao PublicationDateDAO */
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
-
- $submission = $this->getSubmission();
- $publicationDate = $this->getPublicationDate();
- $publicationFormat = $publicationFormatDao->getById($this->getData('representationId'), $this->getPublication()->getId());
-
- if (!$publicationDate) {
- // this is a new publication date for this published submission
- $publicationDate = $publicationDateDao->newDataObject();
- $existingFormat = false;
- if ($publicationFormat != null) { // ensure this assigned format is in this submission
- $publicationDate->setPublicationFormatId($publicationFormat->getId());
- } else {
- fatalError('This assigned format not in authorized submission context!');
- }
- } else {
- $existingFormat = true;
- if ($publicationFormat->getId() != $publicationDate->getPublicationFormatId()) throw new Exception('Invalid format!');
- }
-
- $publicationDate->setRole($this->getData('role'));
- $publicationDate->setDateFormat($this->getData('dateFormat'));
- $publicationDate->setDate($this->getData('date'));
-
- if ($existingFormat) {
- $publicationDateDao->updateObject($publicationDate);
- $publicationDateId = $publicationDate->getId();
- } else {
- $publicationDateId = $publicationDateDao->insertObject($publicationDate);
- }
-
- return $publicationDateId;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/form/PublicationDateForm.php b/controllers/grid/catalogEntry/form/PublicationDateForm.php
new file mode 100644
index 00000000000..599e6287fa4
--- /dev/null
+++ b/controllers/grid/catalogEntry/form/PublicationDateForm.php
@@ -0,0 +1,275 @@
+setSubmission($submission);
+ $this->setPublication($publication);
+ $this->setPublicationDate($publicationDate);
+
+ // Validation checks for this form
+ $form = $this;
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'role', 'required', 'grid.catalogEntry.roleRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'dateFormat', 'required', 'grid.catalogEntry.dateFormatRequired'));
+
+ $this->addCheck(new \PKP\form\validation\FormValidatorCustom(
+ $this,
+ 'date',
+ 'required',
+ 'grid.catalogEntry.dateRequired',
+ function ($date) use ($form) {
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $dateFormat = $form->getData('dateFormat');
+ if (!$dateFormat) {
+ return false;
+ }
+ $dateFormats = $onixCodelistItemDao->getCodes('List55');
+ $format = $dateFormats[$dateFormat];
+ if (stristr($format, 'string') && $date != '') {
+ return true;
+ }
+ $format = trim(preg_replace('/\s*\(.*?\)/i', '', $format));
+ if (count(str_split($date)) == count(str_split($format))) {
+ return true;
+ }
+ return false;
+ }
+ ));
+
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'representationId', 'required', 'grid.catalogEntry.publicationFormatRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+ //
+ // Getters and Setters
+ //
+ /**
+ * Get the date
+ *
+ * @return PublicationDate
+ */
+ public function getPublicationDate()
+ {
+ return $this->_publicationDate;
+ }
+
+ /**
+ * Set the date
+ *
+ * @param PublicationDate $publicationDate
+ */
+ public function setPublicationDate($publicationDate)
+ {
+ $this->_publicationDate = $publicationDate;
+ }
+
+ /**
+ * Get the Submission
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Set the Submission
+ *
+ * @param Submission
+ */
+ public function setSubmission($submission)
+ {
+ $this->_submission = $submission;
+ }
+
+ /**
+ * Get the Publication
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the Publication
+ *
+ * @param Publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+
+ //
+ // Overridden template methods
+ //
+ /**
+ * Initialize form data from the publication date.
+ */
+ public function initData()
+ {
+ $date = $this->getPublicationDate();
+
+ if ($date) {
+ $this->_data = [
+ 'publicationDateId' => $date->getId(),
+ 'role' => $date->getRole(),
+ 'dateFormat' => $date->getDateFormat(),
+ 'date' => $date->getDate(),
+ ];
+ }
+ }
+
+ /**
+ * @copydoc Form::fetch()
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+ $submission = $this->getSubmission();
+ $templateMgr->assign('submissionId', $submission->getId());
+ $templateMgr->assign('publicationId', $this->getPublication()->getId());
+ $publicationDate = $this->getPublicationDate();
+
+ if ($publicationDate) {
+ $templateMgr->assign('publicationDateId', $publicationDate->getId());
+ $templateMgr->assign('role', $publicationDate->getRole());
+ $templateMgr->assign('dateFormat', $publicationDate->getDateFormat());
+ $templateMgr->assign('date', $publicationDate->getDate());
+ $representationId = $publicationDate->getPublicationFormatId();
+ } else { // loading a blank form
+ $representationId = (int) $request->getUserVar('representationId');
+ $templateMgr->assign('dateFormat', '20'); // YYYYMMDD Onix code as a default
+ }
+
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
+
+ if ($publicationFormat) { // the format exists for this submission
+ $templateMgr->assign('representationId', $representationId);
+ $publicationDates = $publicationFormat->getPublicationDates();
+ $assignedRoles = array_keys($publicationDates->toAssociativeArray('role')); // currently assigned roles
+ if ($publicationDate) {
+ $assignedRoles = array_diff($assignedRoles, [$publicationDate->getRole()]);
+ } // allow existing roles to keep their value
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $roles = $onixCodelistItemDao->getCodes('List163', $assignedRoles); // ONIX list for these
+ $templateMgr->assign('publicationDateRoles', $roles);
+
+ //load our date formats
+ $dateFormats = $onixCodelistItemDao->getCodes('List55');
+ $templateMgr->assign('publicationDateFormats', $dateFormats);
+ } else {
+ fatalError('Format not in authorized submission');
+ }
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ *
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ $this->readUserVars([
+ 'publicationDateId',
+ 'representationId',
+ 'role',
+ 'dateFormat',
+ 'date',
+ ]);
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ parent::execute(...$functionArgs);
+ $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /** @var PublicationDateDAO $publicationDateDao */
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+
+ $submission = $this->getSubmission();
+ $publicationDate = $this->getPublicationDate();
+ $publicationFormat = $publicationFormatDao->getById($this->getData('representationId'), $this->getPublication()->getId());
+
+ if (!$publicationDate) {
+ // this is a new publication date for this published submission
+ $publicationDate = $publicationDateDao->newDataObject();
+ $existingFormat = false;
+ if ($publicationFormat != null) { // ensure this assigned format is in this submission
+ $publicationDate->setPublicationFormatId($publicationFormat->getId());
+ } else {
+ fatalError('This assigned format not in authorized submission context!');
+ }
+ } else {
+ $existingFormat = true;
+ if ($publicationFormat->getId() != $publicationDate->getPublicationFormatId()) {
+ throw new Exception('Invalid format!');
+ }
+ }
+
+ $publicationDate->setRole($this->getData('role'));
+ $publicationDate->setDateFormat($this->getData('dateFormat'));
+ $publicationDate->setDate($this->getData('date'));
+
+ if ($existingFormat) {
+ $publicationDateDao->updateObject($publicationDate);
+ $publicationDateId = $publicationDate->getId();
+ } else {
+ $publicationDateId = $publicationDateDao->insertObject($publicationDate);
+ }
+
+ return $publicationDateId;
+ }
+}
diff --git a/controllers/grid/catalogEntry/form/PublicationFormatForm.inc.php b/controllers/grid/catalogEntry/form/PublicationFormatForm.inc.php
deleted file mode 100644
index 17030b384f0..00000000000
--- a/controllers/grid/catalogEntry/form/PublicationFormatForm.inc.php
+++ /dev/null
@@ -1,195 +0,0 @@
-setMonograph($monograph);
- $this->setPublicationFormat($publicationFormat);
- $this->setPublication($publication);
-
- // Validation checks for this form
- $this->addCheck(new FormValidator($this, 'name', 'required', 'grid.catalogEntry.nameRequired'));
- $this->addCheck(new FormValidator($this, 'entryKey', 'required', 'grid.catalogEntry.publicationFormatRequired'));
- $this->addCheck(new FormValidatorRegExp($this, 'urlPath', 'optional', 'validator.alpha_dash_period', '/^[a-zA-Z0-9]+([\\.\\-_][a-zA-Z0-9]+)*$/'));
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
- //
- // Getters and Setters
- //
- /**
- * Get the format
- * @return PublicationFormat
- */
- function getPublicationFormat() {
- return $this->_publicationFormat;
- }
-
- /**
- * Set the publication format
- * @param @format PublicationFormat
- */
- function setPublicationFormat($publicationFormat) {
- $this->_publicationFormat = $publicationFormat;
- }
-
- /**
- * Get the Monograph
- * @return Monograph
- */
- function getMonograph() {
- return $this->_monograph;
- }
-
- /**
- * Set the MonographId
- * @param Monograph
- */
- function setMonograph($monograph) {
- $this->_monograph = $monograph;
- }
-
-
- /**
- * Get the Publication
- * @return Publication
- */
- function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the PublicationId
- * @param Publication
- */
- function setPublication($publication) {
- $this->_publication = $publication;
- }
-
-
- //
- // Overridden template methods
- //
- /**
- * Initialize form data from the associated publication format.
- */
- function initData() {
- $format = $this->getPublicationFormat();
-
- if ($format) {
- $this->_data = array(
- 'entryKey' => $format->getEntryKey(),
- 'name' => $format->getName(null),
- 'isPhysicalFormat' => $format->getPhysicalFormat()?true:false,
- 'remoteURL' => $format->getRemoteURL(),
- 'urlPath' => $format->getData('urlPath'),
- );
- } else {
- $this->setData('entryKey', 'DA');
- }
- }
-
- /**
- * @copydoc Form::fetch()
- */
- function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $templateMgr->assign('entryKeys', $onixCodelistItemDao->getCodes('List7')); // List7 is for object formats
-
- $monograph = $this->getMonograph();
- $templateMgr->assign('submissionId', $monograph->getId());
- $publicationFormat = $this->getPublicationFormat();
- if ($publicationFormat != null) {
- $templateMgr->assign('representationId', $publicationFormat->getId());
- }
- $templateMgr->assign('publicationId', $this->getPublication()->getId());
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * Assign form data to user-submitted data.
- * @see Form::readInputData()
- */
- function readInputData() {
- $this->readUserVars(array(
- 'name',
- 'entryKey',
- 'isPhysicalFormat',
- 'remoteURL',
- 'urlPath',
- ));
- }
-
- /**
- * Save the assigned format
- * @return int Publication format ID
- * @see Form::execute()
- */
- function execute(...$functionParams) {
- parent::execute(...$functionParams);
-
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $publicationFormat = $this->getPublicationFormat();
- if (!$publicationFormat) {
- // this is a new format to this published submission
- $publicationFormat = $publicationFormatDao->newDataObject();
- $publicationFormat->setData('publicationId', $this->getPublication()->getId());
- $existingFormat = false;
- } else {
- $existingFormat = true;
- if ($this->getPublication()->getId() != $publicationFormat->getData('publicationId')) {
- throw new Exception('Invalid publication format');
- }
- }
-
- $publicationFormat->setName($this->getData('name'));
- $publicationFormat->setEntryKey($this->getData('entryKey'));
- $publicationFormat->setPhysicalFormat($this->getData('isPhysicalFormat')?true:false);
- $publicationFormat->setRemoteURL($this->getData('remoteURL'));
- $publicationFormat->setData('urlPath', $this->getData('urlPath'));
-
- if ($existingFormat) {
- $publicationFormatDao->updateObject($publicationFormat);
- $representationId = $publicationFormat->getId();
- } else {
- $representationId = $publicationFormatDao->insertObject($publicationFormat);
- // log the creation of the format.
- import('lib.pkp.classes.log.SubmissionLog');
- import('classes.log.SubmissionEventLogEntry');
- SubmissionLog::logEvent(Application::get()->getRequest(), $this->getMonograph(), SUBMISSION_LOG_PUBLICATION_FORMAT_CREATE, 'submission.event.publicationFormatCreated', array('formatName' => $publicationFormat->getLocalizedName()));
- }
-
- return $representationId;
- }
-}
-
-
diff --git a/controllers/grid/catalogEntry/form/PublicationFormatForm.php b/controllers/grid/catalogEntry/form/PublicationFormatForm.php
new file mode 100644
index 00000000000..1a4a1714e75
--- /dev/null
+++ b/controllers/grid/catalogEntry/form/PublicationFormatForm.php
@@ -0,0 +1,288 @@
+setMonograph($monograph);
+ $this->setPublicationFormat($publicationFormat);
+ $this->setPublication($publication);
+
+ // Validation checks for this form
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'name', 'required', 'grid.catalogEntry.nameRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'entryKey', 'required', 'grid.catalogEntry.publicationFormatRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorRegExp($this, 'urlPath', 'optional', 'validator.alpha_dash_period', '/^[a-zA-Z0-9]+([\\.\\-_][a-zA-Z0-9]+)*$/'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+ //
+ // Getters and Setters
+ //
+ /**
+ * Get the format
+ *
+ * @return PublicationFormat
+ */
+ public function getPublicationFormat()
+ {
+ return $this->_publicationFormat;
+ }
+
+ /**
+ * Set the publication format
+ *
+ */
+ public function setPublicationFormat($publicationFormat)
+ {
+ $this->_publicationFormat = $publicationFormat;
+ }
+
+ /**
+ * Get the Monograph
+ *
+ * @return Submission
+ */
+ public function getMonograph()
+ {
+ return $this->_monograph;
+ }
+
+ /**
+ * Set the MonographId
+ *
+ * @param Submission
+ */
+ public function setMonograph($monograph)
+ {
+ $this->_monograph = $monograph;
+ }
+
+
+ /**
+ * Get the Publication
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the PublicationId
+ *
+ * @param Publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+
+ //
+ // Overridden template methods
+ //
+ /**
+ * Initialize form data from the associated publication format.
+ */
+ public function initData()
+ {
+ $format = $this->getPublicationFormat();
+
+ if ($format) {
+ $isbn10 = '';
+ $isbn13 = '';
+ $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /** @var IdentificationCodeDAO $identificationCodeDao */
+ $identificationCodes = $identificationCodeDao->getByPublicationFormatId($format->getId());
+ while ($identificationCode = $identificationCodes->next()) {
+ if ($identificationCode->getCode() == '02') {
+ $isbn10 = $identificationCode->getValue();
+ }
+ if ($identificationCode->getCode() == '15') {
+ $isbn13 = $identificationCode->getValue();
+ }
+ }
+
+ $this->_data = [
+ 'entryKey' => $format->getEntryKey(),
+ 'name' => $format->getName(null),
+ 'isPhysicalFormat' => $format->getPhysicalFormat() ? true : false,
+ 'isbn10' => $isbn10,
+ 'isbn13' => $isbn13,
+ 'remoteURL' => $format->getRemoteURL(),
+ 'urlPath' => $format->getData('urlPath'),
+ ];
+ } else {
+ $this->setData('entryKey', 'DA');
+ }
+ }
+
+ /**
+ * @copydoc Form::fetch()
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $templateMgr->assign('entryKeys', $onixCodelistItemDao->getCodes('List7')); // List7 is for object formats
+
+ $monograph = $this->getMonograph();
+ $templateMgr->assign('submissionId', $monograph->getId());
+ $publicationFormat = $this->getPublicationFormat();
+ if ($publicationFormat != null) {
+ $templateMgr->assign('representationId', $publicationFormat->getId());
+ }
+ $templateMgr->assign('publicationId', $this->getPublication()->getId());
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ *
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ $this->readUserVars([
+ 'name',
+ 'entryKey',
+ 'isPhysicalFormat',
+ 'isbn10',
+ 'isbn13',
+ 'remoteURL',
+ 'urlPath',
+ ]);
+ }
+
+ /**
+ * Save the assigned format
+ *
+ * @return int Publication format ID
+ *
+ * @see Form::execute()
+ */
+ public function execute(...$functionParams)
+ {
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $publicationFormat = $this->getPublicationFormat();
+ if (!$publicationFormat) {
+ // this is a new format to this published submission
+ $publicationFormat = $publicationFormatDao->newDataObject();
+ $publicationFormat->setData('publicationId', $this->getPublication()->getId());
+ $this->setPublicationFormat($publicationFormat);
+ $existingFormat = false;
+ } else {
+ $existingFormat = true;
+ if ($this->getPublication()->getId() != $publicationFormat->getData('publicationId')) {
+ throw new Exception('Invalid publication format');
+ }
+ }
+
+ $publicationFormat->setName($this->getData('name'));
+ $publicationFormat->setEntryKey($this->getData('entryKey'));
+ $publicationFormat->setPhysicalFormat($this->getData('isPhysicalFormat') ? true : false);
+ $publicationFormat->setRemoteURL(strlen($remoteUrl = (string) $this->getData('remoteURL')) ? $remoteUrl : null);
+ $publicationFormat->setData('urlPath', strlen($urlPath = (string) $this->getData('urlPath')) ? $urlPath : null);
+ parent::execute(...$functionParams);
+
+ if ($existingFormat) {
+ $publicationFormatDao->updateObject($publicationFormat);
+ $representationId = $publicationFormat->getId();
+ } else {
+ $representationId = $publicationFormatDao->insertObject($publicationFormat);
+ }
+
+ // Remove existing ISBN-10 or ISBN-13 code
+ $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /** @var IdentificationCodeDAO $identificationCodeDao */
+ $identificationCodes = $identificationCodeDao->getByPublicationFormatId($representationId);
+ while ($identificationCode = $identificationCodes->next()) {
+ if ($identificationCode->getCode() == '02' || $identificationCode->getCode() == '15') {
+ $identificationCodeDao->deleteById($identificationCode->getId());
+ }
+ }
+
+ // Add new ISBN-10 or ISBN-13 codes
+ if ($this->getData('isbn10') || $this->getData('isbn13')) {
+ $isbnValues = [];
+ if ($this->getData('isbn10')) {
+ $isbnValues['02'] = $this->getData('isbn10');
+ }
+ if ($this->getData('isbn13')) {
+ $isbnValues['15'] = $this->getData('isbn13');
+ }
+
+ foreach ($isbnValues as $isbnCode => $isbnValue) {
+ $identificationCode = $identificationCodeDao->newDataObject();
+ $identificationCode->setPublicationFormatId($representationId);
+ $identificationCode->setCode($isbnCode);
+ $identificationCode->setValue($isbnValue);
+ $identificationCodeDao->insertObject($identificationCode);
+ }
+ }
+
+ if (!$existingFormat) {
+ // log the creation of the format.
+ $logEntry = Repo::eventLog()->newDataObject([
+ 'assocType' => PKPApplication::ASSOC_TYPE_SUBMISSION,
+ 'assocId' => $this->getMonograph()->getId(),
+ 'eventType' => SubmissionEventLogEntry::SUBMISSION_LOG_PUBLICATION_FORMAT_CREATE,
+ 'userId' => Application::get()->getRequest()->getUser()?->getId(),
+ 'message' => 'submission.event.publicationFormatCreated',
+ 'isTranslate' => false,
+ 'dateLogged' => Core::getCurrentDate(),
+ 'publicationFormatName' => $publicationFormat->getData('name')
+ ]);
+ Repo::eventLog()->add($logEntry);
+ }
+
+ return $representationId;
+ }
+}
diff --git a/controllers/grid/catalogEntry/form/PublicationFormatMetadataForm.inc.php b/controllers/grid/catalogEntry/form/PublicationFormatMetadataForm.inc.php
deleted file mode 100644
index 9d728741d33..00000000000
--- a/controllers/grid/catalogEntry/form/PublicationFormatMetadataForm.inc.php
+++ /dev/null
@@ -1,331 +0,0 @@
-_submission = $submission;
- $this->_publication = $publication;
- $this->_publicationFormat = $representation;
-
- if (!$this->_submission || !$this->_publication || !$this->_publicationFormat) {
- throw new Exception('PublicationFormatMetadataForm was instantiated without required dependencies.');
- }
-
- $this->_pubIdPluginHelper = new PKPPubIdPluginHelper();
-
- $this->_stageId = $stageId;
- $this->_isPhysicalFormat = $isPhysicalFormat;
- $this->_remoteURL = $remoteURL;
- $this->_formParams = $formParams;
-
- $this->addCheck(new FormValidator($this, 'productAvailabilityCode', 'required', 'grid.catalogEntry.productAvailabilityRequired'));
- $this->addCheck(new FormValidatorRegExp($this, 'directSalesPrice', 'optional', 'grid.catalogEntry.validPriceRequired', '/^[0-9]*(\.[0-9]+)?$/'));
- $this->addCheck(new FormValidator($this, 'productCompositionCode', 'required', 'grid.catalogEntry.productCompositionRequired'));
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
- /**
- * @copydoc Form::fetch
- */
- public function fetch($request, $template = null, $display = false) {
- $publicationFormat = $this->getPublicationFormat();
- $context = $request->getContext();
-
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign('submissionId', $this->getSubmission()->getId());
- $templateMgr->assign('publicationId', $this->getPublication()->getId());
- $templateMgr->assign('representationId', (int) $publicationFormat->getId());
-
- // included to load format-specific templates
- $templateMgr->assign('isPhysicalFormat', (bool) $this->getPhysicalFormat());
- $templateMgr->assign('remoteURL', $this->getRemoteURL());
-
- $templateMgr->assign('stageId', $this->getStageId());
- $templateMgr->assign('formParams', $this->getFormParams());
-
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
-
- // Check if e-commerce is available
- $paymentManager = Application::getPaymentManager($context);
- if ($paymentManager->isConfigured()) {
- $templateMgr->assign('paymentConfigured', true);
- $templateMgr->assign('currency', $context->getSetting('currency'));
- }
-
- // get the lists associated with the select elements on these publication format forms.
- $codes = array(
- 'productCompositionCodes' => 'List2', // single item, multiple item, trade-only, etc
- 'measurementUnitCodes' => 'List50', // grams, inches, millimeters
- 'weightUnitCodes' => 'List95', // pounds, grams, ounces
- 'measurementTypeCodes' => 'List48', // height, width, depth
- 'productFormDetailCodes' => 'List175', // refinement of product form (SACD, Mass market (rack) paperback, etc)
- 'productAvailabilityCodes' => 'List65', // Available, In Stock, Print On Demand, Not Yet Available, etc
- 'technicalProtectionCodes' => 'List144', // None, DRM, Apple DRM, etc
- 'returnableIndicatorCodes' => 'List66', // No, not returnable, Yes, full copies only, (required for physical items only)
- 'countriesIncludedCodes' => 'List91', // country region codes
- );
-
- foreach ($codes as $templateVarName => $list) {
- $templateMgr->assign($templateVarName, $onixCodelistItemDao->getCodes($list));
- }
-
- // consider public identifiers
- $pubIdPlugins = PluginRegistry::loadCategory('pubIds', true);
- $templateMgr->assign('pubIdPlugins', $pubIdPlugins);
- $templateMgr->assign('pubObject', $publicationFormat);
-
- $templateMgr->assign('notificationRequestOptions', array(
- NOTIFICATION_LEVEL_NORMAL => array(
- NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD => array(ASSOC_TYPE_PRESS, $context->getId()),
- ),
- NOTIFICATION_LEVEL_TRIVIAL => array()
- ));
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * Initialize form data for an instance of this form.
- */
- public function initData() {
- AppLocale::requireComponents(
- LOCALE_COMPONENT_APP_COMMON,
- LOCALE_COMPONENT_PKP_SUBMISSION,
- LOCALE_COMPONENT_APP_SUBMISSION
- );
-
- $submission = $this->getSubmission();
- $publicationFormat = $this->getPublicationFormat();
-
- $this->_data = array(
- 'fileSize' => (boolean) $publicationFormat->getFileSize() ? $publicationFormat->getFileSize() : $publicationFormat->getCalculatedFileSize(),
- 'override' => (boolean) $publicationFormat->getData('fileSize') ? true : false,
- 'frontMatter' => $publicationFormat->getFrontMatter(),
- 'backMatter' => $publicationFormat->getBackMatter(),
- 'height' => $publicationFormat->getHeight(),
- 'heightUnitCode' => $publicationFormat->getHeightUnitCode() != '' ? $publicationFormat->getHeightUnitCode() : 'mm',
- 'width' => $publicationFormat->getWidth(),
- 'widthUnitCode' => $publicationFormat->getWidthUnitCode() != '' ? $publicationFormat->getWidthUnitCode() : 'mm',
- 'thickness' => $publicationFormat->getThickness(),
- 'thicknessUnitCode' => $publicationFormat->getThicknessUnitCode() != '' ? $publicationFormat->getThicknessUnitCode() : 'mm',
- 'weight' => $publicationFormat->getWeight(),
- 'weightUnitCode' => $publicationFormat->getWeightUnitCode() != '' ? $publicationFormat->getWeightUnitCode() : 'gr',
- 'productCompositionCode' => $publicationFormat->getProductCompositionCode(),
- 'productFormDetailCode' => $publicationFormat->getProductFormDetailCode(),
- 'countryManufactureCode' => $publicationFormat->getCountryManufactureCode() != '' ? $publicationFormat->getCountryManufactureCode() : 'CA',
- 'imprint' => $publicationFormat->getImprint(),
- 'productAvailabilityCode' => $publicationFormat->getProductAvailabilityCode() != '' ? $publicationFormat->getProductAvailabilityCode() : '20',
- 'technicalProtectionCode' => $publicationFormat->getTechnicalProtectionCode() != '' ? $publicationFormat->getTechnicalProtectionCode() : '00',
- 'returnableIndicatorCode' => $publicationFormat->getReturnableIndicatorCode() != '' ? $publicationFormat->getReturnableIndicatorCode() : 'Y',
- // the pubId plugin needs the format object.
- 'publicationFormat' => $publicationFormat
- );
-
- // initialize the pubId fields.
- $pubIdPluginHelper = $this->_getPubIdPluginHelper();
- $pubIdPluginHelper->init($submission->getContextId(), $this, $publicationFormat);
- $pubIdPluginHelper->setLinkActions($submission->getContextId(), $this, $publicationFormat);
-
- }
-
- /**
- * Assign form data to user-submitted data.
- */
- public function readInputData() {
- $submission = $this->getSubmission();
- $this->readUserVars(array(
- 'directSalesPrice',
- 'fileSize',
- 'override',
- 'frontMatter',
- 'backMatter',
- 'height',
- 'heightUnitCode',
- 'width',
- 'widthUnitCode',
- 'thickness',
- 'thicknessUnitCode',
- 'weight',
- 'weightUnitCode',
- 'productCompositionCode',
- 'productFormDetailCode',
- 'countryManufactureCode',
- 'imprint',
- 'productAvailabilityCode',
- 'technicalProtectionCode',
- 'returnableIndicatorCode',
- ));
-
- // consider the additional field names from the public identifer plugins
- $pubIdPluginHelper = $this->_getPubIdPluginHelper();
- $pubIdPluginHelper->readInputData($submission->getContextId(), $this);
-
- }
-
- /**
- * @copydoc Form::validate()
- */
- public function validate($callHooks = true) {
- $submission = $this->getSubmission();
- $publicationFormat = $this->getPublicationFormat();
- $pubIdPluginHelper = $this->_getPubIdPluginHelper();
- $pubIdPluginHelper->validate($submission->getContextId(), $this, $publicationFormat);
- return parent::validate($callHooks);
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- parent::execute(...$functionArgs);
-
- $submission = $this->getSubmission();
- $publicationFormat = $this->getPublicationFormat();
-
- // populate the published submission with the cataloging metadata
- $publicationFormat->setFileSize($this->getData('override') ? $this->getData('fileSize'):null);
- $publicationFormat->setFrontMatter($this->getData('frontMatter'));
- $publicationFormat->setBackMatter($this->getData('backMatter'));
- $publicationFormat->setHeight($this->getData('height'));
- $publicationFormat->setHeightUnitCode($this->getData('heightUnitCode'));
- $publicationFormat->setWidth($this->getData('width'));
- $publicationFormat->setWidthUnitCode($this->getData('widthUnitCode'));
- $publicationFormat->setThickness($this->getData('thickness'));
- $publicationFormat->setThicknessUnitCode($this->getData('thicknessUnitCode'));
- $publicationFormat->setWeight($this->getData('weight'));
- $publicationFormat->setWeightUnitCode($this->getData('weightUnitCode'));
- $publicationFormat->setProductCompositionCode($this->getData('productCompositionCode'));
- $publicationFormat->setProductFormDetailCode($this->getData('productFormDetailCode'));
- $publicationFormat->setCountryManufactureCode($this->getData('countryManufactureCode'));
- $publicationFormat->setImprint($this->getData('imprint'));
- $publicationFormat->setProductAvailabilityCode($this->getData('productAvailabilityCode'));
- $publicationFormat->setTechnicalProtectionCode($this->getData('technicalProtectionCode'));
- $publicationFormat->setReturnableIndicatorCode($this->getData('returnableIndicatorCode'));
-
- // consider the additional field names from the public identifer plugins
- $pubIdPluginHelper = $this->_getPubIdPluginHelper();
- $pubIdPluginHelper->execute($submission->getContextId(), $this, $publicationFormat);
-
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $publicationFormatDao->updateObject($publicationFormat);
- }
-
- //
- // Getters and Setters
- //
- /**
- * Get the Submission
- * @return Submission
- */
- public function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Get the Publication
- * @return Publication
- */
- public function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Get the stage id
- * @return int
- */
- public function getStageId() {
- return $this->_stageId;
- }
-
- /**
- * Get physical format setting
- * @return bool
- */
- public function getPhysicalFormat() {
- return $this->_isPhysicalFormat;
- }
-
- /**
- * Get the remote URL
- * @return string
- */
- public function getRemoteURL() {
- return $this->_remoteURL;
- }
-
- /**
- * Get the publication format
- * @return PublicationFormat
- */
- public function getPublicationFormat() {
- return $this->_publicationFormat;
- }
-
- /**
- * Get the extra form parameters.
- */
- public function getFormParams() {
- return $this->_formParams;
- }
-
- /**
- * returns the PKPPubIdPluginHelper associated with this form.
- * @return PKPPubIdPluginHelper
- */
- public function _getPubIdPluginHelper() {
- return $this->_pubIdPluginHelper;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/form/PublicationFormatMetadataForm.php b/controllers/grid/catalogEntry/form/PublicationFormatMetadataForm.php
new file mode 100644
index 00000000000..ae6ccad2072
--- /dev/null
+++ b/controllers/grid/catalogEntry/form/PublicationFormatMetadataForm.php
@@ -0,0 +1,361 @@
+_submission = $submission;
+ $this->_publication = $publication;
+ $this->_publicationFormat = $representation;
+
+ if (!$this->_submission || !$this->_publication || !$this->_publicationFormat) {
+ throw new Exception('PublicationFormatMetadataForm was instantiated without required dependencies.');
+ }
+
+ $this->_pubIdPluginHelper = new PKPPubIdPluginHelper();
+
+ $this->_stageId = $stageId;
+ $this->_isPhysicalFormat = $isPhysicalFormat;
+ $this->_remoteURL = $remoteURL;
+ $this->_formParams = $formParams;
+
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'productAvailabilityCode', 'required', 'grid.catalogEntry.productAvailabilityRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorRegExp($this, 'directSalesPrice', 'optional', 'grid.catalogEntry.validPriceRequired', '/^[0-9]*(\.[0-9]+)?$/'));
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'productCompositionCode', 'required', 'grid.catalogEntry.productCompositionRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+ /**
+ * @copydoc Form::fetch
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $publicationFormat = $this->getPublicationFormat();
+ $context = $request->getContext();
+
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->assign('submissionId', $this->getSubmission()->getId());
+ $templateMgr->assign('publicationId', $this->getPublication()->getId());
+ $templateMgr->assign('representationId', (int) $publicationFormat->getId());
+
+ // included to load format-specific templates
+ $templateMgr->assign('isPhysicalFormat', (bool) $this->getPhysicalFormat());
+ $templateMgr->assign('remoteURL', $this->getRemoteURL());
+
+ $templateMgr->assign('stageId', $this->getStageId());
+ $templateMgr->assign('formParams', $this->getFormParams());
+
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+
+ // Check if e-commerce is available
+ $paymentManager = Application::getPaymentManager($context);
+ if ($paymentManager->isConfigured()) {
+ $templateMgr->assign('paymentConfigured', true);
+ $templateMgr->assign('currency', $context->getSetting('currency'));
+ }
+
+ // get the lists associated with the select elements on these publication format forms.
+ $codes = [
+ 'productCompositionCodes' => 'List2', // single item, multiple item, trade-only, etc
+ 'measurementUnitCodes' => 'List50', // grams, inches, millimeters
+ 'weightUnitCodes' => 'List95', // pounds, grams, ounces
+ 'measurementTypeCodes' => 'List48', // height, width, depth
+ 'productFormDetailCodes' => 'List175', // refinement of product form (SACD, Mass market (rack) paperback, etc)
+ 'productAvailabilityCodes' => 'List65', // Available, In Stock, Print On Demand, Not Yet Available, etc
+ 'technicalProtectionCodes' => 'List144', // None, DRM, Apple DRM, etc
+ 'returnableIndicatorCodes' => 'List66', // No, not returnable, Yes, full copies only, (required for physical items only)
+ 'countriesIncludedCodes' => 'List91', // country region codes
+ ];
+
+ foreach ($codes as $templateVarName => $list) {
+ $templateMgr->assign($templateVarName, $onixCodelistItemDao->getCodes($list));
+ }
+
+ // consider public identifiers
+ $pubIdPlugins = PluginRegistry::loadCategory('pubIds', true);
+ $templateMgr->assign('pubIdPlugins', $pubIdPlugins);
+ $templateMgr->assign('pubObject', $publicationFormat);
+
+ $templateMgr->assign('notificationRequestOptions', [
+ Notification::NOTIFICATION_LEVEL_NORMAL => [
+ Notification::NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD => [Application::ASSOC_TYPE_PRESS, $context->getId()],
+ ],
+ Notification::NOTIFICATION_LEVEL_TRIVIAL => []
+ ]);
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * Initialize form data for an instance of this form.
+ */
+ public function initData()
+ {
+ $submission = $this->getSubmission();
+ $publicationFormat = $this->getPublicationFormat();
+
+ $this->_data = [
+ 'fileSize' => (bool) $publicationFormat->getFileSize() ? $publicationFormat->getFileSize() : $publicationFormat->getCalculatedFileSize(),
+ 'override' => (bool) $publicationFormat->getData('fileSize') ? true : false,
+ 'frontMatter' => $publicationFormat->getFrontMatter(),
+ 'backMatter' => $publicationFormat->getBackMatter(),
+ 'height' => $publicationFormat->getHeight(),
+ 'heightUnitCode' => $publicationFormat->getHeightUnitCode() != '' ? $publicationFormat->getHeightUnitCode() : 'mm',
+ 'width' => $publicationFormat->getWidth(),
+ 'widthUnitCode' => $publicationFormat->getWidthUnitCode() != '' ? $publicationFormat->getWidthUnitCode() : 'mm',
+ 'thickness' => $publicationFormat->getThickness(),
+ 'thicknessUnitCode' => $publicationFormat->getThicknessUnitCode() != '' ? $publicationFormat->getThicknessUnitCode() : 'mm',
+ 'weight' => $publicationFormat->getWeight(),
+ 'weightUnitCode' => $publicationFormat->getWeightUnitCode() != '' ? $publicationFormat->getWeightUnitCode() : 'gr',
+ 'productCompositionCode' => $publicationFormat->getProductCompositionCode(),
+ 'productFormDetailCode' => $publicationFormat->getProductFormDetailCode(),
+ 'countryManufactureCode' => $publicationFormat->getCountryManufactureCode() != '' ? $publicationFormat->getCountryManufactureCode() : 'CA',
+ 'imprint' => $publicationFormat->getImprint(),
+ 'productAvailabilityCode' => $publicationFormat->getProductAvailabilityCode() != '' ? $publicationFormat->getProductAvailabilityCode() : '20',
+ 'technicalProtectionCode' => $publicationFormat->getTechnicalProtectionCode() != '' ? $publicationFormat->getTechnicalProtectionCode() : '00',
+ 'returnableIndicatorCode' => $publicationFormat->getReturnableIndicatorCode() != '' ? $publicationFormat->getReturnableIndicatorCode() : 'Y',
+ // the pubId plugin needs the format object.
+ 'publicationFormat' => $publicationFormat
+ ];
+
+ // initialize the pubId fields.
+ $pubIdPluginHelper = $this->_getPubIdPluginHelper();
+ $pubIdPluginHelper->init($submission->getContextId(), $this, $publicationFormat);
+ $pubIdPluginHelper->setLinkActions($submission->getContextId(), $this, $publicationFormat);
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ */
+ public function readInputData()
+ {
+ $submission = $this->getSubmission();
+ $this->readUserVars([
+ 'directSalesPrice',
+ 'fileSize',
+ 'override',
+ 'frontMatter',
+ 'backMatter',
+ 'height',
+ 'heightUnitCode',
+ 'width',
+ 'widthUnitCode',
+ 'thickness',
+ 'thicknessUnitCode',
+ 'weight',
+ 'weightUnitCode',
+ 'productCompositionCode',
+ 'productFormDetailCode',
+ 'countryManufactureCode',
+ 'imprint',
+ 'productAvailabilityCode',
+ 'technicalProtectionCode',
+ 'returnableIndicatorCode',
+ ]);
+
+ // consider the additional field names from the public identifier plugins
+ $pubIdPluginHelper = $this->_getPubIdPluginHelper();
+ $pubIdPluginHelper->readInputData($submission->getContextId(), $this);
+ }
+
+ /**
+ * @copydoc Form::validate()
+ */
+ public function validate($callHooks = true)
+ {
+ $submission = $this->getSubmission();
+ $publicationFormat = $this->getPublicationFormat();
+ $pubIdPluginHelper = $this->_getPubIdPluginHelper();
+ $pubIdPluginHelper->validate($submission->getContextId(), $this, $publicationFormat);
+ return parent::validate($callHooks);
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ parent::execute(...$functionArgs);
+
+ $submission = $this->getSubmission();
+ $publicationFormat = $this->getPublicationFormat();
+
+ // populate the published submission with the cataloging metadata
+ $publicationFormat->setFileSize($this->getData('override') ? $this->getData('fileSize') : null);
+ $publicationFormat->setFrontMatter($this->getData('frontMatter'));
+ $publicationFormat->setBackMatter($this->getData('backMatter'));
+ $publicationFormat->setHeight($this->getData('height'));
+ $publicationFormat->setHeightUnitCode($this->getData('heightUnitCode'));
+ $publicationFormat->setWidth($this->getData('width'));
+ $publicationFormat->setWidthUnitCode($this->getData('widthUnitCode'));
+ $publicationFormat->setThickness($this->getData('thickness'));
+ $publicationFormat->setThicknessUnitCode($this->getData('thicknessUnitCode'));
+ $publicationFormat->setWeight($this->getData('weight'));
+ $publicationFormat->setWeightUnitCode($this->getData('weightUnitCode'));
+ $publicationFormat->setProductCompositionCode($this->getData('productCompositionCode'));
+ $publicationFormat->setProductFormDetailCode($this->getData('productFormDetailCode'));
+ $publicationFormat->setCountryManufactureCode($this->getData('countryManufactureCode'));
+ $publicationFormat->setImprint($this->getData('imprint'));
+ $publicationFormat->setProductAvailabilityCode($this->getData('productAvailabilityCode'));
+ $publicationFormat->setTechnicalProtectionCode($this->getData('technicalProtectionCode'));
+ $publicationFormat->setReturnableIndicatorCode($this->getData('returnableIndicatorCode'));
+
+ // consider the additional field names from the public identifier plugins
+ $pubIdPluginHelper = $this->_getPubIdPluginHelper();
+ $pubIdPluginHelper->execute($submission->getContextId(), $this, $publicationFormat);
+
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $publicationFormatDao->updateObject($publicationFormat);
+ }
+
+ //
+ // Getters and Setters
+ //
+ /**
+ * Get the Submission
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Get the Publication
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Get the stage id
+ *
+ * @return int
+ */
+ public function getStageId()
+ {
+ return $this->_stageId;
+ }
+
+ /**
+ * Get physical format setting
+ *
+ * @return bool
+ */
+ public function getPhysicalFormat()
+ {
+ return $this->_isPhysicalFormat;
+ }
+
+ /**
+ * Get the remote URL
+ *
+ * @return string
+ */
+ public function getRemoteURL()
+ {
+ return $this->_remoteURL;
+ }
+
+ /**
+ * Get the publication format
+ *
+ * @return PublicationFormat
+ */
+ public function getPublicationFormat()
+ {
+ return $this->_publicationFormat;
+ }
+
+ /**
+ * Get the extra form parameters.
+ */
+ public function getFormParams()
+ {
+ return $this->_formParams;
+ }
+
+ /**
+ * returns the PKPPubIdPluginHelper associated with this form.
+ *
+ * @return PKPPubIdPluginHelper
+ */
+ public function _getPubIdPluginHelper()
+ {
+ return $this->_pubIdPluginHelper;
+ }
+}
diff --git a/controllers/grid/catalogEntry/form/RepresentativeForm.inc.php b/controllers/grid/catalogEntry/form/RepresentativeForm.inc.php
deleted file mode 100644
index fd58e818348..00000000000
--- a/controllers/grid/catalogEntry/form/RepresentativeForm.inc.php
+++ /dev/null
@@ -1,206 +0,0 @@
-setMonograph($monograph);
- $this->setRepresentative($representative);
-
- // Validation checks for this form
- $form = $this;
- $this->addCheck(new FormValidatorCustom(
- $this, 'isSupplier', 'required', 'grid.catalogEntry.roleRequired',
- function($isSupplier) use ($form) {
- $request = Application::get()->getRequest();
- $agentRole = $request->getUserVar('agentRole');
- $supplierRole = $request->getUserVar('supplierRole');
- $onixDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixDao ONIXCodelistItemDAO */
- return (!$isSupplier && $onixDao->codeExistsInList($agentRole, 'List69')) || ($isSupplier && $onixDao->codeExistsInList($supplierRole, 'List93'));
- }
- ));
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
- //
- // Getters and Setters
- //
- /**
- * Get the representative
- * @return Representative
- */
- public function &getRepresentative() {
- return $this->_representative;
- }
-
- /**
- * Set the representative
- * @param @representative Representative
- */
- public function setRepresentative($representative) {
- $this->_representative = $representative;
- }
-
- /**
- * Get the Monograph
- * @return Monograph
- */
- public function getMonograph() {
- return $this->_monograph;
- }
-
- /**
- * Set the Monograph
- * @param Monograph
- */
- public function setMonograph($monograph) {
- $this->_monograph = $monograph;
- }
-
-
- //
- // Overridden template methods
- //
- /**
- * Initialize form data from the representative entry.
- */
- public function initData() {
- $representative = $this->getRepresentative();
-
- if ($representative) {
- $this->_data = array(
- 'representativeId' => $representative->getId(),
- 'role' => $representative->getRole(),
- 'representativeIdType' => $representative->getRepresentativeIdType(),
- 'representativeIdValue' => $representative->getRepresentativeIdValue(),
- 'name' => $representative->getName(),
- 'phone' => $representative->getPhone(),
- 'email' => $representative->getEmail(),
- 'url' =>$representative->getUrl(),
- 'isSupplier' => $representative->getIsSupplier(),
- );
- }
- }
-
- /**
- * @copydoc Form::fetch()
- */
- public function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
-
- $monograph = $this->getMonograph();
- $templateMgr->assign('submissionId', $monograph->getId());
- $representative = $this->getRepresentative();
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $templateMgr->assign(array(
- 'idTypeCodes' => $onixCodelistItemDao->getCodes('List92'), // GLN, etc
- 'agentRoleCodes' => $onixCodelistItemDao->getCodes('List69'), // Sales Agent, etc
- 'supplierRoleCodes' => $onixCodelistItemDao->getCodes('List93'), // wholesaler, publisher to retailer, etc
- 'isSupplier' => true,
- )); // default to 'supplier' on the form.
-
- if ($representative) $templateMgr->assign(array(
- 'representativeId' => $representative->getId(),
- 'role' => $representative->getRole(),
- 'representativeIdType' => $representative->getRepresentativeIdType(),
- 'representativeIdValue' => $representative->getRepresentativeIdValue(),
- 'name' => $representative->getName(),
- 'phone' => $representative->getPhone(),
- 'email' => $representative->getEmail(),
- 'url' => $representative->getUrl(),
- 'isSupplier' => $representative->getIsSupplier() ? true : false,
- ));
- else $templateMgr->assign('representativeIdType', '06'); // pre-populate new forms with GLN as it is recommended
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * Assign form data to user-submitted data.
- * @see Form::readInputData()
- */
- public function readInputData() {
- $this->readUserVars(array(
- 'representativeId',
- 'agentRole',
- 'supplierRole',
- 'representativeIdType',
- 'representativeIdValue',
- 'name',
- 'phone',
- 'email',
- 'url',
- 'isSupplier',
- ));
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- parent::execute(...$functionArgs);
- $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /* @var $representativeDao RepresentativeDAO */
- $monograph = $this->getMonograph();
- $representative = $this->getRepresentative();
-
- if (!$representative) {
- // this is a new representative for this monograph
- $representative = $representativeDao->newDataObject();
- $representative->setMonographId($monograph->getId());
- $existingRepresentative = false;
-
- } else {
- $existingRepresentative = true;
- // verify that this representative is in this monograph's context
- if ($representativeDao->getById($representative->getId(), $monograph->getId()) == null) fatalError('Invalid representative!');
- }
-
- if ($this->getData('isSupplier')) { // supplier
- $representative->setRole($this->getData('supplierRole'));
- } else {
- $representative->setRole($this->getData('agentRole'));
- }
-
- $representative->setRepresentativeIdType($this->getData('representativeIdType'));
- $representative->setRepresentativeIdValue($this->getData('representativeIdValue'));
- $representative->setName($this->getData('name'));
- $representative->setPhone($this->getData('phone'));
- $representative->setEmail($this->getData('email'));
- $representative->setUrl($this->getData('url'));
- $representative->setIsSupplier($this->getData('isSupplier') ? true : false);
-
- if ($existingRepresentative) {
- $representativeDao->updateObject($representative);
- $representativeId = $representative->getId();
- } else {
- $representativeId = $representativeDao->insertObject($representative);
- }
-
- return $representativeId;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/form/RepresentativeForm.php b/controllers/grid/catalogEntry/form/RepresentativeForm.php
new file mode 100644
index 00000000000..d88db70743b
--- /dev/null
+++ b/controllers/grid/catalogEntry/form/RepresentativeForm.php
@@ -0,0 +1,239 @@
+setMonograph($monograph);
+ $this->setRepresentative($representative);
+
+ // Validation checks for this form
+ $form = $this;
+ $this->addCheck(new \PKP\form\validation\FormValidatorCustom(
+ $this,
+ 'isSupplier',
+ 'required',
+ 'grid.catalogEntry.roleRequired',
+ function ($isSupplier) use ($form) {
+ $request = Application::get()->getRequest();
+ $agentRole = $request->getUserVar('agentRole');
+ $supplierRole = $request->getUserVar('supplierRole');
+ $onixDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixDao */
+ return (!$isSupplier && $onixDao->codeExistsInList($agentRole, 'List69')) || ($isSupplier && $onixDao->codeExistsInList($supplierRole, 'List93'));
+ }
+ ));
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+ //
+ // Getters and Setters
+ //
+ /**
+ * Get the representative
+ *
+ * @return Representative
+ */
+ public function &getRepresentative()
+ {
+ return $this->_representative;
+ }
+
+ /**
+ * Set the representative
+ *
+ * @param Representative $representative
+ */
+ public function setRepresentative($representative)
+ {
+ $this->_representative = $representative;
+ }
+
+ /**
+ * Get the Monograph
+ *
+ * @return Submission
+ */
+ public function getMonograph()
+ {
+ return $this->_monograph;
+ }
+
+ /**
+ * Set the Monograph
+ *
+ * @param Submission
+ */
+ public function setMonograph($monograph)
+ {
+ $this->_monograph = $monograph;
+ }
+
+
+ //
+ // Overridden template methods
+ //
+ /**
+ * Initialize form data from the representative entry.
+ */
+ public function initData()
+ {
+ $representative = $this->getRepresentative();
+
+ if ($representative) {
+ $this->_data = [
+ 'representativeId' => $representative->getId(),
+ 'role' => $representative->getRole(),
+ 'representativeIdType' => $representative->getRepresentativeIdType(),
+ 'representativeIdValue' => $representative->getRepresentativeIdValue(),
+ 'name' => $representative->getName(),
+ 'phone' => $representative->getPhone(),
+ 'email' => $representative->getEmail(),
+ 'url' => $representative->getUrl(),
+ 'isSupplier' => $representative->getIsSupplier(),
+ ];
+ }
+ }
+
+ /**
+ * @copydoc Form::fetch()
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+
+ $monograph = $this->getMonograph();
+ $templateMgr->assign('submissionId', $monograph->getId());
+ $representative = $this->getRepresentative();
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $templateMgr->assign([
+ 'idTypeCodes' => $onixCodelistItemDao->getCodes('List92'), // GLN, etc
+ 'agentRoleCodes' => $onixCodelistItemDao->getCodes('List69'), // Sales Agent, etc
+ 'supplierRoleCodes' => $onixCodelistItemDao->getCodes('List93'), // wholesaler, publisher to retailer, etc
+ 'isSupplier' => true,
+ ]); // default to 'supplier' on the form.
+
+ if ($representative) {
+ $templateMgr->assign([
+ 'representativeId' => $representative->getId(),
+ 'role' => $representative->getRole(),
+ 'representativeIdType' => $representative->getRepresentativeIdType(),
+ 'representativeIdValue' => $representative->getRepresentativeIdValue(),
+ 'name' => $representative->getName(),
+ 'phone' => $representative->getPhone(),
+ 'email' => $representative->getEmail(),
+ 'url' => $representative->getUrl(),
+ 'isSupplier' => $representative->getIsSupplier() ? true : false,
+ ]);
+ } else {
+ $templateMgr->assign('representativeIdType', '06');
+ } // pre-populate new forms with GLN as it is recommended
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ *
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ $this->readUserVars([
+ 'representativeId',
+ 'agentRole',
+ 'supplierRole',
+ 'representativeIdType',
+ 'representativeIdValue',
+ 'name',
+ 'phone',
+ 'email',
+ 'url',
+ 'isSupplier',
+ ]);
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ parent::execute(...$functionArgs);
+ $representativeDao = DAORegistry::getDAO('RepresentativeDAO'); /** @var RepresentativeDAO $representativeDao */
+ $monograph = $this->getMonograph();
+ $representative = $this->getRepresentative();
+
+ if (!$representative) {
+ // this is a new representative for this monograph
+ $representative = $representativeDao->newDataObject();
+ $representative->setMonographId($monograph->getId());
+ $existingRepresentative = false;
+ } else {
+ $existingRepresentative = true;
+ // verify that this representative is in this monograph's context
+ if ($representativeDao->getById($representative->getId(), $monograph->getId()) == null) {
+ fatalError('Invalid representative!');
+ }
+ }
+
+ if ($this->getData('isSupplier')) { // supplier
+ $representative->setRole($this->getData('supplierRole'));
+ } else {
+ $representative->setRole($this->getData('agentRole'));
+ }
+
+ $representative->setRepresentativeIdType($this->getData('representativeIdType'));
+ $representative->setRepresentativeIdValue($this->getData('representativeIdValue'));
+ $representative->setName($this->getData('name'));
+ $representative->setPhone($this->getData('phone'));
+ $representative->setEmail($this->getData('email'));
+ $representative->setUrl($this->getData('url'));
+ $representative->setIsSupplier($this->getData('isSupplier') ? true : false);
+
+ if ($existingRepresentative) {
+ $representativeDao->updateObject($representative);
+ $representativeId = $representative->getId();
+ } else {
+ $representativeId = $representativeDao->insertObject($representative);
+ }
+
+ return $representativeId;
+ }
+}
diff --git a/controllers/grid/catalogEntry/form/SalesRightsForm.inc.php b/controllers/grid/catalogEntry/form/SalesRightsForm.inc.php
deleted file mode 100644
index 42c6f39fe72..00000000000
--- a/controllers/grid/catalogEntry/form/SalesRightsForm.inc.php
+++ /dev/null
@@ -1,233 +0,0 @@
-setSubmission($submission);
- $this->setPublication($publication);
- $this->setSalesRights($salesRights);
-
- // Validation checks for this form
- $form = $this;
- $this->addCheck(new FormValidator($this, 'type', 'required', 'grid.catalogEntry.typeRequired'));
- $this->addCheck(new FormValidator($this, 'representationId', 'required', 'grid.catalogEntry.publicationFormatRequired'));
- $this->addCheck(new FormValidatorCustom(
- $this, 'ROWSetting', 'optional', 'grid.catalogEntry.oneROWPerFormat',
- function($ROWSetting) use ($form, $salesRights) {
- $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /* @var $salesRightsDao SalesRightsDAO */
- $pubFormatId = $form->getData('representationId');
- return $ROWSetting == '' || $salesRightsDao->getROWByPublicationFormatId($pubFormatId) == null ||
- ($salesRights != null && $salesRightsDao->getROWByPublicationFormatId($pubFormatId)->getId() == $salesRights->getId());
- }
- ));
-
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
- //
- // Getters and Setters
- //
- /**
- * Get the entry
- * @return SalesRights
- */
- public function getSalesRights() {
- return $this->_salesRights;
- }
-
- /**
- * Set the entry
- * @param @salesRights SalesRights
- */
- public function setSalesRights($salesRights) {
- $this->_salesRights = $salesRights;
- }
-
- /**
- * Get the Submission
- * @return Submission
- */
- public function getSubmission() {
- return $this->_submission;
- }
-
- /**
- * Set the Submission
- * @param Submission
- */
- public function setSubmission($submission) {
- $this->_submission = $submission;
- }
-
- /**
- * Get the Publication
- * @return Publication
- */
- public function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the Publication
- * @param Publication
- */
- public function setPublication($publication) {
- $this->_publication = $publication;
- }
-
-
- //
- // Overridden template methods
- //
- /**
- * Initialize form data from the sales rights entry.
- */
- public function initData() {
- $salesRights = $this->getSalesRights();
-
- if ($salesRights) {
- $this->_data = array(
- 'salesRightsId' => $salesRights->getId(),
- 'type' => $salesRights->getType(),
- 'ROWSetting' => $salesRights->getROWSetting(),
- 'countriesIncluded' => $salesRights->getCountriesIncluded(),
- 'countriesExcluded' => $salesRights->getCountriesExcluded(),
- 'regionsIncluded' => $salesRights->getRegionsIncluded(),
- 'regionsExcluded' => $salesRights->getRegionsExcluded(),
- );
- }
- }
-
- /**
- * @copydoc Form::fetch()
- */
- public function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
- $submission = $this->getSubmission();
- $templateMgr->assign('submissionId', $submission->getId());
- $templateMgr->assign('publicationId', $this->getPublication()->getId());
- $salesRights = $this->getSalesRights();
- $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
- $templateMgr->assign('countryCodes', $onixCodelistItemDao->getCodes('List91')); // countries (CA, US, GB, etc)
- $templateMgr->assign('regionCodes', $onixCodelistItemDao->getCodes('List49')); // regions (British Columbia, England, etc)
-
- if ($salesRights) {
- $templateMgr->assign('salesRightsId', $salesRights->getId());
- $templateMgr->assign('type', $salesRights->getType());
- $templateMgr->assign('ROWSetting', $salesRights->getROWSetting());
- $templateMgr->assign('countriesIncluded', $salesRights->getCountriesIncluded());
- $templateMgr->assign('countriesExcluded', $salesRights->getCountriesExcluded());
- $templateMgr->assign('regionsIncluded', $salesRights->getRegionsIncluded());
- $templateMgr->assign('regionsExcluded', $salesRights->getRegionsExcluded());
-
- $representationId = $salesRights->getPublicationFormatId();
- } else { // loading a blank form
- $representationId = (int) $request->getUserVar('representationId');
- }
-
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
- $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
-
- if ($publicationFormat) { // the format exists for this submission
- $templateMgr->assign('representationId', $representationId);
- // SalesRightsType values are not normally used more than once per PublishingDetail block, so filter used ones out.
- $assignedSalesRights = $publicationFormat->getSalesRights();
- $assignedTypes = array_keys($assignedSalesRights->toAssociativeArray('type')); // currently assigned types
-
- if ($salesRights) $assignedTypes = array_diff($assignedTypes, array($salesRights->getType())); // allow existing codes to keep their value
-
- $types = $onixCodelistItemDao->getCodes('List46', $assignedTypes); // ONIX list for these
- $templateMgr->assign('salesRights', $types);
- } else {
- fatalError('Format not in authorized submission');
- }
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * Assign form data to user-submitted data.
- * @see Form::readInputData()
- */
- public function readInputData() {
- $this->readUserVars(array(
- 'salesRightsId',
- 'representationId',
- 'type',
- 'ROWSetting',
- 'countriesIncluded',
- 'countriesExcluded',
- 'regionsIncluded',
- 'regionsExcluded',
- ));
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- parent::execute(...$functionArgs);
- $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /* @var $salesRightsDao SalesRightsDAO */
- $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /* @var $publicationFormatDao PublicationFormatDAO */
-
- $submission = $this->getSubmission();
- $salesRights = $this->getSalesRights();
- $publicationFormat = $publicationFormatDao->getById($this->getData('representationId'), $this->getPublication()->getId());
-
- if (!$salesRights) {
- // this is a new assigned format to this published submission
- $salesRights = $salesRightsDao->newDataObject();
- $existingFormat = false;
- if ($publicationFormat != null) { // ensure this assigned format is in this submission
- $salesRights->setPublicationFormatId($publicationFormat->getId());
- } else {
- fatalError('This assigned format not in authorized submission context!');
- }
- } else {
- $existingFormat = true;
- if ($publicationFormat->getId() != $salesRights->getPublicationFormatId()) throw new Exception('Invalid format!');
- }
-
- $salesRights->setType($this->getData('type'));
- $salesRights->setROWSetting($this->getData('ROWSetting')?true:false);
- $salesRights->setCountriesIncluded($this->getData('countriesIncluded') ? $this->getData('countriesIncluded') : array());
- $salesRights->setCountriesExcluded($this->getData('countriesExcluded') ? $this->getData('countriesExcluded') : array());
- $salesRights->setRegionsIncluded($this->getData('regionsIncluded') ? $this->getData('regionsIncluded') : array());
- $salesRights->setRegionsExcluded($this->getData('regionsExcluded') ? $this->getData('regionsExcluded') : array());
-
- if ($existingFormat) {
- $salesRightsDao->updateObject($salesRights);
- $salesRightsId = $salesRights->getId();
- } else {
- $salesRightsId = $salesRightsDao->insertObject($salesRights);
- }
-
- return $salesRightsId;
- }
-}
-
diff --git a/controllers/grid/catalogEntry/form/SalesRightsForm.php b/controllers/grid/catalogEntry/form/SalesRightsForm.php
new file mode 100644
index 00000000000..dd18e48de3a
--- /dev/null
+++ b/controllers/grid/catalogEntry/form/SalesRightsForm.php
@@ -0,0 +1,275 @@
+setSubmission($submission);
+ $this->setPublication($publication);
+ $this->setSalesRights($salesRights);
+
+ // Validation checks for this form
+ $form = $this;
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'type', 'required', 'grid.catalogEntry.typeRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'representationId', 'required', 'grid.catalogEntry.publicationFormatRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCustom(
+ $this,
+ 'ROWSetting',
+ 'optional',
+ 'grid.catalogEntry.oneROWPerFormat',
+ function ($ROWSetting) use ($form, $salesRights) {
+ $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /** @var SalesRightsDAO $salesRightsDao */
+ $pubFormatId = $form->getData('representationId');
+ return $ROWSetting == '' || $salesRightsDao->getROWByPublicationFormatId($pubFormatId) == null ||
+ ($salesRights != null && $salesRightsDao->getROWByPublicationFormatId($pubFormatId)->getId() == $salesRights->getId());
+ }
+ ));
+
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+ //
+ // Getters and Setters
+ //
+ /**
+ * Get the entry
+ *
+ * @return SalesRights
+ */
+ public function getSalesRights()
+ {
+ return $this->_salesRights;
+ }
+
+ /**
+ * Set the entry
+ *
+ * @param SalesRights $salesRights
+ */
+ public function setSalesRights($salesRights)
+ {
+ $this->_salesRights = $salesRights;
+ }
+
+ /**
+ * Get the Submission
+ *
+ * @return Submission
+ */
+ public function getSubmission()
+ {
+ return $this->_submission;
+ }
+
+ /**
+ * Set the Submission
+ *
+ * @param Submission
+ */
+ public function setSubmission($submission)
+ {
+ $this->_submission = $submission;
+ }
+
+ /**
+ * Get the Publication
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the Publication
+ *
+ * @param Publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+
+ //
+ // Overridden template methods
+ //
+ /**
+ * Initialize form data from the sales rights entry.
+ */
+ public function initData()
+ {
+ $salesRights = $this->getSalesRights();
+
+ if ($salesRights) {
+ $this->_data = [
+ 'salesRightsId' => $salesRights->getId(),
+ 'type' => $salesRights->getType(),
+ 'ROWSetting' => $salesRights->getROWSetting(),
+ 'countriesIncluded' => $salesRights->getCountriesIncluded(),
+ 'countriesExcluded' => $salesRights->getCountriesExcluded(),
+ 'regionsIncluded' => $salesRights->getRegionsIncluded(),
+ 'regionsExcluded' => $salesRights->getRegionsExcluded(),
+ ];
+ }
+ }
+
+ /**
+ * @copydoc Form::fetch()
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+ $submission = $this->getSubmission();
+ $templateMgr->assign('submissionId', $submission->getId());
+ $templateMgr->assign('publicationId', $this->getPublication()->getId());
+ $salesRights = $this->getSalesRights();
+ $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /** @var ONIXCodelistItemDAO $onixCodelistItemDao */
+ $templateMgr->assign('countryCodes', $onixCodelistItemDao->getCodes('List91')); // countries (CA, US, GB, etc)
+ $templateMgr->assign('regionCodes', $onixCodelistItemDao->getCodes('List49')); // regions (British Columbia, England, etc)
+
+ if ($salesRights) {
+ $templateMgr->assign('salesRightsId', $salesRights->getId());
+ $templateMgr->assign('type', $salesRights->getType());
+ $templateMgr->assign('ROWSetting', $salesRights->getROWSetting());
+ $templateMgr->assign('countriesIncluded', $salesRights->getCountriesIncluded());
+ $templateMgr->assign('countriesExcluded', $salesRights->getCountriesExcluded());
+ $templateMgr->assign('regionsIncluded', $salesRights->getRegionsIncluded());
+ $templateMgr->assign('regionsExcluded', $salesRights->getRegionsExcluded());
+
+ $representationId = $salesRights->getPublicationFormatId();
+ } else { // loading a blank form
+ $representationId = (int) $request->getUserVar('representationId');
+ }
+
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+ $publicationFormat = $publicationFormatDao->getById($representationId, $this->getPublication()->getId());
+
+ if ($publicationFormat) { // the format exists for this submission
+ $templateMgr->assign('representationId', $representationId);
+ // SalesRightsType values are not normally used more than once per PublishingDetail block, so filter used ones out.
+ $assignedSalesRights = $publicationFormat->getSalesRights();
+ $assignedTypes = array_keys($assignedSalesRights->toAssociativeArray('type')); // currently assigned types
+
+ if ($salesRights) {
+ $assignedTypes = array_diff($assignedTypes, [$salesRights->getType()]);
+ } // allow existing codes to keep their value
+
+ $types = $onixCodelistItemDao->getCodes('List46', $assignedTypes); // ONIX list for these
+ $templateMgr->assign('salesRights', $types);
+ } else {
+ fatalError('Format not in authorized submission');
+ }
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ *
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ $this->readUserVars([
+ 'salesRightsId',
+ 'representationId',
+ 'type',
+ 'ROWSetting',
+ 'countriesIncluded',
+ 'countriesExcluded',
+ 'regionsIncluded',
+ 'regionsExcluded',
+ ]);
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ parent::execute(...$functionArgs);
+ $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /** @var SalesRightsDAO $salesRightsDao */
+ $publicationFormatDao = DAORegistry::getDAO('PublicationFormatDAO'); /** @var PublicationFormatDAO $publicationFormatDao */
+
+ $submission = $this->getSubmission();
+ $salesRights = $this->getSalesRights();
+ $publicationFormat = $publicationFormatDao->getById($this->getData('representationId'), $this->getPublication()->getId());
+
+ if (!$salesRights) {
+ // this is a new assigned format to this published submission
+ $salesRights = $salesRightsDao->newDataObject();
+ $existingFormat = false;
+ if ($publicationFormat != null) { // ensure this assigned format is in this submission
+ $salesRights->setPublicationFormatId($publicationFormat->getId());
+ } else {
+ fatalError('This assigned format not in authorized submission context!');
+ }
+ } else {
+ $existingFormat = true;
+ if ($publicationFormat->getId() != $salesRights->getPublicationFormatId()) {
+ throw new Exception('Invalid format!');
+ }
+ }
+
+ $salesRights->setType($this->getData('type'));
+ $salesRights->setROWSetting($this->getData('ROWSetting') ? true : false);
+ $salesRights->setCountriesIncluded($this->getData('countriesIncluded') ? $this->getData('countriesIncluded') : []);
+ $salesRights->setCountriesExcluded($this->getData('countriesExcluded') ? $this->getData('countriesExcluded') : []);
+ $salesRights->setRegionsIncluded($this->getData('regionsIncluded') ? $this->getData('regionsIncluded') : []);
+ $salesRights->setRegionsExcluded($this->getData('regionsExcluded') ? $this->getData('regionsExcluded') : []);
+
+ if ($existingFormat) {
+ $salesRightsDao->updateObject($salesRights);
+ $salesRightsId = $salesRights->getId();
+ } else {
+ $salesRightsId = $salesRightsDao->insertObject($salesRights);
+ }
+
+ return $salesRightsId;
+ }
+}
diff --git a/controllers/grid/content/spotlights/ManageSpotlightsGridHandler.inc.php b/controllers/grid/content/spotlights/ManageSpotlightsGridHandler.inc.php
deleted file mode 100644
index fdc706b7345..00000000000
--- a/controllers/grid/content/spotlights/ManageSpotlightsGridHandler.inc.php
+++ /dev/null
@@ -1,360 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_MANAGER),
- array('fetchGrid', 'fetchRow', 'addSpotlight', 'editSpotlight',
- 'updateSpotlight', 'deleteSpotlight', 'itemAutocomplete'));
- }
-
- //
- // Getters/Setters
- //
- /**
- * Get the press associated with this grid.
- * @return Press
- */
- function &getPress() {
- return $this->_press;
- }
-
- /**
- * Set the Press (authorized)
- * @param Press
- */
- function setPress($press) {
- $this->_press =& $press;
- }
-
- //
- // Overridden methods from PKPHandler
- //
- /**
- * @see PKPHandler::authorize()
- * @param $request PKPRequest
- * @param $args array
- * @param $roleAssignments array
- */
- function authorize($request, &$args, $roleAssignments) {
- import('lib.pkp.classes.security.authorization.ContextAccessPolicy');
- $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments));
- $returner = parent::authorize($request, $args, $roleAssignments);
-
- $spotlightId = $request->getUserVar('spotlightId');
- if ($spotlightId) {
- $press = $request->getPress();
- $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /* @var $spotlightDao SpotlightDAO */
- $spotlight = $spotlightDao->getById($spotlightId);
- if ($spotlight == null || $spotlight->getPressId() != $press->getId()) {
- return false;
- }
- }
-
- return $returner;
- }
-
- /**
- * @copydoc GridHandler::initialize()
- */
- function initialize($request, $args = null) {
- parent::initialize($request, $args);
-
- // Load locale components.
- AppLocale::requireComponents(LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_APP_MANAGER);
-
- // Basic grid configuration
- $this->setTitle('spotlight.spotlights');
-
- // Set the no items row text
- $this->setEmptyRowText('spotlight.noneExist');
-
- $press = $request->getPress();
- $this->setPress($press);
-
- // Columns
- import('controllers.grid.content.spotlights.SpotlightsGridCellProvider');
- $spotlightsGridCellProvider = new SpotlightsGridCellProvider();
- $this->addColumn(
- new GridColumn('title',
- 'grid.content.spotlights.form.title',
- null,
- null,
- $spotlightsGridCellProvider,
- array('width' => 40)
- )
- );
-
- $this->addColumn(
- new GridColumn('itemTitle',
- 'grid.content.spotlights.spotlightItemTitle',
- null,
- null,
- $spotlightsGridCellProvider,
- array('width' => 40)
- )
- );
-
- $this->addColumn(
- new GridColumn('type',
- 'common.type',
- null,
- null,
- $spotlightsGridCellProvider
- )
- );
-
- // Add grid action.
- $router = $request->getRouter();
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'addSpotlight',
- new AjaxModal(
- $router->url($request, null, null, 'addSpotlight', null, null),
- __('grid.action.addSpotlight'),
- 'modal_add_item'
- ),
- __('grid.action.addSpotlight'),
- 'add_item')
- );
- }
-
-
- //
- // Overridden methods from GridHandler
- //
- /**
- * @see GridHandler::getRowInstance()
- * @return SpotlightsGridRow
- */
- function getRowInstance() {
- return new SpotlightsGridRow($this->getPress());
- }
-
- /**
- * @see GridHandler::loadData()
- */
- function loadData($request, $filter = null) {
-
- $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /* @var $spotlightDao SpotlightDAO */
- $press = $this->getPress();
- return $spotlightDao->getByPressId($press->getId());
- }
-
- /**
- * Get the arguments that will identify the data in the grid
- * In this case, the press.
- * @return array
- */
- function getRequestArgs() {
- $press = $this->getPress();
- return array(
- 'pressId' => $press->getId()
- );
- }
-
- //
- // Public Spotlights Grid Actions
- //
-
- function addSpotlight($args, $request) {
- return $this->editSpotlight($args, $request);
- }
-
- /**
- * Edit a spotlight entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editSpotlight($args, $request) {
- $spotlightId = (int)$request->getUserVar('spotlightId');
- $press = $request->getPress();
- $pressId = $press->getId();
-
- $spotlightForm = new SpotlightForm($pressId, $spotlightId);
- $spotlightForm->initData();
-
- return new JSONMessage(true, $spotlightForm->fetch($request));
- }
-
- /**
- * Update a spotlight entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateSpotlight($args, $request) {
- // Identify the spotlight entry to be updated
- $spotlightId = $request->getUserVar('spotlightId');
-
- $press = $this->getPress();
-
- $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /* @var $spotlightDao SpotlightDAO */
- $spotlight = $spotlightDao->getById($spotlightId, $press->getId());
-
- // Form handling
- $spotlightForm = new SpotlightForm($press->getId(), $spotlightId);
-
- $spotlightForm->readInputData();
- if ($spotlightForm->validate()) {
- $spotlightId = $spotlightForm->execute();
-
- if(!isset($spotlight)) {
- // This is a new entry
- $spotlight = $spotlightDao->getById($spotlightId, $press->getId());
- // New added entry action notification content.
- $notificationContent = __('notification.addedSpotlight');
- } else {
- // entry edit action notification content.
- $notificationContent = __('notification.editedSpotlight');
- }
-
- // Create trivial notification.
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => $notificationContent));
-
- // Prepare the grid row data
- $row = $this->getRowInstance();
- $row->setGridId($this->getId());
- $row->setId($spotlightId);
- $row->setData($spotlight);
- $row->initialize($request);
-
- // Render the row into a JSON response
- return DAO::getDataChangedEvent();
-
- } else {
- return new JSONMessage(true, $spotlightForm->fetch($request));
- }
- }
-
- /**
- * Delete a spotlight entry
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deleteSpotlight($args, $request) {
-
- // Identify the entry to be deleted
- $spotlightId = $request->getUserVar('spotlightId');
-
- $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /* @var $spotlightDao SpotlightDAO */
- $press = $this->getPress();
- $spotlight = $spotlightDao->getById($spotlightId, $press->getId());
- if ($spotlight != null) { // authorized
-
- $result = $spotlightDao->deleteObject($spotlight);
-
- if ($result) {
- $currentUser = $request->getUser();
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.removedSpotlight')));
- return DAO::getDataChangedEvent();
- } else {
- return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
- }
- }
- }
-
- /**
- * Returns a JSON list for the autocomplete field. Fetches a list of possible spotlight options
- * based on the spotlight type chosen.
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function itemAutocomplete($args, $request) {
- $name = $request->getUserVar('name');
- $press = $this->getPress();
- $itemList = array();
-
- // get the items that match.
- $matches = array();
-
- import('lib.pkp.classes.submission.PKPSubmission'); // STATUS_PUBLISHED
- $args = [
- 'status' => STATUS_PUBLISHED,
- 'contextId' => $press->getId(),
- 'count' => 100
- ];
-
- if ($name) {
- $args['searchPhrase'] = $name;
- }
-
- $submissionsIterator = Services::get('submission')->getMany($args);
- foreach ($submissionsIterator as $submission) {
- $matches[] = array('label' => $submission->getLocalizedTitle(), 'value' => $submission->getId() . ':' . SPOTLIGHT_TYPE_BOOK);
- }
-
- if (!empty($matches)) {
- $itemList[] = array('label' => PKPString::strtoupper(__('submission.monograph')), 'value' => '');
- $itemList = array_merge($itemList, $matches);
- }
-
- $matches = array();
-
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $allSeries = $seriesDao->getByPressId($press->getId());
- while ($series = $allSeries->next()) {
- if ($name == '' || preg_match('/'. preg_quote($name, '/') . '/i', $series->getLocalizedTitle())) {
- $matches[] = array('label' => $series->getLocalizedTitle(), 'value' => $series->getId() . ':' . SPOTLIGHT_TYPE_SERIES);
- }
- }
-
- if (!empty($matches)) {
- $itemList[] = array('label' => PKPString::strtoupper(__('manager.series.book')), 'value' => '');
- $itemList = array_merge($itemList, $matches);
- }
-
- if (count($itemList) == 0) {
- return $this->noAutocompleteResults();
- }
-
- return new JSONMessage(true, $itemList);
- }
-}
-
-
diff --git a/controllers/grid/content/spotlights/ManageSpotlightsGridHandler.php b/controllers/grid/content/spotlights/ManageSpotlightsGridHandler.php
new file mode 100644
index 00000000000..10c3fbce390
--- /dev/null
+++ b/controllers/grid/content/spotlights/ManageSpotlightsGridHandler.php
@@ -0,0 +1,385 @@
+addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN],
+ ['fetchGrid', 'fetchRow', 'addSpotlight', 'editSpotlight',
+ 'updateSpotlight', 'deleteSpotlight', 'itemAutocomplete']
+ );
+ }
+
+ //
+ // Getters/Setters
+ //
+ /**
+ * Get the press associated with this grid.
+ *
+ * @return Press
+ */
+ public function &getPress()
+ {
+ return $this->_press;
+ }
+
+ /**
+ * Set the Press (authorized)
+ *
+ * @param Press
+ */
+ public function setPress($press)
+ {
+ $this->_press = & $press;
+ }
+
+ //
+ // Overridden methods from PKPHandler
+ //
+ /**
+ * @see PKPHandler::authorize()
+ *
+ * @param Request $request
+ * @param array $args
+ * @param array $roleAssignments
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments));
+ $returner = parent::authorize($request, $args, $roleAssignments);
+
+ $spotlightId = $request->getUserVar('spotlightId');
+ if ($spotlightId) {
+ $press = $request->getPress();
+ $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /** @var SpotlightDAO $spotlightDao */
+ $spotlight = $spotlightDao->getById($spotlightId);
+ if ($spotlight == null || $spotlight->getPressId() != $press->getId()) {
+ return false;
+ }
+ }
+
+ return $returner;
+ }
+
+ /**
+ * @copydoc GridHandler::initialize()
+ *
+ * @param null|mixed $args
+ */
+ public function initialize($request, $args = null)
+ {
+ parent::initialize($request, $args);
+
+ // Basic grid configuration
+ $this->setTitle('spotlight.spotlights');
+
+ // Set the no items row text
+ $this->setEmptyRowText('spotlight.noneExist');
+
+ $press = $request->getPress();
+ $this->setPress($press);
+
+ // Columns
+ $spotlightsGridCellProvider = new SpotlightsGridCellProvider();
+ $this->addColumn(
+ new GridColumn(
+ 'title',
+ 'grid.content.spotlights.form.title',
+ null,
+ null,
+ $spotlightsGridCellProvider,
+ ['width' => 40]
+ )
+ );
+
+ $this->addColumn(
+ new GridColumn(
+ 'itemTitle',
+ 'grid.content.spotlights.spotlightItemTitle',
+ null,
+ null,
+ $spotlightsGridCellProvider,
+ ['width' => 40]
+ )
+ );
+
+ $this->addColumn(
+ new GridColumn(
+ 'type',
+ 'common.type',
+ null,
+ null,
+ $spotlightsGridCellProvider
+ )
+ );
+
+ // Add grid action.
+ $router = $request->getRouter();
+ $this->addAction(
+ new LinkAction(
+ 'addSpotlight',
+ new AjaxModal(
+ $router->url($request, null, null, 'addSpotlight', null, null),
+ __('grid.action.addSpotlight'),
+ 'modal_add_item'
+ ),
+ __('grid.action.addSpotlight'),
+ 'add_item'
+ )
+ );
+ }
+
+
+ //
+ // Overridden methods from GridHandler
+ //
+ /**
+ * @see GridHandler::getRowInstance()
+ *
+ * @return SpotlightsGridRow
+ */
+ public function getRowInstance()
+ {
+ return new SpotlightsGridRow($this->getPress());
+ }
+
+ /**
+ * @see GridHandler::loadData()
+ *
+ * @param null|mixed $filter
+ */
+ public function loadData($request, $filter = null)
+ {
+ $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /** @var SpotlightDAO $spotlightDao */
+ $press = $this->getPress();
+ return $spotlightDao->getByPressId($press->getId());
+ }
+
+ /**
+ * Get the arguments that will identify the data in the grid
+ * In this case, the press.
+ *
+ * @return array
+ */
+ public function getRequestArgs()
+ {
+ $press = $this->getPress();
+ return [
+ 'pressId' => $press->getId()
+ ];
+ }
+
+ //
+ // Public Spotlights Grid Actions
+ //
+
+ public function addSpotlight($args, $request)
+ {
+ return $this->editSpotlight($args, $request);
+ }
+
+ /**
+ * Edit a spotlight entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editSpotlight($args, $request)
+ {
+ $spotlightId = (int)$request->getUserVar('spotlightId');
+ $press = $request->getPress();
+ $pressId = $press->getId();
+
+ $spotlightForm = new SpotlightForm($pressId, $spotlightId);
+ $spotlightForm->initData();
+
+ return new JSONMessage(true, $spotlightForm->fetch($request));
+ }
+
+ /**
+ * Update a spotlight entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateSpotlight($args, $request)
+ {
+ // Identify the spotlight entry to be updated
+ $spotlightId = $request->getUserVar('spotlightId');
+
+ $press = $this->getPress();
+
+ $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /** @var SpotlightDAO $spotlightDao */
+ $spotlight = $spotlightDao->getById($spotlightId);
+
+ // Form handling
+ $spotlightForm = new SpotlightForm($press->getId(), $spotlightId);
+
+ $spotlightForm->readInputData();
+ if ($spotlightForm->validate()) {
+ $spotlightId = $spotlightForm->execute();
+
+ if (!isset($spotlight)) {
+ // This is a new entry
+ $spotlight = $spotlightDao->getById($spotlightId);
+ // New added entry action notification content.
+ $notificationContent = __('notification.addedSpotlight');
+ } else {
+ // entry edit action notification content.
+ $notificationContent = __('notification.editedSpotlight');
+ }
+
+ // Create trivial notification.
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => $notificationContent]);
+
+ // Prepare the grid row data
+ $row = $this->getRowInstance();
+ $row->setGridId($this->getId());
+ $row->setId($spotlightId);
+ $row->setData($spotlight);
+ $row->initialize($request);
+
+ // Render the row into a JSON response
+ return DAO::getDataChangedEvent();
+ } else {
+ return new JSONMessage(true, $spotlightForm->fetch($request));
+ }
+ }
+
+ /**
+ * Delete a spotlight entry
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deleteSpotlight($args, $request)
+ {
+ // Identify the entry to be deleted
+ $spotlightId = $request->getUserVar('spotlightId');
+
+ $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /** @var SpotlightDAO $spotlightDao */
+ $spotlight = $spotlightDao->getById($spotlightId);
+ if (!$spotlight) {
+ return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
+ }
+
+ $spotlightDao->deleteObject($spotlight);
+ $currentUser = $request->getUser();
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($currentUser->getId(), Notification::NOTIFICATION_TYPE_SUCCESS, ['contents' => __('notification.removedSpotlight')]);
+ return DAO::getDataChangedEvent();
+ }
+
+ /**
+ * Returns a JSON list for the autocomplete field. Fetches a list of possible spotlight options
+ * based on the spotlight type chosen.
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function itemAutocomplete($args, $request)
+ {
+ $name = $request->getUserVar('name');
+ $press = $this->getPress();
+ $itemList = [];
+
+ // get the items that match.
+ $matches = [];
+
+ $collector = Repo::submission()
+ ->getCollector()
+ ->filterByContextIds([$press->getId()])
+ ->filterByStatus([Submission::STATUS_PUBLISHED])
+ ->limit(100);
+
+ if ($name) {
+ $collector->searchPhrase($name);
+ }
+
+ $submissions = $collector->getMany();
+ foreach ($submissions as $submission) {
+ $matches[] = ['label' => $submission->getLocalizedTitle(), 'value' => $submission->getId() . ':' . Spotlight::SPOTLIGHT_TYPE_BOOK];
+ }
+
+ if (!empty($matches)) {
+ $itemList = array_merge($itemList, $matches);
+ }
+
+ $matches = [];
+
+ $allSeries = Repo::section()
+ ->getCollector()
+ ->filterByContextIds([$press->getId()])
+ ->getMany();
+ foreach ($allSeries as $series) {
+ if ($name == '' || preg_match('/' . preg_quote($name, '/') . '/i', $series->getLocalizedTitle())) {
+ $matches[] = ['label' => $series->getLocalizedTitle(), 'value' => $series->getId() . ':' . Spotlight::SPOTLIGHT_TYPE_SERIES];
+ }
+ }
+
+ if (!empty($matches)) {
+ $itemList = array_merge($itemList, $matches);
+ }
+
+ if (count($itemList) == 0) {
+ return $this->noAutocompleteResults();
+ }
+
+ return new JSONMessage(true, $itemList);
+ }
+}
diff --git a/controllers/grid/content/spotlights/SpotlightsGridCellProvider.inc.php b/controllers/grid/content/spotlights/SpotlightsGridCellProvider.inc.php
deleted file mode 100644
index 219450d0e52..00000000000
--- a/controllers/grid/content/spotlights/SpotlightsGridCellProvider.inc.php
+++ /dev/null
@@ -1,55 +0,0 @@
-getData();
- $element =& $data;
-
- $columnId = $column->getId();
- assert(is_a($element, 'DataObject') && !empty($columnId));
- switch ($columnId) {
- case 'type':
- return array('label' => $element->getLocalizedType());
- case 'title':
- return array('label' => $element->getLocalizedTitle());
- case 'itemTitle': {
- $item = $element->getSpotlightItem();
- return array('label' => $item->getLocalizedTitle());
- }
- }
- }
-}
-
-
diff --git a/controllers/grid/content/spotlights/SpotlightsGridCellProvider.php b/controllers/grid/content/spotlights/SpotlightsGridCellProvider.php
new file mode 100644
index 00000000000..26499c1f9e9
--- /dev/null
+++ b/controllers/grid/content/spotlights/SpotlightsGridCellProvider.php
@@ -0,0 +1,57 @@
+getData();
+ $element = & $data;
+
+ $columnId = $column->getId();
+ assert(is_a($element, 'DataObject') && !empty($columnId));
+ /** @var Spotlight $element */
+ switch ($columnId) {
+ case 'type':
+ return ['label' => $element->getLocalizedType()];
+ case 'title':
+ return ['label' => $element->getLocalizedTitle()];
+ case 'itemTitle': {
+ $item = $element->getSpotlightItem();
+ return ['label' => $item->getLocalizedTitle()];
+ }
+ }
+ }
+}
diff --git a/controllers/grid/content/spotlights/SpotlightsGridRow.inc.php b/controllers/grid/content/spotlights/SpotlightsGridRow.inc.php
deleted file mode 100644
index 152b9bcf7d3..00000000000
--- a/controllers/grid/content/spotlights/SpotlightsGridRow.inc.php
+++ /dev/null
@@ -1,101 +0,0 @@
-setPress($press);
- parent::__construct();
- }
-
- //
- // Overridden methods from GridRow
- //
- /**
- * @copydoc GridRow::initialize()
- */
- function initialize($request, $template = null) {
- // Do the default initialization
- parent::initialize($request, $template);
-
- $press = $this->getPress();
-
- // Is this a new row or an existing row?
- $spotlight = $this->_data;
- if ($spotlight != null && is_numeric($spotlight->getId())) {
- $router = $request->getRouter();
- $actionArgs = array(
- 'pressId' => $press->getId(),
- 'spotlightId' => $spotlight->getId()
- );
-
- // Add row-level actions
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'editSpotlight',
- new AjaxModal(
- $router->url($request, null, null, 'editSpotlight', null, $actionArgs),
- __('grid.action.edit'),
- 'modal_edit'
- ),
- __('grid.action.edit'),
- 'edit'
- )
- );
-
- import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
- $this->addAction(
- new LinkAction(
- 'deleteSpotlight',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('common.confirmDelete'),
- __('common.delete'),
- $router->url($request, null, null, 'deleteSpotlight', null, $actionArgs),
- 'modal_delete'
- ),
- __('grid.action.delete'),
- 'delete'
- )
- );
- }
- }
-
- /**
- * Get the press for this row (already authorized)
- * @return Press
- */
- function getPress() {
- return $this->_press;
- }
-
- /**
- * Set the press for this row (already authorized)
- * @return Press
- */
- function setPress($press) {
- $this->_press = $press;
- }
-}
-
diff --git a/controllers/grid/content/spotlights/SpotlightsGridRow.php b/controllers/grid/content/spotlights/SpotlightsGridRow.php
new file mode 100644
index 00000000000..e2377a63b9a
--- /dev/null
+++ b/controllers/grid/content/spotlights/SpotlightsGridRow.php
@@ -0,0 +1,113 @@
+setPress($press);
+ parent::__construct();
+ }
+
+ //
+ // Overridden methods from GridRow
+ //
+ /**
+ * @copydoc GridRow::initialize()
+ *
+ * @param null|mixed $template
+ */
+ public function initialize($request, $template = null)
+ {
+ // Do the default initialization
+ parent::initialize($request, $template);
+
+ $press = $this->getPress();
+
+ // Is this a new row or an existing row?
+ $spotlight = $this->_data;
+ if ($spotlight != null && is_numeric($spotlight->getId())) {
+ $router = $request->getRouter();
+ $actionArgs = [
+ 'pressId' => $press->getId(),
+ 'spotlightId' => $spotlight->getId()
+ ];
+
+ // Add row-level actions
+ $this->addAction(
+ new LinkAction(
+ 'editSpotlight',
+ new AjaxModal(
+ $router->url($request, null, null, 'editSpotlight', null, $actionArgs),
+ __('grid.action.edit'),
+ 'modal_edit'
+ ),
+ __('grid.action.edit'),
+ 'edit'
+ )
+ );
+
+ $this->addAction(
+ new LinkAction(
+ 'deleteSpotlight',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('common.confirmDelete'),
+ __('common.delete'),
+ $router->url($request, null, null, 'deleteSpotlight', null, $actionArgs),
+ 'modal_delete'
+ ),
+ __('grid.action.delete'),
+ 'delete'
+ )
+ );
+ }
+ }
+
+ /**
+ * Get the press for this row (already authorized)
+ *
+ * @return Press
+ */
+ public function getPress()
+ {
+ return $this->_press;
+ }
+
+ /**
+ * Set the press for this row (already authorized)
+ */
+ public function setPress($press)
+ {
+ $this->_press = $press;
+ }
+}
diff --git a/controllers/grid/content/spotlights/form/SpotlightForm.inc.php b/controllers/grid/content/spotlights/form/SpotlightForm.inc.php
deleted file mode 100644
index 4993073491f..00000000000
--- a/controllers/grid/content/spotlights/form/SpotlightForm.inc.php
+++ /dev/null
@@ -1,177 +0,0 @@
-_spotlightId = $spotlightId;
- $this->_pressId = $pressId;
-
- $form = $this;
- $this->addCheck(new FormValidatorCustom($this, 'assocId', 'required', 'grid.content.spotlights.itemRequired', function($assocId) use ($form) {
- list($id, $type) = preg_split('/:/', $assocId);
- return is_numeric($id) && $id > 0 && $form->_isValidSpotlightType($type);
- }));
- $this->addCheck(new FormValidator($this, 'title', 'required', 'grid.content.spotlights.titleRequired'));
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
-
- //
- // Extended methods from Form
- //
- /**
- * @copydoc Form::fetch()
- */
- public function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
-
- $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /* @var $spotlightDao SpotlightDAO */
- $spotlight = $spotlightDao->getById($this->getSpotlightId());
- $templateMgr->assign(array(
- 'spotlight' => $spotlight,
- 'pressId' => $this->getPressId()
- ));
-
- if (isset($spotlight)) $templateMgr->assign(array(
- 'title' => $spotlight->getTitle(null),
- 'description' => $spotlight->getDescription(null),
- 'assocTitle' => $this->getAssocTitle($spotlight->getAssocId(), $spotlight->getAssocType()),
- 'assocId' => $spotlight->getAssocId() . ':' . $spotlight->getAssocType(),
- ));
-
- return parent::fetch($request, $template, $display);
- }
-
- //
- // Extended methods from Form
- //
- /**
- * @see Form::readInputData()
- */
- public function readInputData() {
- $this->readUserVars(array('title', 'description', 'assocId'));
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /* @var $spotlightDao SpotlightDAO */
-
- $spotlight = $spotlightDao->getById($this->getSpotlightId(), $this->getPressId());
-
- if (!$spotlight) {
- // this is a new spotlight
- $spotlight = $spotlightDao->newDataObject();
- $spotlight->setPressId($this->getPressId());
- $existingSpotlight = false;
- } else {
- $existingSpotlight = true;
- }
-
- list($assocId, $assocType) = preg_split('/:/', $this->getData('assocId'));
- $spotlight->setAssocType($assocType);
- $spotlight->setTitle($this->getData('title'), null); // localized
- $spotlight->setDescription($this->getData('description'), null); // localized
- $spotlight->setAssocId($assocId);
-
- if ($existingSpotlight) {
- $spotlightDao->updateObject($spotlight);
- $spotlightId = $spotlight->getId();
- } else {
- $spotlightId = $spotlightDao->insertObject($spotlight);
- }
-
- parent::execute(...$functionArgs);
- return $spotlightId;
- }
-
-
- //
- // helper methdods.
- //
-
- /**
- * Fetch the spotlight Id for this form.
- * @return int $spotlightId
- */
- public function getSpotlightId() {
- return $this->_spotlightId;
- }
-
- /**
- * Fetch the press Id for this form.
- * @return int $pressId
- */
- public function getPressId() {
- return $this->_pressId;
- }
-
- /**
- * Fetch the title of the Spotlight item, based on the assocType and pressId
- * @param int $assocId
- * @param int $assocType
- */
- public function getAssocTitle($assocId, $assocType) {
-
- $returner = null;
- switch ($assocType) {
- case SPOTLIGHT_TYPE_BOOK:
- $submission = Services::get('submission')->get($assocId);
- $returner = isset($submission) ? $submission->getLocalizedTitle() : '';
- break;
- case SPOTLIGHT_TYPE_SERIES:
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $series = $seriesDao->getById($assocId, $this->getPressId());
- $returner = isset($series) ? $series->getLocalizedTitle() : '';
- break;
- default:
- fatalError('invalid type specified');
- }
- return $returner;
- }
-
- /**
- * Internal function for spotlight type verification.
- * @param int $type
- * @return boolean
- */
- public function _isValidSpotlightType($type) {
- $validTypes = array(SPOTLIGHT_TYPE_BOOK, SPOTLIGHT_TYPE_SERIES);
- return in_array((int) $type, $validTypes);
- }
-}
-
-
diff --git a/controllers/grid/content/spotlights/form/SpotlightForm.php b/controllers/grid/content/spotlights/form/SpotlightForm.php
new file mode 100644
index 00000000000..2723c8c1ea7
--- /dev/null
+++ b/controllers/grid/content/spotlights/form/SpotlightForm.php
@@ -0,0 +1,199 @@
+_spotlightId = $spotlightId;
+ $this->_pressId = $pressId;
+
+ $form = $this;
+ $this->addCheck(new \PKP\form\validation\FormValidatorCustom($this, 'assocId', 'required', 'grid.content.spotlights.itemRequired', function ($assocId) use ($form) {
+ [$id, $type] = preg_split('/:/', $assocId);
+ return is_numeric($id) && $id > 0 && $form->_isValidSpotlightType($type);
+ }));
+ $this->addCheck(new \PKP\form\validation\FormValidator($this, 'title', 'required', 'grid.content.spotlights.titleRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+
+ //
+ // Extended methods from Form
+ //
+ /**
+ * @copydoc Form::fetch()
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+
+ $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /** @var SpotlightDAO $spotlightDao */
+ $spotlight = $spotlightDao->getById($this->getSpotlightId());
+ $templateMgr->assign([
+ 'spotlight' => $spotlight,
+ 'pressId' => $this->getPressId()
+ ]);
+
+ if (isset($spotlight)) {
+ $templateMgr->assign([
+ 'title' => $spotlight->getTitle(null),
+ 'description' => $spotlight->getDescription(null),
+ 'assocTitle' => $this->getAssocTitle($spotlight->getAssocId(), $spotlight->getAssocType()),
+ 'assocId' => $spotlight->getAssocId() . ':' . $spotlight->getAssocType(),
+ ]);
+ }
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ //
+ // Extended methods from Form
+ //
+ /**
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ $this->readUserVars(['title', 'description', 'assocId']);
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ $spotlightDao = DAORegistry::getDAO('SpotlightDAO'); /** @var SpotlightDAO $spotlightDao */
+
+ $spotlight = $spotlightDao->getById($this->getSpotlightId());
+
+ if (!$spotlight) {
+ // this is a new spotlight
+ $spotlight = $spotlightDao->newDataObject();
+ $spotlight->setPressId($this->getPressId());
+ $existingSpotlight = false;
+ } else {
+ $existingSpotlight = true;
+ }
+
+ [$assocId, $assocType] = preg_split('/:/', $this->getData('assocId'));
+ $spotlight->setAssocType($assocType);
+ $spotlight->setTitle($this->getData('title'), null); // localized
+ $spotlight->setDescription($this->getData('description'), null); // localized
+ $spotlight->setAssocId($assocId);
+
+ if ($existingSpotlight) {
+ $spotlightDao->updateObject($spotlight);
+ $spotlightId = $spotlight->getId();
+ } else {
+ $spotlightId = $spotlightDao->insertObject($spotlight);
+ }
+
+ parent::execute(...$functionArgs);
+ return $spotlightId;
+ }
+
+
+ //
+ // helper methdods.
+ //
+
+ /**
+ * Fetch the spotlight Id for this form.
+ *
+ * @return int $spotlightId
+ */
+ public function getSpotlightId()
+ {
+ return $this->_spotlightId;
+ }
+
+ /**
+ * Fetch the press Id for this form.
+ *
+ * @return int $pressId
+ */
+ public function getPressId()
+ {
+ return $this->_pressId;
+ }
+
+ /**
+ * Fetch the title of the Spotlight item, based on the assocType and pressId
+ *
+ * @param int $assocId
+ * @param int $assocType
+ */
+ public function getAssocTitle($assocId, $assocType)
+ {
+ $returner = null;
+ switch ($assocType) {
+ case Spotlight::SPOTLIGHT_TYPE_BOOK:
+ $submission = Repo::submission()->get($assocId);
+ $returner = isset($submission) ? $submission->getLocalizedTitle() : '';
+ break;
+ case Spotlight::SPOTLIGHT_TYPE_SERIES:
+ $series = Repo::section()->get($assocId, $this->getPressId());
+ $returner = isset($series) ? $series->getLocalizedTitle() : '';
+ break;
+ default:
+ fatalError('invalid type specified');
+ }
+ return $returner;
+ }
+
+ /**
+ * Internal function for spotlight type verification.
+ *
+ * @param int $type
+ *
+ * @return bool
+ */
+ public function _isValidSpotlightType($type)
+ {
+ $validTypes = [Spotlight::SPOTLIGHT_TYPE_BOOK, Spotlight::SPOTLIGHT_TYPE_SERIES];
+ return in_array((int) $type, $validTypes);
+ }
+}
diff --git a/controllers/grid/files/proof/form/ApprovedProofForm.inc.php b/controllers/grid/files/proof/form/ApprovedProofForm.inc.php
deleted file mode 100644
index 35b669602dc..00000000000
--- a/controllers/grid/files/proof/form/ApprovedProofForm.inc.php
+++ /dev/null
@@ -1,113 +0,0 @@
-monograph = $monograph;
- $this->publicationFormat = $publicationFormat;
- $this->approvedProof = Services::get('submissionFile')->get($submissionFileId);
-
- // matches currencies like: 1,500.50 1500.50 1,112.15 5,99 .99
- $this->addCheck(new FormValidatorRegExp($this, 'price', 'optional', 'grid.catalogEntry.validPriceRequired', '/^(([1-9]\d{0,2}(,\d{3})*|[1-9]\d*|0|)(.\d{2})?|([1-9]\d{0,2}(,\d{3})*|[1-9]\d*|0|)(.\d{2})?)$/'));
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
-
- //
- // Extended methods from Form
- //
- /**
- * @copydoc Form::fetch
- */
- public function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign('submissionFileId', $this->approvedProof->getId());
- $templateMgr->assign('submissionId', $this->monograph->getId());
- $templateMgr->assign('representationId', $this->publicationFormat->getId());
- $templateMgr->assign('publicationId', $this->publicationFormat->getData('publicationId'));
-
- $salesTypes = array(
- 'openAccess' => 'payment.directSales.openAccess',
- 'directSales' => 'payment.directSales.directSales',
- 'notAvailable' => 'payment.directSales.notAvailable',
- );
-
- $templateMgr->assign('salesTypes', $salesTypes);
- $templateMgr->assign('salesType', $this->approvedProof->getSalesType());
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * @see Form::readInputData()
- */
- public function readInputData() {
- $this->readUserVars(array('price', 'salesType'));
- }
-
- /**
- * @see Form::initData()
- */
- public function initData() {
- $this->_data = array(
- 'price' => $this->approvedProof->getDirectSalesPrice(),
- 'salesType' => $this->approvedProof->getSalesType(),
- );
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- parent::execute(...$functionArgs);
- $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
- $salesType = $this->getData('salesType');
- if ($salesType === 'notAvailable') {
- // Not available
- $this->approvedProof->setDirectSalesPrice(null);
- } elseif ($salesType === 'openAccess') {
- // Open access
- $this->approvedProof->setDirectSalesPrice(0);
- } else { /* $salesType === 'directSales' */
- // Direct sale
- $this->approvedProof->setDirectSalesPrice($this->getData('price'));
- }
- $this->approvedProof->setSalesType($salesType);
- $submissionFileDao->updateObject($this->approvedProof);
-
- return $this->approvedProof->getId();
- }
-}
-
-
diff --git a/controllers/grid/files/proof/form/ApprovedProofForm.php b/controllers/grid/files/proof/form/ApprovedProofForm.php
new file mode 100644
index 00000000000..52c1c6eabdd
--- /dev/null
+++ b/controllers/grid/files/proof/form/ApprovedProofForm.php
@@ -0,0 +1,135 @@
+monograph = $monograph;
+ $this->publicationFormat = $publicationFormat;
+ $this->approvedProof = Repo::submissionFile()->get($submissionFileId);
+
+ // matches currencies like: 1,500.50 1500.50 1,112.15 5,99 .99
+ $this->addCheck(new \PKP\form\validation\FormValidatorRegExp($this, 'price', 'optional', 'grid.catalogEntry.validPriceRequired', '/^(([1-9]\d{0,2}(,\d{3})*|[1-9]\d*|0|)(.\d{2})?|([1-9]\d{0,2}(,\d{3})*|[1-9]\d*|0|)(.\d{2})?)$/'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+
+ //
+ // Extended methods from Form
+ //
+ /**
+ * @copydoc Form::fetch
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->assign('submissionFileId', $this->approvedProof->getId());
+ $templateMgr->assign('submissionId', $this->monograph->getId());
+ $templateMgr->assign('representationId', $this->publicationFormat->getId());
+ $templateMgr->assign('publicationId', $this->publicationFormat->getData('publicationId'));
+
+ $salesTypes = [
+ 'openAccess' => 'payment.directSales.openAccess',
+ 'directSales' => 'payment.directSales.directSales',
+ 'notAvailable' => 'payment.directSales.notAvailable',
+ ];
+
+ $templateMgr->assign('salesTypes', $salesTypes);
+ $templateMgr->assign('salesType', $this->approvedProof->getSalesType());
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ $this->readUserVars(['price', 'salesType']);
+ }
+
+ /**
+ * @see Form::initData()
+ */
+ public function initData()
+ {
+ $this->_data = [
+ 'price' => $this->approvedProof->getDirectSalesPrice(),
+ 'salesType' => $this->approvedProof->getSalesType(),
+ ];
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ parent::execute(...$functionArgs);
+ $salesType = $this->getData('salesType');
+
+ $params = [
+ 'directSalesPrice' => $this->getData('price'),
+ 'salesType' => $salesType,
+ ];
+
+ if ($salesType === 'notAvailable') {
+ // Not available
+ $params['directSalesPrice'] = null;
+ } elseif ($salesType === 'openAccess') {
+ // Open access
+ $params['directSalesPrice'] = 0;
+ }
+
+ Repo::submissionFile()
+ ->edit(
+ $this->approvedProof,
+ $params
+ );
+
+ $id = Repo::submissionFile()->get($this->approvedProof->getId());
+
+ return $id;
+ }
+}
diff --git a/controllers/grid/navigationMenus/form/NavigationMenuItemsForm.inc.php b/controllers/grid/navigationMenus/form/NavigationMenuItemsForm.inc.php
deleted file mode 100644
index e5d273c13df..00000000000
--- a/controllers/grid/navigationMenus/form/NavigationMenuItemsForm.inc.php
+++ /dev/null
@@ -1,111 +0,0 @@
-getMenuItemCustomEditTemplates();
-
- $request = \Application::get()->getRequest();
- $context = $request->getContext();
- $contextId = $context ? $context->getId() : CONTEXT_ID_NONE;
-
- $seriesDao = \DAORegistry::getDAO('SeriesDAO');
- $series = $seriesDao->getByContextId($contextId);
- $seriesTitlesArray = $series->toAssociativeArray();
-
- $seriesTitles = array();
- foreach ($seriesTitlesArray as $series) {
- $seriesTitles[$series->getId()] = $series->getLocalizedTitle();
- }
-
- $categoryDao = \DAORegistry::getDAO('CategoryDAO');
- $categories = $categoryDao->getByParentId(null, $contextId);
- $categoryTitlesArray = $categories->toAssociativeArray();
-
- $categoryTitles = array();
- foreach ($categoryTitlesArray as $category) {
- $categoryTitles[$category->getId()] = $category->getLocalizedTitle();
- }
-
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign('customTemplates', $customTemplates);
- $templateMgr->assign('navigationMenuItemSeriesTitles', $seriesTitles);
- $templateMgr->assign('navigationMenuItemCategoryTitles', $categoryTitles);
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * @copydoc PKPNavigationMenuItemsForm::initData
- */
- public function initData() {
- $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /* @var $navigationMenuItemDao NavigationMenuItemDAO */
- $navigationMenuItem = $navigationMenuItemDao->getById($this->navigationMenuItemId);
-
- if ($navigationMenuItem) {
- parent::initData();
- $ompInitData = array(
- 'selectedRelatedObjectId' => $navigationMenuItem->getPath(),
- );
-
- $this->_data = array_merge($ompInitData, $this->_data);
- } else {
- parent::initData();
- }
- }
-
- /**
- * Assign form data to user-submitted data.
- */
- public function readInputData() {
- $this->readUserVars(array(
- 'relatedSeriesId',
- 'relatedCategoryId',
- ));
- parent::readInputData();
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- parent::execute(...$functionArgs);
-
- $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /* @var $navigationMenuItemDao NavigationMenuItemDAO */
-
- $navigationMenuItem = $navigationMenuItemDao->getById($this->navigationMenuItemId);
- if (!$navigationMenuItem) {
- $navigationMenuItem = $navigationMenuItemDao->newDataObject();
- }
-
- if ($this->getData('menuItemType') == NMI_TYPE_SERIES) {
- $navigationMenuItem->setPath($this->getData('relatedSeriesId'));
- } else if ($this->getData('menuItemType') == NMI_TYPE_CATEGORY) {
- $navigationMenuItem->setPath($this->getData('relatedCategoryId'));
- }
-
- // Update navigation menu item
- $navigationMenuItemDao->updateObject($navigationMenuItem);
-
- return $navigationMenuItem->getId();
- }
-}
diff --git a/controllers/grid/navigationMenus/form/NavigationMenuItemsForm.php b/controllers/grid/navigationMenus/form/NavigationMenuItemsForm.php
new file mode 100644
index 00000000000..dba67d27bbc
--- /dev/null
+++ b/controllers/grid/navigationMenus/form/NavigationMenuItemsForm.php
@@ -0,0 +1,129 @@
+getMenuItemCustomEditTemplates();
+
+ $request = Application::get()->getRequest();
+ $context = $request->getContext();
+ $contextId = $context ? $context->getId() : Application::CONTEXT_ID_NONE;
+
+ $series = Repo::section()
+ ->getCollector()
+ ->filterByContextIds([$contextId])
+ ->getMany();
+ $seriesTitles = $series->map(fn (Section $seriesObj) => [
+ $seriesObj->getId() => $seriesObj->getLocalizedTitle()
+ ]);
+
+ $categories = Repo::category()->getCollector()
+ ->filterByParentIds([null])
+ ->filterByContextIds([$contextId])
+ ->getMany();
+
+ $categoryTitles = [];
+ foreach ($categories as $category) {
+ $categoryTitles[$category->getId()] = $category->getLocalizedTitle();
+ }
+
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->assign([
+ 'customTemplates' => $customTemplates,
+ 'navigationMenuItemSeriesTitles' => $seriesTitles,
+ 'navigationMenuItemCategoryTitles' => $categoryTitles,
+ ]);
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * @copydoc PKPNavigationMenuItemsForm::initData
+ */
+ public function initData()
+ {
+ $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /** @var NavigationMenuItemDAO $navigationMenuItemDao */
+ $navigationMenuItem = $navigationMenuItemDao->getById($this->navigationMenuItemId);
+
+ if ($navigationMenuItem) {
+ parent::initData();
+ $ompInitData = [
+ 'selectedRelatedObjectId' => $navigationMenuItem->getPath(),
+ ];
+
+ $this->_data = array_merge($ompInitData, $this->_data);
+ } else {
+ parent::initData();
+ }
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ */
+ public function readInputData()
+ {
+ $this->readUserVars([
+ 'relatedSeriesId',
+ 'relatedCategoryId',
+ ]);
+ parent::readInputData();
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ parent::execute(...$functionArgs);
+
+ $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /** @var NavigationMenuItemDAO $navigationMenuItemDao */
+
+ $navigationMenuItem = $navigationMenuItemDao->getById($this->navigationMenuItemId);
+ if (!$navigationMenuItem) {
+ $navigationMenuItem = $navigationMenuItemDao->newDataObject();
+ }
+
+ if ($this->getData('menuItemType') == NavigationMenuService::NMI_TYPE_SERIES) {
+ $navigationMenuItem->setPath($this->getData('relatedSeriesId'));
+ } elseif ($this->getData('menuItemType') == NavigationMenuService::NMI_TYPE_CATEGORY) {
+ $navigationMenuItem->setPath($this->getData('relatedCategoryId'));
+ }
+
+ // Update navigation menu item
+ $navigationMenuItemDao->updateObject($navigationMenuItem);
+
+ return $navigationMenuItem->getId();
+ }
+}
diff --git a/controllers/grid/settings/plugins/SettingsPluginGridHandler.inc.php b/controllers/grid/settings/plugins/SettingsPluginGridHandler.inc.php
deleted file mode 100644
index d44fe25fbd2..00000000000
--- a/controllers/grid/settings/plugins/SettingsPluginGridHandler.inc.php
+++ /dev/null
@@ -1,103 +0,0 @@
-addRoleAssignment($roles, array('manage'));
- parent::__construct($roles);
- }
-
-
- //
- // Extended methods from PluginGridHandler
- //
- /**
- * @copydoc PluginGridHandler::loadCategoryData()
- */
- function loadCategoryData($request, &$categoryDataElement, $filter = null) {
- $plugins = parent::loadCategoryData($request, $categoryDataElement, $filter);
-
- $pressDao = DAORegistry::getDAO('PressDAO'); /* @var $pressDao PressDAO */
- $presses = $pressDao->getAll();
- $firstPress = $presses->next();
- $secondPress = $presses->next();
- $singlePress = $firstPress && !$secondPress;
-
- $userRoles = $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
-
- $showSitePlugins = false;
- if ($singlePress && in_array(ROLE_ID_SITE_ADMIN, $userRoles)) {
- $showSitePlugins = true;
- }
-
- if ($showSitePlugins) {
- return $plugins;
- } else {
- $contextLevelPlugins = array();
- foreach ($plugins as $plugin) {
- if (!$plugin->isSitePlugin()) {
- $contextLevelPlugins[$plugin->getName()] = $plugin;
- }
- }
- return $contextLevelPlugins;
- }
- }
-
- //
- // Overriden template methods.
- //
- /**
- * @copydoc GridHandler::getRowInstance()
- */
- function getRowInstance() {
- import('lib.pkp.controllers.grid.plugins.PluginGridRow');
- return new PluginGridRow($this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES));
- }
-
- /**
- * @copydoc GridHandler::authorize()
- */
- function authorize($request, &$args, $roleAssignments) {
- $categoryName = $request->getUserVar('category');
- $pluginName = $request->getUserVar('plugin');
-
- if ($categoryName && $pluginName) {
- import('lib.pkp.classes.security.authorization.PluginAccessPolicy');
- switch ($request->getRequestedOp()) {
- case 'enable':
- case 'disable':
- case 'manage':
- $accessMode = ACCESS_MODE_MANAGE;
- break;
- default:
- $accessMode = ACCESS_MODE_ADMIN;
- break;
- }
- $this->addPolicy(new PluginAccessPolicy($request, $args, $roleAssignments, $accessMode));
- } else {
- import('lib.pkp.classes.security.authorization.ContextAccessPolicy');
- $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments));
- }
- return parent::authorize($request, $args, $roleAssignments);
- }
-}
-
-
diff --git a/controllers/grid/settings/plugins/SettingsPluginGridHandler.php b/controllers/grid/settings/plugins/SettingsPluginGridHandler.php
new file mode 100644
index 00000000000..2fd082b5a65
--- /dev/null
+++ b/controllers/grid/settings/plugins/SettingsPluginGridHandler.php
@@ -0,0 +1,115 @@
+addRoleAssignment($roles, ['manage']);
+ parent::__construct($roles);
+ }
+
+
+ //
+ // Extended methods from PluginGridHandler
+ //
+ /**
+ * @copydoc PluginGridHandler::loadCategoryData()
+ *
+ * @param null|mixed $filter
+ */
+ public function loadCategoryData($request, &$categoryDataElement, $filter = null)
+ {
+ $plugins = parent::loadCategoryData($request, $categoryDataElement, $filter);
+
+ $pressDao = DAORegistry::getDAO('PressDAO'); /** @var PressDAO $pressDao */
+ $presses = $pressDao->getAll();
+ $firstPress = $presses->next();
+ $secondPress = $presses->next();
+ $singlePress = $firstPress && !$secondPress;
+
+ $userRoles = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_USER_ROLES);
+
+ $showSitePlugins = false;
+ if ($singlePress && in_array(Role::ROLE_ID_SITE_ADMIN, $userRoles)) {
+ $showSitePlugins = true;
+ }
+
+ if ($showSitePlugins) {
+ return $plugins;
+ } else {
+ $contextLevelPlugins = [];
+ foreach ($plugins as $plugin) {
+ if (!$plugin->isSitePlugin()) {
+ $contextLevelPlugins[$plugin->getName()] = $plugin;
+ }
+ }
+ return $contextLevelPlugins;
+ }
+ }
+
+ //
+ // Overriden template methods.
+ //
+ /**
+ * @copydoc GridHandler::getRowInstance()
+ */
+ public function getRowInstance()
+ {
+ return new PluginGridRow($this->getAuthorizedContextObject(Application::ASSOC_TYPE_USER_ROLES));
+ }
+
+ /**
+ * @copydoc GridHandler::authorize()
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $categoryName = $request->getUserVar('category');
+ $pluginName = $request->getUserVar('plugin');
+
+ if ($categoryName && $pluginName) {
+ switch ($request->getRequestedOp()) {
+ case 'enable':
+ case 'disable':
+ case 'manage':
+ $accessMode = PluginAccessPolicy::ACCESS_MODE_MANAGE;
+ break;
+ default:
+ $accessMode = PluginAccessPolicy::ACCESS_MODE_ADMIN;
+ break;
+ }
+ $this->addPolicy(new PluginAccessPolicy($request, $args, $roleAssignments, $accessMode));
+ } else {
+ $this->addPolicy(new ContextAccessPolicy($request, $roleAssignments));
+ }
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+}
diff --git a/controllers/grid/settings/series/SeriesGridCellProvider.inc.php b/controllers/grid/settings/series/SeriesGridCellProvider.inc.php
deleted file mode 100644
index f7fc89413dd..00000000000
--- a/controllers/grid/settings/series/SeriesGridCellProvider.inc.php
+++ /dev/null
@@ -1,86 +0,0 @@
-getData();
- $columnId = $column->getId();
- assert(!empty($columnId));
- switch ($columnId) {
- case 'inactive':
- return array('selected' => $element['inactive']);
- }
- return parent::getTemplateVarsFromRowColumn($row, $column);
- }
-
- /**
- * @see GridCellProvider::getCellActions()
- */
- function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) {
- switch ($column->getId()) {
- case 'inactive':
- $element = $row->getData(); /* @var $element DataObject */
-
- $router = $request->getRouter();
- import('lib.pkp.classes.linkAction.LinkAction');
-
- if ($element['inactive']) {
- return array(new LinkAction(
- 'activateSeries',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('manager.sections.confirmActivateSection'),
- null,
- $router->url(
- $request,
- null,
- 'grid.settings.series.SeriesGridHandler',
- 'activateSeries',
- null,
- array('seriesKey' => $row->getId())
- )
- )
- ));
- } else {
- return array(new LinkAction(
- 'deactivateSeries',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('manager.sections.confirmDeactivateSection'),
- null,
- $router->url(
- $request,
- null,
- 'grid.settings.series.SeriesGridHandler',
- 'deactivateSeries',
- null,
- array('seriesKey' => $row->getId())
- )
- )
- ));
- }
- }
- return parent::getCellActions($request, $row, $column, $position);
- }
-}
\ No newline at end of file
diff --git a/controllers/grid/settings/series/SeriesGridCellProvider.php b/controllers/grid/settings/series/SeriesGridCellProvider.php
new file mode 100644
index 00000000000..03fc952e4c6
--- /dev/null
+++ b/controllers/grid/settings/series/SeriesGridCellProvider.php
@@ -0,0 +1,97 @@
+getData();
+ $columnId = $column->getId();
+ assert(!empty($columnId));
+ switch ($columnId) {
+ case 'inactive':
+ return ['selected' => $element['inactive']];
+ }
+ return parent::getTemplateVarsFromRowColumn($row, $column);
+ }
+
+ /**
+ * @see GridCellProvider::getCellActions()
+ */
+ public function getCellActions($request, $row, $column, $position = GridHandler::GRID_ACTION_POSITION_DEFAULT)
+ {
+ switch ($column->getId()) {
+ case 'inactive':
+ $element = $row->getData(); /** @var array $element */
+
+ $router = $request->getRouter();
+
+ if ($element['inactive']) {
+ return [new LinkAction(
+ 'activateSeries',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('manager.sections.confirmActivateSection'),
+ null,
+ $router->url(
+ $request,
+ null,
+ 'grid.settings.series.SeriesGridHandler',
+ 'activateSeries',
+ null,
+ ['seriesKey' => $row->getId()]
+ )
+ )
+ )];
+ } else {
+ return [new LinkAction(
+ 'deactivateSeries',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('manager.sections.confirmDeactivateSection'),
+ null,
+ $router->url(
+ $request,
+ null,
+ 'grid.settings.series.SeriesGridHandler',
+ 'deactivateSeries',
+ null,
+ ['seriesKey' => $row->getId()]
+ )
+ )
+ )];
+ }
+ }
+ return parent::getCellActions($request, $row, $column, $position);
+ }
+}
diff --git a/controllers/grid/settings/series/SeriesGridHandler.inc.php b/controllers/grid/settings/series/SeriesGridHandler.inc.php
deleted file mode 100644
index d428f6328b9..00000000000
--- a/controllers/grid/settings/series/SeriesGridHandler.inc.php
+++ /dev/null
@@ -1,352 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_MANAGER),
- array('fetchGrid', 'fetchRow', 'addSeries', 'editSeries', 'updateSeries', 'deleteSeries', 'saveSequence', 'deactivateSeries','activateSeries')
- );
- }
-
-
- //
- // Overridden template methods
- //
- /*
- * @copydoc SetupGridHandler::initialize
- */
- function initialize($request, $args = null) {
- parent::initialize($request, $args);
- $press = $request->getPress();
-
- // FIXME are these all required?
- AppLocale::requireComponents(
- LOCALE_COMPONENT_APP_MANAGER,
- LOCALE_COMPONENT_PKP_MANAGER,
- LOCALE_COMPONENT_PKP_COMMON,
- LOCALE_COMPONENT_PKP_USER,
- LOCALE_COMPONENT_APP_COMMON,
- LOCALE_COMPONENT_PKP_SUBMISSION
- );
-
- // Set the grid title.
- $this->setTitle('catalog.manage.series');
-
- // Elements to be displayed in the grid
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- DAORegistry::getDAO('CategoryDAO'); // Load constants?
- $subEditorsDao = DAORegistry::getDAO('SubEditorsDAO'); /* @var $subEditorsDao SubEditorsDAO */
- $seriesIterator = $seriesDao->getByPressId($press->getId());
-
- $gridData = array();
- while ($series = $seriesIterator->next()) {
- // Get the categories data for the row
- $categories = $seriesDao->getCategories($series->getId(), $press->getId());
- $categoriesString = null;
- while ($category = $categories->next()) {
- if (!empty($categoriesString)) $categoriesString .= ', ';
- $categoriesString .= $category->getLocalizedTitle();
- }
- if (empty($categoriesString)) $categoriesString = __('common.none');
-
- // Get the series editors data for the row
- $assignedSeriesEditors = $subEditorsDao->getBySubmissionGroupId($series->getId(), ASSOC_TYPE_SECTION, $press->getId());
- if(empty($assignedSeriesEditors)) {
- $editorsString = __('common.none');
- } else {
- $editors = array();
- foreach ($assignedSeriesEditors as $seriesEditor) {
- $editors[] = $seriesEditor->getFullName();
- }
- $editorsString = implode(', ', $editors);
- }
-
- $seriesId = $series->getId();
- $gridData[$seriesId] = array(
- 'title' => $series->getLocalizedTitle(),
- 'categories' => $categoriesString,
- 'editors' => $editorsString,
- 'inactive' => $series->getIsInactive(),
- 'seq' => $series->getSequence()
- );
- }
-
- $this->setGridDataElements($gridData);
-
- // Add grid-level actions
- $router = $request->getRouter();
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'addSeries',
- new AjaxModal(
- $router->url($request, null, null, 'addSeries', null, array('gridId' => $this->getId())),
- __('grid.action.addSeries'),
- 'modal_manage'
- ),
- __('grid.action.addSeries'),
- 'add_category'
- )
- );
-
- import('controllers.grid.settings.series.SeriesGridCellProvider');
- $seriesGridCellProvider = new SeriesGridCellProvider();
- // Columns
- $this->addColumn(
- new GridColumn(
- 'title',
- 'common.title'
- )
- );
- $this->addColumn(new GridColumn('categories', 'grid.category.categories'));
- $this->addColumn(new GridColumn('editors', 'user.role.editors'));
- // Series 'inactive'
- $this->addColumn(
- new GridColumn(
- 'inactive',
- 'common.inactive',
- null,
- 'controllers/grid/common/cell/selectStatusCell.tpl',
- $seriesGridCellProvider,
- array('alignment' => COLUMN_ALIGNMENT_CENTER,
- 'width' => 20)
- )
- );
- }
-
- //
- // Overridden methods from GridHandler
- //
- /**
- * @copydoc GridHandler::initFeatures()
- */
- function initFeatures($request, $args) {
- import('lib.pkp.classes.controllers.grid.feature.OrderGridItemsFeature');
- return array(new OrderGridItemsFeature());
- }
-
- /**
- * Get the list of "publish data changed" events.
- * Used to update the site context switcher upon create/delete.
- * @return array
- */
- function getPublishChangeEvents() {
- return array('updateSidebar');
- }
-
- /**
- * Get the row handler - override the default row handler
- * @return SeriesGridRow
- */
- function getRowInstance() {
- return new SeriesGridRow();
- }
-
- /**
- * @copydoc GridHandler::getDataElementSequence()
- */
- function getDataElementSequence($gridDataElement) {
- return $gridDataElement['seq'];
- }
-
- /**
- * @copydoc GridHandler::setDataElementSequence()
- */
- function setDataElementSequence($request, $rowId, $gridDataElement, $newSequence) {
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $press = $request->getPress();
- $series = $seriesDao->getById($rowId, $press->getId());
- $series->setSequence($newSequence);
- $seriesDao->updateObject($series);
- }
-
- //
- // Public Series Grid Actions
- //
- /**
- * An action to add a new series
- * @param $args array
- * @param $request PKPRequest
- */
- function addSeries($args, $request) {
- // Calling editSeries with an empty ID will add
- // a new series.
- return $this->editSeries($args, $request);
- }
-
- /**
- * An action to edit a series
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editSeries($args, $request) {
- $seriesId = isset($args['seriesId']) ? $args['seriesId'] : null;
- $this->setupTemplate($request);
-
- import('controllers.grid.settings.series.form.SeriesForm');
- $seriesForm = new SeriesForm($request, $seriesId);
- $seriesForm->initData();
- return new JSONMessage(true, $seriesForm->fetch($request));
- }
-
- /**
- * Update a series
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateSeries($args, $request) {
- $seriesId = $request->getUserVar('seriesId');
-
- import('controllers.grid.settings.series.form.SeriesForm');
- $seriesForm = new SeriesForm($request, $seriesId);
- $seriesForm->readInputData();
-
- if ($seriesForm->validate()) {
- $seriesForm->execute();
- $notificationManager = new NotificationManager();
- $notificationManager->createTrivialNotification($request->getUser()->getId());
- return DAO::getDataChangedEvent($seriesForm->getSeriesId());
- } else {
- return new JSONMessage(false);
- }
- }
-
- /**
- * Delete a series
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deleteSeries($args, $request) {
- $press = $request->getPress();
-
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $series = $seriesDao->getById(
- $request->getUserVar('seriesId'),
- $press->getId()
- );
-
- if (isset($series)) {
- $result = $seriesDao->getByContextId($press->getId());
- $activeSeriesCount = (!$series->getIsInactive()) ? -1 : 0;
- while (!$result->eof()) {
- if (!$result->next()->getIsInactive()) {
- $activeSeriesCount++;
- }
- }
- if ($activeSeriesCount < 1) {
- return new JSONMessage(false, __('manager.series.confirmDeactivateSeries.error'));
- return false;
- }
-
- $seriesDao->deleteObject($series);
- return DAO::getDataChangedEvent($series->getId());
- } else {
- AppLocale::requireComponents(LOCALE_COMPONENT_PKP_MANAGER); // manager.setup.errorDeletingItem
- return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
- }
- }
-
- /**
- * Deactivate a series.
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deactivateSeries($args, $request) {
- // Identify the current series
- $seriesId = (int) $request->getUserVar('seriesKey');
-
- // Identify the context id.
- $context = $request->getContext();
-
- // Get series object
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- // Validate if it can be inactive
- $seriesIterator = $seriesDao->getByContextId($context->getId(),null,false);
- $activeSeriesCount = 0;
- while ($series = $seriesIterator->next()) {
- if (!$series->getIsInactive()) {
- $activeSeriesCount++;
- }
- }
- if ($activeSeriesCount > 1) {
- $series = $seriesDao->getById($seriesId, $context->getId());
-
- if ($request->checkCSRF() && isset($series) && !$series->getIsInactive()) {
- $series->setIsInactive(1);
- $seriesDao->updateObject($series);
-
- // Create the notification.
- $notificationMgr = new NotificationManager();
- $user = $request->getUser();
- $notificationMgr->createTrivialNotification($user->getId());
-
- return DAO::getDataChangedEvent($seriesId);
- }
- } else {
- // Create the notification.
- $notificationMgr = new NotificationManager();
- $user = $request->getUser();
- $notificationMgr->createTrivialNotification($user->getId(), NOTIFICATION_TYPE_ERROR, array('contents' => __('manager.series.confirmDeactivateSeries.error')));
- return DAO::getDataChangedEvent($seriesId);
- }
-
- return new JSONMessage(false);
- }
-
- /**
- * Activate a series.
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function activateSeries($args, $request) {
-
- // Identify the current series
- $seriesId = (int) $request->getUserVar('seriesKey');
-
- // Identify the context id.
- $context = $request->getContext();
-
- // Get series object
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $series = $seriesDao->getById($seriesId, $context->getId());
-
- if ($request->checkCSRF() && isset($series) && $series->getIsInactive()) {
- $series->setIsInactive(0);
- $seriesDao->updateObject($series);
-
- // Create the notification.
- $notificationMgr = new NotificationManager();
- $user = $request->getUser();
- $notificationMgr->createTrivialNotification($user->getId());
-
- return DAO::getDataChangedEvent($seriesId);
- }
-
- return new JSONMessage(false);
- }
-}
diff --git a/controllers/grid/settings/series/SeriesGridHandler.php b/controllers/grid/settings/series/SeriesGridHandler.php
new file mode 100644
index 00000000000..3acfab2828a
--- /dev/null
+++ b/controllers/grid/settings/series/SeriesGridHandler.php
@@ -0,0 +1,366 @@
+addRoleAssignment(
+ [Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN],
+ ['fetchGrid', 'fetchRow', 'addSeries', 'editSeries', 'updateSeries', 'deleteSeries', 'saveSequence', 'deactivateSeries','activateSeries']
+ );
+ }
+
+
+ //
+ // Overridden template methods
+ //
+ /**
+ * @copydoc SetupGridHandler::initialize
+ *
+ * @param null|mixed $args
+ */
+ public function initialize($request, $args = null)
+ {
+ parent::initialize($request, $args);
+ $press = $request->getPress();
+
+ // Set the grid title.
+ $this->setTitle('catalog.manage.series');
+
+ // Elements to be displayed in the grid
+ $subEditorsDao = DAORegistry::getDAO('SubEditorsDAO'); /** @var SubEditorsDAO $subEditorsDao */
+ $seriesIterator = Repo::section()
+ ->getCollector()
+ ->filterByContextIds([$press->getId()])
+ ->getMany();
+
+ $gridData = [];
+ foreach ($seriesIterator as $series) {
+ // Get the categories data for the row
+ $categories = Repo::section()->getAssignedCategories($series->getId(), $press->getId());
+ $categoriesString = null;
+ foreach ($categories as $category) {
+ if (!empty($categoriesString)) {
+ $categoriesString .= ', ';
+ }
+ $categoriesString .= $category->getLocalizedTitle();
+ }
+ if (empty($categoriesString)) {
+ $categoriesString = __('common.none');
+ }
+
+ // Get the series editors data for the row
+ $assignments = $subEditorsDao->getBySubmissionGroupIds([$series->getId()], Application::ASSOC_TYPE_SECTION, $press->getId());
+ $assignedSeriesEditors = Repo::user()
+ ->getCollector()
+ ->filterByUserIds(
+ $assignments
+ ->map(fn (stdClass $assignment) => $assignment->userId)
+ ->filter()
+ ->toArray()
+ )
+ ->getMany();
+ if ($assignedSeriesEditors->empty()) {
+ $editorsString = __('common.none');
+ } else {
+ $editors = [];
+ foreach ($assignedSeriesEditors as $seriesEditor) {
+ $editors[] = $seriesEditor->getFullName();
+ }
+ $editorsString = implode(', ', $editors);
+ }
+
+ $seriesId = $series->getId();
+ $gridData[$seriesId] = [
+ 'title' => $series->getLocalizedTitle(),
+ 'categories' => $categoriesString,
+ 'editors' => $editorsString,
+ 'inactive' => $series->getIsInactive(),
+ 'seq' => $series->getSequence()
+ ];
+ }
+
+ $this->setGridDataElements($gridData);
+
+ // Add grid-level actions
+ $router = $request->getRouter();
+ $this->addAction(
+ new LinkAction(
+ 'addSeries',
+ new AjaxModal(
+ $router->url($request, null, null, 'addSeries', null, ['gridId' => $this->getId()]),
+ __('grid.action.addSeries'),
+ 'modal_manage'
+ ),
+ __('grid.action.addSeries'),
+ 'add_category'
+ )
+ );
+
+ $seriesGridCellProvider = new SeriesGridCellProvider();
+ // Columns
+ $this->addColumn(
+ new GridColumn(
+ 'title',
+ 'common.title'
+ )
+ );
+ $this->addColumn(new GridColumn('categories', 'grid.category.categories'));
+ $this->addColumn(new GridColumn('editors', 'user.role.editors'));
+ // Series 'inactive'
+ $this->addColumn(
+ new GridColumn(
+ 'inactive',
+ 'common.inactive',
+ null,
+ 'controllers/grid/common/cell/selectStatusCell.tpl',
+ $seriesGridCellProvider,
+ ['alignment' => GridColumn::COLUMN_ALIGNMENT_CENTER,
+ 'width' => 20]
+ )
+ );
+ }
+
+ //
+ // Overridden methods from GridHandler
+ //
+ /**
+ * @copydoc GridHandler::initFeatures()
+ */
+ public function initFeatures($request, $args)
+ {
+ return [new OrderGridItemsFeature()];
+ }
+
+ /**
+ * Get the list of "publish data changed" events.
+ * Used to update the site context switcher upon create/delete.
+ *
+ * @return array
+ */
+ public function getPublishChangeEvents()
+ {
+ return ['updateSidebar'];
+ }
+
+ /**
+ * Get the row handler - override the default row handler
+ *
+ * @return SeriesGridRow
+ */
+ public function getRowInstance()
+ {
+ return new SeriesGridRow();
+ }
+
+ /**
+ * @copydoc GridHandler::getDataElementSequence()
+ */
+ public function getDataElementSequence($gridDataElement)
+ {
+ return $gridDataElement['seq'];
+ }
+
+ /**
+ * @copydoc GridHandler::setDataElementSequence()
+ */
+ public function setDataElementSequence($request, $rowId, $gridDataElement, $newSequence)
+ {
+ $press = $request->getPress();
+ $series = Repo::section()->get($rowId, $press->getId());
+ $series->setSequence($newSequence);
+ Repo::section()->edit($series, []);
+ }
+
+ //
+ // Public Series Grid Actions
+ //
+ /**
+ * An action to add a new series
+ *
+ * @param array $args
+ * @param Request $request
+ */
+ public function addSeries($args, $request)
+ {
+ // Calling editSeries with an empty ID will add
+ // a new series.
+ return $this->editSeries($args, $request);
+ }
+
+ /**
+ * An action to edit a series
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editSeries($args, $request)
+ {
+ $seriesId = $args['seriesId'] ?? null;
+ $this->setupTemplate($request);
+
+ $seriesForm = new SeriesForm($request, $seriesId);
+ $seriesForm->initData();
+ return new JSONMessage(true, $seriesForm->fetch($request));
+ }
+
+ /**
+ * Update a series
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateSeries($args, $request)
+ {
+ $seriesId = $request->getUserVar('seriesId');
+
+ $seriesForm = new SeriesForm($request, $seriesId);
+ $seriesForm->readInputData();
+
+ if ($seriesForm->validate()) {
+ $seriesForm->execute();
+ $notificationManager = new NotificationManager();
+ $notificationManager->createTrivialNotification($request->getUser()->getId());
+ return DAO::getDataChangedEvent($seriesForm->getSeriesId());
+ } else {
+ return new JSONMessage(false);
+ }
+ }
+
+ /**
+ * Delete a series
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deleteSeries($args, $request)
+ {
+ $press = $request->getPress();
+ $series = Repo::section()->get($request->getUserVar('seriesId'), $press->getId());
+
+ if (!$series) {
+ return new JSONMessage(false, __('manager.setup.errorDeletingItem'));
+ }
+
+ // Validate if it can be deleted
+ $seriesEmpty = Repo::section()->isEmpty($series->getId(), $press->getId());
+ if (!$seriesEmpty) {
+ return new JSONMessage(false, __('manager.sections.alertDelete'));
+ }
+
+ Repo::section()->delete($series);
+
+ return DAO::getDataChangedEvent($series->getId());
+ }
+
+ /**
+ * Deactivate a series.
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deactivateSeries($args, $request)
+ {
+ // Identify the current series
+ $seriesId = (int) $request->getUserVar('seriesKey');
+
+ // Identify the context id.
+ $context = $request->getContext();
+
+ // Validate if it can be inactive
+ $series = Repo::section()->get($seriesId, $context->getId());
+ if ($request->checkCSRF() && isset($series) && !$series->getIsInactive()) {
+ $series->setIsInactive(1);
+ Repo::section()->edit($series, []);
+
+ // Create the notification.
+ $notificationMgr = new NotificationManager();
+ $user = $request->getUser();
+ $notificationMgr->createTrivialNotification($user->getId());
+
+ return DAO::getDataChangedEvent($seriesId);
+ }
+
+ return new JSONMessage(false);
+ }
+
+ /**
+ * Activate a series.
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function activateSeries($args, $request)
+ {
+ // Identify the current series
+ $seriesId = (int) $request->getUserVar('seriesKey');
+
+ // Identify the context id.
+ $context = $request->getContext();
+
+ // Get series object
+ $series = Repo::section()->get($seriesId, $context->getId());
+
+ if ($request->checkCSRF() && isset($series) && $series->getIsInactive()) {
+ $series->setIsInactive(0);
+ Repo::section()->edit($series, []);
+
+ // Create the notification.
+ $notificationMgr = new NotificationManager();
+ $user = $request->getUser();
+ $notificationMgr->createTrivialNotification($user->getId());
+
+ return DAO::getDataChangedEvent($seriesId);
+ }
+
+ return new JSONMessage(false);
+ }
+}
diff --git a/controllers/grid/settings/series/SeriesGridRow.inc.php b/controllers/grid/settings/series/SeriesGridRow.inc.php
deleted file mode 100644
index 431801b4964..00000000000
--- a/controllers/grid/settings/series/SeriesGridRow.inc.php
+++ /dev/null
@@ -1,87 +0,0 @@
-setupTemplate($request);
-
- // Is this a new row or an existing row?
- $seriesId = $this->getId();
- if (!empty($seriesId) && is_numeric($seriesId)) {
- $router = $request->getRouter();
-
- import('lib.pkp.classes.linkAction.request.AjaxModal');
- $this->addAction(
- new LinkAction(
- 'editSeries',
- new AjaxModal(
- $router->url($request, null, null, 'editSeries', null, array('seriesId' => $seriesId)),
- __('grid.action.edit'),
- 'modal_edit',
- true),
- __('grid.action.edit'),
- 'edit'
- )
- );
-
- import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
- $this->addAction(
- new LinkAction(
- 'deleteSeries',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('common.confirmDelete'),
- __('grid.action.delete'),
- $router->url($request, null, null, 'deleteSeries', null, array('seriesId' => $seriesId)), 'modal_delete'
- ),
- __('grid.action.delete'),
- 'delete'
- )
- );
- }
- }
-
- /**
- * @see PKPHandler::setupTemplate()
- */
- function setupTemplate($request) {
- // Load manager translations. FIXME are these needed?
- AppLocale::requireComponents(
- LOCALE_COMPONENT_APP_MANAGER,
- LOCALE_COMPONENT_PKP_COMMON,
- LOCALE_COMPONENT_PKP_USER,
- LOCALE_COMPONENT_APP_COMMON
- );
- }
-}
-
-
diff --git a/controllers/grid/settings/series/SeriesGridRow.php b/controllers/grid/settings/series/SeriesGridRow.php
new file mode 100644
index 00000000000..542e8901966
--- /dev/null
+++ b/controllers/grid/settings/series/SeriesGridRow.php
@@ -0,0 +1,73 @@
+getId();
+ if (!empty($seriesId) && is_numeric($seriesId)) {
+ $router = $request->getRouter();
+
+ $this->addAction(
+ new LinkAction(
+ 'editSeries',
+ new AjaxModal(
+ $router->url($request, null, null, 'editSeries', null, ['seriesId' => $seriesId]),
+ __('grid.action.edit'),
+ 'modal_edit',
+ true
+ ),
+ __('grid.action.edit'),
+ 'edit'
+ )
+ );
+
+ $this->addAction(
+ new LinkAction(
+ 'deleteSeries',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('common.confirmDelete'),
+ __('grid.action.delete'),
+ $router->url($request, null, null, 'deleteSeries', null, ['seriesId' => $seriesId]),
+ 'modal_delete'
+ ),
+ __('grid.action.delete'),
+ 'delete'
+ )
+ );
+ }
+ }
+}
diff --git a/controllers/grid/settings/series/form/SeriesForm.inc.php b/controllers/grid/settings/series/form/SeriesForm.inc.php
deleted file mode 100644
index 7f2fe58d714..00000000000
--- a/controllers/grid/settings/series/form/SeriesForm.inc.php
+++ /dev/null
@@ -1,363 +0,0 @@
-_pressId = $pressId = $request->getContext()->getId();
-
- // Validation checks for this form
- $form = $this;
- $this->addCheck(new FormValidatorLocale($this, 'title', 'required', 'manager.setup.form.series.nameRequired'));
- $this->addCheck(new FormValidatorISSN($this, 'onlineIssn', 'optional', 'catalog.manage.series.issn.validation'));
- $this->addCheck(new FormValidatorISSN($this, 'printIssn', 'optional', 'catalog.manage.series.issn.validation'));
- $this->addCheck(new FormValidatorCustom($this, 'printIssn', 'optional', 'catalog.manage.series.issn.equalValidation', function($printIssn) use ($form) {
- return !($form->getData('onlineIssn') != '' && $form->getData('onlineIssn') == $printIssn);
- }));
- $this->addCheck(new FormValidatorRegExp($this, 'path', 'required', 'grid.series.pathAlphaNumeric', '/^[a-zA-Z0-9\/._-]+$/'));
- $this->addCheck(new FormValidatorCustom(
- $this, 'path', 'required', 'grid.series.pathExists',
- function($path) use ($form, $pressId) {
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- return !$seriesDao->getByPath($path,$pressId) || ($form->getData('oldPath') != null && $form->getData('oldPath') == $path);
- }));
- }
-
- /**
- * Initialize form data from current settings.
- */
- function initData() {
- $request = Application::get()->getRequest();
- $press = $request->getPress();
-
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $seriesId = $this->getSeriesId();
- if ($seriesId) {
- $series = $seriesDao->getById($seriesId, $press->getId());
- }
-
- $categories = $seriesDao->getCategories($seriesId, $press->getId());
- $categoryIds = array();
- while ($category = $categories->next()) {
- $categoryIds[] = $category->getId();
- }
-
- if (isset($series) ) {
- $sortOption = $series->getSortOption() ? $series->getSortOption() : DAORegistry::getDAO('SubmissionDAO')->getDefaultSortOption();
- $this->_data = array(
- 'seriesId' => $seriesId,
- 'title' => $series->getTitle(null, false),
- 'featured' => $series->getFeatured(),
- 'path' => $series->getPath(),
- 'description' => $series->getDescription(null),
- 'prefix' => $series->getPrefix(null),
- 'subtitle' => $series->getSubtitle(null),
- 'image' => $series->getImage(),
- 'restricted' => $series->getEditorRestricted(),
- 'isInactive' => $series->getIsInactive(),
- 'onlineIssn' => $series->getOnlineISSN(),
- 'printIssn' => $series->getPrintISSN(),
- 'sortOption' => $sortOption,
- 'categories' => $categoryIds,
- );
- }
-
- return parent::initData();
- }
-
- /**
- * @see Form::validate()
- */
- function validate($callHooks = true) {
- if ($temporaryFileId = $this->getData('temporaryFileId')) {
- import('lib.pkp.classes.file.TemporaryFileManager');
- $temporaryFileManager = new TemporaryFileManager();
- $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO'); /* @var $temporaryFileDao TemporaryFileDAO */
- $temporaryFile = $temporaryFileDao->getTemporaryFile($temporaryFileId, $this->_userId);
- if ( !$temporaryFile ||
- !($this->_imageExtension = $temporaryFileManager->getImageExtension($temporaryFile->getFileType())) ||
- !($this->_sizeArray = getimagesize($temporaryFile->getFilePath())) ||
- $this->_sizeArray[0] <= 0 || $this->_sizeArray[1] <= 0
- ) {
- $this->addError('temporaryFileId', __('form.invalidImage'));
- return false;
- }
- }
-
- // Validate if it can be inactive
- if ($this->getData('isInactive')) {
- $request = Application::get()->getRequest();
- $context = $request->getContext();
- $seriesId = $this->getSeriesId();
-
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $seriesIterator = $seriesDao->getByContextId($context->getId());
- $activeSeriesCount = 0;
- while ($series = $seriesIterator->next()) {
- if (!$series->getIsInactive() && ($seriesId != $series->getId())) {
- $activeSeriesCount++;
- }
- }
- if ($activeSeriesCount < 1 && $this->getData('isInactive')) {
- $this->addError('isInactive', __('manager.series.confirmDeactivateSeries.error'));
- }
- }
-
- return parent::validate($callHooks);
- }
-
- /**
- * @copydoc PKPSectionForm::fetch()
- */
- function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign('seriesId', $this->getSeriesId());
-
- $context = $request->getContext();
-
- $categoryDao = DAORegistry::getDAO('CategoryDAO'); /* @var $categoryDao CategoryDAO */
- $categoryCount = $categoryDao->getCountByContextId($context->getId());
- $templateMgr->assign('categoryCount', $categoryCount);
-
- // Sort options.
- $templateMgr->assign('sortOptions', DAORegistry::getDAO('SubmissionDAO')->getSortSelectOptions());
-
- // Series Editors
- $usersIterator = Services::get('user')->getMany([
- 'contextId' => $context->getId(),
- 'roleIds' => ROLE_ID_SUB_EDITOR,
- ]);
- $availableSubeditors = [];
- foreach ($usersIterator as $user) {
- $availableSubeditors[(int) $user->getId()] = $user->getFullName();
- }
- $assignedToSeries = [];
- if ($this->getSeriesId()) {
- $assignedToSeries = Services::get('user')->getIds([
- 'contextId' => $context->getId(),
- 'roleIds' => ROLE_ID_SUB_EDITOR,
- 'assignedToSection' => (int) $this->getSeriesId(),
- ]);
- }
-
- // Categories list
- $allCategories = [];
- $categoryDao = DAORegistry::getDAO('CategoryDAO'); /* @var $categoryDao CategoryDAO */
- $categoriesResult = $categoryDao->getByContextId($context->getId())->toAssociativeArray();
- foreach ($categoriesResult as $category) {
- $title = $category->getLocalizedTitle();
- if ($category->getParentId()) {
- $title = $categoriesResult[$category->getParentId()]->getLocalizedTitle() . ' > ' . $title;
- }
- $allCategories[(int) $category->getId()] = $title;
- }
-
- $templateMgr->assign([
- 'availableSubeditors' => $availableSubeditors,
- 'assignedToSeries' => $assignedToSeries,
- 'allCategories' => $allCategories,
- 'selectedCategories' => (array) $this->getData('categories'),
- ]);
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * Assign form data to user-submitted data.
- * @see Form::readInputData()
- */
- function readInputData() {
- parent::readInputData();
- $this->readUserVars(array('seriesId', 'path', 'featured', 'restricted', 'description', 'categories', 'prefix', 'subtitle', 'temporaryFileId', 'onlineIssn', 'printIssn', 'sortOption', 'isInactive'));
- // For path duplicate checking; excuse the current path.
- if ($seriesId = $this->getSeriesId()) {
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $series = $seriesDao->getById($seriesId, $this->_pressId);
- $this->setData('oldPath', $series->getPath());
- }
- }
-
- /**
- * Save series.
- */
- function execute(...$functionParams) {
- parent::execute(...$functionParams);
-
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $request = Application::get()->getRequest();
- $press = $request->getPress();
-
- // Get or create the series object
- if ($this->getSeriesId()) {
- $series = $seriesDao->getById($this->getSeriesId(), $press->getId());
- } else {
- $series = $seriesDao->newDataObject();
- $series->setPressId($press->getId());
- }
-
- // Populate/update the series object from the form
- $series->setPath($this->getData('path'));
- $series->setFeatured($this->getData('featured'));
- $series->setTitle($this->getData('title'), null); // Localized
- $series->setDescription($this->getData('description'), null); // Localized
- $series->setPrefix($this->getData('prefix'), null); // Localized
- $series->setSubtitle($this->getData('subtitle'), null); // Localized
- $series->setEditorRestricted($this->getData('restricted'));
- $series->setIsInactive($this->getData('isInactive') ? 1 : 0);
- $series->setOnlineISSN($this->getData('onlineIssn'));
- $series->setPrintISSN($this->getData('printIssn'));
- $series->setSortOption($this->getData('sortOption'));
-
- // Insert or update the series in the DB
- if ($this->getSeriesId()) {
- $seriesDao->updateObject($series);
- } else {
- $this->setSeriesId($seriesDao->insertObject($series));
- }
-
- // Handle the image upload if there was one.
- if ($temporaryFileId = $this->getData('temporaryFileId')) {
- // Fetch the temporary file storing the uploaded library file
- $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO'); /* @var $temporaryFileDao TemporaryFileDAO */
-
- $temporaryFile = $temporaryFileDao->getTemporaryFile($temporaryFileId, $this->_userId);
- $temporaryFilePath = $temporaryFile->getFilePath();
- import('lib.pkp.classes.file.ContextFileManager');
- $pressFileManager = new ContextFileManager($press->getId());
- $basePath = $pressFileManager->getBasePath() . '/series/';
-
- // Delete the old file if it exists
- $oldSetting = $series->getImage();
- if ($oldSetting) {
- $pressFileManager->deleteByPath($basePath . $oldSetting['thumbnailName']);
- $pressFileManager->deleteByPath($basePath . $oldSetting['name']);
- }
-
- // The following variables were fetched in validation
- assert($this->_sizeArray && $this->_imageExtension);
-
- // Generate the surrogate image.
- switch ($this->_imageExtension) {
- case '.jpg': $image = imagecreatefromjpeg($temporaryFilePath); break;
- case '.png': $image = imagecreatefrompng($temporaryFilePath); break;
- case '.gif': $image = imagecreatefromgif($temporaryFilePath); break;
- default: $image = null; // Suppress warn
- }
- assert($image);
-
- $coverThumbnailsMaxWidth = $press->getSetting('coverThumbnailsMaxWidth');
- $coverThumbnailsMaxHeight = $press->getSetting('coverThumbnailsMaxHeight');
-
- $thumbnailFilename = $series->getId() . '-series-thumbnail' . $this->_imageExtension;
- $xRatio = min(1, $coverThumbnailsMaxWidth / $this->_sizeArray[0]);
- $yRatio = min(1, $coverThumbnailsMaxHeight / $this->_sizeArray[1]);
-
- $ratio = min($xRatio, $yRatio);
-
- $thumbnailWidth = round($ratio * $this->_sizeArray[0]);
- $thumbnailHeight = round($ratio * $this->_sizeArray[1]);
- $thumbnail = imagecreatetruecolor($thumbnailWidth, $thumbnailHeight);
- imagecopyresampled($thumbnail, $image, 0, 0, 0, 0, $thumbnailWidth, $thumbnailHeight, $this->_sizeArray[0], $this->_sizeArray[1]);
-
- // Copy the new file over
- $filename = $series->getId() . '-series' . $this->_imageExtension;
- $pressFileManager->copyFile($temporaryFile->getFilePath(), $basePath . $filename);
-
- switch ($this->_imageExtension) {
- case '.jpg': imagejpeg($thumbnail, $basePath . $thumbnailFilename); break;
- case '.png': imagepng($thumbnail, $basePath . $thumbnailFilename); break;
- case '.gif': imagegif($thumbnail, $basePath . $thumbnailFilename); break;
- }
- imagedestroy($thumbnail);
- imagedestroy($image);
-
- $series->setImage(array(
- 'name' => $filename,
- 'width' => $this->_sizeArray[0],
- 'height' => $this->_sizeArray[1],
- 'thumbnailName' => $thumbnailFilename,
- 'thumbnailWidth' => $thumbnailWidth,
- 'thumbnailHeight' => $thumbnailHeight,
- 'uploadName' => $temporaryFile->getOriginalFileName(),
- 'dateUploaded' => Core::getCurrentDate(),
- ));
-
- // Clean up the temporary file
- import('lib.pkp.classes.file.TemporaryFileManager');
- $temporaryFileManager = new TemporaryFileManager();
- $temporaryFileManager->deleteById($temporaryFileId, $this->_userId);
- }
-
- // Update series object to store image information.
- $seriesDao->updateObject($series);
-
- // Update series editors
- $subEditorsDao = DAORegistry::getDAO('SubEditorsDAO'); /* @var $subEditorsDao SubEditorsDAO */
- $subEditorsDao->deleteBySubmissionGroupId($series->getId(), ASSOC_TYPE_SERIES, $series->getContextId());
- $subEditors = $this->getData('subEditors');
- if (!empty($subEditors)) {
- $roleDao = DAORegistry::getDAO('RoleDAO'); /* @var $roleDao RoleDAO */
- foreach ($subEditors as $subEditor) {
- if ($roleDao->userHasRole($series->getContextId(), $subEditor, ROLE_ID_SUB_EDITOR)) {
- $subEditorsDao->insertEditor($series->getContextId(), $series->getId(), $subEditor, ASSOC_TYPE_SERIES);
- }
- }
- }
-
- // Save the category associations.
- $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
- $seriesDao->removeCategories($this->getSeriesId());
- $categoryIds = $this->getData('categories');
- if (!empty($categoryIds)) {
- foreach ($categoryIds as $categoryId) {
- $seriesDao->addCategory($this->getSeriesId(), $categoryId);
- }
- }
-
- return true;
- }
-
- /**
- * Get the series ID for this series.
- * @return int
- */
- function getSeriesId() {
- return $this->getSectionId();
- }
-
- /**
- * Set the series ID for this series.
- * @param $seriesId int
- */
- function setSeriesId($seriesId) {
- $this->setSectionId($seriesId);
- }
-}
diff --git a/controllers/grid/settings/series/form/SeriesForm.php b/controllers/grid/settings/series/form/SeriesForm.php
new file mode 100644
index 00000000000..ee4d2bd113e
--- /dev/null
+++ b/controllers/grid/settings/series/form/SeriesForm.php
@@ -0,0 +1,360 @@
+_pressId = $pressId = $request->getContext()->getId();
+
+ // Validation checks for this form
+ $form = $this;
+ $this->addCheck(new \PKP\form\validation\FormValidatorLocale($this, 'title', 'required', 'manager.setup.form.series.nameRequired'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorISSN($this, 'onlineIssn', 'optional', 'catalog.manage.series.issn.validation'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorISSN($this, 'printIssn', 'optional', 'catalog.manage.series.issn.validation'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCustom($this, 'printIssn', 'optional', 'catalog.manage.series.issn.equalValidation', function ($printIssn) use ($form) {
+ return !($form->getData('onlineIssn') != '' && $form->getData('onlineIssn') == $printIssn);
+ }));
+ $this->addCheck(new \PKP\form\validation\FormValidatorRegExp($this, 'path', 'required', 'grid.series.pathAlphaNumeric', '/^[a-zA-Z0-9\/._-]+$/'));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCustom(
+ $this,
+ 'path',
+ 'required',
+ 'grid.series.pathExists',
+ function ($path) use ($form, $pressId) {
+ return !Repo::section()->getByPath($path, $pressId) || ($form->getData('oldPath') != null && $form->getData('oldPath') == $path);
+ }
+ ));
+ }
+
+ public function getSeries(): ?Section
+ {
+ return $this->section;
+ }
+
+ public function setSeries(Section $series): void
+ {
+ $this->section = $series;
+ }
+
+ /**
+ * Initialize form data from current settings.
+ */
+ public function initData()
+ {
+ $request = Application::get()->getRequest();
+ $context = $request->getContext();
+
+ $seriesId = $this->getSeriesId();
+ if ($seriesId) {
+ $series = Repo::section()->get($seriesId, $context->getId());
+ if ($series) {
+ $this->setSeries($series);
+ $categoryIds = Repo::section()->getAssignedCategoryIds($series->getId());
+ }
+ }
+
+ if ($this->getSeries() !== null) {
+ $sortOption = $this->getSeries()->getSortOption() ? $this->getSeries()->getSortOption() : Repo::submission()->getDefaultSortOption();
+ $this->_data = [
+ 'seriesId' => $this->getSeries()->getId(),
+ 'title' => $this->getSeries()->getTitle(null, false),
+ 'featured' => $this->getSeries()->getFeatured(),
+ 'path' => $this->getSeries()->getPath(),
+ 'description' => $this->getSeries()->getDescription(null),
+ 'prefix' => $this->getSeries()->getPrefix(null),
+ 'subtitle' => $this->getSeries()->getSubtitle(null),
+ 'image' => $this->getSeries()->getImage(),
+ 'editorRestricted' => $this->getSeries()->getEditorRestricted(),
+ 'isInactive' => $this->getSeries()->getIsInactive(),
+ 'onlineIssn' => $this->getSeries()->getOnlineISSN(),
+ 'printIssn' => $this->getSeries()->getPrintISSN(),
+ 'sortOption' => $sortOption,
+ 'categories' => $categoryIds ?? []
+ ];
+ }
+
+ return parent::initData();
+ }
+
+ /**
+ * @see Form::validate()
+ */
+ public function validate($callHooks = true)
+ {
+ if ($temporaryFileId = $this->getData('temporaryFileId')) {
+ $temporaryFileManager = new TemporaryFileManager();
+ $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO');
+ /** @var TemporaryFileDAO $temporaryFileDao */
+ $temporaryFile = $temporaryFileDao->getTemporaryFile($temporaryFileId, $this->_userId);
+ if (
+ !$temporaryFile ||
+ !($this->_imageExtension = $temporaryFileManager->getImageExtension($temporaryFile->getFileType())) ||
+ !($this->_sizeArray = getimagesize($temporaryFile->getFilePath())) ||
+ $this->_sizeArray[0] <= 0 || $this->_sizeArray[1] <= 0
+ ) {
+ $this->addError('temporaryFileId', __('form.invalidImage'));
+ return false;
+ }
+ }
+
+ return parent::validate($callHooks);
+ }
+
+ /**
+ * @copydoc PKPSectionForm::fetch()
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->assign('seriesId', $this->getSeriesId());
+
+ $context = $request->getContext();
+
+ // Sort options.
+ $templateMgr->assign('sortOptions', Repo::submission()->getSortSelectOptions());
+
+ // Categories list
+ $allCategories = [];
+ $categories = Repo::category()->getCollector()
+ ->filterByContextIds([$context->getId()])
+ ->getMany()
+ ->toArray();
+
+ foreach ($categories as $category) {
+ $title = $category->getLocalizedTitle();
+ if ($category->getParentId()) {
+ $title = $categories[$category->getParentId()]->getLocalizedTitle() . ' > ' . $title;
+ }
+ $allCategories[(int) $category->getId()] = $title;
+ }
+
+ $templateMgr->assign([
+ 'allCategories' => $allCategories,
+ 'selectedCategories' => $this->getData('categories')?->values()?->all() ?? [],
+ ]);
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ *
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ parent::readInputData();
+ $this->readUserVars(['seriesId', 'path', 'featured', 'editorRestricted', 'description', 'categories', 'prefix', 'subtitle', 'temporaryFileId', 'onlineIssn', 'printIssn', 'sortOption', 'isInactive']);
+ // For path duplicate checking; excuse the current path.
+ if ($seriesId = $this->getSeriesId()) {
+ $series = Repo::section()->get($seriesId, $this->_pressId);
+ $this->setData('oldPath', $series->getPath());
+ }
+ }
+
+ /**
+ * Save series.
+ */
+ public function execute(...$functionParams)
+ {
+ $request = Application::get()->getRequest();
+ $press = $request->getPress();
+
+ // Get or create the series object
+ if ($this->getSeriesId()) {
+ $series = Repo::section()->get($this->getSeriesId(), $press->getId());
+ } else {
+ $series = Repo::section()->newDataObject();
+ $series->setContextId($press->getId());
+ $series->setImage([]);
+ }
+
+ // Populate/update the series object from the form
+ $series->setPath($this->getData('path'));
+ $series->setFeatured($this->getData('featured') ? 1 : 0);
+ $series->setTitle($this->getData('title'), null); // Localized
+ $series->setDescription($this->getData('description'), null); // Localized
+ $series->setPrefix($this->getData('prefix'), null); // Localized
+ $series->setSubtitle($this->getData('subtitle'), null); // Localized
+ $series->setEditorRestricted($this->getData('editorRestricted') ? 1 : 0);
+ $series->setIsInactive($this->getData('isInactive') ? 1 : 0);
+ $series->setOnlineISSN($this->getData('onlineIssn'));
+ $series->setPrintISSN($this->getData('printIssn'));
+ $series->setSortOption($this->getData('sortOption'));
+
+ // Insert or update the series in the DB
+ if ($this->getSeriesId()) {
+ Repo::section()->edit($series, []);
+ } else {
+ $this->setSeriesId(Repo::section()->add($series));
+ }
+
+ // Handle the image upload if there was one.
+ if ($temporaryFileId = $this->getData('temporaryFileId')) {
+ // Fetch the temporary file storing the uploaded library file
+ $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO');
+ /** @var TemporaryFileDAO $temporaryFileDao */
+
+ $temporaryFile = $temporaryFileDao->getTemporaryFile($temporaryFileId, $this->_userId);
+ $temporaryFilePath = $temporaryFile->getFilePath();
+ $pressFileManager = new ContextFileManager($press->getId());
+ $basePath = $pressFileManager->getBasePath() . '/series/';
+
+ // Delete the old file if it exists
+ $oldSetting = $series->getImage();
+ if ($oldSetting) {
+ $pressFileManager->deleteByPath($basePath . $oldSetting['thumbnailName']);
+ $pressFileManager->deleteByPath($basePath . $oldSetting['name']);
+ }
+
+ // The following variables were fetched in validation
+ assert($this->_sizeArray && $this->_imageExtension);
+
+ // Generate the surrogate image.
+ switch ($this->_imageExtension) {
+ case '.jpg':
+ $image = imagecreatefromjpeg($temporaryFilePath);
+ break;
+ case '.png':
+ $image = imagecreatefrompng($temporaryFilePath);
+ break;
+ case '.gif':
+ $image = imagecreatefromgif($temporaryFilePath);
+ break;
+ default:
+ $image = null; // Suppress warn
+ }
+ assert($image);
+
+ $coverThumbnailsMaxWidth = $press->getSetting('coverThumbnailsMaxWidth');
+ $coverThumbnailsMaxHeight = $press->getSetting('coverThumbnailsMaxHeight');
+
+ $thumbnailFilename = $series->getId() . '-series-thumbnail' . $this->_imageExtension;
+ $xRatio = min(1, $coverThumbnailsMaxWidth / $this->_sizeArray[0]);
+ $yRatio = min(1, $coverThumbnailsMaxHeight / $this->_sizeArray[1]);
+
+ $ratio = min($xRatio, $yRatio);
+
+ $thumbnailWidth = round($ratio * $this->_sizeArray[0]);
+ $thumbnailHeight = round($ratio * $this->_sizeArray[1]);
+ $thumbnail = imagecreatetruecolor($thumbnailWidth, $thumbnailHeight);
+ imagecopyresampled($thumbnail, $image, 0, 0, 0, 0, $thumbnailWidth, $thumbnailHeight, $this->_sizeArray[0], $this->_sizeArray[1]);
+
+ // Copy the new file over
+ $filename = $series->getId() . '-series' . $this->_imageExtension;
+ $pressFileManager->copyFile($temporaryFile->getFilePath(), $basePath . $filename);
+
+ switch ($this->_imageExtension) {
+ case '.jpg':
+ imagejpeg($thumbnail, $basePath . $thumbnailFilename);
+ break;
+ case '.png':
+ imagepng($thumbnail, $basePath . $thumbnailFilename);
+ break;
+ case '.gif':
+ imagegif($thumbnail, $basePath . $thumbnailFilename);
+ break;
+ }
+ imagedestroy($thumbnail);
+ imagedestroy($image);
+
+ $series->setImage([
+ 'name' => $filename,
+ 'width' => $this->_sizeArray[0],
+ 'height' => $this->_sizeArray[1],
+ 'thumbnailName' => $thumbnailFilename,
+ 'thumbnailWidth' => $thumbnailWidth,
+ 'thumbnailHeight' => $thumbnailHeight,
+ 'uploadName' => $temporaryFile->getOriginalFileName(),
+ 'dateUploaded' => Core::getCurrentDate(),
+ ]);
+
+ // Clean up the temporary file
+ $temporaryFileManager = new TemporaryFileManager();
+ $temporaryFileManager->deleteById($temporaryFileId, $this->_userId);
+ }
+
+ // Update series object to store image information.
+ Repo::section()->edit($series, []);
+
+ // Save the category associations.
+ Repo::section()->removeFromCategory($this->getSeriesId());
+ $categoryIds = $this->getData('categories');
+ if (!empty($categoryIds)) {
+ foreach ($categoryIds as $categoryId) {
+ Repo::section()->addToCategory($this->getSeriesId(), $categoryId);
+ }
+ }
+
+ // The parent class depends on an existing seriesId/sectionId
+ parent::execute(...$functionParams);
+
+ return true;
+ }
+
+ /**
+ * Get the series ID for this series.
+ *
+ * @return int
+ */
+ public function getSeriesId()
+ {
+ return $this->getSectionId();
+ }
+
+ /**
+ * Set the series ID for this series.
+ *
+ * @param int $seriesId
+ */
+ public function setSeriesId($seriesId)
+ {
+ $this->setSectionId($seriesId);
+ }
+}
diff --git a/controllers/grid/users/author/form/AuthorForm.inc.php b/controllers/grid/users/author/form/AuthorForm.inc.php
deleted file mode 100644
index 8fc61ece14f..00000000000
--- a/controllers/grid/users/author/form/AuthorForm.inc.php
+++ /dev/null
@@ -1,63 +0,0 @@
-getAuthor()) {
- $this->_data['isVolumeEditor'] = $this->getAuthor()->getIsVolumeEditor();
- }
- }
-
- /**
- * @copydoc Form::fetch()
- */
- function fetch($request, $template = null, $display = false) {
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign('submission', Services::get('submission')->get($this->getPublication()->getData('submissionId')));
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * @copydoc Form::readInputData()
- */
- function readInputData() {
- parent::readInputData();
- $this->readUserVars(['isVolumeEditor']);
- }
-
- /**
- * @copydoc Form::execute()
- */
- function execute(...$functionParams) {
- $authorId = parent::execute(...$functionParams);
- $author = Services::get('author')->get($authorId);
- if ($author) {
- $author->setIsVolumeEditor($this->getData('isVolumeEditor'));
- DAORegistry::getDAO('AuthorDAO')->updateObject($author);
- }
- return $author->getId();
- }
-}
-
-
diff --git a/controllers/grid/users/chapter/ChapterGridAuthorCellProvider.php b/controllers/grid/users/chapter/ChapterGridAuthorCellProvider.php
new file mode 100644
index 00000000000..bb5fac677d7
--- /dev/null
+++ b/controllers/grid/users/chapter/ChapterGridAuthorCellProvider.php
@@ -0,0 +1,63 @@
+_publication = $publication;
+ }
+
+ //
+ // Template methods from GridCellProvider
+ //
+ /**
+ * Extracts variables for a given column from a data element
+ * so that they may be assigned to template before rendering.
+ *
+ * @param GridRow $row
+ * @param GridColumn $column
+ *
+ * @return array
+ */
+ public function getTemplateVarsFromRowColumn($row, $column)
+ {
+ $element = $row->getData();
+ $columnId = $column->getId();
+ if (!is_a($element, Author::class) && empty($columnId)) {
+ throw new Exception('Author grid cell provider expected APP\author\Author and column id.');
+ }
+ switch ($columnId) {
+ case 'name':
+ return ['label' => $element->getFullName()];
+ case 'role':
+ return ['label' => $element->getLocalizedUserGroupName()];
+ case 'email':
+ return parent::getTemplateVarsFromRowColumn($row, $column);
+ }
+ }
+}
diff --git a/controllers/grid/users/chapter/ChapterGridCategoryRow.inc.php b/controllers/grid/users/chapter/ChapterGridCategoryRow.inc.php
deleted file mode 100644
index 63f06803845..00000000000
--- a/controllers/grid/users/chapter/ChapterGridCategoryRow.inc.php
+++ /dev/null
@@ -1,123 +0,0 @@
-_monograph = $monograph;
- $this->_publication = $publication;
- $this->_readOnly = $readOnly;
- parent::__construct();
- }
-
- //
- // Overridden methods from GridCategoryRow
- //
- /**
- * @copydoc GridCategoryRow::initialize()
- */
- function initialize($request, $template = null) {
- // Do the default initialization
- parent::initialize($request, $template);
-
- // Retrieve the monograph id from the request
- $monograph = $this->getMonograph();
-
- // Is this a new row or an existing row?
- $chapterId = $this->getId();
- if (!empty($chapterId) && is_numeric($chapterId)) {
- $chapter = $this->getData();
- $this->_chapter = $chapter;
-
- // Only add row actions if this is an existing row and the grid is not 'read only'
- if (!$this->isReadOnly()) {
- $router = $request->getRouter();
- $actionArgs = array(
- 'submissionId' => $monograph->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- 'chapterId' => $chapterId
- );
-
- $this->addAction(
- new LinkAction(
- 'deleteChapter',
- new RemoteActionConfirmationModal(
- $request->getSession(),
- __('common.confirmDelete'),
- __('common.delete'),
- $router->url($request, null, null, 'deleteChapter', null, $actionArgs),
- 'modal_delete'
- ),
- __('common.delete'),
- 'delete'
- )
- );
- }
- }
- }
-
- /**
- * Get the monograph for this row (already authorized)
- * @return Monograph
- */
- function getMonograph() {
- return $this->_monograph;
- }
-
- /**
- * Get the publication for this row (already authorized)
- * @return Publication
- */
- function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Get the chapter for this row
- * @return Chapter
- */
- function getChapter() {
- return $this->_chapter;
- }
-
- /**
- * Determine if this grid row should be read only.
- * @return boolean
- */
- function isReadOnly() {
- return $this->_readOnly;
- }
-}
-
diff --git a/controllers/grid/users/chapter/ChapterGridCategoryRow.php b/controllers/grid/users/chapter/ChapterGridCategoryRow.php
new file mode 100644
index 00000000000..89e3321d9b4
--- /dev/null
+++ b/controllers/grid/users/chapter/ChapterGridCategoryRow.php
@@ -0,0 +1,139 @@
+_monograph = $monograph;
+ $this->_publication = $publication;
+ $this->_readOnly = $readOnly;
+ parent::__construct();
+ }
+
+ //
+ // Overridden methods from GridCategoryRow
+ //
+ /**
+ * @copydoc GridCategoryRow::initialize()
+ *
+ * @param null|mixed $template
+ */
+ public function initialize($request, $template = null)
+ {
+ // Do the default initialization
+ parent::initialize($request, $template);
+
+ // Retrieve the monograph id from the request
+ $monograph = $this->getMonograph();
+
+ // Is this a new row or an existing row?
+ $chapterId = $this->getId();
+ if (!empty($chapterId) && is_numeric($chapterId)) {
+ $chapter = $this->getData();
+ $this->_chapter = $chapter;
+
+ // Only add row actions if this is an existing row and the grid is not 'read only'
+ if (!$this->isReadOnly()) {
+ $router = $request->getRouter();
+ $actionArgs = [
+ 'submissionId' => $monograph->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ 'chapterId' => $chapterId
+ ];
+
+ $this->addAction(
+ new LinkAction(
+ 'deleteChapter',
+ new RemoteActionConfirmationModal(
+ $request->getSession(),
+ __('common.confirmDelete'),
+ __('common.delete'),
+ $router->url($request, null, null, 'deleteChapter', null, $actionArgs),
+ 'modal_delete'
+ ),
+ __('common.delete'),
+ 'delete'
+ )
+ );
+ }
+ }
+ }
+
+ /**
+ * Get the monograph for this row (already authorized)
+ *
+ * @return Submission
+ */
+ public function getMonograph()
+ {
+ return $this->_monograph;
+ }
+
+ /**
+ * Get the publication for this row (already authorized)
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Get the chapter for this row
+ *
+ * @return Chapter
+ */
+ public function getChapter()
+ {
+ return $this->_chapter;
+ }
+
+ /**
+ * Determine if this grid row should be read only.
+ *
+ * @return bool
+ */
+ public function isReadOnly()
+ {
+ return $this->_readOnly;
+ }
+}
diff --git a/controllers/grid/users/chapter/ChapterGridCategoryRowCellProvider.inc.php b/controllers/grid/users/chapter/ChapterGridCategoryRowCellProvider.inc.php
deleted file mode 100644
index dfcb70cb50a..00000000000
--- a/controllers/grid/users/chapter/ChapterGridCategoryRowCellProvider.inc.php
+++ /dev/null
@@ -1,69 +0,0 @@
-getId() =='name' && !$row->isReadOnly()) {
- $chapter = $row->getData();
- $monograph = $row->getMonograph();
- $publication = $row->getPublication();
-
- $router = $request->getRouter();
- $actionArgs = array(
- 'submissionId' => $monograph->getId(),
- 'publicationId' => $publication->getId(),
- 'chapterId' => $chapter->getId()
- );
-
- return array(new LinkAction(
- 'editChapter',
- new AjaxModal(
- $router->url($request, null, null, 'editChapter', null, $actionArgs),
- __('submission.chapter.editChapter'),
- 'modal_edit'
- ),
- htmlspecialchars($chapter->getLocalizedTitle())
- )
- );
- }
- return parent::getCellActions($request, $row, $column, $position);
- }
-
- /**
- * @see GridCellProvider::getTemplateVarsFromRowColumn()
- */
- function getTemplateVarsFromRowColumn($row, $column) {
- // If row is not read only, the cell will contains a link
- // action. See getCellActions() above.
- if ($column->getId() == 'name' && $row->isReadOnly()) {
- $chapter = $row->getData();
- $label = $chapter->getLocalizedTitle();
- } else {
- $label = '';
- }
-
- return array('label' => $label);
- }
-}
-
-
diff --git a/controllers/grid/users/chapter/ChapterGridCategoryRowCellProvider.php b/controllers/grid/users/chapter/ChapterGridCategoryRowCellProvider.php
new file mode 100644
index 00000000000..5a5e46eb70a
--- /dev/null
+++ b/controllers/grid/users/chapter/ChapterGridCategoryRowCellProvider.php
@@ -0,0 +1,79 @@
+getId() == 'name' && !$row->isReadOnly()) {
+ $chapter = $row->getData();
+ $monograph = $row->getMonograph();
+ $publication = $row->getPublication();
+
+ $router = $request->getRouter();
+ $actionArgs = [
+ 'submissionId' => $monograph->getId(),
+ 'publicationId' => $publication->getId(),
+ 'chapterId' => $chapter->getId()
+ ];
+
+ return [new LinkAction(
+ 'editChapter',
+ new AjaxModal(
+ $router->url($request, null, null, 'editChapter', null, $actionArgs),
+ __('submission.chapter.editChapter'),
+ 'modal_edit'
+ ),
+ htmlspecialchars($chapter->getLocalizedTitle())
+ )
+ ];
+ }
+ return parent::getCellActions($request, $row, $column, $position);
+ }
+
+ /**
+ * @see GridCellProvider::getTemplateVarsFromRowColumn()
+ *
+ * @param ChapterGridCategoryRow $row
+ */
+ public function getTemplateVarsFromRowColumn($row, $column)
+ {
+ // If row is not read only, the cell will contains a link
+ // action. See getCellActions() above.
+ if ($column->getId() == 'name' && $row->isReadOnly()) {
+ $chapter = $row->getData();
+ $label = $chapter->getLocalizedTitle();
+ } else {
+ $label = '';
+ }
+
+ return ['label' => $label];
+ }
+}
diff --git a/controllers/grid/users/chapter/ChapterGridHandler.inc.php b/controllers/grid/users/chapter/ChapterGridHandler.inc.php
deleted file mode 100644
index 8097ac269c6..00000000000
--- a/controllers/grid/users/chapter/ChapterGridHandler.inc.php
+++ /dev/null
@@ -1,499 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_AUTHOR, ROLE_ID_SUB_EDITOR, ROLE_ID_MANAGER, ROLE_ID_ASSISTANT),
- array(
- 'fetchGrid', 'fetchRow', 'fetchCategory', 'saveSequence',
- 'addChapter', 'editChapter', 'editChapterTab', 'updateChapter', 'deleteChapter',
- 'addAuthor', 'editAuthor', 'updateAuthor', 'deleteAuthor'
- )
- );
- $this->addRoleAssignment(
- array(ROLE_ID_SUB_EDITOR, ROLE_ID_MANAGER, ROLE_ID_ASSISTANT),
- array('identifiers', 'updateIdentifiers', 'clearPubId',)
- );
- $this->addRoleAssignment(ROLE_ID_REVIEWER, array('fetchGrid', 'fetchRow'));
- }
-
-
- //
- // Getters and Setters
- //
- /**
- * Get the monograph associated with this chapter grid.
- * @return Monograph
- */
- function getMonograph() {
- return $this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH);
- }
-
- /**
- * Get the publication associated with this chapter grid.
- * @return Publication
- */
- function getPublication() {
- return $this->getAuthorizedContextObject(ASSOC_TYPE_PUBLICATION);
- }
-
- /**
- * Get whether or not this grid should be 'read only'
- * @return boolean
- */
- function getReadOnly() {
- return $this->_readOnly;
- }
-
- /**
- * Set the boolean for 'read only' status
- * @param $readOnly boolean
- */
- function setReadOnly($readOnly) {
- $this->_readOnly = $readOnly;
- }
-
-
- //
- // Implement template methods from PKPHandler
- //
- /**
- * @see PKPHandler::authorize()
- * @param $request PKPRequest
- * @param $args array
- * @param $roleAssignments array
- */
- function authorize($request, &$args, $roleAssignments) {
- import('lib.pkp.classes.security.authorization.PublicationAccessPolicy');
- $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
- return parent::authorize($request, $args, $roleAssignments);
- }
-
- /**
- * @copydoc CategoryGridHandler::initialize()
- */
- function initialize($request, $args = null) {
- parent::initialize($request, $args);
-
- $this->setTitle('submission.chapters');
-
- AppLocale::requireComponents(LOCALE_COMPONENT_APP_DEFAULT, LOCALE_COMPONENT_PKP_DEFAULT, LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_SUBMISSION);
-
- if ($this->getPublication()->getData('status') === STATUS_PUBLISHED) {
- $this->setReadOnly(true);
- }
-
- if (!$this->getReadOnly()) {
- // Grid actions
- $router = $request->getRouter();
- $actionArgs = $this->getRequestArgs();
-
- $this->addAction(
- new LinkAction(
- 'addChapter',
- new AjaxModal(
- $router->url($request, null, null, 'addChapter', null, $actionArgs),
- __('submission.chapter.addChapter'),
- 'modal_add_item'
- ),
- __('submission.chapter.addChapter'),
- 'add_item'
- )
- );
- }
-
- // Columns
- // reuse the cell providers for the AuthorGrid
- $cellProvider = new PKPAuthorGridCellProvider($this->getPublication());
- $this->addColumn(
- new GridColumn(
- 'name',
- 'author.users.contributor.name',
- null,
- null,
- $cellProvider,
- array('width' => 50, 'alignment' => COLUMN_ALIGNMENT_LEFT)
- )
- );
- $this->addColumn(
- new GridColumn(
- 'email',
- 'author.users.contributor.email',
- null,
- null,
- $cellProvider
- )
- );
- $this->addColumn(
- new GridColumn(
- 'role',
- 'author.users.contributor.role',
- null,
- null,
- $cellProvider
- )
- );
- }
-
- /**
- * @see GridHandler::initFeatures()
- */
- function initFeatures($request, $args) {
- if ($this->canAdminister($request->getUser())) {
- $this->setReadOnly(false);
- import('lib.pkp.classes.controllers.grid.feature.OrderCategoryGridItemsFeature');
- return array(new OrderCategoryGridItemsFeature(ORDER_CATEGORY_GRID_CATEGORIES_AND_ROWS, true, $this));
- } else {
- $this->setReadOnly(true);
- return array();
- }
- }
-
- /**
- * @see GridDataProvider::getRequestArgs()
- */
- function getRequestArgs() {
- return array_merge(
- parent::getRequestArgs(),
- array(
- 'submissionId' => $this->getMonograph()->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- )
- );
- }
-
- /**
- * Determines if there should be add/edit actions on this grid.
- * @param $user User
- * @return boolean
- */
- function canAdminister($user) {
- $submission = $this->getMonograph();
- $publication = $this->getPublication();
- $userRoles = $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
-
- if ($publication->getData('status') === STATUS_PUBLISHED) {
- return false;
- }
-
- if (in_array(ROLE_ID_SITE_ADMIN, $userRoles)) {
- return true;
- }
-
- // Incomplete submissions can be edited. (Presumably author.)
- if ($submission->getDateSubmitted() == null) return true;
-
- // The user may not be allowed to edit the metadata
- if (Services::get('submission')->canEditPublication($submission->getId(), $user->getId())) {
- return true;
- }
-
- // Default: Read-only.
- return false;
- }
-
- /**
- * @see CategoryGridHandler::getCategoryRowIdParameterName()
- */
- function getCategoryRowIdParameterName() {
- return 'chapterId';
- }
-
-
- /**
- * @see GridHandler::loadData
- */
- function loadData($request, $filter) {
- return DAORegistry::getDAO('ChapterDAO')
- ->getByPublicationId($this->getPublication()->getId())
- ->toAssociativeArray();
- }
-
-
- //
- // Extended methods from GridHandler
- //
- /**
- * @see GridHandler::getDataElementSequence()
- */
- function getDataElementSequence($gridDataElement) {
- return $gridDataElement->getSequence();
- }
-
- /**
- * @see GridHandler::setDataElementSequence()
- */
- function setDataElementSequence($request, $chapterId, $chapter, $newSequence) {
- if (!$this->canAdminister($request->getUser())) return;
-
- $chapterDao = DAORegistry::getDAO('ChapterDAO'); /* @var $chapterDao ChapterDAO */
- $chapter->setSequence($newSequence);
- $chapterDao->updateObject($chapter);
- }
-
-
- //
- // Implement template methods from CategoryGridHandler
- //
- /**
- * @see CategoryGridHandler::getCategoryRowInstance()
- */
- function getCategoryRowInstance() {
- $monograph = $this->getMonograph();
- $row = new ChapterGridCategoryRow($monograph, $this->getPublication(), $this->getReadOnly());
- import('controllers.grid.users.chapter.ChapterGridCategoryRowCellProvider');
- $row->setCellProvider(new ChapterGridCategoryRowCellProvider());
- return $row;
- }
-
- /**
- * @see CategoryGridHandler::loadCategoryData()
- */
- function loadCategoryData($request, &$chapter, $filter = null) {
- $authorFactory = $chapter->getAuthors(); /* @var $authorFactory DAOResultFactory */
- return $authorFactory->toAssociativeArray();
- }
-
- /**
- * @see CategoryGridHandler::getDataElementInCategorySequence()
- */
- function getDataElementInCategorySequence($categoryId, &$author) {
- return $author->getSequence();
- }
-
- /**
- * @see CategoryGridHandler::setDataElementInCategorySequence()
- */
- function setDataElementInCategorySequence($chapterId, &$author, $newSequence) {
- if (!$this->canAdminister(Application::get()->getRequest()->getUser())) return;
-
- $monograph = $this->getMonograph();
-
- // Remove the chapter author id.
- $chapterAuthorDao = DAORegistry::getDAO('ChapterAuthorDAO'); /* @var $chapterAuthorDao ChapterAuthorDAO */
- $chapterAuthorDao->deleteChapterAuthorById($author->getId(), $chapterId);
-
- // Add it again with the correct sequence value.
- // FIXME: primary authors not set for chapter authors.
- $chapterAuthorDao->insertChapterAuthor($author->getId(), $chapterId, false, $newSequence);
- }
-
-
- //
- // Public Chapter Grid Actions
- //
- /**
- * Edit chapter pub ids
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function identifiers($args, $request) {
- $chapter = $this->_getChapterFromRequest($request);
-
- import('controllers.tab.pubIds.form.PublicIdentifiersForm');
- $form = new PublicIdentifiersForm($chapter);
- $form->initData();
- return new JSONMessage(true, $form->fetch($request));
- }
-
- /**
- * Update chapter pub ids
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateIdentifiers($args, $request) {
- if (!$this->canAdminister($request->getUser())) return new JSONMessage(false);
-
- $chapter = $this->_getChapterFromRequest($request);
-
- import('controllers.tab.pubIds.form.PublicIdentifiersForm');
- $form = new PublicIdentifiersForm($chapter);
- $form->readInputData();
- if ($form->validate()) {
- $form->execute();
- return DAO::getDataChangedEvent();
- } else {
- return new JSONMessage(true, $form->fetch($request));
- }
- }
-
- /**
- * Clear chapter pub id
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function clearPubId($args, $request) {
- if (!$request->checkCSRF()) return new JSONMessage(false);
- if (!$this->canAdminister($request->getUser())) return new JSONMessage(false);
-
- $chapter = $this->_getChapterFromRequest($request);
-
- import('controllers.tab.pubIds.form.PublicIdentifiersForm');
- $form = new PublicIdentifiersForm($chapter);
- $form->clearPubId($request->getUserVar('pubIdPlugIn'));
- return new JSONMessage(true);
- }
-
- /**
- * Add a chapter.
- * @param $args array
- * @param $request Request
- */
- function addChapter($args, $request) {
- if (!$this->canAdminister($request->getUser())) return new JSONMessage(false);
- // Calling editChapterTab() with an empty row id will add
- // a new chapter.
- return $this->editChapterTab($args, $request);
- }
-
- /**
- * Edit a chapter metadata modal
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editChapter($args, $request) {
- if (!$this->canAdminister($request->getUser())) return new JSONMessage(false);
- $chapter = $this->_getChapterFromRequest($request);
-
- // Check if this is a remote galley
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign(array(
- 'submissionId' => $this->getMonograph()->getId(),
- 'publicationId' => $this->getPublication()->getId(),
- 'chapterId' => $chapter->getId(),
- ));
-
- if (array_intersect(array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT), $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES))) {
- $publisherIdEnabled = in_array('chapter', (array) $request->getContext()->getData('enablePublisherId'));
- $pubIdPlugins = PluginRegistry::getPlugins('pubIds');
- $pubIdEnabled = false;
- foreach ($pubIdPlugins as $pubIdPlugin) {
- if ($pubIdPlugin->isObjectTypeEnabled('Chapter', $request->getContext()->getId())) {
- $pubIdEnabled = true;
- break;
- }
- }
- $templateMgr->assign('showIdentifierTab', $publisherIdEnabled || $pubIdEnabled);
- }
-
- return new JSONMessage(true, $templateMgr->fetch('controllers/grid/users/chapter/editChapter.tpl'));
- }
-
- /**
- * Edit a chapter
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function editChapterTab($args, $request) {
- if (!$this->canAdminister($request->getUser())) return new JSONMessage(false);
- $chapter = $this->_getChapterFromRequest($request);
-
- // Form handling
- import('controllers.grid.users.chapter.form.ChapterForm');
- $chapterForm = new ChapterForm($this->getMonograph(), $this->getPublication(), $chapter);
- $chapterForm->initData();
-
- return new JSONMessage(true, $chapterForm->fetch($request));
- }
-
- /**
- * Update a chapter
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function updateChapter($args, $request) {
- if (!$this->canAdminister($request->getUser())) return new JSONMessage(false);
- // Identify the chapter to be updated
- $chapter = $this->_getChapterFromRequest($request);
-
- // Form initialization
- import('controllers.grid.users.chapter.form.ChapterForm');
- $chapterForm = new ChapterForm($this->getMonograph(), $this->getPublication(), $chapter);
- $chapterForm->readInputData();
-
- // Form validation
- if ($chapterForm->validate()) {
- $notificationMgr = new NotificationManager();
- $notificationMgr->createTrivialNotification($request->getUser()->getId());
- $chapterForm->execute();
- return DAO::getDataChangedEvent($chapterForm->getChapter()->getId());
- } else {
- // Return an error
- return new JSONMessage(false);
- }
- }
-
- /**
- * Delete a chapter
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage JSON object
- */
- function deleteChapter($args, $request) {
- if (!$this->canAdminister($request->getUser())) return new JSONMessage(false);
- // Identify the chapter to be deleted
- $chapter = $this->_getChapterFromRequest($request);
- $chapterId = $chapter->getId();
-
- // remove Authors assigned to this chapter first
- $chapterAuthorDao = DAORegistry::getDAO('ChapterAuthorDAO'); /* @var $chapterAuthorDao ChapterAuthorDAO */
- $assignedAuthorIds = $chapterAuthorDao->getAuthorIdsByChapterId($chapterId);
-
- foreach ($assignedAuthorIds as $authorId) {
- $chapterAuthorDao->deleteChapterAuthorById($authorId, $chapterId);
- }
-
- $chapterDao = DAORegistry::getDAO('ChapterDAO'); /* @var $chapterDao ChapterDAO */
- $chapterDao->deleteById($chapterId);
- return DAO::getDataChangedEvent();
- }
-
- /**
- * Fetch and validate the chapter from the request arguments
- */
- function _getChapterFromRequest($request) {
- return DAORegistry::getDAO('ChapterDAO')->getChapter(
- (int) $request->getUserVar('chapterId'),
- $this->getPublication()->getId()
- );
- }
-}
-
-
diff --git a/controllers/grid/users/chapter/ChapterGridHandler.php b/controllers/grid/users/chapter/ChapterGridHandler.php
new file mode 100644
index 00000000000..ad306baab61
--- /dev/null
+++ b/controllers/grid/users/chapter/ChapterGridHandler.php
@@ -0,0 +1,599 @@
+addRoleAssignment(
+ [Role::ROLE_ID_AUTHOR, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_MANAGER, Role::ROLE_ID_ASSISTANT],
+ [
+ 'fetchGrid', 'fetchRow', 'fetchCategory', 'saveSequence',
+ 'addChapter', 'editChapter', 'editChapterTab', 'updateChapter', 'deleteChapter',
+ 'addAuthor', 'editAuthor', 'updateAuthor', 'deleteAuthor'
+ ]
+ );
+ $this->addRoleAssignment(
+ [Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_MANAGER, Role::ROLE_ID_ASSISTANT],
+ ['identifiers', 'updateIdentifiers', 'clearPubId',]
+ );
+ $this->addRoleAssignment(Role::ROLE_ID_REVIEWER, ['fetchGrid', 'fetchRow']);
+ }
+
+
+ //
+ // Getters and Setters
+ //
+ /**
+ * Get the monograph associated with this chapter grid.
+ */
+ public function getMonograph(): Submission
+ {
+ return $this->getAuthorizedContextObject(Application::ASSOC_TYPE_MONOGRAPH);
+ }
+
+ /**
+ * Get the publication associated with this chapter grid.
+ */
+ public function getPublication(): Publication
+ {
+ return $this->getAuthorizedContextObject(Application::ASSOC_TYPE_PUBLICATION);
+ }
+
+ /**
+ * Get whether or not this grid should be 'read only'
+ *
+ * @return bool
+ */
+ public function getReadOnly()
+ {
+ return $this->_readOnly;
+ }
+
+ /**
+ * Set the boolean for 'read only' status
+ *
+ * @param bool $readOnly
+ */
+ public function setReadOnly($readOnly)
+ {
+ $this->_readOnly = $readOnly;
+ }
+
+
+ //
+ // Implement template methods from PKPHandler
+ //
+ /**
+ * @see PKPHandler::authorize()
+ *
+ * @param Request $request
+ * @param array $args
+ * @param array $roleAssignments
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+
+ /**
+ * @copydoc CategoryGridHandler::initialize()
+ *
+ * @param null|mixed $args
+ */
+ public function initialize($request, $args = null)
+ {
+ parent::initialize($request, $args);
+
+ $this->setTitle('submission.chapters');
+
+ if ($this->getPublication()->getData('status') === PKPSubmission::STATUS_PUBLISHED) {
+ $this->setReadOnly(true);
+ }
+
+ if (!$this->getReadOnly()) {
+ // Grid actions
+ $router = $request->getRouter();
+ $actionArgs = $this->getRequestArgs();
+
+ $this->addAction(
+ new LinkAction(
+ 'addChapter',
+ new AjaxModal(
+ $router->url($request, null, null, 'addChapter', null, $actionArgs),
+ __('submission.chapter.addChapter'),
+ 'modal_add_item'
+ ),
+ __('submission.chapter.addChapter'),
+ 'add_item'
+ )
+ );
+ }
+
+ // Columns
+ // reuse the cell providers for the AuthorGrid
+ $cellProvider = new ChapterGridAuthorCellProvider($this->getPublication());
+ $this->addColumn(
+ new GridColumn(
+ 'name',
+ 'common.name',
+ null,
+ null,
+ $cellProvider,
+ ['width' => 50, 'alignment' => GridColumn::COLUMN_ALIGNMENT_LEFT]
+ )
+ );
+ $this->addColumn(
+ new GridColumn(
+ 'email',
+ 'email.email',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ $this->addColumn(
+ new GridColumn(
+ 'role',
+ 'common.role',
+ null,
+ null,
+ $cellProvider
+ )
+ );
+ }
+
+ /**
+ * @see GridHandler::initFeatures()
+ */
+ public function initFeatures($request, $args)
+ {
+ if ($this->canAdminister($request->getUser())) {
+ $this->setReadOnly(false);
+ return [new OrderCategoryGridItemsFeature(OrderCategoryGridItemsFeature::ORDER_CATEGORY_GRID_CATEGORIES_AND_ROWS, true, $this)];
+ } else {
+ $this->setReadOnly(true);
+ return [];
+ }
+ }
+
+ /**
+ * @see GridDataProvider::getRequestArgs()
+ */
+ public function getRequestArgs()
+ {
+ return array_merge(
+ parent::getRequestArgs(),
+ [
+ 'submissionId' => $this->getMonograph()->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ ]
+ );
+ }
+
+ /**
+ * Determines if there should be add/edit actions on this grid.
+ *
+ * @param User $user
+ *
+ * @return bool
+ */
+ public function canAdminister($user)
+ {
+ $submission = $this->getMonograph();
+ $publication = $this->getPublication();
+ $userRoles = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_USER_ROLES);
+
+ if ($publication->getData('status') === PKPSubmission::STATUS_PUBLISHED) {
+ return false;
+ }
+
+ if (in_array(Role::ROLE_ID_SITE_ADMIN, $userRoles)) {
+ return true;
+ }
+
+ // Incomplete submissions can be edited. (Presumably author.)
+ if ($submission->getDateSubmitted() == null) {
+ return true;
+ }
+
+ // The user may not be allowed to edit the metadata
+ if (Repo::submission()->canEditPublication($submission->getId(), $user->getId())) {
+ return true;
+ }
+
+ // Default: Read-only.
+ return false;
+ }
+
+ /**
+ * @see CategoryGridHandler::getCategoryRowIdParameterName()
+ */
+ public function getCategoryRowIdParameterName()
+ {
+ return 'chapterId';
+ }
+
+
+ /**
+ * @see GridHandler::loadData
+ */
+ public function loadData($request, $filter)
+ {
+ /** @var ChapterDAO */
+ $chapterDao = DAORegistry::getDAO('ChapterDAO');
+ return $chapterDao
+ ->getByPublicationId($this->getPublication()->getId())
+ ->toAssociativeArray();
+ }
+
+
+ //
+ // Extended methods from GridHandler
+ //
+ /**
+ * @see GridHandler::getDataElementSequence()
+ */
+ public function getDataElementSequence($gridDataElement)
+ {
+ return $gridDataElement->getSequence();
+ }
+
+ /**
+ * @see GridHandler::setDataElementSequence()
+ */
+ public function setDataElementSequence($request, $chapterId, $chapter, $newSequence)
+ {
+ if (!$this->canAdminister($request->getUser())) {
+ return;
+ }
+
+ $chapterDao = DAORegistry::getDAO('ChapterDAO'); /** @var ChapterDAO $chapterDao */
+ $chapter->setSequence($newSequence);
+ $chapterDao->updateObject($chapter);
+ }
+
+
+ //
+ // Implement template methods from CategoryGridHandler
+ //
+ /**
+ * @see CategoryGridHandler::getCategoryRowInstance()
+ */
+ public function getCategoryRowInstance()
+ {
+ $monograph = $this->getMonograph();
+ $row = new ChapterGridCategoryRow($monograph, $this->getPublication(), $this->getReadOnly());
+ $row->setCellProvider(new ChapterGridCategoryRowCellProvider());
+ return $row;
+ }
+
+ /**
+ * @see CategoryGridHandler::loadCategoryData()
+ *
+ * @param null|mixed $filter
+ */
+ public function loadCategoryData($request, &$chapter, $filter = null)
+ {
+ return $chapter->getAuthors();
+ }
+
+ /**
+ * @see CategoryGridHandler::getDataElementInCategorySequence()
+ */
+ public function getDataElementInCategorySequence($categoryId, &$author)
+ {
+ return $author->getSequence();
+ }
+
+ /**
+ * @see CategoryGridHandler::setDataElementInCategorySequence()
+ */
+ public function setDataElementInCategorySequence($chapterId, &$author, $newSequence)
+ {
+ if (!$this->canAdminister(Application::get()->getRequest()->getUser())) {
+ return;
+ }
+
+ $monograph = $this->getMonograph();
+
+ // Remove the chapter author id.
+ Repo::author()->removeFromChapter($author->getId(), $chapterId);
+
+ // Add it again with the correct sequence value.
+ // FIXME: primary authors not set for chapter authors.
+ Repo::author()->addToChapter($author->getId(), $chapterId, false, $newSequence);
+ }
+
+
+ //
+ // Public Chapter Grid Actions
+ //
+ /**
+ * Edit chapter pub ids
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function identifiers($args, $request)
+ {
+ $chapter = $this->_getChapterFromRequest($request);
+
+ $form = new PublicIdentifiersForm($chapter);
+ $form->initData();
+ return new JSONMessage(true, $form->fetch($request));
+ }
+
+ /**
+ * Update chapter pub ids
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateIdentifiers($args, $request)
+ {
+ if (!$this->canAdminister($request->getUser())) {
+ return new JSONMessage(false);
+ }
+
+ $chapter = $this->_getChapterFromRequest($request);
+
+ $form = new PublicIdentifiersForm($chapter);
+ $form->readInputData();
+ if ($form->validate()) {
+ $form->execute();
+ return DAO::getDataChangedEvent();
+ } else {
+ return new JSONMessage(true, $form->fetch($request));
+ }
+ }
+
+ /**
+ * Clear chapter pub id
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function clearPubId($args, $request)
+ {
+ if (!$request->checkCSRF()) {
+ return new JSONMessage(false);
+ }
+ if (!$this->canAdminister($request->getUser())) {
+ return new JSONMessage(false);
+ }
+
+ $chapter = $this->_getChapterFromRequest($request);
+
+ $form = new PublicIdentifiersForm($chapter);
+ $form->clearPubId($request->getUserVar('pubIdPlugIn'));
+ return new JSONMessage(true);
+ }
+
+ /**
+ * Add a chapter.
+ *
+ * @param array $args
+ * @param Request $request
+ */
+ public function addChapter($args, $request)
+ {
+ if (!$this->canAdminister($request->getUser())) {
+ return new JSONMessage(false);
+ }
+ // Calling editChapterTab() with an empty row id will add
+ // a new chapter.
+ return $this->editChapterTab($args, $request);
+ }
+
+ /**
+ * Edit a chapter metadata modal
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editChapter($args, $request)
+ {
+ if (!$this->canAdminister($request->getUser())) {
+ return new JSONMessage(false);
+ }
+ $chapter = $this->_getChapterFromRequest($request);
+
+ // Check if this is a remote galley
+ $templateMgr = TemplateManager::getManager($request);
+ $templateMgr->assign([
+ 'submissionId' => $this->getMonograph()->getId(),
+ 'publicationId' => $this->getPublication()->getId(),
+ 'chapterId' => $chapter->getId(),
+ ]);
+
+ if (array_intersect([Role::ROLE_ID_MANAGER, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_ASSISTANT], $this->getAuthorizedContextObject(Application::ASSOC_TYPE_USER_ROLES))) {
+ $publisherIdEnabled = in_array('chapter', (array) $request->getContext()->getData('enablePublisherId'));
+ $pubIdPlugins = PluginRegistry::getPlugins('pubIds');
+ $pubIdEnabled = false;
+ foreach ($pubIdPlugins as $pubIdPlugin) {
+ if ($pubIdPlugin->isObjectTypeEnabled('Chapter', $request->getContext()->getId())) {
+ $pubIdEnabled = true;
+ break;
+ }
+ }
+ $templateMgr->assign('showIdentifierTab', $publisherIdEnabled || $pubIdEnabled);
+ }
+
+ return new JSONMessage(true, $templateMgr->fetch('controllers/grid/users/chapter/editChapter.tpl'));
+ }
+
+ /**
+ * Edit a chapter
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function editChapterTab($args, $request)
+ {
+ if (!$this->canAdminister($request->getUser())) {
+ return new JSONMessage(false);
+ }
+ $chapter = $this->_getChapterFromRequest($request);
+
+ // Form handling
+ $chapterForm = new ChapterForm($this->getMonograph(), $this->getPublication(), $chapter);
+ $chapterForm->initData();
+
+ return new JSONMessage(true, $chapterForm->fetch($request));
+ }
+
+ /**
+ * Update a chapter
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function updateChapter($args, $request)
+ {
+ if (!$this->canAdminister($request->getUser())) {
+ return new JSONMessage(false);
+ }
+ // Identify the chapter to be updated
+ $chapter = $this->_getChapterFromRequest($request);
+
+ // Form initialization
+ $chapterForm = new ChapterForm($this->getMonograph(), $this->getPublication(), $chapter);
+ $chapterForm->readInputData();
+
+ // Form validation
+ if ($chapterForm->validate()) {
+ $notificationMgr = new NotificationManager();
+ $notificationMgr->createTrivialNotification($request->getUser()->getId());
+ $chapterForm->execute();
+ $json = DAO::getDataChangedEvent($chapterForm->getChapter()->getId());
+ if (!$chapter) {
+ $json->setGlobalEvent('chapter:added', $this->getChapterData($chapterForm->getChapter(), $this->getPublication()));
+ } else {
+ $json->setGlobalEvent('chapter:edited', $this->getChapterData($chapterForm->getChapter(), $this->getPublication()));
+ }
+ return $json;
+ } else {
+ // Return an error
+ return new JSONMessage(false);
+ }
+ }
+
+ /**
+ * Delete a chapter
+ *
+ * @param array $args
+ * @param Request $request
+ *
+ * @return JSONMessage JSON object
+ */
+ public function deleteChapter($args, $request)
+ {
+ if (!$this->canAdminister($request->getUser())) {
+ return new JSONMessage(false);
+ }
+ // Identify the chapter to be deleted
+ $chapter = $this->_getChapterFromRequest($request);
+ $chapterId = $chapter->getId();
+
+ // remove Authors assigned to this chapter first
+ Repo::author()->removeChapterAuthors($chapter);
+
+ $chapterDao = DAORegistry::getDAO('ChapterDAO'); /** @var ChapterDAO $chapterDao */
+ $chapterDao->deleteById($chapterId);
+ $json = DAO::getDataChangedEvent();
+ $json->setGlobalEvent('chapter:deleted', $this->getChapterData($chapter, $this->getPublication()));
+ return $json;
+ }
+
+ /**
+ * Fetch and validate the chapter from the request arguments
+ */
+ public function _getChapterFromRequest($request)
+ {
+ $chapterDao = DAORegistry::getDAO('ChapterDAO'); /** @var ChapterDAO $chapterDao */
+ return $chapterDao->getChapter(
+ (int) $request->getUserVar('chapterId'),
+ $this->getPublication()->getId()
+ );
+ }
+
+ /**
+ * Get chapter data to be returned as JSON in a global event
+ */
+ public function getChapterData(Chapter $chapter, Publication $publication): array
+ {
+ return [
+ 'id' => $chapter->getId(),
+ 'title' => $chapter->getLocalizedFullTitle(),
+ 'authors' => Repo::author()
+ ->getCollector()
+ ->filterByChapterIds([$chapter->getId()])
+ ->filterByPublicationIds([$publication->getId()])
+ ->getMany()
+ ->map(fn (Author $author) => $author->getFullName())
+ ->join(__('common.commaListSeparator')),
+ ];
+ }
+}
diff --git a/controllers/grid/users/chapter/form/ChapterForm.inc.php b/controllers/grid/users/chapter/form/ChapterForm.inc.php
deleted file mode 100644
index d262f87e711..00000000000
--- a/controllers/grid/users/chapter/form/ChapterForm.inc.php
+++ /dev/null
@@ -1,245 +0,0 @@
-setMonograph($monograph);
- $this->setPublication($publication);
- $this->setDefaultFormLocale($publication->getData('locale'));
-
- if ($chapter) {
- $this->setChapter($chapter);
- }
-
- // Validation checks for this form
- $this->addCheck(new FormValidatorLocale($this, 'title', 'required', 'metadata.property.validationMessage.title', $publication->getData('locale')));
- $this->addCheck(new FormValidatorPost($this));
- $this->addCheck(new FormValidatorCSRF($this));
- }
-
-
- //
- // Getters/Setters
- //
- /**
- * Get the monograph associated with this chapter grid.
- * @return Monograph
- */
- function getMonograph() {
- return $this->_monograph;
- }
-
- /**
- * Set the monograph associated with this chapter grid.
- * @param $monograph Monograph
- */
- function setMonograph($monograph) {
- $this->_monograph = $monograph;
- }
-
- /**
- * Get the publication associated with this chapter grid.
- * @return Publication
- */
- function getPublication() {
- return $this->_publication;
- }
-
- /**
- * Set the publication associated with this chapter grid.
- * @param $publication Publication
- */
- function setPublication($publication) {
- $this->_publication = $publication;
- }
-
- /**
- * Get the Chapter associated with this form
- * @return Chapter
- */
- function getChapter() {
- return $this->_chapter;
- }
-
- /**
- * Set the Chapter associated with this form
- * @param $chapter Chapter
- */
- function setChapter($chapter) {
- $this->_chapter = $chapter;
- }
-
- //
- // Overridden template methods
- //
- /**
- * Initialize form data from the associated chapter.
- * @param $chapter Chapter
- */
- function initData() {
- AppLocale::requireComponents(LOCALE_COMPONENT_APP_DEFAULT, LOCALE_COMPONENT_PKP_SUBMISSION);
-
- $this->setData('submissionId', $this->getMonograph()->getId());
- $this->setData('publicationId', $this->getPublication()->getId());
- $this->setData('enableChapterPublicationDates', (bool) $this->getMonograph()->getEnableChapterPublicationDates());
-
- $chapter = $this->getChapter();
- if ($chapter) {
- $this->setData('chapterId', $chapter->getId());
- $this->setData('title', $chapter->getTitle());
- $this->setData('subtitle', $chapter->getSubtitle());
- $this->setData('abstract', $chapter->getAbstract());
- $this->setData('datePublished', $chapter->getDatePublished());
- $this->setData('pages', $chapter->getPages());
- } else {
- $this->setData('title', null);
- $this->setData('subtitle', null);
- $this->setData('abstract', null);
- $this->setData('datePublished', null);
- $this->setData('pages', null);
- }
- }
-
- /**
- * @copydoc Form::fetch()
- */
- function fetch($request, $template = null, $display = false) {
-
- $chapterAuthorOptions = [];
- $selectedChapterAuthors = [];
- if ($this->getChapter()) {
- $selectedChapterAuthors = DAORegistry::getDAO('ChapterAuthorDAO')->getAuthors($this->getPublication()->getId(), $this->getChapter()->getId())->toArray();
- foreach ($selectedChapterAuthors as $selectedChapterAuthor) {
- $chapterAuthorOptions[$selectedChapterAuthor->getId()] = $selectedChapterAuthor->getFullName();
- }
- }
- $authorsIterator = Services::get('author')->getMany(['publicationIds' => $this->getPublication()->getId(), 'count' => 1000]);
- foreach ($authorsIterator as $author) {
- $isIncluded = false;
- foreach ($chapterAuthorOptions as $chapterAuthorOptionId => $chapterAuthorOption) {
- if ($chapterAuthorOptionId === $author->getId()) {
- $isIncluded = true;
- }
- }
- if (!$isIncluded) {
- $chapterAuthorOptions[$author->getId()] = $author->getFullName();
- }
- }
-
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign([
- 'chapterAuthorOptions' => $chapterAuthorOptions,
- 'selectedChapterAuthors' => array_map(function($author) { return $author->getId(); }, $selectedChapterAuthors),
- ]);
-
- if ($this->getChapter()) {
- $submissionFiles = Services::get('submissionFile')->getMany(['submissionIds' => [$this->getMonograph()->getId()]]);
- $chapterFileOptions = [];
- $selectedChapterFiles = [];
- foreach ($submissionFiles as $submissionFile) {
- if (!$submissionFile->getData('chapterId') || $submissionFile->getData('chapterId') == $this->getChapter()->getId()) {
- $chapterFileOptions[$submissionFile->getId()] = $submissionFile->getLocalizedData('name');
- }
- if ($submissionFile->getData('chapterId') == $this->getChapter()->getId()) {
- $selectedChapterFiles[] = $submissionFile->getId();
- }
- }
- $templateMgr = TemplateManager::getManager($request);
- $templateMgr->assign([
- 'chapterFileOptions' => $chapterFileOptions,
- 'selectedChapterFiles' => $selectedChapterFiles,
- ]);
- }
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * Assign form data to user-submitted data.
- * @see Form::readInputData()
- */
- function readInputData() {
- $this->readUserVars(array('title', 'subtitle', 'authors', 'files','abstract','datePublished','pages'));
- }
-
- /**
- * Save chapter
- * @see Form::execute()
- */
- function execute(...$functionParams) {
- parent::execute(...$functionParams);
-
- $chapterDao = DAORegistry::getDAO('ChapterDAO'); /* @var $chapterDao ChapterDAO */
- $chapter = $this->getChapter();
- $isEdit = !!$chapter;
-
- if ($chapter) {
- $chapter->setTitle($this->getData('title'), null); //Localized
- $chapter->setSubtitle($this->getData('subtitle'), null); //Localized
- $chapter->setAbstract($this->getData('abstract'), null); //Localized
- $chapter->setDatePublished($this->getData('datePublished'));
- $chapter->setPages($this->getData('pages'));
- $chapterDao->updateObject($chapter);
- } else {
- $chapter = $chapterDao->newDataObject();
- $chapter->setData('publicationId', $this->getPublication()->getId());
- $chapter->setTitle($this->getData('title'), null); //Localized
- $chapter->setSubtitle($this->getData('subtitle'), null); //Localized
- $chapter->setAbstract($this->getData('abstract'), null); //Localized
- $chapter->setDatePublished($this->getData('datePublished'));
- $chapter->setPages($this->getData('pages'));
- $chapter->setSequence(REALLY_BIG_NUMBER);
- $chapterDao->insertChapter($chapter);
- $chapterDao->resequenceChapters($this->getPublication()->getId());
- }
-
- $this->setChapter($chapter);
-
- // Save the chapter author aassociations
- DAORegistry::getDAO('ChapterAuthorDAO')->deleteChapterAuthorsByChapterId($this->getChapter()->getId());
- foreach ((array) $this->getData('authors') as $seq => $authorId) {
- DAORegistry::getDAO('ChapterAuthorDAO')->insertChapterAuthor($authorId, $this->getChapter()->getId(), false, $seq);
- }
-
- // Save the chapter file associations
- if ($isEdit) {
- $selectedFiles = (array) $this->getData('files');
- DAORegistry::getDAO('SubmissionFileDAO')->updateChapterFiles($selectedFiles, $this->getChapter()->getId());
- }
-
- return true;
- }
-}
-
-
diff --git a/controllers/grid/users/chapter/form/ChapterForm.php b/controllers/grid/users/chapter/form/ChapterForm.php
new file mode 100644
index 00000000000..efe21802488
--- /dev/null
+++ b/controllers/grid/users/chapter/form/ChapterForm.php
@@ -0,0 +1,351 @@
+setMonograph($monograph);
+ $this->setPublication($publication);
+ $this->setDefaultFormLocale($publication->getData('locale'));
+
+ if ($chapter) {
+ $this->setChapter($chapter);
+ }
+
+ // Validation checks for this form
+ $this->addCheck(new \PKP\form\validation\FormValidatorLocale($this, 'title', 'required', 'metadata.property.validationMessage.title', $publication->getData('locale')));
+ $this->addCheck(new \PKP\form\validation\FormValidatorPost($this));
+ $this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
+ }
+
+
+ //
+ // Getters/Setters
+ //
+ /**
+ * Get the monograph associated with this chapter grid.
+ *
+ * @return Submission
+ */
+ public function getMonograph()
+ {
+ return $this->_monograph;
+ }
+
+ /**
+ * Set the monograph associated with this chapter grid.
+ *
+ * @param Submission $monograph
+ */
+ public function setMonograph($monograph)
+ {
+ $this->_monograph = $monograph;
+ }
+
+ /**
+ * Get the publication associated with this chapter grid.
+ *
+ * @return Publication
+ */
+ public function getPublication()
+ {
+ return $this->_publication;
+ }
+
+ /**
+ * Set the publication associated with this chapter grid.
+ *
+ * @param Publication $publication
+ */
+ public function setPublication($publication)
+ {
+ $this->_publication = $publication;
+ }
+
+ /**
+ * Get the Chapter associated with this form
+ *
+ * @return Chapter
+ */
+ public function getChapter()
+ {
+ return $this->_chapter;
+ }
+
+ /**
+ * Set the Chapter associated with this form
+ *
+ * @param Chapter $chapter
+ */
+ public function setChapter($chapter)
+ {
+ $this->_chapter = $chapter;
+ }
+
+ //
+ // Overridden template methods
+ //
+ /**
+ * Initialize form data from the associated chapter.
+ */
+ public function initData()
+ {
+ //Create chapter license URL description
+ $chapterLicenseUrlDescription = '';
+ if ($this->getMonograph()->getData('workType') === Submission::WORK_TYPE_EDITED_VOLUME) {
+ $licenseOptions = Application::getCCLicenseOptions();
+ $context = Application::get()->getRequest()->getContext();
+ if ($this->getPublication()->getData('chapterLicenseUrl')) {
+ if (array_key_exists(
+ $this->getPublication()
+ ->getData('chapterLicenseUrl'),
+ $licenseOptions
+ )) {
+ $licenseName = __(
+ $licenseOptions[$this->getPublication()
+ ->getData('chapterLicenseUrl')]
+ );
+ } else {
+ $licenseName = $this->getPublication()
+ ->getData('chapterLicenseUrl');
+ }
+ $chapterLicenseUrlDescription = __('submission.license.description', [
+ 'licenseUrl' => $this->getPublication()->getData('chapterLicenseUrl'),
+ 'licenseName' => $licenseName,
+ ]);
+ } elseif ($this->getPublication()->getData('licenseUrl')) {
+ if (array_key_exists($this->getPublication()->getData('licenseUrl'), $licenseOptions)) {
+ $licenseName = __($licenseOptions[$this->getPublication()->getData('licenseUrl')]);
+ } else {
+ $licenseName = $this->getPublication()->getData('licenseUrl');
+ }
+ $chapterLicenseUrlDescription = __('submission.license.description', [
+ 'licenseUrl' => $this->getPublication()->getData('licenseUrl'),
+ 'licenseName' => $licenseName,
+ ]);
+ } elseif ($context->getData('licenseUrl')) {
+ if (array_key_exists($context->getData('licenseUrl'), $licenseOptions)) {
+ $licenseName = __($licenseOptions[$context->getData('licenseUrl')]);
+ } else {
+ $licenseName = $context->getData('licenseUrl');
+ }
+ $chapterLicenseUrlDescription = __('submission.license.description', [
+ 'licenseUrl' => $context->getData('licenseUrl'),
+ 'licenseName' => $licenseName,
+ ]);
+ }
+ }
+
+ $this->setData('submissionId', $this->getMonograph()->getId());
+ $this->setData('publicationId', $this->getPublication()->getId());
+ $this->setData('enableChapterPublicationDates', (bool) $this->getMonograph()->getEnableChapterPublicationDates());
+ $this->setData('submissionWorkType', $this->getMonograph()->getData('workType'));
+ $this->setData('chapterLicenseUrlDescription', $chapterLicenseUrlDescription);
+
+ $chapter = $this->getChapter();
+ if ($chapter) {
+ $this->setData('chapterId', $chapter->getId());
+ $this->setData('title', $chapter->getTitle());
+ $this->setData('subtitle', $chapter->getSubtitle());
+ $this->setData('abstract', $chapter->getAbstract());
+ $this->setData('datePublished', $chapter->getDatePublished());
+ $this->setData('isPageEnabled', $chapter->isPageEnabled());
+ $this->setData('pages', $chapter->getPages());
+ $this->setData('licenseUrl', $chapter->getLicenseUrl());
+ } else {
+ $this->setData('title', null);
+ $this->setData('subtitle', null);
+ $this->setData('abstract', null);
+ $this->setData('datePublished', null);
+ $this->setData('isPageEnabled', null);
+ $this->setData('pages', null);
+ $this->setData('licenseUrl', null);
+ }
+ }
+
+ /**
+ * @copydoc Form::fetch()
+ *
+ * @param null|mixed $template
+ */
+ public function fetch($request, $template = null, $display = false)
+ {
+ $templateMgr = TemplateManager::getManager($request);
+ $chapterAuthorOptions = [];
+ $selectedChapterAuthors = [];
+ $chapterFileOptions = [];
+ $selectedChapterFiles = [];
+
+ $selectedChapterAuthorsArray = [];
+ if ($this->getChapter()) {
+ $selectedChapterAuthors = Repo::author()->getCollector()
+ ->filterByChapterIds([$this->getChapter()->getId()])
+ ->filterByPublicationIds([$this->getPublication()->getId()])
+ ->getMany();
+
+ foreach ($selectedChapterAuthors as $selectedChapterAuthor) {
+ $chapterAuthorOptions[$selectedChapterAuthor->getId()] = $selectedChapterAuthor->getFullName();
+ }
+
+ if ($selectedChapterAuthors) {
+ $selectedChapterAuthorsArray = iterator_to_array($selectedChapterAuthors);
+ }
+ }
+ $authorsIterator = Repo::author()->getCollector()
+ ->filterByPublicationIds([$this->getPublication()->getId()])
+ ->getMany();
+
+ foreach ($authorsIterator as $author) {
+ $isIncluded = false;
+ foreach ($chapterAuthorOptions as $chapterAuthorOptionId => $chapterAuthorOption) {
+ if ($chapterAuthorOptionId === $author->getId()) {
+ $isIncluded = true;
+ }
+ }
+ if (!$isIncluded) {
+ $chapterAuthorOptions[$author->getId()] = $author->getFullName();
+ }
+ }
+
+ $submissionFiles = Repo::submissionFile()
+ ->getCollector()
+ ->filterBySubmissionIds([$this->getMonograph()->getId()])
+ ->getMany();
+
+ foreach ($submissionFiles as $submissionFile) {
+ $isIncluded = false;
+
+ if ($this->getChapter() && $submissionFile->getData('chapterId') == $this->getChapter()->getId()) {
+ $selectedChapterFiles[] = $submissionFile->getId();
+ $isIncluded = true;
+ }
+
+ // Include in list if not used in another chapter OR already selected to this chapter
+ if (!$submissionFile->getData('chapterId') || $isIncluded) {
+ $chapterFileOptions[$submissionFile->getId()] = $submissionFile->getLocalizedData('name');
+ }
+ }
+
+ $templateMgr->assign([
+ 'chapterAuthorOptions' => $chapterAuthorOptions,
+ 'selectedChapterAuthors' => array_map(function ($author) {
+ return $author->getId();
+ }, $selectedChapterAuthorsArray),
+ 'chapterFileOptions' => $chapterFileOptions,
+ 'selectedChapterFiles' => $selectedChapterFiles,
+ ]);
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * Assign form data to user-submitted data.
+ *
+ * @see Form::readInputData()
+ */
+ public function readInputData()
+ {
+ $this->readUserVars(['title', 'subtitle', 'authors', 'files','abstract','datePublished','pages','isPageEnabled','licenseUrl']);
+ }
+
+ /**
+ * Save chapter
+ *
+ * @see Form::execute()
+ */
+ public function execute(...$functionParams)
+ {
+ parent::execute(...$functionParams);
+
+ $chapterDao = DAORegistry::getDAO('ChapterDAO'); /** @var ChapterDAO $chapterDao */
+ $chapter = $this->getChapter();
+
+ if ($chapter) {
+ $chapter->setTitle($this->getData('title'), null); //Localized
+ $chapter->setSubtitle($this->getData('subtitle'), null); //Localized
+ $chapter->setAbstract($this->getData('abstract'), null); //Localized
+ $chapter->setDatePublished($this->getData('datePublished'));
+ $chapter->setPages($this->getData('pages'));
+ $chapter->setPageEnabled($this->getData('isPageEnabled'));
+ $chapter->setLicenseUrl($this->getData('licenseUrl'));
+ $chapterDao->updateObject($chapter);
+ } else {
+ $chapter = $chapterDao->newDataObject();
+ $chapter->setData('publicationId', $this->getPublication()->getId());
+ $chapter->setTitle($this->getData('title'), null); //Localized
+ $chapter->setSubtitle($this->getData('subtitle'), null); //Localized
+ $chapter->setAbstract($this->getData('abstract'), null); //Localized
+ $chapter->setDatePublished($this->getData('datePublished'));
+ $chapter->setPages($this->getData('pages'));
+ $chapter->setPageEnabled($this->getData('isPageEnabled'));
+ $chapter->setLicenseUrl($this->getData('licenseUrl'));
+ $chapter->setSequence(REALLY_BIG_NUMBER);
+ $chapterDao->insertChapter($chapter);
+ $chapterDao->resequenceChapters($this->getPublication()->getId());
+ }
+
+ $this->setChapter($chapter);
+
+ // Save the chapter author associations
+ Repo::author()->removeChapterAuthors($this->getChapter());
+ foreach ((array) $this->getData('authors') as $seq => $authorId) {
+ Repo::author()->addToChapter($authorId, $this->getChapter()->getId(), false, $seq);
+ }
+
+ // Save the chapter file associations
+ $selectedFiles = (array) $this->getData('files');
+ /** @var DAO */
+ $dao = Repo::submissionFile()->dao;
+ $dao->updateChapterFiles(
+ $selectedFiles,
+ $this->getChapter()->getId()
+ );
+
+ return true;
+ }
+}
diff --git a/controllers/grid/users/reviewer/ReviewerGridHandler.inc.php b/controllers/grid/users/reviewer/ReviewerGridHandler.inc.php
deleted file mode 100644
index 5f060ba3671..00000000000
--- a/controllers/grid/users/reviewer/ReviewerGridHandler.inc.php
+++ /dev/null
@@ -1,20 +0,0 @@
- array('EDITOR_ASSIGN'),
- WORKFLOW_STAGE_ID_EXTERNAL_REVIEW => array('EDITOR_ASSIGN'),
- WORKFLOW_STAGE_ID_EDITING => array('COPYEDIT_REQUEST'),
- WORKFLOW_STAGE_ID_PRODUCTION => array('LAYOUT_REQUEST', 'LAYOUT_COMPLETE', 'INDEX_REQUEST', 'INDEX_COMPLETE', 'EDITOR_ASSIGN')
- );
- }
-
- /**
- * @copydoc PKPStageParticipantNotifyForm::_getMailTemplate()
- */
- protected function _getMailTemplate($submission, $templateKey, $includeSignature = true) {
- return new MonographMailTemplate($submission, $templateKey, null, null, $includeSignature);
- }
-}
-
-
diff --git a/controllers/modals/editorDecision/EditorDecisionHandler.inc.php b/controllers/modals/editorDecision/EditorDecisionHandler.inc.php
deleted file mode 100644
index 14470bfaed6..00000000000
--- a/controllers/modals/editorDecision/EditorDecisionHandler.inc.php
+++ /dev/null
@@ -1,201 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_SUB_EDITOR, ROLE_ID_MANAGER),
- array_merge(array(
- 'internalReview', 'saveInternalReview',
- 'externalReview', 'saveExternalReview',
- 'sendReviews', 'saveSendReviews',
- 'promote', 'savePromote',
- 'revertDecline', 'saveRevertDecline',
- ), $this->_getReviewRoundOps())
- );
- }
-
-
- //
- // Implement template methods from PKPHandler
- //
- /**
- * @see PKPHandler::authorize()
- */
- function authorize($request, &$args, $roleAssignments) {
- $stageId = (int) $request->getUserVar('stageId');
- import('lib.pkp.classes.security.authorization.EditorDecisionAccessPolicy');
- $this->addPolicy(new EditorDecisionAccessPolicy($request, $args, $roleAssignments, 'submissionId', $stageId));
-
- return parent::authorize($request, $args, $roleAssignments);
- }
-
-
- //
- // Public handler actions
- //
- /**
- * Start a new review round
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage
- */
- function saveNewReviewRound($args, $request) {
- // FIXME: this can probably all be managed somewhere.
- $stageId = $this->getAuthorizedContextObject(ASSOC_TYPE_WORKFLOW_STAGE);
- if ($stageId == WORKFLOW_STAGE_ID_INTERNAL_REVIEW) {
- $redirectOp = WORKFLOW_STAGE_PATH_INTERNAL_REVIEW;
- } elseif ($stageId == WORKFLOW_STAGE_ID_EXTERNAL_REVIEW) {
- $redirectOp = WORKFLOW_STAGE_PATH_EXTERNAL_REVIEW;
- } else {
- $redirectOp = null; // Suppress warn
- assert(false);
- }
-
- return $this->_saveEditorDecision($args, $request, 'NewReviewRoundForm', $redirectOp, SUBMISSION_EDITOR_DECISION_NEW_ROUND);
- }
-
- /**
- * Start a new review round
- * @param $args array
- * @param $request PKPRequest
- * @return string Serialized JSON object
- */
- function internalReview($args, $request) {
- return $this->_initiateEditorDecision($args, $request, 'InitiateInternalReviewForm');
- }
-
- /**
- * Start a new review round
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage
- */
- function saveInternalReview($args, $request) {
- assert($this->getAuthorizedContextObject(ASSOC_TYPE_WORKFLOW_STAGE) == WORKFLOW_STAGE_ID_SUBMISSION);
- return $this->_saveEditorDecision(
- $args, $request, 'InitiateInternalReviewForm',
- WORKFLOW_STAGE_PATH_INTERNAL_REVIEW,
- SUBMISSION_EDITOR_DECISION_INTERNAL_REVIEW
- );
- }
-
-
- //
- // Protected helper methods
- //
- /**
- * @param $args array
- * @param $request PKPRequest
- * @return JSONMessage
- */
- protected function _saveGeneralPromote($args, $request) {
- // Redirect to the next workflow page after
- // promoting the submission.
- $decision = (int)$request->getUserVar('decision');
-
- $redirectOp = null;
-
- if ($decision == SUBMISSION_EDITOR_DECISION_ACCEPT) {
- $redirectOp = WORKFLOW_STAGE_PATH_EDITING;
- } elseif ($decision == SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW) {
- $redirectOp = WORKFLOW_STAGE_PATH_EXTERNAL_REVIEW;
- } elseif ($decision == SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION) {
- $redirectOp = WORKFLOW_STAGE_PATH_PRODUCTION;
- }
-
- // Make sure user has access to the workflow stage.
- import('lib.pkp.classes.workflow.WorkflowStageDAO');
- $redirectWorkflowStage = WorkflowStageDAO::getIdFromPath($redirectOp);
- $userAccessibleWorkflowStages = $this->getAuthorizedContextObject(ASSOC_TYPE_ACCESSIBLE_WORKFLOW_STAGES);
- if (!array_key_exists($redirectWorkflowStage, $userAccessibleWorkflowStages)) {
- $redirectOp = null;
- }
-
- return $this->_saveEditorDecision($args, $request, 'PromoteForm', $redirectOp);
- }
-
- /**
- * Get editor decision notification type and level by decision.
- * @param $decision int
- * @return int
- */
- protected function _getNotificationTypeByEditorDecision($decision) {
- switch ($decision) {
- case SUBMISSION_EDITOR_DECISION_INTERNAL_REVIEW:
- return NOTIFICATION_TYPE_EDITOR_DECISION_INTERNAL_REVIEW;
- case SUBMISSION_EDITOR_DECISION_ACCEPT:
- return NOTIFICATION_TYPE_EDITOR_DECISION_ACCEPT;
- case SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW:
- return NOTIFICATION_TYPE_EDITOR_DECISION_EXTERNAL_REVIEW;
- case SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS:
- return NOTIFICATION_TYPE_EDITOR_DECISION_PENDING_REVISIONS;
- case SUBMISSION_EDITOR_DECISION_RESUBMIT:
- return NOTIFICATION_TYPE_EDITOR_DECISION_RESUBMIT;
- case SUBMISSION_EDITOR_DECISION_NEW_ROUND:
- return NOTIFICATION_TYPE_EDITOR_DECISION_NEW_ROUND;
- case SUBMISSION_EDITOR_DECISION_DECLINE:
- case SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE:
- return NOTIFICATION_TYPE_EDITOR_DECISION_DECLINE;
- case SUBMISSION_EDITOR_DECISION_REVERT_DECLINE:
- return NOTIFICATION_TYPE_EDITOR_DECISION_REVERT_DECLINE;
- case SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION:
- return NOTIFICATION_TYPE_EDITOR_DECISION_SEND_TO_PRODUCTION;
- }
- throw new Exception('Unknown editor decision.');
- }
-
- /**
- * Get review-related stage IDs.
- * @return array
- */
- protected function _getReviewStages() {
- return array(WORKFLOW_STAGE_ID_INTERNAL_REVIEW, WORKFLOW_STAGE_ID_EXTERNAL_REVIEW);
- }
-
- /**
- * Get review-related decision notifications.
- */
- protected function _getReviewNotificationTypes() {
- return array(NOTIFICATION_TYPE_PENDING_INTERNAL_REVISIONS, NOTIFICATION_TYPE_PENDING_EXTERNAL_REVISIONS);
- }
-
- /**
- * Get the fully-qualified import name for the given form name.
- * @param $formName Class name for the desired form.
- * @return string
- */
- protected function _resolveEditorDecisionForm($formName) {
- switch($formName) {
- case 'InitiateInternalReviewForm':
- case 'InitiateExternalReviewForm':
- return "controllers.modals.editorDecision.form.$formName";
- default:
- return parent::_resolveEditorDecisionForm($formName);
- }
- }
-}
-
-
diff --git a/controllers/modals/editorDecision/form/InitiateExternalReviewForm.inc.php b/controllers/modals/editorDecision/form/InitiateExternalReviewForm.inc.php
deleted file mode 100644
index 41db2d13985..00000000000
--- a/controllers/modals/editorDecision/form/InitiateExternalReviewForm.inc.php
+++ /dev/null
@@ -1,41 +0,0 @@
-addPolicy(new OmpPublishedSubmissionAccessPolicy($request, $args, $roleAssignments));
- return parent::authorize($request, $args, $roleAssignments);
- }
-
- /**
- * Set the monograph ID
- * @param $monographId int
- */
- function setMonographId($monographId) {
- $this->monographId = $monographId;
- }
-
- /**
- * Get the monograph ID
- * @return int
- */
- function getMonographId() {
- return $this->monographId;
- }
-
- /**
- * Set the current press
- * @param $press Press
- */
- function setPress($press) {
- $this->_press = $press;
- }
-
- /**
- * Get the current press
- * @return Press
- */
- function getPress() {
- return $this->_press;
- }
-
- /**
- * Serve the cover image for a published submission.
- */
- function cover($args, $request) {
- // this function is only used on the book page i.e. for published submissiones
- $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH);
-
- $coverImageUrl = $submission->getCurrentPublication()->getLocalizedCoverImageUrl($submission->getData('contextId'));
- if (!$coverImageUrl) {
- $coverImageUrl = $request->getBaseUrl() . '/templates/images/book-default.png';
- }
-
- // Can't use Request::redirectUrl; FireFox doesn't
- // seem to like it for images.
- header('Location: ' . $coverImageUrl);
- exit;
- }
-
- /**
- * Serve the cover thumbnail for a published submission.
- */
- function thumbnail($args, $request) {
- // use ASSOC_TYPE_MONOGRAPH to set the cover at any workflow stage
- // i.e. also if the monograph has not been published yet
- $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH);
-
- $coverImageThumbnailUrl = $submission->getCurrentPublication()->getLocalizedCoverImageThumbnailUrl($submission->getData('contextId'));
- if (!$coverImageThumbnailUrl) {
- $coverImageThumbnailUrl = $request->getBaseUrl() . '/templates/images/book-default_t.png';
- }
-
- // Can't use Request::redirectUrl; FireFox doesn't
- // seem to like it for images.
- header('Location: ' . $coverImageThumbnailUrl);
- exit;
- }
-}
-
-
diff --git a/controllers/submission/CoverHandler.php b/controllers/submission/CoverHandler.php
new file mode 100644
index 00000000000..b3f56abe2cc
--- /dev/null
+++ b/controllers/submission/CoverHandler.php
@@ -0,0 +1,124 @@
+addPolicy(new OmpPublishedSubmissionAccessPolicy($request, $args, $roleAssignments));
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+
+ /**
+ * Set the monograph ID
+ *
+ * @param int $monographId
+ */
+ public function setMonographId($monographId)
+ {
+ $this->monographId = $monographId;
+ }
+
+ /**
+ * Get the monograph ID
+ *
+ * @return int
+ */
+ public function getMonographId()
+ {
+ return $this->monographId;
+ }
+
+ /**
+ * Set the current press
+ *
+ * @param Press $press
+ */
+ public function setPress($press)
+ {
+ $this->_press = $press;
+ }
+
+ /**
+ * Get the current press
+ *
+ * @return Press
+ */
+ public function getPress()
+ {
+ return $this->_press;
+ }
+
+ /**
+ * Serve the cover image for a published submission.
+ */
+ public function cover($args, $request)
+ {
+ // this function is only used on the book page i.e. for published submissions
+ $submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_MONOGRAPH);
+
+ $coverImageUrl = $submission->getCurrentPublication()->getLocalizedCoverImageUrl($submission->getData('contextId'));
+ if (!$coverImageUrl) {
+ $coverImageUrl = $request->getBaseUrl() . '/templates/images/book-default.png';
+ }
+
+ // Can't use Request::redirectUrl; FireFox doesn't
+ // seem to like it for images.
+ header('Location: ' . $coverImageUrl);
+ exit;
+ }
+
+ /**
+ * Serve the cover thumbnail for a published submission.
+ */
+ public function thumbnail($args, $request)
+ {
+ // use Application::ASSOC_TYPE_MONOGRAPH to set the cover at any workflow stage
+ // i.e. also if the monograph has not been published yet
+ $submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_MONOGRAPH);
+
+ $coverImageThumbnailUrl = $submission->getCurrentPublication()->getLocalizedCoverImageThumbnailUrl($submission->getData('contextId'));
+ if (!$coverImageThumbnailUrl) {
+ $coverImageThumbnailUrl = $request->getBaseUrl() . '/templates/images/book-default_t.png';
+ }
+
+ // Can't use Request::redirectUrl; FireFox doesn't
+ // seem to like it for images.
+ header('Location: ' . $coverImageThumbnailUrl);
+ exit;
+ }
+}
diff --git a/controllers/tab/pubIds/form/PublicIdentifiersForm.inc.php b/controllers/tab/pubIds/form/PublicIdentifiersForm.inc.php
deleted file mode 100644
index e249178acc0..00000000000
--- a/controllers/tab/pubIds/form/PublicIdentifiersForm.inc.php
+++ /dev/null
@@ -1,69 +0,0 @@
-getContext()->getData('enablePublisherId');
- $templateMgr->assign([
- 'enablePublisherId' => (is_a($this->getPubObject(), 'Chapter') && in_array('chapter', $enablePublisherId)) ||
- (is_a($this->getPubObject(), 'Representation') && in_array('representation', $enablePublisherId)) ||
- (is_a($this->getPubObject(), 'SubmissionFile') && in_array('file', $enablePublisherId)),
- ]);
-
- return parent::fetch($request, $template, $display);
- }
-
- /**
- * @copydoc Form::execute()
- */
- public function execute(...$functionArgs) {
- parent::execute(...$functionArgs);
- $pubObject = $this->getPubObject();
- if (is_a($pubObject, 'Chapter')) {
- $chapterDao = DAORegistry::getDAO('ChapterDAO'); /* @var $chapterDao ChapterDAO */
- $chapterDao->updateObject($pubObject);
- }
- }
-
- /**
- * @copydoc PKPPublicIdentifiersForm::getAssocType()
- */
- public function getAssocType($pubObject) {
- if (is_a($pubObject, 'Chapter')) {
- return ASSOC_TYPE_CHAPTER;
- }
- return parent::getAssocType($pubObject);
- }
-
-}
-
-
diff --git a/controllers/tab/pubIds/form/PublicIdentifiersForm.php b/controllers/tab/pubIds/form/PublicIdentifiersForm.php
new file mode 100644
index 00000000000..04ac3ce36be
--- /dev/null
+++ b/controllers/tab/pubIds/form/PublicIdentifiersForm.php
@@ -0,0 +1,68 @@
+getContext()->getData('enablePublisherId');
+ $templateMgr->assign([
+ 'enablePublisherId' => (is_a($this->getPubObject(), 'Chapter') && in_array('chapter', $enablePublisherId)) ||
+ (is_a($this->getPubObject(), 'Representation') && in_array('representation', $enablePublisherId)) ||
+ (is_a($this->getPubObject(), 'SubmissionFile') && in_array('file', $enablePublisherId)),
+ ]);
+
+ return parent::fetch($request, $template, $display);
+ }
+
+ /**
+ * @copydoc Form::execute()
+ */
+ public function execute(...$functionArgs)
+ {
+ parent::execute(...$functionArgs);
+ $pubObject = $this->getPubObject();
+ if (is_a($pubObject, 'Chapter')) {
+ $chapterDao = DAORegistry::getDAO('ChapterDAO'); /** @var ChapterDAO $chapterDao */
+ $chapterDao->updateObject($pubObject);
+ }
+ }
+
+ /**
+ * @copydoc PKPPublicIdentifiersForm::getAssocType()
+ */
+ public function getAssocType($pubObject)
+ {
+ if (is_a($pubObject, 'Chapter')) {
+ return Application::ASSOC_TYPE_CHAPTER;
+ }
+ return parent::getAssocType($pubObject);
+ }
+}
diff --git a/controllers/tab/settings/siteAccessOptions/form/SiteAccessOptionsForm.inc.php b/controllers/tab/settings/siteAccessOptions/form/SiteAccessOptionsForm.inc.php
deleted file mode 100644
index 65da290595d..00000000000
--- a/controllers/tab/settings/siteAccessOptions/form/SiteAccessOptionsForm.inc.php
+++ /dev/null
@@ -1,35 +0,0 @@
- 'bool',
- 'restrictSiteAccess' => 'bool',
- 'restrictMonographAccess' => 'bool',
- );
-
- parent::__construct($settings, 'controllers/tab/settings/siteAccessOptions/form/siteAccessOptionsForm.tpl', $wizardMode);
- }
-
-}
-
-
diff --git a/controllers/tab/workflow/ReviewRoundTabHandler.inc.php b/controllers/tab/workflow/ReviewRoundTabHandler.inc.php
deleted file mode 100644
index 38012199891..00000000000
--- a/controllers/tab/workflow/ReviewRoundTabHandler.inc.php
+++ /dev/null
@@ -1,60 +0,0 @@
-addRoleAssignment(
- array(ROLE_ID_SUB_EDITOR, ROLE_ID_MANAGER, ROLE_ID_ASSISTANT),
- array('internalReviewRound', 'externalReviewRound')
- );
- }
-
-
- //
- // Extended methods from Handler
- //
- /**
- * @see PKPHandler::authorize()
- */
- function authorize($request, &$args, $roleAssignments) {
- $stageId = (int) $request->getUserVar('stageId'); // This is validated in WorkflowStageAccessPolicy.
-
- import('lib.pkp.classes.security.authorization.WorkflowStageAccessPolicy');
- $this->addPolicy(new WorkflowStageAccessPolicy($request, $args, $roleAssignments, 'submissionId', $stageId));
-
- return parent::authorize($request, $args, $roleAssignments);
- }
-
- /**
- * JSON fetch the internal review round info (tab).
- * @param $args array
- * @param $request PKPRequest
- */
- function internalReviewRound($args, $request) {
- return $this->_reviewRound($args, $request);
- }
-}
-
-
diff --git a/controllers/tab/workflow/ReviewRoundTabHandler.php b/controllers/tab/workflow/ReviewRoundTabHandler.php
new file mode 100644
index 00000000000..b1147ba45a2
--- /dev/null
+++ b/controllers/tab/workflow/ReviewRoundTabHandler.php
@@ -0,0 +1,64 @@
+addRoleAssignment(
+ [Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN, Role::ROLE_ID_ASSISTANT],
+ ['internalReviewRound', 'externalReviewRound']
+ );
+ }
+
+
+ //
+ // Extended methods from Handler
+ //
+ /**
+ * @see PKPHandler::authorize()
+ */
+ public function authorize($request, &$args, $roleAssignments)
+ {
+ $stageId = (int) $request->getUserVar('stageId'); // This is validated in WorkflowStageAccessPolicy.
+
+ $this->addPolicy(new WorkflowStageAccessPolicy($request, $args, $roleAssignments, 'submissionId', $stageId));
+
+ return parent::authorize($request, $args, $roleAssignments);
+ }
+
+ /**
+ * JSON fetch the internal review round info (tab).
+ *
+ * @param array $args
+ * @param Request $request
+ */
+ public function internalReviewRound($args, $request)
+ {
+ return $this->_reviewRound($args, $request);
+ }
+}
diff --git a/controllers/tab/workflow/WorkflowTabHandler.inc.php b/controllers/tab/workflow/WorkflowTabHandler.inc.php
deleted file mode 100644
index 9c570c231c7..00000000000
--- a/controllers/tab/workflow/WorkflowTabHandler.inc.php
+++ /dev/null
@@ -1,44 +0,0 @@
- array(
- NOTIFICATION_TYPE_VISIT_CATALOG => array(ASSOC_TYPE_SUBMISSION, $submissionId),
- NOTIFICATION_TYPE_FORMAT_NEEDS_APPROVED_SUBMISSION => array(ASSOC_TYPE_MONOGRAPH, $submissionId),
- ),
- NOTIFICATION_LEVEL_TRIVIAL => array()
- );
- }
-}
-
-
diff --git a/controllers/tab/workflow/WorkflowTabHandler.php b/controllers/tab/workflow/WorkflowTabHandler.php
new file mode 100644
index 00000000000..ea9be47088f
--- /dev/null
+++ b/controllers/tab/workflow/WorkflowTabHandler.php
@@ -0,0 +1,53 @@
+ [
+ Notification::NOTIFICATION_TYPE_VISIT_CATALOG => [Application::ASSOC_TYPE_SUBMISSION, $submissionId],
+ Notification::NOTIFICATION_TYPE_FORMAT_NEEDS_APPROVED_SUBMISSION => [Application::ASSOC_TYPE_MONOGRAPH, $submissionId],
+ ],
+ Notification::NOTIFICATION_LEVEL_TRIVIAL => []
+ ];
+ }
+
+ protected function getNewReviewRoundDecisionType(int $stageId): DecisionType
+ {
+ if ($stageId === WORKFLOW_STAGE_ID_INTERNAL_REVIEW) {
+ return new NewInternalReviewRound();
+ }
+ return new NewExternalReviewRound();
+ }
+}
diff --git a/cypress.config.js b/cypress.config.js
new file mode 100644
index 00000000000..cef382ab446
--- /dev/null
+++ b/cypress.config.js
@@ -0,0 +1,49 @@
+const { defineConfig } = require('cypress')
+
+module.exports = defineConfig({
+ env: {
+ contextTitles: {
+ en: 'Public Knowledge Press',
+ fr_CA: 'Press de la connaissance du public',
+ },
+ contextDescriptions: {
+ en:
+ 'Public Knowledge Press is a publisher dedicated to the subject of public access to science.',
+ fr_CA:
+ "Le Press de Public Knowledge est une presse sur le thème de l'accès du public à la science.",
+ },
+ contextAcronyms: {
+ en: 'PKP',
+ },
+ defaultGenre: 'Book Manuscript',
+ authorUserGroupId: 13,
+ volumeEditorUserGroupId: 14,
+ dataAvailabilityTest: {
+ submission: {
+ title: 'The West and Beyond: New Perspectives on an Imagined Region',
+ authorFamilyName: 'Finkel'
+ },
+ anonymousReviewer: 'gfavio',
+ anonymousDisclosedReviewer: 'alzacharia'
+ }
+ },
+ watchForFileChanges: false,
+ defaultCommandTimeout: 10000,
+ video: false,
+ numTestsKeptInMemory: 0,
+ e2e: {
+ // We've imported your old cypress plugins here.
+ // You may want to clean this up later by importing these.
+ setupNodeEvents(on, config) {
+ return require('./lib/pkp/cypress/plugins/index.js')(on, config)
+ },
+ specPattern: [
+ 'cypress/tests/data/**/*.cy.{js,jsx,ts,tsx}',
+ 'cypress/tests/integration/**/*.cy.{js,jsx,ts,tsx}',
+ 'lib/pkp/cypress/tests/**/*.cy.{js,jsx,ts,tsx}',
+ ],
+ experimentalRunAllSpecs: true,
+ },
+ // Allow cypress to interact with iframes
+ chromeWebSecurity: false
+})
diff --git a/cypress.json b/cypress.json
deleted file mode 100644
index 6030684969b..00000000000
--- a/cypress.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "env": {
- "contextTitles": {
- "en_US": "Public Knowledge Press",
- "fr_CA": "Press de la connaissance du public"
- },
- "contextDescriptions": {
- "en_US": "Public Knowledge Press is a publisher dedicated to the subject of public access to science.",
- "fr_CA": "Le Press de Public Knowledge est une presse sur le thème de l'accès du public à la science."
- },
- "contextAcronyms": {
- "en_US": "PKP"
- },
- "defaultGenre": "Book Manuscript"
- },
- "integrationFolder": "cypress/tests",
- "pluginsFile": "lib/pkp/cypress/plugins/index.js",
- "watchForFileChanges": false,
- "defaultCommandTimeout": 10000,
- "video": false,
- "numTestsKeptInMemory": 0
-}
diff --git a/cypress.travis.env.json b/cypress.travis.env.json
new file mode 100644
index 00000000000..84b449526a5
--- /dev/null
+++ b/cypress.travis.env.json
@@ -0,0 +1,8 @@
+{
+ "baseUrl": "http://localhost",
+ "DBHOST": "localhost",
+ "DBUSERNAME": "omp-ci",
+ "DBPASSWORD": "omp-ci",
+ "DBNAME": "omp-ci",
+ "FILESDIR": "files"
+}
diff --git a/cypress/support/commands.js b/cypress/support/commands.js
index 5485bfc5fec..fd07290c850 100644
--- a/cypress/support/commands.js
+++ b/cypress/support/commands.js
@@ -7,6 +7,7 @@
*
*/
+import Api from '../../lib/pkp/cypress/support/api.js';
import '../../lib/pkp/cypress/support/commands';
Cypress.Commands.add('addToCatalog', function() {
@@ -15,4 +16,68 @@ Cypress.Commands.add('addToCatalog', function() {
cy.get('div.pkpWorkflow__publishModal button:contains("Publish")').click();
});
+Cypress.Commands.add('addChapters', (chapters) => {
+ chapters.forEach(chapter => {
+ cy.waitJQuery();
+ cy.get('a[id^="component-grid-users-chapter-chaptergrid-addChapter-button-"]:visible').click();
+ cy.wait(2000); // Avoid occasional failure due to form init taking time
+
+ // Contributors
+ chapter.contributors.forEach(contributor => {
+ cy.get('form[id="editChapterForm"] label:contains("' + Cypress.$.escapeSelector(contributor) + '")').click();
+ });
+
+ // Title/subtitle
+ cy.get('form[id="editChapterForm"] input[id^="title-en-"]').type(chapter.title, {delay: 0});
+ if ('subtitle' in chapter) {
+ cy.get('form[id="editChapterForm"] input[id^="subtitle-en-"]').type(chapter.subtitle, {delay: 0});
+ }
+ cy.get('div.pkp_modal_panel div:contains("Add Chapter")').click(); // FIXME: Resolve focus problem on title field
+
+ cy.flushNotifications();
+ cy.get('form[id="editChapterForm"] button:contains("Save")').click();
+ cy.get('div:contains("Your changes have been saved.")');
+ cy.waitJQuery();
+
+ // Files
+ if ('files' in chapter) {
+ cy.get('div[id="chaptersGridContainer"] a:contains("' + Cypress.$.escapeSelector(chapter.title) + '")').click();
+ chapter.files.forEach(file => {
+ cy.get('form[id="editChapterForm"] label:contains("' + Cypress.$.escapeSelector(file) + '")').click();
+ //cy.get('form[id="editChapterForm"] label:contains("' + Cypress.$.escapeSelector(chapter.title.substring(0, 40)) + '")').click();
+ });
+ cy.flushNotifications();
+ cy.get('form[id="editChapterForm"] button:contains("Save")').click();
+ cy.get('div:contains("Your changes have been saved.")');
+ }
+
+ cy.get('div[id^="component-grid-users-chapter-chaptergrid-"] a.pkp_linkaction_editChapter:contains("' + Cypress.$.escapeSelector(chapter.title) + '")');
+ });
+});
+
+Cypress.Commands.add('createSubmissionWithApi', (data, csrfToken) => {
+ const api = new Api(Cypress.env('baseUrl') + '/index.php/publicknowledge/api/v1');
+
+ return cy.beginSubmissionWithApi(api, data, csrfToken)
+ .putMetadataWithApi(data, csrfToken)
+ .get('@submissionId').then((submissionId) => {
+ if (typeof data.files === 'undefined' || !data.files.length) {
+ return;
+ }
+ cy.visit('/index.php/publicknowledge/submission?id=' + submissionId);
+ cy.get('button:contains("Continue")').click();
+
+ // Must use the UI to upload files until we upgrade Cypress
+ // to 7.4.0 or higher.
+ // @see https://github.com/cypress-io/cypress/issues/1647
+ cy.uploadSubmissionFiles(data.files);
+
+ })
+ .then(() => {
+ cy.get('.pkpSteps__step__label:contains("Details")').click();
+ })
+ .addSubmissionAuthorsWithApi(api, data, csrfToken)
+ .addChapters(data.chapters);
+});
+
diff --git a/cypress/support/e2e.js b/cypress/support/e2e.js
new file mode 100644
index 00000000000..9a2943b4d4b
--- /dev/null
+++ b/cypress/support/e2e.js
@@ -0,0 +1,23 @@
+// ***********************************************************
+// This example support/index.js is processed and
+// loaded automatically before your test files.
+//
+// This is a great place to put global configuration and
+// behavior that modifies Cypress.
+//
+// You can change the location of this file or turn off
+// automatically serving support files with the
+// 'supportFile' configuration option.
+//
+// You can read more here:
+// https://on.cypress.io/configuration
+// ***********************************************************
+
+// Import commands.js using ES2015 syntax:
+import './commands';
+
+require('cypress-failed-log');
+
+afterEach(function() {
+ cy.runQueueJobs();
+});
diff --git a/cypress/support/index.js b/cypress/support/index.js
deleted file mode 100644
index 966b11b18dd..00000000000
--- a/cypress/support/index.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// ***********************************************************
-// This example support/index.js is processed and
-// loaded automatically before your test files.
-//
-// This is a great place to put global configuration and
-// behavior that modifies Cypress.
-//
-// You can change the location of this file or turn off
-// automatically serving support files with the
-// 'supportFile' configuration option.
-//
-// You can read more here:
-// https://on.cypress.io/configuration
-// ***********************************************************
-
-// Import commands.js using ES2015 syntax:
-import './commands'
-
-import '@foreachbe/cypress-tinymce'
-
-require('cypress-failed-log')
-
-// See https://stackoverflow.com/questions/58657895/is-there-a-reliable-way-to-have-cypress-exit-as-soon-as-a-test-fails/58660504#58660504
-function abortEarly() {
- if (this.currentTest.state === 'failed') {
- return cy.task('shouldSkip', true);
- }
- cy.task('shouldSkip').then(value => {
- if (value) this.skip();
- });
-}
-
-beforeEach(abortEarly);
-afterEach(abortEarly);
-
-before(() => {
- if (Cypress.browser.isHeaded) {
- // Reset the shouldSkip flag at the start of a run, so that it
- // doesn't carry over into subsequent runs.
- // Do this only for headed runs because in headless runs,
- // the `before` hook is executed for each spec file.
- cy.task('resetShouldSkipFlag');
- }
-});
diff --git a/cypress/tests/data/10-ApplicationSetup/10-Installation.cy.js b/cypress/tests/data/10-ApplicationSetup/10-Installation.cy.js
new file mode 100644
index 00000000000..239b93c3bee
--- /dev/null
+++ b/cypress/tests/data/10-ApplicationSetup/10-Installation.cy.js
@@ -0,0 +1,14 @@
+/**
+ * @file cypress/tests/data/10-Installation.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('Data Suite Tests', function() {
+ it('Installs the software', function() {
+ cy.install();
+ })
+})
diff --git a/cypress/tests/data/10-ApplicationSetup/20-CreateContext.cy.js b/cypress/tests/data/10-ApplicationSetup/20-CreateContext.cy.js
new file mode 100644
index 00000000000..69e1279a1a0
--- /dev/null
+++ b/cypress/tests/data/10-ApplicationSetup/20-CreateContext.cy.js
@@ -0,0 +1,136 @@
+/**
+ * @file cypress/tests/data/20-CreateContext.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('Data suite tests', function() {
+ it('Creates a context', function() {
+ cy.login('admin', 'admin');
+
+ // Create a new context
+ cy.get('div[id=contextGridContainer]').find('a').contains('Create').click();
+
+ // Fill in various details
+ cy.wait(2000); // https://github.com/tinymce/tinymce/issues/4355
+ cy.get('div[id=editContext]').find('button').contains(/French/).click();
+ cy.get('input[name="name-fr_CA"]').type(Cypress.env('contextTitles')['fr_CA']);
+ cy.get('button').contains('Save').click()
+ cy.get('div[id=context-name-error-en]').find('span').contains('This field is required.');
+ cy.get('div[id=context-acronym-error-en]').find('span').contains('This field is required.');
+ cy.get('div[id=context-contactName-error]').find('span').contains('This field is required.');
+ cy.get('div[id=context-contactEmail-error]').find('span').contains('This field is required.');
+ cy.get('div[id=context-urlPath-error]').find('span').contains('This field is required.');
+ cy.get('div[id=context-primaryLocale-error]').find('span').contains('This field is required.');
+ cy.get('input[name="name-en"]').type(Cypress.env('contextTitles')['en']);
+ cy.get('input[name=acronym-en]').type('JPK');
+ cy.get('span').contains('Enable this press').siblings('input').check();
+ cy.get('input[name="supportedLocales"][value="en').check();
+ cy.get('input[name="supportedLocales"][value="fr_CA').check();
+ cy.get('input[name="primaryLocale"][value="en').check();
+ cy.get('select[id=context-country-control]').select('Iceland');
+ cy.get('input[name=contactName]').type('Ramiro Vaca', {delay: 0});
+
+ // Test invalid contact email and path character
+ cy.get('input[name=contactEmail').type('rvacamailinator.com', {delay: 0});
+ cy.get('input[name=urlPath]').type('public&-)knowledge');
+ cy.get('button').contains('Save').click()
+ cy.get('div[id=context-urlPath-error]').find('span').contains('The path can only include letters');
+ cy.get('div[id=context-contactEmail-error]').find('span').contains('This is not a valid email address.');
+
+ // Fill up the path information with valid path data
+ cy.get('input[name=urlPath]').clear().type('publicknowledge');
+
+ // Fill up the contact email with valid data
+ cy.get('input[name=contactEmail').clear().type('rvaca@mailinator.com', {delay: 0});
+
+ // Context descriptions
+ cy.setTinyMceContent('context-description-control-en', Cypress.env('contextDescriptions')['en']);
+ cy.setTinyMceContent('context-description-control-fr_CA', Cypress.env('contextDescriptions')['fr_CA']);
+ cy.get('button').contains('Save').click();
+
+ // Wait for it to finish up before moving on
+ cy.contains('Settings Wizard', {timeout: 30000});
+ });
+
+ it('Tests the settings wizard', function() {
+ cy.login('admin', 'admin');
+ cy.get('a').contains('admin').click();
+ cy.get('a').contains('Dashboard').click();
+ cy.get('.app__nav a').contains('Administration').click();
+ cy.get('a').contains('Hosted Presses').click();
+ cy.get('a[class=show_extras]').click();
+ cy.contains('Settings wizard').click();
+
+ cy.get('button[id="appearance-button"]').click();
+ cy.get('#appearance button').contains('Save').click();
+ cy.get('#appearance [role="status"]').contains('Saved');
+
+ cy.get('button[id="languages-button"]').click();
+ cy.get('input[id^=select-cell-fr_CA-submissionLocale]').click();
+ cy.contains('Locale settings saved.');
+
+ cy.get('button[id="indexing-button"]').click();
+ cy.get('input[name="searchDescription-en"]').type(Cypress.env('contextDescriptions')['en']);
+ cy.get('textarea[name="customHeaders-en"]').type('');
+ cy.get('#indexing button').contains('Save').click();
+ cy.get('#indexing [role="status"]').contains('Saved');
+
+ cy.get('label[for="searchIndexing-searchDescription-control-en"] ~ button.tooltipButton').click();
+ cy.get('div').contains('Provide a brief description');
+ cy.get('label[for="searchIndexing-searchDescription-control-en"] ~ button.tooltipButton').click();
+ });
+
+ it('Tests context settings form', function() {
+ cy.login('admin', 'admin');
+ cy.get('a').contains('admin').click();
+ cy.get('a').contains('Dashboard').click();
+ cy.get('.app__nav a').contains('Press').click();
+
+ cy.get('div[id=masthead]').find('button').contains('Save').click();
+ cy.get('#masthead [role="status"]').contains('Saved');
+ });
+
+ it('Tests contact settings form', function() {
+ cy.login('admin', 'admin');
+ cy.get('a').contains('admin').click();
+ cy.get('a').contains('Dashboard').click();
+ cy.get('.app__nav a').contains('Press').click();
+ cy.get('button[id="contact-button"]').click();
+
+ // Submit the form with required fields missing.
+ cy.get('div[id=contact').find('button').contains('Save').click();
+ cy.get('div[id="contact-supportName-error"]').contains('This field is required.');
+ cy.get('div[id="contact-supportEmail-error"]').contains('This field is required.');
+
+ cy.get('textarea[name=mailingAddress]').type("123 456th Street\nBurnaby, British Columbia\nCanada");
+ cy.get('input[name=supportName]').type('Ramiro Vaca');
+
+ // Test invalid emails
+ cy.get('input[name=supportEmail').type('rvacamailinator.com');
+ cy.get('div[id=contact').find('button').contains('Save').click();
+ cy.get('div[id="contact-supportEmail-error"]').contains('This is not a valid email address.');
+
+ cy.get('input[name=supportEmail').clear().type('rvaca@mailinator.com');
+ cy.get('div[id=contact').find('button').contains('Save').click();
+ cy.get('#contact [role="status"]').contains('Saved');
+ });
+
+ it('Tests role settings', function() {
+ cy.login('admin', 'admin', 'publicknowledge');
+ cy.get('a:contains("Users & Roles")').click();
+ cy.get('button').contains('Roles').click();
+
+ // "Edit" link below "Volume editor" role
+ cy.get('tr[id^="component-grid-settings-roles-usergroupgrid-row-"]:contains("Volume editor") > .first_column > .show_extras').click();
+ cy.get('tr[id^="component-grid-settings-roles-usergroupgrid-row-"]:contains("Volume editor") + tr a:contains("Edit")').click();
+
+ // Click the "permit self registration" checkbox
+ cy.get('input#permitSelfRegistration').click();
+ cy.get('form#userGroupForm button:contains("OK")').click();
+ cy.get('div:contains("Your changes have been saved.")');
+ });
+})
diff --git a/cypress/tests/data/10-ApplicationSetup/40-CreateUsers.cy.js b/cypress/tests/data/10-ApplicationSetup/40-CreateUsers.cy.js
new file mode 100644
index 00000000000..4e887f558a7
--- /dev/null
+++ b/cypress/tests/data/10-ApplicationSetup/40-CreateUsers.cy.js
@@ -0,0 +1,168 @@
+/**
+ * @file cypress/tests/data/40-CreateUsers.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('Data suite tests', function() {
+ it('Creates users', function() {
+ cy.login('admin', 'admin');
+ cy.get('a:contains("admin"):visible').click();
+ cy.get('a:contains("Dashboard")').click();
+ cy.get('a:contains("Users & Roles")').click();
+
+ var users = [
+ {
+ 'username': 'rvaca',
+ 'givenName': 'Ramiro',
+ 'familyName': 'Vaca',
+ 'country': 'Mexico',
+ 'affiliation': 'Universidad Nacional Autónoma de México',
+ 'mustChangePassword': true,
+ 'roles': ['Press manager']
+ },
+ {
+ 'username': 'dbarnes',
+ 'givenName': 'Daniel',
+ 'familyName': 'Barnes',
+ 'country': 'Australia',
+ 'affiliation': 'University of Melbourne',
+ 'roles': ['Press editor']
+ },
+ {
+ 'username': 'dbuskins',
+ 'givenName': 'David',
+ 'familyName': 'Buskins',
+ 'country': 'United States',
+ 'affiliation': 'University of Chicago',
+ 'roles': ['Series editor']
+ },
+ {
+ 'username': 'sberardo',
+ 'givenName': 'Stephanie',
+ 'familyName': 'Berardo',
+ 'country': 'Canada',
+ 'affiliation': 'University of Toronto',
+ 'roles': ['Series editor']
+ },
+ {
+ 'username': 'minoue',
+ 'givenName': 'Minoti',
+ 'familyName': 'Inoue',
+ 'country': 'Japan',
+ 'affiliation': 'Kyoto University',
+ 'roles': ['Series editor']
+ },
+ {
+ 'username': 'jjanssen',
+ 'givenName': 'Julie',
+ 'familyName': 'Janssen',
+ 'country': 'Netherlands',
+ 'affiliation': 'Utrecht University',
+ 'roles': ['Internal Reviewer']
+ },
+ {
+ 'username': 'phudson',
+ 'givenName': 'Paul',
+ 'familyName': 'Hudson',
+ 'country': 'Canada',
+ 'affiliation': 'McGill University',
+ 'roles': ['Internal Reviewer']
+ },
+ {
+ 'username': 'amccrae',
+ 'givenName': 'Aisla',
+ 'familyName': 'McCrae',
+ 'country': 'Canada',
+ 'affiliation': 'University of Manitoba',
+ 'roles': ['Internal Reviewer']
+ },
+ {
+ 'username': 'agallego',
+ 'givenName': 'Adela',
+ 'familyName': 'Gallego',
+ 'country': 'United States',
+ 'affiliation': 'State University of New York',
+ 'roles': ['External Reviewer']
+ },
+ {
+ 'username': 'alzacharia',
+ 'givenName': 'Al',
+ 'familyName': 'Zacharia',
+ 'country': 'Ghana',
+ 'affiliation': 'KNUST',
+ 'roles': ['External Reviewer']
+ },
+ {
+ 'username': 'gfavio',
+ 'givenName': 'Gonzalo',
+ 'familyName': 'Favio',
+ 'country': 'Spain',
+ 'affiliation': 'Madrid',
+ 'roles': ['External Reviewer']
+ },
+ {
+ 'username': 'mfritz',
+ 'givenName': 'Maria',
+ 'familyName': 'Fritz',
+ 'country': 'Belgium',
+ 'affiliation': 'Ghent University',
+ 'roles': ['Copyeditor']
+ },
+ {
+ 'username': 'svogt',
+ 'givenName': 'Sarah',
+ 'familyName': 'Vogt',
+ 'country': 'Chile',
+ 'affiliation': 'Universidad de Chile',
+ 'roles': ['Copyeditor']
+ },
+ {
+ 'username': 'gcox',
+ 'givenName': 'Graham',
+ 'familyName': 'Cox',
+ 'country': 'United States',
+ 'affiliation': 'Duke University',
+ 'roles': ['Layout Editor']
+ },
+ {
+ 'username': 'shellier',
+ 'givenName': 'Stephen',
+ 'familyName': 'Hellier',
+ 'country': 'South Africa',
+ 'affiliation': 'University of Cape Town',
+ 'roles': ['Layout Editor']
+ },
+ {
+ 'username': 'cturner',
+ 'givenName': 'Catherine',
+ 'familyName': 'Turner',
+ 'country': 'United Kingdom',
+ 'affiliation': 'Imperial College London',
+ 'roles': ['Proofreader']
+ },
+ {
+ 'username': 'skumar',
+ 'givenName': 'Sabine',
+ 'familyName': 'Kumar',
+ 'country': 'Singapore',
+ 'affiliation': 'National University of Singapore',
+ 'roles': ['Proofreader']
+ }
+ ]
+ users.forEach(user => {
+ cy.createUser(user);
+ });
+ cy.logout();
+ var user = users[0];
+ if (!('email' in user)) user.email = user.username + '@mailinator.com';
+ if (!('password' in user)) user.password = user.username + user.username;
+
+ cy.login(user.username);
+ cy.resetPassword(user.username, user.password);
+ cy.logout();
+ });
+})
diff --git a/cypress/tests/data/10-ApplicationSetup/50-CreateCategories.cy.js b/cypress/tests/data/10-ApplicationSetup/50-CreateCategories.cy.js
new file mode 100644
index 00000000000..9bfe5a63775
--- /dev/null
+++ b/cypress/tests/data/10-ApplicationSetup/50-CreateCategories.cy.js
@@ -0,0 +1,70 @@
+/**
+ * @file cypress/tests/data/50-CreateSections.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('Data suite tests', function() {
+ it('Creates/configures categories', function() {
+ cy.login('admin', 'admin');
+ cy.get('a').contains('admin').click();
+ cy.get('a').contains('Dashboard').click();
+ cy.get('.app__nav a').contains('Press').click();
+ cy.get('button[id="categories-button"]').click();
+
+ // Create an Applied Science category
+ cy.get('a[id^=component-grid-settings-category-categorycategorygrid-addCategory-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="name-en-"]').type('Applied Science', {delay: 0});
+ cy.get('input[id^="path-"]').type('applied-science', {delay: 0});
+ cy.get('form[id=categoryForm]').contains('OK').click();
+ cy.get('tr[id^="component-grid-settings-category-categorycategorygrid-category-"] a:contains("Applied Science")');
+
+ // Create a Computer Science subcategory
+ cy.get('a[id^=component-grid-settings-category-categorycategorygrid-addCategory-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="name-en-"]').type('Computer Science', {delay: 0});
+ cy.get('select[id="parentId"]').select('Applied Science');
+ cy.get('input[id^="path-"]').type('comp-sci', {delay: 0});
+ cy.get('form[id=categoryForm]').contains('OK').click();
+ cy.get('tr[id^="component-grid-settings-category-categorycategorygrid-category-"] span:contains("Computer Science")');
+
+ // Create an Engineering subcategory
+ cy.get('a[id^=component-grid-settings-category-categorycategorygrid-addCategory-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="name-en-"]').type('Engineering', {delay: 0});
+ cy.get('select[id="parentId"]').select('Applied Science');
+ cy.get('input[id^="path-"]').type('eng', {delay: 0});
+ cy.get('form[id=categoryForm]').contains('OK').click();
+ cy.get('tr[id^="component-grid-settings-category-categorycategorygrid-category-"] span:contains("Engineering")');
+
+ // Create a Social Sciences category
+ cy.get('a[id^=component-grid-settings-category-categorycategorygrid-addCategory-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="name-en-"]').type('Social Sciences', {delay: 0});
+ cy.get('input[id^="path-"]').type('social-sciences', {delay: 0});
+ cy.get('form[id=categoryForm]').contains('OK').click();
+ cy.get('tr[id^="component-grid-settings-category-categorycategorygrid-category-"] a:contains("Social Sciences")');
+
+ // Create a Sociology subcategory
+ cy.get('a[id^=component-grid-settings-category-categorycategorygrid-addCategory-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="name-en-"]').type('Sociology', {delay: 0});
+ cy.get('select[id="parentId"]').select('Social Sciences');
+ cy.get('input[id^="path-"]').type('sociology', {delay: 0});
+ cy.get('form[id=categoryForm]').contains('OK').click();
+ cy.get('tr[id^="component-grid-settings-category-categorycategorygrid-category-"] span:contains("Sociology")');
+
+ // Create a Anthropology subcategory
+ cy.get('a[id^=component-grid-settings-category-categorycategorygrid-addCategory-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="name-en-"]').type('Anthropology', {delay: 0});
+ cy.get('select[id="parentId"]').select('Social Sciences');
+ cy.get('input[id^="path-"]').type('anthropology', {delay: 0});
+ cy.get('form[id=categoryForm]').contains('OK').click();
+ cy.get('tr[id^="component-grid-settings-category-categorycategorygrid-category-"] span:contains("Anthropology")');
+ });
+})
diff --git a/cypress/tests/data/10-ApplicationSetup/50-CreateSeries.cy.js b/cypress/tests/data/10-ApplicationSetup/50-CreateSeries.cy.js
new file mode 100644
index 00000000000..ce05c637767
--- /dev/null
+++ b/cypress/tests/data/10-ApplicationSetup/50-CreateSeries.cy.js
@@ -0,0 +1,58 @@
+/**
+ * @file cypress/tests/data/50-CreateSeries.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('Data suite tests', function() {
+ it('Creates/configures series', function() {
+ cy.login('admin', 'admin');
+ cy.get('a').contains('admin').click();
+ cy.get('a').contains('Dashboard').click();
+ cy.get('.app__nav a').contains('Press').click();
+ cy.get('button[id="sections-button"]').click();
+
+ // Create a new "Library & Information Studies" series
+ cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
+ cy.wait(500); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="title-en-"]').type('Library & Information Studies');
+ cy.get('input[id^="path"]').type('lis');
+ cy.get('label').contains('David Buskins').click();
+ cy.get('form[id=seriesForm]').contains('Save').click();
+
+ // Create a new "Political Economy" series
+ cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="title-en-"]').type('Political Economy');
+ cy.get('input[id^="path"]').type('pe');
+ cy.get('label').contains('Stephanie Berardo').click();
+ cy.get('form[id=seriesForm]').contains('Save').click();
+
+ // Create a new "History" series
+ cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="title-en-"]').type('History');
+ cy.get('label').contains('Daniel Barnes').click();
+ cy.get('input[id^="path"]').type('his');
+ cy.get('form[id=seriesForm]').contains('Save').click();
+
+ // Create a new "Education" series
+ cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="title-en-"]').type('Education');
+ cy.get('label').contains('Daniel Barnes').click();
+ cy.get('input[id^="path"]').type('ed');
+ cy.get('form[id=seriesForm]').contains('Save').click();
+
+ // Create a new "Psychology" series
+ cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="title-en-"]').type('Psychology');
+ cy.get('label').contains('Daniel Barnes').click();
+ cy.get('input[id^="path"]').type('psy');
+ cy.get('form[id=seriesForm]').contains('Save').click();
+ });
+})
diff --git a/cypress/tests/data/10-Installation.spec.js b/cypress/tests/data/10-Installation.spec.js
deleted file mode 100644
index 1176e6f4aa5..00000000000
--- a/cypress/tests/data/10-Installation.spec.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * @file cypress/tests/data/10-Installation.spec.js
- *
- * 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.
- *
- */
-
-describe('Data Suite Tests', function() {
- it('Installs the software', function() {
- cy.install();
- })
-})
diff --git a/cypress/tests/data/20-CreateContext.spec.js b/cypress/tests/data/20-CreateContext.spec.js
deleted file mode 100644
index 0b6524b7acf..00000000000
--- a/cypress/tests/data/20-CreateContext.spec.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * @file cypress/tests/data/20-CreateContext.spec.js
- *
- * 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.
- *
- */
-
-describe('Data suite tests', function() {
- it('Creates a context', function() {
- cy.login('admin', 'admin');
-
- // Create a new context
- cy.get('div[id=contextGridContainer]').find('a').contains('Create').click();
-
- // Fill in various details
- cy.wait(2000); // https://github.com/tinymce/tinymce/issues/4355
- cy.get('div[id=editContext]').find('button[label="Français (Canada)"]').click();
- cy.get('input[name="name-fr_CA"]').type(Cypress.env('contextTitles')['fr_CA']);
- cy.get('button').contains('Save').click()
- cy.get('div[id=context-name-error-en_US]').find('span').contains('This field is required.');
- cy.get('div[id=context-acronym-error-en_US]').find('span').contains('This field is required.');
- cy.get('div[id=context-urlPath-error]').find('span').contains('This field is required.');
- cy.get('div[id=context-primaryLocale-error]').find('span').contains('This field is required.');
- cy.get('input[name="name-en_US"]').type(Cypress.env('contextTitles')['en_US']);
- cy.get('input[name=acronym-en_US]').type('JPK');
- cy.get('span').contains('Enable this press').siblings('input').check();
- cy.get('input[name="supportedLocales"][value="en_US').check();
- cy.get('input[name="supportedLocales"][value="fr_CA').check();
- cy.get('input[name="primaryLocale"][value="en_US').check();
-
- // Test invalid path characters
- cy.get('input[name=urlPath]').type('public&-)knowledge');
- cy.get('button').contains('Save').click()
- cy.get('div[id=context-urlPath-error]').find('span').contains('The path can only include letters');
- cy.get('input[name=urlPath]').clear().type('publicknowledge');
-
- // Context descriptions
- cy.setTinyMceContent('context-description-control-en_US', Cypress.env('contextDescriptions')['en_US']);
- cy.setTinyMceContent('context-description-control-fr_CA', Cypress.env('contextDescriptions')['fr_CA']);
- cy.get('button').contains('Save').click();
-
- // Wait for it to finish up before moving on
- cy.contains('Settings Wizard', {timeout: 30000});
- });
-
- it('Tests the settings wizard', function() {
- cy.login('admin', 'admin');
- cy.get('a').contains('admin').click();
- cy.get('a').contains('Dashboard').click();
- cy.get('.app__nav a').contains('Administration').click();
- cy.get('a').contains('Hosted Presses').click();
- cy.get('a[class=show_extras]').click();
- cy.contains('Settings wizard').click();
-
- cy.get('button[id="appearance-button"]').click();
- cy.get('#appearance button').contains('Save').click();
- cy.get('#appearance [role="status"]').contains('Saved');
-
- cy.get('button[id="languages-button"]').click();
- cy.get('input[id^=select-cell-fr_CA-submissionLocale]').click();
- cy.contains('Locale settings saved.');
-
- cy.get('button[id="indexing-button"]').click();
- cy.get('input[name="searchDescription-en_US"]').type(Cypress.env('contextDescriptions')['en_US']);
- cy.get('textarea[name="customHeaders-en_US"]').type('');
- cy.get('#indexing button').contains('Save').click();
- cy.get('#indexing [role="status"]').contains('Saved');
-
- cy.get('label[for="searchIndexing-searchDescription-control-en_US"] ~ button.tooltipButton').click();
- cy.get('div').contains('Provide a brief description');
- cy.get('label[for="searchIndexing-searchDescription-control-en_US"] ~ button.tooltipButton').click();
- });
-
- it('Tests context settings form', function() {
- cy.login('admin', 'admin');
- cy.get('a').contains('admin').click();
- cy.get('a').contains('Dashboard').click();
- cy.get('.app__nav a').contains('Press').click();
-
- cy.get('div[id=masthead]').find('button').contains('Save').click();
- cy.get('#masthead [role="status"]').contains('Saved');
- });
-
- it('Tests contact settings form', function() {
- cy.login('admin', 'admin');
- cy.get('a').contains('admin').click();
- cy.get('a').contains('Dashboard').click();
- cy.get('.app__nav a').contains('Press').click();
- cy.get('button[id="contact-button"]').click();
-
- // Submit the form with required fields missing.
- cy.get('div[id=contact').find('button').contains('Save').click();
- cy.get('div[id="contact-contactName-error"]').contains('This field is required.');
- cy.get('div[id="contact-contactEmail-error"]').contains('This field is required.');
- cy.get('div[id="contact-supportName-error"]').contains('This field is required.');
- cy.get('div[id="contact-supportEmail-error"]').contains('This field is required.');
-
- cy.get('input[name=contactName]').type('Ramiro Vaca');
- cy.get('textarea[name=mailingAddress]').type("123 456th Street\nBurnaby, British Columbia\nCanada");
- cy.get('input[name=supportName]').type('Ramiro Vaca');
-
- // Test invalid emails
- cy.get('input[name=contactEmail').type('rvacamailinator.com');
- cy.get('input[name=supportEmail').type('rvacamailinator.com');
- cy.get('div[id=contact').find('button').contains('Save').click();
- cy.get('div[id="contact-contactEmail-error"]').contains('This is not a valid email address.');
- cy.get('div[id="contact-supportEmail-error"]').contains('This is not a valid email address.');
-
- cy.get('input[name=contactEmail').clear().type('rvaca@mailinator.com');
- cy.get('input[name=supportEmail').clear().type('rvaca@mailinator.com');
- cy.get('div[id=contact').find('button').contains('Save').click();
- cy.get('#contact [role="status"]').contains('Saved');
- });
-
- it('Tests role settings', function() {
- cy.login('admin', 'admin', 'publicknowledge');
- cy.get('a:contains("Users & Roles")').click();
- cy.get('button').contains('Roles').click();
-
- // "Edit" link below "Volume editor" role
- cy.get('tr[id^="component-grid-settings-roles-usergroupgrid-row-"]:contains("Volume editor") > .first_column > .show_extras').click();
- cy.get('tr[id^="component-grid-settings-roles-usergroupgrid-row-"]:contains("Volume editor") + tr a:contains("Edit")').click();
-
- // Click the "permit self registration" checkbox
- cy.get('input#permitSelfRegistration').click();
- cy.get('form#userGroupForm button:contains("OK")').click();
- cy.get('div:contains("Your changes have been saved.")');
- });
-})
diff --git a/cypress/tests/data/40-CreateUsers.spec.js b/cypress/tests/data/40-CreateUsers.spec.js
deleted file mode 100644
index d9f18888a57..00000000000
--- a/cypress/tests/data/40-CreateUsers.spec.js
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- * @file cypress/tests/data/40-CreateUsers.spec.js
- *
- * 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.
- *
- */
-
-describe('Data suite tests', function() {
- it('Creates users', function() {
- cy.login('admin', 'admin');
- cy.get('a:contains("admin"):visible').click();
- cy.get('a:contains("Dashboard")').click();
- cy.get('a:contains("Users & Roles")').click();
-
- var users = [
- {
- 'username': 'rvaca',
- 'givenName': 'Ramiro',
- 'familyName': 'Vaca',
- 'country': 'Mexico',
- 'affiliation': 'Universidad Nacional Autónoma de México',
- 'mustChangePassword': true,
- 'roles': ['Press manager']
- },
- {
- 'username': 'dbarnes',
- 'givenName': 'Daniel',
- 'familyName': 'Barnes',
- 'country': 'Australia',
- 'affiliation': 'University of Melbourne',
- 'roles': ['Press editor']
- },
- {
- 'username': 'dbuskins',
- 'givenName': 'David',
- 'familyName': 'Buskins',
- 'country': 'United States',
- 'affiliation': 'University of Chicago',
- 'roles': ['Series editor']
- },
- {
- 'username': 'sberardo',
- 'givenName': 'Stephanie',
- 'familyName': 'Berardo',
- 'country': 'Canada',
- 'affiliation': 'University of Toronto',
- 'roles': ['Series editor']
- },
- {
- 'username': 'minoue',
- 'givenName': 'Minoti',
- 'familyName': 'Inoue',
- 'country': 'Japan',
- 'affiliation': 'Kyoto University',
- 'roles': ['Series editor']
- },
- {
- 'username': 'jjanssen',
- 'givenName': 'Julie',
- 'familyName': 'Janssen',
- 'country': 'Netherlands',
- 'affiliation': 'Utrecht University',
- 'roles': ['Internal Reviewer']
- },
- {
- 'username': 'phudson',
- 'givenName': 'Paul',
- 'familyName': 'Hudson',
- 'country': 'Canada',
- 'affiliation': 'McGill University',
- 'roles': ['Internal Reviewer']
- },
- {
- 'username': 'amccrae',
- 'givenName': 'Aisla',
- 'familyName': 'McCrae',
- 'country': 'Canada',
- 'affiliation': 'University of Manitoba',
- 'roles': ['Internal Reviewer']
- },
- {
- 'username': 'agallego',
- 'givenName': 'Adela',
- 'familyName': 'Gallego',
- 'country': 'United States',
- 'affiliation': 'State University of New York',
- 'roles': ['External Reviewer']
- },
- {
- 'username': 'alzacharia',
- 'givenName': 'Al',
- 'familyName': 'Zacharia',
- 'country': 'Ghana',
- 'affiliation': 'KNUST',
- 'roles': ['External Reviewer']
- },
- {
- 'username': 'gfavio',
- 'givenName': 'Gonzalo',
- 'familyName': 'Favio',
- 'country': 'Spain',
- 'affiliation': 'Madrid',
- 'roles': ['External Reviewer']
- },
- {
- 'username': 'mfritz',
- 'givenName': 'Maria',
- 'familyName': 'Fritz',
- 'country': 'Belgium',
- 'affiliation': 'Ghent University',
- 'roles': ['Copyeditor']
- },
- {
- 'username': 'svogt',
- 'givenName': 'Sarah',
- 'familyName': 'Vogt',
- 'country': 'Chile',
- 'affiliation': 'Universidad de Chile',
- 'roles': ['Copyeditor']
- },
- {
- 'username': 'gcox',
- 'givenName': 'Graham',
- 'familyName': 'Cox',
- 'country': 'United States',
- 'affiliation': 'Duke University',
- 'roles': ['Layout Editor']
- },
- {
- 'username': 'shellier',
- 'givenName': 'Stephen',
- 'familyName': 'Hellier',
- 'country': 'South Africa',
- 'affiliation': 'University of Cape Town',
- 'roles': ['Layout Editor']
- },
- {
- 'username': 'cturner',
- 'givenName': 'Catherine',
- 'familyName': 'Turner',
- 'country': 'United Kingdom',
- 'affiliation': 'Imperial College London',
- 'roles': ['Proofreader']
- },
- {
- 'username': 'skumar',
- 'givenName': 'Sabine',
- 'familyName': 'Kumar',
- 'country': 'Singapore',
- 'affiliation': 'National University of Singapore',
- 'roles': ['Proofreader']
- }
- ]
- users.forEach(user => {
- cy.createUser(user);
- });
- cy.logout();
- var user = users[0];
- if (!('email' in user)) user.email = user.username + '@mailinator.com';
- if (!('password' in user)) user.password = user.username + user.username;
-
- cy.login(user.username);
- cy.resetPassword(user.username, user.password);
- cy.logout();
- });
-})
diff --git a/cypress/tests/data/50-CreateSeries.spec.js b/cypress/tests/data/50-CreateSeries.spec.js
deleted file mode 100644
index dc1da210e5f..00000000000
--- a/cypress/tests/data/50-CreateSeries.spec.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * @file cypress/tests/data/50-CreateSeries.spec.js
- *
- * 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.
- *
- */
-
-describe('Data suite tests', function() {
- it('Creates/configures series', function() {
- cy.login('admin', 'admin');
- cy.get('a').contains('admin').click();
- cy.get('a').contains('Dashboard').click();
- cy.get('.app__nav a').contains('Press').click();
- cy.get('button[id="sections-button"]').click();
-
- // Create a new "Library & Information Studies" series
- cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
- cy.wait(500); // Avoid occasional failure due to form init taking time
- cy.get('input[id^="title-en_US-"]').type('Library & Information Studies');
- cy.get('input[id^="path"]').type('lis');
- cy.get('label').contains('David Buskins').click();
- cy.get('form[id=seriesForm]').contains('Save').click();
-
- // Create a new "Political Economy" series
- cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
- cy.wait(1000); // Avoid occasional failure due to form init taking time
- cy.get('input[id^="title-en_US-"]').type('Political Economy');
- cy.get('input[id^="path"]').type('pe');
- cy.get('label').contains('Stephanie Berardo').click();
- cy.get('form[id=seriesForm]').contains('Save').click();
-
- // Create a new "History" series
- cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
- cy.wait(1000); // Avoid occasional failure due to form init taking time
- cy.get('input[id^="title-en_US-"]').type('History');
- cy.get('input[id^="path"]').type('his');
- cy.get('form[id=seriesForm]').contains('Save').click();
-
- // Create a new "Education" series
- cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
- cy.wait(1000); // Avoid occasional failure due to form init taking time
- cy.get('input[id^="title-en_US-"]').type('Education');
- cy.get('input[id^="path"]').type('ed');
- cy.get('form[id=seriesForm]').contains('Save').click();
-
- // Create a new "Psychology" series
- cy.get('a[id^=component-grid-settings-series-seriesgrid-addSeries-button-]').click();
- cy.wait(1000); // Avoid occasional failure due to form init taking time
- cy.get('input[id^="title-en_US-"]').type('Psychology');
- cy.get('input[id^="path"]').type('psy');
- cy.get('form[id=seriesForm]').contains('Save').click();
- });
-})
diff --git a/cypress/tests/data/60-content/AclarkSubmission.cy.js b/cypress/tests/data/60-content/AclarkSubmission.cy.js
new file mode 100644
index 00000000000..1cced439f87
--- /dev/null
+++ b/cypress/tests/data/60-content/AclarkSubmission.cy.js
@@ -0,0 +1,98 @@
+/**
+ * @file cypress/tests/data/60-content/AclarkSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'The ABCs of Human Survival: A Paradigm for Global Citizenship';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ abstract: 'The ABCs of Human Survival examines the effect of militant nationalism and the lawlessness of powerful states on the well-being of individuals and local communities―and the essential role of global citizenship within that dynamic. Based on the analysis of world events, Dr. Arthur Clark presents militant nationalism as a pathological pattern of thinking that threatens our security, while emphasizing effective democracy and international law as indispensable frameworks for human protection.',
+ shortAuthorString: 'Clark',
+ authorNames: ['Arthur Clark'],
+ seriesId: 1,
+ assignedAuthorNames: ['Arthur Clark'],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ }
+ ],
+ chapters: [
+ {
+ 'title': 'Choosing the Future',
+ 'contributors': ['Arthur Clark'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Axioms',
+ 'contributors': ['Arthur Clark'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Paradigm Shift',
+ 'contributors': ['Arthur Clark'],
+ files: ['chapter3.pdf']
+ }
+ ],
+ workType: 'monograph'
+ };
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'aclark',
+ 'givenName': 'Arthur',
+ 'familyName': 'Clark',
+ 'affiliation': 'University of Calgary',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Clark');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', ['Arthur Clark'], ['chapter1.pdf', 'chapter2.pdf', 'chapter3.pdf']);
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Gonzalo Favio');
+ cy.clickDecision('Accept Submission');
+ cy.recordDecisionAcceptSubmission(['Arthur Clark'], [], []);
+ cy.isActiveStageTab('Copyediting');
+ cy.assignParticipant('Copyeditor', 'Sarah Vogt');
+ });
+});
diff --git a/cypress/tests/data/60-content/AclarkSubmission.spec.js b/cypress/tests/data/60-content/AclarkSubmission.spec.js
deleted file mode 100644
index edb89621dfe..00000000000
--- a/cypress/tests/data/60-content/AclarkSubmission.spec.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/AclarkSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'aclark',
- 'givenName': 'Arthur',
- 'familyName': 'Clark',
- 'affiliation': 'University of Calgary',
- 'country': 'Canada'
- });
-
- var title = 'The ABCs of Human Survival: A Paradigm for Global Citizenship';
- cy.createSubmission({
- 'type': 'monograph',
- 'title': title,
- 'abstract': 'The ABCs of Human Survival examines the effect of militant nationalism and the lawlessness of powerful states on the well-being of individuals and local communities―and the essential role of global citizenship within that dynamic. Based on the analysis of world events, Dr. Arthur Clark presents militant nationalism as a pathological pattern of thinking that threatens our security, while emphasizing effective democracy and international law as indispensable frameworks for human protection.',
- 'submitterRole': 'Author',
- 'chapters': [
- {
- 'title': 'Choosing the Future',
- 'contributors': ['Arthur Clark']
- },
- {
- 'title': 'Axioms',
- 'contributors': ['Arthur Clark']
- },
- {
- 'title': 'Paradigm Shift',
- 'contributors': ['Arthur Clark']
- }
- ],
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Clark');
- cy.sendToReview('External');
- cy.assignReviewer('Gonzalo Favio');
- cy.recordEditorialDecision('Accept Submission');
- cy.get('li.ui-state-active a:contains("Copyediting")');
- cy.assignParticipant('Copyeditor', 'Sarah Vogt');
- });
-});
diff --git a/cypress/tests/data/60-content/AfinkelSubmission.cy.js b/cypress/tests/data/60-content/AfinkelSubmission.cy.js
new file mode 100644
index 00000000000..076aabab016
--- /dev/null
+++ b/cypress/tests/data/60-content/AfinkelSubmission.cy.js
@@ -0,0 +1,341 @@
+/**
+ * @file cypress/tests/data/60-content/AfinkelSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ submission = {
+ type: 'editedVolume',
+ title: 'The West and Beyond: New Perspectives on an Imagined Region',
+ abstract: 'The West and Beyond explores the state of Western Canadian history, showcasing the research interests of a new generation of scholars while charting new directions for the future and stimulating further interrogation of our past. This dynamic collection encourages dialogue among generations of historians of the West, and among practitioners of diverse approaches to the past. It also reflects a broad range of disciplinary and professional boundaries, offering new ways to understand the West.',
+ shortAuthorString: 'Finkel, et al.',
+ authorNames: ['Alvin Finkel', 'Sarah Carter', 'Peter Fortna', 'Gerald Friesen', 'Lyle Dick', 'Winona Wheeler', 'Matt Dyce', 'James Opp'],
+ assignedAuthorNames: ['Alvin Finkel'],
+ submitterRole: 'Volume editor',
+ authors: [
+ {
+ 'givenName': 'Sarah',
+ 'familyName': 'Carter',
+ 'country': 'Canada',
+ // 'affiliation': '',
+ 'email': 'scarter@mailinator.com',
+ 'role': 'Volume editor',
+ },
+ {
+ 'givenName': 'Peter',
+ 'familyName': 'Fortna',
+ 'country': 'Canada',
+ // 'affiliation': '',
+ 'email': 'pfortna@mailinator.com',
+ 'role': 'Volume editor',
+ },
+ {
+ 'givenName': 'Gerald',
+ 'familyName': 'Friesen',
+ 'country': 'Canada',
+ // 'affiliation': '',
+ 'email': 'gfriesen@mailinator.com',
+ 'role': 'Chapter Author',
+ },
+ {
+ 'givenName': 'Lyle',
+ 'familyName': 'Dick',
+ 'country': 'Canada',
+ // 'affiliation': '',
+ 'email': 'ldick@mailinator.com',
+ 'role': 'Chapter Author',
+ },
+ {
+ 'givenName': 'Winona',
+ 'familyName': 'Wheeler',
+ 'country': 'Canada',
+ // 'affiliation': '',
+ 'email': 'wwheeler@mailinator.com',
+ 'role': 'Chapter Author',
+ },
+ {
+ 'givenName': 'Matt',
+ 'familyName': 'Dyce',
+ 'country': 'Canada',
+ // 'affiliation': '',
+ 'email': 'mdyce@mailinator.com',
+ 'role': 'Chapter Author',
+ },
+ {
+ 'givenName': 'James',
+ 'familyName': 'Opp',
+ 'country': 'Canada',
+ // 'affiliation': '',
+ 'email': 'jopp@mailinator.com',
+ 'role': 'Chapter Author',
+ }
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter4.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ }
+ ],
+ chapters: [
+ {
+ 'title': 'Critical History in Western Canada 1900–2000',
+ 'contributors': ['Gerald Friesen'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Vernacular Currents in Western Canadian Historiography: The Passion and Prose of Katherine Hughes, F.G. Roe, and Roy Ito',
+ 'contributors': ['Lyle Dick'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Cree Intellectual Traditions in History',
+ 'contributors': ['Winona Wheeler'],
+ files: ['chapter3.pdf']
+ },
+ {
+ 'title': 'Visualizing Space, Race, and History in the North: Photographic Narratives of the Athabasca-Mackenzie River Basin',
+ 'contributors': ['Matt Dyce', 'James Opp'],
+ files: ['chapter4.pdf']
+ }
+ ]
+ };
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'afinkel',
+ 'givenName': 'Alvin',
+ 'familyName': 'Finkel',
+ 'affiliation': 'Athabasca University',
+ 'country': 'Canada'
+ });
+
+ cy.contains('Make a New Submission').click();
+
+ // All required fields in the start submission form
+ cy.contains('Begin Submission').click();
+ cy.get('#startSubmission-title-error').contains('This field is required.');
+ cy.get('#startSubmission-locale-error').contains('This field is required.');
+ cy.get('#startSubmission-submissionRequirements-error').contains('This field is required.');
+ cy.get('#startSubmission-privacyConsent-error').contains('This field is required.');
+ // cy.get('input[name="title"]').type(submission.title, {delay: 0});
+ cy.setTinyMceContent('startSubmission-title-control', submission.title);
+ cy.get('span:contains("Edited Volume: Authors are associated with their own chapter.")').click();
+ cy.get('label:contains("English")').click();
+ cy.get('input[name="submissionRequirements"]').check();
+ cy.get('input[name="privacyConsent"]').check();
+ cy.contains('Begin Submission').click();
+
+ // The submission wizard has loaded
+ cy.contains('Make a Submission: Details');
+ cy.get('.submissionWizard__submissionDetails').contains('Finkel');
+ cy.get('.submissionWizard__submissionDetails').contains(submission.title);
+ cy.contains('Submitting an Edited Volume in English');
+ cy.get('.pkpSteps__step__label--current').contains('Details');
+ cy.get('.pkpSteps__step__label').contains('Upload Files');
+ cy.get('.pkpSteps__step__label').contains('Contributors');
+ cy.get('.pkpSteps__step__label').contains('For the Editors');
+ cy.get('.pkpSteps__step__label').contains('Review');
+
+ // Save the submission id for later tests
+ cy.location('search')
+ .then(search => {
+ submission.id = parseInt(search.split('=')[1]);
+ });
+
+ // Enter details
+ cy.get('.pkpSteps__step__label--current').contains('Details');
+ cy.get('h2').contains('Submission Details');
+ cy.setTinyMceContent('titleAbstract-abstract-control-en', submission.abstract);
+ cy.get('#titleAbstract-title-control-en').click({force: true}); // Ensure blur event is fired
+
+ cy.get('.submissionWizard__footer button').contains('Continue').click();
+
+ // Upload files and set file genres
+ cy.contains('Make a Submission: Upload Files');
+ cy.get('h2').contains('Upload Files');
+ cy.get('h2').contains('Files');
+ cy.uploadSubmissionFiles(submission.files);
+
+ // Delete a file
+ cy.uploadSubmissionFiles([{
+ 'file': 'dummy.pdf',
+ 'fileName': 'delete-this-file.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ }]);
+ cy.get('.listPanel__item:contains("delete-this-file.pdf")').find('button').contains('Remove').click();
+ cy.get('.modal__panel:contains("Are you sure you want to remove this file?")').find('button').contains('Yes').click();
+ cy.get('.listPanel__item:contains("delete-this-file.pdf")').should('not.exist');
+
+ cy.get('.submissionWizard__footer button').contains('Continue').click();
+
+ // Add Contributors
+ cy.contains('Make a Submission: Contributors');
+ cy.get('.pkpSteps__step__label--current').contains('Contributors');
+ cy.get('h2').contains('Contributors');
+ cy.get('.listPanel__item:contains("Alvin Finkel")');
+ cy.get('button').contains('Add Contributor').click();
+ cy.get('.modal__panel:contains("Add Contributor")').find('button').contains('Save').click();
+ cy.get('#contributor-givenName-error-en').contains('This field is required.');
+ cy.get('#contributor-email-error').contains('This field is required.');
+ cy.get('#contributor-country-error').contains('This field is required.');
+ cy.get('.pkpFormField:contains("Given Name")').find('input[name*="givenName-en"]').type(submission.authors[0].givenName);
+ cy.get('.pkpFormField:contains("Family Name")').find('input[name*="familyName-en"]').type(submission.authors[0].familyName);
+ cy.get('label').contains(submission.authors[0].role).parent().find('input').click();
+ cy.get('.pkpFormField:contains("Country")').find('select').select(submission.authors[0].country)
+ cy.get('.pkpFormField:contains("Email")').find('input').type('notanemail');
+ cy.get('.modal__panel:contains("Add Contributor")').find('button').contains('Save').click();
+ cy.get('#contributor-email-error').contains('This is not a valid email address.');
+ cy.get('.pkpFormField:contains("Email")').find('input').clear().type(submission.authors[0].email);
+ cy.get('.modal__panel:contains("Add Contributor")').find('button').contains('Save').click();
+ cy.get('button').contains('Order').click();
+ cy.get('button:contains("Decrease position of Alvin Finkel")').click();
+ cy.get('button').contains('Save Order').click();
+ cy.get('button:contains("Preview")').click(); // Will only appear after order is saved
+ cy.get('.modal__panel:contains("List of Contributors")').find('tr:contains("Abbreviated")').contains('Carter et al.');
+ cy.get('.modal__panel:contains("List of Contributors")').find('tr:contains("Publication Lists")').contains('Sarah Carter (Volume editor); Alvin Finkel (Author)');
+ cy.get('.modal__panel:contains("List of Contributors")').find('tr:contains("Full")').contains('Sarah Carter (Volume editor); Alvin Finkel (Author)');
+ cy.get('.modal__panel:contains("List of Contributors")').find('.modal__closeButton').click();
+ cy.get('.listPanel:contains("Contributors")').find('button').contains('Order').click();
+ cy.get('button:contains("Increase position of Alvin Finkel")').click();
+ cy.get('.listPanel:contains("Contributors")').find('button').contains('Save Order').click();
+ cy.get('.listPanel:contains("Contributors") button:contains("Preview")').click(); // Will only appear after order is saved
+ cy.get('.modal__panel:contains("List of Contributors")').find('tr:contains("Abbreviated")').contains('Finkel et al.');
+ cy.get('.modal__panel:contains("List of Contributors")').find('tr:contains("Publication Lists")').contains('Alvin Finkel (Author); Sarah Carter (Volume editor)');
+ cy.get('.modal__panel:contains("List of Contributors")').find('tr:contains("Full")').contains('Alvin Finkel (Author); Sarah Carter (Volume editor)');
+ cy.get('.modal__panel:contains("List of Contributors")').find('.modal__closeButton').click();
+
+ submission.authors.slice(1).forEach((author) => {
+ cy.get('button').contains('Add Contributor').click();
+ cy.get('.modal__panel:contains("Add Contributor")').find('button').contains('Save').click();
+ cy.get('.pkpFormField:contains("Given Name")').find('input[name*="givenName-en"]').type(author.givenName);
+ cy.get('.pkpFormField:contains("Family Name")').find('input[name*="familyName-en"]').type(author.familyName);
+ cy.get('label').contains(author.role).parent().find('input').click();
+ cy.get('.pkpFormField:contains("Country")').find('select').select(author.country)
+ cy.get('.pkpFormField:contains("Email")').find('input').type(author.email);
+ cy.get('.modal__panel:contains("Add Contributor")').find('button').contains('Save').click();
+ });
+
+ // Delete a contributor
+ cy.get('.listPanel:contains("Contributors")').find('button').contains('Add Contributor').click();
+ cy.get('.pkpFormField:contains("Given Name")').find('input[name*="givenName-en"]').type('Fake Author Name');
+ cy.get('.pkpFormField:contains("Email")').find('input').type('delete@mailinator.com');
+ cy.get('.pkpFormField:contains("Country")').find('select').select('Barbados');
+ cy.get('.modal__panel:contains("Add Contributor")').find('button').contains('Save').click();
+ cy.get('.listPanel__item:contains("Fake Author Name")').find('button').contains('Delete').click();
+ cy.get('.modal__panel:contains("Are you sure you want to remove Fake Author Name as a contributor?")').find('button').contains('Delete Contributor').click();
+ cy.get('.listPanel__item:contains("Fake Author Name")').should('not.exist');
+
+
+ // Save for later
+ cy.get('button').contains('Save for Later').click();
+ cy.contains('Saved for Later');
+ cy.contains('Your submission details have been saved');
+ cy.contains('We have emailed a copy of this link to you at afinkel@mailinator.com.');
+ cy.get('a').contains(submission.title).click();
+
+ // Go back to Details step and add chapters
+ cy.get('.pkpSteps__step__label:contains("Details")').click();
+ cy.addChapters(submission.chapters);
+
+ cy.get('.submissionWizard__footer button').contains('Continue').click();
+ cy.get('.submissionWizard__footer button').contains('Continue').click();
+ cy.get('.submissionWizard__footer button').contains('Continue').click();
+
+ // For the Editors
+ cy.contains('Make a Submission: For the Editors');
+ cy.get('.pkpSteps__step__label--current').contains('For the Editors');
+ cy.get('h2').contains('For the Editors');
+
+ cy.get('.submissionWizard__footer button').contains('Continue').click();
+
+ // Review
+ cy.contains('Make a Submission: Review');
+ cy.get('.pkpSteps__step__label--current').contains('Review');
+ cy.get('h2').contains('Review and Submit');
+ submission.files.forEach(function(file) {
+ cy
+ .get('h3')
+ .contains('Files')
+ .parents('.submissionWizard__reviewPanel')
+ .contains(file.fileName)
+ .parents('.submissionWizard__reviewPanel__item__value')
+ .find('.pkpBadge')
+ .contains(file.genre);
+ });
+ submission.authorNames.forEach(function(author) {
+ cy
+ .get('h3')
+ .contains('Contributors')
+ .parents('.submissionWizard__reviewPanel')
+ .contains(author)
+ .parents('.submissionWizard__reviewPanel__item__value');
+ });
+ cy.get('h3').contains('Details (English)')
+ .parents('.submissionWizard__reviewPanel')
+ .find('h4').contains('Title').siblings('.submissionWizard__reviewPanel__item__value').contains(submission.title)
+ .parents('.submissionWizard__reviewPanel')
+ .find('h4').contains('Keywords').siblings('.submissionWizard__reviewPanel__item__value').contains('None provided')
+ .parents('.submissionWizard__reviewPanel')
+ .find('h4').contains('Abstract').siblings('.submissionWizard__reviewPanel__item__value').contains(submission.abstract);
+ cy.get('h3').contains('Details (French)')
+ .parents('.submissionWizard__reviewPanel')
+ .find('h4').contains('Title').siblings('.submissionWizard__reviewPanel__item__value').contains('None provided')
+ .parents('.submissionWizard__reviewPanel')
+ .find('h4').contains('Keywords').siblings('.submissionWizard__reviewPanel__item__value').contains('None provided')
+ .parents('.submissionWizard__reviewPanel')
+ .find('h4').contains('Abstract').siblings('.submissionWizard__reviewPanel__item__value').contains('None provided');
+ cy.get('h3').contains('For the Editors (English)');
+ cy.get('h3').contains('For the Editors (French)');
+
+ // Submit
+ cy.contains('Make a Submission: Review');
+ cy.get('button:contains("Submit")').click();
+ const message = 'The submission, ' + submission.title + ', will be submitted to ' + Cypress.env('contextTitles').en + ' for editorial review';
+ cy.get('.modal__panel:contains("' + message + '")').find('button').contains('Submit').click();
+ cy.contains('Submission complete');
+ cy.get('a').contains('Create a new submission');
+ cy.get('a').contains('Return to your dashboard');
+ cy.get('a').contains('Review this submission').click();
+ cy.get('h1:contains("' + submission.title + '")');
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Finkel');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', ['Alvin Finkel'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Al Zacharia', 'Anonymous Reviewer/Disclosed Author');
+ cy.assignReviewer('Gonzalo Favio');
+ });
+});
diff --git a/cypress/tests/data/60-content/AfinkelSubmission.spec.js b/cypress/tests/data/60-content/AfinkelSubmission.spec.js
deleted file mode 100644
index 68bcd3b2f65..00000000000
--- a/cypress/tests/data/60-content/AfinkelSubmission.spec.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/AfinkelSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'afinkel',
- 'givenName': 'Alvin',
- 'familyName': 'Finkel',
- 'affiliation': 'Athabasca University',
- 'country': 'Canada'
- });
-
- var title = 'The West and Beyond: New Perspectives on an Imagined Region';
- cy.createSubmission({
- 'type': 'editedVolume',
- 'title': title,
- 'abstract': 'The West and Beyond explores the state of Western Canadian history, showcasing the research interests of a new generation of scholars while charting new directions for the future and stimulating further interrogation of our past. This dynamic collection encourages dialogue among generations of historians of the West, and among practitioners of diverse approaches to the past. It also reflects a broad range of disciplinary and professional boundaries, offering new ways to understand the West.',
- 'submitterRole': 'Volume editor',
- 'additionalAuthors': [
- {
- 'givenName': 'Sarah',
- 'familyName': 'Carter',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'scarter@mailinator.com',
- 'role': 'Volume editor',
- },
- {
- 'givenName': 'Peter',
- 'familyName': 'Fortna',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'pfortna@mailinator.com',
- 'role': 'Volume editor',
- },
- {
- 'givenName': 'Gerald',
- 'familyName': 'Friesen',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'gfriesen@mailinator.com',
- },
- {
- 'givenName': 'Lyle',
- 'familyName': 'Dick',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'ldick@mailinator.com',
- },
- {
- 'givenName': 'Winona',
- 'familyName': 'Wheeler',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'wwheeler@mailinator.com',
- },
- {
- 'givenName': 'Matt',
- 'familyName': 'Dyce',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'mdyce@mailinator.com',
- },
- {
- 'givenName': 'James',
- 'familyName': 'Opp',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'jopp@mailinator.com',
- }
- ],
- 'chapters': [
- {
- 'title': 'Critical History in Western Canada 1900–2000',
- 'contributors': ['Gerald Friesen'],
- },
- {
- 'title': 'Vernacular Currents in Western Canadian Historiography: The Passion and Prose of Katherine Hughes, F.G. Roe, and Roy Ito',
- 'contributors': ['Lyle Dick'],
- },
- {
- 'title': 'Cree Intellectual Traditions in History',
- 'contributors': ['Winona Wheeler'],
- },
- {
- 'title': 'Visualizing Space, Race, and History in the North: Photographic Narratives of the Athabasca-Mackenzie River Basin',
- 'contributors': ['Matt Dyce', 'James Opp'],
- }
- ]
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Finkel');
- cy.sendToReview('External');
- cy.assignReviewer('Al Zacharia');
- cy.assignReviewer('Gonzalo Favio');
-
- // FIXME: reviewers need to be assigned, decision recorded
- });
-});
diff --git a/cypress/tests/data/60-content/BbarnetsonSubmission.cy.js b/cypress/tests/data/60-content/BbarnetsonSubmission.cy.js
new file mode 100644
index 00000000000..b1ce5e9faeb
--- /dev/null
+++ b/cypress/tests/data/60-content/BbarnetsonSubmission.cy.js
@@ -0,0 +1,110 @@
+/**
+ * @file cypress/tests/data/60-content/BbarnetsonSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'The Political Economy of Workplace Injury in Canada';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'abstract': 'Workplace injuries are common, avoidable, and unacceptable. The Political Economy of Workplace Injury in Canada reveals how employers and governments engage in ineffective injury prevention efforts, intervening only when necessary to maintain the standard legitimacy. Dr. Bob Barnetson sheds light on this faulty system, highlighting the way in which employers create dangerous work environments yet pour billions of dollars into compensation and treatment. Examining this dynamic clarifies the way in which production costs are passed on to workers in the form of workplace injuries.',
+ 'keywords': [
+ 'Business & Economics',
+ 'Political & International Studies',
+ ],
+ 'type': 'monograph',
+ 'submitterRole': 'Author',
+ 'chapters': [
+ {
+ 'title': 'Introduction',
+ 'contributors': ['Bob Barnetson'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Part One. Employment Relationships in Canada',
+ 'contributors': ['Bob Barnetson'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Part Two. Preventing Workplace Injury',
+ 'contributors': ['Bob Barnetson'],
+ files: ['chapter3.pdf']
+ },
+ {
+ 'title': 'Part Three. Critique of OHS in Canada',
+ 'contributors': ['Bob Barnetson'],
+ files: ['chapter4.pdf']
+ },
+ {
+ 'title': 'Part Four. Political Economy of Preventing Workplace Injury',
+ 'contributors': ['Bob Barnetson'],
+ files: ['chapter5.pdf']
+ },
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter4.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter5.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ }
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'bbarnetson',
+ 'givenName': 'Bob',
+ 'familyName': 'Barnetson',
+ 'affiliation': 'Athabasca University',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ });
+});
diff --git a/cypress/tests/data/60-content/BbarnetsonSubmission.spec.js b/cypress/tests/data/60-content/BbarnetsonSubmission.spec.js
deleted file mode 100644
index 7189bc63a8c..00000000000
--- a/cypress/tests/data/60-content/BbarnetsonSubmission.spec.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/BbarnetsonSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'bbarnetson',
- 'givenName': 'Bob',
- 'familyName': 'Barnetson',
- 'affiliation': 'Athabasca University',
- 'country': 'Canada'
- });
-
- cy.createSubmission({
- 'type': 'monograph',
- 'title': 'The Political Economy of Workplace Injury in Canada',
- 'abstract': 'Workplace injuries are common, avoidable, and unacceptable. The Political Economy of Workplace Injury in Canada reveals how employers and governments engage in ineffective injury prevention efforts, intervening only when necessary to maintain the standard legitimacy. Dr. Bob Barnetson sheds light on this faulty system, highlighting the way in which employers create dangerous work environments yet pour billions of dollars into compensation and treatment. Examining this dynamic clarifies the way in which production costs are passed on to workers in the form of workplace injuries.',
- 'keywords': [
- 'Business & Economics',
- 'Political & International Studies',
- ],
- 'submitterRole': 'Author',
- 'chapters': [
- {
- 'title': 'Introduction',
- 'contributors': ['Bob Barnetson'],
- },
- {
- 'title': 'Part One. Employment Relationships in Canada',
- 'contributors': ['Bob Barnetson'],
- },
- {
- 'title': 'Part Two. Preventing Workplace Injury',
- 'contributors': ['Bob Barnetson'],
- },
- {
- 'title': 'Part Three. Critique of OHS in Canada',
- 'contributors': ['Bob Barnetson'],
- },
- {
- 'title': 'Part Four. Political Economy of Preventing Workplace Injury',
- 'contributors': ['Bob Barnetson'],
- },
- ],
- });
- });
-});
diff --git a/cypress/tests/data/60-content/BbeatySubmission.cy.js b/cypress/tests/data/60-content/BbeatySubmission.cy.js
new file mode 100644
index 00000000000..fdbc49b5c87
--- /dev/null
+++ b/cypress/tests/data/60-content/BbeatySubmission.cy.js
@@ -0,0 +1,160 @@
+/**
+ * @file cypress/tests/data/60-content/BbeatySubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'How Canadians Communicate: Contexts of Canadian Popular Culture';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'editedVolume',
+ 'series': 'History',
+ seriesId: 3,
+ 'abstract': 'What does Canadian popular culture say about the construction and negotiation of Canadian national identity? This third volume of How Canadians Communicate describes the negotiation of popular culture across terrains where national identity is built by producers and audiences, government and industry, history and geography, ethnicities and citizenships.',
+ 'keywords': [
+ 'Canadian Studies',
+ 'Communication & Cultural Studies',
+ ],
+ 'submitterRole': 'Volume editor',
+ 'additionalAuthors': [
+ {
+ 'givenName': {en: 'Toby'},
+ 'familyName': {en: 'Miller'},
+ 'country': 'CA',
+ 'affiliation': {en: 'University of Alberta'},
+ 'email': 'tmiller@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Ira'},
+ 'familyName': {en: 'Wagman'},
+ 'country': 'CA',
+ 'affiliation': {en: 'Athabasca University'},
+ 'email': 'awagman@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Will'},
+ 'familyName': {en: 'Straw'},
+ 'country': 'CA',
+ 'affiliation': {en: 'University of Calgary'},
+ 'email': 'wstraw@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ ],
+ 'chapters': [
+ {
+ 'title': 'Introduction: Contexts of Popular Culture',
+ 'contributors': ['Bart Beaty'],
+ files: ['intro.pdf']
+ },
+ {
+ 'title': 'Chapter 1. A Future for Media Studies: Cultural Labour, Cultural Relations, Cultural Politics',
+ 'contributors': ['Toby Miller'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Chapter 2. Log On, Goof Off, and Look Up: Facebook and the Rhythms of Canadian Internet Use',
+ 'contributors': ['Ira Wagman'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Chapter 3. Hawkers and Public Space: Free Commuter Newspapers in Canada',
+ 'contributors': ['Will Straw'],
+ files: ['chapter3.pdf']
+ },
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'intro.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ }
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'bbeaty',
+ 'givenName': 'Bart',
+ 'familyName': 'Beaty',
+ 'affiliation': 'University of British Columbia',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Beaty');
+ cy.clickDecision('Send to Internal Review');
+ cy.recordDecisionSendToReview('Send to Internal Review', ['Bart Beaty'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('Internal Review');
+ cy.assignReviewer('Aisla McCrae');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', ['Bart Beaty'], []);
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Al Zacharia');
+ cy.clickDecision('Accept Submission');
+ cy.recordDecisionAcceptSubmission(['Bart Beaty'], [], []);
+ cy.isActiveStageTab('Copyediting');
+ cy.assignParticipant('Copyeditor', 'Maria Fritz');
+ cy.clickDecision('Send To Production');
+ cy.recordDecisionSendToProduction(['Bart Beaty'], []);
+ cy.isActiveStageTab('Production');
+ cy.assignParticipant('Layout Editor', 'Graham Cox');
+
+ // Add a publication format with ISBNs
+ cy.get('button[id="publication-button"]').click();
+ cy.get('button[id="publicationFormats-button"]').click();
+ cy.get('*[id^="component-grid-catalogentry-publicationformatgrid-addFormat-button-"]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="name-en-"]').type('PDF', {delay: 0});
+ cy.get('input[id^="remotelyHostedContent"]').click();
+ cy.get('input[id^="remoteURL-"]').type('https://file-examples-com.github.io/uploads/2017/10/file-sample_150kB.pdf', {delay: 0});
+ cy.get('input[id^="isbn13-"]').type('978-951-98548-9-2', {delay: 0});
+ cy.get('input[id^="isbn10-"]').type('951-98548-9-4', {delay: 0});
+ cy.get('div.pkp_modal_panel div.header:contains("Add publication format")').click(); // FIXME: Focus problem with multilingual input
+ cy.get('button:contains("OK")').click();
+
+ });
+});
diff --git a/cypress/tests/data/60-content/BbeatySubmission.spec.js b/cypress/tests/data/60-content/BbeatySubmission.spec.js
deleted file mode 100644
index 9a98dfe001c..00000000000
--- a/cypress/tests/data/60-content/BbeatySubmission.spec.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/BbeatySubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'bbeaty',
- 'givenName': 'Bart',
- 'familyName': 'Beaty',
- 'affiliation': 'University of British Columbia',
- 'country': 'Canada'
- });
-
- var title = 'How Canadians Communicate: Contexts of Canadian Popular Culture';
- cy.createSubmission({
- 'type': 'editedVolume',
- 'series': 'History',
- 'title': title,
- 'abstract': 'What does Canadian popular culture say about the construction and negotiation of Canadian national identity? This third volume of How Canadians Communicate describes the negotiation of popular culture across terrains where national identity is built by producers and audiences, government and industry, history and geography, ethnicities and citizenships.',
- 'keywords': [
- 'Canadian Studies',
- 'Communication & Cultural Studies',
- ],
- 'submitterRole': 'Volume editor',
- 'additionalAuthors': [
- {
- 'givenName': 'Toby',
- 'familyName': 'Miller',
- 'country': 'Canada',
- 'affiliation': 'University of Alberta',
- 'email': 'tmiller@mailinator.com',
- 'role': 'Author',
- },
- {
- 'givenName': 'Ira',
- 'familyName': 'Wagman',
- 'country': 'Canada',
- 'affiliation': 'Athabasca University',
- 'email': 'awagman@mailinator.com',
- 'role': 'Author',
- },
- {
- 'givenName': 'Will',
- 'familyName': 'Straw',
- 'country': 'Canada',
- 'affiliation': 'University of Calgary',
- 'email': 'wstraw@mailinator.com',
- 'role': 'Author',
- },
- ],
- 'chapters': [
- {
- 'title': 'Introduction: Contexts of Popular Culture',
- 'contributors': ['Bart Beaty'],
- },
- {
- 'title': 'Chapter 1. A Future for Media Studies: Cultural Labour, Cultural Relations, Cultural Politics',
- 'contributors': ['Toby Miller'],
- },
- {
- 'title': 'Chapter 2. Log On, Goof Off, and Look Up: Facebook and the Rhythms of Canadian Internet Use',
- 'contributors': ['Ira Wagman'],
- },
- {
- 'title': 'Chapter 3. Hawkers and Public Space: Free Commuter Newspapers in Canada',
- 'contributors': ['Will Straw'],
- },
- ]
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Beaty');
- cy.sendToReview('Internal');
- cy.get('li.ui-state-active a:contains("Internal Review")');
- cy.assignReviewer('Aisla McCrae');
- cy.sendToReview('External', 'Internal');
- cy.get('li.ui-state-active a:contains("External Review")');
- cy.assignReviewer('Al Zacharia');
- cy.recordEditorialDecision('Accept Submission');
- cy.get('li.ui-state-active a:contains("Copyediting")');
- cy.assignParticipant('Copyeditor', 'Maria Fritz');
- cy.recordEditorialDecision('Send To Production');
- cy.get('li.ui-state-active a:contains("Production")');
- cy.assignParticipant('Layout Editor', 'Graham Cox');
- });
-});
diff --git a/cypress/tests/data/60-content/CallanSubmission.cy.js b/cypress/tests/data/60-content/CallanSubmission.cy.js
new file mode 100644
index 00000000000..e7a575621ac
--- /dev/null
+++ b/cypress/tests/data/60-content/CallanSubmission.cy.js
@@ -0,0 +1,207 @@
+/**
+ * @file cypress/tests/data/60-content/CallanSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ let author = 'Chantal Allan';
+ before(function() {
+ const title = 'Bomb Canada and Other Unkind Remarks in the American Media';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'monograph',
+ //'series': '',
+ 'abstract': 'Canada and the United States. Two nations, one border, same continent. Anti-American sentiment in Canada is well documented, but what have Americans had to say about their northern neighbour? Allan examines how the American media has portrayed Canada, from Confederation to Obama’s election. By examining major events that have tested bilateral relations, Bomb Canada tracks the history of anti-Canadianism in the U.S. Informative, thought provoking and at times hilarious, this book reveals another layer of the complex relationship between Canada and the United States.',
+ 'keywords': [
+ 'Canadian Studies',
+ 'Communication & Cultural Studies',
+ 'Political & International Studies',
+ ],
+ submitterRole: 'Author',
+ chapters: [
+ {
+ 'title': 'Prologue',
+ 'contributors': [author],
+ files: ['prologue.pdf']
+ },
+ {
+ 'title': 'Chapter 1: The First Five Years: 1867-1872',
+ 'contributors': [author],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Chapter 2: Free Trade or "Freedom": 1911',
+ 'contributors': [author],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Chapter 3: Castro, Nukes & the Cold War: 1953-1968',
+ 'contributors': [author],
+ files: ['chapter3.pdf']
+ },
+ {
+ 'title': 'Chapter 4: Enter the Intellect: 1968-1984',
+ 'contributors': [author],
+ files: ['chapter4.pdf']
+ },
+ {
+ 'title': 'Epilogue',
+ 'contributors': [author],
+ files: ['epilogue.pdf']
+ },
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'prologue.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter4.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'epilogue.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ }
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'callan',
+ 'givenName': 'Chantal',
+ 'familyName': 'Allan',
+ 'affiliation': 'University of Southern California',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Allan');
+ cy.clickDecision('Send to Internal Review');
+ cy.recordDecisionSendToReview('Send to Internal Review', [author], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('Internal Review');
+ cy.assignReviewer('Paul Hudson');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', [author], []);
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Gonzalo Favio');
+ cy.clickDecision('Accept Submission');
+ cy.recordDecisionAcceptSubmission([author], [], []);
+ cy.isActiveStageTab('Copyediting');
+ cy.assignParticipant('Copyeditor', 'Sarah Vogt');
+ cy.clickDecision('Send To Production');
+ cy.recordDecisionSendToProduction([author], []);
+ cy.isActiveStageTab('Production');
+ cy.assignParticipant('Layout Editor', 'Stephen Hellier');
+ cy.assignParticipant('Proofreader', 'Catherine Turner');
+
+ // Add a publication format
+ cy.get('button[id="publication-button"]').click();
+ cy.get('button[id="publicationFormats-button"]').click();
+ cy.get('*[id^="component-grid-catalogentry-publicationformatgrid-addFormat-button-"]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="name-en-"]').type('PDF', {delay: 0});
+ cy.get('div.pkp_modal_panel div.header:contains("Add publication format")').click(); // FIXME: Focus problem with multilingual input
+ cy.get('button:contains("OK")').click();
+
+ // Select proof file
+ cy.get('table[id*="component-grid-catalogentry-publicationformatgrid"] span:contains("PDF"):parent() a[id*="-name-selectFiles-button-"]').click();
+ cy.get('*[id=allStages]').click();
+ cy.get('tbody[id^="component-grid-files-proof-manageprooffilesgrid-category-"] input[type="checkbox"][name="selectedFiles[]"]:first').click();
+ cy.get('form[id="manageProofFilesForm"] button[id^="submitFormButton-"]').click();
+ cy.waitJQuery();
+
+ // Approvals for PDF publication format
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("PDF") a[id*="-isComplete-approveRepresentation-button-"]').click();
+ cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
+ cy.waitJQuery();
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("PDF") a[id*="-isAvailable-availableRepresentation-button-"]').click();
+ cy.get('.pkpModalConfirmButton').click();
+ cy.waitJQuery();
+
+ // File completion
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("epilogue.pdf") a[id*="-isComplete-not_approved-button-"]').click();
+ cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
+ cy.waitJQuery();
+
+ // File availability
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("epilogue.pdf") a[id*="-isAvailable-editApprovedProof-button-"]').click();
+ cy.get('input[id="openAccess"]').click();
+ cy.get('form#approvedProofForm button.submitFormButton').click();
+
+ // Add to catalog
+ cy.addToCatalog();
+ });
+
+ it('Book is not available when unpublished', function() {
+ cy.findSubmissionAsEditor('dbarnes', null, 'Allan');
+ cy.get('#publication-button').click();
+ cy.get('button').contains('Unpublish').click();
+ cy.contains('Are you sure you don\'t want this to be published?');
+ cy.get('.modal__panel button').contains('Unpublish').click();
+ cy.wait(1000);
+ cy.visit('index.php/publicknowledge/catalog');
+ cy.contains('Bomb Canada and Other Unkind Remarks in the American Media').should('not.exist');
+ cy.logout();
+ cy.request({
+ url: 'index.php/publicknowledge/catalog/book/' + submission.id,
+ failOnStatusCode: false
+ })
+ .then((response) => {
+ expect(response.status).to.equal(404);
+ });
+
+ // Re-publish it
+ cy.findSubmissionAsEditor('dbarnes', null, 'Allan');
+ cy.get('#publication-button').click();
+ cy.get('.pkpPublication button').contains('Publish').click();
+ cy.contains('All publication requirements have been met.');
+ cy.get('.pkpWorkflow__publishModal button').contains('Publish').click();
+ });
+});
diff --git a/cypress/tests/data/60-content/CallanSubmission.spec.js b/cypress/tests/data/60-content/CallanSubmission.spec.js
deleted file mode 100644
index f5eb295e956..00000000000
--- a/cypress/tests/data/60-content/CallanSubmission.spec.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/CallanSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'callan',
- 'givenName': 'Chantal',
- 'familyName': 'Allan',
- 'affiliation': 'University of Southern California',
- 'country': 'Canada'
- });
-
- var title = 'Bomb Canada and Other Unkind Remarks in the American Media';
- cy.createSubmission({
- 'type': 'monograph',
- //'series': '',
- 'title': title,
- 'abstract': 'Canada and the United States. Two nations, one border, same continent. Anti-American sentiment in Canada is well documented, but what have Americans had to say about their northern neighbour? Allan examines how the American media has portrayed Canada, from Confederation to Obama’s election. By examining major events that have tested bilateral relations, Bomb Canada tracks the history of anti-Canadianism in the U.S. Informative, thought provoking and at times hilarious, this book reveals another layer of the complex relationship between Canada and the United States.',
- 'keywords': [
- 'Canadian Studies',
- 'Communication & Cultural Studies',
- 'Political & International Studies',
- ],
- 'submitterRole': 'Author',
- 'chapters': [
- {
- 'title': 'Prologue',
- 'contributors': ['Chantal Allan'],
- },
- {
- 'title': 'Chapter 1: The First Five Years: 1867-1872',
- 'contributors': ['Chantal Allan'],
- },
- {
- 'title': 'Chapter 2: Free Trade or "Freedom": 1911',
- 'contributors': ['Chantal Allan'],
- },
- {
- 'title': 'Chapter 3: Castro, Nukes & the Cold War: 1953-1968',
- 'contributors': ['Chantal Allan'],
- },
- {
- 'title': 'Chapter 4: Enter the Intellect: 1968-1984',
- 'contributors': ['Chantal Allan'],
- },
- {
- 'title': 'Epilogue',
- 'contributors': ['Chantal Allan'],
- },
- ]
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Allan');
- cy.sendToReview('Internal');
- cy.get('li.ui-state-active a:contains("Internal Review")');
- cy.assignReviewer('Paul Hudson');
- cy.sendToReview('External', 'Internal');
- cy.get('li.ui-state-active a:contains("External Review")');
- cy.assignReviewer('Gonzalo Favio');
- cy.recordEditorialDecision('Accept Submission');
- cy.get('li.ui-state-active a:contains("Copyediting")');
- cy.assignParticipant('Copyeditor', 'Sarah Vogt');
- cy.recordEditorialDecision('Send To Production');
- cy.get('li.ui-state-active a:contains("Production")');
- cy.assignParticipant('Layout Editor', 'Stephen Hellier');
- cy.assignParticipant('Proofreader', 'Catherine Turner');
-
- // Add a publication format
- cy.get('button[id="publication-button"]').click();
- cy.get('button[id="publicationFormats-button"]').click();
- cy.get('*[id^="component-grid-catalogentry-publicationformatgrid-addFormat-button-"]').click();
- cy.wait(1000); // Avoid occasional failure due to form init taking time
- cy.get('input[id^="name-en_US-"]').type('PDF', {delay: 0});
- cy.get('div.pkp_modal_panel div.header:contains("Add publication format")').click(); // FIXME: Focus problem with multilingual input
- cy.get('button:contains("OK")').click();
-
- // Select proof file
- cy.get('table[id*="component-grid-catalogentry-publicationformatgrid"] span:contains("PDF"):parent() a[id*="-name-selectFiles-button-"]').click();
- cy.get('*[id=allStages]').click();
- cy.get('tbody[id^="component-grid-files-proof-manageprooffilesgrid-category-"] input[type="checkbox"][name="selectedFiles[]"]:first').click();
- cy.get('form[id="manageProofFilesForm"] button[id^="submitFormButton-"]').click();
- cy.waitJQuery();
-
- // Approvals for PDF publication format
- cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("PDF") a[id*="-isComplete-approveRepresentation-button-"]').click();
- cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
- cy.waitJQuery();
- cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("PDF") a[id*="-isAvailable-availableRepresentation-button-"]').click();
- cy.get('.pkpModalConfirmButton').click();
- cy.waitJQuery();
-
- // File completion
- cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("' + Cypress.$.escapeSelector(title) + '") a[id*="-isComplete-not_approved-button-"]').click();
- cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
- cy.waitJQuery();
-
- // File availability
- cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("' + Cypress.$.escapeSelector(title) + '") a[id*="-isAvailable-editApprovedProof-button-"]').click();
- cy.get('input[id="openAccess"]').click();
- cy.get('form#approvedProofForm button.submitFormButton').click();
-
- // Add to catalog
- cy.addToCatalog();
- });
-});
diff --git a/cypress/tests/data/60-content/DbernnardSubmission.cy.js b/cypress/tests/data/60-content/DbernnardSubmission.cy.js
new file mode 100644
index 00000000000..270421cc0dd
--- /dev/null
+++ b/cypress/tests/data/60-content/DbernnardSubmission.cy.js
@@ -0,0 +1,149 @@
+/**
+ * @file cypress/tests/data/60-content/DbernnardSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ let author = 'Deborah Bernnard';
+ before(function() {
+ const title = 'The Information Literacy User’s Guide';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'editedVolume',
+ 'abstract': 'Good researchers have a host of tools at their disposal that make navigating today’s complex information ecosystem much more manageable. Gaining the knowledge, abilities, and self-reflection necessary to be a good researcher helps not only in academic settings, but is invaluable in any career, and throughout one’s life. The Information Literacy User’s Guide will start you on this route to success.',
+ 'series': 'Library & Information Studies',
+ seriesId: 1,
+ 'keywords': [
+ 'information literacy',
+ 'academic libraries',
+ ],
+ 'submitterRole': 'Volume editor',
+ 'additionalAuthors': [
+ {
+ 'givenName': {en: 'Greg'},
+ 'familyName': {en: 'Bobish'},
+ 'country': 'US',
+ 'affiliation': {en: 'SUNY'},
+ 'email': 'gbobish@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Daryl'},
+ 'familyName': {en: 'Bullis'},
+ 'country': 'US',
+ 'affiliation': {en: 'SUNY'},
+ 'email': 'dbullis@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Jenna'},
+ 'familyName': {en: 'Hecker'},
+ 'country': 'US',
+ 'affiliation': {en: 'SUNY'},
+ 'email': 'jhecker@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter4.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ 'chapters': [
+ {
+ 'title': 'Identify: Understanding Your Information Need',
+ 'contributors': ['Deborah Bernnard'],
+ files: ['chapter1.pdf'],
+ },
+ {
+ 'title': 'Scope: Knowing What Is Available',
+ 'contributors': ['Greg Bobish'],
+ files: ['chapter2.pdf'],
+ },
+ {
+ 'title': 'Plan: Developing Research Strategies',
+ 'contributors': ['Daryl Bullis'],
+ files: ['chapter3.pdf'],
+ },
+ {
+ 'title': 'Gather: Finding What You Need',
+ 'contributors': ['Jenna Hecker'],
+ files: ['chapter4.pdf'],
+ }
+ ]
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'dbernnard',
+ 'givenName': 'Deborah',
+ 'familyName': 'Bernnard',
+ 'affiliation': 'SUNY',
+ 'country': 'United States'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Bernnard');
+ cy.clickDecision('Send to Internal Review');
+ cy.recordDecisionSendToReview('Send to Internal Review', [author], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('Internal Review');
+ cy.assignParticipant('Press editor', 'Daniel Barnes');
+ // Assign a recommendOnly section editor
+ cy.assignParticipant('Series editor', 'Minoti Inoue', true);
+ cy.logout();
+ // Find the submission as the section editor
+ cy.login('minoue', null, 'publicknowledge'),
+ cy.get('#myQueue').find('a').contains('View Bernnard').click({force: true});
+ // Recommend
+ cy.clickDecision('Recommend Accept');
+ cy.recordRecommendation('Recommend Accept', ['Daniel Barnes', 'David Buskins']);
+ cy.logout();
+ // Log in as editor and see the existing recommendation
+ cy.findSubmissionAsEditor('dbarnes', null, 'Bernnard');
+ cy.get('div.pkp_workflow_recommendations:contains("Recommendations: Accept Submission")');
+ });
+});
diff --git a/cypress/tests/data/60-content/DbernnardSubmission.spec.js b/cypress/tests/data/60-content/DbernnardSubmission.spec.js
deleted file mode 100644
index b521fdac371..00000000000
--- a/cypress/tests/data/60-content/DbernnardSubmission.spec.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/DbernnardSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'dbernnard',
- 'givenName': 'Deborah',
- 'familyName': 'Bernnard',
- 'affiliation': 'SUNY',
- 'country': 'United States'
- });
-
- var title = 'The Information Literacy User’s Guide';
- cy.createSubmission({
- 'type': 'editedVolume',
- 'title': title,
- 'abstract': 'Good researchers have a host of tools at their disposal that make navigating today’s complex information ecosystem much more manageable. Gaining the knowledge, abilities, and self-reflection necessary to be a good researcher helps not only in academic settings, but is invaluable in any career, and throughout one’s life. The Information Literacy User’s Guide will start you on this route to success.',
- 'series': 'Library & Information Studies',
- 'keywords': [
- 'information literacy',
- 'academic libraries',
- ],
- 'submitterRole': 'Volume editor',
- 'additionalAuthors': [
- {
- 'givenName': 'Greg',
- 'familyName': 'Bobish',
- 'country': 'United States',
- 'affiliation': 'SUNY',
- 'email': 'gbobish@mailinator.com',
- },
- {
- 'givenName': 'Daryl',
- 'familyName': 'Bullis',
- 'country': 'United States',
- 'affiliation': 'SUNY',
- 'email': 'dbullis@mailinator.com',
- },
- {
- 'givenName': 'Jenna',
- 'familyName': 'Hecker',
- 'country': 'United States',
- 'affiliation': 'SUNY',
- 'email': 'jhecker@mailinator.com',
- },
- ],
- 'chapters': [
- {
- 'title': 'Identify: Understanding Your Information Need',
- 'contributors': ['Deborah Bernnard'],
- },
- {
- 'title': 'Scope: Knowing What Is Available',
- 'contributors': ['Greg Bobish'],
- },
- {
- 'title': 'Plan: Developing Research Strategies',
- 'contributors': ['Daryl Bullis'],
- },
- {
- 'title': 'Gather: Finding What You Need',
- 'contributors': ['Jenna Hecker'],
- }
- ]
- });
-
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Bernnard');
- cy.sendToReview('Internal');
- cy.get('li.ui-state-active a:contains("Internal Review")');
- // Assign a recommendOnly section editor
- cy.assignParticipant('Series editor', 'Minoti Inoue', true);
- cy.logout();
- // Find the submission as the section editor
- cy.login('minoue', null, 'publicknowledge'),
- cy.get('#myQueue').find('a').contains('View Bernnard').click({force: true});
- // Recommend
- cy.recordEditorialRecommendation('Send to External Review');
- cy.logout();
- // Log in as editor and see the existing recommendation
- cy.findSubmissionAsEditor('dbarnes', null, 'Bernnard');
- cy.get('div.pkp_workflow_recommendations:contains("Recommendations: Send to External Review")');
- });
-});
diff --git a/cypress/tests/data/60-content/DkennepohlSubmission.cy.js b/cypress/tests/data/60-content/DkennepohlSubmission.cy.js
new file mode 100644
index 00000000000..ebc09adfb78
--- /dev/null
+++ b/cypress/tests/data/60-content/DkennepohlSubmission.cy.js
@@ -0,0 +1,156 @@
+/**
+ * @file cypress/tests/data/60-content/DkennepohlSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'Accessible Elements: Teaching Science Online and at a Distance';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'editedVolume',
+ 'series': 'Education',
+ seriesId: 4,
+ 'abstract': 'Accessible Elements informs science educators about current practices in online and distance education: distance-delivered methods for laboratory coursework, the requisite administrative and institutional aspects of online and distance teaching, and the relevant educational theory.',
+ 'keywords': [
+ 'Education',
+ ],
+ 'submitterRole': 'Volume editor',
+ 'additionalAuthors': [
+ {
+ 'givenName': {en: 'Terry'},
+ 'familyName': {en: 'Anderson'},
+ 'country': 'CA',
+ 'affiliation': {en: 'University of Calgary'},
+ 'email': 'tanderson@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Paul'},
+ 'familyName': {en: 'Gorsky'},
+ 'country': 'CA',
+ 'affiliation': {en: 'University of Alberta'},
+ 'email': 'pgorsky@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Gale'},
+ 'familyName': {en: 'Parchoma'},
+ 'country': 'CA',
+ 'affiliation': {en: 'Athabasca University'},
+ 'email': 'gparchoma@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Stuart'},
+ 'familyName': {en: 'Palmer'},
+ 'country': 'CA',
+ 'affiliation': {en: 'University of Alberta'},
+ 'email': 'spalmer@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ ],
+ 'chapters': [
+ {
+ 'title': 'Introduction',
+ 'contributors': ['Dietmar Kennepohl'],
+ files: ['intro.pdf']
+ },
+ {
+ 'title': 'Chapter 1: Interactions Affording Distance Science Education',
+ 'contributors': ['Terry Anderson'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Chapter 2: Learning Science at a Distance: Instructional Dialogues and Resources',
+ 'contributors': ['Paul Gorsky'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Chapter 3: Leadership Strategies for Coordinating Distance Education Instructional Development Teams',
+ 'contributors': ['Gale Parchoma'],
+ files: ['chapter3.pdf']
+ },
+ {
+ 'title': 'Chapter 4: Toward New Models of Flexible Education to Enhance Quality in Australian Higher Education',
+ 'contributors': ['Stuart Palmer'],
+ files: ['chapter4.pdf']
+ },
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'intro.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter4.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'dkennepohl',
+ 'givenName': 'Dietmar',
+ 'familyName': 'Kennepohl',
+ 'affiliation': 'Athabasca University',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Kennepohl');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', ['Dietmar Kennepohl'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Adela Gallego');
+ cy.clickDecision('Accept Submission');
+ cy.recordDecisionAcceptSubmission(['Dietmar Kennepohl'], [], []);
+ cy.isActiveStageTab('Copyediting');
+ cy.assignParticipant('Copyeditor', 'Maria Fritz');
+ });
+});
diff --git a/cypress/tests/data/60-content/DkennepohlSubmission.spec.js b/cypress/tests/data/60-content/DkennepohlSubmission.spec.js
deleted file mode 100644
index ab565fdd743..00000000000
--- a/cypress/tests/data/60-content/DkennepohlSubmission.spec.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/DkennepohlSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'dkennepohl',
- 'givenName': 'Dietmar',
- 'familyName': 'Kennepohl',
- 'affiliation': 'Athabasca University',
- 'country': 'Canada'
- });
-
- var title = 'Accessible Elements: Teaching Science Online and at a Distance';
- cy.createSubmission({
- 'type': 'editedVolume',
- 'series': 'Education',
- 'title': title,
- 'abstract': 'Accessible Elements informs science educators about current practices in online and distance education: distance-delivered methods for laboratory coursework, the requisite administrative and institutional aspects of online and distance teaching, and the relevant educational theory.',
- 'keywords': [
- 'Education',
- ],
- 'submitterRole': 'Volume editor',
- 'additionalAuthors': [
- {
- 'givenName': 'Terry',
- 'familyName': 'Anderson',
- 'country': 'Canada',
- 'affiliation': 'University of Calgary',
- 'email': 'tanderson@mailinator.com',
- 'role': 'Author',
- },
- {
- 'givenName': 'Paul',
- 'familyName': 'Gorsky',
- 'country': 'Canada',
- 'affiliation': 'University of Alberta',
- 'email': 'pgorsky@mailinator.com',
- 'role': 'Author',
- },
- {
- 'givenName': 'Gale',
- 'familyName': 'Parchoma',
- 'country': 'Canada',
- 'affiliation': 'Athabasca University',
- 'email': 'gparchoma@mailinator.com',
- 'role': 'Author',
- },
- {
- 'givenName': 'Stuart',
- 'familyName': 'Palmer',
- 'country': 'Canada',
- 'affiliation': 'University of Alberta',
- 'email': 'spalmer@mailinator.com',
- 'role': 'Author',
- },
- ],
- 'chapters': [
- {
- 'title': 'Introduction',
- 'contributors': ['Dietmar Kennepohl'],
- },
- {
- 'title': 'Chapter 1: Interactions Affording Distance Science Education',
- 'contributors': ['Terry Anderson'],
- },
- {
- 'title': 'Chapter 2: Learning Science at a Distance: Instructional Dialogues and Resources',
- 'contributors': ['Paul Gorsky'],
- },
- {
- 'title': 'Chapter 3: Leadership Strategies for Coordinating Distance Education Instructional Development Teams',
- 'contributors': ['Gale Parchoma'],
- },
- {
- 'title': 'Chapter 4: Toward New Models of Flexible Education to Enhance Quality in Australian Higher Education',
- 'contributors': ['Stuart Palmer'],
- },
- ],
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Kennepohl');
- cy.sendToReview('External');
- cy.get('li.ui-state-active a:contains("External Review")');
- cy.assignReviewer('Adela Gallego');
- cy.recordEditorialDecision('Accept Submission');
- cy.get('li.ui-state-active a:contains("Copyediting")');
- cy.assignParticipant('Copyeditor', 'Maria Fritz');
- });
-});
diff --git a/cypress/tests/data/60-content/EditorialSubmission.cy.js b/cypress/tests/data/60-content/EditorialSubmission.cy.js
new file mode 100644
index 00000000000..c1916f4482b
--- /dev/null
+++ b/cypress/tests/data/60-content/EditorialSubmission.cy.js
@@ -0,0 +1,50 @@
+/**
+ * @file cypress/tests/data/60-content/EditorialSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'Editorial';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'monograph',
+ 'abstract': 'A Note From The Publisher',
+ 'submitterRole': 'Author',
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'note.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ chapters: []
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.login('dbarnes', null, 'publicknowledge');
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ });
+});
diff --git a/cypress/tests/data/60-content/EditorialSubmission.spec.js b/cypress/tests/data/60-content/EditorialSubmission.spec.js
deleted file mode 100644
index d2865cba873..00000000000
--- a/cypress/tests/data/60-content/EditorialSubmission.spec.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/EditorialSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.login('dbarnes', null, 'publicknowledge');
-
- cy.createSubmission({
- 'type': 'monograph',
- 'title': 'Editorial',
- 'abstract': 'A Note From The Publisher',
- 'submitterRole': 'Author'
- }, 'backend');
- });
-});
diff --git a/cypress/tests/data/60-content/FperiniSubmission.cy.js b/cypress/tests/data/60-content/FperiniSubmission.cy.js
new file mode 100644
index 00000000000..fb7f6491d1d
--- /dev/null
+++ b/cypress/tests/data/60-content/FperiniSubmission.cy.js
@@ -0,0 +1,153 @@
+/**
+ * @file cypress/tests/data/60-content/FperiniSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'Enabling Openness: The future of the information society in Latin America and the Caribbean';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'editedVolume',
+ 'abstract': 'In recent years, the Internet and other network technologies have emerged as a central issue for development in Latin America and the Caribbean. They have shown their potential to increase productivity and economic competitiveness, to create new ways to deliver education and health services, and to be driving forces for the modernization of the provision of public services.',
+ 'series': 'Library & Information Studies',
+ seriesId: 1,
+ 'keywords': [
+ 'Information',
+ 'society',
+ 'ICT',
+ ],
+ 'submitterRole': 'Volume editor',
+ 'additionalAuthors': [
+ {
+ 'givenName': {en: 'Robin'},
+ 'familyName': {en: 'Mansell'},
+ 'country': 'GB',
+ // 'affiliation': '',
+ 'email': 'rmansell@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Hernan'},
+ 'familyName': {en: 'Galperin'},
+ 'country': 'AR',
+ // 'affiliation': '',
+ 'email': 'hgalperin@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Pablo'},
+ 'familyName': {en: 'Bello'},
+ 'country': 'CL',
+ // 'affiliation': '',
+ 'email': 'pbello@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Eleonora'},
+ 'familyName': {en: 'Rabinovich'},
+ 'country': 'AR',
+ // 'affiliation': '',
+ 'email': 'erabinovich@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ ],
+ 'chapters': [
+ {
+ 'title': 'Internet, openness and the future of the information society in LAC',
+ 'contributors': ['Fernando Perini'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Imagining the Internet: Open, closed or in between?',
+ 'contributors': ['Robin Mansell'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'The internet in LAC will remain free, public and open over the next 10 years',
+ 'contributors': ['Hernan Galperin'],
+ files: ['chapter3.pdf']
+ },
+ {
+ 'title': 'Free Internet?',
+ 'contributors': ['Pablo Bello'],
+ files: ['chapter4.pdf']
+ },
+ {
+ 'title': 'Risks and challenges for freedom of expression on the internet',
+ 'contributors': ['Eleonora Rabinovich'],
+ files: ['chapter5.pdf']
+ },
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter4.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter5.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'fperini',
+ 'givenName': 'Fernando',
+ 'familyName': 'Perini',
+ 'affiliation': 'University of Sussex',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+
+ cy.logout();
+ cy.findSubmissionAsEditor('dbarnes', null, 'Perini');
+ cy.clickDecision('Send to Internal Review');
+ cy.recordDecisionSendToReview('Send to Internal Review', ['Fernando Perini'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('Internal Review');
+ });
+});
diff --git a/cypress/tests/data/60-content/FperiniSubmission.spec.js b/cypress/tests/data/60-content/FperiniSubmission.spec.js
deleted file mode 100644
index 8809833edf8..00000000000
--- a/cypress/tests/data/60-content/FperiniSubmission.spec.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/FperiniSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'fperini',
- 'givenName': 'Fernando',
- 'familyName': 'Perini',
- 'affiliation': 'University of Sussex',
- 'country': 'Canada'
- });
-
- var title = 'Enabling Openness: The future of the information society in Latin America and the Caribbean';
- cy.createSubmission({
- 'type': 'editedVolume',
- 'title': title,
- 'abstract': 'In recent years, the Internet and other network technologies have emerged as a central issue for development in Latin America and the Caribbean. They have shown their potential to increase productivity and economic competitiveness, to create new ways to deliver education and health services, and to be driving forces for the modernization of the provision of public services.',
- 'series': 'Library & Information Studies',
- 'keywords': [
- 'Information',
- 'society',
- 'ICT',
- ],
- 'submitterRole': 'Volume editor',
- 'additionalAuthors': [
- {
- 'givenName': 'Robin',
- 'familyName': 'Mansell',
- 'country': 'United Kingdom',
- // 'affiliation': '',
- 'email': 'rmansell@mailinator.com',
- },
- {
- 'givenName': 'Hernan',
- 'familyName': 'Galperin',
- 'country': 'Argentina',
- // 'affiliation': '',
- 'email': 'hgalperin@mailinator.com',
- },
- {
- 'givenName': 'Pablo',
- 'familyName': 'Bello',
- 'country': 'Chile',
- // 'affiliation': '',
- 'email': 'pbello@mailinator.com',
- },
- {
- 'givenName': 'Eleonora',
- 'familyName': 'Rabinovich',
- 'country': 'Argentina',
- // 'affiliation': '',
- 'email': 'erabinovich@mailinator.com',
- },
- ],
- 'chapters': [
- {
- 'title': 'Internet, openness and the future of the information society in LAC',
- 'contributors': ['Fernando Perini'],
- },
- {
- 'title': 'Imagining the Internet: Open, closed or in between?',
- 'contributors': ['Robin Mansell'],
- },
- {
- 'title': 'The internet in LAC will remain free, public and open over the next 10 years',
- 'contributors': ['Hernan Galperin'],
- },
- {
- 'title': 'Free Internet?',
- 'contributors': ['Pablo Bello'],
- },
- {
- 'title': 'Risks and challenges for freedom of expression on the internet',
- 'contributors': ['Eleonora Rabinovich'],
- },
- ],
- });
-
- cy.logout();
- cy.findSubmissionAsEditor('dbarnes', null, 'Perini');
- cy.sendToReview('Internal');
- cy.get('li.ui-state-active a:contains("Internal Review")');
- });
-});
diff --git a/cypress/tests/data/60-content/JbrowerSubmission.cy.js b/cypress/tests/data/60-content/JbrowerSubmission.cy.js
new file mode 100644
index 00000000000..de0d2a10394
--- /dev/null
+++ b/cypress/tests/data/60-content/JbrowerSubmission.cy.js
@@ -0,0 +1,155 @@
+/**
+ * @file cypress/tests/data/60-content/JbrowerSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'Lost Tracks: Buffalo National Park, 1909-1939';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'monograph',
+ 'abstract': 'While contemporaries and historians alike hailed the establishment of Buffalo National Park in Wainwright, Alberta as a wildlife saving effort, the political climate of the early 20th century worked against it. The Canadian Parks Branch was never sufficiently funded to operate BNP effectively or to remedy the crises the animals faced as a result. Cross-breeding experiments with bison and domestic cattle proved unfruitful. Attempts at commercializing the herd had no success. Ultimately, the Department of National Defence repurposed the park for military training and the bison disappeared once more.',
+ 'keywords': [
+ 'Biography & Memoir',
+ 'Environmental Studies',
+ 'Political & International Studies',
+ ],
+ 'submitterRole': 'Author',
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'intro.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter4.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter5.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'conclusion.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'bibliography.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'index.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ 'chapters': [
+ {
+ 'title': 'Introduction',
+ 'contributors': ['Jennifer Brower'],
+ files: ['intro.pdf']
+ },
+ {
+ 'title': 'CHAPTER ONE: Where the Buffalo Roamed',
+ 'contributors': ['Jennifer Brower'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'CHAPTER TWO: Bison Conservation and Buffalo National Park',
+ 'contributors': ['Jennifer Brower'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'CHAPTER THREE: A Well-Run Ranch',
+ 'contributors': ['Jennifer Brower'],
+ files: ['chapter3.pdf']
+ },
+ {
+ 'title': 'CHAPTER FOUR: Zookeepers and Animal Breeders',
+ 'contributors': ['Jennifer Brower'],
+ files: ['chapter4.pdf']
+ },
+ {
+ 'title': 'CHAPTER FIVE: "Evolving the Arctic Cow"',
+ 'contributors': ['Jennifer Brower'],
+ files: ['chapter5.pdf']
+ },
+ {
+ 'title': 'CONCLUSION: The Forgotten Park',
+ 'contributors': ['Jennifer Brower'],
+ files: ['conclusion.pdf']
+ },
+ {
+ 'title': 'Bibliography',
+ 'contributors': ['Jennifer Brower'],
+ files: ['bibliography.pdf']
+ },
+ {
+ 'title': 'Index',
+ 'contributors': ['Jennifer Brower'],
+ files: ['index.pdf']
+ }
+ ]
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'jbrower',
+ 'givenName': 'Jennifer',
+ 'familyName': 'Brower',
+ 'affiliation': 'Buffalo National Park Foundation',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ });
+});
diff --git a/cypress/tests/data/60-content/JbrowerSubmission.spec.js b/cypress/tests/data/60-content/JbrowerSubmission.spec.js
deleted file mode 100644
index a64f1f54504..00000000000
--- a/cypress/tests/data/60-content/JbrowerSubmission.spec.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/JbrowerSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'jbrower',
- 'givenName': 'Jennifer',
- 'familyName': 'Brower',
- 'affiliation': 'Buffalo National Park Foundation',
- 'country': 'Canada'
- });
-
- cy.createSubmission({
- 'type': 'monograph',
- 'title': 'Lost Tracks: Buffalo National Park, 1909-1939',
- 'abstract': 'While contemporaries and historians alike hailed the establishment of Buffalo National Park in Wainwright, Alberta as a wildlife saving effort, the political climate of the early 20th century worked against it. The Canadian Parks Branch was never sufficiently funded to operate BNP effectively or to remedy the crises the animals faced as a result. Cross-breeding experiments with bison and domestic cattle proved unfruitful. Attempts at commercializing the herd had no success. Ultimately, the Department of National Defence repurposed the park for military training and the bison disappeared once more.',
- 'keywords': [
- 'Biography & Memoir',
- 'Environmental Studies',
- 'Political & International Studies',
- ],
- 'submitterRole': 'Author',
- 'chapters': [
- {
- 'title': 'Introduction',
- 'contributors': ['Jennifer Brower']
- },
- {
- 'title': 'CHAPTER ONE: Where the Buffalo Roamed',
- 'contributors': ['Jennifer Brower']
- },
- {
- 'title': 'CHAPTER TWO: Bison Conservation and Buffalo National Park',
- 'contributors': ['Jennifer Brower']
- },
- {
- 'title': 'CHAPTER THREE: A Well-Run Ranch',
- 'contributors': ['Jennifer Brower']
- },
- {
- 'title': 'CHAPTER FOUR: Zookeepers and Animal Breeders',
- 'contributors': ['Jennifer Brower']
- },
- {
- 'title': 'CHAPTER FIVE: "Evolving the Arctic Cow"',
- 'contributors': ['Jennifer Brower']
- },
- {
- 'title': 'CONCLUSION: The Forgotten Park',
- 'contributors': ['Jennifer Brower']
- },
- {
- 'title': 'Bibliography',
- 'contributors': ['Jennifer Brower']
- },
- {
- 'title': 'Index',
- 'contributors': ['Jennifer Brower']
- }
- ]
- });
- });
-});
diff --git a/cypress/tests/data/60-content/JlockehartSubmission.cy.js b/cypress/tests/data/60-content/JlockehartSubmission.cy.js
new file mode 100644
index 00000000000..8854747171f
--- /dev/null
+++ b/cypress/tests/data/60-content/JlockehartSubmission.cy.js
@@ -0,0 +1,94 @@
+/**
+ * @file cypress/tests/data/60-content/JlockehartSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'Dreamwork';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'monograph',
+ 'abstract': 'Dreamwork is a poetic exploration of the then and there, here and now, of landscapes and inscapes over time. It is part of a poetry series on dream and its relation to actuality. The poems explore past, present, and future in different places from Canada through New Jersey, New York and New England to England and Europe, part of the speaker’s journey. A typology of home and displacement, of natural beauty and industrial scars unfolds in the movement of the book.',
+ 'submitterRole': 'Author',
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'intro.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'poems.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ 'chapters': [
+ {
+ 'title': 'Introduction',
+ 'contributors': ['Jonathan Locke Hart'],
+ files: ['intro.pdf']
+ },
+ {
+ 'title': 'Poems',
+ 'contributors': ['Jonathan Locke Hart'],
+ files: ['poems.pdf']
+ },
+ ]
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'jlockehart',
+ 'givenName': 'Jonathan',
+ 'familyName': 'Locke Hart',
+ 'affiliation': 'University of Alberta',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Locke Hart');
+ cy.clickDecision('Send to Internal Review');
+ cy.recordDecisionSendToReview('Send to Internal Review', ['Jonathan Locke Hart'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('Internal Review');
+ cy.assignReviewer('Aisla McCrae');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', ['Jonathan Locke Hart'], []);
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Adela Gallego');
+ cy.assignReviewer('Gonzalo Favio');
+ cy.logout();
+
+ cy.performReview('agallego', null, submission.title, null, 'I recommend that the author revise this submission.');
+ cy.performReview('gfavio', null, submission.title, null, 'I recommend that the author resubmit this submission.');
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Locke Hart');
+ cy.clickDecision('Accept Submission');
+ cy.recordDecisionAcceptSubmission(['Jonathan Locke Hart'], ['Adela Gallego', 'Gonzalo Favio'], []);
+ cy.isActiveStageTab('Copyediting');
+ });
+});
diff --git a/cypress/tests/data/60-content/JlockehartSubmission.spec.js b/cypress/tests/data/60-content/JlockehartSubmission.spec.js
deleted file mode 100644
index 88f5cc7c125..00000000000
--- a/cypress/tests/data/60-content/JlockehartSubmission.spec.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/JlockehartSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'jlockehart',
- 'givenName': 'Jonathan',
- 'familyName': 'Locke Hart',
- 'affiliation': 'University of Alberta',
- 'country': 'Canada'
- });
-
- var title = 'Dreamwork';
- cy.createSubmission({
- 'type': 'monograph',
- 'title': title,
- 'abstract': 'Dreamwork is a poetic exploration of the then and there, here and now, of landscapes and inscapes over time. It is part of a poetry series on dream and its relation to actuality. The poems explore past, present, and future in different places from Canada through New Jersey, New York and New England to England and Europe, part of the speaker’s journey. A typology of home and displacement, of natural beauty and industrial scars unfolds in the movement of the book.',
- 'submitterRole': 'Author',
- 'chapters': [
- {
- 'title': 'Introduction',
- 'contributors': ['Jonathan Locke Hart']
- },
- {
- 'title': 'Poems',
- 'contributors': ['Jonathan Locke Hart']
- },
- ]
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Locke Hart');
- cy.sendToReview('Internal');
- cy.get('li.ui-state-active a:contains("Internal Review")');
- cy.assignReviewer('Aisla McCrae');
- cy.sendToReview('External', 'Internal');
- cy.get('li.ui-state-active a:contains("External Review")');
- cy.assignReviewer('Adela Gallego');
- cy.assignReviewer('Gonzalo Favio');
- cy.logout();
-
- cy.performReview('agallego', null, title, null, 'I recommend that the author revise this submission.');
- cy.performReview('gfavio', null, title, null, 'I recommend that the author resubmit this submission.');
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Locke Hart');
- cy.recordEditorialDecision('Accept Submission');
- cy.get('li.ui-state-active a:contains("Copyediting")');
- });
-});
diff --git a/cypress/tests/data/60-content/LelderSubmission.cy.js b/cypress/tests/data/60-content/LelderSubmission.cy.js
new file mode 100644
index 00000000000..29401b71e4f
--- /dev/null
+++ b/cypress/tests/data/60-content/LelderSubmission.cy.js
@@ -0,0 +1,158 @@
+/**
+ * @file cypress/tests/data/60-content/LelderSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'Connecting ICTs to Development';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'editedVolume',
+ 'abstract': 'Over the past two decades, projects supported by the International Development Research Centre (IDRC) have critically examined how information and communications technologies (ICTs) can be used to improve learning, empower the disenfranchised, generate income opportunities for the poor, and facilitate access to healthcare in Africa, Asia, Latin America and the Caribbean. Considering that most development institutions and governments are currently attempting to integrate ICTs into their practices, it is an opportune time to reflect on the research findings that have emerged from IDRC’s work and research in this area.',
+ 'keywords': [
+ 'International Development',
+ 'ICT'
+ ],
+ 'submitterRole': 'Volume editor',
+ 'additionalAuthors': [
+ {
+ 'givenName': {en: 'Heloise'},
+ 'familyName': {en: 'Emdon'},
+ 'country': 'CA',
+ // 'affiliation': '',
+ 'email': 'lelder@mailinator.com',
+ userGroupId: Cypress.env('volumeEditorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Frank'},
+ 'familyName': {en: 'Tulus'},
+ 'country': 'CA',
+ // 'affiliation': '',
+ 'email': 'ftulus@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Raymond'},
+ 'familyName': {en: 'Hyma'},
+ 'country': 'AR',
+ // 'affiliation': '',
+ 'email': 'rhyma@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'John'},
+ 'familyName': {en: 'Valk'},
+ 'country': 'CA',
+ // 'affiliation': '',
+ 'email': 'jvalk@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Khaled'},
+ 'familyName': {en: 'Fourati'},
+ 'country': 'CA',
+ // 'affiliation': '',
+ 'email': 'fkourati@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Jeremy'},
+ 'familyName': {en: 'de Beer'},
+ 'country': 'CA',
+ // 'affiliation': '',
+ 'email': 'jdebeer@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Sara'},
+ 'familyName': {en: 'Bannerman'},
+ 'country': 'CA',
+ // 'affiliation': '',
+ 'email': 'sbannerman@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ }
+ ],
+ 'chapters': [
+ {
+ 'title': 'Catalyzing Access through Social and Technical Innovation',
+ 'contributors': ['Frank Tulus', 'Raymond Hyma'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Catalyzing Access via Telecommunications Policy',
+ 'contributors': ['John Valk', 'Khaled Fourati'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Access to Knowledge as a New Paradigm for Research on ICTs and Intellectual Property',
+ 'contributors': ['Jeremy de Beer', 'Sara Bannerman'],
+ files: ['chapter3.pdf']
+ }
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'lelder',
+ 'givenName': 'Laurent',
+ 'familyName': 'Elder',
+ 'affiliation': 'International Development Research Centre',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Elder');
+ cy.clickDecision('Send to Internal Review');
+ cy.recordDecisionSendToReview('Send to Internal Review', ['Laurent Elder'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('Internal Review');
+ cy.assignReviewer('Julie Janssen');
+ cy.assignReviewer('Paul Hudson');
+ cy.assignReviewer('Aisla McCrae');
+ cy.logout();
+
+ cy.performReview('phudson', null, submission.title, null, 'I recommend declining this submission.');
+ });
+});
diff --git a/cypress/tests/data/60-content/LelderSubmission.spec.js b/cypress/tests/data/60-content/LelderSubmission.spec.js
deleted file mode 100644
index be9bdc4c00f..00000000000
--- a/cypress/tests/data/60-content/LelderSubmission.spec.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/LelderSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'lelder',
- 'givenName': 'Laurent',
- 'familyName': 'Elder',
- 'affiliation': 'International Development Research Centre',
- 'country': 'Canada'
- });
-
- var title = 'Connecting ICTs to Development';
- cy.createSubmission({
- 'type': 'editedVolume',
- 'title': title,
- 'abstract': 'Over the past two decades, projects supported by the International Development Research Centre (IDRC) have critically examined how information and communications technologies (ICTs) can be used to improve learning, empower the disenfranchised, generate income opportunities for the poor, and facilitate access to healthcare in Africa, Asia, Latin America and the Caribbean. Considering that most development institutions and governments are currently attempting to integrate ICTs into their practices, it is an opportune time to reflect on the research findings that have emerged from IDRC’s work and research in this area.',
- 'keywords': [
- 'International Development',
- 'ICT'
- ],
- 'submitterRole': 'Volume editor',
- 'additionalAuthors': [
- {
- 'givenName': 'Heloise',
- 'familyName': 'Emdon',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'lelder@mailinator.com',
- 'role': 'Volume editor'
- },
- {
- 'givenName': 'Frank',
- 'familyName': 'Tulus',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'ftulus@mailinator.com'
- },
- {
- 'givenName': 'Raymond',
- 'familyName': 'Hyma',
- 'country': 'Argentina',
- // 'affiliation': '',
- 'email': 'rhyma@mailinator.com'
- },
- {
- 'givenName': 'John',
- 'familyName': 'Valk',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'jvalk@mailinator.com'
- },
- {
- 'givenName': 'Khaled',
- 'familyName': 'Fourati',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'fkourati@mailinator.com'
- },
- {
- 'givenName': 'Jeremy',
- 'familyName': 'de Beer',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'jdebeer@mailinator.com'
- },
- {
- 'givenName': 'Sara',
- 'familyName': 'Bannerman',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'sbannerman@mailinator.com'
- }
- ],
- 'chapters': [
- {
- 'title': 'Catalyzing Access through Social and Technical Innovation',
- 'contributors': ['Frank Tulus', 'Raymond Hyma']
- },
- {
- 'title': 'Catalyzing Access via Telecommunications Policy',
- 'contributors': ['John Valk', 'Khaled Fourati']
- },
- {
- 'title': 'Access to Knowledge as a New Paradigm for Research on ICTs and Intellectual Property',
- 'contributors': ['Jeremy de Beer', 'Sara Bannerman']
- }
- ],
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Elder');
- cy.sendToReview('Internal');
- cy.get('li.ui-state-active a:contains("Internal Review")');
- cy.assignReviewer('Julie Janssen');
- cy.assignReviewer('Paul Hudson');
- cy.assignReviewer('Aisla McCrae');
- cy.logout();
-
- cy.performReview('phudson', null, title, null, 'I recommend declining this submission.');
- });
-});
diff --git a/cypress/tests/data/60-content/MallySubmission.cy.js b/cypress/tests/data/60-content/MallySubmission.cy.js
new file mode 100644
index 00000000000..c2c8f8ef2ed
--- /dev/null
+++ b/cypress/tests/data/60-content/MallySubmission.cy.js
@@ -0,0 +1,142 @@
+/**
+ * @file cypress/tests/data/60-content/MallySubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'Mobile Learning: Transforming the Delivery of Education and Training';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'editedVolume',
+ 'abstract': 'This collection is for anyone interested in the use of mobile technology for various distance learning applications. Readers will discover how to design learning materials for delivery on mobile technology and become familiar with the best practices of other educators, trainers, and researchers in the field, as well as the most recent initiatives in mobile learning research. Businesses and governments can learn how to deliver timely information to staff using mobile devices. Professors can use this book as a textbook for courses on distance education, mobile learning, and educational technology.',
+ 'keywords': [
+ 'Educational Technology'
+ ],
+ 'submitterRole': 'Volume editor',
+ 'additionalAuthors': [
+ {
+ 'givenName': {en: 'John'},
+ 'familyName': {en: 'Traxler'},
+ 'country': 'GB',
+ // 'affiliation': '',
+ 'email': 'jtraxler@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Marguerite'},
+ 'familyName': {en: 'Koole'},
+ 'country': 'CA',
+ // 'affiliation': '',
+ 'email': 'mkoole@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Torstein'},
+ 'familyName': {en: 'Rekkedal'},
+ 'country': 'NO',
+ // 'affiliation': '',
+ 'email': 'trekkedal@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ ],
+ 'chapters': [
+ {
+ 'title': 'Current State of Mobile Learning',
+ 'contributors': ['John Traxler'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'A Model for Framing Mobile Learning',
+ 'contributors': ['Marguerite Koole'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Mobile Distance Learning with PDAs: Development and Testing of Pedagogical and System Solutions Supporting Mobile Distance Learners',
+ 'contributors': ['Torstein Rekkedal'],
+ files: ['chapter3.pdf']
+ }
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'mally',
+ 'givenName': 'Mohamed',
+ 'familyName': 'Ally',
+ 'affiliation': 'Athabasca University',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Ally');
+
+ // Internal review
+ cy.clickDecision('Send to Internal Review');
+ cy.recordDecisionSendToReview('Send to Internal Review', ['Mohamed Ally'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('Internal Review');
+ cy.assignReviewer('Paul Hudson');
+
+ // External review
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', ['Mohamed Ally'], []);
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Adela Gallego');
+ cy.assignReviewer('Al Zacharia');
+ cy.assignReviewer('Gonzalo Favio');
+
+ cy.logout();
+
+ // Perform reviews
+ cy.performReview('agallego', null, submission.title, null, 'I recommend requiring revisions.');
+ cy.performReview('gfavio', null, submission.title, null, 'I recommend resubmitting.');
+
+ // Accept submission
+ cy.findSubmissionAsEditor('dbarnes', null, 'Ally');
+ cy.clickDecision('Accept Submission');
+ cy.recordDecisionAcceptSubmission(['Mohamed Ally'], ['Adela Gallego', 'Gonzalo Favio'], []);
+ cy.isActiveStageTab('Copyediting');
+ });
+});
diff --git a/cypress/tests/data/60-content/MallySubmission.spec.js b/cypress/tests/data/60-content/MallySubmission.spec.js
deleted file mode 100644
index 92a1dd091a9..00000000000
--- a/cypress/tests/data/60-content/MallySubmission.spec.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/MallySubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'mally',
- 'givenName': 'Mohamed',
- 'familyName': 'Ally',
- 'affiliation': 'Athabasca University',
- 'country': 'Canada'
- });
-
- var title = 'Mobile Learning: Transforming the Delivery of Education and Training';
- cy.createSubmission({
- 'type': 'editedVolume',
- 'title': title,
- 'abstract': 'This collection is for anyone interested in the use of mobile technology for various distance learning applications. Readers will discover how to design learning materials for delivery on mobile technology and become familiar with the best practices of other educators, trainers, and researchers in the field, as well as the most recent initiatives in mobile learning research. Businesses and governments can learn how to deliver timely information to staff using mobile devices. Professors can use this book as a textbook for courses on distance education, mobile learning, and educational technology.',
- 'keywords': [
- 'Educational Technology'
- ],
- 'submitterRole': 'Volume editor',
- 'additionalAuthors': [
- {
- 'givenName': 'John',
- 'familyName': 'Traxler',
- 'country': 'United Kingdom',
- // 'affiliation': '',
- 'email': 'jtraxler@mailinator.com',
- },
- {
- 'givenName': 'Marguerite',
- 'familyName': 'Koole',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'mkoole@mailinator.com',
- },
- {
- 'givenName': 'Torstein',
- 'familyName': 'Rekkedal',
- 'country': 'Norway',
- // 'affiliation': '',
- 'email': 'trekkedal@mailinator.com',
- },
- ],
- 'chapters': [
- {
- 'title': 'Current State of Mobile Learning',
- 'contributors': ['John Traxler'],
- },
- {
- 'title': 'A Model for Framing Mobile Learning',
- 'contributors': ['Marguerite Koole']
- },
- {
- 'title': 'Mobile Distance Learning with PDAs: Development and Testing of Pedagogical and System Solutions Supporting Mobile Distance Learners',
- 'contributors': ['Torstein Rekkedal']
- }
- ],
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Ally');
-
- // Internal review
- cy.sendToReview('Internal');
- cy.get('li.ui-state-active a:contains("Internal Review")');
- cy.assignReviewer('Paul Hudson');
-
- // External review
- cy.sendToReview('External', 'Internal');
- cy.get('li.ui-state-active a:contains("External Review")');
- cy.assignReviewer('Adela Gallego');
- cy.assignReviewer('Al Zacharia');
- cy.assignReviewer('Gonzalo Favio');
-
- cy.logout();
-
- // Perform reviews
- cy.performReview('agallego', null, title, null, 'I recommend requiring revisions.');
- cy.performReview('gfavio', null, title, null, 'I recommend resubmitting.');
-
- // Accept submission
- cy.findSubmissionAsEditor('dbarnes', null, 'Ally');
- cy.recordEditorialDecision('Accept Submission');
- cy.get('li.ui-state-active a:contains("Copyediting")');
- });
-});
diff --git a/cypress/tests/data/60-content/MdawsonSubmission.cy.js b/cypress/tests/data/60-content/MdawsonSubmission.cy.js
new file mode 100644
index 00000000000..0d3b28384da
--- /dev/null
+++ b/cypress/tests/data/60-content/MdawsonSubmission.cy.js
@@ -0,0 +1,212 @@
+/**
+ * @file cypress/tests/data/60-content/MdawsonSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ let author = 'Michael Dawson';
+ before(function() {
+ const title = 'From Bricks to Brains: The Embodied Cognitive Science of LEGO Robots';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'editedVolume',
+ 'series': 'Psychology',
+ seriesId: 5,
+ 'abstract': 'From Bricks to Brains introduces embodied cognitive science, and illustrates its foundational ideas through the construction and observation of LEGO Mindstorms robots. Discussing the characteristics that distinguish embodied cognitive science from classical cognitive science, From Bricks to Brains places a renewed emphasis on sensing and acting, the importance of embodiment, the exploration of distributed notions of control, and the development of theories by synthesizing simple systems and exploring their behaviour. Numerous examples are used to illustrate a key theme: the importance of an agent’s environment. Even simple agents, such as LEGO robots, are capable of exhibiting complex behaviour when they can sense and affect the world around them.',
+ 'keywords': [
+ 'Psychology'
+ ],
+ 'submitterRole': 'Volume editor',
+ 'additionalAuthors': [
+ {
+ 'givenName': {en: 'Brian'},
+ 'familyName': {en: 'Dupuis'},
+ 'country': 'CA',
+ 'affiliation': {en: 'Athabasca University'},
+ 'email': 'bdupuis@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Michael'},
+ 'familyName': {en: 'Wilson'},
+ 'country': 'CA',
+ 'affiliation': {en: 'University of Calgary'},
+ 'email': 'mwilson@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ }
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter4.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'fileTitle': 'Segmentation of Vascular Ultrasound Image Sequences.',
+ 'fileName': 'Segmentation of Vascular Ultrasound Image Sequences.'.substr(0, 40) + '.pdf',
+ 'file': 'dummy.pdf',
+ 'genre': 'Other',
+ 'metadata': {
+ 'creator-en': 'Baris Kanber',
+ 'description-en': 'A presentation entitled "Segmentation of Vascular Ultrasound Image Sequences".',
+ 'language': 'en'
+ }
+ },
+ {
+ 'fileTitle': 'The Canadian Nutrient File: Nutrient Value of Some Common Foods',
+ 'fileName': 'The Canadian Nutrient File: Nutrient Value of Some Common Foods'.substr(0, 40) + '.pdf',
+ 'file': 'dummy.pdf',
+ 'genre': 'Table',
+ 'metadata': {
+ 'creator-en': 'Health Canada',
+ 'publisher-en': 'Health Canada',
+ 'description-en': 'Published by Health Canada, the Nutrient Value of Some Common Foods (NVSCF) provides Canadians with a resource that lists 19 nutrients for 1000 of the most commonly consumed foods in Canada. Use this quick and easy reference to help make informed food choices through an understanding of the nutrient content of the foods you eat. For further information, a booklet is available on this site in a downloadable or printable pdf format.',
+ 'source-en': 'http://open.canada.ca/data/en/dataset/a289fd54-060c-4a96-9fcf-b1c6e706426f',
+ 'subject-en': 'Health and Safety',
+ 'dateCreated': '2013-05-23',
+ 'language': 'en'
+ }
+ }
+ ],
+ 'chapters': [
+ {
+ 'title': 'Chapter 1: Mind Control—Internal or External?',
+ 'contributors': ['Michael Dawson'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Chapter 2: Classical Music and the Classical Mind',
+ 'contributors': ['Brian Dupuis'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Chapter 3: Situated Cognition and Bricolage',
+ 'contributors': ['Michael Wilson'],
+ files: ['chapter3.pdf']
+ },
+ {
+ 'title': 'Chapter 4: Braitenberg’s Vehicle 2',
+ 'contributors': ['Michael Dawson'],
+ files: ['chapter4.pdf']
+ }
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'mdawson',
+ 'givenName': 'Michael',
+ 'familyName': 'Dawson',
+ 'affiliation': 'University of Alberta',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Dawson');
+ cy.clickDecision('Send to Internal Review');
+ cy.recordDecisionSendToReview('Send to Internal Review', [author], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('Internal Review');
+ cy.assignReviewer('Julie Janssen');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', [author], []);
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Al Zacharia');
+ cy.clickDecision('Accept Submission');
+ cy.recordDecisionAcceptSubmission([author], [], []);
+ cy.isActiveStageTab('Copyediting');
+ cy.assignParticipant('Copyeditor', 'Maria Fritz');
+ cy.clickDecision('Send To Production');
+ cy.recordDecisionSendToProduction([author], []);
+ cy.isActiveStageTab('Production');
+ cy.assignParticipant('Layout Editor', 'Graham Cox');
+ cy.assignParticipant('Proofreader', 'Sabine Kumar');
+
+ // Add a publication format
+ cy.get('button[id="publication-button"]').click();
+ cy.get('button[id="publicationFormats-button"]').click();
+ cy.get('*[id^="component-grid-catalogentry-publicationformatgrid-addFormat-button-"]').click();
+ cy.wait(1000); // Avoid occasional failure due to form init taking time
+ cy.get('input[id^="name-en-"]').type('PDF', {delay: 0});
+ cy.get('div.pkp_modal_panel div.header:contains("Add publication format")').click(); // FIXME: Focus problem with multilingual input
+ cy.get('button:contains("OK")').click();
+
+ // Select proof files
+ cy.get('table[id*="component-grid-catalogentry-publicationformatgrid"] span:contains("PDF"):parent() a[id*="-name-selectFiles-button-"]').click();
+ cy.get('*[id=allStages]').click();
+ var proofFiles = [];
+ submission.chapters.forEach(chapter => {
+ proofFiles.push(chapter.files[0]);
+ });
+ proofFiles.push('Segmentation of Vascular Ultrasound Image Sequences.');
+ proofFiles.push('The Canadian Nutrient File: Nutrient Value of Some Common Foods');
+ proofFiles.forEach(proofFile => {
+ cy.get('tbody[id^="component-grid-files-proof-manageprooffilesgrid-category-"] a:contains("' + Cypress.$.escapeSelector(proofFile.substring(0, 40)) + '"):first').parents('tr.gridRow').find('input[type=checkbox]').click();
+ });
+ cy.get('form[id="manageProofFilesForm"] button[id^="submitFormButton"]').click();
+ cy.waitJQuery();
+
+ // Approvals for PDF publication format
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("PDF") a[id*="-isComplete-approveRepresentation-button-"]').click();
+ cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
+ cy.waitJQuery();
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("PDF") a[id*="-isAvailable-availableRepresentation-button-"]').click();
+ cy.get('.pkpModalConfirmButton').click();
+
+ // Approvals for files
+ proofFiles.forEach(proofFile => {
+ cy.waitJQuery();
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("' + Cypress.$.escapeSelector(proofFile.substring(0, 40)) + '") a[id*="-isComplete-not_approved-button-"]').click();
+ cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
+
+ // File availability
+ cy.waitJQuery();
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("' + Cypress.$.escapeSelector(proofFile.substring(0, 40)) + '") a[id*="-isAvailable-editApprovedProof-button-"]').click();
+ cy.get('input[id="openAccess"]').click();
+ cy.get('form#approvedProofForm button.submitFormButton').click();
+ });
+
+ // Add to catalog
+ cy.addToCatalog();
+ });
+});
diff --git a/cypress/tests/data/60-content/MdawsonSubmission.spec.js b/cypress/tests/data/60-content/MdawsonSubmission.spec.js
deleted file mode 100644
index 6c85265aeb9..00000000000
--- a/cypress/tests/data/60-content/MdawsonSubmission.spec.js
+++ /dev/null
@@ -1,163 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/MdawsonSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'mdawson',
- 'givenName': 'Michael',
- 'familyName': 'Dawson',
- 'affiliation': 'University of Alberta',
- 'country': 'Canada'
- });
-
- var title = 'From Bricks to Brains: The Embodied Cognitive Science of LEGO Robots', chapters, additionalFiles;
- cy.createSubmission({
- 'type': 'editedVolume',
- 'series': 'Psychology',
- 'title': title,
- 'abstract': 'From Bricks to Brains introduces embodied cognitive science, and illustrates its foundational ideas through the construction and observation of LEGO Mindstorms robots. Discussing the characteristics that distinguish embodied cognitive science from classical cognitive science, From Bricks to Brains places a renewed emphasis on sensing and acting, the importance of embodiment, the exploration of distributed notions of control, and the development of theories by synthesizing simple systems and exploring their behaviour. Numerous examples are used to illustrate a key theme: the importance of an agent’s environment. Even simple agents, such as LEGO robots, are capable of exhibiting complex behaviour when they can sense and affect the world around them.',
- 'keywords': [
- 'Psychology'
- ],
- 'submitterRole': 'Volume editor',
- 'additionalAuthors': [
- {
- 'givenName': 'Brian',
- 'familyName': 'Dupuis',
- 'country': 'Canada',
- 'affiliation': 'Athabasca University',
- 'email': 'bdupuis@mailinator.com',
- 'role': 'Author'
- },
- {
- 'givenName': 'Michael',
- 'familyName': 'Wilson',
- 'country': 'Canada',
- 'affiliation': 'University of Calgary',
- 'email': 'mwilson@mailinator.com',
- 'role': 'Author'
- }
- ],
- 'chapters': chapters = [
- {
- 'title': 'Chapter 1: Mind Control—Internal or External?',
- 'contributors': ['Michael Dawson']
- },
- {
- 'title': 'Chapter 2: Classical Music and the Classical Mind',
- 'contributors': ['Brian Dupuis']
- },
- {
- 'title': 'Chapter 3: Situated Cognition and Bricolage',
- 'contributors': ['Michael Wilson']
- },
- {
- 'title': 'Chapter 4: Braitenberg’s Vehicle 2',
- 'contributors': ['Michael Dawson']
- }
- ],
- 'additionalFiles': additionalFiles = [
- {
- 'fileTitle': 'Segmentation of Vascular Ultrasound Image Sequences.',
- 'fileName': 'Segmentation of Vascular Ultrasound Image Sequences.'.substr(0, 40) + '.pdf',
- 'file': 'dummy.pdf',
- 'genre': 'Other',
- 'metadata': {
- 'creator-en_US': 'Baris Kanber',
- 'description-en_US': 'A presentation entitled "Segmentation of Vascular Ultrasound Image Sequences".',
- 'language': 'en'
- }
- },
- {
- 'fileTitle': 'The Canadian Nutrient File: Nutrient Value of Some Common Foods',
- 'fileName': 'The Canadian Nutrient File: Nutrient Value of Some Common Foods'.substr(0, 40) + '.pdf',
- 'file': 'dummy.pdf',
- 'genre': 'Table',
- 'metadata': {
- 'creator-en_US': 'Health Canada',
- 'publisher-en_US': 'Health Canada',
- 'description-en_US': 'Published by Health Canada, the Nutrient Value of Some Common Foods (NVSCF) provides Canadians with a resource that lists 19 nutrients for 1000 of the most commonly consumed foods in Canada. Use this quick and easy reference to help make informed food choices through an understanding of the nutrient content of the foods you eat. For further information, a booklet is available on this site in a downloadable or printable pdf format.',
- 'source-en_US': 'http://open.canada.ca/data/en/dataset/a289fd54-060c-4a96-9fcf-b1c6e706426f',
- 'subject-en_US': 'Health and Safety',
- 'dateCreated': '2013-05-23',
- 'language': 'en'
- }
- }
- ]
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Dawson');
- cy.sendToReview('Internal');
- cy.get('li.ui-state-active a:contains("Internal Review")');
- cy.assignReviewer('Julie Janssen');
- cy.sendToReview('External', 'Internal');
- cy.get('li.ui-state-active a:contains("External Review")');
- cy.assignReviewer('Al Zacharia');
- cy.recordEditorialDecision('Accept Submission');
- cy.get('li.ui-state-active a:contains("Copyediting")');
- cy.assignParticipant('Copyeditor', 'Maria Fritz');
- cy.recordEditorialDecision('Send To Production');
- cy.get('li.ui-state-active a:contains("Production")');
- cy.assignParticipant('Layout Editor', 'Graham Cox');
- cy.assignParticipant('Proofreader', 'Sabine Kumar');
-
- // Add a publication format
- cy.get('button[id="publication-button"]').click();
- cy.get('button[id="publicationFormats-button"]').click();
- cy.get('*[id^="component-grid-catalogentry-publicationformatgrid-addFormat-button-"]').click();
- cy.wait(1000); // Avoid occasional failure due to form init taking time
- cy.get('input[id^="name-en_US-"]').type('PDF', {delay: 0});
- cy.get('div.pkp_modal_panel div.header:contains("Add publication format")').click(); // FIXME: Focus problem with multilingual input
- cy.get('button:contains("OK")').click();
-
- // Select proof files
- cy.get('table[id*="component-grid-catalogentry-publicationformatgrid"] span:contains("PDF"):parent() a[id*="-name-selectFiles-button-"]').click();
- cy.get('*[id=allStages]').click();
- var proofFiles = [];
- chapters.forEach(chapter => {
- proofFiles.push(chapter.title);
- });
- additionalFiles.forEach(additionalFile => {
- proofFiles.push(additionalFile.fileTitle);
- });
- proofFiles.forEach(proofFile => {
- cy.get('tbody[id^="component-grid-files-proof-manageprooffilesgrid-category-"] a:contains("' + Cypress.$.escapeSelector(proofFile.substring(0, 40)) + '"):first').parents('tr.gridRow').find('input[type=checkbox]').click();
- });
- cy.get('form[id="manageProofFilesForm"] button[id^="submitFormButton"]').click();
- cy.waitJQuery();
-
- // Approvals for PDF publication format
- cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("PDF") a[id*="-isComplete-approveRepresentation-button-"]').click();
- cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
- cy.waitJQuery();
- cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("PDF") a[id*="-isAvailable-availableRepresentation-button-"]').click();
- cy.get('.pkpModalConfirmButton').click();
-
- // Approvals for files
- proofFiles.forEach(proofFile => {
- cy.waitJQuery();
- cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("' + Cypress.$.escapeSelector(proofFile.substring(0, 40)) + '") a[id*="-isComplete-not_approved-button-"]').click();
- cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
-
- // File availability
- cy.waitJQuery();
- cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("' + Cypress.$.escapeSelector(proofFile.substring(0, 40)) + '") a[id*="-isAvailable-editApprovedProof-button-"]').click();
- cy.get('input[id="openAccess"]').click();
- cy.get('form#approvedProofForm button.submitFormButton').click();
- });
-
- // Add to catalog
- cy.addToCatalog();
- });
-});
diff --git a/cypress/tests/data/60-content/MforanSubmission.cy.js b/cypress/tests/data/60-content/MforanSubmission.cy.js
new file mode 100644
index 00000000000..3c2912e692d
--- /dev/null
+++ b/cypress/tests/data/60-content/MforanSubmission.cy.js
@@ -0,0 +1,90 @@
+/**
+ * @file cypress/tests/data/60-content/MforanSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'Expansive Discourses: Urban Sprawl in Calgary, 1945-1978';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'monograph',
+ 'abstract': 'A groundbreaking study of urban sprawl in Calgary after the Second World War. The interactions of land developers and the local government influenced how the pattern grew: developers met market demands and optimized profits by building houses as efficiently as possible, while the City had to consider wider planning constraints and infrastructure costs. Foran examines the complexity of their interactions from a historical perspective, why each party acted as it did, and where each can be criticized.',
+ 'submitterRole': 'Author',
+ 'chapters': [
+ {
+ 'title': 'Setting the Stage',
+ 'contributors': ['Max Foran'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Going It Alone, 1945-1954',
+ 'contributors': ['Max Foran'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Establishing the Pattern, 1955-1962',
+ 'contributors': ['Max Foran'],
+ files: ['chapter3.pdf']
+ },
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'mforan',
+ 'givenName': 'Max',
+ 'familyName': 'Foran',
+ 'affiliation': 'University of Calgary',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Foran');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', ['Max Foran'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('External Review');
+ });
+});
diff --git a/cypress/tests/data/60-content/MforanSubmission.spec.js b/cypress/tests/data/60-content/MforanSubmission.spec.js
deleted file mode 100644
index d325a2e4416..00000000000
--- a/cypress/tests/data/60-content/MforanSubmission.spec.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/MforanSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'mforan',
- 'givenName': 'Max',
- 'familyName': 'Foran',
- 'affiliation': 'University of Calgary',
- 'country': 'Canada'
- });
-
- var title = 'Expansive Discourses: Urban Sprawl in Calgary, 1945-1978';
- cy.createSubmission({
- 'type': 'monograph',
- 'title': title,
- 'abstract': 'A groundbreaking study of urban sprawl in Calgary after the Second World War. The interactions of land developers and the local government influenced how the pattern grew: developers met market demands and optimized profits by building houses as efficiently as possible, while the City had to consider wider planning constraints and infrastructure costs. Foran examines the complexity of their interactions from a historical perspective, why each party acted as it did, and where each can be criticized.',
- 'submitterRole': 'Author',
- 'chapters': [
- {
- 'title': 'Setting the Stage',
- 'contributors': ['Max Foran']
- },
- {
- 'title': 'Going It Alone, 1945-1954',
- 'contributors': ['Max Foran']
- },
- {
- 'title': 'Establishing the Pattern, 1955-1962',
- 'contributors': ['Max Foran']
- },
- ],
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Foran');
- cy.sendToReview('External');
- cy.get('li.ui-state-active a:contains("External Review")');
- });
-});
diff --git a/cypress/tests/data/60-content/MpowerSubmission.cy.js b/cypress/tests/data/60-content/MpowerSubmission.cy.js
new file mode 100644
index 00000000000..5c93fafaeca
--- /dev/null
+++ b/cypress/tests/data/60-content/MpowerSubmission.cy.js
@@ -0,0 +1,118 @@
+/**
+ * @file cypress/tests/data/60-content/MpowerSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'A Designer\'s Log: Case Studies in Instructional Design';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'monograph',
+ 'abstract': 'Books and articles on instructional design in online learning abound but rarely do we get such a comprehensive picture of what instructional designers do, how they do it, and the problems they solve as their university changes. Power documents the emergence of an adapted instructional design model for transforming courses from single-mode to dual-mode instruction, making this designer’s log a unique contribution to the fi eld of online learning.',
+ 'submitterRole': 'Author',
+ 'chapters': [
+ {
+ 'title': 'Foreward',
+ 'contributors': ['Michael Power'],
+ files: ['foreward.pdf']
+ },
+ {
+ 'title': 'Preface',
+ 'contributors': ['Michael Power'],
+ files: ['preface.pdf']
+ },
+ {
+ 'title': 'The Case Studies',
+ 'contributors': ['Michael Power'],
+ files: ['cases.pdf']
+ },
+ {
+ 'title': 'Conclusion',
+ 'contributors': ['Michael Power'],
+ files: ['conclusion.pdf']
+ },
+ {
+ 'title': 'Bibliography',
+ 'contributors': ['Michael Power'],
+ files: ['bibliography.pdf']
+ }
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'foreward.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'preface.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'cases.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'conclusion.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'bibliography.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'mpower',
+ 'givenName': 'Michael',
+ 'familyName': 'Power',
+ 'affiliation': 'London School of Economics',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Power');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', ['Michael Power'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Adela Gallego');
+ cy.assignReviewer('Al Zacharia');
+ cy.assignReviewer('Gonzalo Favio');
+ cy.logout();
+
+ cy.performReview('agallego', null, submission.title, null, 'I recommend that the author revise this submission.');
+ });
+});
diff --git a/cypress/tests/data/60-content/MpowerSubmission.spec.js b/cypress/tests/data/60-content/MpowerSubmission.spec.js
deleted file mode 100644
index f4c4030a293..00000000000
--- a/cypress/tests/data/60-content/MpowerSubmission.spec.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/MpowerSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'mpower',
- 'givenName': 'Michael',
- 'familyName': 'Power',
- 'affiliation': 'London School of Economics',
- 'country': 'Canada'
- });
-
- var title = 'A Designer\'s Log: Case Studies in Instructional Design';
- cy.createSubmission({
- 'type': 'monograph',
- 'title': title,
- 'abstract': 'Books and articles on instructional design in online learning abound but rarely do we get such a comprehensive picture of what instructional designers do, how they do it, and the problems they solve as their university changes. Power documents the emergence of an adapted instructional design model for transforming courses from single-mode to dual-mode instruction, making this designer’s log a unique contribution to the fi eld of online learning.',
- 'submitterRole': 'Author',
- 'chapters': [
- {
- 'title': 'Foreward',
- 'contributors': ['Michael Power']
- },
- {
- 'title': 'Preface',
- 'contributors': ['Michael Power']
- },
- {
- 'title': 'The Case Studies',
- 'contributors': ['Michael Power']
- },
- {
- 'title': 'Conclusion',
- 'contributors': ['Michael Power']
- },
- {
- 'title': 'Bibliography',
- 'contributors': ['Michael Power']
- }
- ],
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Power');
- cy.sendToReview('External');
- cy.get('li.ui-state-active a:contains("External Review")');
- cy.assignReviewer('Adela Gallego');
- cy.assignReviewer('Al Zacharia');
- cy.assignReviewer('Gonzalo Favio');
- cy.logout();
-
- cy.performReview('agallego', null, title, null, 'I recommend that the author revise this submission.');
- });
-});
diff --git a/cypress/tests/data/60-content/MsmithSubmission.cy.js b/cypress/tests/data/60-content/MsmithSubmission.cy.js
new file mode 100644
index 00000000000..946f1edd808
--- /dev/null
+++ b/cypress/tests/data/60-content/MsmithSubmission.cy.js
@@ -0,0 +1,187 @@
+/**
+ * @file cypress/tests/data/60-content/MsmithSubmission.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_data
+ *
+ * @brief Data build suite: Create submission
+ */
+
+describe('Data suite tests', function() {
+
+ let submission;
+ before(function() {
+ const title = 'Open Development: Networked Innovations in International Development';
+ submission = {
+ id: 0,
+ prefix: '',
+ title: title,
+ subtitle: '',
+ 'type': 'editedVolume',
+ 'abstract': 'The emergence of open networked models made possible by digital technology has the potential to transform international development. Open network structures allow people to come together to share information, organize, and collaborate. Open development harnesses this power to create new organizational forms and improve people’s lives; it is not only an agenda for research and practice but also a statement about how to approach international development. In this volume, experts explore a variety of applications of openness, addressing challenges as well as opportunities.',
+ 'keywords': [
+ 'International Development',
+ 'ICT'
+ ],
+ 'submitterRole': 'Volume editor',
+ 'additionalAuthors': [
+ {
+ 'givenName': {en: 'Yochai'},
+ 'familyName': {en: 'Benkler'},
+ 'country': 'US',
+ // 'affiliation': '',
+ 'email': 'ybenkler@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Katherine'},
+ 'familyName': {en: 'Reilly'},
+ 'country': 'CA',
+ // 'affiliation': '',
+ 'email': 'kreilly@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Melissa'},
+ 'familyName': {en: 'Loudon'},
+ 'country': 'US',
+ // 'affiliation': '',
+ 'email': 'mloudon@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Ulrike'},
+ 'familyName': {en: 'Rivett'},
+ 'country': 'SA',
+ // 'affiliation': '',
+ 'email': 'urivett@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Mark'},
+ 'familyName': {en: 'Graham'},
+ 'country': 'GB',
+ // 'affiliation': '',
+ 'email': 'mgraham@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Håvard'},
+ 'familyName': {en: 'Haarstad'},
+ 'country': 'NO',
+ // 'affiliation': '',
+ 'email': 'hhaarstad@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ 'givenName': {en: 'Marshall'},
+ 'familyName': {en: 'Smith'},
+ 'country': 'US',
+ // 'affiliation': '',
+ 'email': 'masmith@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ }
+ ],
+ files: [
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'preface.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'introduction.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter1.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter2.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter3.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ {
+ 'file': 'dummy.pdf',
+ 'fileName': 'chapter4.pdf',
+ 'mimeType': 'application/pdf',
+ 'genre': Cypress.env('defaultGenre')
+ },
+ ],
+ 'chapters': [
+ {
+ 'title': 'Preface',
+ 'contributors': ['Yochai Benkler'],
+ files: ['preface.pdf']
+ },
+ {
+ 'title': 'Introduction',
+ 'contributors': ['Matthew Smith', 'Katherine Reilly'],
+ files: ['introduction.pdf']
+ },
+ {
+ 'title': 'The Emergence of Open Development in a Network Society',
+ 'contributors': ['Matthew Smith', 'Katherine Reilly'],
+ files: ['chapter1.pdf']
+ },
+ {
+ 'title': 'Enacting Openness in ICT4D Research',
+ 'contributors': ['Melissa Loudon', 'Ulrike Rivett'],
+ files: ['chapter2.pdf']
+ },
+ {
+ 'title': 'Transparency and Development: Ethical Consumption through Web 2.0 and the Internet of Things',
+ 'contributors': ['Mark Graham', 'Håvard Haarstad'],
+ files: ['chapter3.pdf']
+ },
+ {
+ 'title': 'Open Educational Resources: Opportunities and Challenges for the Developing World',
+ 'contributors': ['Marshall Smith'],
+ files: ['chapter4.pdf']
+ }
+ ]
+ }
+ });
+
+ it('Create a submission', function() {
+ cy.register({
+ 'username': 'msmith',
+ 'givenName': 'Matthew',
+ 'familyName': 'Smith',
+ 'affiliation': 'International Development Research Centre',
+ 'country': 'Canada'
+ });
+
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ });
+ cy.logout();
+
+ cy.findSubmissionAsEditor('dbarnes', null, 'Smith');
+ cy.clickDecision('Send to Internal Review');
+ cy.recordDecisionSendToReview('Send to Internal Review', ['Matthew Smith'], submission.files.map(file => file.fileName));
+ cy.isActiveStageTab('Internal Review');
+ cy.assignReviewer('Julie Janssen');
+ cy.assignReviewer('Paul Hudson');
+ });
+});
diff --git a/cypress/tests/data/60-content/MsmithSubmission.spec.js b/cypress/tests/data/60-content/MsmithSubmission.spec.js
deleted file mode 100644
index 9a07dad3735..00000000000
--- a/cypress/tests/data/60-content/MsmithSubmission.spec.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * @file cypress/tests/data/60-content/MsmithSubmission.spec.js
- *
- * 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.
- *
- * @ingroup tests_data
- *
- * @brief Data build suite: Create submission
- */
-
-describe('Data suite tests', function() {
- it('Create a submission', function() {
- cy.register({
- 'username': 'msmith',
- 'givenName': 'Matthew',
- 'familyName': 'Smith',
- 'affiliation': 'International Development Research Centre',
- 'country': 'Canada'
- });
-
- var title = 'Open Development: Networked Innovations in International Development';
- cy.createSubmission({
- 'type': 'editedVolume',
- 'title': title,
- 'abstract': 'The emergence of open networked models made possible by digital technology has the potential to transform international development. Open network structures allow people to come together to share information, organize, and collaborate. Open development harnesses this power to create new organizational forms and improve people’s lives; it is not only an agenda for research and practice but also a statement about how to approach international development. In this volume, experts explore a variety of applications of openness, addressing challenges as well as opportunities.',
- 'keywords': [
- 'International Development',
- 'ICT'
- ],
- 'submitterRole': 'Volume editor',
- 'additionalAuthors': [
- {
- 'givenName': 'Yochai',
- 'familyName': 'Benkler',
- 'country': 'United States',
- // 'affiliation': '',
- 'email': 'ybenkler@mailinator.com'
- },
- {
- 'givenName': 'Katherine',
- 'familyName': 'Reilly',
- 'country': 'Canada',
- // 'affiliation': '',
- 'email': 'kreilly@mailinator.com'
- },
- {
- 'givenName': 'Melissa',
- 'familyName': 'Loudon',
- 'country': 'United States',
- // 'affiliation': '',
- 'email': 'mloudon@mailinator.com'
- },
- {
- 'givenName': 'Ulrike',
- 'familyName': 'Rivett',
- 'country': 'South Africa',
- // 'affiliation': '',
- 'email': 'urivett@mailinator.com'
- },
- {
- 'givenName': 'Mark',
- 'familyName': 'Graham',
- 'country': 'United Kingdom',
- // 'affiliation': '',
- 'email': 'mgraham@mailinator.com'
- },
- {
- 'givenName': 'Håvard',
- 'familyName': 'Haarstad',
- 'country': 'Norway',
- // 'affiliation': '',
- 'email': 'hhaarstad@mailinator.com'
- },
- {
- 'givenName': 'Marshall',
- 'familyName': 'Smith',
- 'country': 'United States',
- // 'affiliation': '',
- 'email': 'masmith@mailinator.com'
- }
- ],
- 'chapters': [
- {
- 'title': 'Preface',
- 'contributors': ['Yochai Benkler']
- },
- {
- 'title': 'Introduction',
- 'contributors': ['Matthew Smith', 'Katherine Reilly']
- },
- {
- 'title': 'The Emergence of Open Development in a Network Society',
- 'contributors': ['Matthew Smith', 'Katherine Reilly']
- },
- {
- 'title': 'Enacting Openness in ICT4D Research',
- 'contributors': ['Melissa Loudon', 'Ulrike Rivett']
- },
- {
- 'title': 'Transparency and Development: Ethical Consumption through Web 2.0 and the Internet of Things',
- 'contributors': ['Mark Graham', 'Håvard Haarstad']
- },
- {
- 'title': 'Open Educational Resources: Opportunities and Challenges for the Developing World',
- 'contributors': ['Marshall Smith']
- }
- ]
- });
- cy.logout();
-
- cy.findSubmissionAsEditor('dbarnes', null, 'Smith');
- cy.sendToReview('Internal');
- cy.get('li.ui-state-active a:contains("Internal Review")');
- cy.assignReviewer('Julie Janssen');
- cy.assignReviewer('Paul Hudson');
- });
-});
diff --git a/cypress/tests/integration/API.cy.js b/cypress/tests/integration/API.cy.js
new file mode 100644
index 00000000000..69e2108e4a9
--- /dev/null
+++ b/cypress/tests/integration/API.cy.js
@@ -0,0 +1,67 @@
+/**
+ * @file cypress/tests/integration/API.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('API tests', function() {
+ it('Sets an API secret', function() {
+ // Before API keys will function, an API key secret must be set in the configuration file.
+ // This test is used to ensure one is set. (The default configuration file has an empty secret.)
+ cy.readFile('config.inc.php').then((text) => {
+ cy.writeFile('config.inc.php',
+ text.replace("api_key_secret = \"\"", "api_key_secret = \"Api_Key_Secret_For_Testing_Purposes_Only\"")
+ );
+ });
+ });
+
+ it("Configures an author's API key", function() {
+ cy.login('callan', null, 'publicknowledge');
+ cy.get('.app__userNav button').click();
+ cy.get('a:contains("Edit Profile")').click();
+ cy.get('a[name="apiSettings"]').click();
+ cy.get("body").then($body => {
+ if ($body.find("button:contains(\"Delete\")").length > 0) {
+ cy.get('form[id="apiProfileForm"] button:contains("Delete")').click();
+ cy.waitJQuery();
+ cy.on('window:confirm', (text) => {
+ return true;
+ });
+ cy.waitJQuery();
+ }
+ });
+ cy.get('form[id="apiProfileForm"] button:contains("Create API Key")').click();
+ cy.waitJQuery();
+ cy.get('span:contains("Your changes have been saved.")');
+ cy.get('input[id^="apiKey-"]').invoke('val').as('apiKey').then(function() {
+ cy.log(this.apiKey);
+ });
+ cy.logout();
+ });
+
+ it("Lists submissions using an author's API key", function() {
+ cy.request('index.php/publicknowledge/api/v1/submissions?apiToken=' + this.apiKey).then(response => {
+ // The author only has a single submission; submissions from other users should not be included.
+ expect(response.body.items.length).eq(1);
+ });
+ });
+
+ it("Deletes an author's API key", function() {
+ cy.login('callan', null, 'publicknowledge');
+ cy.get('.app__userNav button').click();
+ cy.get('a:contains("Edit Profile")').click();
+ cy.get('a[name="apiSettings"]').click();
+ cy.get('form[id="apiProfileForm"] button:contains("Delete")').click();
+ cy.waitJQuery();
+ cy.on('window:confirm', (text) => {
+ return true;
+ });
+ cy.waitJQuery();
+ cy.get('span:contains("Your changes have been saved.")');
+ cy.get('input[id^="apiKey-"]').invoke('val').should('eq', 'None');
+ cy.logout();
+ });
+})
diff --git a/cypress/tests/integration/CatalogSearch.cy.js b/cypress/tests/integration/CatalogSearch.cy.js
new file mode 100644
index 00000000000..422a60f8411
--- /dev/null
+++ b/cypress/tests/integration/CatalogSearch.cy.js
@@ -0,0 +1,34 @@
+/**
+ * @file cypress/tests/integration/CatalogSearch.cy.js
+ *
+ * Copyright (c) 2016-2021 Simon Fraser University
+ * Copyright (c) 2000-2021 John Willinsky
+ * Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
+ *
+ * @brief Test for catalog search
+ */
+
+describe('Data suite tests', function() {
+ it('Searches for something that should exist', function() {
+ // Search for "bomb"
+ cy.visit('');
+ cy.get('a').contains('Search').click();
+ cy.get('input[name="query"]').type('bomb', {delay: 0});
+ cy.get('button:contains("Search")').click();
+
+ // Should be 1 result
+ cy.get('div[role="status"]').contains('One title was found');
+ cy.get('a').contains("Bomb Canada and Other Unkind Remarks in the American Media");
+ });
+
+ it('Searches for something that should not exist', function() {
+ // Search for "zorg"
+ cy.visit('');
+ cy.get('a').contains('Search').click();
+ cy.get('input[name="query"]').type('zorg', {delay: 0});
+ cy.get('button:contains("Search")').click();
+
+ // Should be 0 results
+ cy.get('div[role="status"]').contains('No titles were found');
+ });
+});
diff --git a/cypress/tests/integration/CatalogSearch.spec.js b/cypress/tests/integration/CatalogSearch.spec.js
deleted file mode 100644
index 9c0716b73cd..00000000000
--- a/cypress/tests/integration/CatalogSearch.spec.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * @file cypress/tests/integration/CatalogSearch.spec.js
- *
- * Copyright (c) 2016-2021 Simon Fraser University
- * Copyright (c) 2000-2021 John Willinsky
- * Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
- *
- * @brief Test for catalog search
- */
-
-describe('Data suite tests', function() {
- it('Searches for something that should exist', function() {
- // Search for "bomb"
- cy.visit('');
- cy.get('a').contains('Search').click();
- cy.get('input[name="query"]').type('bomb', {delay: 0});
- cy.get('button:contains("Search")').click();
-
- // Should be 1 result
- cy.get('div[role="status"]').contains('One title was found');
- cy.get('a').contains("Bomb Canada and Other Unkind Remarks in the American Media");
- });
-
- it('Searches for something that should not exist', function() {
- // Search for "zorg"
- cy.visit('');
- cy.get('a').contains('Search').click();
- cy.get('input[name="query"]').type('zorg', {delay: 0});
- cy.get('button:contains("Search")').click();
-
- // Should be 0 results
- cy.get('div[role="status"]').contains('No titles were found');
- });
-});
diff --git a/cypress/tests/integration/CompetingInterests.cy.js b/cypress/tests/integration/CompetingInterests.cy.js
new file mode 100644
index 00000000000..f05956547eb
--- /dev/null
+++ b/cypress/tests/integration/CompetingInterests.cy.js
@@ -0,0 +1,122 @@
+/**
+ * @file tests/functional/setup/CompetingInterestsTest.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 CompetingInterestsTest
+ * @ingroup tests_functional_setup
+ *
+ * @brief Test for competing interests setup
+ */
+
+describe('Data suite tests', function() {
+ const fullTitle = 'Lost Tracks: Buffalo National Park, 1909-1939';
+
+ it('Tests with Competing Interests disabled', function() {
+ // Send the submission to review
+ cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
+ cy.clickDecision('Send to External Review');
+ cy.recordDecisionSendToReview('Send to External Review', ['Jennifer Brower'], []);
+ cy.isActiveStageTab('External Review');
+ cy.assignReviewer('Adela Gallego');
+ cy.logout();
+
+ // Submit review with no competing interests
+ cy.login('agallego', null, 'publicknowledge');
+ cy.get('a:contains("View Lost Tracks")').click({force: true});
+
+ cy.get('form#reviewStep1Form');
+ cy.get('label[for="noCompetingInterests"]').should('not.exist');
+ cy.get('input[id="privacyConsent"]').click();
+ cy.get('button:contains("Accept Review, Continue to Step #2")').click();
+ cy.get('button:contains("Continue to Step #3")').click();
+ cy.wait(2000); // Give TinyMCE control time to load
+ cy.get('textarea[id^="comments-"]').then(node => {
+ cy.setTinyMceContent(node.attr('id'), 'This paper is suitable for publication.');
+ });
+ cy.get('button:contains("Submit Review")').click();
+ cy.get('button:contains("OK")').click();
+ cy.get('h2:contains("Review Submitted")');
+
+ cy.logout();
+
+ // Find and view the review
+ cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
+ cy.waitJQuery();
+ cy.get('span:contains("Adela Gallego")').parent().parent().find('a:contains("Read Review")').click();
+
+ // There should not be a visible CI statement.
+ cy.get('h3:contains("Reviewer Comments")');
+ cy.get('h3:contains("Competing Interests")').should('not.exist');
+ });
+
+ it('Tests with Competing Interests enabled', function() {
+ // Set the CI requirement setting
+ cy.login('dbarnes', null, 'publicknowledge');
+ cy.get('.app__nav a').contains('Workflow').click();
+ cy.get('button[id="review-button"]').click();
+ cy.get('button[id="reviewerGuidance-button"]').click();
+ cy.setTinyMceContent('reviewerGuidance-competingInterests-control-en', 'Reviewer competing interests disclosure');
+ cy.get('div[id="reviewerGuidance"] button:contains("Save")').click();
+ cy.get('#reviewerGuidance [role="status"]').contains('Saved');
+ cy.logout();
+
+ // Send the submission to review
+ cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
+ cy.assignReviewer('Al Zacharia');
+ cy.logout();
+
+ // Submit review with competing interests
+ const competingInterests = 'I work for a competing company';
+ cy.login('alzacharia', null, 'publicknowledge');
+ cy.get('a:contains("View Lost Tracks")').click({force: true});
+
+ cy.get('input#hasCompetingInterests').click();
+ cy.wait(2000); // Give TinyMCE control time to load
+ cy.get('textarea[id^="reviewerCompetingInterests-"]').then(node => {
+ cy.setTinyMceContent(node.attr('id'), competingInterests);
+ });
+ cy.get('input[id="privacyConsent"]').click();
+ cy.get('button:contains("Accept Review, Continue to Step #2")').click();
+ cy.get('button:contains("Continue to Step #3")').click();
+ cy.wait(2000); // Give TinyMCE control time to load
+ cy.get('textarea[id^="comments-"]').then(node => {
+ cy.setTinyMceContent(node.attr('id'), 'This paper is suitable for publication.');
+ });
+ cy.get('button:contains("Submit Review")').click();
+ cy.get('button:contains("OK")').click();
+ cy.get('h2:contains("Review Submitted")');
+ cy.logout();
+
+ // Find and view the review
+ cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
+ cy.waitJQuery();
+ cy.get('span:contains("Al Zacharia")').parent().parent().find('a:contains("Read Review")').click();
+
+ // There should be a visible CI statement.
+ cy.get('h3:contains("Reviewer Comments")');
+ cy.get('p').contains(competingInterests);
+ cy.get('form[id="readReviewForm"] a.cancelButton').click();
+ cy.waitJQuery();
+ cy.logout();
+
+ // Disable the CI requirement again
+ cy.login('dbarnes', null, 'publicknowledge');
+ cy.get('.app__nav a').contains('Workflow').click();
+ cy.get('button[id="review-button"]').click();
+ cy.get('button[id="reviewerGuidance-button"]').click();
+ cy.setTinyMceContent('reviewerGuidance-competingInterests-control-en', '');
+ cy.get('div[id="reviewerGuidance"] button:contains("Save")').click();
+ cy.get('#reviewerGuidance [role="status"]').contains('Saved');
+ cy.logout();
+
+ // The CI statement entered previously should still be visible.
+ cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
+ cy.waitJQuery();
+ cy.get('span:contains("Al Zacharia")').parent().parent().find('a:contains("Read Review")').click();
+ cy.get('h3:contains("Reviewer Comments")');
+ cy.get('p').contains(competingInterests);
+ });
+});
diff --git a/cypress/tests/integration/CompetingInterests.spec.js b/cypress/tests/integration/CompetingInterests.spec.js
deleted file mode 100644
index 4290fb6e2ff..00000000000
--- a/cypress/tests/integration/CompetingInterests.spec.js
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * @file tests/functional/setup/CompetingInterestsTest.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 CompetingInterestsTest
- * @ingroup tests_functional_setup
- *
- * @brief Test for competing interests setup
- */
-
-describe('Data suite tests', function() {
- const fullTitle = 'Lost Tracks: Buffalo National Park, 1909-1939';
-
- it('Tests with Competing Interests disabled', function() {
- // Send the submission to review
- cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
- cy.sendToReview('External');
- cy.assignReviewer('Adela Gallego');
- cy.logout();
-
- // Submit review with no competing interests
- cy.login('agallego', null, 'publicknowledge');
- cy.get('a:contains("View Lost Tracks")').click({force: true});
-
- cy.get('form#reviewStep1Form');
- cy.get('label[for="noCompetingInterests"]').should('not.exist');
- cy.get('input[id="privacyConsent"]').click();
- cy.get('button:contains("Accept Review, Continue to Step #2")').click();
- cy.get('button:contains("Continue to Step #3")').click();
- cy.wait(2000); // Give TinyMCE control time to load
- cy.get('textarea[id^="comments-"]').then(node => {
- cy.setTinyMceContent(node.attr('id'), 'This paper is suitable for publication.');
- });
- cy.get('button:contains("Submit Review")').click();
- cy.get('button:contains("OK")').click();
- cy.get('h2:contains("Review Submitted")');
-
- cy.logout();
-
- // Find and view the review
- cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
- cy.waitJQuery();
- cy.get('span:contains("Adela Gallego")').parent().parent().find('a:contains("Read Review")').click();
-
- // There should not be a visible CI statement.
- cy.get('h3:contains("Reviewer Comments")');
- cy.get('h3:contains("Competing Interests")').should('not.exist');
- });
-
- it('Tests with Competing Interests enabled', function() {
- // Set the CI requirement setting
- cy.login('dbarnes', null, 'publicknowledge');
- cy.get('.app__nav a').contains('Workflow').click();
- cy.get('button[id="review-button"]').click();
- cy.get('button[id="reviewerGuidance-button"]').click();
- cy.wait(2000); // Give TinyMCE control time to load
- cy.setTinyMceContent('reviewerGuidance-competingInterests-control-en_US', 'Reviewer competing interests disclosure');
- // FIXME: Weird TinyMCE interaction, apparently affects only automated testing.
- // The PUT request won't contain the entered content for this forum unless we click it first.
- cy.get('p:contains("Reviewer competing interests disclosure")').click();
- cy.get('div[id="reviewerGuidance"] button:contains("Save")').click();
- cy.get('#reviewerGuidance [role="status"]').contains('Saved');
- cy.logout();
-
- // Send the submission to review
- cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
- cy.assignReviewer('Al Zacharia');
- cy.logout();
-
- // Submit review with competing interests
- const competingInterests = 'I work for a competing company';
- cy.login('alzacharia', null, 'publicknowledge');
- cy.get('a:contains("View Lost Tracks")').click({force: true});
-
- cy.get('input#hasCompetingInterests').click();
- cy.wait(2000); // Give TinyMCE control time to load
- cy.get('textarea[id^="reviewerCompetingInterests-"]').then(node => {
- cy.setTinyMceContent(node.attr('id'), competingInterests);
- });
- cy.get('input[id="privacyConsent"]').click();
- cy.get('button:contains("Accept Review, Continue to Step #2")').click();
- cy.get('button:contains("Continue to Step #3")').click();
- cy.wait(2000); // Give TinyMCE control time to load
- cy.get('textarea[id^="comments-"]').then(node => {
- cy.setTinyMceContent(node.attr('id'), 'This paper is suitable for publication.');
- });
- cy.get('button:contains("Submit Review")').click();
- cy.get('button:contains("OK")').click();
- cy.get('h2:contains("Review Submitted")');
- cy.logout();
-
- // Find and view the review
- cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
- cy.waitJQuery();
- cy.get('span:contains("Al Zacharia")').parent().parent().find('a:contains("Read Review")').click();
-
- // There should be a visible CI statement.
- cy.get('h3:contains("Reviewer Comments")');
- cy.get('p').contains(competingInterests);
- cy.get('form[id="readReviewForm"] a.cancelButton').click();
- cy.waitJQuery();
- cy.logout();
-
- // Disable the CI requirement again
- cy.login('dbarnes', null, 'publicknowledge');
- cy.get('.app__nav a').contains('Workflow').click();
- cy.get('button[id="review-button"]').click();
- cy.get('button[id="reviewerGuidance-button"]').click();
- cy.wait(2000); // Give TinyMCE control time to load
- cy.setTinyMceContent('reviewerGuidance-competingInterests-control-en_US', '');
- cy.get('div[id="reviewerGuidance"] button:contains("Save")').click();
- cy.get('#reviewerGuidance [role="status"]').contains('Saved');
- cy.logout();
-
- // The CI statement entered previously should still be visible.
- cy.findSubmissionAsEditor('dbarnes', null, 'Brower');
- cy.waitJQuery();
- cy.get('span:contains("Al Zacharia")').parent().parent().find('a:contains("Read Review")').click();
- cy.get('h3:contains("Reviewer Comments")');
- cy.get('p').contains(competingInterests);
- });
-});
diff --git a/cypress/tests/integration/Doi.cy.js b/cypress/tests/integration/Doi.cy.js
new file mode 100644
index 00000000000..e5d7378dc7f
--- /dev/null
+++ b/cypress/tests/integration/Doi.cy.js
@@ -0,0 +1,105 @@
+/**
+ * @file cypress/tests/integration/Doi.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('DOI tests', function() {
+ const submissionId = 14;
+ const publicationId = 14;
+ const chapterId = 54;
+ const publicationFormatId = 3;
+ const submissionFileId = 113;
+ const unpublishedSubmissionId = 4;
+
+ const loginAndGoToDoiPage = () => {
+ cy.login('dbarnes', null, 'publicknowledge');
+ goToDoiPage();
+ };
+
+ const goToDoiPage = () => {
+ cy.get('a:contains("DOIs")').click();
+ cy.get('button#submission-doi-management-button').click();
+ };
+
+ const clearFilter = () => {
+ cy.get('#submission-doi-management button:contains("Clear filter")').each(
+ ($el, index, $list) => {
+ cy.wrap($el).click();
+ }
+ );
+ };
+
+ it('Check DOI Configuration', function() {
+ cy.login('dbarnes', null, 'publicknowledge');
+ cy.checkDoiConfig(['publication', 'chapter', 'representation', 'file']);
+ });
+
+ it('Check DOI Assignment and Visibility', function() {
+ cy.log('Check Submission Assignment');
+ loginAndGoToDoiPage();
+ cy.assignDois(submissionId);
+
+ cy.get(`#list-item-submission-${submissionId} button.expander`).click();
+ cy.checkDoiAssignment(`${submissionId}-monograph-${publicationId}`);
+ cy.checkDoiAssignment(`${submissionId}-chapter-${chapterId}`);
+ cy.checkDoiAssignment(`${submissionId}-representation-${publicationFormatId}`);
+ cy.checkDoiAssignment(`${submissionId}-file-${submissionFileId}`);
+
+ cy.log('Check Submission Visibility');
+ // Select a monograph
+ cy.visit(`/index.php/publicknowledge/catalog/book/${submissionId}`);
+
+ // Monograph DOI
+ cy.get('div.item.doi')
+ .find('span.value')
+ .contains('https://doi.org/10.1234/');
+ // Chapter DOI
+ cy.get('div.item.chapters ul')
+ .find('li:first-child')
+ .contains('https://doi.org/10.1234/');
+ // PublicationFormat DOI
+ cy.get(
+ `div.item.publication_format div.sub_item.pubid.${publicationFormatId} div.value`
+ )
+ .find('a')
+ .contains('https://doi.org/10.1234/');
+ // SubmissionFile not visible
+ });
+
+ it('Check filters and mark registered', function() {
+ cy.log('Check Submission Filter Behaviour (pre-deposit)');
+ loginAndGoToDoiPage();
+ cy.checkDoiFilterResults('Needs DOI', 'Allan — Bomb Canada and Other Unkind Remarks in the American Media', 2);
+ cy.checkDoiFilterResults('DOI Assigned', 'Dawson et al. — From Bricks to Brains: The Embodied Cognitive Science of LEGO Robots', 1);
+ clearFilter();
+ cy.checkDoiFilterResults('Unregistered', 'Dawson et al. — From Bricks to Brains: The Embodied Cognitive Science of LEGO Robots', 1);
+ clearFilter();
+
+ cy.log('Check Submission Marked Registered');
+ cy.checkDoiMarkedStatus('Registered', submissionId, true, 'Registered');
+
+ cy.log('Check Submission Filter Behaviour (post-deposit)');
+ cy.checkDoiFilterResults('Submitted', 'No items found.', 0);
+ cy.checkDoiFilterResults('Registered', 'Dawson et al. — From Bricks to Brains: The Embodied Cognitive Science of LEGO Robots', 1);
+ });
+
+ it('Check Marked Status Behaviour', function() {
+ loginAndGoToDoiPage();
+
+ cy.log('Check unpublished Submission Marked Registered displays error');
+ cy.checkDoiMarkedStatus('Registered', unpublishedSubmissionId, false, 'Unpublished');
+
+ cy.log('Check Submission Marked Needs Sync');
+ cy.checkDoiMarkedStatus('Needs Sync', submissionId, true, 'Needs Sync');
+
+ cy.log('Check Submission Marked Unregistered');
+ cy.checkDoiMarkedStatus('Unregistered', submissionId, true, 'Unregistered');
+
+ cy.log('Check invalid Submission Marked Needs Sync displays error');
+ cy.checkDoiMarkedStatus('Needs Sync', submissionId, false, 'Unregistered');
+ });
+});
diff --git a/cypress/tests/integration/Payments.cy.js b/cypress/tests/integration/Payments.cy.js
new file mode 100644
index 00000000000..a929631da2f
--- /dev/null
+++ b/cypress/tests/integration/Payments.cy.js
@@ -0,0 +1,57 @@
+/**
+ * @file cypress/tests/integration/Statistics.cy.js
+ *
+ * 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.
+ *
+ * @ingroup tests_integration
+ * @brief Run Payments tests
+ */
+
+describe('Payments', function() {
+ it('Enable Payment', function() {
+ cy.login('dbarnes', null, 'publicknowledge');
+ cy.get('.app__nav a:contains("Distribution")').click();
+ cy.get('button[id="payments-button"]').click();
+ cy.get('input[type="checkbox"][name="paymentsEnabled"]:first').click();
+ cy.get('select[id="paymentSettings-currency-control"]').select('US Dollar');
+ cy.get('select[name="paymentPluginName"]').select('Manual Fee Payment');
+ cy.get('textarea[id="paymentSettings-manualInstructions-control"]').clear().type('You could send a message to us.');
+ cy.get('#payments .pkpButton[label="Save"]').click();
+ cy.logout();
+ });
+
+ it('Add a direct sales on Submission chapter', function () {
+ cy.login('dbarnes', null, 'publicknowledge');
+ cy.get('.app__nav a:contains("Submissions")').click();
+ cy.get('button[id="archive-button"]').click();
+
+ var submissionElement = cy.get('#archive .listPanel__item').contains('Bomb Canada and Other Unkind Remarks in the American Media').parents('.listPanel__item');
+ submissionElement.within(() => {
+ cy.get('.listPanel__itemActions .pkpButton').click();
+ })
+ cy.get('button[id="publication-button"]').click();
+ cy.get('.pkpButton--isWarnable').contains('Unpublish').click();
+ cy.get('.modal__footer > .pkpButton').contains('Unpublish').should('be.visible').click();
+ cy.waitJQuery();
+ cy.get('#publicationFormats-button').click();
+ cy.get('.pkp_linkaction_editApprovedProof').click();
+ cy.wait(1000);
+ cy.get('.pkp_modal #directSales').click().pause();
+ cy.get('.pkp_modal input[type="text"][name="price"]').type('9.99');
+ cy.get('.pkp_modal .formButtons .submitFormButton').click();
+ cy.get('#publication .pkpButton').contains('Publish').click();
+ cy.get('.pkp_modal .pkpButton').contains('Publish').click();
+ cy.get('.pkpPublication__versionPublished').should('be.visible');
+ cy.logout();
+ });
+
+ it('Visit Submission page and check Direct Sales', function () {
+ cy.login('gfavio');
+ cy.visit('index.php/publicknowledge/catalog');
+ cy.get('a').contains('Bomb Canada and Other Unkind Remarks in the American Media').click();
+ cy.get('a.cmp_download_link').contains('9.99 Purchase PDF (9.99 USD)').should('be.visible').click();
+ cy.get('p').contains('You could send a message to us.').should('be.visible');
+ });
+});
diff --git a/cypress/tests/integration/Statistics.cy.js b/cypress/tests/integration/Statistics.cy.js
new file mode 100644
index 00000000000..3ca1e98b4ec
--- /dev/null
+++ b/cypress/tests/integration/Statistics.cy.js
@@ -0,0 +1,44 @@
+/**
+ * @file cypress/tests/integration/Statistics.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('Statistics Tests', function() {
+ it('Generates usage statistics', function() {
+ var today = new Date().toISOString().split('T')[0];
+ var daysAgo90 = (d => new Date(d.setDate(d.getDate()-91)) )(new Date).toISOString().split('T')[0];
+ cy.exec('php lib/pkp/tools/generateTestMetrics.php 1 ' + daysAgo90 + ' ' + today).then((result) => {
+ expect(result.stdout).to.match(/\d+ view and \d+ download records added for \d+ submissions/);
+ });
+ });
+
+ it('Check statistics', function() {
+ cy.login('dbarnes', null, 'publicknowledge');
+ cy.get('.app__nav a:contains("Monographs")').click();
+ cy.checkGraph(
+ 'Total catalog views by date',
+ 'Abstract Views',
+ 'Files',
+ 'Total file views by date',
+ 'File Views'
+ );
+ cy.checkTable(
+ 'Monograph Details',
+ 'monographs',
+ ['Allan', 'Dawson et al.'],
+ 2,
+ 1
+ );
+ cy.checkFilters([
+ 'Library & Information Studies',
+ 'Political Economy',
+ 'History',
+ 'Education',
+ 'Psychology',
+ ]);
+ });
+});
diff --git a/cypress/tests/integration/Statistics.spec.js b/cypress/tests/integration/Statistics.spec.js
deleted file mode 100644
index 4dbf85e7fc3..00000000000
--- a/cypress/tests/integration/Statistics.spec.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * @file cypress/tests/integration/Statistics.spec.js
- *
- * 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.
- *
- */
-
-describe('Statistics Tests', function() {
- it('Generates usage statistics', function() {
- var today = new Date().toISOString().split('T')[0];
- var daysAgo90 = (d => new Date(d.setDate(d.getDate()-91)) )(new Date).toISOString().split('T')[0];
- cy.exec('php lib/pkp/tools/generateTestMetrics.php 1 ' + daysAgo90 + ' ' + today);
- });
-
- it('Check statistics', function() {
- cy.login('dbarnes', null, 'publicknowledge');
- cy.get('.app__nav a:contains("Monographs")').click();
- cy.checkGraph(
- 'Total catalog views by date',
- 'Abstract Views',
- 'Files',
- 'Total file views by date',
- 'File Views'
- );
- cy.checkTable(
- 'Monograph Details',
- 'monographs',
- ['Allan', 'Dawson et al.']
- );
- cy.checkFilters([
- 'Library & Information Studies',
- 'Political Economy',
- 'History',
- 'Education',
- 'Psychology',
- ]);
- });
-});
diff --git a/cypress/tests/integration/Z_MonographViewDCMetadata.cy.js b/cypress/tests/integration/Z_MonographViewDCMetadata.cy.js
new file mode 100644
index 00000000000..ec890599cd7
--- /dev/null
+++ b/cypress/tests/integration/Z_MonographViewDCMetadata.cy.js
@@ -0,0 +1,554 @@
+/**
+ * @file cypress/tests/integration/Z_MonographViewDCMetadata.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('Monograph View Metadata - DC Plugin', function() {
+ let submission;
+ let uniqueId;
+ let today;
+ let dcElements;
+
+ before(function() {
+ today = new Date();
+ const uniqueSeed = Date.now().toString();
+ uniqueId = Cypress._.uniqueId(uniqueSeed);
+
+ submission = {
+ type: 'monograph',
+ prefix: 'Test prefix',
+ title: 'Test title',
+ subtitle: 'Test subtitle',
+ abstract: 'Test abstract',
+ authors: [
+ 'Name 1 Author 1',
+ 'Name 2 Author 2'
+ ],
+ chapters: [
+ {
+ title: 'Choosing the Future',
+ contributors: ['Name 1 Author 1'],
+ files: ['chapter1.pdf'],
+ },
+ {
+ title: 'Axioms',
+ contributors: ['Name 1 Author 1'],
+ files: ['chapter2.pdf'],
+ },
+ {
+ title: 'Paradigm Shift',
+ contributors: ['Name 2 Author 2'],
+ files: ['chapter3.pdf'],
+ }
+ ],
+ files: [
+ {
+ file: 'dummy.pdf',
+ fileName: 'chapter1.pdf',
+ mimeType: 'application/pdf',
+ genre: Cypress.env('defaultGenre')
+ },
+ {
+ file: 'dummy.pdf',
+ fileName: 'chapter2.pdf',
+ mimeType: 'application/pdf',
+ genre: Cypress.env('defaultGenre')
+ },
+ {
+ file: 'dummy.pdf',
+ fileName: 'chapter3.pdf',
+ mimeType: 'application/pdf',
+ genre: Cypress.env('defaultGenre')
+ },
+ ],
+ submitterRole: 'Press manager',
+ additionalAuthors: [
+ {
+ givenName: {en: 'Name 1'},
+ familyName: {en: 'Author 1'},
+ country: 'US',
+ affiliation: {en: 'Stanford University'},
+ email: 'nameauthor1Test@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ },
+ {
+ givenName: {en: 'Name 2'},
+ familyName: {en: 'Author 2'},
+ country: 'US',
+ affiliation: {en: 'Stanford University'},
+ email: 'nameauthor2Test@mailinator.com',
+ userGroupId: Cypress.env('authorUserGroupId')
+ }
+ ],
+ localeTitles: {
+ fr_CA: {
+ title: "Test title FR",
+ subtitle: "Test subtitle FR",
+ abstract: "Test abstract FR",
+ prefix: "Test prefix FR",
+ }
+ },
+ localeMetadata: [
+ {
+ locale: 'fr_CA',
+ manyValues: [
+ {
+ metadata: 'keywords',
+ values: [
+ 'Test keyword 1 FR',
+ 'Test keyword 2 FR'
+ ],
+ },
+ {
+ metadata: 'subjects',
+ values: [
+ 'Test subject 1 FR',
+ 'Test subject 2 FR'
+ ],
+ },
+ ],
+ oneValue: [
+ {
+ metadata: 'coverage',
+ value: 'Test coverage FR'
+ },
+ {
+ metadata: 'type',
+ value: 'Test type FR'
+ },
+ ],
+ },
+ {
+ locale: 'en',
+ manyValues: [
+ {
+ metadata: 'keywords',
+ values: [
+ 'Test keyword 1',
+ 'Test keyword 2'
+ ],
+ },
+ {
+ metadata: 'subjects',
+ values: [
+ 'Test subject 1',
+ 'Test subject 2'
+ ],
+ },
+ ],
+ oneValue: [
+ {
+ metadata: 'coverage',
+ value: 'Test coverage'
+ },
+ {
+ metadata: 'type',
+ value: 'Test type'
+ },
+ ],
+ }
+ ],
+ source: {
+ name: 'Public Knowledge Press',
+ uri: '/index.php/publicknowledge',
+ doiPrefix: '10.1234',
+ },
+ urlPath: 'testing-dc-metadata-submission-' + uniqueId,
+ licenceUrl: 'https://creativecommons.org/licenses/by/4.0/',
+ seriesData: {
+ title: 'Political Economy',
+ issn: '0378-5955',
+ },
+ catalogEntrySeriesTitle: [
+ 'Political Economy',
+ ],
+ seriesPosition : 'Test Series 1',
+ publicationFormats: [
+ {
+ name: 'PDF',
+
+ }
+ ]
+ };
+
+ dcElements = {
+ localized: [
+ {
+ element: 'DC.Coverage',
+ values: [
+ {
+ locale: 'en',
+ contents: [
+ submission.localeMetadata
+ .find(element => element.locale == 'en')
+ .oneValue
+ .find(element => element.metadata == 'coverage')
+ .value
+ ]
+ },
+ {
+ locale: 'fr',
+ contents: [
+ submission.localeMetadata
+ .find(element => element.locale == 'fr_CA')
+ .oneValue
+ .find(element => element.metadata == 'coverage')
+ .value
+ ]
+ },
+ ]
+ },
+ {
+ element: 'DC.Description',
+ values: [
+ {
+ locale: 'en',
+ contents: [
+ submission.abstract
+ ]
+ },
+ {
+ locale: 'fr',
+ contents: [
+ submission.localeTitles.fr_CA.abstract
+ ]
+ },
+ ]
+ },
+ {
+ element: 'DC.Title.Alternative',
+ values: [
+ {
+ locale: 'fr',
+ contents: [
+ submission.localeTitles.fr_CA.prefix + ' ' + submission.localeTitles.fr_CA.title + ': ' + submission.localeTitles.fr_CA.subtitle
+ ]
+ },
+
+ ]
+ },
+ {
+ element: 'DC.Type',
+ values: [
+ {
+ locale: 'en',
+ contents: [
+ submission.localeMetadata
+ .find(element => element.locale == 'en')
+ .oneValue
+ .find(element => element.metadata == 'type')
+ .value
+ ]
+
+ },
+ {
+ locale: 'fr',
+ contents: [
+ submission.localeMetadata
+ .find(element => element.locale == 'fr_CA')
+ .oneValue
+ .find(element => element.metadata == 'type')
+ .value
+ ],
+ },
+ ]
+ },
+ {
+ element: 'DC.Subject',
+ values: [
+ {
+ locale: 'en',
+ contents: submission.localeMetadata
+ .find(element => element.locale == 'en')
+ .manyValues
+ .find(element => element.metadata == 'keywords')
+ .values
+ .concat(
+ submission.localeMetadata
+ .find(element => element.locale == 'en')
+ .manyValues
+ .find(element => element.metadata == 'subjects')
+ .values
+ )
+ },
+ {
+ locale: 'fr',
+ contents: submission.localeMetadata
+ .find(element => element.locale == 'fr_CA')
+ .manyValues
+ .find(element => element.metadata == 'keywords')
+ .values
+ .concat(
+ submission.localeMetadata
+ .find(element => element.locale == 'fr_CA')
+ .manyValues
+ .find(element => element.metadata == 'subjects')
+ .values
+ )
+ },
+ ]
+ },
+ ],
+ nonLocalized: [
+ {
+ element: 'DC.Creator.PersonalName',
+ values: submission.authors
+ },
+ {
+ element: 'DC.Identifier',
+ values: [
+ submission.urlPath
+ ]
+ },
+ {
+ element: 'DC.Identifier.URI',
+ values: [
+ submission.source.uri + '/catalog/book/' + submission.urlPath
+ ]
+ },
+ {
+ element: 'DC.Rights',
+ values: [
+ 'Copyright (c) ' + today.toJSON().slice(0,4) + ' ' + submission.source.name,
+ submission.licenceUrl
+ ]
+ },
+ {
+ element: 'DC.Source',
+ values: [
+ submission.source.name
+ ]
+ },
+ {
+ element: 'DC.Source.URI',
+ values: [
+ submission.source.uri
+ ]
+ },
+ {
+ element: 'DC.Title',
+ values: [
+ submission.prefix + ' ' + submission.title + ': ' + submission.subtitle
+ ]
+ },
+ {
+ element: 'DC.Type',
+ values: [
+ 'Text.Book'
+ ]
+ },
+ ],
+ withScheme: [
+ {
+ element: 'DC.Language',
+ scheme: 'ISO639-1',
+ content: 'en'
+ },
+ {
+ element: 'DC.Date.created',
+ scheme: 'ISO8601',
+ content: today.toJSON().slice(0, 10)
+ },
+ {
+ element: 'DC.Date.dateSubmitted',
+ scheme: 'ISO8601',
+ content: today.toJSON().slice(0, 10)
+ },
+ {
+ element: 'DC.Date.modified',
+ scheme: 'ISO8601',
+ content: today.toJSON().slice(0, 10)
+ },
+ ],
+ };
+
+ // Login as admin
+ cy.login('admin', 'admin');
+ cy.get('a').contains('admin').click();
+ cy.get('a').contains('Dashboard').click();
+
+ // Enable metadata settings
+ cy.get('.app__nav a').contains('Press').click();
+ cy.get('button#sections-button').click();
+ cy.get('tr[id^="component-grid-settings-series-seriesgrid-row-"]:contains("Political Economy") > .first_column > .show_extras').click();
+ cy.get('tr[id^="component-grid-settings-series-seriesgrid-row-"]:contains("Political Economy") + tr a:contains("Edit")').click();
+ cy.wait(500);
+ cy.get('#seriesForm input[name="printIssn"]').clear();
+ cy.get('#seriesForm input[name="printIssn"]').type(submission.seriesData.issn, {delay: 0});
+ cy.get('#seriesForm button').contains('Save').click();
+ cy.waitJQuery();
+ cy.get('div:contains("Your changes have been saved.")');
+
+ // Enable metadata settings
+ cy.get('.app__nav a').contains('Workflow').click();
+ cy.get('button').contains('Metadata').click();
+ cy.get('span').contains('Enable coverage metadata').prev('input[type="checkbox"]').check();
+ cy.get('span').contains('Enable type metadata').prev('input[type="checkbox"]').check();
+ cy.get('span').contains('Enable keyword metadata').prev('input[type="checkbox"]').check();
+ cy.get('span').contains('Enable subject metadata').prev('input[type="checkbox"]').check();
+ cy.get('#metadata button').contains('Save').click();
+ cy.get('#metadata [role="status"]').contains('Saved');
+ cy.waitJQuery();
+
+ // Enable dois
+ cy.checkDoiConfig(['publication', 'chapter', 'representation', 'file']);
+
+ // After configuration, go to submissions
+ cy.get('.app__nav a').contains('Submissions').click();
+
+ // Create a new submission
+ cy.getCsrfToken();
+ cy.window()
+ .then(() => {
+ return cy.createSubmissionWithApi(submission, this.csrfToken);
+ })
+ .then(xhr => {
+ return cy.submitSubmissionWithApi(submission.id, this.csrfToken);
+ })
+ .then(xhr => {
+ cy.visit('/index.php/publicknowledge/workflow/index/' + submission.id + '/1');
+ });
+
+
+ // Go to publication tabs
+ cy.get('#publication-button').click();
+
+ // Open multilanguage inputs and add data to fr_CA inputs
+ cy.get('div#titleAbstract button').contains('French').click();
+
+ cy.get('#titleAbstract input[name=prefix-en]').type(submission.prefix, {delay: 0});
+ cy.get('#titleAbstract input[name=prefix-en]').click({force: true});
+ cy.setTinyMceContent('titleAbstract-subtitle-control-en', submission.subtitle);
+
+ cy.setTinyMceContent('titleAbstract-title-control-fr_CA', submission.localeTitles.fr_CA.title);
+ cy.get('#titleAbstract input[name=prefix-fr_CA]').type(submission.localeTitles.fr_CA.prefix, {delay: 0});
+ cy.setTinyMceContent('titleAbstract-subtitle-control-fr_CA', submission.localeTitles.fr_CA.subtitle);
+ cy.setTinyMceContent('titleAbstract-abstract-control-fr_CA', submission.localeTitles.fr_CA.abstract);
+ cy.get('#titleAbstract-title-control-fr_CA').click({force: true}); // Ensure blur event is fired
+ cy.get('#titleAbstract-subtitle-control-fr_CA').click({force: true});
+ cy.get('#titleAbstract button').contains('Save').click();
+ cy.get('#titleAbstract [role="status"]').contains('Saved');
+
+ // Go to metadata
+ cy.get('#metadata-button').click();
+ cy.get('div#metadata button').contains('French').click();
+
+ // Add the metadata to the submission
+ submission.localeMetadata.forEach((locale) => {
+ var localeName = locale.locale;
+
+ locale.manyValues.forEach((manyValueMetadata) => {
+ manyValueMetadata.values.forEach((value) => {
+ cy.get('#metadata-' + manyValueMetadata.metadata + '-control-' + localeName).type(value, {delay: 0});
+ cy.wait(2000);
+ cy.get('#metadata-' + manyValueMetadata.metadata + '-control-' + localeName).type('{enter}', {delay: 0});
+ cy.wait(500);
+ cy.get('#metadata-' + manyValueMetadata.metadata + '-selected-' + localeName).contains(value);
+ cy.wait(1000);
+ });
+ });
+
+ locale.oneValue.forEach((oneValueMetadata) => {
+ cy.get('#metadata-' + oneValueMetadata.metadata + '-control-' + localeName).type(oneValueMetadata.value, {delay: 0});
+ });
+ });
+
+ cy.get('#metadata button').contains('Save').click();
+ cy.get('#metadata [role="status"]').contains('Saved');
+
+ // Permissions & Disclosure
+ cy.get('#license-button').click();
+ cy.get('#license [name="licenseUrl"]').type(submission.licenceUrl, {delay: 0});
+ cy.get('#license button').contains('Save').click();
+ cy.get('#license [role="status"]').contains('Saved');
+
+ // Add a publication format
+ submission.publicationFormats.forEach((publicationFormat) => {
+ cy.get('button[id="publicationFormats-button"]').click();
+ cy.wait(1500); // Wait for the form to settle
+ cy.get('div#representations-grid a').contains('Add publication format').click();
+ cy.wait(1500); // Wait for the form to settle
+ cy.get('input[id^="name-en-"]').type(publicationFormat.name, {delay: 0});
+ cy.get('div.pkp_modal_panel div.header:contains("Add publication format")').click();
+ cy.get('button:contains("OK")').click();
+
+ // Select proof file
+ cy.get('table[id*="component-grid-catalogentry-publicationformatgrid"] span:contains("' + publicationFormat.name + '"):parent() a[id*="-name-selectFiles-button-"]').click();
+ cy.get('*[id=allStages]').click();
+ cy.get('tbody[id^="component-grid-files-proof-manageprooffilesgrid-category-"] input[type="checkbox"][name="selectedFiles[]"]:first').click();
+ cy.get('form[id="manageProofFilesForm"] button[id^="submitFormButton-"]').click();
+ cy.waitJQuery();
+
+ // Approvals for PDF publication format
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("' + publicationFormat.name + '") a[id*="-isComplete-approveRepresentation-button-"]').click();
+ cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
+ cy.waitJQuery();
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("' + publicationFormat.name + '") a[id*="-isAvailable-availableRepresentation-button-"]').click();
+ cy.get('.pkpModalConfirmButton').click();
+ cy.waitJQuery();
+
+ // File completion
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("chapter3.pdf") a[id*="-isComplete-not_approved-button-"]').click();
+ cy.get('form[id="assignPublicIdentifierForm"] button[id^="submitFormButton-"]').click();
+ cy.waitJQuery();
+
+ // File availability
+ cy.get('table[id^="component-grid-catalogentry-publicationformatgrid-"] tr:contains("chapter3.pdf") a[id*="-isAvailable-editApprovedProof-button-"]').click();
+ cy.get('input[id="openAccess"]').click();
+ cy.get('form#approvedProofForm button.submitFormButton').click();
+ });
+
+ // Catalog Entry
+ cy.get('#catalogEntry-button').click();
+ cy.get('#catalogEntry [name="seriesId"]').select(submission.seriesData.title);
+ cy.get('#catalogEntry [name="seriesPosition"]').type(submission.seriesPosition, {delay: 0});
+ cy.get('#catalogEntry [name="urlPath"]').type(submission.urlPath);
+ cy.get('#catalogEntry button').contains('Save').click();
+ cy.get('#catalogEntry [role="status"]').contains('Saved');
+
+ // Go to workflow to send the submission to Copyediting stage
+ cy.get('#workflow-button').click();
+ cy.clickDecision('Accept and Skip Review');
+ cy.recordDecision('and has been sent to the copyediting stage');
+ cy.isActiveStageTab('Copyediting');
+
+ // Add to catalog - Publish the submission
+ cy.get('#publication-button').click();
+ cy.addToCatalog();
+ });
+
+ it('Tests if Header DC Metadata are present and consistent', function() {
+ cy.visit('/index.php/publicknowledge/catalog/book/' + submission.urlPath);
+
+ cy.get('meta[name^="DC."]').each((item, index, list) => {
+ cy.wrap(item)
+ .should("have.attr", "content")
+ .and("not.be.empty");
+ });
+
+ dcElements.localized.forEach((item) => {
+ item.values.forEach((value) => {
+ value.contents.forEach((content) => {
+ cy.get('meta[name="' + item.element + '"][content="' + content + '"][xml\\:lang="' + value.locale + '"]')
+ .should('exist');
+ });
+ });
+ });
+
+ dcElements.nonLocalized.forEach((item) => {
+ item.values.forEach((value) => {
+ cy.get('meta[name="' + item.element + '"][content*="' + value + '"]')
+ .should('exist');
+ });
+ });
+
+ dcElements.withScheme.forEach((item) => {
+ cy.get('meta[name="' + item.element + '"][content="' + item.content + '"][scheme="' + item.scheme + '"]')
+ .should('exist');
+ });
+ });
+});
diff --git a/cypress/tests/integration/plugins/reports/MonographReport.cy.js b/cypress/tests/integration/plugins/reports/MonographReport.cy.js
new file mode 100644
index 00000000000..680f7b6d735
--- /dev/null
+++ b/cypress/tests/integration/plugins/reports/MonographReport.cy.js
@@ -0,0 +1,33 @@
+/**
+ * @file cypress/tests/integration/plugins/reports/MonographReport.cy.js
+ *
+ * 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.
+ *
+ */
+
+describe('Monograph report plugin tests', () => {
+ it('The report is visible and generated properly', () => {
+ cy.login('admin', 'admin', 'publicknowledge');
+ cy.visit('publicknowledge/stats/reports');
+ cy.get('a:contains("Monograph Report")').then(link => {
+ cy.request(link.attr('href')).then(validateReport);
+ });
+ });
+
+ // Just checks whether some key data is present
+ function validateReport(reportResponse) {
+ cy.request(`publicknowledge/api/v1/submissions`).then(submissionResponse => {
+ const {itemsMax: submissionCount, items: [firstMonograph]} = submissionResponse.body;
+ const publication = firstMonograph.publications.pop();
+ expect(reportResponse.headers['content-type']).to.contain('text/comma-separated-values');
+ expect(reportResponse.body.match(/\/publicknowledge\/workflow\/access\/\d+/g).length).to.equal(submissionCount);
+ expect(reportResponse.body).contains(publication.title.en);
+ for (const author of publication.chapters.flatMap(chapter => Object.values(chapter.authors))) {
+ expect(reportResponse.body).contains(author.givenName.en);
+ expect(reportResponse.body).contains(author.familyName.en);
+ }
+ });
+ }
+});
diff --git a/dbscripts/xml/install.xml b/dbscripts/xml/install.xml
index fad89f57fa4..bfa1cf03344 100644
--- a/dbscripts/xml/install.xml
+++ b/dbscripts/xml/install.xml
@@ -3,44 +3,50 @@
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbscripts/xml/omp_schema.xml b/dbscripts/xml/omp_schema.xml
index 0224836b61f..bd62f739da6 100644
--- a/dbscripts/xml/omp_schema.xml
+++ b/dbscripts/xml/omp_schema.xml
@@ -346,7 +346,7 @@
-
+
diff --git a/dbscripts/xml/upgrade.xml b/dbscripts/xml/upgrade.xml
index 42a6363be22..b4114bb2f0e 100644
--- a/dbscripts/xml/upgrade.xml
+++ b/dbscripts/xml/upgrade.xml
@@ -3,45 +3,33 @@
-
+
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
@@ -49,7 +37,7 @@
-
+
@@ -78,52 +66,11 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -132,12 +79,12 @@
-
+
-
+
@@ -154,19 +101,115 @@
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dbscripts/xml/upgrade/1.1.0.0_preupdate.xml b/dbscripts/xml/upgrade/1.1.0.0_preupdate.xml
deleted file mode 100644
index 3a081eca65d..00000000000
--- a/dbscripts/xml/upgrade/1.1.0.0_preupdate.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dbscripts/xml/upgrade/1.1.0.0_update.xml b/dbscripts/xml/upgrade/1.1.0.0_update.xml
deleted file mode 100644
index 36cda8e7560..00000000000
--- a/dbscripts/xml/upgrade/1.1.0.0_update.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
- UPDATE controlled_vocabs SET assoc_type = '1048585' WHERE assoc_type = '513'
- UPDATE notifications SET assoc_type = '1048585' WHERE assoc_type = '513'
- UPDATE notes SET assoc_type = '1048585' WHERE assoc_type = '513'
- UPDATE email_log SET assoc_type = '1048585' WHERE assoc_type = '513'
- UPDATE event_log SET assoc_type = '1048585' WHERE assoc_type = '513'
-
-
- UPDATE controlled_vocabs SET symbolic = 'submissionAgency' WHERE symbolic = 'monographAgency'
- UPDATE controlled_vocabs SET symbolic = 'submissionDiscipline' WHERE symbolic = 'monographDiscipline'
- UPDATE controlled_vocabs SET symbolic = 'submissionKeyword' WHERE symbolic = 'monographKeyword'
- UPDATE controlled_vocabs SET symbolic = 'submissionLanguage' WHERE symbolic = 'monographLanguage'
- UPDATE controlled_vocabs SET symbolic = 'submissionSubject' WHERE symbolic = 'monographSubject'
-
- UPDATE controlled_vocab_entry_settings SET setting_name = 'submissionAgency' WHERE setting_name = 'monographAgency'
- UPDATE controlled_vocab_entry_settings SET setting_name = 'submissionDiscipline' WHERE setting_name = 'monographDiscipline'
- UPDATE controlled_vocab_entry_settings SET setting_name = 'submissionKeyword' WHERE setting_name = 'monographKeyword'
- UPDATE controlled_vocab_entry_settings SET setting_name = 'submissionLanguage' WHERE setting_name = 'monographLanguage'
- UPDATE controlled_vocab_entry_settings SET setting_name = 'submissionSubject' WHERE setting_name = 'monographSubject'
-
- UPDATE user_groups SET role_id = '1048576' WHERE role_id = '131072'
-
- UPDATE user_groups SET role_id = '16' WHERE role_id = '17'
-
-
-
-
- UPDATE press_settings SET setting_name = 'pageHeader' WHERE setting_name = 'pressPageHeader'
- UPDATE press_settings SET setting_name = 'pageFooter' WHERE setting_name = 'pressPageFooter'
- UPDATE press_settings SET setting_name = 'styleSheet' WHERE setting_name = 'pressStyleSheet'
- UPDATE press_settings SET setting_name = 'currency' WHERE setting_name = 'pressCurrency'
-
-
-
- UPDATE event_log_settings SET setting_name = 'submissionId' WHERE setting_name = 'monographId'
- UPDATE event_log SET message='submission.event.submissionSubmitted' WHERE message='submission.event.monographSubmitted'
-
-
-
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$pressName}', '{$contextName}'), subject=REPLACE(subject, '{$pressName}', '{$contextName}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$pressName}', '{$contextName}'), subject=REPLACE(subject, '{$pressName}', '{$contextName}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$pressUrl}', '{$contextUrl}'), subject=REPLACE(subject, '{$pressUrl}', '{$contextUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$pressUrl}', '{$contextUrl}'), subject=REPLACE(subject, '{$pressUrl}', '{$contextUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$monographTitle}', '{$submissionTitle}'), subject=REPLACE(subject, '{$monographTitle}', '{$submissionTitle}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$monographTitle}', '{$submissionTitle}'), subject=REPLACE(subject, '{$monographTitle}', '{$submissionTitle}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$monographId}', '{$submissionId}'), subject=REPLACE(subject, '{$monographId}', '{$submissionId}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$monographId}', '{$submissionId}'), subject=REPLACE(subject, '{$monographId}', '{$submissionId}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$monographAbstract}', '{$submissionAbstract}'), subject=REPLACE(subject, '{$monographAbstract}', '{$submissionAbstract}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$monographAbstract}', '{$submissionAbstract}'), subject=REPLACE(subject, '{$monographAbstract}', '{$submissionAbstract}')
-
-
-
-
- DELETE notifications FROM notifications LEFT JOIN review_rounds ON (notifications.assoc_id=review_rounds.review_round_id) WHERE notifications.assoc_type=523 AND review_rounds.review_round_id IS NULL
- DELETE FROM notifications n WHERE n.assoc_type=523 AND NOT EXISTS(SELECT 1 FROM review_rounds r WHERE r.review_round_id=n.assoc_id)
- DELETE notifications FROM notifications LEFT JOIN signoffs ON (notifications.assoc_id=signoffs.signoff_id) WHERE notifications.assoc_type=1048582 AND signoffs.signoff_id IS NULL
- DELETE FROM notifications n WHERE n.assoc_type=1048582 AND NOT EXISTS(SELECT 1 FROM signoffs s WHERE s.signoff_id=n.assoc_id)
-
-
-
-
- UPDATE press_settings SET setting_name='acronym' WHERE setting_name='initials'
-
-
diff --git a/dbscripts/xml/upgrade/1.1.0.0_update2.xml b/dbscripts/xml/upgrade/1.1.0.0_update2.xml
deleted file mode 100644
index fcdee0ef96a..00000000000
--- a/dbscripts/xml/upgrade/1.1.0.0_update2.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
- INSERT INTO review_files (file_id, review_id) SELECT DISTINCT rrf.file_id, ra.review_id FROM review_round_files rrf, review_assignments ra WHERE ra.review_round_id = rrf.review_round_id
-
-
diff --git a/dbscripts/xml/upgrade/1.1.1.0_update.xml b/dbscripts/xml/upgrade/1.1.1.0_update.xml
deleted file mode 100644
index 75a79ae8e13..00000000000
--- a/dbscripts/xml/upgrade/1.1.1.0_update.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
- INSERT INTO press_settings (press_id, setting_name, setting_value, setting_type) SELECT p.press_id, 'displayFeaturedBooks', '1', 'bool' FROM presses p
- INSERT INTO press_settings (press_id, setting_name, setting_value, setting_type) SELECT p.press_id, 'displayInSpotlight', '1', 'bool' FROM presses p
-
-
diff --git a/dbscripts/xml/upgrade/1.2.0.0_postupdate.xml b/dbscripts/xml/upgrade/1.2.0.0_postupdate.xml
deleted file mode 100644
index df2e0800cd5..00000000000
--- a/dbscripts/xml/upgrade/1.2.0.0_postupdate.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
- DELETE FROM notifications WHERE assoc_type=1048582
- DROP TABLE signoffs
- DELETE FROM notifications WHERE type = 16777226
- DELETE FROM notifications WHERE type = 16777228
-
-
diff --git a/dbscripts/xml/upgrade/1.2.0.0_preupdate.xml b/dbscripts/xml/upgrade/1.2.0.0_preupdate.xml
deleted file mode 100644
index 3cf7ac4d5e7..00000000000
--- a/dbscripts/xml/upgrade/1.2.0.0_preupdate.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dbscripts/xml/upgrade/1.2.0.0_update.xml b/dbscripts/xml/upgrade/1.2.0.0_update.xml
deleted file mode 100644
index 0b24934b946..00000000000
--- a/dbscripts/xml/upgrade/1.2.0.0_update.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
- DELETE ugs FROM user_group_stage ugs JOIN user_groups ug WHERE ug.role_id=1048576 AND ug.user_group_id=ugs.user_group_id
- DELETE FROM user_group_stage ugs USING user_groups ug WHERE ug.role_id=1048576 AND ug.user_group_id=ugs.user_group_id
-
-
-
-
-
- INSERT INTO plugin_settings (plugin_name, context_id, setting_name, setting_value, setting_type) SELECT DISTINCT ps.plugin_name, ps.context_id, 'browseNewReleases', '1', 'bool' FROM plugin_settings ps WHERE ps.plugin_name = 'browseblockplugin'
- INSERT INTO plugin_settings (plugin_name, context_id, setting_name, setting_value, setting_type) SELECT DISTINCT ps.plugin_name, ps.context_id, 'browseCategories', '1', 'bool' FROM plugin_settings ps WHERE ps.plugin_name = 'browseblockplugin'
- INSERT INTO plugin_settings (plugin_name, context_id, setting_name, setting_value, setting_type) SELECT DISTINCT ps.plugin_name, ps.context_id, 'browseSeries', '1', 'bool' FROM plugin_settings ps WHERE ps.plugin_name = 'browseblockplugin'
-
-
-
-
-
- INSERT INTO press_settings (press_id, setting_name, setting_value, setting_type) SELECT p.press_id, 'coverThumbnailsMaxWidth', '106', 'int' FROM presses p
- INSERT INTO press_settings (press_id, setting_name, setting_value, setting_type) SELECT p.press_id, 'coverThumbnailsMaxHeight', '100', 'int' FROM presses p
-
-
-
-
-
- lib.pkp.classes.task.ReviewReminder
-
-
-
-
-
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$submissionCopyeditingUrl}', '{$submissionUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$submissionCopyeditingUrl}', '{$submissionUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$layoutEditorName}', '{$participantName}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$layoutEditorName}', '{$participantName}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$layoutEditorUsername}', '{$participantUsername}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$layoutEditorUsername}', '{$participantUsername}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$copyeditorName}', '{$participantName}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$copyeditorName}', '{$participantName}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$copyeditorUsername}', '{$participantUsername}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$copyeditorUsername}', '{$participantUsername}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$indexerName}', '{$participantName}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$indexerName}', '{$participantName}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$indexerUsername}', '{$participantUsername}')
- UPDATE email_templates_data SET body=REPLACE(body, '{$indexerUsername}', '{$participantUsername}')
-
-
-
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$editorialContactName}', 'Editors') WHERE locale = 'en_US' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_data SET body=REPLACE(body, '{$editorialContactName}', 'Editors') WHERE locale = 'en_US' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$editorialContactName}', 'Herausgeber/innen') WHERE locale = 'de_DE' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_data SET body=REPLACE(body, '{$editorialContactName}', 'Herausgeber/innen') WHERE locale = 'de_DE' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$editorialContactName}', 'Επιμελητές') WHERE locale = 'el_GR' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_data SET body=REPLACE(body, '{$editorialContactName}', 'Επιμελητές') WHERE locale = 'el_GR' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$editorialContactName}', 'Editores') WHERE locale = 'es_ES' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_data SET body=REPLACE(body, '{$editorialContactName}', 'Editores') WHERE locale = 'es_ES' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$editorialContactName}', 'Éditeurs') WHERE locale = 'fr_CA' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_data SET body=REPLACE(body, '{$editorialContactName}', 'Éditeurs') WHERE locale = 'fr_CA' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_default_data SET body=REPLACE(body, '{$editorialContactName}', 'Editores') WHERE locale = 'pt_BR' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
- UPDATE email_templates_data SET body=REPLACE(body, '{$editorialContactName}', 'Editores') WHERE locale = 'pt_BR' AND email_key IN ('REVIEW_CONFIRM', 'REVIEW_DECLINE')
-
-
diff --git a/dbscripts/xml/upgrade/3.1.0_preupdate.xml b/dbscripts/xml/upgrade/3.1.0_preupdate.xml
deleted file mode 100644
index 97fc8cc7891..00000000000
--- a/dbscripts/xml/upgrade/3.1.0_preupdate.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
- UPDATE email_templates_default SET from_role_id=17 WHERE from_role_id=513
- UPDATE email_templates_default SET to_role_id=17 WHERE to_role_id=513
- UPDATE user_groups SET role_id=17 WHERE role_id=513
- UPDATE submission_comments SET role_id=17 WHERE role_id=513
-
-
diff --git a/dbscripts/xml/upgrade/3.1.0_preupdate_commentsToEditor.xml b/dbscripts/xml/upgrade/3.1.0_preupdate_commentsToEditor.xml
deleted file mode 100644
index f6f57c775ad..00000000000
--- a/dbscripts/xml/upgrade/3.1.0_preupdate_commentsToEditor.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
- CREATE TABLE submissions_tmp AS (SELECT submission_id, context_id, comments_to_ed, date_submitted FROM submissions)
-
-
-
diff --git a/dbscripts/xml/upgrade/3.1.0_update.xml b/dbscripts/xml/upgrade/3.1.0_update.xml
deleted file mode 100644
index 3fca362700a..00000000000
--- a/dbscripts/xml/upgrade/3.1.0_update.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '<a href="{$activateUrl}">{$activateUrl}</a>', '{$activateUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '<a href="{$activateUrl}">{$activateUrl}</a>', '{$activateUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '<a href="{$contextUrl}">{$contextUrl}</a>', '{$contextUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '<a href="{$contextUrl}">{$contextUrl}</a>', '{$contextUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '<a href="{$submissionUrl}">{$submissionUrl}</a>', '{$submissionUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '<a href="{$submissionUrl}">{$submissionUrl}</a>', '{$submissionUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '<a href="{$submissionReviewUrl}">{$submissionReviewUrl}</a>', '{$submissionReviewUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '<a href="{$submissionReviewUrl}">{$submissionReviewUrl}</a>', '{$submissionReviewUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '<a href="{$passwordResetUrl}">{$passwordResetUrl}</a>', '{$passwordResetUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '<a href="{$passwordResetUrl}">{$passwordResetUrl}</a>', '{$passwordResetUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '<a href="{$monographUrl}">{$monographUrl}</a>', '{$monographUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '<a href="{$monographUrl}">{$monographUrl}</a>', '{$monographUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '<a href="{$monographDetailsUrl}">{$monographDetailsUrl}</a>', '{$monographDetailsUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '<a href="{$monographDetailsUrl}">{$monographDetailsUrl}</a>', '{$monographDetailsUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '<a href="{$submissionCopyeditingUrl}">{$submissionCopyeditingUrl}</a>', '{$submissionCopyeditingUrl}')
- UPDATE email_templates_data SET body=REPLACE(body, '<a href="{$submissionCopyeditingUrl}">{$submissionCopyeditingUrl}</a>', '{$submissionCopyeditingUrl}')
-
- UPDATE email_templates_default_data SET body=REPLACE(body, '<a href="{$url}">{$url}</a>', '{$url}')
- UPDATE email_templates_data SET body=REPLACE(body, '<a href="{$url}">{$url}</a>', '{$url}')
-
-
diff --git a/dbscripts/xml/version.xml b/dbscripts/xml/version.xml
index dfe94c64886..96ce4b101e2 100644
--- a/dbscripts/xml/version.xml
+++ b/dbscripts/xml/version.xml
@@ -3,8 +3,8 @@
-
-
- Tilknyttede forlag
- Forlagsomdirigering
- Forespørgsler til hovedsiden vil blive omdirigeret til dette forlag. Dette kan være nyttigt, hvis webstedet kun er vært for et enkelt forlag.
- Omdiriger ikke
- Dette vil være standardsproget for webstedet og ethvert tilknyttet forlag.
- Vælg alle sprog, der skal understøttes på webstedet. De valgte sprog vil være tilgængelige til brug for alle forlag, der er vært på webstedet, ligesom de vises i en sprogvalgs-menu, der vil fremtræde på hver webside (som kan fravælges på forlags-specifikke sider). Hvis der ikke er valgt flere lokaliteter, vises sprogvalgs-menuen ikke, og udvidede sprogindstillinger er ikke tilgængelige for forlagene.
- * Markerede sprog kan være ufuldstændige.
- Er du sikker på, at du vil afinstallere dette sprog? Dette kan påvirke alle de tilknyttede forlag, der i øjeblikket bruger sproget.
- Vælg yderligere de sprog, der skal installeres support til i dette system. Sprog skal installeres, før de kan bruges af tilknyttede forlag. Se OMP-dokumentationen for information om tilføjelse af support til nye sprog.
- Ingen sprog er tilgængelige til download.
- Download af sprog mislykkedes. Fejlmeddelelsen nedenfor beskriver fejlen.
- Overførsel af sprogpakker fra webserveren til Public Knowledge Project er ikke tilgængelig i øjeblikket fordi:
-
-- Din server har, eller tillader ikke eksekvering af, GNU "tar"-værktøjet
-- OMP er ikke i stand til at ændre sprog- registerfilen, typisk "registry/locales.xml".
-
-Sprogpakker kan downloades manuelt fra PKP web site.
-]]>
- Er du sikker på, at du vil deaktivere dette sprog? Dette kan påvirke alle de tilknyttede forlag, der i øjeblikket bruger sproget.
- OMP-version
- OMP-konfiguration
- Forlagsindstillinger
- Der er ikke oprettet nogen forlag.
- Opret forlag
- Du registreres automatisk som manager af dette forlag. Når du har oprettet et nyt forlag, vil du blive omdirigeret til dets indstillingsguide for at afslutte den første opsætningen af forlaget.
- Forlaget URL vil være {$sampleUrl}
- Der kræves en titel.
- Der kræves en sti.
- Stien må kun indeholde alfanumeriske tegn, understregninger og bindestreger og skal begynde og slutte med et alfanumerisk tegn.
- Den valgte sti bruges allerede af et andet forlag.
- Offentliggør dette forlag på webstedet
- Beskrivelse af forlag
- Tilføj forlag
- Bemærk!
-Systemet kunne ikke automatisk overskrive konfigurationsfilen. For at anvende dine konfigurationsændringer skal du åbne config.inc.php i en egnet teksteditor og erstatte dens indhold med indholdet i tekstfeltet nedenfor.
-]]>
-
diff --git a/locale/da_DK/api.po b/locale/da_DK/api.po
deleted file mode 100644
index 06a99e43d05..00000000000
--- a/locale/da_DK/api.po
+++ /dev/null
@@ -1,43 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2021-01-21 11:20+0000\n"
-"Last-Translator: Niels Erik Frederiksen \n"
-"Language-Team: Danish \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 "api.submissions.403.contextRequired"
-msgstr ""
-"For at oprette eller redigere en indsendelse skal du anmode om forlagets API-"
-"endpoint."
-
-msgid "api.submissions.403.cantChangeContext"
-msgstr "Du kan ikke skifte en indsendelses forlag."
-
-msgid "api.publications.403.submissionsDidNotMatch"
-msgstr "Den publikation, du anmodede om, er ikke en del af denne indsendelse."
-
-msgid "api.publications.403.contextsDidNotMatch"
-msgstr "Den publikation, du anmodede om, er ikke at finde hos dette forlag."
-
-msgid "api.emailTemplates.403.notAllowedChangeContext"
-msgstr ""
-"Du har ikke tilladelse til at flytte denne e-mail skabelon til et andet "
-"forlag."
-
-msgid "api.submissions.400.submissionsNotFound"
-msgstr "En eller flere af de indsendelser, du angav, blev ikke fundet."
-
-msgid "api.submissions.400.submissionIdsRequired"
-msgstr ""
-"Du skal angive et eller flere indsendelses-id'er, der skal føjes til "
-"kataloget."
-
-msgid "api.emails.403.disabled"
-msgstr ""
-"E-mail-notifikationen er ikke blevet aktiveret i forbindelse med dette "
-"forlag."
diff --git a/locale/da_DK/author.po b/locale/da_DK/author.po
deleted file mode 100644
index cf440a44433..00000000000
--- a/locale/da_DK/author.po
+++ /dev/null
@@ -1,15 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-11-28T15:10:04-08:00\n"
-"PO-Revision-Date: 2019-11-28T15:10:04-08:00\n"
-"Language: \n"
-
-msgid "author.submit.notAccepting"
-msgstr "Dette forlag accepterer ikke indsendelser på dette tidspunkt."
diff --git a/locale/da_DK/author.xml b/locale/da_DK/author.xml
deleted file mode 100644
index 6d562f3429d..00000000000
--- a/locale/da_DK/author.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- Dette forlag accepterer ikke indsendelser på dette tidspunkt.
-
diff --git a/locale/da_DK/default.po b/locale/da_DK/default.po
deleted file mode 100644
index 4c582e3075e..00000000000
--- a/locale/da_DK/default.po
+++ /dev/null
@@ -1,239 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-11-28T15:10:04-08:00\n"
-"PO-Revision-Date: 2020-02-09 18:35+0000\n"
-"Last-Translator: Niels Erik Frederiksen \n"
-"Language-Team: Danish "
-"\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 "default.genres.appendix"
-msgstr "Appendiks"
-
-msgid "default.genres.bibliography"
-msgstr "Bibliografi"
-
-msgid "default.genres.manuscript"
-msgstr "Bogmanuskript"
-
-msgid "default.genres.chapter"
-msgstr "Kapitelmanuskript"
-
-msgid "default.genres.glossary"
-msgstr "Ordliste"
-
-msgid "default.genres.index"
-msgstr "Indeks"
-
-msgid "default.genres.preface"
-msgstr "Forord"
-
-msgid "default.genres.prospectus"
-msgstr "Prospekt"
-
-msgid "default.genres.table"
-msgstr "Skema"
-
-msgid "default.genres.figure"
-msgstr "Figur"
-
-msgid "default.genres.photo"
-msgstr "Foto"
-
-msgid "default.genres.illustration"
-msgstr "Illustration"
-
-msgid "default.genres.other"
-msgstr "Andet"
-
-msgid "default.groups.name.manager"
-msgstr "Forlagschef"
-
-msgid "default.groups.plural.manager"
-msgstr "Forlagschefer"
-
-msgid "default.groups.abbrev.manager"
-msgstr "PM"
-
-msgid "default.groups.name.editor"
-msgstr "Forlagsredaktør"
-
-msgid "default.groups.plural.editor"
-msgstr "Forlagsredaktører"
-
-msgid "default.groups.abbrev.editor"
-msgstr "PE"
-
-msgid "default.groups.name.seriesEditor"
-msgstr "Serieredaktør"
-
-msgid "default.groups.plural.seriesEditor"
-msgstr "Serieredaktører"
-
-msgid "default.groups.abbrev.seriesEditor"
-msgstr "ÅR"
-
-msgid "default.groups.name.chapterAuthor"
-msgstr "Kapitelforfatter"
-
-msgid "default.groups.plural.chapterAuthor"
-msgstr "Kapitelforfattere"
-
-msgid "default.groups.abbrev.chapterAuthor"
-msgstr "CA"
-
-msgid "default.groups.name.volumeEditor"
-msgstr "Bindredaktør"
-
-msgid "default.groups.plural.volumeEditor"
-msgstr "Bindredaktører"
-
-msgid "default.groups.abbrev.volumeEditor"
-msgstr "VE"
-
-msgid "default.pressSettings.checklist.notPreviouslyPublished"
-msgstr "Indsendelsen er ikke tidligere blevet offentliggjort, og det er heller ikke sendt til bedømmelse hos et andet forlag (eller der er givet en forklaring i kommentarfeltet til redaktøren)."
-
-msgid "default.pressSettings.checklist.fileFormat"
-msgstr "Indsendelsesfilen er i et Microsoft Word-, RTF- eller OpenDocument-filformat. "
-
-msgid "default.pressSettings.checklist.addressesLinked"
-msgstr "Der er angivet URL-adresser til referencerne, hvor de er tilgængelige. "
-
-msgid "default.pressSettings.checklist.submissionAppearance"
-msgstr "Teksten er skrevet med enkelt linjeafstand, benytter en 12-punktsskrifttype og anvender kursiv i stedet for understregning (med undtagelse af URL-adresser), og alle illustrationer, figurer og tabeller er placeret i teksten på passende steder i stedet for til sidst."
-
-msgid "default.pressSettings.checklist.bibliographicRequirements"
-msgstr "Teksten opfylder de stilistiske og bibliografiske krav, der er beskrevet under Retningslinjer for forfattere, som findes under Om forlaget."
-
-msgid "default.pressSettings.privacyStatement"
-msgstr "Navne og e-mail-adresser, der er indtastet på dette websted, vil udelukkende blive brugt i overensstemmelse med de angivne formål og vil ikke blive gjort tilgængelige for andre formål eller for nogen anden part.
"
-
-msgid "default.pressSettings.openAccessPolicy"
-msgstr "Dette forlag giver øjeblikkelig åben adgang til dets indhold ud fra princippet om, at frigivelse af forskning til rådighed for offentligheden understøtter en større global videnudveksling."
-
-msgid "default.pressSettings.emailSignature"
-msgstr ""
-"
\n"
-"________________________________________________________________________
\n"
-"{$ldelim}$contextName{$rdelim}"
-
-msgid "default.pressSettings.forReaders"
-msgstr "Vi opfordrer læsere til at tilmelde sig nyhedstjenesten vedrørende publiceringer for dette forlag. Brug linket Registrer øverst på forlagets hjemmeside. Denne registrering medfører, at læseren via e-mail modtager indholdsfortegnelsen for alle nye bøger fra forlaget. Denne liste giver også forlaget mulighed for at hævde at have et vist supportniveau eller et vist antal læsere. Se forlagets Erklæring om beskyttelse af personlige oplysninger, der garanterer læserne, at deres navne og e-mail-adresser ikke benyttes til andre formål."
-
-msgid "default.pressSettings.forAuthors"
-msgstr "Er du interesseret i at fremsende et manuskript til dette forlag? Vi anbefaler, at du gennemgår siden Om forlaget, hvor du kan finde forlagets sektionspolitikker, samt Retningslinjer for forfattere. Forfattere skal tilmelde sig forlaget via linket Registrer>, inden de kan fremsende et manuskript. Hvis de allerede er tilmeldt, kan de blot logge på og påbegynde processen, der består af 5 trin."
-
-msgid "default.pressSettings.forLibrarians"
-msgstr "Vi opfordrer forskningsbibliotekarer til at anføre dette forlag på listen over deres biblioteks beholdning af elektroniske forlag. Det skal desuden bemærkes, at dette forlags open source-publiceringssystem er velegnet til biblioteker, som ønsker være værter for deres fakultetsmedlemmer, som kan bruge det til de forlag, hvor de er involveret i redigeringsarbejde (se Open Monograph Press)."
-
-msgid "default.pressSettings.manager.setup.category"
-msgstr "Kategori"
-
-msgid "default.pressSettings.manager.series.book"
-msgstr "Bogserie"
-
-msgid "default.groups.name.externalReviewer"
-msgstr "Ekstern bedømmer"
-
-msgid "default.groups.plural.externalReviewer"
-msgstr "Eksterne bedømmere"
-
-msgid "default.groups.abbrev.externalReviewer"
-msgstr "ER"
-
-msgid "default.contextSettings.forLibrarians"
-msgstr ""
-"Vi opfordrer forskningsbibliotekarer til at katalogisere dette forlag på "
-"listen over deres biblioteks beholdning af elektroniske forlag. Dette "
-"forlags open source-publiceringssystem er også velegnet for biblioteker, som "
-"kan være værter for deres fakultetsmedlemmer der så kan bruge det til de "
-"forlag, de er med til at redigere (se Open "
-"Monograph Press)."
-
-msgid "default.contextSettings.forAuthors"
-msgstr ""
-"Er du interesseret i at fremsende et manuskript til dette forlag? Vi "
-"anbefaler, at du gennemgår siden "
-"Om forlaget, hvor du kan finde forlagets sektionspolitikker, samt "
-"Retningslinjer for forfattere. Forfattere skal tilmelde sig forlaget, inden "
-"de kan fremsende et manuskript. Hvis de allerede er tilmeldt, kan de blot logge på og påbegynde processen, der "
-"består af 5 trin."
-
-msgid "default.contextSettings.forReaders"
-msgstr ""
-"Vi opfordrer læsere til at tilmelde sig nyhedstjenesten vedrørende "
-"publiceringer fra dette forlag. Brug linket Registrer øverst på forlagets "
-"hjemmeside. Denne registrering medfører, at læseren via e-mail modtager "
-"indholdsfortegnelsen fra hver ny monografi. Denne liste giver også forlaget "
-"mulighed for at hævde at have et vist supportniveau eller et vist antal "
-"læsere. Se forlagetsErklæring om beskyttelse af personlige oplysninger, "
-"der garanterer læserne, at deres navne og e-mail-adresser ikke benyttes til "
-"andre formål."
-
-msgid "default.contextSettings.emailSignature"
-msgstr ""
-"
\n"
-"________________________________________________________________________
"
-"\n"
-"{$ldelim}$contextName{$rdelim}"
-
-msgid "default.contextSettings.openAccessPolicy"
-msgstr ""
-"Dette forlag giver øjeblikkelig open access til dets indhold ud fra "
-"princippet om, at stille forskningen frit tilgængelig for offentligheden for "
-"at understøtte en større global vidensudveksling."
-
-msgid "default.contextSettings.privacyStatement"
-msgstr ""
-"Navne og e-mail-adresser, der er sat ind på dette forlags-websted, vil "
-"udelukkende blive brugt til de af forlaget angivne formål og vil ikke blive "
-"gjort tilgængelige i forbindelse med noget andet formål eller over for nogen "
-"anden part.
"
-
-msgid "default.contextSettings.checklist.bibliographicRequirements"
-msgstr ""
-"Teksten overholder de stilistiske og bibliografiske krav, der er anført i Forfattervejledninger, som findes under 'Om forlaget'."
-
-msgid "default.contextSettings.checklist.submissionAppearance"
-msgstr ""
-"Teksten er skrevet uden ekstra linjemellemrum; bruger en 12-punkts "
-"skrifttype; anvender kursiv i stedet for at understrege (bortset fra URL-"
-"adresser); og alle illustrationer, figurer og tabeller er placeret i teksten "
-"på de relevante steder i stedet for ved afslutningen."
-
-msgid "default.contextSettings.checklist.addressesLinked"
-msgstr "Hvor det er tilgængeligt, er der angivet webadresser til referencerne."
-
-msgid "default.contextSettings.checklist.fileFormat"
-msgstr ""
-"Indsendelsesfilen er i filformatet Microsoft Word, RTF eller OpenDocument."
-
-msgid "default.contextSettings.checklist.notPreviouslyPublished"
-msgstr ""
-"Indsendelsen er ikke tidligere blevet offentliggjort, og den er heller ikke "
-"sendt til vurdering hos et andet forlag (eller der er givet en forklaring i "
-"kommentarfeltet til redaktøren)."
-
-msgid "default.groups.abbrev.sectionEditor"
-msgstr "AcqE"
-
-msgid "default.groups.plural.sectionEditor"
-msgstr "Serieredaktører"
-
-msgid "default.groups.name.sectionEditor"
-msgstr "Serieredaktør"
diff --git a/locale/da_DK/default.xml b/locale/da_DK/default.xml
deleted file mode 100644
index 9a221c6143c..00000000000
--- a/locale/da_DK/default.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
- Appendiks
- Bibliografi
- Bogmanuskript
- Kapitelmanuskript
- Ordliste
- Indeks
- Forord
- Prospekt
- Skema
- Figur
- Foto
- Illustration
- Andet
- Forlagschef
- Forlagschefer
- FC
- Forlagsredaktør
- Forlagsredaktører
- FR
- Serieredaktør
- Serieredaktører
- ÅR
- Kapitelforfatter
- Kapitelforfattere
- KP
- Bindredaktør
- Bindredaktører
- ÅRed
- Indsendelsen er ikke tidligere blevet offentliggjort, og det er heller ikke sendt til bedømmelse hos et andet forlag (eller der er givet en forklaring i kommentarfeltet til redaktøren).
- Indsendelsesfilen er i et Microsoft Word-, RTF- eller OpenDocument-filformat.
- Der er angivet URL-adresser til referencerne, hvor de er tilgængelige.
- Teksten er skrevet med enkelt linjeafstand, benytter en 12-punktsskrifttype og anvender kursiv i stedet for understregning (med undtagelse af URL-adresser), og alle illustrationer, figurer og tabeller er placeret i teksten på passende steder i stedet for til sidst.
- Retningslinjer for forfattere, som findes under Om forlaget.]]>
- Navne og e-mail-adresser, der er indtastet på dette websted, vil udelukkende blive brugt i overensstemmelse med de angivne formål og vil ikke blive gjort tilgængelige for andre formål eller for nogen anden part.]]>
- Dette forlag giver øjeblikkelig åben adgang til dets indhold ud fra princippet om, at frigivelse af forskning til rådighed for offentligheden understøtter en større global videnudveksling.
-
-________________________________________________________________________
-{$ldelim}$contextName{$rdelim}]]>
- Registrer øverst på forlagets hjemmeside. Denne registrering medfører, at læseren via e-mail modtager indholdsfortegnelsen for alle nye bøger fra forlaget. Denne liste giver også forlaget mulighed for at hævde at have et vist supportniveau eller et vist antal læsere. Se forlagets Erklæring om beskyttelse af personlige oplysninger, der garanterer læserne, at deres navne og e-mail-adresser ikke benyttes til andre formål.]]>
- Om forlaget, hvor du kan finde forlagets sektionspolitikker, samt Retningslinjer for forfattere. Forfattere skal tilmelde sig forlaget via linket Registrer>, inden de kan fremsende et manuskript. Hvis de allerede er tilmeldt, kan de blot logge på og påbegynde processen, der består af 5 trin.]]>
- Open Monograph Press).]]>
- Kategori
- Bogserie
- Ekstern bedømmer
- Eksterne bedømmere
- EB
-
diff --git a/locale/da_DK/editor.po b/locale/da_DK/editor.po
deleted file mode 100644
index 722239023c5..00000000000
--- a/locale/da_DK/editor.po
+++ /dev/null
@@ -1,176 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-11-28T15:10:04-08:00\n"
-"PO-Revision-Date: 2020-11-27 19:05+0000\n"
-"Last-Translator: Niels Erik Frederiksen \n"
-"Language-Team: Danish \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 "editor.submissionArchive"
-msgstr "Indsendelsesarkiv"
-
-msgid "editor.monograph.cancelReview"
-msgstr "Annullér anmodning"
-
-msgid "editor.monograph.clearReview"
-msgstr "Fjern bedømmer"
-
-msgid "editor.monograph.enterRecommendation"
-msgstr "Indtast anbefaling"
-
-msgid "editor.monograph.enterReviewerRecommendation"
-msgstr "Angiv anmelderens anbefaling"
-
-msgid "editor.monograph.recommendation"
-msgstr "Anbefaling"
-
-msgid "editor.monograph.selectReviewerInstructions"
-msgstr "Vælg en bedømmer ovenfor, og tryk dernæst på knappen 'Vælg bedømmer' for at fortsætte."
-
-msgid "editor.monograph.replaceReviewer"
-msgstr "Udskift bedømmer"
-
-msgid "editor.monograph.editorToEnter"
-msgstr "Redaktør indsætter anbefaling/kommentarer til bedømmer"
-
-msgid "editor.monograph.uploadReviewForReviewer"
-msgstr "Upload bedømmelse"
-
-msgid "editor.monograph.peerReviewOptions"
-msgstr "Valgmuligheder for fagfællebedømmelse"
-
-msgid "editor.monograph.selectProofreadingFiles"
-msgstr "Korrekturlæsningsfiler"
-
-msgid "editor.monograph.internalReview"
-msgstr "Påbegynd intern revision"
-
-msgid "editor.monograph.internalReviewDescription"
-msgstr "Vælg filer nedenfor for at sende dem til det interne bedømmelsestrin."
-
-msgid "editor.monograph.externalReview"
-msgstr "Påbegynd ekstern bedømmelse"
-
-msgid "editor.monograph.final.selectFinalDraftFiles"
-msgstr "Vælg endelige kladdefiler"
-
-msgid "editor.monograph.final.currentFiles"
-msgstr "Nyeste kladdefil"
-
-msgid "editor.monograph.copyediting.currentFiles"
-msgstr "Nyeste filer"
-
-msgid "editor.monograph.copyediting.personalMessageToUser"
-msgstr "Besked til bruger"
-
-msgid "editor.monograph.legend.submissionActions"
-msgstr "Indsendelseshandlinger"
-
-msgid "editor.monograph.legend.submissionActionsDescription"
-msgstr "Overordnede indsendelseshandlinger og muligheder."
-
-msgid "editor.monograph.legend.sectionActions"
-msgstr "Sektionshandlinger"
-
-msgid "editor.monograph.legend.sectionActionsDescription"
-msgstr "Valgmuligheder, der er specifikke for et given sektion, for eksempel upload af filer eller tilføjelse af brugere."
-
-msgid "editor.monograph.legend.itemActions"
-msgstr "Enhedshandlinger"
-
-msgid "editor.monograph.legend.itemActionsDescription"
-msgstr "Handlinger og indstillinger, der er specifikke for en enkelt fil."
-
-msgid "editor.monograph.legend.catalogEntry"
-msgstr ""
-"Se og administrér indsendelsens katalogindgang, herunder metadata og "
-"publiceringsformater"
-
-msgid "editor.monograph.legend.bookInfo"
-msgstr ""
-"Se og administrér indsendelsesmetadata, noter, notifikationer og historik"
-
-msgid "editor.monograph.legend.participants"
-msgstr ""
-"Se og administrér deltagerne hørende til denne indsendelse: forfattere, "
-"redaktører, designere m.fl."
-
-msgid "editor.monograph.legend.add"
-msgstr "Upload en fil til sektionen"
-
-msgid "editor.monograph.legend.add_user"
-msgstr "Føj en bruger til sektionen"
-
-msgid "editor.monograph.legend.settings"
-msgstr "Se og få adgang til enhedsindstillinger, f.eks. information og sletningsmuligheder"
-
-msgid "editor.monograph.legend.more_info"
-msgstr "Flere oplysninger: filnotater, notifikationsindstillinger og historik"
-
-msgid "editor.monograph.legend.notes_none"
-msgstr "Filoplysninger: noter, notifikationsindstillinger og historik (Der er ikke tilføjet nogen noter endnu)"
-
-msgid "editor.monograph.legend.notes"
-msgstr "Filoplysninger: noter, notifikationsindstillinger og historik (Noter er tilgængelige)"
-
-msgid "editor.monograph.legend.notes_new"
-msgstr "Filoplysninger: noter, notifikationsindstillinger og historik (Nye noter tilføjet siden sidste besøg)"
-
-msgid "editor.monograph.legend.edit"
-msgstr "Redigér enhed"
-
-msgid "editor.monograph.legend.delete"
-msgstr "Slet enhed"
-
-msgid "editor.monograph.legend.in_progress"
-msgstr "Handlingen er i gang eller endnu ikke afsluttet"
-
-msgid "editor.monograph.legend.complete"
-msgstr "Handlingen afsluttet"
-
-msgid "editor.monograph.legend.uploaded"
-msgstr "Fil uploadet af rollen nævnt i tabeloversigtens titelfelt"
-
-msgid "editor.submission.introduction"
-msgstr "Under Indsendelse vælger redaktøren, efter gennemsyn af de indsendte filer, den passende handling (som inkluderer besked til forfatteren): Send til intern bedømmelse (indebærer valg af filer til intern bedømmelse); Send til ekstern gennemgang (indebærer valg af filer til ekstern gennemgang); Accepter indsendelse (indebærer valg af filer til det redaktionelle trin); eller Afvis indsendelse (arkivlagring)."
-
-msgid "editor.monograph.editorial.fairCopy"
-msgstr "Renskrift"
-
-msgid "editor.monograph.proofs"
-msgstr "Korrektur"
-
-msgid "editor.monograph.production.approvalAndPublishing"
-msgstr "Godkendelse og udgivelse"
-
-msgid "editor.monograph.production.approvalAndPublishingDescription"
-msgstr "Forskellige publikationsformater, såsom hardcover, paperback og digital, kan uploades i sektionen med publikationsformater nedenfor. Du kan bruge opsætningen til publikationsformater nedenfor som en tjekliste for, hvad der stadig skal gøres for at offentliggøre et publikationsformat."
-
-msgid "editor.monograph.production.publicationFormatDescription"
-msgstr "Tilføj publikationsformater (f.eks. digital, paperback), så layoutredaktøren kan opsætte sider til korrekturlæsning. Korrekturer skal kontrolleres som værende godkendt, og Katalog-indtastningen for formatet skal kontrolleres som anført i bogens katalogpost, før et format kan gøres Tilgængelig (dvs. publiceret)."
-
-msgid "editor.monograph.approvedProofs.edit"
-msgstr "Angiv betingelser i forbindelse med download"
-
-msgid "editor.monograph.approvedProofs.edit.linkTitle"
-msgstr "Angiv betingelser"
-
-msgid "editor.monograph.proof.addNote"
-msgstr "Tilføj svar"
-
-msgid "editor.submission.proof.manageProofFilesDescription"
-msgstr "Alle de filer, der er uploadet til et af indsendelsestrinnene, kan føjes til listen over korrekturfiler ved at blive markeret i afkrydsningsfeltet nedenfor og ved at klikke på Søg: alle tilgængelige filer vises på listen og kan vælges til inkludering."
-
-msgid "editor.publicIdentificationExistsForTheSameType"
-msgstr "Den offentlige identifikator (the public identifier) '{$publicIdentifier}' findes allerede i forbindelse med et andet objekt af samme type. Vælg unikke identifikatorer for objekter af samme type under dette forlag."
-
-msgid "editor.submissions.assignedTo"
-msgstr "Tildelt redaktør"
diff --git a/locale/da_DK/editor.xml b/locale/da_DK/editor.xml
deleted file mode 100644
index 09e3de4dcc3..00000000000
--- a/locale/da_DK/editor.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
-
- Indsendelsesarkiv
- Annuller anmodning
- Fjern bedømmer
- Indtast anbefaling
- Angiv anmelderens anbefaling
- Anbefaling
- Vælg en bedømmer ovenfor, og tryk dernæst på knappen 'Vælg bedømmer' for at fortsætte.
- Udskift bedømmer
- Redaktør indsætter anbefaling/kommentarer til bedømmer
- Upload bedømmelse
- Valgmuligheder for peer review
- Korrekturlæsningsfiler
- Påbegynd intern revision
- Vælg filer nedenfor for at sende dem til det interne bedømmelsestrin.
- Påbegynd ekstern bedømmelse
- Vælg endelige kladdefiler
- Nyeste kladdefil
- Nyeste filer
- Besked til bruger
- Indsendelseshandlinger
- Overordnede indsendelseshandlinger og muligheder.
- Sektionshandlinger
- Valgmuligheder, der er specifikke for et given sektion, for eksempel upload af filer eller tilføjelse af brugere.
- Enhedshandlinger
- Handlinger og indstillinger, der er specifikke for en enkelt fil.
- Se og administrer indsendelsens katalogindgang, herunder metadata og publiceringsformater
- Se og administrer indsendelsesmetadata, noter, notifikationer og historik
- Se og administrer deltagerne hørende til denne indsendelse: forfattere, redaktører, designere m.fl.
- Upload en fil til sektionen
- Føj en bruger til sektionen
- Se og få adgang til enhedsindstillinger, f.eks. information og sletningsmuligheder
- Flere oplysninger: filnotater, notifikationsindstillinger og historik
- Filoplysninger: noter, notifikationsindstillinger og historik (Der er ikke tilføjet nogen noter endnu)
- Filoplysninger: noter, notifikationsindstillinger og historik (Noter er tilgængelige)
- Filoplysninger: noter, notifikationsindstillinger og historik (Nye noter tilføjet siden sidste besøg)
- Rediger enhed
- Slet enhed
- Handlingen er i gang eller endnu ikke afsluttet
- Handlingen afsluttet
- File uploaded by the role in the grid column title
- Under Indsendelse vælger redaktøren, efter gennemsyn af de indsendte filer, den passende handling (som inkluderer besked til forfatteren): Send til intern bedømmelse (indebærer valg af filer til intern bedømmelse); Send til ekstern gennemgang (indebærer valg af filer til ekstern gennemgang); Accepter indsendelse (indebærer valg af filer til det redaktionelle trin); eller Afvis indsendelse (arkivlagring).
- Renskrift
- Korrektur
- Godkendelse og udgivelse
- Forskellige publikationsformater, såsom hardcover, paperback og digital, kan uploades i sektionen med publikationsformater nedenfor. Du kan bruge opsætningen til publikationsformater nedenfor som en tjekliste for, hvad der stadig skal gøres for at offentliggøre et publikationsformat.
- Korrekturer skal kontrolleres som værende godkendt, og Katalog-indtastningen for formatet skal kontrolleres som anført i bogens katalogpost, før et format kan gøres Tilgængelig (dvs. publiceret).]]>
- Angiv betingelser i forbindelse med download
- Angiv betingelser
- Tilføj svar
- Alle de filer, der er uploadet til et af indsendelsestrinnene, kan føjes til listen over korrekturfiler ved at blive markeret i afkrydsningsfeltet nedenfor og ved at klikke på Søg: alle tilgængelige filer vises på listen og kan vælges til inkludering.
- Den offentlige identifikator (the public identifier) '{$publicIdentifier}' findes allerede i forbindelse med et andet objekt af samme type. Vælg unikke identifikatorer for objekter af samme type under dette forlag.
-
diff --git a/locale/da_DK/emailTemplates.xml b/locale/da_DK/emailTemplates.xml
deleted file mode 100644
index 933cca82635..00000000000
--- a/locale/da_DK/emailTemplates.xml
+++ /dev/null
@@ -1,521 +0,0 @@
-
-
-
-
-
- Registrering hos forlag
-
-
-Du er nu blevet registreret som bruger med {$contextName}. Vi har inkluderet dit brugernavn og din adgangskode i denne e-mail. Dette skal bruges i forbindelse med arbejdet omkring forlagets hjemmeside. På ethvert tidspunkt kan du bede om at blive fjernet fra listen over brugere ved at kontakte mig.
-
-Brugernavn: {$username}
-Password: {$password}
-
-Mange tak,
-{$principalContactSignature}]]>
- Denne e-mail sendes til ny-registrerede brugere for at byde dem velkommen til systemet og give dem deres brugernavn og adgangskode.
-
-
- Valider din konto
-
-
-Du har oprettet en konto med {$contextName}, men inden du kan begynde at bruge den, skal du validere din e-mail-konto. For at gøre dette skal du blot følge nedenstående link:
-
-{$activateUrl}
-
-Mange tak,
-{$principalContactSignature}]]>
- Denne e-mail sendes til ny-registrerede brugere for at byde dem velkommen til systemet og give dem deres brugernavn og adgangskode.
-
-
- Forespørgsel om manuskriptredigering
-
-
-Jeg vil bede dig om at foretage manuskriptredigering af "{$submissionTitle}" til {$contextName} ved at følge disse trin.
-1. Klik på manuskriptets URL-adresse nedenfor.
-2. Log ind på forlaget, og klik på filen, der vises i trin 1.
-3. Gennemse manuskriptredigerings-vejledningen, der findes på hjemmesiden
-4. Åbn den downloadede fil og foretag en manuskriptredigering, tilføj eventuelle forespørgsler til forfatteren.
-5. Gem den manuskriptredigerede fil, og upload til Trin 1 under Manuskriptredigering
-6. Send den FÆRDIGE e-mail til redaktøren.
-
-{$contextName} URL: {$contextUrl}
-Submission URL: {$submissionUrl}
-Username: {$participantUsername}
-
-{$editorialContactSignature}]]>
- Denne e-mail sendes af en serieredaktør til manuskriptredaktøren for at bede vedkommende om at påbegynde manuskriptredigeringsprocessen. Den indeholder oplysninger om manuskriptet og om, hvordan der oprettes adgang til det.
-
-
- Redaktionel tildeling
-
-
-Som sektionsredaktør har du fået tildelt manuskriptet "{$submissionTitle}," der er sendt til {$contextName} og som du skal følge igennem den redaktionelle proces..
-
-Submission URL: {$submissionUrl}
-Username: {$editorUsername}
-
-Mange tak
-{$editorialContactSignature}]]>
- Denne e-mail underretter en serieredaktør om, at redaktøren har tildelt vedkommende opgaven med at følge et manuskript igennem redigeringsprocessen. Den indeholder oplysninger om manuskriptet og om, hvordan der oprettes adgang til tidsskriftets websted.
-
-
- Redaktørbeslutning
-
-
-Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "{$submissionTitle}".
-
-Vi har besluttet at:
-
-Manuscript URL: {$submissionUrl}
-
-{$editorialContactSignature}
]]>
- Denne e-mail fra redaktøren eller serieredaktøren til en forfatter er en meddelelse om den endelige afgørelse vedrørende deres bidrag.
-
-
- Redaktørbeslutning
-
-
-Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "{$submissionTitle}".
-
-Vi har besluttet at:
-
-Manuscript URL: {$submissionUrl}
-
-{$editorialContactSignature}
]]>
- Denne e-mail fra redaktøren eller serieredaktøren til en forfatter er en meddelelse om den endelige afgørelse vedrørende deres bidrag.
-
-
- Redaktørbeslutning
-
-
-Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "{$submissionTitle}".
-
-Vi har besluttet at: Afvise manuskript
-
-Manuscript URL: {$submissionUrl}
-
-{$editorialContactSignature}
]]>
- Denne e-mail sendes til forfatteren, hvis redaktøren afviser indsendelsen, før gennemgangsfasen
-
-
- Redaktørbeslutning
-
-
-Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "{$submissionTitle}".
-
-Vi har besluttet følgende:
-
-Manuscript URL: {$submissionUrl}
-
-{$editorialContactSignature}
]]>
- Denne e-mail fra redaktøren eller serieredaktøren til en forfatter er en meddelelse om den endelige afgørelse vedrørende deres bidrag.
-
-
- Redaktørbeslutning
-
-
-Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "{$submissionTitle}".
-
-Vi har besluttet følgende:
-
-Manuscript URL: {$submissionUrl}
-
-{$editorialContactSignature}
]]>
- Denne e-mail fra redaktøren eller serieredaktøren til en forfatter er en meddelelse om den endelige afgørelse vedrørende deres bidrag.
-
-
- Redaktørbeslutning
-
-
-Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "{$submissionTitle}".
-
-Vi har besluttet følgende:
-
-Manuscript URL: {$submissionUrl}
-
-{$editorialContactSignature}
]]>
- Denne e-mail fra redaktøren eller serieredaktøren til forfatteren meddeler at indsendelsen videresendes til ekstern bedømmelse.
-
-
- Redaktørbeslutning
-
-
-Vi har færdiggjort redigeringen af din indsendelse, "{$submissionTitle}," is complete. Den vil nu blive sendt til publicering.
-
-Manuscript URL: {$submissionUrl}
-
-{$editorialContactSignature}
]]>
- Denne e-mail fra redaktøren eller sektionsredaktøren til forfatteren meddeler at indsendelsen nu sendes til publicering
-
-
- Redaktøranbefaling
-
-
-Anbefalingen med hensyn til {$contextName}, "{$submissionTitle}" er: {$recommendation}
-
-{$editorialContactSignature}
]]>
- Denne e-mail fra den anbefalende redaktør eller sektionsredaktør til de beslutningstagende redaktører eller sekttionredaktører indeholder den endelige anbefaling vedrørende indsendelsen.
-
-
- Artikel, der muligvis har din interesse
-
- Denne e-mail-skabelon giver en registreret læser mulighed for at sende oplysninger om en artikel til en person, der muligvis er interesseret. Den er tilgængelig via læseværktøjerne og skal aktiveres af tidsskriftschefen på siden Administration af læseværktøjer.
-
-
- Register færdiggjort
-
-
-Der er nu udarbejdet indeks til manuskriptet "{$submissionTitle}," til {$contextName} og den er klar til korrekturlæsning.
-
-Hvis du har spørgsmål, er du velkommen til at kontakte mig.
-
-{$signatureFullName}]]>
- Denne e-mail fra kartotekføreren til serieredaktøren underretter serieredaktøren om, at udfærdigelsen af registeret er fuldført.
-
-
- Forespørgsel om indeksering
-
-
-Indsendelsen "{$submissionTitle}" til {$contextName} skal nu indekseres ved at følge disse trin.
-1. Klik på manuskriptets URL-adresse nedenfor.
-2. Hent filerne placeret under ‘Produktionsklare filer’ og formater dem til publikationsformater i overensstemmelse med tidsskriftets krav..
-3. Send den FÆRDIGE e-mail til redaktøren
-
-{$contextName} URL: {$contextUrl}
-Submission URL: {$submissionUrl}
-Username: {$participantUsername}
-
-Hvis du ikke er i stand til at påtage dig dette arbejde på nuværende tidspunkt eller har spørgsmål, bedes du kontakte mig. Tak for dit bidrag til dette tidsskrift.
-
-{$editorialContactSignature}]]>
- Denne e-mail fra Serieredaktøren til Indexer'en giver besked om, at vedkommende har fået til opgave at oprette indekser til en indsendelse. Den giver information om indsendelsen og hvordan man får adgang til den.
-
-
- Publiceringsversion færdiggjort
-
-
-Der er nu indsat en publiceringsklar fil til manuskriptet "{$submissionTitle}," til {$contextName} og den er klar til korrekturlæsning.
-
-Hvis du har spørgsmål, er du velkommen til at kontakte mig.
-
-{$signatureFullName}]]>
- Denne e-mail fra layoutredaktøren til serieredaktøren underretter dem om, at layoutprocessen er fuldført.
-
-
- Forespørgsel om publiceringsversion
-
-
-Indsendelsen "{$submissionTitle}" til {$contextName} skal nu gøres publiceringsklar ved at følge disse trin.
-1. Klik på manuskriptets URL-adresse nedenfor.
-2. Hent filerne placeret under ‘Produktionsklare filer’ og formater dem til publiceringsklare filer i overensstemmelse med tidsskriftets krav.
-3. Send den FÆRDIGE e-mail til redaktøren.
-
-{$contextName} URL: {$contextUrl}
-Submission URL: {$submissionUrl}
-Username: {$participantUsername}
-
-Hvis du ikke er i stand til at påtage dig dette arbejde på nuværende tidspunkt eller har spørgsmål, bedes du kontakte mig.
-Tak for dit bidrag til dette tidsskrift.
-
-{$editorialContactSignature}]]>
- enne e-mail fra serieredaktøren til layoutredaktøren underretter dem om, at han/hun har fået til opgave at foretage layoutredigering af et manuskript. Den indeholder oplysninger om manuskriptet og om, hvordan der oprettes adgang til det.
-
-
- Ny meddelelse fra {$siteTitle}
-
-
-{$notificationContents}
-
-Link: {$url}
-
-This is an automatically generated email; please do not reply to this message.
-{$principalContactSignature}]]>
- Denne e-mail er blevet sendt til registrerede brugere, som har valgt at få tilsendt denne type meddelelser.
-
-
- Besked omhandlende {$contextName}
- Skriv venligst din besked.
- Standardmeddelelsen (tom), der bliver brugt i Notification Center Message Listbuilder.
-
-
- Nulstil adgangskode
-
-
-Dit brugernavn: {$username}
-Dit nye password: {$password}
-
-{$principalContactSignature}]]>
- Denne e-mail sendes til registrerede brugere, når de har nulstillet deres adgangskode, efter at de har fulgt den proces, der er beskrevet i e-mailen PASSWORD_RESET_CONFIRM.
-
-
- Bekræftelse af nulstilling af adgangskode
-
-
-Hvis du ikke selv har sendt denne forespørgsel, skal du ignorere denne e-mail, og din adgangskode vil ikke blive ændret. Klik på nedenstående URL-adresse, hvis adgangskoden skal ændres.
-
-Nulstil min password: {$url}
-
-{$principalContactSignature}]]>
- Denne e-mail sendes til registrerede brugere, når de angiver, at de har glemt deres adgangskode eller ikke kan logge på. Den indeholder en URL-adresse, de kan følge for at nulstille deres adgangskode.
-
-
- Ny bog er blevet publiceret
-
-
-{$contextName} har lige publiceret den seneste bog på {$contextUrl}. Vi inviterer dig til at gennemse indholdsfortegnelsen her og derefter besøge vores websted, hvor du kan gennemse monografer og andet, der har din interesse.
-
-Tak for din fortsatte interesse i vores arbejde. {$editorialContactSignature}]]>
- Denne e-mail sendes til registrerede læsere via linket "Underret brugere" på redaktørens brugerstartside. Den underretter læsere om en ny bog og inviterer dem til at besøge tidsskriftet på en angiven URL-adresse.
-
-
- Registrering som bedømmer hos {$contextName}
-
-
-Vi giver dig et brugernavn og en adgangskode, der skal bruges i forbindelse med alle interaktioner med tidsskriftet via tidsskriftets webside. Du kan f.eks. bede om at få opdateret din profil, herunder dine bedømmelsesinteresser.
-
-Brugernavn: {$username}
-Password: {$password}
-
-Mange tak.
-{$principalContactSignature}]]>
- Denne e-mail sendes til netop registrerede bedømmere for at byde dem velkommen til systemet og for at oplyse dem om deres brugernavn og adgangskode.
-
-
- Bekræftelse af bedømmelse af artikel
-
-
-Tak, fordi du har fuldført bedømmelsen af manuskriptet "{$submissionTitle}" til {$contextName}. Vi påskønner dit bidrag til kvaliteten af de artikler, vi publicerer.
-
-{$editorialContactSignature}]]>
- Denne e-mail sendes af sektionsredaktøren for at bekræfte modtagelsen af en fuldført bedømmelse og takker bedømmeren for sit bidrag.
-
-
- Annullering af forespørgsel om bedømmelse
-
-
-På nuværende tidspunkt har vi valgt at annullere vores forespørgsel til dig om at bedømme manuskriptet "{$submissionTitle}" til {$contextName}. Vi beklager den ulejlighed, dette eventuelt måtte forårsage, og vi håber, at vi må henvende os til dig i fremtiden og bede om din assistance i forbindelse med dette tidsskrifts bedømmelsesproces.
-
-Hvis du har spørgsmål, er du velkommen til at kontakte mig.
-
-{$editorialContactSignature}]]>
- Denne e-mail sendes af sektionsredaktøren til en bedømmer, som er ved at bedømme et manuskript, og underretter vedkommende om, at bedømmelsen er blevet annulleret.
-
-
- Kan foretage bedømmelse
-
-
-Jeg kan og er villig til at bedømme manuskriptet "{$submissionTitle}" til {$contextName}. Tak, fordi du tænkte på mig, og jeg planlægger at være færdig med bedømmelsen senest på forfaldsdatoen, {$reviewDueDate}, hvis ikke før.
-
-{$reviewerName}]]>
- Denne e-mail sendes af en bedømmer til sektionsredaktøren som svar på en bedømmelsesforespørgsel og underretter sektionsredaktøren om, at bedømmelsesforespørgslen er blevet accepteret, og at bedømmelsen vil være fuldført til den angivne dato.
-
-
- Kan ikke foretage bedømmelse
-
-
-Jeg beklager, at jeg på nuværende tidspunkt ikke kan bedømme manuskriptet "{$submissionTitle}" til {$contextName}. Tak, fordi du tænkte på mig, og du er altid velkommen til at kontakte mig en anden gang.
-
-{$reviewerName}]]>
- Denne e-mail sendes af en bedømmer til sektionsredaktøren som svar på en bedømmelsesforespørgsel og underretter sektionsredaktøren om, at bedømmelsesforespørgslen er blevet afvist.
-
-
- Påmindelse om bedømmelse af manuskript
-
-
-Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af manuskriptet "{$submissionTitle}" til {$contextName}. Vi havde håbet på at modtage bedømmelsen senest den {$reviewDueDate} og ser frem til at modtage den, så snart du er færdig med den.
-
-Hvis du ikke har dit brugernavn og dit password til tidsskriftets websted, kan du bruge dette link til at nulstille adgangskoden (som så vil blive sendt til dig via e-mail sammen med dit brugernavn). {$passwordResetUrl}
-
-Manuskriptets URL-adresse: {$submissionReviewUrl}
-
-Vi beder dig bekræfte, at du er i stand til at fuldføre dette vigtige bidrag til tidsskriftets arbejde. Jeg ser frem til at høre fra dig.
-
-{$editorialContactSignature}]]>
- Denne e-mail sendes af sektionsredaktøren til en bedømmer for at minde vedkommende om, at bedømmelsen skulle have været afleveret.
-
-
- Automatisk påmindelse om bedømmelse af manuskript
-
-
-Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af manuskriptet "{$submissionTitle}" til {$contextName}. Vi havde håbet på at modtage bedømmelsen senest den {$reviewDueDate}, og denne e-mail er blevet automatisk genereret og sendt til dig, da den pågældende dato er overskredet. Vi ser stadig frem til at modtage den, så snart du er færdig med den.
-
-Hvis du ikke har dit brugernavn og password til tidsskriftets websted, kan du bruge dette link til at nulstille adgangskoden (som så vil blive sendt til dig via e-mail sammen med dit brugernavn). {$passwordResetUrl}
-
-Manuskriptets URL-adresse: {$submissionReviewUrl}
-
-Vi beder dig bekræfte, at du er i stand til at fuldføre dette vigtige bidrag til tidsskriftets arbejde. Jeg ser frem til at høre fra dig.
-
-{$editorialContactSignature}]]>
- Denne e-mail sendes automatisk, når en bedømmers forfaldsdato overskrides (se Bedømmelsesindstillinger under Konfiguration af tidsskrift, trin 2), og når adgang for bedømmere ved hjælp af ét klik er deaktiveret. Planlagte opgaver skal aktiveres og konfigureres (se webstedets konfigurationsfil).
-
-
- Automatisk påmindelse om bedømmelse af manuskript
-
-
-Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af manuskriptet "{$submissionTitle}" til {$contextName}. Vi havde håbet på at modtage bedømmelsen senest den {$reviewDueDate}, og denne e-mail er blevet automatisk genereret og sendt til dig, da den pågældende dato er overskredet. Vi ser stadig frem til at modtage den, så snart du er færdig med den.
-
-Manuskriptets URL-adresse: {$submissionReviewUrl}
-
-Vi beder dig bekræfte, at du er i stand til at fuldføre dette vigtige bidrag til tidsskriftets arbejde. Jeg ser frem til at høre fra dig.
-
-{$editorialContactSignature}]]>
- Workflow > Bedømmelse), og når adgang for bedømmere ved hjælp af ét klik er aktiveret. Planlagte opgaver skal aktiveres og konfigureres (se webstedets konfigurationsfil).]]>
-
-
- Påmindelse om bedømmelse af manuskript
-
-
-Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af manuskriptet "{$submissionTitle}" til {$contextName}. Vi havde håbet på at modtage bedømmelsen senest den {$reviewDueDate} og ser frem til at modtage den, så snart du er færdig med den.
-
-Manuskriptets URL-adresse: {$submissionReviewUrl}
-
-Vi beder dig bekræfte, at du er i stand til at fuldføre dette vigtige bidrag til tidsskriftets arbejde. Jeg ser frem til at høre fra dig.
-
-{$editorialContactSignature}]]>
- Denne e-mail sendes af serieredaktøren til en bedømmer for at minde vedkommende om, at bedømmelsen skulle have været afleveret.
-
-
- Forespørgsel om bedømmelse af manuskript
-
-
-{$messageToReviewer}
-
-Log venligst ind på forlagets websted ved {$ responseDueDate} for at tilkendegive, om du vil foretage bedømmelsen eller ikke, samt for at få adgang til indsendelsen og registrere din bedømmelse og anbefaling.
-
-Selve bedømmelsen skal afleveres senest den {$reviewDueDate}.
-
-Submission URL: {$submissionReviewUrl}
-
-Brugernavn: {$reviewerUserName}
-
-Tak for din overvejelse af denne forespørgsel.
-
-
-Mange hilsner
-{$editorialContactSignature}
]]>
- Denne e-mail fra serieredaktøren til en bedømmer anmoder bedømmeren om at acceptere eller afvise at bedømme et manuskript. Den indeholder oplysninger om manuskriptet, f.eks. titel og resumé, forfaldsdato for bedømmelse, samt hvordan der kan oprettes adgang til selve manuskriptet.
-
-
- Forespørgsel om bedømmelse af manuskript
-
-
-Jeg tror, at du vil kunne være en fremragende bedømmer af manuskriptet "{$submissionTitle}", og jeg beder dig om at overveje at påtage dig denne vigtige opgave for os. Dette forlags Retningslinjer for bedømmelser er tilføjet nedenfor, og manuskriptet er vedhæftet denne e-mail. Din bedømmelse af manuskriptet samt din anbefaling skal sendes til mig pr. e-mail senest den {$reviewDueDate}.
-
-Meld venligst tilbage via e-mail inden den {$weekLaterDate} , om du kan og er villig til at foretage bedømmelsen.
-
-Tak for din overvejelse af denne forespørgsel.
-
-{$editorialContactSignature}
-
-
-Retningslinjer for bedømmelser
-
-{$reviewGuidelines}
]]>
- Denne e-mail sendes af serieredaktøren til en bedømmer og beder vedkommende om at acceptere eller afvise at bedømme et manuskript. Manuskriptet er vedhæftet denne e-mail. Denne meddelelse benyttes, hvis indstillingen for bedømmelsesproces, hvor manuskript er vedhæftet e-mail, er valgt
-
-
- Forespørgsel om bedømmelse af manuskript
-
-
-Jeg tror, at du vil være en fremragende bedømmer af manuskriptet "{$submissionTitle}", der er blevet sendt til {$contextName}. Nedenfor finder du et resumé af manuskriptet, og jeg håber, at du vil overveje at påtage dig denne vigtige opgave for os.
-
-Log på tidsskriftets websted inden den {$weekLaterDate} for at angive, om du vil påtage dig bedømmelsen eller ej, samt for at få adgang til manuskriptet og registrere din bedømmelse og anbefaling.
-
-Selve bedømmelsen skal afleveres senest den {$reviewDueDate}.
-
-Manuskriptets URL-adresse: {$submissionReviewUrl}
-
-Tak for din overvejelse af denne forespørgsel.
-
-{$editorialContactSignature}
-
-
-
-"{$submissionTitle}"
-
-{$abstractTermIfEnabled}
-{$submissionAbstract}]]>
- Workflow > Bedømmelse og adgang for bedømmere ved hjælp af ét klik er aktiveret.]]>
-
-
- Forespørgsel om bedømmelse af manuskript
-
-Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af manuskriptet "{$submissionTitle}," for {$contextName}. Vi havde håbet på at modtage dit svar senest den {$responseDueDate}, og denne e-mail er blevet automatisk genereret og sendt til dig, da den pågældende dato er overskredet.
-
-{$messageToReviewer}
-
-Log på tidsskriftets websted for at angive, om du vil påtage dig bedømmelsen eller ej, samt for at få adgang til manuskriptet og registrere din bedømmelse og anbefaling.
-
-Selve bedømmelsen skal afleveres senest den {$reviewDueDate}.
-
-Submission URL: {$submissionReviewUrl}
-
-Brugernavn: {$reviewerUserName}
-
-Tak for din overvejelse af denne forespørgsel.
-
-
-MAnge hilsner
-{$editorialContactSignature}
]]>
- Workflow > Bedømmelse) og ’Aktiver adgang for bedømmere ved hjælp af ét klik’ er fravalgt. Tidsfrister og påmindelser skal være defineret.]]>
-
-
- Forespørgsel om bedømmelse af manuskript
-
-Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af manuskriptet "{$submissionTitle}," for {$contextName}. Vi havde håbet på at modtage dit svar senest den {$responseDueDate}, og denne e-mail er blevet automatisk genereret og sendt til dig, da den pågældende dato er overskredet.
-
-Jeg tror, at du vil være en fremragende bedømmer af manuskriptet. Nedenfor finder du et resumé af manuskriptet, og jeg håber, at du vil overveje at påtage dig denne vigtige opgave for os.
-
-Log på tidsskriftets websted for at angive, om du vil påtage dig bedømmelsen eller ej, samt for at få adgang til manuskriptet og registrere din bedømmelse og anbefaling.
-
-Selve bedømmelsen skal afleveres senest den {$reviewDueDate}.
-
-Manuskriptets URL-adresse: {$submissionReviewUrl}
-
-Tak for din overvejelse af denne forespørgsel.
-
-{$editorialContactSignature}
-
-"{$submissionTitle}"
-
-
-
-{$abstractTermIfEnabled}
-{$submissionAbstract}]]>
- Workflow > Bedømmelse) og ’Aktiver adgang for bedømmere ved hjælp af ét klik’ er aktiveret. Tidsfrister og påmindelser skal være defineret.]]>
-
-
- Bekræftelse af manuskript
-
-
-Tak, fordi du har fremsendt manuskriptet "{$submissionTitle}" til {$contextName}. Ved hjælp af det online-styringssystem, vi bruger, kan du følge manuskriptet igennem den redaktionelle proces ved at logge på tidsskriftets websted:
-
-Manuskriptets URL-adresse: {$submissionUrl}
-Brugernavn: {$authorUsername}
-
-Hvis du har spørgsmål, er du velkommen til at kontakte mig. Tak, fordi du har valgt at publicere din artikel i dette tidsskrift.
-
-{$editorialContactSignature}]]>
- Når denne e-mail er aktiveret, sendes den automatisk til en forfatter, når vedkommende har fremsendt et manuskript til tidsskriftet. Den indeholder oplysninger om, hvordan forfatteren kan følge manuskriptet igennem processen, og den takker forfatteren for manuskriptet.
-
-
- Indsendelsesbekræftelse
-
-
-{$submitterName} har indsendt manuskriptet "{$submissionTitle}" til {$contextName}.
-
-Hvis du har spørgsmål, er du velkommen til at kontakte mig. Tak fordi du har valgt at publicere din artikel i dette tidsskrift.
-
-{$editorialContactSignature}]]>
- Når denne e-mail er aktiveret, sendes automatisk besked til de andre forfattere, der ikke er brugere inden for OMP, der er angivet under indsendelsesprocessen.
-
-
diff --git a/locale/da_DK/emails.po b/locale/da_DK/emails.po
deleted file mode 100644
index 3b3314ddd8e..00000000000
--- a/locale/da_DK/emails.po
+++ /dev/null
@@ -1,871 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-12-03T14:14:06-08:00\n"
-"PO-Revision-Date: 2020-06-05 16:39+0000\n"
-"Last-Translator: Niels Erik Frederiksen \n"
-"Language-Team: Danish \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 "emails.userRegister.subject"
-msgstr "Registrering hos forlag"
-
-msgid "emails.userRegister.body"
-msgstr ""
-"{$userFullName}
\n"
-"
\n"
-"Du er nu blevet registreret som bruger med {$contextName}. Vi har inkluderet dit brugernavn og din adgangskode i denne e-mail. Dette skal bruges i forbindelse med arbejdet omkring forlagets hjemmeside. På ethvert tidspunkt kan du bede om at blive fjernet fra listen over brugere ved at kontakte mig.
\n"
-"
\n"
-"Brugernavn: {$username}
\n"
-"Password: {$password}
\n"
-"
\n"
-"Mange tak,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userRegister.description"
-msgstr "Denne e-mail sendes til ny-registrerede brugere for at byde dem velkommen til systemet og give dem deres brugernavn og adgangskode."
-
-msgid "emails.userValidate.subject"
-msgstr "Validér din konto"
-
-msgid "emails.userValidate.body"
-msgstr ""
-"{$userFullName}
\n"
-"
\n"
-"Du har oprettet en konto med {$contextName}, men inden du kan begynde at bruge den, skal du validere din e-mail-konto. For at gøre dette skal du blot følge nedenstående link:
\n"
-"
\n"
-"{$activateUrl}
\n"
-"
\n"
-"Mange tak,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userValidate.description"
-msgstr "Denne e-mail sendes til ny-registrerede brugere for at byde dem velkommen til systemet og give dem deres brugernavn og adgangskode."
-
-msgid "emails.copyeditRequest.subject"
-msgstr "Forespørgsel om manuskriptredigering"
-
-msgid "emails.copyeditRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"Jeg vil bede dig om at foretage manuskriptredigering af "
-""{$submissionTitle}" til {$contextName} ved at følge disse trin.<"
-"br />\n"
-"1. Klik på manuskriptets URL-adresse nedenfor.
\n"
-"2. Log ind på forlaget, og klik på filen, der vises i trin 1.
\n"
-"3. Gennemse manuskriptredigerings-vejledningen, der findes på hjemmesiden
\n"
-"4. Åbn den downloadede fil og foretag en manuskriptredigering, tilføj "
-"eventuelle forespørgsler til forfatteren.
\n"
-"5. Gem den manuskriptredigerede fil, og upload til Trin 1 under "
-"Manuskriptredigering
\n"
-"6. Send den FÆRDIGE e-mail til redaktøren.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Manuskript URL: {$submissionUrl}
\n"
-"Brugernavn: {$participantUsername}"
-
-msgid "emails.copyeditRequest.description"
-msgstr "Denne e-mail sendes af en serieredaktør til manuskriptredaktøren for at bede vedkommende om at påbegynde manuskriptredigeringsprocessen. Den indeholder oplysninger om manuskriptet og om, hvordan der oprettes adgang til det."
-
-msgid "emails.editorAssign.subject"
-msgstr "Redaktionel tildeling"
-
-msgid "emails.editorAssign.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Som sektionsredaktør har du fået tildelt manuskriptet "
-""{$submissionTitle}," der er sendt til {$contextName} og som du "
-"skal følge igennem den redaktionelle proces..
\n"
-"
\n"
-"Submission URL: {$submissionUrl}
\n"
-"Username: {$editorUsername}
\n"
-"
\n"
-"Mange tak"
-
-msgid "emails.editorAssign.description"
-msgstr "Denne e-mail underretter en serieredaktør om, at redaktøren har tildelt vedkommende opgaven med at følge et manuskript igennem redigeringsprocessen. Den indeholder oplysninger om manuskriptet og om, hvordan der oprettes adgang til tidsskriftets websted."
-
-msgid "emails.editorDecisionAccept.subject"
-msgstr "Redaktørbeslutning"
-
-msgid "emails.editorDecisionAccept.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "
-""{$submissionTitle}".
\n"
-"
\n"
-"Vi har besluttet at:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionAccept.description"
-msgstr "Denne e-mail fra redaktøren eller serieredaktøren til en forfatter er en meddelelse om den endelige afgørelse vedrørende deres bidrag."
-
-msgid "emails.editorDecisionDecline.subject"
-msgstr "Redaktørbeslutning"
-
-msgid "emails.editorDecisionDecline.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "
-""{$submissionTitle}".
\n"
-"
\n"
-"Vi har besluttet at:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionDecline.description"
-msgstr "Denne e-mail fra redaktøren eller serieredaktøren til en forfatter er en meddelelse om den endelige afgørelse vedrørende deres bidrag."
-
-msgid "emails.editorDecisionInitialDecline.subject"
-msgstr "Redaktørbeslutning"
-
-msgid "emails.editorDecisionInitialDecline.body"
-msgstr ""
-"\n"
-"\t\t\t{$authorName}:
\n"
-"
\n"
-"Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "
-""{$submissionTitle}".
\n"
-"
\n"
-"Vi har besluttet at: Afvise manuskript
\n"
-"
\n"
-"Manuskript URL: {$submissionUrl}\n"
-"\t\t"
-
-msgid "emails.editorDecisionInitialDecline.description"
-msgstr "Denne e-mail sendes til forfatteren, hvis redaktøren afviser indsendelsen, før gennemgangsfasen"
-
-msgid "emails.editorDecisionResubmit.subject"
-msgstr "Redaktørbeslutning"
-
-msgid "emails.editorDecisionResubmit.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "
-""{$submissionTitle}".
\n"
-"
\n"
-"Vi har besluttet følgende:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionResubmit.description"
-msgstr "Denne e-mail fra redaktøren eller serieredaktøren til en forfatter er en meddelelse om den endelige afgørelse vedrørende deres bidrag."
-
-msgid "emails.editorDecisionRevisions.subject"
-msgstr "Redaktørbeslutning"
-
-msgid "emails.editorDecisionRevisions.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "
-""{$submissionTitle}".
\n"
-"
\n"
-"Vi har besluttet følgende:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionRevisions.description"
-msgstr "Denne e-mail fra redaktøren eller serieredaktøren til en forfatter er en meddelelse om den endelige afgørelse vedrørende deres bidrag."
-
-msgid "emails.editorDecisionSendToExternal.subject"
-msgstr "Redaktørbeslutning"
-
-msgid "emails.editorDecisionSendToExternal.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Vi er nået frem til en afgørelse vedrørende dit bidrag til {$contextName}, "
-""{$submissionTitle}".
\n"
-"
\n"
-"Vi har besluttet følgende:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToExternal.description"
-msgstr "Denne e-mail fra redaktøren eller serieredaktøren til forfatteren meddeler at indsendelsen videresendes til ekstern bedømmelse."
-
-msgid "emails.editorDecisionSendToProduction.subject"
-msgstr "Redaktørbeslutning"
-
-msgid "emails.editorDecisionSendToProduction.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Vi har færdiggjort redigeringen af din indsendelse, "
-""{$submissionTitle}," is complete. Den vil nu blive sendt til "
-"publicering.
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToProduction.description"
-msgstr ""
-"Denne e-mail fra redaktøren eller sektionsredaktøren til forfatteren "
-"meddeler at indsendelsen nu sendes til produktion."
-
-msgid "emails.editorRecommendation.subject"
-msgstr "Redaktøranbefaling"
-
-msgid "emails.editorRecommendation.body"
-msgstr ""
-"{$editors}:
\n"
-"
\n"
-"Anbefalingen med hensyn til {$contextName}, "{$submissionTitle}" "
-"er: {$recommendation}"
-
-msgid "emails.editorRecommendation.description"
-msgstr "Denne e-mail fra den anbefalende redaktør eller sektionsredaktør til de beslutningstagende redaktører eller sekttionredaktører indeholder den endelige anbefaling vedrørende indsendelsen."
-
-msgid "emails.emailLink.subject"
-msgstr "Artikel, der muligvis har din interesse"
-
-msgid "emails.emailLink.body"
-msgstr "Jeg tænkte, at du måske ville være interesseret i at læse "{$submissionTitle}" af {$authorName} der er publiceret i Årg. {$volume}, Nummer {$number} ({$year}) i {$contextName} at "{$monographUrl}"."
-
-msgid "emails.emailLink.description"
-msgstr "Denne e-mail-skabelon giver en registreret læser mulighed for at sende oplysninger om en artikel til en person, der muligvis er interesseret. Den er tilgængelig via læseværktøjerne og skal aktiveres af tidsskriftschefen på siden Administration af læseværktøjer."
-
-msgid "emails.indexComplete.subject"
-msgstr "Register færdiggjort"
-
-msgid "emails.indexComplete.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Der er nu udarbejdet indeks til manuskriptet "{$submissionTitle}," til {$contextName} og den er klar til korrekturlæsning.
\n"
-"
\n"
-"Hvis du har spørgsmål, er du velkommen til at kontakte mig.
\n"
-"
\n"
-"{$signatureFullName}"
-
-msgid "emails.indexComplete.description"
-msgstr "Denne e-mail fra kartotekføreren til serieredaktøren underretter serieredaktøren om, at udfærdigelsen af registeret er fuldført."
-
-msgid "emails.indexRequest.subject"
-msgstr "Forespørgsel om indeksering"
-
-msgid "emails.indexRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"Indsendelsen "{$submissionTitle}" til {$contextName} skal nu indekseres ved at følge disse trin.
\n"
-"1. Klik på manuskriptets URL-adresse nedenfor.
\n"
-"2. Hent filerne placeret under ‘Produktionsklare filer’ og formater dem til publikationsformater i overensstemmelse med tidsskriftets krav..
\n"
-"3. Send den FÆRDIGE e-mail til redaktøren
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Submission URL: {$submissionUrl}
\n"
-"Username: {$participantUsername}
\n"
-"
\n"
-"Hvis du ikke er i stand til at påtage dig dette arbejde på nuværende tidspunkt eller har spørgsmål, bedes du kontakte mig. Tak for dit bidrag til dette tidsskrift.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.indexRequest.description"
-msgstr ""
-"Denne e-mail fra Serieredaktøren til Indexeren giver besked om, at "
-"vedkommende har fået til opgave at oprette indekser til en indsendelse. Den "
-"giver information om indsendelsen og hvordan man får adgang til den."
-
-msgid "emails.layoutComplete.subject"
-msgstr "Publiceringsversion færdiggjort"
-
-msgid "emails.layoutComplete.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Der er nu indsat en publiceringsklar fil til manuskriptet "{$submissionTitle}," til {$contextName} og den er klar til korrekturlæsning.
\n"
-"
\n"
-"Hvis du har spørgsmål, er du velkommen til at kontakte mig.
\n"
-"
\n"
-"{$signatureFullName}"
-
-msgid "emails.layoutComplete.description"
-msgstr "Denne e-mail fra layoutredaktøren til serieredaktøren underretter dem om, at layoutprocessen er fuldført."
-
-msgid "emails.layoutRequest.subject"
-msgstr "Forespørgsel om publiceringsversion"
-
-msgid "emails.layoutRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"Indsendelsen "{$submissionTitle}" til {$contextName} skal nu gøres "
-"publiceringsklar ved at følge disse trin.
\n"
-"1. Klik på manuskriptets URL-adresse nedenfor.
\n"
-"2. Hent filerne placeret under ‘Produktionsklare filer’ og formater dem til "
-"publiceringsklare filer i overensstemmelse med tidsskriftets krav.
\n"
-"3. Send den FÆRDIGE e-mail til redaktøren.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Manuskript URL: {$submissionUrl}
\n"
-"Brugernavn: {$participantUsername}
\n"
-"
\n"
-"Hvis du ikke er i stand til at påtage dig dette arbejde på nuværende "
-"tidspunkt eller har spørgsmål, bedes du kontakte mig. Tak for dit bidrag til "
-"dette tidsskrift."
-
-msgid "emails.layoutRequest.description"
-msgstr ""
-"Denne e-mail fra serieredaktøren til layoutredaktøren underretter dem om, at "
-"han/hun har fået til opgave at foretage layoutredigering af et manuskript. "
-"Den indeholder oplysninger om manuskriptet og om, hvordan der oprettes "
-"adgang til det."
-
-msgid "emails.notification.subject"
-msgstr "Ny meddelelse fra {$siteTitle}"
-
-msgid "emails.notification.body"
-msgstr ""
-"Du har modtaget en ny meddelelse fra {$siteTitle}:
\n"
-"
\n"
-"{$notificationContents}
\n"
-"
\n"
-"Link: {$url}
\n"
-"
\n"
-"This is an automatically generated email; please do not reply to this message.
\n"
-"{$principalContactSignature}"
-
-msgid "emails.notification.description"
-msgstr "Denne e-mail er blevet sendt til registrerede brugere, som har valgt at få tilsendt denne type meddelelser."
-
-msgid "emails.notificationCenterDefault.subject"
-msgstr "Besked omhandlende {$contextName}"
-
-msgid "emails.notificationCenterDefault.body"
-msgstr "Skriv venligst din besked."
-
-msgid "emails.notificationCenterDefault.description"
-msgstr "Standardmeddelelsen (tom), der bliver brugt i Notification Center Message Listbuilder."
-
-msgid "emails.passwordReset.subject"
-msgstr "Nulstil adgangskode"
-
-msgid "emails.passwordReset.body"
-msgstr ""
-"Din adgangskode er blevet nulstillet og kan benyttes på webstedet {$siteTitle}.
\n"
-"
\n"
-"Dit brugernavn: {$username}
\n"
-"Dit nye password: {$password}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordReset.description"
-msgstr "Denne e-mail sendes til registrerede brugere, når de har nulstillet deres adgangskode, efter at de har fulgt den proces, der er beskrevet i e-mailen PASSWORD_RESET_CONFIRM."
-
-msgid "emails.passwordResetConfirm.subject"
-msgstr "Bekræftelse af nulstilling af adgangskode"
-
-msgid "emails.passwordResetConfirm.body"
-msgstr ""
-"Vi har modtaget en forespørgsel om at nulstille din adgangskode til webstedet {$siteTitle}.
\n"
-"
\n"
-"Hvis du ikke selv har sendt denne forespørgsel, skal du ignorere denne e-mail, og din adgangskode vil ikke blive ændret. Klik på nedenstående URL-adresse, hvis adgangskoden skal ændres.
\n"
-"
\n"
-"Nulstil min password: {$url}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordResetConfirm.description"
-msgstr "Denne e-mail sendes til registrerede brugere, når de angiver, at de har glemt deres adgangskode eller ikke kan logge på. Den indeholder en URL-adresse, de kan følge for at nulstille deres adgangskode."
-
-msgid "emails.publishNotify.subject"
-msgstr "Ny bog er blevet publiceret"
-
-msgid "emails.publishNotify.body"
-msgstr ""
-"Læsere:
\n"
-"
\n"
-"{$contextName} har lige publiceret den seneste bog på {$contextUrl}. Vi "
-"inviterer dig til at gennemse indholdsfortegnelsen her og derefter besøge "
-"vores websted, hvor du kan gennemse monografer og andet, der har din "
-"interesse.
\n"
-"
\n"
-"Tak for din fortsatte interesse i vores arbejde.
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.publishNotify.description"
-msgstr "Denne e-mail sendes til registrerede læsere via linket \"Underret brugere\" på redaktørens brugerstartside. Den underretter læsere om en ny bog og inviterer dem til at besøge tidsskriftet på en angiven URL-adresse."
-
-msgid "emails.reviewerRegister.subject"
-msgstr "Registrering som bedømmer hos {$contextName}"
-
-msgid "emails.reviewerRegister.body"
-msgstr ""
-"På baggrund af din ekspertise har vi taget den frihed at registrere dit navn i bedømmerdatabasen for {$contextName}. Dette stiller ikke krav om nogen form for engagement fra din side, men gør det blot muligt for os at kontakte dig med hensyn til en eventuelt bedømmelse af et manuskript. Hvis du inviteres til at foretage en bedømmelse, vil du have mulighed for at se titlen på og et resumé af det pågældende manuskript, og du vil altid kunne acceptere eller afvise invitationen. Du kan til enhver tid også bede om at få dit navn fjernet fra listen over bedømmere.
\n"
-"
\n"
-"Vi giver dig et brugernavn og en adgangskode, der skal bruges i forbindelse med alle interaktioner med tidsskriftet via tidsskriftets webside. Du kan f.eks. bede om at få opdateret din profil, herunder dine bedømmelsesinteresser.
\n"
-"
\n"
-"Brugernavn: {$username}
\n"
-"Password: {$password}
\n"
-"
\n"
-"Mange tak.
\n"
-"{$principalContactSignature}"
-
-msgid "emails.reviewerRegister.description"
-msgstr "Denne e-mail sendes til netop registrerede bedømmere for at byde dem velkommen til systemet og for at oplyse dem om deres brugernavn og adgangskode."
-
-msgid "emails.reviewAck.subject"
-msgstr "Bekræftelse af bedømmelse af artikel"
-
-msgid "emails.reviewAck.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Tak, fordi du har fuldført bedømmelsen af manuskriptet "
-""{$submissionTitle}" til {$contextName}. Vi påskønner dit bidrag "
-"til kvaliteten af de artikler, vi publicerer."
-
-msgid "emails.reviewAck.description"
-msgstr "Denne e-mail sendes af sektionsredaktøren for at bekræfte modtagelsen af en fuldført bedømmelse og takker bedømmeren for sit bidrag."
-
-msgid "emails.reviewCancel.subject"
-msgstr "Annullering af forespørgsel om bedømmelse"
-
-msgid "emails.reviewCancel.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"På nuværende tidspunkt har vi valgt at annullere vores forespørgsel til dig "
-"om at bedømme manuskriptet "{$submissionTitle}" til {$contextName}"
-". Vi beklager den ulejlighed, dette eventuelt måtte forårsage, og vi håber, "
-"at vi må henvende os til dig i fremtiden og bede om din assistance i "
-"forbindelse med dette tidsskrifts bedømmelsesproces.
\n"
-"
\n"
-"Hvis du har spørgsmål, er du velkommen til at kontakte mig."
-
-msgid "emails.reviewCancel.description"
-msgstr "Denne e-mail sendes af sektionsredaktøren til en bedømmer, som er ved at bedømme et manuskript, og underretter vedkommende om, at bedømmelsen er blevet annulleret."
-
-msgid "emails.reviewConfirm.subject"
-msgstr "Kan foretage bedømmelse"
-
-msgid "emails.reviewConfirm.body"
-msgstr ""
-"Redaktører:
\n"
-"
\n"
-"Jeg kan og er villig til at bedømme manuskriptet "{$submissionTitle}" til {$contextName}. Tak, fordi du tænkte på mig, og jeg planlægger at være færdig med bedømmelsen senest på forfaldsdatoen, {$reviewDueDate}, hvis ikke før.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewConfirm.description"
-msgstr "Denne e-mail sendes af en bedømmer til sektionsredaktøren som svar på en bedømmelsesforespørgsel og underretter sektionsredaktøren om, at bedømmelsesforespørgslen er blevet accepteret, og at bedømmelsen vil være fuldført til den angivne dato."
-
-msgid "emails.reviewDecline.subject"
-msgstr "Kan ikke foretage bedømmelse"
-
-msgid "emails.reviewDecline.body"
-msgstr ""
-"Redaktører:
\n"
-"
\n"
-"Jeg beklager, at jeg på nuværende tidspunkt ikke kan bedømme manuskriptet "{$submissionTitle}" til {$contextName}. Tak, fordi du tænkte på mig, og du er altid velkommen til at kontakte mig en anden gang.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewDecline.description"
-msgstr "Denne e-mail sendes af en bedømmer til sektionsredaktøren som svar på en bedømmelsesforespørgsel og underretter sektionsredaktøren om, at bedømmelsesforespørgslen er blevet afvist."
-
-msgid "emails.reviewRemind.subject"
-msgstr "Påmindelse om bedømmelse af manuskript"
-
-msgid "emails.reviewRemind.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af "
-"manuskriptet "{$submissionTitle}" til {$contextName}. Vi havde "
-"håbet på at modtage bedømmelsen senest den {$reviewDueDate} og ser frem til "
-"at modtage den, så snart du er færdig med den.
\n"
-"
\n"
-"Hvis du ikke har dit brugernavn og dit password til tidsskriftets websted, "
-"kan du bruge dette link til at nulstille adgangskoden (som så vil blive "
-"sendt til dig via e-mail sammen med dit brugernavn). {$passwordResetUrl}
\n"
-"
\n"
-"Manuskriptets URL-adresse: {$submissionReviewUrl}
\n"
-"
\n"
-"Brugerbavb: {$reviewerUserName}
\n"
-"
\n"
-"Vi beder dig bekræfte, at du er i stand til at fuldføre dette vigtige bidrag "
-"til tidsskriftets arbejde. Jeg ser frem til at høre fra dig.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemind.description"
-msgstr "Denne e-mail sendes af sektionsredaktøren til en bedømmer for at minde vedkommende om, at bedømmelsen skulle have været afleveret."
-
-msgid "emails.reviewRemindAuto.subject"
-msgstr "Automatisk påmindelse om bedømmelse af manuskript"
-
-msgid "emails.reviewRemindAuto.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af "
-"manuskriptet "{$submissionTitle}" til {$contextName}. Vi havde "
-"håbet på at modtage bedømmelsen senest den {$reviewDueDate}, og denne e-mail "
-"er blevet automatisk genereret og sendt til dig, da den pågældende dato er "
-"overskredet. Vi ser stadig frem til at modtage den, så snart du er færdig "
-"med den.
\n"
-"
\n"
-"Hvis du ikke har dit brugernavn og password til tidsskriftets websted, kan "
-"du bruge dette link til at nulstille adgangskoden (som så vil blive sendt "
-"til dig via e-mail sammen med dit brugernavn). {$passwordResetUrl}
\n"
-"
\n"
-"Manuskriptets URL-adresse: {$submissionReviewUrl}
\n"
-"
\n"
-"Brugernavn: {$reviewerUserName}
\n"
-"
\n"
-"Vi beder dig bekræfte, at du er i stand til at fuldføre dette vigtige bidrag "
-"til tidsskriftets arbejde. Jeg ser frem til at høre fra dig.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAuto.description"
-msgstr "Denne e-mail sendes automatisk, når en bedømmers forfaldsdato overskrides (se Bedømmelsesindstillinger under Konfiguration af tidsskrift, trin 2), og når adgang for bedømmere ved hjælp af ét klik er deaktiveret. Planlagte opgaver skal aktiveres og konfigureres (se webstedets konfigurationsfil)."
-
-msgid "emails.reviewRemindAutoOneclick.subject"
-msgstr "Automatisk påmindelse om bedømmelse af manuskript"
-
-msgid "emails.reviewRemindAutoOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af manuskriptet "{$submissionTitle}" til {$contextName}. Vi havde håbet på at modtage bedømmelsen senest den {$reviewDueDate}, og denne e-mail er blevet automatisk genereret og sendt til dig, da den pågældende dato er overskredet. Vi ser stadig frem til at modtage den, så snart du er færdig med den.
\n"
-"
\n"
-"Manuskriptets URL-adresse: {$submissionReviewUrl}
\n"
-"
\n"
-"Vi beder dig bekræfte, at du er i stand til at fuldføre dette vigtige bidrag til tidsskriftets arbejde. Jeg ser frem til at høre fra dig.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAutoOneclick.description"
-msgstr "Denne e-mail sendes automatisk, når en bedømmers forfaldsdato overskrides (se Bedømmelsesindstillinger under Indstillinger > Workflow > Bedømmelse), og når adgang for bedømmere ved hjælp af ét klik er aktiveret. Planlagte opgaver skal aktiveres og konfigureres (se webstedets konfigurationsfil)."
-
-msgid "emails.reviewRemindOneclick.subject"
-msgstr "Påmindelse om bedømmelse af manuskript"
-
-msgid "emails.reviewRemindOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af manuskriptet "{$submissionTitle}" til {$contextName}. Vi havde håbet på at modtage bedømmelsen senest den {$reviewDueDate} og ser frem til at modtage den, så snart du er færdig med den.
\n"
-"
\n"
-"Manuskriptets URL-adresse: {$submissionReviewUrl}
\n"
-"
\n"
-"Vi beder dig bekræfte, at du er i stand til at fuldføre dette vigtige bidrag til tidsskriftets arbejde. Jeg ser frem til at høre fra dig.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindOneclick.description"
-msgstr "Denne e-mail sendes af serieredaktøren til en bedømmer for at minde vedkommende om, at bedømmelsen skulle have været afleveret."
-
-msgid "emails.reviewRequest.subject"
-msgstr "Forespørgsel om bedømmelse af manuskript"
-
-msgid "emails.reviewRequest.body"
-msgstr ""
-"Kære {$reviewerName},
\n"
-"
\n"
-"{$messageToReviewer}
\n"
-"
\n"
-"Log venligst ind på forlagets websted ved {$ responseDueDate} for at "
-"tilkendegive, om du vil foretage bedømmelsen eller ikke, samt for at få "
-"adgang til indsendelsen og registrere din bedømmelse og anbefaling.
\n"
-"
\n"
-"Selve bedømmelsen skal afleveres senest den {$reviewDueDate}.
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Brugernavn: {$reviewerUserName}
\n"
-"
\n"
-"Tak for din overvejelse af denne forespørgsel.
\n"
-"
\n"
-"
\n"
-"Mange hilsner
\n"
-"{$editorialContactSignature}
\n"
-
-msgid "emails.reviewRequest.description"
-msgstr ""
-"Denne e-mail fra serieredaktøren til en bedømmer anmoder bedømmeren om at "
-"acceptere eller afvise opgaven med at gennemgå et manuskript. Den indeholder "
-"information om manuskriptet, såsom titel og resumé, forfaldsdato for "
-"bedømmelse, og hvordan man får adgang til selve manuskriptet. Denne "
-"meddelelse bruges, når standardbedømmelsesprocessen er valgt i Indstillinger>"
-" Workflow> Bedømmelse. (Se ellers REVIEW_REQUEST_ATTACHED.)"
-
-msgid "emails.reviewRequestAttached.subject"
-msgstr "Forespørgsel om bedømmelse af manuskript"
-
-msgid "emails.reviewRequestAttached.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Jeg tror, at du vil kunne være en fremragende bedømmer af manuskriptet "
-""{$submissionTitle}", og jeg beder dig om at overveje at påtage "
-"dig denne vigtige opgave for os. Dette forlags Retningslinjer for "
-"bedømmelser er tilføjet nedenfor, og manuskriptet er vedhæftet denne e-mail. "
-"Din bedømmelse af manuskriptet samt din anbefaling skal sendes til mig pr. e-"
-"mail senest den {$reviewDueDate}.
\n"
-"
\n"
-"Meld venligst tilbage via e-mail inden den {$weekLaterDate} , om du kan og "
-"er villig til at foretage bedømmelsen.
\n"
-"
\n"
-"Tak for din overvejelse af denne forespørgsel.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"Retningslinjer for bedømmelser
\n"
-"
\n"
-"{$reviewGuidelines}
\n"
-
-msgid "emails.reviewRequestAttached.description"
-msgstr "Denne e-mail sendes af serieredaktøren til en bedømmer og beder vedkommende om at acceptere eller afvise at bedømme et manuskript. Manuskriptet er vedhæftet denne e-mail. Denne meddelelse benyttes, hvis indstillingen for bedømmelsesproces, hvor manuskript er vedhæftet e-mail, er valgt"
-
-msgid "emails.reviewRequestOneclick.subject"
-msgstr "Forespørgsel om bedømmelse af manuskript"
-
-msgid "emails.reviewRequestOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Jeg tror, at du vil være en fremragende bedømmer af manuskriptet "{$submissionTitle}", der er blevet sendt til {$contextName}. Nedenfor finder du et resumé af manuskriptet, og jeg håber, at du vil overveje at påtage dig denne vigtige opgave for os.
\n"
-"
\n"
-"Log på tidsskriftets websted inden den {$weekLaterDate} for at angive, om du vil påtage dig bedømmelsen eller ej, samt for at få adgang til manuskriptet og registrere din bedømmelse og anbefaling.
\n"
-"
\n"
-"Selve bedømmelsen skal afleveres senest den {$reviewDueDate}.
\n"
-"
\n"
-"Manuskriptets URL-adresse: {$submissionReviewUrl}
\n"
-"
\n"
-"Tak for din overvejelse af denne forespørgsel.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$submissionAbstract}"
-
-msgid "emails.reviewRequestOneclick.description"
-msgstr "Denne e-mail fra serieredaktøren til en bedømmer anmoder bedømmeren om at acceptere eller afvise at bedømme et manuskript. Den indeholder oplysninger om manuskriptet, f.eks. titel og resumé, forfaldsdato for bedømmelse, samt hvordan der kan oprettes adgang til selve manuskriptet. Denne meddelelse benyttes, hvis indstillingen standardbedømmelsesproces er valgt under Indstillinger > Workflow > Bedømmelse og adgang for bedømmere ved hjælp af ét klik er aktiveret."
-
-msgid "emails.reviewRequestRemindAuto.subject"
-msgstr "Forespørgsel om bedømmelse af manuskript"
-
-msgid "emails.reviewRequestRemindAuto.body"
-msgstr ""
-"Kære {$reviewerName}:
\n"
-"Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af "
-"manuskriptet "{$submissionTitle}," for {$contextName}. Vi havde "
-"håbet på at modtage dit svar senest den {$responseDueDate}, og denne e-mail "
-"er blevet automatisk genereret og sendt til dig, da den pågældende dato er "
-"overskredet.\n"
-"
\n"
-"{$messageToReviewer}
\n"
-"
\n"
-"Log på tidsskriftets websted for at angive, om du vil påtage dig bedømmelsen "
-"eller ej, samt for at få adgang til manuskriptet og registrere din "
-"bedømmelse og anbefaling.
\n"
-"
\n"
-"Selve bedømmelsen skal afleveres senest den {$reviewDueDate}.
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Brugernavn: {$reviewerUserName}
\n"
-"
\n"
-"Tak for din overvejelse af denne forespørgsel.
\n"
-"
\n"
-"
\n"
-"Mange hilsner
\n"
-"{$editorialContactSignature}
\n"
-
-msgid "emails.reviewRequestRemindAuto.description"
-msgstr "Denne e-mail sendes automatisk når en bedømmers bekræftelsesdato er overskredet (se bedømmelsesindstillinger under Indstillinger > Workflow > Bedømmelse) og ’Aktiver adgang for bedømmere ved hjælp af ét klik’ er fravalgt. Tidsfrister og påmindelser skal være defineret."
-
-msgid "emails.reviewRequestRemindAutoOneclick.subject"
-msgstr "Forespørgsel om bedømmelse af manuskript"
-
-msgid "emails.reviewRequestRemindAutoOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"Dette er blot for at minde dig om vores forespørgsel om din bedømmelse af "
-"manuskriptet "{$submissionTitle}," for {$contextName}. Vi havde "
-"håbet på at modtage dit svar senest den {$responseDueDate}, og denne e-mail "
-"er blevet automatisk genereret og sendt til dig, da den pågældende dato er "
-"overskredet.\n"
-"
\n"
-"Jeg tror, at du vil være en fremragende bedømmer af manuskriptet. Nedenfor "
-"finder du et resumé af manuskriptet, og jeg håber, at du vil overveje at "
-"påtage dig denne vigtige opgave for os.
\n"
-"
\n"
-"Log på tidsskriftets websted for at angive, om du vil påtage dig bedømmelsen "
-"eller ej, samt for at få adgang til manuskriptet og registrere din "
-"bedømmelse og anbefaling.
\n"
-"
\n"
-"Selve bedømmelsen skal afleveres senest den {$reviewDueDate}.
\n"
-"
\n"
-"Manuskriptets URL-adresse: {$submissionReviewUrl}
\n"
-"
\n"
-"Tak for din overvejelse af denne forespørgsel.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$submissionAbstract}"
-
-msgid "emails.reviewRequestRemindAutoOneclick.description"
-msgstr "Denne e-mail sendes automatisk når en bedømmers bekræftelsesdato er overskredet (se bedømmelsesindstillinger under Indstillinger > Workflow > Bedømmelse) og ’Aktiver adgang for bedømmere ved hjælp af ét klik’ er aktiveret. Tidsfrister og påmindelser skal være defineret."
-
-msgid "emails.submissionAck.subject"
-msgstr "Bekræftelse af manuskript"
-
-msgid "emails.submissionAck.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Tak, fordi du har fremsendt manuskriptet "{$submissionTitle}" til "
-"{$contextName}. Ved hjælp af det online-styringssystem, vi bruger, kan du "
-"følge manuskriptet igennem den redaktionelle proces ved at logge på "
-"tidsskriftets websted:
\n"
-"
\n"
-"Manuskriptets URL-adresse: {$submissionUrl}
\n"
-"Brugernavn: {$authorUsername}
\n"
-"
\n"
-"Hvis du har spørgsmål, er du velkommen til at kontakte mig. Tak, fordi du "
-"har valgt at publicere din artikel i dette tidsskrift.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAck.description"
-msgstr "Når denne e-mail er aktiveret, sendes den automatisk til en forfatter, når vedkommende har fremsendt et manuskript til tidsskriftet. Den indeholder oplysninger om, hvordan forfatteren kan følge manuskriptet igennem processen, og den takker forfatteren for manuskriptet."
-
-msgid "emails.submissionAckNotUser.subject"
-msgstr "Indsendelsesbekræftelse"
-
-msgid "emails.submissionAckNotUser.body"
-msgstr ""
-"Hej
\n"
-"
\n"
-"{$submitterName} har indsendt manuskriptet "{$submissionTitle}" til {$contextName}.
\n"
-"
\n"
-"Hvis du har spørgsmål, er du velkommen til at kontakte mig. Tak fordi du har valgt at publicere din artikel i dette tidsskrift.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAckNotUser.description"
-msgstr "Når denne e-mail er aktiveret, sendes automatisk besked til de andre forfattere, der ikke er brugere inden for OMP, der er angivet under indsendelsesprocessen."
-
-msgid "emails.notifyFile.description"
-msgstr "En meddelelse fra en bruger sendt fra et filinformationscenter modal"
-
-msgid "emails.notifyFile.body"
-msgstr ""
-"Du har en besked fra {$sender} vedrørende filen "{$fileName}" i "
-""{$submissionTitle}" ({$monographDetailsUrl}):
\n"
-"
\n"
-"\t\t{$message}
\n"
-"
\n"
-"\t\t"
-
-msgid "emails.notifyFile.subject"
-msgstr "Meddelelse om indsendelsesfil"
-
-msgid "emails.notifySubmission.description"
-msgstr ""
-"En meddelelse fra en bruger sendt fra et indsendelsesinformationscenter "
-"modal."
-
-msgid "emails.notifySubmission.body"
-msgstr ""
-"Du har en besked fra {$sender} vedrørende "{$submissionTitle}" "
-"({$monographDetailsUrl}):
\n"
-"
\n"
-"\t\t{$message}
\n"
-"
\n"
-"\t\t"
-
-msgid "emails.notifySubmission.subject"
-msgstr "Indsendelsesmeddelelse"
-
-msgid "emails.reviewReinstate.description"
-msgstr ""
-"Denne e-mail er afsendt af sektionsredaktøren til en bedømmer, som er i gang "
-"med en bedømmelse for at underrette vedkommende om, at bedømmelsen er blevet "
-"annulleret."
-
-msgid "emails.reviewReinstate.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Vi vil gerne på ny anmode om, at du foretager en bedømmelse af indsendelsen, "
-""{$submissionTitle}," for {$contextName}. Vi håber, at du har "
-"mulighed for at hjælpe med dette tidsskrifts bedømmelsesproces.
\n"
-"
\n"
-"Du bedes kontakte mig, hvis du har spørgsmål."
-
-msgid "emails.reviewReinstate.subject"
-msgstr "Anmodning om bedømmelse genindsat"
-
-msgid "emails.statisticsReportNotification.description"
-msgstr ""
-"Denne e-mail sendes automatisk en gang om måneden til redaktører og "
-"tidsskriftschefer for at give dem et overblik over systemets tilstand."
-
-msgid "emails.statisticsReportNotification.body"
-msgstr ""
-"\n"
-"{$name},
\n"
-"
\n"
-"Dit forlags tilstandsrapport for {$month}, {$year} er nu tilgængelig. De "
-"statistiske nøgletal ses nedenfor.
\n"
-"\n"
-"\t- Nye indsendelser I denne måned: {$newSubmissions}
\n"
-"\t- Afviste indsendelser I denne måned: {$declinedSubmissions}
\n"
-"\t- Accepterede indsendelser i denne måned: {$acceptedSubmissions}
\n"
-"\t- Systemets samlede antal indsendelser: {$totalSubmissions}
\n"
-"
\n"
-"Log ind på forlaget for at se flere oplysninger omredaktionelle udviklingstendenser og offentliggjorte artikelstatistikker. En "
-"komplet kopi af denne måneds redaktionelle udvikling er vedhæftet.
\n"
-"
\n"
-"Med venlig hilsen
\n"
-"{$principalContactSignature}"
-
-msgid "emails.statisticsReportNotification.subject"
-msgstr "Redaktionel aktivitet for {$month}, {$year}"
-
-msgid "emails.announcement.description"
-msgstr "Denne e-mail sendes, når der oprettes en ny meddelelse."
-
-msgid "emails.announcement.body"
-msgstr ""
-"{$title}
\n"
-"
\n"
-"{$summary}
\n"
-"
\n"
-"Besøg vores websted for at læse hele meddelelsen."
-
-msgid "emails.announcement.subject"
-msgstr "{$title}"
diff --git a/locale/da_DK/locale.po b/locale/da_DK/locale.po
deleted file mode 100644
index 1e5af19ad5e..00000000000
--- a/locale/da_DK/locale.po
+++ /dev/null
@@ -1,1555 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-11-28T15:10:04-08:00\n"
-"PO-Revision-Date: 2021-01-16 12:53+0000\n"
-"Last-Translator: Niels Erik Frederiksen \n"
-"Language-Team: Danish \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 "common.publishedSubmission"
-msgstr "Monografi"
-
-msgid "common.publishedSubmissions"
-msgstr "Monografier"
-
-msgid "monograph.audience"
-msgstr "Publikum"
-
-msgid "monograph.coverImage"
-msgstr "Forsidebillede"
-
-msgid "monograph.currentCoverImageReload"
-msgstr "Gem dine ændringer for at se det nye forsidebillede."
-
-msgid "monograph.audience.rangeQualifier"
-msgstr "Publikums kvalitetsrangering"
-
-msgid "monograph.audience.rangeFrom"
-msgstr "Publikums rangering (fra)"
-
-msgid "monograph.audience.rangeTo"
-msgstr "Publikums rangering (til)"
-
-msgid "monograph.audience.rangeExact"
-msgstr "Publikums rangering (præcis)"
-
-msgid "monograph.languages"
-msgstr "Sprog (engelsk, fransk, spansk)"
-
-msgid "monograph.publicationFormats"
-msgstr "Publikationsformat"
-
-msgid "monograph.publicationFormat"
-msgstr "Format"
-
-msgid "monograph.publicationFormatDetails"
-msgstr "Detaljer om det tilgængelige publikationsformat: {$format}"
-
-msgid "monograph.miscellaneousDetails"
-msgstr "Detaljer om denne monografi"
-
-msgid "monograph.carousel.publicationFormats"
-msgstr "Formater:"
-
-msgid "monograph.type"
-msgstr "Indsendelsestype"
-
-msgid "submission.pageProofs"
-msgstr "Korrekturside"
-
-msgid "monograph.proofReadingDescription"
-msgstr "Layoutredaktøren uploader de produktionsklare filer, der er klar til offentliggørelse her. Brug + Tildel til at udpege forfattere og andre til korrekturlæsning af tilrettede korrektursider, der er uploadet til godkendelse, inden de offentliggøres."
-
-msgid "monograph.task.addNote"
-msgstr "Føj til opgave"
-
-msgid "monograph.accessLogoOpen.altText"
-msgstr "Open Access"
-
-msgid "monograph.publicationFormat.imprint"
-msgstr "Mærke (Brand Name)"
-
-msgid "monograph.publicationFormat.pageCounts"
-msgstr "Sidetæller"
-
-msgid "monograph.publicationFormat.frontMatterCount"
-msgstr "Præliminærsider (fortekst)"
-
-msgid "monograph.publicationFormat.backMatterCount"
-msgstr "Subsidiærsider (sider efter bogens hovedtekst)"
-
-msgid "monograph.publicationFormat.productComposition"
-msgstr "Produktsammensætning"
-
-msgid "monograph.publicationFormat.productFormDetailCode"
-msgstr "Produktsammensætning (ikke påkrævet)"
-
-msgid "monograph.publicationFormat.productIdentifierType"
-msgstr "Produktidentifikation"
-
-msgid "monograph.publicationFormat.price"
-msgstr "Pris"
-
-msgid "monograph.publicationFormat.priceRequired"
-msgstr "En pris er påkrævet."
-
-msgid "monograph.publicationFormat.priceType"
-msgstr "Pristype"
-
-msgid "monograph.publicationFormat.discountAmount"
-msgstr "Rabatprocent, hvis det er relevant"
-
-msgid "monograph.publicationFormat.productAvailability"
-msgstr "Produkttilgængelighed"
-
-msgid "monograph.publicationFormat.returnInformation"
-msgstr "Returindikator"
-
-msgid "monograph.publicationFormat.digitalInformation"
-msgstr "Digitalinformation"
-
-msgid "monograph.publicationFormat.productDimensions"
-msgstr "Fysiske dimensioner"
-
-msgid "monograph.publicationFormat.productDimensionsSeparator"
-msgstr " x "
-
-msgid "monograph.publicationFormat.productFileSize"
-msgstr "Filstørrelse i Mbytes"
-
-msgid "monograph.publicationFormat.productFileSize.override"
-msgstr "Indtast din egen filstørrelsesværdi?"
-
-msgid "monograph.publicationFormat.productHeight"
-msgstr "Højde"
-
-msgid "monograph.publicationFormat.productThickness"
-msgstr "Tykkelse"
-
-msgid "monograph.publicationFormat.productWeight"
-msgstr "Vægt"
-
-msgid "monograph.publicationFormat.productWidth"
-msgstr "Bredde"
-
-msgid "monograph.publicationFormat.countryOfManufacture"
-msgstr "Fremstillingsland"
-
-msgid "monograph.publicationFormat.technicalProtection"
-msgstr "Digital teknisk beskyttelse"
-
-msgid "monograph.publicationFormat.productRegion"
-msgstr "Produktdistributionsregion"
-
-msgid "monograph.publicationFormat.taxRate"
-msgstr "Beskatningsprocent"
-
-msgid "monograph.publicationFormat.taxType"
-msgstr "Beskatningstype"
-
-msgid "monograph.publicationFormat.formatMetadata"
-msgstr "Formater metadata"
-
-msgid "monograph.publicationFormat.isApproved"
-msgstr "Medtag metadataene for dette publikationsformat i katalogposten for denne bog."
-
-msgid "monograph.publicationFormat.noMarketsAssigned"
-msgstr "Manglende markeder og priser."
-
-msgid "monograph.publicationFormat.noCodesAssigned"
-msgstr "Mangler en identifikationskode."
-
-msgid "monograph.publicationFormat.missingONIXFields"
-msgstr "Mangler nogle metadatafelter."
-
-msgid "monograph.publicationFormat.formatDoesNotExist"
-msgstr "Det valgte publikationsformat eksisterer ikke længere for denne monografi.
"
-
-msgid "monograph.publicationFormat.openTab"
-msgstr "Åbn fanebladet for publikationsformat."
-
-msgid "grid.catalogEntry.publicationFormatType"
-msgstr "Publikationsformat"
-
-msgid "grid.catalogEntry.nameRequired"
-msgstr "Et navn kræves."
-
-msgid "grid.catalogEntry.validPriceRequired"
-msgstr "En gyldig pris er påkrævet."
-
-msgid "grid.catalogEntry.publicationFormatDetails"
-msgstr "Formatdetaljer"
-
-msgid "grid.catalogEntry.physicalFormat"
-msgstr "Fysisk format"
-
-msgid "grid.catalogEntry.remotelyHostedContent"
-msgstr "Dette format vil være tilgængeligt på et separat websted"
-
-msgid "grid.catalogEntry.remoteURL"
-msgstr "URL til indhold hos ekstern vært"
-
-msgid "grid.catalogEntry.monographRequired"
-msgstr "Der kræves en monografisk id."
-
-msgid "grid.catalogEntry.publicationFormatRequired"
-msgstr "Der skal vælges et publikationsformat."
-
-msgid "grid.catalogEntry.availability"
-msgstr "Tilgængelighed"
-
-msgid "grid.catalogEntry.isAvailable"
-msgstr "Tilgængelig"
-
-msgid "grid.catalogEntry.isNotAvailable"
-msgstr "Ikke tilgængelig"
-
-msgid "grid.catalogEntry.proof"
-msgstr "Korrektur"
-
-msgid "grid.catalogEntry.approvedRepresentation.title"
-msgstr "Godkendelse af format"
-
-msgid "grid.catalogEntry.approvedRepresentation.message"
-msgstr "Godkend metadataene for dette format. Metadata kan kontrolleres fra katalogposten
"
-
-msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
-msgstr "Angiv, at metadataene for dette format ikke er blevet godkendt.
"
-
-msgid "grid.catalogEntry.availableRepresentation.title"
-msgstr "Format-tilgængelighed"
-
-msgid "grid.catalogEntry.availableRepresentation.message"
-msgstr "Gør dette format tilgængeligt for læsere. Downloadbare filer og andre distributioner vises i bogens katalogpost.
"
-
-msgid "grid.catalogEntry.availableRepresentation.removeMessage"
-msgstr ""
-"Dette format vil ikke være tilgængeligt for læsere. Eventuelle "
-"filer der kan downloades eller andre distributioner vises ikke længere i "
-"bogens katalogpost.
"
-
-msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
-msgstr "Katalogpost ikke godkendt."
-
-msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
-msgstr "Format ikke i katalogpost."
-
-msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
-msgstr "Korrektur ikke godkendt."
-
-msgid "grid.catalogEntry.availableRepresentation.approved"
-msgstr "Godkendt"
-
-msgid "grid.catalogEntry.availableRepresentation.notApproved"
-msgstr "Afventer godkendelse"
-
-msgid "grid.catalogEntry.fileSizeRequired"
-msgstr "En filstørrelse til digitale formater er påkrævet."
-
-msgid "grid.catalogEntry.productAvailabilityRequired"
-msgstr "En produkttilgængelighedskode er påkrævet."
-
-msgid "grid.catalogEntry.productCompositionRequired"
-msgstr "Der skal vælges en produktsammensætningskode."
-
-msgid "grid.catalogEntry.identificationCodeValue"
-msgstr "Kodeværdi"
-
-msgid "grid.catalogEntry.identificationCodeType"
-msgstr "ONIX kodetype"
-
-msgid "grid.catalogEntry.codeRequired"
-msgstr "Der kræves en identifikationskode."
-
-msgid "grid.catalogEntry.valueRequired"
-msgstr "Der kræves en værdi."
-
-msgid "grid.catalogEntry.salesRights"
-msgstr "Salgsrettigheder"
-
-msgid "grid.catalogEntry.salesRightsValue"
-msgstr "Kodeværdi"
-
-msgid "grid.catalogEntry.salesRightsType"
-msgstr "Salgsrettighedstype"
-
-msgid "grid.catalogEntry.salesRightsROW"
-msgstr "Resten af verden?"
-
-msgid "grid.catalogEntry.salesRightsROW.tip"
-msgstr ""
-"Markér dette felt for at bruge denne salgsrettighedsindgang som en "
-"fællesbetegnelse til dit format. Lande og regioner behøver ikke vælges i "
-"dette tilfælde."
-
-msgid "grid.catalogEntry.oneROWPerFormat"
-msgstr "Der er allerede defineret en ROW-salgstype (resten af verden) til dette publikationsformat."
-
-msgid "grid.catalogEntry.countries"
-msgstr "Lande"
-
-msgid "grid.catalogEntry.regions"
-msgstr "Regioner"
-
-msgid "grid.catalogEntry.included"
-msgstr "Inkluderet"
-
-msgid "grid.catalogEntry.excluded"
-msgstr "Ekskluderet"
-
-msgid "grid.catalogEntry.markets"
-msgstr "Markedsområder"
-
-msgid "grid.catalogEntry.marketTerritory"
-msgstr "Område"
-
-msgid "grid.catalogEntry.publicationDates"
-msgstr "Publikationsdatoer"
-
-msgid "grid.catalogEntry.roleRequired"
-msgstr "Der kræves en repræsentativ rolle."
-
-msgid "grid.catalogEntry.dateFormatRequired"
-msgstr "Et datoformat er påkrævet."
-
-msgid "grid.catalogEntry.dateValue"
-msgstr "Dato"
-
-msgid "grid.catalogEntry.dateRole"
-msgstr "Rolle"
-
-msgid "grid.catalogEntry.dateFormat"
-msgstr "Datoformat"
-
-msgid "grid.catalogEntry.dateRequired"
-msgstr "En dato er påkrævet, og datoen skal svare til det valgte datoformat."
-
-msgid "grid.catalogEntry.representatives"
-msgstr "Repræsentanter"
-
-msgid "grid.catalogEntry.representativeType"
-msgstr "Repræsentativ type"
-
-msgid "grid.catalogEntry.agentsCategory"
-msgstr "Agenter"
-
-msgid "grid.catalogEntry.suppliersCategory"
-msgstr "Leverandører"
-
-msgid "grid.catalogEntry.agent"
-msgstr "Agent"
-
-msgid "grid.catalogEntry.agentTip"
-msgstr "Du kan vælge en agent til at repræsentere dig i dette prædefinerede område. Det kræves ikke."
-
-msgid "grid.catalogEntry.supplier"
-msgstr "Leverandør"
-
-msgid "grid.catalogEntry.representativeRoleChoice"
-msgstr "Vælg en rolle:"
-
-msgid "grid.catalogEntry.representativeRole"
-msgstr "Rolle"
-
-msgid "grid.catalogEntry.representativeName"
-msgstr "Navn"
-
-msgid "grid.catalogEntry.representativePhone"
-msgstr "Telefon"
-
-msgid "grid.catalogEntry.representativeEmail"
-msgstr "E-mail-adresse"
-
-msgid "grid.catalogEntry.representativeWebsite"
-msgstr "Website"
-
-msgid "grid.catalogEntry.representativeIdValue"
-msgstr "Repræsentant-ID"
-
-msgid "grid.catalogEntry.representativeIdType"
-msgstr "Repræsenttant-ID-type (GNL anbefales)"
-
-msgid "grid.catalogEntry.representativesDescription"
-msgstr "Du kan efterlade følgende afsnit tomt, hvis du leverer dine egne tjenester til dine kunder."
-
-msgid "grid.action.addRepresentative"
-msgstr "Tilføj repræsentant"
-
-msgid "grid.action.editRepresentative"
-msgstr "Redigér denne repræsentant"
-
-msgid "grid.action.deleteRepresentative"
-msgstr "Slet denne repræsentant"
-
-msgid "spotlight"
-msgstr "Spotlight"
-
-msgid "spotlight.spotlights"
-msgstr "Spotlights"
-
-msgid "spotlight.noneExist"
-msgstr "Der er ingen aktuelle spotlights."
-
-msgid "spotlight.title.homePage"
-msgstr "I spotlightet"
-
-msgid "spotlight.author"
-msgstr "Forfatter, "
-
-msgid "grid.content.spotlights.spotlightItemTitle"
-msgstr "Spotlight-element"
-
-msgid "grid.content.spotlights.category.homepage"
-msgstr "Homepage"
-
-msgid "grid.content.spotlights.form.location"
-msgstr "Spotlights-område"
-
-msgid "grid.content.spotlights.form.item"
-msgstr "Indtast spotlightet titel (autofuldførelse)"
-
-msgid "grid.content.spotlights.form.title"
-msgstr "Spotlight-titel"
-
-msgid "grid.content.spotlights.form.type.book"
-msgstr "Bog"
-
-msgid "grid.content.spotlights.itemRequired"
-msgstr "Et element er påkrævet."
-
-msgid "grid.content.spotlights.titleRequired"
-msgstr "En spotlight-titel er påkrævet."
-
-msgid "grid.content.spotlights.locationRequired"
-msgstr "Vælg en placering til dette spotlight."
-
-msgid "grid.action.editSpotlight"
-msgstr "Redigér dette spotlight"
-
-msgid "grid.action.deleteSpotlight"
-msgstr "Slet dette spotlight"
-
-msgid "grid.action.addSpotlight"
-msgstr "Tilføj spotlight"
-
-msgid "manager.series.open"
-msgstr "Åbn indsendelser"
-
-msgid "manager.series.indexed"
-msgstr "Indekseret"
-
-msgid "grid.libraryFiles.column.files"
-msgstr "Filer"
-
-msgid "grid.action.catalogEntry"
-msgstr "Se katalogpostens formular"
-
-msgid "grid.action.formatInCatalogEntry"
-msgstr "Format vises i katalogposten"
-
-msgid "grid.action.editFormat"
-msgstr "Redigér dette format"
-
-msgid "grid.action.deleteFormat"
-msgstr "Slet dette format"
-
-msgid "grid.action.addFormat"
-msgstr "Tilføj publikationsformat"
-
-msgid "grid.action.approveProof"
-msgstr "Godkend korrektur til indeksering og inkludering i kataloget"
-
-msgid "grid.action.pageProofApproved"
-msgstr "Korrekturfilen er klat til publicering"
-
-msgid "grid.action.addAnnouncement"
-msgstr "Tilføj en meddelelse"
-
-msgid "grid.action.newCatalogEntry"
-msgstr "Ny katalogpost"
-
-msgid "grid.action.publicCatalog"
-msgstr "Se dette element i katalog"
-
-msgid "grid.action.feature"
-msgstr "Skift funktionsdisplayet"
-
-msgid "grid.action.featureMonograph"
-msgstr "Vis dette i katalogkarusellen"
-
-msgid "grid.action.releaseMonograph"
-msgstr "Markér denne indsendelse som en 'ny udgivelse'"
-
-msgid "grid.action.manageCategories"
-msgstr "Konfigurér kategorier til dette forlag"
-
-msgid "grid.action.manageSeries"
-msgstr "Konfigurér serier til dette forlag"
-
-msgid "grid.action.addCode"
-msgstr "Tilføj kode"
-
-msgid "grid.action.editCode"
-msgstr "Redigér kode"
-
-msgid "grid.action.deleteCode"
-msgstr "Slet koden"
-
-msgid "grid.action.addRights"
-msgstr "Tilføj salgsrettigheder"
-
-msgid "grid.action.editRights"
-msgstr "Redigér disse rettigheder"
-
-msgid "grid.action.deleteRights"
-msgstr "Slet disse rettigheder"
-
-msgid "grid.action.addMarket"
-msgstr "Tilføj marked"
-
-msgid "grid.action.editMarket"
-msgstr "Redigér dette marked"
-
-msgid "grid.action.deleteMarket"
-msgstr "Slet dette marked"
-
-msgid "grid.action.addDate"
-msgstr "Tilføj publiceringsdato"
-
-msgid "grid.action.editDate"
-msgstr "Redigér denne dato"
-
-msgid "grid.action.deleteDate"
-msgstr "Slet denne dato"
-
-msgid "grid.action.createContext"
-msgstr "Opret et nyt forlag"
-
-msgid "grid.action.publicationFormatTab"
-msgstr "Vis fanen med publikationsformat"
-
-msgid "grid.action.moreAnnouncements"
-msgstr "Gå til siden med forlagsmeddelelser"
-
-msgid "grid.action.submissionEmail"
-msgstr "Klik for at læse denne e-mail"
-
-msgid "grid.action.approveProofs"
-msgstr "Se korrekturnet"
-
-msgid "grid.action.proofApproved"
-msgstr "Der er læst korrektur på formatet"
-
-msgid "grid.action.availableRepresentation"
-msgstr "Godkend/afvis dette format"
-
-msgid "grid.action.formatAvailable"
-msgstr "Slå tilgængeligheden af dette format til og fra"
-
-msgid "grid.reviewAttachments.add"
-msgstr "Tilføj vedhæftet fil til bedømmelse"
-
-msgid "grid.reviewAttachments.availableFiles"
-msgstr "Tilgængelige filer"
-
-msgid "series.series"
-msgstr "Serier"
-
-msgid "series.featured.description"
-msgstr "Denne serie vises på hovednavigationsmenuen"
-
-msgid "series.path"
-msgstr "Sti"
-
-msgid "catalog.manage"
-msgstr "Katalogstyring"
-
-msgid "catalog.manage.newReleases"
-msgstr "Nye udgivelser"
-
-msgid "catalog.manage.category"
-msgstr "Kategori"
-
-msgid "catalog.manage.series"
-msgstr "Serier"
-
-msgid "catalog.manage.series.issn"
-msgstr "ISSN"
-
-msgid "catalog.manage.series.issn.validation"
-msgstr "Indtast et gyldigt ISSN."
-
-msgid "catalog.manage.series.issn.equalValidation"
-msgstr "Online og print ISSN må ikke være det samme."
-
-msgid "catalog.manage.series.onlineIssn"
-msgstr "Online ISSN"
-
-msgid "catalog.manage.series.printIssn"
-msgstr "Print ISSN"
-
-msgid "catalog.selectSeries"
-msgstr "Vælg serier"
-
-msgid "catalog.selectCategory"
-msgstr "Vælg kategori"
-
-msgid "catalog.manage.homepageDescription"
-msgstr "Forsidebilledet af udvalgte bøger vises øverst på hjemmesiden som en scrolbar opsætning. Klik på 'Udvælg' og derefter på stjernen for at tilføje en bog til karrusellen; klik på udråbstegn for at markere, at det er en ny udgivelse; træk og slip for at bestille."
-
-msgid "catalog.manage.categoryDescription"
-msgstr "Klik på 'Udvælg' og derefter på stjernen for at vælge en fremhævet bog til denne kategori; træk og slip for at bestille."
-
-msgid "catalog.manage.seriesDescription"
-msgstr "Klik på \"Udvælg\" og derefter på stjernen for at vælge en fremhævet bog til denne serie; træk og slip for at bestille. Serier identificeres med en redaktør og en serietitel inden for en kategori eller uafhængigt."
-
-msgid "catalog.manage.placeIntoCarousel"
-msgstr "Karrusel"
-
-msgid "catalog.manage.newRelease"
-msgstr "Udgivelse"
-
-msgid "catalog.manage.manageSeries"
-msgstr "Administrér serien"
-
-msgid "catalog.manage.manageCategories"
-msgstr "Administrér kategorier"
-
-msgid "catalog.manage.noMonographs"
-msgstr "Der er ingen tildelte monografier."
-
-msgid "catalog.manage.featured"
-msgstr "Udvalgt"
-
-msgid "catalog.manage.categoryFeatured"
-msgstr "Udvalgt i kategori"
-
-msgid "catalog.manage.seriesFeatured"
-msgstr "Udvalgt i serier"
-
-msgid "catalog.manage.featuredSuccess"
-msgstr "Monografi er udvalgt."
-
-msgid "catalog.manage.notFeaturedSuccess"
-msgstr "Monografi er ikke udvalgt."
-
-msgid "catalog.manage.newReleaseSuccess"
-msgstr "Monografi er markeret som en ny udgivelse."
-
-msgid "catalog.manage.notNewReleaseSuccess"
-msgstr "Monografi er ikke markeret som ny udgivelse."
-
-msgid "catalog.manage.feature.newRelease"
-msgstr "Ny udgivelse"
-
-msgid "catalog.manage.feature.categoryNewRelease"
-msgstr "Ny udgivelse i kategori"
-
-msgid "catalog.manage.feature.seriesNewRelease"
-msgstr "Ny udgivelse i serie"
-
-msgid "catalog.manage.nonOrderable"
-msgstr "Denne monografi kan ikke bestilles, før den er blevet udvalgt."
-
-msgid "catalog.manage.filter.searchByAuthorOrTitle"
-msgstr "Søg efter titel eller forfatter"
-
-msgid "catalog.noTitles"
-msgstr "Der er endnu ikke offentliggjort nogen titler."
-
-msgid "catalog.noTitlesNew"
-msgstr "Der er ingen nye udgivelser i øjeblikket."
-
-msgid "catalog.noTitlesSearch"
-msgstr "Der blev ikke fundet nogen titler, der matcher din søgning efter \"{$searchQuery}\"."
-
-msgid "catalog.feature"
-msgstr "Udvælg"
-
-msgid "catalog.featured"
-msgstr "Udvalgt"
-
-msgid "catalog.featuredBooks"
-msgstr "Udvalgte bøger"
-
-msgid "catalog.foundTitleSearch"
-msgstr "Der blev fundet en titel, der matchede din søgning efter \"{$searchQuery}\"."
-
-msgid "catalog.foundTitlesSearch"
-msgstr "{$number} titler blev fundet, der matchede din søgning efter \"{$searchQuery}\"."
-
-msgid "catalog.category.heading"
-msgstr "Alle bøger"
-
-msgid "catalog.newReleases"
-msgstr "Nye udgivelser"
-
-msgid "catalog.dateAdded"
-msgstr "Tilføjet"
-
-msgid "catalog.publicationInfo"
-msgstr "Publikationsinfo"
-
-msgid "catalog.published"
-msgstr "Publiceret"
-
-msgid "catalog.forthcoming"
-msgstr "Kommende"
-
-msgid "catalog.categories"
-msgstr "Kategorier"
-
-msgid "catalog.parentCategory"
-msgstr "Hovedkategori"
-
-msgid "catalog.category.subcategories"
-msgstr "Underkategorier"
-
-msgid "catalog.aboutTheAuthor"
-msgstr "Om {$roleName}en"
-
-msgid "catalog.loginRequiredForPayment"
-msgstr "Bemærk: For at købe varer skal du først logge ind. Valg af en vare, der skal købes, leder dig til login-siden. Enhver vare, der er markeret med et Open Access-ikon, kan downloades gratis uden at logge ind."
-
-msgid "catalog.sortBy"
-msgstr "Sortering af monografier"
-
-msgid "catalog.sortBy.seriesDescription"
-msgstr "Vælg hvordan du sorterer bøger i denne serie."
-
-msgid "catalog.sortBy.categoryDescription"
-msgstr "Vælg hvordan du sorterer bøger i denne kategori."
-
-msgid "catalog.sortBy.catalogDescription"
-msgstr "Vælg hvordan du sorterer bøger i dette katalog."
-
-msgid "catalog.sortBy.seriesPositionAsc"
-msgstr "Serieposition (lavest først)"
-
-msgid "catalog.sortBy.seriesPositionDesc"
-msgstr "Serieposition (højest først)"
-
-msgid "catalog.viewableFile.title"
-msgstr "{$type} visning af filen {$title}"
-
-msgid "catalog.viewableFile.return"
-msgstr "Vend tilbage for at se detaljer om {$monographTitle}"
-
-msgid "common.prefix"
-msgstr "Præfiks"
-
-msgid "common.preview"
-msgstr "Vis"
-
-msgid "common.feature"
-msgstr "Udvælg"
-
-msgid "common.searchCatalog"
-msgstr "Søg i katalog"
-
-msgid "common.moreInfo"
-msgstr "Mere information"
-
-msgid "common.listbuilder.completeForm"
-msgstr "Udfyld venligst hele formularen."
-
-msgid "common.listbuilder.selectValidOption"
-msgstr "Vælg en gyldig mulighed fra listen."
-
-msgid "common.listbuilder.itemExists"
-msgstr "Du kan ikke tilføje den samme element to gange."
-
-msgid "common.software"
-msgstr "Open Monograph Press"
-
-msgid "common.omp"
-msgstr "OMP"
-
-msgid "common.homePageHeader.altText"
-msgstr "Homepage Header"
-
-msgid "navigation.catalog"
-msgstr "Katalog"
-
-msgid "navigation.competingInterestPolicy"
-msgstr "Konkurrerende interessepolitik"
-
-msgid "navigation.catalog.allMonographs"
-msgstr "Alle monografier"
-
-msgid "navigation.catalog.manage"
-msgstr "Administrér"
-
-msgid "navigation.catalog.administration.short"
-msgstr "Administration"
-
-msgid "navigation.catalog.administration"
-msgstr "Katalogadministration"
-
-msgid "navigation.catalog.administration.categories"
-msgstr "Kategorier"
-
-msgid "navigation.catalog.administration.series"
-msgstr "Serier"
-
-msgid "navigation.infoForAuthors"
-msgstr "Til forfattere"
-
-msgid "navigation.infoForLibrarians"
-msgstr "Til bibliotekarer"
-
-msgid "navigation.infoForAuthors.long"
-msgstr "Information til forfattere"
-
-msgid "navigation.infoForLibrarians.long"
-msgstr "Information til bibliotekarer"
-
-msgid "navigation.newReleases"
-msgstr "Nye udgivelser"
-
-msgid "navigation.published"
-msgstr "Publiceret"
-
-msgid "navigation.wizard"
-msgstr "Guide"
-
-msgid "navigation.linksAndMedia"
-msgstr "Links til sociale medier"
-
-msgid "navigation.navigationMenus.catalog.description"
-msgstr "Link til dit katalog."
-
-msgid "navigation.navigationMenus.series.generic"
-msgstr "Serier"
-
-msgid "navigation.navigationMenus.series.description"
-msgstr "Link til en serie."
-
-msgid "navigation.navigationMenus.category.generic"
-msgstr "Kategori"
-
-msgid "navigation.navigationMenus.category.description"
-msgstr "Link til en kategori."
-
-msgid "navigation.navigationMenus.newRelease"
-msgstr "Nye udgivelser"
-
-msgid "navigation.navigationMenus.newRelease.description"
-msgstr "Link til dine nye udgivelser."
-
-msgid "context.contexts"
-msgstr "Forlag"
-
-msgid "press.path"
-msgstr "Sti"
-
-msgid "context.context"
-msgstr "Forlag"
-
-msgid "context.current"
-msgstr "Nyeste forlag:"
-
-msgid "context.select"
-msgstr "Skift til et andet forlag:"
-
-msgid "user.noRoles.selectUsersWithoutRoles"
-msgstr "Inkludér brugere uden roller hos dette forlag."
-
-msgid "user.noRoles.submitMonograph"
-msgstr "Indsend et forslag"
-
-msgid "user.noRoles.submitMonographRegClosed"
-msgstr "Indsend en monografi: Forfatterregistrering er i øjeblikket deaktiveret."
-
-msgid "user.noRoles.regReviewer"
-msgstr "Registrér dig som bedømmer"
-
-msgid "user.noRoles.regReviewerClosed"
-msgstr ""
-"Registrér dig som bedømmer: bedømmerregistrering er i øjeblikket deaktiveret."
-
-msgid "user.reviewerPrompt"
-msgstr "Vil du være villig til at bedømme indsendelser fra dette forlag?"
-
-msgid "user.reviewerPrompt.userGroup"
-msgstr "Ja, anmod om rollen {$userGroup}."
-
-msgid "user.reviewerPrompt.optin"
-msgstr "Ja, jeg vil gerne kontaktes med anmodninger om at bedømme indsendelser fra denne presse."
-
-msgid "user.register.contextsPrompt"
-msgstr "Hvilke forlag på dette websted vil du gerne registreres hos?"
-
-msgid "user.register.otherContextRoles"
-msgstr "Anmod om følgende roller."
-
-msgid "user.register.noContextReviewerInterests"
-msgstr "Hvis du anmodede om at være bedømmer hos et forlag, skal du indtaste dine emneinteresser."
-
-msgid "user.role.manager"
-msgstr "Forlagschef"
-
-msgid "user.role.pressEditor"
-msgstr "Forlagsredaktør"
-
-msgid "user.role.subEditor"
-msgstr "Serieredaktør"
-
-msgid "user.role.copyeditor"
-msgstr "Manuskriptredaktør"
-
-msgid "user.role.proofreader"
-msgstr "Korrekturlæser"
-
-msgid "user.role.productionEditor"
-msgstr "Produktionsredaktør"
-
-msgid "user.role.managers"
-msgstr "Forlagschefer"
-
-msgid "user.role.subEditors"
-msgstr "Serieredaktører"
-
-msgid "user.role.editors"
-msgstr "Redaktører"
-
-msgid "user.role.copyeditors"
-msgstr "Manuskriptredaktører"
-
-msgid "user.role.proofreaders"
-msgstr "Korrekturlæsere"
-
-msgid "user.role.productionEditors"
-msgstr "Produktionsredaktører"
-
-msgid "user.register.selectContext"
-msgstr "Vælg det forlag, du vil registreres hos:"
-
-msgid "user.register.noContexts"
-msgstr "Der er ingen forlag, du kan registreres hos på dette websted."
-
-msgid "user.register.privacyStatement"
-msgstr "Erklæring om beskyttelse af personlige oplysninger"
-
-msgid "user.register.registrationDisabled"
-msgstr "Dette forlag accepterer i øjeblikket ikke brugerregistreringer."
-
-msgid "user.register.form.passwordLengthTooShort"
-msgstr "Det password, du indtastede, er ikke langt nok."
-
-msgid "user.register.readerDescription"
-msgstr "Informeres via e-mail ved publicering af en monografi."
-
-msgid "user.register.authorDescription"
-msgstr "I stand til at indsende poster til forlaget."
-
-msgid "user.register.reviewerDescriptionNoInterests"
-msgstr ""
-"Villig til at foretage fagfællebedømmelser af indsendelser til forlaget."
-
-msgid "user.register.reviewerDescription"
-msgstr ""
-"Villig til at foretage fagfællebedømmelser af indsendelser til dette websted."
-
-msgid "user.register.reviewerInterests"
-msgstr "Indkreds bedømmerinteresser (væsentlige emneområder og forskningsmetoder):"
-
-msgid "user.register.form.userGroupRequired"
-msgstr "Du skal vælge mindst én rolle"
-
-msgid "site.pressView"
-msgstr "Se forlagets websted"
-
-msgid "about.pressContact"
-msgstr "Forlagskontakt"
-
-msgid "about.aboutContext"
-msgstr "Om forlaget"
-
-msgid "about.editorialTeam"
-msgstr "Redaktionsmedlemmer"
-
-msgid "about.editorialPolicies"
-msgstr "Redaktionelle politikker"
-
-msgid "about.focusAndScope"
-msgstr "Fokusområde"
-
-msgid "about.seriesPolicies"
-msgstr "Serie- og kategoripolitikker"
-
-msgid "about.submissions"
-msgstr "Indsendelser"
-
-msgid "about.onlineSubmissions"
-msgstr "Online-indsendelser"
-
-msgid "about.onlineSubmissions.login"
-msgstr "Login"
-
-msgid "about.onlineSubmissions.register"
-msgstr "Registrér"
-
-msgid "about.onlineSubmissions.registrationRequired"
-msgstr "{$login} eller {$register} for at foretage en indsendelse."
-
-msgid "about.onlineSubmissions.submissionActions"
-msgstr "{$newSubmission} eller {$viewSubmissions}."
-
-msgid "about.onlineSubmissions.newSubmission"
-msgstr "Foretag en ny indsendelse"
-
-msgid "about.onlineSubmissions.viewSubmissions"
-msgstr "se dine igangværende indsendelser"
-
-msgid "about.authorGuidelines"
-msgstr "Forfattervejledninger"
-
-msgid "about.submissionPreparationChecklist"
-msgstr "Tjekliste til forberedelse af indsendelse"
-
-msgid "about.submissionPreparationChecklist.description"
-msgstr "Som en del af indsendelsesprocessen er forfattere forpligtet til at kontrollere, at deres indsendelse er i overensstemmelse med følgende punkter. Indsendelser kan returneres til forfattere, der ikke overholder disse retningslinjer."
-
-msgid "about.copyrightNotice"
-msgstr "Oplysninger om copyright"
-
-msgid "about.privacyStatement"
-msgstr "Erklæring om beskyttelse af personlige oplysninger"
-
-msgid "about.reviewPolicy"
-msgstr "Fagfællebedømmelsesproces"
-
-msgid "about.publicationFrequency"
-msgstr "Publikationsfrekvens"
-
-msgid "about.openAccessPolicy"
-msgstr "Open Access-politik"
-
-msgid "about.pressSponsorship"
-msgstr "Forlagssponsorering"
-
-msgid "about.aboutThisPublishingSystem"
-msgstr ""
-"Mere information om publiceringssystemet, platform og workflow fra OMP / PKP."
-
-msgid "about.aboutThisPublishingSystem.altText"
-msgstr "OMP redaktions- og publiceringsproces"
-
-msgid "about.aboutOMPPress"
-msgstr ""
-"Dette forlag bruger Open Monograph Press {$ompVersion}, som er open source-"
-"redigerings- og publiceringssoftware, udviklet, understøttet og frit "
-"distribueret af Public Knowledge Project under GNU General Public License. "
-"Besøg PKP's websted for at lære mere om "
-"softwaren. Kontakt forlaget direkte med "
-"spørgsmål om forlaget og indsendelser til forlaget."
-
-#, fuzzy
-msgid "about.aboutOMPSite"
-msgstr ""
-"Dette websted bruger Open Monograph Press {$ompVersion}, som er open source-"
-"redigerings- og publiceringssoftware udviklet, understøttet og frit "
-"distribueret af Public Knowledge Project "
-"under GNU General Public License."
-
-msgid "help.searchReturnResults"
-msgstr "Vend tilbage til søgeresultater"
-
-msgid "help.goToEditPage"
-msgstr "Åbn en ny side for at redigere disse oplysninger"
-
-msgid "installer.appInstallation"
-msgstr "OMP-installation"
-
-msgid "installer.ompUpgrade"
-msgstr "OMP-opgradering"
-
-msgid "installer.installApplication"
-msgstr "Installér Open Monograph Press"
-
-msgid "installer.installationInstructions"
-msgstr ""
-"\n"
-"Tak fordi du downloadede the Public Knowledge Project's Open "
-"Monograph Press {$version}. Før du fortsætter, skal du læse filen <"
-"a href=\"{$baseUrl}/docs/README\">README, der følger med denne software. "
-"For at få mere information om Public Knowledge Project og dets "
-"softwareprojekter, kan du besøge PKP web site. Hvis du har fejlrapporter eller teknisk "
-"supporthenvendelser om Open Monograph Press, kan du se supportforum eller besøge "
-"PKP's online bug "
-"reporting system. Selvom supportforummet er den foretrukne kontaktform, "
-"kan du også e-maile teamet via pkp.contact@gmail.com.
\n"
-
-msgid "installer.preInstallationInstructionsTitle"
-msgstr "Før-installations-foranstaltninger"
-
-msgid "installer.preInstallationInstructions"
-msgstr ""
-"1. Følgende filer og mapper (og deres indhold) skal gøres skrivbare:
\n"
-"\n"
-"- config.inc.php er skrivbar (valgfrit): {$writable_config}
\n"
-"- public/ er skrivbar: {$writable_public}
\n"
-"- cache/ er skrivbar: {$writable_cache}
\n"
-"- cache/t_cache/ er skrivbar: {$writable_templates_cache}
\n"
-"- cache/t_compile/ er skrivbar: {$writable_templates_compile}
"
-"\n"
-"- cache/_db er skrivbar: {$writable_db_cache}
\n"
-"
\n"
-"\n"
-"2. Et bibliotek til lagring af uploadede filer skal oprettes og gøres "
-"skrivbart (se \"Filindstillinger\" nedenfor).
"
-
-msgid "installer.upgradeInstructions"
-msgstr ""
-"OMP Version {$version}
\n"
-"\n"
-"Tak fordi du downloadede the Public Knowledge Project's Open "
-"Monograph Press. Før du fortsætter, skal du læse filen READMEog UPGRADErefiler, der følger med denne software. For at få mere "
-"information om Public Knowledge Project og dets softwareprojekter, kan du "
-"besøge PKP web site. "
-"Hvis du har fejlrapporter eller teknisk supporthenvendelser om Open "
-"Monograph Press, kan du se supportforum eller besøge PKP's online bug reporting system. Selvom "
-"supportforummet er den foretrukne kontaktform, kan du også e-maile teamet "
-"via pkp.contact@gmail.com.
\n"
-"Det anbefales på det kraftigste, at du "
-"sikkerhedskopierer din database, filmappe og OMP installationsmappe, før du "
-"fortsætter.
\n"
-"Hvis du kører i PHP Safe Mode , skal du sikre dig, at max_execution_time-"
-"direktivet i din php. ini-konfigurationsfil er sat til en høj grænse. Hvis "
-"denne eller nogen anden tidsbegrænsning (f.eks. Apaches \"Timeout\"-direktiv)"
-" er nået, og opgraderingsprocessen afbrydes, kræves manuel indgriben.
"
-
-msgid "installer.localeSettingsInstructions"
-msgstr ""
-"For at få en komplet understøttelse af Unicode (UTF-8) skal du vælge UTF-8 "
-"for alle tegnsætsindstillinger. Bemærk, at denne support i øjeblikket kræver "
-"en MySQL >= 4.1.1 or PostgreSQL >= 9.1.5 databaseserver. Bemærk også, at en "
-"komplet Unicode-support kræver mbstring-biblioteket (aktiveret som standard i de "
-"nyeste PHP-installationer). Du kan opleve problemer med at bruge udvidede "
-"tegnsæt, hvis din server ikke opfylder disse krav.\n"
-"
\n"
-"Din server understøtter i øjeblikket mbstring: "
-"{$supportsMBString}"
-
-msgid "installer.allowFileUploads"
-msgstr "Din server tillader i øjeblikket filoverførsler: {$allowFileUploads}"
-
-msgid "installer.maxFileUploadSize"
-msgstr "Din server tillader i øjeblikket en maksimal filoverførselsstørrelse på: {$maxFileUploadSize}"
-
-msgid "installer.localeInstructions"
-msgstr "Det primære sprog, der skal bruges til dette system. Se OMP-dokumentationen, hvis du er interesseret i support til sprog, der ikke er nævnt her."
-
-msgid "installer.additionalLocalesInstructions"
-msgstr "Vælg supplerende sprog, der skal understøttes i dette system. Disse sprog vil være tilgængelige til brug af forlag, der er tilknyttet dette websted. Supplerende sprog kan også installeres når som helst fra websteds-administrationens interface. Sprog (locales) markeret * kan være ufuldstændige."
-
-msgid "installer.filesDirInstructions"
-msgstr "Indtast det fulde stinavn til et eksisterende bibliotek, hvor uploadede filer skal opbevares. Dette bibliotek bør ikke være direkte tilgængeligt på internettet. Sørg for, at dette bibliotek er oprettet og skrivbart før installation. Windows-stinavne skal bruge retvendt skråstreg, f.eks. \"C:/mypress/filer\"."
-
-msgid "installer.databaseSettingsInstructions"
-msgstr "OMP kræver adgang til en SQL-database for at gemme des data. Se systemkravene ovenfor der indeholder en liste over understøttede databaser. Angiv de indstillinger, der skal bruges for at oprette forbindelse til databasen i felterne herunder."
-
-msgid "installer.upgradeApplication"
-msgstr "Opgradér Open Monograph Press"
-
-msgid "installer.overwriteConfigFileInstructions"
-msgstr ""
-"VIGTIGT!
\n"
-"Installationsprogrammet kunne ikke automatisk overskrive konfigurationsfilen. Før du forsøger at bruge systemet, skal du åbne config.inc.php i en egnet teksteditor og erstatte dets indhold med indholdet i tekstfeltet nedenfor.
"
-
-msgid "installer.installationComplete"
-msgstr ""
-"Installation af OMP er afsluttet.
\n"
-"For at begynde at bruge systemet skal du logge "
-"ind med det brugernavn og adgangskode, der er indtastet på den forrige "
-"side.
\n"
-"Hvis du ønsker at modtage nyheder og opdateringer, skal du "
-"registrere dig på http://pkp.sfu.ca/omp/register. Hvis du har spørgsmål "
-"eller kommentarer, kan du besøge supportforum.
"
-
-msgid "installer.upgradeComplete"
-msgstr ""
-"Opgradering af OMP til version {$version} er afsluttet.
\n"
-"Glem ikke at indstille \"installeret\"-indstillingen i din config.inc.php "
-"konfigurationsfil tilbage til On.
\n"
-"Hvis du ikke allerede har registreret dig og ønsker at modtage nyheder og "
-"opdateringer, skal du registrere dig på http://pkp.sfu.ca/omp/register. "
-" Hvis du har spørgsmål eller kommentarer, kan du besøge supportforum.
"
-
-msgid "log.review.reviewCleared"
-msgstr "Runde {$round}-bedømmelsen af {$reviewerName} i forbindelse med indsendelse {$submissionId} er blevet ryddet."
-
-msgid "log.review.reviewDueDateSet"
-msgstr "Forfaldsdato for runde {$round}-bedømmelsen af indsendelse {$submissionId} af {$reviewerName} er sat til {$dueDate}."
-
-msgid "log.review.reviewDeclined"
-msgstr "{$reviewerName} har afvist runde {$round}-bedømmelsen i forbindelse med indsendelse {$submissionId}."
-
-msgid "log.review.reviewAccepted"
-msgstr "{$reviewerName} har accepteret runde {$round}-bedømmelsen i forbindelse med indsendelse {$submissionId}."
-
-msgid "log.review.reviewUnconsidered"
-msgstr "{$editorName} har markeret runde {$round}-bedømmelsen i forbindelse med indsendelse {$submissionId} som uovervejet."
-
-msgid "log.editor.decision"
-msgstr "En redaktørbeslutning ({$decision}) i forbindelse med monografi {$submissionId} blev registreret af {$editorName}."
-
-msgid "log.editor.recommendation"
-msgstr ""
-"En redaktøranbefaling ({$decision}) i forbindelse med monografi "
-"{$submissionId} blev registreret af {$editorName}."
-
-msgid "log.editor.archived"
-msgstr "Indsendelsen {$submissionId} er blevet arkiveret."
-
-msgid "log.editor.restored"
-msgstr "Indsendelsen {$submissionId} er gendannet og indsat i køen."
-
-msgid "log.editor.editorAssigned"
-msgstr "{$editorName} er blevet valgt som redaktør i forbindelse med indsendelse {$submissionId}."
-
-msgid "log.proofread.assign"
-msgstr "{$assignerName} har valgt {$proofreaderName} til at læse korrektur på {$submissionId}."
-
-msgid "log.proofread.complete"
-msgstr "{$proofreaderName} har sendt {$submissionId} til planlægning."
-
-msgid "log.imported"
-msgstr "{$userName} har importeret monografi {$submissionId}."
-
-msgid "notification.addedIdentificationCode"
-msgstr "Identifikationskode tilføjet."
-
-msgid "notification.editedIdentificationCode"
-msgstr "Identifikationskode redigeret."
-
-msgid "notification.removedIdentificationCode"
-msgstr "Identifikationskode fjernet."
-
-msgid "notification.addedPublicationDate"
-msgstr "Publiceringsdato tilføjet."
-
-msgid "notification.editedPublicationDate"
-msgstr "Publiceringsdato redigeret."
-
-msgid "notification.removedPublicationDate"
-msgstr "Publiceringsdato fjernet."
-
-msgid "notification.addedPublicationFormat"
-msgstr "Publiceringsformat tilføjet."
-
-msgid "notification.editedPublicationFormat"
-msgstr "Publiceringsformat redigeret."
-
-msgid "notification.removedPublicationFormat"
-msgstr "Publiceringsformat fjernet."
-
-msgid "notification.addedSalesRights"
-msgstr "Salgsrettigheder tilføjet."
-
-msgid "notification.editedSalesRights"
-msgstr "Salgsrettigheder redigeret."
-
-msgid "notification.removedSalesRights"
-msgstr "Salgsrettigheder fjernet."
-
-msgid "notification.addedRepresentative"
-msgstr "Repræsentant tilføjet."
-
-msgid "notification.editedRepresentative"
-msgstr "Repræsentant redigeret."
-
-msgid "notification.removedRepresentative"
-msgstr "Repræsentant fjernet."
-
-msgid "notification.addedMarket"
-msgstr "Marked tilføjet."
-
-msgid "notification.editedMarket"
-msgstr "Marked redigeret."
-
-msgid "notification.removedMarket"
-msgstr "Marked fjernet."
-
-msgid "notification.addedSpotlight"
-msgstr "Spotlight tilføjet."
-
-msgid "notification.editedSpotlight"
-msgstr "Spotlight redigeret."
-
-msgid "notification.removedSpotlight"
-msgstr "Spotlight fjernet."
-
-msgid "notification.savedCatalogMetadata"
-msgstr "Katalog-metadata gemt."
-
-msgid "notification.savedPublicationFormatMetadata"
-msgstr "Metadata for publikationsformat gemt."
-
-msgid "notification.proofsApproved"
-msgstr "Korrektur godkendt."
-
-msgid "notification.removedSubmission"
-msgstr "Indsendelse slettet."
-
-msgid "notification.type.submissionSubmitted"
-msgstr "En ny monografi, \"{$title},\" er blevet indsendt."
-
-msgid "notification.type.editing"
-msgstr "Redigeringsforløb"
-
-msgid "notification.type.reviewing"
-msgstr "Bedømmelsesforløb"
-
-msgid "notification.type.site"
-msgstr "Websitehændelser"
-
-msgid "notification.type.submissions"
-msgstr "Indsendelseforløb"
-
-msgid "notification.type.userComment"
-msgstr "En læser har kommenteret \"{$title}\"."
-
-msgid "notification.type.public"
-msgstr "Offentlige meddelelser"
-
-msgid "notification.type.editorAssignmentTask"
-msgstr "Der er indsendt en ny monografi, som en redaktør skal tilknyttes."
-
-msgid "notification.type.copyeditorRequest"
-msgstr "Du er blevet bedt om at gennemgå det tilrettede i forbindelse med \"{$file}\"."
-
-msgid "notification.type.layouteditorRequest"
-msgstr "Du er blevet bedt om at gennemgå layout i forbindelse med \"{$title}\"."
-
-msgid "notification.type.indexRequest"
-msgstr "Du er blevet bedt om at oprette et indeks i forbindelse med \"{$title}\"."
-
-msgid "notification.type.editorDecisionInternalReview"
-msgstr "Intern bedømmelsesproces påbegyndt."
-
-msgid "notification.type.approveSubmission"
-msgstr "Denne indsendelse afventer i øjeblikket godkendelse i katalogposterne, før den vises i det offentlige katalog."
-
-msgid "notification.type.approveSubmissionTitle"
-msgstr "Afventer godkendelse."
-
-msgid "notification.type.configurePaymentMethod.title"
-msgstr "Der er ikke konfigureret nogen betalingsmetode."
-
-msgid "notification.type.configurePaymentMethod"
-msgstr "En konfigureret betalingsmetode er påkrævet, før du kan definere indstillinger for e-handel."
-
-#, fuzzy
-msgid "notification.type.visitCatalog"
-msgstr "Monografien er godkendt. Gå til 'Katalog' for at indskrive dets katalogoplysninger ved hjælp af katalog-linket ovenfor."
-
-msgid "notification.type.visitCatalogTitle"
-msgstr "Katalogstyring"
-
-msgid "user.authorization.invalidReviewAssignment"
-msgstr ""
-"Du er blevet nægtet adgang, fordi du ikke ser ud til at være en valid "
-"bedømmer i forbindelse med denne monografi."
-
-msgid "user.authorization.monographAuthor"
-msgstr ""
-"Du er blevet nægtet adgang, fordi du ikke ser ud til af være forfatter til "
-"denne monografi."
-
-msgid "user.authorization.monographReviewer"
-msgstr ""
-"Du er blevet nægtet adgang, fordi du ikke synes at være blevet tildelt "
-"bedømmerrollen til denne monografi."
-
-msgid "user.authorization.monographFile"
-msgstr "Du er blevet nægtet adgang til den angivne monografi-fil."
-
-msgid "user.authorization.invalidMonograph"
-msgstr "Ugyldig monografi eller ingen monografi efterspurgt!"
-
-msgid "user.authorization.noContext"
-msgstr "Intet forlag i denne sammenhæng!"
-
-msgid "user.authorization.seriesAssignment"
-msgstr "Du forsøger at få adgang til en monografi, der ikke er en del af din serie."
-
-msgid "user.authorization.workflowStageAssignmentMissing"
-msgstr "Adgang nægtet! Du er ikke blevet tilknyttet dette redaktionelle trin."
-
-msgid "user.authorization.workflowStageSettingMissing"
-msgstr ""
-"Adgang nægtet! Den brugergruppe, du i øjeblikket er en del af, er ikke "
-"tilknyttet dette redaktionelle trin. Kontrollér dine forlagsindstillinger."
-
-msgid "payment.directSales"
-msgstr "Download fra forlagets webside"
-
-msgid "payment.directSales.price"
-msgstr "Pris"
-
-msgid "payment.directSales.availability"
-msgstr "Tilgængelighed"
-
-msgid "payment.directSales.catalog"
-msgstr "Katalog"
-
-msgid "payment.directSales.approved"
-msgstr "Godkendt"
-
-msgid "payment.directSales.priceCurrency"
-msgstr "Pris ({$currency})"
-
-msgid "payment.directSales.numericOnly"
-msgstr "Priserne må kun være numeriske. Medtag ikke valutasymboler."
-
-msgid "payment.directSales.directSales"
-msgstr "Direkte salg"
-
-msgid "payment.directSales.amount"
-msgstr "{$amount} ({$currency})"
-
-msgid "payment.directSales.notAvailable"
-msgstr "Ikke tilgængelig"
-
-msgid "payment.directSales.notSet"
-msgstr "Ikke indstillet"
-
-msgid "payment.directSales.openAccess"
-msgstr "Open Access"
-
-msgid "payment.directSales.price.description"
-msgstr "Filformater kan stilles til rådighed via download fra forlagets websted gennem enten Open Access uden omkostninger for læsere eller direkte salg (ved hjælp af en online betalings-processor, som konfigureres under Distribuering). Angiv hvilken adgang, der gælder for denne fil."
-
-msgid "payment.directSales.validPriceRequired"
-msgstr "En gyldig numerisk pris er påkrævet."
-
-msgid "payment.directSales.purchase"
-msgstr "Køb {$format} ({$amount} {$currency})"
-
-msgid "payment.directSales.download"
-msgstr "Download {$format}"
-
-msgid "payment.directSales.monograph.name"
-msgstr "Køb download af monografi eller kapitel"
-
-msgid "payment.directSales.monograph.description"
-msgstr "Denne transaktion er til køb af et direkte download af en enkelt monografi eller et monografi-kapitel."
-
-msgid "debug.notes.helpMappingLoad"
-msgstr "Genindlæst XML-hjælp til at kortlægge fil {$filename} på søgning efter {$id}."
-
-msgid "rt.metadata.pkp.dctype"
-msgstr "Bog"
-
-msgid "submission.pdf.download"
-msgstr "Download denne PDF-fil"
-
-msgid "user.profile.form.showOtherContexts"
-msgstr "Registrer dig hos andre forlag"
-
-msgid "user.profile.form.hideOtherContexts"
-msgstr "Skjul andre forlag"
-
-msgid "submission.round"
-msgstr "Runde {$round}"
-
-msgid "notification.type.formatNeedsApprovedSubmission"
-msgstr ""
-"Monografien vises først i kataloget, når den er publiceret. For at tilføje "
-"denne bog til kataloget skal du klikke på fanebladet Publicering."
-
-msgid "navigation.skip.spotlights"
-msgstr "Spring til spotlights"
-
-msgid "common.publications"
-msgstr "Monografier"
-
-msgid "common.publication"
-msgstr "Monografi"
-
-msgid "submission.search"
-msgstr "Bogsøgning"
-
-msgid "catalog.manage.isNotNewRelease"
-msgstr ""
-"Denne monografi er ikke blandt nye udgivelser. Indsæt denne monografi blandt "
-"nye udgivelser."
-
-msgid "catalog.manage.isNewRelease"
-msgstr ""
-"Denne monografi er blandt nye udgivelser. Fjern denne monografi fra nye "
-"udgivelser."
-
-msgid "catalog.manage.isNotFeatured"
-msgstr ""
-"Denne monografi er ikke udvalgt. Indsæt denne monografi blandt de udvalgte."
-
-msgid "catalog.manage.isFeatured"
-msgstr "Denne monografi er udvalgt. Fjern denne monografi fra udvalgte."
-
-msgid "monograph.audience.success"
-msgstr "Publikumdetaljerne er blevet opdateret."
-
-msgid "catalog.coverImageTitle"
-msgstr "Forsidebillede"
-
-msgid "user.authorization.invalidPublishedSubmission"
-msgstr "En ugyldig publiceret indsendelse blev angivet."
-
-msgid "submissionGroup.assignedSubEditors"
-msgstr "Valgte redaktører"
-
-msgid "site.noPresses"
-msgstr "Der er ingen forlag (udgivere) tilgængelige."
-
-msgid "user.register.form.privacyConsentThisContext"
-msgstr ""
-"Ja, jeg accepterer at få mine data indsamlet og opbevaret i overensstemmelse "
-"med vores Erklæring om "
-"beskyttelse af personlige oplysninger."
-
-msgid "catalog.manage.noSubmissionsSelected"
-msgstr "Ingen indsendelse blev udvalgt til kataloget."
-
-msgid "catalog.manage.findSubmissions"
-msgstr "Find monografier til kataloget"
-
-msgid "user.authorization.representationNotFound"
-msgstr "Det ønskede publiceringsformat blev ikke fundet."
-
-msgid "catalog.manage.submissionsNotFound"
-msgstr "En eller flere af indsendelserne blev ikke fundet."
-
-msgid "about.aboutSoftware"
-msgstr "Om Open Monograph Press"
-
-msgid "common.payments"
-msgstr "Betalinger"
-
-msgid "installer.updatingInstructions"
-msgstr ""
-"Såfremt du opgraderer en eksisterende installation af OMP, skal du klikke her for at fortsætte."
diff --git a/locale/da_DK/locale.xml b/locale/da_DK/locale.xml
deleted file mode 100644
index 53e582dccdf..00000000000
--- a/locale/da_DK/locale.xml
+++ /dev/null
@@ -1,504 +0,0 @@
-
-
-
-
-
-
- Monografi
- Monografier
- Audience
- Forsidebillede
- Gem dine ændringer for at se det nye forsidebillede.
- Audience Range Qualifier
- Audience Range (from)
- Audience Range (to)
- Audience Range (exact)
- Sprog (engelsk, fransk, spansk)
- Publikationsformat
- Format
- Detaljer om det tilgængelige publikationsformat: {$format}
- Detaljer om denne monografi
- Formater:
- Indsendelsestype
- Korrekturside
- + Tildel til at udpege forfattere og andre til korrekturlæsning af tilrettede korrektursider, der er uploadet til godkendelse, inden de offentliggøres.]]>
- Føj til opgave
- Open Access
- Mærke (Brand Name)
- Sidetæller
- Præliminærsider (fortekst)
- Subsidiærsider (sider efter bogens hovedtekst)
- Produktsammensætning
- Produktsammensætning (ikke påkrævet)
- Produktidentifikation
- Pris
- En pris er påkrævet.
- Pristype
- Rabatprocent, hvis det er relevant
- Produkttilgængelighed
- Returindikator
- Digitalinformation
- Fysiske dimensioner
- x
- Filstørrelse i Mbytes
- Indtast din egen filstørrelsesværdi?
- Højde
- Tykkelse
- Vægt
- Bredde
- Fremstillingsland
- Digital teknisk beskyttelse
- Produktdistributionsregion
- Beskatningsprocent
- Beskatningstype
- Formater metadata
- Medtag metadataene for dette publikationsformat i katalogposten for denne bog.
- Manglende markeder og priser.
- Mangler en identifikationskode.
- Mangler nogle metadatafelter.
- Det valgte publikationsformat eksisterer ikke længere for denne monografi.]]>
- Åbn fanebladet for publikationsformat.
- Publikationsformat
- Et navn kræves.
- En gyldig pris er påkrævet.
- Formatdetaljer
- Fysisk format
- Dette format vil være tilgængeligt på et separat websted
- URL til indhold hos ekstern vært
- Der kræves en monografisk id.
- Der skal vælges et publikationsformat.
- Tilgængelighed.
- Tilgængelig
- Ikke tilgængelig
- Korrektur
- Godkendelse af format
- Godkend metadataene for dette format. Metadata kan kontrolleres fra katalogposten]]>
- Angiv, at metadataene for dette format ikke er blevet godkendt.]]>
- Format-tilgængelighed
- Gør dette format tilgængeligt for læsere. Downloadbare filer og andre distributioner vises i bogens katalogpost.]]>
- Dette format vil ikke være tilgængeligt for læsere. Eventuelle downloadbare filer eller andre distributioner vises ikke længere i bogens katalogpost. ]]>
- Katalogpost ikke godkendt.
- Format ikke i katalogpost.
- Korrektur ikke godkendt.
- Godkendt
- Afventer godkendelse
- En filstørrelse til digitale formater er påkrævet.
- En produkttilgængelighedskode er påkrævet.
- Der skal vælges en produktsammensætningskode.
- Kodeværdi
- ONIX kodetype
- Der kræves en identifikationskode.
- Der kræves en værdi
- Salgsrettigheder
- Kodeværdi
- Salgsrettighedstype
- Resten af verden?
- Marker dette felt for at bruge denne salgsrettighedsindgang som en fællesbetegnelse til dit format. Lande og regioner behøver ikke vælges i dette tilfælde.
- Der er allerede defineret en ROW-salgstype (resten af verden) til dette publikationsformat.
-
-
- Lande
- Regioner
- Inkluderet
- Ekskluderet
-
- Markedsområder
- Område
- Publikationsdatoer
-
- Der kræves en repræsentativ rolle.
- Et datoformat er påkrævet.
- Dato
- Rolle
- Datoformat
- En dato er påkrævet, og datoen skal svare til det valgte datoformat.
-
- Repræsentanter
- Repræsentativ type
-
- Agenter
- Leverandører
- Agent
- Du kan vælge en agent til at repræsentere dig i dette prædefinerede område. Det kræves ikke.
-
- Leverandør
- Vælg en rolle:
- Rolle
- Navn
- Telefon
- E-mail-adresse
- Website
-
- Repræsentant-ID
- Repræsenttant-ID-type (GNL anbefales)
-
- Du kan efterlade følgende afsnit tomt, hvis du leverer dine egne tjenester til dine kunder.
- Tilføj repræsentant
-
- Rediger denne repræsentant
- Slet denne repræsentant
- Spotlight
- Spotlights
- Der er ingen aktuelle spotlights.
-
- In the Spotlight
- Forfatter,
- Spotlight-element
- Homepage
- Spotlights-område
-
- Indtast spotlighted titel (autofuldførelse)
- Spotlight-titel
- Bog
- Et element er påkrævet
- En spotlight-titel er påkrævet
- Vælg en placering til dette spotlight.
- Rediger dette spotlight
- Slet dette spotlight
- Tilføj spotlight
- Åbn indsendelser
- Indekseret
- Filer
- Se katalogpostens formular
- Format vises i katalogposten
- Rediger dette format
- Slet dette format
- Tilføj publikationsformat
- Godkend korrektur til indeksering og inkludering i kataloget
- Korrekturfilen er klat til publicering
- Tilføj en meddelelse
- Ny katalogpost
- Se dette element i katalog
- Skift funktionsdisplayet
- Vis dette i katalogkarusellen
- Marker denne indsendelse som en 'ny udgivelse'
- Konfigurer kategorier til dette forlag
- Konfigurer serier til dette forlag
- Tilføj kode
- Rediger kodn
- Slet koden
- Tilføj salgsrettigheder
- Rediger disse rettigheder
- Slet disse rettigheder
- Tilføj marked
- Rediger dette marked
- Slet dette marked
- Tilføj publiceringsdato
- Rediger denne dato
- Slet denne dato
- Opret et nyt forlag
- Vis fanen med publikationsformat
- Gå til siden med forlagsmeddelelser
- Klik for at læse denne e-mail
- Se korrekturnet
- Der er læst korrektur på formatet
- Godkend/afvis dette format
- Slå tilgængeligheden af dette format til og fra
- Tilføj vedhæftet fil til bedømmelse
- Tilgængelige filer
- Serier
- Denne serie vises på hovednavigationsmenuen
- Sti
- Katalogstyring
- Nye udgivelser
- Kategori
- Serier
- ISSN
- Indtast et gyldigt ISSN.
- Online og print ISSN må ikke være det samme.
- Online ISSN
- Print ISSN
- Vælg serier
- Vælg kategori
- Forsidebilledet af udvalgte bøger vises øverst på hjemmesiden som en scrolbar opsætning. Klik på 'Udvælg' og derefter på stjernen for at tilføje en bog til karrusellen; klik på udråbstegn for at markere, at det er en ny udgivelse; træk og slip for at bestille.
- Klik på 'Udvælg' og derefter på stjernen for at vælge en fremhævet bog til denne kategori; træk og slip for at bestille.
- Klik på "Udvælg" og derefter på stjernen for at vælge en fremhævet bog til denne serie; træk og slip for at bestille. Serier identificeres med en redaktør og en serietitel inden for en kategori eller uafhængigt.
- Karrusel
- Udgivelse
- Administrer serien
- Administrer kategorier
- Der er ingen tildelte monografier.
- Udvalgt
- Udvalgt i kategori
- Udvalgt i serier
- Monografi er udvalgt
- Monografi er ikke udvalgt
- Monografi er markeret som en ny udgivelse.
- Monografi er ikke markeret som ny udgivelse.
- Ny udgivelse
- Ny udgivelse i kategori
- Ny udgivelse i serie
- Denne monografi kan ikke bestilles, før den er blevet udvalgt.
- Søg efter titel eller forfatter
- Der er endnu ikke offentliggjort nogen titler.
- Der er ingen nye udgivelser i øjeblikket.
- Der blev ikke fundet nogen titler, der matcher din søgning efter "{$searchQuery}".
- Udvælg
- Udvalgt
- Udvalgte bøger
- Der blev fundet en titel, der matchede din søgning efter "{$searchQuery}".
- {$number} titler blev fundet, der matchede din søgning efter "{$searchQuery}".
- Alle bøger
- Nye udgivelser
- Tilføjet
- Publikationsinfo
- Publiceret
- Kommende
- Kategorier
- Hovedkategori
- Underkategorier
- Om {$roleName}en
- Forsidebillede til {$monographTitle}
- Bemærk: For at købe varer skal du først logge ind. Valg af en vare, der skal købes, leder dig til login-siden. Enhver vare, der er markeret med et Open Access-ikon, kan downloades gratis uden at logge ind.
- Sortering af monografier
- Vælg hvordan du sorterer bøger i denne serie.
- Vælg hvordan du sorterer bøger i denne kategori.
- Vælg hvordan du sorterer bøger i dette katalog.
- Serieposition (lavest først)
- Serieposition (højest først)
- {$type} visning af filen {$title}
- Vend tilbage for at se detaljer om {$monographTitle}
- Præfiks
- Vis
- Udvælg
- Søg i katalog
- Mere information
- Udfyld venligst hele formularen.
- Vælg en gyldig mulighed fra listen.
- Du kan ikke tilføje den samme element to gange.
- Open Monograph Press
- OMP
- Homepage Header
- Katalog
- Konkurrerende interessepolitik
- Alle monografier
- Administrer
- Administration
- Katalogadministration
- Kategorier
- Serier
- Til forfattere
- Til bibliotekarer
- Information til forfattere
- Information til bibliotekarer
- Nye udgivelser
- Publiceret
- Guide
- Links til sociale medier
- Link til dit katalog.
- Serier
- Link til en serie.
- Kategori
- Link til en kategori.
- Nye udgivelser
- Link til dine nye udgivelser
- Forlag
- Sti
- Forlag
- Nyeste forlag:
- Skift til et andet forlag:
- Inkluder brugere uden roller hos dette forlag
- Indsend et forslag
- Indsend en monografi: Forfatterregistrering er i øjeblikket deaktiveret.
- Registrer dig som bedømmer
- Registrer dig som bedømmer: bedømmerregistrering er i øjeblikket deaktiveret.
- Vil du være villig til at bedømme indsendelser fra dette forlag?
- Ja, anmod om rollen {$userGroup}.
- Ja, jeg vil gerne kontaktes med anmodninger om at bedømme indsendelser fra denne presse.
- Hvilke forlag på dette websted vil du gerne registreres hos?
- Anmod om følgende roller.
- Hvis du anmodede om at være bedømmer hos et forlag, skal du indtaste dine emneinteresser.
- Forlagschef
- Forlagsredaktør
- Serieredaktør
- Manuskriptredaktør
- Korrekturlæser
- Produktionsredaktør
- Forlagschefer
- Serieredaktører
- Redaktører
- Manuskriptredaktører
- Korrekturlæsere
- Produktionsredaktører
- Vælg det forlag, du vil registreres hos:
- Der er ingen forlag, du kan registreres hos på dette websted.
- Erklæring om beskyttelse af personlige oplysninger
- Dette forlag accepterer i øjeblikket ikke brugerregistreringer.
- Det password, du indtastede, er ikke langt nok.
- Informeres via e-mail ved publicering af en monografi
- I stand til at indsende poster til forlaget.
- Villig til at foretage bedømmelser af indsendelser til forlaget.
- Villig til at foretage bedømmelser af indsendelser til dette websted.
- Indkreds bedømmerinteresser (væsentlige emneområder og forskningsmetoder):
- Du skal vælge mindst én rolle
- Se forlagets websted
- Forlagskontakt
- Om forlaget
- Redaktionsmedlemmer
- Redaktionel politik
- Fokusområde
- Serie- og kategoripolitikker
- Indsendelser
- Online-indsendelser
- Login
- Registrer
- {$login} eller {$register} for at foretage en indsendelse.
- {$newSubmission} eller {$viewSubmissions}.
- Foretag en ny indsendelse
- se dine endnu igangværende indsendelser
- Forfattervejledninger
- Tjekliste til forberedelse af manuskript
- Som en del af indsendelsesprocessen er forfattere forpligtet til at kontrollere, at deres indsendelse er i overensstemmelse med følgende punkter. Indsendelser kan returneres til forfattere, der ikke overholder disse retningslinjer.
- Oplysninger om ophavsret
- Erklæring om beskyttelse af personlige oplysninger
- Peer review proces
- Publikationsfrekvens
- Open Access-politik
- Forlagssponsorering
- Om dette publiceringssystem
- OMP redaktions- og publiceringsproces
- Public Knowledge Project< / a> under GNU General Public License.]]>
- Public Knowledge Project< / a> under GNU General Public License.]]>
- Vend tilbage til søgeresultater
- Åbn en ny side for at redigere disse oplysninger
- OMP-installation
- OMP-opgradering
- Installer Open Monograph Press
- Tak fordi du downloadede the Public Knowledge Project's Open Monograph Press {$version}. Før du fortsætter, skal du læse filen README, der følger med denne software. For at få mere information om Public Knowledge Project og dets softwareprojekter, kan du besøge PKP web site. Hvis du har fejlrapporter eller teknisk supporthenvendelser om Open Monograph Press, kan du se supportforum eller besøge PKP's online bug reporting system. Selvom supportforummet er den foretrukne kontaktform, kan du også e-maile teamet via pkp.contact@gmail.com.
-
-Upgradre h4>
-
-
Hvis du opgraderer en eksisterende installation af OMP 0.x, klik her for at fortsætte.
]]>
- Før-installations-foranstaltninger
- 1. Følgende filer og mapper (og deres indhold) skal gøres skrivbare:
-
-- config.inc.php er skrivbar (valgfrit): {$writable_config}
-- public/ er skrivbar: {$writable_public}
-- cache/ er skrivbar: {$writable_cache}
-- cache/t_cache/ er skrivbar: {$writable_templates_cache}
-- cache/t_compile/ er skrivbar: {$writable_templates_compile}
-- cache/_db er skrivbar: {$writable_db_cache}
-
-
-2. Et bibliotek til lagring af uploadede filer skal oprettes og gøres skrivbart (se "Filindstillinger" nedenfor).
-]]>
- Tak fordi du downloadede the Public Knowledge Project's Open Monograph Press {$version}. Før du fortsætter, skal du læse filen README, der følger med denne software. For at få mere information om Public Knowledge Project og dets softwareprojekter, kan du besøge PKP web site. Hvis du har fejlrapporter eller teknisk supporthenvendelser om Open Monograph Press, kan du se supportforum eller besøge PKP's online bug reporting system. Selvom supportforummet er den foretrukne kontaktform, kan du også e-maile teamet via pkp.contact@gmail.com.]]>
- = 4.1.1 or PostgreSQL >= 9.1.5 databaseserver. Bemærk også, at en komplet Unicode-support kræver mbstring-biblioteket (aktiveret som standard i de nyeste PHP-installationer). Du kan opleve problemer med at bruge udvidede tegnsæt, hvis din server ikke opfylder disse krav.
-
-Din server understøtter i øjeblikket mbstring: {$supportsMBString}
-]]>
- {$allowFileUploads}]]>
- {$maxFileUploadSize}]]>
- Det primære sprog, der skal bruges til dette system. Se OMP-dokumentationen, hvis du er interesseret i support til sprog, der ikke er nævnt her.
- Vælg supplerende sprog, der skal understøttes i dette system. Disse sprog vil være tilgængelige til brug af forlag, der er tilknyttet dette websted. Supplerende sprog kan også installeres når som helst fra websteds-administrationens interface. Sprog (locales) markeret * kan være ufuldstændige.
- Sørg for, at dette bibliotek er oprettet og skrivbart før installation. Windows-stinavne skal bruge retvendt skråstreg, f.eks. "C:/mypress/filer".]]>
- OMP kræver adgang til en SQL-database for at gemme des data. Se systemkravene ovenfor der indeholder en liste over understøttede databaser. Angiv de indstillinger, der skal bruges for at oprette forbindelse til databasen i felterne herunder.
- Opgrader Open Monograph Press
- VIGTIGT!
-Installationsprogrammet kunne ikke automatisk overskrive konfigurationsfilen. Før du forsøger at bruge systemet, skal du åbne config.inc.php i en egnet teksteditor og erstatte dets indhold med indholdet i tekstfeltet nedenfor.
]]>
- Installation af OMP er afsluttet.
-For at begynde at bruge systemet skal du logge ind med det brugernavn og adgangskode, der er indtastet på den forrige side.
-Hvis du ønsker at modtage nyheder og opdateringer, skal du registrere dig på http://pkp.sfu.ca/omp/register. Hvis du har spørgsmål eller kommentarer, kan du besøge supportforum. p>]]>
- Opgradering af OMP til version {$version} er afsluttet.
-Glem ikke at indstille "installeret"-indstillingen i din config.inc.php konfigurationsfil tilbage til On.
-Hvis du ikke allerede har registreret dig og ønsker at modtage nyheder og opdateringer, skal du registrere dig på http://pkp.sfu.ca/omp/register. Hvis du har spørgsmål eller kommentarer, kan du besøge supportforum.
]]>
- Runde {$round}-bedømmelsen af {$reviewerName} i forbindelse med indsendelse {$submissionId} er blevet ryddet.
- Forfaldsdato for runde {$round}-bedømmelsen af indsendelse {$submissionId} af {$reviewerName} er sat til {$dueDate}.
- {$reviewerName} har afvist runde {$round}-bedømmelsen i forbindelse med indsendelse {$submissionId}.
- {$reviewerName} har accepteret runde {$round}-bedømmelsen i forbindelse med indsendelse {$submissionId}.
- {$editorName} har markeret runde {$round}-bedømmelsen i forbindelse med indsendelse {$submissionId} som uovervejet.
- En redaktørbeslutning ({$decision}) i forbindelse med monografi {$submissionId} blev registreret af {$editorName}.
- En redaktøranbefaling ({$decision}) i forbindelse med monografi {$submissionId} blev regostreret af {$editorName}.
- Indsendelsen {$submissionId} er blevet arkiveret.
- Indsendelsen {$submissionId} er gendannet og indsat i køen.
- {$editorName} er blevet valgt som redaktør i forbindelse med indsendelse {$submissionId}.
- {$assignerName} har valgt {$proofreaderName} til at læse korrektur på {$submissionId}.
- {$proofreaderName} har sendt {$submissionId} til planlægning.
- {$userName} har importeret monografi {$submissionId}.
- Identifikationskode tilføjet.
- Identifikationskode redigeret.
- Identifikationskode fjernet.
- Publiceringsdato tilføjet.
- Publiceringsdato redigeret.
- Publiceringsdato fjernet.
- Publiceringsformat tilføjet.
- Publiceringsformat redigeret.
- Publiceringsformat fjernet.
- Salgsrettigheder tilføjet.
- Salgsrettigheder redigeret.
- Salgsrettigheder fjernet.
- Repræsentant tilføjet.
- Repræsentant redigeret.
- Repræsentant fjernet.
- Marked tilføjet.
- Marked redigeret.
- Marked fjernet.
- Spotlight tilføjet
- Spotlight redigeret.
- Spotlight fjernet.
- Katalog-metadata gemt.
- Metadata for publikationsformat gemt.
- Korrektur godkendt.
- Indsendelse slettet.
- En ny monografi, "{$title}," er blevet indsendt.
- Redigeringsforløb
- Bedømmelsesforløb
- Websitehændelser
- Indsendelseforløb
- En læser har kommenteret "{$title}".
- Offentlige meddelelser
- Der er indsendt en ny monografi, som en redaktør skal tilknyttes.
- Du er blevet bedt om at gennemgå det tilrettede i forbindelse med "{$file}".
- Du er blevet bedt om at gennemgå layout i forbindelse med "{$title}".
- Du er blevet bedt om at oprette et indeks i forbindelse med "{$title}".
- Intern bedømmelsesproces påbegyndt.
- Denne indsendelse afventer i øjeblikket godkendelse i katalogposterne, før den vises i det offentlige katalog.
- Afventer godkendelse.
- Monografien vises først i kataloget, når der er oprettet en katalogpost. For at tilføje denne bog til kataloget skal du klikke på katalogposter ovenfor og finde fanebladet 'Katalog'.
- Der er ikke konfigureret nogen betalingsmetode.
- En konfigureret betalingsmetode er påkrævet, før du kan definere indstillinger for e-handel.
- Monografien er godkendt. Gå til 'Katalog' for at indskrive dets katalogoplysninger ved hjælp af katalog-linket ovenfor.
- Katalogstyring
- Du er blevet nægtet adgang fordi du ikke ser ud til at være en valid korrekturlæser i forbindelse med denne monografi.
- Du er blevet nægtet adgang fordi du ikke ser ud til af være forfatter til denne monografi.
- Du er blevet nægtet adgang fordi du ikke synes at være blevet tildelt korrekturlæserrollen til denne monografi.
- Du er blevet nægtet adgang til den angivne monografi-fil.
- Ugyldig monografi eller ingen monografi efterspurgt!
- Intet forlag i denne sammenhæng!
- Du forsøger at få adgang til en monografi, der ikke er en del af din serie.
- Adgang nægtet! Du er ikke blevet tilknyttet dette redaktionelle trin.
- Adgang nægtet! Den brugergruppe, du i øjeblikket er en del af, er ikke tilknyttet dette redaktionelle trin. Kontroller dine forlagsindstillinger.
- Download fra forlagets webside
- Pris
- Tilgængelighed
- Katalog
- Godkendt
- Pris ({$currency})
- Priserne må kun være numeriske. Medtag ikke valutasymboler.
- Direkte salg
- {$amount} ({$currency})
- Ikke tilgængelig
- Ikke indstillet
- Open Access
- Filformater kan stilles til rådighed via download fra forlagets websted gennem enten Open Access uden omkostninger for læsere eller direkte salg (ved hjælp af en online betalings-processor, som konfigureres under Distribuering). Angiv hvilken adgang, der gælder for denne fil.
- En gyldig numerisk pris er påkrævet.
- Køb {$format} ({$amount} {$currency})
- Download {$format}
- Køb download af monografi eller kapitel
- Denne transaktion er til køb af et direkte download af en enkelt monografi eller et monografi-kapitel.
- Indlæst valutaliste "{$filename}" fra XML
- Genindlæst XML-hjælp til at kortlægge fil {$filename} på søgning efter {$id}.
- Bog
- Download denne PDF-fil
- Registrer dig hos andre forlag
- Skjul andre forlag
-
-
diff --git a/locale/da_DK/manager.po b/locale/da_DK/manager.po
deleted file mode 100644
index a2676cb7690..00000000000
--- a/locale/da_DK/manager.po
+++ /dev/null
@@ -1,1396 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-11-28T15:10:04-08:00\n"
-"PO-Revision-Date: 2020-12-14 15:47+0000\n"
-"Last-Translator: Niels Erik Frederiksen \n"
-"Language-Team: Danish \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 "manager.language.confirmDefaultSettingsOverwrite"
-msgstr ""
-"Dette erstatter alle sprogspecifikke forlagsindstillinger, du havde i "
-"tilknytning til dette sprog"
-
-msgid "manager.languages.noneAvailable"
-msgstr ""
-"Beklager, ingen ekstra sprog er tilgængelige. Kontakt din "
-"webstedsadministrator, hvis du ønsker at bruge flere sprog i forbindelse med "
-"dette forlag."
-
-msgid "manager.languages.primaryLocaleInstructions"
-msgstr "Dette vil være standardsproget for forlags-sitet."
-
-msgid "manager.series.form.mustAllowPermission"
-msgstr "Sørg for, at der mindst er markeret et afkrydsningsfelt for hver serieredaktør-tildeling."
-
-msgid "manager.series.form.reviewFormId"
-msgstr "Sørg for, at du har valgt en gyldig bedømmelsesformular."
-
-msgid "manager.series.submissionIndexing"
-msgstr "Vil ikke være med i forlagenes indeksering"
-
-msgid "manager.series.editorRestriction"
-msgstr "Elementer kan kun indsendes af redaktører og serieredaktører."
-
-msgid "manager.series.confirmDelete"
-msgstr "Er du sikker på, at du vil slette denne serie permanent?"
-
-msgid "manager.series.indexed"
-msgstr "Indekseret"
-
-msgid "manager.series.open"
-msgstr "Åbn indsendelser"
-
-msgid "manager.series.readingTools"
-msgstr "Læseværktøjer"
-
-msgid "manager.series.submissionReview"
-msgstr "Vil ikke blive fagfællebedømt"
-
-msgid "manager.series.submissionsToThisSection"
-msgstr "Indsendelser foretaget til denne serie"
-
-msgid "manager.series.abstractsNotRequired"
-msgstr "Kræver ikke resume"
-
-msgid "manager.series.disableComments"
-msgstr "Deaktivér læserkommentarer i forbindelse denne serie."
-
-msgid "manager.series.book"
-msgstr "Bogserie"
-
-msgid "manager.series.create"
-msgstr "Opret serie"
-
-msgid "manager.series.policy"
-msgstr "Seriebeskrivelse"
-
-msgid "manager.series.assigned"
-msgstr "Redaktører til denne serie"
-
-msgid "manager.series.seriesEditorInstructions"
-msgstr ""
-"Føj en serieredaktør til denne serie fra de tilgængelige serieredaktører. "
-"Når redaktøren er tilføjet, skal du angive, om serieredaktøren vil føre "
-"tilsyn med BEDØMMELSEN (fagfællebedømmelse) og/eller REDIGERING ("
-"manuskriptredigering, layout og korrekturlæsning) af indsendelser i "
-"forbindelse med denne serie. Serieredaktører oprettes ved at klikke på Serieredaktører under Roller i "
-"forlagsadministration."
-
-msgid "manager.series.hideAbout"
-msgstr "Undlad denne serie i Om forlaget."
-
-msgid "manager.series.unassigned"
-msgstr "Tilgængelige serieredaktører"
-
-msgid "manager.series.form.abbrevRequired"
-msgstr "En forkortet titel til serien er påkrævet."
-
-msgid "manager.series.form.titleRequired"
-msgstr "En titel til serien er påkrævet."
-
-msgid "manager.series.noneCreated"
-msgstr "Der er ikke oprettet nogen serier."
-
-msgid "manager.series.existingUsers"
-msgstr "Eksisterende brugere"
-
-msgid "manager.series.seriesTitle"
-msgstr "Serietitel"
-
-msgid "manager.series.restricted"
-msgstr "Tillad ikke forfattere at sende direkte til denne serie."
-
-msgid "manager.payment.generalOptions"
-msgstr "Generelle indstillinger"
-
-msgid "manager.payment.options.enablePayments"
-msgstr "Betalinger vil blive aktiveret i forbindelse med dette forlag. Bemærk, at brugerne skal logge på for at foretage betalinger."
-
-msgid "manager.settings"
-msgstr "Indstillinger"
-
-msgid "manager.settings.pressSettings"
-msgstr "Forlagsindstillinger"
-
-msgid "manager.settings.press"
-msgstr "Forlag"
-
-msgid "manager.settings.publisherInformation"
-msgstr "Disse felter er påkrævet for at oprette gyldige ONIX metadata. Medtag dem, hvis du ønsker at offentliggøre ONIX-metadata."
-
-msgid "manager.settings.publisher"
-msgstr "Forlagets udgivernavn"
-
-msgid "manager.settings.location"
-msgstr "Geografisk placering"
-
-msgid "manager.settings.publisherCode"
-msgstr "Udgiverkode"
-
-msgid "manager.settings.publisherCodeType"
-msgstr "Type for udgiverkode"
-
-msgid "manager.settings.publisherCodeType.tip"
-msgstr "Hvis du har en kode til dit udgivernavn, skal du udfylde den nedenfor. Det vil blive inkluderet i genererede metadata. Feltet er påkrævet, hvis du genererer ONIX-metadata til dine publikationer."
-
-msgid "manager.settings.distributionDescription"
-msgstr ""
-"Alle indstillinger, der er specifikke for distributionsprocessen ("
-"meddelelser, indeksering, arkivering, betaling, læseværktøjer)."
-
-msgid "manager.statistics.reports.defaultReport.monographDownloads"
-msgstr "Download af monografi-filer"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstract"
-msgstr "Visninger af monografisk resuméside"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
-msgstr "Monografisk resumé og downloads"
-
-msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
-msgstr "Visninger af en series hovedside"
-
-msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
-msgstr "Visninger af et forlags hovedside"
-
-msgid "manager.statistics.reports.filters.byContext.description"
-msgstr "Begræns resultater efter kontekst (serie og/eller monografi)."
-
-msgid "manager.statistics.reports.filters.byObject.description"
-msgstr "Begræns resultater efter objekttype (forlag, serie, monografi, filtyper) og/eller efter et eller flere objekt-id(er)."
-
-msgid "manager.tools"
-msgstr "Værktøjer"
-
-msgid "manager.tools.importExport"
-msgstr "Alle værktøjer, der er specifikke i forbindelse med import og eksport af data (forlag, monografier, brugere)"
-
-msgid "manager.tools.statistics"
-msgstr ""
-"Værktøjer til at generere rapporter relateret til brugsstatistikker (visning "
-"af katalogindeks-side, visning af resumésider, download af monografi-filer)"
-
-msgid "manager.users.availableRoles"
-msgstr "Tilgængelige roller"
-
-msgid "manager.users.currentRoles"
-msgstr "Aktuelle roller"
-
-msgid "manager.users.selectRole"
-msgstr "Vælg rolle"
-
-msgid "manager.people.allEnrolledUsers"
-msgstr "Brugere tilmeldt dette forlag"
-
-msgid "manager.people.allPresses"
-msgstr "Alle forlag"
-
-msgid "manager.people.allSiteUsers"
-msgstr "Tilmeld en bruger fra dette site til dette forlag"
-
-msgid "manager.people.allUsers"
-msgstr "Alle tilmeldte brugere"
-
-msgid "manager.people.confirmRemove"
-msgstr "Vil du fjerne denne bruger fra dette forlag? Denne handling vil fjerne brugeren fra alle roller tilknyttet dette forlag."
-
-msgid "manager.people.enrollExistingUser"
-msgstr "Tilmeld en eksisterende bruger"
-
-msgid "manager.people.enrollSyncPress"
-msgstr "Med forlag"
-
-msgid "manager.people.mergeUsers.from.description"
-msgstr "Vælg en bruger, der skal sammenflettes med en anden brugerkonto (f.eks. når en bruger har to brugerkonti). Den førstvalgte konto bliver slettet, og dens indsendelser, opgaver osv. lægges under den anden konto."
-
-msgid "manager.people.mergeUsers.into.description"
-msgstr "Vælg en bruger, som den forrige brugers forfatterskaber, redigeringsopgaver osv. skal lægges ind under."
-
-msgid "manager.people.syncUserDescription"
-msgstr "Tilmeldingssynkronisering tilmelder alle brugere, der er tilmeldt den nævnte rolle hos det specificerede forlag, til en og samme rolle hos dette forlag. Denne funktion gør det muligt at synkronisere et fælles sæt brugere (f.eks. bedømmere) mellem de enkelte forlag."
-
-msgid "manager.people.confirmDisable"
-msgstr ""
-"Deaktivér denne bruger? Dette forhindrer brugeren i at logge ind i systemet."
-"\n"
-"\n"
-"Du kan eventuelt give brugeren en grund til at vedkommendes konto "
-"deaktiveres."
-
-msgid "manager.people.noAdministrativeRights"
-msgstr ""
-"Beklager, du har ikke administratorrettigheder over denne bruger. Dette kan "
-"skyldes:\n"
-"\n"
-" - Brugeren er en webstedsadministrator
\n"
-" - Brugeren er aktiv hos forlag, du ikke administrerer
\n"
-"
\n"
-" Denne opgave skal udføres af en webstedsadministrator.\n"
-"\t"
-
-msgid "manager.setup.emailBounceAddress.disabled"
-msgstr ""
-"For at sende e-mails, der ikke kan afleveres, til en returneringsadresse, "
-"skal webstedsadministratoren aktivere indstillingen "
-"allow_envelope_sender
i konfigurationsfilen til webstedet. "
-"Serverkonfiguration kan være påkrævet, som angivet i OMP-dokumentationen."
-
-msgid "manager.setup.emailBounceAddress.description"
-msgstr ""
-"Alle e-mails, der ikke kan afleveres, resulterer i en fejlmeddelelse til "
-"denne adresse."
-
-msgid "manager.setup.emailBounceAddress"
-msgstr "Returneringsadresse"
-
-msgid "manager.setup.editorDecision"
-msgstr "Redaktørbeslutning"
-
-msgid "manager.setup.doiPrefixDescription"
-msgstr ""
-"DOI-præfikset tildeles af CrossRef og er i formatet 10.xxxx (f.eks. 10.1234)."
-
-msgid "manager.setup.doiPrefix"
-msgstr "DOI-præfiks"
-
-msgid "manager.setup.displayNewReleases.label"
-msgstr "Nyudgivelser"
-
-msgid "manager.setup.displayNewReleases"
-msgstr "Vis nyudgivelser på startsiden"
-
-msgid "manager.setup.displayInSpotlight.label"
-msgstr "Spotlight"
-
-msgid "manager.setup.displayInSpotlight"
-msgstr "Vis bøger fra spotlight på startsiden"
-
-msgid "manager.setup.displayFeaturedBooks.label"
-msgstr "Udvalgte bøger"
-
-msgid "manager.setup.displayFeaturedBooks"
-msgstr "Vis udvalgte bøger på startsiden"
-
-msgid "manager.setup.displayOnHomepage"
-msgstr "Startsideindhold"
-
-msgid "manager.setup.displayCurrentMonograph"
-msgstr ""
-"Tilføj indholdsfortegnelsen til den aktuelle monografi (hvis tilgængelig)."
-
-msgid "manager.setup.disciplineProvideExamples"
-msgstr ""
-"Giv eksempler på relevante akademiske discipliner i forbindelse med dette "
-"forlag"
-
-msgid "manager.setup.disciplineExamples"
-msgstr ""
-"(F.eks. Historie; Uddannelse; Sociologi; Psykologi; Kulturstudier; Jura)"
-
-msgid "manager.setup.disciplineDescription"
-msgstr ""
-"Nyttigt, når forlaget krydser faglige grænser og/eller forfattere indsender "
-"tværfagligt indhold."
-
-msgid "manager.setup.discipline"
-msgstr "Akademisk fagområde og underdiscipliner"
-
-msgid "manager.setup.disableUserRegistration"
-msgstr ""
-"Forlagschefen registrerer alle brugerkonti. Redaktører eller "
-"sektionsredaktører kan registrere brugerkonti for bedømmere."
-
-msgid "manager.setup.details.description"
-msgstr "Navn på forlag, kontakter, sponsorer og søgemaskiner."
-
-msgid "manager.setup.details"
-msgstr "Detaljer"
-
-msgid "manager.setup.customTagsDescription"
-msgstr ""
-"Brugerdefinerede HTML-header-tags, der skal indsættes i header-sektionen på "
-"hver side (f.eks. META-tags)."
-
-msgid "manager.setup.customTags"
-msgstr "Brugerdefinerede tags"
-
-msgid "manager.setup.customizingTheLook"
-msgstr "Trin 5. Tilpasning af udseendet (Look & Feel)"
-
-msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
-msgstr ""
-"Billeder mindskes, når de er større end denne størrelse, men bliver aldrig "
-"opskaleret eller strækkes for at passe til disse dimensioner."
-
-msgid "manager.setup.coverThumbnailsMaxWidth"
-msgstr "Forsidebillede max bredde"
-
-msgid "manager.setup.coverThumbnailsMaxHeight"
-msgstr "Forsidebillede max højde"
-
-msgid "manager.setup.coverage"
-msgstr "Dækning"
-
-msgid "manager.setup.copyrightNotice"
-msgstr "Oplysninger om copyright"
-
-msgid "manager.setup.copyeditInstructionsDescription"
-msgstr ""
-"Manuskriptredaktørvejledninger bliver gjort tilgængelige for "
-"manuskriptredaktører, forfattere og sektionsredaktører på "
-"indsendelsesredigeringstrinnet. Nedenfor er et standardsæt med instruktioner "
-"i HTML, som kan ændres eller erstattes af forlagschefen på ethvert tidspunkt "
-"(i HTML eller almindelig tekst)."
-
-msgid "manager.setup.copyeditInstructions"
-msgstr "Manuskriptredaktørvejledninger"
-
-msgid "manager.setup.copyediting"
-msgstr "Manuskriptredaktører"
-
-msgid "manager.setup.contextSummary"
-msgstr "Forlagsresumé"
-
-msgid "manager.setup.contextAbout.description"
-msgstr ""
-"Inkludér de oplysninger om dit forlag, som kan være af interesse for læsere, "
-"forfattere eller bedømmere. Dette kan omfatte din open access-politik, fokus "
-"og sigte med forlaget, sponsorering og forlagets historie."
-
-msgid "manager.setup.contextAbout"
-msgstr "Om forlaget"
-
-msgid "manager.setup.appearInAboutPress"
-msgstr "(Vises i Om forlaget) "
-
-msgid "manager.setup.announcementsIntroduction.description"
-msgstr ""
-"Indtast supplerende oplysninger, der skal vises for læserne på siden "
-"'Meddelelser'."
-
-msgid "manager.setup.announcementsIntroduction"
-msgstr "Yderligere information"
-
-msgid "manager.setup.announcementsDescription"
-msgstr ""
-"Meddelelser kan publiceres for at informere læserne om nyheder og "
-"begivenheder. Publicerede meddelelser vises på siden 'Meddelelser'."
-
-msgid "manager.setup.announcements.success"
-msgstr "Indstillingerne for meddelelser er blevet opdateret."
-
-msgid "manager.setup.announcements"
-msgstr "Meddelelser"
-
-msgid "manager.setup.addSponsor"
-msgstr "Tilføj sponsororganisation"
-
-msgid "manager.setup.addNavItem"
-msgstr "Tilføj element"
-
-msgid "manager.setup.addItemtoAboutPress"
-msgstr "Tilføj element, der skal vises under \"Om forlaget\""
-
-msgid "manager.setup.addItem"
-msgstr "Tilføj element"
-
-msgid "manager.setup.addChecklistItem"
-msgstr "Tilføj element til tjekliste"
-
-msgid "manager.setup.addAboutItem"
-msgstr "Tilføj Om-element"
-
-msgid "manager.setup.aboutItemContent"
-msgstr "Indhold"
-
-msgid "manager.setup"
-msgstr "Konfiguration"
-
-msgid "manager.pressManagement"
-msgstr "Forlagsadministration"
-
-msgid "user.authorization.pluginLevel"
-msgstr ""
-"Du har ikke tilstrækkelige brugerrettigheder til at administrere dette "
-"plugin."
-
-msgid "manager.system.payments"
-msgstr "Betalinger"
-
-msgid "manager.system.readingTools"
-msgstr "Læseværktøjer"
-
-msgid "manager.system.reviewForms"
-msgstr "Bedømmelsesformularer"
-
-msgid "manager.system.archiving"
-msgstr "Arkivering"
-
-msgid "manager.system"
-msgstr "Systemindstillinger"
-
-msgid "manager.settings.publisherCodeType.invalid"
-msgstr "Dette er ikke en gyldig udgiverkode."
-
-msgid "manager.settings.publisher.identity.description"
-msgstr ""
-"Disse felter er obligatoriske i forbindelse med publicering af gyldig ONIX metadata."
-
-msgid "manager.settings.publisher.identity"
-msgstr "Udgiveridentitet"
-
-msgid "manager.payment.success"
-msgstr "Betalingsindstillingerne er blevet opdateret."
-
-msgid "manager.setup.reviewProcess"
-msgstr "Bedømmelsesproces"
-
-msgid "manager.setup.reviewPolicy"
-msgstr "Bedømmelsespolitik"
-
-msgid "manager.setup.reviewOptions.reviewerReminders"
-msgstr "Påmindelser om bedømmelse"
-
-msgid "manager.setup.reviewOptions.reviewerRatings"
-msgstr "Bedømmerklassificering"
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
-msgstr "Inkludér et sikkert link i e-mail-invitationen til bedømmere."
-
-#, fuzzy
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
-msgstr ""
-"Bedømmere kan få tilsendt et sikkert link i e-mail-invitationen, der giver "
-"dem adgang til bedømmelsen uden at logge ind. Adgang til andre sider kræver, "
-"at de logger på."
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
-msgstr "Adgang for bedømmere ved hjælp af ét klik"
-
-msgid "manager.setup.reviewOptions.reviewerAccess"
-msgstr "Bedømmeradgang"
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
-msgstr ""
-"Bedømmere får kun adgang til manuskriptfilen, efter de har accepteret at "
-"bedømme den."
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
-msgstr "Begræns filadgang"
-
-msgid "manager.setup.reviewOptions.onQuality"
-msgstr ""
-"Redaktører vurderer bedømmere på en fempunkts-kvalitetskala efter hver "
-"bedømmelse."
-
-msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
-msgstr ""
-"For at aktivere disse indstillinger, skal webstedsadministratoren aktivere "
-"indstillingen scheduled_tasks i OMP-konfigurationsfilen. "
-"Understøttelse af denne funktionalitet (som eventuelt ikke er muligt på alle "
-"servere) kan kræve yderligere konfiguration af serveren som angivet i "
-"dokumentationen til OMP."
-
-msgid "manager.setup.reviewOptions.automatedReminders"
-msgstr "Automatiske e-mail-påmindelser"
-
-msgid "manager.setup.reviewOptions"
-msgstr "Bedømmelsesindstillinger"
-
-msgid "manager.setup.internalReviewGuidelines"
-msgstr "Retningslinjer for intern bedømmelse"
-
-msgid "manager.setup.reviewGuidelinesDescription"
-msgstr ""
-"Stil kriterier for at foretage en bedømmelse af en indsendelses egnethed til "
-"publicering hos forlaget til rådighed for eksterne bedømmere. Det kan "
-"indeholde instruktioner i hvordan man forbereder en effektiv og nyttig "
-"bedømmelse. Bedømmere vil have mulighed for at videregive kommentarer stilet "
-"til forfatteren og redaktøren samt separate kommentarer til redaktøren."
-
-msgid "manager.setup.reviewGuidelines"
-msgstr "Retningslinjer for ekstern bedømmelse"
-
-msgid "manager.setup.restrictSiteAccess"
-msgstr "Brugere skal være registreret og logge på for at se forlagets website."
-
-msgid "manager.setup.restrictMonographAccess"
-msgstr ""
-"Brugere skal være registreret og logge på for at se open access indhold."
-
-msgid "manager.setup.refLinkInstructions.description"
-msgstr "Layoutinstruktioner til referencelinking"
-
-msgid "manager.setup.referenceLinking"
-msgstr "Referencelink"
-
-msgid "manager.setup.publisherDescription"
-msgstr ""
-"Navnet på den organisation, der står bag forlaget, vises i 'Om forlaget'."
-
-msgid "manager.setup.publisher"
-msgstr "Udgiver"
-
-msgid "manager.setup.publicationScheduleDescription"
-msgstr ""
-"Indhold kan publiceres samlet som en del af en monografi med sin egen "
-"indholdsfortegnelse. Alternativt kan individuelle indlæg offentliggøres, så "
-"snart de er klar, ved at tilføje dem til det nyeste binds "
-"indholdsfortegnelse. Giv læserne i ’Om forlaget’ en beskrivelse af det "
-"system, dettee forlag vil bruge, og dets forventede publikationsfrekvens."
-
-msgid "manager.setup.provideRefLinkInstructions"
-msgstr "Stil instruktioner til rådighed for layoutredaktører."
-
-msgid "manager.setup.proofreading"
-msgstr "Korrekturlæsere"
-
-msgid "manager.setup.proofingInstructionsDescription"
-msgstr ""
-"Korrekturlæsningsinstruktionerne vil blive gjort tilgængelige for "
-"korrekturlæsere, forfattere, layoutredaktører og sektionsredaktører på "
-"manuskriptredigeringstrinnet. Nedenfor er et standardsæt med instruktioner i "
-"HTML, som, på ethvert tidspunkt, kan redigeres eller erstattes af "
-"forlagschefen (i HTML eller klartekst)."
-
-msgid "manager.setup.proofingInstructions"
-msgstr "Korrekturinstruktioner"
-
-msgid "manager.setup.printIssn"
-msgstr "Print ISSN"
-
-msgid "manager.setup.contextTitle"
-msgstr "Forlagsnavn"
-
-msgid "manager.setup.pressTheme"
-msgstr "Forlagstema"
-
-msgid "manager.setup.styleSheetInvalid"
-msgstr "Ugyldigt stylesheet-format. Accepteret format er .css."
-
-msgid "manager.setup.pressSetupUpdated"
-msgstr "Din forlagskonfiguration er blevet opdateret."
-
-msgid "manager.setup.pressSetup"
-msgstr "Forlagskonfiguration"
-
-msgid "manager.setup.pressPolicies"
-msgstr "Trin 2: Forlagspolitikker"
-
-msgid "manager.setup.pageHeader"
-msgstr "Forlagets sidehoved"
-
-msgid "manager.setup.layout"
-msgstr "Forlags-layout"
-
-msgid "manager.setup.contextInitials"
-msgstr "Forlagsinitialer"
-
-msgid "manager.setup.pressHomepageContentDescription"
-msgstr ""
-"Forlagets hjemmeside består som standard af en række navigationslink. "
-"Yderligere hjemmesideindhold kan tilføjes ved hjælp af en eller flere af de "
-"følgende muligheder, der fremkommer i den viste rækkefølge."
-
-msgid "manager.setup.pressHomepageContent"
-msgstr "Forlagets hjemmesideindhold"
-
-msgid "manager.setup.homepageContentDescription"
-msgstr ""
-"Forlagets hjemmeside består som standard af en række navigationslink. "
-"Yderligere hjemmesideindhold kan tilføjes ved hjælp af en eller flere af de "
-"følgende muligheder, der fremkommer i den viste rækkefølge."
-
-msgid "manager.setup.homepageContent"
-msgstr "Forlagets hjemmesideindhold"
-
-msgid "manager.setup.pressArchiving"
-msgstr "Forlagsarkivering"
-
-msgid "manager.setup.aboutPress.description"
-msgstr ""
-"Medtag alle oplysninger om dit forlag, som kan være af interesse for læsere, "
-"forfattere eller bedømmere. Dette kan omfatte din open access-politik, "
-"forlagets fokusområde, copyright, meddelelse om sponsorering, forlagets "
-"historie og en erklæring om beskyttelse af personlige oplysninger."
-
-msgid "manager.setup.aboutPress"
-msgstr "Om forlaget"
-
-msgid "manager.setup.pressDescription.description"
-msgstr "En kort beskrivelse af dit forlag."
-
-msgid "manager.setup.pressDescription"
-msgstr "Forlagsresumé"
-
-msgid "manager.setup.appearanceDescription"
-msgstr ""
-"Forskellige komponenter, der indgår i forlagets fremtoning og design kan "
-"konfigureres fra denne side, herunder sidehoved og sidefodselementer, temaer "
-"samt hvordan lister med information præsenteres for brugerne."
-
-msgid "manager.setup.privacyStatement.success"
-msgstr "Erklæring om beskyttelse af personlige oplysninger er blevet opdateret."
-
-msgid "manager.setup.policies.description"
-msgstr ""
-"Fokusområde, fagfællebedømmelse, sektioner, beskyttelse af personlige "
-"oplysninger, sikkerhed mm. i forbindelse med indhold."
-
-msgid "manager.setup.policies"
-msgstr "Politikker"
-
-msgid "manager.setup.onlineIssn"
-msgstr "Online ISSN"
-
-msgid "manager.setup.onlineAccessManagement"
-msgstr "Adgang til forlagsindhold"
-
-msgid "manager.setup.numPageLinks.description"
-msgstr ""
-"Begræns antallet af links, der skal vises til efterfølgende sider på en "
-"liste."
-
-msgid "manager.setup.numPageLinks"
-msgstr "Sidelinks"
-
-msgid "manager.setup.noUseProofreaders"
-msgstr ""
-"En redaktør eller sektionsredaktør tilknyttet indsendelsen tjekker "
-"publiceringsversionerne."
-
-msgid "manager.setup.noUseLayoutEditors"
-msgstr ""
-"En redaktør eller sektionsredaktør tilknyttet indsendelsen vil forberede "
-"HTML, PDF og evt. andre filer."
-
-msgid "manager.setup.noUseCopyeditors"
-msgstr ""
-"Manuskriptredigering foretages af en redaktør eller sektionsredaktør "
-"tilknyttet indsendelsen."
-
-msgid "manager.setup.notifyAllAuthorsOnDecision"
-msgstr ""
-"Når du anvender e-mailen 'Underet forfatter', skal du inkludere e-mail-"
-"adresserne til samtlige medforfattere, når indsendelser har flere "
-"forfattere, og ikke kun underrette den bruger, der har stået for "
-"indsendelsen."
-
-msgid "manager.setup.note"
-msgstr "Note"
-
-msgid "manager.setup.noStyleSheetUploaded"
-msgstr "Intet stylesheet uploadet."
-
-msgid "manager.setup.noImageFileUploaded"
-msgstr "Ingen billedfil uploadet."
-
-msgid "manager.setup.masthead.success"
-msgstr "Detaljer om forlagets kolofon er blevet opdateret."
-
-msgid "manager.setup.managementOfBasicEditorialSteps"
-msgstr "Håndtering af de grundlæggende redaktionelle trin"
-
-msgid "manager.setup.managingThePress"
-msgstr "Trin 4. Håndtering af indstillingerne"
-
-msgid "manager.setup.managingPublishingSetup"
-msgstr "Håndtering af publiceringsopsætning"
-
-msgid "manager.setup.management.description"
-msgstr ""
-"Adgang og sikkerhed, planlægning, meddelelser, redigering, layout og "
-"korrekturlæsning."
-
-msgid "manager.setup.settings"
-msgstr "Indstillinger"
-
-msgid "manager.setup.look.description"
-msgstr ""
-"Hjemmesidens header, indhold, forlagets sidehoved, bundtekst, navigationsbar "
-"og stylesheet."
-
-msgid "manager.setup.look"
-msgstr "Udseende (Look & Feel)"
-
-msgid "manager.setup.lists.success"
-msgstr "Listeindstillingerne er blevet opdateret."
-
-msgid "manager.setup.lists"
-msgstr "Lister"
-
-msgid "manager.setup.layoutTemplates.title"
-msgstr "Titel"
-
-msgid "manager.setup.layoutTemplates.file"
-msgstr "Skabelonfil"
-
-msgid "manager.setup.layoutTemplatesDescription"
-msgstr ""
-"Skabeloner kan uploades så de vises under layout til hvert af de "
-"standardformater, der bliver publiceret hos forlaget (f.eks. monografi, "
-"boganmeldelse osv.) og til et hvilket som helst filformat (f.eks. pdf, doc "
-"osv.) med tilføjede kommentarer og angivelse af skrifttype, størrelse, "
-"marginer osv., så det kan fungere som en vejledning for layoutredaktører og "
-"korrekturlæsere."
-
-msgid "manager.setup.layoutTemplates"
-msgstr "Layoutskabeloner"
-
-msgid "manager.setup.layoutInstructionsDescription"
-msgstr ""
-"Layoutinstruktioner til formatering af forlagets publiceringsmateriale kan "
-"forberedes og indtastes nedenfor i HTML eller klartekst. De vil blive gjort "
-"tilgængelige for layoutredaktør og sektionsredaktør på "
-"manuskriptredigeringssiden i forbindelse med hver indsendelse. (Da hvert "
-"forlag kan vælge sine egne filformater, bibliografiske standarder, "
-"stylesheets osv., leveres der ikke en standardinstruktion.)"
-
-msgid "manager.setup.layoutInstructions"
-msgstr "Layoutinstruktioner"
-
-msgid "manager.setup.layoutAndGalleys"
-msgstr "Layoutredaktører"
-
-msgid "manager.setup.labelName"
-msgstr "Etiketnavn"
-
-msgid "manager.setup.keyInfo.description"
-msgstr ""
-"Giv en kort beskrivelse af dit forlag og angiv redaktører, administrerende "
-"medarbejdere og andre medlemmer af den redaktionelle gruppe."
-
-msgid "manager.setup.keyInfo"
-msgstr "Nøgleinformation"
-
-msgid "manager.setup.itemsPerPage.description"
-msgstr ""
-"Begræns antallet af elementer (f.eks. indsendelser, brugere eller "
-"redigeringsopgaver), der skal vises på en liste, før de efterfølgende "
-"elementer vises på en anden side."
-
-msgid "manager.setup.itemsPerPage"
-msgstr "Elementer per side"
-
-msgid "manager.setup.institution"
-msgstr "Institution"
-
-msgid "manager.setup.information.success"
-msgstr "Informationen om forlaget blev opdateret."
-
-msgid "manager.setup.information.forReaders"
-msgstr "Til læsere"
-
-msgid "manager.setup.information.forLibrarians"
-msgstr "Til bibliotekarer"
-
-msgid "manager.setup.information.forAuthors"
-msgstr "Til forfattere"
-
-msgid "manager.setup.information.description"
-msgstr ""
-"Kort beskrivelse af forlaget for bibliotekarer og potentielle forfattere og "
-"læsere. Denne gøres tilgængelig i webstedets sidefelt, når "
-"informationsblokken er tilføjet."
-
-msgid "manager.setup.information"
-msgstr "Information"
-
-msgid "manager.setup.identity"
-msgstr "Forlagsidentitet"
-
-msgid "manager.setup.preparingWorkflow"
-msgstr "Trin 3. Forbered workflowet"
-
-msgid "manager.setup.guidelines"
-msgstr "Retningslinjer"
-
-msgid "manager.setup.gettingDownTheDetails"
-msgstr "Trin 1. Få styr på detaljerne"
-
-msgid "manager.setup.generalInformation"
-msgstr "Generel information"
-
-msgid "manager.setup.form.supportNameRequired"
-msgstr "Supportnavnet er påkrævet."
-
-msgid "manager.setup.form.supportEmailRequired"
-msgstr "Support-e-mailen er påkrævet."
-
-msgid "manager.setup.form.numReviewersPerSubmission"
-msgstr "Antallet af bedømmere per indsendelse er påkrævet."
-
-msgid "manager.setup.form.contactNameRequired"
-msgstr "Det primære kontaktnavn er påkrævet."
-
-msgid "manager.setup.form.contactEmailRequired"
-msgstr "Den primære e-mail kontakt er påkrævet."
-
-msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
-msgstr ""
-"OMP overholder "
-"Open Archives Initiative Protocol for Metadata Harvesting, som er den "
-"nye standard, der skal sørge for velindekseret adgang til elektroniske "
-"forskningsressourcer på verdensplan. Forfatterne vil bruge en lignende "
-"skabelon til at knytte metadata til deres indsendelse. Forlagschefen skal "
-"vælge kategorierne til indeksering og vise forfattere relevante eksempler "
-"for at hjælpe dem med at indeksere deres arbejde, idet termer adskilles med "
-"et semikolon (f.eks. term1; term2). Eksemplerne skal vises ved at indlede "
-"med \"F.eks.\" eller \"For eksempel\"."
-
-msgid "manager.setup.forAuthorsToIndexTheirWork"
-msgstr "For forfattere til indeksering af deres værker"
-
-msgid "manager.setup.focusScopeDescription"
-msgstr "EXAMPLE HTML DATA"
-
-msgid "manager.setup.focusScope"
-msgstr "Fokusområde"
-
-msgid "manager.setup.focusAndScope.description"
-msgstr ""
-"Beskriv over for forfattere, læsere og bibliotekarer udvalget af monografier "
-"og andre publikationer som forlaget vil offentliggøre."
-
-msgid "manager.setup.focusAndScope"
-msgstr "Forlagets fokusområde"
-
-msgid "manager.setup.enableUserRegistration"
-msgstr "Besøgende kan oprette en brugerkonto hos forlaget."
-
-msgid "manager.setup.enablePublicGalleyId"
-msgstr ""
-"Brugerdefinerede identifikatorer bruges til at identificere "
-"publiceringsversioner (f.eks. HTML- eller PDF-filer) for offentliggjort "
-"indhold."
-
-msgid "manager.setup.enablePublicMonographId"
-msgstr ""
-"Brugerdefinerede identifikatorer bruges til at identificere offentliggjort "
-"indhold."
-
-msgid "manager.setup.enablePressInstructions"
-msgstr "Offentliggør dette forlag på webstedet"
-
-msgid "manager.setup.numAnnouncementsHomepage.description"
-msgstr ""
-"Hvor mange meddelelser, der skal vises på hjemmesiden. Lad dette felt være "
-"tomt, hvis ingen skal vises."
-
-msgid "manager.setup.numAnnouncementsHomepage"
-msgstr "Vis på hjemmesiden"
-
-msgid "manager.setup.enableAnnouncements.description"
-msgstr ""
-"Meddelelser kan offentliggøres for at informere læserne om nyheder og "
-"begivenheder. Publicerede meddelelser vises på siden Meddelelser."
-
-msgid "manager.setup.enableAnnouncements.enable"
-msgstr "Aktivér meddelelser"
-
-msgid "manager.setup.emailSignature.description"
-msgstr ""
-"De forberedte e-mails, der sendes af systemet på vegne af forlaget, tilføjes "
-"følgende signatur ved afslutningen."
-
-msgid "manager.setup.emailSignature"
-msgstr "Signatur"
-
-msgid "manager.setup.emails"
-msgstr "E-mail-identifikation"
-
-msgid "manager.setup.searchEngineIndexing.success"
-msgstr "Indstillingerne for søgemaskineindekset er opdateret."
-
-msgid "manager.setup.searchEngineIndexing.description"
-msgstr ""
-"Hjælp søgemaskiner som Google med at finde og vise dit websted. Du opfordres "
-"til at indsende dit sitemap."
-
-msgid "manager.setup.searchEngineIndexing"
-msgstr "Søgeindeksering"
-
-msgid "manager.setup.searchDescription.description"
-msgstr ""
-"Giv en kort beskrivelse (50-300 tegn) af forlaget, som søgemaskinerne kan "
-"vise, når forlaget vises i søgeresultaterne."
-
-msgid "manager.setup.reviewProcessStandardDescription"
-msgstr ""
-"Redaktører sender en e-mail til udvalgte bedømmere indeholdende "
-"manuskriptets titel og resumé samt en invitation til at logge ind på "
-"forlagets websted for at færdiggøre bedømmelsen. Bedømmere går ind på "
-"forlagets websted accepterer at foretage bedømmelsen, downloade "
-"indsendelser, indsende deres kommentarer og vælge en anbefaling."
-
-msgid "manager.setup.reviewProcessStandard"
-msgstr "Standardbedømmelsesproces"
-
-msgid "manager.setup.reviewProcessEmail"
-msgstr "E-mail-baseret bedømmelsesproces"
-
-msgid "manager.setup.reviewProcessDescription"
-msgstr ""
-"OMP understøtter to modeller til styring af bedømmelsesprocessen. Det "
-"anbefales at anvende standardbedømmelsesprocessen, fordi den trinvis leder "
-"bedømmere gennem processen, sikrer en komplet gennemgangshistorik for hver "
-"indsendelse og drager fordel af automatisk påmindelsesmeddelelse og "
-"standardanbefalinger i forbindelse med manuskriptet (Acceptér; Rettelser er "
-"påkrævet; Fremsend igen til bedømmelse; Fremsend igen til andet sted/anden "
-"bedømmer; Afvis; Se kommentarer).
Vælg en af følgende:"
-
-msgid "manager.setup.copyrightNotice.sample"
-msgstr ""
-"Forslag til Creative Commons copyright-meddelelser
\n"
-"Forslag til politik for forlag, der tilbyder Open Access
\n"
-"Forfattere, der udgiver på dette forlag, accepterer følgende vilkår:\n"
-"\n"
-"- Forfattere beholder copyright og giver forlaget ret til første "
-"offentliggørelse af værket samtidig med, at det licenseres under en "
-"Creative Commons Attribution Licens , der giver andre mulighed for at "
-"dele værket med en anerkendelse af værkets forfatterskab og indledende "
-"publicering hos dette forlag.
\n"
-"- Forfattere har tilladelse til at indgå separate, nye kontraktlige "
-"udgivelser til ikke-eksklusiv udbredelse af versionen af det arbejde, som "
-"forlaget har udgivet (f.eks. sende det til et institutionelt repository "
-"eller offentliggøre det i en bog), med en anerkendelse af dens første "
-"offentliggørelse hos dette forlag.
\n"
-"- Forfattere har tilladelse og opfordres til at sende deres arbejde online "
-"(f.eks. i institutionelle repositorier eller på deres hjemmeside) før og "
-"under indsendelsesprocessen, da det kan føre til produktiv udveksling, samt "
-"tidligere og flere citationer i offentliggjorte arbejder (Se Effekten "
-"af Open Access).
\n"
-"
\n"
-"\n"
-"Forslag til politik for forlag, der tilbyder forsinket Open Access
\n"
-"Forfattere, der udgiver på dette forlag, accepterer følgende vilkår:\n"
-"\n"
-"- Forfattere beholder copyright og giver forlaget retten til første "
-"offentliggørelse af værket [FASTSÆT TIDSPERODE] samtidig med at det "
-"licenseres under en Creative Commons Attribution License, der giver "
-"andre mulighed for at dele værket med en anerkendelse af værkets "
-"forfatterskab og indledende publicering hos dette forlag.
\n"
-"- Forfattere har tilladelse til at indgå separate, nye kontraktlige "
-"udgivelser til ikke-eksklusiv udbredelse af versionen af det arbejde, som "
-"forlaget har udgivet (f.eks. sende det til et institutionelt repository "
-"eller offentliggøre det i en bog), med en anerkendelse af dens første "
-"offentliggørelse hos dette forlag.
\n"
-"- Forfattere har tilladelse og opfordres til at sende deres arbejde online "
-"(f.eks. i institutionelle repositorier eller på deres hjemmeside) før og "
-"under indsendelsesprocessen, da det kan føre til produktiv udveksling, samt "
-"tidligere og flere citationer i offentliggjorte arbejder (Se Effekten "
-"af Open Access ).
\n"
-"
"
-
-msgid "manager.files.note"
-msgstr ""
-"Bemærk: Filbrowseren er en avanceret funktion, der gør det muligt direkte at "
-"se og manipulere filer og mapper knyttet til et forlag."
-
-msgid "manager.setup.productionTemplates"
-msgstr "Produktionsskabeloner"
-
-msgid "manager.setup.files"
-msgstr "Filer"
-
-msgid "manager.setup.editorialTeam.description"
-msgstr ""
-"Liste over redaktører, ledelse og andre personer, der er tilknyttet forlaget."
-
-msgid "manager.setup.editorialTeam"
-msgstr "Redaktionelt hold"
-
-msgid "manager.setup.masthead"
-msgstr "Kolofon"
-
-msgid "manager.setup.internalReviewRoles"
-msgstr "Interne bedømmerroller"
-
-msgid "manager.setup.currentRoles"
-msgstr "Aktuelle roller"
-
-msgid "manager.setup.availableRoles"
-msgstr "Tilgængelige roller"
-
-msgid "manager.setup.managerialRoles"
-msgstr "Administrative roller"
-
-msgid "manager.setup.authorRoles"
-msgstr "Forfatterroller"
-
-msgid "manager.setup.roleType"
-msgstr "Rolletype"
-
-msgid "manager.setup.reviewForms"
-msgstr "Bedømmelsesformularer"
-
-msgid "manager.setup.series.description"
-msgstr ""
-"Du kan oprette et vilkårligt antal serier, der hjælper med at organisere "
-"dine publikationer. En serie repræsenterer et specielt sæt bøger, der er "
-"tilknyttet et tema eller emner, som nogen har foreslået, ofte et "
-"fakultetsmedlem, og som vedkommende derefter fører tilsyn med. Besøgende vil "
-"være i stand til at søge i og gennemse forlaget via serie."
-
-msgid "manager.setup.categories.description"
-msgstr ""
-"Du kan oprette en liste over kategorier, der hjælper med at organisere dine "
-"publikationer. Kategorier kan være grupperinger af bøger efter emne, for "
-"eksempel økonomi; litteratur; poesi; osv. Kategorier kan være indlejret "
-"under \"overordnede\" kategorier: For eksempel kan en hovedkategori for "
-"økonomi omfatte individuelle mikro-økonomiske og makro-økonomiske "
-"kategorier. Besøgende vil være i stand til at søge i og gennemse forlaget "
-"via kategorier."
-
-msgid "manager.setup.categoriesAndSeries"
-msgstr "Kategorier og serier"
-
-msgid "manager.setup.currentFormats"
-msgstr "Aktuelle formater"
-
-msgid "manager.setup.issnDescription"
-msgstr ""
-"ISSN (International Standard Serial Number) er et ottecifret nummer, der "
-"identificerer periodiske publikationer inklusive elektroniske serier. Et "
-"nummer kan fås fra ISSN "
-"International Center."
-
-msgid "manager.setup.submitToSeries"
-msgstr "Tillad serieindsendelser"
-
-msgid "manager.setup.submitToCategories"
-msgstr "Tillad kategoriindsendelser"
-
-msgid "manager.setup.prospectusDescription"
-msgstr ""
-"Prospektvejledningen er et dokument udarbejdet af forlaget, der skal hjælpe "
-"forfatteren med at beskrive de indsendte materialer på en måde, der giver et "
-"forlag mulighed for at bestemme værdien af indsendelsen. Et prospekt kan "
-"omfatte en mængde aspekter - fra marketingspotentiale til teoretisk værdi. "
-"Under alle omstændigheder bør et forlag oprette en prospektvejledning, der "
-"supplerer deres publiceringsagende."
-
-msgid "manager.setup.prospectus"
-msgstr "Prospektvejledning"
-
-msgid "manager.setup.restoreDefaults"
-msgstr "Gendan standardindstillinger"
-
-msgid "manager.setup.deleteSelected"
-msgstr "Slet det valgte"
-
-msgid "manager.setup.newGenreDescription"
-msgstr ""
-"For at oprette en ny genre skal du udfylde nedenstående formular og klikke "
-"på knappen 'Opret'."
-
-msgid "manager.setup.newGenre"
-msgstr "Ny monografigenre"
-
-msgid "manager.setup.genres"
-msgstr "Genre"
-
-msgid "manager.setup.reviewProcessEmailDescription"
-msgstr ""
-"Redaktører sender bedømmere anmodningen om at stå for bedømmelsen med "
-"indsendelsen vedhæftet e-mailen. Bedømmere e-mailer redaktører deres "
-"samtykke (eller beklagelse) såvel som bedømmelsen og anbefalingen. "
-"Redaktører går ind og ser bedømmernes samtykke (eller beklagelse) samt "
-"bedømmelsen og anbefaling på indsendelsens bedømmelsesside for at registrere "
-"bedømmelsesprocessen."
-
-msgid "manager.setup.genresDescription"
-msgstr ""
-"Disse genrer bruges til filnavngivning og præsenteres i en rullemenu i "
-"forbindelse med upload af filer. Genrerne benævnt ## giver brugeren mulighed "
-"for at knytte filen til enten hele bogen 99Z eller et bestemt kapitel efter "
-"nummer (f.eks. 02)."
-
-msgid "manager.setup.newPublicationFormatDescription"
-msgstr ""
-"For at oprette et nyt publiceringsformat skal du udfylde nedenstående "
-"formular og klikke på knappen 'Opret'."
-
-msgid "manager.setup.publicationFormat.inUse"
-msgstr ""
-"Da dette publiceringsformat i øjeblikket er knyttet til en af forlagets "
-"monografier, kan det ikke slettes."
-
-msgid "manager.setup.newPublicationFormat"
-msgstr "Nyt publiceringsformat"
-
-msgid "manager.setup.publicationFormat.physicalFormat"
-msgstr "Er dette et fysisk (ikke-digitalt) format?"
-
-msgid "manager.setup.publicationFormat.nameRequired"
-msgstr "Du skal tildele et navn til dette format."
-
-msgid "manager.setup.publicationFormat.codeRequired"
-msgstr "Et format skal vælges."
-
-msgid "manager.setup.publicationFormat.code"
-msgstr "Format"
-
-msgid "manager.setup.volumePerYear"
-msgstr "Bind per år"
-
-msgid "manager.setup.useTextTitle"
-msgstr "Titeltekst"
-
-msgid "manager.setup.userRegistration"
-msgstr "Brugerregistrering"
-
-msgid "manager.setup.useProofreaders"
-msgstr ""
-"En korrekturlæser vil (sammen med forfatterne) skulle kontrollere "
-"publiceringsversionerne inden publicering."
-
-msgid "manager.setup.useLayoutEditors"
-msgstr ""
-"En layoutredaktør vil blive knyttet til klargøring af HTML, PDF og andre "
-"filer til elektronisk publicering."
-
-msgid "manager.setup.useStyleSheet"
-msgstr "Forlags-stylesheet"
-
-msgid "manager.setup.useImageTitle"
-msgstr "Titelbillede"
-
-msgid "manager.setup.useEditorialReviewBoard"
-msgstr "Et redaktionelt-/bedømmelses-udvalg vil være knyttet til forlaget."
-
-msgid "manager.setup.useCopyeditors"
-msgstr "En manuskriptredaktør vil blive knyttet til hver indsendelse."
-
-msgid "manager.setup.typeProvideExamples"
-msgstr ""
-"Giv eksempler på relevante forskningstyper, metoder og tilgange på dette felt"
-
-msgid "manager.setup.typeMethodApproach"
-msgstr "Type (metode/fremgangsmåde)"
-
-msgid "manager.setup.typeExamples"
-msgstr ""
-"(F.eks. historisk undersøgelse; kvasi-eksperimentel; litterær analyse; "
-"meningsmåling/interview)"
-
-msgid "manager.setup.submissions.description"
-msgstr ""
-"Forfattervejledninger, copyright og indeksering (inklusiv registrering)."
-
-msgid "manager.setup.workflow"
-msgstr "Workflow"
-
-msgid "maganer.setup.submissionChecklistItemRequired"
-msgstr "Tjeklisteindhold er påkrævet."
-
-msgid "manager.setup.submissionPreparationChecklist"
-msgstr "Tjekliste til forberedelse af indsendelse"
-
-msgid "manager.setup.submissionGuidelines"
-msgstr "Retningslinjer for indsendelse"
-
-msgid "manager.setup.subjectProvideExamples"
-msgstr "Giv eksempler på nøgleord eller emner som vejledning til forfattere"
-
-msgid "manager.setup.subjectKeywordTopic"
-msgstr "Nøgleord"
-
-msgid "manager.setup.subjectExamples"
-msgstr "(F.eks., fotosyntese; sorte huller; firfarveproblemet; Bayes' teorem)"
-
-msgid "manager.setup.stepsToPressSite"
-msgstr "Fem trin til et forlagswebsted"
-
-msgid "manager.setup.siteAccess.viewContent"
-msgstr "Se monografiindhold"
-
-msgid "manager.setup.siteAccess.view"
-msgstr "Webstedsadgang"
-
-msgid "manager.setup.showGalleyLinksDescription"
-msgstr "Vis altid links til publiceringsversion og angiv begrænset adgang."
-
-msgid "manager.setup.selectSectionDescription"
-msgstr ""
-"Forlagssektionen som vil blive taget i betragtning i forbindelse dette "
-"indlæg."
-
-msgid "manager.setup.selectEditorDescription"
-msgstr "Forlagsredaktøren, der vil følge det gennem den redaktionelle proces."
-
-msgid "manager.setup.securitySettings.note"
-msgstr ""
-"Andre sikkerheds- og adgangsrelaterede indstillinger kan konfigureres fra "
-"siden "
-"Adgang og sikkerhed."
-
-msgid "manager.setup.securitySettings"
-msgstr "Adgangs- og sikkerhedsindstillinger"
-
-msgid "manager.setup.sectionsDescription"
-msgstr ""
-"Hvis du vil oprette eller ændre sektioner til forlaget (f.eks. monografier, "
-"boganmeldelser osv.), Skal du gå til Sektionsstyring.
"
-"Forfattere, der sender indlæg til forlaget, vil udpege ..."
-
-msgid "manager.setup.sectionsDefaultSectionDescription"
-msgstr ""
-"(Hvis sektioner ikke er tilføjet, sendes poster som standard til afsnittet "
-"'Monografier'.)"
-
-msgid "manager.setup.sectionsAndSectionEditors"
-msgstr "Sektioner og sektionsredaktører"
-
-msgid "stats.publications.abstracts"
-msgstr "Katalogindgange"
-
-msgid "stats.publications.countOfTotal"
-msgstr "{$count} af {$total} monografier"
-
-msgid "stats.publications.totalGalleyViews.timelineInterval"
-msgstr "Komplet filvisning efter dato"
-
-msgid "stats.publications.totalAbstractViews.timelineInterval"
-msgstr "Komplet katalogvisning efter dato"
-
-msgid "stats.publications.none"
-msgstr ""
-"Der blev ikke fundet nogen monografier med brugsstatistikker, der matcher "
-"disse parametre."
-
-msgid "stats.publications.details"
-msgstr "Monografidetaljer"
-
-msgid "stats.publicationStats"
-msgstr "Monografistatistikker"
-
-msgid "grid.series.urlWillBe"
-msgstr "Seriens URL vil blive: {$sampleUrl}"
-
-msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
-msgstr "Vælg den kategori, som du ønsker, at dette menupunkt skal linke til."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.category"
-msgstr "Vælg kategori"
-
-msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
-msgstr "Vælg den serie, som du ønsker, at dette menupunkt skal linke til."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.series"
-msgstr "Vælg serier"
-
-msgid "grid.series.pathExists"
-msgstr "Seriestien findes allerede. Indtast en unik sti."
-
-msgid "grid.series.pathAlphaNumeric"
-msgstr "Seriestien må kun bestå af bogstaver og tal."
-
-msgid "manager.setup.notifications.copyPrimaryContact"
-msgstr ""
-"Send en kopi til den primære kontaktperson, der er registreret i "
-"forlagsindstillinger."
-
-msgid "grid.genres.title"
-msgstr "Monografikomponenter"
-
-msgid "grid.genres.title.short"
-msgstr "Komponenter"
-
-msgid "manager.setup.resetPermissions.success"
-msgstr "Monografitilladelser blev nulstillet."
-
-msgid "manager.setup.resetPermissions.description"
-msgstr ""
-"Copyright-erklæring og licensoplysninger vil permanent være knyttet til "
-"allerede publiceret materiale, hvilket sikrer, at disse data ikke ændres i "
-"tilfælde af forlaget skifter politik i forbindelse med nye indsendelser. For "
-"at nulstille gemte tilladelsesdata knyttet til det allerede publicerede "
-"materiale anvendes knappen herunder."
-
-msgid "manager.setup.resetPermissions.confirm"
-msgstr ""
-"Er du sikker på, at du vil nulstille tilladelsesdata, der allerede er "
-"knyttet til monografier?"
-
-msgid "manager.setup.resetPermissions"
-msgstr "Nulstil monografitilladelser"
-
-msgid "manager.publication.library"
-msgstr "Forlagsbibliotek"
-
-msgid "manager.setup.referenceLinkingDescription"
-msgstr ""
-"For at gøre det muligt for læsere at finde onlineversioner af det af en "
-"forfatter citerede værk, er følgende indstillinger tilgængelige.
\n"
-"\n"
-"\n"
-" - Tilføj et læseværktøj
Forlagschefen kan tilføje \""
-"Find referencer\" til læseværktøjerne, der ledsager publiceret materiale, "
-"som gør det muligt for læsere at indsætte en references titel og derefter "
-"søge efter det citerede materiale i forudvalgte videnskabelige "
-"databaser.
\n"
-" - Indsæt links i referencerne
Layoutredaktøren kan "
-"tilføje et link til referencer, der kan findes online ved hjælp af følgende "
-"instruktioner (som kan redigeres).
\n"
-"
"
-
-msgid "manager.setup.basicEditorialStepsDescription"
-msgstr ""
-"Trin: Indsendelseskø > Indsendelsesbedømmelse > Indsendelsesredigering "
-"> Indholdsfortegnelse.
\n"
-"Vælg en model til håndtering af disse trin i den redaktionelle proces. (Gå "
-"til Redaktører under Forlagsadministration for at udpege en hovedredaktør og "
-"serieredaktører.)"
-
-msgid "manager.setup.pressThumbnail.description"
-msgstr ""
-"Et lille logo eller repræsentation af forlaget, der kan bruges i oversigter "
-"over forlag."
-
-msgid "manager.setup.pressThumbnail"
-msgstr "Forlagsminiaturebillede"
-
-msgid "manager.setup.disableSubmissions.description"
-msgstr ""
-"Afhold brugere fra at sende nye indlæg til forlaget. Indsendelser kan "
-"deaktiveres for individuelle forlagsserier på siden "
-"forlagsserier ."
-
-msgid "manager.setup.disableSubmissions.notAccepting"
-msgstr ""
-"Dette forlag accepterer ikke indsendelser på nuværende tidspunkt. Gå til "
-"workflow-indstillingerne for at tillade indsendelser."
-
-msgid "manager.series.confirmDeactivateSeries.error"
-msgstr ""
-"Mindst én serie skal være aktiv. Gå til workflow-indstillingerne for at "
-"deaktivere alle indsendelser til dette forlag."
-
-msgid "plugins.importexport.native.exportSubmissions"
-msgstr "Eksporter indsendelser"
-
-msgid "plugins.importexport.common.invalidXML"
-msgstr "Ugyldig XML:"
-
-msgid "plugins.importexport.common.error.validation"
-msgstr "Kunne ikke konvertere valgte objekter."
-
-msgid "plugins.importexport.common.error.noObjectsSelected"
-msgstr "Ingen objekter er blevet valgt."
diff --git a/locale/da_DK/manager.xml b/locale/da_DK/manager.xml
deleted file mode 100644
index 3be5436e42d..00000000000
--- a/locale/da_DK/manager.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-
-
-
-
-
-
- Dette erstatter alle lokalitetsspecifikke forlagsindstillinger, du havde i tilknytning til dette sprog (lokalitet)
- Beklager, ingen yderligere sprog er tilgængelige. Kontakt din websteds-administrator, hvis du ønsker at bruge flere sprog i forbindelse med dette forlag.
- Dette vil være standardsproget for forlags-sitet.
- Sørg for, at der mindst er markeret et afkrydsningsfelt for hver serieredaktør-tildeling.
- Sørg for, at du har valgt en gyldig bedømmelsesformular.
- Vil ikke være med i forlagenes indeksering
- Elementer kan kun indsendes af redaktører og serieredaktører.
- Er du sikker på, at du vil slette denne serie permanent?
- Indekseret
- Åben indsendelse
- Læseværktøjer
- Vil ikke blive fagfællebedømt
- Indsendelser foretaget til denne serie
- Kræver ikke resume
- Deaktiver læserkommentarer i forbindelse denne serie
- Bogserie
- Opret serie
- Seriebeskrivelse
- Redaktører til denne serie
- Serieredaktører /a> under Roller i forlagsadministration.]]>
- Undlad denne serie i Om forlaget.
- Tilgængelige serieredaktører
- En forkortet titel til serien er påkrævet.
- En titel til serien er påkrævet.
- Der er ikke oprettet nogen serier.
- Eksisterende brugere
- Serietitel
- Tillad ikke forfattere at sende direkte til denne serie.
- Generelle indstillinger
- Betalinger vil blive aktiveret i forbindelse med dette forlag. Bemærk, at brugerne skal logge på for at foretage betalinger.
- Indstillinger
- Forlagsindstillinger
- Forlag
- ONIX metadata. Medtag dem, hvis du ønsker at offentliggøre ONIX-metadata.]]>
- Forlagets udgivernavn
- Geografisk placering
- Udgiverkode
- Type for udgiverkode
- Hvis du har en kode til dit udgivernavn, skal du udfylde den nedenfor. Det vil blive inkluderet i genererede metadata. Feltet er påkrævet, hvis du genererer ONIX-metadata til dine publikationer.
- Alle indstillinger, der er specifikke for distributionsprocessen (notifikation, indeksering, arkivering, betaling, læseværktøjer).
- Download af monografi-fil
- Visninger af monografisk resumeside
- Monografisk resume og downloads
- Visninger af en series hovedside
- Visninger af et forlags hovedside
- Begræns resultater efter kontekst (serie og/eller monografi).
- Begræns resultater efter objekttype (forlag, serie, monografi, filtyper) og/eller efter et eller flere objekt-id(er).
- Værktøjer
- Alle værktøjer, der er specifikke i forbindelse med import og eksport af data (forlag, monografier, brugere)
- Værktøjer til at generere rapporter relateret til brugsstatistikker (visning af katalogindeks-side, visning af resume-sider, download af monografi-filer)
- Brugeradministration
- Tilgængelige roller
- Aktuelle roller
- Vælg rolle
- Brugere tilmeldt dette forlag
- Alle forlag
- Tilmeld en bruger fra dette site til dette forlag
- Alle tilmeldte brugere
- Vil du fjerne denne bruger fra dette forlag? Denne handling vil fjerne brugeren fra alle roller tilknyttet dette forlag.
- Tilmeld en eksisterende bruger
- Med forlag
- Vælg en bruger, der skal sammenflettes med en anden brugerkonto (f.eks. når en bruger har to brugerkonti). Den førstvalgte konto bliver slettet, og dens indsendelser, opgaver osv. lægges under den anden konto.
- Vælg en bruger, som den forrige brugers forfatterskaber, redigeringsopgaver osv. skal lægges ind under.
- Tilmeldingssynkronisering tilmelder alle brugere, der er tilmeldt den nævnte rolle hos det specificerede forlag, til en og samme rolle hos dette forlag. Denne funktion gør det muligt at synkronisere et fælles sæt brugere (f.eks. bedømmere) mellem de enkelte forlag.
- Deaktiver denne bruger? Dette forhindrer brugeren i at logge ind i systemet.
-
-Du kan eventuelt give brugeren en grund til at vedkommendes konto deaktiveres.
-
-Brugeren er en webstedsadministrator
-Brugeren er aktiv hos de forlag, du ikke administrerer
-
-Denne opgave skal udføres af en webstedsadministrator.]]>
- Systemindstillinger
- Arkivering
- Bedømmelsesformularer
- Læseværktøjer
- Betalinger
- Du har ikke tilstrækkelige brugerrettigheder til at administrere dette plugin.
- Forlagsadministration
- Opsætning
- Indhold
- Tilføj 'Om'-element
- Tilføj tjeklisteelementer
- Tilføj elementer
- Tilføj element, der skal vises i "Om forlaget"
- Tilføj element
- Tilføj sponsororganisation
- Meddelelser
- Meddelelser kan offentliggøres for at informere læserne om nyheder og begivenheder. Publicerede meddelelser vises på siden Meddelelser.
- Yderligere Information
- Indtast yderligere oplysninger, der skal vises for læserne på siden 'Meddelelser'.
- (Vises i 'Om forlaget')
- Manuskriptredaktører
- Anvisninger til manuskriptredaktører
- Anvisningerne til manuskriptredaktørerne stilles til rådighed for manuskriptredaktører, forfattere og sektionredaktører under redigeringsfasen. Nedenfor er et standardsæt med instruktioner i HTML, som til enhver tid kan ændres eller erstattes af forlagschefen (i HTML eller almindelig tekst).
- Oplysninger om ophavsret
- Dækningsområde
-
- Brugerdefinerede tags
- Brugerdefinerede HTML-header-tags, der skal indsættes i headeren på hver side (f.eks. META-tags).
- Detaljer
- Forlaget navn, kontakter, sponsorer og søgemaskiner.
- Forlagschefen registrerer alle brugerkonti. Redaktører eller sektionsredaktører kan registrere brugerkonti for bedømmere.
- Akademisk fagområde og underdiscipliner
- Nyttig, når forlaget krydser faggrænser og/eller forfattere indsender tværfagligt indhold.
- (F.eks. Historie; Uddannelse; Sociologi; Psykologi; Kulturstudier; Jura)
- Giv eksempler på relevante akademiske fagområder i forbindelse med dette forlag
- Tilføj indholdsfortegnelsen til den aktuelle monografi (hvis tilgængelig).
- Hjemmesideindhold
- Vis fremhævede bøger på startsiden.
- Vis spotlight-bøger på hjemmesiden.
- Vis nye udgivelser på hjemmesiden
- DOI-præfiks
- CrossRef og er i formatet 10.xxxx (f.eks. 10.1234).]]>
- Redaktørbeslutning
- Bounce-adresse
- Eventuelle e-mails, der ikke kan leveres, resulterer i en fejlmeddelelse til denne adresse.
- Bemærk: For at aktivere denne indstilling skal webstedsadministratoren aktivere indstillingen allow_envelope_sender i OMP-konfigurationsfilen. Yderligere serverkonfiguration kræves muligvis for at understøtte denne funktionalitet (som muligvis ikke er mulig på alle servere), som angivet i OMP-dokumentationen.]]>
- E-mail-identifikation
- Signatur
- De forud formulerede e-mails, der sendes af systemet på vegne af forlaget, tilføjes følgende signatur til slut.
- Aktiver meddelelser
- Vis
- af de seneste meddelelser på forlagets hjemmeside.
- Offentliggør dette forlag på webstedet
- Brugerdefinerede identifikatorer vil blive brugt til at identificere offentliggjort indhold.
- Brugerdefinerede identifikatorer vil blive brugt til at identificere publiceringsversioner (f.eks. HTML- eller PDF-filer) i det publicerede indhold.
- Besøgende kan registrere en brugerkonto hos forlaget.
- Forlagets fokusområde
- Beskriv for forfattere, læsere og bibliotekarer udvalget af monografier og andet indhold, som forlaget vil offentliggøre.
- Fokusområde
- EXAMPLE HTML DATA]]>
- Til brug for forfattere i forbindelse med indeksering af deres arbejde
- Open Archives Initiative-protokollen i forbindelse med Metadata Harvesting, som er den nye standard til levering af en velindekseret adgang til elektroniske forskningsressourcer på verdensplan. Forfatterne vil bruge en lignende skabelon til at levere metadata til deres indsendelse. Forlagschefen skal vælge kategorierne til indeksering og præsentere relevante eksempler for forfattere for at hjælpe dem med at indeksere deres arbejde. Termer adskilles med en semikolon (f.eks. term 1; term2). Indgangene skal introduceres som eksempler ved at bruge "F.eks" eller "For eksempel".]]>
- Den primære kontaktpersons e-mail er påkrævet.
- Den primære kontaktpersons navn er påkrævet.
- Forlagets navn er påkrævet.
- Antallet af bedømmere pr. Indsendelse er påkrævet.
- Support-e-mail er påkrævet
- Supportnavn er påkrævet
- Forlagets initialer er påkrævet.
- Generel information
- Trin 1. Indskriv detaljerne
- Retningslinjer
- Trin 3. Forberedelse af workflowet
- Korte beskrivelser af forlaget til bibliotekarer og potentielle forfattere og læsere. Beskirivelserne bliver gjort tilgængelige i webstedets sidemenu, når Informationsfunktionen er tilføjet.
- Til Forfattere
- Til bibliotekarer
- Til læsere
- Institution
- Mærkenavn
- Layoutredaktører
- Layout-vejledninger
- Layout-vejledninger kan forberedes og indsættes i forbindelse med formatering af indhold, der senere skal publiceres. Vejledningerne lægges ind nedenfor i HTML eller almindelig tekst. De vil blive gjort tilgængelige for layoutredaktør og sektionsredaktør på redigeringssiden til hver indsendelse. (Da hvert forlag kan anvende sine egne filformater, bibliografiske standarder, typografiark osv., leveres der her ikke et sæt standardinstruktioner).
- Layoutskabeloner
- Skabeloner kan uploades så de vises i Layout for hvert af de standardformater, som forlaget har offentliggjort (f.eks. monografi, bogbedømmelse osv.) og ethvert filformat (f.eks. pdf, doc osv.) med tilføjede kommentarer, der angiver skrifttype, størrelse , marginer osv. så det fungerer som en guide til layoutredaktører og korrekturlæsere.
- Skabelonfil
- Titel
- Lister
- Begræns antallet af poster (f.eks. indsendelser, brugere eller redigeringsopgaver), der skal vises på en liste, før de efterfølgende poster vises på en anden side. Begræns også antallet af links, der skal vises på de efterfølgende siders lister.
-
- Homepage-sidens sidehoved, indhold, forlagets sidehoved, sidefod, navigationmenu og style sheet.
- Indstillinger
- Adgang og sikkerhed, planlægning, meddelelser, manuskriptredigering, layout og korrekturlæsning.
- Administration af grundlæggende redaktionelle trin
- Administrations- og publiceringsopsætning
- Trin 4. Håndtering af indstillinger
- Ingen billedfil uploadet.
- Intet style sheet uploadet.
- Note
- Når du bruger 'Underret forfatter-e-mailen', skal du, på de indsendelser, der har flere forfattere, inkludere e-mail-adresserne på alle medforfattere og ikke kun e-mail-adressen på den, der indsender manuskriptet.
- Manuskriptredigering vil blive foretaget af en redaktør eller sektioneditor, der har fået tildelt indsendelsen.
- En redaktør eller sektionsredaktør, der har fået tildelt indsendelsen klargør publiceringsfilerne (HTML-, PDF- osv.).
- En redaktør eller sektionsredaktør, der er blevet tildelt indsendelsen, kontrollerer publiceringsfilerne.
- Sidelinks
- Adgang til forlagsindhold
- Online ISSN
- Politikker
- Fokus, peer review, sektioner, erklæring om beskyttelse af personlige oplysninger, sikkerhed og ekstra indhold under 'Om'.
- Forskellige komponenter, der indgår i opbygningen af udseendet af forlagssiderne kan konfigureres fra denne side, inklusiv sidehoved- og sidefodselementer, forlagets stil og layout-tema, og måden hvorpå lister med information præsenteres for brugerne.
- Forlagsresume
- En kort beskrivelse af dit forlag.
- Om forlaget
- Medtag alle oplysninger om dit forlag, som kan være af interesse for læsere, forfattere eller bedømmere. Dette kan omfatte din open access-politik, fokusområde, ophavsret, sponsoreringer, forlagets historie og en erklæring om beskyttelse af personlige oplysninger.
- Forlagsarkivering
- Forlagets homepage-indhold
- Forlagets hjemmeside består i standardopsætningen af navigationslink. Yderligere hjemmesideindhold kan tilføjes ved hjælp af en eller flere af følgende indstillinger, som optræder i den viste rækkefølge.
- Forlagets homepage-indhold
- Forlagets hjemmeside består i standardopsætningen af navigationslink. Yderligere hjemmesideindhold kan tilføjes ved hjælp af en eller flere af følgende indstillinger, som optræder i den viste rækkefølge.
- Forlagsinitialer
- Forlags-layout
- Forlagets sidehoved
- Trin 2. Forlags-politikker
- Forlagsopsætning
- Din forlagsopsætning er blevet opdateret.
- Ugyldigt style sheet. Accepteret format er .css.
- Forlagets layout-tema
- Forlagsnavn
- Print ISSN
- Korrekturvejledning
- Korrekturlæsnings-vejledningen stilles til rådighed for korrekturlæsere, forfattere, layout-redaktører og sektionsredaktører i redigeringsfasen. Nedenfor findes et standardsæt med vejledninger i HTML, som, til enhver tid, kan redigeres eller erstattes af forlagschefen (i HTML eller almindelig tekst).
- Korrekturlæsere
- Lever vejledning til layout-redaktører.
- Forlagsindhold kan offentliggøres samlet som en del af en monografi med egen indholdsfortegnelse. Alternativt kan enkelte dele af indhold offentliggøres, så snart de er klar, ved at tilføje dem til det "aktuelle" binds indholdsfortegnelse. Giv læserne i 'Om forlaget' en redegørelse for det system, dette forlag vil bruge, og dets forventede udgivelsesfrekvens.
- Udgiver
- Navnet på den organisation, der står bag forlaget, vises i Om forlaget.
- Reference-linking
- Layout-vejledning i forbindelse med reference-linking
- Brugere skal være registreret og logget på for at se indhold med åben adgang.
- Brugere skal være registreret og logget på for at se forlagets hjemmesider.
- Retningslinjer for eksterne bedømmere
- Sørg får at eksterne bedømmere får en vejledning i, hvordan de bedømmer om en indsendelse er egnet til publicering hos forlaget. I vejledningen kan der indgå en instruktion i hvordan en effektiv og nyttig bedømmelse forberedes. Bedømmere vil have mulighed for at videregive kommentarer til forfatteren og redaktøren samt separate kommentarer til redaktøren.
- Retningslinjer for interne bedømmere
- Ligesom i retningslinjerne for ekstern bedømmelse, vil disse instruktioner give bedømmere oplysninger om hvordan en indsendelsen skal vurderes. Denne vejledning er til bedømmere, der generelt agerer som interne bedømmere for forlaget.
- Bedømmelsesmuligheder
- Automatiske e-mail-påmindelser
- scheduled_tasks i OMP-konfigurationsfilen. Yderligere serverkonfiguration kræves muligvis for at understøtte denne funktionalitet (som måske ikke er mulig på alle servere), som angivet i OMP-dokumentationen.]]>
- Blind Review
- Redaktører vurderer bedømmere på en fem-trins kvalitetskala efter hver gennemgang.
- Bedømmere har kun adgang til indsendelsesfilen, når de har accepteret at gennemføre bedømmelsen.
- Bedømmeradgang
- Aktiver adgang for bedømmere ved hjælp af ét klik.
- Bemærk: E-mail-invitationen til bedømmere vil indeholde en speciel URL, der bringer inviterede bedømmere direkte til indsendelsens redaktionelle bedømmelsesside (med adgang til andre sider, der kræver login). Af sikkerhedsmæssige årsager kan redaktører, i denne sammenhæng, ikke ændre e-mail-adresser eller tilføje CC'er eller BCC'er, før de sender invitationer til bedømmere.]]>
- Bedømmervurderinger
- Bedømmer-påmindelser
- Indsæt link til "Sikring af blind review" på sider, hvor forfattere og bedømmere uploader filer.
- Bedømmelsespolitikker
- Bedømmelsesproces
-
Vælg en af følgende:]]>
- Email-Attachment Review Process
- Standard Review Process
- Redaktører sender en e-mail til udvalgte bedømmere med titel og abstrakt samt en invitation til at logge ind på forlagets website for at gennemføre anmeldelsen. Bedømmere går ind på forlagets website for at tilkendegive om de vil give en bedømmelse, downloade indsendelser, indsende deres kommentarer og vælge en anbefaling.
- Søgemaskineindeksering
- Giv en kort beskrivelse af forlaget, som søgemaskiner kan vise, når forlaget vises i søgeresultaterne.
- Sektioner og sektionsredaktører
- (Hvis sektioner ikke er tilføjet, sendes poster som standard til sektionen 'Monografier').
-
Forfattere vil, ved indsendelse af poster til forlaget, udpege...]]>
- Adgangs- og sikkerhedsindstillinger
- Adgang og sikkerhed page.]]>
- Forlagsredaktøren, der vil følge det gennem den redaktionelle proces.
- Sektionen, som indlægget vil blive set i forhold til.
- Vis altid links til publiceringsfiler og angiv begrænset adgang.
- Yderligere adgangsbegrænsninger til website og indhold
- Fem trin til et forlags-websted
- (F.eks. Fotosyntese; sorte huller; bayesisk teori)
- Nøgleord
- Giv eksempler på nøgleord eller emner som vejledning for forfattere
- Indsendelsesvejledning
- Tjekliste til forberedelse af manuskript
- Tjeklisteindhold er påkrævet.
- Workflow
- Retningslinjer for forfattere, ophavsret og indeksering (inklusiv registrering).
- Miniaturebillede af bogomslag
- Indstil maksimal bredde og højde på miniaturebillederne af bogomslagene. Hvis de er større ændres de til disse indstillinger, men hvis de er mindre forstørres de ikke. Billederne strækkes aldrig for at passe til disse dimensioner.
- Maks. højde
- Der kræves en maksimal højde på miniaturebilledet af bogomslag.
- Maks. bredde
- Der kræves en maksimal bredde på miniaturebilledet til bogomslag.
- Ændre størrelse på alle eksisterendeminiaturebilleder til bogomslag.
- (F.eks. historisk undersøgelse; kvasi-eksperimentel; litterær analyse; undersøgelse/interview)
- Type (metode/fremgangsmåde)
- Giv eksempler på relevante forskningstyper, metoder og tilgange til dette felt
- En manuskriptredaktør vil blive knyttet til redigeringen af hver indsendelse.
- Et rådgivende udvalg dækkende det redaktionelle og bedømmelsesmæssige område vil blive tilknyttet forlaget.
- Titelbillede
- Forlags style sheet
- Der vil blive tilknyttet en layoutredaktør der vil klargøre HTML, PDF og andre filtyper til elektronisk publicering.
- Der vil blive tilknyttet en korrekturlæser der sammen med forfatterne vil tjekke publiceringsfilerne inden udgivelsen.
- Brugerregistrering
- Titeltekst
- Bind per år
- Format
- Der skal vælges et format.
- Du skal tildele et navn til dette format.
- Er dette et fysisk (ikke-digitalt) format?
- Da dette publikationsformat i øjeblikket bruges af en af forlagets monografier, kan det ikke slettes.
- Nyt publiceringsformat
- For at oprette et nyt publikationsformat skal du udfylde nedenstående formular og klikke på knappen "Opret".
- Disse genrer bruges til filnavngivning og præsenteres i en rullemenu i forbindelse med upload af filer. Genrene, der er betegnet ##, giver brugeren mulighed for at knytte filen til enten hele bogen 99Z eller et bestemt kapitel efter nummer (f.eks. 02).
- Redaktører sender bedømmere anmodningen om at foretage en bedømmelse med indsendelsen vedhæftet e-mailen. Bedømmere sender e-mail til redaktører med deres godkendelse (eller indvendinger) sammen med gennemgangen og anbefalingen. Redaktører indsætter bedømmernes godkendelse (eller indvendinger) såvel som gennemgang og anbefalinger i forbindelse med indsendelsen på den redaktionelle bedømmelsesside for at registrere bedømmelsesprocessen.
- Genre
- Nye monografigenre
- For at oprette en ny genre skal du udfylde nedenstående formular og klikke på knappen "Opret".
- Slet valgte
- Gendan standardindstillinger
- Prospektvejledning
- Prospektvejledningen er et dokument udarbejdet af forlaget, der hjælper forfatteren med at beskrive de indsendte materialer på en måde, der giver et forlag mulighed for at bestemme værdien af indsendelsen. Et prospekt kan omfatte mange elementer - fra markedsføringspotentiale til teoretisk værdi. Under alle omstændigheder bør et forlag oprette en prospektvejledning, der supplerer deres udgivelsesprogram.
- Tillad kategori-indsendelser
- Tillad serie-indsendelser
- ISSN International Center.]]>
- Katalogisering af metadata
- Aktuelle formater
- Kategorier og serier
- Du kan oprette en liste over kategorier, der hjælper med at organisere dine publikationer. Kategorier er grupperinger af bøger efter emne, for eksempel økonomi; litteratur; poesi osv. Kategorier kan være indlejret inden for "overordnede" kategorier, for eksempel kan en hovedkategori for økonomi omfatte individuelle mikroøkonomiske og makroøkonomiske kategorier. Besøgende vil være i stand til at søge og gennemse pressen efter kategori.
- Du kan oprette et vilkårligt antal serier, der hjælper med at organisere dine publikationer. En serie repræsenterer et specielt sæt bøger, der knytter sig til et tema eller emner, som nogen måtte have foreslået, normalt et fakultetsmedlem eller to, der derefter fører tilsyn med indholdet. Besøgende vil være i stand til at søge og gennemse forlaget efter serie ..
- Bedømmelsesformularer
- Rolletyper
- Forfatterroller
- Administrerende roller
- Tilgængelige roller
- Aktuelle roller
- Interne bedømmelsesroller
- Kolofon
- Redaktionel gruppe
- Liste over redaktører, administrerende ledere og andre personer, der er tilknyttet forlaget
- Filer
- Produktionsskabeloner
- Bemærk: Filbrowseren er en avanceret funktion, der gør det muligt at se filer og mapper, der er knyttet til et forlag, med det formål at se og håndtere dem direkte.
- Proposed Creative Commons Copyright Notices
-Proposed Policy for Presses That Offer Open Access
-Authors who publish with this press agree to the following terms:
-
- - Authors retain copyright and grant the press right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this press.
- - Authors are able to enter into separate, additional contractual series for the non-exclusive distribution of the version of the work published by the press (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this press.
- - Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).
-
-
-Proposed Policy for Presses That Offer Delayed Open Access
-Authors who publish with this press agree to the following terms:
-
- - Authors retain copyright and grant the press right of first publication, with the work [SPECIFY PERIOD OF TIME] after publication simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this press.
- - Authors are able to enter into separate, additional contractual series for the non-exclusive distribution of the version of the work published by the press (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this press.
- - Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).
-
]]>
-
-Vælg en model til håndtering af disse dele af den redaktionelle proces. (Hvis du vil udpege en administrerende redaktør og serieredaktører, skal du gå til Redaktører under forlagsadministration.)]]>
- For at gøre det muligt for læsere at finde online-versioner af det af en forfatter citerede værk er følgende indstillinger tilgængelige.
-
-
-- Tilføj et læseværktøj
Forlagschefen kan tilføje "Find referencer" til læseværktøjerne, der følger med publiceret indhold, og som gør det muligt for læsere at indsætte en references titel og derefter søge i forudvalgt videnskabeligt baserede databaser efter det citerede arbejde.
-- Integrer links i referencerne
Layoutredaktøren kan tilføje et link til referencer, der kan findes online ved hjælp af følgende instruktioner (som kan redigeres).
-
]]>
- Forlagsbibliotek
- Nulstil monografi-tilladelser
- Er du sikker på, at du vil nulstille data-tilladelses, der allerede er knyttet til monografier?
- Ophavsretlig erklæring og licensoplysninger vil blive vedhæftet permanent til publiceret indhold, hvilket sikrer, at disse data ikke ændres i tilfælde af forlagspolitiske ændringer for nye indsendelser. For at nulstille gemte tilladelsesoplysninger, der allerede er knyttet til publiceret indhold, skal du bruge knappen nedenfor.
- Komponenter
- Monografikomponenter
- Send en kopi til den primære kontaktperson, der er registreret i forlagets web-indstillinger.
- Seriestien skal kun bestå af bogstaver og tal.
- Seriestien findes allerede. Indtast en unik sti.
- Vælg serie
- Vælg den serie, som du ønsker, at dette menupunkt skal linke til.
- Vælg kategori
- Vælg den kategori, som du ønsker, at dette menupunkt skal linke til.
- Seriens URL vil være: {$sampleUrl}
- Monografidetaljer
- Ingen monografier blev fundet
- Samlede resume-visninger for hver monografi efter dato
-
diff --git a/locale/da_DK/submission.po b/locale/da_DK/submission.po
deleted file mode 100644
index c2dfef62633..00000000000
--- a/locale/da_DK/submission.po
+++ /dev/null
@@ -1,488 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-11-28T15:10:05-08:00\n"
-"PO-Revision-Date: 2020-11-27 19:05+0000\n"
-"Last-Translator: Niels Erik Frederiksen \n"
-"Language-Team: Danish \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 "submission.submit.title"
-msgstr "Indsend en monografi"
-
-msgid "submission.upload.selectComponent"
-msgstr "Vælg komponent"
-
-msgid "submission.title"
-msgstr "Bogtitel"
-
-msgid "submission.select"
-msgstr "Vælg indsendelse"
-
-msgid "submission.synopsis"
-msgstr "Synopsis"
-
-msgid "submission.workflowType"
-msgstr "Indsendelsestype"
-
-msgid "submission.workflowType.description"
-msgstr "En monografi er et værk, der helt igennem er skrevet af en eller flere forfattere. Et redigeret værk har forskellige forfattere til hvert enkelt kapitel (med kapiteloplysninger indtastet senere i denne proces.)"
-
-msgid "submission.workflowType.editedVolume"
-msgstr "Redigeret værk: Forfattere er knyttet til deres eget kapitel."
-
-msgid "submission.workflowType.authoredWork"
-msgstr "Monografi: Forfattere er forbundet med bogen som helhed."
-
-msgid "submission.editorName"
-msgstr "{$editorName} (ed)"
-
-msgid "submission.published"
-msgstr "Klar til produktion"
-
-msgid "submission.fairCopy"
-msgstr "Renskrift"
-
-msgid "submission.authorListSeparator"
-msgstr "; "
-
-msgid "submission.artwork.permissions"
-msgstr "Tilladelser"
-
-msgid "submission.chapter"
-msgstr "Kapitel"
-
-msgid "submission.chapters"
-msgstr "Kapitler"
-
-msgid "submission.chaptersDescription"
-msgstr "Du kan opstille en liste over kapitlerne her og tilknytte forfattere fra listen over bidragydere ovenfor. Disse forfattere kan få adgang til kapitlet i forskellige faser af den redaktionelle proces."
-
-msgid "submission.chapter.addChapter"
-msgstr "Tilføj kapitel"
-
-msgid "submission.chapter.editChapter"
-msgstr "Redigér kapitel"
-
-msgid "submission.chapter.pages"
-msgstr "Sider"
-
-msgid "submission.copyedit"
-msgstr "Manuskriptredigering"
-
-msgid "submission.publicationFormats"
-msgstr "Publikationsformater"
-
-msgid "submission.proofs"
-msgstr "Korrekturer"
-
-msgid "submission.download"
-msgstr "Download"
-
-msgid "submission.sharing"
-msgstr "Del dette"
-
-msgid "manuscript.submission"
-msgstr "Manuskriptindsendelse"
-
-msgid "submission.round"
-msgstr "Runde {$round}"
-
-msgid "submissions.queuedReview"
-msgstr "Til bedømmelse"
-
-msgid "manuscript.submissions"
-msgstr "Manuskriptindsendelser"
-
-msgid "submission.confirmSubmit"
-msgstr "Er du sikker på, at du ønsker at indsende dette manuskript til forlaget?"
-
-msgid "submission.metadata"
-msgstr "Metadata"
-
-msgid "submission.supportingAgencies"
-msgstr "Støtteinstanser"
-
-msgid "grid.action.addChapter"
-msgstr "Opret et nyt kapitel"
-
-msgid "grid.action.editChapter"
-msgstr "Redigér dette kapitel"
-
-msgid "grid.action.deleteChapter"
-msgstr "Slet dette kapitel"
-
-msgid "submission.submit"
-msgstr "Påbegynd ny indsendelse af bog"
-
-msgid "submission.submit.newSubmissionMultiple"
-msgstr "Påbegynd en ny indsendelse i"
-
-msgid "submission.submit.newSubmissionSingle"
-msgstr "Ny indsendelse"
-
-msgid "submission.submit.upload"
-msgstr "Upload indsendelse"
-
-msgid "submission.submit.cancelSubmission"
-msgstr "Du kan afslutte denne indsendelse på et senere tidspunkt ved at vælge aktive indsendelser fra forfatterens webside."
-
-msgid "submission.submit.selectSeries"
-msgstr "Vælg serie (valgfrit)"
-
-msgid "author.submit.seriesRequired"
-msgstr "En gyldig serie er påkrævet."
-
-msgid "submission.submit.seriesPosition"
-msgstr "Seriens position"
-
-msgid "submission.submit.seriesPosition.description"
-msgstr "Eksempler: Bog 2, bind 2"
-
-msgid "submission.submit.form.localeRequired"
-msgstr "Vælg et indsendelsessprog."
-
-msgid "submission.submit.privacyStatement"
-msgstr "Erklæring om beskyttelse af personlige oplysninger"
-
-msgid "submission.submit.contributorRole"
-msgstr "Bidragyderens rolle"
-
-msgid "submission.submit.form.authorRequired"
-msgstr "Der kræves mindst en forfatter."
-
-msgid "submission.submit.form.authorRequiredFields"
-msgstr "Forfatterens fornavn, efternavn og e-mail-adresse er påkrævet."
-
-msgid "submission.submit.form.titleRequired"
-msgstr "Indtast titlen på din monografi."
-
-msgid "submission.submit.form.abstractRequired"
-msgstr "Indsæt et kort resumé over din monografi."
-
-msgid "submission.submit.form.contributorRoleRequired"
-msgstr "Vælg bidragyderens rolle."
-
-msgid "submission.submit.submissionFile"
-msgstr "Indsendelsesfil"
-
-msgid "submission.submit.prepare"
-msgstr "Forbered"
-
-msgid "submission.submit.catalog"
-msgstr "Katalog"
-
-msgid "submission.submit.metadata"
-msgstr "Metadata"
-
-msgid "submission.submit.finishingUp"
-msgstr "Færdiggør"
-
-msgid "submission.submit.confirmation"
-msgstr "Bekræftelse"
-
-msgid "submission.submit.nextSteps"
-msgstr "Næste trin"
-
-msgid "submission.submit.coverNote"
-msgstr "Følgeskrivelse til redaktør"
-
-msgid "submission.submit.generalInformation"
-msgstr "Generel information"
-
-msgid "submission.submit.whatNext.description"
-msgstr "Forlaget har fået besked om din indsendelse, og du har modtaget en e-mail med en bekræftelse for modtagelse af din indsendelse. Når redaktøren har gennemgået indsendelsen, vil du blive kontaktet."
-
-msgid "submission.submit.checklistErrors"
-msgstr ""
-"Læs og tjek alle punkter på indsendelsestjeklisten Der er {$itemsRemaining} "
-"punkter, der ikke er markeret."
-
-msgid "submission.submit.placement"
-msgstr "Indsendelsesplacering"
-
-msgid "submission.submit.userGroup"
-msgstr "Indsend i min rolle som ..."
-
-msgid "submission.submit.userGroupDescription"
-msgstr "Hvis du sender et redigeret værk, bør du vælge redaktørrollen."
-
-msgid "grid.chapters.title"
-msgstr "Kapitler"
-
-msgid "grid.copyediting.deleteCopyeditorResponse"
-msgstr "Slet upload fra manuskriptredaktør"
-
-msgid "submission.complete"
-msgstr "Godkendt"
-
-msgid "submission.incomplete"
-msgstr "Afventer godkendelse"
-
-msgid "submission.editCatalogEntry"
-msgstr "Indgang"
-
-msgid "submission.catalogEntry.new"
-msgstr "Tilføj indgang"
-
-msgid "submission.catalogEntry.add"
-msgstr "Føj valgte til katalog"
-
-msgid "submission.catalogEntry.select"
-msgstr "Vælg de monografier, der skal føjes til kataloget"
-
-msgid "submission.catalogEntry.selectionMissing"
-msgstr "Du skal vælge mindst en monografi for at foretage en tilføjelse til kataloget."
-
-msgid "submission.catalogEntry.confirm"
-msgstr "Føj denne bog til det offentlige katalog"
-
-msgid "submission.catalogEntry.confirm.required"
-msgstr "Bekræft, at indsendelsen er klar til at blive placeret i kataloget."
-
-msgid "submission.catalogEntry.isAvailable"
-msgstr ""
-"Denne monografi er klar til at blive inkluderet i det offentliggjorte "
-"katalog."
-
-msgid "submission.catalogEntry.viewSubmission"
-msgstr "Se indsendelse"
-
-msgid "submission.catalogEntry.chapterPublicationDates"
-msgstr "Publikationsdato"
-
-msgid "submission.catalogEntry.disableChapterPublicationDates"
-msgstr "Alle kapitler bruger monografiens publiceringsdato."
-
-msgid "submission.catalogEntry.enableChapterPublicationDates"
-msgstr "Hvert kapitel kan have sin egen publikationsdato."
-
-msgid "submission.catalogEntry.monographMetadata"
-msgstr "Monografi"
-
-msgid "submission.catalogEntry.catalogMetadata"
-msgstr "Katalog"
-
-msgid "submission.catalogEntry.publicationMetadata"
-msgstr "Publikationsformat"
-
-msgid "submission.event.metadataPublished"
-msgstr "Monografiens metadata er godkendt til publicering."
-
-msgid "submission.event.metadataUnpublished"
-msgstr "Monografiens metadata er ikke længere publiceret."
-
-msgid "submission.event.publicationFormatMadeAvailable"
-msgstr "Publikationsformatet \"{$publicationFormatName}\" stilles til rådighed."
-
-msgid "submission.event.publicationFormatMadeUnavailable"
-msgstr "Publikationsformatet \"{$publicationFormatName}\" er ikke længere tilgængeligt."
-
-msgid "submission.event.publicationFormatPublished"
-msgstr "Publikationsformatet \"{$publicationFormatName}\" er godkendt til publicering."
-
-msgid "submission.event.publicationFormatUnpublished"
-msgstr ""
-"Publikationsformatet \"{$publicationFormatName}\" er ikke længere "
-"tilgængeligt."
-
-msgid "submission.event.catalogMetadataUpdated"
-msgstr "Katalog-metadata blev opdateret."
-
-msgid "submission.event.publicationMetadataUpdated"
-msgstr "Publikationsformatets metadata til \"{$formatName}\" blev opdateret."
-
-msgid "submission.event.publicationFormatCreated"
-msgstr "Publikationsformatet \"{$formatName}\" blev oprettet."
-
-msgid "submission.event.publicationFormatRemoved"
-msgstr "Publikationsformatet \"{$formatName}\" blev fjernet."
-
-msgid "submission.submit.titleAndSummary"
-msgstr "Titel og resume"
-
-msgid "workflow.review.externalReview"
-msgstr "Ekstern bedømmelse"
-
-msgid "editor.submission.decision.sendExternalReview"
-msgstr "Send til ekstern bedømmelse"
-
-msgid "submission.upload.fileContents"
-msgstr "Indsendelseskomponent"
-
-msgid "submission.dependentFiles"
-msgstr "Afhængige filer"
-
-msgid "submission.metadataDescription"
-msgstr "Disse specifikationer er baseret på Dublin Core-metadatasættet, en international standard, der bruges til at beskrive forlagsindhold."
-
-msgid "section.any"
-msgstr "Enhver serie"
-
-msgid "submission.list.countMonographs"
-msgstr "{$count} monografier"
-
-msgid "submission.list.itemsOfTotalMonographs"
-msgstr "{$count} af {$total} monografier"
-
-msgid "submission.list.orderFeatures"
-msgstr "Bestil funktioner"
-
-msgid "submission.list.orderingFeatures"
-msgstr "Træk og slip eller tryk på op- og ned-knapperne for at ændre rækkefølgen af funktionerne på startsiden."
-
-msgid "submission.list.orderingFeaturesSection"
-msgstr "Træk og slip eller tryk på op- og ned-knapperne for at ændre rækkefølgen af funktionerne i {$title}."
-
-msgid "submission.list.saveFeatureOrder"
-msgstr "Gem rækkefølge"
-
-msgid "catalog.browseTitles"
-msgstr "{$numTitles} titler"
-
-msgid "publication.scheduledIn"
-msgstr "Planlagt til publicering i {$issueName}."
-
-msgid "publication.publish.confirmation"
-msgstr ""
-"Alle publikationskrav er opfyldt. Er du sikker på, at du vil offentliggøre "
-"denne katalogpost?"
-
-msgid "publication.publishedIn"
-msgstr "Publiceret i {$issueName}."
-
-msgid "publication.required.issue"
-msgstr "Publikationen skal tilknyttes et nummer, inden det kan publiceres."
-
-msgid "publication.invalidSeries"
-msgstr "Denne publikations seriebetegnelse blev ikke fundet."
-
-msgid "publication.catalogEntry.success"
-msgstr "Informationer under katalogindgangen er blevet opdateret."
-
-msgid "publication.catalogEntry"
-msgstr "Katalogindgang"
-
-msgid "submission.list.monographs"
-msgstr "Monografier"
-
-msgid "submission.submit.noContext"
-msgstr "Denne indsendelses forlag blev ikke fundet."
-
-msgid "author.isVolumeEditor"
-msgstr "Definér denne bidragyder som værende redaktør af dette bind."
-
-msgid "submission.monograph"
-msgstr "Monografi"
-
-msgid "submission.workflowType.change"
-msgstr "Skift"
-
-msgid "submission.workflowType.editedVolume.label"
-msgstr "Redigeret bind"
-
-msgid "publication.inactiveSeries"
-msgstr "{$series} (Inaktiv)"
-
-msgid "submission.list.viewEntry"
-msgstr "Se post"
-
-msgid "submission.publication"
-msgstr "Publikation"
-
-msgid "publication.status.published"
-msgstr "Publiceret"
-
-msgid "submission.status.scheduled"
-msgstr "Planlagt"
-
-msgid "publication.status.unscheduled"
-msgstr "Ikke planlagt"
-
-msgid "submission.publications"
-msgstr "Publikationer"
-
-msgid "publication.copyrightYearBasis.issueDescription"
-msgstr ""
-"Copyright-året indstilles automatisk, når dette offentliggøres i et nummer."
-
-msgid "publication.copyrightYearBasis.submissionDescription"
-msgstr "Copyright-året indstilles automatisk ud fra publiceringsdatoen."
-
-msgid "publication.datePublished"
-msgstr "Dato publiceret"
-
-msgid "publication.editDisabled"
-msgstr "Denne version er blevet publiceret og kan ikke redigeres."
-
-msgid "publication.event.published"
-msgstr "Indsendelsen blev publiceret."
-
-msgid "publication.event.scheduled"
-msgstr "Indsendelsen var planlagt til publicering."
-
-msgid "publication.event.unpublished"
-msgstr "Indsendelsen blev ikke publiceret."
-
-msgid "publication.event.versionPublished"
-msgstr "En ny version blev publiceret."
-
-msgid "publication.event.versionScheduled"
-msgstr "En ny version var planlagt til publicering."
-
-msgid "publication.event.versionUnpublished"
-msgstr "En version blev fjernet fra publikationen."
-
-msgid "publication.invalidSubmission"
-msgstr "Indsendelsen til denne publikation kunne ikke findes."
-
-msgid "publication.publish"
-msgstr "Publicér"
-
-msgid "publication.publish.requirements"
-msgstr "Følgende krav skal være opfyldt, før dette kan offentliggøres."
-
-msgid "publication.required.declined"
-msgstr "En afvist indsendelse kan ikke offentliggøres."
-
-msgid "publication.required.reviewStage"
-msgstr ""
-"Indsendelsen skal være under manuskriptredigerings- eller "
-"produktionstrinnet, før det kan offentliggøres."
-
-msgid "submission.license.description"
-msgstr ""
-"Licensen indstilles automatisk til {$"
-" licensnavn}, når dette publiceres."
-
-msgid "submission.copyrightHolder.description"
-msgstr "Copyright tildeles automatisk {$copyright}, når dette publiceres."
-
-msgid "submission.copyrightOther.description"
-msgstr ""
-"Tildel copyright i forbindelse med offentliggjorte indsendelser til følgende "
-"gruppe."
-
-msgid "publication.unpublish"
-msgstr "Træk tilbage"
-
-msgid "publication.unpublish.confirm"
-msgstr "Er du sikker på, at du ikke ønsker, at dette skal publiceres?"
-
-msgid "publication.unschedule.confirm"
-msgstr ""
-"Er du sikker på, at du ikke vil have dette planlagt til senere publicering?"
-
-msgid "publication.version.details"
-msgstr "Publikationsoplysninger i forbindelse med version {$version}"
-
-msgid "submission.queries.production"
-msgstr "Drøftelser under produktion"
-
diff --git a/locale/da_DK/submission.xml b/locale/da_DK/submission.xml
deleted file mode 100644
index 952dae49257..00000000000
--- a/locale/da_DK/submission.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-
-
-
-
-
-
- Indsend en monografi
- Vælg komponent
- Bogtitel
- Vælg indsendelse
- Synopsis
- Indsendelsestype
- En monografi er et værk, der helt igennem er skrevet af en eller flere forfattere. Et redigeret værk har forskellige forfattere til hvert enkelt kapitel (med kapiteloplysninger indtastet senere i denne proces.)
- Redigeret værk: Forfattere er knyttet til deres eget kapitel.
- Monografi: Forfattere er forbundet med bogen som helhed.
- Vælg redaktører
- Vælg de forfattere, der skal identificeres som redaktører for hele værket.
- {$editorName} (ed)
- Klar til produktion
- Renskrift
- ;
- Tilladelser
- Kapitel
- Kapitler
- Du kan opstille en liste over kapitlerne her og tilknytte forfattere fra listen over bidragydere ovenfor. Disse forfattere kan få adgang til kapitlet i forskellige faser af den redaktionelle proces.
- Tilføj kapitel
- Rediger kapitel
- Resume
- Sider
- Publiceret
- Manuskriptredigering
- Publikationsformater
- Korrekturer
- Download
- Del dette
- Manuskriptindsendelse
-
- Til bedømmelse
- Manuskriptindsendelser
- Er du sikker på, at du ønsker at indsende dette manuskript til forlaget?
- Metadata
- Støtteinstanser
- Opret et nyt kapitel
- Rediger dette kapitel
- Slet dette kapitel
- Påbegynd ny indsendelse af bog
- Påbegynd en ny indsendelse i
- Ny indsendelse
- Upload indsendelse
- Du kan afslutte denne indsendelse på et senere tidspunkt ved at vælge aktive indsendelser fra forfatterens webside.
- Vælg serie (valgfrit)
- En gyldig serie er påkrævet.
- Seriens position
- Eksempler: Bog 2, bind 2
- Vælg et indsendelsessprog.
- Erklæring om beskyttelse af personlige oplysninger
- Bidragyderens rolle
- Der kræves mindst en forfatter.
- Forfatterens fornavn, efternavn og e-mail-adresse er påkrævet.
- Indtast titlen på din monografi.
- Indsæt et kort resume over din monografi.
- Vælg bidragyderens rolle.
- Indsendelsesfil
- Forbered
- Katalog
- Metadata
- Færdiggør
- Bekræftelse
- Næste trin
- Følgeskrivelse til redaktør
- Generel information
- Forlaget har fået besked om din indsendelse, og du har modtaget en e-mail med en bekræftelse for modtagelse af din indsendelse. Når redaktøren har gennemgået indsendelsen, vil du blive kontaktet.
- Læs og tjek det indsendte i indsendelseslisten. Der er {$itemsRemaining} elementer, der ikke er markeret.
- Indsendelsesplacering
- Indsend i min rolle som ...
- Hvis du sender et redigeret værk, bør du vælge redaktørrollen.
- Kapitler
- Slet upload fra manuskriptredaktør
- Katalogindgang
- Godkendt
- Afventer godkendelse
- Indgang
- Tilføj indgang
- Føj valgte til katalog
- Vælg de monografier der skal tilføjes til kataloget
- Du skal vælge mindst en monografi for at foretage en tilføjelse til kataloget.
- Føj denne bog til det offentlige katalog
- Bekræft, at indsendelsen er klar til at blive placeret i kataloget.
- Denne monografi er klar til at blive inkluderet i det offentlige katalog.
- Se indsendelse
- Publikationsdato
- Alle kapitler bruger monografiens publiceringsdato.
- Hvert kapitel kan have sin egen publikationsdato.
- Monografi
- Katalog
- Publikationsformat
- Monografiens metadata er godkendt til publicering.
- Monografiens metadata er ikke længere publiceret.
- Publikationsformatet "{$publicationFormatName}" stilles til rådighed.
- Publikationsformatet "{$publicationFormatName}" er ikke længere tilgængeligt.
- Publikationsformatet "{$publicationFormatName}" er godkendt til publicering.
- Publikationsformatet "{$publicationFormatName}" is ikke længere tilgængeligt.
- Katalog-metadata blev opdateret.
- Publikationsformatets metadata til "{$formatName}" blev opdateret.
- Publikationsformatet "{$formatName}" blev oprettet.
- Publikationsformatet "{$formatName}" blev fjernet.
- Titel og resume
- Ekstern bedømmelse
- Send til ekstern bedømmelse
- Indsendelseskomponent
- Afhængige filer
- Disse specifikationer er baseret på Dublin Core-metadatasættet, en international standard, der bruges til at beskrive forlagsindhold.
- Enhver serie
- {$count} monografier
- {$count} af {$total} monografier
- Bestil funktioner
- Træk og slip eller tryk på op- og ned-knapperne for at ændre rækkefølgen af funktionerne på startsiden.
- Træk og slip eller tryk på op- og ned-knapperne for at ændre rækkefølgen af funktionerne i {$title}.
- Gem rækkefølge
- {$numTitles} titler
-
diff --git a/locale/de/admin.po b/locale/de/admin.po
new file mode 100644
index 00000000000..e671b4cff5a
--- /dev/null
+++ b/locale/de/admin.po
@@ -0,0 +1,213 @@
+# Pia Piontkowitz , 2021, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2023-04-29 14:49+0000\n"
+"Last-Translator: Pia Piontkowitz \n"
+"Language-Team: German \n"
+"Language: 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 4.13.1\n"
+
+msgid "admin.hostedContexts"
+msgstr "Gehostete Verlage"
+
+msgid "admin.settings.appearance.success"
+msgstr ""
+"Die Einstellungen zum Aussehen der Seite wurden erfolgreich aktualisiert."
+
+msgid "admin.settings.config.success"
+msgstr ""
+"Die Einstellungen zur Konfiguration der Seite wurden erfolgreich "
+"aktualisiert."
+
+msgid "admin.settings.info.success"
+msgstr "Die Seiteninformationen wurden erfolgreich aktualisiert."
+
+msgid "admin.settings.redirect"
+msgstr "Weiterleitung an den Verlag"
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"Auf der Startseite eingehende Fragen werden an diesen Verlag weitergeleitet. "
+"Dies kann beispielsweise eine praktische Lösung sein, wenn die Website nur "
+"einen einzigen Verlag hostet."
+
+msgid "admin.settings.noPressRedirect"
+msgstr "Nicht umleiten"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr ""
+"Dies wird die voreingestellte Sprache für diese Website und alle gehosteten "
+"Verlage sein."
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Wählen Sie alle Regionaleinstellungen aus, die auf dieser Seite unterstützt "
+"werden sollen. Die ausgewählten Regionaleinstellungen werden allen Verlagen, "
+"die von dieser Website gehostet werden, verfügbar gemacht und erscheinen "
+"ebenfalls in einem Sprachauswahlmenü, das auf jeder Seite der Website "
+"erscheinen wird (das Menü kann auf verlagsspezifischen Seiten überschrieben "
+"werden). Wurde nur eine Regionaleinstellung ausgewählt, erscheint weder ein "
+"Sprachwechselblock noch stehen erweiterte Spracheinstellungen zur Verfügung."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "* Die markierten Regionaleinstellungen können unvollständig sein."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"Sind Sie sicher, dass Sie diese Regionaleinstellung deinstallieren möchten? "
+"Dies kann Auswirkungen auf alle Verlage haben, die zurzeit diese "
+"Regionaleinstellung verwenden."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Wählen Sie zusätzliche Regionaleinstellungen (Locales) aus, um deren "
+"Unterstützung in diesem System zu installieren. Locales müssen installiert "
+"sein, bevor sie von den gehosteten Verlagen genutzt werden können. In der "
+"OMP-Dokumentation erhalten Sie weitere Informationen darüber, wie Sie "
+"zusätzliche Unterstützung für neue Sprachen erhalten können."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"Sind Sie sicher, dass Sie diese Regionaleinstellung löschen wollen? Dies "
+"wird alle Verlage auf Ihrer Plattform betreffen, die diese "
+"Regionaleinstellung benutzen."
+
+msgid "admin.systemVersion"
+msgstr "OMP-Version"
+
+msgid "admin.systemConfiguration"
+msgstr "OMP-Konfiguration"
+
+msgid "admin.presses.pressSettings"
+msgstr "Verlagseinstellungen"
+
+msgid "admin.presses.noneCreated"
+msgstr "Es wurden noch keine Verlage angelegt."
+
+msgid "admin.contexts.create"
+msgstr "Verlag anlegen"
+
+msgid "admin.contexts.form.titleRequired"
+msgstr "Die Angabe des Titels ist erforderlich."
+
+msgid "admin.contexts.form.pathRequired"
+msgstr "Die Angabe des Pfades ist erforderlich."
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+"Der Pfad darf nur Buchstaben und Zahlen, Unterstriche und Bindestriche "
+"enthalten und muss mit einem Buchstaben oder einer Zahl beginnen und enden."
+
+msgid "admin.contexts.form.pathExists"
+msgstr "Der ausgewählte Pfad wird bereits von einem anderen Verlag verwendet."
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr ""
+"Die primären Regionaleinstellungen müssen eine der für den Verlag "
+"ausgewählten Regionaleinstellungen (Locales) sein."
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} wurde erfolgreich erstellt."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} wurde erfolgreich bearbeitet."
+
+msgid "admin.contexts.contextDescription"
+msgstr "Verlagsbeschreibung"
+
+msgid "admin.presses.addPress"
+msgstr "Verlag hinzufügen"
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"Beachten Sie:
\n"
+"Das System konnte die Konfigurationsdatei nicht automatisch "
+"überschreiben. Um Ihre Änderungen der Konfiguration anzuwenden, öffnen Sie "
+"config.inc.php mit einem geeigneten Texteditor und ersetzen Sie den "
+"Inhalt durch den Text im nachstehenden Textfeld.
"
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+"Wählen Sie die gehosteten Verlage, die Massen-E-Mails senden dürfen. Wenn "
+"dieses Feature aktiviert ist, kann ein/e Verlagsmanager/in eine E-Mail an "
+"alle registrierten Nutzer/innen des Verlags schicken.
Der Missbrauch "
+"dieses Features um ungebetene E-Mails zu verschicken kann gegen Anti-Spam "
+"Gesetze verstoßen und dazu führen, dass E-Mails Ihres Servers als Spam "
+"blockiert werden. Erbitten Sie sich technische Hilfe, bevor Sie dieses "
+"Feature aktivieren und ziehen Sie es in Erwägung, mit Verlagsmanager/innen "
+"in Kontakt zu treten um zu vergewisseren, dass dieses Feature für den "
+"beabsichtigten Zweck verwendet wird.
Weitere Einschränkungen dieses "
+"Features können für jeden Verlag im Konfigurationsassistenten in der Liste "
+"der gehosteten Verlage aktiviert werden."
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+"Ein/e Verlagsmanager/in wird keine Massen-E-Mails an die unten ausgewählten "
+"Rollen verschicken können. Benutzen Sie diese Einstellung, um Missbrauch des "
+"Benachrichtigungsfeatures einzuschränken. Es könnte z.B. sicherer sein, "
+"Lesende, Autor/innen, oder weitere große Nutzer/innengruppen, die nicht "
+"zugestimmt haben, solche E-Mails zu erhalten, auszuschließen.
Das "
+"Massen-E-Mail-Feature kann für diesen Verlag unter Administration > Einstellungen der Websitekomplett "
+"deaktiviert werden."
+
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
+"Das Massen-E-Mail-Feature wurde für diesen Verlag deaktiviert. Es kann unter "
+"Administration > Einstellungen der Website"
+"a> aktiviert werden."
+
+msgid "admin.siteManagement.description"
+msgstr ""
+"Verlage hinzufügen, bearbeiten, oder löschen und seitenübergreifende "
+"Einstellungen verwalten."
+
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr "Kapitel ID ist keine ganze Zahl"
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr "Reihen ID ist keine ganze Zahl"
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+"Wählen Sie die Art der geografischen Nutzungsstatistiken, die von Verlagen "
+"auf dieser Website erfasst werden können. Detailliertere geografische "
+"Statistiken können die Größe Ihrer Datenbank beträchtlich erhöhen und in "
+"einigen seltenen Fällen die Anonymität Ihrer Besucher/innen gefährden. Jeder "
+"Verlag kann diese Einstellungen anders konfigurieren, aber ein Verlag kann "
+"niemals detailliertere Datensätze als die hier konfigurierten sammeln. Wenn "
+"die Website zum Beispiel nur Land und Region unterstützt, kann der Verlag "
+"Land und Region oder nur Land auswählen. Der Verlag ist nicht in der Lage, "
+"Land, Region und Ort zu erfassen."
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+"Aktivieren Sie institutionelle Statistiken, wenn Sie möchten, dass die "
+"Verlage auf dieser Website Nutzungsstatistiken nach Institutionen sammeln "
+"können. Die Verlage müssen die Einrichtung und ihre IP Ranges hinzufügen, um "
+"diese Funktion nutzen zu können. Die Aktivierung der institutionellen "
+"Statistiken kann die Größe Ihrer Datenbank beträchtlich erhöhen."
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+"Ob die SUSHI-API-Endpunkte für alle Verlage auf dieser Website öffentlich "
+"zugänglich sein sollen oder nicht. Wenn Sie die öffentliche API aktivieren, "
+"kann jeder Verlag diese Einstellung außer Kraft setzen, um seine Statistiken "
+"privat zu machen. Wenn Sie jedoch die öffentliche API deaktivieren, können "
+"die Verlage ihre eigene API nicht öffentlich machen."
+
+#~ msgid "admin.contexts.confirmDelete"
+#~ msgstr ""
+#~ "Sind Sie sicher, dass Sie diesen Verlag und alle Verlagsinhalte endgültig "
+#~ "löschen möchten?"
+
+#, fuzzy
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr "Website als Plattform für alle Zeitschriften verwenden."
diff --git a/locale/de/api.po b/locale/de/api.po
new file mode 100644
index 00000000000..4fe3212540b
--- /dev/null
+++ b/locale/de/api.po
@@ -0,0 +1,45 @@
+# Pia Piontkowitz , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-04-29 14:49+0000\n"
+"Last-Translator: Pia Piontkowitz \n"
+"Language-Team: German \n"
+"Language: 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 4.13.1\n"
+
+msgid "api.submissions.400.submissionIdsRequired"
+msgstr ""
+"Sie müssen eine oder mehrere Einreichungs-IDs angeben, die in den Katalog "
+"aufgenommen werden sollen."
+
+msgid "api.submissions.400.submissionsNotFound"
+msgstr ""
+"Eine oder mehrere der angegebenen Einreichungen konnte nicht gefunden werden."
+
+msgid "api.submissions.400.wrongContext"
+msgstr "Die angeforderte Einreichung befindet sich nicht in diesem Verlag."
+
+msgid "api.emails.403.disabled"
+msgstr ""
+"Die E-Mail-Benachrichtigungsfunktion wurde für diesen Verlag nicht aktiviert."
+
+msgid "api.emailTemplates.403.notAllowedChangeContext"
+msgstr ""
+"Sie haben keine Berechtigung diese E-Mail-Vorlage zu einem anderen Verlag zu "
+"verschieben."
+
+msgid "api.publications.403.contextsDidNotMatch"
+msgstr "Die Publikation, die Sie suchen, ist nicht Teil dieses Verlags."
+
+msgid "api.publications.403.submissionsDidNotMatch"
+msgstr "Die Publikation, die Sie suchen, ist nicht Teil dieser Einreichung."
+
+msgid "api.submissions.403.cantChangeContext"
+msgstr "Sie können den Verlag einer Einreichung nicht ändern."
+
+msgid "api.submission.400.inactiveSection"
+msgstr "Für diese Rubrik sind keine Einreichungen mehr möglich."
diff --git a/locale/de/author.po b/locale/de/author.po
new file mode 100644
index 00000000000..1daf51745cf
--- /dev/null
+++ b/locale/de/author.po
@@ -0,0 +1,18 @@
+# Pia Piontkowitz , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-04-26 17:49+0000\n"
+"Last-Translator: Pia Piontkowitz \n"
+"Language-Team: German \n"
+"Language: 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 4.13.1\n"
+
+msgid "author.submit.notAccepting"
+msgstr "Dieser Verlag nimmt derzeit keine Einreichungen an."
+
+msgid "author.submit"
+msgstr "Neue Einreichung"
diff --git a/locale/de/default.po b/locale/de/default.po
new file mode 100644
index 00000000000..2ffbd18643d
--- /dev/null
+++ b/locale/de/default.po
@@ -0,0 +1,229 @@
+# Pia Piontkowitz , 2021, 2022, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2023-04-26 17:49+0000\n"
+"Last-Translator: Pia Piontkowitz \n"
+"Language-Team: German "
+"\n"
+"Language: 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 4.13.1\n"
+
+msgid "default.genres.appendix"
+msgstr "Anhang"
+
+msgid "default.genres.bibliography"
+msgstr "Bibliographie"
+
+msgid "default.genres.manuscript"
+msgstr "Buchmanuskript"
+
+msgid "default.genres.chapter"
+msgstr "Kapitelmanuskript"
+
+msgid "default.genres.glossary"
+msgstr "Glossar"
+
+msgid "default.genres.index"
+msgstr "Register"
+
+msgid "default.genres.preface"
+msgstr "Vorwort"
+
+msgid "default.genres.prospectus"
+msgstr "Exposé"
+
+msgid "default.genres.table"
+msgstr "Tabelle"
+
+msgid "default.genres.figure"
+msgstr "Abbildung"
+
+msgid "default.genres.photo"
+msgstr "Foto"
+
+msgid "default.genres.illustration"
+msgstr "Illustration"
+
+msgid "default.genres.other"
+msgstr "Anderes"
+
+msgid "default.groups.name.manager"
+msgstr "Verlagsleiter/in"
+
+msgid "default.groups.plural.manager"
+msgstr "Verlagsleiter/innen"
+
+msgid "default.groups.abbrev.manager"
+msgstr "VL"
+
+msgid "default.groups.name.editor"
+msgstr "Herausgeber/in"
+
+msgid "default.groups.plural.editor"
+msgstr "Herausgeber/innen"
+
+msgid "default.groups.abbrev.editor"
+msgstr "Hrsg"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Reihenherausgeber/in"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Reihenherausgeber/innen"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "RHrsg"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr "Subskriptionsmanager/in"
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr "Subskriptionsmanager/innen"
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr "SubMng"
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Kapitelautor/in"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Kapitelautor/innen"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "KapAu"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Sammelbandherausgeber/in"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Sammelbandherausgeber/innen"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "RHrsg"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+"Autoren sind dazu eingeladen, einen Beitrag bei diesem Verlag "
+"einzureichen. Alle Einreichungen werden von einem/r Redakteur/in daraufhin "
+"geprüft, ob sie den Zielen und dem Umfang dieses Verlages entsprechen. "
+"Diejenigen, die als geeignet erachtet werden, werden zum Peer Review "
+"weitergeleitet, bevor entschieden wird, ob sie angenommen oder abgelehnt "
+"werden.
Vor der Einreichung eines Beitrags sind die Autor/innen dazu "
+"verpflichtet, die Erlaubnis zur Veröffentlichung von Material einzuholen, "
+"das dem Beitrag beigefügt ist, wie Fotos, Dokumente und Datensätze. Alle in "
+"der Einreichung genannten Autor/innen müssen damit einverstanden sein, als "
+"Autor/in genannt zu werden. Gegebenenfalls sollte die Forschung von einer "
+"geeigneten Ethikkommission in Übereinstimmung mit den gesetzlichen "
+"Bestimmungen des Landes, in dem die Studie durchgeführt wurde, genehmigt "
+"werden.
Ein/e Redakteur/in kann eine Einreichung ablehnen, wenn sie "
+"nicht den Mindestqualitätsstandards entspricht. Bitte stellen Sie vor der "
+"Einreichung sicher, dass das Studiendesign und das Forschungsargument "
+"passend strukturiert und formuliert sind. Der Titel sollte prägnant sein und "
+"der Abstract sollte für sich allein stehen können. Dies erhöht die "
+"Wahrscheinlichkeit, dass die Gutachter/innen den Beitrag begutachten wollen. "
+"Wenn Sie sich vergewissert haben, dass Ihr Beitrag diesem Standard "
+"entspricht, folgen Sie bitte der nachstehenden Checkliste, um Ihren Beitrag "
+"vorzubereiten.
"
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+"Alle Einreichungen müssen die folgenden Kriterien erfüllen."
+"p>
- Diese Einreichung erfüllt die Anforderungen, die in den Author Guidelines gelistet sind."
+"li>
- Diese Einreichung wurde weder zuvor veröffentlicht, noch liegt sie "
+"einem anderen Verlag zur Prüfung vor.
- Alle Literaturangaben wurden "
+"auf ihre Richtigkeit und Vollständigkeit überprüft.
- Alle Diagramme "
+"und Abbildungen sind nummeriert und beschriftet.
- Die Erlaubnis zur "
+"Veröffentlichung aller Fotos, Datensätze und sonstiger Materialien, die mit "
+"diesem Beitrag eingereicht wurden, wurde eingeholt.
"
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"Namen und E-Mail-Adressen, die auf dieser Website eingetragen sind, "
+"werden ausschließlich zu den angegebenen Zwecken verwendet und nicht an "
+"Dritte weitergegeben.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"Dieser Verlag bietet freien Zugang (Open Access) zu seinen Inhalten, "
+"entsprechend der Grundannahme, dass die freie öffentliche Verfügbarkeit von "
+"Forschung einem weltweiten Wissensaustausch zugute kommt."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"Sie möchten gerne über die Neuerscheinungen unseres Verlages auf dem "
+"Laufenden gehalten werden? Als registrierte/r Leser/in erhalten Sie von "
+"jeder neu erscheinenden Monographie das Inhaltsverzeichnis per E-Mail "
+"zugeschickt. Folgen Sie dem Registrieren-Link rechts oben auf der Homepage, um sich für "
+"diesen Service anzumelden. Selbstverständlich sichern wir Ihnen zu, dass Ihr "
+"Name und Ihre E-Mail-Adresse nicht zu anderen Zwecken verwendet werden "
+"(siehe Datenschutzerklärung."
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"Haben Sie Interesse, ein Manuskript bei uns einzureichen? Dann möchten wir "
+"Sie auf die Seite Über uns "
+"verweisen. Dort finden Sie die Richtlinien des Verlags. Bitte beachten Sie "
+"auch die Richtlinien für Autor/innen. Autor/innen "
+"müssen sich registrieren, bevor sie ein Buch oder einen Beitrag zu einem "
+"Sammelband einreichen können. Wenn Sie bereits registriert sind, können Sie "
+"sich einloggen und die fünf "
+"\"Schritte zur Einreichung\" abarbeiten."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Wir ermutigen wissenschaftliche Bibliothekar/innen, diesen Verlag in den "
+"digitalen Bestand ihrer Bibliothek aufzunehmen. Bibliotheken können dieses "
+"Open-Source-Publikationssystem außerdem zum Hosting für Verlage einsetzen, "
+"an deren Arbeit ihre Wissenschaftler/innen beteiligt sind (siehe Open Monograph Press)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Externe/r Gutachter/in"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Externe Gutachter/innen"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "ER"
+
+#~ msgid "default.contextSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "Das eingereichte Manuskript wurde nicht bereits vorher veröffentlicht und "
+#~ "liegt zurzeit auch nicht einem anderen Verlag zur Begutachtung vor (oder "
+#~ "es wurde im Feld 'Vermerk für den/die Herausgeber/in\" eine entsprechende "
+#~ "Erklärung dazu abgegeben)."
+
+#~ msgid "default.contextSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "Die eingereichten Dateien liegen im Format Microsoft Word, RTF, "
+#~ "OpenDocument oder WordPerfect vor."
+
+#~ msgid "default.contextSettings.checklist.addressesLinked"
+#~ msgstr "Soweit möglich, wurden den Literaturangaben URLs beigefügt."
+
+#~ msgid "default.contextSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "Der Text ist mit einzeiligen Zeilenabstand in einer 12-Punkt-Schrift "
+#~ "geschrieben; Hervorhebungen sind kursiv gesetzt, auf Unterstreichungen, "
+#~ "wird - mit Ausnahme der URL-Adressen - verzichtet; alle Illustrationen, "
+#~ "Abbildungen und Tabellen stehen an der Stelle im Text, an der sie auch in "
+#~ "der endgültigen Fassung stehen sollen (nicht am Textende)."
+
+#~ msgid "default.contextSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "Der Text entspricht den im Leitfaden für Autor/"
+#~ "innen beschriebenen stilistischen und bibliographischen Anforderungen "
+#~ "(s. den Reiter 'Über uns')."
diff --git a/locale/de/editor.po b/locale/de/editor.po
new file mode 100644
index 00000000000..39421e66ec5
--- /dev/null
+++ b/locale/de/editor.po
@@ -0,0 +1,221 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2021-01-21 15:49+0000\n"
+"Last-Translator: Heike Riegler \n"
+"Language-Team: German \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 "editor.submissionArchive"
+msgstr "Manuskriptarchiv"
+
+msgid "editor.monograph.cancelReview"
+msgstr "Anfrage abbrechen"
+
+msgid "editor.monograph.clearReview"
+msgstr "Gutachter/innen löschen"
+
+msgid "editor.monograph.enterRecommendation"
+msgstr "Empfehlung abgeben"
+
+msgid "editor.monograph.enterReviewerRecommendation"
+msgstr "Empfehlung der Gutachterin/des Gutachters eintragen"
+
+msgid "editor.monograph.recommendation"
+msgstr "Empfehlung"
+
+msgid "editor.monograph.selectReviewerInstructions"
+msgstr ""
+"Wählen Sie oben einen Gutachter/eine Gutachterin aus und klicken Sie auf "
+"'Gutachter/in auswählen'."
+
+msgid "editor.monograph.replaceReviewer"
+msgstr "Gutachter/innen ersetzen"
+
+msgid "editor.monograph.editorToEnter"
+msgstr ""
+"Herausgeber/innen pflegen die Empfehlungen/Kommentare für Gutachter/in ein"
+
+msgid "editor.monograph.uploadReviewForReviewer"
+msgstr "Gutachten hochladen"
+
+msgid "editor.monograph.peerReviewOptions"
+msgstr "Gutachten-Optionen"
+
+msgid "editor.monograph.selectProofreadingFiles"
+msgstr "Korrekturfahnen-Dateien"
+
+msgid "editor.monograph.internalReview"
+msgstr "Interne Begutachtung starten"
+
+msgid "editor.monograph.internalReviewDescription"
+msgstr ""
+"Sie starten hiermit das interne Begutachtungsverfahren. Dateien, die Teil "
+"des eingereichten Manuskripts sind, finden Sie unten aufgelistet und können "
+"von Ihnen zur Begutachtung ausgewählt werden."
+
+msgid "editor.monograph.externalReview"
+msgstr "Externe Begutachtung starten"
+
+msgid "editor.monograph.final.selectFinalDraftFiles"
+msgstr "Endfassungen auswählen"
+
+msgid "editor.monograph.final.currentFiles"
+msgstr "Aktuelle Endfassungen"
+
+msgid "editor.monograph.copyediting.currentFiles"
+msgstr "Aktuelle Dateien"
+
+msgid "editor.monograph.copyediting.personalMessageToUser"
+msgstr "Nachricht an den Benutzer/die Benutzerin"
+
+msgid "editor.monograph.legend.submissionActions"
+msgstr "Einreichungsaktionen"
+
+msgid "editor.monograph.legend.submissionActionsDescription"
+msgstr "Während der Einreichung mögliche Aktionen und Optionen"
+
+msgid "editor.monograph.legend.sectionActions"
+msgstr "Sektionsaktionen"
+
+msgid "editor.monograph.legend.sectionActionsDescription"
+msgstr ""
+"Für eine bestimmte Sektion spezifische Optionen, z.B. Dateien hochladen oder "
+"Benutzer/innen hinzufügen."
+
+msgid "editor.monograph.legend.itemActions"
+msgstr "Auf den Titel bezogene Aktionen"
+
+msgid "editor.monograph.legend.itemActionsDescription"
+msgstr "Für eine individuelle Datei spezifische Aktionen und Optionen."
+
+msgid "editor.monograph.legend.catalogEntry"
+msgstr ""
+"Katalogeintrag anschauen und verwalten (einschließlich Metadaten und Formate)"
+
+msgid "editor.monograph.legend.bookInfo"
+msgstr ""
+"Metadaten, Anmerkungen, Benachrichtigungen sowie das Verlaufsprotokoll zu "
+"einem Manuskript anschauen und verwalten"
+
+msgid "editor.monograph.legend.participants"
+msgstr ""
+"Die an der Manuskriptbearbeitung Beteiligten wie z.B. Autor/innen, Redakteur/"
+"innen, Layouter/innen ansehen und verwalten"
+
+msgid "editor.monograph.legend.add"
+msgstr "Eine Datei in dieser Sektion hochladen"
+
+msgid "editor.monograph.legend.add_user"
+msgstr "Zu dieser Sektion einen Benutzer hinzufügen"
+
+msgid "editor.monograph.legend.settings"
+msgstr ""
+"Ansicht und Zugang zu den Einstellungen, wie zum Beispiel für die "
+"Informations- und Löscheinstellungen"
+
+msgid "editor.monograph.legend.more_info"
+msgstr ""
+"Weitere Informationen: Anmerkungen zu den Dateien, Benachrichtigungsoptionen "
+"und Verlaufsprotokoll"
+
+msgid "editor.monograph.legend.notes_none"
+msgstr ""
+"Datei-Informationen: Anmerkungen, Benachrichtigungsoptionen und "
+"Verlaufsprotokoll (bisher wurden noch keine Anmerkungen hinzufügt)"
+
+msgid "editor.monograph.legend.notes"
+msgstr ""
+"Datei-Informationen: Anmerkungen, Benachrichtigungsoptionen und Verlauf (es "
+"liegen Anmerkungen vor)"
+
+msgid "editor.monograph.legend.notes_new"
+msgstr ""
+"Datei-Informationen: Anmerkungen, Benachrichtigungsoptionen und Verlauf "
+"(seit dem letzten Besuch wurden Anmerkungen hinzugefügt)"
+
+msgid "editor.monograph.legend.edit"
+msgstr "Titel bearbeiten"
+
+msgid "editor.monograph.legend.delete"
+msgstr "Titel entfernen"
+
+msgid "editor.monograph.legend.in_progress"
+msgstr "Aktion wird noch ausgeführt oder ist noch nicht vollständig"
+
+msgid "editor.monograph.legend.complete"
+msgstr "Aktion vollständig"
+
+msgid "editor.monograph.legend.uploaded"
+msgstr "Datei wurde hochgeladen durch die im Spaltentitel angegebene Rolle"
+
+msgid "editor.submission.introduction"
+msgstr ""
+"In der Einreichungsphase bestimmt der zuständige Herausgeber/die zuständige "
+"Herausgeberin nach Prüfung der eingereichten Manuskripte die passende Aktion "
+"aus (über die der Autor/die Autorin grundsätzlich informiert wird): Zur "
+"internen Begutachtung senden (anschließend müssen die für die interne "
+"Begutachtung vorgesehenen Dateien ausgewählt werden); Zur externen "
+"Begutachtung senden (anschließend müssen die für die externe Begutachtung "
+"vorgesehenen Dateien ausgewählt werden); Manuskript annnehmen (anschließend "
+"sind die Dateien für die redaktionelle Bearbeitung auszuwählen) oder "
+"Manuskript ablehnen (das Manuskript wird im Archiv abgelegt)."
+
+msgid "editor.monograph.editorial.fairCopy"
+msgstr "Freigegebene satzfertige Manuskriptfassung"
+
+msgid "editor.monograph.proofs"
+msgstr "Korrekturfahnen"
+
+msgid "editor.monograph.production.approvalAndPublishing"
+msgstr "Freigabe und Veröffentlichung"
+
+msgid "editor.monograph.production.approvalAndPublishingDescription"
+msgstr ""
+"Verschiedene Formate wie zum Beispiel Hardcover, Softcover und digitale "
+"Formate können unten unter 'Formate' hochgeladen werden. Sie können die "
+"Formate-Tabelle als Checkliste verwenden, um zu prüfen, was noch für die "
+"Veröffentlichung im ausgewählten Format getan werden muss."
+
+msgid "editor.monograph.production.publicationFormatDescription"
+msgstr ""
+"Fügen Sie Formate (z.B. digital, Paperback) hinzu, für die der Layouter "
+"Korrekturfahnen zum Korrekturlesen erstellen soll. Die Korrekturdateien"
+"em> müssen als \"akzeptiert\" gekennzeichnet und die Metadaten im "
+"Katalog aufgenommen und zur Veröffentlichung freigegeben worden "
+"sein, damit das Buch als verfügbar angezeigt (das heißt "
+"'veröffentlicht') werden kann."
+
+msgid "editor.monograph.approvedProofs.edit"
+msgstr "Bedingungen für den Download festlegen"
+
+msgid "editor.monograph.approvedProofs.edit.linkTitle"
+msgstr "Bestimmungen festlegen"
+
+msgid "editor.monograph.proof.addNote"
+msgstr "Antwort hinzufügen"
+
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+"Alle Dateien, die schon zu irgendeiner Einreichungsphase hochgeladen worden "
+"sind, können zur Liste der Korrekturfahnen hinzugefügt werden, indem Sie die "
+"Einschließen-Checkbox unten aktivieren und danach auf Suche klicken: Alle "
+"verfügbaren Dateien werden angezeigt und können ausgewählt werden, um sie in "
+"die Liste aufzunehmen."
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+"Der Public Identifier '{$publicIdentifier}' existiert bereits für ein "
+"anderes Objekt desselben Typs. Bitte wählen Sie eindeutige Identifier für "
+"die Objekte des gleichen Typs innerhalb Ihres Verlags."
+
+msgid "editor.submissions.assignedTo"
+msgstr "Einem/r Redakteur/in zugeordnet"
diff --git a/locale/de/emails.po b/locale/de/emails.po
new file mode 100644
index 00000000000..f42434e7c9b
--- /dev/null
+++ b/locale/de/emails.po
@@ -0,0 +1,448 @@
+# Ljiljana Brkić , 2023.
+# Pia Piontkowitz , 2023.
+# Renate Voget , 2024.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2024-08-10 14:40+0000\n"
+"Last-Translator: Renate Voget \n"
+"Language-Team: German \n"
+"Language: 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 4.18.2\n"
+
+msgid "emails.passwordResetConfirm.subject"
+msgstr "Bestätigung der Passwortzurücksetzung"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"Wir haben eine Anfrage erhalten, Ihr Passwort für die Website {$siteTitle} "
+"zurückzusetzen.
\n"
+"
\n"
+"Wenn die Anfrage nicht von Ihnen stammt, ignorieren Sie bitte diese Email "
+"und Ihr Passwort bleibt bestehen. Wenn Sie hingegen Ihr Passwort ändern "
+"möchten, klicken Sie bitte auf den untenstehenden Link:
\n"
+"
\n"
+"Mein Passwort zurücksetzen: {$passwordResetUrl}
\n"
+"
\n"
+"{$siteContactName}"
+
+msgid "emails.passwordReset.subject"
+msgstr ""
+
+msgid "emails.passwordReset.body"
+msgstr ""
+
+msgid "emails.userRegister.subject"
+msgstr "Registrierung bei dem Verlag"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Sie wurden als Benutzer/in für {$contextName} registriert. Mit dieser Email "
+"erhalten Sie Ihren Benutzer/innen-Namen und Ihr Passwort, die Sie für "
+"sämtliche Verlagsarbeiten innerhalb dieser Website benötigen. Sie haben "
+"jederzeit die Möglichkeit, sich als Benutzer/in auszutragen zu lassen. Eine "
+"Nachricht an mich genügt.
\n"
+"
\n"
+"Benutzer/innen-Name: {$recipientUsername}
\n"
+"Passwort: {$password}
\n"
+"
\n"
+"Mit bestem Dank
\n"
+"{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr "Account validieren"
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Sie haben ein Benutzer/innenkonto bei {$contextName} angelegt, aber bevor "
+"Sie es benutzen können, müssen Sie Ihre E-Mail-Adresse bestätigen. Dazu "
+"folgen Sie bitte einfach dem folgenden Link:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Vielen Dank
\n"
+"{$contextSignature}"
+
+msgid "emails.userValidateSite.subject"
+msgstr "Account validieren"
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Sie haben ein Benutzer/innenkonto bei {$siteTitle} angelegt, aber bevor Sie "
+"es benutzen können, müssen Sie Ihre E-Mail-Adresse bestätigen. Dazu folgen "
+"Sie bitte einfach dem folgenden Link:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Vielen Dank
\n"
+"{$siteSignature}"
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Registrierung als Benutzer/in bei {$contextName}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"Angesichts Ihrer Erfahrung haben wir uns erlaubt, Ihren Namen der Gutachter/"
+"innendatenbank von {$contextName} hinzuzufügen. Dies verpflichtet Sie in "
+"keiner Weise, ermöglicht uns aber, Sie um mögliche Gutachten für eine "
+"Einreichung zu bitten. Wenn Sie zu einem Gutachten eingeladen werden, werden "
+"Sie Titel und Abstract des Beitrags sehen können und werden stets selber "
+"entscheiden können, ob Sie der Einladung folgen oder nicht. Sie können zu "
+"jedem Zeitpunkt Ihren Namen von der Gutachter/innenliste entfernen "
+"lassen.
\n"
+"
\n"
+"Wir senden Ihnen einen Benutzer/innennamen und ein Passwort, die sie in "
+"allen Schritten der Zusammenarbeit mit dem Verlag über dessen Website "
+"benötigen. Vielleicht möchten Sie z.B. Ihr Profil inkl. Ihrer "
+"Begutachtungsinteressen aktualisieren.
\n"
+"
\n"
+"Benutzer/innenname: {$recipientUsername}
\n"
+"Passwort: {$password}
\n"
+"
\n"
+"Vielen Dank!
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.subject"
+msgstr ""
+"Sie wurden als Redakteur/in von einer Einreichung bei {$contextName} "
+"zugewiesen"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+" Guten Tag {$recipientName},
der folgende Beitrag wurde Ihnen zur "
+"Durchführung des redaktionellen Prozesses zugewiesen.
{$submissionTitle}
{$authors}
Abstract
{$submissionAbstract} Wenn Sie den "
+"Beitrag für {$contextName} relevant halten, leiten Sie bitte die "
+"Begutachtungsphase ein, indem Sie \"Zur internen Begutachtung senden\" "
+"klicken und anschließend durch Klicken von \"Gutachter/in hinzufügen\" eine/"
+"n Gutachter/in zuweisen.
Wenn hingegen die Einreichung für diesen "
+"Verlag ungeeignet ist, wählen Sie bitte \"Beitrag ablehnen\".
Vielen "
+"Dank im Voraus.
Mit freundlichen Grüßen
{$contextSignature}"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Anfrage zur Begutachtung eines Manuskripts"
+
+#, fuzzy
+msgid "emails.reviewRequest.body"
+msgstr ""
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr "Anfrage zur Begutachtung einer überarbeiteten Einreichung"
+
+#, fuzzy
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr "Anfrage zur Begutachtung eines Manuskripts"
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+"Guten Tag {$recipientName},
\n"
+"dies ist eine freundliche Erinnerung an unsere Bitte an Sie, den Beitrag "
+""{$submissionTitle}," für {$contextName} zu begutachten. Wir "
+"hatten auf Ihre Antwort bis zum {$responseDueDate} gehofft. Diese E-Mail "
+"wurde automatisch erzeugt und mit Verstreichen dieses Datums verschickt.\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Bitte melden Sie sich bei der Webseite der Zeitschrift an, um uns "
+"mitzuteilen, ob Sie die Begutachtung übernehmen werden. Über die Webseite "
+"können Sie auch auf den Beitrag zugreifen und Ihr Gutachten sowie Ihre "
+"Empfehlung hinzufügen.
\n"
+"
\n"
+"Wir benötigen das Gutachten bis zum {$reviewDueDate}.
\n"
+"
\n"
+"URL des Beitrags {$reviewAssignmentUrl}
\n"
+"
\n"
+"Benutzer/inkennung: {$recipientUsername}
\n"
+"
\n"
+"Vielen Dank, dass Sie unsere Anfrage in Betracht ziehen.
\n"
+"
\n"
+"
\n"
+"Mit freundlichen Grüßen
\n"
+"{$contextSignature}
\n"
+
+msgid "emails.reviewCancel.subject"
+msgstr "Anfrage zur Begutachtung zurückgezogen"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Wir haben uns entschieden, unsere Anfrage nach einem Gutachten für den "
+"Beitrag "{$submissionTitle}," für {$contextName} zurückzuziehen. "
+"Verzeihen Sie bitte die Ihnen dadurch evtl. entstandenen Unannehmlichkeiten. "
+"Wir hoffen, dass wir weiterhin auf Ihre Hilfe als Gutachter/in zählen "
+"können.
\n"
+"
\n"
+"Falls Sie Fragen haben, können Sie sich gerne an mich wenden."
+
+#, fuzzy
+msgid "emails.reviewReinstate.body"
+msgstr ""
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+"Guten Tag {$recipientName},
wir haben vor Kurzem unsere Anfrage "
+"nach einem Gutachten für {$submissionTitle} in {$contextName} zurückgezogen. "
+"Wir haben uns umentschieden und möchten unsere Anfrage nun erneuern."
+"p>
Wir hoffen, dass Sie uns im Begutachtungsprozess unterstützen können, "
+"indem Sie sich unter bei dem Verlag "
+"einloggen, um die Einreichung anzusehen und Ihr Gutachten inkl. "
+"zugehöriger Dateien hochzuladen.
Wenn Sie Fragen haben, können Sie "
+"sich gern an mich wenden.
Mit freundlichen Grüßen
{$signature}"
+
+msgid "emails.reviewDecline.subject"
+msgstr "Nicht in der Lage zu begutachten"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"Sehr geehrte Redaktion,
\n"
+"
\n"
+"leider kann ich gegenwärtig die Begutachtung des Beitrags \" "
+""{$submissionTitle}," \" für {$contextName} nicht übernehmen. Ich "
+"danke für Ihr Vertrauen. Bei anderer Gelegenheit können Sie sich gerne "
+"wieder an mich wenden.
\n"
+"
\n"
+"{$senderName}"
+
+msgid "emails.reviewRemind.subject"
+msgstr "Eine Erinnerung, Ihr Gutachten bitte abzuschließen"
+
+#, fuzzy
+msgid "emails.reviewRemind.body"
+msgstr ""
+
+#, fuzzy
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+
+msgid "emails.editorDecisionAccept.subject"
+msgstr "Ihre Einreichung wurde bei {$contextName} angenommen"
+
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+"Guten Tag {$recipientName},
ich freue mich, Ihnen mitteilen zu "
+"können, dass wir uns zur Annahme Ihrer Einreichung ohne weitere "
+"Überarbeitung entschieden haben. Nach einer sorgsamen Begutachtung hat Ihr "
+"Beitrag unsere Erwartungen erfüllt oder sogar übertroffen. Wir freuen uns "
+"daher darauf, Ihre Arbeit in {$contextName} zu veröffentlichen und danken "
+"Ihnen, unseren Verlag als Erscheinungsort gewählt zu haben.
Ihr "
+"Beitrag wird bald auf der Verlagsseite von Y{$contextName} veröffentlicht "
+"werden, worauf Sie gerne in Ihrer Publikationsliste hinweisen können. In "
+"Anbetracht der harten Arbeit, die in jeden erfolgreichen Beitrag einfließt, "
+"möchten wir Ihnen ausdrücklich dazu gratulieren, dass sie diesen Grad "
+"erreicht hat.
Im nächsten Schritt geht Ihr Beitrag ins Lektorat und in "
+"den Satz.
Sie werden in Kürze nähergehende Informationen erhalten."
+"p>
Sollten Sie bis dahin Fragen haben, können Sie mich jederzeit über das "
+"Einreichungsdashboard erreichen."
+"p>
Mit freundlichen Grüßen
{$signature}"
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr "Ihre Einreichung wurde zur internen Begutachtung geschickt"
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+"Guten Tag {$recipientName},
ich freue mich, Ihnen mitteilen zu "
+"dürfen, dass die Redaktion Ihre Einreichung {$submissionTitle} geprüft und "
+"entschieden hat, sie in die interne Begutachtung zu geben. Wir werden Sie "
+"über die Rückmeldungen der Gutachter/innen und die nächsten Schritte "
+"informieren.
Bitte beachten Sie, dass dies noch keine Zusage zur "
+"Veröffentlichung darstellt. Wir werden die Empfehlung der Gutachter/innen "
+"abwarten, bevor wir entscheiden, ob wir die Einreichung publizieren werden. "
+"Unter Umständen werden Sie gebeten werden, Änderungen vorzunehmen und auf "
+"die Kommentare der Gutachter/innen zu antworten, bevor die finale "
+"Entscheidung getroffen wird.
Bei Fragen stehe ich Ihnen gerne über das "
+"Einreichungsdashboard zur Verfügung.
{$signature}
"
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr "Ihre Einreichung wurde in das Lektorat geschickt"
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+"Guten Tag{$recipientName},
\n"
+"ich freue mich, Ihnen mitteilen zu können, dass wir uns zur Annahme Ihrer "
+"Einreichung ohne weitere Begutachtung entschieden haben. Ihre Einreichung "
+"{$submissionTitle} hat unsere Erwartungen erfüllt und benötigt diesen daher "
+"Arbeitsschritt nicht. Wir freuen uns darauf, Ihre Einreichung in "
+"{$contextName} veröffentlichen zu dürfen und danken Ihnen, unseren Verlag "
+"als Erscheinungsort gewählt zu haben.
\n"
+"Ihr Beitrag wird bald auf der Verlagsseite für {$contextName} "
+"veröffentlicht werden und wir laden Sie dazu ein, den Titel in Ihre "
+"Publikationsliste aufzunehmen. Wir sind uns der harten Arbeit, die in jede "
+"erfolgreiche Einreichung einfließt, bewusst und möchten Sie an dieser Stelle "
+"zu Ihrem Ergebnis beglückwünschen.
\n"
+"Ihr Beitrag wird nun lektoriert und formatiert werden, um ihn für die "
+"Publikation vorzubereiten.
\n"
+"Sie werden in Kürze weitere Anweisungen erhalten.
\n"
+"Sollten Sie in der Zwischenzeit Fragen haben, erreichen Sie mich über das "
+"Einreichungsdashboard.
\n"
+"Mit freundlichen Grüßen
\n"
+"{$signature}
\n"
+
+msgid "emails.layoutRequest.subject"
+msgstr ""
+"Die Einreichung {$submissionId} ist bereit für die Produktion bei "
+"{$contextAcronym}"
+
+#, fuzzy
+msgid "emails.layoutRequest.body"
+msgstr ""
+
+msgid "emails.layoutComplete.subject"
+msgstr "Fahnen vollständig"
+
+#, fuzzy
+msgid "emails.layoutComplete.body"
+msgstr ""
+
+msgid "emails.indexRequest.subject"
+msgstr "Index anfordern"
+
+msgid "emails.indexRequest.body"
+msgstr ""
+
+msgid "emails.indexComplete.subject"
+msgstr "Indexfahnen vollständig"
+
+msgid "emails.indexComplete.body"
+msgstr ""
+
+msgid "emails.emailLink.subject"
+msgstr "Möglicherweise interessantes Manuskript"
+
+msgid "emails.emailLink.body"
+msgstr ""
+"Ich dachte, Sie würden sich vielleicht für den Beitrag "
+"„"{$submissionTitle}"“ von {$authors}, veröffentlicht in Band "
+"{$volume}, Nummer {$number} ({$year}) von {$contextName} unter "
+"„"{$submissionUrl}"“ interessieren."
+
+msgid "emails.emailLink.description"
+msgstr ""
+"Diese E-Mail-Vorlage bietet registrierten Leser/innen die Möglichkeit, "
+"Informationen über eine Monographie an eine interessierte Person zu senden. "
+"Sie ist über die Reading Tools verfügbar und muss von dem/der Verlagsmanager/"
+"in auf der Verwaltungsseite der Reading Tools aktiviert werden."
+
+msgid "emails.notifySubmission.subject"
+msgstr "Benachrichtigung über eine Einreichung"
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+"Sie haben eine neue Nachricht von {$sender} bezüglich "
+""{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifySubmission.description"
+msgstr ""
+"Eine Benachrichtigung eines/einer Benutzer/in, die von einem Modal des "
+"Einreichungsinformationszentrums gesendet wird."
+
+msgid "emails.notifyFile.subject"
+msgstr "Benachrichtigung über eine Einreichungsdatei"
+
+msgid "emails.notifyFile.body"
+msgstr ""
+"Sie haben eine neue Benachrichtigung von {$sender} zu der Datei "
+""{$fileName}" in "{$submissionTitle}" "
+"({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifyFile.description"
+msgstr ""
+"Eine Benachrichtigung von einem/einer Benutzer/in, die von einem modalen "
+"Dateiinformationszentrum gesendet wird"
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr "Redaktionelle Aktivitäten für {$month}, {$year}"
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+"\n"
+"Sehr geehrte/r {$recipientName},
\n"
+"
\n"
+"der Bericht zu Ihrem Verlag für {$month}, {$year} ist nun verfügbar. Die "
+"Hauptstatistiken für diesen Monat finden Sie im Folgenden.
\n"
+"\n"
+"- Neue Einreichungen in diesem Monat: {$newSubmissions}
\n"
+"- Abgelehnte Einreichungen in diesem Monat: {$declinedSubmissions}
\n"
+"- Angenommene Einreichungen in diesem Monat: {$acceptedSubmissions}
\n"
+"- Gesamtzahl der Einreichungen im System: {$totalSubmissions}
\n"
+"
\n"
+"Detailliertere Daten finden Sie beim Verlag unter Redaktionelle Trends und Veröffentlichungsstatistik. Eine Kopie des "
+"Gesamtberichtes der redaktionellen Trends ist beigefügt.
\n"
+"
\n"
+"Mit freundlichen Grüßen
\n"
+"{$contextSignature}"
+
+msgid "emails.announcement.subject"
+msgstr "{$announcementTitle}"
+
+msgid "emails.announcement.body"
+msgstr ""
+"{$announcementTitle}
\n"
+"
\n"
+"{$announcementSummary}
\n"
+"
\n"
+"Besuchen Sie die Webseite, um die gesamte "
+"Ankündigung zu lesen."
+
+msgid "emails.revisedVersionNotify.subject"
+msgstr "Überarbeitete Version hochgeladen"
+
+msgid "emails.reviewReinstate.subject"
+msgstr "Können Sie weiterhin einen Beitrag für {$contextName} begutachten?"
+
+msgid "emails.revisedVersionNotify.body"
+msgstr ""
+"Guten Tag {$recipientName},
der/die Autor/in hat eine "
+"überarbeitete Version der Einreichung {$authorsShort} — "
+"{$submissionTitle} hochgeladen.
Als zuständige/r Redakteur/in möchten "
+"wir Sie bitten, sich einzuloggen, die "
+"Überarbeitung anzusehen und eine Entscheidung zu treffen, ob die "
+"Einreichung für den weiteren Begutachtungsprozess angenommen oder abgelehnt "
+"werden sollte oder weiterer Überarbeitung bedarf.
—
Diese "
+"Nachricht wurde automatisch versendet von {$contextName}."
+
+msgid "emails.editorAssignReview.body"
+msgstr ""
+"Guten Tag {$recipientName},
die folgende Einreichung wurde Ihnen "
+"zur Betreuung während des Begutachtungsprozesses zugewiesen:
{$submissionTitle}
{$authors}
Abstract
{$submissionAbstract}Bitte loggen "
+"Sie sich ein um die Einreichung zu sehen "
+"und eine/n geeignete/n Gutachter/in zuzuweisen. Sie können eine/n Gutachter/"
+"in zuweisen, indem Sie auf \"Gutachter/in hinzufügen\" klicken.
Vielen "
+"Dank im Voraus.
Mit freundlichen Grüßen
{$signature}"
+
+msgid "emails.editorAssignProduction.body"
+msgstr ""
+"Guten Tag {$recipientName},
die folgende Einreichung wurde Ihnen "
+"zur Betreuung während der Produktionsphase zugewiesen:
{$submissionTitle}
{$authors}
Abstract
{$submissionAbstract}Bitte loggen "
+"Sie sich ein um die Einreichung anzusehen. "
+"Sobald produktionsreife Dateien vorliegen, laden Sie sie bitte in der Rubrik "
+" Produktionsfertige Dateien hoch.
Vielen Dank im "
+"Voraus.
Mit freundlichen Grüßen
{$signature}"
diff --git a/locale/de/locale.po b/locale/de/locale.po
new file mode 100644
index 00000000000..7a94401570a
--- /dev/null
+++ b/locale/de/locale.po
@@ -0,0 +1,1755 @@
+# Pia Piontkowitz , 2021, 2022, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2023-04-26 17:49+0000\n"
+"Last-Translator: Pia Piontkowitz \n"
+"Language-Team: German \n"
+"Language: 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 4.13.1\n"
+
+msgid "common.payments"
+msgstr "Zahlungen"
+
+msgid "monograph.audience"
+msgstr "Zielgruppe"
+
+msgid "monograph.audience.success"
+msgstr "Die Angaben zur Zielgruppe wurden aktualisiert."
+
+msgid "monograph.coverImage"
+msgstr "Titelbild"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Grundlage der Eingrenzung der Zielgruppe"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Bildungsstand (von)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Bildungsstand (bis)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "Bildungsstand (genau)"
+
+msgid "monograph.languages"
+msgstr "Sprachen (Englisch, Französisch, Spanisch)"
+
+msgid "monograph.publicationFormats"
+msgstr "Publikationsformate"
+
+msgid "monograph.publicationFormat"
+msgstr "Format"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "Genauere Angaben zum verfügbaren Publikationsformat {$format}"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Angaben zur Monographie"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Formate:"
+
+msgid "monograph.type"
+msgstr "Art der Einreichung"
+
+msgid "submission.pageProofs"
+msgstr "Korrekturfahnen"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"Der Layouter/die Layouterin lädt hier die für die Publikation vorbereiteten "
+"herstellungsreifen Dateien hoch. Über +Zuweisen können Sie Autor/"
+"innen und andere Beteiligten mit dem Gegenlesen der Korrekturfahne "
+"beauftragen, wobei die korrigierten Dateien zur abschließenden Prüfung "
+"erneut hochgeladen werden müssen bevor es zu einer Veröffentlichung kommt."
+
+msgid "monograph.task.addNote"
+msgstr "Zu den Aufgaben hinzufügen"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Open Access"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Impressum (Marken-/Verlagsname)"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Seitenanzahl"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Titelei"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Nachspann"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Produktzusammensetzung"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Produktangaben (nicht erforderlich)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Produktcode"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Preis"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "Eine Preisangabe ist erforderlich."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Preisart"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Rabattsatz (falls zutreffend)"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Verfügbarkeit"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Remissionskonditionen"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Digitale Informationen"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Abmessungen"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "Dateigröße in MB"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "Möchten Sie eine eigene Dateigröße eingeben?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Höhe"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Dicke"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Gewicht"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Breite"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "Herstellungsland"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Digitale technische Schutzmaßnahmen"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Vertriebsregion"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Steuersatz"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Steuerart"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr "Metadaten für dieses Publikationsformat in den Katalog aufnehmen."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Markt- und Preisangabe fehlen."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Identifikationscode fehlt."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Einige Metadatenfelder wurden nicht ausgefüllt."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+"Das von Ihnen gewählte Format steht für diese Monographie nicht mehr zur "
+"Verfügung.
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Öffne Reiter Publikationsform."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Format"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "Eine Namensangabe ist erforderlich."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "Eine gültige Preisangabe ist erforderlich."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Weitere Angaben für dieses Format"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Physisches Format"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "Dieses Format wird auf einer externen Website bereitgestellt werden"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "URL des remote bereitgestellten Inhalts"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "Ein 13-stelliger ISBN-Code, z.B. 978-951-98548-9-2."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "Ein 10-stelliger ISBN-Code, z.B. 951-98548-9-4."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "Es wird eine Kennung für die Monographie benötigt."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Bitte wählen Sie ein Publikationsformat."
+
+msgid "grid.catalogEntry.availability"
+msgstr "Verfügbarkeit"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Verfügbar"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "Nicht verfügbar"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Korrekturfahne"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Format-Freigabe"
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"Die Metadaten für dieses Format freigeben. Metadaten können im Bereich "
+"\"Bearbeiten\" für jedes Format überprüft werden.
"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr ""
+"Anzeigen, dass die Metadaten für dieses Format noch nicht genehmigt "
+"wurden.
"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Format-Verfügbarkeit"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Dieses Format für Leser/innen zugänglich machen. Herunterladbare "
+"Dateien und alle anderen Vertriebswege werden im Katalogeintrag des Buchs "
+"angezeigt.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Dieses Format wird für Leser/innen nicht verfügbar sein. Alle "
+"herunterladbaren Dateien oder andere Vertriebswege werden nicht mehr im "
+"Katalogeintrag des Buchs angezeigt.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "Der Katalogeintrag wurde nicht akzeptiert."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "Format nicht im Katalogeintrag."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Fahne nicht akzeptiert."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Akzeptiert"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "Warte auf Freigabe"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "Für digitale Formate wird eine Dateigröße benötigt."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "Bitte geben Sie die Produktverfügbarkeit an."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "Bitte wählen Sie einen Code für die Produktzusammensetzung."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Wert"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "ONIX Code-Typ"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "Ein Code ist erforderlich."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "Bitte geben Sie einen Wert ein."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Vertriebskonditionen"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Codewert"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Vertriebskonditionen"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "Restliche Welt/Rest of World?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Setzen Sie hier einen Haken, wenn Sie die Vertriebskonditionen pauschal "
+"festlegen möchten. Sie müssen in diesem Fall nicht einzelne Länder und "
+"Regionen auswählen."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr ""
+"Es wurde schon \"Restliche Welt\" als Geltungsbereich für die "
+"Vertriebskonditionen dieses Formats festgelegt."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Länder"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Regionen"
+
+msgid "grid.catalogEntry.included"
+msgstr "Eingeschlossen"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Ausgeschlossen"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Absatzgebiete"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Gebiet"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Erscheinungsdatum"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Die Angabe einer Vertreter/in ist erforderlich."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "Bitte geben Sie ein Datumsformat ein."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Datum"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Das Datum bezieht sich auf das ..."
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Datumsformat"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"Bitte geben Sie ein Datum ein. Das Datumsformat muss dem von Ihnen gewählten "
+"Format entsprechen."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Vertriebspartner"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Vertriebspartnertyp"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Vertreter/innen"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Dienstleister"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Vertreter/in"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"Sie können eine/n Vertreter/in bestimmen, um Sie in dem ausgewählten Gebiet "
+"zu repräsentieren. Diese Angabe ist nicht verpflichtend."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Dienstleister"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Wählen Sie eine Funktion:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Funktion"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Name"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Telefon"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "E-Mail-Adresse"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Website"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "Identifkationsnummer des Unternehmens"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Identifikationsnmmerntyp des Unternehmens (empfohlen wird GLN)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"Sie können die folgenden Abschnitte leer lassen, wenn Sie Ihren Kunden Ihre "
+"eigenen Dienste anbieten möchten."
+
+msgid "grid.action.addRepresentative"
+msgstr "Vertriebspartner hinzufügen"
+
+msgid "grid.action.editRepresentative"
+msgstr "Diesen Vertriebspartner bearbeiten"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Vertriebspartner entfernen"
+
+msgid "spotlight"
+msgstr "Spotlight"
+
+msgid "spotlight.spotlights"
+msgstr "Spotlights"
+
+msgid "spotlight.noneExist"
+msgstr "Aktuell sind keine Spotlights vorhanden."
+
+msgid "spotlight.title.homePage"
+msgstr "Im Rampenlicht"
+
+msgid "spotlight.author"
+msgstr "Autor, "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Spotlight-Titel"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Homepage"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Spotlightplatzierung"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Geben Sie den Titel des Spotlights ein (Auto-Vervollständigen)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Spotlight-Titel (wie er auf der Website erscheinen soll)"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Buch"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "Bitte machen Sie eine Angabe."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "Bitte geben Sie den Titel des Spotlights an."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Bitte wählen Sie einen Platz für dieses Spotlight."
+
+msgid "grid.action.editSpotlight"
+msgstr "Spotlight bearbeiten"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Spotlight löschen"
+
+msgid "grid.action.addSpotlight"
+msgstr "Spotlight hinzufügen"
+
+msgid "manager.series.open"
+msgstr "Offene Einreichungen"
+
+msgid "manager.series.indexed"
+msgstr "Indiziert"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Dateien"
+
+msgid "grid.action.catalogEntry"
+msgstr "Den Katalogeintrag ansehen"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "Das Format erscheint im Katalog"
+
+msgid "grid.action.editFormat"
+msgstr "Format bearbeiten"
+
+msgid "grid.action.deleteFormat"
+msgstr "Format entfernen"
+
+msgid "grid.action.addFormat"
+msgstr "Format hinzufügen"
+
+msgid "grid.action.approveProof"
+msgstr ""
+"Akzeptieren Sie die Korrekturfahne um den Titel zu indizieren und dem "
+"Katalog hinzuzufügen"
+
+msgid "grid.action.pageProofApproved"
+msgstr "Die Korrekturfahnen ist fertig zur Veröffentlichung"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Neuer Katalogeintrag"
+
+msgid "grid.action.publicCatalog"
+msgstr "Diesen Titel im Katalog ansehen"
+
+msgid "grid.action.feature"
+msgstr "Auf die Anzeige empfohlener Bücher umschalten"
+
+msgid "grid.action.featureMonograph"
+msgstr "Diesen Band in das Karussell aufnehmen"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Diesen Titel als 'Neuerscheinung' kennzeichnen"
+
+msgid "grid.action.manageCategories"
+msgstr "Kategorien konfigurieren"
+
+msgid "grid.action.manageSeries"
+msgstr "Reihen konfigurieren"
+
+msgid "grid.action.addCode"
+msgstr "Code hinzufügen"
+
+msgid "grid.action.editCode"
+msgstr "Diesen Code bearbeiten"
+
+msgid "grid.action.deleteCode"
+msgstr "Diesen Code löschen"
+
+msgid "grid.action.addRights"
+msgstr "Vertriebskonditionen hinzufügen"
+
+msgid "grid.action.editRights"
+msgstr "Konditionen bearbeiten"
+
+msgid "grid.action.deleteRights"
+msgstr "Konditionen entfernen"
+
+msgid "grid.action.addMarket"
+msgstr "Absatzmarkt hinzufügen"
+
+msgid "grid.action.editMarket"
+msgstr "Absatzmarkt bearbeiten"
+
+msgid "grid.action.deleteMarket"
+msgstr "Absatzmarkt entfernen"
+
+msgid "grid.action.addDate"
+msgstr "Erscheinungsdatum hinzufügen"
+
+msgid "grid.action.editDate"
+msgstr "Dieses Datum bearbeiten"
+
+msgid "grid.action.deleteDate"
+msgstr "Dieses Datum löschen"
+
+msgid "grid.action.createContext"
+msgstr "Einen neuen Verlag anlegen"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Zeige den Reiter Format"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Zu den Bekanntmachungen"
+
+msgid "grid.action.submissionEmail"
+msgstr "Zum Lesen der E-Mail bitte klicken"
+
+msgid "grid.action.approveProofs"
+msgstr "Korrekturfahnen anzeigen"
+
+msgid "grid.action.proofApproved"
+msgstr "Das Format wurde geprüft"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Dieses Format freigeben/nicht freigeben"
+
+msgid "grid.action.formatAvailable"
+msgstr "Format ist verfügbar und wurde veröffentlicht"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Füge dem Gutachten einen Anhang hinzu"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Verfügbare Dateien"
+
+msgid "series.series"
+msgstr "Reihe"
+
+msgid "series.featured.description"
+msgstr "Diese Reihen werden in der Hauptnavigation erscheinen"
+
+msgid "series.path"
+msgstr "Pfad"
+
+msgid "catalog.manage"
+msgstr "Katalogverwaltung"
+
+msgid "catalog.manage.newReleases"
+msgstr "Neuerscheinungen"
+
+msgid "catalog.manage.category"
+msgstr "Kategorie"
+
+msgid "catalog.manage.series"
+msgstr "Reihe"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "Bitte geben Sie eine gültige ISSN an."
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "Online- und Print-ISSN dürfen nicht gleich sein."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "Online-ISSN"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "Print-ISSN"
+
+msgid "catalog.selectSeries"
+msgstr "Wählen Sie eine Reihe aus"
+
+msgid "catalog.selectCategory"
+msgstr "Wählen Sie eine Kategorie aus"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"Die Umschlagbilder der ausgewählten Bücher erscheinen auf der Homepage als "
+"scrollbare Liste. Klicken Sie auf den Icon 'Empfehlen' (rechts) und "
+"anschließend auf das entsprechende Sternchen, um ein Buch dem Karussell "
+"hinzuzufügen, und auf das Ausrufezeichen, wenn Sie es unter der Rubrik "
+"'Neuerscheinungen\" erscheinen soll. Durch Drag and Drop können Sie die "
+"Reihenfolge festlegen, in der die Bücher angezeigt werden."
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Um ein Buch auszuwählen, das Sie in der jeweiligen Kategorie besonders "
+"empfehlen möchten, klicken Sie zunächst auf den Icon 'Empfehlen' (rechts "
+"unterhalb dieser Erklärung) und dann auf das Sternchen. Mit Drag and Drop "
+"legen Sie die Reihenfolge der angezeigten empfohlenen Titel fest."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Wenn Sie innerhalb der Reihe ein Buch als empfehlenswert hervorheben "
+"möchten, klicken Sie zuerst auf den Icon 'Empfehlen' (rechts unterhalb "
+"dieser Erklärung) und dann auf das jeweilige Sternchen. Mit Drag and Drop "
+"können Sie die Reihenfolge festlegen, in der die empfohlenen Titel anzeigt "
+"werden. Reihen lassen sich stets über den/die Herausgeber/in und Titel "
+"identifizieren, sie können einer Kategorie zugeordnet sein, müssen es aber "
+"nicht."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Karussell"
+
+msgid "catalog.manage.newRelease"
+msgstr "Ausgabe"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Reihen verwalten"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Kategorien verwalten"
+
+msgid "catalog.manage.noMonographs"
+msgstr "Es liegen keine Ihnen zugewiesenen Monographien vor."
+
+msgid "catalog.manage.featured"
+msgstr "Gefeaturet"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "Gefeaturet in Kategorie"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "Gefeaturet in Reihe"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "Monographie wurde gefeaturet."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "Monographie wurde nicht gefeaturet."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "Die Monographie wurde als Neuerscheinung gekennzeichnet."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "Die Kenntlichmachung als Neuerscheinung wurde entfernt."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "Neuerscheinung"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "Neuerscheinung in der Kategorie"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "Neuerscheinung in der Reihe"
+
+msgid "catalog.manage.nonOrderable"
+msgstr ""
+"Diese Monographie kann nicht bestellt werden bevor sie gefeaturet wurde."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Nach Titel oder Autor/in suchen"
+
+msgid "catalog.manage.isFeatured"
+msgstr ""
+"Diese Monographie wurde gefeaturet. Feature für diese Monographie "
+"zurückziehen."
+
+msgid "catalog.manage.isNotFeatured"
+msgstr "Diese Monographie wurde nicht gefeaturet. Diese Monographie featuren."
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+"Diese Monographie ist eine neue Veröffentlichung. Den Status der neuen "
+"Veröffentlichung entfernen."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+"Diese Monographie ist keine neue Veröffentlichung. Diese Monographie als "
+"neue Veröffentlichung markieren."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr "Es wurden keine Einreichungen zur Aufnahme in den Katalog ausgewählt."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "Eine oder mehrere der Einreichungen konnten nicht gefunden werden."
+
+msgid "catalog.manage.findSubmissions"
+msgstr "Finden Sie Monographien zur Aufnahme in den Katalog"
+
+msgid "catalog.noTitles"
+msgstr "Bisher wurden keine Titel veröffentlicht."
+
+msgid "catalog.noTitlesNew"
+msgstr "Zur Zeit sind keine neuen Veröffentlichungen verfügbar."
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
+"Zu Ihrer Suche nach \"{$searchQuery}\" wurden keine passenden Titel gefunden."
+
+msgid "catalog.feature"
+msgstr "Empfehlen"
+
+msgid "catalog.featured"
+msgstr "Empfohlen"
+
+msgid "catalog.featuredBooks"
+msgstr "Empfohlene Bücher"
+
+msgid "catalog.foundTitleSearch"
+msgstr "Zu Ihrer Suche nach \"{$searchQuery}\" wurde ein Titel gefunden."
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+"Zu Ihrer Suche nach \"{$searchQuery}\" wurden {$number} Titel gefunden."
+
+msgid "catalog.category.heading"
+msgstr "Alle Bücher"
+
+msgid "catalog.newReleases"
+msgstr "Neuerscheinungen"
+
+msgid "catalog.dateAdded"
+msgstr "Hinzugefügt {$dateAdded}"
+
+msgid "catalog.publicationInfo"
+msgstr "Informationen zum Buch"
+
+msgid "catalog.published"
+msgstr "Veröffentlicht"
+
+msgid "catalog.forthcoming"
+msgstr "Neuerscheinungen"
+
+msgid "catalog.categories"
+msgstr "Kategorien"
+
+msgid "catalog.parentCategory"
+msgstr "Oberkategorie"
+
+msgid "catalog.category.subcategories"
+msgstr "Unterkategorie"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "Über den/die {$roleName}"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"Bitte beachten Sie: Um einen Band zu kaufen, müssen Sie angemeldet sein. "
+"Sobald Sie einen Band ausgewählt haben, den Sie erwerben möchten, gelangen "
+"Sie automatisch zur Anmeldeseite. Alle Titel, die mit einem Open-Access-"
+"Symbol (geöffnetes Schloss) gekennzeichnet sind, können kostenlos "
+"heruntergeladen werden. Eine Anmeldung ist dazu nicht erforderlich."
+
+msgid "catalog.sortBy"
+msgstr "Reihenfolge der Bücher"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr ""
+"Wählen Sie aus, in welcher Reihenfolge Bücher in dieser Reihe angezeigt "
+"werden sollen."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr ""
+"Wählen Sie aus, in welcher Reihenfolge Bücher in dieser Kategorie angezeigt "
+"werden sollen."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr ""
+"Wählen Sie aus, in welcher Reihenfolge Bücher im Katalog angezeigt werden "
+"sollen."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "Position in Reihe (niedrigste zuerst)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "Position in Reihe (höchste zuerst)"
+
+msgid "catalog.viewableFile.title"
+msgstr "{$type}-Ansicht der Datei {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "Zurück zur Detailanzeige von {$monographTitle}"
+
+msgid "submission.search"
+msgstr "Büchersuche"
+
+msgid "common.publication"
+msgstr "Monographie"
+
+msgid "common.publications"
+msgstr "Monographien"
+
+msgid "common.prefix"
+msgstr "Präfix"
+
+msgid "common.preview"
+msgstr "Vorschau"
+
+msgid "common.feature"
+msgstr "Empfehlen"
+
+msgid "common.searchCatalog"
+msgstr "Suche im Katalog"
+
+msgid "common.moreInfo"
+msgstr "Weitere Informationen"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Bitte füllen Sie dieses Formular vollständig aus."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Bitte wählen Sie eine gültige Option aus dieser Liste aus."
+
+msgid "common.listbuilder.itemExists"
+msgstr "Sie können nicht den gleichen Eintrag ein zweites Mal hinzufügen."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Homepage-Header"
+
+msgid "navigation.catalog"
+msgstr "Katalog"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Leitlinie zu Interessenskonflikten"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "Alle Monographien"
+
+msgid "navigation.catalog.manage"
+msgstr "Verwalten"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Administration"
+
+msgid "navigation.catalog.administration"
+msgstr "Katalogverwaltung"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Kategorien"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Reihe"
+
+msgid "navigation.infoForAuthors"
+msgstr "Für Autoren/innen"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Für Bibliothekare/innen"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Informationen für Autoren/innen"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Informationen für Bibliothekare/innen"
+
+msgid "navigation.newReleases"
+msgstr "Neuerscheinungen"
+
+msgid "navigation.published"
+msgstr "Erschienen"
+
+msgid "navigation.wizard"
+msgstr "Assistent"
+
+msgid "navigation.linksAndMedia"
+msgstr "Links und Soziale Netzwerke"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Link zu Ihrem Katalog."
+
+msgid "navigation.skip.spotlights"
+msgstr "Zu Spotlights springen"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Reihen"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Link zu einer Reihe."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Kategorie"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Link zu einer Kategorie."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "Neuerscheinungen"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Link zu Ihren Neuerscheinungen."
+
+msgid "context.contexts"
+msgstr "Verlage"
+
+msgid "context.context"
+msgstr "Verlag"
+
+msgid "context.current"
+msgstr "Aktueller Verlag:"
+
+msgid "context.select"
+msgstr "Wählen Sie einen Verlag:"
+
+msgid "user.authorization.representationNotFound"
+msgstr "Das angeforderte Publikationsformat konnte nicht gefunden werden."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "Benutzer/innen ohne zugewiesene Funktion mit einbeziehen."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Einen Vorschlag einreichen"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr ""
+"Einreichen einer Monographie: Die Registrierung als Autor/in ist zurzeit "
+"deaktiviert."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Registrierung als Gutachter/in"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+"Registrierung als Gutachter/in: Die Gutachterregistrierung ist zurzeit "
+"deaktiviert."
+
+msgid "user.reviewerPrompt"
+msgstr ""
+"Wären Sie einverstanden, Einreichungen dieses Verlags einem Review zu "
+"unterziehen?"
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Ja, die {$userGroup} Rolle anfragen."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"Ja, ich möchte Anfragen zugeschickt bekommen, wenn Reviews zu Einreichungen "
+"dieses Verlag ausständig sind."
+
+msgid "user.register.contextsPrompt"
+msgstr "Für welche Verlage dieser Seite möchten Sie sich registrieren?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Die folgenden Rollen anfragen."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"Falls Sie Reviewer eines Verlags werden wollen, geben Sie bitte Ihre "
+"Fachgebiete an."
+
+msgid "user.role.manager"
+msgstr "Verlagsleiter/in"
+
+msgid "user.role.pressEditor"
+msgstr "Leitender Herausgeber/Leitende Herausgeberin"
+
+msgid "user.role.subEditor"
+msgstr "Reihenherausgeber/in"
+
+msgid "user.role.copyeditor"
+msgstr "Lektor/in"
+
+msgid "user.role.proofreader"
+msgstr "Korrektor/in"
+
+msgid "user.role.productionEditor"
+msgstr "Hersteller/in"
+
+msgid "user.role.managers"
+msgstr "Verlagsleiter/in"
+
+msgid "user.role.subEditors"
+msgstr "Reihenherausgeber/innen"
+
+msgid "user.role.editors"
+msgstr "Herausgeber/innen"
+
+msgid "user.role.copyeditors"
+msgstr "Lektoren/innen"
+
+msgid "user.role.proofreaders"
+msgstr "Korrektoren/innen"
+
+msgid "user.role.productionEditors"
+msgstr "Hersteller/innen"
+
+msgid "user.register.selectContext"
+msgstr "Wählen Sie den Verlag aus, bei dem Sie sich registrieren möchten:"
+
+msgid "user.register.noContexts"
+msgstr ""
+"Es gibt keine Verlage, bei denen Sie sich auf dieser Website anmelden können."
+
+msgid "user.register.privacyStatement"
+msgstr "Datenschutzerklärung"
+
+msgid "user.register.registrationDisabled"
+msgstr "Zurzeit ist keine Registrierung möglich."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "Das eingegebene Passwort ist zu kurz."
+
+msgid "user.register.readerDescription"
+msgstr "Per E-Mail über das Erscheinen eines Buches benachrichtigt."
+
+msgid "user.register.authorDescription"
+msgstr "Kann einen Titel beim Verlag einreichen."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "Ich bin bereit, beim Verlag eingegangene Manuskripte zu begutachten."
+
+msgid "user.register.reviewerDescription"
+msgstr ""
+"Erklärt sich bereit, den Peer-Review-Prozess für auf dieser Website "
+"eingereichte Manuskripte durchzuführen."
+
+msgid "user.register.reviewerInterests"
+msgstr "Interessen (inhaltliche Schwerpunkte und Forschungsmethoden):"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Sie müssen mindestens eine Funktion auswählen"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"Ja, ich stimme zu, dass meine Daten erfasst und gespeichert werden wie in "
+"der Datenschutzerklärung des "
+"Verlags angegeben."
+
+msgid "site.noPresses"
+msgstr "Es sind keine Verlage verfügbar."
+
+msgid "site.pressView"
+msgstr "Verlagswebsite ansehen"
+
+msgid "about.pressContact"
+msgstr "Pressekontakt"
+
+msgid "about.aboutContext"
+msgstr "Über den Verlag"
+
+msgid "about.editorialTeam"
+msgstr "Herausgeber/innen"
+
+msgid "about.editorialPolicies"
+msgstr "Richtlinien für Herausgeber/innen"
+
+msgid "about.focusAndScope"
+msgstr "Fokus und Umfang"
+
+msgid "about.seriesPolicies"
+msgstr "Richtlinien für Reihen und Kategorien"
+
+msgid "about.submissions"
+msgstr "Manuskripte einreichen"
+
+msgid "about.onlineSubmissions"
+msgstr "Online-Einreichungen"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Zum Login"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Registrieren"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr ""
+"Sie müssen registriert und eingeloggt sein, um Manuskripte einzureichen oder "
+"den aktuellen Status Ihrer Einreichung zu überprüfen. Mit einem bestehenden "
+"Account {$login} oder einen neuen Account {$register}."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} oder {$viewSubmissions}."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Eine neue Einreichung anlegen"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "ausständige Einreichungen einsehen"
+
+msgid "about.authorGuidelines"
+msgstr "Richtlinien für Autoren/innen"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Checkliste zur Manuskripteinreichung"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"Während des Einreichungsvorganges werden die Autor/innen dazu aufgefordert "
+"zu überprüfen, ob ihr Manuskript alle genannten Anforderungen erfüllt. "
+"Manuskripte, die nicht mit den Richtlinien übereinstimmen, können an die "
+"Autor/innen zurückgegeben werden."
+
+msgid "about.copyrightNotice"
+msgstr "Copyright-Vermerk"
+
+msgid "about.privacyStatement"
+msgstr "Datenschutzerkärung"
+
+msgid "about.reviewPolicy"
+msgstr "Peer-Review-Prozess"
+
+msgid "about.publicationFrequency"
+msgstr "Erscheinungsweise"
+
+msgid "about.openAccessPolicy"
+msgstr "Open-Access-Leitlinien"
+
+msgid "about.pressSponsorship"
+msgstr "Verlagssponsoren"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr ""
+"Mehr Informationen zu diesem Publikationssystem, der Plattform und dem "
+"Workflow von OMP/PKP."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "OMP-Redaktions- und Veröffentlichungsprozess"
+
+msgid "about.aboutSoftware"
+msgstr "Über Open Monograph Press"
+
+msgid "about.aboutOMPPress"
+msgstr ""
+"Dieser Verlag verwendet Open Monograph Press {$ompVersion}, eine Open-Source "
+"Verlagsmanagement- und Publikations-Software, die vom Public Knowledge Project unter der GNU General Public License "
+"entwickelt wurde. Support und Vertrieb der Software sind kostenfrei. Bitte "
+"kontaktieren Sie den Verlag um Fragen über den "
+"Verlag und Einreichungen zu stellen."
+
+#, fuzzy
+msgid "about.aboutOMPSite"
+msgstr ""
+"Dieser Verlag verwendet Open Monograph Press {$ompVersion}, eine Open-Source-"
+"Presse- und Verlagsmanagement-Software, die vom Public Knowledge Project unter der GNU General Public License "
+"entwickelt wurde. Support und Vertrieb der Software sind kostenfrei."
+
+msgid "help.searchReturnResults"
+msgstr "Zurück zu den Suchergebnissen"
+
+msgid "help.goToEditPage"
+msgstr "Öffnen Sie eine neue Seite, um diese Informationen zu bearbeiten"
+
+msgid "installer.appInstallation"
+msgstr "OMP-Installation"
+
+msgid "installer.ompUpgrade"
+msgstr "OMP-Upgrade"
+
+msgid "installer.installApplication"
+msgstr "Installiere Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+"Wenn Sie eine existierende Installation von OMP aktualisieren, klicken Sie "
+"hier um fortzufahren."
+
+msgid "installer.installationInstructions"
+msgstr ""
+"
Danke, dass Sie Open Monograph Press {$version} des "
+"Public Knowledge Project heruntergeladen haben. Bitte lesen Sie die in der "
+"Software enthaltene README -Datei, "
+"bevor Sie fortfahren. Mehr Informationen über das das Public Knowledge "
+"Project und seine Softwareprojekte finden Sie auf der PKP-Website PKP web site. Wenn Sie einen "
+"Bug melden möchten oder technischen Support für Open Monograph Press "
+"benötigen, wenden Sie sich bitte an unser: support forum oder besuchen Sie das "
+"online Bug "
+"Reporting System von PKP. Wir empfehlen Ihnen zwar, über das "
+"Supportforum Kontakt zu uns aufzunehmen, Sie können aber eine E-Mail an "
+"unser Team schreiben: pkp."
+"contact@gmail.com.
"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Schritte vor der Installation"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. Die folgenden Dateien und Verzeichnisse (und deren Inhalte) müssen mit "
+"einer Schreibberechtigung ausgestattet sein:
\n"
+"\n"
+"\t- config.inc.php ist beschreibbar (optional): {$writable_config}"
+"
\n"
+"\t- public/ ist beschreibbar: {$writable_public}
\n"
+"\t- cache/ ist beschreibbar: {$writable_cache}
\n"
+"\t- cache/t_cache/ ist beschreibbar: {$writable_templates_cache}"
+"li>\n"
+"\t
- cache/t_compile/ ist beschreibbar: "
+"{$writable_templates_compile}
\n"
+"\t- cache/_db ist beschreibbar: {$writable_db_cache}
\n"
+"
\n"
+"\n"
+"2. Es muss ein Verzeichnis angelegt und mit Schreibrechten ausgestattet "
+"werden, in dem die hochgeladenen Dateien gespeichert werden können (siehe "
+"\"Dateieinstellungen\" unten).
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"OMP Version {$version}
\n"
+"\n"
+"Vielen Dank, dass Sie Open Monograph Press des Public "
+"Knowledge Project heruntergeladen haben. Bevor Sie fortfahren, empfehlen wir "
+"Ihnen, die README und UPGRADE Dateien zu lesen, die in dieser "
+"Software enthalten sind. Weitere Informationen über das Public Knowledge "
+"Project und seine Softwareprojecte finden Sie auf der PKP-Website. Wenn Sie einen Bug melden "
+"möchten oder technischen Support für Open Monograph Press benötigen, wenden "
+"Sie sich bitte an unser: Support Forum oder besuchen Sie online PKPs bug reporting system. Wir "
+"empfehlen Ihnen zwar, über das Supportforum Kontakt zu uns aufzunehmen, Sie "
+"können eine E-Mail an unser Team schreiben: pkp.contact@gmail.com.
\n"
+"Es wird dringend empfohlen Datenbank, Dateienverzeichnis "
+"und OMP-Installationsverzeichnis zu speichern, bevor Sie fortfahren.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"Für einen vollständigen Unicode (UTF-8)-Support wählen Sie bitte UTF-8 für "
+"alle Zeichensatz-Einstellungen. Bitte beachten Sie, dass der Support zurzeit "
+"einen MySQL >= 4.1.1 or PostgreSQL >= 9.1.5 Datenbankserver zur "
+"Voraussetzung hat. Außerdem wird für den vollen Unicode-Support die mbstring-Bibliothek "
+"(in jüngeren PHP-Installationen meist standardmäßig aktiviert). Sollten Sie "
+"erweiterte Zeichensätze verwenden, kann es zu Schwierigkeiten kommen, wenn "
+"Ihr Server diese Anforderungen nicht erfüllt.\n"
+"
\n"
+"Ihr Server untersützt aktuell mbstring: {$supportsMBString}"
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"Ihr Server erlaubt aktuell die Datei-Uploads: {$allowFileUploads}"
+"strong>"
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"Ihr Server erlaubt aktuell das Hochladen von Dateien bis zu einer maximalen "
+"Dateigröße von: {$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"Die Sprache, die Hauptsprache in Ihrem System sein soll. Bitte konsultieren "
+"Sie die OMP-Dokumentation, wenn Sie an der Unterstützung einer Sprache "
+"interessiert sind, die hier nicht aufgeführt ist."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Wählen Sie weitere Sprachen aus, die in diesem System unterstützt werden "
+"sollen. Verlage, die auf dieser Website gehostet sind, können diese Sprachen "
+"verwenden. Weitere Sprachen können ebenfalls jederzeit installiert werden, "
+"und zwar über das Website-Administration-Interface. Mit * markierte "
+"Regionaleinstellungen sind unter Umständen unvollständig."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Geben Sie den vollständigen Pfadnamen zu einem bestehenden Verzeichnis an, "
+"in dem die hochgeladenen Dateien abgelegt werden sollen. Auf dieses "
+"Verzeichnis sollte kein direkter Zugriff von außen (vom Web aus) möglich "
+"sein. Bitte stellen Sie sicher, dass das Verzeichnis bereits "
+"existiert und es beschreibbar ist, bevor Sie mit der Installation beginnen."
+"strong> Für Windows-Pfadnamen sind Schrägstriche zu verwenden, z.B. \"C:/"
+"mypress/files\"."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"Um die Daten ablegen zu können, benötigt OMP einen Zugriff auf eine SQL-"
+"Datenbank. Bitte beachten Sie die oben genannten Systemanforderungen für die "
+"aufgeführten unterstützten Datenbanken. In den darunter stehenden Feldern "
+"werden die Einstellungen angegeben, die zur Verbindung mit der Datenbank "
+"gesetzt werden müssen."
+
+msgid "installer.upgradeApplication"
+msgstr "Open Monograph Press upgraden"
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"WICHTIG!
\n"
+"Der Installer konnte die Konfigurationsdatei nicht automatisch "
+"überschreiben. Bevor Sie versuchen, das System zu verwenden, öffnen Sie "
+"bitte config.inc.php in einem geeigneten Texteditor und ersetzen "
+"Sie dessen Inhalte durch die Inhalte der unten stehenden Textbox.
"
+
+msgid "installer.installationComplete"
+msgstr ""
+"Die OMP-Installation wurde erfolgreich abgeschlossen.
\n"
+"Um das System zu verwenden, loggen Sie sich auf der Login-Seite mit Ihrem Benutzernamen und Ihrem Passwort ein.
\n"
+"Besuchen Sie das Community Forum oder melden Sie sich für den Developer Newsletter an, um "
+"Sicherheitshinweise und Updates zu neuen Releases, Plugins, und geplanten "
+"Features zu erhalten.
"
+
+msgid "installer.upgradeComplete"
+msgstr ""
+"Der Upgrade von OMP auf Version {$version} wurde erfolgreich "
+"abgeschlossen.
\n"
+"Vergessen Sie nicht, die \"installiert\"-Einstellung in Ihrer config."
+"inc.php Konfigurationsdatei auf Ein zurückzusetzen.
\n"
+"Besuchen Sie das Community Forum oder melden Sie sich für den Developer Newsletter an, um "
+"Sicherheitshinweise und Updates zu neuen Releases, Plugins, und geplanten "
+"Features zu erhalten.
"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"Das Abgabedatum für Begutachtungsrunde {$round} von Manuskript "
+"{$submissionId} durch {$reviewerName} wurde auf den {$dueDate} festgesetzt."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"{$reviewerName} hat es abgelehnt, an der Begutachtungsrunde {$round} für "
+"Manuskript {$submissionId} teilzunehmen."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"{$reviewerName} hat der Teilnahme an der Begutachtungsrunde {$round} für "
+"Manuskript {$submissionId} zugestimmt."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"{$editorName} hat die Begutachtungsrunde {$round} für Manuskript "
+"{$submissionId} als 'nicht berücksichtigt' markiert."
+
+msgid "log.editor.decision"
+msgstr ""
+"Die Entscheidung des Herausgebers ({$decision}) zu Monographie "
+"{$submissionId} wurde von {$editorName} protokolliert."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"Eine Bearbeiter/innen-Empfehlung ({$decision}) für Monographie "
+"{$submissionId} wurde von {$editorName} gemacht."
+
+msgid "log.editor.archived"
+msgstr "Manuskript {$submissionId} wurde archiviert."
+
+msgid "log.editor.restored"
+msgstr "Manuskript {$submissionId} wurde in die Warteschlange zurückgestellt."
+
+msgid "log.editor.editorAssigned"
+msgstr ""
+"{$editorName} wurde als Herausgeber/in des Manuskripts {$submissionId} "
+"bestimmt."
+
+msgid "log.proofread.assign"
+msgstr ""
+"{$assignerName} hat {$proofreaderName} zum Korrektor für Manuskript "
+"{$submissionId} bestimmt."
+
+msgid "log.proofread.complete"
+msgstr "{$proofreaderName} hat {$submissionId} zur Planung eingereichtng."
+
+msgid "log.imported"
+msgstr "{$userName} hat Monographie {$submissionId} importiert."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Code hinzugefügt."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Code bearbeitet."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Code entfernt."
+
+msgid "notification.addedPublicationDate"
+msgstr "Erscheinungsdatum hinzugefügt."
+
+msgid "notification.editedPublicationDate"
+msgstr "Erscheinungsdatum bearbeitet."
+
+msgid "notification.removedPublicationDate"
+msgstr "Erscheinungsdatum entfernt."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Format hinzugefügt."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Format bearbeitet."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Format entfernt."
+
+msgid "notification.addedSalesRights"
+msgstr "Vertriebsrechte hinzugefügt."
+
+msgid "notification.editedSalesRights"
+msgstr "Vertriebsrechte bearbeitet."
+
+msgid "notification.removedSalesRights"
+msgstr "Vertriebsrechte gelöscht."
+
+msgid "notification.addedRepresentative"
+msgstr "Vertriebspartner hinzugefügt."
+
+msgid "notification.editedRepresentative"
+msgstr "Vertriebspartner bearbeitet."
+
+msgid "notification.removedRepresentative"
+msgstr "Vertriebspartner entfernt."
+
+msgid "notification.addedMarket"
+msgstr "Absatzmarkt hinzugefügt."
+
+msgid "notification.editedMarket"
+msgstr "Absatzmarkt bearbeitet."
+
+msgid "notification.removedMarket"
+msgstr "Absatzmarkt gelöscht."
+
+msgid "notification.addedSpotlight"
+msgstr "Spotlight hinzugefügt."
+
+msgid "notification.editedSpotlight"
+msgstr "Spotlight bearbeitet."
+
+msgid "notification.removedSpotlight"
+msgstr "Spotlight entfernt."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Die Katalogmetadaten wurden gespeichert."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Die Metadaten dieses Formats wurden gespeichert."
+
+msgid "notification.proofsApproved"
+msgstr "Korrekurfahnen akzeptiert."
+
+msgid "notification.removedSubmission"
+msgstr "Das eingereichte Manuskript wurde gelöscht."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Eine neue Monographie, \"{$title},\" wurde eingereicht."
+
+msgid "notification.type.editing"
+msgstr "Bei der redaktionellen Bearbeitung aufgetretene Ereignisse"
+
+msgid "notification.type.reviewing"
+msgstr "Bei der Begutachtung aufgetretene Ereignisse"
+
+msgid "notification.type.site"
+msgstr "Auf der Webite aufgetretene Ereignisse"
+
+msgid "notification.type.submissions"
+msgstr "Bei der Manuskripteinreichung aufgetretene Ereignisse"
+
+msgid "notification.type.userComment"
+msgstr "Ein Leser hat einen Kommentar zu \"{$title}\" geschrieben."
+
+msgid "notification.type.public"
+msgstr "Öffentliche Ankündigungen"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr ""
+"Eine neue Monographie wurde eingereicht. Sie muss noch einem Herausgeber/"
+"einer Herausgeberin zugewiesen werden."
+
+msgid "notification.type.copyeditorRequest"
+msgstr ""
+"Sie wurden um die Durchsicht der lektorierten Manuskripte \"{$file}\" "
+"gebeten."
+
+msgid "notification.type.layouteditorRequest"
+msgstr "Sie wurden um die Durchsicht der Layout-Dateien \"{$title}\" gebeten."
+
+msgid "notification.type.indexRequest"
+msgstr "Sie wurden gebeten, einen Index für \"{$title}\" zu erstellen."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Der interne Begutachtungsprozess wurde gestartet."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Das eingereichte Manuskript muss noch im Katalogtool als akzeptiert "
+"gekennzeichnet werden. Sobald dies geschehen ist, wird es im öffentlichen "
+"Verlagskatalog erscheinen."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "Warten auf Freigabe."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"Die Monographie wird nicht im Katalog gelistet, bevor sie publiziert wurde. "
+"Um dieses Buch dem Katalog hinzuzufügen, klicken Sie bitte auf den Tab "
+"Publikation."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "Es wurde noch keine Zahlungsweise konfiguriert."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"Bevor Sie die E-Commerce-Einstellungen definieren können, müssen Sie "
+"zunächst eine Zahlungsweise konfigurieren."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Katalogverwaltung"
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+"Die Monographie wurde zugelassen. Bitte nutzen Sie die obigen Links zu "
+"\"Marketing\" und \"Publikation\" um die Details der Monographie zu "
+"bearbeiten."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+"Der Zugang wurde Ihnen verweigert, da Sie für diese Monographie nicht als "
+"Gutachter/in zugelassen sind."
+
+msgid "user.authorization.monographAuthor"
+msgstr ""
+"Der Zugang wurde Ihnen verweigert, da Sie anscheinend nicht der Autor/die "
+"Autorin dieser Monographie sind."
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"Der Zugang wurde Ihnen verweigert, da diese Monographie Ihnen anscheinend "
+"nicht zur Begutachtung zugewiesen wurde."
+
+msgid "user.authorization.monographFile"
+msgstr "Der Zugang zu dieser Buchdatei wurde verweigert."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "Ungültiges Buch oder kein Buch angefordert!"
+
+msgid "user.authorization.noContext"
+msgstr "Kein Verlag im Kontext."
+
+msgid "user.authorization.seriesAssignment"
+msgstr ""
+"Sie versuchen, auf eine Monographie zuzugreifen, die nicht mehr zu Ihrer "
+"Reihe gehört."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr ""
+"Zugriff verweigert! Sie sind nicht für dieses Stadium des "
+"Publikationsprozesses freigeschaltet."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"Zugriff verweigert! Die Benutzer/innengruppe, in der Sie aktuell aktiv sind, "
+"ist nicht mit dieser Phase des Publikationsprozesses befasst. Bitte "
+"überprüfen Sie Ihre Einstellungen."
+
+msgid "payment.directSales"
+msgstr "Download von der Verlagswebseite"
+
+msgid "payment.directSales.price"
+msgstr "Preis"
+
+msgid "payment.directSales.availability"
+msgstr "Verfügbarkeit"
+
+msgid "payment.directSales.catalog"
+msgstr "Katalog"
+
+msgid "payment.directSales.approved"
+msgstr "Akzeptiert"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Preis ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr ""
+"Preise sollten ausschließlich numerisch sein. Geben Sie keine "
+"Währungssymbole mit ein."
+
+msgid "payment.directSales.directSales"
+msgstr "Direktvertrieb"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Nicht verfügbar"
+
+msgid "payment.directSales.notSet"
+msgstr "Nicht festgelegt"
+
+msgid "payment.directSales.openAccess"
+msgstr "Open Access"
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"Dateiformate können den Lesern auf der Verlagswebseite entweder im Open "
+"Access oder gegen Bezahlung zum Download angeboten werden. (Für den "
+"kostenpflichten Download wird das unter 'Vertrieb' konfigurierte Online-"
+"Bezahlsystem verwendet.) Bitte geben Sie die Zugriffsbedingungen für diese "
+"Datei an."
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Bitte geben Sie einen gültigen Preis (als Zahl) ein."
+
+msgid "payment.directSales.purchase"
+msgstr "{$format} kaufen ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "{$format} herunterladen"
+
+msgid "payment.directSales.monograph.name"
+msgstr "Download einer Monographie oder eines Kapitels erwerben"
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+"Diese Transaktion dient dem Erwerb eines direkten Buch- oder "
+"Kapiteldownloads."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+"XML Hilfe Mapping Datei {$filename} neu geladen bei der Suche von {$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Buch"
+
+msgid "submission.pdf.download"
+msgstr "PDF herunterladen"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Andere Verlage anzeigen"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "Andere Verlage verbergen"
+
+msgid "submission.round"
+msgstr "Durchgang {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "Die angegbene veröffentlichte Einreichung ist ungültig."
+
+msgid "catalog.coverImageTitle"
+msgstr "Umschlagbild"
+
+msgid "grid.catalogEntry.chapters"
+msgstr "Kapitel"
+
+msgid "search.results.orderBy.article"
+msgstr "Artikeltitel"
+
+msgid "search.results.orderBy.author"
+msgstr "Autor/in"
+
+msgid "search.results.orderBy.date"
+msgstr "Publikationsdatum"
+
+msgid "search.results.orderBy.monograph"
+msgstr "Monographientitel"
+
+msgid "search.results.orderBy.press"
+msgstr "Verlagstitel"
+
+msgid "search.results.orderBy.popularityAll"
+msgstr "Beliebtheit (All Time)"
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr "Beliebtheit (Letzter Monat)"
+
+msgid "search.results.orderBy.relevance"
+msgstr "Relevanz"
+
+msgid "search.results.orderDir.asc"
+msgstr "Aufsteigend"
+
+msgid "search.results.orderDir.desc"
+msgstr "Absteigend"
+
+#~ msgid "catalog.manage.homepage"
+#~ msgstr "Homepage"
+
+#~ msgid "user.register.completeForm"
+#~ msgstr "Füllen Sie das Formular aus, um sich beim Verlag zu registrieren"
+
+#~ msgid "user.register.alreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Klicken Sie hier, wenn Sie bereits "
+#~ "registriert sind."
+
+#~ msgid "user.register.notAlreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Klicken Sie hier, wenn Sie sich noch "
+#~ "nicht bei diesem oder einem anderen Verlag dieser "
+#~ "Website registriert haben."
+
+#~ msgid "user.register.loginToRegister"
+#~ msgstr ""
+#~ "Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um sich zu "
+#~ "registrieren."
+
+#~ msgid "about.aboutThePress"
+#~ msgstr "Über den Verlag"
+
+#~ msgid "about.sponsors"
+#~ msgstr "Sponsor/innen"
+
+#~ msgid "about.contributors"
+#~ msgstr "Förderer"
+
+#~ msgid "grid.series.urlWillBe"
+#~ msgstr ""
+#~ "Die URL der Reihe soll lauten {$sampleUrl}. 'Path' (deutsch \"Pfad\") ist "
+#~ "eine Zeichenkette, durch die die Reihe eindeutig identifizierbar wird."
+
+msgid "section.section"
+msgstr "Reihe"
diff --git a/locale/de/manager.po b/locale/de/manager.po
new file mode 100644
index 00000000000..0581fe541d8
--- /dev/null
+++ b/locale/de/manager.po
@@ -0,0 +1,1819 @@
+# Pia Piontkowitz , 2021, 2022, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2023-05-01 15:49+0000\n"
+"Last-Translator: Pia Piontkowitz \n"
+"Language-Team: German "
+"\n"
+"Language: 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 4.13.1\n"
+
+msgid "manager.language.confirmDefaultSettingsOverwrite"
+msgstr ""
+"Damit werden alle bisher vorgenommenen Anpassungen für diese "
+"Regionaleinstellungen ersetzt"
+
+msgid "manager.languages.noneAvailable"
+msgstr ""
+"Leider sind keine weiteren Sprachen verfügbar. Kontaktieren Sie Ihre/n "
+"Website-Administrator/in, wenn Sie weitere Sprachen verwenden möchten."
+
+msgid "manager.languages.primaryLocaleInstructions"
+msgstr ""
+"Diese Sprache wird die voreingestellte Sprache für die Verlagswebsite sein."
+
+msgid "manager.series.form.mustAllowPermission"
+msgstr ""
+"Bitte stellen Sie sicher, dass für die Zuweisung der Reihe zu einem/einer "
+"Reihenherausgeber/in zumindest eine Checkbox aktiviert wurde."
+
+msgid "manager.series.form.reviewFormId"
+msgstr ""
+"Stellen Sie sicher, dass Sie ein gültiges Gutachtenformular gewählt haben."
+
+msgid "manager.series.submissionIndexing"
+msgstr "Wird nicht in die Indizierung eingeschlossen"
+
+msgid "manager.series.editorRestriction"
+msgstr ""
+"Titel können nur von Herausgeber/innen und Reihenherausgeber/innen "
+"eingereicht werden."
+
+msgid "manager.series.confirmDelete"
+msgstr "Sind Sie sicher, dass Sie die Reihe endgültig löschen wollen?"
+
+msgid "manager.series.indexed"
+msgstr "Indiziert"
+
+msgid "manager.series.open"
+msgstr "Offene Einreichungen"
+
+msgid "manager.series.readingTools"
+msgstr "Lesewerkzeuge"
+
+msgid "manager.series.submissionReview"
+msgstr "Kein Peer Review"
+
+msgid "manager.series.submissionsToThisSection"
+msgstr "In dieser Reihe eingereichte Manuskripte"
+
+msgid "manager.series.abstractsNotRequired"
+msgstr "Keine Abstracts verlangen"
+
+msgid "manager.series.disableComments"
+msgstr "Leser/innenkommentarfunktion für diese Serie deaktivieren."
+
+msgid "manager.series.book"
+msgstr "Buchreihe"
+
+msgid "manager.series.create"
+msgstr "Reihe anlegen"
+
+msgid "manager.series.policy"
+msgstr "Beschreibung der Reihe"
+
+msgid "manager.series.assigned"
+msgstr "Herausgeber/innen dieser Reihe"
+
+msgid "manager.series.seriesEditorInstructions"
+msgstr ""
+"Fügen Sie eine/n Reihenherausgeber/in aus der Liste der verfügbaren "
+"Reihenherausgeber/innen hinzu. Legen Sie anschließend fest, ob der/die "
+"Reihenherausgeber/in den Begutachtungsprozess koordinieren UND die Redaktion "
+"(Lektorat, Layout und Korrekturlesen) der Manuskripte dieser Reihe "
+"übernehmen oder nur eine der beiden Aufgabenfelder wahrnehmen soll. Möchten "
+"Sie eine/n Reihenherausgeber/in neu anlegen, gehen Sie über \"Verwaltung\" > "
+"\"Einstellungen und Funktionen\" auf \"Funktionen\" und klicken Sie dort auf "
+"Reihenherausgeber/innen ."
+
+msgid "manager.series.hideAbout"
+msgstr "Diese Reihe nicht unter \"Über uns\" anzeigen."
+
+msgid "manager.series.unassigned"
+msgstr "Verfügbare Reihenherausgeber/innen"
+
+msgid "manager.series.form.abbrevRequired"
+msgstr "Für Reihen wird ein Kurztitel benötigt."
+
+msgid "manager.series.form.titleRequired"
+msgstr "Es wird ein Titel für die Reihe benötigt."
+
+msgid "manager.series.noneCreated"
+msgstr "Es wurde keine Reihe angelegt."
+
+msgid "manager.series.existingUsers"
+msgstr "Bestehende Benutzer/innen"
+
+msgid "manager.series.seriesTitle"
+msgstr "Reihentitel"
+
+msgid "manager.series.restricted"
+msgstr "Verbieten Sie Autor/innen, direkt bei dieser Reihe einzureichen."
+
+msgid "manager.payment.generalOptions"
+msgstr "Allgemeine Optionen"
+
+msgid "manager.payment.options.enablePayments"
+msgstr ""
+"Zahlungen werden für diesen Verlag aktiviert. Beachten Sie, dass Nutzer/"
+"innen sich einloggen müssen um Zahlungen zu machen."
+
+msgid "manager.payment.success"
+msgstr "Die Zahlungs-Einstellungen wurden aktualisiert."
+
+msgid "manager.settings"
+msgstr "Einstellungen"
+
+msgid "manager.settings.pressSettings"
+msgstr "Verlagseinstellungen"
+
+msgid "manager.settings.press"
+msgstr "Verlag"
+
+msgid "manager.settings.publisher.identity"
+msgstr "Identität des Verlegers"
+
+msgid "manager.settings.publisher.identity.description"
+msgstr ""
+"Diese Felder werden zwar nicht grundsätzlich für die Verwendung von OMP, "
+"aber zur Erzeugung gültiger ONIX-Metadaten benötigt. Bitte fügen Sie sie ein, wenn "
+"Sie die ONIX-Funktionalität verwenden möchten."
+
+msgid "manager.settings.publisher"
+msgstr "Verlagsname"
+
+msgid "manager.settings.location"
+msgstr "Standort"
+
+msgid "manager.settings.publisherCode"
+msgstr "Verlagscode"
+
+msgid "manager.settings.publisherCodeType"
+msgstr "Verlagscode-Typ"
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr "Dies ist kein gültiger Verleger Code Typ."
+
+msgid "manager.settings.distributionDescription"
+msgstr ""
+"Einstellungen, die den Vertrieb betreffen (Benachrichtigung, Indizierung, "
+"Archivierung, Bezahlung, Lesewerkzeuge)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr "Monographie herunterladen"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr "Seitenaufrufe Abstract"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr "Abstract der Monographie und Downloads"
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr "Seitenaufrufe Hauptseite der Reihe"
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr "Seitenaufrufe Hauptseite des Verlags"
+
+msgid "manager.tools"
+msgstr "Werkzeuge"
+
+msgid "manager.tools.importExport"
+msgstr ""
+"Für den Datenimport/-export (Verlage, Monographien, Benutzer/innen) "
+"spezifische Werkzeuge"
+
+msgid "manager.tools.statistics"
+msgstr ""
+"Werkzeuge um Berichte zu erzeugen, die sich auf Nutzungsstatistiken beziehen "
+"(Anzeigen des Katalogs, Anzeigen von Buchabstracts, Buchdownloads)"
+
+msgid "manager.users.availableRoles"
+msgstr "Vorhandene Funktionen"
+
+msgid "manager.users.currentRoles"
+msgstr "Aktuelle Funktionen"
+
+msgid "manager.users.selectRole"
+msgstr "Funktion auswählen"
+
+msgid "manager.people.allEnrolledUsers"
+msgstr "In diesem Verlag registrierte Nutzer/innen"
+
+msgid "manager.people.allPresses"
+msgstr "Alle Verlage"
+
+msgid "manager.people.allSiteUsers"
+msgstr "Eine/n Benutzer/in dieser Website für diesen Verlag eintragen"
+
+msgid "manager.people.allUsers"
+msgstr "Alle registrierten Benutzer/innen"
+
+msgid "manager.people.confirmRemove"
+msgstr ""
+"Möchten Sie diese/n Benutzer/in wirklich aus dem Verlag entfernen? Mit "
+"dieser Aktion wird die Person aus allen Funktionen entfernt, denen sie "
+"zugeordnet war."
+
+msgid "manager.people.enrollExistingUser"
+msgstr "Eine/n bereits existierende/n Benutzer/in eintragen"
+
+msgid "manager.people.enrollSyncPress"
+msgstr "Beim Verlag"
+
+msgid "manager.people.mergeUsers.from.description"
+msgstr ""
+"Wählen Sie eine/n Benutzer/in aus, deren/dessen Daten in einem anderen Konto "
+"zusammengeführt werden sollen (wenn jemand z.B. zwei Konten hat). Das zuerst "
+"ausgewählte Konto wird gelöscht, seine Beiträge, Aufgaben usw. werden dem "
+"zweiten Konto zugeschrieben."
+
+msgid "manager.people.mergeUsers.into.description"
+msgstr ""
+"Wählen Sie ein Benutzer/innenkonto aus, auf das die bestehenden Autor/"
+"innenschaften, Aufgaben etc. übertragen werden sollen."
+
+msgid "manager.people.syncUserDescription"
+msgstr ""
+"Bei dieser Synchronisation werden alle Benutzer/innen, die in einer "
+"bestimmten Funktion bei einem bestimmten Verlag eingetragen sind, in der "
+"gleichen Funktion auch in diesem Verlag eingetragen. Damit ist möglich, eine "
+"gemeinsame Benutzer/innengruppe (zum Beispiel Gutacher/innen) zwischen den "
+"Verlagen zu synchronisieren."
+
+msgid "manager.people.confirmDisable"
+msgstr ""
+"Möchten Sie diese/n Benutzer/in deaktivieren? Der/die Benutzer/in wird sich "
+"dann nicht mehr einloggen können.\n"
+"\n"
+"Sie können dem/der Benutzer/in den Grund für die Deaktivierung des Kontos "
+"nennen (optional)."
+
+msgid "manager.people.noAdministrativeRights"
+msgstr ""
+"Sie besitzen nicht die administrativen Rechte an diesem Benutzer/innenkonto. "
+"Grund dafür kann sein, dass:\n"
+"\t\t\n"
+"\t\t\t- der/die Benutzer/in Website-Administrator/in ist
\n"
+"\t\t\t- der/die Benutzer/in in einem Verlag aktiv ist, den Sie nicht "
+"verwalten
\n"
+"\t\t
\n"
+"\tDieser Task muss von einem Website-Administrator ausgeführt werden.\n"
+"\t"
+
+msgid "manager.system"
+msgstr "Systemeinstellungen"
+
+msgid "manager.system.archiving"
+msgstr "Archivieren"
+
+msgid "manager.system.reviewForms"
+msgstr "Gutachtenformulare"
+
+msgid "manager.system.readingTools"
+msgstr "Lesewerkzeuge"
+
+msgid "manager.system.payments"
+msgstr "Bezahlverfahren"
+
+msgid "user.authorization.pluginLevel"
+msgstr ""
+"Sie haben keine ausreichende Berechtigung, um dieses Plugin zu verwalten."
+
+msgid "manager.pressManagement"
+msgstr "Verlagsverwaltung"
+
+msgid "manager.setup"
+msgstr "Setup"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Inhalt"
+
+msgid "manager.setup.addAboutItem"
+msgstr "Navigationspunkt zu 'Über uns' hinzufügen"
+
+msgid "manager.setup.addChecklistItem"
+msgstr "Punkt zur Checkliste hinzufügen"
+
+msgid "manager.setup.addItem"
+msgstr "Punkt hinzufügen"
+
+msgid "manager.setup.addItemtoAboutPress"
+msgstr "Punkt hinzufügen, der unter \"Über uns\" erscheint"
+
+msgid "manager.setup.addNavItem"
+msgstr "Navigationspunkt hinzufügen"
+
+msgid "manager.setup.addSponsor"
+msgstr "Sponsororganisation hinzufügen"
+
+msgid "manager.setup.announcements"
+msgstr "Bekanntmachungen"
+
+msgid "manager.setup.announcements.success"
+msgstr "Die Ankündigungs-Einstellungen wurden aktualisiert."
+
+msgid "manager.setup.announcementsDescription"
+msgstr ""
+"Mithilfe von Bekanntmachungen können Sie Leser/innen über Neuigkeiten "
+"informieren und auf Veranstaltungen des Verlages hinweisen. Die "
+"Bekanntmachungen erscheinen auf der Seite 'Bekanntmachungen'."
+
+msgid "manager.setup.announcementsIntroduction"
+msgstr "Zusätzliche Informationen"
+
+msgid "manager.setup.announcementsIntroduction.description"
+msgstr ""
+"Fügen Sie weitere Informationen hinzu, die den Leser/innen auf der Seite "
+"'Bekanntmachungen' angezeigt werden sollen."
+
+msgid "manager.setup.appearInAboutPress"
+msgstr "(Erscheint in 'Über uns') "
+
+msgid "manager.setup.contextAbout"
+msgstr "Über den Verlag"
+
+msgid "manager.setup.contextAbout.description"
+msgstr ""
+"Nennen Sie jegliche Informationen über Ihren Verlag, die für Leser/innen, "
+"Autor/innen, oder Gutachter/innen von Interesse sein könnten. Dies könnte "
+"Ihre Open Access Policy, den Fokus und die Reichweite des Verlags, "
+"Sponsoren, und die Geschichte Ihres Verlags beinhalten."
+
+msgid "manager.setup.contextSummary"
+msgstr "Beschreibung des Verlags"
+
+msgid "manager.setup.copyediting"
+msgstr "Lektor/innen"
+
+msgid "manager.setup.copyeditInstructions"
+msgstr "Lektoratsrichtlinien"
+
+msgid "manager.setup.copyeditInstructionsDescription"
+msgstr ""
+"Die Lektoratsrichtlinien sind den Lektor/innen, Autor/innen und "
+"Sektionsherausgeber/innen im Stadium 'Redaktionelle Bearbeitung' zugänglich. "
+"Unten auf der Seite befindet sich eine Reihe an Standardvorgaben in HTML. "
+"Sie können von der/dem Verlagsleiter/in an jeder Stelle verändert oder "
+"ersetzt werden (in HTML oder im Klartext)."
+
+msgid "manager.setup.copyrightNotice"
+msgstr "Copyright-Vermerk"
+
+msgid "manager.setup.coverage"
+msgstr "Inhaltlicher Umfang"
+
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr "Titelbild Max Höhe"
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr "Titelbild Max Breite"
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr ""
+"Bilder werden reduziert, wenn sie größer als erlaubt sind. Sie werden nie "
+"vergrößert oder gestreckt um den Dimensionen angepasst zu werden."
+
+msgid "manager.setup.customizingTheLook"
+msgstr "Schritt 5. Look & Feel anpassen"
+
+msgid "manager.setup.customTags"
+msgstr "Benutzerdefinierte Tags"
+
+msgid "manager.setup.customTagsDescription"
+msgstr ""
+"Benutzerdefinierte HTML-Header-Tags, die auf jeder Seite in den Header "
+"eingefügt werden (zum Beispiel META-Tags)."
+
+msgid "manager.setup.details"
+msgstr "Angaben"
+
+msgid "manager.setup.details.description"
+msgstr "Verlagsname, Ansprechpartner/in, Sponsoren und Suchmaschinen."
+
+msgid "manager.setup.disableUserRegistration"
+msgstr ""
+"Verlagsleiter/innen registrieren alle Benutzer/innen. Sie sind zusammen mit "
+"den Herausgeber/innen und Sektionsherausgeber/innen die einzigen, die "
+"Gutachter/innen registrieren können."
+
+msgid "manager.setup.discipline"
+msgstr "Wissenschafltliche Disziplinen und Teildisziplinen"
+
+msgid "manager.setup.disciplineDescription"
+msgstr ""
+"Dies ist nützlich, wenn der Verlag Disziplingrenzen überschreitet und/oder "
+"Autor/innen interdisziplinäre Veröffentlichungen einreichen."
+
+msgid "manager.setup.disciplineExamples"
+msgstr ""
+"(z.B. Geschichte; Erziehungswissenschaften; Soziologie; Psychologie; "
+"Kulturwissenschaften; Rechtswissenschaften)"
+
+msgid "manager.setup.disciplineProvideExamples"
+msgstr ""
+"Nennen Sie Beispiele für relevante akademische Disziplinen Ihres Verlages"
+
+msgid "manager.setup.displayCurrentMonograph"
+msgstr ""
+"Fügen Sie ein Inhaltsverzeichnis für die aktuelle Monographie bei (falls "
+"verfügbar)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr "Homepage-Inhalt"
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr "Featured Bücher auf der Startseite anzeigen"
+
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr "Featured Bücher"
+
+msgid "manager.setup.displayInSpotlight"
+msgstr "Bücher im Spotlight auf der Startseite anzeigen"
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr "Spotlight"
+
+msgid "manager.setup.displayNewReleases"
+msgstr "Neuerscheinungen auf der Startseite anzeigen"
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr "Neuerscheinungen"
+
+msgid "manager.setup.enableDois.description"
+msgstr ""
+"Digital Object Identifier (DOIs) zu Monographien, Kapiteln, "
+"Publikationsformaten, und Dateien zuweisen."
+
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr ""
+"Bitte wählen Sie die Objekte aus, denen DOIs zugewiesen werden sollen. Die "
+"meisten Verlage vergeben DOIs an Monographien/Kapitel, aber vielleicht "
+"möchten Sie allen veröffentlichen Objekten DOIs zuweisen."
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr ""
+"Standard-Patterns verwenden.
%p.%m für Monographien
%p.%m.c%c für "
+"Kapitel
%p.%m.%f für Publikationsformate
%p.%m.%f.%s für Dateien."
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr "Im Schritt \"Lektorat\""
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr "Format / {$format}"
+
+msgid "manager.setup.editorDecision"
+msgstr "Entscheidung des Herausgebers/der Herausgeberin"
+
+msgid "manager.setup.emailBounceAddress"
+msgstr "E-Mail-Adresse für Unzustellbarkeitsnachrichten (Bounce Messages)"
+
+msgid "manager.setup.emailBounceAddress.description"
+msgstr ""
+"Jede unzustellbare E-Mail führt zum Versand einer Fehlernachricht an diese E-"
+"Mail-Adresse."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr ""
+"Um eine unzustellbare E-Mail an eine Bounce Adresse zu schicken, muss der "
+"Administrator die allow_envelope_sender
Option in der "
+"Konfigurationsdatei der Seite aktivieren. Möglicherweise ist, wie in der OMP "
+"Dokumentation beschrieben, die Konfiguration des Servers notwendig."
+
+msgid "manager.setup.emails"
+msgstr "E-Mail-Identifizierung"
+
+msgid "manager.setup.emailSignature"
+msgstr "Signatur"
+
+msgid "manager.setup.emailSignature.description"
+msgstr ""
+"Alle E-Mails, die vom System im Namen des Verlags verschickt werden, tragen "
+"die folgende Signatur."
+
+msgid "manager.setup.enableAnnouncements.enable"
+msgstr "Ankündigungen freischalten"
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr ""
+"Ankündigungen können veröffentlicht werden um Leser/innen über Neuigkeiten "
+"und Events zu informieren. Veröffentlichte Ankündigungen erscheinen auf der "
+"Seite \"Ankündigungen\"."
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr "Auf der Homepage anzeigen"
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr ""
+"Wie viele Ankündigungen auf der Homepage erscheinen. Lassen Sie das Feld "
+"leer, um keine Ankündigungen anzeigen zu lassen."
+
+msgid "manager.setup.enablePressInstructions"
+msgstr ""
+"Diesen Verlag für das öffentliche Erscheinen auf der Website freischalten"
+
+msgid "manager.setup.enablePublicMonographId"
+msgstr ""
+"Benutzerdefinierte Kennungen werden verwendet, um veröffentlichte Titel zu "
+"identifizieren."
+
+msgid "manager.setup.enablePublicGalleyId"
+msgstr ""
+"Benutzerdefinierte Kennungen werden verwendet, um Fahnen (z.B. HTML- oder "
+"PDF-Dateien) für veröffentlichte Bände zu identifizieren."
+
+msgid "manager.setup.enableUserRegistration"
+msgstr "Benutzer/innen können sich beim Verlag registrieren."
+
+msgid "manager.setup.focusAndScope"
+msgstr "Verlagsprofil"
+
+msgid "manager.setup.focusAndScope.description"
+msgstr ""
+"Fügen Sie eine kurze Selbstdarstellung des Verlages (auf der Website unter "
+"'Über uns' aufrufbar) ein, in der Sie Autor/innen, Leser/innen und "
+"Bibliothekar/innen einen Eindruck von dem Spektrum an Monographien und "
+"anderen Verlagsprodukten vermitteln, das der Verlag veröffentlichen wird."
+
+msgid "manager.setup.focusScope"
+msgstr "Verlagsprofil"
+
+msgid "manager.setup.focusScopeDescription"
+msgstr "BEISPIEL HTML-DATEN"
+
+msgid "manager.setup.forAuthorsToIndexTheirWork"
+msgstr "Für Autor/innen zur Indizierung ihres Werkes"
+
+msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
+msgstr ""
+"OMP setzt das Open Archives Initiative Protocol for Metadata Harvesting ein, "
+"welches ein zukünftiger Standard für die weltweite Abfrage und Übertragung "
+"von Metadaten ist. Die Autoren werden ein entsprechendes Template verwenden, "
+"um die Metadaten für ihr Manuskript zu liefern. Der/die Verlagsleiter/in "
+"sollte die Kategorien für die Indizierung auswählen und den Autoren "
+"Beispiele zeigen, um ihnen beim Indizieren ihrer Werke zu helfen; die "
+"Kategoriebegriffen werden dabei jeweils mit einem Semikolon voneinander "
+"getrennt (zum Beispiel: Begriff 1; Begriff 2). Die Einträge sollten als "
+"Beispiele kenntlich gemacht werden, in dem \"z.B.\" oder \"zum Beispiel\" "
+"vorangestellt wird."
+
+msgid "manager.setup.form.contactEmailRequired"
+msgstr "Die E-Mail-Adresse des Hauptansprechpartners wird benötigt."
+
+msgid "manager.setup.form.contactNameRequired"
+msgstr "Der Name des zentralen Ansprechpartners wird benötigt."
+
+msgid "manager.setup.form.numReviewersPerSubmission"
+msgstr "Bitte geben Sie die Zahl der Gutachter pro Manuskript an."
+
+msgid "manager.setup.form.supportEmailRequired"
+msgstr "Die E-Mail des Supports wird benötigt."
+
+msgid "manager.setup.form.supportNameRequired"
+msgstr "Der Supportname wird benötigt."
+
+msgid "manager.setup.generalInformation"
+msgstr "Allgemeine Informationen"
+
+msgid "manager.setup.gettingDownTheDetails"
+msgstr "Schritt 1: Sich mit dem System vetraut machen"
+
+msgid "manager.setup.guidelines"
+msgstr "Leitfaden"
+
+msgid "manager.setup.preparingWorkflow"
+msgstr "Schritt 3: Den Workflow vorbereiten"
+
+msgid "manager.setup.identity"
+msgstr "Verlagsidentität"
+
+msgid "manager.setup.information"
+msgstr "Informationen"
+
+msgid "manager.setup.information.description"
+msgstr ""
+"Diese kurzen Beschreibungen des Verlages, gerichtet an Bibliothekar/innen, "
+"interessierte Autor/innen und Leser/innen, erscheinen in der Sidebar unter "
+"dem Punkt 'Informationen'."
+
+msgid "manager.setup.information.forAuthors"
+msgstr "Für Autor/innen"
+
+msgid "manager.setup.information.forLibrarians"
+msgstr "Für Bibliothekar/innen"
+
+msgid "manager.setup.information.forReaders"
+msgstr "Für Leser/innen"
+
+msgid "manager.setup.information.success"
+msgstr "Die Informationen über diesen Verlag wurden aktualisiert."
+
+msgid "manager.setup.institution"
+msgstr "Institution"
+
+msgid "manager.setup.itemsPerPage"
+msgstr "Elemente pro Seite"
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr ""
+"Begrenzen Sie die Anzahl von Elementen (z.B. Einreichungen, Nutzer/innen, "
+"oder Begutachtungszuordnungen), die in einer Liste angezeigt werden, bevor "
+"weitere Elemente auf der nächsten Seite angezeigt werden."
+
+msgid "manager.setup.keyInfo"
+msgstr "Hauptinformationen"
+
+msgid "manager.setup.keyInfo.description"
+msgstr ""
+"Fügen Sie eine kurze Beschreibung Ihres Verlags ein und identifizieren Sie "
+"Redakteur/innen, Managing Directors und weitere Mitglieder des "
+"redaktionellen Teams."
+
+msgid "manager.setup.labelName"
+msgstr "Labelname"
+
+msgid "manager.setup.layoutAndGalleys"
+msgstr "Layouter/in"
+
+msgid "manager.setup.layoutInstructions"
+msgstr "Layoutrichtlinien"
+
+msgid "manager.setup.layoutInstructionsDescription"
+msgstr ""
+"Für die Formatierung von Veröffentlichungen können Layoutrichtlinien "
+"erstellt und unten entweder in HTML oder in Klartext eingefügt werden. Sie "
+"stehen dem Layouter und dem Sektionsherausgeber auf der Editierseite jedes "
+"Manuskripts zur Verfügung. (Da jeder Verlag seine eigenen Dateiformate, "
+"bibliographischen Standards, Stylesheets etc. verwenden kann, sind keine "
+"Standardlayoutrichtlinien vorgesehen.)"
+
+msgid "manager.setup.layoutTemplates"
+msgstr "Layoutvorlagen"
+
+msgid "manager.setup.layoutTemplatesDescription"
+msgstr ""
+"Als Richtlinie für Layouter/innen und Korrektor/innen können Sie unter "
+"'Layout' Templates für jedes der Standardformate des Verlags (Monographien, "
+"Buchbesprechungen etc.) in einem Dateiformat Ihrer Wahl (pdf, doc etc. ) "
+"hochladen und sie mit Anmerkungen bezüglich der zu verwendenden Schriften, "
+"Größen, Randbreiten etc. versehen."
+
+msgid "manager.setup.layoutTemplates.file"
+msgstr "Template-Datei"
+
+msgid "manager.setup.layoutTemplates.title"
+msgstr "Titel"
+
+msgid "manager.setup.lists"
+msgstr "Listen"
+
+msgid "manager.setup.lists.success"
+msgstr "Die Listen-Einstellungen wurden aktualisiert."
+
+msgid "manager.setup.look"
+msgstr "Aussehen"
+
+msgid "manager.setup.look.description"
+msgstr ""
+"Homepage-Header, Inhalt, Verlags-Header, Footer, Navigationsleiste und "
+"Stylesheet."
+
+msgid "manager.setup.settings"
+msgstr "Einstellungen"
+
+msgid "manager.setup.management.description"
+msgstr ""
+"Zugriff und Sicherheit, Terminplanung, Bekanntmachungen, Lektorat, Layout "
+"und Korrektorat."
+
+msgid "manager.setup.managementOfBasicEditorialSteps"
+msgstr "Management der grundlegenden redaktionellen Schritte"
+
+msgid "manager.setup.managingPublishingSetup"
+msgstr "Setup des Verwaltungs- und Veröffentlichungsprozesses"
+
+msgid "manager.setup.managingThePress"
+msgstr "Schritt 4: Einstellungen verwalten"
+
+msgid "manager.setup.masthead.success"
+msgstr "Die Details des Impressums für diesen Verlag wurden aktualisiert."
+
+msgid "manager.setup.noImageFileUploaded"
+msgstr "Es wurde kein Bild hochgeladen."
+
+msgid "manager.setup.noStyleSheetUploaded"
+msgstr "Es wurde kein Stylesheet hochgeladen."
+
+msgid "manager.setup.note"
+msgstr "Hinweis"
+
+msgid "manager.setup.notifyAllAuthorsOnDecision"
+msgstr ""
+"Wurde das Manuskript von mehreren Autor/innen gemeinschaftlich verfasst, "
+"fügen Sie bitte in der Benachrichtungsmail an den Autor die E-Mail-Adressen "
+"aller Autor/innen mit ein, nicht nur diejenige der Person, die das "
+"Manuskript eingereicht hat."
+
+msgid "manager.setup.noUseCopyeditors"
+msgstr ""
+"Das Lektorat liegt in der Zuständigkeit von Herausgeber/in oder "
+"Sektionsherausgeber/in."
+
+msgid "manager.setup.noUseLayoutEditors"
+msgstr ""
+"Ein Herausgeber oder Sektionsherausgeber, dem das Manuskript zugewiesen "
+"wurden, bearbeitet die HTML-, PDF (etc.)-Dateien."
+
+msgid "manager.setup.noUseProofreaders"
+msgstr ""
+"Ein Herausgeber oder Sektionsherausgeber, dem das Manuskript zugewiesen "
+"wurde, prüft die Fahnen."
+
+msgid "manager.setup.numPageLinks"
+msgstr "Links"
+
+msgid "manager.setup.numPageLinks.description"
+msgstr ""
+"Begrenzen Sie die Anzahl der angezeigten Links, die auf weitere Seiten einer "
+"Liste hinweisen."
+
+msgid "manager.setup.onlineAccessManagement"
+msgstr "Zugriff auf die Verlagsinhalte"
+
+msgid "manager.setup.onlineIssn"
+msgstr "ISSN für digitale Medien"
+
+msgid "manager.setup.policies"
+msgstr "Leitlinien"
+
+msgid "manager.setup.policies.description"
+msgstr ""
+"Fokus, Peer Review, Sektionen, Datenschutz, Sicherheit und zusätzliche "
+"'Über ...'-Punkte.."
+
+msgid "manager.setup.privacyStatement.success"
+msgstr "Die Datenschutzerklärung wurde aktualisiert."
+
+msgid "manager.setup.appearanceDescription"
+msgstr ""
+"Verschiedene Komponenten des Verlagsauftrittes können von dieser Seite aus "
+"konfiguriert werden, z.B. Header- und Footerelemente, Style und Theme des "
+"Verlags sowie die Gestaltung der Listen."
+
+msgid "manager.setup.pressDescription"
+msgstr "Beschreibung des Verlags"
+
+msgid "manager.setup.pressDescription.description"
+msgstr ""
+"Fügen Sie hier bitte eine allgemeine Beschreibung des Verlages ein. Sie "
+"erscheint auf der Verlagshomepage."
+
+msgid "manager.setup.aboutPress"
+msgstr "Über den Verlag"
+
+msgid "manager.setup.aboutPress.description"
+msgstr ""
+"Nennen Sie jegliche Informationen über Ihren Verlag, die für Leser/innen, "
+"Autor/innen, oder Gutachter/innen von Interesse sein könnten. Dies könnte "
+"Ihre Open Access Policy, den Fokus und die Reichweite des Verlags, die "
+"Copyright-Notiz, Sponsoren, die Geschichte Ihres Verlags und eine "
+"Datenschutzerklärung beinhalten."
+
+msgid "manager.setup.pressArchiving"
+msgstr "Archivierung"
+
+msgid "manager.setup.homepageContent"
+msgstr "Inhalt"
+
+msgid "manager.setup.homepageContentDescription"
+msgstr ""
+"Die Verlagshomepage besteht standardmäßig aus Links zur Navigation. "
+"Zusätzlicher Inhalt kann zur Homepage hinzugefügt werden, indem eine oder "
+"mehrere der folgenden Optionen verwendet werden. Sie erscheinen auf der "
+"Homepage in der Reihenfolge, wie sie auf dieser Seite aufgeführt sind."
+
+msgid "manager.setup.pressHomepageContent"
+msgstr "Inhalt"
+
+msgid "manager.setup.pressHomepageContentDescription"
+msgstr ""
+"Die Verlagshomepage besteht standardmäßig aus Links zur Navigation. "
+"Zusätzlicher Inhalt kann zur Homepage hinzugefügt werden, indem eine oder "
+"mehrere der folgenden Optionen verwendet werden. Sie erscheinen auf der "
+"Homepage in der Reihenfolge, wie sie auf dieser Seite aufgeführt sind."
+
+msgid "manager.setup.contextInitials"
+msgstr "Verlagsinitialen"
+
+msgid "manager.setup.selectCountry"
+msgstr ""
+"Wählen Sie entweder das Land aus, in dem dieser Verlag ansässig ist, oder "
+"das Land der Mail-Adresse des Verlags oder Verlegers."
+
+msgid "manager.setup.layout"
+msgstr "Verlagslayout"
+
+msgid "manager.setup.pageHeader"
+msgstr "Header der Website"
+
+msgid "manager.setup.pageHeaderDescription"
+msgstr "Konfiguration des Headers der Seite"
+
+msgid "manager.setup.pressPolicies"
+msgstr "Schritt 2: Leitlinien des Verlags"
+
+msgid "manager.setup.pressSetup"
+msgstr "Setup"
+
+msgid "manager.setup.pressSetupUpdated"
+msgstr "Das Setup wurde aktualisiert."
+
+msgid "manager.setup.styleSheetInvalid"
+msgstr "Ungültiges Stylesheetformat. Akzeptiert wird das Format css."
+
+msgid "manager.setup.pressTheme"
+msgstr "Verlags-Theme"
+
+msgid "manager.setup.pressThumbnail"
+msgstr "Verlags-Thumbnail"
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr ""
+"Ein kleines Logo des Verlags, das in Listen von Verlagen verwendet werden "
+"kann."
+
+msgid "manager.setup.contextTitle"
+msgstr "Verlagsname"
+
+msgid "manager.setup.printIssn"
+msgstr "ISSN der Printausgabe"
+
+msgid "manager.setup.proofingInstructions"
+msgstr "Korrekturrichtlinien"
+
+msgid "manager.setup.proofingInstructionsDescription"
+msgstr ""
+"Die Korrekturrichtlinien werden Korrektor/innen, Autor/innen, Layouter/innen "
+"und Bereichsherausgeber/innen im Stadium 'Redaktionelle Bearbeitung' "
+"zugänglich gemacht. Unten finden Sie Standardrichtlinien in HTML, die von "
+"dem/der Verlagsleiter/in bearbeitet oder ersetzt werden können (in HTML oder "
+"im Klartext)."
+
+msgid "manager.setup.proofreading"
+msgstr "Korrektoren"
+
+msgid "manager.setup.provideRefLinkInstructions"
+msgstr "Stelle den Layoutern Anleitungen zur Verfügung.."
+
+msgid "manager.setup.publicationScheduleDescription"
+msgstr ""
+"Beiträge können zusammen veröffentlicht werden, als Teile einer Monographie "
+"mit einem eigenen Inhaltsverzeichnis. Es ist aber auch möglich, sie einzeln "
+"zu publizieren, indem man die Beiträge dem Inhaltsverzeichnis eines "
+"\"laufenden\" Bandes hinzufügt. Informieren Sie Ihre Leser/innen unter 'Über "
+"uns' darüber, welches Verfahren der Verlag verwenden wird und wie häufig "
+"neue Publikationen erscheinen werden."
+
+msgid "manager.setup.publisher"
+msgstr "Verlag"
+
+msgid "manager.setup.publisherDescription"
+msgstr ""
+"Der Name der Organisation, die den Verlag führt, erscheint unter 'Über uns'."
+
+msgid "manager.setup.referenceLinking"
+msgstr ""
+"Reference Linking (Verknüpfung von Literaturzitaten mit elektronischen "
+"Volltexten)"
+
+msgid "manager.setup.refLinkInstructions.description"
+msgstr "Layoutrichtlinien für Reference Linking"
+
+msgid "manager.setup.restrictMonographAccess"
+msgstr ""
+"Benutzer/innen müssen registriert und eingeloggt sein, um Open-Access-"
+"Inhalte sehen zu können."
+
+msgid "manager.setup.restrictSiteAccess"
+msgstr ""
+"Benutzer/innen müssen registriert und eingeloggt sein, um sich die "
+"Verlagswebsite anschauen zu können."
+
+msgid "manager.setup.reviewGuidelines"
+msgstr "Leitfäden für externe Begutachtungen"
+
+msgid "manager.setup.reviewGuidelinesDescription"
+msgstr ""
+"Die Leitfäden für die externe Begutachtachtung geben den externen Gutachter/"
+"innen Kriterien an die Hand, mit denen sie die Eignung des eingereichten "
+"Manuskripts beurteilen können. Die Leitfäden können auch genaue Anweisungen "
+"zur Erstellung eines gelungenen und aussagekräftigen Gutachens enthalten. "
+"Den Gutachter/innen werden bei der Erstellung der Gutachten zwei offene "
+"Textboxen angezeigt, die erste ist für Gutachten, die \"an Autor/in und "
+"Herausgeber/in\" adressiert werden sollen, die zweite für Gutachten, die nur "
+"\"an den/die Herausgeber/in\" gehen sollen. Alternativ dazu kann der "
+"Verlagsleiter auch selbst Begutachtungsformulare unter 'Gutachen-Formulare' "
+"anlegen. In allen Fällen haben die Herausgeber/innen aber immer die "
+"Möglichkeit, die Gutachten in ihre Korrespondenz mit dem Autor/der Autorin "
+"einzufügen."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr "Leitfäden für interne Begutachtungen"
+
+msgid "manager.setup.reviewOptions"
+msgstr "Begutachtungsoptionen"
+
+msgid "manager.setup.reviewOptions.automatedReminders"
+msgstr "Automatisierte E-Mail-Erinnerungen"
+
+msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
+msgstr ""
+"Um diese Optionen zu aktivieren, muss der Administrator/die Administratorin "
+"die scheduled_tasks-Option in der OMP-Konfigurationdatei freigeben. "
+"Eventuell ist eine weitere Konfiguration des Servers nötig, um diese "
+"Funktionalität zu unterstützen (dies ist unter Umständen nicht auf allen "
+"Servern möglich). Nähere Informationen dazu finden Sie in der OMP-"
+"Dokumentation."
+
+msgid "manager.setup.reviewOptions.onQuality"
+msgstr ""
+"Nach Abschluss der Begutachtung bewerten die Herausgeber/innen die Gutachter/"
+"innen auf einer Fünf-Punkte-Qualitätsskala bewerten."
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr "Dateizugriff einschränken"
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
+msgstr ""
+"Die Gutachter/innen haben erst dann Zugang zu den Manuskriptdateien, wenn "
+"sie der Begutachtung zugestimmt haben."
+
+msgid "manager.setup.reviewOptions.reviewerAccess"
+msgstr "Zugang für Gutachter/innen"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr "One-click Zugang für Gutachter/innen"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
+msgstr ""
+"Gutachter/innen kann ein sicherer Link in der E-Mail-Einladung geschickt "
+"werden, welcher den Zugang zur Begutachtung ohne Login ermöglicht. Der "
+"Zugriff auf weitere Seiten benötigt einen Login."
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr ""
+"Einen sicheren Link in die E-Mail-Einladung an Gutachter/innen einfügen."
+
+msgid "manager.setup.reviewOptions.reviewerRatings"
+msgstr "Gutachterbewertungen"
+
+msgid "manager.setup.reviewOptions.reviewerReminders"
+msgstr "Gutachtererinnerungen"
+
+msgid "manager.setup.reviewPolicy"
+msgstr "Begutachtungsleitlinien"
+
+msgid "manager.setup.searchDescription.description"
+msgstr ""
+"Fügen Sie eine kurze Beschreibung (50-300 Zeichen) des Verlags ein, die "
+"Suchmaschinen in der Suchergebnisliste anzeigen können."
+
+msgid "manager.setup.searchEngineIndexing"
+msgstr "Suchmaschinen-Indizierung"
+
+msgid "manager.setup.searchEngineIndexing.description"
+msgstr ""
+"Helfen Sie Suchmaschinen wie Google dabei, Ihre Seite zu finden und "
+"anzuzeigen. Erstellen Sie dafür eine sitemap."
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr "Die Suchmaschinenindizierung-Einstellungen wurden aktualisiert."
+
+msgid "manager.setup.sectionsAndSectionEditors"
+msgstr "Sektionen und Sektionsherausgeber/innen"
+
+msgid "manager.setup.sectionsDefaultSectionDescription"
+msgstr ""
+"(Wurden keine Sektionen hinzugefügt, werden die Titel standardmäßig der "
+"Sektion Monographien zugeordnet.)"
+
+msgid "manager.setup.sectionsDescription"
+msgstr ""
+"Um Sektionen anzulegen oder zu verändern (z.B. Monographien, "
+"Buchrezensionen), gehen Sie bitte zu 'Sektionsmanagement'.
Autor/"
+"innen, die eine Publikation beim Verlag einreichen, werden es der "
+"entsprechenden Sektion zuordnen."
+
+msgid "manager.setup.securitySettings"
+msgstr "Zugangs- und Sicherheitseinstellungen"
+
+msgid "manager.setup.securitySettings.note"
+msgstr ""
+"Andere auf die Sicherheit der Website und auf deren Zugang bezogene Optionen "
+"können von der Seite Zugang und Sicherheit aus konfiguriert werden."
+
+msgid "manager.setup.selectEditorDescription"
+msgstr ""
+"Leitende/r Herausgeber/in zur Betreuung des gesamten Publikationsprozesses."
+
+msgid "manager.setup.selectSectionDescription"
+msgstr "Verlagssektion, für die der Titel vorgesehen ist."
+
+msgid "manager.setup.showGalleyLinksDescription"
+msgstr ""
+"Zeige immer Links zu den Druckfahnen und weise auf Zugangsbeschränkungen hin."
+
+msgid "manager.setup.siteAccess.view"
+msgstr "Seitenzugang"
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr "Monographieninhalte ansehen"
+
+msgid "manager.setup.stepsToPressSite"
+msgstr "Fünf Schritte zur Verlagswebsite"
+
+msgid "manager.setup.subjectExamples"
+msgstr ""
+"(z.B. Photosynthese; Schwarze Löcher; Vier-Farben-Satz; Bayes'scher "
+"Wahrscheinlichkeitsbegriff)"
+
+msgid "manager.setup.subjectKeywordTopic"
+msgstr "Schlüsselwörter"
+
+msgid "manager.setup.subjectProvideExamples"
+msgstr ""
+"Geben Sie Beispiele für Schlüsselwörter oder Themengebiete als Orientierung "
+"für die Autoren"
+
+msgid "manager.setup.submissionGuidelines"
+msgstr "Richtlinien für die Einreichung"
+
+msgid "maganer.setup.submissionChecklistItemRequired"
+msgstr "Dieser Punkt der Checkliste muss bestätigt sein."
+
+msgid "manager.setup.workflow"
+msgstr "Workflow"
+
+msgid "manager.setup.submissions.description"
+msgstr ""
+"Leitfaden für Autoren, Copyright und Indizierung (einschließlich "
+"Registrierung)."
+
+msgid "manager.setup.typeExamples"
+msgstr ""
+"(z.B. historische Untersuchung; quasi-experimentelle Studie; literarische "
+"Analyse; Umfrage/Interview)"
+
+msgid "manager.setup.typeMethodApproach"
+msgstr "Typ (Methode/Ansatz)"
+
+msgid "manager.setup.typeProvideExamples"
+msgstr ""
+"Nennen Sie Beispiele für relevante Forschungsarten, -methoden und -ansätze "
+"auf diesem Feld"
+
+msgid "manager.setup.useCopyeditors"
+msgstr "Jedem Manuskript wird ein/e Lektor/in zugewiesen."
+
+msgid "manager.setup.useEditorialReviewBoard"
+msgstr "Ein Redaktioneller Beirat/Gutachterbeirat wird vom Verlag eingesetzt."
+
+msgid "manager.setup.useImageTitle"
+msgstr "Titelbild"
+
+msgid "manager.setup.useStyleSheet"
+msgstr "Formatvorlage des Verlags"
+
+msgid "manager.setup.useLayoutEditors"
+msgstr ""
+"Aufgabe des Layouters ist es, HTML-, PDF- und andere Dateien für die "
+"elektronische Veröffentlichtung vorzubereiten."
+
+msgid "manager.setup.useProofreaders"
+msgstr ""
+"Ein/e Korrektor/in wird bestimmt, um (zusammen mit den Autoren/innen) die "
+"Fahnen im letzten Schritt vor der Veröffentlichung gegenzulesen."
+
+msgid "manager.setup.userRegistration"
+msgstr "Benutzerregistrierung"
+
+msgid "manager.setup.useTextTitle"
+msgstr "Seitentitel der Website"
+
+msgid "manager.setup.volumePerYear"
+msgstr "Bände pro Jahr"
+
+msgid "manager.setup.publicationFormat.code"
+msgstr "Format"
+
+msgid "manager.setup.publicationFormat.codeRequired"
+msgstr "Bitte wählen Sie ein Format aus."
+
+msgid "manager.setup.publicationFormat.nameRequired"
+msgstr "Sie müssen diesem Format einen Namen zuweisen."
+
+msgid "manager.setup.publicationFormat.physicalFormat"
+msgstr "Ist es ein physisches (nicht-digitales) Format?"
+
+msgid "manager.setup.publicationFormat.inUse"
+msgstr ""
+"Dieses Format kann nicht gelöscht werden, da zurzeit ein Buch Ihres Verlages "
+"in diesem Format erscheint."
+
+msgid "manager.setup.newPublicationFormat"
+msgstr "Neues Format"
+
+msgid "manager.setup.newPublicationFormatDescription"
+msgstr ""
+"Um ein neues Format anzulegen, füllen Sie bitte das unten stehende Formular "
+"aus und klicken dann auf den Button 'Erstellen'."
+
+msgid "manager.setup.genresDescription"
+msgstr ""
+"Diese Genres bilden einen Bestandteil des Dateinamen. Beim Hochladeprozess "
+"werden die Manuskriptdateien in einem Pull-down-Menü angezeigt. Genres, die "
+"mit ## gekennzeichnet sind, können sowohl mit dem ganzen Buch 99Z oder mit "
+"einem bestimmten Kapitel über Angabe einer Nummer (z.B. 02) verbunden werden."
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr ""
+"Dieser Verlag nimmt derzeit keine Einreichungen an. Gehen Sie zu den "
+"Workflow-Einstellungen um Einreichungen zu erlauben."
+
+msgid "manager.setup.disableSubmissions.description"
+msgstr ""
+"Verbieten Sie Nutzer/innen, neue Einreichungen an den Verlag zu machen. "
+"Einreichungen für einzelne Reihen können auf der Reihen"
+"a>-Seite der Verlagseinstellungen verhindert werden."
+
+msgid "manager.setup.genres"
+msgstr "Genres"
+
+msgid "manager.setup.newGenre"
+msgstr "Neues Genre"
+
+msgid "manager.setup.newGenreDescription"
+msgstr ""
+"Um ein neues Genre anzulegen, füllen Sie die unten stehenden Felder aus und "
+"klicken Sie auf 'Erstellen'."
+
+msgid "manager.setup.deleteSelected"
+msgstr "Ausgewählte Elemente löschen"
+
+msgid "manager.setup.restoreDefaults"
+msgstr "Grundeinstellungen wiederherstellen"
+
+msgid "manager.setup.prospectus"
+msgstr "Leitfaden für das Exposé"
+
+msgid "manager.setup.prospectusDescription"
+msgstr ""
+"Der Leitfaden für Exposés soll dem Autor/der Autorin dabei helfen soll, die "
+"eingereichten Materialien so zu beschreiben, dass der Verlag daraus den Wert "
+"der Einreichung erkennen kann. Der Verlag stellt dazu ein vorbereitetes "
+"Exposé als Orientierungshilfe zur Verfügung. Das Exposé kann eine Vielzahl "
+"verschiedener Punkte enthalten - vom Marktpotenzial bis zum theoretischen "
+"Wert; in jedem Fall sollte der Verlag einen Exposéleitfaden erstellen, der "
+"die eigene Verlagsagenda ergänzt."
+
+msgid "manager.setup.submitToCategories"
+msgstr "Einreichung in einer Kategorie zulassen"
+
+msgid "manager.setup.submitToSeries"
+msgstr "Einreichung in einer Reihe zulassen"
+
+msgid "manager.setup.issnDescription"
+msgstr ""
+"Die ISSN (International Standard Serial Number) ist eine aus acht Ziffern "
+"bestehende Nummer, die periodisch erscheinende Veröffentlichungen - dazu "
+"zählen auch elektronische Zeitschriften (E-Journals) - als solche "
+"identifiziert. Sie wird von einem weltweit arbeitenden Netzwerk von "
+"Nationalzentren verwaltet. Die Koordinierung erfolgt über das ISSN "
+"International Centre mit Sitz in Paris, unterstützt von der Unesco und der "
+"französischen Regierung. ISSN können jederzeit über ISSN web site bezogen werden."
+
+msgid "manager.setup.currentFormats"
+msgstr "Aktuelle Formate"
+
+msgid "manager.setup.categoriesAndSeries"
+msgstr "Kategorien und Reihen"
+
+msgid "manager.setup.categories.description"
+msgstr ""
+"Sie können eine Liste von Kategorien anlegen, um Ihre Publikationen besser "
+"organisieren zu können. Kategorien sind Gruppierungen von Büchern zu "
+"bestimmten Sachbegriffen, zum Beispiel zu Wirtschaft; Literatur; Poesie und "
+"so weiter. Kategorien können 'Eltern'-Kategorien untergeordnet werden: Zum "
+"Beispiel kann die Elternkategorie 'Wirtschaft\" die beiden Individuen "
+"'Mikroökonomie' und 'Makroökonomie' mit einschließen. Besucher der Website "
+"können nach Kategorien suchen und in den Kategorien browsen."
+
+msgid "manager.setup.series.description"
+msgstr ""
+"Sie können eine unbegrenzte Anzahl von Reihen anlegen. Eine Reihe stellt "
+"eine Zusammenstellung von Büchern zu einem bestimmten Thema dar. "
+"Normalerweise wird das Thema oder der Gegenstand der Reihe von ein oder zwei "
+"Mitgliedern einer Fakultät vorgeschlagen. Sie betreuen auch die Reihe und "
+"überwachen deren Qualität. Besucher der Website können nach Reihen suchen "
+"und browsen."
+
+msgid "manager.setup.reviewForms"
+msgstr "Gutachtenformulare"
+
+msgid "manager.setup.roleType"
+msgstr "Funktionstyp"
+
+msgid "manager.setup.authorRoles"
+msgstr "Funktionen von \"Autor/in\""
+
+msgid "manager.setup.managerialRoles"
+msgstr "Funktionen von \"Manager/in\""
+
+msgid "manager.setup.availableRoles"
+msgstr "Verfügbare Funktionen"
+
+msgid "manager.setup.currentRoles"
+msgstr "Aktuelle Funktionen"
+
+msgid "manager.setup.internalReviewRoles"
+msgstr "Funktionen von \"Interne/r Gutachter/in\""
+
+msgid "manager.setup.masthead"
+msgstr "Impressum"
+
+msgid "manager.setup.editorialTeam"
+msgstr "Herausgeber/innen"
+
+msgid "manager.setup.editorialTeam.description"
+msgstr ""
+"Das Impressum sollte ein Liste der Herausgeber/innen und Geschäftsführer/"
+"innen sowie anderer Personen enthalten, die mit dem Verlag in Verbindung "
+"stehen. Hier eingegebene Informationen erscheinen unter 'Über uns'."
+
+msgid "manager.setup.files"
+msgstr "Dateien"
+
+msgid "manager.setup.productionTemplates"
+msgstr "Vorlagen für die Herstellung"
+
+msgid "manager.files.note"
+msgstr ""
+"Hinweis: Der Dateimanager ist ein erweitertes Feature, das es erlaubt, dem "
+"Verlag zugeordnete Dateien und Verzeichnisse direkt anzuschauen und zu "
+"ändern."
+
+msgid "manager.setup.copyrightNotice.sample"
+msgstr ""
+"Vorgeschlagener Text für den Creative Commons Copyright-Vermerk
\n"
+"Vorgeschlagene Leitlinie für Verlage, die Open Access anbieten
\n"
+"Autor/innen, die in diesem Verlag veröffentlichen, stimmen den folgenden "
+"Bedingungen zu:\n"
+"\n"
+"\t- Autor/innen behalten das Urheberrecht an dem Werk und gewähren dem "
+"Verlag das Recht zu dessen Erstveröffentlichung. Parallel dazu wird das Werk "
+"unter eine Creative Commons Attribution License gestellt. Diese erlaubt "
+"es anderen, das Werk weiterzuverbreiten, unter der Bedingung, dass der Autor/"
+"die Autorin benannt und auf die Erstveröffentlichung in diesem Verlag "
+"hingewiesen wird.
\n"
+"\t- Autor/innen können weitere, gesonderte Verträge für eine nicht-"
+"exklusive Verbreitung einer vom Verlag veröffentlichten Version des Buches "
+"abschließen (sie können es z. B auf einem institutionellen Repositorium "
+"einstellen oder in einem Buch veröffentlichen), jedoch unter Hinweis auf die "
+"Erstveröffentlichung in diesem Verlag.
\n"
+"\t- Autor/innen ist es erlaubt und werden dazu ermutigt, ihr Werk bereits "
+"online zu stellen, bevor es beim Verlag eingereicht oder veröffentlicht "
+"wurde (z.B. auf institutionellen Repositorien oder auf ihrer Website), da "
+"dies zu einem produktiven Austausch einerseits als auch zu einer früheren "
+"Zitierung und einer höheren Zitierhäufigkeit andererseits führen kann. "
+"(Siehe Der Effekt von Open Access).
\n"
+"
\n"
+"\n"
+"Vorgeschlagene Leitlinie für Verlage, die eine freie Zugänglichkeit nach "
+"einem festgesetzten Verwertungszeitraum anbieten (Delayed Open Access)
\n"
+"Autor/innen, die bei diesem Verlag publizieren, stimmen folgenden "
+"Bedingungen zu:\n"
+"\n"
+"\t- Autor/innen behalten das Urheberrecht an dem Werk und gewähren dem "
+"Verlag das Recht zu dessen Erstveröffentlichung. Das Werk wird [Zeitraum "
+"angeben] nach der Veröffentlichung parallel unter einer Creative Commons "
+"Attribution License lizenziert, die es anderen erlaubt, das Werk "
+"weiterzuverbreiten, unter der Bedingung, dass der Autor/die Autorin benannt "
+"und auf die Erstveröffentlichung in diesem Verlag hingewiesen wird.
\n"
+"\t - Autor/innen können weitere, gesonderte Verträge für eine nicht-"
+"exklusive Verbreitung einer vom Verlag veröffentlichten Version des Buches "
+"abschließen (sie können es z.B auf einem institutionellen Repositorium "
+"einstellen oder in einem Buch veröffentlichen), jedoch muss auf die "
+"Erstveröffentlichung in diesem Verlag hingewiesen werden.
\n"
+"\t - Autor/innen dürfen gerne ihr Werk bereits online stellen, bevor es "
+"beim Verlag eingereicht oder veröffentlicht wurde (z.B. auf institutionellen "
+"Repositorien oder auf ihren Websites). Dies dient nicht nur dem produktiven "
+"Austausch untereinander, sondern kann auch zu einer früheren Zitierung und "
+"einer höheren Zitierhäufigkeit des veröffentlichten Werks beitragen. (Siehe "
+"Der Effekt von Open Access).
\n"
+"
"
+
+msgid "manager.setup.basicEditorialStepsDescription"
+msgstr ""
+"Schritte: Warteschlange > Begutachtung > Redaktionelle Bearbeitung "
+"> Inhaltsverzeichnis.
\n"
+"Wählen Sie ein Modell, um diese Aspekte des Publikationsprozesses zu "
+"steuern. (Um leitende Herausgeber/innen oder Serienherausgeber/innen zu "
+"bestimmen, gehen Sie in der Verlagsverwaltung zu 'Herausgeber/innen'.)"
+
+msgid "manager.setup.referenceLinkingDescription"
+msgstr ""
+"Um Leser/innen das Auffinden der Onlineversion eines zitierten Werkes zu "
+"erleichtern, können Sie:
\n"
+"\n"
+"\n"
+"\t- Ein Lesewerkzeug hinzufügen:
Der Verlagsleiter "
+"kann den Link \"Finde Literaturnachweise\" zu den Lesewerkzeugen (sie stehen "
+"in der Sidebar neben dem veröffentlichten Werk) hinzufügen. Durch Anklicken "
+"des Links öffnet sich ein Fenster, in dem Leser/innen einen zitierten Titel "
+"einfügen und anschließend in vorausgewählten wissenschaftlichen Datenbanken "
+"danach suchen können.
\n"
+"\t- Links in die Literaturnachweise einbinden:
Der/die "
+"Layouter/in kann einen Link zu online aufrufbaren Zitationen hinzufügen. Die "
+"folgenden Instruktionen sind dabei unter Umständen hilfreich (Bearbeitung "
+"erlaubt).
\n"
+"
"
+
+msgid "manager.publication.library"
+msgstr "Verlagsdokumentenarchiv"
+
+msgid "manager.setup.resetPermissions"
+msgstr "Rechte für Monographien zurücksetzen"
+
+msgid "manager.setup.resetPermissions.confirm"
+msgstr ""
+"Sind Sie sicher, dass Sie die bereits vergebenen Rechte für Monographien "
+"zurücksetzen wollen?"
+
+msgid "manager.setup.resetPermissions.description"
+msgstr ""
+"Copyright-Angaben und Lizenzinformationen werden dauerhaft mit dem "
+"veröffentlichten Inhalt verknüpft, damit diese Daten sich nicht ändern, wenn "
+"ein Verlag die Regeln für neue Einreichungen ändert. Um vergebene Rechte für "
+"bereits veröffentlichte Inhalte zurückzusetzen, nutzen Sie den Knopf unten."
+
+msgid "manager.setup.resetPermissions.success"
+msgstr "Die Berechtigungen für Monographien wurden erfolgreich zurückgesetzt."
+
+msgid "grid.genres.title.short"
+msgstr "Komponenten"
+
+msgid "grid.genres.title"
+msgstr "Monographie-Komponenten"
+
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr ""
+"Senden Sie eine Kopie an den in den Verlagseinstellungen identifizierten "
+"Hauptkontakt."
+
+msgid "grid.series.pathAlphaNumeric"
+msgstr "Der Reihenpfad darf nur Buchstaben und Zahlen beinhalten."
+
+msgid "grid.series.pathExists"
+msgstr ""
+"Der Reihenpfad existiert bereits. Bitte fügen Sie einen neuen Pfad ein."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr "Reihe auswählen"
+
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr ""
+"Bitte wählen Sie die Reihe aus, auf die dieses Menüelement verlinken soll."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr "Kategorie auswählen"
+
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr ""
+"Bitte wählen Sie die Kategorie aus, auf die dieses Menüelement verlinken "
+"soll."
+
+msgid "grid.series.urlWillBe"
+msgstr "Die URL der Reihe wird {$sampleUrl} sein"
+
+msgid "stats.contextStats"
+msgstr "Verlagsstatistik"
+
+msgid "stats.context.tooltip.text"
+msgstr "Anzahl der Besucher/innen der Verlags- und Katalog-Startseite."
+
+msgid "stats.context.tooltip.label"
+msgstr "Über Verlagsstatistken"
+
+msgid "stats.context.downloadReport.description"
+msgstr ""
+"Laden Sie eine CSV/Excel-Datei mit Nutzungsstatistiken für diesen Verlag "
+"herunter, die den folgenden Parametern entsprechen."
+
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr "Anzahl der Anzeigen der Verlags- und Katalog-Startseite."
+
+msgid "stats.context.downloadReport.downloadContext"
+msgstr "Verlag herunterladen"
+
+msgid "stats.publications.downloadReport.description"
+msgstr ""
+"Laden Sie eine CSV/Excel-Datei mit Nutzungsstatistiken für Monographien "
+"herunter, die den folgenden Parametern entsprechen."
+
+msgid "stats.publications.downloadReport.downloadSubmissions"
+msgstr "Monographien herunterladen"
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr "Anzahl der Abstract-Besuche und Datei-Downloads für jede Monographie."
+
+msgid "stats.publicationStats"
+msgstr "Monographie Statistiken"
+
+msgid "stats.publications.details"
+msgstr "Monographie Details"
+
+msgid "stats.publications.none"
+msgstr ""
+"Es konnten keine Monographien gefunden werden, deren Nutzungstatistiken mit "
+"diesen Parametern übereinstimmen."
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr "Gesamte Katalogansichten, nach Datum"
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr "Gesamte Dateiansichten, nach Datum"
+
+msgid "stats.publications.countOfTotal"
+msgstr "{$count} von {$total} Monographien"
+
+msgid "stats.publications.abstracts"
+msgstr "Katalogeinträge"
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr "Keine Objekte ausgewählt."
+
+msgid "plugins.importexport.common.error.validation"
+msgstr "Ausgewählte Objekte konnten nicht konvertiert werden."
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr "Ungültige XML:"
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr "Einreichungen exportieren"
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr ""
+"Eine Kopie der Einreichungsbestätigung an den Hauptkontakt des Verlags "
+"schicken."
+
+msgid ""
+"manager.setup.notifications.copySubmissionAckPrimaryContact.disabled."
+"description"
+msgstr ""
+"Für diesen Verlag wurde kein Hauptkontakt definiert. Sie können einen "
+"Hauptkontakt in den Verlagseinstellungen einfügen."
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr "Die angegebenen Objekte konnten nicht gefunden werden."
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr "Der/die angegebene Nutzer/in, \"{$userName}\", existiert nicht."
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr "Das Parsen der Publikationsformate hat nicht funktioniert"
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr "Das Parsen der Kapitel hat nicht funktioniert"
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr "Der Name des Verlags"
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr "Die URL der Verlagshomepage"
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr "Der Name des Hauptkontakts des Verlags"
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr "Die E-Mail-Signatur des Verlags für automatisierte E-Mails"
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr "Die E-Mail-Adresse des Hauptkontakts des Verlags"
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr "Der Name des Zahlungstyps"
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr "Der Zahlungsbetrag"
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr "Die Währung des Zahlungsbetrags, z.B. USD"
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr "Der Name der Website, wenn mehr als ein Verlag gehostet wird"
+
+msgid "mailable.validateEmailContext.name"
+msgstr "E-Mail überprüfen (Verlagsregistrierung)"
+
+msgid "mailable.validateEmailContext.description"
+msgstr ""
+"Diese E-Mail wird automatisch an neue Nutzer/innen gesendet wenn sie sich "
+"mit einem Verlag registrieren, der die Überprüfung der E-Mail Adresse "
+"verlangt."
+
+msgid "doi.displayName"
+msgstr "DOI"
+
+msgid "doi.manager.displayName"
+msgstr "DOIs"
+
+msgid "doi.description"
+msgstr ""
+"Dieses Plugin ermöglicht die Zuweisung eines Digital Object Identifiers "
+"(DOI) zu einem Publikationsformat in OMP."
+
+msgid "doi.readerDisplayName"
+msgstr "DOI:"
+
+msgid "doi.manager.settings.description"
+msgstr ""
+"Bitte konfigurieren Sie das DOI-Plugin, damit Sie in OMP DOIs verwalten und "
+"benutzen können:"
+
+msgid "doi.manager.settings.explainDois"
+msgstr ""
+"Bitte wählen Sie die Publikationsobjekte aus, denen Digital Object "
+"Identifier (DOI) zugewiesen werden sollen:"
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr "Monographien"
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr "Kapitel"
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr "Publikationsformate"
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr "Dateien"
+
+msgid "doi.manager.settings.doiPrefix"
+msgstr "DOI-Präfix"
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr "Das DOI-Präfix ist obligatorisch und muss die Form 10.xxxx haben."
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr ""
+"Geben Sie für jeden Publikationstyp ein benutzerdefiniertes Suffix-Muster "
+"ein. Das benutzerdefinierte Suffix-Muster kann die folgenden Symbole "
+"verwenden, um das Suffix zu erzeugen:
%p
"
+"Verlagsinitialien
%m
Monographie ID
%c"
+"code>Kapitel ID
%f
Publikationsformat ID
%s"
+"code> Datei ID
%x
Individuelle Kennung
Beachten Sie, "
+"dass benutzerdefinierte Suffix-Muster oft zu Problemen bei der Erstellung "
+"und Hinterlegung von DOIs führen. Wenn Sie ein benutzerdefiniertes Suffix-"
+"Muster verwenden, prüfen Sie sorgfältig, ob die Herausgeber DOIs erzeugen "
+"und bei einer Registrierungsagentur wie Crossref hinterlegen können. "
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr ""
+"Beispiel: press%ppub%f würde eine DOI wie 10.1234/pressESPpub100 kreieren"
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr "für Monographien"
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr "für Kapitel"
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr "für Publikationsformate"
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr "für Dateien"
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr "Bitte tragen Sie das DOI-Suffix Schema für Monographien ein."
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr "Bitte tragen Sie das DOI-Suffix Schema für Kapitel ein."
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr "Bitte tragen Sie das DOI-Suffix Schema für Publikationsformate ein."
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr "Bitte tragen Sie das DOI-Suffix Schema für Dateien ein."
+
+msgid "doi.manager.settings.doiReassign"
+msgstr "DOIs neu zuweisen"
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr ""
+"Wenn Sie Ihre DOI-Konfiguration ändern, werden bereits zugewiesene DOIs "
+"davon nicht beeinflusst. Sobald die Konfiguration gespeichert ist, können "
+"Sie diesen Button verwenden um alle bestehenden DOIs zu entfernen und im "
+"Anschluss die neuen Einstellungen auf alle existierenden Objekte anzuwenden."
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr "Sind Sie sicher, dass Sie alle existierenden DOIs entfernen möchten?"
+
+msgid "doi.editor.doi"
+msgstr "DOI"
+
+msgid "doi.editor.doi.description"
+msgstr "Die DOI muss mit {$prefix} beginnen."
+
+msgid "doi.editor.doi.assignDoi"
+msgstr "Zuweisen"
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr "Monographie"
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr "Kapitel"
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr "Publikationsformat"
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr "Datei"
+
+msgid "doi.editor.customSuffixMissing"
+msgstr "Die DOI kann nicht zugewiesen werden, da das Custom-Suffix fehlt."
+
+msgid "doi.editor.missingParts"
+msgstr ""
+"Sie können keine DOI generieren, da einem oder mehreren Teilen des DOI-"
+"Schema Daten fehlen."
+
+msgid "doi.editor.patternNotResolved"
+msgstr ""
+"Die DOI kann nicht zugewiesen werden, da sie ein ungelöstes Schema "
+"beinhaltet."
+
+msgid "doi.editor.canBeAssigned"
+msgstr ""
+"Dies ist eine Vorschau der DOI. Klicken Sie die Checkbox an und speichern "
+"das Formular um die DOI zuzuweisen."
+
+msgid "doi.editor.assigned"
+msgstr "Die DOI wurde dem Objekt vom Typ {$pubObjectType} zugewiesen."
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr ""
+"Der angegebene DOI-Suffix wird bereits für ein anderes veröffentlichtes "
+"Element benutzt. Bitte vergeben Sie einen eindeutigen DOI-Suffix für jedes "
+"Element."
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr "Entfernen"
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr ""
+"Sind Sie sicher, dass Sie die bereits bestehende DOI entfernen möchten?"
+
+msgid "doi.editor.assignDoi"
+msgstr "Die DOI {$pubId} dem Objekt vom Typ {$pubObjectType} zuweisen"
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr "Die DOI kann nicht zugewiesen werden, da das Custom-Suffix fehlt."
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr ""
+"Die DOI {$pubId} kann nicht zugewiesen werden, da sie ein ungelöstes Schema "
+"beinhaltet."
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr "Die DOI {$pubId} wurde zugewiesen."
+
+msgid "doi.editor.missingPrefix"
+msgstr "Die DOI muss mit {$doiPrefix} beginnen."
+
+msgid "doi.editor.preview.publication"
+msgstr "Die DOI für diese Publikation wird {$doi} sein."
+
+msgid "doi.editor.preview.publication.none"
+msgstr "Dieser Publikation wurde keine DOI zugewiesen."
+
+msgid "doi.editor.preview.chapters"
+msgstr "Kapitel: {$title}"
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr "Publikationsformat: {$title}"
+
+msgid "doi.editor.preview.files"
+msgstr "Datei: {$title}"
+
+msgid "doi.editor.preview.objects"
+msgstr "Element"
+
+msgid "doi.manager.submissionDois"
+msgstr "Monographien-DOIs"
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr ""
+"Diese E-Mail benachrichtigt Autor/innen, dass ihre Einreichung in die "
+"interne Begutachtung geschickt wird."
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr ""
+"Diese E-Mail benachrichtigt Autor/innen, dass ihre Einreichung vor der "
+"Begutachtung abgelehnt wird, da sie die Anforderungen für Veröffentlichungen "
+"in diesem Verlag nicht erfüllt."
+
+msgid "manager.institutions.noContext"
+msgstr "Der Verlag dieser Institution konnte nicht gefunden werden."
+
+msgid "manager.manageEmails.description"
+msgstr ""
+"Nachrichten bearbeiten, die in E-Mails von diesem Verlag verschickt werden."
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr "Zur internen Begutachtung geschickt"
+
+msgid "mailable.indexRequest.name"
+msgstr "Index angefordert"
+
+msgid "mailable.indexComplete.name"
+msgstr "Index vollständig"
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr "Neue Version kreiert"
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr ""
+"Diese E-Mail benachrichtigt automatisch zugewiesene Redakteur/innen, wenn "
+"eine neue Version der Einreichung kreiert wird."
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+"Diese E-Mail wird an Verlagsmanager/innen geschickt, wenn ein neuer Beitrag "
+"eingereicht wurde und keine Redakteur/innen zugewiesen sind."
+
+#~ msgid "manager.people.existingUserRequired"
+#~ msgstr "Sie müssen eine/n existierende/n Benutzer/in angeben."
+
+#~ msgid "manager.setup.addContributor"
+#~ msgstr "Beiträger/in hinzufügen"
+
+#~ msgid "manager.setup.doiPrefix"
+#~ msgstr "DOI-Präfix"
+
+#~ msgid "manager.setup.doiPrefixDescription"
+#~ msgstr ""
+#~ "Das DOI (Digital Object Identifier)-Präfix wird von CrossRef vergeben und hat das Format "
+#~ "10.xxxx (z.B. 10.1234)."
+
+#~ msgid "manager.setup.emailSignatureDescription"
+#~ msgstr ""
+#~ "Die folgende Signatur wird am Ende der vorbereiteten E-Mails stehen, die "
+#~ "vom System im Namen des Verlages versendet werden. Den Inhaltsteil "
+#~ "(Textteil) dieser E-Mails können Sie unten bearbeiten."
+
+#~ msgid "manager.setup.internalReviewGuidelinesDescription"
+#~ msgstr ""
+#~ "Wie die Leitfäden für die externe Begutachtung liefern diese Anleitungen "
+#~ "den Gutachter/innen Informationen zu Bewertung des eingereichten "
+#~ "Manuskripts. Diese Anleitungen sind für interne Gutachter/innen, die "
+#~ "generell den Begutachtungsprozess verlagsintern durchführen."
+
+msgid "plugins.importexport.common.error.salesRightRequiresTerritory"
+msgstr ""
+"Ein Datensatz des Verkaufsrechts wurde übersprungen, weil ihm weder ein Land "
+"noch eine Region zugewiesen wurde."
+
+msgid "manager.sections.alertDelete"
+msgstr ""
+"Bevor diese Reihe entfernt werden kann, müssen Sie Beiträge aus dieser Reihe "
+"in andere Reihen verschieben."
+
+msgid "mailable.layoutComplete.name"
+msgstr "Fahnen vollständig"
+
+msgid "emailTemplate.variable.context.mailingAddress"
+msgstr "Adresse des Verlags"
+
+msgid "emailTemplate.variable.statisticsReportNotify.publicationStatsLink"
+msgstr "Link zur Statistikseite der Bücher"
+
+msgid "mailable.statisticsReportNotify.description"
+msgstr ""
+"Diese E-Mail wird monatlich automatisch an Redakteur/innen und "
+"Verlagsmanager/innen versandt, um ihnen einen Überblick über den "
+"Systemzustand zu geben."
diff --git a/locale/de/submission.po b/locale/de/submission.po
new file mode 100644
index 00000000000..13964cf318d
--- /dev/null
+++ b/locale/de/submission.po
@@ -0,0 +1,652 @@
+# Pia Piontkowitz , 2021, 2022, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2023-04-26 17:49+0000\n"
+"Last-Translator: Pia Piontkowitz \n"
+"Language-Team: German \n"
+"Language: 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 4.13.1\n"
+
+msgid "submission.upload.selectComponent"
+msgstr "Komponente auswählen"
+
+msgid "submission.title"
+msgstr "Buchtitel"
+
+msgid "submission.select"
+msgstr "Wählen Sie ein Manuskript aus"
+
+msgid "submission.synopsis"
+msgstr "Über dieses Buch"
+
+msgid "submission.workflowType"
+msgstr "Art des Buches"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"Eine Monographie ist ein Werk, das von einer Autorin/einem Autor oder "
+"mehreren Autor/innen gemeinsam verfasst worden ist. Ein Sammelband besteht "
+"aus mehreren Kapiteln jeweils unterschiedlicher Autor/innen (detaillierte "
+"Kapitelangaben sind erst zu einem späteren Zeitpunkt im "
+"Veröffentlichungsprozess zu machen)."
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr "Sammelband"
+
+msgid "submission.workflowType.editedVolume"
+msgstr "Sammelband: Autor/innen sind mit dem eigenen Kapitel assoziiert."
+
+msgid "submission.workflowType.authoredWork"
+msgstr "Monographie: Autor/innen sind mit dem Buch als Ganzes assoziiert."
+
+msgid "submission.workflowType.change"
+msgstr "Ändern"
+
+msgid "submission.editorName"
+msgstr "{$editorName} (Hrsg)"
+
+msgid "submission.monograph"
+msgstr "Monographie"
+
+msgid "submission.published"
+msgstr "Druckreif"
+
+msgid "submission.fairCopy"
+msgstr "Reinschrift"
+
+msgid "submission.authorListSeparator"
+msgstr "; "
+
+msgid "submission.artwork.permissions"
+msgstr "Rechte"
+
+msgid "submission.chapter"
+msgstr "Kapitel"
+
+msgid "submission.chapters"
+msgstr "Kapitel"
+
+msgid "submission.chapter.addChapter"
+msgstr "Kapitel hinzufügen"
+
+msgid "submission.chapter.editChapter"
+msgstr "Kapitel bearbeiten"
+
+msgid "submission.chapter.pages"
+msgstr "Seiten"
+
+msgid "submission.copyedit"
+msgstr "Lektorat"
+
+msgid "submission.publicationFormats"
+msgstr "Formate"
+
+msgid "submission.proofs"
+msgstr "Proofs"
+
+msgid "submission.download"
+msgstr "Download"
+
+msgid "submission.sharing"
+msgstr "Teilen"
+
+msgid "manuscript.submission"
+msgstr "Manuskript einreichen"
+
+msgid "submission.round"
+msgstr "Durchgang {$round}"
+
+msgid "submissions.queuedReview"
+msgstr "In Begutachtung"
+
+msgid "manuscript.submissions"
+msgstr "Manuskripte einreichen"
+
+msgid "submission.metadata"
+msgstr "Metadaten"
+
+msgid "submission.supportingAgencies"
+msgstr "Träger"
+
+msgid "grid.action.addChapter"
+msgstr "Ein neues Kapitel erzeugen"
+
+msgid "grid.action.editChapter"
+msgstr "Kapitel bearbeiten"
+
+msgid "grid.action.deleteChapter"
+msgstr "Kapitel löschen"
+
+msgid "submission.submit"
+msgstr "Ein neues Buchmanuskript einreichen"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Ein neues Buchmanuskript einreichen bei"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr "Ein neues Manuskript bei {$contextName} einreichen"
+
+msgid "submission.submit.upload"
+msgstr "Einreichung hochladen"
+
+msgid "author.volumeEditor"
+msgstr "Band Herausgeber/in"
+
+msgid "author.isVolumeEditor"
+msgstr "Diese Person als Herausgeber/in des Bandes identifizieren."
+
+msgid "submission.submit.seriesPosition"
+msgstr "Position innerhalb der Reihe (z.B. Band 2)"
+
+msgid "submission.submit.seriesPosition.description"
+msgstr "Beispiel: Buch 2, Band 2"
+
+msgid "submission.submit.privacyStatement"
+msgstr "Datenschutzerklärung"
+
+msgid "submission.submit.contributorRole"
+msgstr "Funktion des Beiträgers/der Beiträgerin"
+
+msgid "submission.submit.submissionFile"
+msgstr "Manuskriptdatei"
+
+msgid "submission.submit.prepare"
+msgstr "Vorbereiten"
+
+msgid "submission.submit.catalog"
+msgstr "Katalog"
+
+msgid "submission.submit.metadata"
+msgstr "Metadaten"
+
+msgid "submission.submit.finishingUp"
+msgstr "Fertigstellen"
+
+msgid "submission.submit.confirmation"
+msgstr "Bestätigung"
+
+msgid "submission.submit.nextSteps"
+msgstr "Die nächsten Schritte"
+
+msgid "submission.submit.coverNote"
+msgstr "Vermerk für den/die Herausgeber/in"
+
+msgid "submission.submit.generalInformation"
+msgstr "Allgemeine Informationen"
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"Der Verlag wurde über die Einsendung Ihres Manuskriptes informiert. Für Ihre "
+"Unterlagen haben wir Ihnen eine Bestätigung per E-Mail zugesandt. Sobald der/"
+"die Herausgeber/in das Manuskript geprüft hat, wird er sich mit Ihnen in "
+"Verbindung setzen."
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Bitte lesen und bestätigen Sie die Punkte der Einreichungscheckliste. "
+"{$itemsRemaining} Punkte wurden bisher noch nicht bestätigt."
+
+msgid "submission.submit.placement"
+msgstr "Manuskriptplatzierung"
+
+msgid "submission.submit.userGroup"
+msgstr "Einreichen in meiner Funktion als ..."
+
+msgid "submission.submit.noContext"
+msgstr "Der Verlag der Einreichung konnte nicht gefunden werden."
+
+msgid "grid.chapters.title"
+msgstr "Kapitel"
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Vom Lektor hochgeladenes Dokument löschen"
+
+msgid "submission.complete"
+msgstr "Freigegeben"
+
+msgid "submission.incomplete"
+msgstr "Warte auf Freigabe"
+
+msgid "submission.editCatalogEntry"
+msgstr "Eintrag"
+
+msgid "submission.catalogEntry.new"
+msgstr "Neuer Katalogeintrag"
+
+msgid "submission.catalogEntry.add"
+msgstr "Auswahl dem Katalog hinzufügen"
+
+msgid "submission.catalogEntry.select"
+msgstr "Wählen Sie Monographien aus um sie dem Katalog hinzuzufügen"
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr ""
+"Es muss mindestens eine Monographie ausgewählt werden, um sie dem Katalog "
+"hinzuzufügen."
+
+msgid "submission.catalogEntry.confirm"
+msgstr "Dieses Buch dem Katalog hinzufügen"
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr ""
+"Bitte bestätigen Sie, dass der Publikationsprozess abgeschlossen ist und das "
+"Buch in den Katalog aufgenommen werden soll."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr ""
+"Diese Monographie ist fertig und soll in den öffentlichen Katalog "
+"aufgenommen werden."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr "Einreichung ansehen"
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr "Publikationsdaten"
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr "Alle Kapitel werden das Publikationsdatum der Monographie verwenden."
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr "Jedes Kapitel kann ein eigenes Publikationsdatum haben."
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Monographie"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Katalog"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Format"
+
+msgid "submission.event.metadataPublished"
+msgstr ""
+"Die Metadaten der Monographie sind zur Veröffentlichung akzeptiert worden."
+
+msgid "submission.event.metadataUnpublished"
+msgstr ""
+"Die Veröffentlichung der Metadaten dieser Monographie wurde eingestellt."
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr "Das \"{$publicationFormatName}\"-Format wurde verfügbar gemacht."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr "Das \"{$publicationFormatName}\"-Format ist nicht länger verfügbar."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+"Das \"{$publicationFormatName}\"-Format ist für die Veröffentlichung "
+"akzeptiert worden."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr ""
+"Die Veröffentlichung des \"{$publicationFormatName}\"-Formats wurde "
+"eingestellt."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "Die Katalogmetadaten wurden aktualisiert."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr "Die Metadaten für das Format \"{$formatName}\" wurden upgedatet."
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "Das Format \"{$formatName}\" wurde erstellt."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "Das Format \"{$formatName}\" wurde entfernt."
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr "In externe Begutachtung geben"
+
+msgid "workflow.review.externalReview"
+msgstr "Externe Begutachtung"
+
+msgid "submission.upload.fileContents"
+msgstr "Einreichungs-Komponente"
+
+msgid "submission.dependentFiles"
+msgstr "Unselbstständige Dateien"
+
+msgid "submission.metadataDescription"
+msgstr ""
+"Diese Spezifizierungen basieren auf dem Dublin Core Metadaten-Set. Dies ist "
+"ein internationaler Standard zur Beschreibung von Verlagsinhalten."
+
+msgid "section.any"
+msgstr "Beliebige Reihe"
+
+msgid "submission.list.monographs"
+msgstr "Monographien"
+
+msgid "submission.list.countMonographs"
+msgstr "{$count} Monographien"
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr "{$count} von {$total} Monographien"
+
+msgid "submission.list.orderFeatures"
+msgstr "Features sortieren"
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+"Drag-and-drop oder klicken Sie die Hoch- und Runter-Pfeile um die Sortierung "
+"der Features auf der Homepage zu verändern."
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+"Drag-and-drop oder klicken Sie die Hoch- und Runter-Pfeile um die Sortierung "
+"der Features in {$title} zu verändern."
+
+msgid "submission.list.saveFeatureOrder"
+msgstr "Sortierung speichern"
+
+msgid "submission.list.viewEntry"
+msgstr "Eintrag ansehen"
+
+msgid "catalog.browseTitles"
+msgstr "{$numTitles} Titel"
+
+msgid "publication.catalogEntry"
+msgstr "Katalog"
+
+msgid "publication.catalogEntry.success"
+msgstr "Die Details des Katalogeintrags wurden aktualisiert."
+
+msgid "publication.invalidSeries"
+msgstr "Die Reihe dieser Publikation konnte nicht gefunden werden."
+
+msgid "publication.inactiveSeries"
+msgstr "{$series} (Inaktiv)"
+
+msgid "publication.required.issue"
+msgstr ""
+"Die Publikation muss einer Ausgabe zugewiesen werden, bevor sie publiziert "
+"werden kann."
+
+msgid "publication.publishedIn"
+msgstr "Veröffentlicht in {$issueName}."
+
+msgid "publication.publish.confirmation"
+msgstr ""
+"Alle Vorraussetzungen für die Veröffentlichung sind erfüllt. Sind Sie "
+"sicher, dass Sie diesen Katalogeintrag publizieren möchten?"
+
+msgid "publication.scheduledIn"
+msgstr ""
+"Für die Publikation in {$issueName} vorgesehen."
+
+msgid "submission.publication"
+msgstr "Veröffentlichung"
+
+msgid "publication.status.published"
+msgstr "Veröffentlicht"
+
+msgid "submission.status.scheduled"
+msgstr "Eingeplant"
+
+msgid "publication.status.unscheduled"
+msgstr "Nicht eingeplant"
+
+msgid "submission.publications"
+msgstr "Veröffentlichungen"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+"Das Copyright-Jahr wird automatisch gesetzt, wenn dieser Beitrag in einer "
+"Ausgabe veröffentlicht wird."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+"Das Copyright-Jahr wird, basierend auf dem Veröffentlichungsdatum, "
+"automatisch gesetzt."
+
+msgid "publication.datePublished"
+msgstr "Veröffentlichungsdatum"
+
+msgid "publication.editDisabled"
+msgstr "Diese Version wurde veröffentlicht und kann nicht geändert werden."
+
+msgid "publication.event.published"
+msgstr "Der Beitrag wurde veröffentlicht."
+
+msgid "publication.event.scheduled"
+msgstr "Der Beitrag wurde zur Veröffentlichung vorgesehen."
+
+msgid "publication.event.unpublished"
+msgstr "Der Beitrag wurde zurückgezogen."
+
+msgid "publication.event.versionPublished"
+msgstr "Eine neue Version wurde veröffentlicht."
+
+msgid "publication.event.versionScheduled"
+msgstr "Eine neue Version wurde zur Veröffentlichung vorgesehen."
+
+msgid "publication.event.versionUnpublished"
+msgstr "Eine Version wurde zurückgezogen."
+
+msgid "publication.invalidSubmission"
+msgstr ""
+"Die Einreichung für diese Veröffentlichung konnte nicht gefunden werden."
+
+msgid "publication.publish"
+msgstr "Veröffentlichen"
+
+msgid "publication.publish.requirements"
+msgstr ""
+"Die folgenden Bedingungen müssen erfüllt sein, bevor dies veröffentlicht "
+"werden kann."
+
+msgid "publication.required.declined"
+msgstr "Ein abgelehnter Beitrag kann nicht veröffentlicht werden."
+
+msgid "publication.required.reviewStage"
+msgstr ""
+"Die Einreichung muss sich im Copyediting oder im Produktionsschritt befinden "
+"um veröffentlicht werden zu können."
+
+msgid "submission.license.description"
+msgstr ""
+"Die Lizenz wird bei Veröffentlichung automatisch auf {$licenseName} gesetzt."
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+"{$copyright} wird bei Veröffentlichung automatisch als Rechteinhaber gesetzt."
+
+msgid "submission.copyrightOther.description"
+msgstr "Die Rechte am veröffentlichten Beitrag folgender Gruppe zuordnen."
+
+msgid "publication.unpublish"
+msgstr "Zurückziehen"
+
+msgid "publication.unpublish.confirm"
+msgstr "Sind sie sicher, dass dies nicht veröffentlicht werden soll?"
+
+msgid "publication.unschedule.confirm"
+msgstr ""
+"Sind sie sicher, dass dies nicht zur Veröffentlichung eingeplant werden soll?"
+
+msgid "publication.version.details"
+msgstr "Veröffentlichungsdetails für Version {$version}"
+
+msgid "submission.queries.production"
+msgstr "Diskussion zur Herstellung"
+
+msgid "publication.chapter.landingPage"
+msgstr "Kapitelseite"
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+"Dieses Kapitel auf einer eigenen Seite anzeigen, auf die vom "
+"Inhaltsverzeichnis der Publikation aus verlinkt wird."
+
+msgid "publication.publish.success"
+msgstr "Der Publikationsstatus wurde erfolgreich verändert."
+
+msgid "chapter.volume"
+msgstr "Band"
+
+msgid "submission.withoutChapter"
+msgstr "{$name} — Ohne dieses Kapitel"
+
+msgid "submission.chapterCreated"
+msgstr " — Kapitel kreiert"
+
+msgid "chapter.pages"
+msgstr "Seiten"
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr "Zur internen Begutachtung schicken"
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr ""
+"Die Einreichung ist für die Weitergabe in die interne Begutachtung bereit."
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr ""
+"{$editorName} hat diese Einreichung in die interne Begutachtung geschickt."
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr "Zur internen Begutachtung geschickt"
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+"Die Einreichung {$title} wurde in die interne Begutachtung geschickt. Die "
+"Autor/innen wurden benachrichtigt, es sei denn, Sie haben diese E-Mail "
+"übersprungen."
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+"Eine E-Mail an die Autor/innen senden, um sie darüber zu informieren, dass "
+"ihre Einreichung zur internen Begutachtung geschickt wird. Sofern möglich, "
+"geben Sie den Autor/innen einen Hinweis darauf, wie lange die Begutachtung "
+"dauern wird und wann sie von den Redakteur/innen eine Rückmeldung erwarten "
+"können."
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr ""
+"Dateien auswählen, die zur internen Begutachtung geschickt werden sollen."
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr ""
+"{$editorName} hat diese Einreichung in die externe Begutachtung geschickt."
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr "Zur externen Begutachtung geschickt"
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr "Die Einreichung {$title} wurde in die externe Begutachtung geschickt."
+
+msgid "editor.submission.decision.backToReview"
+msgstr "Zurück zur Begutachtung"
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+"Annahmeentscheidung über diese Einreichung rückgängig machen und die "
+"Einreichung in die Begutachtung zurückschicken."
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+"{$editorName} hat die Entscheidung, diese Einreichung zu akzeptieren, "
+"rückgängig gemacht und sie in die Begutachtung zurückgeschickt."
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr "In die Begutachtung zurückgeschickt"
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr "Die Einreichung {$title} wurde in die Begutachtung zurückgeschickt."
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+"Eine E-Mail an die Autor/innen senden, um sie darüber zu informieren, dass "
+"ihre Einreichung in die Begutachtung zurückgeschickt wird. Erklären Sie, "
+"warum diese Entscheidung getroffen wurde und informieren Sie die Autor/"
+"innen, welche weiteren Begutachtungen unternommen werden."
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+"Eine E-Mail an die Autor/innen senden, um sie darüber zu informieren, dass "
+"ihre Einreichung zum Peer Review geschickt wird. Sofern möglich, geben Sie "
+"den Autor/innen einen Hinweis darauf, wie lange das Peer Review-Verfahren "
+"dauern wird und wann sie von den Redakteur/innen eine Rückmeldung erwarten "
+"können."
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr "Dateien auswählen, die zur Begutachtung geschickt werden sollen."
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr "Empfehlen, zur externen Begutachtung zu schicken"
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr ""
+"Empfehlen, dass diese Einreichung zur externen Begutachtung geschickt werden "
+"soll."
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+"{$editorName} hat empfohlen, diese Einreichung zur externen Begutachtung zu "
+"schicken."
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+"DOI für die Einreichung {$pubObjectTitle} konnte nicht kreiert werden. Die "
+"Einreichung existiert im aktuellen Verlagskontext nicht."
+
+msgid "publication.chapter.licenseUrl"
+msgstr "Lizenz URL"
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr "Default Kapitel Lizenz URL"
+
+msgid "submission.copyright.description"
+msgstr ""
+"Bitte lesen und verstehen Sie die Copyright-Bestimmungen für Beiträge an "
+"diesen Verlag."
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+"Sie können keine Beiträge in diesem Verlag einreichen, da Autor/innen von "
+"der Redaktion registriert werden müssen. Wenn Sie glauben, dass dies ein "
+"Fehler ist, wenden Sie sich bitte an {$name}."
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+"{$contextName} akzeptiert keine Einreichungen für die Sektion {$section}. "
+"Wenn Sie Hilfe bei der Wiederherstellung Ihrer Einreichung benötigen, bitte "
+"kontaktieren Sie {$name}."
+
+msgid "submission.sectionNotFound"
+msgstr "Die Reihe für diese Einreichung konnte nicht gefunden werden."
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr "Nur die Reaktion kann Beiträge in dieser Reihe einreichen."
+
+msgid "submission.wizard.submitting.monograph"
+msgstr "Einreichung einer Monographie."
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+"Einreichung einer Monographie auf "
+"{$language}."
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr "Einreichung eines Sammelbandes."
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+"Einreichungs eines Sammelbandes auf "
+"{$language}."
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
+"Bitte geben Sie alle Kapitel dieser Einreichung an. Wenn Sie einen "
+"Sammelband einreichen, vergewissern Sie sich bitte, dass in jedem Kapitel "
+"die Autor/innen angegeben sind, die für das jeweilige Kapitel verantwortlich "
+"sind."
diff --git a/locale/de_DE/admin.po b/locale/de_DE/admin.po
deleted file mode 100644
index 2aeba3c976a..00000000000
--- a/locale/de_DE/admin.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# Pia Piontkowitz , 2021.
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2021-10-21 11:07+0000\n"
-"Last-Translator: Pia Piontkowitz \n"
-"Language-Team: German "
-"\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 "admin.hostedContexts"
-msgstr "Gehostete Verlage"
-
-msgid "admin.settings.redirect"
-msgstr "Weiterleitung an den Verlag"
-
-msgid "admin.settings.redirectInstructions"
-msgstr "Auf der Startseite eingehende Fragen werden an diesen Verlag weitergeleitet. Dies kann beispielsweise eine praktische Lösung sein, wenn die Website nur einen einzigen Verlag hostet."
-
-msgid "admin.settings.noPressRedirect"
-msgstr "Nicht umleiten"
-
-msgid "admin.languages.primaryLocaleInstructions"
-msgstr "Dies wird die voreingestellte Sprache für diese Website und alle gehosteten Verlage sein."
-
-msgid "admin.languages.supportedLocalesInstructions"
-msgstr "Wählen Sie alle Regionaleinstellungen aus, die auf dieser Seite unterstützt werden sollen. Die ausgewählten Regionaleinstellungen werden allen Verlagen, die von dieser Website gehostet werden, verfügbar gemacht und erscheinen ebenfalls in einem Sprachauswahlmenü, das auf jeder Seite der Website erscheinen wird (das Menü kann auf verlagsspezifischen Seiten überschrieben werden). Wurde nur eine Regionaleinstellung ausgewählt, erscheint weder ein Sprachwechselblock noch stehen erweiterte Spracheinstellungen zur Verfügung."
-
-msgid "admin.locale.maybeIncomplete"
-msgstr "* Die markierten Regionaleinstellungen können unvollständig sein."
-
-msgid "admin.languages.confirmUninstall"
-msgstr "Sind Sie sicher, dass Sie diese Regionaleinstellung deinstallieren möchten? Dies kann Auswirkungen auf alle Verlage haben, die zurzeit diese Regionaleinstellung verwenden."
-
-msgid "admin.languages.installNewLocalesInstructions"
-msgstr "Wählen Sie zusätzliche Regionaleinstellungen (Locales) aus, um deren Unterstützung in diesem System zu installieren. Locales müssen installiert sein, bevor sie von den gehosteten Verlagen genutzt werden können. In der OMP-Dokumentation erhalten Sie weitere Informationen darüber, wie Sie zusätzliche Unterstützung für neue Sprachen erhalten können."
-
-msgid "admin.languages.confirmDisable"
-msgstr "Sind Sie sicher, dass Sie diese Regionaleinstellung löschen wollen? Dies wird alle Verlage auf Ihrer Plattform betreffen, die diese Regionaleinstellung benutzen."
-
-msgid "admin.systemVersion"
-msgstr "OMP-Version"
-
-msgid "admin.systemConfiguration"
-msgstr "OMP-Konfiguration"
-
-msgid "admin.presses.pressSettings"
-msgstr "Verlagseinstellungen"
-
-msgid "admin.presses.noneCreated"
-msgstr "Es wurden noch keine Verlage angelegt."
-
-msgid "admin.contexts.confirmDelete"
-msgstr "Sind Sie sicher, dass Sie diesen Verlag und alle Verlagsinhalte endgültig löschen möchten?"
-
-msgid "admin.contexts.create"
-msgstr "Verlag anlegen"
-
-msgid "admin.contexts.form.titleRequired"
-msgstr "Die Angabe des Titels ist erforderlich."
-
-msgid "admin.contexts.form.pathRequired"
-msgstr "Die Angabe des Pfades ist erforderlich."
-
-msgid "admin.contexts.form.pathAlphaNumeric"
-msgstr "Der Pfad darf nur Buchstaben und Zahlen, Unterstriche und Bindestriche enthalten und muss mit einem Buchstaben oder einer Zahl beginnen und enden."
-
-msgid "admin.contexts.form.pathExists"
-msgstr "Der ausgewählte Pfad wird bereits von einem anderen Verlag verwendet."
-
-msgid "admin.contexts.contextDescription"
-msgstr "Verlagsbeschreibung"
-
-msgid "admin.presses.addPress"
-msgstr "Verlag hinzufügen"
-
-msgid "admin.overwriteConfigFileInstructions"
-msgstr ""
-"Beachten Sie:
\n"
-"Das System konnte die Konfigurationsdatei nicht automatisch überschreiben. Um Ihre Änderungen der Konfiguration anzuwenden, öffnen Sie config.inc.php mit einem geeigneten Texteditor und ersetzen Sie den Inhalt durch den Text im nachstehenden Textfeld.
"
-
-msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
-msgstr ""
-"Das Massen-E-Mail-Feature wurde für diesen Verlag deaktiviert. Es kann unter "
-"Administration > Einstellungen der Website"
-" aktiviert werden."
-
-msgid "admin.settings.enableBulkEmails.description"
-msgstr ""
-"Wählen Sie die gehosteten Verlage, die Massen-E-Mails senden dürfen. Wenn "
-"dieses Feature aktiviert ist, kann ein/e Verlagsmanager/in eine E-Mail an "
-"alle registrierten Nutzer/innen des Verlags schicken.
Der Missbrauch "
-"dieses Features um ungebetene E-Mails zu verschicken kann gegen Anti-Spam "
-"Gesetze verstoßen und dazu führen, dass E-Mails Ihres Servers als Spam "
-"blockiert werden. Erbitten Sie sich technische Hilfe, bevor Sie dieses "
-"Feature aktivieren und ziehen Sie es in Erwägung, mit Verlagsmanager/innen "
-"in Kontakt zu treten um zu vergewisseren, dass dieses Feature für den "
-"beabsichtigten Zweck verwendet wird.
Weitere Einschränkungen dieses "
-"Features können für jeden Verlag im Konfigurationsassistenten in der Liste "
-"der gehosteten Verlage aktiviert werden."
-
-msgid "admin.settings.disableBulkEmailRoles.description"
-msgstr ""
-"Ein/e Verlagsmanager/in wird keine Massen-E-Mails an die unten ausgewählten "
-"Rollen verschicken können. Benutzen Sie diese Einstellung, um Missbrauch des "
-"Benachrichtigungsfeatures einzuschränken. Es könnte z.B. sicherer sein, "
-"Lesende, Autor/innen, oder weitere große Nutzer/innengruppen, die nicht "
-"zugestimmt haben, solche E-Mails zu erhalten, auszuschließen.
Das "
-"Massen-E-Mail-Feature kann für diesen Verlag unter Administration > Einstellungen der Websitekomplett "
-"deaktiviert werden."
-
-msgid "admin.contexts.form.edit.success"
-msgstr "{$name} wurde erfolgreich bearbeitet."
-
-msgid "admin.contexts.form.create.success"
-msgstr "{$name} wurde erfolgreich erstellt."
-
-msgid "admin.contexts.form.primaryLocaleNotSupported"
-msgstr ""
-"Die primären Regionaleinstellungen müssen eine der für den Verlag "
-"ausgewählten Regionaleinstellungen (Locales) sein."
-
-msgid "admin.settings.info.success"
-msgstr "Die Seiteninformationen wurden erfolgreich aktualisiert."
-
-msgid "admin.settings.config.success"
-msgstr ""
-"Die Einstellungen zur Konfiguration der Seite wurden erfolgreich "
-"aktualisiert."
-
-msgid "admin.settings.appearance.success"
-msgstr ""
-"Die Einstellungen zum Aussehen der Seite wurden erfolgreich aktualisiert."
diff --git a/locale/de_DE/default.po b/locale/de_DE/default.po
deleted file mode 100644
index 888f2ce0886..00000000000
--- a/locale/de_DE/default.po
+++ /dev/null
@@ -1,166 +0,0 @@
-# Pia Piontkowitz , 2021, 2022.
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2022-02-22 11:05+0000\n"
-"Last-Translator: Pia Piontkowitz \n"
-"Language-Team: German \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 "default.genres.appendix"
-msgstr "Anhang"
-
-msgid "default.genres.bibliography"
-msgstr "Bibliographie"
-
-msgid "default.genres.manuscript"
-msgstr "Buchmanuskript"
-
-msgid "default.genres.chapter"
-msgstr "Kapitelmanuskript"
-
-msgid "default.genres.glossary"
-msgstr "Glossar"
-
-msgid "default.genres.index"
-msgstr "Register"
-
-msgid "default.genres.preface"
-msgstr "Vorwort"
-
-msgid "default.genres.prospectus"
-msgstr "Exposé"
-
-msgid "default.genres.table"
-msgstr "Tabelle"
-
-msgid "default.genres.figure"
-msgstr "Abbildung"
-
-msgid "default.genres.photo"
-msgstr "Foto"
-
-msgid "default.genres.illustration"
-msgstr "Illustration"
-
-msgid "default.genres.other"
-msgstr "Anderes"
-
-msgid "default.groups.name.manager"
-msgstr "Verlagsleiter/in"
-
-msgid "default.groups.plural.manager"
-msgstr "Verlagsleiter/innen"
-
-msgid "default.groups.abbrev.manager"
-msgstr "VL"
-
-msgid "default.groups.name.editor"
-msgstr "Herausgeber/in"
-
-msgid "default.groups.plural.editor"
-msgstr "Herausgeber/innen"
-
-msgid "default.groups.abbrev.editor"
-msgstr "Hrsg"
-
-msgid "default.groups.name.sectionEditor"
-msgstr "Reihenherausgeber/in"
-
-msgid "default.groups.plural.sectionEditor"
-msgstr "Reihenherausgeber/innen"
-
-msgid "default.groups.abbrev.sectionEditor"
-msgstr "RHrsg"
-
-msgid "default.groups.name.chapterAuthor"
-msgstr "Kapitelautor/in"
-
-msgid "default.groups.plural.chapterAuthor"
-msgstr "Kapitelautor/innen"
-
-msgid "default.groups.abbrev.chapterAuthor"
-msgstr "KapAu"
-
-msgid "default.groups.name.volumeEditor"
-msgstr "Sammelbandherausgeber/in"
-
-msgid "default.groups.plural.volumeEditor"
-msgstr "Sammelbandherausgeber/innen"
-
-msgid "default.groups.abbrev.volumeEditor"
-msgstr "RHrsg"
-
-msgid "default.contextSettings.checklist.notPreviouslyPublished"
-msgstr "Das eingereichte Manuskript wurde nicht bereits vorher veröffentlicht und liegt zurzeit auch nicht einem anderen Verlag zur Begutachtung vor (oder es wurde im Feld 'Vermerk für den/die Herausgeber/in\" eine entsprechende Erklärung dazu abgegeben)."
-
-msgid "default.contextSettings.checklist.fileFormat"
-msgstr "Die eingereichten Dateien liegen im Format Microsoft Word, RTF, OpenDocument oder WordPerfect vor."
-
-msgid "default.contextSettings.checklist.addressesLinked"
-msgstr "Soweit möglich, wurden den Literaturangaben URLs beigefügt."
-
-msgid "default.contextSettings.checklist.submissionAppearance"
-msgstr "Der Text ist mit einzeiligen Zeilenabstand in einer 12-Punkt-Schrift geschrieben; Hervorhebungen sind kursiv gesetzt, auf Unterstreichungen, wird - mit Ausnahme der URL-Adressen - verzichtet; alle Illustrationen, Abbildungen und Tabellen stehen an der Stelle im Text, an der sie auch in der endgültigen Fassung stehen sollen (nicht am Textende)."
-
-msgid "default.contextSettings.checklist.bibliographicRequirements"
-msgstr "Der Text entspricht den im Leitfaden für Autor/innen beschriebenen stilistischen und bibliographischen Anforderungen (s. den Reiter 'Über uns')."
-
-msgid "default.contextSettings.privacyStatement"
-msgstr "Namen und E-Mail-Adressen, die auf dieser Website eingetragen sind, werden ausschließlich zu den angegebenen Zwecken verwendet und nicht an Dritte weitergegeben.
"
-
-msgid "default.contextSettings.openAccessPolicy"
-msgstr "Dieser Verlag bietet freien Zugang (Open Access) zu seinen Inhalten, entsprechend der Grundannahme, dass die freie öffentliche Verfügbarkeit von Forschung einem weltweiten Wissensaustausch zugute kommt."
-
-msgid "default.contextSettings.forReaders"
-msgstr ""
-"Sie möchten gerne über die Neuerscheinungen unseres Verlages auf dem "
-"Laufenden gehalten werden? Als registrierte/r Leser/in erhalten Sie von "
-"jeder neu erscheinenden Monographie das Inhaltsverzeichnis per E-Mail "
-"zugeschickt. Folgen Sie dem Registrieren-Link rechts oben auf der Homepage, um sich für "
-"diesen Service anzumelden. Selbstverständlich sichern wir Ihnen zu, dass Ihr "
-"Name und Ihre E-Mail-Adresse nicht zu anderen Zwecken verwendet werden ("
-"siehe Datenschutzerklärung."
-
-msgid "default.contextSettings.forAuthors"
-msgstr ""
-"Haben Sie Interesse, ein Manuskript bei uns einzureichen? Dann möchten wir "
-"Sie auf die Seite Über uns "
-"verweisen. Dort finden Sie die Richtlinien des Verlags. Bitte beachten Sie "
-"auch die Richtlinien für Autor/innen. Autor/innen müssen sich <"
-"a href=\"{$indexUrl}/{$contextPath}/user/register\">registrieren
, bevor "
-"sie ein Buch oder einen Beitrag zu einem Sammelband einreichen können. Wenn "
-"Sie bereits registriert sind, können Sie sich einloggen und die fünf \"Schritte zur Einreichung\" abarbeiten."
-
-msgid "default.contextSettings.forLibrarians"
-msgstr "Wir ermutigen wissenschaftliche Bibliothekar/innen, diesen Verlag in den digitalen Bestand ihrer Bibliothek aufzunehmen. Bibliotheken können dieses Open-Source-Publikationssystem außerdem zum Hosting für Verlage einsetzen, an deren Arbeit ihre Wissenschaftler/innen beteiligt sind (siehe Open Monograph Press)."
-
-msgid "default.groups.abbrev.externalReviewer"
-msgstr "ER"
-
-msgid "default.groups.plural.externalReviewer"
-msgstr "Externe Gutachter/innen"
-
-msgid "default.groups.name.externalReviewer"
-msgstr "Externe/r Gutachter/in"
-
-msgid "default.groups.abbrev.subscriptionManager"
-msgstr "SubMng"
-
-msgid "default.groups.plural.subscriptionManager"
-msgstr "Subskriptionsmanager/innen"
-
-msgid "default.groups.name.subscriptionManager"
-msgstr "Subskriptionsmanager/in"
diff --git a/locale/de_DE/editor.po b/locale/de_DE/editor.po
deleted file mode 100644
index 881df5f28b7..00000000000
--- a/locale/de_DE/editor.po
+++ /dev/null
@@ -1,176 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2021-01-21 15:49+0000\n"
-"Last-Translator: Heike Riegler \n"
-"Language-Team: German \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 "editor.submissionArchive"
-msgstr "Manuskriptarchiv"
-
-msgid "editor.monograph.cancelReview"
-msgstr "Anfrage abbrechen"
-
-msgid "editor.monograph.clearReview"
-msgstr "Gutachter/innen löschen"
-
-msgid "editor.monograph.enterRecommendation"
-msgstr "Empfehlung abgeben"
-
-msgid "editor.monograph.enterReviewerRecommendation"
-msgstr "Empfehlung der Gutachterin/des Gutachters eintragen"
-
-msgid "editor.monograph.recommendation"
-msgstr "Empfehlung"
-
-msgid "editor.monograph.selectReviewerInstructions"
-msgstr "Wählen Sie oben einen Gutachter/eine Gutachterin aus und klicken Sie auf 'Gutachter/in auswählen'."
-
-msgid "editor.monograph.replaceReviewer"
-msgstr "Gutachter/innen ersetzen"
-
-msgid "editor.monograph.editorToEnter"
-msgstr "Herausgeber/innen pflegen die Empfehlungen/Kommentare für Gutachter/in ein"
-
-msgid "editor.monograph.uploadReviewForReviewer"
-msgstr "Gutachten hochladen"
-
-msgid "editor.monograph.peerReviewOptions"
-msgstr "Gutachten-Optionen"
-
-msgid "editor.monograph.selectProofreadingFiles"
-msgstr "Korrekturfahnen-Dateien"
-
-msgid "editor.monograph.internalReview"
-msgstr "Interne Begutachtung starten"
-
-msgid "editor.monograph.internalReviewDescription"
-msgstr "Sie starten hiermit das interne Begutachtungsverfahren. Dateien, die Teil des eingereichten Manuskripts sind, finden Sie unten aufgelistet und können von Ihnen zur Begutachtung ausgewählt werden."
-
-msgid "editor.monograph.externalReview"
-msgstr "Externe Begutachtung starten"
-
-msgid "editor.monograph.final.selectFinalDraftFiles"
-msgstr "Endfassungen auswählen"
-
-msgid "editor.monograph.final.currentFiles"
-msgstr "Aktuelle Endfassungen"
-
-msgid "editor.monograph.copyediting.currentFiles"
-msgstr "Aktuelle Dateien"
-
-msgid "editor.monograph.copyediting.personalMessageToUser"
-msgstr "Nachricht an den Benutzer/die Benutzerin"
-
-msgid "editor.monograph.legend.submissionActions"
-msgstr "Einreichungsaktionen"
-
-msgid "editor.monograph.legend.submissionActionsDescription"
-msgstr "Während der Einreichung mögliche Aktionen und Optionen"
-
-msgid "editor.monograph.legend.sectionActions"
-msgstr "Sektionsaktionen"
-
-msgid "editor.monograph.legend.sectionActionsDescription"
-msgstr "Für eine bestimmte Sektion spezifische Optionen, z.B. Dateien hochladen oder Benutzer/innen hinzufügen."
-
-msgid "editor.monograph.legend.itemActions"
-msgstr "Auf den Titel bezogene Aktionen"
-
-msgid "editor.monograph.legend.itemActionsDescription"
-msgstr "Für eine individuelle Datei spezifische Aktionen und Optionen."
-
-msgid "editor.monograph.legend.catalogEntry"
-msgstr "Katalogeintrag anschauen und verwalten (einschließlich Metadaten und Formate)"
-
-msgid "editor.monograph.legend.bookInfo"
-msgstr "Metadaten, Anmerkungen, Benachrichtigungen sowie das Verlaufsprotokoll zu einem Manuskript anschauen und verwalten"
-
-msgid "editor.monograph.legend.participants"
-msgstr "Die an der Manuskriptbearbeitung Beteiligten wie z.B. Autor/innen, Redakteur/innen, Layouter/innen ansehen und verwalten"
-
-msgid "editor.monograph.legend.add"
-msgstr "Eine Datei in dieser Sektion hochladen"
-
-msgid "editor.monograph.legend.add_user"
-msgstr "Zu dieser Sektion einen Benutzer hinzufügen"
-
-msgid "editor.monograph.legend.settings"
-msgstr ""
-"Ansicht und Zugang zu den Einstellungen, wie zum Beispiel für die "
-"Informations- und Löscheinstellungen"
-
-msgid "editor.monograph.legend.more_info"
-msgstr "Weitere Informationen: Anmerkungen zu den Dateien, Benachrichtigungsoptionen und Verlaufsprotokoll"
-
-msgid "editor.monograph.legend.notes_none"
-msgstr "Datei-Informationen: Anmerkungen, Benachrichtigungsoptionen und Verlaufsprotokoll (bisher wurden noch keine Anmerkungen hinzufügt)"
-
-msgid "editor.monograph.legend.notes"
-msgstr "Datei-Informationen: Anmerkungen, Benachrichtigungsoptionen und Verlauf (es liegen Anmerkungen vor)"
-
-msgid "editor.monograph.legend.notes_new"
-msgstr "Datei-Informationen: Anmerkungen, Benachrichtigungsoptionen und Verlauf (seit dem letzten Besuch wurden Anmerkungen hinzugefügt)"
-
-msgid "editor.monograph.legend.edit"
-msgstr "Titel bearbeiten"
-
-msgid "editor.monograph.legend.delete"
-msgstr "Titel entfernen"
-
-msgid "editor.monograph.legend.in_progress"
-msgstr "Aktion wird noch ausgeführt oder ist noch nicht vollständig"
-
-msgid "editor.monograph.legend.complete"
-msgstr "Aktion vollständig"
-
-msgid "editor.monograph.legend.uploaded"
-msgstr "Datei wurde hochgeladen durch die im Spaltentitel angegebene Rolle"
-
-msgid "editor.submission.introduction"
-msgstr "In der Einreichungsphase bestimmt der zuständige Herausgeber/die zuständige Herausgeberin nach Prüfung der eingereichten Manuskripte die passende Aktion aus (über die der Autor/die Autorin grundsätzlich informiert wird): Zur internen Begutachtung senden (anschließend müssen die für die interne Begutachtung vorgesehenen Dateien ausgewählt werden); Zur externen Begutachtung senden (anschließend müssen die für die externe Begutachtung vorgesehenen Dateien ausgewählt werden); Manuskript annnehmen (anschließend sind die Dateien für die redaktionelle Bearbeitung auszuwählen) oder Manuskript ablehnen (das Manuskript wird im Archiv abgelegt)."
-
-msgid "editor.monograph.editorial.fairCopy"
-msgstr "Freigegebene satzfertige Manuskriptfassung"
-
-msgid "editor.monograph.proofs"
-msgstr "Korrekturfahnen"
-
-msgid "editor.monograph.production.approvalAndPublishing"
-msgstr "Freigabe und Veröffentlichung"
-
-msgid "editor.monograph.production.approvalAndPublishingDescription"
-msgstr "Verschiedene Formate wie zum Beispiel Hardcover, Softcover und digitale Formate können unten unter 'Formate' hochgeladen werden. Sie können die Formate-Tabelle als Checkliste verwenden, um zu prüfen, was noch für die Veröffentlichung im ausgewählten Format getan werden muss."
-
-msgid "editor.monograph.production.publicationFormatDescription"
-msgstr "Fügen Sie Formate (z.B. digital, Paperback) hinzu, für die der Layouter Korrekturfahnen zum Korrekturlesen erstellen soll. Die Korrekturdateien müssen als \"akzeptiert\" gekennzeichnet und die Metadaten im Katalog aufgenommen und zur Veröffentlichung freigegeben worden sein, damit das Buch als verfügbar angezeigt (das heißt 'veröffentlicht') werden kann."
-
-msgid "editor.monograph.approvedProofs.edit"
-msgstr "Bedingungen für den Download festlegen"
-
-msgid "editor.monograph.approvedProofs.edit.linkTitle"
-msgstr "Bestimmungen festlegen"
-
-msgid "editor.monograph.proof.addNote"
-msgstr "Antwort hinzufügen"
-
-msgid "editor.submission.proof.manageProofFilesDescription"
-msgstr "Alle Dateien, die schon zu irgendeiner Einreichungsphase hochgeladen worden sind, können zur Liste der Korrekturfahnen hinzugefügt werden, indem Sie die Einschließen-Checkbox unten aktivieren und danach auf Suche klicken: Alle verfügbaren Dateien werden angezeigt und können ausgewählt werden, um sie in die Liste aufzunehmen."
-
-msgid "editor.submissions.assignedTo"
-msgstr "Einem/r Redakteur/in zugeordnet"
-
-msgid "editor.publicIdentificationExistsForTheSameType"
-msgstr ""
-"Der Public Identifier '{$publicIdentifier}' existiert bereits für ein "
-"anderes Objekt desselben Typs. Bitte wählen Sie eindeutige Identifier für "
-"die Objekte des gleichen Typs innerhalb Ihres Verlags."
diff --git a/locale/de_DE/locale.po b/locale/de_DE/locale.po
deleted file mode 100644
index 43df938fe38..00000000000
--- a/locale/de_DE/locale.po
+++ /dev/null
@@ -1,1585 +0,0 @@
-# Pia Piontkowitz , 2021, 2022.
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2022-02-22 11:05+0000\n"
-"Last-Translator: Pia Piontkowitz \n"
-"Language-Team: German \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 "monograph.audience"
-msgstr "Zielgruppe"
-
-msgid "monograph.coverImage"
-msgstr "Titelbild"
-
-msgid "monograph.audience.rangeQualifier"
-msgstr "Grundlage der Eingrenzung der Zielgruppe"
-
-msgid "monograph.audience.rangeFrom"
-msgstr "Bildungsstand (von)"
-
-msgid "monograph.audience.rangeTo"
-msgstr "Bildungsstand (bis)"
-
-msgid "monograph.audience.rangeExact"
-msgstr "Bildungsstand (genau)"
-
-msgid "monograph.languages"
-msgstr "Sprachen (Englisch, Französisch, Spanisch)"
-
-msgid "monograph.publicationFormats"
-msgstr "Publikationsformate"
-
-msgid "monograph.publicationFormat"
-msgstr "Format"
-
-msgid "monograph.publicationFormatDetails"
-msgstr "Genauere Angaben zum verfügbaren Publikationsformat {$format}"
-
-msgid "monograph.miscellaneousDetails"
-msgstr "Angaben zur Monographie"
-
-msgid "monograph.carousel.publicationFormats"
-msgstr "Formate:"
-
-msgid "monograph.type"
-msgstr "Art der Einreichung"
-
-msgid "submission.pageProofs"
-msgstr "Korrekturfahnen"
-
-msgid "monograph.proofReadingDescription"
-msgstr ""
-"Der Layouter/die Layouterin lädt hier die für die Publikation vorbereiteten "
-"herstellungsreifen Dateien hoch. Über +Zuweisen können Sie Autor/"
-"innen und andere Beteiligten mit dem Gegenlesen der Korrekturfahne "
-"beauftragen, wobei die korrigierten Dateien zur abschließenden Prüfung "
-"erneut hochgeladen werden müssen bevor es zu einer Veröffentlichung kommt."
-
-msgid "monograph.task.addNote"
-msgstr "Zu den Aufgaben hinzufügen"
-
-msgid "monograph.accessLogoOpen.altText"
-msgstr "Open Access"
-
-msgid "monograph.publicationFormat.imprint"
-msgstr "Impressum (Marken-/Verlagsname)"
-
-msgid "monograph.publicationFormat.pageCounts"
-msgstr "Seitenanzahl"
-
-msgid "monograph.publicationFormat.frontMatterCount"
-msgstr "Titelei"
-
-msgid "monograph.publicationFormat.backMatterCount"
-msgstr "Nachspann"
-
-msgid "monograph.publicationFormat.productComposition"
-msgstr "Produktzusammensetzung"
-
-msgid "monograph.publicationFormat.productFormDetailCode"
-msgstr "Produktangaben (nicht erforderlich)"
-
-msgid "monograph.publicationFormat.productIdentifierType"
-msgstr "Produktcode"
-
-msgid "monograph.publicationFormat.price"
-msgstr "Preis"
-
-msgid "monograph.publicationFormat.priceRequired"
-msgstr "Eine Preisangabe ist erforderlich."
-
-msgid "monograph.publicationFormat.priceType"
-msgstr "Preisart"
-
-msgid "monograph.publicationFormat.discountAmount"
-msgstr "Rabattsatz (falls zutreffend)"
-
-msgid "monograph.publicationFormat.productAvailability"
-msgstr "Verfügbarkeit"
-
-msgid "monograph.publicationFormat.returnInformation"
-msgstr "Remissionskonditionen"
-
-msgid "monograph.publicationFormat.digitalInformation"
-msgstr "Digitale Informationen"
-
-msgid "monograph.publicationFormat.productDimensions"
-msgstr "Abmessungen"
-
-msgid "monograph.publicationFormat.productDimensionsSeparator"
-msgstr " x "
-
-msgid "monograph.publicationFormat.productFileSize"
-msgstr "Dateigröße in MB"
-
-msgid "monograph.publicationFormat.productFileSize.override"
-msgstr "Möchten Sie eine eigene Dateigröße eingeben?"
-
-msgid "monograph.publicationFormat.productHeight"
-msgstr "Höhe"
-
-msgid "monograph.publicationFormat.productThickness"
-msgstr "Dicke"
-
-msgid "monograph.publicationFormat.productWeight"
-msgstr "Gewicht"
-
-msgid "monograph.publicationFormat.productWidth"
-msgstr "Breite"
-
-msgid "monograph.publicationFormat.countryOfManufacture"
-msgstr "Herstellungsland"
-
-msgid "monograph.publicationFormat.technicalProtection"
-msgstr "Digitale technische Schutzmaßnahmen"
-
-msgid "monograph.publicationFormat.productRegion"
-msgstr "Vertriebsregion"
-
-msgid "monograph.publicationFormat.taxRate"
-msgstr "Steuersatz"
-
-msgid "monograph.publicationFormat.taxType"
-msgstr "Steuerart"
-
-msgid "monograph.publicationFormat.isApproved"
-msgstr "Metadaten für dieses Publikationsformat in den Katalog aufnehmen."
-
-msgid "monograph.publicationFormat.noMarketsAssigned"
-msgstr "Markt- und Preisangabe fehlen."
-
-msgid "monograph.publicationFormat.noCodesAssigned"
-msgstr "Identifikationscode fehlt."
-
-msgid "monograph.publicationFormat.missingONIXFields"
-msgstr "Einige Metadatenfelder wurden nicht ausgefüllt."
-
-msgid "monograph.publicationFormat.formatDoesNotExist"
-msgstr ""
-"Das von Ihnen gewählte Format steht für diese Monographie nicht mehr zur "
-"Verfügung.
"
-
-msgid "monograph.publicationFormat.openTab"
-msgstr "Öffne Reiter Publikationsform."
-
-msgid "grid.catalogEntry.publicationFormatType"
-msgstr "Format"
-
-msgid "grid.catalogEntry.nameRequired"
-msgstr "Eine Namensangabe ist erforderlich."
-
-msgid "grid.catalogEntry.validPriceRequired"
-msgstr "Eine gültige Preisangabe ist erforderlich."
-
-msgid "grid.catalogEntry.publicationFormatDetails"
-msgstr "Weitere Angaben für dieses Format"
-
-msgid "grid.catalogEntry.physicalFormat"
-msgstr "Physisches Format"
-
-msgid "grid.catalogEntry.remotelyHostedContent"
-msgstr "Dieses Format wird auf einer externen Website bereitgestellt werden"
-
-msgid "grid.catalogEntry.remoteURL"
-msgstr "URL des remote bereitgestellten Inhalts"
-
-msgid "grid.catalogEntry.monographRequired"
-msgstr "Es wird eine Kennung für die Monographie benötigt."
-
-msgid "grid.catalogEntry.publicationFormatRequired"
-msgstr "Bitte wählen Sie ein Publikationsformat."
-
-msgid "grid.catalogEntry.availability"
-msgstr "Verfügbarkeit"
-
-msgid "grid.catalogEntry.isAvailable"
-msgstr "Verfügbar"
-
-msgid "grid.catalogEntry.isNotAvailable"
-msgstr "Nicht verfügbar"
-
-msgid "grid.catalogEntry.proof"
-msgstr "Korrekturfahne"
-
-msgid "grid.catalogEntry.approvedRepresentation.title"
-msgstr "Format-Freigabe"
-
-msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
-msgstr "Anzeigen, dass die Metadaten für dieses Format noch nicht genehmigt wurden.
"
-
-msgid "grid.catalogEntry.availableRepresentation.title"
-msgstr "Format-Verfügbarkeit"
-
-msgid "grid.catalogEntry.availableRepresentation.message"
-msgstr "Dieses Format für Leser/innen zugänglich machen. Herunterladbare Dateien und alle anderen Vertriebswege werden im Katalogeintrag des Buchs angezeigt.
"
-
-msgid "grid.catalogEntry.availableRepresentation.removeMessage"
-msgstr "Dieses Format wird für Leser/innen nicht verfügbar sein. Alle herunterladbaren Dateien oder andere Vertriebswege werden nicht mehr im Katalogeintrag des Buchs angezeigt.
"
-
-msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
-msgstr "Der Katalogeintrag wurde nicht akzeptiert."
-
-msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
-msgstr "Format nicht im Katalogeintrag."
-
-msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
-msgstr "Fahne nicht akzeptiert."
-
-msgid "grid.catalogEntry.availableRepresentation.approved"
-msgstr "Akzeptiert"
-
-msgid "grid.catalogEntry.availableRepresentation.notApproved"
-msgstr "Warte auf Freigabe"
-
-msgid "grid.catalogEntry.fileSizeRequired"
-msgstr "Für digitale Formate wird eine Dateigröße benötigt."
-
-msgid "grid.catalogEntry.productAvailabilityRequired"
-msgstr "Bitte geben Sie die Produktverfügbarkeit an."
-
-msgid "grid.catalogEntry.productCompositionRequired"
-msgstr "Bitte wählen Sie einen Code für die Produktzusammensetzung."
-
-msgid "grid.catalogEntry.identificationCodeValue"
-msgstr "Wert"
-
-msgid "grid.catalogEntry.identificationCodeType"
-msgstr "ONIX Code-Typ"
-
-msgid "grid.catalogEntry.codeRequired"
-msgstr "Ein Code ist erforderlich."
-
-msgid "grid.catalogEntry.valueRequired"
-msgstr "Bitte geben Sie einen Wert ein."
-
-msgid "grid.catalogEntry.salesRights"
-msgstr "Vertriebskonditionen"
-
-msgid "grid.catalogEntry.salesRightsValue"
-msgstr "Codewert"
-
-msgid "grid.catalogEntry.salesRightsType"
-msgstr "Vertriebskonditionen"
-
-msgid "grid.catalogEntry.salesRightsROW"
-msgstr "Restliche Welt/Rest of World?"
-
-msgid "grid.catalogEntry.salesRightsROW.tip"
-msgstr "Setzen Sie hier einen Haken, wenn Sie die Vertriebskonditionen pauschal festlegen möchten. Sie müssen in diesem Fall nicht einzelne Länder und Regionen auswählen."
-
-msgid "grid.catalogEntry.oneROWPerFormat"
-msgstr "Es wurde schon \"Restliche Welt\" als Geltungsbereich für die Vertriebskonditionen dieses Formats festgelegt."
-
-msgid "grid.catalogEntry.countries"
-msgstr "Länder"
-
-msgid "grid.catalogEntry.regions"
-msgstr "Regionen"
-
-msgid "grid.catalogEntry.included"
-msgstr "Eingeschlossen"
-
-msgid "grid.catalogEntry.excluded"
-msgstr "Ausgeschlossen"
-
-msgid "grid.catalogEntry.markets"
-msgstr "Absatzgebiete"
-
-msgid "grid.catalogEntry.marketTerritory"
-msgstr "Gebiet"
-
-msgid "grid.catalogEntry.publicationDates"
-msgstr "Erscheinungsdatum"
-
-msgid "grid.catalogEntry.roleRequired"
-msgstr "Die Angabe einer Vertreter/in ist erforderlich."
-
-msgid "grid.catalogEntry.dateFormatRequired"
-msgstr "Bitte geben Sie ein Datumsformat ein."
-
-msgid "grid.catalogEntry.dateValue"
-msgstr "Datum"
-
-msgid "grid.catalogEntry.dateRole"
-msgstr "Das Datum bezieht sich auf das ..."
-
-msgid "grid.catalogEntry.dateFormat"
-msgstr "Datumsformat"
-
-msgid "grid.catalogEntry.dateRequired"
-msgstr "Bitte geben Sie ein Datum ein. Das Datumsformat muss dem von Ihnen gewählten Format entsprechen."
-
-msgid "grid.catalogEntry.representatives"
-msgstr "Vertriebspartner"
-
-msgid "grid.catalogEntry.representativeType"
-msgstr "Vertriebspartnertyp"
-
-msgid "grid.catalogEntry.agentsCategory"
-msgstr "Vertreter/innen"
-
-msgid "grid.catalogEntry.suppliersCategory"
-msgstr "Dienstleister"
-
-msgid "grid.catalogEntry.agent"
-msgstr "Vertreter/in"
-
-msgid "grid.catalogEntry.agentTip"
-msgstr "Sie können eine/n Vertreter/in bestimmen, um Sie in dem ausgewählten Gebiet zu repräsentieren. Diese Angabe ist nicht verpflichtend."
-
-msgid "grid.catalogEntry.supplier"
-msgstr "Dienstleister"
-
-msgid "grid.catalogEntry.representativeRoleChoice"
-msgstr "Wählen Sie eine Funktion:"
-
-msgid "grid.catalogEntry.representativeRole"
-msgstr "Funktion"
-
-msgid "grid.catalogEntry.representativeName"
-msgstr "Name"
-
-msgid "grid.catalogEntry.representativePhone"
-msgstr "Telefon"
-
-msgid "grid.catalogEntry.representativeEmail"
-msgstr "E-Mail-Adresse"
-
-msgid "grid.catalogEntry.representativeWebsite"
-msgstr "Website"
-
-msgid "grid.catalogEntry.representativeIdValue"
-msgstr "Identifkationsnummer des Unternehmens"
-
-msgid "grid.catalogEntry.representativeIdType"
-msgstr "Identifikationsnmmerntyp des Unternehmens (empfohlen wird GLN)"
-
-msgid "grid.catalogEntry.representativesDescription"
-msgstr "Sie können die folgenden Abschnitte leer lassen, wenn Sie Ihren Kunden Ihre eigenen Dienste anbieten möchten."
-
-msgid "grid.action.addRepresentative"
-msgstr "Vertriebspartner hinzufügen"
-
-msgid "grid.action.editRepresentative"
-msgstr "Diesen Vertriebspartner bearbeiten"
-
-msgid "grid.action.deleteRepresentative"
-msgstr "Vertriebspartner entfernen"
-
-msgid "spotlight"
-msgstr "Spotlight"
-
-msgid "spotlight.spotlights"
-msgstr "Spotlights"
-
-msgid "spotlight.noneExist"
-msgstr "Aktuell sind keine Spotlights vorhanden."
-
-msgid "spotlight.title.homePage"
-msgstr "Im Rampenlicht"
-
-msgid "spotlight.author"
-msgstr "Autor, "
-
-msgid "grid.content.spotlights.spotlightItemTitle"
-msgstr "Spotlight-Titel"
-
-msgid "grid.content.spotlights.category.homepage"
-msgstr "Homepage"
-
-msgid "grid.content.spotlights.form.location"
-msgstr "Spotlightplatzierung"
-
-msgid "grid.content.spotlights.form.item"
-msgstr "Geben Sie den Titel des Spotlights ein (Auto-Vervollständigen)"
-
-msgid "grid.content.spotlights.form.title"
-msgstr "Spotlight-Titel (wie er auf der Website erscheinen soll)"
-
-msgid "grid.content.spotlights.form.type.book"
-msgstr "Buch"
-
-msgid "grid.content.spotlights.itemRequired"
-msgstr "Bitte machen Sie eine Angabe."
-
-msgid "grid.content.spotlights.titleRequired"
-msgstr "Bitte geben Sie den Titel des Spotlights an."
-
-msgid "grid.content.spotlights.locationRequired"
-msgstr "Bitte wählen Sie einen Platz für dieses Spotlight."
-
-msgid "grid.action.editSpotlight"
-msgstr "Spotlight bearbeiten"
-
-msgid "grid.action.deleteSpotlight"
-msgstr "Spotlight löschen"
-
-msgid "grid.action.addSpotlight"
-msgstr "Spotlight hinzufügen"
-
-msgid "manager.series.open"
-msgstr "Offene Einreichungen"
-
-msgid "manager.series.indexed"
-msgstr "Indiziert"
-
-msgid "grid.libraryFiles.column.files"
-msgstr "Dateien"
-
-msgid "grid.action.catalogEntry"
-msgstr "Den Katalogeintrag ansehen"
-
-msgid "grid.action.formatInCatalogEntry"
-msgstr "Das Format erscheint im Katalog"
-
-msgid "grid.action.editFormat"
-msgstr "Format bearbeiten"
-
-msgid "grid.action.deleteFormat"
-msgstr "Format entfernen"
-
-msgid "grid.action.addFormat"
-msgstr "Format hinzufügen"
-
-msgid "grid.action.approveProof"
-msgstr ""
-"Akzeptieren Sie die Korrekturfahne um den Titel zu indizieren und dem "
-"Katalog hinzuzufügen"
-
-msgid "grid.action.pageProofApproved"
-msgstr "Die Korrekturfahnen ist fertig zur Veröffentlichung"
-
-msgid "grid.action.newCatalogEntry"
-msgstr "Neuer Katalogeintrag"
-
-msgid "grid.action.publicCatalog"
-msgstr "Diesen Titel im Katalog ansehen"
-
-msgid "grid.action.feature"
-msgstr "Auf die Anzeige empfohlener Bücher umschalten"
-
-msgid "grid.action.featureMonograph"
-msgstr "Diesen Band in das Karussell aufnehmen"
-
-msgid "grid.action.releaseMonograph"
-msgstr "Diesen Titel als 'Neuerscheinung' kennzeichnen"
-
-msgid "grid.action.manageCategories"
-msgstr "Kategorien konfigurieren"
-
-msgid "grid.action.manageSeries"
-msgstr "Reihen konfigurieren"
-
-msgid "grid.action.addCode"
-msgstr "Code hinzufügen"
-
-msgid "grid.action.editCode"
-msgstr "Diesen Code bearbeiten"
-
-msgid "grid.action.deleteCode"
-msgstr "Diesen Code löschen"
-
-msgid "grid.action.addRights"
-msgstr "Vertriebskonditionen hinzufügen"
-
-msgid "grid.action.editRights"
-msgstr "Konditionen bearbeiten"
-
-msgid "grid.action.deleteRights"
-msgstr "Konditionen entfernen"
-
-msgid "grid.action.addMarket"
-msgstr "Absatzmarkt hinzufügen"
-
-msgid "grid.action.editMarket"
-msgstr "Absatzmarkt bearbeiten"
-
-msgid "grid.action.deleteMarket"
-msgstr "Absatzmarkt entfernen"
-
-msgid "grid.action.addDate"
-msgstr "Erscheinungsdatum hinzufügen"
-
-msgid "grid.action.editDate"
-msgstr "Dieses Datum bearbeiten"
-
-msgid "grid.action.deleteDate"
-msgstr "Dieses Datum löschen"
-
-msgid "grid.action.createContext"
-msgstr "Einen neuen Verlag anlegen"
-
-msgid "grid.action.publicationFormatTab"
-msgstr "Zeige den Reiter Format"
-
-msgid "grid.action.moreAnnouncements"
-msgstr "Zu den Bekanntmachungen"
-
-msgid "grid.action.submissionEmail"
-msgstr "Zum Lesen der E-Mail bitte klicken"
-
-msgid "grid.action.approveProofs"
-msgstr "Korrekturfahnen anzeigen"
-
-msgid "grid.action.proofApproved"
-msgstr "Das Format wurde geprüft"
-
-msgid "grid.action.availableRepresentation"
-msgstr "Dieses Format freigeben/nicht freigeben"
-
-msgid "grid.action.formatAvailable"
-msgstr "Format ist verfügbar und wurde veröffentlicht"
-
-msgid "grid.reviewAttachments.add"
-msgstr "Füge dem Gutachten einen Anhang hinzu"
-
-msgid "grid.reviewAttachments.availableFiles"
-msgstr "Verfügbare Dateien"
-
-msgid "series.series"
-msgstr "Reihe"
-
-msgid "series.featured.description"
-msgstr "Diese Reihen werden in der Hauptnavigation erscheinen"
-
-msgid "series.path"
-msgstr "Pfad"
-
-msgid "catalog.manage"
-msgstr "Katalogverwaltung"
-
-msgid "catalog.manage.homepage"
-msgstr "Homepage"
-
-msgid "catalog.manage.newReleases"
-msgstr "Neuerscheinungen"
-
-msgid "catalog.manage.category"
-msgstr "Kategorie"
-
-msgid "catalog.manage.series"
-msgstr "Reihe"
-
-msgid "catalog.manage.series.issn"
-msgstr "ISSN"
-
-msgid "catalog.manage.series.issn.validation"
-msgstr "Bitte geben Sie eine gültige ISSN an."
-
-msgid "catalog.manage.series.issn.equalValidation"
-msgstr "Online- und Print-ISSN dürfen nicht gleich sein."
-
-msgid "catalog.manage.series.onlineIssn"
-msgstr "Online-ISSN"
-
-msgid "catalog.manage.series.printIssn"
-msgstr "Print-ISSN"
-
-msgid "catalog.selectSeries"
-msgstr "Wählen Sie eine Reihe aus"
-
-msgid "catalog.selectCategory"
-msgstr "Wählen Sie eine Kategorie aus"
-
-msgid "catalog.manage.homepageDescription"
-msgstr "Die Umschlagbilder der ausgewählten Bücher erscheinen auf der Homepage als scrollbare Liste. Klicken Sie auf den Icon 'Empfehlen' (rechts) und anschließend auf das entsprechende Sternchen, um ein Buch dem Karussell hinzuzufügen, und auf das Ausrufezeichen, wenn Sie es unter der Rubrik 'Neuerscheinungen\" erscheinen soll. Durch Drag and Drop können Sie die Reihenfolge festlegen, in der die Bücher angezeigt werden."
-
-msgid "catalog.manage.categoryDescription"
-msgstr "Um ein Buch auszuwählen, das Sie in der jeweiligen Kategorie besonders empfehlen möchten, klicken Sie zunächst auf den Icon 'Empfehlen' (rechts unterhalb dieser Erklärung) und dann auf das Sternchen. Mit Drag and Drop legen Sie die Reihenfolge der angezeigten empfohlenen Titel fest."
-
-msgid "catalog.manage.seriesDescription"
-msgstr "Wenn Sie innerhalb der Reihe ein Buch als empfehlenswert hervorheben möchten, klicken Sie zuerst auf den Icon 'Empfehlen' (rechts unterhalb dieser Erklärung) und dann auf das jeweilige Sternchen. Mit Drag and Drop können Sie die Reihenfolge festlegen, in der die empfohlenen Titel anzeigt werden. Reihen lassen sich stets über den/die Herausgeber/in und Titel identifizieren, sie können einer Kategorie zugeordnet sein, müssen es aber nicht."
-
-msgid "catalog.manage.placeIntoCarousel"
-msgstr "Karussell"
-
-msgid "catalog.manage.newRelease"
-msgstr "Ausgabe"
-
-msgid "catalog.manage.manageSeries"
-msgstr "Reihen verwalten"
-
-msgid "catalog.manage.manageCategories"
-msgstr "Kategorien verwalten"
-
-msgid "catalog.manage.noMonographs"
-msgstr "Es liegen keine Ihnen zugewiesenen Monographien vor."
-
-msgid "catalog.manage.newReleaseSuccess"
-msgstr "Die Monographie wurde als Neuerscheinung gekennzeichnet."
-
-msgid "catalog.manage.notNewReleaseSuccess"
-msgstr "Die Kenntlichmachung als Neuerscheinung wurde entfernt."
-
-msgid "catalog.manage.feature.newRelease"
-msgstr "Neuerscheinung"
-
-msgid "catalog.manage.feature.categoryNewRelease"
-msgstr "Neuerscheinung in der Kategorie"
-
-msgid "catalog.manage.feature.seriesNewRelease"
-msgstr "Neuerscheinung in der Reihe"
-
-msgid "catalog.manage.filter.searchByAuthorOrTitle"
-msgstr "Nach Titel oder Autor/in suchen"
-
-msgid "catalog.noTitles"
-msgstr "Bisher wurden keine Titel veröffentlicht."
-
-msgid "catalog.noTitlesNew"
-msgstr "Zur Zeit sind keine neuen Veröffentlichungen verfügbar."
-
-msgid "catalog.noTitlesSearch"
-msgstr "Zu Ihrer Suche nach \"{$searchQuery}\" wurden keine passenden Titel gefunden."
-
-msgid "catalog.feature"
-msgstr "Empfehlen"
-
-msgid "catalog.featured"
-msgstr "Empfohlen"
-
-msgid "catalog.featuredBooks"
-msgstr "Empfohlene Bücher"
-
-msgid "catalog.foundTitleSearch"
-msgstr "Zu Ihrer Suche nach \"{$searchQuery}\" wurde ein Titel gefunden."
-
-msgid "catalog.foundTitlesSearch"
-msgstr "Zu Ihrer Suche nach \"{$searchQuery}\" wurden {$number} Titel gefunden."
-
-msgid "catalog.category.heading"
-msgstr "Alle Bücher"
-
-msgid "catalog.newReleases"
-msgstr "Neuerscheinungen"
-
-msgid "catalog.dateAdded"
-msgstr "Hinzugefügt {$dateAdded}"
-
-msgid "catalog.publicationInfo"
-msgstr "Informationen zum Buch"
-
-msgid "catalog.published"
-msgstr "Veröffentlicht"
-
-msgid "catalog.categories"
-msgstr "Kategorien"
-
-msgid "catalog.parentCategory"
-msgstr "Oberkategorie"
-
-msgid "catalog.category.subcategories"
-msgstr "Unterkategorie"
-
-msgid "catalog.aboutTheAuthor"
-msgstr "Über den/die {$roleName}"
-
-msgid "catalog.loginRequiredForPayment"
-msgstr "Bitte beachten Sie: Um einen Band zu kaufen, müssen Sie angemeldet sein. Sobald Sie einen Band ausgewählt haben, den Sie erwerben möchten, gelangen Sie automatisch zur Anmeldeseite. Alle Titel, die mit einem Open-Access-Symbol (geöffnetes Schloss) gekennzeichnet sind, können kostenlos heruntergeladen werden. Eine Anmeldung ist dazu nicht erforderlich."
-
-msgid "catalog.sortBy"
-msgstr "Reihenfolge der Bücher"
-
-msgid "catalog.sortBy.seriesDescription"
-msgstr "Wählen Sie aus, in welcher Reihenfolge Bücher in dieser Reihe angezeigt werden sollen."
-
-msgid "catalog.sortBy.categoryDescription"
-msgstr "Wählen Sie aus, in welcher Reihenfolge Bücher in dieser Kategorie angezeigt werden sollen."
-
-msgid "catalog.sortBy.catalogDescription"
-msgstr "Wählen Sie aus, in welcher Reihenfolge Bücher im Katalog angezeigt werden sollen."
-
-msgid "catalog.sortBy.seriesPositionAsc"
-msgstr "Position in Reihe (niedrigste zuerst)"
-
-msgid "catalog.sortBy.seriesPositionDesc"
-msgstr "Position in Reihe (höchste zuerst)"
-
-msgid "catalog.viewableFile.title"
-msgstr "{$type}-Ansicht der Datei {$title}"
-
-msgid "catalog.viewableFile.return"
-msgstr "Zurück zur Detailanzeige von {$monographTitle}"
-
-msgid "common.prefix"
-msgstr "Präfix"
-
-msgid "common.preview"
-msgstr "Vorschau"
-
-msgid "common.feature"
-msgstr "Empfehlen"
-
-msgid "common.searchCatalog"
-msgstr "Suche im Katalog"
-
-msgid "common.moreInfo"
-msgstr "Weitere Informationen"
-
-msgid "common.listbuilder.completeForm"
-msgstr "Bitte füllen Sie dieses Formular vollständig aus."
-
-msgid "common.listbuilder.selectValidOption"
-msgstr "Bitte wählen Sie eine gültige Option aus dieser Liste aus."
-
-msgid "common.listbuilder.itemExists"
-msgstr "Sie können nicht den gleichen Eintrag ein zweites Mal hinzufügen."
-
-msgid "common.software"
-msgstr "Open Monograph Press"
-
-msgid "common.omp"
-msgstr "OMP"
-
-msgid "common.homePageHeader.altText"
-msgstr "Homepage-Header"
-
-msgid "navigation.catalog"
-msgstr "Katalog"
-
-msgid "navigation.competingInterestPolicy"
-msgstr "Leitlinie zu Interessenskonflikten"
-
-msgid "navigation.catalog.manage"
-msgstr "Verwalten"
-
-msgid "navigation.catalog.administration.short"
-msgstr "Administration"
-
-msgid "navigation.catalog.administration"
-msgstr "Katalogverwaltung"
-
-msgid "navigation.catalog.administration.categories"
-msgstr "Kategorien"
-
-msgid "navigation.catalog.administration.series"
-msgstr "Reihe"
-
-msgid "navigation.infoForAuthors"
-msgstr "Für Autoren/innen"
-
-msgid "navigation.infoForLibrarians"
-msgstr "Für Bibliothekare/innen"
-
-msgid "navigation.infoForAuthors.long"
-msgstr "Informationen für Autoren/innen"
-
-msgid "navigation.infoForLibrarians.long"
-msgstr "Informationen für Bibliothekare/innen"
-
-msgid "navigation.newReleases"
-msgstr "Neuerscheinungen"
-
-msgid "navigation.published"
-msgstr "Erschienen"
-
-msgid "navigation.wizard"
-msgstr "Assistent"
-
-msgid "navigation.linksAndMedia"
-msgstr "Links und Soziale Netzwerke"
-
-msgid "context.contexts"
-msgstr "Verlage"
-
-msgid "context.context"
-msgstr "Verlag"
-
-msgid "context.current"
-msgstr "Aktueller Verlag:"
-
-msgid "context.select"
-msgstr "Wählen Sie einen Verlag:"
-
-msgid "user.noRoles.selectUsersWithoutRoles"
-msgstr "Benutzer/innen ohne zugewiesene Funktion mit einbeziehen."
-
-msgid "user.noRoles.submitMonograph"
-msgstr "Einen Vorschlag einreichen"
-
-msgid "user.noRoles.submitMonographRegClosed"
-msgstr ""
-"Einreichen einer Monographie: Die Registrierung als Autor/in ist zurzeit "
-"deaktiviert."
-
-msgid "user.noRoles.regReviewer"
-msgstr "Registrierung als Gutachter/in"
-
-msgid "user.noRoles.regReviewerClosed"
-msgstr "Registrierung als Gutachter/in: Die Gutachterregistrierung ist zurzeit deaktiviert."
-
-msgid "user.role.manager"
-msgstr "Verlagsleiter/in"
-
-msgid "user.role.pressEditor"
-msgstr "Leitender Herausgeber/Leitende Herausgeberin"
-
-msgid "user.role.subEditor"
-msgstr "Reihenherausgeber/in"
-
-msgid "user.role.copyeditor"
-msgstr "Lektor/in"
-
-msgid "user.role.proofreader"
-msgstr "Korrektor/in"
-
-msgid "user.role.productionEditor"
-msgstr "Hersteller/in"
-
-msgid "user.role.managers"
-msgstr "Verlagsleiter/in"
-
-msgid "user.role.subEditors"
-msgstr "Reihenherausgeber/innen"
-
-msgid "user.role.editors"
-msgstr "Herausgeber/innen"
-
-msgid "user.role.copyeditors"
-msgstr "Lektoren/innen"
-
-msgid "user.role.proofreaders"
-msgstr "Korrektoren/innen"
-
-msgid "user.role.productionEditors"
-msgstr "Hersteller/innen"
-
-msgid "user.register.completeForm"
-msgstr "Füllen Sie das Formular aus, um sich beim Verlag zu registrieren"
-
-msgid "user.register.selectContext"
-msgstr "Wählen Sie den Verlag aus, bei dem Sie sich registrieren möchten:"
-
-msgid "user.register.noContexts"
-msgstr "Es gibt keine Verlage, bei denen Sie sich auf dieser Website anmelden können."
-
-msgid "user.register.privacyStatement"
-msgstr "Datenschutzerklärung"
-
-msgid "user.register.alreadyRegisteredOtherContext"
-msgstr "Klicken Sie hier, wenn Sie bereits registriert sind."
-
-msgid "user.register.notAlreadyRegisteredOtherContext"
-msgstr "Klicken Sie hier, wenn Sie sich noch nicht bei diesem oder einem anderen Verlag dieser Website registriert haben."
-
-msgid "user.register.loginToRegister"
-msgstr "Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um sich zu registrieren."
-
-msgid "user.register.registrationDisabled"
-msgstr "Zurzeit ist keine Registrierung möglich."
-
-msgid "user.register.form.passwordLengthTooShort"
-msgstr "Das eingegebene Passwort ist zu kurz."
-
-msgid "user.register.readerDescription"
-msgstr "Per E-Mail über das Erscheinen eines Buches benachrichtigt."
-
-msgid "user.register.authorDescription"
-msgstr "Kann einen Titel beim Verlag einreichen."
-
-msgid "user.register.reviewerDescriptionNoInterests"
-msgstr "Ich bin bereit, beim Verlag eingegangene Manuskripte zu begutachten."
-
-msgid "user.register.reviewerDescription"
-msgstr "Erklärt sich bereit, den Peer-Review-Prozess für auf dieser Website eingereichte Manuskripte durchzuführen."
-
-msgid "user.register.reviewerInterests"
-msgstr "Interessen (inhaltliche Schwerpunkte und Forschungsmethoden):"
-
-msgid "user.register.form.userGroupRequired"
-msgstr "Sie müssen mindestens eine Funktion auswählen"
-
-msgid "site.pressView"
-msgstr "Verlagswebsite ansehen"
-
-msgid "about.pressContact"
-msgstr "Pressekontakt"
-
-msgid "about.aboutThePress"
-msgstr "Über den Verlag"
-
-msgid "about.editorialTeam"
-msgstr "Herausgeber/innen"
-
-msgid "about.editorialPolicies"
-msgstr "Richtlinien für Herausgeber/innen"
-
-msgid "about.focusAndScope"
-msgstr "Fokus und Umfang"
-
-msgid "about.seriesPolicies"
-msgstr "Richtlinien für Reihen und Kategorien"
-
-msgid "about.submissions"
-msgstr "Manuskripte einreichen"
-
-msgid "about.sponsors"
-msgstr "Sponsor/innen"
-
-msgid "about.contributors"
-msgstr "Förderer"
-
-msgid "about.onlineSubmissions"
-msgstr "Online-Einreichungen"
-
-msgid "about.onlineSubmissions.login"
-msgstr "Zum Login"
-
-msgid "about.onlineSubmissions.register"
-msgstr "Registrieren"
-
-msgid "about.onlineSubmissions.registrationRequired"
-msgstr "Sie müssen registriert und eingeloggt sein, um Manuskripte einzureichen oder den aktuellen Status Ihrer Einreichung zu überprüfen. Mit einem bestehenden Account {$login} oder einen neuen Account {$register}."
-
-msgid "about.authorGuidelines"
-msgstr "Richtlinien für Autoren/innen"
-
-msgid "about.submissionPreparationChecklist"
-msgstr "Checkliste zur Manuskripteinreichung"
-
-msgid "about.submissionPreparationChecklist.description"
-msgstr "Während des Einreichungsvorganges werden die Autor/innen dazu aufgefordert zu überprüfen, ob ihr Manuskript alle genannten Anforderungen erfüllt. Manuskripte, die nicht mit den Richtlinien übereinstimmen, können an die Autor/innen zurückgegeben werden."
-
-msgid "about.copyrightNotice"
-msgstr "Copyright-Vermerk"
-
-msgid "about.privacyStatement"
-msgstr "Datenschutzerkärung"
-
-msgid "about.reviewPolicy"
-msgstr "Peer-Review-Prozess"
-
-msgid "about.publicationFrequency"
-msgstr "Erscheinungsweise"
-
-msgid "about.openAccessPolicy"
-msgstr "Open-Access-Leitlinien"
-
-msgid "about.pressSponsorship"
-msgstr "Verlagssponsoren"
-
-msgid "about.aboutThisPublishingSystem"
-msgstr ""
-"Mehr Informationen zu diesem Publikationssystem, der Plattform und dem "
-"Workflow von OMP/PKP."
-
-msgid "about.aboutThisPublishingSystem.altText"
-msgstr "OMP-Redaktions- und Veröffentlichungsprozess"
-
-msgid "about.aboutOMPPress"
-msgstr ""
-"Dieser Verlag verwendet Open Monograph Press {$ompVersion}, eine Open-Source "
-"Verlagsmanagement- und Publikations-Software, die vom Public Knowledge Project unter der GNU General "
-"Public License entwickelt wurde. Support und Vertrieb der Software sind "
-"kostenfrei. Bitte kontaktieren Sie den Verlag "
-"um Fragen über den Verlag und Einreichungen zu stellen."
-
-#, fuzzy
-msgid "about.aboutOMPSite"
-msgstr "Dieser Verlag verwendet Open Monograph Press {$ompVersion}, eine Open-Source-Presse- und Verlagsmanagement-Software, die vom Public Knowledge Project unter der GNU General Public License entwickelt wurde. Support und Vertrieb der Software sind kostenfrei."
-
-msgid "help.searchReturnResults"
-msgstr "Zurück zu den Suchergebnissen"
-
-msgid "help.goToEditPage"
-msgstr "Öffnen Sie eine neue Seite, um diese Informationen zu bearbeiten"
-
-msgid "installer.appInstallation"
-msgstr "OMP-Installation"
-
-msgid "installer.ompUpgrade"
-msgstr "OMP-Upgrade"
-
-msgid "installer.installApplication"
-msgstr "Installiere Open Monograph Press"
-
-msgid "installer.installationInstructions"
-msgstr ""
-"\n"
-"
Danke, dass Sie Open Monograph Press {$version} des "
-"Public Knowledge Project heruntergeladen haben. Bitte lesen Sie die in der "
-"Software enthaltene README -Datei, "
-"bevor Sie fortfahren. Mehr Informationen über das das Public Knowledge "
-"Project und seine Softwareprojekte finden Sie auf der PKP-Website PKP web site. Wenn Sie einen Bug "
-"melden möchten oder technischen Support für Open Monograph Press benötigen, "
-"wenden Sie sich bitte an unser: support forum oder besuchen Sie das online Bug Reporting System von "
-"PKP. Wir empfehlen Ihnen zwar, über das Supportforum Kontakt zu uns "
-"aufzunehmen, Sie können aber eine E-Mail an unser Team schreiben: pkp.contact@gmail.com.
\n"
-
-msgid "installer.preInstallationInstructionsTitle"
-msgstr "Schritte vor der Installation"
-
-msgid "installer.preInstallationInstructions"
-msgstr ""
-"1. Die folgenden Dateien und Verzeichnisse (und deren Inhalte) müssen mit einer Schreibberechtigung ausgestattet sein:
\n"
-"\n"
-"\t- config.inc.php ist beschreibbar (optional): {$writable_config}
\n"
-"\t- public/ ist beschreibbar: {$writable_public}
\n"
-"\t- cache/ ist beschreibbar: {$writable_cache}
\n"
-"\t- cache/t_cache/ ist beschreibbar: {$writable_templates_cache}
\n"
-"\t- cache/t_compile/ ist beschreibbar: {$writable_templates_compile}
\n"
-"\t- cache/_db ist beschreibbar: {$writable_db_cache}
\n"
-"
\n"
-"\n"
-"2. Es muss ein Verzeichnis angelegt und mit Schreibrechten ausgestattet werden, in dem die hochgeladenen Dateien gespeichert werden können (siehe \"Dateieinstellungen\" unten).
"
-
-msgid "installer.upgradeInstructions"
-msgstr ""
-"OMP Version {$version}
\n"
-"\n"
-"Vielen Dank, dass Sie Open Monograph Press des Public Knowledge Project heruntergeladen haben. Bevor Sie fortfahren, empfehlen wir Ihnen, die README und UPGRADE Dateien zu lesen, die in dieser Software enthalten sind. Weitere Informationen über das Public Knowledge Project und seine Softwareprojecte finden Sie auf der PKP-Website. Wenn Sie einen Bug melden möchten oder technischen Support für Open Monograph Press benötigen, wenden Sie sich bitte an unser: support forum oder besuchen Sie online PKPs bug reporting system. Wir empfehlen Ihnen zwar, über das Supportforum Kontakt zu uns aufzunehmen, Sie können eine E-Mail an unser Team schreiben: pkp.contact@gmail.com.
\n"
-"Es wird dringend empfohlen Datenbank, Dateienverzeichnis und OMP-Installationsverzeichnis zu speichern, bevor Sie fortfahren.
\n"
-"Wenn Sie den Upgrade im abgesicherten Modus PHP Safe Mode durchführen, setzen Sie bitte bei max_execution_time in Ihrer php.ini-Konfigurationsdatei einen hohen Wert fest. Wenn dieses oder ein anderes Zeitlimit (z.B. Apache's \"Timeout\") erreicht und der Upgrade-Vorgang unterbrochen wurde, kann der Vorgang nur durch manuelles Eingreifen fortgesetzt werden.
"
-
-msgid "installer.localeSettingsInstructions"
-msgstr ""
-"Für einen vollständigen Unicode (UTF-8)-Support wählen Sie bitte UTF-8 für alle Zeichensatz-Einstellungen. Bitte beachten Sie, dass der Support zurzeit einen MySQL >= 4.1.1 or PostgreSQL >= 9.1.5 Datenbankserver zur Voraussetzung hat. Außerdem wird für den vollen Unicode-Support die mbstring-Bibliothek (in jüngeren PHP-Installationen meist standardmäßig aktiviert). Sollten Sie erweiterte Zeichensätze verwenden, kann es zu Schwierigkeiten kommen, wenn Ihr Server diese Anforderungen nicht erfüllt.\n"
-"
\n"
-"Ihr Server untersützt aktuell mbstring: {$supportsMBString}"
-
-msgid "installer.allowFileUploads"
-msgstr "Ihr Server erlaubt aktuell die Datei-Uploads: {$allowFileUploads}"
-
-msgid "installer.maxFileUploadSize"
-msgstr "Ihr Server erlaubt aktuell das Hochladen von Dateien bis zu einer maximalen Dateigröße von: {$maxFileUploadSize}"
-
-msgid "installer.localeInstructions"
-msgstr "Die Sprache, die Hauptsprache in Ihrem System sein soll. Bitte konsultieren Sie die OMP-Dokumentation, wenn Sie an der Unterstützung einer Sprache interessiert sind, die hier nicht aufgeführt ist."
-
-msgid "installer.additionalLocalesInstructions"
-msgstr "Wählen Sie weitere Sprachen aus, die in diesem System unterstützt werden sollen. Verlage, die auf dieser Website gehostet sind, können diese Sprachen verwenden. Weitere Sprachen können ebenfalls jederzeit installiert werden, und zwar über das Website-Administration-Interface. Mit * markierte Regionaleinstellungen sind unter Umständen unvollständig."
-
-msgid "installer.filesDirInstructions"
-msgstr "Geben Sie den vollständigen Pfadnamen zu einem bestehenden Verzeichnis an, in dem die hochgeladenen Dateien abgelegt werden sollen. Auf dieses Verzeichnis sollte kein direkter Zugriff von außen (vom Web aus) möglich sein. Bitte stellen Sie sicher, dass das Verzeichnis bereits existiert und es beschreibbar ist, bevor Sie mit der Installation beginnen. Für Windows-Pfadnamen sind Schrägstriche zu verwenden, z.B. \"C:/mypress/files\"."
-
-msgid "installer.databaseSettingsInstructions"
-msgstr "Um die Daten ablegen zu können, benötigt OMP einen Zugriff auf eine SQL-Datenbank. Bitte beachten Sie die oben genannten Systemanforderungen für die aufgeführten unterstützten Datenbanken. In den darunter stehenden Feldern werden die Einstellungen angegeben, die zur Verbindung mit der Datenbank gesetzt werden müssen."
-
-msgid "installer.upgradeApplication"
-msgstr "Open Monograph Press upgraden"
-
-msgid "installer.overwriteConfigFileInstructions"
-msgstr ""
-"WICHTIG!
\n"
-"Der Installer konnte die Konfigurationsdatei nicht automatisch überschreiben. Bevor Sie versuchen, das System zu verwenden, öffnen Sie bitte config.inc.php in einem geeigneten Texteditor und ersetzen Sie dessen Inhalte durch die Inhalte der unten stehenden Textbox.
"
-
-msgid "installer.installationComplete"
-msgstr ""
-"Die OMP-Installation wurde erfolgreich abgeschlossen.
\n"
-"Um das System zu verwenden, loggen Sie sich auf der Login-Seite mit Ihrem Benutzernamen und Ihrem Passwort ein.
\n"
-"Wenn Sie Nachrichten und Updates erhalten möchten, melden Sie sich bitte bei http://pkp.sfu.ca/omp/register an. Wenn Sie irgendwelche Fragen stellen oder Kommentare abgeben möchten, besuchen Sie bitte das Supportforum.
"
-
-msgid "installer.upgradeComplete"
-msgstr ""
-"Der Upgrade von OMP auf Version {$version} wurde erfolgreich abgeschlossen.
\n"
-"Vergessen Sie nicht, die \"installiert\"-Einstellung in Ihrer config.inc.php Konfigurationsdatei auf Ein zurückzusetzen.
\n"
-"Wenn Sie bisher noch nicht registriert sind und Neuigkeiten und Updates empfangen möchten, registireren Sie sich bitte unter http://pkp.sfu.ca/omp/register. Falls Sie Fragen oder Anmerkungen haben, besuchen Sie bitte das Supportforum.
"
-
-msgid "log.review.reviewDueDateSet"
-msgstr "Das Abgabedatum für Begutachtungsrunde {$round} von Manuskript {$submissionId} durch {$reviewerName} wurde auf den {$dueDate} festgesetzt."
-
-msgid "log.review.reviewDeclined"
-msgstr "{$reviewerName} hat es abgelehnt, an der Begutachtungsrunde {$round} für Manuskript {$submissionId} teilzunehmen."
-
-msgid "log.review.reviewAccepted"
-msgstr "{$reviewerName} hat der Teilnahme an der Begutachtungsrunde {$round} für Manuskript {$submissionId} zugestimmt."
-
-msgid "log.review.reviewUnconsidered"
-msgstr "{$editorName} hat die Begutachtungsrunde {$round} für Manuskript {$submissionId} als 'nicht berücksichtigt' markiert."
-
-msgid "log.editor.decision"
-msgstr ""
-"Die Entscheidung des Herausgebers ({$decision}) zu Monographie "
-"{$submissionId} wurde von {$editorName} protokolliert."
-
-msgid "log.editor.archived"
-msgstr "Manuskript {$submissionId} wurde archiviert."
-
-msgid "log.editor.restored"
-msgstr "Manuskript {$submissionId} wurde in die Warteschlange zurückgestellt."
-
-msgid "log.editor.editorAssigned"
-msgstr "{$editorName} wurde als Herausgeber/in des Manuskripts {$submissionId} bestimmt."
-
-msgid "log.proofread.assign"
-msgstr "{$assignerName} hat {$proofreaderName} zum Korrektor für Manuskript {$submissionId} bestimmt."
-
-msgid "log.proofread.complete"
-msgstr "{$proofreaderName} hat {$submissionId} zur Planung eingereichtng."
-
-msgid "log.imported"
-msgstr "{$userName} hat Monographie {$submissionId} importiert."
-
-msgid "notification.addedIdentificationCode"
-msgstr "Code hinzugefügt."
-
-msgid "notification.editedIdentificationCode"
-msgstr "Code bearbeitet."
-
-msgid "notification.removedIdentificationCode"
-msgstr "Code entfernt."
-
-msgid "notification.addedPublicationDate"
-msgstr "Erscheinungsdatum hinzugefügt."
-
-msgid "notification.editedPublicationDate"
-msgstr "Erscheinungsdatum bearbeitet."
-
-msgid "notification.removedPublicationDate"
-msgstr "Erscheinungsdatum entfernt."
-
-msgid "notification.addedPublicationFormat"
-msgstr "Format hinzugefügt."
-
-msgid "notification.editedPublicationFormat"
-msgstr "Format bearbeitet."
-
-msgid "notification.removedPublicationFormat"
-msgstr "Format entfernt."
-
-msgid "notification.addedSalesRights"
-msgstr "Vertriebsrechte hinzugefügt."
-
-msgid "notification.editedSalesRights"
-msgstr "Vertriebsrechte bearbeitet."
-
-msgid "notification.removedSalesRights"
-msgstr "Vertriebsrechte gelöscht."
-
-msgid "notification.addedRepresentative"
-msgstr "Vertriebspartner hinzugefügt."
-
-msgid "notification.editedRepresentative"
-msgstr "Vertriebspartner bearbeitet."
-
-msgid "notification.removedRepresentative"
-msgstr "Vertriebspartner entfernt."
-
-msgid "notification.addedMarket"
-msgstr "Absatzmarkt hinzugefügt."
-
-msgid "notification.editedMarket"
-msgstr "Absatzmarkt bearbeitet."
-
-msgid "notification.removedMarket"
-msgstr "Absatzmarkt gelöscht."
-
-msgid "notification.addedSpotlight"
-msgstr "Spotlight hinzugefügt."
-
-msgid "notification.editedSpotlight"
-msgstr "Spotlight bearbeitet."
-
-msgid "notification.removedSpotlight"
-msgstr "Spotlight entfernt."
-
-msgid "notification.savedCatalogMetadata"
-msgstr "Die Katalogmetadaten wurden gespeichert."
-
-msgid "notification.savedPublicationFormatMetadata"
-msgstr "Die Metadaten dieses Formats wurden gespeichert."
-
-msgid "notification.proofsApproved"
-msgstr "Korrekurfahnen akzeptiert."
-
-msgid "notification.removedSubmission"
-msgstr "Das eingereichte Manuskript wurde gelöscht."
-
-msgid "notification.type.submissionSubmitted"
-msgstr "Eine neue Monographie, \"{$title},\" wurde eingereicht."
-
-msgid "notification.type.editing"
-msgstr "Bei der redaktionellen Bearbeitung aufgetretene Ereignisse"
-
-msgid "notification.type.reviewing"
-msgstr "Bei der Begutachtung aufgetretene Ereignisse"
-
-msgid "notification.type.site"
-msgstr "Auf der Webite aufgetretene Ereignisse"
-
-msgid "notification.type.submissions"
-msgstr "Bei der Manuskripteinreichung aufgetretene Ereignisse"
-
-msgid "notification.type.userComment"
-msgstr "Ein Leser hat einen Kommentar zu \"{$title}\" geschrieben."
-
-msgid "notification.type.editorAssignmentTask"
-msgstr ""
-"Eine neue Monographie wurde eingereicht. Sie muss noch einem Herausgeber/"
-"einer Herausgeberin zugewiesen werden."
-
-msgid "notification.type.copyeditorRequest"
-msgstr "Sie wurden um die Durchsicht der lektorierten Manuskripte \"{$file}\" gebeten."
-
-msgid "notification.type.layouteditorRequest"
-msgstr "Sie wurden um die Durchsicht der Layout-Dateien \"{$title}\" gebeten."
-
-msgid "notification.type.indexRequest"
-msgstr "Sie wurden gebeten, einen Index für \"{$title}\" zu erstellen."
-
-msgid "notification.type.editorDecisionInternalReview"
-msgstr "Der interne Begutachtungsprozess wurde gestartet."
-
-msgid "notification.type.approveSubmission"
-msgstr "Das eingereichte Manuskript muss noch im Katalogtool als akzeptiert gekennzeichnet werden. Sobald dies geschehen ist, wird es im öffentlichen Verlagskatalog erscheinen."
-
-msgid "notification.type.approveSubmissionTitle"
-msgstr "Warten auf Freigabe."
-
-msgid "notification.type.configurePaymentMethod.title"
-msgstr "Es wurde noch keine Zahlungsweise konfiguriert."
-
-msgid "notification.type.configurePaymentMethod"
-msgstr "Bevor Sie die E-Commerce-Einstellungen definieren können, müssen Sie zunächst eine Zahlungsweise konfigurieren."
-
-msgid "notification.type.visitCatalogTitle"
-msgstr "Katalogverwaltung"
-
-msgid "user.authorization.invalidReviewAssignment"
-msgstr ""
-"Der Zugang wurde Ihnen verweigert, da Sie für diese Monographie nicht als "
-"Gutachter/in zugelassen sind."
-
-msgid "user.authorization.monographAuthor"
-msgstr ""
-"Der Zugang wurde Ihnen verweigert, da Sie anscheinend nicht der Autor/die "
-"Autorin dieser Monographie sind."
-
-msgid "user.authorization.monographReviewer"
-msgstr ""
-"Der Zugang wurde Ihnen verweigert, da diese Monographie Ihnen anscheinend "
-"nicht zur Begutachtung zugewiesen wurde."
-
-msgid "user.authorization.monographFile"
-msgstr "Der Zugang zu dieser Buchdatei wurde verweigert."
-
-msgid "user.authorization.invalidMonograph"
-msgstr "Ungültiges Buch oder kein Buch angefordert!"
-
-#, fuzzy
-msgid "user.authorization.noContext"
-msgstr "Kein Verlag im Kontext!"
-
-msgid "user.authorization.seriesAssignment"
-msgstr ""
-"Sie versuchen, auf eine Monographie zuzugreifen, die nicht mehr zu Ihrer "
-"Reihe gehört."
-
-msgid "user.authorization.workflowStageAssignmentMissing"
-msgstr "Zugriff verweigert! Sie sind nicht für dieses Stadium des Publikationsprozesses freigeschaltet."
-
-msgid "user.authorization.workflowStageSettingMissing"
-msgstr "Zugriff verweigert! Die Benutzer/innengruppe, in der Sie aktuell aktiv sind, ist nicht mit dieser Phase des Publikationsprozesses befasst. Bitte überprüfen Sie Ihre Einstellungen."
-
-msgid "payment.directSales"
-msgstr "Download von der Verlagswebseite"
-
-msgid "payment.directSales.price"
-msgstr "Preis"
-
-msgid "payment.directSales.availability"
-msgstr "Verfügbarkeit"
-
-msgid "payment.directSales.catalog"
-msgstr "Katalog"
-
-msgid "payment.directSales.approved"
-msgstr "Akzeptiert"
-
-msgid "payment.directSales.priceCurrency"
-msgstr "Preis ({$currency})"
-
-msgid "payment.directSales.numericOnly"
-msgstr "Preise sollten ausschließlich numerisch sein. Geben Sie keine Währungssymbole mit ein."
-
-msgid "payment.directSales.directSales"
-msgstr "Direktvertrieb"
-
-msgid "payment.directSales.amount"
-msgstr "{$amount} ({$currency})"
-
-msgid "payment.directSales.notAvailable"
-msgstr "Nicht verfügbar"
-
-msgid "payment.directSales.notSet"
-msgstr "Nicht festgelegt"
-
-msgid "payment.directSales.openAccess"
-msgstr "Open Access"
-
-msgid "payment.directSales.price.description"
-msgstr "Dateiformate können den Lesern auf der Verlagswebseite entweder im Open Access oder gegen Bezahlung zum Download angeboten werden. (Für den kostenpflichten Download wird das unter 'Vertrieb' konfigurierte Online-Bezahlsystem verwendet.) Bitte geben Sie die Zugriffsbedingungen für diese Datei an."
-
-msgid "payment.directSales.validPriceRequired"
-msgstr "Bitte geben Sie einen gültigen Preis (als Zahl) ein."
-
-msgid "payment.directSales.purchase"
-msgstr "{$format} kaufen ({$amount} {$currency})"
-
-msgid "payment.directSales.download"
-msgstr "{$format} herunterladen"
-
-msgid "payment.directSales.monograph.name"
-msgstr "Download einer Monographie oder eines Kapitels erwerben"
-
-msgid "payment.directSales.monograph.description"
-msgstr "Diese Transaktion dient dem Erwerb eines direkten Buch- oder Kapiteldownloads."
-
-msgid "debug.notes.helpMappingLoad"
-msgstr ""
-"XML Hilfe Mapping Datei {$filename} neu geladen bei der Suche von {$id}."
-
-msgid "rt.metadata.pkp.dctype"
-msgstr "Buch"
-
-msgid "submission.pdf.download"
-msgstr "PDF herunterladen"
-
-msgid "user.profile.form.showOtherContexts"
-msgstr "Andere Verlage anzeigen"
-
-msgid "user.profile.form.hideOtherContexts"
-msgstr "Andere Verlage verbergen"
-
-msgid "grid.series.urlWillBe"
-msgstr "Die URL der Reihe soll lauten {$sampleUrl}. 'Path' (deutsch \"Pfad\") ist eine Zeichenkette, durch die die Reihe eindeutig identifizierbar wird."
-
-msgid "submission.round"
-msgstr "Durchgang {$round}"
-
-msgid "navigation.navigationMenus.newRelease.description"
-msgstr "Link zu Ihren Neuerscheinungen."
-
-msgid "navigation.navigationMenus.newRelease"
-msgstr "Neuerscheinungen"
-
-msgid "navigation.navigationMenus.category.description"
-msgstr "Link zu einer Kategorie."
-
-msgid "navigation.navigationMenus.category.generic"
-msgstr "Kategorie"
-
-msgid "navigation.navigationMenus.series.description"
-msgstr "Link zu einer Reihe."
-
-msgid "navigation.navigationMenus.series.generic"
-msgstr "Reihen"
-
-msgid "navigation.skip.spotlights"
-msgstr "Zu Spotlights springen"
-
-msgid "navigation.navigationMenus.catalog.description"
-msgstr "Link zu Ihrem Katalog."
-
-msgid "navigation.catalog.allMonographs"
-msgstr "Alle Monographien"
-
-msgid "common.publications"
-msgstr "Monographien"
-
-msgid "common.publication"
-msgstr "Monographie"
-
-msgid "submission.search"
-msgstr "Büchersuche"
-
-msgid "catalog.forthcoming"
-msgstr "Neuerscheinungen"
-
-msgid "catalog.manage.isNotNewRelease"
-msgstr ""
-"Diese Monographie ist keine neue Veröffentlichung. Diese Monographie als "
-"neue Veröffentlichung markieren."
-
-msgid "catalog.manage.isNewRelease"
-msgstr ""
-"Diese Monographie ist eine neue Veröffentlichung. Den Status der neuen "
-"Veröffentlichung entfernen."
-
-msgid "catalog.manage.isNotFeatured"
-msgstr "Diese Monographie wurde nicht gefeaturet. Diese Monographie featuren."
-
-msgid "catalog.manage.isFeatured"
-msgstr ""
-"Diese Monographie wurde gefeaturet. Feature für diese Monographie "
-"zurückziehen."
-
-msgid "catalog.manage.nonOrderable"
-msgstr ""
-"Diese Monographie kann nicht bestellt werden bevor sie gefeaturet wurde."
-
-msgid "catalog.manage.notFeaturedSuccess"
-msgstr "Monographie wurde nicht gefeaturet."
-
-msgid "catalog.manage.featuredSuccess"
-msgstr "Monographie wurde gefeaturet."
-
-msgid "catalog.manage.seriesFeatured"
-msgstr "Gefeaturet in Reihe"
-
-msgid "catalog.manage.categoryFeatured"
-msgstr "Gefeaturet in Kategorie"
-
-msgid "catalog.manage.featured"
-msgstr "Gefeaturet"
-
-msgid "submissionGroup.assignedSubEditors"
-msgstr "Zugewiesene Redakteur/innen"
-
-msgid "monograph.audience.success"
-msgstr "Die Angaben zur Zielgruppe wurden aktualisiert."
-
-msgid "catalog.coverImageTitle"
-msgstr "Umschlagbild"
-
-msgid "user.authorization.invalidPublishedSubmission"
-msgstr "Die angegbene veröffentlichte Einreichung ist ungültig."
-
-msgid "about.onlineSubmissions.viewSubmissions"
-msgstr "ausständige Einreichungen einsehen"
-
-msgid "about.onlineSubmissions.newSubmission"
-msgstr "Eine neue Einreichung anlegen"
-
-msgid "about.onlineSubmissions.submissionActions"
-msgstr "{$newSubmission} oder {$viewSubmissions}."
-
-msgid "user.register.otherContextRoles"
-msgstr "Die folgenden Rollen anfragen."
-
-msgid "user.reviewerPrompt.optin"
-msgstr ""
-"Ja, ich möchte Anfragen zugeschickt bekommen, wenn Reviews zu Einreichungen "
-"dieses Verlag ausständig sind."
-
-msgid "notification.type.visitCatalog"
-msgstr ""
-"Die Monographie wurde zugelassen. Bitte nutzen Sie die obigen Links zu \""
-"Marketing\" und \"Publikation\" um die Details der Monographie zu bearbeiten."
-
-msgid "notification.type.formatNeedsApprovedSubmission"
-msgstr ""
-"Die Monographie wird nicht im Katalog gelistet, bevor sie publiziert wurde. "
-"Um dieses Buch dem Katalog hinzuzufügen, klicken Sie bitte auf den Tab "
-"Publikation."
-
-msgid "notification.type.public"
-msgstr "Öffentliche Ankündigungen"
-
-msgid "log.editor.recommendation"
-msgstr ""
-"Eine Bearbeiter/innen-Empfehlung ({$decision}) für Monographie "
-"{$submissionId} wurde von {$editorName} gemacht."
-
-msgid "installer.updatingInstructions"
-msgstr ""
-"Wenn Sie eine existierende Installation von OMP aktualisieren, klicken Sie <"
-"a href=\"{$upgradeUrl}\">hier um fortzufahren."
-
-msgid "about.aboutSoftware"
-msgstr "Über Open Monograph Press"
-
-msgid "about.aboutContext"
-msgstr "Über den Verlag"
-
-msgid "site.noPresses"
-msgstr "Es sind keine Verlage verfügbar."
-
-msgid "user.register.form.privacyConsentThisContext"
-msgstr ""
-"Ja, ich stimme zu, dass meine Daten erfasst und gespeichert werden wie in "
-"der Datenschutzerklärung des "
-"Verlags angegeben."
-
-msgid "user.register.noContextReviewerInterests"
-msgstr ""
-"Falls Sie Reviewer eines Verlags werden wollen, geben Sie bitte Ihre "
-"Fachgebiete an."
-
-msgid "user.register.contextsPrompt"
-msgstr "Für welche Verlage dieser Seite möchten Sie sich registrieren?"
-
-msgid "user.reviewerPrompt.userGroup"
-msgstr "Ja, die {$userGroup} Rolle anfragen."
-
-msgid "user.reviewerPrompt"
-msgstr ""
-"Wären Sie einverstanden, Einreichungen dieses Verlags einem Review zu "
-"unterziehen?"
-
-msgid "user.authorization.representationNotFound"
-msgstr "Das angeforderte Publikationsformat konnte nicht gefunden werden."
-
-msgid "catalog.manage.findSubmissions"
-msgstr "Finden Sie Monographien zur Aufnahme in den Katalog"
-
-msgid "catalog.manage.submissionsNotFound"
-msgstr "Eine oder mehrere der Einreichungen konnten nicht gefunden werden."
-
-msgid "catalog.manage.noSubmissionsSelected"
-msgstr "Es wurden keine Einreichungen zur Aufnahme in den Katalog ausgewählt."
-
-msgid "grid.catalogEntry.approvedRepresentation.message"
-msgstr ""
-"Die Metadaten für dieses Format freigeben. Metadaten können im Bereich \""
-"Bearbeiten\" für jedes Format überprüft werden.
"
-
-msgid "grid.catalogEntry.isbn10.description"
-msgstr "Ein 10-stelliger ISBN-Code, z.B. 951-98548-9-4."
-
-msgid "grid.catalogEntry.isbn13.description"
-msgstr "Ein 13-stelliger ISBN-Code, z.B. 978-951-98548-9-2."
-
-msgid "grid.catalogEntry.isbn"
-msgstr "ISBN"
-
-msgid "common.payments"
-msgstr "Zahlungen"
-
-msgid "grid.catalogEntry.chapters"
-msgstr "Kapitel"
-
-msgid "search.results.orderDir.desc"
-msgstr "Absteigend"
-
-msgid "search.results.orderDir.asc"
-msgstr "Aufsteigend"
-
-msgid "search.results.orderBy.relevance"
-msgstr "Relevanz"
-
-msgid "search.results.orderBy.popularityMonth"
-msgstr "Beliebtheit (Letzter Monat)"
-
-msgid "search.results.orderBy.popularityAll"
-msgstr "Beliebtheit (All Time)"
-
-msgid "search.results.orderBy.press"
-msgstr "Verlagstitel"
-
-msgid "search.results.orderBy.monograph"
-msgstr "Monographientitel"
-
-msgid "search.results.orderBy.date"
-msgstr "Publikationsdatum"
-
-msgid "search.results.orderBy.author"
-msgstr "Autor/in"
-
-msgid "search.results.orderBy.article"
-msgstr "Artikeltitel"
diff --git a/locale/de_DE/manager.po b/locale/de_DE/manager.po
deleted file mode 100644
index fc7c1da891a..00000000000
--- a/locale/de_DE/manager.po
+++ /dev/null
@@ -1,1478 +0,0 @@
-# Pia Piontkowitz , 2021, 2022.
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2022-02-22 11:05+0000\n"
-"Last-Translator: Pia Piontkowitz \n"
-"Language-Team: German \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 "manager.language.confirmDefaultSettingsOverwrite"
-msgstr ""
-"Damit werden alle bisher vorgenommenen Anpassungen für diese "
-"Regionaleinstellungen ersetzt"
-
-msgid "manager.languages.noneAvailable"
-msgstr "Leider sind keine weiteren Sprachen verfügbar. Kontaktieren Sie Ihre/n Website-Administrator/in, wenn Sie weitere Sprachen verwenden möchten."
-
-msgid "manager.languages.primaryLocaleInstructions"
-msgstr "Diese Sprache wird die voreingestellte Sprache für die Verlagswebsite sein."
-
-msgid "manager.series.form.mustAllowPermission"
-msgstr "Bitte stellen Sie sicher, dass für die Zuweisung der Reihe zu einem/einer Reihenherausgeber/in zumindest eine Checkbox aktiviert wurde."
-
-msgid "manager.series.form.reviewFormId"
-msgstr "Stellen Sie sicher, dass Sie ein gültiges Gutachtenformular gewählt haben."
-
-msgid "manager.series.submissionIndexing"
-msgstr "Wird nicht in die Indizierung eingeschlossen"
-
-msgid "manager.series.editorRestriction"
-msgstr "Titel können nur von Herausgeber/innen und Reihenherausgeber/innen eingereicht werden."
-
-msgid "manager.series.confirmDelete"
-msgstr "Sind Sie sicher, dass Sie die Reihe endgültig löschen wollen?"
-
-msgid "manager.series.indexed"
-msgstr "Indiziert"
-
-msgid "manager.series.open"
-msgstr "Offene Einreichungen"
-
-msgid "manager.series.readingTools"
-msgstr "Lesewerkzeuge"
-
-msgid "manager.series.submissionReview"
-msgstr "Kein Peer Review"
-
-msgid "manager.series.submissionsToThisSection"
-msgstr "In dieser Reihe eingereichte Manuskripte"
-
-msgid "manager.series.abstractsNotRequired"
-msgstr "Keine Abstracts verlangen"
-
-msgid "manager.series.disableComments"
-msgstr "Leser/innenkommentarfunktion für diese Serie deaktivieren."
-
-msgid "manager.series.book"
-msgstr "Buchreihe"
-
-msgid "manager.series.create"
-msgstr "Reihe anlegen"
-
-msgid "manager.series.policy"
-msgstr "Beschreibung der Reihe"
-
-msgid "manager.series.assigned"
-msgstr "Herausgeber/innen dieser Reihe"
-
-msgid "manager.series.seriesEditorInstructions"
-msgstr "Fügen Sie eine/n Reihenherausgeber/in aus der Liste der verfügbaren Reihenherausgeber/innen hinzu. Legen Sie anschließend fest, ob der/die Reihenherausgeber/in den Begutachtungsprozess koordinieren UND die Redaktion (Lektorat, Layout und Korrekturlesen) der Manuskripte dieser Reihe übernehmen oder nur eine der beiden Aufgabenfelder wahrnehmen soll. Möchten Sie eine/n Reihenherausgeber/in neu anlegen, gehen Sie über \"Verwaltung\" > \"Einstellungen und Funktionen\" auf \"Funktionen\" und klicken Sie dort auf Reihenherausgeber/innen ."
-
-msgid "manager.series.hideAbout"
-msgstr "Diese Reihe nicht unter \"Über uns\" anzeigen."
-
-msgid "manager.series.unassigned"
-msgstr "Verfügbare Reihenherausgeber/innen"
-
-msgid "manager.series.form.abbrevRequired"
-msgstr "Für Reihen wird ein Kurztitel benötigt."
-
-msgid "manager.series.form.titleRequired"
-msgstr "Es wird ein Titel für die Reihe benötigt."
-
-msgid "manager.series.noneCreated"
-msgstr "Es wurde keine Reihe angelegt."
-
-msgid "manager.series.existingUsers"
-msgstr "Bestehende Benutzer/innen"
-
-msgid "manager.series.seriesTitle"
-msgstr "Reihentitel"
-
-msgid "manager.series.restricted"
-msgstr "Verbieten Sie Autor/innen, direkt bei dieser Reihe einzureichen."
-
-msgid "manager.settings"
-msgstr "Einstellungen"
-
-msgid "manager.settings.pressSettings"
-msgstr "Verlagseinstellungen"
-
-msgid "manager.settings.press"
-msgstr "Verlag"
-
-msgid "manager.settings.publisher.identity.description"
-msgstr ""
-"Diese Felder werden zwar nicht grundsätzlich für die Verwendung von OMP, "
-"aber zur Erzeugung gültiger ONIX-Metadaten benötigt. Bitte fügen Sie sie ein, wenn "
-"Sie die ONIX-Funktionalität verwenden möchten."
-
-msgid "manager.settings.publisher"
-msgstr "Verlagsname"
-
-msgid "manager.settings.location"
-msgstr "Standort"
-
-msgid "manager.settings.publisherCodeType"
-msgstr "Verlagscode-Typ"
-
-msgid "manager.settings.publisherCode"
-msgstr "Verlagscode"
-
-msgid "manager.settings.distributionDescription"
-msgstr "Einstellungen, die den Vertrieb betreffen (Benachrichtigung, Indizierung, Archivierung, Bezahlung, Lesewerkzeuge)."
-
-msgid "manager.statistics.reports.defaultReport.monographDownloads"
-msgstr "Monographie herunterladen"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstract"
-msgstr "Seitenaufrufe Abstract"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
-msgstr "Abstract der Monographie und Downloads"
-
-msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
-msgstr "Seitenaufrufe Hauptseite der Reihe"
-
-msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
-msgstr "Seitenaufrufe Hauptseite des Verlags"
-
-msgid "manager.tools"
-msgstr "Werkzeuge"
-
-msgid "manager.tools.importExport"
-msgstr ""
-"Für den Datenimport/-export (Verlage, Monographien, Benutzer/innen) "
-"spezifische Werkzeuge"
-
-msgid "manager.tools.statistics"
-msgstr "Werkzeuge um Berichte zu erzeugen, die sich auf Nutzungsstatistiken beziehen (Anzeigen des Katalogs, Anzeigen von Buchabstracts, Buchdownloads)"
-
-msgid "manager.users.availableRoles"
-msgstr "Vorhandene Funktionen"
-
-msgid "manager.users.currentRoles"
-msgstr "Aktuelle Funktionen"
-
-msgid "manager.users.selectRole"
-msgstr "Funktion auswählen"
-
-msgid "manager.people.allPresses"
-msgstr "Alle Verlage"
-
-msgid "manager.people.allSiteUsers"
-msgstr "Eine/n Benutzer/in dieser Website für diesen Verlag eintragen"
-
-msgid "manager.people.allUsers"
-msgstr "Alle registrierten Benutzer/innen"
-
-msgid "manager.people.confirmRemove"
-msgstr "Möchten Sie diese/n Benutzer/in wirklich aus dem Verlag entfernen? Mit dieser Aktion wird die Person aus allen Funktionen entfernt, denen sie zugeordnet war."
-
-msgid "manager.people.enrollExistingUser"
-msgstr "Eine/n bereits existierende/n Benutzer/in eintragen"
-
-msgid "manager.people.existingUserRequired"
-msgstr "Sie müssen eine/n existierende/n Benutzer/in angeben."
-
-msgid "manager.people.enrollSyncPress"
-msgstr "Beim Verlag"
-
-msgid "manager.people.mergeUsers.from.description"
-msgstr "Wählen Sie eine/n Benutzer/in aus, deren/dessen Daten in einem anderen Konto zusammengeführt werden sollen (wenn jemand z.B. zwei Konten hat). Das zuerst ausgewählte Konto wird gelöscht, seine Beiträge, Aufgaben usw. werden dem zweiten Konto zugeschrieben."
-
-msgid "manager.people.mergeUsers.into.description"
-msgstr "Wählen Sie ein Benutzer/innenkonto aus, auf das die bestehenden Autor/innenschaften, Aufgaben etc. übertragen werden sollen."
-
-msgid "manager.people.syncUserDescription"
-msgstr "Bei dieser Synchronisation werden alle Benutzer/innen, die in einer bestimmten Funktion bei einem bestimmten Verlag eingetragen sind, in der gleichen Funktion auch in diesem Verlag eingetragen. Damit ist möglich, eine gemeinsame Benutzer/innengruppe (zum Beispiel Gutacher/innen) zwischen den Verlagen zu synchronisieren."
-
-msgid "manager.people.confirmDisable"
-msgstr ""
-"Möchten Sie diese/n Benutzer/in deaktivieren? Der/die Benutzer/in wird sich dann nicht mehr einloggen können.\n"
-"\n"
-"Sie können dem/der Benutzer/in den Grund für die Deaktivierung des Kontos nennen (optional)."
-
-msgid "manager.people.noAdministrativeRights"
-msgstr ""
-"Sie besitzen nicht die administrativen Rechte an diesem Benutzer/innenkonto. Grund dafür kann sein, dass:\n"
-"\t\t\n"
-"\t\t\t- der/die Benutzer/in Website-Administrator/in ist
\n"
-"\t\t\t- der/die Benutzer/in in einem Verlag aktiv ist, den Sie nicht verwalten
\n"
-"\t\t
\n"
-"\tDieser Task muss von einem Website-Administrator ausgeführt werden.\n"
-"\t"
-
-msgid "manager.system"
-msgstr "Systemeinstellungen"
-
-msgid "manager.system.archiving"
-msgstr "Archivieren"
-
-msgid "manager.system.reviewForms"
-msgstr "Gutachtenformulare"
-
-msgid "manager.system.readingTools"
-msgstr "Lesewerkzeuge"
-
-msgid "manager.system.payments"
-msgstr "Bezahlverfahren"
-
-msgid "user.authorization.pluginLevel"
-msgstr "Sie haben keine ausreichende Berechtigung, um dieses Plugin zu verwalten."
-
-msgid "manager.pressManagement"
-msgstr "Verlagsverwaltung"
-
-msgid "manager.setup"
-msgstr "Setup"
-
-msgid "manager.setup.aboutItemContent"
-msgstr "Inhalt"
-
-msgid "manager.setup.addAboutItem"
-msgstr "Navigationspunkt zu 'Über uns' hinzufügen"
-
-msgid "manager.setup.addChecklistItem"
-msgstr "Punkt zur Checkliste hinzufügen"
-
-msgid "manager.setup.addContributor"
-msgstr "Beiträger/in hinzufügen"
-
-msgid "manager.setup.addItem"
-msgstr "Punkt hinzufügen"
-
-msgid "manager.setup.addItemtoAboutPress"
-msgstr "Punkt hinzufügen, der unter \"Über uns\" erscheint"
-
-msgid "manager.setup.addNavItem"
-msgstr "Navigationspunkt hinzufügen"
-
-msgid "manager.setup.addSponsor"
-msgstr "Sponsororganisation hinzufügen"
-
-msgid "manager.setup.announcements"
-msgstr "Bekanntmachungen"
-
-msgid "manager.setup.announcementsDescription"
-msgstr "Mithilfe von Bekanntmachungen können Sie Leser/innen über Neuigkeiten informieren und auf Veranstaltungen des Verlages hinweisen. Die Bekanntmachungen erscheinen auf der Seite 'Bekanntmachungen'."
-
-msgid "manager.setup.announcementsIntroduction"
-msgstr "Zusätzliche Informationen"
-
-msgid "manager.setup.announcementsIntroduction.description"
-msgstr "Fügen Sie weitere Informationen hinzu, die den Leser/innen auf der Seite 'Bekanntmachungen' angezeigt werden sollen."
-
-msgid "manager.setup.appearInAboutPress"
-msgstr "(Erscheint in 'Über uns') "
-
-msgid "manager.setup.copyediting"
-msgstr "Lektor/innen"
-
-msgid "manager.setup.copyeditInstructions"
-msgstr "Lektoratsrichtlinien"
-
-msgid "manager.setup.copyeditInstructionsDescription"
-msgstr "Die Lektoratsrichtlinien sind den Lektor/innen, Autor/innen und Sektionsherausgeber/innen im Stadium 'Redaktionelle Bearbeitung' zugänglich. Unten auf der Seite befindet sich eine Reihe an Standardvorgaben in HTML. Sie können von der/dem Verlagsleiter/in an jeder Stelle verändert oder ersetzt werden (in HTML oder im Klartext)."
-
-msgid "manager.setup.copyrightNotice"
-msgstr "Copyright-Vermerk"
-
-msgid "manager.setup.coverage"
-msgstr "Inhaltlicher Umfang"
-
-msgid "manager.setup.customizingTheLook"
-msgstr "Schritt 5. Look & Feel anpassen"
-
-msgid "manager.setup.customTags"
-msgstr "Benutzerdefinierte Tags"
-
-msgid "manager.setup.customTagsDescription"
-msgstr "Benutzerdefinierte HTML-Header-Tags, die auf jeder Seite in den Header eingefügt werden (zum Beispiel META-Tags)."
-
-msgid "manager.setup.details"
-msgstr "Angaben"
-
-msgid "manager.setup.details.description"
-msgstr "Verlagsname, Ansprechpartner/in, Sponsoren und Suchmaschinen."
-
-msgid "manager.setup.disableUserRegistration"
-msgstr "Verlagsleiter/innen registrieren alle Benutzer/innen. Sie sind zusammen mit den Herausgeber/innen und Sektionsherausgeber/innen die einzigen, die Gutachter/innen registrieren können."
-
-msgid "manager.setup.discipline"
-msgstr "Wissenschafltliche Disziplinen und Teildisziplinen"
-
-msgid "manager.setup.disciplineDescription"
-msgstr "Dies ist nützlich, wenn der Verlag Disziplingrenzen überschreitet und/oder Autor/innen interdisziplinäre Veröffentlichungen einreichen."
-
-msgid "manager.setup.disciplineExamples"
-msgstr "(z.B. Geschichte; Erziehungswissenschaften; Soziologie; Psychologie; Kulturwissenschaften; Rechtswissenschaften)"
-
-msgid "manager.setup.disciplineProvideExamples"
-msgstr "Nennen Sie Beispiele für relevante akademische Disziplinen Ihres Verlages"
-
-msgid "manager.setup.displayCurrentMonograph"
-msgstr ""
-"Fügen Sie ein Inhaltsverzeichnis für die aktuelle Monographie bei (falls "
-"verfügbar)."
-
-msgid "manager.setup.displayOnHomepage"
-msgstr "Homepage-Inhalt"
-
-msgid "manager.setup.displayFeaturedBooks"
-msgstr "Featured Bücher auf der Startseite anzeigen"
-
-msgid "manager.setup.displayInSpotlight"
-msgstr "Bücher im Spotlight auf der Startseite anzeigen"
-
-msgid "manager.setup.displayNewReleases"
-msgstr "Neuerscheinungen auf der Startseite anzeigen"
-
-msgid "manager.setup.doiPrefix"
-msgstr "DOI-Präfix"
-
-msgid "manager.setup.doiPrefixDescription"
-msgstr "Das DOI (Digital Object Identifier)-Präfix wird von CrossRef vergeben und hat das Format 10.xxxx (z.B. 10.1234)."
-
-msgid "manager.setup.editorDecision"
-msgstr "Entscheidung des Herausgebers/der Herausgeberin"
-
-msgid "manager.setup.emailBounceAddress"
-msgstr "E-Mail-Adresse für Unzustellbarkeitsnachrichten (Bounce Messages)"
-
-msgid "manager.setup.emailBounceAddress.description"
-msgstr "Jede unzustellbare E-Mail führt zum Versand einer Fehlernachricht an diese E-Mail-Adresse."
-
-msgid "manager.setup.emails"
-msgstr "E-Mail-Identifizierung"
-
-msgid "manager.setup.emailSignature"
-msgstr "Signatur"
-
-msgid "manager.setup.emailSignatureDescription"
-msgstr "Die folgende Signatur wird am Ende der vorbereiteten E-Mails stehen, die vom System im Namen des Verlages versendet werden. Den Inhaltsteil (Textteil) dieser E-Mails können Sie unten bearbeiten."
-
-msgid "manager.setup.enableAnnouncements.enable"
-msgstr "Ankündigungen freischalten"
-
-msgid "manager.setup.enablePressInstructions"
-msgstr "Diesen Verlag für das öffentliche Erscheinen auf der Website freischalten"
-
-msgid "manager.setup.enablePublicMonographId"
-msgstr "Benutzerdefinierte Kennungen werden verwendet, um veröffentlichte Titel zu identifizieren."
-
-msgid "manager.setup.enablePublicGalleyId"
-msgstr "Benutzerdefinierte Kennungen werden verwendet, um Fahnen (z.B. HTML- oder PDF-Dateien) für veröffentlichte Bände zu identifizieren."
-
-msgid "manager.setup.enableUserRegistration"
-msgstr "Benutzer/innen können sich beim Verlag registrieren."
-
-msgid "manager.setup.focusAndScope"
-msgstr "Verlagsprofil"
-
-msgid "manager.setup.focusAndScope.description"
-msgstr ""
-"Fügen Sie eine kurze Selbstdarstellung des Verlages (auf der Website unter "
-"'Über uns' aufrufbar) ein, in der Sie Autor/innen, Leser/innen und "
-"Bibliothekar/innen einen Eindruck von dem Spektrum an Monographien und "
-"anderen Verlagsprodukten vermitteln, das der Verlag veröffentlichen wird."
-
-msgid "manager.setup.focusScope"
-msgstr "Verlagsprofil"
-
-msgid "manager.setup.focusScopeDescription"
-msgstr "BEISPIEL HTML-DATEN"
-
-msgid "manager.setup.forAuthorsToIndexTheirWork"
-msgstr "Für Autor/innen zur Indizierung ihres Werkes"
-
-msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
-msgstr "OMP setzt das Open Archives Initiative Protocol for Metadata Harvesting ein, welches ein zukünftiger Standard für die weltweite Abfrage und Übertragung von Metadaten ist. Die Autoren werden ein entsprechendes Template verwenden, um die Metadaten für ihr Manuskript zu liefern. Der/die Verlagsleiter/in sollte die Kategorien für die Indizierung auswählen und den Autoren Beispiele zeigen, um ihnen beim Indizieren ihrer Werke zu helfen; die Kategoriebegriffen werden dabei jeweils mit einem Semikolon voneinander getrennt (zum Beispiel: Begriff 1; Begriff 2). Die Einträge sollten als Beispiele kenntlich gemacht werden, in dem \"z.B.\" oder \"zum Beispiel\" vorangestellt wird."
-
-msgid "manager.setup.form.contactEmailRequired"
-msgstr "Die E-Mail-Adresse des Hauptansprechpartners wird benötigt."
-
-msgid "manager.setup.form.contactNameRequired"
-msgstr "Der Name des zentralen Ansprechpartners wird benötigt."
-
-msgid "manager.setup.form.numReviewersPerSubmission"
-msgstr "Bitte geben Sie die Zahl der Gutachter pro Manuskript an."
-
-msgid "manager.setup.form.supportEmailRequired"
-msgstr "Die E-Mail des Supports wird benötigt."
-
-msgid "manager.setup.form.supportNameRequired"
-msgstr "Der Supportname wird benötigt."
-
-msgid "manager.setup.generalInformation"
-msgstr "Allgemeine Informationen"
-
-msgid "manager.setup.gettingDownTheDetails"
-msgstr "Schritt 1: Sich mit dem System vetraut machen"
-
-msgid "manager.setup.guidelines"
-msgstr "Leitfaden"
-
-msgid "manager.setup.preparingWorkflow"
-msgstr "Schritt 3: Den Workflow vorbereiten"
-
-msgid "manager.setup.information.description"
-msgstr "Diese kurzen Beschreibungen des Verlages, gerichtet an Bibliothekar/innen, interessierte Autor/innen und Leser/innen, erscheinen in der Sidebar unter dem Punkt 'Informationen'."
-
-msgid "manager.setup.information.forAuthors"
-msgstr "Für Autor/innen"
-
-msgid "manager.setup.information.forLibrarians"
-msgstr "Für Bibliothekar/innen"
-
-msgid "manager.setup.information.forReaders"
-msgstr "Für Leser/innen"
-
-msgid "manager.setup.institution"
-msgstr "Institution"
-
-msgid "manager.setup.labelName"
-msgstr "Labelname"
-
-msgid "manager.setup.layoutAndGalleys"
-msgstr "Layouter/in"
-
-msgid "manager.setup.layoutInstructions"
-msgstr "Layoutrichtlinien"
-
-msgid "manager.setup.layoutInstructionsDescription"
-msgstr "Für die Formatierung von Veröffentlichungen können Layoutrichtlinien erstellt und unten entweder in HTML oder in Klartext eingefügt werden. Sie stehen dem Layouter und dem Sektionsherausgeber auf der Editierseite jedes Manuskripts zur Verfügung. (Da jeder Verlag seine eigenen Dateiformate, bibliographischen Standards, Stylesheets etc. verwenden kann, sind keine Standardlayoutrichtlinien vorgesehen.)"
-
-msgid "manager.setup.layoutTemplates"
-msgstr "Layoutvorlagen"
-
-msgid "manager.setup.layoutTemplatesDescription"
-msgstr ""
-"Als Richtlinie für Layouter/innen und Korrektor/innen können Sie unter "
-"'Layout' Templates für jedes der Standardformate des Verlags (Monographien, "
-"Buchbesprechungen etc.) in einem Dateiformat Ihrer Wahl (pdf, doc etc. ) "
-"hochladen und sie mit Anmerkungen bezüglich der zu verwendenden Schriften, "
-"Größen, Randbreiten etc. versehen."
-
-msgid "manager.setup.layoutTemplates.file"
-msgstr "Template-Datei"
-
-msgid "manager.setup.layoutTemplates.title"
-msgstr "Titel"
-
-msgid "manager.setup.lists"
-msgstr "Listen"
-
-msgid "manager.setup.look"
-msgstr "Aussehen"
-
-msgid "manager.setup.look.description"
-msgstr "Homepage-Header, Inhalt, Verlags-Header, Footer, Navigationsleiste und Stylesheet."
-
-msgid "manager.setup.settings"
-msgstr "Einstellungen"
-
-msgid "manager.setup.management.description"
-msgstr "Zugriff und Sicherheit, Terminplanung, Bekanntmachungen, Lektorat, Layout und Korrektorat."
-
-msgid "manager.setup.managementOfBasicEditorialSteps"
-msgstr "Management der grundlegenden redaktionellen Schritte"
-
-msgid "manager.setup.managingPublishingSetup"
-msgstr "Setup des Verwaltungs- und Veröffentlichungsprozesses"
-
-msgid "manager.setup.managingThePress"
-msgstr "Schritt 4: Einstellungen verwalten"
-
-msgid "manager.setup.noImageFileUploaded"
-msgstr "Es wurde kein Bild hochgeladen."
-
-msgid "manager.setup.noStyleSheetUploaded"
-msgstr "Es wurde kein Stylesheet hochgeladen."
-
-msgid "manager.setup.note"
-msgstr "Hinweis"
-
-msgid "manager.setup.notifyAllAuthorsOnDecision"
-msgstr "Wurde das Manuskript von mehreren Autor/innen gemeinschaftlich verfasst, fügen Sie bitte in der Benachrichtungsmail an den Autor die E-Mail-Adressen aller Autor/innen mit ein, nicht nur diejenige der Person, die das Manuskript eingereicht hat."
-
-msgid "manager.setup.noUseCopyeditors"
-msgstr "Das Lektorat liegt in der Zuständigkeit von Herausgeber/in oder Sektionsherausgeber/in."
-
-msgid "manager.setup.noUseLayoutEditors"
-msgstr "Ein Herausgeber oder Sektionsherausgeber, dem das Manuskript zugewiesen wurden, bearbeitet die HTML-, PDF (etc.)-Dateien."
-
-msgid "manager.setup.noUseProofreaders"
-msgstr "Ein Herausgeber oder Sektionsherausgeber, dem das Manuskript zugewiesen wurde, prüft die Fahnen."
-
-msgid "manager.setup.numPageLinks"
-msgstr "Links"
-
-msgid "manager.setup.onlineAccessManagement"
-msgstr "Zugriff auf die Verlagsinhalte"
-
-msgid "manager.setup.onlineIssn"
-msgstr "ISSN für digitale Medien"
-
-msgid "manager.setup.policies"
-msgstr "Leitlinien"
-
-msgid "manager.setup.policies.description"
-msgstr "Fokus, Peer Review, Sektionen, Datenschutz, Sicherheit und zusätzliche 'Über ...'-Punkte.."
-
-msgid "manager.setup.appearanceDescription"
-msgstr "Verschiedene Komponenten des Verlagsauftrittes können von dieser Seite aus konfiguriert werden, z.B. Header- und Footerelemente, Style und Theme des Verlags sowie die Gestaltung der Listen."
-
-msgid "manager.setup.pressDescription"
-msgstr "Beschreibung des Verlags"
-
-msgid "manager.setup.pressDescription.description"
-msgstr "Fügen Sie hier bitte eine allgemeine Beschreibung des Verlages ein. Sie erscheint auf der Verlagshomepage."
-
-msgid "manager.setup.pressArchiving"
-msgstr "Archivierung"
-
-msgid "manager.setup.homepageContent"
-msgstr "Inhalt"
-
-msgid "manager.setup.homepageContentDescription"
-msgstr "Die Verlagshomepage besteht standardmäßig aus Links zur Navigation. Zusätzlicher Inhalt kann zur Homepage hinzugefügt werden, indem eine oder mehrere der folgenden Optionen verwendet werden. Sie erscheinen auf der Homepage in der Reihenfolge, wie sie auf dieser Seite aufgeführt sind."
-
-msgid "manager.setup.pressHomepageContent"
-msgstr "Inhalt"
-
-msgid "manager.setup.pressHomepageContentDescription"
-msgstr "Die Verlagshomepage besteht standardmäßig aus Links zur Navigation. Zusätzlicher Inhalt kann zur Homepage hinzugefügt werden, indem eine oder mehrere der folgenden Optionen verwendet werden. Sie erscheinen auf der Homepage in der Reihenfolge, wie sie auf dieser Seite aufgeführt sind."
-
-msgid "manager.setup.contextInitials"
-msgstr "Verlagsinitialen"
-
-msgid "manager.setup.layout"
-msgstr "Verlagslayout"
-
-msgid "manager.setup.pageHeader"
-msgstr "Header der Website"
-
-msgid "manager.setup.pageHeaderDescription"
-msgstr "Konfiguration des Headers der Seite"
-
-msgid "manager.setup.pressPolicies"
-msgstr "Schritt 2: Leitlinien des Verlags"
-
-msgid "manager.setup.pressSetup"
-msgstr "Setup"
-
-msgid "manager.setup.pressSetupUpdated"
-msgstr "Das Setup wurde aktualisiert."
-
-msgid "manager.setup.styleSheetInvalid"
-msgstr "Ungültiges Stylesheetformat. Akzeptiert wird das Format css."
-
-msgid "manager.setup.pressTheme"
-msgstr "Verlags-Theme"
-
-msgid "manager.setup.contextTitle"
-msgstr "Verlagsname"
-
-msgid "manager.setup.printIssn"
-msgstr "ISSN der Printausgabe"
-
-msgid "manager.setup.proofingInstructions"
-msgstr "Korrekturrichtlinien"
-
-msgid "manager.setup.proofingInstructionsDescription"
-msgstr "Die Korrekturrichtlinien werden Korrektor/innen, Autor/innen, Layouter/innen und Bereichsherausgeber/innen im Stadium 'Redaktionelle Bearbeitung' zugänglich gemacht. Unten finden Sie Standardrichtlinien in HTML, die von dem/der Verlagsleiter/in bearbeitet oder ersetzt werden können (in HTML oder im Klartext)."
-
-msgid "manager.setup.proofreading"
-msgstr "Korrektoren"
-
-msgid "manager.setup.provideRefLinkInstructions"
-msgstr "Stelle den Layoutern Anleitungen zur Verfügung.."
-
-msgid "manager.setup.publicationScheduleDescription"
-msgstr ""
-"Beiträge können zusammen veröffentlicht werden, als Teile einer Monographie "
-"mit einem eigenen Inhaltsverzeichnis. Es ist aber auch möglich, sie einzeln "
-"zu publizieren, indem man die Beiträge dem Inhaltsverzeichnis eines \""
-"laufenden\" Bandes hinzufügt. Informieren Sie Ihre Leser/innen unter 'Über "
-"uns' darüber, welches Verfahren der Verlag verwenden wird und wie häufig "
-"neue Publikationen erscheinen werden."
-
-msgid "manager.setup.publisher"
-msgstr "Verlag"
-
-msgid "manager.setup.publisherDescription"
-msgstr "Der Name der Organisation, die den Verlag führt, erscheint unter 'Über uns'."
-
-msgid "manager.setup.referenceLinking"
-msgstr "Reference Linking (Verknüpfung von Literaturzitaten mit elektronischen Volltexten)"
-
-msgid "manager.setup.refLinkInstructions.description"
-msgstr "Layoutrichtlinien für Reference Linking"
-
-msgid "manager.setup.restrictMonographAccess"
-msgstr ""
-"Benutzer/innen müssen registriert und eingeloggt sein, um Open-Access-"
-"Inhalte sehen zu können."
-
-msgid "manager.setup.restrictSiteAccess"
-msgstr "Benutzer/innen müssen registriert und eingeloggt sein, um sich die Verlagswebsite anschauen zu können."
-
-msgid "manager.setup.reviewGuidelines"
-msgstr "Leitfäden für externe Begutachtungen"
-
-msgid "manager.setup.reviewGuidelinesDescription"
-msgstr "Die Leitfäden für die externe Begutachtachtung geben den externen Gutachter/innen Kriterien an die Hand, mit denen sie die Eignung des eingereichten Manuskripts beurteilen können. Die Leitfäden können auch genaue Anweisungen zur Erstellung eines gelungenen und aussagekräftigen Gutachens enthalten. Den Gutachter/innen werden bei der Erstellung der Gutachten zwei offene Textboxen angezeigt, die erste ist für Gutachten, die \"an Autor/in und Herausgeber/in\" adressiert werden sollen, die zweite für Gutachten, die nur \"an den/die Herausgeber/in\" gehen sollen. Alternativ dazu kann der Verlagsleiter auch selbst Begutachtungsformulare unter 'Gutachen-Formulare' anlegen. In allen Fällen haben die Herausgeber/innen aber immer die Möglichkeit, die Gutachten in ihre Korrespondenz mit dem Autor/der Autorin einzufügen."
-
-msgid "manager.setup.internalReviewGuidelines"
-msgstr "Leitfäden für interne Begutachtungen"
-
-msgid "manager.setup.internalReviewGuidelinesDescription"
-msgstr "Wie die Leitfäden für die externe Begutachtung liefern diese Anleitungen den Gutachter/innen Informationen zu Bewertung des eingereichten Manuskripts. Diese Anleitungen sind für interne Gutachter/innen, die generell den Begutachtungsprozess verlagsintern durchführen."
-
-msgid "manager.setup.reviewOptions"
-msgstr "Begutachtungsoptionen"
-
-msgid "manager.setup.reviewOptions.automatedReminders"
-msgstr "Automatisierte E-Mail-Erinnerungen"
-
-msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
-msgstr "Bitte beachten Sie: Um diese Optionen zu aktivieren, muss der Administrator/die Administratorin die scheduled_tasks-Option in der OMP-Konfigurationdatei freigeben. Eventuell ist eine weitere Konfiguration des Servers nötig, um diese Funktionalität zu unterstützen (dies ist unter Umständen nicht auf allen Servern möglich). Nähere Informationen dazu finden Sie in der OMP-Dokumentation."
-
-msgid "manager.setup.reviewOptions.onQuality"
-msgstr "Nach Abschluss der Begutachtung bewerten die Herausgeber/innen die Gutachter/innen auf einer Fünf-Punkte-Qualitätsskala bewerten."
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
-msgstr "Die Gutachter/innen haben erst dann Zugang zu den Manuskriptdateien, wenn sie der Begutachtung zugestimmt haben."
-
-msgid "manager.setup.reviewOptions.reviewerAccess"
-msgstr "Zugang für Gutachter/innen"
-
-msgid "manager.setup.reviewOptions.reviewerRatings"
-msgstr "Gutachterbewertungen"
-
-msgid "manager.setup.reviewOptions.reviewerReminders"
-msgstr "Gutachtererinnerungen"
-
-msgid "manager.setup.reviewPolicy"
-msgstr "Begutachtungsleitlinien"
-
-msgid "manager.setup.searchEngineIndexing"
-msgstr "Suchmaschinen-Indizierung"
-
-msgid "manager.setup.searchEngineIndexing.description"
-msgstr ""
-"Helfen Sie Suchmaschinen wie Google dabei, Ihre Seite zu finden und "
-"anzuzeigen. Erstellen Sie dafür eine sitemap."
-
-msgid "manager.setup.sectionsAndSectionEditors"
-msgstr "Sektionen und Sektionsherausgeber/innen"
-
-msgid "manager.setup.sectionsDefaultSectionDescription"
-msgstr ""
-"(Wurden keine Sektionen hinzugefügt, werden die Titel standardmäßig der "
-"Sektion Monographien zugeordnet.)"
-
-msgid "manager.setup.sectionsDescription"
-msgstr ""
-"Um Sektionen anzulegen oder zu verändern (z.B. Monographien, Buchrezensionen)"
-", gehen Sie bitte zu 'Sektionsmanagement'.
Autor/innen, die eine "
-"Publikation beim Verlag einreichen, werden es der entsprechenden Sektion "
-"zuordnen."
-
-msgid "manager.setup.securitySettings"
-msgstr "Zugangs- und Sicherheitseinstellungen"
-
-msgid "manager.setup.securitySettings.note"
-msgstr "Andere auf die Sicherheit der Website und auf deren Zugang bezogene Optionen können von der Seite Zugang und Sicherheit aus konfiguriert werden."
-
-msgid "manager.setup.selectEditorDescription"
-msgstr "Leitende/r Herausgeber/in zur Betreuung des gesamten Publikationsprozesses."
-
-msgid "manager.setup.selectSectionDescription"
-msgstr "Verlagssektion, für die der Titel vorgesehen ist."
-
-msgid "manager.setup.showGalleyLinksDescription"
-msgstr "Zeige immer Links zu den Druckfahnen und weise auf Zugangsbeschränkungen hin."
-
-msgid "manager.setup.stepsToPressSite"
-msgstr "Fünf Schritte zur Verlagswebsite"
-
-msgid "manager.setup.subjectExamples"
-msgstr "(z.B. Photosynthese; Schwarze Löcher; Vier-Farben-Satz; Bayes'scher Wahrscheinlichkeitsbegriff)"
-
-msgid "manager.setup.subjectKeywordTopic"
-msgstr "Schlüsselwörter"
-
-msgid "manager.setup.subjectProvideExamples"
-msgstr "Geben Sie Beispiele für Schlüsselwörter oder Themengebiete als Orientierung für die Autoren"
-
-msgid "manager.setup.submissionGuidelines"
-msgstr "Richtlinien für die Einreichung"
-
-msgid "manager.setup.submissionPreparationChecklist"
-msgstr "Einreichungs-Checkliste"
-
-msgid "maganer.setup.submissionChecklistItemRequired"
-msgstr "Dieser Punkt der Checkliste muss bestätigt sein."
-
-msgid "manager.setup.workflow"
-msgstr "Workflow"
-
-msgid "manager.setup.submissions.description"
-msgstr "Leitfaden für Autoren, Copyright und Indizierung (einschließlich Registrierung)."
-
-msgid "manager.setup.typeExamples"
-msgstr "(z.B. historische Untersuchung; quasi-experimentelle Studie; literarische Analyse; Umfrage/Interview)"
-
-msgid "manager.setup.typeMethodApproach"
-msgstr "Typ (Methode/Ansatz)"
-
-msgid "manager.setup.typeProvideExamples"
-msgstr "Nennen Sie Beispiele für relevante Forschungsarten, -methoden und -ansätze auf diesem Feld"
-
-msgid "manager.setup.useCopyeditors"
-msgstr "Jedem Manuskript wird ein/e Lektor/in zugewiesen."
-
-msgid "manager.setup.useEditorialReviewBoard"
-msgstr "Ein Redaktioneller Beirat/Gutachterbeirat wird vom Verlag eingesetzt."
-
-msgid "manager.setup.useImageTitle"
-msgstr "Titelbild"
-
-msgid "manager.setup.useStyleSheet"
-msgstr "Formatvorlage des Verlags"
-
-msgid "manager.setup.useLayoutEditors"
-msgstr "Aufgabe des Layouters ist es, HTML-, PDF- und andere Dateien für die elektronische Veröffentlichtung vorzubereiten."
-
-msgid "manager.setup.useProofreaders"
-msgstr "Ein/e Korrektor/in wird bestimmt, um (zusammen mit den Autoren/innen) die Fahnen im letzten Schritt vor der Veröffentlichung gegenzulesen."
-
-msgid "manager.setup.userRegistration"
-msgstr "Benutzerregistrierung"
-
-msgid "manager.setup.useTextTitle"
-msgstr "Seitentitel der Website"
-
-msgid "manager.setup.volumePerYear"
-msgstr "Bände pro Jahr"
-
-msgid "manager.setup.publicationFormat.code"
-msgstr "Format"
-
-msgid "manager.setup.publicationFormat.codeRequired"
-msgstr "Bitte wählen Sie ein Format aus."
-
-msgid "manager.setup.publicationFormat.nameRequired"
-msgstr "Sie müssen diesem Format einen Namen zuweisen."
-
-msgid "manager.setup.publicationFormat.physicalFormat"
-msgstr "Ist es ein physisches (nicht-digitales) Format?"
-
-msgid "manager.setup.publicationFormat.inUse"
-msgstr "Dieses Format kann nicht gelöscht werden, da zurzeit ein Buch Ihres Verlages in diesem Format erscheint."
-
-msgid "manager.setup.newPublicationFormat"
-msgstr "Neues Format"
-
-msgid "manager.setup.newPublicationFormatDescription"
-msgstr "Um ein neues Format anzulegen, füllen Sie bitte das unten stehende Formular aus und klicken dann auf den Button 'Erstellen'."
-
-msgid "manager.setup.genresDescription"
-msgstr "Diese Genres bilden einen Bestandteil des Dateinamen. Beim Hochladeprozess werden die Manuskriptdateien in einem Pull-down-Menü angezeigt. Genres, die mit ## gekennzeichnet sind, können sowohl mit dem ganzen Buch 99Z oder mit einem bestimmten Kapitel über Angabe einer Nummer (z.B. 02) verbunden werden."
-
-msgid "manager.setup.genres"
-msgstr "Genres"
-
-msgid "manager.setup.newGenre"
-msgstr "Neues Genre"
-
-msgid "manager.setup.newGenreDescription"
-msgstr "Um ein neues Genre anzulegen, füllen Sie die unten stehenden Felder aus und klicken Sie auf 'Erstellen'."
-
-msgid "manager.setup.deleteSelected"
-msgstr "Ausgewählte Elemente löschen"
-
-msgid "manager.setup.restoreDefaults"
-msgstr "Grundeinstellungen wiederherstellen"
-
-msgid "manager.setup.prospectus"
-msgstr "Leitfaden für das Exposé"
-
-msgid "manager.setup.prospectusDescription"
-msgstr "Der Leitfaden für Exposés soll dem Autor/der Autorin dabei helfen soll, die eingereichten Materialien so zu beschreiben, dass der Verlag daraus den Wert der Einreichung erkennen kann. Der Verlag stellt dazu ein vorbereitetes Exposé als Orientierungshilfe zur Verfügung. Das Exposé kann eine Vielzahl verschiedener Punkte enthalten - vom Marktpotenzial bis zum theoretischen Wert; in jedem Fall sollte der Verlag einen Exposéleitfaden erstellen, der die eigene Verlagsagenda ergänzt."
-
-msgid "manager.setup.submitToCategories"
-msgstr "Einreichung in einer Kategorie zulassen"
-
-msgid "manager.setup.submitToSeries"
-msgstr "Einreichung in einer Reihe zulassen"
-
-msgid "manager.setup.issnDescription"
-msgstr "Die ISSN (International Standard Serial Number) ist eine aus acht Ziffern bestehende Nummer, die periodisch erscheinende Veröffentlichungen - dazu zählen auch elektronische Zeitschriften (E-Journals) - als solche identifiziert. Sie wird von einem weltweit arbeitenden Netzwerk von Nationalzentren verwaltet. Die Koordinierung erfolgt über das ISSN International Centre mit Sitz in Paris, unterstützt von der Unesco und der französischen Regierung. ISSN können jederzeit über ISSN web site bezogen werden."
-
-msgid "manager.setup.currentFormats"
-msgstr "Aktuelle Formate"
-
-msgid "manager.setup.categoriesAndSeries"
-msgstr "Kategorien und Reihen"
-
-msgid "manager.setup.categories.description"
-msgstr "Sie können eine Liste von Kategorien anlegen, um Ihre Publikationen besser organisieren zu können. Kategorien sind Gruppierungen von Büchern zu bestimmten Sachbegriffen, zum Beispiel zu Wirtschaft; Literatur; Poesie und so weiter. Kategorien können 'Eltern'-Kategorien untergeordnet werden: Zum Beispiel kann die Elternkategorie 'Wirtschaft\" die beiden Individuen 'Mikroökonomie' und 'Makroökonomie' mit einschließen. Besucher der Website können nach Kategorien suchen und in den Kategorien browsen."
-
-msgid "manager.setup.series.description"
-msgstr "Sie können eine unbegrenzte Anzahl von Reihen anlegen. Eine Reihe stellt eine Zusammenstellung von Büchern zu einem bestimmten Thema dar. Normalerweise wird das Thema oder der Gegenstand der Reihe von ein oder zwei Mitgliedern einer Fakultät vorgeschlagen. Sie betreuen auch die Reihe und überwachen deren Qualität. Besucher der Website können nach Reihen suchen und browsen."
-
-msgid "manager.setup.reviewForms"
-msgstr "Gutachtenformulare"
-
-msgid "manager.setup.roleType"
-msgstr "Funktionstyp"
-
-msgid "manager.setup.authorRoles"
-msgstr "Funktionen von \"Autor/in\""
-
-msgid "manager.setup.managerialRoles"
-msgstr "Funktionen von \"Manager/in\""
-
-msgid "manager.setup.availableRoles"
-msgstr "Verfügbare Funktionen"
-
-msgid "manager.setup.currentRoles"
-msgstr "Aktuelle Funktionen"
-
-msgid "manager.setup.internalReviewRoles"
-msgstr "Funktionen von \"Interne/r Gutachter/in\""
-
-msgid "manager.setup.masthead"
-msgstr "Impressum"
-
-msgid "manager.setup.editorialTeam"
-msgstr "Herausgeber/innen"
-
-msgid "manager.setup.editorialTeam.description"
-msgstr "Das Impressum sollte ein Liste der Herausgeber/innen und Geschäftsführer/innen sowie anderer Personen enthalten, die mit dem Verlag in Verbindung stehen. Hier eingegebene Informationen erscheinen unter 'Über uns'."
-
-msgid "manager.setup.files"
-msgstr "Dateien"
-
-msgid "manager.setup.productionTemplates"
-msgstr "Vorlagen für die Herstellung"
-
-msgid "manager.files.note"
-msgstr "Hinweis: Der Dateimanager ist ein erweitertes Feature, das es erlaubt, dem Verlag zugeordnete Dateien und Verzeichnisse direkt anzuschauen und zu ändern."
-
-msgid "manager.setup.copyrightNotice.sample"
-msgstr ""
-"Vorgeschlagener Text für den Creative Commons Copyright-Vermerk
\n"
-"Vorgeschlagene Leitlinie für Verlage, die Open Access anbieten
\n"
-"Autor/innen, die in diesem Verlag veröffentlichen, stimmen den folgenden "
-"Bedingungen zu:\n"
-"\n"
-"\t- Autor/innen behalten das Urheberrecht an dem Werk und gewähren dem "
-"Verlag das Recht zu dessen Erstveröffentlichung. Parallel dazu wird das Werk "
-"unter eine Creative Commons Attribution License gestellt. Diese erlaubt "
-"es anderen, das Werk weiterzuverbreiten, unter der Bedingung, dass der Autor/"
-"die Autorin benannt und auf die Erstveröffentlichung in diesem Verlag "
-"hingewiesen wird.
\n"
-"\t- Autor/innen können weitere, gesonderte Verträge für eine nicht-"
-"exklusive Verbreitung einer vom Verlag veröffentlichten Version des Buches "
-"abschließen (sie können es z. B auf einem institutionellen Repositorium "
-"einstellen oder in einem Buch veröffentlichen), jedoch unter Hinweis auf die "
-"Erstveröffentlichung in diesem Verlag.
\n"
-"\t- Autor/innen ist es erlaubt und werden dazu ermutigt, ihr Werk bereits "
-"online zu stellen, bevor es beim Verlag eingereicht oder veröffentlicht "
-"wurde (z.B. auf institutionellen Repositorien oder auf ihrer Website), da "
-"dies zu einem produktiven Austausch einerseits als auch zu einer früheren "
-"Zitierung und einer höheren Zitierhäufigkeit andererseits führen kann. ("
-"Siehe Der Effekt von Open Access).
\n"
-"
\n"
-"\n"
-"Vorgeschlagene Leitlinie für Verlage, die eine freie Zugänglichkeit nach "
-"einem festgesetzten Verwertungszeitraum anbieten (Delayed Open Access)
\n"
-"Autor/innen, die bei diesem Verlag publizieren, stimmen folgenden "
-"Bedingungen zu:\n"
-"\n"
-"\t- Autor/innen behalten das Urheberrecht an dem Werk und gewähren dem "
-"Verlag das Recht zu dessen Erstveröffentlichung. Das Werk wird [Zeitraum "
-"angeben] nach der Veröffentlichung parallel unter einer Creative Commons "
-"Attribution License lizenziert, die es anderen erlaubt, das Werk "
-"weiterzuverbreiten, unter der Bedingung, dass der Autor/die Autorin benannt "
-"und auf die Erstveröffentlichung in diesem Verlag hingewiesen wird.
\n"
-"\t - Autor/innen können weitere, gesonderte Verträge für eine nicht-"
-"exklusive Verbreitung einer vom Verlag veröffentlichten Version des Buches "
-"abschließen (sie können es z.B auf einem institutionellen Repositorium "
-"einstellen oder in einem Buch veröffentlichen), jedoch muss auf die "
-"Erstveröffentlichung in diesem Verlag hingewiesen werden.
\n"
-"\t - Autor/innen dürfen gerne ihr Werk bereits online stellen, bevor es "
-"beim Verlag eingereicht oder veröffentlicht wurde (z.B. auf institutionellen "
-"Repositorien oder auf ihren Websites). Dies dient nicht nur dem produktiven "
-"Austausch untereinander, sondern kann auch zu einer früheren Zitierung und "
-"einer höheren Zitierhäufigkeit des veröffentlichten Werks beitragen. (Siehe <"
-"a target=\"_blank\" href=\"http://opcit.eprints.org/oacitation-biblio.html\">"
-"Der Effekt von Open Access).
\n"
-"
"
-
-msgid "manager.setup.basicEditorialStepsDescription"
-msgstr ""
-"Schritte: Warteschlange > Begutachtung > Redaktionelle Bearbeitung > Inhaltsverzeichnis.
\n"
-"Wählen Sie ein Modell, um diese Aspekte des Publikationsprozesses zu steuern. (Um leitende Herausgeber/innen oder Serienherausgeber/innen zu bestimmen, gehen Sie in der Verlagsverwaltung zu 'Herausgeber/innen'.)"
-
-msgid "manager.setup.referenceLinkingDescription"
-msgstr ""
-"Um Leser/innen das Auffinden der Onlineversion eines zitierten Werkes zu erleichtern, können Sie:
\n"
-"\n"
-"\n"
-"\t- Ein Lesewerkzeug hinzufügen:
Der Verlagsleiter kann den Link \"Finde Literaturnachweise\" zu den Lesewerkzeugen (sie stehen in der Sidebar neben dem veröffentlichten Werk) hinzufügen. Durch Anklicken des Links öffnet sich ein Fenster, in dem Leser/innen einen zitierten Titel einfügen und anschließend in vorausgewählten wissenschaftlichen Datenbanken danach suchen können.
\n"
-"\t- Links in die Literaturnachweise einbinden:
Der/die Layouter/in kann einen Link zu online aufrufbaren Zitationen hinzufügen. Die folgenden Instruktionen sind dabei unter Umständen hilfreich (Bearbeitung erlaubt).
\n"
-"
"
-
-msgid "manager.publication.library"
-msgstr "Verlagsdokumentenarchiv"
-
-msgid "manager.setup.resetPermissions"
-msgstr "Rechte für Monographien zurücksetzen"
-
-msgid "manager.setup.resetPermissions.confirm"
-msgstr ""
-"Sind Sie sicher, dass Sie die bereits vergebenen Rechte für Monographien "
-"zurücksetzen wollen?"
-
-msgid "manager.setup.resetPermissions.description"
-msgstr "Copyright-Angaben und Lizenzinformationen werden dauerhaft mit dem veröffentlichten Inhalt verknüpft, damit diese Daten sich nicht ändern, wenn ein Verlag die Regeln für neue Einreichungen ändert. Um vergebene Rechte für bereits veröffentlichte Inhalte zurückzusetzen, nutzen Sie den Knopf unten."
-
-msgid "grid.genres.title.short"
-msgstr "Komponenten"
-
-msgid "grid.genres.title"
-msgstr "Monographie-Komponenten"
-
-msgid "manager.setup.searchEngineIndexing.success"
-msgstr "Die Suchmaschinenindizierung-Einstellungen wurden aktualisiert."
-
-msgid "emailTemplate.variable.site.siteTitle"
-msgstr "Der Name der Website, wenn mehr als ein Verlag gehostet wird"
-
-msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
-msgstr "Die Währung des Zahlungsbetrags, z.B. USD"
-
-msgid "emailTemplate.variable.queuedPayment.itemCost"
-msgstr "Der Zahlungsbetrag"
-
-msgid "emailTemplate.variable.queuedPayment.itemName"
-msgstr "Der Name des Zahlungstyps"
-
-msgid "emailTemplate.variable.context.contactEmail"
-msgstr "Die E-Mail-Adresse des Hauptkontakts des Verlags"
-
-msgid "emailTemplate.variable.context.contextSignature"
-msgstr "Die E-Mail-Signatur des Verlags für automatisierte E-Mails"
-
-msgid "emailTemplate.variable.context.contactName"
-msgstr "Der Name des Hauptkontakts des Verlags"
-
-msgid "emailTemplate.variable.context.contextUrl"
-msgstr "Die URL der Verlagshomepage"
-
-msgid "emailTemplate.variable.context.contextName"
-msgstr "Der Name des Verlags"
-
-msgid "plugins.importexport.chapter.exportFailed"
-msgstr "Das Parsen der Kapitel hat nicht funktioniert"
-
-msgid "plugins.importexport.publicationformat.exportFailed"
-msgstr "Das Parsen der Publikationsformate hat nicht funktioniert"
-
-msgid "plugins.importexport.native.error.unknownUser"
-msgstr "Der/die angegebene Nutzer/in, \"{$userName}\", existiert nicht."
-
-msgid "plugins.importexport.common.error.unknownObjects"
-msgstr "Die angegebenen Objekte konnten nicht gefunden werden."
-
-msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.disabled.description"
-msgstr ""
-"Für diesen Verlag wurde kein Hauptkontakt definiert. Sie können einen "
-"Hauptkontakt in den Verlagseinstellungen einfügen."
-
-msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
-msgstr ""
-"Eine Kopie der Einreichungsbestätigung an den Hauptkontakt des Verlags "
-"schicken."
-
-msgid "plugins.importexport.native.exportSubmissions"
-msgstr "Einreichungen exportieren"
-
-msgid "plugins.importexport.common.invalidXML"
-msgstr "Ungültige XML:"
-
-msgid "plugins.importexport.common.error.validation"
-msgstr "Ausgewählte Objekte konnten nicht konvertiert werden."
-
-msgid "plugins.importexport.common.error.noObjectsSelected"
-msgstr "Keine Objekte ausgewählt."
-
-msgid "stats.publications.abstracts"
-msgstr "Katalogeinträge"
-
-msgid "stats.publications.countOfTotal"
-msgstr "{$count} von {$total} Monographien"
-
-msgid "stats.publications.totalGalleyViews.timelineInterval"
-msgstr "Gesamte Dateiansichten, nach Datum"
-
-msgid "stats.publications.totalAbstractViews.timelineInterval"
-msgstr "Gesamte Katalogansichten, nach Datum"
-
-msgid "stats.publications.none"
-msgstr ""
-"Es konnten keine Monographien gefunden werden, deren Nutzungstatistiken mit "
-"diesen Parametern übereinstimmen."
-
-msgid "stats.publications.details"
-msgstr "Monographie Details"
-
-msgid "stats.publicationStats"
-msgstr "Monographie Statistiken"
-
-msgid "grid.series.urlWillBe"
-msgstr "Die URL der Reihe wird {$sampleUrl} sein"
-
-msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
-msgstr ""
-"Bitte wählen Sie die Kategorie aus, auf die dieses Menüelement verlinken "
-"soll."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.category"
-msgstr "Kategorie auswählen"
-
-msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
-msgstr ""
-"Bitte wählen Sie die Reihe aus, auf die dieses Menüelement verlinken soll."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.series"
-msgstr "Reihe auswählen"
-
-msgid "grid.series.pathExists"
-msgstr "Der Reihenpfad existiert bereits. Bitte fügen Sie einen neuen Pfad ein."
-
-msgid "grid.series.pathAlphaNumeric"
-msgstr "Der Reihenpfad darf nur Buchstaben und Zahlen beinhalten."
-
-msgid "manager.setup.notifications.copyPrimaryContact"
-msgstr ""
-"Senden Sie eine Kopie an den in den Verlagseinstellungen identifizierten "
-"Hauptkontakt."
-
-msgid "manager.setup.resetPermissions.success"
-msgstr "Die Berechtigungen für Monographien wurden erfolgreich zurückgesetzt."
-
-msgid "manager.setup.disableSubmissions.description"
-msgstr ""
-"Verbieten Sie Nutzer/innen, neue Einreichungen an den Verlag zu machen. "
-"Einreichungen für einzelne Reihen können auf der Reihen-Seite der Verlagseinstellungen verhindert werden."
-
-msgid "manager.setup.disableSubmissions.notAccepting"
-msgstr ""
-"Dieser Verlag nimmt derzeit keine Einreichungen an. Gehen Sie zu den "
-"Workflow-Einstellungen um Einreichungen zu erlauben."
-
-msgid "manager.setup.siteAccess.viewContent"
-msgstr "Monographieninhalte ansehen"
-
-msgid "manager.setup.siteAccess.view"
-msgstr "Seitenzugang"
-
-msgid "manager.setup.searchDescription.description"
-msgstr ""
-"Fügen Sie eine kurze Beschreibung (50-300 Zeichen) des Verlags ein, die "
-"Suchmaschinen in der Suchergebnisliste anzeigen können."
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
-msgstr ""
-"Einen sicheren Link in die E-Mail-Einladung an Gutachter/innen einfügen."
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
-msgstr ""
-"Gutachter/innen kann ein sicherer Link in der E-Mail-Einladung geschickt "
-"werden, welcher den Zugang zur Begutachtung ohne Login ermöglicht. Der "
-"Zugriff auf weitere Seiten benötigt einen Login."
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
-msgstr "One-click Zugang für Gutachter/innen"
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
-msgstr "Dateizugriff einschränken"
-
-msgid "manager.setup.pressThumbnail.description"
-msgstr ""
-"Ein kleines Logo des Verlags, das in Listen von Verlagen verwendet werden "
-"kann."
-
-msgid "manager.setup.pressThumbnail"
-msgstr "Verlags-Thumbnail"
-
-msgid "manager.setup.selectCountry"
-msgstr ""
-"Wählen Sie entweder das Land aus, in dem dieser Verlag ansässig ist, oder "
-"das Land der Mail-Adresse des Verlags oder Verlegers."
-
-msgid "manager.setup.aboutPress.description"
-msgstr ""
-"Nennen Sie jegliche Informationen über Ihren Verlag, die für Leser/innen, "
-"Autor/innen, oder Gutachter/innen von Interesse sein könnten. Dies könnte "
-"Ihre Open Access Policy, den Fokus und die Reichweite des Verlags, die "
-"Copyright-Notiz, Sponsoren, die Geschichte Ihres Verlags und eine "
-"Datenschutzerklärung beinhalten."
-
-msgid "manager.setup.aboutPress"
-msgstr "Über den Verlag"
-
-msgid "manager.setup.privacyStatement.success"
-msgstr "Die Datenschutzerklärung wurde aktualisiert."
-
-msgid "manager.setup.numPageLinks.description"
-msgstr ""
-"Begrenzen Sie die Anzahl der angezeigten Links, die auf weitere Seiten einer "
-"Liste hinweisen."
-
-msgid "manager.setup.masthead.success"
-msgstr "Die Details des Impressums für diesen Verlag wurden aktualisiert."
-
-msgid "manager.setup.lists.success"
-msgstr "Die Listen-Einstellungen wurden aktualisiert."
-
-msgid "manager.setup.keyInfo.description"
-msgstr ""
-"Fügen Sie eine kurze Beschreibung Ihres Verlags ein und identifizieren Sie "
-"Redakteur/innen, Managing Directors und weitere Mitglieder des "
-"redaktionellen Teams."
-
-msgid "manager.setup.keyInfo"
-msgstr "Hauptinformationen"
-
-msgid "manager.setup.itemsPerPage.description"
-msgstr ""
-"Begrenzen Sie die Anzahl von Elementen (z.B. Einreichungen, Nutzer/innen, "
-"oder Begutachtungszuordnungen), die in einer Liste angezeigt werden, bevor "
-"weitere Elemente auf der nächsten Seite angezeigt werden."
-
-msgid "manager.setup.itemsPerPage"
-msgstr "Elemente pro Seite"
-
-msgid "manager.setup.information.success"
-msgstr "Die Informationen über diesen Verlag wurden aktualisiert."
-
-msgid "manager.setup.information"
-msgstr "Informationen"
-
-msgid "manager.setup.identity"
-msgstr "Verlagsidentität"
-
-msgid "manager.setup.numAnnouncementsHomepage.description"
-msgstr ""
-"Wie viele Ankündigungen auf der Homepage erscheinen. Lassen Sie das Feld "
-"leer, um keine Ankündigungen anzeigen zu lassen."
-
-msgid "manager.setup.numAnnouncementsHomepage"
-msgstr "Auf der Homepage anzeigen"
-
-msgid "manager.setup.enableAnnouncements.description"
-msgstr ""
-"Ankündigungen können veröffentlicht werden um Leser/innen über Neuigkeiten "
-"und Events zu informieren. Veröffentlichte Ankündigungen erscheinen auf der "
-"Seite \"Ankündigungen\"."
-
-msgid "manager.setup.emailSignature.description"
-msgstr ""
-"Den vorbereiteten E-Mails, die das System im Namen des Verlags verschickt, "
-"werden die folgende Signatur am Ende der Nachricht zugefügt."
-
-msgid "manager.setup.emailBounceAddress.disabled"
-msgstr ""
-"Um eine unzustellbare E-Mail an eine Bounce Adresse zu schicken, muss der "
-"Administrator die allow_envelope_sender
Option in der "
-"Konfigurationsdatei der Seite aktivieren. Möglicherweise ist, wie in der OMP "
-"Dokumentation beschrieben, die Konfiguration des Servers notwendig."
-
-msgid "manager.setup.displayNewReleases.label"
-msgstr "Neuerscheinungen"
-
-msgid "manager.setup.displayInSpotlight.label"
-msgstr "Spotlight"
-
-msgid "manager.setup.displayFeaturedBooks.label"
-msgstr "Featured Bücher"
-
-msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
-msgstr ""
-"Bilder werden reduziert, wenn sie größer als erlaubt sind. Sie werden nie "
-"vergrößert oder gestreckt um den Dimensionen angepasst zu werden."
-
-msgid "manager.setup.coverThumbnailsMaxWidth"
-msgstr "Titelbild Max Breite"
-
-msgid "manager.setup.coverThumbnailsMaxHeight"
-msgstr "Titelbild Max Höhe"
-
-msgid "manager.setup.contextSummary"
-msgstr "Beschreibung des Verlags"
-
-msgid "manager.setup.contextAbout.description"
-msgstr ""
-"Nennen Sie jegliche Informationen über Ihren Verlag, die für Leser/innen, "
-"Autor/innen, oder Gutachter/innen von Interesse sein könnten. Dies könnte "
-"Ihre Open Access Policy, den Fokus und die Reichweite des Verlags, "
-"Sponsoren, und die Geschichte Ihres Verlags beinhalten."
-
-msgid "manager.setup.contextAbout"
-msgstr "Über den Verlag"
-
-msgid "manager.setup.announcements.success"
-msgstr "Die Ankündigungs-Einstellungen wurden aktualisiert."
-
-msgid "manager.people.allEnrolledUsers"
-msgstr "In diesem Verlag registrierte Nutzer/innen"
-
-msgid "manager.settings.publisherCodeType.invalid"
-msgstr "Dies ist kein gültiger Verleger Code Typ."
-
-msgid "manager.settings.publisher.identity"
-msgstr "Identität des Verlegers"
-
-msgid "manager.payment.success"
-msgstr "Die Zahlungs-Einstellungen wurden aktualisiert."
-
-msgid "manager.payment.options.enablePayments"
-msgstr ""
-"Zahlungen werden für diesen Verlag aktiviert. Beachten Sie, dass Nutzer/"
-"innen sich einloggen müssen um Zahlungen zu machen."
-
-msgid "manager.payment.generalOptions"
-msgstr "Allgemeine Optionen"
-
-msgid "manager.series.confirmDeactivateSeries.error"
-msgstr ""
-"Mindestens eine Reihe muss aktiv sein. Gehen Sie zu den Workflow-"
-"Einstellungen um alle Einreichungen zu diesem Verlag zu deaktivieren."
-
-msgid "mailable.validateEmailContext.description"
-msgstr ""
-"Diese E-Mail wird automatisch an neue Nutzer/innen gesendet wenn sie sich "
-"mit einem Verlag registrieren, der die Überprüfung der E-Mail Adresse "
-"verlangt."
-
-msgid "mailable.validateEmailContext.name"
-msgstr "E-Mail überprüfen (Verlagsregistrierung)"
-
-msgid "doi.displayName"
-msgstr "DOI"
-
-msgid "doi.description"
-msgstr "Dieses Plugin ermöglicht die Zuweisung eines Digital Object Identifiers (DOI) zu einem Publikationsformat in OMP."
-
-msgid "doi.readerDisplayName"
-msgstr "DOI:"
-
-msgid "doi.manager.settings.description"
-msgstr ""
-"Bitte konfigurieren Sie das DOI-Plugin, damit Sie in OMP DOIs verwalten und "
-"benutzen können:"
-
-#, fuzzy
-msgid "doi.manager.settings.doiObjectsRequired"
-msgstr "Bitte wählen Sie die Objekte aus, denen DOIs zugewiesen werden sollen."
-
-msgid "doi.manager.settings.doiPrefix"
-msgstr "DOI-Präfix"
-
-msgid "doi.manager.settings.doiPrefixPattern"
-msgstr "Das DOI-Präfix ist obligatorisch und muss die Form 10.xxxx haben."
-
-msgid "doi.manager.settings.doiSuffixPattern.representations"
-msgstr "für Publikationsformate"
-
-msgid "doi.editor.doi"
-msgstr "DOI"
-
-msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
-msgstr "Der angegebene DOI-Suffix wird bereits für ein anderes veröffentlichtes Element benutzt. Bitte vergeben Sie einen eindeutigen DOI-Suffix für jedes Element."
-
-msgid "doi.editor.preview.objects"
-msgstr "Element"
-
-msgid "doi.editor.preview.files"
-msgstr "Datei: {$title}"
-
-msgid "doi.editor.preview.publicationFormats"
-msgstr "Publikationsformat: {$title}"
-
-msgid "doi.editor.preview.chapters"
-msgstr "Kapitel: {$title}"
-
-msgid "doi.editor.preview.publication.none"
-msgstr "Dieser Publikation wurde keine DOI zugewiesen."
-
-msgid "doi.editor.preview.publication"
-msgstr "Die DOI für diese Publikation wird {$doi} sein."
-
-msgid "doi.editor.missingPrefix"
-msgstr "Die DOI muss mit {$doiPrefix} beginnen."
-
-msgid "doi.editor.assignDoi.assigned"
-msgstr "Die DOI {$pubId} wurde zugewiesen."
-
-msgid "doi.editor.assignDoi.pattern"
-msgstr ""
-"Die DOI {$pubId} kann nicht zugewiesen werden, da sie ein ungelöstes Schema "
-"beinhaltet."
-
-msgid "doi.editor.assignDoi.emptySuffix"
-msgstr "Die DOI kann nicht zugewiesen werden, da das Custom-Suffix fehlt."
-
-msgid "doi.editor.assignDoi"
-msgstr "Die DOI {$pubId} dem Objekt vom Typ {$pubObjectType} zuweisen"
-
-msgid "doi.editor.clearObjectsDoi.confirm"
-msgstr "Sind Sie sicher, dass Sie die bereits bestehende DOI entfernen möchten?"
-
-msgid "doi.editor.clearObjectsDoi"
-msgstr "Entfernen"
-
-msgid "doi.editor.assigned"
-msgstr "Die DOI wurde dem Objekt vom Typ {$pubObjectType} zugewiesen."
-
-msgid "doi.editor.canBeAssigned"
-msgstr ""
-"Dies ist eine Vorschau der DOI. Klicken Sie die Checkbox an und speichern "
-"das Formular um die DOI zuzuweisen."
-
-msgid "doi.editor.patternNotResolved"
-msgstr ""
-"Die DOI kann nicht zugewiesen werden, da sie ein ungelöstes Schema "
-"beinhaltet."
-
-msgid "doi.editor.missingParts"
-msgstr ""
-"Sie können keine DOI generieren, da einem oder mehreren Teilen des DOI-"
-"Schema Daten fehlen."
-
-msgid "doi.editor.customSuffixMissing"
-msgstr "Die DOI kann nicht zugewiesen werden, da das Custom-Suffix fehlt."
-
-msgid "doi.editor.doiObjectTypeSubmissionFile"
-msgstr "Datei"
-
-msgid "doi.editor.doiObjectTypeRepresentation"
-msgstr "Publikationsformat"
-
-msgid "doi.editor.doiObjectTypeChapter"
-msgstr "Kapitel"
-
-msgid "doi.editor.doiObjectTypeSubmission"
-msgstr "Monographie"
-
-msgid "doi.editor.doi.assignDoi"
-msgstr "Zuweisen"
-
-msgid "doi.editor.doi.description"
-msgstr "Die DOI muss mit {$prefix} beginnen."
-
-msgid "doi.manager.settings.doiReassign.confirm"
-msgstr "Sind Sie sicher, dass Sie alle existierenden DOIs entfernen möchten?"
-
-msgid "doi.manager.settings.doiReassign.description"
-msgstr ""
-"Wenn Sie Ihre DOI-Konfiguration ändern, werden bereits zugewiesene DOIs "
-"davon nicht beeinflusst. Sobald die Konfiguration gespeichert ist, können "
-"Sie diesen Button verwenden um alle bestehenden DOIs zu entfernen und im "
-"Anschluss die neuen Einstellungen auf alle existierenden Objekte anzuwenden."
-
-msgid "doi.manager.settings.doiReassign"
-msgstr "DOIs neu zuweisen"
-
-msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
-msgstr "Bitte tragen Sie das DOI-Suffix Schema für Dateien ein."
-
-msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
-msgstr "Bitte tragen Sie das DOI-Suffix Schema für Publikationsformate ein."
-
-msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
-msgstr "Bitte tragen Sie das DOI-Suffix Schema für Kapitel ein."
-
-msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
-msgstr "Bitte tragen Sie das DOI-Suffix Schema für Monographien ein."
-
-msgid "doi.manager.settings.doiSuffixPattern.files"
-msgstr "für Dateien"
-
-msgid "doi.manager.settings.doiSuffixPattern.chapters"
-msgstr "für Kapitel"
-
-msgid "doi.manager.settings.doiSuffixPattern.submissions"
-msgstr "für Monographien"
-
-msgid "doi.manager.settings.doiSuffixPattern.example"
-msgstr ""
-"Beispiel: press%ppub%f würde eine DOI wie 10.1234/pressESPpub100 kreieren"
-
-msgid "doi.manager.settings.doiSuffixPattern"
-msgstr ""
-"Benutzen Sie das unten eingetragene Schema um DOI-Suffixe zu generieren. "
-"Verwenden Sie %p für die Verlagsinitialien, %m für die Monographien-ID, %c "
-"für die Kapitel-ID, %f für die Publikationsformat-ID, %s für die Datei-ID "
-"und %x für \"Custom Identifier\"."
-
-msgid "doi.manager.settings.enableSubmissionFileDoi"
-msgstr "Dateien"
-
-msgid "doi.manager.settings.enableRepresentationDoi"
-msgstr "Publikationsformate"
-
-msgid "doi.manager.settings.enableChapterDoi"
-msgstr "Kapitel"
-
-msgid "doi.manager.settings.enablePublicationDoi"
-msgstr "Monographien"
-
-msgid "doi.manager.settings.explainDois"
-msgstr ""
-"Bitte wählen Sie die Publikationsobjekte aus, denen Digital Object "
-"Identifier (DOI) zugewiesen werden sollen:"
-
-msgid "doi.manager.submissionDois"
-msgstr "Monographien-DOIs"
-
-msgid "doi.manager.displayName"
-msgstr "DOIs"
-
-msgid "manager.dois.formatIdentifier.file"
-msgstr "Format / {$format}"
-
-msgid "doi.manager.settings.doiCreationTime.copyedit"
-msgstr "Im Schritt \"Lektorat\""
-
-msgid "doi.manager.settings.doiSuffixLegacy"
-msgstr ""
-"Standard-Patterns verwenden.
%p.%m für Monographien
%p.%m.c%c für "
-"Kapitel
%p.%m.%f für Publikationsformate
%p.%m.%f.%s für Dateien."
-
-msgid "manager.setup.enableDois.description"
-msgstr ""
-"Digital Object Identifier (DOIs) zu Monographien, Kapiteln, "
-"Publikationsformaten, und Dateien zuweisen."
diff --git a/locale/de_DE/submission.po b/locale/de_DE/submission.po
deleted file mode 100644
index 8ca3fc03ae5..00000000000
--- a/locale/de_DE/submission.po
+++ /dev/null
@@ -1,530 +0,0 @@
-# Pia Piontkowitz , 2021, 2022.
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2022-02-22 11:05+0000\n"
-"Last-Translator: Pia Piontkowitz \n"
-"Language-Team: German \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 "submission.submit.title"
-msgstr "Monographie einreichen"
-
-msgid "submission.upload.selectComponent"
-msgstr "Komponente auswählen"
-
-msgid "submission.title"
-msgstr "Buchtitel"
-
-msgid "submission.select"
-msgstr "Wählen Sie ein Manuskript aus"
-
-msgid "submission.synopsis"
-msgstr "Über dieses Buch"
-
-msgid "submission.workflowType"
-msgstr "Art des Buches"
-
-msgid "submission.workflowType.description"
-msgstr ""
-"Eine Monographie ist ein Werk, das von einer Autorin/einem Autor oder "
-"mehreren Autor/innen gemeinsam verfasst worden ist. Ein Sammelband besteht "
-"aus mehreren Kapiteln jeweils unterschiedlicher Autor/innen (detaillierte "
-"Kapitelangaben sind erst zu einem späteren Zeitpunkt im "
-"Veröffentlichungsprozess zu machen)."
-
-msgid "submission.workflowType.editedVolume"
-msgstr "Sammelband: Autor/innen sind mit dem eigenen Kapitel assoziiert."
-
-msgid "submission.workflowType.authoredWork"
-msgstr "Monographie: Autor/innen sind mit dem Buch als Ganzes assoziiert."
-
-msgid "submission.monograph"
-msgstr "Monographie"
-
-msgid "submission.published"
-msgstr "Druckreif"
-
-msgid "submission.fairCopy"
-msgstr "Reinschrift"
-
-msgid "submission.artwork.permissions"
-msgstr "Rechte"
-
-msgid "submission.chapter"
-msgstr "Kapitel"
-
-msgid "submission.chapters"
-msgstr "Kapitel"
-
-msgid "submission.chaptersDescription"
-msgstr "Hier können Sie die Kapitel auflisten und ihnen Personen zuordnen, die in der oben stehenden Liste der Beiträger/innen (z.B. Kapitelautor/innen, Übersetzer/innen) verzeichnet sind. Beiträger/innen, die Sie an dieser Stelle dem Kapitel zuordnen, werden während des Veröffentlichungsprozesses Zugang zu dem Kapitel haben."
-
-msgid "submission.chapter.addChapter"
-msgstr "Kapitel hinzufügen"
-
-msgid "submission.chapter.editChapter"
-msgstr "Kapitel bearbeiten"
-
-msgid "submission.copyedit"
-msgstr "Lektorat"
-
-msgid "submission.publicationFormats"
-msgstr "Formate"
-
-msgid "submission.proofs"
-msgstr "Proofs"
-
-msgid "submission.download"
-msgstr "Download"
-
-msgid "submission.sharing"
-msgstr "Teilen"
-
-msgid "manuscript.submission"
-msgstr "Manuskript einreichen"
-
-msgid "submission.round"
-msgstr "Durchgang {$round}"
-
-msgid "submissions.queuedReview"
-msgstr "In Begutachtung"
-
-msgid "manuscript.submissions"
-msgstr "Manuskripte einreichen"
-
-msgid "submission.confirmSubmit"
-msgstr "Sind Sie sicher, dass Sie das Manuskript einreichen möchten?"
-
-msgid "submission.metadata"
-msgstr "Metadaten"
-
-msgid "submission.supportingAgencies"
-msgstr "Träger"
-
-msgid "grid.action.addChapter"
-msgstr "Ein neues Kapitel erzeugen"
-
-msgid "grid.action.editChapter"
-msgstr "Kapitel bearbeiten"
-
-msgid "grid.action.deleteChapter"
-msgstr "Kapitel löschen"
-
-msgid "submission.submit"
-msgstr "Ein neues Buchmanuskript einreichen"
-
-msgid "submission.submit.newSubmissionMultiple"
-msgstr "Ein neues Buchmanuskript einreichen bei"
-
-msgid "submission.submit.newSubmissionSingle"
-msgstr "Ein neues Manuskript bei {$contextName} einreichen"
-
-msgid "submission.submit.upload"
-msgstr "Einreichung hochladen"
-
-msgid "submission.submit.cancelSubmission"
-msgstr "Sie können den Einreichungsprozess auch zu einem späteren Zeitpunkt abschließen. Gehen Sie dazu auf die Startseite und wählen Sie die entsprechenden Manuskripte aus."
-
-msgid "submission.submit.selectSeries"
-msgstr "Reihe auswählen"
-
-msgid "submission.submit.seriesPosition"
-msgstr "Position innerhalb der Reihe (z.B. Band 2)"
-
-msgid "submission.submit.seriesPosition.description"
-msgstr "Beispiel: Buch 2, Band 2"
-
-msgid "submission.submit.form.localeRequired"
-msgstr "Bitte wählen Sie die Sprache des Manuskripts aus."
-
-msgid "submission.submit.privacyStatement"
-msgstr "Datenschutzerklärung"
-
-msgid "submission.submit.contributorRole"
-msgstr "Funktion des Beiträgers/der Beiträgerin"
-
-msgid "submission.submit.form.authorRequired"
-msgstr "Es muss mindestens ein Autor/eine Autorin angegeben werden."
-
-msgid "submission.submit.form.authorRequiredFields"
-msgstr "Es werden Vorname, Nachname und E-Mail-Adresse aller Autor/innen benötigt."
-
-msgid "submission.submit.form.titleRequired"
-msgstr "Bitte geben Sie den Titel Ihrer Monographie ein."
-
-msgid "submission.submit.form.abstractRequired"
-msgstr "Bitte geben Sie eine kurze Zusammenfassung Ihrer Monographie ein."
-
-msgid "submission.submit.form.contributorRoleRequired"
-msgstr "Bitte wählen Sie die Funktion der Beiträgerin/des Beiträgers."
-
-msgid "submission.submit.submissionFile"
-msgstr "Manuskriptdatei"
-
-msgid "submission.submit.prepare"
-msgstr "Vorbereiten"
-
-msgid "submission.submit.catalog"
-msgstr "Katalog"
-
-msgid "submission.submit.metadata"
-msgstr "Metadaten"
-
-msgid "submission.submit.finishingUp"
-msgstr "Fertigstellen"
-
-msgid "submission.submit.confirmation"
-msgstr "Bestätigung"
-
-msgid "submission.submit.nextSteps"
-msgstr "Die nächsten Schritte"
-
-msgid "submission.submit.coverNote"
-msgstr "Vermerk für den/die Herausgeber/in"
-
-msgid "submission.submit.generalInformation"
-msgstr "Allgemeine Informationen"
-
-msgid "submission.submit.whatNext.description"
-msgstr "Der Verlag wurde über die Einsendung Ihres Manuskriptes informiert. Für Ihre Unterlagen haben wir Ihnen eine Bestätigung per E-Mail zugesandt. Sobald der/die Herausgeber/in das Manuskript geprüft hat, wird er sich mit Ihnen in Verbindung setzen."
-
-msgid "submission.submit.checklistErrors"
-msgstr "Bitte lesen und bestätigen Sie die Punkte der Einreichungscheckliste. {$itemsRemaining} Punkte wurden bisher noch nicht bestätigt."
-
-msgid "submission.submit.placement"
-msgstr "Manuskriptplatzierung"
-
-msgid "submission.submit.userGroup"
-msgstr "Einreichen in meiner Funktion als ..."
-
-msgid "submission.submit.userGroupDescription"
-msgstr "Wenn Sie einen Sammelband einreichen, sollten Sie die Funktion \"Sammelbandherausgeber/in\" auswählen."
-
-msgid "grid.chapters.title"
-msgstr "Kapitel"
-
-msgid "grid.copyediting.deleteCopyeditorResponse"
-msgstr "Vom Lektor hochgeladenes Dokument löschen"
-
-msgid "publication.catalogEntry"
-msgstr "Katalog"
-
-msgid "submission.complete"
-msgstr "Freigegeben"
-
-msgid "submission.incomplete"
-msgstr "Warte auf Freigabe"
-
-msgid "submission.editCatalogEntry"
-msgstr "Eintrag"
-
-msgid "submission.catalogEntry.new"
-msgstr "Neuer Katalogeintrag"
-
-msgid "submission.catalogEntry.confirm"
-msgstr "Dieses Buch dem Katalog hinzufügen"
-
-msgid "submission.catalogEntry.confirm.required"
-msgstr "Bitte bestätigen Sie, dass der Publikationsprozess abgeschlossen ist und das Buch in den Katalog aufgenommen werden soll."
-
-msgid "submission.catalogEntry.isAvailable"
-msgstr ""
-"Diese Monographie ist fertig und soll in den öffentlichen Katalog "
-"aufgenommen werden."
-
-msgid "submission.catalogEntry.monographMetadata"
-msgstr "Monographie"
-
-msgid "submission.catalogEntry.catalogMetadata"
-msgstr "Katalog"
-
-msgid "submission.catalogEntry.publicationMetadata"
-msgstr "Format"
-
-msgid "submission.event.metadataPublished"
-msgstr ""
-"Die Metadaten der Monographie sind zur Veröffentlichung akzeptiert worden."
-
-msgid "submission.event.metadataUnpublished"
-msgstr ""
-"Die Veröffentlichung der Metadaten dieser Monographie wurde eingestellt."
-
-msgid "submission.event.publicationFormatMadeAvailable"
-msgstr "Das \"{$publicationFormatName}\"-Format wurde verfügbar gemacht."
-
-msgid "submission.event.publicationFormatMadeUnavailable"
-msgstr "Das \"{$publicationFormatName}\"-Format ist nicht länger verfügbar."
-
-msgid "submission.event.publicationFormatPublished"
-msgstr "Das \"{$publicationFormatName}\"-Format ist für die Veröffentlichung akzeptiert worden."
-
-msgid "submission.event.publicationFormatUnpublished"
-msgstr "Die Veröffentlichung des \"{$publicationFormatName}\"-Formats wurde eingestellt."
-
-msgid "submission.event.catalogMetadataUpdated"
-msgstr "Die Katalogmetadaten wurden aktualisiert."
-
-msgid "submission.event.publicationMetadataUpdated"
-msgstr "Die Metadaten für das Format \"{$formatName}\" wurden upgedatet."
-
-msgid "submission.event.publicationFormatCreated"
-msgstr "Das Format \"{$formatName}\" wurde erstellt."
-
-msgid "submission.event.publicationFormatRemoved"
-msgstr "Das Format \"{$formatName}\" wurde entfernt."
-
-msgid "submission.submit.titleAndSummary"
-msgstr "Titel und Zusammenfassung"
-
-msgid "workflow.review.externalReview"
-msgstr "Externe Begutachtung"
-
-msgid "editor.submission.decision.sendExternalReview"
-msgstr "In externe Begutachtung geben"
-
-msgid "submission.upload.fileContents"
-msgstr "Einreichungs-Komponente"
-
-msgid "submission.publication"
-msgstr "Veröffentlichung"
-
-msgid "publication.status.published"
-msgstr "Veröffentlicht"
-
-msgid "submission.status.scheduled"
-msgstr "Eingeplant"
-
-msgid "publication.status.unscheduled"
-msgstr "Nicht eingeplant"
-
-msgid "submission.publications"
-msgstr "Veröffentlichungen"
-
-msgid "publication.copyrightYearBasis.issueDescription"
-msgstr ""
-"Das Copyright-Jahr wird automatisch gesetzt, wenn dieser Beitrag in einer "
-"Ausgabe veröffentlicht wird."
-
-msgid "publication.copyrightYearBasis.submissionDescription"
-msgstr ""
-"Das Copyright-Jahr wird, basierend auf dem Veröffentlichungsdatum, "
-"automatisch gesetzt."
-
-msgid "publication.datePublished"
-msgstr "Veröffentlichungsdatum"
-
-msgid "publication.editDisabled"
-msgstr "Diese Version wurde veröffentlicht und kann nicht geändert werden."
-
-msgid "publication.event.published"
-msgstr "Der Beitrag wurde veröffentlicht."
-
-msgid "publication.event.scheduled"
-msgstr "Der Beitrag wurde zur Veröffentlichung vorgesehen."
-
-msgid "publication.event.unpublished"
-msgstr "Der Beitrag wurde zurückgezogen."
-
-msgid "publication.event.versionPublished"
-msgstr "Eine neue Version wurde veröffentlicht."
-
-msgid "publication.event.versionScheduled"
-msgstr "Eine neue Version wurde zur Veröffentlichung vorgesehen."
-
-msgid "publication.event.versionUnpublished"
-msgstr "Eine Version wurde zurückgezogen."
-
-msgid "publication.invalidSubmission"
-msgstr ""
-"Die Einreichung für diese Veröffentlichung konnte nicht gefunden werden."
-
-msgid "publication.publish"
-msgstr "Veröffentlichen"
-
-msgid "publication.publish.requirements"
-msgstr ""
-"Die folgenden Bedingungen müssen erfüllt sein, bevor dies veröffentlicht "
-"werden kann."
-
-msgid "publication.required.declined"
-msgstr "Ein abgelehnter Beitrag kann nicht veröffentlicht werden."
-
-msgid "publication.required.reviewStage"
-msgstr ""
-"Die Einreichung muss sich im Copyediting oder im Produktionsschritt befinden "
-"um veröffentlicht werden zu können."
-
-msgid "submission.license.description"
-msgstr ""
-"Die Lizenz wird bei Veröffentlichung automatisch auf {$licenseName} gesetzt."
-
-msgid "submission.copyrightHolder.description"
-msgstr ""
-"{$copyright} wird bei Veröffentlichung automatisch als Rechteinhaber gesetzt."
-
-msgid "submission.copyrightOther.description"
-msgstr "Die Rechte am veröffentlichten Beitrag folgender Gruppe zuordnen."
-
-msgid "publication.unpublish"
-msgstr "Zurückziehen"
-
-msgid "publication.unpublish.confirm"
-msgstr "Sind sie sicher, dass dies nicht veröffentlicht werden soll?"
-
-msgid "publication.unschedule.confirm"
-msgstr ""
-"Sind sie sicher, dass dies nicht zur Veröffentlichung eingeplant werden soll?"
-
-msgid "publication.version.details"
-msgstr "Veröffentlichungsdetails für Version {$version}"
-
-msgid "submission.queries.production"
-msgstr "Diskussion zur Herstellung"
-
-msgid "publication.scheduledIn"
-msgstr ""
-"Für die Publikation in {$issueName} vorgesehen."
-
-msgid "publication.publish.confirmation"
-msgstr ""
-"Alle Vorraussetzungen für die Veröffentlichung sind erfüllt. Sind Sie "
-"sicher, dass Sie diesen Katalogeintrag publizieren möchten?"
-
-msgid "publication.publishedIn"
-msgstr "Veröffentlicht in {$issueName}."
-
-msgid "publication.required.issue"
-msgstr ""
-"Die Publikation muss einer Ausgabe zugewiesen werden, bevor sie publiziert "
-"werden kann."
-
-msgid "publication.inactiveSeries"
-msgstr "{$series} (Inaktiv)"
-
-msgid "publication.invalidSeries"
-msgstr "Die Reihe dieser Publikation konnte nicht gefunden werden."
-
-msgid "publication.catalogEntry.success"
-msgstr "Die Details des Katalogeintrags wurden aktualisiert."
-
-msgid "catalog.browseTitles"
-msgstr "{$numTitles} Titel"
-
-msgid "submission.list.viewEntry"
-msgstr "Eintrag ansehen"
-
-msgid "submission.list.orderingFeaturesSection"
-msgstr ""
-"Drag-and-drop oder klicken Sie die Hoch- und Runter-Pfeile um die Sortierung "
-"der Features in {$title} zu verändern."
-
-msgid "submission.list.saveFeatureOrder"
-msgstr "Sortierung speichern"
-
-msgid "submission.list.orderingFeatures"
-msgstr ""
-"Drag-and-drop oder klicken Sie die Hoch- und Runter-Pfeile um die Sortierung "
-"der Features auf der Homepage zu verändern."
-
-msgid "submission.list.orderFeatures"
-msgstr "Features sortieren"
-
-msgid "submission.list.itemsOfTotalMonographs"
-msgstr "{$count} von {$total} Monographien"
-
-msgid "submission.list.countMonographs"
-msgstr "{$count} Monographien"
-
-msgid "submission.list.monographs"
-msgstr "Monographien"
-
-msgid "section.any"
-msgstr "Beliebige Reihe"
-
-msgid "submission.metadataDescription"
-msgstr ""
-"Diese Spezifizierungen basieren auf dem Dublin Core Metadaten-Set. Dies ist "
-"ein internationaler Standard zur Beschreibung von Verlagsinhalten."
-
-msgid "submission.dependentFiles"
-msgstr "Unselbstständige Dateien"
-
-msgid "submission.catalogEntry.enableChapterPublicationDates"
-msgstr "Jedes Kapitel kann ein eigenes Publikationsdatum haben."
-
-msgid "submission.catalogEntry.disableChapterPublicationDates"
-msgstr "Alle Kapitel werden das Publikationsdatum der Monographie verwenden."
-
-msgid "submission.catalogEntry.chapterPublicationDates"
-msgstr "Publikationsdaten"
-
-msgid "submission.catalogEntry.viewSubmission"
-msgstr "Einreichung ansehen"
-
-msgid "submission.catalogEntry.selectionMissing"
-msgstr ""
-"Es muss mindestens eine Monographie ausgewählt werden, um sie dem Katalog "
-"hinzuzufügen."
-
-msgid "submission.catalogEntry.select"
-msgstr "Wählen Sie Monographien aus um sie dem Katalog hinzuzufügen"
-
-msgid "submission.catalogEntry.add"
-msgstr "Auswahl dem Katalog hinzufügen"
-
-msgid "submission.submit.noContext"
-msgstr "Der Verlag der Einreichung konnte nicht gefunden werden."
-
-msgid "author.submit.seriesRequired"
-msgstr "Eine gültige Reihe wird benötigt."
-
-msgid "author.isVolumeEditor"
-msgstr "Diese Person als Herausgeber/in des Bandes identifizieren."
-
-msgid "submission.chapter.pages"
-msgstr "Seiten"
-
-msgid "submission.authorListSeparator"
-msgstr "; "
-
-msgid "submission.editorName"
-msgstr "{$editorName} (Hrsg)"
-
-msgid "submission.workflowType.change"
-msgstr "Ändern"
-
-msgid "submission.workflowType.editedVolume.label"
-msgstr "Sammelband"
-
-msgid "chapter.volume"
-msgstr "Band"
-
-msgid "chapter.pages"
-msgstr "Seiten"
-
-msgid "submission.chapterCreated"
-msgstr " — Kapitel kreiert"
-
-msgid "submission.withoutChapter"
-msgstr "{$name} — Ohne dieses Kapitel"
-
-msgid "publication.chapter.hasLandingPage"
-msgstr ""
-"Dieses Kapitel auf einer eigenen Seite anzeigen, auf die vom "
-"Inhaltsverzeichnis der Publikation aus verlinkt wird."
-
-msgid "publication.chapter.landingPage"
-msgstr "Kapitelseite"
-
-msgid "publication.publish.success"
-msgstr "Der Publikationsstatus wurde erfolgreich verändert."
diff --git a/locale/el/admin.po b/locale/el/admin.po
new file mode 100644
index 00000000000..9d7dfb87dfd
--- /dev/null
+++ b/locale/el/admin.po
@@ -0,0 +1,157 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-11-28T15:10:05-08:00\n"
+"PO-Revision-Date: 2023-02-17 03:04+0000\n"
+"Last-Translator: Anonymous \n"
+"Language-Team: Greek \n"
+"Language: el\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 "admin.hostedContexts"
+msgstr "Φιλοξενούμενες Εκδόσεις"
+
+msgid "admin.settings.appearance.success"
+msgstr ""
+
+msgid "admin.settings.config.success"
+msgstr ""
+
+msgid "admin.settings.info.success"
+msgstr ""
+
+msgid "admin.settings.redirect"
+msgstr "Προώθηση σε URL της Έκδοσης"
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"Αιτήματα πρόσβασης στον κυρίως ιστότοπο της συλλογής θα προωθούνται στην "
+"ιστοσελίδα της έκδοσης. Αυτό μπορεί να φανεί χρήσιμο αν η συλλογή φιλοξενεί "
+"για παράδειγμα μόνο μία έκδοση."
+
+msgid "admin.settings.noPressRedirect"
+msgstr "Καμία προώθηση"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr ""
+"Αυτή θα είναι η εξ'ορισμού γλώσσα της συλλογής και των φιλοξενούμενων "
+"εκδόσεων."
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Επιλέξτε όλες τις τοπικές ρυθμίσεις που θέλετε να υποστηρίζονται στη "
+"συλλογή. Οι επιλεγμένες τοπικές ρυθμίσεις θα είναι διαθέσιμες για χρήση από "
+"όλες τις εκδόσεις της συλλογής, και θα εμφανίζονται σε ένα Μενού Επιλογής "
+"Γλώσσας στην ιστοσελίδα κάθε έκδοσης. Εάν δεν επιλεχθούν πολλαπλές τοπικές "
+"ρυθμίσεις, το παραπάνω Μενού Επιλογής Γλώσσας δεν θα εμφανίζεται και συνεπώς "
+"δεν θα είναι δυνατή η ρύθμιση της γλώσσας στις ιστοσελίδες των εκδόσεων."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "* Επιλεγμένες τοπικές ρυθμίσεις μπορεί να μην είναι ολοκληρωμένες."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"Είστε σίγουρος ότι θέλετε να απεγκαταστήσετε αυτή τη ρύθμιση; Αυτό θα "
+"επηρεάσει όσες φιλοξενούμενες εκδόσεις χρησιμοποιούν αυτή την ρύθμιση."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Επιλέξτε τις επιπρόσθετες τοπικές ρυθμίσεις που θέλετε να εγκαταστήσετε "
+"για να τις υποστηρίζει το σύστημα. Οι ρυθμίσεις πρέπει να εγκατασταθούν "
+"πριν χρησιμοποιηθούν από κάποια έκδοση. Δείτε την τεκμηρίωση του OMP για "
+"πληροφορίες και τεκμηρίωση σχετικά με την προσθήκη νέων γλωσσών."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"Είστε σίγουρος ότι επιθυμείτε να απενεργοποιήσετε αυτή την τοπική ρύθμιση; "
+"Αυτό θα επηρεάσει όσες φιλοξενούμενες εκδόσεις χρησιμοποιούν τη συγκεκριμένη "
+"ρύθμιση."
+
+msgid "admin.systemVersion"
+msgstr "OMP Έκδοση"
+
+msgid "admin.systemConfiguration"
+msgstr "Ρυθμίσεις OMP"
+
+msgid "admin.presses.pressSettings"
+msgstr "Ρυθμίσεις Έκδοσης"
+
+msgid "admin.presses.noneCreated"
+msgstr "Καμία Έκδοση δεν έχει δημιουργηθεί."
+
+msgid "admin.contexts.create"
+msgstr ""
+
+msgid "admin.contexts.form.titleRequired"
+msgstr ""
+
+msgid "admin.contexts.form.pathRequired"
+msgstr ""
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+
+msgid "admin.contexts.form.pathExists"
+msgstr ""
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr ""
+
+msgid "admin.contexts.form.create.success"
+msgstr ""
+
+msgid "admin.contexts.form.edit.success"
+msgstr ""
+
+msgid "admin.contexts.contextDescription"
+msgstr "Περιγραφή Έκδοσης"
+
+msgid "admin.presses.addPress"
+msgstr "Προσθήκη Έκδοσης"
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"ΣΗΜΕΙΩΣΗ!\n"
+"
Δεν ήταν δυνατή η αυτόματη αντικατάσταση του αρχείου ρυθμίσεων από το "
+"σύστημα. Για να εφαρμόσετε τις αλλαγές στις ρυθμίσεις πρέπει να ανοίξετε "
+"config.inc.php με κατάλληλο πρόγραμμα διόρθωσης κειμένων και να "
+"αντικαταστήσετε τα περιεχόμενα αυτού με τα περιεχόμενα του πεδίου κειμένου "
+"που βρίκεται παρακάτω.
"
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
+
+msgid "admin.siteManagement.description"
+msgstr ""
+
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr ""
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr ""
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+
+#~ msgid "admin.systemConfigurationDescription"
+#~ msgstr "Διαμόρφωση Ρυθμίσεων (Configuration) OMP από config.inc.php"
+
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr ""
diff --git a/locale/el/default.po b/locale/el/default.po
new file mode 100644
index 00000000000..b11d101b8f2
--- /dev/null
+++ b/locale/el/default.po
@@ -0,0 +1,319 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
+"PO-Revision-Date: 2019-11-28T15:10:06-08: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 "default.genres.appendix"
+msgstr "Παράρτημα"
+
+msgid "default.genres.bibliography"
+msgstr "Βιβλιογραφία"
+
+msgid "default.genres.manuscript"
+msgstr "Χειρόγραφο Βιβλίου"
+
+msgid "default.genres.chapter"
+msgstr "Χειρόγραφο Κεφαλαίου"
+
+msgid "default.genres.glossary"
+msgstr "Γλωσσάριο"
+
+msgid "default.genres.index"
+msgstr "Ευρετήριο"
+
+msgid "default.genres.preface"
+msgstr "Πρόλογος"
+
+msgid "default.genres.prospectus"
+msgstr "Πρόταση για έκδοση Βιβλίου (Prospectus)"
+
+msgid "default.genres.table"
+msgstr "Πίνακας"
+
+msgid "default.genres.figure"
+msgstr "Εικόνα/Figure"
+
+msgid "default.genres.photo"
+msgstr "Φωτογραφία"
+
+msgid "default.genres.illustration"
+msgstr "Εικόνογράφηση"
+
+msgid "default.genres.other"
+msgstr "Διάφορα"
+
+msgid "default.groups.name.manager"
+msgstr ""
+
+msgid "default.groups.plural.manager"
+msgstr ""
+
+msgid "default.groups.abbrev.manager"
+msgstr ""
+
+msgid "default.groups.name.editor"
+msgstr "Επιμελητής Έκδοσης"
+
+msgid "default.groups.plural.editor"
+msgstr "Επιμελητές Έκδοσης"
+
+msgid "default.groups.abbrev.editor"
+msgstr "PE"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Επιμελητής Σειράς"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Επιμελητές Σειράς"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "AcqE"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Συγγραφέας Κεφαλαίου"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Συγγραφείς Κεφαλαίου"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "CA"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Επιμελητής Έργου"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Επιμελητές Έργου"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "VE"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"Τα ονόματα και οι διευθύνσεις ηλεκτρονικού ταχυδρομείου που καταχωρούνται "
+"στις ιστοσελίδες των εκδόσεων της συλλογής θα χρησιμοποιούνται αποκλειστικά "
+"για τους καθορισμένους σκοπούς των υπηρεσίας μας και δεν θα διατίθεται για "
+"κανένα άλλο σκοπό ή σε κανένα τρίτο μέρος.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"Η συγκεκριμένη έκδοση παρέχει άμεση ανοικτή πρόσβαση στο περιεχόμενό της "
+"υποστηρίζοντας την αρχή της υποστήριξης της παγκόσμιας ανταλλαγής γνώσεων "
+"και καθιστώντας διαθέσιμη ελεύθερα στο κοινό τα αποτελέσματα της "
+"επιστημονικής έρευνας."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"Η χρήση της συλλογής είναι ελεύθερη και δωρεάν για όλους και δεν απαιτείται "
+"η χρήση κωδικού πρόσβασης. Ωστόσο, ενθαρρύνουμε τους αναγνώστες-χρήστες να "
+"εγγραφούν στην υπηρεσία ενημέρωσης για τις εκδόσεις της συλλογής μας. "
+"Επιλέξτε τον σύνδεσμο Εγγραφείτε στη κορυφή της αρχικής σελίδας των Εκδόσεων. Κάθε "
+"εγγεγραμμένος χρήστης θα λαμβάνει με email με τους Πίνακες Περιεχομένων κάθε "
+"νέας έκδοσης που δημοσιεύεται στη συλλογή. Επίσης, η λίστα των "
+"καταχωρημένων αναγνωστών-χρηστών επιτρέπει στην υπηρεσία και στις εκδόσεις "
+"της συλλογής να διαπιστώσουν το πραγματικό επίπεδο ανταπόκρισης και χρήσης. "
+"Ενημερωθείτε για την Πολιτική Προστασίας Προωπικών Δεδομένων "
+"της συλλογής, που διαβεβαιώνει ότι τα στοιχεία και τα email των χρηστών δεν "
+"θα χρησιμοποιηθούν για άλλους λόγους."
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"Ενδιαφέρεστε να πραγματοποιήσετε υποβολή στη συγκεκριμένη έκδοση; Σας "
+"συμβουλεύουμε να μελετήσετε τη σελίδα Σχετικά με την Έκδοση για τις πολιτικές των ενοτήτων της "
+"Έκδοσης, καθώς και τη σελίδαΟδηγίες για Συγγραφείς. Οι Συγγραφείς "
+"πρέπει να εγγραφούν "
+"στην έκδοση πριν από την υποβολή, ή στην περίπτωση που έχουν εγγραφεί, "
+"μπορούν απλά να συνδεθούν και να "
+"ξεκινήσουν τη διαδικασία με τα 5 βήματα"
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Βασική επιδίωξη και επιθυμία της συλλογής \"Τιμαία\" είναι καταχώρηση αυτής "
+"ή/και άλλων εκδόσεων της στις συλλογές ηλεκτρονικών εκδόσεων και πηγών "
+"πληροφόρησης των βιβλιοθηκών. Επίσης, είναι πιθανόν χρήσιμο να τονιστεί ότι "
+"το χρησιμοποιούμενο σύστημα ηλεκτρονικής δημοσίευσης της συλλογής Τιμαία, "
+"είναι ανοικτού κώδικα και μπορεί να χρησιμοποιηθεί από τις βιβλιοθήκες για "
+"τη φιλοξενία εκδόσεων ή/και την εξυπηρέτηση των μελών της ακαδημαϊκής "
+"κοινότητας που είναι μέλη της συντακτικής ομάδας μιας έκδοσης. (Διαβάστε "
+"περισσότερα για το Open Monograph Press"
+"a>)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Εξωτερικός Αξιολογητής"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Εξωτερικοί Αξιολογητές"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "ER"
+
+#~ msgid "default.groups.name.siteAdmin"
+#~ msgstr "Site Admin"
+
+#~ msgid "default.groups.plural.siteAdmin"
+#~ msgstr "Διαχειριστής Ιστοσελίδας"
+
+#~ msgid "default.groups.name.pressManager"
+#~ msgstr "Διαχειριστής Εκδόσεων"
+
+#~ msgid "default.groups.plural.pressManager"
+#~ msgstr "Διαχειριστές Εκδόσεων"
+
+#~ msgid "default.groups.abbrev.pressManager"
+#~ msgstr "PM"
+
+#~ msgid "default.groups.name.productionEditor"
+#~ msgstr "Επιμελητής Παραγωγής"
+
+#~ msgid "default.groups.plural.productionEditor"
+#~ msgstr "Επιμελητές Παραγωγής"
+
+#~ msgid "default.groups.abbrev.productionEditor"
+#~ msgstr "ProdE"
+
+#~ msgid "default.groups.name.copyeditor"
+#~ msgstr "Επιμελητής Κειμένων"
+
+#~ msgid "default.groups.plural.copyeditor"
+#~ msgstr "Επιμελητές Κειμένων"
+
+#~ msgid "default.groups.abbrev.copyeditor"
+#~ msgstr "CE"
+
+#~ msgid "default.groups.name.proofreader"
+#~ msgstr "Επιμελητής Τυπογραφικών Δοκιμίων"
+
+#~ msgid "default.groups.plural.proofreader"
+#~ msgstr "Επιμελητές Τυπογραφικών Δοκιμίων"
+
+#~ msgid "default.groups.abbrev.proofreader"
+#~ msgstr "PR"
+
+#~ msgid "default.groups.name.designer"
+#~ msgstr "Σχεδιαστής"
+
+#~ msgid "default.groups.plural.designer"
+#~ msgstr "Σχεδιαστές"
+
+#~ msgid "default.groups.abbrev.designer"
+#~ msgstr "Σχέδιο"
+
+#~ msgid "default.groups.name.internalReviewer"
+#~ msgstr "Εσωτερικός Αξιολογητής"
+
+#~ msgid "default.groups.plural.internalReviewer"
+#~ msgstr "Εσωτερικοί Αξιολογητές"
+
+#~ msgid "default.groups.abbrev.internalReviewer"
+#~ msgstr "IR"
+
+#~ msgid "default.groups.name.marketing"
+#~ msgstr "Υπεύθυνος Marketing και Πωλήσεων"
+
+#~ msgid "default.groups.plural.marketing"
+#~ msgstr "Υπεύθυνος Marketing και Πωλήσεων"
+
+#~ msgid "default.groups.abbrev.marketing"
+#~ msgstr "MS"
+
+#~ msgid "default.groups.name.funding"
+#~ msgstr "Υπεύθυνος Χρηματοδότησης"
+
+#~ msgid "default.groups.plural.funding"
+#~ msgstr "Υπεύθυνοι Χρηματοδότησης"
+
+#~ msgid "default.groups.abbrev.funding"
+#~ msgstr "FC"
+
+#~ msgid "default.groups.name.indexer"
+#~ msgstr "Ευρετηριαστής"
+
+#~ msgid "default.groups.plural.indexer"
+#~ msgstr "Ευρετηριαστές"
+
+#~ msgid "default.groups.abbrev.indexer"
+#~ msgstr "IND"
+
+#~ msgid "default.groups.name.layoutEditor"
+#~ msgstr "Επιμελητής Σελιδοποίησης"
+
+#~ msgid "default.groups.plural.layoutEditor"
+#~ msgstr "Επιμελητές Σελιδοποίησης"
+
+#~ msgid "default.groups.abbrev.layoutEditor"
+#~ msgstr "LE"
+
+#~ msgid "default.groups.name.author"
+#~ msgstr "Συγγραφέας"
+
+#~ msgid "default.groups.plural.author"
+#~ msgstr "Συγγραφείς"
+
+#~ msgid "default.groups.abbrev.author"
+#~ msgstr "AU"
+
+#~ msgid "default.groups.name.translator"
+#~ msgstr "Μεταφραστής"
+
+#~ msgid "default.groups.plural.translator"
+#~ msgstr "Μεταφραστές"
+
+#~ msgid "default.groups.abbrev.translator"
+#~ msgstr "Μεταφρ."
+
+#~ msgid "default.contextSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "Η υποβολή δεν έχει δημοσιευτεί εκ των προτέρων, ούτε έχει υποβληθεί σε "
+#~ "άλλες εκδόσεις για εξέταση (ή δεν έχει δοθεί εξήγηση στα Σχόλια προς τον "
+#~ "επιμελητή)."
+
+#~ msgid "default.contextSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "Το αρχείο υποβολής είναι σε μορφή αρχείου εγγράφου OpenOffice, Microsoft "
+#~ "Word ή RTF."
+
+#~ msgid "default.contextSettings.checklist.addressesLinked"
+#~ msgstr ""
+#~ "Όταν είναι διαθέσιμα, παρέχονται τα URL για πρόσβαση σε αναφορές online."
+
+#~ msgid "default.contextSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "Το κείμενο έχει μονό διάκενο, χρησιμοποιεί γραμματοσειρά μεγέθους 12, "
+#~ "χρησιμοποιεί όπου απαιτείται κείμενο σε πλάγια γραφή και όχι με "
+#~ "υπογράμμιση (εκτός από τις διευθύνσεις URL) και όλες οι εικόνες, τα "
+#~ "διαγράμματα και οι πίνακες τοποθετούνται εντός του κειμένου σε κατάλληλα "
+#~ "σημεία, και όχι στο τέλος αυτού."
+
+#~ msgid "default.contextSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "Το κείμενο τηρεί τις στιλιστικές και βιβλιογραφικές απαιτήσεις που "
+#~ "ορίζονται στις Οδηγίες προς τους συγγραφείς Οδηγίες προς Συγγραφείς, που βρίσκονται στο μενού \"Σχετικά με το "
+#~ "περιοδικό\"."
diff --git a/locale/el/editor.po b/locale/el/editor.po
new file mode 100644
index 00000000000..7cf8cdafc17
--- /dev/null
+++ b/locale/el/editor.po
@@ -0,0 +1,244 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
+"PO-Revision-Date: 2019-11-28T15:10:06-08: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 "editor.submissionArchive"
+msgstr "Αρχείο Υποβολών"
+
+msgid "editor.monograph.cancelReview"
+msgstr "Ακύρωση Αιτήματος"
+
+msgid "editor.monograph.clearReview"
+msgstr "Καθαρισμός Αξιολογητή"
+
+msgid "editor.monograph.enterRecommendation"
+msgstr "Εισαγωγή Εισήγησης"
+
+msgid "editor.monograph.enterReviewerRecommendation"
+msgstr "Εισαγωγή εισήγησης αξιολογητή"
+
+msgid "editor.monograph.recommendation"
+msgstr "Εισαγωγή Εισήγησης"
+
+msgid "editor.monograph.selectReviewerInstructions"
+msgstr ""
+"Επιλέξτε έναν από τους παραπάνω αξιολογητές και πατήστε \"Επιλογή Αξιολογητή"
+"\" για να συνεχίσετε."
+
+msgid "editor.monograph.replaceReviewer"
+msgstr "Αντικατάσταση Αξιολογητή"
+
+msgid "editor.monograph.editorToEnter"
+msgstr "Ο επιμελητής εισάγει συστάσεις/σχόλια για τον αξιολογητή"
+
+msgid "editor.monograph.uploadReviewForReviewer"
+msgstr "Ανέβασμα Αξιολόγησης"
+
+msgid "editor.monograph.peerReviewOptions"
+msgstr "Επιλογές αξιολόγησης απο ομότιμους αξιολογητές (Peer Review)"
+
+msgid "editor.monograph.selectProofreadingFiles"
+msgstr "Αρχεία επιμέλειας τυπογραφικών δοκιμίων"
+
+msgid "editor.monograph.internalReview"
+msgstr "Έναρξη Εσωτερικής Αξιολόγησης"
+
+msgid "editor.monograph.internalReviewDescription"
+msgstr ""
+"Είτε έτοιμοι να ξεκινήσετε ένα γύρο εσωτερικής αξιολόγησης για την υποβολή. "
+"Τα αρχεία που αποτελούν μέρος της υποβολής παρατίθενται παρακάτω και μπορούν "
+"να επιλεγούν για αξιολόγηση."
+
+msgid "editor.monograph.externalReview"
+msgstr "Έναρξη Εξωτερικής Αξιολόγησης"
+
+msgid "editor.monograph.final.selectFinalDraftFiles"
+msgstr "Επιλογή Αρχείων Τελικού Κειμένου"
+
+msgid "editor.monograph.final.currentFiles"
+msgstr "Τρέχοντα Αρχεία Τελικού Κειμένου"
+
+msgid "editor.monograph.copyediting.currentFiles"
+msgstr "Τρέχοντα Αρχεία"
+
+msgid "editor.monograph.copyediting.personalMessageToUser"
+msgstr "Μήνυμα σε χρήστη"
+
+msgid "editor.monograph.legend.submissionActions"
+msgstr "Ενέργεια Υποβολής"
+
+msgid "editor.monograph.legend.submissionActionsDescription"
+msgstr "Συνολικές ενέργειες και επιλογές υποβολής."
+
+msgid "editor.monograph.legend.sectionActions"
+msgstr "Ενέργειες Ενότητας (Section Actions)"
+
+msgid "editor.monograph.legend.sectionActionsDescription"
+msgstr ""
+"Επιλογές μιας συγκεκριμένης ενότητας, για παράδειγμα μεταφόρτωση αρχείων ή "
+"εγγραφή χρηστών."
+
+msgid "editor.monograph.legend.itemActions"
+msgstr "Ενέργειες Στοιχείου"
+
+msgid "editor.monograph.legend.itemActionsDescription"
+msgstr "Ενέργειες και επιλογές που αφορούν ένα συγκεκριμένο αρχείο."
+
+msgid "editor.monograph.legend.catalogEntry"
+msgstr ""
+"Προβολή και διαχείριση της καταχώρησης μιας υποβολής στον κατάλογο, "
+"συμπεριλαμβανομένων των μεταδεδομένων και των μορφότυπων δημοσίευσης."
+
+msgid "editor.monograph.legend.bookInfo"
+msgstr ""
+"Προβολή και διαχείριση των μεταδεδομένων, των σημειώσεων, κοινοποιήσεων και "
+"του ιστορικού μιας υποβολής"
+
+msgid "editor.monograph.legend.participants"
+msgstr ""
+"Προβολή και Διαχείριση των συμμετεχόντων της υποβολής: συγγραφείς, "
+"επιμελητές, σχεδιαστές, και άλλων"
+
+msgid "editor.monograph.legend.add"
+msgstr "Ανεβάστε ένα αρχείο στην ενότητα"
+
+msgid "editor.monograph.legend.add_user"
+msgstr "Προσθήκη χρήστη στην ενότητα"
+
+msgid "editor.monograph.legend.settings"
+msgstr ""
+"Προβολή και πρόσβαση στις ρυθμίσεις στοιχείου, όπως πληροφορίες και επιλογές "
+"αφαίρεσης"
+
+msgid "editor.monograph.legend.more_info"
+msgstr ""
+"Επιπλέον πληροφορίες: σημειώσεις αρχείου, επιλογές κοινοποίησης και ιστορικό"
+
+msgid "editor.monograph.legend.notes_none"
+msgstr ""
+"Πληροφορίες αρχείου: σημειώσεις, επιλογές κοινοποίησης και ιστορικό (Δεν "
+"έχουν προστεθεί σημειώσεις ακόμα)"
+
+msgid "editor.monograph.legend.notes"
+msgstr ""
+"Πληροφορίες αρχείου: σημειώσεις, επιλογές κοινοποίησης και ιστορικό (Οι "
+"σημειώσεις είναι διαθέσιμες)"
+
+msgid "editor.monograph.legend.notes_new"
+msgstr ""
+"Πληροφορίες αρχείου: σημειώσεις, επιλογές κοινοποίησης και ιστορικό (Νέες "
+"σημειώσεις προστέθηκαν κατά την τελευταία επίσκεψη)"
+
+msgid "editor.monograph.legend.edit"
+msgstr "Επεξεργασία στοιχείου"
+
+msgid "editor.monograph.legend.delete"
+msgstr "Διαγραφή στοιχείου"
+
+msgid "editor.monograph.legend.in_progress"
+msgstr "Ενέργεια σε εξέλιξη ή δεν έχει ολοκληρωθεί"
+
+msgid "editor.monograph.legend.complete"
+msgstr "Ολοκληρώθηκε"
+
+msgid "editor.monograph.legend.uploaded"
+msgstr "File uploaded by the role in the grid column title"
+
+msgid "editor.submission.introduction"
+msgstr ""
+"Σε μια υποβολή, ο επιμελητής έκδοσης (editor), μετά από διαβούλευση των "
+"αρχείων που έχουν υποβληθεί, προβαίνει στις ακόλουθες ενέργειες "
+"συμπεριλαμβανομένου και την ενημέρωση του συγγραφέα: αποστολή για εσωτερική "
+"αξιολόγηση (επιλέγοντας και τα αρχεία για εσωτερική αξιολόγηση), αποστολή "
+"για εξωτερική αξιολόγηση (επιλέγοντας και τα αρχεία για εξωτερική "
+"αξιολόγηση), αποδοχή υποβολής (συνεπάγεται και η επιλογή αρχείων για το "
+"στάδιο σύνταξης/δημοσίευσης) ή απόρριψη υποβολής (υποβολή στο αρχείο)."
+
+msgid "editor.monograph.editorial.fairCopy"
+msgstr "Τελικό Αντίγραφο"
+
+msgid "editor.monograph.proofs"
+msgstr "Τυπογραφικά Δοκίμια"
+
+msgid "editor.monograph.production.approvalAndPublishing"
+msgstr "Αποδοχή και Δημοσίευση"
+
+msgid "editor.monograph.production.approvalAndPublishingDescription"
+msgstr ""
+"Διαφορετικές μορφές εκδόσεων, όπως σκληρόδετο (hardcover), χαρτόδετο "
+"(softcover) και ψηφιακό, μπορούν να μεταφορτωθούν παρακάτω στην ενότητα "
+"Μορφότυπα Έκδοσης. Μπορείτε να χρησιμοποιήσετε το παρακάτω πλέγμα (grid) ως "
+"μια λίστα επιλογών για το τι απομένει να γίνει για να εκδοθεί μια μορφή "
+"έκδοσης του βιβλίου. (Different publication formats, such as hardcover, "
+"softcover and digital, can be uploaded in the Publication Formats section "
+"below. You can use the publication formats grid below as a checklist for "
+"what still needs to be done to publish a publication format)."
+
+msgid "editor.monograph.production.publicationFormatDescription"
+msgstr ""
+"Προσθέστε τα μορφότυπα έκδοσης (πχ. ψηφιακό, χαρτόδετο) τα οποία ο "
+"επιμελητής σελιδοποίησης ετοίμασε για τη διόρθωση τυπογραφικών δοκιμίων. Τα "
+"Τυπογραφικά Δοκίμια θα πρεπει να ελεγχθούν σύμφωνα με τα πρότυπα "
+"των εκδόσεων και η καταχώριση στον Κατάλογο πρέπει να είναι σύμφωνη "
+"με την εγκεκριμένη καταχώριση του βιβλίου, πριν να μπορεί ένα μορφότυπο να "
+"γίνει διαθέσιμο πχ. Δημοσιευμένο."
+
+msgid "editor.monograph.approvedProofs.edit"
+msgstr "Καθορισμός Όρων για Λήψη Αρχείων"
+
+msgid "editor.monograph.approvedProofs.edit.linkTitle"
+msgstr "Καθορισμός Όρων"
+
+msgid "editor.monograph.proof.addNote"
+msgstr "Προσθήκη Απάντησης"
+
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+
+msgid "editor.submissions.assignedTo"
+msgstr ""
+
+#~ msgid "editor.pressSignoff"
+#~ msgstr "Υπογραφή Εκδόσεων"
+
+#~ msgid "editor.monograph.editorial.fairCopyDescription"
+#~ msgstr ""
+#~ "Ο επιμελητής κειμένων μεταφορτώνει ένα διορθωμένο ή τελικό αντίγραφο της "
+#~ "υποβολής για έγκριση από τον επιμελητή έκδοσης, ώστε αυτό να σταλεί για "
+#~ "την παραγωγή του."
+
+#~ msgid "editor.internalReview.introduction"
+#~ msgstr ""
+#~ "Στην Εσωτερική Αξιολόγηση, ο επιμελητή έκδοσης αναθέτει τα αρχεία της "
+#~ "υποβολής στους εσωτερικούς αξιολογητές και βασίζεται στα αποτελέσματα της "
+#~ "αξιολόγησης τους, πριν επιλέξει τις κατάλληλες ενέργειες (στις οποίες "
+#~ "συμπεριλαμβάνεται η ενημέρωση του συγγραφέα): αίτηματα για αναθεωρήσεις "
+#~ "(οι αναθεωρήσεις ελέγχονται μόνο από τον επιμελητή έκδοσης), εκ νέου "
+#~ "υποβολή για αξιολόγηση (οι αναθεωρήσεις ξεκινούν ένα νέο γύρο "
+#~ "αξιολογήσεων), αποστολή αιτήματος για εξωτερική αξιολόγηση (συνεπάγεται "
+#~ "επιλογή αρχείων για εξωτερική αξιολόγηση), αποδοχή υποβολής (συνεπάγεται "
+#~ "επιλογή αρχείων για το στάδιο Σύνταξης) ή απόρριψη υποβολής (υποβολή στο "
+#~ "αρχείο)."
+
+#~ msgid "editor.externalReview.introduction"
+#~ msgstr ""
+#~ "Στην Εξωτερική Αξιολόγηση, ο επιμελητής έκδοσης αναθέτει τα αρχεία της "
+#~ "υποβολής στους εξωτερικούς αξιολογητές των εκδόσεων και βασίζεται στα "
+#~ "αποτελέσματα της αξιολόγησης τους, πριν επιλέξει τις κατάλληλες ενέργειες "
+#~ "(στις οποίες συμπεριλαμβάνεται η ενημέρωση του συγγραφέα): αίτηματα για "
+#~ "αναθεωρήσεις (οι αναθεωρήσεις ελέγχονται μόνο από τον επιμελητή "
+#~ "έκδοσης), εκ νέου υποβολή για αξιολόγηση (οι αναθεωρήσεις ξεκινούν ένα "
+#~ "νέο κύκλο αξιολογήσεων), αποδοχή υποβολής (συνεπάγεται επιλογή αρχείων "
+#~ "για το στάδιο Σύνταξης) ή απόρριψη υποβολής (υποβολή στο αρχείο)."
diff --git a/locale/el/emails.po b/locale/el/emails.po
new file mode 100644
index 00000000000..8770c034eba
--- /dev/null
+++ b/locale/el/emails.po
@@ -0,0 +1,437 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-12-03T14:14:06-08:00\n"
+"PO-Revision-Date: 2019-12-03T14:14:06-08: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 "emails.passwordResetConfirm.subject"
+msgstr "Επιβεβαίωση αλλαγής κωδικού πρόσβασης"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"Παραλάβαμε ένα αίτημα για επαναφορά (αλλαγή) του κωδικού πρόσβασής σας για "
+"τον ιστότοπο {$siteTitle} .
\n"
+"
\n"
+"Εάν δεν προωθήσατε εσείς το αίτημα αυτό, σας παρακαλούμε αγνοήστε το μήνυμα "
+"αυτό και ο κωδικός πρόσβασής δεν θα αλλάξει. Εάν επιθυμείτε να αλλάξετε τον "
+"κωδικό πρόσβασής σας, ακολουθήστε το παρακάτω URL.
\n"
+"
\n"
+"Αλλαγή του κωδικού πρόσβασής μου: {$passwordResetUrl}
\n"
+"
\n"
+"{$siteContactName}"
+
+msgid "emails.passwordReset.subject"
+msgstr ""
+
+msgid "emails.passwordReset.body"
+msgstr ""
+
+msgid "emails.userRegister.subject"
+msgstr "Εγγραφή χρήστη"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Είστε πλέον εγγεγραμμένος χρήστης των εκδόσεων {$contextName}. Το όνομα "
+"χρήστη και ο κωδικός πρόσβασής σας, που είναι απαραίτητα για όλες τις "
+"εργασίες σας με τη συγκεκριμένη έκδοση μέσω του ιστότοπου της, έχουν "
+"συμπεριληφθεί στο συγκεκριμένο μήνυμα. Ανά πάσα στιγμή, μπορείτε να "
+"καταργήσετε το όνομά σας από τη λίστα των χρηστών, επικοινωνώντας με το "
+"αρμόδιο προσωπικό.
\n"
+"
\n"
+"Όνομα χρήστη: {$recipientUsername}
\n"
+"Όνομα χρήστη: {$password}
\n"
+"
\n"
+"Σας ευχαριστούμε,
\n"
+"{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr ""
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+
+msgid "emails.userValidateSite.subject"
+msgstr ""
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Εγγραφή ως Αξιολογητής στις εκδόσεις {$contextName}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"Λαμβάνοντας υπόψη την αρτιότητα των γνώσεών σας, το όνομα σας καταχωρήθηκε "
+"αυτόματα στη βάση δεδομένων αξιολογητών για τις εκδόσεις {$contextName}. Το "
+"γεγονός αυτό δεν συνεπάγεται οποιαδήποτε μορφή δέσμευσης από μέρους σας, "
+"απλά προσφέρει τη δυνατότητα επικοινωνίας μαζί σας για πιθανή αξιολόγηση "
+"κάποιας υποβολής στο περιοδικό μας. Μόλις δεχτείτε πρόσκληση για αξιολόγηση, "
+"θα έχετε τη δυνατότητα να δείτε τον τίτλο και το απόσπασμα της υπό "
+"αξιολόγηση εργασίας, και θα βρίσκεστε πάντα σε θέση να αποδεχτείτε ή όχι την "
+"πρόσκληση. Ανά πάσα στιγμή, επίσης, μπορείτε να καταργήσετε το όνομά σας από "
+"τη λίστα των αξιολογητών.
\n"
+"
\n"
+"Το όνομα χρήστη και ο κωδικός πρόσβασης που σας παρέχεται, χρησιμοποιείται "
+"σε όλες τις αλληλεπιδράσεις με τις εκδόσεις μέσω του συγκεκριμένου "
+"ιστότοπου. Για παράδειγμα, μπορείτε να ενημερώσετε το προφίλ σας καθώς και "
+"τα ενδιαφέροντά σας σε σχέση με την αξιολόγηση.
\n"
+"
\n"
+"Όνομα Χρήστη: {$recipientUsername}
\n"
+"Κωδικός Πρόσβασης: {$password}
\n"
+"
\n"
+"Σας ευχαριστούμε,
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.subject"
+msgstr "Ανάθεση ομάδας εργασίας"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Στο πλαίσιο του ρόλου σας ως Επιμελητή, σας έχει ανατεθεί η παρακολούθηση "
+"της υποβολή, "{$submissionTitle}," στις εκδόσεις {$contextName} σε "
+"όλη τη διάρκεια της διαδικασίας επιμέλειας.
\n"
+"
\n"
+"URL Υποβολής: {$submissionUrl}
\n"
+"Όνομα χρήστη: {$recipientUsername}
\n"
+"
\n"
+"Thank you,"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Αίτημα αξιολόγησης εργασίας"
+
+#, fuzzy
+msgid "emails.reviewRequest.body"
+msgstr ""
+"Κύριε/α {$recipientName},
\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Θα σας παρακαλούσαμε να συνδεθείτε στον ιστότοπο των εκδόσεων Τιμαία μέχρι "
+"την {$responseDueDate} για να δηλώσετε αν θα αναλάβετε την αξιολόγηση ή όχι, "
+"καθώς και για να αποκτήσετε πρόσβαση στην υποβολή και για να καταχωρίσετε "
+"την αξιολόγησή σας και τις συστάσεις σας. Ο δικτυακός τόπος των εκδόσεων "
+"είναι
\n"
+"
\n"
+"Η προθεσμία ολοκλήρωσης της αξιολόγηση λήγει στις {$reviewDueDate}.
\n"
+"
\n"
+"URL υποβολής: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"Σας ευχαριστούμε εκ των προτέρων για την εξέταση του αιτήματός μας.
\n"
+"
\n"
+"
\n"
+"Με εκτίμηση,
\n"
+"{$signature}"
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr ""
+
+#, fuzzy
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr ""
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+
+msgid "emails.reviewCancel.subject"
+msgstr "Αίτημα για ακύρωση αξιολόγησης"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Θα θέλαμε να σας ενημερώσουμε ότι η συντακτική ομάδα αποφάσισε την ακύρωση "
+"του αιτήματός μας προς εσάς για την αξιολόγηση της εργασίας, ""
+"{$submissionTitle}," για τις εκδόσεις {$contextName}. Σας ζητούμε "
+"συγνώμη για την ενδεχόμενη αναστάτωση και ελπίζουμε να είναι δυνατή η "
+"μελλοντική βοήθειά σας για τη διαδικασία αξιολόγησης μιας εργασίας.
\n"
+"
\n"
+"Για οποιαδήποτε διευκρίνιση, παρακαλώ επικοινωνήστε μαζί μας"
+
+#, fuzzy
+msgid "emails.reviewReinstate.body"
+msgstr ""
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+
+msgid "emails.reviewDecline.subject"
+msgstr "Μη δυνατότητα πραγματοποίησης αξιολόγησης"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"Επιμελητές:
\n"
+"
\n"
+"Θα ήθελα να σας ενημερώσω ότι την τρέχουσα περίοδο, δυστυχώς δεν δύναμαι να "
+"αναλάβω την αξιολόγηση της εργασίας, "{$submissionTitle}," για τις "
+"εκδόσεις {$contextName}. Θα ήθελα να σας ευχαριστήσω για την εμπιστοσύνη σας "
+"και μη διστάσετε να επικοινωνήσετε μαζί μου ξανά στο μέλλον για μια πιθανή "
+"συνεργασία.
\n"
+"
\n"
+"{$senderName}"
+
+#, fuzzy
+msgid "emails.reviewRemind.subject"
+msgstr "Υπενθύμιση αξιολόγησης υποβολής"
+
+#, fuzzy
+msgid "emails.reviewRemind.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"JΤο μήνυμα αυτό αποτελεί μια απλή υπενθύμιση σχετικά με την αξιολόγηση της "
+"υποβολής, "{$submissionTitle}," για τις εκδόσεις {$contextName} "
+"που έχετε αναλάβει. Ελπίζουμε ότι η αξιολόγηση να είναι έτοιμη μέχρι την "
+"σχετική προθεσμία {$reviewDueDate}, και θα είμαστε ευγνώμονες να τη λάβουμε "
+"το συντομότερο δυνατό.
\n"
+"
\n"
+"Εάν για οποιοδήποτε λόγο δεν διαθέτετε το όνομα χρήστη και κωδικό πρόσβασης "
+"σας για τον ιστότοπο των εκδόσων e-books, μπορείτε να χρησιμοποιήσετε τον "
+"παρακάτω σύνδεσμο για να επαναφέρετε τον κωδικό πρόσβασης σας (το οποίο θα "
+"σας αποσταλεί με email μαζί με το όνομα χρήστη). {$passwordLostUrl}
\n"
+"
\n"
+"URL Υποβολής: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"Θα σας παρακαλούσαμε να μας επιβεβαιώσετε ότι είστε σε θέση να ολοκληρώσετε "
+"επιτυχώς την, τόσο σημαντική για τις εκδόσεις, εργασία της αξιολόγησης . "
+"Ελπίζουμε να λάβουμε σύντομα την απάντησή σας.
\n"
+"
\n"
+"{$signature}"
+
+#, fuzzy
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Το μήνυμα αυτό αποτελεί μια απλή υπενθύμιση σχετικά με την αξιολόγηση της "
+"υποβολής, "{$submissionTitle}," για τις εκδόσεις {$contextName} "
+"που έχετε αναλάβει. Ελπίζουμε ότι η αξιολόγηση να είναι έτοιμη μέχρι την "
+"σχετική προθεσμία {$reviewDueDate}. Λάβετε υπόψη σας ότι το μήνυμα αυτό "
+"δημιουργήθηκε αυτόματα και αποστέλλεται μετά την πάροδο της ημερομηνίας "
+"αυτής. Παρόλα αυτά θα είμαστε ευγνώμονες να λάβουμε την αξιολόγησή σας το "
+"συντομότερο δυνατό.
\n"
+"
\n"
+"IΕάν για οποιοδήποτε λόγο δεν διαθέτετε το όνομα χρήστη και κωδικό πρόσβασης "
+"σας για τον ιστότοπο της Τιμαίας, μπορείτε να χρησιμοποιήσετε τον παρακάτω "
+"σύνδεσμο για να επαναφέρετε τον κωδικό πρόσβασης σας (το οποίο θα σας "
+"αποσταλλεί με email μαζί με το όνομα χρήστη). {$passwordLostUrl}
\n"
+"
\n"
+"URL Υποβολής: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Θα σας παρακαλούσαμε να μας επιβεβαιώσετε ότι είστε σε θέση να ολοκληρώσετε "
+"επιτυχώς την, τόσο σημαντική για το περιοδικό, εργασία της αξιολόγησης . "
+"Ελπίζουμε να λάβουμε σύντομα την απάντησή σας.
\n"
+"
\n"
+"{$contextSignature}"
+
+#, fuzzy
+msgid "emails.editorDecisionAccept.subject"
+msgstr "Απόφαση Επιμελητή"
+
+#, fuzzy
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+"{$authors}:
\n"
+"
\n"
+"Σχετικά με την υποβολή σας στις εκδόσεις {$contextName}, με τίτλο ""
+"{$submissionTitle}" θα θέλαμε να σας ενημερώσουμε :
\n"
+"
\n"
+"
\n"
+"
\n"
+"URL Εργασίας: {$submissionUrl}
\n"
+"Username: {$recipientUsername}"
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr ""
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr ""
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+
+#, fuzzy
+msgid "emails.layoutRequest.subject"
+msgstr "Αίτημα σελιδοποίησης"
+
+#, fuzzy
+msgid "emails.layoutRequest.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Στο στάδιο αυτό θα πρέπει να δημιουργηθούν τα κατάλληλα τυπογραφικά δοκίμια "
+"για την υποβολή με τίτλο "{$submissionTitle}" των εκδόσεων "
+"{$contextName} ακολουθώντας τα παρακάτω βήματα:
\n"
+"
\n"
+"1. Κάντε κλικ στο URL της υποβολής που βρίσκεται παρακάτω.
\n"
+"2. Συνδεθείτε στις εκδόσεις και χρησιμοποιήστε το αρχείο της Έκδοσης "
+"Σελιδοποίησης για τη δημιουργία των εντύπων σύμφωνα με τα πρότυπα του "
+"περιοδικού.
\n"
+"3. Αποστείλατε το μήνυμα ΟΛΟΚΛΗΡΩΜΕΝΟ στον επιμελητή.
\n"
+"
\n"
+"{$contextName} URL: {$contextUrl}
\n"
+"Submission URL: {$submissionUrl}
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"Εάν δεν μπορείτε να αναλάβετε τη συγκεκριμένη εργασία αυτή τη στιγμή ή έχετε "
+"απορίες, επικοινωνήστε μαζί μας. Ευχαριστούμε για την συμβολή σας σε αυτή "
+"την έκδοση."
+
+#, fuzzy
+msgid "emails.layoutComplete.subject"
+msgstr "Ολοκλήρωση δημιουργίας σελιδοποιημένων δοκιμίων"
+
+#, fuzzy
+msgid "emails.layoutComplete.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Τα σελιδοποιημένα δοκίμια για την εργασία με τίτλο, "{$submissionTitle},"
+"" για τις εκδόσεις {$contextName} είναι έτοιμα για την προετοιμασία των "
+"τυπογραφικών δοκιμίων.
\n"
+"
\n"
+"Εάν έχετε απορίες, επικοινωνήστε μαζί μου.
\n"
+"
\n"
+"{$senderName}"
+
+msgid "emails.indexRequest.subject"
+msgstr "Αίτημα Ευρετηρίασης"
+
+msgid "emails.indexRequest.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Στο στάδιο αυτό της υποβολής με τίτλο "{$submissionTitle}" για τις "
+"εκδόσεις {$contextName} θα πρέπει να γίνει η Ευρετηρίαση της ακολουθώντας τα "
+"παρακάτω βήματα:
\n"
+"1. Κάντε κλικ στο URL υποβολής που βρίσκεται παρακάτω.
\n"
+"2. 2. Συνδεθείτε στις εκδόσεις και χρησιμοποιήστε το αρχείο του Τυπογραφικού "
+"Δοκιμίου για τη δημιουργία εκτυπωμένων κειμένων σύμφωνα με τα πρότυπα των "
+"εκδόσεων.
\n"
+"3. Αποστείλατε το μήνυμα ΟΛΟΚΛΗΡΩΜΕΝΟ στον επιμελητή.
\n"
+"
\n"
+"{$contextName} URL: {$contextUrl}
\n"
+"URL Υποβολής: {$submissionUrl}
\n"
+"όνομα Χρήστη: {$recipientUsername}
\n"
+"
\n"
+"Εάν δεν μπορείτε να αναλάβετε την συγκεκριμένη εργασία αυτή τη στιγμή ή "
+"έχετε απορίες, επικοινωνήστε μαζί μας. Ευχαριστούμε για την συμβολή σας στη "
+"συγκεκριμένη έκδοση.
\n"
+"
\n"
+"{$signature}"
+
+msgid "emails.indexComplete.subject"
+msgstr "Ολοκλήρωση Ευρετηρίασης"
+
+msgid "emails.indexComplete.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Η ευρετηρίαση της εργασίας με τίτλο , "{$submissionTitle}," για "
+"τις εκδόσεις {$contextName} έχει ολοκληρωθεί και είναι έτοιμη για την "
+"προετοιμασία των τυπογραφικών δοκιμίων.
\n"
+"
\n"
+"Εάν έχετε απορίες, επικοινωνήστε μαζί μου.
\n"
+"
\n"
+"{$signatureFullName}"
+
+msgid "emails.emailLink.subject"
+msgstr "E-book πιθανού ενδιαφέροντος"
+
+msgid "emails.emailLink.body"
+msgstr ""
+"Ίσως να σας ενδιαφέρει το κείμενο με τίτλο "{$submissionTitle}" "
+"του/των {$authors} που δημοσιεύτηκε στον Τομ. {$volume}, No {$number} "
+"({$year}) των εκδόσεων {$contextName} στον σύνδεσμο "{$submissionUrl}"
+""."
+
+msgid "emails.emailLink.description"
+msgstr ""
+"Το συγκεκριμένο πρότυπο μηνύματος email παρέχει σε εγγεγραμμένο αναγνώστη τη "
+"δυνατότητα αποστολής πληροφοριών σχετικά με μία έκδοση σε οποιονδήποτε "
+"μπορεί να έχει εκδηλώσει ενδιαφέρον. Είναι διαθέσιμο μέσω των Εργαλείων "
+"ανάγνωσης και πρέπει να ενεργοποιηθεί από Υπεύθυνο διαχείρισης των εκδόσεων "
+"στη σελίδα Διαχείρισης εργαλείων ανάγνωσης."
+
+msgid "emails.notifySubmission.subject"
+msgstr "Ειδοποίηση Υποβολής"
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+"Έχετε μια νέα ειδοποίηση από {$sender} σχετικά με την έκδοση ""
+"{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}"
+
+msgid "emails.notifySubmission.description"
+msgstr ""
+"A notification from a user sent from a submission information center modal."
+
+msgid "emails.notifyFile.subject"
+msgstr "Ειδοποίηση Αρχείου Υποβολής"
+
+msgid "emails.notifyFile.body"
+msgstr ""
+"Έχετε ένα νέο μήνυμα {$sender} σχετικά με το αρχείο "{$fileName}" "
+"της έκδοσης "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}"
+
+msgid "emails.notifyFile.description"
+msgstr "A notification from a user sent from a file information center modal"
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr ""
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+
+msgid "emails.announcement.subject"
+msgstr ""
+
+msgid "emails.announcement.body"
+msgstr ""
+
+#~ msgid "emails.userValidate.subject"
+#~ msgstr "Επικύρωση λογαριασμού"
+
+#~ msgid "emails.userValidate.body"
+#~ msgstr ""
+#~ "{$recipientName}
\n"
+#~ "
\n"
+#~ "
\n"
+#~ "Έχετε δημιουργήσει λογαριασμό στις εκδόσεις {$contextName}, αλλά πριν "
+#~ "αρχίσετε να το χρησιμοποιείται, πρέπει να επικυρώσετε τον λογαριασμό του "
+#~ "ηλεκτρονικού σας ταχυδρομείου. Για να την επικύρωση, ακολουθήστε τον "
+#~ "παρακάτω σύνδεσμο:
\n"
+#~ "
\n"
+#~ "{$activateUrl}
\n"
+#~ "
\n"
+#~ "Σας ευχαριστούμε,
\n"
+#~ "{$signature}"
+
+#~ msgid "emails.userValidate.description"
+#~ msgstr ""
+#~ "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται σε νέους "
+#~ "χρήστες για να τους καλωσορίσει στο σύστημα και να τους στείλει το όνομα "
+#~ "χρήστη και τον κωδικό πρόσβασής τους."
diff --git a/locale/el/locale.po b/locale/el/locale.po
new file mode 100644
index 00000000000..731fa2a3bab
--- /dev/null
+++ b/locale/el/locale.po
@@ -0,0 +1,1783 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
+"PO-Revision-Date: 2019-11-28T15:10:06-08: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 "common.payments"
+msgstr ""
+
+msgid "monograph.audience"
+msgstr "Κοινό"
+
+msgid "monograph.audience.success"
+msgstr ""
+
+msgid "monograph.coverImage"
+msgstr "Εικόνα Εξωφύλλου"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Προσδιορισμός Εύρος Κοινού"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Εύρος Κοινού (από)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Εύρος Κοινού (σε)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "Εύρος Κοινού (ακριβής)"
+
+msgid "monograph.languages"
+msgstr "Γλώσσες (Αγγλικά, Γαλλικά, Ισπανικά)"
+
+msgid "monograph.publicationFormats"
+msgstr "Μορφές Δημοσίευσης"
+
+msgid "monograph.publicationFormat"
+msgstr ""
+
+msgid "monograph.publicationFormatDetails"
+msgstr ""
+
+msgid "monograph.miscellaneousDetails"
+msgstr ""
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Μορφότυπα:"
+
+msgid "monograph.type"
+msgstr "Τύπος Υποβολής"
+
+msgid "submission.pageProofs"
+msgstr "Σελίδα Τυπογραφικών Δοκιμίων"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"Ο επιμελητής σελιδοποίησης ανεβάζει τα αρχεία για το στάδιο-παραγωγής που "
+"έχουν ετοιμαστεί για δημοσίευση εδώ. Επιλέξτε +Ανάθεση για να "
+"ορίσετε συγγραφείς και άλλους να διορθώσουν και να ελέγξουν τα τυπογραφικά "
+"δοκίμια ώστε τα διορθωμένα αρχεία να μεταφορτωθούν για έγκριση πριν τη "
+"δημοσίευση."
+
+msgid "monograph.task.addNote"
+msgstr "Προσθήκη Ανάθεσης"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Ανοικτή Πρόσβαση"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Αποτύπωμα (Λογότυπο)/ imprint"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Αριθμός Σελίδων"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Πρώτες Σελίδες"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Πίσω Σελίδες"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Σύνθεση Προϊόντος"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Λεπτομέρειες Προϊόντος (δεν απαιτείται)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Κωδικός Προϊόντος"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Τιμή"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "Μία τιμή απαιτείται"
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Τύπος Τιμής"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Ποσοστό Έκπτωσης, κατα περίπτωση"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Διαθεσιμότητα Προϊόντος"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Δείκτης Επιστρεφόμενων"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Ψηφιακές Πληροφορίες"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Φυσικές Διαστάσεις"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr ""
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "Μέγεθος Αρχείου σε Mbytes"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "Εισαγωγή δικής σας τιμής για το μέγεθος του αρχείου?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Ύψος"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Πάχος"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Βάρος"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Πλάτος"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "Χώρα Κατασκευής"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Digital Technical Protection"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Περιοχή Διανομής Προϊόντος"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Φορολογικός Συντελεστής"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Τύπος Φορολογίας"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+"Συμπεριλάβετε τα μεταδεδομένα του μορφότυπου της έκδοσης στην καταχώρηση του "
+"βιβλίου στον κατάλογο."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Λείπουν αγορές και τιμές"
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Λείπει ο κωδικός ταυτοπίοιησης (identification code)."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Λείπουν ορισμένα πεδία μεταδεδομένων."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+"Ο τύπος αρχείου της έκδοσης που έχετε επιλέξει δεν υπάρχει πλέον για αυτή "
+"τη μονογραφία.
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Ετικέτα Μορφότυπου ανοικτής δημοσίευσης."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Μορφότυπο Δημοσίευσης"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "Απαιτείται όνομα"
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "Σας παρακαλούμε εισάγεται μια έγκυρη τιμή."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Λεπτομέρειες Μορφότυπου"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Physical format"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr ""
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr ""
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "Απαιτείται ένα id της μονογραφίας."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Ένα μορφότυπο της έκδοσης πρέπει να επιλεγεί."
+
+msgid "grid.catalogEntry.availability"
+msgstr ""
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Διαθέσιμο"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr ""
+
+msgid "grid.catalogEntry.proof"
+msgstr "Τυπογραφικό Δοκίμιο"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr ""
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Έγκριση Μορφότυπου"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Αυτό το μορφότυπο θα γίνει τώρα διαθέσιμο στους αναγνώστες, μέσω "
+"αρχείων διαθέσιμων για λήψη που θα εμφανίζονται με την καταχώρηση του "
+"βιβλίου στον κατάλογο και/ή μέσω περαιτέρω ενεργειών από τις εκδόσεις για τη "
+"διανομή του βιβλίου.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Αυτό το μορφότυπο δεν διατίθεται πλεόν στους αναγνώστες, μέσω "
+"αρχείων διαθέσιμων για λήψη που προηγούμένως εμφανίζονταν με την καταχώρηση "
+"του βιβλίου στον κατάλογο και/ή μέσω περαιτέρω ενεργειών από τις εκδόσεις "
+"για τη διανομή του βιβλίου.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "Η καταχώρηση στον κατάλογο δεν έγινε αποδεκτή"
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "Το μορφότυπο δεν είναι καταχωρημένο στον κατάλογο"
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Το τυπογραφικό δοκίμιο δεν έγινε αποδεκτό"
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr ""
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "Απαιτείται μέγεθος αρχείου για τα ψηφιακά μορφότυπα."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "Απαιτείται κωδικός διαθεσιμότητας για το προϊόν."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "Απαιτείται να επιλέξετε έναν κωδικό σύνθεσης του προϊόντος."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Κωδικοποιημένες Τιμές (Code Value)"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "Τύπος Κωδικού ONIX"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "Απαιτείται ένας κωδικός."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "Απαιτείται μία τιμή."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Δικαιώματα Πώλησης"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Κωδικοποιημένες Τιμές (Code Value)"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Τύπος Δικαιωμάτων Πώλησης"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "Υπόλοιπος κόσμος?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Επιλέξτε αυτό το κουτάκι για να καταχωρήσετε τα Δικαιώματα Πώλησης σε όλα τα "
+"μορφότυπα σας. Δεν χρειάζεται να επιλεγούν Χώρες και Περιοχές σε αυτή την "
+"περίπτωση."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr ""
+"Υπάρχει ήδη ένας τύπος πωλήσεων για τον υπόλοιπο κόσμο καθορισμένος για το "
+"μορφότυπο της έκδοσης."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Χώρες"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Περιοχές"
+
+msgid "grid.catalogEntry.included"
+msgstr "Συμπεριλαμβάνεται"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Εξαιρούνται"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Περιοχές Αγοράς"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Περιοχές"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Ημερομηνίες Έκδοσης"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Απαιτείται ένας ρόλος αντιπροσώπου."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "Απαιτείται Μορφή Ημερομηνίας."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Ημερομηνία"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Ρόλος"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Μορφή Ημερομηνίας"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"Απαιτείται ημερομηνία και η τιμή της πρέπει να ταιριάζει με το επιλεγμένο "
+"μορφότυπο."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Αντιπρόσωποι"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Τύπος αντιπροσώπου (Representative Type)"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Πράκτορες (Agents)"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Προμηθευτές"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Πράκτορας"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"Μπορείτε να αναθέσετε σε έναν πράκτορα να σας αντιπροσωπεύσει σε αυτή την "
+"περιοχή. Δεν απαιτείται."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Προμηθευτής"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Επιλέξτε έναν ρόλο:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Ρόλος"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Όνομα"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Τηλέφωνο"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "Email"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Ιστότοπος"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "Αναγνωριστικό Αντιπροσώπου"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Τύπος αναγνωριστικού Αντιπροσώπου (συστήνεται GLN)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"Μπορείτε να αφήσετε την επόμενη ενότητα κενή εάν εσείς παρέχετε τις "
+"υπηρεσίες στους πελάτες σας."
+
+msgid "grid.action.addRepresentative"
+msgstr "Προσθήκη Αντοπροσώπου"
+
+msgid "grid.action.editRepresentative"
+msgstr "Επεξεργασία του Αντιπροσώπου"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Διαγραφή του Αντιπροσώπου"
+
+msgid "spotlight"
+msgstr ""
+
+msgid "spotlight.spotlights"
+msgstr "Βιτρίνα"
+
+msgid "spotlight.noneExist"
+msgstr "Δεν υπάρχουν τρέχουσες καταχωρήσεις στη Βιτρίνα."
+
+msgid "spotlight.title.homePage"
+msgstr "Στη βιτρίνα"
+
+msgid "spotlight.author"
+msgstr "Συγγραφέας,"
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Spotlight Item"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Αρχική σελίδα"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Τοποθεσία Βιτρίνας"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Εισαγωγή Τίτλου Βιτρίνας (autocomplete)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Τίτλος Βιτρίνας"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Βιβλίο"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "Απαιτείται ένα τεκμήριο."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "Απαιτείται τίτλος Βιτρίνας"
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Παρακαλούμε επιλέξτε μια τοποθεσία της Βιτρίνας"
+
+msgid "grid.action.editSpotlight"
+msgstr "Επεξεργασία αυτής της Βιτρίνας"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Διαγραφής αυτής της Βιτρίνας"
+
+msgid "grid.action.addSpotlight"
+msgstr "Προσθήκη στη Βιτρίνα"
+
+msgid "manager.series.open"
+msgstr "Ανοικτές Υποβολές"
+
+msgid "manager.series.indexed"
+msgstr "Έχει ευρετηριαστεί"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Αρχεία"
+
+msgid "grid.action.catalogEntry"
+msgstr "Προβολή φόρμας καταχώρησης στον κατάλογο"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "Μορφότυπο που εμφανίζεται στην κατχώρηση στον κατάλογο"
+
+msgid "grid.action.editFormat"
+msgstr "Επεξεργασία αυτού του μορφότυπου"
+
+msgid "grid.action.deleteFormat"
+msgstr "Διαγραφή αυτού του μορφότυπου"
+
+msgid "grid.action.addFormat"
+msgstr "Προσθήκη μορφότυπου δημοσίευσης"
+
+msgid "grid.action.approveProof"
+msgstr ""
+"Έγκριση του τυπογραφικού δοκιμίου για ευρετηρίαση και ένταξη του στον "
+"κατάλογο."
+
+msgid "grid.action.pageProofApproved"
+msgstr ""
+"Το αρχείο με τις σελίδες τυπογραφικού δοκιμίου είναι έτοιμο για δημοσίευση"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Νέα Καταχώριση στον Κατάλογο"
+
+msgid "grid.action.publicCatalog"
+msgstr "Προβολή αυτού του στοιχείου στον κατάλογο"
+
+msgid "grid.action.feature"
+msgstr "Εναλλαγή εμφάνισης στα προτεινόμενα βιβλία"
+
+msgid "grid.action.featureMonograph"
+msgstr "Εμφάνιση στο καρουσέλ του καταλόγου"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Επισήμανση της υποβολής στις \"νέες κυκλοφορίες\""
+
+msgid "grid.action.manageCategories"
+msgstr "Ρυθμίσεις κατηγοριών για αυτές τις εκδόσεις"
+
+msgid "grid.action.manageSeries"
+msgstr "Ρυθμίσεις σειρών για αυτές τις εκδόσεις"
+
+msgid "grid.action.addCode"
+msgstr "Προσθήκη Κωδικού"
+
+msgid "grid.action.editCode"
+msgstr "Επεξεργασία Κωδικού"
+
+msgid "grid.action.deleteCode"
+msgstr "Διαγραφή Κωδικού"
+
+msgid "grid.action.addRights"
+msgstr "Προσθήκη Δικαιωμάτων Πώλησης"
+
+msgid "grid.action.editRights"
+msgstr "Επεξεργασία των Διακαιωμάτων"
+
+msgid "grid.action.deleteRights"
+msgstr "Διαγραφή των Δικαιωμάτων"
+
+msgid "grid.action.addMarket"
+msgstr "Προσθήκη Αγοράς (Market)"
+
+msgid "grid.action.editMarket"
+msgstr "Επεξεργασία Αγοράς"
+
+msgid "grid.action.deleteMarket"
+msgstr "Διαγραφή Αγοράς"
+
+msgid "grid.action.addDate"
+msgstr "Προσθήκη ημερομηνίας δημοσίευσης"
+
+msgid "grid.action.editDate"
+msgstr "Επεξεργασία ημερομηνίας"
+
+msgid "grid.action.deleteDate"
+msgstr "Διαγραφή της ημερομηνία"
+
+msgid "grid.action.createContext"
+msgstr ""
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Προβολή ετικέτας του μορφότυπου δημοσίευσης"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Πήγαινε στη σελίδα ανακοινώσεων των εκδόσεων"
+
+msgid "grid.action.submissionEmail"
+msgstr "Επιλέξτε για να διαβάσετε αυτό το email"
+
+msgid "grid.action.approveProofs"
+msgstr "Προβολή πλέγματος (grid) τυπογραφικών δοκιμίων"
+
+msgid "grid.action.proofApproved"
+msgstr "Έχει γίνει το τυπογραφικό δοκίμιο αυτού του μορφότυπου."
+
+msgid "grid.action.availableRepresentation"
+msgstr "Αποδοχή/απόριψη αυτού του μορφότυπου"
+
+msgid "grid.action.formatAvailable"
+msgstr "Το μορφότυπο είναι διαθέσιμο και έχει δημοσιευθεί"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Προσθήκη Συνημμένου για Αξιολόγηση"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Διαθέσιμα Αρχεία"
+
+msgid "series.series"
+msgstr "Σειρές"
+
+msgid "series.featured.description"
+msgstr "Αυτή η σειρά θα εμφανιστεί στο κύριο μενού πλοήγησής"
+
+msgid "series.path"
+msgstr "Διαδρομή"
+
+msgid "catalog.manage"
+msgstr "Διαχείριση Καταλόγου"
+
+msgid "catalog.manage.newReleases"
+msgstr "Νέες Κυκλοφορίες"
+
+msgid "catalog.manage.category"
+msgstr "Κατηγορία"
+
+msgid "catalog.manage.series"
+msgstr "Σειρές"
+
+msgid "catalog.manage.series.issn"
+msgstr ""
+
+msgid "catalog.manage.series.issn.validation"
+msgstr ""
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr ""
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr ""
+
+msgid "catalog.manage.series.printIssn"
+msgstr ""
+
+msgid "catalog.selectSeries"
+msgstr "Επιλέξτε Σειρά"
+
+msgid "catalog.selectCategory"
+msgstr "Επιλέξτε Κατηγορία"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"Οι εικόνες με τα εξώφυλλα των επιλεγμένων βιβλίων εμφανίζεται στο πάνω μέρος "
+"της αρχικής σελίδας με τη δυνατότητα περιστροφής των εικόνων (carousel). "
+"Επιλέξτε 'Εμφάνιση', έπειτα επιλέξτε το αστέρι για τη προσθήκη του βιβλίου "
+"στο carousel, το εικονίδιο με το θαυμαστικό για την εμφάνιση του στις νέες "
+"κυκλοφορίες. Σύρετε και αφήστε την εικόνα για να αλλάξετε τη σειρά."
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Επιλέξτε 'Εμφάνιση', έπειτα το αστέρι για την επιλογή εμφάνισης του βιβλίου "
+"σε αυτή την κατηγορία. Σύρετε και αφήστε την εικόνα για να αλλάξετε τη σειρά."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Επιλέξτε 'Εμφάνιση', έπειτα το αστέρι για την επιλογή εμφάνισης του βιβλίου "
+"σε αυτή τη Σειρά, σύρετε και αφήστε την εικόνα για να αλλάξετε τη σειρά "
+"εμφάνισης. Οι Σειρές αναγνωρίζονται από τον/ους επιμελητή/ες και έναν τίτλο "
+"σειράς, μέσα σε μια κατηγορία ή ανεξάρτητα."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Carousel"
+
+msgid "catalog.manage.newRelease"
+msgstr "Νέες Κυκλοφορίες"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Διαχείριση Σειρών"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Διαχείριση Κατηγοριών"
+
+msgid "catalog.manage.noMonographs"
+msgstr "Δεν υπάρχουν ανατιθέμενες μονογραφίες."
+
+msgid "catalog.manage.featured"
+msgstr ""
+
+msgid "catalog.manage.categoryFeatured"
+msgstr ""
+
+msgid "catalog.manage.seriesFeatured"
+msgstr ""
+
+msgid "catalog.manage.featuredSuccess"
+msgstr ""
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr ""
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr ""
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr ""
+
+msgid "catalog.manage.feature.newRelease"
+msgstr ""
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr ""
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr ""
+
+msgid "catalog.manage.nonOrderable"
+msgstr ""
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr ""
+
+msgid "catalog.manage.isFeatured"
+msgstr ""
+
+msgid "catalog.manage.isNotFeatured"
+msgstr ""
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr ""
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr ""
+
+msgid "catalog.manage.findSubmissions"
+msgstr ""
+
+msgid "catalog.noTitles"
+msgstr ""
+
+msgid "catalog.noTitlesNew"
+msgstr ""
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
+
+msgid "catalog.feature"
+msgstr "Εμφάνιση"
+
+msgid "catalog.featured"
+msgstr ""
+
+msgid "catalog.featuredBooks"
+msgstr "Προτεινόμενα βιβλία"
+
+msgid "catalog.foundTitleSearch"
+msgstr ""
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+
+msgid "catalog.category.heading"
+msgstr ""
+
+msgid "catalog.newReleases"
+msgstr ""
+
+msgid "catalog.dateAdded"
+msgstr "Προστέθηκε"
+
+msgid "catalog.publicationInfo"
+msgstr "Πληροφορίες Έκδοσης"
+
+msgid "catalog.published"
+msgstr ""
+
+msgid "catalog.forthcoming"
+msgstr ""
+
+msgid "catalog.categories"
+msgstr ""
+
+msgid "catalog.parentCategory"
+msgstr ""
+
+msgid "catalog.category.subcategories"
+msgstr ""
+
+msgid "catalog.aboutTheAuthor"
+msgstr ""
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+
+msgid "catalog.sortBy"
+msgstr ""
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr ""
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr ""
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr ""
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr ""
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr ""
+
+msgid "catalog.viewableFile.title"
+msgstr ""
+
+msgid "catalog.viewableFile.return"
+msgstr ""
+
+msgid "submission.search"
+msgstr ""
+
+msgid "common.publication"
+msgstr ""
+
+msgid "common.publications"
+msgstr ""
+
+msgid "common.prefix"
+msgstr "Πρόθημα"
+
+msgid "common.preview"
+msgstr "Προεπισκόπηση"
+
+msgid "common.feature"
+msgstr "Προβολή"
+
+msgid "common.searchCatalog"
+msgstr "Αναζήτηση στον κατάλογο"
+
+msgid "common.moreInfo"
+msgstr "Περισσότερες Πληροφορίες"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Παρακαλούμε συμπληρώστε όλα τα πεδία της φόρμας."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Παρακαλούμε κάνετε μια έγκυρη επιλογή από τη λίστα."
+
+msgid "common.listbuilder.itemExists"
+msgstr "Δεν μπορείτε να προσθέσετε το ίδιο στοιχείο δύο φορές."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Κεφαλίδα Ιστοσελίδας"
+
+msgid "navigation.catalog"
+msgstr "Κατάλογος"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Πολιτική Συγκουόμενων Συμφερόντων"
+
+msgid "navigation.catalog.allMonographs"
+msgstr ""
+
+msgid "navigation.catalog.manage"
+msgstr "Διαχείριση"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Διαχείριση"
+
+msgid "navigation.catalog.administration"
+msgstr "Διαχείριση Καταλόγου"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Κατηγορίες"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Σειρές"
+
+msgid "navigation.infoForAuthors"
+msgstr "Για Συγγραφείς"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Για Βιβλιοθηκονόμους"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Πληροφορίες για Συγγραφείς"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Πληροφορίες για Βιβλιοθηκονόμους"
+
+msgid "navigation.newReleases"
+msgstr "Νέες Κυκλοφορίες"
+
+msgid "navigation.published"
+msgstr "Δημοσιευμένα"
+
+msgid "navigation.wizard"
+msgstr "Οδηγός"
+
+msgid "navigation.linksAndMedia"
+msgstr "Σύνδεσμοι και Κοινωνικά Μέσα"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr ""
+
+msgid "navigation.skip.spotlights"
+msgstr ""
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr ""
+
+msgid "navigation.navigationMenus.series.description"
+msgstr ""
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr ""
+
+msgid "navigation.navigationMenus.category.description"
+msgstr ""
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr ""
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr ""
+
+msgid "context.contexts"
+msgstr "Εκδόσεις"
+
+msgid "context.context"
+msgstr ""
+
+msgid "context.current"
+msgstr ""
+
+msgid "context.select"
+msgstr ""
+
+msgid "user.authorization.representationNotFound"
+msgstr ""
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr ""
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Υποβολή μιας πρότασης"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr ""
+"Υποβολή μιας Μονογραφίας: η εγγραφή Συγγραφέα είναο προς το παρόν "
+"απενεργοποιημένη."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Εγγραφείτε ως Αξιολογητής"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+"Εγγραφείτε ως Αξιολογητής: Η εγγραφή αξιολογητών είναι προς το παρόν "
+"απενεργοποιημένη"
+
+msgid "user.reviewerPrompt"
+msgstr ""
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr ""
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+
+msgid "user.register.contextsPrompt"
+msgstr ""
+
+msgid "user.register.otherContextRoles"
+msgstr ""
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+
+msgid "user.role.manager"
+msgstr "Διαχειριστής Εκδόσεων"
+
+msgid "user.role.pressEditor"
+msgstr "Επιμελητής Εκδόσεων"
+
+msgid "user.role.subEditor"
+msgstr "Επιμελητής Σειράς"
+
+msgid "user.role.copyeditor"
+msgstr "Επιμελητής Κειμένων"
+
+msgid "user.role.proofreader"
+msgstr "Επιμελητής Τυπογραφικών Δοκιμίων"
+
+msgid "user.role.productionEditor"
+msgstr "Επιμελητής Παραγωγής"
+
+msgid "user.role.managers"
+msgstr "Διαχειριστές Εκδόσεων"
+
+msgid "user.role.subEditors"
+msgstr "Επιμελητές Σειράς"
+
+msgid "user.role.editors"
+msgstr "Επιμελητές"
+
+msgid "user.role.copyeditors"
+msgstr "Επιμελητές Κειμένων"
+
+msgid "user.role.proofreaders"
+msgstr "Επιμελητές Τυπογραφικών Δοκιμίων"
+
+msgid "user.role.productionEditors"
+msgstr "Επιμελητές Παραγωγής"
+
+msgid "user.register.selectContext"
+msgstr "Επιλέξτε μια έκδοση για να εγγραφείτε"
+
+msgid "user.register.noContexts"
+msgstr ""
+"Δεν υπάρχουν εκδόσεις στις οποίες μπορείτε να εγγραφείτε στον ιστότοπο αυτό."
+
+msgid "user.register.privacyStatement"
+msgstr "Πολιτική Προστασίας Προσωπικών Δεδομένων"
+
+msgid "user.register.registrationDisabled"
+msgstr "Οι εκδόσεις αυτές προς το παρόν δεν αποδέχεται εγγραφές χρηστών."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr ""
+"Ο κωδικός πρόσβασης που εισάγατε περιέχει λιγότερους χαρακτήρες από τον "
+"ελάχιστο επιτρεπτό αριθμό χαρακτήρων."
+
+msgid "user.register.readerDescription"
+msgstr ""
+"Θα ενημερώνεστε με μήνυμα ηλεκτρονικού ταχυδρομείου όταν μια μονογραφία "
+"δημοσιεύεται."
+
+msgid "user.register.authorDescription"
+msgstr "Δυνατότητα υποβολής εργασιών στις εκδόσεις."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "Επιθυμία για συμμετοχή στην αξιολόγηση υποβολών στις Εκδόσεις"
+
+msgid "user.register.reviewerDescription"
+msgstr "Επιθυμία για συμμετοχή στην αξιολόγηση υποβολών στις Εκδόσεις."
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+"Προσδιορίστε τα ενδιαφέροντα αξιολόγησης (θεματικές περιοχές και ερευνητικές "
+"μέθοδοι)"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Πρέπει να επιλέξετε τουλάχιστον ένα ρόλο"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+
+msgid "site.noPresses"
+msgstr ""
+
+msgid "site.pressView"
+msgstr "Προβολή ιστοσελίδας εκδόσεων"
+
+msgid "about.pressContact"
+msgstr "Επικοινωνία"
+
+msgid "about.aboutContext"
+msgstr ""
+
+msgid "about.editorialTeam"
+msgstr "Συντακτική ομάδα"
+
+msgid "about.editorialPolicies"
+msgstr "Πολιτικές έκδοσης"
+
+msgid "about.focusAndScope"
+msgstr "Επίκεντρο και Σκοπός"
+
+msgid "about.seriesPolicies"
+msgstr "Πολιτικές σειρών και κατηγοριών"
+
+msgid "about.submissions"
+msgstr "Υποβολές"
+
+msgid "about.onlineSubmissions"
+msgstr "Online υποβολές"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Συνδεθείτε"
+
+msgid "about.onlineSubmissions.register"
+msgstr ""
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr ""
+"Η εγγραφή και η σύνδεση είναι απαραίτητες για την online υποβολή τεκμηρίων "
+"και για έλεγχο της κατάστασης των υποβολών σας."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr ""
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr ""
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr ""
+
+msgid "about.authorGuidelines"
+msgstr "Οδηγίες προς συγγραφείς"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Λίστα ελέγχου προετοιμασίας υποβολής"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"Ως μέρος της διαδικασίας υποβολής, είναι απαραίτητο οι συγγραφείας να "
+"ελέγχουν τη συμμόρφωση της υποβολής με όλα τα ακόλουθα τεκμήρια, ενώ οι "
+"υποβολές που δεν τηρούν τις Οδηγίες για τους συγγραφείς μπορεί να "
+"επιστραφούν στους συγγραφείς."
+
+msgid "about.copyrightNotice"
+msgstr "Ενημέρωση για τα πνευματικά δικαιώματα"
+
+msgid "about.privacyStatement"
+msgstr "Πολιτική Προστασίας Προσωπικών Δεδομένων"
+
+msgid "about.reviewPolicy"
+msgstr "Διαδικασία αξιολόγησης από ομότιμους αξιολογητές"
+
+msgid "about.publicationFrequency"
+msgstr "Συχνότητα δημοσίευσης"
+
+msgid "about.openAccessPolicy"
+msgstr "Πολιτική Ανοικτής Πρόσβασης"
+
+msgid "about.pressSponsorship"
+msgstr "Χορηγοί Εκδόσεων"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr "Σχετικά με το Open Publishing System"
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "OMP Διαδικασία Επιμέλειας και Δημοσίευσης"
+
+msgid "about.aboutSoftware"
+msgstr ""
+
+#, fuzzy
+msgid "about.aboutOMPPress"
+msgstr ""
+"Οι εκδόσεις αυτές χρησιμοποιούν το Open Monograph Press {$ompVersion}, το "
+"οποίο είναι ένα λογισμικό διαχείρισης και δημοσίευσης εκδόσεων (βιβλίων) "
+"ανοικτού κώδικα, που έχει αναπτυχθεί, υποστηρίζεται και διανέμεται ελεύθερα "
+"από το Public Knowledge Project κάτω από "
+"την αδειοδότηση GNU General Public License."
+
+#, fuzzy
+msgid "about.aboutOMPSite"
+msgstr ""
+"Ο ιστότοπος αυτός χρησιμοποιεί το Open Monograph Press {$ompVersion}, το "
+"οποίο είναι ένα λογισμικό διαχείρισης και δημοσίευσης εκδόσεων (βιβλίων) "
+"ανοικτού κώδικα, που έχει αναπτυχθεί, υποστηρίζεται και διανέμεται ελεύθερα "
+"από το Public Knowledge Project κάτω από "
+"την αδειοδότηση GNU General Public License."
+
+msgid "help.searchReturnResults"
+msgstr "Επιστροφή στα αποτελέσματα της αναζήτησης"
+
+msgid "help.goToEditPage"
+msgstr "Ανοίξτε μια νέα σελίδα για να επεξεργαστείτε αυτές τις πληροφορίες"
+
+msgid "installer.appInstallation"
+msgstr "OMP Installation"
+
+msgid "installer.ompUpgrade"
+msgstr "OMP Upgrade"
+
+msgid "installer.installApplication"
+msgstr "Install Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+
+#, fuzzy
+msgid "installer.installationInstructions"
+msgstr ""
+"Thank you for downloading the Public Knowledge Project's Open "
+"Monograph Press {$version}. Before proceeding, please read the README file included with this software. "
+"For more information about the Public Knowledge Project and its software "
+"projects, please visit the PKP web site. If you have bug reports or technical support inquiries "
+"about Open Monograph Press, see the support forum or visit PKP's online bug reporting system. Although "
+"the support forum is the preferred method of contact, you can also email the "
+"team at pkp.contact@gmail.com."
+"p>\n"
+"\n"
+"
Upgrade
\n"
+"\n"
+"If you are upgrading an existing installation of OMP, click here to proceed.
"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Pre-Installation Steps"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. The following files and directories (and their contents) must be made "
+"writable:
\n"
+"\n"
+"\t- config.inc.php is writable (optional): {$writable_config}"
+"li>\n"
+"\t
- public/ is writable: {$writable_public}
\n"
+"\t- cache/ is writable: {$writable_cache}
\n"
+"\t- cache/t_cache/ is writable: {$writable_templates_cache}
\n"
+"\t- cache/t_compile/ is writable: {$writable_templates_compile}"
+"li>\n"
+"\t
- cache/_db is writable: {$writable_db_cache}
\n"
+"
\n"
+"\n"
+"2. A directory to store uploaded files must be created and made writable "
+"(see \"File Settings\" below).
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"OMP Version {$version}
\n"
+"\n"
+"Thank you for downloading the Public Knowledge Project's Open "
+"Monograph Press. Before proceeding, please read the README and UPGRADE files included with this software. For more information about "
+"the Public Knowledge Project and its software projects, please visit the PKP web site. If you have "
+"bug reports or technical support inquiries about Open Monograph Press, see "
+"the support forum "
+"or visit PKP's online bug reporting system. Although the support forum is the preferred "
+"method of contact, you can also email the team at pkp.contact@gmail.com.
\n"
+"It is strongly recommended that you back up your "
+"database, files directory, and OMP installation directory before proceeding."
+"
\n"
+"If you are running in PHP Safe Mode, please ensure that the "
+"max_execution_time directive in your php.ini configuration file is set to a "
+"high limit. If this or any other time limit (e.g. Apache's \"Timeout\" "
+"directive) is reached and the upgrade process is interrupted, manual "
+"intervention will be required.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"For complete Unicode (UTF-8) support, select UTF-8 for all character set "
+"settings. Note that this support currently requires a MySQL >= 4.1.1 or "
+"PostgreSQL >= 7.1 database server. Please also note that full Unicode "
+"support requires the mbstring library (enabled by default in most recent PHP "
+"installations). You may experience problems using extended character sets if "
+"your server does not meet these requirements.\n"
+"
\n"
+"Your server currently supports mbstring: {$supportsMBString}"
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"Your server currently allows file uploads: {$allowFileUploads}"
+"strong>"
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"Your server currently allows a maximum file upload size of: "
+"{$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"Η κύρια γλώσσα για χρήση από το συγκεκριμένο σύστημα. Ανατρέξτε στα έγγραφα "
+"τεκμηρίωσης του OMP, εάν επιθυμείτε να υποστηρίξετε γλώσσες που δεν "
+"περιλαμβάνονται εδώ."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Επιλογή άλλων πρόσθετων γλωσσών για υποστήριξη στο συγκεκριμένο σύστημα. Οι "
+"γλώσσες αυτές θα είναι διαθέσιμες για χρήση από εκδόσεις που φιλοξενούνται "
+"στον ιστότοπο. Πρόσθετες γλώσσες μπορούν να εγκαταστασθούν ανά πάσα στιγμή "
+"από τη διεπαφή διαχείρισης. Γλώσσες που μαρκάρονται με * ίσως να μην είναι "
+"ολοκληρωμένες."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Enter full pathname to an existing directory where uploaded files are to be "
+"kept. This directory should not be directly web-accessible. Please "
+"ensure that this directory exists and is writable prior to installation."
+"strong> Windows path names should use forward slashes, e.g. \"C:/mypress/"
+"files\"."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"OMP requires access to a SQL database to store its data. See the system "
+"requirements above for a list of supported databases. In the fields below, "
+"provide the settings to be used to connect to the database."
+
+msgid "installer.upgradeApplication"
+msgstr ""
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"IMPORTANT!
\n"
+"The installer could not automatically overwrite the configuration file. "
+"Before attempting to use the system, please open config.inc.php in "
+"a suitable text editor and replace its contents with the contents of the "
+"text field below.
"
+
+#, fuzzy
+msgid "installer.installationComplete"
+msgstr ""
+"Installation of OMP has completed successfully.
\n"
+"To begin using the system, login with the "
+"username and password entered on the previous page.
\n"
+"If you wish to receive news and updates, please register at http://pkp.sfu.ca/"
+"omp/register. If you have questions or comments, please visit "
+"the support forum."
+"
"
+
+#, fuzzy
+msgid "installer.upgradeComplete"
+msgstr ""
+"Upgrade of OMP to version {$version} has completed successfully.
\n"
+"Don't forget to set the \"installed\" setting in your config.inc.php "
+"configuration file back to On.
\n"
+"If you haven't already registered and wish to receive news and updates, "
+"please register at http://pkp.sfu.ca/omp/register. If you have "
+"questions or comments, please visit the support forum.
"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"Η ημερομηνία προθεσμίας για τον γύρο αξιολόγησης {$round} της υποβολής "
+"{$monographId} από τον/ην {$reviewerName} έχει οριστεί η {$dueDate}."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"Ο/Η {$reviewerName} έχει απορρίψει τον γύρο αξιολόγησης {$round} για την "
+"υποβολή {$monographId}."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"Ο/Η {$reviewerName} έχει αποδεχτεί τον γύρο αξιολόγησης {$round} για την "
+"υποβολή {$monographId}."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"Ο/Η {$editorName} έχει επισημάνει το αίτημα για το γύρο αξιολόγησης {$round} "
+"για την υποβολή {$monographId} ως ανεξέταστο."
+
+msgid "log.editor.decision"
+msgstr ""
+"Μια απόφαση επιμελητή ({$decision}) για τη μονογραφία {$submissionId} "
+"καταγράφηκε από τον/ην {$editorName}."
+
+msgid "log.editor.recommendation"
+msgstr ""
+
+msgid "log.editor.archived"
+msgstr "Η υποβολή {$monographId} αρχειοθετήθηκε."
+
+msgid "log.editor.restored"
+msgstr "Η υποβολή {$monographId} επανατοποθετήθηκε στη σειρά αναμονής."
+
+msgid "log.editor.editorAssigned"
+msgstr ""
+"Ο/Η {$editorName} έχει αναλάβει ως επιμελητής της υποβολής {$monographId}."
+
+msgid "log.proofread.assign"
+msgstr ""
+"Ο/Η{$assignerName} ανέθεσε στον/ην {$proofreaderName} την επιμέλεια του "
+"τυπογραφικού δοκιμίου της υποβολής {$monographId}."
+
+msgid "log.proofread.complete"
+msgstr "Ο/Η {$proofreaderName} υπέβαλλε το {$monographId} για προγραμματισμό."
+
+msgid "log.imported"
+msgstr "Ο/Η {$userName} έχει εισάγει τη μονογραφία {$monographId}."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Ο κωδικός ταυτοποίησης (Identification Code) έχει προστεθεί."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Ο κωδικός ταυτοποίησης (Identification Code) επεξεργάστηκε."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Ο κωδικός ταυτοποίησης (Identification Code) έχει αφαιρεθεί."
+
+msgid "notification.addedPublicationDate"
+msgstr "Η ημερομηνία έκδοσης έχει προστεθεί."
+
+msgid "notification.editedPublicationDate"
+msgstr "Η ημερομηνία έκδοσης έχει επεξεργαστεί."
+
+msgid "notification.removedPublicationDate"
+msgstr "Η ημερομηνία έκδοσης έχει αφαιρεθεί."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Το μορφότυπο (Format) της έκδοσης έχει προστεθεί."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Το μορφότυπο (Format) της έκδοσης έχει επεξεργαστεί."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Το μορφότυπο (Format) της έκδοσης έχει αφαιρεθεί."
+
+msgid "notification.addedSalesRights"
+msgstr "Τα Δικαιώματα Πώλησης έχουν προστεθεί."
+
+msgid "notification.editedSalesRights"
+msgstr "Τα Δικαιώματα Πώλησης έχουν επεξεργαστεί."
+
+msgid "notification.removedSalesRights"
+msgstr "Τα Δικαιώματα Πώλησης έχουν αφαιρεθεί."
+
+msgid "notification.addedRepresentative"
+msgstr "Ο Αντιπρόσωπος έχει προστεθεί."
+
+msgid "notification.editedRepresentative"
+msgstr "Ο Αντιπρόσωπος έχει επεξεργαστεί."
+
+msgid "notification.removedRepresentative"
+msgstr "Ο Αντιπρόσωπος έχει αφαιρεθεί."
+
+msgid "notification.addedMarket"
+msgstr "Η Αγορά έχει προστεθεί."
+
+msgid "notification.editedMarket"
+msgstr "Τα στοιχεία της Αγοράς έχουν επεξεργαστεί."
+
+msgid "notification.removedMarket"
+msgstr "Η Αγορά έχει αφαιρεθεί."
+
+msgid "notification.addedSpotlight"
+msgstr "Η Βιτρίνα έχει προστεθεί."
+
+msgid "notification.editedSpotlight"
+msgstr "Η Βιτρίνα έχει επεξεργαστεί."
+
+msgid "notification.removedSpotlight"
+msgstr "Η Βιτρίνα έχει αφαιρεθεί."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Τα μεταδεδομένα του Καταλόγου έχουν αποθηκευτεί."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Τα μεταδεδομένα του μορφότυπου της έκδοσης έχουν αποθηκευτεί."
+
+msgid "notification.proofsApproved"
+msgstr "Το Τυπογραφικό δοκίμιο έχει εγκριθεί."
+
+msgid "notification.removedSubmission"
+msgstr "Η Υποβολή έχει διαγραφεί."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Μια νέα μονογραφία, \"{$title},\" έχει υποβληθεί."
+
+msgid "notification.type.editing"
+msgstr "Διόρθωση Γεγονότων"
+
+msgid "notification.type.reviewing"
+msgstr "Γεγονότα Αξιολόγησης"
+
+msgid "notification.type.site"
+msgstr "Γεγονότα Ιστοτόπου"
+
+msgid "notification.type.submissions"
+msgstr "Γεγονότα Υποβολής"
+
+msgid "notification.type.userComment"
+msgstr "Ένας αναγνώστης έχει κάνει ένα σχόλιο για το \"{$title}\"."
+
+msgid "notification.type.public"
+msgstr ""
+
+msgid "notification.type.editorAssignmentTask"
+msgstr ""
+"Μία νέα μονογραφία έχει υποβληθεί και έιναι απαραίτητο να ανατεθεί σε έναν "
+"επιμελητή."
+
+msgid "notification.type.copyeditorRequest"
+msgstr "Έχετε κληθεί να θεωρήσετε την επιμέλεια κειμένων για το \"{$file}\"."
+
+msgid "notification.type.layouteditorRequest"
+msgstr ""
+"Έχετε κληθεί να θεωρήσετε την επιμέλεια σελιδοποίησης για το \"{$title}\"."
+
+msgid "notification.type.indexRequest"
+msgstr "Έχετε κληθεί να ευρετηριάσετε το \"{$title}\"."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Η διαδικασία εσωτερικής αξιολόγησης έχει ξεκινήσει."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Αυτή η υποβολή αναμένει πρόσφατα για Καταχώριση στον Κατάλογο πριν αυτή "
+"εμφανιστεί δημόσια στον κατάλογο."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "Εν αναμονή έγκρισης."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "Καμία μέθοδος πληρωμής εισφορών δεν έχει ρυθμιστεί."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"Μία διαμορφωμένη μέθοδος πληρωμής εισφορών απαιτείται πριν είστε σε θέση να "
+"καθορίσετε τις ρυθμίσεις για ηλεκτρονικό εμπόριο (e-commerce)."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Διαχείριση Καταλόγου"
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+"Η πρόσβαση δεν είναι δυνατή επειδή δεν φαίνεται να είστε έγκυρος ως "
+"αναθεωρητής για αυτή τη μονογραφία."
+
+msgid "user.authorization.monographAuthor"
+msgstr ""
+"Η πρόσβαση δεν είναι δυνατή επειδή δεν φαίνεται να είστε ο συγγραφέας για "
+"αυτή τη μονογραφία."
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"Η πρόσβαση δεν είναι δυνατή επειδή δεν φαίνεται να σας έχει ανατεθεί η "
+"αξιολόγηση για αυτή τη μονογραφία."
+
+msgid "user.authorization.monographFile"
+msgstr ""
+"Έχετε απαγορεύσει την πρόσβαση στο συγκεκριμένο αρχείο της μονογραφίας."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "Μη έγκυρη μονογραφία ή δεν έχει ζητηθεί η μονογραφία!"
+
+msgid "user.authorization.noContext"
+msgstr ""
+
+msgid "user.authorization.seriesAssignment"
+msgstr ""
+"Προσπαθείτε να αποκτήσετε πρόσβαση σε μια μονογραφία που δεν είναι μέρος της "
+"σειράς που επιμελείστε."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr ""
+"Η πρόσβαση δεν είναι δυνατή! Δεν έχετε ανάθεση σε αυτό το στάδιο της ροής "
+"εργασιών."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"Η πρόσβαση δεν είναι δυνατή! Η ομάδα χρηστών που πρόσφατα ενεργείτε μέσω "
+"αυτής δεν έχει ζητηθεί σε αυτό το στάδιο ροής εργασιών. Παρακαλούμε ελέγξτε "
+"τις ρυθμίσεις των εκδόσεων."
+
+msgid "payment.directSales"
+msgstr "Λήψη αρχείου (Download) από τον Ιστότοπο των Εκδόσεων"
+
+msgid "payment.directSales.price"
+msgstr "Τιμή"
+
+msgid "payment.directSales.availability"
+msgstr "Διαθεσιμότητα"
+
+msgid "payment.directSales.catalog"
+msgstr "Κατάλογος"
+
+msgid "payment.directSales.approved"
+msgstr "Έχει εγκριθεί"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Τιμή ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr ""
+
+msgid "payment.directSales.directSales"
+msgstr "Άμεσες Πωλήσεις"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Δεν είναι δυνατή η λήψη του αρχείου"
+
+msgid "payment.directSales.notSet"
+msgstr ""
+
+msgid "payment.directSales.openAccess"
+msgstr "Ανοικτή Πρόσβαση"
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"Τα μορφότυπα των αρχείων μπορεί να είναι διαθέσιμα για λήψη από τον ιστότοπο "
+"των εκδόσεων μέσω ανοικτής πρόσβασης χωρίς κόστος για τους αναγνώστες ή "
+"χωρίς άμεσες πωλήσεις (χρησιμοποιόντας μια online μέθοδο πληρωμής, όπως έχει "
+"ρυθμιστεί στη Διανομή). Για το αρχείο αυτό υποδείξτε την αρχή πρόσβασης."
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Απαιτείται ένας έγκυρος αριθμός τιμής."
+
+msgid "payment.directSales.purchase"
+msgstr "Αγορά ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Κατέβασμα"
+
+msgid "payment.directSales.monograph.name"
+msgstr "Αγορά Λήψης Αρχείου Μονογραφίας ή Κεφαλαίου"
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+"Αυτή η συναλλαγή αφορά την αγορά άμεσης λήψης μιας μονογραφίας ή ενός "
+"κεφαλαίου μιας μονογραφίας."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+"Η επαναφόρτωση XML βοηθάει τη χαρτογράφηση του αρχείου {$filename} για την "
+"αναζήτηση {$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr ""
+
+msgid "submission.pdf.download"
+msgstr ""
+
+msgid "user.profile.form.showOtherContexts"
+msgstr ""
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr ""
+
+msgid "submission.round"
+msgstr "Γύρος {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr ""
+
+msgid "catalog.coverImageTitle"
+msgstr ""
+
+msgid "grid.catalogEntry.chapters"
+msgstr ""
+
+msgid "search.results.orderBy.article"
+msgstr ""
+
+msgid "search.results.orderBy.author"
+msgstr ""
+
+msgid "search.results.orderBy.date"
+msgstr ""
+
+msgid "search.results.orderBy.monograph"
+msgstr ""
+
+msgid "search.results.orderBy.press"
+msgstr ""
+
+msgid "search.results.orderBy.popularityAll"
+msgstr ""
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr ""
+
+msgid "search.results.orderBy.relevance"
+msgstr ""
+
+msgid "search.results.orderDir.asc"
+msgstr ""
+
+msgid "search.results.orderDir.desc"
+msgstr ""
+
+#~ msgid "monograph.coverImage.uploadInstructions"
+#~ msgstr ""
+#~ "Βεβαιωθείτε ότι το ύψος της εικόνας δεν είναι μεγαλύτερο από το 150% του "
+#~ "πλάτους της, διαφορετικά η εικόνα του εξωφύλλου σας δεν θα εμφανίζεται "
+#~ "στο carousel των εκδόσεων της συλλογής."
+
+#~ msgid "grid.content.spotlights.category.sidebar"
+#~ msgstr "Πλευρική μπάρα"
+
+#~ msgid "series.featured"
+#~ msgstr "Featured"
+
+#~ msgid "grid.series.urlWillBe"
+#~ msgstr ""
+#~ "Το URL της σειράς θα είναι {$sampleUrl}. Η 'διαδρομή' είναι μια σειρά "
+#~ "χαρακτήρων μέσω της οποίας αναγνωρίζεται μοναδικά η σειρά."
+
+#~ msgid "catalog.manage.homepage"
+#~ msgstr "Αρχική σελίδα"
+
+#~ msgid "catalog.manage.managementIntroduction"
+#~ msgstr ""
+#~ "Καλως ήρθατε στη σελίδα διαχείρισης του Καταλόγου. Από αυτή τη σελίδα "
+#~ "μπορείτε να δημοσιεύσετε νέες καταχωρήσεις βιβλίων στον Κατάλογο, να "
+#~ "αναθεωρήσετε και να ρυθμίσετε τη λίστα με τα Προτεινόμενα Βιβλία, να "
+#~ "αναθεωρήσετε και να ρυθμίσετε τη λίστα με τις Νέες Κυκλοφορίες, καθώς και "
+#~ "να αναθεωρήσετε και να καταχωρήσετε τα βιβλία σας ανά Κατηγορία και Σειρά"
+
+#~ msgid "catalog.manage.entryDescription"
+#~ msgstr ""
+#~ "Για να εμφανιστεί ένα βιβλίο στον κατάλογο, επιλέξτε την καρτέλα "
+#~ "Μονογραφία και συμπληρώστε τις απαραίτητες πληροφορίες. Πληροφορίες για "
+#~ "κάθε μορφότυπο του βιβλίου μπορεί να συμπεριληφθούν στην συγκεκριμένη "
+#~ "καταχώρηση του καταλόγου, επιλέγοντας την ετικέτα μορφότυπο (Format). Ο "
+#~ "προσδιορισμός των μεταδεδομένων βασίζεται στο πρότυπο ONIX (για βιβλία), "
+#~ "το οποίο αποτελεί ένα διεθνές πρότυπο μεταδεδομένων που χρησιμοποιείται "
+#~ "από την βιομηχανία του βιβλίου για τη ψηφιακή ανταλλαγή πληροφοριών των "
+#~ "προϊόντων της."
+
+#~ msgid "catalog.manage.spotlightDescription"
+#~ msgstr ""
+#~ "Το περιεχόμενο μιας στήλης της Βιτρίνας (πχ., Προτεινόμενα Βιβλία, "
+#~ "Προτεινόμρνη Σειρά) εμφανίζεται στην αρχική σελίδα των εκδόσεων, με τον "
+#~ "τίτλο, την εικόνα και το κείμενο για κάθε στήλη."
+
+#~ msgid "catalog.relatedCategories"
+#~ msgstr "Σχετιζόμενες κατηγορίες"
+
+#~ msgid "common.plusMore"
+#~ msgstr "+ Περισσότερα"
+
+#~ msgid "common.catalogInformation"
+#~ msgstr ""
+#~ "Οι πληροφορίες στον καταλόγου δεν είναι αναγκαίο να συμπληρωθούν κατά το "
+#~ "αρχικό στάδιο της υποβολής του έργου, εκτός από τον Τίτλο και την "
+#~ "Περίληψη."
+
+#~ msgid "common.prefixAndTitle.tip"
+#~ msgstr ""
+#~ "Αν ο τίτλος του βιβλίου ξεκινά από \"Ο\", \"Η\", ή \"Το\" (ή κάτι "
+#~ "παρόμοιο σε αλφαβητική σειρα) εντάξετε τη λέξη στο Πρόθημα (Prefix)."
+
+#~ msgid "user.register.completeForm"
+#~ msgstr "Συμπληρώστε τη φόρμα για να εγγραφείτε στις εκδόσεις."
+
+#~ msgid "user.register.alreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Πατήστε εδώ εάν είστε ήδη εγγεγραμμένος "
+#~ "χρήστης σε αυτή ή άλλη έκδοση της συλλογής"
+
+#~ msgid "user.register.notAlreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Πατήστε εδώ εάν δεν είστε "
+#~ "ήδη εγγεγραμμένος σε αυτή ή άλλη έκδοση της συλλογής"
+
+#~ msgid "user.register.loginToRegister"
+#~ msgstr ""
+#~ "Εισάγετε το υπάρχον όνομα χρήστη και τον κωδικό πρόσβασής σας για να "
+#~ "εγγραφείτε σε αυτή την έκδοση."
+
+#~ msgid "about.aboutThePress"
+#~ msgstr "Σχετικά με τις εκδόσεις"
+
+#~ msgid "about.sponsors"
+#~ msgstr "Χορηγοί"
+
+#~ msgid "about.contributors"
+#~ msgstr "Πηγές υποστήριξης"
+
+#~ msgid "about.onlineSubmissions.haveAccount"
+#~ msgstr ""
+#~ "Έχετε ήδη όνομα χρήστη/ κωδικό πρόσβασης για τις εκδόσεις {$pressTitle}?"
+
+#~ msgid "about.onlineSubmissions.needAccount"
+#~ msgstr "Χρειάζεστε ένα όνομα χρήστη / κωδικό πρόσβασης;"
+
+#~ msgid "about.onlineSubmissions.registration"
+#~ msgstr "Εγγραφή χρήστη"
+
+#~ msgid "log.editor.submissionExpedited"
+#~ msgstr ""
+#~ "Ο/Η {$editorName} έχει επιταχύνει τη διαδικασία αξιολόγησης για τη "
+#~ "μονογραφία {$monographId}."
+
+#~ msgid "notification.type.metadataModified"
+#~ msgstr "Τα μεταδεδομένα του \"{$title}\" έχουν μεταβληθεί."
+
+#~ msgid "notification.type.reviewerComment"
+#~ msgstr "Ένας Αξιολογητής έχει σχολιάσει το \"{$title}\"."
+
+msgid "section.section"
+msgstr "Σειρές"
diff --git a/locale/el/manager.po b/locale/el/manager.po
new file mode 100644
index 00000000000..3646bfa4c99
--- /dev/null
+++ b/locale/el/manager.po
@@ -0,0 +1,1875 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
+"PO-Revision-Date: 2019-11-28T15:10:06-08: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 "manager.language.confirmDefaultSettingsOverwrite"
+msgstr ""
+"Αυτό θα αντικαταστήσει όλες τις παραμέτρους τοπικής ρύθμισης που είχατε "
+"ορίσει για την έκδοση σας"
+
+msgid "manager.languages.noneAvailable"
+msgstr ""
+"Συγνώμη, καμία πρόσθετη γλώσσα δεν είναι διαθέσιμη. Επικοινωνήστε με τον "
+"διαχειριστή του ιστοτόπου, σε περίπτωση που επιθυμείτε να χρησιμοποιήσετε "
+"πρόσθετες γλώσσες για την έκδοση αυτή."
+
+msgid "manager.languages.primaryLocaleInstructions"
+msgstr "Αυτή είναι η προεπιλεγμένη γλώσσα για τον ιστότοπο της έκδοσης."
+
+msgid "manager.series.form.mustAllowPermission"
+msgstr ""
+"Παρακαλούμε σιγουρευτείτε ότι τουλάχιστον ένα checkbox έχει τσεκαριστεί για "
+"κάθε ανάθεση Επιμελητή Σειράς."
+
+msgid "manager.series.form.reviewFormId"
+msgstr ""
+"Παρακαλούμε σιγουρευτείτε ότι έχετε επιλέξει μια έγκυρη φόρμα αξιολόγησης."
+
+msgid "manager.series.submissionIndexing"
+msgstr "Δεν θα συμπεριληφθούν στην ευρετηρίαση του βιβλίου"
+
+msgid "manager.series.editorRestriction"
+msgstr ""
+"Αντικείμενα (Items) μπορούν να υποβληθούν μόνο από τους Επιμελητές Έκδοσης "
+"(Editors) και τους Επιμελητές Σειράς."
+
+msgid "manager.series.confirmDelete"
+msgstr "Είστε βέβαιοι ότι επιθυμείτε να διαγράψετε αυτή τη σειρά?"
+
+msgid "manager.series.indexed"
+msgstr "Έχει ευρετηριατεί"
+
+msgid "manager.series.open"
+msgstr "Ανοικτές υποβολές"
+
+msgid "manager.series.readingTools"
+msgstr "Εργαλεία Ανάγνωσης"
+
+msgid "manager.series.submissionReview"
+msgstr "Δεν πραγματοποιείται αξιολόγηση από ομότιμους αξιολογητές"
+
+msgid "manager.series.submissionsToThisSection"
+msgstr "Υποβολές στη συγκεκριμένη σειρά"
+
+msgid "manager.series.abstractsNotRequired"
+msgstr "Δεν απαιτείτε περιλείψεις"
+
+msgid "manager.series.disableComments"
+msgstr "Απενεργοποιήστε τα σχόλεια αναγνωστών για αυτή τη σειρά."
+
+msgid "manager.series.book"
+msgstr "Σειρά Βιβλίων"
+
+msgid "manager.series.create"
+msgstr "Δημιουργία Σειράς"
+
+msgid "manager.series.policy"
+msgstr "Περιγραφή Σειράς"
+
+msgid "manager.series.assigned"
+msgstr "Επιμελητές γι' αυτή τη σειρά"
+
+msgid "manager.series.seriesEditorInstructions"
+msgstr ""
+"Προσθέστε έναν Επιμελητή Σειράς για αυτή τη σειρά από τους διαθέσιμους "
+"Επιμελητές Σειράς. Μόλις προστεθεί, ορίσετε αν ο Επιμελεητής Σειράς θα "
+"επιβλέπει τη διαδικασία ΑΞΙΟΛΟΓΗΣΗΣ (peer review) και/ η τη διαδικασία "
+"ΣΥΝΤΑΞΗΣ (επιμέλεια κειμένων, σελιδοποίηση και τυπογραφικά δοκίμια) των "
+"υποβολών της συγκεκριμένης Σειράς. Οι Επιμελητές Σειρών δημιουργούνται "
+"επιλέγοντας Επιμελητές Σειράς κάτω από "
+"το Ρόλοι στην σελίδα του Διαχειριστή της Έκδοσης."
+
+msgid "manager.series.hideAbout"
+msgstr "Απόκτυψη αυτής της σειράς από το μενού Σχετικά με την Έκδοση."
+
+msgid "manager.series.unassigned"
+msgstr "Διαθέσιμοι Επιμελητές Σειράς"
+
+msgid "manager.series.form.abbrevRequired"
+msgstr "Απαιτείται συντομογραφία τίτλου για τη Σειρά."
+
+msgid "manager.series.form.titleRequired"
+msgstr "Ένας τίτλος απαιτείται για τη σειρά."
+
+msgid "manager.series.noneCreated"
+msgstr "Καμία σειρά δεν έχει δημιουργηθεί."
+
+msgid "manager.series.existingUsers"
+msgstr "Υπάρχοντες χρήστες"
+
+msgid "manager.series.seriesTitle"
+msgstr "Τίλτος Σειράς"
+
+msgid "manager.series.restricted"
+msgstr ""
+
+msgid "manager.payment.generalOptions"
+msgstr ""
+
+msgid "manager.payment.options.enablePayments"
+msgstr ""
+
+msgid "manager.payment.success"
+msgstr ""
+
+msgid "manager.settings"
+msgstr "Ρυθμίσεις"
+
+msgid "manager.settings.pressSettings"
+msgstr "Ρυθμίσεις Έκδοσης"
+
+msgid "manager.settings.press"
+msgstr "Εκδόσεις"
+
+msgid "manager.settings.publisher.identity"
+msgstr ""
+
+msgid "manager.settings.publisher.identity.description"
+msgstr ""
+"Αυτά τα πεδία δεν είναι απαραίτητα για τη γενική χρήση του OMP, αλλά "
+"απαιτούνται για τη δημιουργία έγκυρων ONIX μεταδεδομένων. Παρακαλούμε να τα "
+"συμπεριλάβετε αν επιθυμείτε να επιτύχετε τη λειτουργικότητα των ΟΝΙΧ."
+
+msgid "manager.settings.publisher"
+msgstr "Όνομα Εκδότη(Press Publisher Name)"
+
+msgid "manager.settings.location"
+msgstr "Γεωγραφική Τοποθεσία"
+
+msgid "manager.settings.publisherCode"
+msgstr "Κώδικας Εκδότη"
+
+msgid "manager.settings.publisherCodeType"
+msgstr ""
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr ""
+
+msgid "manager.settings.distributionDescription"
+msgstr ""
+"Όλες οι ρυθμίσεις σχετικά με τις διαδικασίες διανομής των εκδόσεων "
+"(κοινοποίηση, ευρετηρίαση, αρχειοθέτηση, πληρωμές, εργαλεία ανάγνωσης)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr ""
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr ""
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr ""
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr ""
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr ""
+
+msgid "manager.tools"
+msgstr "Εργαλεία"
+
+msgid "manager.tools.importExport"
+msgstr ""
+"Όλα τα εργαλεία σχετικά με την εισαγωγή και εξαγωγή δεδομένων (εκδόσεις, "
+"μονογραφίες, χρήστες)"
+
+msgid "manager.tools.statistics"
+msgstr ""
+
+msgid "manager.users.availableRoles"
+msgstr "Διαθέσιμοι Ρόλοι"
+
+msgid "manager.users.currentRoles"
+msgstr "Τρέχον Ρόλοι"
+
+msgid "manager.users.selectRole"
+msgstr "Επιλέξτε Ρόλο"
+
+msgid "manager.people.allEnrolledUsers"
+msgstr ""
+
+msgid "manager.people.allPresses"
+msgstr "Όλες οι εκδόσεις"
+
+msgid "manager.people.allSiteUsers"
+msgstr "Ανάθεση ρόλου σε χρήστη του ιστοτόπου για αυτή την Έκδοση"
+
+msgid "manager.people.allUsers"
+msgstr "Όλοι οι Χρήστες"
+
+msgid "manager.people.confirmRemove"
+msgstr ""
+"Κατάργηση του χρήστη από την έκδοση αυτή; Η συγκεκριμένη ενέργεια θα "
+"καταργήσει όλες τις αναθέσεις ρόλων στον χρήστη στο πλαίσιο αυτής της "
+"Έκδοσης."
+
+msgid "manager.people.enrollExistingUser"
+msgstr "Ανάθεση ρόλου σε υπάρχον χρήστη"
+
+msgid "manager.people.enrollSyncPress"
+msgstr "Με τις Εκδόσεις"
+
+msgid "manager.people.mergeUsers.from.description"
+msgstr ""
+"Επιλέξτε τον χρήστη για συγχώνευση σε λογαριασμό άλλου χρήστη (π.χ., σε "
+"περίπτωση όπου ένας χρήστης έχει δύο λογαριασμούς). Ο λογαριασμός που "
+"επιλέγεται πρώτος θα διαγραφεί καθώς και οι υποβολές, οι αναθέσεις, κτλ. που "
+"έχουν γίνει σε αυτόν και θα αποδοθούν στον δεύτερο λογαριασμό."
+
+msgid "manager.people.mergeUsers.into.description"
+msgstr ""
+"Επιλέξτε χρήστη στον οποίο θα αποδοθούν οι προηγούμενες εργασίες συγγραφής, "
+"αναθέσεις επιμέλειας, κτλ. του χρήστη."
+
+msgid "manager.people.syncUserDescription"
+msgstr ""
+"Ο συγχρονισμός ανάθεσης ρόλων πραγματοποιεί εγγραφή όλων των χρηστών με "
+"καθορισμένο ρόλο σε κάποια άλλη έκδοση με τον ίδιο ρόλο στην εν λόγω έκδοση."
+"Η λειτουργία αυτή επιτρέπει σε κοινό σύνολο χρηστών (π.χ., Αξιολογητές) να "
+"είναι συγχρονισμένοι σε διάφορες εκδόσεις που φιλοξενούνται."
+
+msgid "manager.people.confirmDisable"
+msgstr ""
+"Απενεργοποίηση αυτού του χρήστη? Αυτή η ενέργεια θα εμποδίσει τον χρήστη να "
+"εισαχθεί στο σύστημα. Μπορείτε προεραιτικά να παρέχετε στον χρήστη ένα λόγο "
+"για την απενεργοποίηση των λογαριασμών του."
+
+msgid "manager.people.noAdministrativeRights"
+msgstr ""
+"Συγνώμη, δεν έχετε δικαιώματα διαχείρισης σε αυτόν τον χρήστη. Αυτό μπορεί "
+"να συμβαίνει επειδή:\n"
+"\t\t\n"
+"\t\t\t- Ο χρήστης είναι ο διαχειριστής του ιστοτόπου
\n"
+"\t\t\t- Ο χρήστης είναι ενεργός σε εκδόσεις που δεν διευθύνετε
\n"
+"\t\t
\n"
+"\tΑυτή η εργασία εκτελείτε από έναν διαχειριστή του ιστοτόπου/υπηρεσίας."
+
+msgid "manager.system"
+msgstr "Ρυθμίσεις Συστήματος"
+
+msgid "manager.system.archiving"
+msgstr "Αρχειοθέτηση"
+
+msgid "manager.system.reviewForms"
+msgstr "Φόρμες Αξιολόγησης"
+
+msgid "manager.system.readingTools"
+msgstr "Εργαλεία Ανάγνωσης"
+
+msgid "manager.system.payments"
+msgstr "Πληρωμές"
+
+msgid "user.authorization.pluginLevel"
+msgstr ""
+
+msgid "manager.pressManagement"
+msgstr "Διαχείριση Εκδόσεων"
+
+msgid "manager.setup"
+msgstr "Οργάνωση"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Περιεχόμενο"
+
+msgid "manager.setup.addAboutItem"
+msgstr "Προσθήκη Κατηγορίας στο Σχετικά"
+
+msgid "manager.setup.addChecklistItem"
+msgstr "Προσθήκη πεδίου στην Λίστα Ελέγχου"
+
+msgid "manager.setup.addItem"
+msgstr "Προσθήκη πεδίου"
+
+msgid "manager.setup.addItemtoAboutPress"
+msgstr "Προσθήκη κατηγορίας στο πεδίο \"Σχετικά με τις εκδόσεις\""
+
+msgid "manager.setup.addNavItem"
+msgstr "Προσθήκη πεδίου"
+
+msgid "manager.setup.addSponsor"
+msgstr "Προσθήκη οργανισμού χορηγίας"
+
+msgid "manager.setup.announcements"
+msgstr "Ανακοινώσεις"
+
+msgid "manager.setup.announcements.success"
+msgstr ""
+
+msgid "manager.setup.announcementsDescription"
+msgstr ""
+"Οι ανακοινώσεις μπορούν να δημοσιεύονται για πληροφόρηση των αναγνωστών "
+"σχετικά με ειδήσεις και εκδηλώσεις των εκδόσεων. Οι δημοσιευμένες "
+"ανακοινώσεις εμφανίζονται στη σελίδα «Ανακοινώσεις»."
+
+msgid "manager.setup.announcementsIntroduction"
+msgstr "Πρόσθετες πληροφορίες"
+
+msgid "manager.setup.announcementsIntroduction.description"
+msgstr ""
+"Εισάγετε όλες τις πρόσθετες πληροφορίες που θέλετε να εμφανίζονται στους "
+"αναγνώστες στη σελίδα «Ανακοινώσεις»."
+
+msgid "manager.setup.appearInAboutPress"
+msgstr "(Για να εμφανίζεται στο μενού «Σχετικά με τις εκδόσεις»)"
+
+msgid "manager.setup.contextAbout"
+msgstr ""
+
+msgid "manager.setup.contextAbout.description"
+msgstr ""
+
+msgid "manager.setup.contextSummary"
+msgstr ""
+
+msgid "manager.setup.copyediting"
+msgstr "Επιμελητές κειμένων"
+
+msgid "manager.setup.copyeditInstructions"
+msgstr "Οδηγίες επιμέλειας κειμένων"
+
+msgid "manager.setup.copyeditInstructionsDescription"
+msgstr ""
+"Οι Οδηγίες επιμέλειας των κειμένων είναι διαθέσιμες για τους Επιμελητές "
+"κειμένων, τους Συγγραφείς και τους Επιμελητές ενοτήτων στο στάδιο της "
+"επιμέλειας της υποβολής. Παρακάτω θα βρείτε σε μορφή HTML σετ οδηγιών πο "
+"μπορούν να τροποποιηθούν ή να αντικατασταθούν από τον Διαχειριστή των "
+"Εκδόσεων ανά πάσα στιγμή (σε μορφή HTML ή απλού κειμένου)."
+
+msgid "manager.setup.copyrightNotice"
+msgstr "Δήλωση Πνευματικών Δικαιωμάτων"
+
+msgid "manager.setup.coverage"
+msgstr "Κάλυψη"
+
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr ""
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr ""
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr ""
+
+msgid "manager.setup.customizingTheLook"
+msgstr "Βήμα 5. Διαμόρφωση της όψης των εκδόσεων"
+
+msgid "manager.setup.customTags"
+msgstr "Ειδικά προσαρμοσμένες ετικέτες"
+
+msgid "manager.setup.customTagsDescription"
+msgstr ""
+"Ειδικά προσαρμοσμένες ετικέτες κεφαλίδας HTML που προορίζονται για προσθήκη "
+"στην κεφαλίδα κάθε σελίδας (π.χ., ετικέτες META)."
+
+msgid "manager.setup.details"
+msgstr "Λεπτομέρειες"
+
+msgid "manager.setup.details.description"
+msgstr ""
+"Όνομα εκδόσεων, υπεύθυνοι επικοινωνίας, χορηγοί, και μηχανές αναζήτησης."
+
+msgid "manager.setup.disableUserRegistration"
+msgstr ""
+"Ο Διαχειριστής των Εκδόσεων εγγράφει όλους τους χρήστες, με τους Επιμελητές "
+"ή τους Επιμελητές Σειρών να εγγράφουν μόνο τους αξιολογητές."
+
+msgid "manager.setup.discipline"
+msgstr "Επιστημονικά θεματικά πεδία και υπο-πεδία"
+
+msgid "manager.setup.disciplineDescription"
+msgstr ""
+"Χρήσιμα όταν οι εκδόσεις δημοσιεύουν ή/και οι συγγραφείς υποβάλλουν τεκμήρια "
+"που καλύπτουν περισσότερα του ενός επιστομηνικά πεδία"
+
+msgid "manager.setup.disciplineExamples"
+msgstr ""
+"(Π.χ., Ιστορία; Εκπαίδευση; Κοινωνιολογία; Ψυχολογία; Πολιτισμικές Σπουδές; "
+"Δίκαιο κτλ.)"
+
+msgid "manager.setup.disciplineProvideExamples"
+msgstr ""
+"Παραθέστε μερικά παραδείγματα σχετικών επιστημονικών κλάδων για τη "
+"συγκεκριμένη έκδοση."
+
+msgid "manager.setup.displayCurrentMonograph"
+msgstr ""
+"Προσθέστε πίνακα των περιεχομένων για την τρέχουσα μονογραφία (αν είναι "
+"διαθέσιμος)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr ""
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr ""
+
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr ""
+
+msgid "manager.setup.displayInSpotlight"
+msgstr ""
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr ""
+
+msgid "manager.setup.displayNewReleases"
+msgstr ""
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr ""
+
+msgid "manager.setup.enableDois.description"
+msgstr ""
+
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr ""
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr ""
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr ""
+
+msgid "manager.setup.editorDecision"
+msgstr "Απόφαση επιμελητή"
+
+msgid "manager.setup.emailBounceAddress"
+msgstr "Διεύθυνση επιστροφής σε αποστολέα"
+
+msgid "manager.setup.emailBounceAddress.description"
+msgstr ""
+"Όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου που δεν παραδόθηκαν επιτυχώς θα "
+"έχουν ως αποτέλεσμα μήνυμα σφάλματος στη συγκεκριμένη διεύθυνση."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr ""
+
+msgid "manager.setup.emails"
+msgstr "Αναγνώριση διεύθυνσης ηλεκτρονικού ταχυδρομείου"
+
+msgid "manager.setup.emailSignature"
+msgstr "Υπογραφή"
+
+msgid "manager.setup.emailSignature.description"
+msgstr ""
+
+msgid "manager.setup.enableAnnouncements.enable"
+msgstr ""
+"Ενεργοποίηση δυνατότητας προσθήκης ανακοινώσεων από τους Διαχειριστές των "
+"εκδόσεων."
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr ""
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr ""
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr ""
+
+msgid "manager.setup.enablePressInstructions"
+msgstr "Ενεργοποίηση της εμφάνισης των Εκδόσεων στον ιστότοπο"
+
+msgid "manager.setup.enablePublicMonographId"
+msgstr ""
+"Θα χρησιμοποιηθούν προσαρμοσμένα αναγνωριστικά για την αναγνώριση των "
+"δημοσιευμένων τεκμηρίων."
+
+msgid "manager.setup.enablePublicGalleyId"
+msgstr ""
+"Θα χρησιμοποιηθούν προσαρμοσμένα αναγνωριστικά για τις σελιδοποιημένες "
+"μορφές (πχ. αρχεία HTML η PDF) των δημοσιευμένων τεκμηρίων."
+
+msgid "manager.setup.enableUserRegistration"
+msgstr ""
+
+msgid "manager.setup.focusAndScope"
+msgstr "Πεδίο και περιεχόμενο"
+
+msgid "manager.setup.focusAndScope.description"
+msgstr ""
+"Εισαγάγετε δήλωση παρακάτω, η οποία εμφανίζεται στο πεδίο Σχετικά με τις "
+"Εκδόσεις και αναφέρεται σε συγγραφείς, αναγνώστες και βιβλιοθηκονόμους "
+"σχετικά με το εύρος των μονογραφιών και των λοιπών τεκμηρίων που πρόκειται "
+"να δημοσιεύσουν οι εκδόσεις."
+
+msgid "manager.setup.focusScope"
+msgstr "Πεδίο και περιεχόμενο"
+
+msgid "manager.setup.focusScopeDescription"
+msgstr "ΠΑΡΑΔΕΙΓΜΑ ΔΕΔΟΜΕΝΩΝ ΣΕ ΜΟΡΦΗ HTML"
+
+msgid "manager.setup.forAuthorsToIndexTheirWork"
+msgstr "Οδηγίες προς τους συγγραφείς για την ευρετηρίαση του έργου τους"
+
+msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
+msgstr ""
+"Το OMP υλοποιεί το πρωτόκολλο Open Archives Initiative Protocol for Metadata "
+"Harvesting, που αποτελεί διεθνώς αποδεκτό πρότυπο για παροχή πρόσβασης μέσω "
+"ορθής ευρετηρίασης σε διεθνείς ηλεκτρονικές πηγές αναζήτησης. Οι συγγραφείς "
+"θα χρησιμοποιήσουν παρόμοιο πρότυπο για παροχή μεταδεδομένων για το έργο "
+"τους κατά την διάρκεια της υποβολή του. Ο Διαχειριστής των Εκδόσεων πρέπει "
+"να επιλέξει τις κατηγορίες για ευρετηρίαση και να παρουσιάσει στους "
+"συγγραφείς σχετικά παραδείγματα για να τους βοηθήσει στην ευρετηρίαση του "
+"έργου τους, διαχωρίζοντας τους όρους με ελληνικό ερωτηματικό (πχ., όρος1; "
+"όρος2;). Οι καταχωρίσεις πρέπει να εισάγονται ως παραδείγματα "
+"χρησιμοποιώντας \"πχ.,\" ή \"Για παράδειγμα,\"."
+
+msgid "manager.setup.form.contactEmailRequired"
+msgstr ""
+"Απαιτείται η διεύθυνση ηλεκτρονικού ταχυδρομείου του κύριου υπεύθυνου "
+"επικοινωνίας."
+
+msgid "manager.setup.form.contactNameRequired"
+msgstr "Απαιτείται το όνομα του κύριου υπεύθυνου επικοινωνίας."
+
+msgid "manager.setup.form.numReviewersPerSubmission"
+msgstr "Απαιτείται ο αριθμός των αξιολογητών ανά υποβολή."
+
+msgid "manager.setup.form.supportEmailRequired"
+msgstr ""
+"Απαιτείται η διεύθυνση ηλεκτρονικού ταχυδρομείου του υπεύθυνου τεχνικής "
+"υποστήριξης."
+
+msgid "manager.setup.form.supportNameRequired"
+msgstr "Απαιτείται το κύριο όνομα του υπεύθυνου τεχνικής υποστήριξης."
+
+msgid "manager.setup.generalInformation"
+msgstr "Γενικές Πληροφορίες"
+
+msgid "manager.setup.gettingDownTheDetails"
+msgstr "Βήμα 1. Λεπτομέρειες"
+
+msgid "manager.setup.guidelines"
+msgstr "Κατευθυντήριες γραμμές"
+
+msgid "manager.setup.preparingWorkflow"
+msgstr "Βήμα 3. Προετοιμασία της ροής των εργασιών"
+
+msgid "manager.setup.identity"
+msgstr ""
+
+msgid "manager.setup.information"
+msgstr ""
+
+msgid "manager.setup.information.description"
+msgstr ""
+"Σύντομες περιγραφές των εκδόσεων για τους βιβλιοθηκονόμους, τους πιθανούς "
+"συγγραφείς και τους αναγνώστες είναι διαθέσιμες στην ενότητα “Πληροφορίες” "
+"στην δεξιά πλαϊνή μπάρα της ιστοσελίδας."
+
+msgid "manager.setup.information.forAuthors"
+msgstr "Για Συγγραφείς"
+
+msgid "manager.setup.information.forLibrarians"
+msgstr "Για Βιβλιοθηκονόμους"
+
+msgid "manager.setup.information.forReaders"
+msgstr "Για Αναγνώστες"
+
+msgid "manager.setup.information.success"
+msgstr ""
+
+msgid "manager.setup.institution"
+msgstr "Ίδρυμα"
+
+msgid "manager.setup.itemsPerPage"
+msgstr ""
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr ""
+
+msgid "manager.setup.keyInfo"
+msgstr ""
+
+msgid "manager.setup.keyInfo.description"
+msgstr ""
+
+msgid "manager.setup.labelName"
+msgstr "Όνομα Πεδίου"
+
+msgid "manager.setup.layoutAndGalleys"
+msgstr "Επιμελητές Σελιδοποίησης"
+
+msgid "manager.setup.layoutInstructions"
+msgstr "Οδηγίες Σελιδοποίησης"
+
+msgid "manager.setup.layoutInstructionsDescription"
+msgstr ""
+"Οι οδηγίες σελιδοποίησης μπορούν να καθοριστούν για την κατάλληλη "
+"μορφοποίηση των τεκμηρίων των εκδόσεων και μπορούν να καταχωρηθούν παρακάτω "
+"σε μορφή HTML ή σε απλή μορφή κειμένου. Θα είναι διαθέσιμες στον Επιμελητή "
+"σελιδοποίησης και τον Επιμελητή ενότητας στη σελίδα «Επιμέλειας» κάθε "
+"υποβολής. (Εφόσον κάθε έκδοση μπορεί να έχει τις δικές της μορφές αρχείου, "
+"βιβλιογραφικά πρότυπα, φύλλα στυλ, κτλ., δεν παρέχεται προεπιλεγμένο σετ "
+"οδηγιών.)"
+
+msgid "manager.setup.layoutTemplates"
+msgstr "Πρότυπα Σελιδοποίησης"
+
+msgid "manager.setup.layoutTemplatesDescription"
+msgstr ""
+"Πρότυπα σελιδοποίησης μπορούν να φορτωθούν για να εμφανίζονται στη "
+"\"Σελιδοποίηση\" για καθεμία από τις πρότυπες μορφές που δημοσιεύονται στις "
+"εκδόσεις (π.χ., μονογραφία, αναθεώρηση βιβλίου, κλπ.) χρησιμοποιώντας "
+"οποιαδήποτε μορφή αρχείου (π.χ., pdf, doc, κτλ.) με πρόσθετους σχολιασμούς "
+"που καθορίζουν τη γραμματοσειρά, το μέγεθος, το περιθώριο, κτλ. για να "
+"χρησιμοποιηθούν ως οδηγός για τους Επιμελητές Σελιδοποίησης και τους "
+"Επιμελητές των Τυπογραφικών Δοκιμίων."
+
+msgid "manager.setup.layoutTemplates.file"
+msgstr "Αρχείο προτύπου"
+
+msgid "manager.setup.layoutTemplates.title"
+msgstr "Τίτλος"
+
+msgid "manager.setup.lists"
+msgstr "Λίστες"
+
+msgid "manager.setup.lists.success"
+msgstr ""
+
+msgid "manager.setup.look"
+msgstr "Όψη Εκδόσεων"
+
+msgid "manager.setup.look.description"
+msgstr ""
+"Κεφαλίδα αρχικής σελίδας, περιεχόμενο, κεφαλίδα εκδόσεων, υποσέλιδο, μπάρα "
+"πλοήγησης και style sheet."
+
+msgid "manager.setup.settings"
+msgstr "Ρυθμίσεις"
+
+msgid "manager.setup.management.description"
+msgstr ""
+"Πρόσβαση και ασφάλεια, προγραμματισμός, ανακοινώσεις, και χρήση υπεύθυνων "
+"επιμελητών κειμένων, επιμελητών σελιδοποίησης και διορθωτών τυπογραφικών "
+"δοκιμίων."
+
+msgid "manager.setup.managementOfBasicEditorialSteps"
+msgstr "Διαχείριση βασικών βημάτων επιμέλειας της έκδοσης"
+
+msgid "manager.setup.managingPublishingSetup"
+msgstr "Ρυθμίσεις Διαχείρισης και Δημοσίευσης"
+
+msgid "manager.setup.managingThePress"
+msgstr "Βήμα 4. Διαχείριση των Εκδόσεων"
+
+msgid "manager.setup.masthead.success"
+msgstr ""
+
+msgid "manager.setup.noImageFileUploaded"
+msgstr "Δεν έχει φορτωθεί κάποιο αρχείο εικόνας."
+
+msgid "manager.setup.noStyleSheetUploaded"
+msgstr "Δεν έχει φορτωθεί style sheet."
+
+msgid "manager.setup.note"
+msgstr "Σημείωση"
+
+msgid "manager.setup.notifyAllAuthorsOnDecision"
+msgstr ""
+"Όταν χρησιμοποιείται το email Ενημέρωσης Συγγραφέα, συμπεριλάβετε τις "
+"διευθύνσεις ηλεκτρονικού ταχυδρομείου όλων των συγγραφέων του τεκμηρίου και "
+"όχι μόνο του συγγραφέα-χρήστη που υπέβαλε το τεκμήριο."
+
+msgid "manager.setup.noUseCopyeditors"
+msgstr ""
+"Η επιμέλεια των κειμένων θα γίνει από τον Επιμελητή των εκδόσεων ή τους "
+"επιμελητές ενοτήτων της υποβολής."
+
+msgid "manager.setup.noUseLayoutEditors"
+msgstr ""
+"Ο Επιμελητής των εκδόσεων ή κάποιος από τους Επιμελητές Ενοτήτων θα "
+"προετοιμάσει τα κατάλληλα σελιδοποιημένα μορφότυπα (αρχεία HTML, PDF, κτλ.)."
+
+msgid "manager.setup.noUseProofreaders"
+msgstr ""
+"Ο Επιμελητής των εκδόσεων ή ο Επιμελητής Ενότητας ελέγχουν τα τυπογραφικά "
+"δοκίμια."
+
+msgid "manager.setup.numPageLinks"
+msgstr "Σύνδεσμοι σελίδας"
+
+msgid "manager.setup.numPageLinks.description"
+msgstr ""
+
+msgid "manager.setup.onlineAccessManagement"
+msgstr "Διαχείριση πρόσβασης"
+
+msgid "manager.setup.onlineIssn"
+msgstr "Online ISΒΝ"
+
+msgid "manager.setup.policies"
+msgstr "Πολιτικές"
+
+msgid "manager.setup.policies.description"
+msgstr ""
+"Εστίαση (Focus), αξιολόγηση από ομότιμους αξιολογητές (peer review), "
+"τομείς, απόρρητα, ασφάλεια, και πρόσθετα στοιχεία σχετικά με τα τεκμήρια."
+
+msgid "manager.setup.privacyStatement.success"
+msgstr ""
+
+msgid "manager.setup.appearanceDescription"
+msgstr ""
+
+msgid "manager.setup.pressDescription"
+msgstr "Περιγραφή Εκδόσεων"
+
+msgid "manager.setup.pressDescription.description"
+msgstr ""
+"Μια γενική περιγραφή των Εκδόσεων θα πρέπει να περιλαμβάνεται εδώ. Αυτή η "
+"περιγραφή θα είναι διαθέσιμη στην αρχική σελίδα των εκδόσεων."
+
+msgid "manager.setup.aboutPress"
+msgstr ""
+
+msgid "manager.setup.aboutPress.description"
+msgstr ""
+
+msgid "manager.setup.pressArchiving"
+msgstr "Αρχειοθέτηση Εκδόσεων"
+
+msgid "manager.setup.homepageContent"
+msgstr ""
+
+msgid "manager.setup.homepageContentDescription"
+msgstr ""
+
+msgid "manager.setup.pressHomepageContent"
+msgstr "Περιεχόμενα Αρχικής Σελίδας Εκδόσεων"
+
+msgid "manager.setup.pressHomepageContentDescription"
+msgstr ""
+"Εξ’ορισμού, η αρχική σελίδα των εκδόσεων αποτελείται από δεσμούς πλοήγησης. "
+"Η προσθήκη πρόσθετου περιεχομένου αρχικής σελίδας μπορεί να γίνει "
+"χρησιμοποιώντας κάποιες ή όλες τις ακόλουθες επιλογές, που θα εμφανιστούν με "
+"την σειρά αυτή."
+
+msgid "manager.setup.contextInitials"
+msgstr "Αρχικά Εκδόσεων"
+
+msgid "manager.setup.selectCountry"
+msgstr ""
+
+msgid "manager.setup.layout"
+msgstr ""
+
+msgid "manager.setup.pageHeader"
+msgstr ""
+
+msgid "manager.setup.pageHeaderDescription"
+msgstr ""
+
+msgid "manager.setup.pressPolicies"
+msgstr "Βήμα 2. Πολιτικές"
+
+msgid "manager.setup.pressSetup"
+msgstr "Οργάνωση Εκδόσεων"
+
+msgid "manager.setup.pressSetupUpdated"
+msgstr "Οι ρυθμίσεις του περιοδικού ενημερώθηκαν."
+
+msgid "manager.setup.styleSheetInvalid"
+msgstr ""
+
+msgid "manager.setup.pressTheme"
+msgstr "Θέμα Εκδόσεων"
+
+msgid "manager.setup.pressThumbnail"
+msgstr ""
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr ""
+
+msgid "manager.setup.contextTitle"
+msgstr ""
+
+msgid "manager.setup.printIssn"
+msgstr "Print ISBN"
+
+msgid "manager.setup.proofingInstructions"
+msgstr "Οδηγίες επιμέλειας τυπογραφικών δοκιμίων"
+
+msgid "manager.setup.proofingInstructionsDescription"
+msgstr ""
+"Οι Οδηγίες επιμέλειας των τυπογραφικών δοκιμίων θα είναι διαθέσιμες στους "
+"Επιμελητές τυπογραφικών δοκιμίων, τους Συγγραφείς, τους Επιμελητές "
+"Σελιδοποίησης και τους Επιμελητές ενοτήτων στο στάδιο της επιμέλειας/"
+"σύνταξης της υποβολής. Παρακάτω υπάρχει προεπιλεγμένο σετ οδηγιών σε μορφή "
+"HTML, το οποίο μπορεί να επεξεργαστεί ή να αντικατασταθεί από τον "
+"Διαχειριστή των Εκδόσεων ανά πάσα στιγμή (σε μορφή HTML ή απλού κειμένου)."
+
+msgid "manager.setup.proofreading"
+msgstr "Επιμελητές Τυπογραφικών Δοκιμίων"
+
+msgid "manager.setup.provideRefLinkInstructions"
+msgstr "Παροχή οδηγιών στους Επιμελητές Σελιδοποίησης."
+
+msgid "manager.setup.publicationScheduleDescription"
+msgstr ""
+"Τα τεκμήρια μιας έκδοσης μπορούν να δημοσιευτούν συλλογικά, ως μέρος μιας "
+"μονογραφίας στο πλαίσιο του δικού της Πίνακα Περιεχομένου. Εναλλακτικά, "
+"μεμονωμένα τεκμήρια μπορούν να δημοσιευτούν μόλις είναι έτοιμα, προσθέτοντας "
+"στον \"τρέχοντα\" όγκο του Πίνακα Περιεχομένου. Στο μενού «Σχετικά με τις "
+"εκδόσεις, μπορείτε να παραθέσετε πληροφορίες σχετικά με το σύστημα που οι "
+"εκδόσεις θα χρησιμοποιήσουν και την αναμενόμενη συχνότητα δημοσίευσης."
+
+msgid "manager.setup.publisher"
+msgstr "Εκδότης"
+
+msgid "manager.setup.publisherDescription"
+msgstr ""
+"Το όνομα του οργανισμού/εκδότη εμφανίζεται στο πεδίο Σχετικά με τις εκδόσεις."
+
+msgid "manager.setup.referenceLinking"
+msgstr "Σύνδεση Αναφορών"
+
+msgid "manager.setup.refLinkInstructions.description"
+msgstr "Οδηγίες Σελιδοποίησης για Σύνδεση Αναφορών"
+
+msgid "manager.setup.restrictMonographAccess"
+msgstr ""
+"Οι χρήστες πρέπει να συνδεθούν για να δουν το περιεχόμενο ανοικτής πρόσβασης."
+
+msgid "manager.setup.restrictSiteAccess"
+msgstr "Οι χρήστες πρέπει να συνδεθούν για να δουν τον ιστότοπο της έκδοσης."
+
+msgid "manager.setup.reviewGuidelines"
+msgstr "Κατευθυντήριες γραμμές αξιολόγησης"
+
+msgid "manager.setup.reviewGuidelinesDescription"
+msgstr ""
+"Οι κατευθυντήριες γραμμές αξιολόγησης παρέχουν κριτήρια στους αξιολογητές "
+"για καθορισμό της καταλληλότητας δημοσίευσης των υποβληθέντων τεκμηρίων στις "
+"εκδόσεις, καθώς και ειδικές οδηγίες για την σύνταξη αποτελεσματικής και "
+"κατατοπιστικής αξιολόγησης. Κατά τη διεξαγωγή της αξιολόγησης, οι "
+"αξιολογητές παρουσιάζουν την αξιολόγηση τους σε δύο ανοικτά πλαίσια "
+"κειμένου, το πρώτο \"για συγγραφείς και εκδότες\" και το δεύτερο μόνο \"για "
+"εκδότες\". Εναλλακτικά, ο Διαχειριστής Εκδόσεων μπορεί να δημιουργήσει μια "
+"φόρμα αξιολόγησης από ομοτίμους κάτω από το Φόρμες Αξιολόγησης."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr ""
+
+msgid "manager.setup.reviewOptions"
+msgstr ""
+
+msgid "manager.setup.reviewOptions.automatedReminders"
+msgstr ""
+"Αυτοματοποιημένες υπενθυμίσεις μέσω ηλεκτρονικού ταχυδρομείου (διαθέσιμα "
+"στις προεπιλεγμένες διευθύνσεις ηλεκτρονικού ταχυδρομείου του OMP) μπορούν "
+"να αποσταλλούν σε αξιολογητές σε δύο σημεία (ενώ ο επιμελητής μπορεί ανά "
+"πάσα στιγμή να αποστείλει μήνυμα ηλεκτρονικού ταχυδρομείου στον αξιολογητή)."
+
+msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
+msgstr ""
+"Σημείωση: Για να ενεργοποίησετε τις συγκεκριμένες επιλογές, "
+"ο διαχειριστής του ιστοτόπου πρέπει να ενεργοποιήσει την επιλογή "
+"scheduled_tasks στο αρχείο ρυθμίσεων του OMP. Ενδέχεται να "
+"απαιτούνται πρόσθετες ρυθμίσεις διακομιστή για υποστήριξη της συγκεκριμένης "
+"λειτουργίας (που ενδέχεται να μην είναι διαθέσιμες σε όλους τους "
+"διακομιστές), όπως διευκρινίζεται στα τεκμηριωτικά έγγραφα του OMP."
+
+msgid "manager.setup.reviewOptions.onQuality"
+msgstr ""
+"Οι επιμελητές των εκδόσεων θα βαθμολογούν κατατάξουν τους αξιολογητές σε "
+"κλίμακα ποιότητας 0-5 μετά από κάθε αξιολόγηση."
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr ""
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
+msgstr ""
+"Οι αξιολογητές θα έχουν πρόσβαση στο αρχείο υποβολής μόνο μετά από αποδοχή "
+"αξιολόγησής αυτού."
+
+msgid "manager.setup.reviewOptions.reviewerAccess"
+msgstr "Πρόσβαση αξιολογητή"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr ""
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
+msgstr ""
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr ""
+
+msgid "manager.setup.reviewOptions.reviewerRatings"
+msgstr "Βαθμολόγηση αξιολογητή"
+
+msgid "manager.setup.reviewOptions.reviewerReminders"
+msgstr "Υπενθυμίσεις προς τους αξιολογητές"
+
+msgid "manager.setup.reviewPolicy"
+msgstr "Πολιτική Αξιολόγησης"
+
+msgid "manager.setup.searchDescription.description"
+msgstr ""
+
+msgid "manager.setup.searchEngineIndexing"
+msgstr "Ευρετηρίαση μηχανών αναζήτησης"
+
+msgid "manager.setup.searchEngineIndexing.description"
+msgstr ""
+"Για παροχή βοήθειας στους χρήστες μηχανών αναζήτησης στον εντοπισμό του "
+"περιοδικού, παρέχετε σύντομη περιγραφή του περιοδικού και σχετικές λέξεις-"
+"κλειδιά (που διαχωρίζονται από ελληνικό ερωτηματικό)."
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr ""
+
+msgid "manager.setup.sectionsAndSectionEditors"
+msgstr "Ενότητες και Επιμελητές ενοτήτων"
+
+msgid "manager.setup.sectionsDefaultSectionDescription"
+msgstr ""
+"(Εάν δεν επιλεγεί η χρήση ενοτήτων, τα τεκμήρια που υποβάλλονται "
+"καταχωρούνται εξ’ορισμού στην ενότητα Μονογραφίες.)"
+
+msgid "manager.setup.sectionsDescription"
+msgstr ""
+"Για να δημιουργήσετε ή να τροποποιήσετε τις ενότητες των εκδόσεων (πχ., "
+"Μονογραφίες, Αξιολογήσεις Βιβλίων, κτλ.), μεταβείτε στη Διαχείριση Ενοτήτων."
+"
Οι συγγραφείς με την υποβολή των τεκμηρίων στις εκδόσεις "
+"καθορίζουν..."
+
+msgid "manager.setup.securitySettings"
+msgstr "Ρυθμίσεις Ασφαλείας/Πρόσβασης"
+
+msgid "manager.setup.securitySettings.note"
+msgstr ""
+"Διάφορες επιλογές σε σχέση με την ασφάλεια και την πρόσβαση μπορούν να "
+"ρυθμιστούν από τη σελίδα Πρόσβαση και Ασφάλεια."
+
+msgid "manager.setup.selectEditorDescription"
+msgstr ""
+"Τον επιμελητή των εκδόσεων που θα επιβλέπει κατά τη εκδοτική διαδικασία"
+
+msgid "manager.setup.selectSectionDescription"
+msgstr "Την ενότητα των εκδόσεων για την οποία θα ληφθεί υπόψη το τεκμήριο."
+
+msgid "manager.setup.showGalleyLinksDescription"
+msgstr ""
+"Προβάλετε πάντα τους συνδέσμους των Σελιδοποιημένων Δοκιμίων και με την "
+"υπόδειξη περιορισμένης πρόσβασης."
+
+msgid "manager.setup.siteAccess.view"
+msgstr ""
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr ""
+
+msgid "manager.setup.stepsToPressSite"
+msgstr "Πέντε βήματα για την οργάνωση της ιστοσελίδας των Εκδόσεων"
+
+msgid "manager.setup.subjectExamples"
+msgstr ""
+"(Πχ., Φωτοσύνθεση; Μαύρες τρύπες; Οικονομική θεωρία; Θεωρία Bayes, Ανεργία)"
+
+msgid "manager.setup.subjectKeywordTopic"
+msgstr "Λέξεις-κλειδιά"
+
+msgid "manager.setup.subjectProvideExamples"
+msgstr ""
+"Παραθέστε μερικά παραδείγματα λέξεων-κλειδιών ή θεμάτων για την καθοδήγηση "
+"των συγγραφέων"
+
+msgid "manager.setup.submissionGuidelines"
+msgstr "Οδηγίες Υποβολής"
+
+msgid "maganer.setup.submissionChecklistItemRequired"
+msgstr "Απαιτείται λίστα ελέγχου των τεκμηρίων"
+
+msgid "manager.setup.workflow"
+msgstr "Ροή των εργασιών"
+
+msgid "manager.setup.submissions.description"
+msgstr ""
+"Κατευθυντήριες γραμμές προς συγγραφέα, πνευματικά δικαιώματα, και "
+"καταχώριση σε ευρετήρια (συμπεριλαμβανομένης της εγγραφής)."
+
+msgid "manager.setup.typeExamples"
+msgstr ""
+"(Πχ., Ιστορική έρευνα; Εν μέρει πειραματικό; Λογοτεχνική ανάλυση; Έρευνα/"
+"συνέντευξη)"
+
+msgid "manager.setup.typeMethodApproach"
+msgstr "Τύπος (Μέθοδος/Προσέγγιση)"
+
+msgid "manager.setup.typeProvideExamples"
+msgstr ""
+"Παραθέστε μερικά παραδείγματα σχετικών τύπων έρευνας, μεθόδων, και "
+"προσεγγίσεων για το συγκεκριμένο πεδίο"
+
+msgid "manager.setup.useCopyeditors"
+msgstr ""
+"Οι εκδόσεις θα καθορίσουν τους Επιμελητές κειμένων που θα εργαστούν για κάθε "
+"υποβολή."
+
+msgid "manager.setup.useEditorialReviewBoard"
+msgstr "Οι εκδόσεις θα χρησιμοποιούν Επιτροπή Σύνταξης / Αξιολόγησης."
+
+msgid "manager.setup.useImageTitle"
+msgstr "Εικόνα Τίτλου"
+
+msgid "manager.setup.useStyleSheet"
+msgstr ""
+
+msgid "manager.setup.useLayoutEditors"
+msgstr ""
+"Οι εκδόσεις ορίζουν τον Επιμελητή Σελιδοποίησης που θα προετοιμάσει τα "
+"σελιδοποιημένα αρχεία HTML, PDF, PS, κτλ., για την ηλεκτρονική έκδοση."
+
+msgid "manager.setup.useProofreaders"
+msgstr ""
+"Οι εκδόσεις ορίζουν τους Επιμελητές Τυπογραφικών Δοκιμίων οι οποίοι (μαζί με "
+"τους συγγραφείς) ελέγχουν τα τυπογραφικά δοκίμια."
+
+msgid "manager.setup.userRegistration"
+msgstr "Εγγραφή Χρήστη"
+
+msgid "manager.setup.useTextTitle"
+msgstr "Κείμενο τίτλου"
+
+msgid "manager.setup.volumePerYear"
+msgstr "Τόμοι ανά έτος"
+
+msgid "manager.setup.publicationFormat.code"
+msgstr "Μορφότυπο (format)"
+
+msgid "manager.setup.publicationFormat.codeRequired"
+msgstr "Απαιτείτε επιλογή Μορφότυπου (format)"
+
+msgid "manager.setup.publicationFormat.nameRequired"
+msgstr "Απαιτείται ένα όνομα για αυτή το Μορφότυπο(format)."
+
+msgid "manager.setup.publicationFormat.physicalFormat"
+msgstr "Είναι αυτό ένα μη-ψηφιακό μορφότυπο?"
+
+msgid "manager.setup.publicationFormat.inUse"
+msgstr ""
+"Λόγο ότι αυτό το μορφότυπο δημοσίευσης είναι προς το παρόν σε χρήση από μια "
+"μονογραφία των εκδόσεων σας, δεν είναι δυνατό να διαγραφεί."
+
+msgid "manager.setup.newPublicationFormat"
+msgstr "Νέο Μορφότυπο Δημοσίευσης"
+
+msgid "manager.setup.newPublicationFormatDescription"
+msgstr ""
+"Για να δημιουργήσετε ένα νέο μορφότυπο δημοσίευσης, συμπληρώστε την παρακάτω "
+"φόρμα και κάντε κλικ στο κουμπί \"Δημιουργία\"."
+
+msgid "manager.setup.genresDescription"
+msgstr ""
+"Τα Μέρη(Genre) του βιβλίου που χρησιμοποιούνται για την κατάταξη-ονομασία "
+"των αρχείων μιας έκδοσης, παρουσιάζονται σε ένα κυλιόμενο μενού για τη "
+"μεταφόρτωση αρχείων. Τα μέρη του βιβλίου που ορίζονται με το σύμβολο ## "
+"επιτρέπουν τον χρήστη να συνδέσει το αρχείο είτε με όλο το βιβλίο (99Ζ) ή με "
+"ένα συγκεκριμένο αριθμό κεφαλαίου του βιβλίου (πχ. 02)."
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr ""
+
+msgid "manager.setup.disableSubmissions.description"
+msgstr ""
+
+msgid "manager.setup.genres"
+msgstr "Τύποι Βιβλίου (Genres)"
+
+msgid "manager.setup.newGenre"
+msgstr "Δημιουργία Νέου τύπου Βιβλίου της Μονογραφίας"
+
+msgid "manager.setup.newGenreDescription"
+msgstr ""
+"Για να δημιουργείσετε ένα νέο τύπο βιβλίου (genre), συμπληρώστε την παρακάτω "
+"φόρμα και επιλέξτε το κουμπί \"Δημιουργία\"."
+
+msgid "manager.setup.deleteSelected"
+msgstr "Διαγραφή επιλεγμένων"
+
+msgid "manager.setup.restoreDefaults"
+msgstr "Επαναφορά προεπιλεγμένων ρυθμίσεων"
+
+msgid "manager.setup.prospectus"
+msgstr "Οδηγός Πρότασης Έκδοσης/Prospectus Guide"
+
+msgid "manager.setup.prospectusDescription"
+msgstr ""
+"Ο οδηγός πρότασης μιας έκδοσης(prospectus guide) αποτελεί ένα κείμενο "
+"οδηγιών των εκδόσεων που βοηθά τους συγγραφείς να περιγράψουν το "
+"υποβαλλόμενο υλικό με τρόπο που βοηθά τη συντακτική επιτροπή να προσδιορίσει "
+"την αξία της υποβολής. Μία πρόταση μπορεί να περιλαμβάνει πολλά στοιχεία - "
+"από την δυναμική του έργου στην αγορά των επιστημονικών εκδόσεων ως την "
+"επιστημονική και θεωρητική του αξία. Σε κάθε περίπτωση, οι εκδόσεις πρέπει "
+"να δημιουργήσουν έναν οδηγό πρότασης που θα συμπληρώνει την αντζέντα των "
+"οδηγιών και των πολιτικών που ακολουθεί."
+
+msgid "manager.setup.submitToCategories"
+msgstr "Ένταξη της υποβολής σε Κατηγορία"
+
+msgid "manager.setup.submitToSeries"
+msgstr "Ένταξη της υποβολής σε Σειρά"
+
+msgid "manager.setup.issnDescription"
+msgstr ""
+"Ο ISSN (διεθνής πρότυπος αριθμός περιοδικής έκδοσης) αποτελεί αριθμό με οκτώ "
+"ψηφία που προσδιορίζει περιοδικές εκδόσεις όπως η συγκεκριμένη, "
+"συμπεριλαμβανομένων των αριθμών περιοδικής έκδοσης σε ηλεκτρονική μορφή. "
+"Διαχειρίζεται από παγκόσμιο δίκτυο Εθνικών Κέντρων που συντονίζονται από "
+"Διεθνές Κέντρο με βάση το Παρίσι, υποστηριζόμενο από την Unesco και τη "
+"Γαλλική κυβέρνηση. Η λήψη του αριθμού αυτού μπορεί να γίνει από τον ιστότοπο "
+"του ISSN . Αυτό "
+"μπορεί να πραγματοποιηθεί σε οποιοδήποτε σημείο χειρισμού των εκδόσεων."
+
+msgid "manager.setup.currentFormats"
+msgstr "Τρέχοντα Μορφότυπα"
+
+msgid "manager.setup.categoriesAndSeries"
+msgstr "Κατηγορίες και Σειρές"
+
+msgid "manager.setup.categories.description"
+msgstr ""
+"Μπορείτε να δημιουργήσετε μία λίστα με κατηγορίες που θα σα βοηθήσει να "
+"οργανώσετε τις δημοσιεύσεις σας. Οι κατηγορίες ομαδοποιούν τα βιβλία ανάλογα "
+"με το αντικείμενο, για παράδειγμα Οικονομικά, Λογοτεχνικά, Ποίηση, κλπ. "
+"Ορισμένες κατηγορίες μπορούν να ταξιθετηθούν σε \"γονικές\" κατηγορίες: για "
+"παράδειγμα, η γονική κατηγορία Οικονομικά μπορεί να περιλαμβάνει την "
+"Μικροοικονομία και Μακροοικονομία. Οι επισκέπτες μπορούν να ανζητήσουν και "
+"να περιηγηθούν στις εκδόσεις ανά κατηγορία"
+
+msgid "manager.setup.series.description"
+msgstr ""
+"Μπορείτε να δημιουργήσετε οποιοδήποτε αριθμό σειρών για να οργανώσετε τις "
+"δημοσιεύσεις σας. Μία Σειρά αντιπροσωπεύει μια σειρά ιδιαίτερων εκδόσεων "
+"σχετικά με ένα θέμα ή επιστημονικό πεδίο. Μία Σειρά μπορεί να δημιουργηθεί "
+"μετά από πρόταση ενός ή δύο συντελεστών, συνήθως επιστημονικό προσωπικό ή "
+"ΔΕΠ, οι οποίοι μπορεί να αναλάβουν και την επιβλεψη ή επιμέλεια της. Οι "
+"επισκέπτες μπορούν να ανζητήσουν και να περιηγηθούν στις εκδόσεις ανά σειρά."
+
+msgid "manager.setup.reviewForms"
+msgstr "Φόρμες Αξιολόγησης"
+
+msgid "manager.setup.roleType"
+msgstr "Τύπος Ρόλου"
+
+msgid "manager.setup.authorRoles"
+msgstr "Ρόλοι Συγγραφέων"
+
+msgid "manager.setup.managerialRoles"
+msgstr "Ρόλοι Διαχείρισης"
+
+msgid "manager.setup.availableRoles"
+msgstr "Διαθέσιμοι Ρόλοι"
+
+msgid "manager.setup.currentRoles"
+msgstr "Τρέχον Ρόλοι"
+
+msgid "manager.setup.internalReviewRoles"
+msgstr "Ρόλοι Εσωτερικής Αξιολόγησης"
+
+msgid "manager.setup.masthead"
+msgstr "Ταυτότητα"
+
+msgid "manager.setup.editorialTeam"
+msgstr "Συντακτική ομάδα"
+
+msgid "manager.setup.editorialTeam.description"
+msgstr ""
+"Η Ταυτότητα πρέπει να περιέχει μια λίστα από επιμελητές, υπεύθυνους "
+"διαχείρισης, και άλλα πρόσωπα που συνδέονται με τις Εκδόσεις. Πληροφορίες "
+"που καταχωρούνται εδώ θα εμφανιστούν στη σελίδα \"Σχετικά\" των εκδόσεων"
+
+msgid "manager.setup.files"
+msgstr "Αρχεία"
+
+msgid "manager.setup.productionTemplates"
+msgstr "Πρότυπα Παραγωγής"
+
+msgid "manager.files.note"
+msgstr ""
+"Σημείωση: To ευρετήριο αρχείων αποτελεί προηγμένη λειτουργία που παρέχει τη "
+"δυνατότητα σε αρχεία και καταλόγους που αφορούν τις εκδόσεις να προβάλλονται "
+"και να χειρίζονται άμεσα."
+
+msgid "manager.setup.copyrightNotice.sample"
+msgstr ""
+"Προτεινόμενες Δηλώσεις Προστασίας Πνευματικών Δικαιωμάτων Creative "
+"Commons
\n"
+"Προτεινόμενη πολιτική για Εκδόσεις που παρέχουν Ανοικτή Πρόσβαση (Offer "
+"Open Access)
\n"
+"Οι Συγγραφείς που δημοσιεύουν το έργο τους με αυτές τις εκδόσεις συμφωνούν "
+"με τους ακόλουθους όρους:\n"
+"\n"
+"\t- Οι συγγραφείς διατηρούν τα πνευματικά διακιώματα και εκχωρούν το "
+"δικαίωμα της πρώτης δημοσίευσης στις εκδόσεις ενώ ταυτόχρονα τα πνευματικά "
+"δικαιώματα του έργου προστατεύονται σύμφωνα με την Creative Commons Attribution "
+"License που επιτρέπει σε τρίτους - αποδέκτες της άδειας να χρησιμοποιούν "
+"το έργο όπως θέλουν με την προϋπόθεση της διατήρησης των διατυπώσεων που "
+"προβλέπονται στην άδεια σχετικά με την αναφορά στον αρχικό δημιουργό και την "
+"αρχική δημοσίευση σε αυτές τις εκδόσεις.
\n"
+"\t- Οι συγγραφείς μπορούν να συνάπτουν ξεχωριστές, και πρόσθετες συμβάσεις "
+"και συμφωνίες για την μη αποκλειστική διανομή του έργου όπως δημοσιεύτηκε "
+"στις εκδόσεις συτές (πχ. κατάθεση σε ένα ακαδημαϊκό καταθετήριο ή "
+"δημοσίευση σε ένα βιβλίο), με την προϋπόθεση της αναγνώρισης και της "
+"αναφοράς της πρώτης δημοσίευσης σε αυτές τις εκδόσεις.
\n"
+"\t- Οι εκδόσεις επιτρέπουν και ενθαρρύνουν τους συγγραφείς να καταθέτουν "
+"τις εργασίες τους online (π.χ. σε ένα ακαδημαϊκό καταθετήριο ή στις "
+"προσωπικές τους ιστοσελίδες) πριν και μετά από τις διαδικασίες της "
+"δημοσίευσης, καθώς αυτό μπορεί να οδηγήσει σε παραγωγικές ανταλλαγές ιδεών "
+"και σκέψεων καθώς επίσης και σε γρηγορότερη και μεγαλύτερη χρήση και "
+"ευρετηρίαση της δημοσιευμένης εργασίας (Βλέπε The Effect of Open "
+"Access).
\n"
+"
\n"
+"\n"
+"Προτεινόμενη πολιτική για Εκδόσεις που παρέχουν Καθυστερημένη Ανοικτή "
+"Πρόσβαση (Delayed Open Access)
\n"
+"Οι Συγγραφείς που δημοσιεύουν το έργο τους με αυτές τις εκδόσεις συμφωνούν "
+"με τους ακόλουθους όρους:\n"
+"\n"
+"\t- Οι συγγραφείς διατηρούν τα πενευματικά δικαιώματα και εκχωρούν το "
+"δικαίωμα της πρώτης δημοσίευσης στις εκδόσεις, ενώ παράλληλα και "
+"[ΠΡΟΣΔΙΟΡΙΣΤΕ ΧΡΟΝΙΚΗ ΠΕΡΙΟΔΟ] μετά την δημοσίευση λαμβάνει άδεια προστασίας "
+"των πνευματικών δικαιωμάτων σύμφωνα με την Creative Commons Attribution "
+"License που επιτρέπει σε τρίτους - αποδέκτες της άδειας να χρησιμοποιούν "
+"την εργασία όπως θέλουν με την προϋπόθεση της διατήρησης των διατυπώσεων που "
+"προβλέπονται στην άδεια σχετικά με την αναφορά στον αρχικό δημιουργό και την "
+"αρχική δημοσίευση σε αυτές τις εκδόσεις.
\n"
+"\t - Οι συγγραφείς μπορούν να συνάπτουν ξεχωριστές, και πρόσθετες "
+"συμβάσεις και συμφωνίες για την μη αποκλειστική διανομή της εργασίας όπως "
+"δημοσιεύτηκε στο περιοδικό αυτό (π.χ. κατάθεση σε ένα ακαδημαϊκό καταθετήριο "
+"ή δημοσίευση σε ένα βιβλίο), με την προϋπόθεση της αναγνώρισης και την "
+"αναφοράς της πρώτης δημοσίευσης σε αυτές τις εκδόσεις.
\n"
+"\t - Οι εκδόσεις επιτρέπουν και ενθαρρύνουν τους συγγραφείς να καταθέτουν "
+"τις εργασίες τους online (π.χ. σε ένα ακαδημαϊκό καταθετήριο ή στις "
+"προσωπικές τους ιστοσελίδες) πριν και μετά από τις διαδικασίες της "
+"δημοσίευσης, καθώς αυτό μπορεί να οδηγήσει σε παραγωγικές ανταλλαγές ιδεών "
+"και σκέψεων καθώς επίσης και σε γρηγορότερη και μεγαλύτερη χρήση και "
+"ευρετηρίαση της δημοσιευμένης εργασίας (Βλέπε The Effect of Open "
+"Access).
\n"
+"
"
+
+msgid "manager.setup.basicEditorialStepsDescription"
+msgstr ""
+"Βήματα: Σειρά αναμονής Υποβολής > Αξιολόγηση Υποβολής > Διαμόρφωση "
+"Υποβολής > Πίνακας Περιεχομένων.
\n"
+"Επιλέξτε ένα μοντέλο για χειρισμό των διαφόρων φάσεων της διαδικασίας "
+"επιμέλειας. (Για να καθορίζετε επιμελητή διαχείρισης και επιμελητές σειρών, "
+"μεταβείτε στους «Επιμελητές» στη «Διαχείριση Εκδόσεων».)"
+
+msgid "manager.setup.referenceLinkingDescription"
+msgstr ""
+"Για να δίνεται η δυνατότητα στους αναγνώστες να εντοπίζουν online "
+"εκδόσεις των εργασιών που αναφέρονται από έναν συγγραφέα, οι παρακάτω "
+"επιλογές είναι διαθέσιμες.
\n"
+"\n"
+"\n"
+"\t- Προσθήκη ενός Εργαλείου Ανάγνωσης
Ο Διαχειριστής "
+"των Εκδόσεων μπορεί να προσθέσει την επιλογή \"Εύρεση Αναφορών\" στα "
+"Εργαλεία Ανάγνωσης που συνοδεύουν τα δημοσιευμένα τεκμήρια, που δίνουν την "
+"δυνατότητα στους αναγνώστες να επικολήσουν τον τίτλο της αναφοράς και να "
+"αναζητήσουν την αντίστοιχη εργασία σε προεπιλεγμένες επσιτημονικές βάσεις "
+"δεδομένων.
\n"
+"\t- Ενσωμμάτωση Συνδέσμων στις Αναφορές
Ο Επιμελητής "
+"Σελιδοποίησης μπορεί να προσθέσει έναν σύνδεσμο σε αναφορές που μπορούν να "
+"βρεθούν online σύμφωνα με τις παρακάτω οδηγίες (και οι οποίες μπορούν να "
+"διαμορφωθούν κατά περίπτωση ).
\n"
+"
"
+
+msgid "manager.publication.library"
+msgstr ""
+
+msgid "manager.setup.resetPermissions"
+msgstr ""
+
+msgid "manager.setup.resetPermissions.confirm"
+msgstr ""
+
+msgid "manager.setup.resetPermissions.description"
+msgstr ""
+
+msgid "manager.setup.resetPermissions.success"
+msgstr ""
+
+msgid "grid.genres.title.short"
+msgstr ""
+
+msgid "grid.genres.title"
+msgstr ""
+
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr ""
+"Αποστολή αντιγράφου στον κύριο υπεύθυνο επικοινωνίας των εκδόσεων, που έχει "
+"ορισθεί στο βήμα 1 των ρυθμίσεων."
+
+msgid "grid.series.pathAlphaNumeric"
+msgstr ""
+
+msgid "grid.series.pathExists"
+msgstr ""
+
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr ""
+
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr ""
+
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr ""
+
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr ""
+
+msgid "grid.series.urlWillBe"
+msgstr ""
+
+msgid "stats.contextStats"
+msgstr ""
+
+msgid "stats.context.tooltip.text"
+msgstr ""
+
+msgid "stats.context.tooltip.label"
+msgstr ""
+
+msgid "stats.context.downloadReport.description"
+msgstr ""
+
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr ""
+
+msgid "stats.context.downloadReport.downloadContext"
+msgstr ""
+
+msgid "stats.publications.downloadReport.description"
+msgstr ""
+
+msgid "stats.publications.downloadReport.downloadSubmissions"
+msgstr ""
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr ""
+
+msgid "stats.publicationStats"
+msgstr ""
+
+msgid "stats.publications.details"
+msgstr ""
+
+msgid "stats.publications.none"
+msgstr ""
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr ""
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr ""
+
+msgid "stats.publications.countOfTotal"
+msgstr ""
+
+msgid "stats.publications.abstracts"
+msgstr ""
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr ""
+
+msgid "plugins.importexport.common.error.validation"
+msgstr ""
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr ""
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr ""
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr ""
+
+msgid ""
+"manager.setup.notifications.copySubmissionAckPrimaryContact.disabled."
+"description"
+msgstr ""
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr ""
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr ""
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr ""
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr ""
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr ""
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr ""
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr ""
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr ""
+
+msgid "mailable.validateEmailContext.name"
+msgstr ""
+
+msgid "mailable.validateEmailContext.description"
+msgstr ""
+
+msgid "doi.displayName"
+msgstr ""
+
+msgid "doi.manager.displayName"
+msgstr ""
+
+msgid "doi.description"
+msgstr ""
+
+msgid "doi.readerDisplayName"
+msgstr ""
+
+msgid "doi.manager.settings.description"
+msgstr ""
+
+msgid "doi.manager.settings.explainDois"
+msgstr ""
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr ""
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr ""
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr ""
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr ""
+
+msgid "doi.manager.settings.doiPrefix"
+msgstr ""
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr ""
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiReassign"
+msgstr ""
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr ""
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr ""
+
+msgid "doi.editor.doi"
+msgstr ""
+
+msgid "doi.editor.doi.description"
+msgstr ""
+
+msgid "doi.editor.doi.assignDoi"
+msgstr ""
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr ""
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr ""
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr ""
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr ""
+
+msgid "doi.editor.customSuffixMissing"
+msgstr ""
+
+msgid "doi.editor.missingParts"
+msgstr ""
+
+msgid "doi.editor.patternNotResolved"
+msgstr ""
+
+msgid "doi.editor.canBeAssigned"
+msgstr ""
+
+msgid "doi.editor.assigned"
+msgstr ""
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr ""
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr ""
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr ""
+
+msgid "doi.editor.assignDoi"
+msgstr ""
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr ""
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr ""
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr ""
+
+msgid "doi.editor.missingPrefix"
+msgstr ""
+
+msgid "doi.editor.preview.publication"
+msgstr ""
+
+msgid "doi.editor.preview.publication.none"
+msgstr ""
+
+msgid "doi.editor.preview.chapters"
+msgstr ""
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr ""
+
+msgid "doi.editor.preview.files"
+msgstr ""
+
+msgid "doi.editor.preview.objects"
+msgstr ""
+
+msgid "doi.manager.submissionDois"
+msgstr ""
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr ""
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr ""
+
+msgid "manager.institutions.noContext"
+msgstr ""
+
+msgid "manager.manageEmails.description"
+msgstr ""
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr ""
+
+msgid "mailable.indexRequest.name"
+msgstr ""
+
+msgid "mailable.indexComplete.name"
+msgstr ""
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr ""
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr ""
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+
+#~ msgid "manager.languages.languageInstructions"
+#~ msgstr ""
+#~ "Το OMP είναι διαθέσιμο στους χρήστες σε όλες τις υποστηριζόμενες γλώσσες. "
+#~ "Επίσης το OMP μπορεί να λειτουργήσει ως ένα εν μέρει πολυγλωσσικό "
+#~ "σύστημα, που παρέχει στους χρήστες τη δυνατότητα να αλλάζουν γλώσσες σε "
+#~ "κάθε σελίδα και, επίσης, επιτρέπει τη δυνατότητα καταχώρισης ορισμένων "
+#~ "δεδομένων σε δύο πρόσθετες γλώσσες.
Εάν μια γλώσσα που "
+#~ "υποστηρίζεται από το OMP δεν εμφανίζεται παρακάτω, απευθυνθείτε στον "
+#~ "διαχειριστή του ιστοτόπου για να εγκαταστήσει τη γλώσσα από τη διεπαφή "
+#~ "διαχείρισης του ιστοτόπου. Για οδηγίες σχετικά με την προσθήκη "
+#~ "υποστήριξης για νέες γλώσσες, ανατρέξτε τα έγγραφα τεκμηρίωσης του OMP."
+
+#~ msgid "manager.series.noSeriesEditors"
+#~ msgstr ""
+#~ "Δεν υπάρχουν επιμελητές σειράς ακόμη. Προσθέστε σε αυτό τον ρόλο "
+#~ "τουλάχιστον ένα χρήστη από το Διαχείριση > Ρυθμίσεις > Χρήστες & "
+#~ "Ρόλοι."
+
+#~ msgid "manager.series.noCategories"
+#~ msgstr ""
+#~ "Δεν έχουν οριστεί κατηγορίες ακόμη. Εάν επιθυμείτε να εντάξετε αυτή τη "
+#~ "σειρά σε κατηγορίες, κλείστε αυτή τη λειτουργία και επιλέξτε την καρτέλα "
+#~ "'Κατηγορίες' και δημιουργείστε μία πρώτα."
+
+#~ msgid "manager.people.existingUserRequired"
+#~ msgstr "Ένας υπάρχον χρήστης πρέπει να εισαχθεί."
+
+#~ msgid "settings.roles.gridDescription"
+#~ msgstr ""
+#~ "Οι Ρόλοι αποτελούν τις ομάδες χρηστών μιας έκδοσης που έχουν πρόσβαση σε "
+#~ "διαφορετικά επίπεδα αδειών και σχετικών εργασιών κατά την εκδοτική "
+#~ "διαδικασία. Υπάρχουν πέντε διαφορετικά επίπεδα αδειών: οι Διαχειριστές "
+#~ "των Εκδόσεων έχουν πρόσβαση σε όλες τις λειτουργίες και εργασίες των "
+#~ "εκδόσεων (περιεχόμενο και ρυθμίσεις), οι Επιμελητές Έκδοσης (Press "
+#~ "Editors) έχουν πρόσβαση σε όλο το περιεχόμενο της σειράς που "
+#~ "επιμελούνται, οι Βοηθοί Έκδοσης έχουν πρόσβαση σε όλες τις μονογραφίες "
+#~ "που τους έχουν ανατεθεί από έναν επιμελητή, οι Αξιολογητές μπορούν να "
+#~ "δούν και να πραγματοποιήσουν τις αξιολογήσεις που του έχουν ανατεθεί και "
+#~ "οι Συγγραφείς μπορούν να δούν και να αλληλεπιδρούν με περιορισμένο αριθμό "
+#~ "πληροφοριών σχετικά με την πορεία της υποβολή τους. Επιπρόσθετα, υπάρχουν "
+#~ "πέντε διαφορετικά στάδια αναθέσεων στα οποία οι ρόλοι χρηστών μπορεί να "
+#~ "έχουν πρόσβαση: Υποβολή, Εσωτερική Αξιολόγηση, Εξωτερική Αξιολόγηση, "
+#~ "Σύνταξη και Παραγωγή."
+
+#~ msgid "manager.setup.addContributor"
+#~ msgstr "Προσθήκη Συντελεστή"
+
+#~ msgid "manager.setup.additionalContent"
+#~ msgstr "Πρόσθετο περιεχόμενο"
+
+#~ msgid "manager.setup.additionalContentDescription"
+#~ msgstr ""
+#~ "Εισάγετε στο παρακάτω πεδίο το κείμενο που επιθυμείτε με τη μορφή απλού "
+#~ "κειμένου ή HTML κώδικα και το οποίο θα εμφανίζεται κάτω από την εικόνα "
+#~ "της αρχικής σελίδας, σε περίπτωση που έχει ήδη φορτωθεί κάποια."
+
+#~ msgid "manager.setup.alternateHeader"
+#~ msgstr "Εναλλακτική κεφαλίδα"
+
+#~ msgid "manager.setup.alternateHeaderDescription"
+#~ msgstr ""
+#~ "Εναλλακτικά, αντί του τίτλου και του λογοτύπου, μια HTML έκδοση της "
+#~ "κεφαλίδας μπορεί να τοποθετηθεί στο παρακάτω πλαίσιο κειμένου. Εάν δεν "
+#~ "είναι απαραίτητο, αφήστε κενό το πλαίσιο κειμένου."
+
+#~ msgid "manager.setup.authorCopyrightNotice"
+#~ msgstr "Δήλωση για τα πνευματικά δικαιώματα"
+
+#~ msgid "manager.setup.authorCopyrightNoticeAgree"
+#~ msgstr ""
+#~ "Απαιτείται η συμφωνία των συγγραφέων με τη Δήλωση για τα πνευματικά "
+#~ "δικαιώματα, ως μέρος της διαδικασίας υποβολής."
+
+#~ msgid "manager.setup.authorCopyrightNotice.description"
+#~ msgstr ""
+#~ "Η συγκεκριμένη δήλωση για τα πνευματικά δικαιώματα εμφανίζεται στο μενού "
+#~ "«Σχετικά με τις εκδόσεις» και σε κάθε δημοσιευμένο μεταδεδομένο του "
+#~ "τεκμηρίου. Αν και εναπόκειται στις Εκδόσεις να καθορίσουν τη φύση της "
+#~ "συμφωνίας περί πνευματικών δικαιωμάτων με τους συγγραφείς, το Public "
+#~ "Knowledge Project συνιστά τη χρήση των Creative Commons αδειών. Για το "
+#~ "σκοπό αυτό, παρέχει έναδείγμα σημιώματος Πνευματικών Δικαιωμάτων "
+#~ "το οποίο μπορείτε να κάνετε αποκοπή και επικόλληση στο παρακάτω χώρο για "
+#~ "τις εκδόσεις που α) παρέχουν ανοικτή πρόσβαση, β) παρέχουν καθυστερημένη "
+#~ "πρόσβαση (delayed open access), ή γ) δεν παρέχουν ανοικτή πρόσβαση."
+
+#~ msgid "manager.setup.authorGuidelines.description"
+#~ msgstr ""
+#~ "Διατύπωση προτύπων βιλιογραφίας και μορφοποίησης για συγγραφείς, που "
+#~ "χρησιμοποιούνται για τεκμήρια που υποβάλλονται στις εκδόσεις (π.χ., "
+#~ "Εγχειρίδιο έκδοσης της Αμερικανικής Ένωσης Ψυχολόγων (American "
+#~ "Psychological Association), 5η έκδοση, 2001). Ιδιαίτερα βοηθητική "
+#~ "είναι η παροχή παραδειγμάτων κοινών μορφών αναφορών και μορφοποίησης για "
+#~ "εκδόσεις και βιβλία που πρέπει να χρησιμοποιούνται στις υποβολές."
+
+#~ msgid "manager.setup.contributor"
+#~ msgstr "Συντελεστής"
+
+#~ msgid "manager.setup.contributors"
+#~ msgstr "Πηγές Υποστήριξης"
+
+#~ msgid "manager.setup.contributors.description"
+#~ msgstr ""
+#~ "Πρόσθετοι παράγοντες ή οργανισμοί που παρέχουν οικονομική ή παρεμφερή "
+#~ "υποστήριξη για τις εκδόσεις εμφανίζονται στο πεδίο Σχετικά με τις "
+#~ "Εκδόσεις και ενδέχεται να συνοδεύονται και από ευχαριστήριο σημείωμα."
+
+#~ msgid "manager.setup.doiPrefix"
+#~ msgstr "Πρόθημα DOI (DOI Prefix)"
+
+#~ msgid "manager.setup.doiPrefixDescription"
+#~ msgstr ""
+#~ "Το πρόθημα DOI (Αναγνωριστικό Ψηφιακού Αντικειμένου) ανατίθεται από CrossRef και "
+#~ "βρίσκεται σε μορφή 10.xxxx (π.χ. 10.1234)."
+
+#~ msgid "manager.setup.emailSignatureDescription"
+#~ msgstr ""
+#~ "Τα έτοιμα μηνύματα ηλεκτρονικού ταχυδρομείου που αποστέλλονται μέσω του "
+#~ "συστήματος για λογαριασμό των εκδόσεων θα φέρουν την ακόλουθη υπογραφή "
+#~ "στο τέλος τους. Το κύριο σώμα των μηνυμάτων είναι διαθέσιμο για "
+#~ "επεξεργασία παρακάτω."
+
+#~ msgid "manager.setup.homepageImage"
+#~ msgstr "Εικόνα αρχικής σελίδας"
+
+#~ msgid "manager.setup.homepageImageDescription"
+#~ msgstr ""
+#~ "Προσθήκη εικόνας ή αρχείου γραφικών στο μέσο της σελίδας. Εάν "
+#~ "χρησιμοποιείτε το προεπιλεγμένο πρότυπο και css, το μέγιστο πλάτος της "
+#~ "εικόνας θα είναι 750px για το πρώτο πλαίσιο και 540px για το δεύτερο. Εάν "
+#~ "χρησιμοποιείτε ένα προσαρμοσμένο πρότυπο ή css, οι τιμές αυτές μπορεί να "
+#~ "αλλάξουν."
+
+#~ msgid "manager.setup.mailingAddress.description"
+#~ msgstr "Φυσική τοποθεσία και ταχυδρομική διεύθυνση των εκδόσεων."
+
+#~ msgid "manager.setup.notifications"
+#~ msgstr "Γνωστοποίηση συγγραφέων για την ολοκλήρωση της υποβολής"
+
+#~ msgid "manager.setup.notifications.copySpecifiedAddress"
+#~ msgstr "Αποστολή αντιγράφου σε αυτή τη διεύθυνση ηλεκτρονικού ταχυδρομείου:"
+
+#~ msgid "manager.setup.notifications.description"
+#~ msgstr ""
+#~ "Με την ολοκλήρωση της διαδικασίας υποβολής, οι συγγραφείς λαμβάνουν "
+#~ "αυτόματα ένα ευχαριστήριο μήνυμα ηλεκτρονικού ταχυδρομείου (που μπορεί να "
+#~ "προβληθεί και να πεξεργαστεί στα Έτοιμα Email). Επιπλέον, αντίγραφο του "
+#~ "μηνύματος αυτού μπορεί να αποσταλεί ως εξής:"
+
+#~ msgid "manager.setup.openAccess"
+#~ msgstr "Οι εκδόσεις παρέχουν ανοικτή πρόσβαση στο περιεχόμενο τους."
+
+#~ msgid "manager.setup.openAccessPolicy"
+#~ msgstr "Πολιτική ανοικτής πρόσβασης"
+
+#~ msgid "manager.setup.openAccessPolicy.description"
+#~ msgstr ""
+#~ "Εάν οι εκδόσεις παρέχουν άμεσα ελεύθερη πρόσβαση στο σύνολο του "
+#~ "περιεχομένου τους, εισαγάγετε δήλωση σχετικά με την πολιτική ανοικτής "
+#~ "πρόσβασης που θα εμφανίζεται στο μενού «Σχετικά με τις εκδόσεις»."
+
+#~ msgid "manager.setup.peerReview.description"
+#~ msgstr ""
+#~ "Περιγράψτε τις πολιτικές και τις διαδικασίες των εκδόσεων σχετικά με την "
+#~ "αξιολόγηση από ομότιμους αξιολογητές, για αναγνώστες και συγγραφείς, "
+#~ "συμπεριλαμβανομένου του αριθμού των αξιολογητών που συνήθως "
+#~ "χρησιμοποιούνται στην αναθεώρηση υποβολής, των κριτηρίων βάσει των οποίων "
+#~ "οι αξιολογητές καλούνται να κρίνουν υποβολές, του τυπικού χρόνου που "
+#~ "απαιτείται για τη διεξαγωγή αξιολογήσεων και των πολιτικών συνεργασίας με "
+#~ "τους αξιολογητές. Αυτό εμφανίζεται στο πεδίο Σχετικά με τις εκδόσεις."
+
+#~ msgid "manager.setup.principalContact"
+#~ msgstr "Κύριος Υπεύθυνος Επικοινωνίας"
+
+#~ msgid "manager.setup.principalContactDescription"
+#~ msgstr ""
+#~ "Η εν λόγω θέση που μπορεί να θεωρηθεί θέση κύριας επιμέλειας, διαχείρισης "
+#~ "επιμέλειας ή διοικητικού προσωπικού θα καταχωρηθεί στην αρχική σελίδα των "
+#~ "εκδόσεων στο πεδίο Υπεύθυνος επικοινωνίας, μαζί με τον Υπεύθυνο για "
+#~ "Τεχνική Υποστήριξη."
+
+#~ msgid "manager.setup.privacyStatement"
+#~ msgstr "Δήλωση απορρήτου"
+
+#~ msgid "manager.setup.privacyStatement2"
+#~ msgstr "Δήλωση απορρήτου"
+
+#~ msgid "manager.setup.privacyStatement.description"
+#~ msgstr ""
+#~ "Η συγκεκριμένη δήλωση εμφανίζεται στο πεδίο Σχετικά με τις Εκδόσεις καθώς "
+#~ "και στις σελίδες εγγραφής συγγραφέα για Υποβολή και Ειδοποίησης. Παρακάτω "
+#~ "υπάρχει συνιστώμενη πολιτική απορρήτου, η οποία μπορεί να αναθεωρηθεί ανά "
+#~ "πάσα στιγμή."
+
+#~ msgid "manager.setup.reviewOptions.noteOnModification"
+#~ msgstr ""
+#~ "Μπορεί να τροποποιηθεί για κάθε υποβολή κατά την εκδοτική διαδικασία."
+
+#~ msgid "manager.setup.reviewOptions.reviewTime"
+#~ msgstr "Χρόνος αξιολόγησης"
+
+#~ msgid "manager.setup.sponsors.description"
+#~ msgstr ""
+#~ "Τα ονόματα των χορηγών (π.χ., επιστημονικές ενώσεις, πανεπιστημιακά "
+#~ "τμήματα, συνεργασίες, κτλ.) που αποτελούν τους χορηγούς των εκδόσεων "
+#~ "εμφανίζονται στο πεδίο Σχετικά με τις Εκδόσεις και ενδέχεται να "
+#~ "συνοδεύονται και από ευχαριστήριο σημείωμα."
+
+#~ msgid "manager.setup.technicalSupportContact"
+#~ msgstr "Υπεύθυνος Επικοινωνίας για Τεχνική Υποστήριξη"
+
+#~ msgid "manager.setup.technicalSupportContactDescription"
+#~ msgstr ""
+#~ "Το εν λόγω άτομο θα καταχωρηθεί στη σελίδα του Υπεύθυνου επικοινωνίας των "
+#~ "εκδόσεων για χρήση από επιμελητές, συγγραφείς και αξιολογητές και πρέπει "
+#~ "να διαθέτει την ανάλογη εργασιακή εμπειρία μέσω του συστήματος για όλες "
+#~ "τις δυνατότητες του. Το συγκεκριμένο σύστημα περιοδικών απαιτεί τεχνική "
+#~ "υποστήριξη σε μικρό βαθμό, θα πρέπει, συνεπώς, να θεώρηθεί ανάθεση "
+#~ "μερικής απασχόλησης. Μπορεί να προκύψουν περιπτώσεις, για παράδειγμα, "
+#~ "όταν οι συγγραφείς και οι αξιολογητές αντιμετωπίζουν δυσκολίες σχετικά με "
+#~ "τις οδηγίες ή τις μορφές των αρχείων, ή προκύπτει η ανάγκη επιβεβαίωσης "
+#~ "της συνεχούς εφεδρικής αποθήκευσης των εκδόσεων στον server."
+
+#~ msgid "manager.setup.useImageLogo"
+#~ msgstr "Εικόνα Λογοτύπου"
+
+#~ msgid "manager.setup.useImageLogoDescription"
+#~ msgstr ""
+#~ "Ένα προαιρετικό λογότυπο θα μπορούσε να ανεβεί και ν αχρησιμοποιηθεί σε "
+#~ "συνδυασμό με την εικόνα ή τον τίτλο που έχει ορισθεί παραπάνω."
diff --git a/locale/el/submission.po b/locale/el/submission.po
new file mode 100644
index 00000000000..1f400691269
--- /dev/null
+++ b/locale/el/submission.po
@@ -0,0 +1,612 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
+"PO-Revision-Date: 2019-11-28T15:10:06-08: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 "submission.upload.selectComponent"
+msgstr ""
+
+msgid "submission.title"
+msgstr ""
+
+msgid "submission.select"
+msgstr "Επιλογή Υποβολής"
+
+msgid "submission.synopsis"
+msgstr "Σύνοψη"
+
+msgid "submission.workflowType"
+msgstr "Τύπος Βιβλίου"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"Μια μονογραφία είναι ένα έργο που έχει συγγραφεί εξ' ολοκλήρου από έναν ή "
+"πολλούς συγγραφείς. Ένα έργο υπο επιμέλια έχει διαφορετικούς συγγραφείς για "
+"κάθε κεφάλαιο (λεπτομέρειες για το κάθε κεφάλαιο εισάγονται αργότερα κατα τη "
+"διάρκεια της διαδικασίας.)"
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr ""
+
+msgid "submission.workflowType.editedVolume"
+msgstr "Έργο υπο Επιμέλεια"
+
+msgid "submission.workflowType.authoredWork"
+msgstr "Μονογραφία"
+
+msgid "submission.workflowType.change"
+msgstr ""
+
+msgid "submission.editorName"
+msgstr ""
+
+msgid "submission.monograph"
+msgstr "Μονογραφία"
+
+msgid "submission.published"
+msgstr "Η Παραγωγή είναι έτοιμη"
+
+msgid "submission.fairCopy"
+msgstr "Τελικό Αντιγραφο (Fair Copy)"
+
+msgid "submission.authorListSeparator"
+msgstr ""
+
+msgid "submission.artwork.permissions"
+msgstr "Άδειες (Permissions)"
+
+msgid "submission.chapter"
+msgstr "Κεφάλαιο"
+
+msgid "submission.chapters"
+msgstr "Κεφάλαια"
+
+msgid "submission.chapter.addChapter"
+msgstr "Προσθήκη Κεφαλαίου"
+
+msgid "submission.chapter.editChapter"
+msgstr "Επεξεργασία Κεφαλαίου"
+
+msgid "submission.chapter.pages"
+msgstr ""
+
+msgid "submission.copyedit"
+msgstr "Επιμέλια Κειμένου"
+
+msgid "submission.publicationFormats"
+msgstr "Μορφότυπα Δημοσίευσης"
+
+msgid "submission.proofs"
+msgstr "Τυπογραφικά Δοκίμια"
+
+msgid "submission.download"
+msgstr "Λήψη αρχείων"
+
+msgid "submission.sharing"
+msgstr "Μοιραστείτε το"
+
+msgid "manuscript.submission"
+msgstr "Υποβολή Χειρογράφου"
+
+msgid "submission.round"
+msgstr "Γύρος {$round}"
+
+msgid "submissions.queuedReview"
+msgstr "Σε αξιολόγηση (In Review)"
+
+msgid "manuscript.submissions"
+msgstr "Χειρόγραφο Υποβολών"
+
+msgid "submission.metadata"
+msgstr "Μεταδεδομένα"
+
+msgid "submission.supportingAgencies"
+msgstr "Οργανισμοί Υποστήριξης"
+
+msgid "grid.action.addChapter"
+msgstr "Δημιουργία ενός νέου κεφαλαίου"
+
+msgid "grid.action.editChapter"
+msgstr "Επεξεργασία κεφαλαίου"
+
+msgid "grid.action.deleteChapter"
+msgstr "Διαγραφή αυτού του κεφαλαίου"
+
+msgid "submission.submit"
+msgstr "Εισαγωγή Νέας Υποβολής Βιβλίου"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Ξεκινήστε μια νέα υποβολή στις Εκδόσεις"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr ""
+
+msgid "submission.submit.upload"
+msgstr "Μεταφόρτωση"
+
+msgid "author.volumeEditor"
+msgstr ""
+
+msgid "author.isVolumeEditor"
+msgstr ""
+
+msgid "submission.submit.seriesPosition"
+msgstr "Θέση σε αυτή τη Σειρά (πχ. Βιβλίο 2, ή Τόμος 2)"
+
+msgid "submission.submit.seriesPosition.description"
+msgstr ""
+
+msgid "submission.submit.privacyStatement"
+msgstr "Πολιτική Προστασίας Προσωπικών Δεδομένων"
+
+msgid "submission.submit.contributorRole"
+msgstr "Ρόλος Συντελεστή"
+
+msgid "submission.submit.submissionFile"
+msgstr "Αρχείο Υποβολής"
+
+msgid "submission.submit.prepare"
+msgstr "Προετοιμασία"
+
+msgid "submission.submit.catalog"
+msgstr "Κατάλογος"
+
+msgid "submission.submit.metadata"
+msgstr "Μεταδεδομένα"
+
+msgid "submission.submit.finishingUp"
+msgstr "Ολοκληρώνοντας"
+
+msgid "submission.submit.confirmation"
+msgstr ""
+
+msgid "submission.submit.nextSteps"
+msgstr "Επόμενα Βήματα"
+
+msgid "submission.submit.coverNote"
+msgstr "Σημειώσεις Εξωφύλλου για τον επιμελητή έκδοσης"
+
+msgid "submission.submit.generalInformation"
+msgstr "Γενικές Πληροφορίες"
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"Οι εκδόσεις έχουν ενημερωθεί για την υποβολή σας και θα λάβετε ένα email "
+"επιβεβαίωσης για το αρχείο σας. Μόλις η εργασία σας αξιολογηθεί από τους "
+"επιμελητές, θα επικοινωνήσουμε μαζί σας."
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Παρακαλούμε διαβάστε και επισημάνετε τα στοιχεία στη λίστας ελέγχου της "
+"υποβολής σας. Το στοιχείο {$itemsRemaining} δεν έχει ελεγχθεί."
+
+msgid "submission.submit.placement"
+msgstr "Τοποθέτηση υποβολής"
+
+msgid "submission.submit.userGroup"
+msgstr "Υποβολή με το ρόλο μου ως..."
+
+msgid "submission.submit.noContext"
+msgstr ""
+
+msgid "grid.chapters.title"
+msgstr "Κεφάλαια"
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Διαγραφή αρχείου Επιμελητή Κειμένου"
+
+msgid "submission.complete"
+msgstr ""
+
+msgid "submission.incomplete"
+msgstr ""
+
+msgid "submission.editCatalogEntry"
+msgstr "Καταχώριση"
+
+msgid "submission.catalogEntry.new"
+msgstr "Νέα Καταχώριση στον καταλογο"
+
+msgid "submission.catalogEntry.add"
+msgstr ""
+
+msgid "submission.catalogEntry.select"
+msgstr ""
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr ""
+
+msgid "submission.catalogEntry.confirm"
+msgstr ""
+"Δημιουργείστε μια καταχώριση στον κατάλογο γι'αυτό το βιβλίο, βασιζόμενοι "
+"στα παρακάτω μεταδεδομένα."
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr ""
+"Παρακαλούμε επιβεβαιώστε ότι η υποβολή είναι έτοιμη να κατχωρηθεί στον "
+"καταλόγο."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr ""
+"Η μονογραφία έιναι έτοιμη να συμπεριληφθεί και να δημοσιευθεί στον κατάλογο."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr ""
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr ""
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr ""
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr ""
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Μονογραφία"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Κατάλογος"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Μορφότυπο Έκδοσης"
+
+msgid "submission.event.metadataPublished"
+msgstr "Τα μεταδεδομένα της μονογραφίας έχουν εγκριθεί για δημοσίευση."
+
+msgid "submission.event.metadataUnpublished"
+msgstr "Τα μεταδεδομένα της μονογραφίας δεν είναι πλέον δημοσιευμένα."
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr ""
+"Το μορφότυπο της δημοσίευσης \"{$publicationFormatName}\" είναι διαθέσιμο."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr ""
+"Το μορφότυπο της δημοσίευσης \"{$publicationFormatName}\" δεν είναι πλέον "
+"διαθέσιμο."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+"Το μορφότυπο της δημοσίευσης \"{$publicationFormatName}\" έχει εγκριθεί για "
+"δημοσίευση."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr ""
+"Το μορφότυπο της δημοσίεσυης \"{$publicationFormatName}\" δεν είναι πλέον "
+"δημοσιευμένο."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "Τα μεταδεδομένα του καταλόγου έχουν ενημερωθεί."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr ""
+"Τα μεταδεδομένα του μορφότυπου της δημοσίευσης για το \"{$formatName}\" "
+"έχουν ενημερωθεί."
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "Το μορφότυπο της δημοσίευσης \"{$formatName}\" έχει δημιουργηθεί."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "Το μορφότυπο της δημοσίευσης \"{$formatName}\" έχει αφαιρεθεί."
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr ""
+
+msgid "workflow.review.externalReview"
+msgstr ""
+
+msgid "submission.upload.fileContents"
+msgstr ""
+
+msgid "submission.dependentFiles"
+msgstr ""
+
+msgid "submission.metadataDescription"
+msgstr ""
+
+msgid "section.any"
+msgstr ""
+
+msgid "submission.list.monographs"
+msgstr ""
+
+msgid "submission.list.countMonographs"
+msgstr ""
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr ""
+
+msgid "submission.list.orderFeatures"
+msgstr ""
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+
+msgid "submission.list.saveFeatureOrder"
+msgstr ""
+
+msgid "submission.list.viewEntry"
+msgstr ""
+
+msgid "catalog.browseTitles"
+msgstr ""
+
+msgid "publication.catalogEntry"
+msgstr "Κατάλογος"
+
+msgid "publication.catalogEntry.success"
+msgstr ""
+
+msgid "publication.invalidSeries"
+msgstr ""
+
+msgid "publication.inactiveSeries"
+msgstr ""
+
+msgid "publication.required.issue"
+msgstr ""
+
+msgid "publication.publishedIn"
+msgstr ""
+
+msgid "publication.publish.confirmation"
+msgstr ""
+
+msgid "publication.scheduledIn"
+msgstr ""
+
+msgid "submission.publication"
+msgstr "Δημοσίευση"
+
+msgid "publication.status.published"
+msgstr "Δημοσιευμένο"
+
+msgid "submission.status.scheduled"
+msgstr "Προγραμματισμένο"
+
+msgid "publication.status.unscheduled"
+msgstr ""
+
+msgid "submission.publications"
+msgstr "Δημοσιεύσεις"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+"Το έτος πνευματικών δικαιωμάτων θα οριστεί αυτόματα όταν δημοσιευθεί σε ένα "
+"τεύχος."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+"Το έτος πνευματικών δικαιωμάτων θα οριστεί αυτόματα με βάση την ημερομηνία "
+"δημοσίευσης."
+
+msgid "publication.datePublished"
+msgstr "Ημερομηνία Δημοσίευσης"
+
+msgid "publication.editDisabled"
+msgstr "Αυτή η έκδοση έχει δημοσιευτεί και δεν είναι δυνατή η επεξεργασία της."
+
+msgid "publication.event.published"
+msgstr "Η υποβολή δημοσιεύτηκε."
+
+msgid "publication.event.scheduled"
+msgstr "Η υποβολή είχε προγραμματιστεί για δημοσίευση."
+
+msgid "publication.event.unpublished"
+msgstr ""
+
+msgid "publication.event.versionPublished"
+msgstr "Δημοσιεύθηκε μια νέα έκδοση."
+
+msgid "publication.event.versionScheduled"
+msgstr "Μια νέα έκδοση είχε προγραμματιστεί για δημοσίευση."
+
+msgid "publication.event.versionUnpublished"
+msgstr "Μια έκδοση καταργήθηκε από τη δημοσίευση."
+
+msgid "publication.invalidSubmission"
+msgstr "Δεν ήταν δυνατή η εύρεση της υποβολής αυτής της δημοσίευσης."
+
+msgid "publication.publish"
+msgstr "Δημοσίευση"
+
+msgid "publication.publish.requirements"
+msgstr "Πρέπει να πληρούνται οι ακόλουθες προϋποθέσεις για να δημοσιευτεί."
+
+msgid "publication.required.declined"
+msgstr ""
+
+msgid "publication.required.reviewStage"
+msgstr ""
+
+msgid "submission.license.description"
+msgstr ""
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+
+msgid "submission.copyrightOther.description"
+msgstr ""
+
+msgid "publication.unpublish"
+msgstr ""
+
+msgid "publication.unpublish.confirm"
+msgstr ""
+
+msgid "publication.unschedule.confirm"
+msgstr ""
+
+msgid "publication.version.details"
+msgstr ""
+
+msgid "submission.queries.production"
+msgstr "Συζητήσεις Παραγωγής"
+
+msgid "publication.chapter.landingPage"
+msgstr ""
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+
+msgid "publication.publish.success"
+msgstr ""
+
+msgid "chapter.volume"
+msgstr ""
+
+msgid "submission.withoutChapter"
+msgstr ""
+
+msgid "submission.chapterCreated"
+msgstr ""
+
+msgid "chapter.pages"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+
+msgid "publication.chapter.licenseUrl"
+msgstr ""
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr ""
+
+msgid "submission.copyright.description"
+msgstr ""
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+
+msgid "submission.sectionNotFound"
+msgstr ""
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr ""
+
+msgid "submission.wizard.submitting.monograph"
+msgstr ""
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
+
+#~ msgid "submission.submit.upload.description"
+#~ msgstr ""
+#~ "Η μεταφόρτωση αρχείων που σχετίζεται με αυτή την υποβολή, συμπεριλαμβάνει "
+#~ "χειρόγραφα, πρόταση για μια έκδοση, συνοδευτική επιστολή, καλλιτεχνικά "
+#~ "έργα κλπ. Έαν είναι εφικτό, για τα έργα υπο επιμέλεια, καθώς και για τις "
+#~ "μονογραφίες, ανεβάστε το κείμενο του έργου σε ξεχωριστό αρχείο."
+
+#~ msgid "submission.submit.copyrightNoticeAgree"
+#~ msgstr ""
+#~ "Συμφωνώ να τηρήσω και δεσμέυομαι από τους όρους της δήλωσης πνευματικών "
+#~ "δικαιωμάτων."
+
+#~ msgid "submission.submit.submissionChecklist"
+#~ msgstr "Λίστα Υποβολών"
+
+#~ msgid "submission.submit.submissionChecklistDescription"
+#~ msgstr ""
+#~ "Ελέξτε εάν η συγκεκριμένη υποβολή είναι έτοιμη για εξέταση από αυτές τις "
+#~ "εκδόσεις, ελέγχοντας και ολοκληρώνοντας τα ακόλουθα (προσθήκη σχολίων "
+#~ "προς τον επιμελητή μπορούν να προστεθούν παρακάτω)."
+
+#~ msgid "submission.submit.placement.seriesDescription"
+#~ msgstr "Εάν το βιβλίο επίσης πρέπει να ενταχθεί σε μια σειρά..."
+
+#~ msgid "submission.submit.placement.seriesPositionDescription"
+#~ msgstr ""
+#~ "Τα βιβλία που ανήκουν σε μια σειρά διατηρούνται αντίστροφα από το χρόνο "
+#~ "δημοσίευσης, ώστε να είναι ορατή η ανάπτυξή της σειράς και να εμφανίζεται "
+#~ "η πιο πρόσφατη έκδοση."
+
+#~ msgid "submission.upload.selectBookElement"
+#~ msgstr "Επιλέξτε στοιχείο βιβλίου"
diff --git a/locale/el_GR/admin.po b/locale/el_GR/admin.po
deleted file mode 100644
index 6671d331d49..00000000000
--- a/locale/el_GR/admin.po
+++ /dev/null
@@ -1,68 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-11-28T15:10:05-08:00\n"
-"PO-Revision-Date: 2019-11-28T15:10:05-08:00\n"
-"Language: \n"
-
-msgid "admin.hostedContexts"
-msgstr "Φιλοξενούμενες Εκδόσεις"
-
-msgid "admin.settings.redirect"
-msgstr "Προώθηση σε URL της Έκδοσης"
-
-msgid "admin.settings.redirectInstructions"
-msgstr "Αιτήματα πρόσβασης στον κυρίως ιστότοπο της συλλογής θα προωθούνται στην ιστοσελίδα της έκδοσης. Αυτό μπορεί να φανεί χρήσιμο αν η συλλογή φιλοξενεί για παράδειγμα μόνο μία έκδοση."
-
-msgid "admin.settings.noPressRedirect"
-msgstr "Καμία προώθηση"
-
-msgid "admin.languages.primaryLocaleInstructions"
-msgstr "Αυτή θα είναι η εξ'ορισμού γλώσσα της συλλογής και των φιλοξενούμενων εκδόσεων."
-
-msgid "admin.languages.supportedLocalesInstructions"
-msgstr "Επιλέξτε όλες τις τοπικές ρυθμίσεις που θέλετε να υποστηρίζονται στη συλλογή. Οι επιλεγμένες τοπικές ρυθμίσεις θα είναι διαθέσιμες για χρήση από όλες τις εκδόσεις της συλλογής, και θα εμφανίζονται σε ένα Μενού Επιλογής Γλώσσας στην ιστοσελίδα κάθε έκδοσης. Εάν δεν επιλεχθούν πολλαπλές τοπικές ρυθμίσεις, το παραπάνω Μενού Επιλογής Γλώσσας δεν θα εμφανίζεται και συνεπώς δεν θα είναι δυνατή η ρύθμιση της γλώσσας στις ιστοσελίδες των εκδόσεων."
-
-msgid "admin.locale.maybeIncomplete"
-msgstr "* Επιλεγμένες τοπικές ρυθμίσεις μπορεί να μην είναι ολοκληρωμένες."
-
-msgid "admin.languages.confirmUninstall"
-msgstr "Είστε σίγουρος ότι θέλετε να απεγκαταστήσετε αυτή τη ρύθμιση; Αυτό θα επηρεάσει όσες φιλοξενούμενες εκδόσεις χρησιμοποιούν αυτή την ρύθμιση."
-
-msgid "admin.languages.installNewLocalesInstructions"
-msgstr "Επιλέξτε τις επιπρόσθετες τοπικές ρυθμίσεις που θέλετε να εγκαταστήσετε για να τις υποστηρίζει το σύστημα. Οι ρυθμίσεις πρέπει να εγκατασταθούν πριν χρησιμοποιηθούν από κάποια έκδοση. Δείτε την τεκμηρίωση του OMP για πληροφορίες και τεκμηρίωση σχετικά με την προσθήκη νέων γλωσσών."
-
-msgid "admin.languages.confirmDisable"
-msgstr "Είστε σίγουρος ότι επιθυμείτε να απενεργοποιήσετε αυτή την τοπική ρύθμιση; Αυτό θα επηρεάσει όσες φιλοξενούμενες εκδόσεις χρησιμοποιούν τη συγκεκριμένη ρύθμιση."
-
-msgid "admin.systemVersion"
-msgstr "OMP Έκδοση"
-
-msgid "admin.systemConfiguration"
-msgstr "Ρυθμίσεις OMP"
-
-msgid "admin.systemConfigurationDescription"
-msgstr "Διαμόρφωση Ρυθμίσεων (Configuration) OMP από config.inc.php"
-
-msgid "admin.presses.pressSettings"
-msgstr "Ρυθμίσεις Έκδοσης"
-
-msgid "admin.presses.noneCreated"
-msgstr "Καμία Έκδοση δεν έχει δημιουργηθεί."
-
-msgid "admin.contexts.contextDescription"
-msgstr "Περιγραφή Έκδοσης"
-
-msgid "admin.presses.addPress"
-msgstr "Προσθήκη Έκδοσης"
-
-msgid "admin.overwriteConfigFileInstructions"
-msgstr ""
-"ΣΗΜΕΙΩΣΗ!\n"
-"
Δεν ήταν δυνατή η αυτόματη αντικατάσταση του αρχείου ρυθμίσεων από το σύστημα. Για να εφαρμόσετε τις αλλαγές στις ρυθμίσεις πρέπει να ανοίξετε config.inc.php με κατάλληλο πρόγραμμα διόρθωσης κειμένων και να αντικαταστήσετε τα περιεχόμενα αυτού με τα περιεχόμενα του πεδίου κειμένου που βρίκεται παρακάτω.
"
diff --git a/locale/el_GR/default.po b/locale/el_GR/default.po
deleted file mode 100644
index 6503cbabcfe..00000000000
--- a/locale/el_GR/default.po
+++ /dev/null
@@ -1,246 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
-"PO-Revision-Date: 2019-11-28T15:10:06-08:00\n"
-"Language: \n"
-
-msgid "default.genres.appendix"
-msgstr "Παράρτημα"
-
-msgid "default.genres.bibliography"
-msgstr "Βιβλιογραφία"
-
-msgid "default.genres.manuscript"
-msgstr "Χειρόγραφο Βιβλίου"
-
-msgid "default.genres.chapter"
-msgstr "Χειρόγραφο Κεφαλαίου"
-
-msgid "default.genres.glossary"
-msgstr "Γλωσσάριο"
-
-msgid "default.genres.index"
-msgstr "Ευρετήριο"
-
-msgid "default.genres.preface"
-msgstr "Πρόλογος"
-
-msgid "default.genres.prospectus"
-msgstr "Πρόταση για έκδοση Βιβλίου (Prospectus)"
-
-msgid "default.genres.table"
-msgstr "Πίνακας"
-
-msgid "default.genres.figure"
-msgstr "Εικόνα/Figure"
-
-msgid "default.genres.photo"
-msgstr "Φωτογραφία"
-
-msgid "default.genres.illustration"
-msgstr "Εικόνογράφηση"
-
-msgid "default.genres.other"
-msgstr "Διάφορα"
-
-msgid "default.groups.name.siteAdmin"
-msgstr "Site Admin"
-
-msgid "default.groups.plural.siteAdmin"
-msgstr "Διαχειριστής Ιστοσελίδας"
-
-msgid "default.groups.name.pressManager"
-msgstr "Διαχειριστής Εκδόσεων"
-
-msgid "default.groups.plural.pressManager"
-msgstr "Διαχειριστές Εκδόσεων"
-
-msgid "default.groups.abbrev.pressManager"
-msgstr "PM"
-
-msgid "default.groups.name.editor"
-msgstr "Επιμελητής Έκδοσης"
-
-msgid "default.groups.plural.editor"
-msgstr "Επιμελητές Έκδοσης"
-
-msgid "default.groups.abbrev.editor"
-msgstr "PE"
-
-msgid "default.groups.name.productionEditor"
-msgstr "Επιμελητής Παραγωγής"
-
-msgid "default.groups.plural.productionEditor"
-msgstr "Επιμελητές Παραγωγής"
-
-msgid "default.groups.abbrev.productionEditor"
-msgstr "ProdE"
-
-msgid "default.groups.name.sectionEditor"
-msgstr "Επιμελητής Σειράς"
-
-msgid "default.groups.plural.sectionEditor"
-msgstr "Επιμελητές Σειράς"
-
-msgid "default.groups.abbrev.sectionEditor"
-msgstr "AcqE"
-
-msgid "default.groups.name.copyeditor"
-msgstr "Επιμελητής Κειμένων"
-
-msgid "default.groups.plural.copyeditor"
-msgstr "Επιμελητές Κειμένων"
-
-msgid "default.groups.abbrev.copyeditor"
-msgstr "CE"
-
-msgid "default.groups.name.proofreader"
-msgstr "Επιμελητής Τυπογραφικών Δοκιμίων"
-
-msgid "default.groups.plural.proofreader"
-msgstr "Επιμελητές Τυπογραφικών Δοκιμίων"
-
-msgid "default.groups.abbrev.proofreader"
-msgstr "PR"
-
-msgid "default.groups.name.designer"
-msgstr "Σχεδιαστής"
-
-msgid "default.groups.plural.designer"
-msgstr "Σχεδιαστές"
-
-msgid "default.groups.abbrev.designer"
-msgstr "Σχέδιο"
-
-msgid "default.groups.name.internalReviewer"
-msgstr "Εσωτερικός Αξιολογητής"
-
-msgid "default.groups.plural.internalReviewer"
-msgstr "Εσωτερικοί Αξιολογητές"
-
-msgid "default.groups.abbrev.internalReviewer"
-msgstr "IR"
-
-msgid "default.groups.name.externalReviewer"
-msgstr "Εξωτερικός Αξιολογητής"
-
-msgid "default.groups.plural.externalReviewer"
-msgstr "Εξωτερικοί Αξιολογητές"
-
-msgid "default.groups.abbrev.externalReviewer"
-msgstr "ER"
-
-msgid "default.groups.name.marketing"
-msgstr "Υπεύθυνος Marketing και Πωλήσεων"
-
-msgid "default.groups.plural.marketing"
-msgstr "Υπεύθυνος Marketing και Πωλήσεων"
-
-msgid "default.groups.abbrev.marketing"
-msgstr "MS"
-
-msgid "default.groups.name.funding"
-msgstr "Υπεύθυνος Χρηματοδότησης"
-
-msgid "default.groups.plural.funding"
-msgstr "Υπεύθυνοι Χρηματοδότησης"
-
-msgid "default.groups.abbrev.funding"
-msgstr "FC"
-
-msgid "default.groups.name.indexer"
-msgstr "Ευρετηριαστής"
-
-msgid "default.groups.plural.indexer"
-msgstr "Ευρετηριαστές"
-
-msgid "default.groups.abbrev.indexer"
-msgstr "IND"
-
-msgid "default.groups.name.layoutEditor"
-msgstr "Επιμελητής Σελιδοποίησης"
-
-msgid "default.groups.plural.layoutEditor"
-msgstr "Επιμελητές Σελιδοποίησης"
-
-msgid "default.groups.abbrev.layoutEditor"
-msgstr "LE"
-
-msgid "default.groups.name.author"
-msgstr "Συγγραφέας"
-
-msgid "default.groups.plural.author"
-msgstr "Συγγραφείς"
-
-msgid "default.groups.abbrev.author"
-msgstr "AU"
-
-msgid "default.groups.name.chapterAuthor"
-msgstr "Συγγραφέας Κεφαλαίου"
-
-msgid "default.groups.plural.chapterAuthor"
-msgstr "Συγγραφείς Κεφαλαίου"
-
-msgid "default.groups.abbrev.chapterAuthor"
-msgstr "CA"
-
-msgid "default.groups.name.volumeEditor"
-msgstr "Επιμελητής Έργου"
-
-msgid "default.groups.plural.volumeEditor"
-msgstr "Επιμελητές Έργου"
-
-msgid "default.groups.abbrev.volumeEditor"
-msgstr "VE"
-
-msgid "default.groups.name.translator"
-msgstr "Μεταφραστής"
-
-msgid "default.groups.plural.translator"
-msgstr "Μεταφραστές"
-
-msgid "default.groups.abbrev.translator"
-msgstr "Μεταφρ."
-
-msgid "default.contextSettings.checklist.notPreviouslyPublished"
-msgstr "Η υποβολή δεν έχει δημοσιευτεί εκ των προτέρων, ούτε έχει υποβληθεί σε άλλες εκδόσεις για εξέταση (ή δεν έχει δοθεί εξήγηση στα Σχόλια προς τον επιμελητή)."
-
-msgid "default.contextSettings.checklist.fileFormat"
-msgstr "Το αρχείο υποβολής είναι σε μορφή αρχείου εγγράφου OpenOffice, Microsoft Word ή RTF."
-
-msgid "default.contextSettings.checklist.addressesLinked"
-msgstr "Όταν είναι διαθέσιμα, παρέχονται τα URL για πρόσβαση σε αναφορές online."
-
-msgid "default.contextSettings.checklist.submissionAppearance"
-msgstr "Το κείμενο έχει μονό διάκενο, χρησιμοποιεί γραμματοσειρά μεγέθους 12, χρησιμοποιεί όπου απαιτείται κείμενο σε πλάγια γραφή και όχι με υπογράμμιση (εκτός από τις διευθύνσεις URL) και όλες οι εικόνες, τα διαγράμματα και οι πίνακες τοποθετούνται εντός του κειμένου σε κατάλληλα σημεία, και όχι στο τέλος αυτού."
-
-msgid "default.contextSettings.checklist.bibliographicRequirements"
-msgstr "Το κείμενο τηρεί τις στιλιστικές και βιβλιογραφικές απαιτήσεις που ορίζονται στις Οδηγίες προς τους συγγραφείς Οδηγίες προς Συγγραφείς, που βρίσκονται στο μενού \"Σχετικά με το περιοδικό\"."
-
-msgid "default.contextSettings.privacyStatement"
-msgstr "Τα ονόματα και οι διευθύνσεις ηλεκτρονικού ταχυδρομείου που καταχωρούνται στις ιστοσελίδες των εκδόσεων της συλλογής θα χρησιμοποιούνται αποκλειστικά για τους καθορισμένους σκοπούς των υπηρεσίας μας και δεν θα διατίθεται για κανένα άλλο σκοπό ή σε κανένα τρίτο μέρος.
"
-
-msgid "default.contextSettings.openAccessPolicy"
-msgstr "Η συγκεκριμένη έκδοση παρέχει άμεση ανοικτή πρόσβαση στο περιεχόμενό της υποστηρίζοντας την αρχή της υποστήριξης της παγκόσμιας ανταλλαγής γνώσεων και καθιστώντας διαθέσιμη ελεύθερα στο κοινό τα αποτελέσματα της επιστημονικής έρευνας."
-
-msgid "default.contextSettings.emailSignature"
-msgstr ""
-"________________________________________________________________________\n"
-"{$contextName}\n"
-"{$indexUrl}/{$contextPath}"
-
-msgid "default.contextSettings.forReaders"
-msgstr "Η χρήση της συλλογής είναι ελεύθερη και δωρεάν για όλους και δεν απαιτείται η χρήση κωδικού πρόσβασης. Ωστόσο, ενθαρρύνουμε τους αναγνώστες-χρήστες να εγγραφούν στην υπηρεσία ενημέρωσης για τις εκδόσεις της συλλογής μας. Επιλέξτε τον σύνδεσμο Εγγραφείτε στη κορυφή της αρχικής σελίδας των Εκδόσεων. Κάθε εγγεγραμμένος χρήστης θα λαμβάνει με email με τους Πίνακες Περιεχομένων κάθε νέας έκδοσης που δημοσιεύεται στη συλλογή. Επίσης, η λίστα των καταχωρημένων αναγνωστών-χρηστών επιτρέπει στην υπηρεσία και στις εκδόσεις της συλλογής να διαπιστώσουν το πραγματικό επίπεδο ανταπόκρισης και χρήσης. Ενημερωθείτε για την Πολιτική Προστασίας Προωπικών Δεδομένων της συλλογής, που διαβεβαιώνει ότι τα στοιχεία και τα email των χρηστών δεν θα χρησιμοποιηθούν για άλλους λόγους."
-
-msgid "default.contextSettings.forAuthors"
-msgstr "Ενδιαφέρεστε να πραγματοποιήσετε υποβολή στη συγκεκριμένη έκδοση; Σας συμβουλεύουμε να μελετήσετε τη σελίδα Σχετικά με την Έκδοση για τις πολιτικές των ενοτήτων της Έκδοσης, καθώς και τη σελίδαΟδηγίες για Συγγραφείς. Οι Συγγραφείς πρέπει να εγγραφούν στην έκδοση πριν από την υποβολή, ή στην περίπτωση που έχουν εγγραφεί, μπορούν απλά να συνδεθούν και να ξεκινήσουν τη διαδικασία με τα 5 βήματα"
-
-msgid "default.contextSettings.forLibrarians"
-msgstr "Βασική επιδίωξη και επιθυμία της συλλογής \"Τιμαία\" είναι καταχώρηση αυτής ή/και άλλων εκδόσεων της στις συλλογές ηλεκτρονικών εκδόσεων και πηγών πληροφόρησης των βιβλιοθηκών. Επίσης, είναι πιθανόν χρήσιμο να τονιστεί ότι το χρησιμοποιούμενο σύστημα ηλεκτρονικής δημοσίευσης της συλλογής Τιμαία, είναι ανοικτού κώδικα και μπορεί να χρησιμοποιηθεί από τις βιβλιοθήκες για τη φιλοξενία εκδόσεων ή/και την εξυπηρέτηση των μελών της ακαδημαϊκής κοινότητας που είναι μέλη της συντακτικής ομάδας μιας έκδοσης. (Διαβάστε περισσότερα για το Open Monograph Press)."
diff --git a/locale/el_GR/editor.po b/locale/el_GR/editor.po
deleted file mode 100644
index f57d5439bb7..00000000000
--- a/locale/el_GR/editor.po
+++ /dev/null
@@ -1,171 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
-"PO-Revision-Date: 2019-11-28T15:10:06-08:00\n"
-"Language: \n"
-
-msgid "editor.pressSignoff"
-msgstr "Υπογραφή Εκδόσεων"
-
-msgid "editor.submissionArchive"
-msgstr "Αρχείο Υποβολών"
-
-msgid "editor.monograph.cancelReview"
-msgstr "Ακύρωση Αιτήματος"
-
-msgid "editor.monograph.clearReview"
-msgstr "Καθαρισμός Αξιολογητή"
-
-msgid "editor.monograph.enterRecommendation"
-msgstr "Εισαγωγή Εισήγησης"
-
-msgid "editor.monograph.enterReviewerRecommendation"
-msgstr "Εισαγωγή εισήγησης αξιολογητή"
-
-msgid "editor.monograph.recommendation"
-msgstr "Εισαγωγή Εισήγησης"
-
-msgid "editor.monograph.selectReviewerInstructions"
-msgstr "Επιλέξτε έναν από τους παραπάνω αξιολογητές και πατήστε \"Επιλογή Αξιολογητή\" για να συνεχίσετε."
-
-msgid "editor.monograph.replaceReviewer"
-msgstr "Αντικατάσταση Αξιολογητή"
-
-msgid "editor.monograph.editorToEnter"
-msgstr "Ο επιμελητής εισάγει συστάσεις/σχόλια για τον αξιολογητή"
-
-msgid "editor.monograph.uploadReviewForReviewer"
-msgstr "Ανέβασμα Αξιολόγησης"
-
-msgid "editor.monograph.peerReviewOptions"
-msgstr "Επιλογές αξιολόγησης απο ομότιμους αξιολογητές (Peer Review)"
-
-msgid "editor.monograph.selectProofreadingFiles"
-msgstr "Αρχεία επιμέλειας τυπογραφικών δοκιμίων"
-
-msgid "editor.monograph.internalReview"
-msgstr "Έναρξη Εσωτερικής Αξιολόγησης"
-
-msgid "editor.monograph.internalReviewDescription"
-msgstr "Είτε έτοιμοι να ξεκινήσετε ένα γύρο εσωτερικής αξιολόγησης για την υποβολή. Τα αρχεία που αποτελούν μέρος της υποβολής παρατίθενται παρακάτω και μπορούν να επιλεγούν για αξιολόγηση."
-
-msgid "editor.monograph.externalReview"
-msgstr "Έναρξη Εξωτερικής Αξιολόγησης"
-
-msgid "editor.monograph.final.selectFinalDraftFiles"
-msgstr "Επιλογή Αρχείων Τελικού Κειμένου"
-
-msgid "editor.monograph.final.currentFiles"
-msgstr "Τρέχοντα Αρχεία Τελικού Κειμένου"
-
-msgid "editor.monograph.copyediting.currentFiles"
-msgstr "Τρέχοντα Αρχεία"
-
-msgid "editor.monograph.copyediting.personalMessageToUser"
-msgstr "Μήνυμα σε χρήστη"
-
-msgid "editor.monograph.legend.submissionActions"
-msgstr "Ενέργεια Υποβολής"
-
-msgid "editor.monograph.legend.submissionActionsDescription"
-msgstr "Συνολικές ενέργειες και επιλογές υποβολής."
-
-msgid "editor.monograph.legend.sectionActions"
-msgstr "Ενέργειες Ενότητας (Section Actions)"
-
-msgid "editor.monograph.legend.sectionActionsDescription"
-msgstr "Επιλογές μιας συγκεκριμένης ενότητας, για παράδειγμα μεταφόρτωση αρχείων ή εγγραφή χρηστών."
-
-msgid "editor.monograph.legend.itemActions"
-msgstr "Ενέργειες Στοιχείου"
-
-msgid "editor.monograph.legend.itemActionsDescription"
-msgstr "Ενέργειες και επιλογές που αφορούν ένα συγκεκριμένο αρχείο."
-
-msgid "editor.monograph.legend.catalogEntry"
-msgstr "Προβολή και διαχείριση της καταχώρησης μιας υποβολής στον κατάλογο, συμπεριλαμβανομένων των μεταδεδομένων και των μορφότυπων δημοσίευσης."
-
-msgid "editor.monograph.legend.bookInfo"
-msgstr "Προβολή και διαχείριση των μεταδεδομένων, των σημειώσεων, κοινοποιήσεων και του ιστορικού μιας υποβολής"
-
-msgid "editor.monograph.legend.participants"
-msgstr "Προβολή και Διαχείριση των συμμετεχόντων της υποβολής: συγγραφείς, επιμελητές, σχεδιαστές, και άλλων"
-
-msgid "editor.monograph.legend.add"
-msgstr "Ανεβάστε ένα αρχείο στην ενότητα"
-
-msgid "editor.monograph.legend.add_user"
-msgstr "Προσθήκη χρήστη στην ενότητα"
-
-msgid "editor.monograph.legend.settings"
-msgstr "Προβολή και πρόσβαση στις ρυθμίσεις στοιχείου, όπως πληροφορίες και επιλογές αφαίρεσης"
-
-msgid "editor.monograph.legend.more_info"
-msgstr "Επιπλέον πληροφορίες: σημειώσεις αρχείου, επιλογές κοινοποίησης και ιστορικό"
-
-msgid "editor.monograph.legend.notes_none"
-msgstr "Πληροφορίες αρχείου: σημειώσεις, επιλογές κοινοποίησης και ιστορικό (Δεν έχουν προστεθεί σημειώσεις ακόμα)"
-
-msgid "editor.monograph.legend.notes"
-msgstr "Πληροφορίες αρχείου: σημειώσεις, επιλογές κοινοποίησης και ιστορικό (Οι σημειώσεις είναι διαθέσιμες)"
-
-msgid "editor.monograph.legend.notes_new"
-msgstr "Πληροφορίες αρχείου: σημειώσεις, επιλογές κοινοποίησης και ιστορικό (Νέες σημειώσεις προστέθηκαν κατά την τελευταία επίσκεψη)"
-
-msgid "editor.monograph.legend.edit"
-msgstr "Επεξεργασία στοιχείου"
-
-msgid "editor.monograph.legend.delete"
-msgstr "Διαγραφή στοιχείου"
-
-msgid "editor.monograph.legend.in_progress"
-msgstr "Ενέργεια σε εξέλιξη ή δεν έχει ολοκληρωθεί"
-
-msgid "editor.monograph.legend.complete"
-msgstr "Ολοκληρώθηκε"
-
-msgid "editor.monograph.legend.uploaded"
-msgstr "File uploaded by the role in the grid column title"
-
-msgid "editor.submission.introduction"
-msgstr "Σε μια υποβολή, ο επιμελητής έκδοσης (editor), μετά από διαβούλευση των αρχείων που έχουν υποβληθεί, προβαίνει στις ακόλουθες ενέργειες συμπεριλαμβανομένου και την ενημέρωση του συγγραφέα: αποστολή για εσωτερική αξιολόγηση (επιλέγοντας και τα αρχεία για εσωτερική αξιολόγηση), αποστολή για εξωτερική αξιολόγηση (επιλέγοντας και τα αρχεία για εξωτερική αξιολόγηση), αποδοχή υποβολής (συνεπάγεται και η επιλογή αρχείων για το στάδιο σύνταξης/δημοσίευσης) ή απόρριψη υποβολής (υποβολή στο αρχείο)."
-
-msgid "editor.monograph.editorial.fairCopy"
-msgstr "Τελικό Αντίγραφο"
-
-msgid "editor.monograph.editorial.fairCopyDescription"
-msgstr "Ο επιμελητής κειμένων μεταφορτώνει ένα διορθωμένο ή τελικό αντίγραφο της υποβολής για έγκριση από τον επιμελητή έκδοσης, ώστε αυτό να σταλεί για την παραγωγή του."
-
-msgid "editor.monograph.proofs"
-msgstr "Τυπογραφικά Δοκίμια"
-
-msgid "editor.monograph.production.approvalAndPublishing"
-msgstr "Αποδοχή και Δημοσίευση"
-
-msgid "editor.monograph.production.approvalAndPublishingDescription"
-msgstr "Διαφορετικές μορφές εκδόσεων, όπως σκληρόδετο (hardcover), χαρτόδετο (softcover) και ψηφιακό, μπορούν να μεταφορτωθούν παρακάτω στην ενότητα Μορφότυπα Έκδοσης. Μπορείτε να χρησιμοποιήσετε το παρακάτω πλέγμα (grid) ως μια λίστα επιλογών για το τι απομένει να γίνει για να εκδοθεί μια μορφή έκδοσης του βιβλίου. (Different publication formats, such as hardcover, softcover and digital, can be uploaded in the Publication Formats section below. You can use the publication formats grid below as a checklist for what still needs to be done to publish a publication format)."
-
-msgid "editor.monograph.production.publicationFormatDescription"
-msgstr "Προσθέστε τα μορφότυπα έκδοσης (πχ. ψηφιακό, χαρτόδετο) τα οποία ο επιμελητής σελιδοποίησης ετοίμασε για τη διόρθωση τυπογραφικών δοκιμίων. Τα Τυπογραφικά Δοκίμια θα πρεπει να ελεγχθούν σύμφωνα με τα πρότυπα των εκδόσεων και η καταχώριση στον Κατάλογο πρέπει να είναι σύμφωνη με την εγκεκριμένη καταχώριση του βιβλίου, πριν να μπορεί ένα μορφότυπο να γίνει διαθέσιμο πχ. Δημοσιευμένο."
-
-msgid "editor.monograph.approvedProofs.edit"
-msgstr "Καθορισμός Όρων για Λήψη Αρχείων"
-
-msgid "editor.monograph.approvedProofs.edit.linkTitle"
-msgstr "Καθορισμός Όρων"
-
-msgid "editor.monograph.proof.addNote"
-msgstr "Προσθήκη Απάντησης"
-
-msgid "editor.internalReview.introduction"
-msgstr "Στην Εσωτερική Αξιολόγηση, ο επιμελητή έκδοσης αναθέτει τα αρχεία της υποβολής στους εσωτερικούς αξιολογητές και βασίζεται στα αποτελέσματα της αξιολόγησης τους, πριν επιλέξει τις κατάλληλες ενέργειες (στις οποίες συμπεριλαμβάνεται η ενημέρωση του συγγραφέα): αίτηματα για αναθεωρήσεις (οι αναθεωρήσεις ελέγχονται μόνο από τον επιμελητή έκδοσης), εκ νέου υποβολή για αξιολόγηση (οι αναθεωρήσεις ξεκινούν ένα νέο γύρο αξιολογήσεων), αποστολή αιτήματος για εξωτερική αξιολόγηση (συνεπάγεται επιλογή αρχείων για εξωτερική αξιολόγηση), αποδοχή υποβολής (συνεπάγεται επιλογή αρχείων για το στάδιο Σύνταξης) ή απόρριψη υποβολής (υποβολή στο αρχείο)."
-
-msgid "editor.externalReview.introduction"
-msgstr "Στην Εξωτερική Αξιολόγηση, ο επιμελητής έκδοσης αναθέτει τα αρχεία της υποβολής στους εξωτερικούς αξιολογητές των εκδόσεων και βασίζεται στα αποτελέσματα της αξιολόγησης τους, πριν επιλέξει τις κατάλληλες ενέργειες (στις οποίες συμπεριλαμβάνεται η ενημέρωση του συγγραφέα): αίτηματα για αναθεωρήσεις (οι αναθεωρήσεις ελέγχονται μόνο από τον επιμελητή έκδοσης), εκ νέου υποβολή για αξιολόγηση (οι αναθεωρήσεις ξεκινούν ένα νέο κύκλο αξιολογήσεων), αποδοχή υποβολής (συνεπάγεται επιλογή αρχείων για το στάδιο Σύνταξης) ή απόρριψη υποβολής (υποβολή στο αρχείο)."
diff --git a/locale/el_GR/emails.po b/locale/el_GR/emails.po
deleted file mode 100644
index 37b5f4af03a..00000000000
--- a/locale/el_GR/emails.po
+++ /dev/null
@@ -1,629 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-12-03T14:14:06-08:00\n"
-"PO-Revision-Date: 2019-12-03T14:14:06-08:00\n"
-"Language: \n"
-
-msgid "emails.notification.subject"
-msgstr "Νέα ειδοποίηση από {$siteTitle}"
-
-msgid "emails.notification.body"
-msgstr ""
-"Έχετε μια νέα ειδοποίηση από {$siteTitle}:
\n"
-"
\n"
-"{$notificationContents}
\n"
-"
\n"
-"Σύνδεσμος: {$url}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.notification.description"
-msgstr "The email is sent to registered users that have selected to have this type of notification emailed to them."
-
-msgid "emails.passwordResetConfirm.subject"
-msgstr "Επιβεβαίωση αλλαγής κωδικού πρόσβασης"
-
-msgid "emails.passwordResetConfirm.body"
-msgstr ""
-"Παραλάβαμε ένα αίτημα για επαναφορά (αλλαγή) του κωδικού πρόσβασής σας για τον ιστότοπο {$siteTitle} .
\n"
-"
\n"
-"Εάν δεν προωθήσατε εσείς το αίτημα αυτό, σας παρακαλούμε αγνοήστε το μήνυμα αυτό και ο κωδικός πρόσβασής δεν θα αλλάξει. Εάν επιθυμείτε να αλλάξετε τον κωδικό πρόσβασής σας, ακολουθήστε το παρακάτω URL.
\n"
-"
\n"
-"Αλλαγή του κωδικού πρόσβασής μου: {$url}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordResetConfirm.description"
-msgstr "This email is sent to a registered user when they indicate that they have forgotten their password or are unable to login. It provides a URL they can follow to reset their password."
-
-msgid "emails.passwordReset.subject"
-msgstr "Επαναφορά κωδικού πρόσβασης"
-
-msgid "emails.passwordReset.body"
-msgstr ""
-"Η επαναφορά (αλλαγή) του κωδικού πρόσβασής σας πραγματοποιήθηκε επιτυχώς για χρήση στον ιστότοπο {$siteTitle} . Παρακαλούμε διατηρήστε το συγκεκριμένο όνομα χρήστη και τον κωδικό πρόσβασης, καθώς είναι απαραίτητα για όλες τις εργασίες σας στην έκδοση.
\n"
-"
\n"
-"Όνομα χρήστη: {$username}
\n"
-"Νέος κωδικός πρόσβασης: {$password}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordReset.description"
-msgstr "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται σε εγγεγραμμένους χρήστες αφού ολοκληρώσουν επιτυχώς την επαναφορά του κωδικού πρόσβασής τους ακολουθώντας τη διαδικασία που περιγράφεται στο email PASSWORD_RESET_CONFIRM."
-
-msgid "emails.userRegister.subject"
-msgstr "Εγγραφή χρήστη"
-
-msgid "emails.userRegister.body"
-msgstr ""
-"{$userFullName}
\n"
-"
\n"
-"Είστε πλέον εγγεγραμμένος χρήστης των εκδόσεων {$contextName}. Το όνομα χρήστη και ο κωδικός πρόσβασής σας, που είναι απαραίτητα για όλες τις εργασίες σας με τη συγκεκριμένη έκδοση μέσω του ιστότοπου της, έχουν συμπεριληφθεί στο συγκεκριμένο μήνυμα. Ανά πάσα στιγμή, μπορείτε να καταργήσετε το όνομά σας από τη λίστα των χρηστών, επικοινωνώντας με το αρμόδιο προσωπικό.
\n"
-"
\n"
-"Όνομα χρήστη: {$username}
\n"
-"Όνομα χρήστη: {$password}
\n"
-"
\n"
-"Σας ευχαριστούμε,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userRegister.description"
-msgstr "This email is sent to a newly registered user to welcome them to the system and provide them with a record of their username and password."
-
-msgid "emails.userValidate.subject"
-msgstr "Επικύρωση λογαριασμού"
-
-msgid "emails.userValidate.body"
-msgstr ""
-"{$userFullName}
\n"
-"
\n"
-"
\n"
-"Έχετε δημιουργήσει λογαριασμό στις εκδόσεις {$contextName}, αλλά πριν αρχίσετε να το χρησιμοποιείται, πρέπει να επικυρώσετε τον λογαριασμό του ηλεκτρονικού σας ταχυδρομείου. Για να την επικύρωση, ακολουθήστε τον παρακάτω σύνδεσμο:
\n"
-"
\n"
-"{$activateUrl}
\n"
-"
\n"
-"Σας ευχαριστούμε,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userValidate.description"
-msgstr "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται σε νέους χρήστες για να τους καλωσορίσει στο σύστημα και να τους στείλει το όνομα χρήστη και τον κωδικό πρόσβασής τους."
-
-msgid "emails.reviewerRegister.subject"
-msgstr "Εγγραφή ως Αξιολογητής στις εκδόσεις {$contextName}"
-
-msgid "emails.reviewerRegister.body"
-msgstr ""
-"Λαμβάνοντας υπόψη την αρτιότητα των γνώσεών σας, το όνομα σας καταχωρήθηκε αυτόματα στη βάση δεδομένων αξιολογητών για τις εκδόσεις {$contextName}. Το γεγονός αυτό δεν συνεπάγεται οποιαδήποτε μορφή δέσμευσης από μέρους σας, απλά προσφέρει τη δυνατότητα επικοινωνίας μαζί σας για πιθανή αξιολόγηση κάποιας υποβολής στο περιοδικό μας. Μόλις δεχτείτε πρόσκληση για αξιολόγηση, θα έχετε τη δυνατότητα να δείτε τον τίτλο και το απόσπασμα της υπό αξιολόγηση εργασίας, και θα βρίσκεστε πάντα σε θέση να αποδεχτείτε ή όχι την πρόσκληση. Ανά πάσα στιγμή, επίσης, μπορείτε να καταργήσετε το όνομά σας από τη λίστα των αξιολογητών.
\n"
-"
\n"
-"Το όνομα χρήστη και ο κωδικός πρόσβασης που σας παρέχεται, χρησιμοποιείται σε όλες τις αλληλεπιδράσεις με τις εκδόσεις μέσω του συγκεκριμένου ιστότοπου. Για παράδειγμα, μπορείτε να ενημερώσετε το προφίλ σας καθώς και τα ενδιαφέροντά σας σε σχέση με την αξιολόγηση.
\n"
-"
\n"
-"Όνομα Χρήστη: {$username}
\n"
-"Κωδικός Πρόσβασης: {$password}
\n"
-"
\n"
-"Σας ευχαριστούμε,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.reviewerRegister.description"
-msgstr "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται σε νέους χρήστες για να τους καλωσορίσει στο σύστημα και να τους δώσει το όνομα χρήστη και τον κωδικό πρόσβασής τους."
-
-msgid "emails.publishNotify.subject"
-msgstr "Έκδοση νέου βιβλίου"
-
-msgid "emails.publishNotify.body"
-msgstr ""
-"Αγαπητοί Αναγνώστες:
\n"
-"
\n"
-"Οι εκδόσεις{$contextName} μόλις δημοσίευσε τη νέα της έκδοση {$contextUrl}.
\n"
-"Μπορείτε να συμβουλευτείτε τον Πίνακα περιεχομένων και, στη συνέχεια, να επισκεφτείτε τον ιστότοπο των εκδόσεων για να δείτε το πλήρες κείμενο των μονογραφιών ή/και τεκμηρίων που σας ενδιαφέρουν.
\n"
-"
\n"
-"Σας ευχαριστούμε για το συνεχές ενδιαφέρον σας για την εργασία μας,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.publishNotify.description"
-msgstr "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται σε εγγεγραμμένους αναγνώστες μέσω του συνδέσμου \"Ενημέρωση Χρηστών\" στην αρχική σελίδα Επιμελητή των εκδόσεων. Ενημερώνει τους αναγνώστες για νέα βιβλία και τους προσκαλεί να επισκεφτούν τον δικτυακό τόπο των εκδόσεων.."
-
-msgid "emails.submissionAck.subject"
-msgstr "Επιβεβαίωση υποβολής"
-
-msgid "emails.submissionAck.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Ευχαριστούμε για την υποβολή της εργασίας σας, "{$submissionTitle}" στις εκδόσεις {$contextName}. Με το online σύστημα διαχείρισης που χρησιμοποιούν οι εκδόσεις, θα μπορείτε, συνδεόμενοι στον ιστότοπο των εκδόσεων, να παρακολουθείτε την πορεία της υποβολής σας στην διαδικασία της επιμέλειας:
\n"
-"
\n"
-"URL υποβολής: {$submissionUrl}
\n"
-"Όνομα χρήστη: {$authorUsername}
\n"
-"
\n"
-"Για περισσότερες πληροφορίες παρακαλούμε επικοινωνήστε μαζί μας. Ευχαριστούμε που θεωρείτε τις εκδόσεις αυτές ως τον κατάλληλο χώρο για να δημοσιεύετε την εργασία σας.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAck.description"
-msgstr "Εφόσον έχει ενεργοποιηθεί η αντίστοιχη επιλογή, το συγκεκριμένο μήνυμα αποστέλλεται αυτόματα στον συγγραφέα όταν ολοκληρωθεί η διαδικασία υποβολής μιας εργασίας στις εκδόσεις. Παρέχει πληροφορίες σχετικά με την παρακολούθηση της πορείας της υποβολής στις διάφορες διαδικασίες και ευχαριστεί τον συγγραφέα για την υποβολή."
-
-msgid "emails.submissionAckNotUser.subject"
-msgstr "Επιβεβαίωση υποβολής"
-
-msgid "emails.submissionAckNotUser.body"
-msgstr ""
-"Αγαπητέ κύριε/α,
\n"
-"
\n"
-"{$submitterName} έχετε υποβάλει την εργασία, "{$submissionTitle}" στις εκδόσεις {$contextName}.
\n"
-"
\n"
-"Για περισσότερες πληροφορίες παρακαλούμε επικοινωνήστε μαζί μας. Ευχαριστούμε που θεωρείτε τις εκδόσεις μας ως τον κατάλληλο χώρο για να δημοσιεύετε την εργασία σας.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAckNotUser.description"
-msgstr ""
-"This email, when enabled, is automatically sent to the other authors who are not users within OMP specified during the submission process.\n"
-"Εφόσον έχει ενεργοποιηθεί η αντίστοιχη επιλογή, το συγκεκριμένο μήνυμα αποστέλλεται αυτόματα στον συγγραφέα που δεν είναι εγγεγραμμένος χρήστης όταν ολοκληρωθεί η διαδικασία υποβολής μιας εργασίας στις εκδόσεις."
-
-msgid "emails.editorAssign.subject"
-msgstr "Ανάθεση ομάδας εργασίας"
-
-msgid "emails.editorAssign.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Στο πλαίσιο του ρόλου σας ως Επιμελητή, σας έχει ανατεθεί η παρακολούθηση της υποβολή, "{$submissionTitle}," στις εκδόσεις {$contextName} σε όλη τη διάρκεια της διαδικασίας επιμέλειας.
\n"
-"
\n"
-"URL Υποβολής: {$submissionUrl}
\n"
-"Όνομα χρήστη: {$editorUsername}
\n"
-"
\n"
-"Thank you,"
-
-msgid "emails.editorAssign.description"
-msgstr "Το συγκεκριμένο μήνυμα ενημερώνει τον Επιμελητή Σειράς ότι ο Επιμελητής των εκδόσεων του έχει αναθέσει την επίβλεψη της υποβολής στην διαδικασία επιμέλειας. Παρέχει πληροφορίες σχετικά με την υποβολή και τον τρόπο πρόσβασης στον ιστότοπο της έκδοσης."
-
-msgid "emails.reviewRequest.subject"
-msgstr "Αίτημα αξιολόγησης εργασίας"
-
-msgid "emails.reviewRequest.body"
-msgstr ""
-"Κύριε/α {$reviewerName},
\n"
-"
\n"
-"{$messageToReviewer}
\n"
-"
\n"
-"Θα σας παρακαλούσαμε να συνδεθείτε στον ιστότοπο των εκδόσεων Τιμαία μέχρι την {$responseDueDate} για να δηλώσετε αν θα αναλάβετε την αξιολόγηση ή όχι, καθώς και για να αποκτήσετε πρόσβαση στην υποβολή και για να καταχωρίσετε την αξιολόγησή σας και τις συστάσεις σας. Ο δικτυακός τόπος των εκδόσεων είναι
\n"
-"
\n"
-"Η προθεσμία ολοκλήρωσης της αξιολόγηση λήγει στις {$reviewDueDate}.
\n"
-"
\n"
-"URL υποβολής: {$submissionReviewUrl}
\n"
-"
\n"
-"Username: {$reviewerUserName}
\n"
-"
\n"
-"Σας ευχαριστούμε εκ των προτέρων για την εξέταση του αιτήματός μας.
\n"
-"
\n"
-"
\n"
-"Με εκτίμηση,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRequest.description"
-msgstr "Το συγκεκριμένο μήνυμα στέλνεται από τον Επιμελητή Σειράς προς τον Αξιολογητή και του αιτείται να δεχτεί ή να απορρίψει την αξιολόγηση μιας υποβολής. Παρέχει πληροφορίες σχετικά με την υποβολή όπως ο τίτλος και το απόσπασμα, την ημερομηνία προθεσμίας της υποβολής και τον τρόπο πρόσβασης στην υποβολή. Το συγκεκριμένο μήνυμα χρησιμοποιείται όταν η Πρότυπη διαδικασία αξιολόγησης (online) έχει επιλεχθεί στο μενού Οργάνωση των εκδόσεων, Βήμα 2. (Σε διαφορετική περίπτωση ανατρέξτε στο REVIEW_REQUEST_ATTACHED.)"
-
-msgid "emails.reviewRequestOneclick.subject"
-msgstr "Αίτημα αξιολόγησης εργασίας"
-
-msgid "emails.reviewRequestOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Πιστεύουμε ότι θα μπορούσατε να συνεισφέρετε στην έκδοση του e-book μας ως ένας εξαίρετος αξιολογητής για την εργασία, "{$submissionTitle}," που έχει υποβληθεί στις εκδόσεις {$contextName}. Η περίληψη της υποβολής παρατίθεται παρακάτω, και ελπίζουμε ότι θα δεχθείτε να αναλάβετε αυτή την σημαντική εργασία για εμάς.
\n"
-"
\n"
-"Σε κάθε περίπτωση θα σας παρακαλούσαμε να συνδεθείτε στον δικτυακό τόπο των εκδόσεων μέχρι την {$weekLaterDate} για να μας γνωστοποιήσετε εάν θα αναλάβετε την συγκεκριμένη αξιολόγηση ή όχι, και σε περίπτωση θετικής απάντησης να αποκτήσετε πρόσβαση στο πλήρες κείμενο της υποβολής και να καταχωρίσετε την αξιολόγησή σας και τις συστάσεις σας.
\n"
-"
\n"
-"Η αξιολόγηση λήγει στις {$reviewDueDate}.
\n"
-"
\n"
-"URL υποβολής: {$submissionReviewUrl}
\n"
-"
\n"
-"Σας ευχαριστούμε εκ των προτέρων για την εξέταση του αιτήματός μας.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$monographAbstract}"
-
-msgid "emails.reviewRequestOneclick.description"
-msgstr "Το συγκεκριμένο μήνυμα στέλνεται από τον Επιμελητή Σειράς προς τον αξιολογητή και του αιτείται να δεχτεί ή να απορρίψει την αξιολόγηση μιας υποβολής. Παρέχει πληροφορίες σχετικά με την υποβολή όπως ο τίτλος και το απόσπασμα, την ημερομηνία προθεσμίας της υποβολής και τον τρόπο πρόσβασης στην υποβολή. Το συγκεκριμένο μήνυμα χρησιμοποιείται όταν η Πρότυπη διαδικασία αξιολόγησης (online) έχει επιλεχθεί στο μενού Οργάνωση των εκδόσεων, Βήμα 2, και έτσι ενεργοποιείται η πρόσβαση του αξιολογητή με ένα μόνο κλικ."
-
-msgid "emails.reviewRequestAttached.subject"
-msgstr "Αίτημα αξιολόγησης εργασίας"
-
-msgid "emails.reviewRequestAttached.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Πιστεύουμε ότι θα μπορούσατε να συνεισφέρετε στην έκδοση του e-book μας ως ένας εξαίρετος αξιολογητής για την εργασία, "{$submissionTitle}," Η περίληψη της υποβολής παρατίθεται παρακάτω, και ελπίζουμε ότι θα δεχθείτε να αναλάβετε αυτή την σημαντική εργασία για εμάς. Οι Κατευθυντήριες γραμμές αξιολόγησης για τη συγκεκριμένη έκδοση αναφέρονται παρακάτω ενώ η υποβολή έχει επισυναφθεί στο παρόν μήνυμα. Η αξιολόγησή σας καθώς και οι συστάσεις-εισηγήσεις σας για την υποβολή θα πρέπει να αποσταλούν με email σε εμάς μέχρι την {$reviewDueDate}.
\n"
-"
\n"
-"Θα σας παρακαλούσαμε να μας ενημερώσετε με email μέχρι την {$weekLaterDate} εάν είστε διαθέσιμοι και πρόθυμοι να αναλάβετε την συγκεκριμένη αξιολόγηση.
\n"
-"
\n"
-"Σας ευχαριστούμε εκ των προτέρων για την εξέταση του αιτήματός μας.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"Κατευθυντήριες γραμμές αξιολόγησης
\n"
-"
\n"
-"{$reviewGuidelines}"
-
-msgid "emails.reviewRequestAttached.description"
-msgstr "Το συγκεκριμένο μήνυμα στέλνεται από τον Επιμελητή Σειράς προς τον αξιολογητή και του ζητείται να δεχτεί ή να απορρίψει την αξιολόγηση της υποβολής. Περιλαμβάνει την υποβολή ως επισυναπτόμενο αρχείο. Το συγκεκριμένο μήνυμα χρησιμοποιείται όταν έχει επιλεγεί η Διαδικασία αξιολόγησης μέσω email, από το μενού Οργάνωση των εκδόσεων, Βήμα 2. (Σε διαφορετική περίπτωση ανατρέξτε στο REVIEW_REQUEST.)"
-
-msgid "emails.reviewCancel.subject"
-msgstr "Αίτημα για ακύρωση αξιολόγησης"
-
-msgid "emails.reviewCancel.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Θα θέλαμε να σας ενημερώσουμε ότι η συντακτική ομάδα αποφάσισε την ακύρωση του αιτήματός μας προς εσάς για την αξιολόγηση της εργασίας, "{$submissionTitle}," για τις εκδόσεις {$contextName}. Σας ζητούμε συγνώμη για την ενδεχόμενη αναστάτωση και ελπίζουμε να είναι δυνατή η μελλοντική βοήθειά σας για τη διαδικασία αξιολόγησης μιας εργασίας.
\n"
-"
\n"
-"Για οποιαδήποτε διευκρίνιση, παρακαλώ επικοινωνήστε μαζί μας"
-
-msgid "emails.reviewCancel.description"
-msgstr "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται από τον Επιμελητή Σειράς σε Αξιολογητή ο οποίος έχει αναλάβει την αξιολόγηση μιας υποβολής και του γνωστοποιείται η ακύρωση της εν λόγω αξιολόγησης"
-
-msgid "emails.reviewConfirm.subject"
-msgstr "Δυνατότητα πραγματοποίησης αξιολόγησης"
-
-msgid "emails.reviewConfirm.body"
-msgstr ""
-"Επιμελητές:
\n"
-"
\n"
-"Θα ήθελα να σας ενημερώσω ότι είμαι διαθέσιμος και πρόθυμος να αναλάβω την αξιολόγηση της εργασίας, "{$submissionTitle}," για τις εκδόσεις {$contextName}. Ευχαριστώ για την εμπιστοσύνη σας και σκοπεύω να έχω την υποβολή έτοιμη μέχρι την προθεσμία, {$reviewDueDate}, αν όχι νωρίτερα.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewConfirm.description"
-msgstr "Το συγκεκριμένο μήνυμα αποστέλλεται από τον Αξιολογητή στον Επιμελητή Σειράς ως απάντηση στο αίτημα αξιολόγησης, για να τον ειδοποιήσει ότι δέχεται να αναλάβει την αξιολόγηση της υποβολής και ότι η αξιολόγηση θα ολοκληρωθεί στην καθορισμένη ημερομηνία."
-
-msgid "emails.reviewDecline.subject"
-msgstr "Μη δυνατότητα πραγματοποίησης αξιολόγησης"
-
-msgid "emails.reviewDecline.body"
-msgstr ""
-"Επιμελητές:
\n"
-"
\n"
-"Θα ήθελα να σας ενημερώσω ότι την τρέχουσα περίοδο, δυστυχώς δεν δύναμαι να αναλάβω την αξιολόγηση της εργασίας, "{$submissionTitle}," για τις εκδόσεις {$contextName}. Θα ήθελα να σας ευχαριστήσω για την εμπιστοσύνη σας και μη διστάσετε να επικοινωνήσετε μαζί μου ξανά στο μέλλον για μια πιθανή συνεργασία.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewDecline.description"
-msgstr "Το συγκεκριμένο μήνυμα αποστέλλεται από τον Αξιολογητή στον Επιμελητή Σειράς ως απάντηση στο αίτημα αξιολόγησης για να τον ενημερώσει ότι δεν μπορεί να αναλάβει την συγκεκριμένη αξιολόγηση."
-
-msgid "emails.reviewAck.subject"
-msgstr "Επιβεβαίωση λήψης αξιολόγησης εργασίας"
-
-msgid "emails.reviewAck.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Σας ευχαριστούμε που ολοκληρώσατε την αξιολόγηση της εργασίας, "{$submissionTitle}," για τις εκδόσεις {$contextName}, καθώς και για τη συμβολή σας στην ποιότητα του περιεχομένου της συγκεκριμένης έκδοσης."
-
-msgid "emails.reviewAck.description"
-msgstr "Το συγκεκριμένο μήνυμα αποστέλλεται από τον Επιμελητή Σειράς στον Αξιολογητή για να επιβεβαιώσει τη λήψη της ολοκληρωμένης αξιολόγησης και να εκφράσει την ευχαριστία του στον αξιολογητή για τη συμβολή του στην συγκεκριμένη έκδοση."
-
-msgid "emails.reviewRemind.subject"
-msgstr "Υπενθύμιση αξιολόγησης υποβολής"
-
-msgid "emails.reviewRemind.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"JΤο μήνυμα αυτό αποτελεί μια απλή υπενθύμιση σχετικά με την αξιολόγηση της υποβολής, "{$submissionTitle}," για τις εκδόσεις {$contextName} που έχετε αναλάβει. Ελπίζουμε ότι η αξιολόγηση να είναι έτοιμη μέχρι την σχετική προθεσμία {$reviewDueDate}, και θα είμαστε ευγνώμονες να τη λάβουμε το συντομότερο δυνατό.
\n"
-"
\n"
-"Εάν για οποιοδήποτε λόγο δεν διαθέτετε το όνομα χρήστη και κωδικό πρόσβασης σας για τον ιστότοπο των εκδόσων e-books, μπορείτε να χρησιμοποιήσετε τον παρακάτω σύνδεσμο για να επαναφέρετε τον κωδικό πρόσβασης σας (το οποίο θα σας αποσταλεί με email μαζί με το όνομα χρήστη). {$passwordResetUrl}
\n"
-"
\n"
-"URL Υποβολής: {$submissionReviewUrl}
\n"
-"
\n"
-"Username: {$reviewerUserName}
\n"
-"
\n"
-"Θα σας παρακαλούσαμε να μας επιβεβαιώσετε ότι είστε σε θέση να ολοκληρώσετε επιτυχώς την, τόσο σημαντική για τις εκδόσεις, εργασία της αξιολόγησης . Ελπίζουμε να λάβουμε σύντομα την απάντησή σας.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemind.description"
-msgstr "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται από τον Επιμελητή Σειράς ως υπενθύμιση στον Αξιολογητή για την ολοκλήρωση της αξιολόγησης."
-
-msgid "emails.reviewRemindOneclick.subject"
-msgstr "Υπενθύμιση αξιολόγησης υποβολής"
-
-msgid "emails.reviewRemindOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Το μήνυμα αυτό αποτελεί μια απλή υπενθύμιση σχετικά με την αξιολόγηση της υποβολής, "{$submissionTitle}," για τις εκδόσεις {$contextName} που έχετε αναλάβει. Ελπίζουμε ότι η αξιολόγηση να είναι έτοιμη μέχρι την σχετική προθεσμία {$reviewDueDate}, και θα είμαστε ευγνώμονες να τη λάβουμε το συντομότερο δυνατό.
\n"
-"
\n"
-"URL υποβολής: {$submissionReviewUrl}
\n"
-"
\n"
-"Θα σας παρακαλούσαμε να μας επιβεβαιώσετε ότι είστε σε θέση να ολοκληρώσετε επιτυχώς την, τόσο σημαντική για την έκδοση μας, εργασία της αξιολόγησης . Ελπίζουμε να λάβουμε σύντομα την απάντησή σας.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindOneclick.description"
-msgstr "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται από τον Επιμελητή Σειράς ως υπενθύμιση στον Αξιολογητή για την πραγματοποίηση της αξιολόγησης."
-
-msgid "emails.reviewRemindAuto.subject"
-msgstr "Αυτοματοποιημένη υπενθύμιση αξιολόγησης υποβολής"
-
-msgid "emails.reviewRemindAuto.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Το μήνυμα αυτό αποτελεί μια απλή υπενθύμιση σχετικά με την αξιολόγηση της υποβολής, "{$submissionTitle}," για τις εκδόσεις {$contextName} που έχετε αναλάβει. Ελπίζουμε ότι η αξιολόγηση να είναι έτοιμη μέχρι την σχετική προθεσμία {$reviewDueDate}. Λάβετε υπόψη σας ότι το μήνυμα αυτό δημιουργήθηκε αυτόματα και αποστέλλεται μετά την πάροδο της ημερομηνίας αυτής. Παρόλα αυτά θα είμαστε ευγνώμονες να λάβουμε την αξιολόγησή σας το συντομότερο δυνατό.
\n"
-"
\n"
-"IΕάν για οποιοδήποτε λόγο δεν διαθέτετε το όνομα χρήστη και κωδικό πρόσβασης σας για τον ιστότοπο της Τιμαίας, μπορείτε να χρησιμοποιήσετε τον παρακάτω σύνδεσμο για να επαναφέρετε τον κωδικό πρόσβασης σας (το οποίο θα σας αποσταλλεί με email μαζί με το όνομα χρήστη). {$passwordResetUrl}
\n"
-"
\n"
-"URL Υποβολής: {$submissionReviewUrl}
\n"
-"
\n"
-"Θα σας παρακαλούσαμε να μας επιβεβαιώσετε ότι είστε σε θέση να ολοκληρώσετε επιτυχώς την, τόσο σημαντική για το περιοδικό, εργασία της αξιολόγησης . Ελπίζουμε να λάβουμε σύντομα την απάντησή σας.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAuto.description"
-msgstr "Το συγκεκριμένο μήνυμα αποστέλλεται αυτόματα όταν παρέλθει η ημερομηνία ολοκλήρωσης της αξιολόγησης (ανατρέξτε στις Επιλογές αξιολόγησης στο μενού Οργάνωση της έκδοσης, Βήμα 2) και, επίσης, απενεργοποιείται η δυνατότητα πρόσβασης του αξιολογητή με ένα μόνο κλικ. Οι προγραμματισμένες εργασίες πρέπει να ενεργοποιηθούν και να ρυθμιστούν (ανατρέξτε στο αρχείο ρυθμίσεων του ιστότοπου)."
-
-msgid "emails.reviewRemindAutoOneclick.subject"
-msgstr "Αυτοματοποιημένη υπενθύμιση αξιολόγησης υποβολής"
-
-msgid "emails.reviewRemindAutoOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Το μήνυμα αυτό αποτελεί μια απλή υπενθύμιση σχετικά με την αξιολόγηση της υποβολής, "{$submissionTitle}," για τις εκδόσεις {$contextName} που έχετε αναλάβει.Ελπίζουμε ότι η αξιολόγηση να είναι έτοιμη μέχρι την σχετική προθεσμία {$reviewDueDate}. Λάβετε υπόψη σας ότι το μήνυμα αυτό δημιουργήθηκε αυτόματα και αποστέλλεται μετά την πάροδο της ημερομηνίας αυτής. Παρόλα αυτά θα είμαστε ευγνώμονες να λάβουμε την αξιολόγησή σας το συντομότερο δυνατό.
\n"
-"
\n"
-"URL Υποβολής: {$submissionReviewUrl}
\n"
-"
\n"
-"Θα σας παρακαλούσαμε να μας επιβεβαιώσετε ότι είστε σε θέση να ολοκληρώσετε επιτυχώς την, τόσο σημαντική για το περιοδικό, εργασία της αξιολόγησης . Ελπίζουμε να λάβουμε σύντομα την απάντησή σας.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAutoOneclick.description"
-msgstr "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται αυτόματα όταν παρέλθει η ημερομηνία ολοκλήρωσης της αξιολόγησης (ανατρέξτε στις Επιλογές αξιολόγησης στο μενού Οργάνωση της έκδοσης, Βήμα 2) και, επίσης, απενεργοποιείται η δυνατότητα πρόσβασης του αξιολογητή με ένα μόνο κλικ. Οι προγραμματισμένες εργασίες πρέπει να ενεργοποιηθούν και να ρυθμιστούν(ανατρέξτε στο αρχείο ρυθμίσεων του ιστότοπου)."
-
-msgid "emails.editorDecisionAccept.subject"
-msgstr "Απόφαση Επιμελητή"
-
-msgid "emails.editorDecisionAccept.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Σχετικά με την υποβολή σας στις εκδόσεις {$contextName}, με τίτλο "{$submissionTitle}" θα θέλαμε να σας ενημερώσουμε :
\n"
-"
\n"
-"
\n"
-"
\n"
-"URL Εργασίας: {$submissionUrl}
\n"
-"Username: {$authorUsername}"
-
-msgid "emails.editorDecisionAccept.description"
-msgstr "Αυτό το email αποστέλλεται από τον Επιμελητή/Εκδότη ή Από τον Επιμελητή Σειράς σε έναν Συγγραφέα για να τον ενημερώσει για την τελική απόφαση σχετικά με την υποβολή του."
-
-msgid "emails.editorDecisionSendToExternal.subject"
-msgstr "Απόφαση Επιμελητή"
-
-msgid "emails.editorDecisionSendToExternal.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Σχετικά με την υποβολή σας στις εκδόσεις {$contextName},με τίτλο "{$submissionTitle}" θα θέλαμε να σας ενημερώσουμε :
\n"
-"
\n"
-"
\n"
-"
\n"
-"URL εργασίας: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToExternal.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them that their submission is being sent to an external review."
-
-msgid "emails.editorDecisionSendToProduction.subject"
-msgstr "Απόφαση Επιμελητή"
-
-msgid "emails.editorDecisionSendToProduction.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Η επιμέλεια της εργασίας σας με τίτλο, "{$submissionTitle}," έχει ολοκληρωθεί. Η εργασία σας έχει αποσταλεί ώστε να ξεκινήσει η διαδικασία παραγωγής, επεξεργασίας και δημοσίευσης του έργου σας.
\n"
-"
\n"
-"URL εργασίας: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToProduction.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them that their submission is being sent to production."
-
-msgid "emails.editorDecisionRevisions.subject"
-msgstr "Απόφαση Επιμελητή"
-
-msgid "emails.editorDecisionRevisions.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Σχετικά με την υποβολή σας στις εκδόσεις {$contextName}, με τίτλο "{$submissionTitle}", θα θέλαμε να σας ενημερώσουμε:
\n"
-"
\n"
-"
\n"
-"
\n"
-"URL εργασίας: {$submissionUrl}"
-
-msgid "emails.editorDecisionRevisions.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them of a final decision regarding their submission."
-
-msgid "emails.editorDecisionResubmit.subject"
-msgstr "Απόφαση Επιμελητή"
-
-msgid "emails.editorDecisionResubmit.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Σχετικά με την υποβολή σας στις εκδόσεις {$contextName}, με τίτλο "{$submissionTitle}", θα θέλαμε να σας ενημερώσουμε:
\n"
-"
\n"
-"
\n"
-"
\n"
-"URL εργασίας: {$submissionUrl}"
-
-msgid "emails.editorDecisionResubmit.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them of a final decision regarding their submission."
-
-msgid "emails.editorDecisionDecline.subject"
-msgstr "Απόφαση Επιμελητή"
-
-msgid "emails.editorDecisionDecline.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Σχετικά με την υποβολή σας στις εκδόσεις {$contextName}, με τίτλο "{$submissionTitle}", θα θέλαμε να σας ενημερώσουμε:
\n"
-"
\n"
-"
\n"
-"
\n"
-"URL εργασίας: {$submissionUrl}"
-
-msgid "emails.editorDecisionDecline.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them of a final decision regarding their submission."
-
-msgid "emails.copyeditRequest.subject"
-msgstr "Αίτημα Επιμέλειας Κειμένων"
-
-msgid "emails.copyeditRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"Θα ήθελα να σας ζητήσω να αναλάβετε την επιμέλεια του κειμένου της εργασίας "{$submissionTitle}" που υποβλήθηκε στις εκδόσεις {$contextName} ακολουθώντας τα παρακάτω βήματα:
\n"
-"1. Κάντε κλικ στο URL υποβολής που βρίσκεται παρακάτω.
\n"
-"2. Συνδεθείτε στις εκδόσεις και κάντε κλικ στην επιλογή Αρχείο που εμφανίζεται στο Βήμα 1.
\n"
-"3. Ανατρέξτε στις Οδηγίες διαμόρφωσης κειμένων που βρίσκονται στην ιστοσελίδα.
\n"
-"4. Ανοίξτε το αρχείο που κατέβηκε και πραγματοποιήστε διαμόρφωση κειμένου, ενώ προσθέτετε ερωτήματα προς τον συγγραφέα όπου χρειάζεται.
\n"
-"5. Αποθηκεύστε το αρχείο με το διαμορφωμένο κείμενο και μεταφορτώστε το στο Βήμα 1 της Επιμέλειας Κειμένων.
\n"
-"6. Αποστείλετε το σχετικό email ΟΛΟΚΛΗΡΩΣΗΣ στον επιμελητή.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"URL Υποβολής: {$submissionUrl}
\n"
-"Όνομα Χρήστη: {$participantUsername}"
-
-msgid "emails.copyeditRequest.description"
-msgstr "Το συγκεκριμένο μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται από τον Επιμελητή μιας Σειράς σε κάποιον από τους υπεύθυνους επιμέλειας κειμένων της υποβολής για να ζητήσει την έναρξη της διαδικασίας επιμέλειας κειμένων (copyediting). Παρέχει πληροφορίες σχετικά με την επιμέλεια της υποβολής και τον τρόπο πρόσβασης σε αυτή."
-
-msgid "emails.layoutRequest.subject"
-msgstr "Αίτημα σελιδοποίησης"
-
-msgid "emails.layoutRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"Στο στάδιο αυτό θα πρέπει να δημιουργηθούν τα κατάλληλα τυπογραφικά δοκίμια για την υποβολή με τίτλο "{$submissionTitle}" των εκδόσεων {$contextName} ακολουθώντας τα παρακάτω βήματα:
\n"
-"
\n"
-"1. Κάντε κλικ στο URL της υποβολής που βρίσκεται παρακάτω.
\n"
-"2. Συνδεθείτε στις εκδόσεις και χρησιμοποιήστε το αρχείο της Έκδοσης Σελιδοποίησης για τη δημιουργία των εντύπων σύμφωνα με τα πρότυπα του περιοδικού.
\n"
-"3. Αποστείλατε το μήνυμα ΟΛΟΚΛΗΡΩΜΕΝΟ στον επιμελητή.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Submission URL: {$submissionUrl}
\n"
-"Username: {$participantUsername}
\n"
-"
\n"
-"Εάν δεν μπορείτε να αναλάβετε τη συγκεκριμένη εργασία αυτή τη στιγμή ή έχετε απορίες, επικοινωνήστε μαζί μας. Ευχαριστούμε για την συμβολή σας σε αυτή την έκδοση."
-
-msgid "emails.layoutRequest.description"
-msgstr "Το συγκεκριμένο μήνυμα στέλνεται από τον Επιμελητή Σειράς στον Επιμελητή Σελιδοποίησης και τον ενημερώνει ότι του ανατίθεται η επιμέλεια της σελιδοποίησης μιας υποβολής. Παρέχει πληροφορίες σχετικά με την υποβολή και τον τρόπο πρόσβασης σε αυτή."
-
-msgid "emails.layoutComplete.subject"
-msgstr "Ολοκλήρωση δημιουργίας σελιδοποιημένων δοκιμίων"
-
-msgid "emails.layoutComplete.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Τα σελιδοποιημένα δοκίμια για την εργασία με τίτλο, "{$submissionTitle}," για τις εκδόσεις {$contextName} είναι έτοιμα για την προετοιμασία των τυπογραφικών δοκιμίων.
\n"
-"
\n"
-"Εάν έχετε απορίες, επικοινωνήστε μαζί μου.
\n"
-"
\n"
-"{$signatureFullName}"
-
-msgid "emails.layoutComplete.description"
-msgstr "Το συγκεκριμένο μήνυμα στέλνεται από τον Επιμελητή Σελιδοποίησης προς τον Επιμελητή Σειράς και τον ενημερώνει για την ολοκλήρωση της διαδικασίας σελιδοποίησης."
-
-msgid "emails.indexRequest.subject"
-msgstr "Αίτημα Ευρετηρίασης"
-
-msgid "emails.indexRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"Στο στάδιο αυτό της υποβολής με τίτλο "{$submissionTitle}" για τις εκδόσεις {$contextName} θα πρέπει να γίνει η Ευρετηρίαση της ακολουθώντας τα παρακάτω βήματα:
\n"
-"1. Κάντε κλικ στο URL υποβολής που βρίσκεται παρακάτω.
\n"
-"2. 2. Συνδεθείτε στις εκδόσεις και χρησιμοποιήστε το αρχείο του Τυπογραφικού Δοκιμίου για τη δημιουργία εκτυπωμένων κειμένων σύμφωνα με τα πρότυπα των εκδόσεων.
\n"
-"3. Αποστείλατε το μήνυμα ΟΛΟΚΛΗΡΩΜΕΝΟ στον επιμελητή.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"URL Υποβολής: {$submissionUrl}
\n"
-"όνομα Χρήστη: {$participantUsername}
\n"
-"
\n"
-"Εάν δεν μπορείτε να αναλάβετε την συγκεκριμένη εργασία αυτή τη στιγμή ή έχετε απορίες, επικοινωνήστε μαζί μας. Ευχαριστούμε για την συμβολή σας στη συγκεκριμένη έκδοση.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.indexRequest.description"
-msgstr "Το συγκεκριμένο μήνυμα στέλνεται από τον Επιμελητή Σειράς στον Ευρετηριαστή και τον ενημερώνει ότι του ανατίθεται η ευρετηρίαση μιας υποβολής. Παρέχει πληροφορίες σχετικά με την υποβολή και τον τρόπο πρόσβασης σε αυτή."
-
-msgid "emails.indexComplete.subject"
-msgstr "Ολοκλήρωση Ευρετηρίασης"
-
-msgid "emails.indexComplete.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Η ευρετηρίαση της εργασίας με τίτλο , "{$submissionTitle}," για τις εκδόσεις {$contextName} έχει ολοκληρωθεί και είναι έτοιμη για την προετοιμασία των τυπογραφικών δοκιμίων.
\n"
-"
\n"
-"Εάν έχετε απορίες, επικοινωνήστε μαζί μου.
\n"
-"
\n"
-"{$signatureFullName}"
-
-msgid "emails.indexComplete.description"
-msgstr "Το συγκεκριμένο μήνυμα στέλνεται από τον Υπεύθυνο Ευρετηρίασης προς τον Επιμελητή Σειράς και τον ενημερώνει για την ολοκλήρωση της διαδικασίας ευρετηρίασης της εργασίας."
-
-msgid "emails.emailLink.subject"
-msgstr "E-book πιθανού ενδιαφέροντος"
-
-msgid "emails.emailLink.body"
-msgstr "Ίσως να σας ενδιαφέρει το κείμενο με τίτλο "{$submissionTitle}" του/των {$authorName} που δημοσιεύτηκε στον Τομ. {$volume}, No {$number} ({$year}) των εκδόσεων {$contextName} στον σύνδεσμο "{$monographUrl}"."
-
-msgid "emails.emailLink.description"
-msgstr "Το συγκεκριμένο πρότυπο μηνύματος email παρέχει σε εγγεγραμμένο αναγνώστη τη δυνατότητα αποστολής πληροφοριών σχετικά με μία έκδοση σε οποιονδήποτε μπορεί να έχει εκδηλώσει ενδιαφέρον. Είναι διαθέσιμο μέσω των Εργαλείων ανάγνωσης και πρέπει να ενεργοποιηθεί από Υπεύθυνο διαχείρισης των εκδόσεων στη σελίδα Διαχείρισης εργαλείων ανάγνωσης."
-
-msgid "emails.notifySubmission.subject"
-msgstr "Ειδοποίηση Υποβολής"
-
-msgid "emails.notifySubmission.body"
-msgstr ""
-"Έχετε μια νέα ειδοποίηση από {$sender} σχετικά με την έκδοση "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
-"
\n"
-"\t\t{$message}"
-
-msgid "emails.notifySubmission.description"
-msgstr "A notification from a user sent from a submission information center modal."
-
-msgid "emails.notifyFile.subject"
-msgstr "Ειδοποίηση Αρχείου Υποβολής"
-
-msgid "emails.notifyFile.body"
-msgstr ""
-"Έχετε ένα νέο μήνυμα {$sender} σχετικά με το αρχείο "{$fileName}" της έκδοσης "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
-"
\n"
-"\t\t{$message}"
-
-msgid "emails.notifyFile.description"
-msgstr "A notification from a user sent from a file information center modal"
-
-msgid "emails.notificationCenterDefault.subject"
-msgstr "Ένα μήνυμα σχετικά με τις Εκδόσεις {$contextName}"
-
-msgid "emails.notificationCenterDefault.body"
-msgstr "Παρακαλώ πληκτρολογείστε το μήνυμα σας"
-
-msgid "emails.notificationCenterDefault.description"
-msgstr "The default (blank) message used in the Notification Center Message Listbuilder."
diff --git a/locale/el_GR/locale.po b/locale/el_GR/locale.po
deleted file mode 100644
index 49a3c04abc1..00000000000
--- a/locale/el_GR/locale.po
+++ /dev/null
@@ -1,1190 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
-"PO-Revision-Date: 2019-11-28T15:10:06-08:00\n"
-"Language: \n"
-
-msgid "monograph.audience"
-msgstr "Κοινό"
-
-msgid "monograph.coverImage"
-msgstr "Εικόνα Εξωφύλλου"
-
-msgid "monograph.coverImage.uploadInstructions"
-msgstr "Βεβαιωθείτε ότι το ύψος της εικόνας δεν είναι μεγαλύτερο από το 150% του πλάτους της, διαφορετικά η εικόνα του εξωφύλλου σας δεν θα εμφανίζεται στο carousel των εκδόσεων της συλλογής."
-
-msgid "monograph.audience.rangeQualifier"
-msgstr "Προσδιορισμός Εύρος Κοινού"
-
-msgid "monograph.audience.rangeFrom"
-msgstr "Εύρος Κοινού (από)"
-
-msgid "monograph.audience.rangeTo"
-msgstr "Εύρος Κοινού (σε)"
-
-msgid "monograph.audience.rangeExact"
-msgstr "Εύρος Κοινού (ακριβής)"
-
-msgid "monograph.languages"
-msgstr "Γλώσσες (Αγγλικά, Γαλλικά, Ισπανικά)"
-
-msgid "monograph.publicationFormats"
-msgstr "Μορφές Δημοσίευσης"
-
-msgid "monograph.carousel.publicationFormats"
-msgstr "Μορφότυπα:"
-
-msgid "monograph.type"
-msgstr "Τύπος Υποβολής"
-
-msgid "submission.pageProofs"
-msgstr "Σελίδα Τυπογραφικών Δοκιμίων"
-
-msgid "monograph.proofReadingDescription"
-msgstr "Ο επιμελητής σελιδοποίησης ανεβάζει τα αρχεία για το στάδιο-παραγωγής που έχουν ετοιμαστεί για δημοσίευση εδώ. Επιλέξτε +Ανάθεση για να ορίσετε συγγραφείς και άλλους να διορθώσουν και να ελέγξουν τα τυπογραφικά δοκίμια ώστε τα διορθωμένα αρχεία να μεταφορτωθούν για έγκριση πριν τη δημοσίευση."
-
-msgid "monograph.task.addNote"
-msgstr "Προσθήκη Ανάθεσης"
-
-msgid "monograph.accessLogoOpen.altText"
-msgstr "Ανοικτή Πρόσβαση"
-
-msgid "monograph.publicationFormat.imprint"
-msgstr "Αποτύπωμα (Λογότυπο)/ imprint"
-
-msgid "monograph.publicationFormat.pageCounts"
-msgstr "Αριθμός Σελίδων"
-
-msgid "monograph.publicationFormat.frontMatterCount"
-msgstr "Πρώτες Σελίδες"
-
-msgid "monograph.publicationFormat.backMatterCount"
-msgstr "Πίσω Σελίδες"
-
-msgid "monograph.publicationFormat.productComposition"
-msgstr "Σύνθεση Προϊόντος"
-
-msgid "monograph.publicationFormat.productFormDetailCode"
-msgstr "Λεπτομέρειες Προϊόντος (δεν απαιτείται)"
-
-msgid "monograph.publicationFormat.productIdentifierType"
-msgstr "Κωδικός Προϊόντος"
-
-msgid "monograph.publicationFormat.price"
-msgstr "Τιμή"
-
-msgid "monograph.publicationFormat.priceRequired"
-msgstr "Μία τιμή απαιτείται"
-
-msgid "monograph.publicationFormat.priceType"
-msgstr "Τύπος Τιμής"
-
-msgid "monograph.publicationFormat.discountAmount"
-msgstr "Ποσοστό Έκπτωσης, κατα περίπτωση"
-
-msgid "monograph.publicationFormat.productAvailability"
-msgstr "Διαθεσιμότητα Προϊόντος"
-
-msgid "monograph.publicationFormat.returnInformation"
-msgstr "Δείκτης Επιστρεφόμενων"
-
-msgid "monograph.publicationFormat.digitalInformation"
-msgstr "Ψηφιακές Πληροφορίες"
-
-msgid "monograph.publicationFormat.productDimensions"
-msgstr "Φυσικές Διαστάσεις"
-
-msgid "monograph.publicationFormat.productFileSize"
-msgstr "Μέγεθος Αρχείου σε Mbytes"
-
-msgid "monograph.publicationFormat.productFileSize.override"
-msgstr "Εισαγωγή δικής σας τιμής για το μέγεθος του αρχείου?"
-
-msgid "monograph.publicationFormat.productHeight"
-msgstr "Ύψος"
-
-msgid "monograph.publicationFormat.productThickness"
-msgstr "Πάχος"
-
-msgid "monograph.publicationFormat.productWeight"
-msgstr "Βάρος"
-
-msgid "monograph.publicationFormat.productWidth"
-msgstr "Πλάτος"
-
-msgid "monograph.publicationFormat.countryOfManufacture"
-msgstr "Χώρα Κατασκευής"
-
-msgid "monograph.publicationFormat.technicalProtection"
-msgstr "Digital Technical Protection"
-
-msgid "monograph.publicationFormat.productRegion"
-msgstr "Περιοχή Διανομής Προϊόντος"
-
-msgid "monograph.publicationFormat.taxRate"
-msgstr "Φορολογικός Συντελεστής"
-
-msgid "monograph.publicationFormat.taxType"
-msgstr "Τύπος Φορολογίας"
-
-msgid "monograph.publicationFormat.isApproved"
-msgstr "Συμπεριλάβετε τα μεταδεδομένα του μορφότυπου της έκδοσης στην καταχώρηση του βιβλίου στον κατάλογο."
-
-msgid "monograph.publicationFormat.noMarketsAssigned"
-msgstr "Λείπουν αγορές και τιμές"
-
-msgid "monograph.publicationFormat.noCodesAssigned"
-msgstr "Λείπει ο κωδικός ταυτοπίοιησης (identification code)."
-
-msgid "monograph.publicationFormat.missingONIXFields"
-msgstr "Λείπουν ορισμένα πεδία μεταδεδομένων."
-
-msgid "monograph.publicationFormat.formatDoesNotExist"
-msgstr "Ο τύπος αρχείου της έκδοσης που έχετε επιλέξει δεν υπάρχει πλέον για αυτή τη μονογραφία.
"
-
-msgid "monograph.publicationFormat.openTab"
-msgstr "Ετικέτα Μορφότυπου ανοικτής δημοσίευσης."
-
-msgid "grid.catalogEntry.publicationFormatType"
-msgstr "Μορφότυπο Δημοσίευσης"
-
-msgid "grid.catalogEntry.nameRequired"
-msgstr "Απαιτείται όνομα"
-
-msgid "grid.catalogEntry.validPriceRequired"
-msgstr "Σας παρακαλούμε εισάγεται μια έγκυρη τιμή."
-
-msgid "grid.catalogEntry.publicationFormatDetails"
-msgstr "Λεπτομέρειες Μορφότυπου"
-
-msgid "grid.catalogEntry.physicalFormat"
-msgstr "Physical format"
-
-msgid "grid.catalogEntry.monographRequired"
-msgstr "Απαιτείται ένα id της μονογραφίας."
-
-msgid "grid.catalogEntry.publicationFormatRequired"
-msgstr "Ένα μορφότυπο της έκδοσης πρέπει να επιλεγεί."
-
-msgid "grid.catalogEntry.isAvailable"
-msgstr "Διαθέσιμο"
-
-msgid "grid.catalogEntry.proof"
-msgstr "Τυπογραφικό Δοκίμιο"
-
-msgid "grid.catalogEntry.availableRepresentation.title"
-msgstr "Έγκριση Μορφότυπου"
-
-msgid "grid.catalogEntry.availableRepresentation.message"
-msgstr "Αυτό το μορφότυπο θα γίνει τώρα διαθέσιμο στους αναγνώστες, μέσω αρχείων διαθέσιμων για λήψη που θα εμφανίζονται με την καταχώρηση του βιβλίου στον κατάλογο και/ή μέσω περαιτέρω ενεργειών από τις εκδόσεις για τη διανομή του βιβλίου.
"
-
-msgid "grid.catalogEntry.availableRepresentation.removeMessage"
-msgstr "Αυτό το μορφότυπο δεν διατίθεται πλεόν στους αναγνώστες, μέσω αρχείων διαθέσιμων για λήψη που προηγούμένως εμφανίζονταν με την καταχώρηση του βιβλίου στον κατάλογο και/ή μέσω περαιτέρω ενεργειών από τις εκδόσεις για τη διανομή του βιβλίου.
"
-
-msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
-msgstr "Η καταχώρηση στον κατάλογο δεν έγινε αποδεκτή"
-
-msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
-msgstr "Το μορφότυπο δεν είναι καταχωρημένο στον κατάλογο"
-
-msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
-msgstr "Το τυπογραφικό δοκίμιο δεν έγινε αποδεκτό"
-
-msgid "grid.catalogEntry.fileSizeRequired"
-msgstr "Απαιτείται μέγεθος αρχείου για τα ψηφιακά μορφότυπα."
-
-msgid "grid.catalogEntry.productAvailabilityRequired"
-msgstr "Απαιτείται κωδικός διαθεσιμότητας για το προϊόν."
-
-msgid "grid.catalogEntry.productCompositionRequired"
-msgstr "Απαιτείται να επιλέξετε έναν κωδικό σύνθεσης του προϊόντος."
-
-msgid "grid.catalogEntry.identificationCodeValue"
-msgstr "Κωδικοποιημένες Τιμές (Code Value)"
-
-msgid "grid.catalogEntry.identificationCodeType"
-msgstr "Τύπος Κωδικού ONIX"
-
-msgid "grid.catalogEntry.codeRequired"
-msgstr "Απαιτείται ένας κωδικός."
-
-msgid "grid.catalogEntry.valueRequired"
-msgstr "Απαιτείται μία τιμή."
-
-msgid "grid.catalogEntry.salesRights"
-msgstr "Δικαιώματα Πώλησης"
-
-msgid "grid.catalogEntry.salesRightsValue"
-msgstr "Κωδικοποιημένες Τιμές (Code Value)"
-
-msgid "grid.catalogEntry.salesRightsType"
-msgstr "Τύπος Δικαιωμάτων Πώλησης"
-
-msgid "grid.catalogEntry.salesRightsROW"
-msgstr "Υπόλοιπος κόσμος?"
-
-msgid "grid.catalogEntry.salesRightsROW.tip"
-msgstr "Επιλέξτε αυτό το κουτάκι για να καταχωρήσετε τα Δικαιώματα Πώλησης σε όλα τα μορφότυπα σας. Δεν χρειάζεται να επιλεγούν Χώρες και Περιοχές σε αυτή την περίπτωση."
-
-msgid "grid.catalogEntry.oneROWPerFormat"
-msgstr "Υπάρχει ήδη ένας τύπος πωλήσεων για τον υπόλοιπο κόσμο καθορισμένος για το μορφότυπο της έκδοσης."
-
-msgid "grid.catalogEntry.countries"
-msgstr "Χώρες"
-
-msgid "grid.catalogEntry.regions"
-msgstr "Περιοχές"
-
-msgid "grid.catalogEntry.included"
-msgstr "Συμπεριλαμβάνεται"
-
-msgid "grid.catalogEntry.excluded"
-msgstr "Εξαιρούνται"
-
-msgid "grid.catalogEntry.markets"
-msgstr "Περιοχές Αγοράς"
-
-msgid "grid.catalogEntry.marketTerritory"
-msgstr "Περιοχές"
-
-msgid "grid.catalogEntry.publicationDates"
-msgstr "Ημερομηνίες Έκδοσης"
-
-msgid "grid.catalogEntry.roleRequired"
-msgstr "Απαιτείται ένας ρόλος αντιπροσώπου."
-
-msgid "grid.catalogEntry.dateFormatRequired"
-msgstr "Απαιτείται Μορφή Ημερομηνίας."
-
-msgid "grid.catalogEntry.dateValue"
-msgstr "Ημερομηνία"
-
-msgid "grid.catalogEntry.dateRole"
-msgstr "Ρόλος"
-
-msgid "grid.catalogEntry.dateFormat"
-msgstr "Μορφή Ημερομηνίας"
-
-msgid "grid.catalogEntry.dateRequired"
-msgstr "Απαιτείται ημερομηνία και η τιμή της πρέπει να ταιριάζει με το επιλεγμένο μορφότυπο."
-
-msgid "grid.catalogEntry.representatives"
-msgstr "Αντιπρόσωποι"
-
-msgid "grid.catalogEntry.representativeType"
-msgstr "Τύπος αντιπροσώπου (Representative Type)"
-
-msgid "grid.catalogEntry.agentsCategory"
-msgstr "Πράκτορες (Agents)"
-
-msgid "grid.catalogEntry.suppliersCategory"
-msgstr "Προμηθευτές"
-
-msgid "grid.catalogEntry.agent"
-msgstr "Πράκτορας"
-
-msgid "grid.catalogEntry.agentTip"
-msgstr "Μπορείτε να αναθέσετε σε έναν πράκτορα να σας αντιπροσωπεύσει σε αυτή την περιοχή. Δεν απαιτείται."
-
-msgid "grid.catalogEntry.supplier"
-msgstr "Προμηθευτής"
-
-msgid "grid.catalogEntry.representativeRoleChoice"
-msgstr "Επιλέξτε έναν ρόλο:"
-
-msgid "grid.catalogEntry.representativeRole"
-msgstr "Ρόλος"
-
-msgid "grid.catalogEntry.representativeName"
-msgstr "Όνομα"
-
-msgid "grid.catalogEntry.representativePhone"
-msgstr "Τηλέφωνο"
-
-msgid "grid.catalogEntry.representativeEmail"
-msgstr "Email"
-
-msgid "grid.catalogEntry.representativeWebsite"
-msgstr "Ιστότοπος"
-
-msgid "grid.catalogEntry.representativeIdValue"
-msgstr "Αναγνωριστικό Αντιπροσώπου"
-
-msgid "grid.catalogEntry.representativeIdType"
-msgstr "Τύπος αναγνωριστικού Αντιπροσώπου (συστήνεται GLN)"
-
-msgid "grid.catalogEntry.representativesDescription"
-msgstr "Μπορείτε να αφήσετε την επόμενη ενότητα κενή εάν εσείς παρέχετε τις υπηρεσίες στους πελάτες σας."
-
-msgid "grid.action.addRepresentative"
-msgstr "Προσθήκη Αντοπροσώπου"
-
-msgid "grid.action.editRepresentative"
-msgstr "Επεξεργασία του Αντιπροσώπου"
-
-msgid "grid.action.deleteRepresentative"
-msgstr "Διαγραφή του Αντιπροσώπου"
-
-msgid "spotlight.spotlights"
-msgstr "Βιτρίνα"
-
-msgid "spotlight.noneExist"
-msgstr "Δεν υπάρχουν τρέχουσες καταχωρήσεις στη Βιτρίνα."
-
-msgid "spotlight.title.homePage"
-msgstr "Στη βιτρίνα"
-
-msgid "spotlight.author"
-msgstr "Συγγραφέας,"
-
-msgid "grid.content.spotlights.spotlightItemTitle"
-msgstr "Spotlight Item"
-
-msgid "grid.content.spotlights.category.homepage"
-msgstr "Αρχική σελίδα"
-
-msgid "grid.content.spotlights.category.sidebar"
-msgstr "Πλευρική μπάρα"
-
-msgid "grid.content.spotlights.form.location"
-msgstr "Τοποθεσία Βιτρίνας"
-
-msgid "grid.content.spotlights.form.item"
-msgstr "Εισαγωγή Τίτλου Βιτρίνας (autocomplete)"
-
-msgid "grid.content.spotlights.form.title"
-msgstr "Τίτλος Βιτρίνας"
-
-msgid "grid.content.spotlights.form.type.book"
-msgstr "Βιβλίο"
-
-msgid "grid.content.spotlights.itemRequired"
-msgstr "Απαιτείται ένα τεκμήριο."
-
-msgid "grid.content.spotlights.titleRequired"
-msgstr "Απαιτείται τίτλος Βιτρίνας"
-
-msgid "grid.content.spotlights.locationRequired"
-msgstr "Παρακαλούμε επιλέξτε μια τοποθεσία της Βιτρίνας"
-
-msgid "grid.action.editSpotlight"
-msgstr "Επεξεργασία αυτής της Βιτρίνας"
-
-msgid "grid.action.deleteSpotlight"
-msgstr "Διαγραφής αυτής της Βιτρίνας"
-
-msgid "grid.action.addSpotlight"
-msgstr "Προσθήκη στη Βιτρίνα"
-
-msgid "manager.series.open"
-msgstr "Ανοικτές Υποβολές"
-
-msgid "manager.series.indexed"
-msgstr "Έχει ευρετηριαστεί"
-
-msgid "grid.libraryFiles.column.files"
-msgstr "Αρχεία"
-
-msgid "grid.action.catalogEntry"
-msgstr "Προβολή φόρμας καταχώρησης στον κατάλογο"
-
-msgid "grid.action.formatInCatalogEntry"
-msgstr "Μορφότυπο που εμφανίζεται στην κατχώρηση στον κατάλογο"
-
-msgid "grid.action.editFormat"
-msgstr "Επεξεργασία αυτού του μορφότυπου"
-
-msgid "grid.action.deleteFormat"
-msgstr "Διαγραφή αυτού του μορφότυπου"
-
-msgid "grid.action.addFormat"
-msgstr "Προσθήκη μορφότυπου δημοσίευσης"
-
-msgid "grid.action.approveProof"
-msgstr "Έγκριση του τυπογραφικού δοκιμίου για ευρετηρίαση και ένταξη του στον κατάλογο."
-
-msgid "grid.action.pageProofApproved"
-msgstr "Το αρχείο με τις σελίδες τυπογραφικού δοκιμίου είναι έτοιμο για δημοσίευση"
-
-msgid "grid.action.addAnnouncement"
-msgstr "Προσθήκη Ανακοίνωσης"
-
-msgid "grid.action.newCatalogEntry"
-msgstr "Νέα Καταχώριση στον Κατάλογο"
-
-msgid "grid.action.publicCatalog"
-msgstr "Προβολή αυτού του στοιχείου στον κατάλογο"
-
-msgid "grid.action.feature"
-msgstr "Εναλλαγή εμφάνισης στα προτεινόμενα βιβλία"
-
-msgid "grid.action.featureMonograph"
-msgstr "Εμφάνιση στο καρουσέλ του καταλόγου"
-
-msgid "grid.action.releaseMonograph"
-msgstr "Επισήμανση της υποβολής στις \"νέες κυκλοφορίες\""
-
-msgid "grid.action.manageCategories"
-msgstr "Ρυθμίσεις κατηγοριών για αυτές τις εκδόσεις"
-
-msgid "grid.action.manageSeries"
-msgstr "Ρυθμίσεις σειρών για αυτές τις εκδόσεις"
-
-msgid "grid.action.addCode"
-msgstr "Προσθήκη Κωδικού"
-
-msgid "grid.action.editCode"
-msgstr "Επεξεργασία Κωδικού"
-
-msgid "grid.action.deleteCode"
-msgstr "Διαγραφή Κωδικού"
-
-msgid "grid.action.addRights"
-msgstr "Προσθήκη Δικαιωμάτων Πώλησης"
-
-msgid "grid.action.editRights"
-msgstr "Επεξεργασία των Διακαιωμάτων"
-
-msgid "grid.action.deleteRights"
-msgstr "Διαγραφή των Δικαιωμάτων"
-
-msgid "grid.action.addMarket"
-msgstr "Προσθήκη Αγοράς (Market)"
-
-msgid "grid.action.editMarket"
-msgstr "Επεξεργασία Αγοράς"
-
-msgid "grid.action.deleteMarket"
-msgstr "Διαγραφή Αγοράς"
-
-msgid "grid.action.addDate"
-msgstr "Προσθήκη ημερομηνίας δημοσίευσης"
-
-msgid "grid.action.editDate"
-msgstr "Επεξεργασία ημερομηνίας"
-
-msgid "grid.action.deleteDate"
-msgstr "Διαγραφή της ημερομηνία"
-
-msgid "grid.action.publicationFormatTab"
-msgstr "Προβολή ετικέτας του μορφότυπου δημοσίευσης"
-
-msgid "grid.action.moreAnnouncements"
-msgstr "Πήγαινε στη σελίδα ανακοινώσεων των εκδόσεων"
-
-msgid "grid.action.submissionEmail"
-msgstr "Επιλέξτε για να διαβάσετε αυτό το email"
-
-msgid "grid.action.approveProofs"
-msgstr "Προβολή πλέγματος (grid) τυπογραφικών δοκιμίων"
-
-msgid "grid.action.proofApproved"
-msgstr "Έχει γίνει το τυπογραφικό δοκίμιο αυτού του μορφότυπου."
-
-msgid "grid.action.availableRepresentation"
-msgstr "Αποδοχή/απόριψη αυτού του μορφότυπου"
-
-msgid "grid.action.formatAvailable"
-msgstr "Το μορφότυπο είναι διαθέσιμο και έχει δημοσιευθεί"
-
-msgid "grid.reviewAttachments.add"
-msgstr "Προσθήκη Συνημμένου για Αξιολόγηση"
-
-msgid "grid.reviewAttachments.availableFiles"
-msgstr "Διαθέσιμα Αρχεία"
-
-msgid "series.series"
-msgstr "Σειρές"
-
-msgid "series.featured"
-msgstr "Featured"
-
-msgid "series.featured.description"
-msgstr "Αυτή η σειρά θα εμφανιστεί στο κύριο μενού πλοήγησής"
-
-msgid "series.path"
-msgstr "Διαδρομή"
-
-msgid "grid.series.urlWillBe"
-msgstr "Το URL της σειράς θα είναι {$sampleUrl}. Η 'διαδρομή' είναι μια σειρά χαρακτήρων μέσω της οποίας αναγνωρίζεται μοναδικά η σειρά."
-
-msgid "catalog.manage"
-msgstr "Διαχείριση Καταλόγου"
-
-msgid "catalog.manage.homepage"
-msgstr "Αρχική σελίδα"
-
-msgid "catalog.manage.newReleases"
-msgstr "Νέες Κυκλοφορίες"
-
-msgid "catalog.manage.category"
-msgstr "Κατηγορία"
-
-msgid "catalog.manage.series"
-msgstr "Σειρές"
-
-msgid "catalog.manage.managementIntroduction"
-msgstr "Καλως ήρθατε στη σελίδα διαχείρισης του Καταλόγου. Από αυτή τη σελίδα μπορείτε να δημοσιεύσετε νέες καταχωρήσεις βιβλίων στον Κατάλογο, να αναθεωρήσετε και να ρυθμίσετε τη λίστα με τα Προτεινόμενα Βιβλία, να αναθεωρήσετε και να ρυθμίσετε τη λίστα με τις Νέες Κυκλοφορίες, καθώς και να αναθεωρήσετε και να καταχωρήσετε τα βιβλία σας ανά Κατηγορία και Σειρά"
-
-msgid "catalog.selectSeries"
-msgstr "Επιλέξτε Σειρά"
-
-msgid "catalog.selectCategory"
-msgstr "Επιλέξτε Κατηγορία"
-
-msgid "catalog.manage.entryDescription"
-msgstr "Για να εμφανιστεί ένα βιβλίο στον κατάλογο, επιλέξτε την καρτέλα Μονογραφία και συμπληρώστε τις απαραίτητες πληροφορίες. Πληροφορίες για κάθε μορφότυπο του βιβλίου μπορεί να συμπεριληφθούν στην συγκεκριμένη καταχώρηση του καταλόγου, επιλέγοντας την ετικέτα μορφότυπο (Format). Ο προσδιορισμός των μεταδεδομένων βασίζεται στο πρότυπο ONIX (για βιβλία), το οποίο αποτελεί ένα διεθνές πρότυπο μεταδεδομένων που χρησιμοποιείται από την βιομηχανία του βιβλίου για τη ψηφιακή ανταλλαγή πληροφοριών των προϊόντων της."
-
-msgid "catalog.manage.spotlightDescription"
-msgstr "Το περιεχόμενο μιας στήλης της Βιτρίνας (πχ., Προτεινόμενα Βιβλία, Προτεινόμρνη Σειρά) εμφανίζεται στην αρχική σελίδα των εκδόσεων, με τον τίτλο, την εικόνα και το κείμενο για κάθε στήλη."
-
-msgid "catalog.manage.homepageDescription"
-msgstr "Οι εικόνες με τα εξώφυλλα των επιλεγμένων βιβλίων εμφανίζεται στο πάνω μέρος της αρχικής σελίδας με τη δυνατότητα περιστροφής των εικόνων (carousel). Επιλέξτε 'Εμφάνιση', έπειτα επιλέξτε το αστέρι για τη προσθήκη του βιβλίου στο carousel, το εικονίδιο με το θαυμαστικό για την εμφάνιση του στις νέες κυκλοφορίες. Σύρετε και αφήστε την εικόνα για να αλλάξετε τη σειρά."
-
-msgid "catalog.manage.categoryDescription"
-msgstr "Επιλέξτε 'Εμφάνιση', έπειτα το αστέρι για την επιλογή εμφάνισης του βιβλίου σε αυτή την κατηγορία. Σύρετε και αφήστε την εικόνα για να αλλάξετε τη σειρά."
-
-msgid "catalog.manage.seriesDescription"
-msgstr "Επιλέξτε 'Εμφάνιση', έπειτα το αστέρι για την επιλογή εμφάνισης του βιβλίου σε αυτή τη Σειρά, σύρετε και αφήστε την εικόνα για να αλλάξετε τη σειρά εμφάνισης. Οι Σειρές αναγνωρίζονται από τον/ους επιμελητή/ες και έναν τίτλο σειράς, μέσα σε μια κατηγορία ή ανεξάρτητα."
-
-msgid "catalog.manage.placeIntoCarousel"
-msgstr "Carousel"
-
-msgid "catalog.manage.newRelease"
-msgstr "Νέες Κυκλοφορίες"
-
-msgid "catalog.manage.manageSeries"
-msgstr "Διαχείριση Σειρών"
-
-msgid "catalog.manage.manageCategories"
-msgstr "Διαχείριση Κατηγοριών"
-
-msgid "catalog.manage.noMonographs"
-msgstr "Δεν υπάρχουν ανατιθέμενες μονογραφίες."
-
-msgid "catalog.feature"
-msgstr "Εμφάνιση"
-
-msgid "catalog.featuredBooks"
-msgstr "Προτεινόμενα βιβλία"
-
-msgid "catalog.dateAdded"
-msgstr "Προστέθηκε"
-
-msgid "catalog.publicationInfo"
-msgstr "Πληροφορίες Έκδοσης"
-
-msgid "catalog.relatedCategories"
-msgstr "Σχετιζόμενες κατηγορίες"
-
-msgid "common.prefix"
-msgstr "Πρόθημα"
-
-msgid "common.preview"
-msgstr "Προεπισκόπηση"
-
-msgid "common.feature"
-msgstr "Προβολή"
-
-msgid "common.searchCatalog"
-msgstr "Αναζήτηση στον κατάλογο"
-
-msgid "common.moreInfo"
-msgstr "Περισσότερες Πληροφορίες"
-
-msgid "common.plusMore"
-msgstr "+ Περισσότερα"
-
-msgid "common.listbuilder.completeForm"
-msgstr "Παρακαλούμε συμπληρώστε όλα τα πεδία της φόρμας."
-
-msgid "common.listbuilder.selectValidOption"
-msgstr "Παρακαλούμε κάνετε μια έγκυρη επιλογή από τη λίστα."
-
-msgid "common.listbuilder.itemExists"
-msgstr "Δεν μπορείτε να προσθέσετε το ίδιο στοιχείο δύο φορές."
-
-msgid "common.catalogInformation"
-msgstr "Οι πληροφορίες στον καταλόγου δεν είναι αναγκαίο να συμπληρωθούν κατά το αρχικό στάδιο της υποβολής του έργου, εκτός από τον Τίτλο και την Περίληψη."
-
-msgid "common.prefixAndTitle.tip"
-msgstr "Αν ο τίτλος του βιβλίου ξεκινά από \"Ο\", \"Η\", ή \"Το\" (ή κάτι παρόμοιο σε αλφαβητική σειρα) εντάξετε τη λέξη στο Πρόθημα (Prefix)."
-
-msgid "common.software"
-msgstr "Open Monograph Press"
-
-msgid "common.omp"
-msgstr "OMP"
-
-msgid "common.homePageHeader.altText"
-msgstr "Κεφαλίδα Ιστοσελίδας"
-
-msgid "navigation.catalog"
-msgstr "Κατάλογος"
-
-msgid "navigation.competingInterestPolicy"
-msgstr "Πολιτική Συγκουόμενων Συμφερόντων"
-
-msgid "navigation.catalog.manage"
-msgstr "Διαχείριση"
-
-msgid "navigation.catalog.administration.short"
-msgstr "Διαχείριση"
-
-msgid "navigation.catalog.administration"
-msgstr "Διαχείριση Καταλόγου"
-
-msgid "navigation.catalog.administration.categories"
-msgstr "Κατηγορίες"
-
-msgid "navigation.catalog.administration.series"
-msgstr "Σειρές"
-
-msgid "navigation.infoForAuthors"
-msgstr "Για Συγγραφείς"
-
-msgid "navigation.infoForLibrarians"
-msgstr "Για Βιβλιοθηκονόμους"
-
-msgid "navigation.infoForAuthors.long"
-msgstr "Πληροφορίες για Συγγραφείς"
-
-msgid "navigation.infoForLibrarians.long"
-msgstr "Πληροφορίες για Βιβλιοθηκονόμους"
-
-msgid "navigation.newReleases"
-msgstr "Νέες Κυκλοφορίες"
-
-msgid "navigation.published"
-msgstr "Δημοσιευμένα"
-
-msgid "navigation.wizard"
-msgstr "Οδηγός"
-
-msgid "navigation.linksAndMedia"
-msgstr "Σύνδεσμοι και Κοινωνικά Μέσα"
-
-msgid "context.contexts"
-msgstr "Εκδόσεις"
-
-msgid "user.noRoles.submitMonograph"
-msgstr "Υποβολή μιας πρότασης"
-
-msgid "user.noRoles.submitMonographRegClosed"
-msgstr "Υποβολή μιας Μονογραφίας: η εγγραφή Συγγραφέα είναο προς το παρόν απενεργοποιημένη."
-
-msgid "user.noRoles.regReviewer"
-msgstr "Εγγραφείτε ως Αξιολογητής"
-
-msgid "user.noRoles.regReviewerClosed"
-msgstr "Εγγραφείτε ως Αξιολογητής: Η εγγραφή αξιολογητών είναι προς το παρόν απενεργοποιημένη"
-
-msgid "user.role.manager"
-msgstr "Διαχειριστής Εκδόσεων"
-
-msgid "user.role.pressEditor"
-msgstr "Επιμελητής Εκδόσεων"
-
-msgid "user.role.copyeditor"
-msgstr "Επιμελητής Κειμένων"
-
-msgid "user.role.subEditor"
-msgstr "Επιμελητής Σειράς"
-
-msgid "user.role.subEditors"
-msgstr "Επιμελητές Σειράς"
-
-msgid "user.role.proofreader"
-msgstr "Επιμελητής Τυπογραφικών Δοκιμίων"
-
-msgid "user.role.productionEditor"
-msgstr "Επιμελητής Παραγωγής"
-
-msgid "user.role.managers"
-msgstr "Διαχειριστές Εκδόσεων"
-
-msgid "user.role.editors"
-msgstr "Επιμελητές"
-
-msgid "user.role.copyeditors"
-msgstr "Επιμελητές Κειμένων"
-
-msgid "user.role.proofreaders"
-msgstr "Επιμελητές Τυπογραφικών Δοκιμίων"
-
-msgid "user.role.productionEditors"
-msgstr "Επιμελητές Παραγωγής"
-
-msgid "user.register.completeForm"
-msgstr "Συμπληρώστε τη φόρμα για να εγγραφείτε στις εκδόσεις."
-
-msgid "user.register.selectContext"
-msgstr "Επιλέξτε μια έκδοση για να εγγραφείτε"
-
-msgid "user.register.noContexts"
-msgstr "Δεν υπάρχουν εκδόσεις στις οποίες μπορείτε να εγγραφείτε στον ιστότοπο αυτό."
-
-msgid "user.register.privacyStatement"
-msgstr "Πολιτική Προστασίας Προσωπικών Δεδομένων"
-
-msgid "user.register.alreadyRegisteredOtherContext"
-msgstr "Πατήστε εδώ εάν είστε ήδη εγγεγραμμένος χρήστης σε αυτή ή άλλη έκδοση της συλλογής"
-
-msgid "user.register.notAlreadyRegisteredOtherContext"
-msgstr "Πατήστε εδώ εάν δεν είστε ήδη εγγεγραμμένος σε αυτή ή άλλη έκδοση της συλλογής"
-
-msgid "user.register.loginToRegister"
-msgstr "Εισάγετε το υπάρχον όνομα χρήστη και τον κωδικό πρόσβασής σας για να εγγραφείτε σε αυτή την έκδοση."
-
-msgid "user.register.registrationDisabled"
-msgstr "Οι εκδόσεις αυτές προς το παρόν δεν αποδέχεται εγγραφές χρηστών."
-
-msgid "user.register.form.passwordLengthTooShort"
-msgstr "Ο κωδικός πρόσβασης που εισάγατε περιέχει λιγότερους χαρακτήρες από τον ελάχιστο επιτρεπτό αριθμό χαρακτήρων."
-
-msgid "user.register.readerDescription"
-msgstr "Θα ενημερώνεστε με μήνυμα ηλεκτρονικού ταχυδρομείου όταν μια μονογραφία δημοσιεύεται."
-
-msgid "user.register.authorDescription"
-msgstr "Δυνατότητα υποβολής εργασιών στις εκδόσεις."
-
-msgid "user.register.reviewerDescriptionNoInterests"
-msgstr "Επιθυμία για συμμετοχή στην αξιολόγηση υποβολών στις Εκδόσεις"
-
-msgid "user.register.reviewerDescription"
-msgstr "Επιθυμία για συμμετοχή στην αξιολόγηση υποβολών στις Εκδόσεις."
-
-msgid "user.register.reviewerInterests"
-msgstr "Προσδιορίστε τα ενδιαφέροντα αξιολόγησης (θεματικές περιοχές και ερευνητικές μέθοδοι)"
-
-msgid "user.register.form.userGroupRequired"
-msgstr "Πρέπει να επιλέξετε τουλάχιστον ένα ρόλο"
-
-msgid "site.pressView"
-msgstr "Προβολή ιστοσελίδας εκδόσεων"
-
-msgid "about.pressContact"
-msgstr "Επικοινωνία"
-
-msgid "about.aboutThePress"
-msgstr "Σχετικά με τις εκδόσεις"
-
-msgid "about.editorialTeam"
-msgstr "Συντακτική ομάδα"
-
-msgid "about.editorialPolicies"
-msgstr "Πολιτικές έκδοσης"
-
-msgid "about.focusAndScope"
-msgstr "Επίκεντρο και Σκοπός"
-
-msgid "about.seriesPolicies"
-msgstr "Πολιτικές σειρών και κατηγοριών"
-
-msgid "about.submissions"
-msgstr "Υποβολές"
-
-msgid "about.sponsors"
-msgstr "Χορηγοί"
-
-msgid "about.contributors"
-msgstr "Πηγές υποστήριξης"
-
-msgid "about.onlineSubmissions"
-msgstr "Online υποβολές"
-
-msgid "about.onlineSubmissions.haveAccount"
-msgstr "Έχετε ήδη όνομα χρήστη/ κωδικό πρόσβασης για τις εκδόσεις {$pressTitle}?"
-
-msgid "about.onlineSubmissions.login"
-msgstr "Συνδεθείτε"
-
-msgid "about.onlineSubmissions.needAccount"
-msgstr "Χρειάζεστε ένα όνομα χρήστη / κωδικό πρόσβασης;"
-
-msgid "about.onlineSubmissions.registration"
-msgstr "Εγγραφή χρήστη"
-
-msgid "about.onlineSubmissions.registrationRequired"
-msgstr "Η εγγραφή και η σύνδεση είναι απαραίτητες για την online υποβολή τεκμηρίων και για έλεγχο της κατάστασης των υποβολών σας."
-
-msgid "about.authorGuidelines"
-msgstr "Οδηγίες προς συγγραφείς"
-
-msgid "about.submissionPreparationChecklist"
-msgstr "Λίστα ελέγχου προετοιμασίας υποβολής"
-
-msgid "about.submissionPreparationChecklist.description"
-msgstr "Ως μέρος της διαδικασίας υποβολής, είναι απαραίτητο οι συγγραφείας να ελέγχουν τη συμμόρφωση της υποβολής με όλα τα ακόλουθα τεκμήρια, ενώ οι υποβολές που δεν τηρούν τις Οδηγίες για τους συγγραφείς μπορεί να επιστραφούν στους συγγραφείς."
-
-msgid "about.copyrightNotice"
-msgstr "Ενημέρωση για τα πνευματικά δικαιώματα"
-
-msgid "about.privacyStatement"
-msgstr "Πολιτική Προστασίας Προσωπικών Δεδομένων"
-
-msgid "about.reviewPolicy"
-msgstr "Διαδικασία αξιολόγησης από ομότιμους αξιολογητές"
-
-msgid "about.publicationFrequency"
-msgstr "Συχνότητα δημοσίευσης"
-
-msgid "about.openAccessPolicy"
-msgstr "Πολιτική Ανοικτής Πρόσβασης"
-
-msgid "about.pressSponsorship"
-msgstr "Χορηγοί Εκδόσεων"
-
-msgid "about.aboutThisPublishingSystem"
-msgstr "Σχετικά με το Open Publishing System"
-
-msgid "about.aboutThisPublishingSystem.altText"
-msgstr "OMP Διαδικασία Επιμέλειας και Δημοσίευσης"
-
-#, fuzzy
-msgid "about.aboutOMPPress"
-msgstr "Οι εκδόσεις αυτές χρησιμοποιούν το Open Monograph Press {$ompVersion}, το οποίο είναι ένα λογισμικό διαχείρισης και δημοσίευσης εκδόσεων (βιβλίων) ανοικτού κώδικα, που έχει αναπτυχθεί, υποστηρίζεται και διανέμεται ελεύθερα από το Public Knowledge Project κάτω από την αδειοδότηση GNU General Public License."
-
-#, fuzzy
-msgid "about.aboutOMPSite"
-msgstr "Ο ιστότοπος αυτός χρησιμοποιεί το Open Monograph Press {$ompVersion}, το οποίο είναι ένα λογισμικό διαχείρισης και δημοσίευσης εκδόσεων (βιβλίων) ανοικτού κώδικα, που έχει αναπτυχθεί, υποστηρίζεται και διανέμεται ελεύθερα από το Public Knowledge Project κάτω από την αδειοδότηση GNU General Public License."
-
-msgid "help.searchReturnResults"
-msgstr "Επιστροφή στα αποτελέσματα της αναζήτησης"
-
-msgid "help.goToEditPage"
-msgstr "Ανοίξτε μια νέα σελίδα για να επεξεργαστείτε αυτές τις πληροφορίες"
-
-msgid "installer.appInstallation"
-msgstr "OMP Installation"
-
-msgid "installer.ompUpgrade"
-msgstr "OMP Upgrade"
-
-msgid "installer.installApplication"
-msgstr "Install Open Monograph Press"
-
-#, fuzzy
-msgid "installer.installationInstructions"
-msgstr ""
-"Thank you for downloading the Public Knowledge Project's Open Monograph Press {$version}. Before proceeding, please read the README file included with this software. For more information about the Public Knowledge Project and its software projects, please visit the PKP web site. If you have bug reports or technical support inquiries about Open Monograph Press, see the support forum or visit PKP's online bug reporting system. Although the support forum is the preferred method of contact, you can also email the team at pkp.contact@gmail.com.
\n"
-"\n"
-"Upgrade
\n"
-"\n"
-"If you are upgrading an existing installation of OMP, click here to proceed.
"
-
-msgid "installer.preInstallationInstructionsTitle"
-msgstr "Pre-Installation Steps"
-
-msgid "installer.preInstallationInstructions"
-msgstr ""
-"1. The following files and directories (and their contents) must be made writable:
\n"
-"\n"
-"\t- config.inc.php is writable (optional): {$writable_config}
\n"
-"\t- public/ is writable: {$writable_public}
\n"
-"\t- cache/ is writable: {$writable_cache}
\n"
-"\t- cache/t_cache/ is writable: {$writable_templates_cache}
\n"
-"\t- cache/t_compile/ is writable: {$writable_templates_compile}
\n"
-"\t- cache/_db is writable: {$writable_db_cache}
\n"
-"
\n"
-"\n"
-"2. A directory to store uploaded files must be created and made writable (see \"File Settings\" below).
"
-
-msgid "installer.upgradeInstructions"
-msgstr ""
-"OMP Version {$version}
\n"
-"\n"
-"Thank you for downloading the Public Knowledge Project's Open Monograph Press. Before proceeding, please read the README and UPGRADE files included with this software. For more information about the Public Knowledge Project and its software projects, please visit the PKP web site. If you have bug reports or technical support inquiries about Open Monograph Press, see the support forum or visit PKP's online bug reporting system. Although the support forum is the preferred method of contact, you can also email the team at pkp.contact@gmail.com.
\n"
-"It is strongly recommended that you back up your database, files directory, and OMP installation directory before proceeding.
\n"
-"If you are running in PHP Safe Mode, please ensure that the max_execution_time directive in your php.ini configuration file is set to a high limit. If this or any other time limit (e.g. Apache's \"Timeout\" directive) is reached and the upgrade process is interrupted, manual intervention will be required.
"
-
-msgid "installer.localeSettingsInstructions"
-msgstr ""
-"For complete Unicode (UTF-8) support, select UTF-8 for all character set settings. Note that this support currently requires a MySQL >= 4.1.1 or PostgreSQL >= 7.1 database server. Please also note that full Unicode support requires the mbstring library (enabled by default in most recent PHP installations). You may experience problems using extended character sets if your server does not meet these requirements.\n"
-"
\n"
-"Your server currently supports mbstring: {$supportsMBString}"
-
-msgid "installer.allowFileUploads"
-msgstr "Your server currently allows file uploads: {$allowFileUploads}"
-
-msgid "installer.maxFileUploadSize"
-msgstr "Your server currently allows a maximum file upload size of: {$maxFileUploadSize}"
-
-msgid "installer.localeInstructions"
-msgstr "Η κύρια γλώσσα για χρήση από το συγκεκριμένο σύστημα. Ανατρέξτε στα έγγραφα τεκμηρίωσης του OMP, εάν επιθυμείτε να υποστηρίξετε γλώσσες που δεν περιλαμβάνονται εδώ."
-
-msgid "installer.additionalLocalesInstructions"
-msgstr "Επιλογή άλλων πρόσθετων γλωσσών για υποστήριξη στο συγκεκριμένο σύστημα. Οι γλώσσες αυτές θα είναι διαθέσιμες για χρήση από εκδόσεις που φιλοξενούνται στον ιστότοπο. Πρόσθετες γλώσσες μπορούν να εγκαταστασθούν ανά πάσα στιγμή από τη διεπαφή διαχείρισης. Γλώσσες που μαρκάρονται με * ίσως να μην είναι ολοκληρωμένες."
-
-msgid "installer.filesDirInstructions"
-msgstr "Enter full pathname to an existing directory where uploaded files are to be kept. This directory should not be directly web-accessible. Please ensure that this directory exists and is writable prior to installation. Windows path names should use forward slashes, e.g. \"C:/mypress/files\"."
-
-msgid "installer.databaseSettingsInstructions"
-msgstr "OMP requires access to a SQL database to store its data. See the system requirements above for a list of supported databases. In the fields below, provide the settings to be used to connect to the database."
-
-msgid "installer.overwriteConfigFileInstructions"
-msgstr ""
-"IMPORTANT!
\n"
-"The installer could not automatically overwrite the configuration file. Before attempting to use the system, please open config.inc.php in a suitable text editor and replace its contents with the contents of the text field below.
"
-
-msgid "installer.installationComplete"
-msgstr ""
-"Installation of OMP has completed successfully.
\n"
-"To begin using the system, login with the username and password entered on the previous page.
\n"
-"If you wish to receive news and updates, please register at http://pkp.sfu.ca/omp/register. If you have questions or comments, please visit the support forum.
"
-
-msgid "installer.upgradeComplete"
-msgstr ""
-"Upgrade of OMP to version {$version} has completed successfully.
\n"
-"Don't forget to set the \"installed\" setting in your config.inc.php configuration file back to On.
\n"
-"If you haven't already registered and wish to receive news and updates, please register at http://pkp.sfu.ca/omp/register. If you have questions or comments, please visit the support forum.
"
-
-msgid "log.review.reviewDueDateSet"
-msgstr "Η ημερομηνία προθεσμίας για τον γύρο αξιολόγησης {$round} της υποβολής {$monographId} από τον/ην {$reviewerName} έχει οριστεί η {$dueDate}."
-
-msgid "log.review.reviewDeclined"
-msgstr "Ο/Η {$reviewerName} έχει απορρίψει τον γύρο αξιολόγησης {$round} για την υποβολή {$monographId}."
-
-msgid "log.review.reviewAccepted"
-msgstr "Ο/Η {$reviewerName} έχει αποδεχτεί τον γύρο αξιολόγησης {$round} για την υποβολή {$monographId}."
-
-msgid "log.review.reviewUnconsidered"
-msgstr "Ο/Η {$editorName} έχει επισημάνει το αίτημα για το γύρο αξιολόγησης {$round} για την υποβολή {$monographId} ως ανεξέταστο."
-
-msgid "log.editor.decision"
-msgstr "Μια απόφαση επιμελητή ({$decision}) για τη μονογραφία {$submissionId} καταγράφηκε από τον/ην {$editorName}."
-
-msgid "log.editor.archived"
-msgstr "Η υποβολή {$monographId} αρχειοθετήθηκε."
-
-msgid "log.editor.restored"
-msgstr "Η υποβολή {$monographId} επανατοποθετήθηκε στη σειρά αναμονής."
-
-msgid "log.editor.editorAssigned"
-msgstr "Ο/Η {$editorName} έχει αναλάβει ως επιμελητής της υποβολής {$monographId}."
-
-msgid "log.editor.submissionExpedited"
-msgstr "Ο/Η {$editorName} έχει επιταχύνει τη διαδικασία αξιολόγησης για τη μονογραφία {$monographId}."
-
-msgid "log.proofread.assign"
-msgstr "Ο/Η{$assignerName} ανέθεσε στον/ην {$proofreaderName} την επιμέλεια του τυπογραφικού δοκιμίου της υποβολής {$monographId}."
-
-msgid "log.proofread.complete"
-msgstr "Ο/Η {$proofreaderName} υπέβαλλε το {$monographId} για προγραμματισμό."
-
-msgid "log.imported"
-msgstr "Ο/Η {$userName} έχει εισάγει τη μονογραφία {$monographId}."
-
-msgid "notification.addedIdentificationCode"
-msgstr "Ο κωδικός ταυτοποίησης (Identification Code) έχει προστεθεί."
-
-msgid "notification.editedIdentificationCode"
-msgstr "Ο κωδικός ταυτοποίησης (Identification Code) επεξεργάστηκε."
-
-msgid "notification.removedIdentificationCode"
-msgstr "Ο κωδικός ταυτοποίησης (Identification Code) έχει αφαιρεθεί."
-
-msgid "notification.addedPublicationDate"
-msgstr "Η ημερομηνία έκδοσης έχει προστεθεί."
-
-msgid "notification.editedPublicationDate"
-msgstr "Η ημερομηνία έκδοσης έχει επεξεργαστεί."
-
-msgid "notification.removedPublicationDate"
-msgstr "Η ημερομηνία έκδοσης έχει αφαιρεθεί."
-
-msgid "notification.addedPublicationFormat"
-msgstr "Το μορφότυπο (Format) της έκδοσης έχει προστεθεί."
-
-msgid "notification.editedPublicationFormat"
-msgstr "Το μορφότυπο (Format) της έκδοσης έχει επεξεργαστεί."
-
-msgid "notification.removedPublicationFormat"
-msgstr "Το μορφότυπο (Format) της έκδοσης έχει αφαιρεθεί."
-
-msgid "notification.addedSalesRights"
-msgstr "Τα Δικαιώματα Πώλησης έχουν προστεθεί."
-
-msgid "notification.editedSalesRights"
-msgstr "Τα Δικαιώματα Πώλησης έχουν επεξεργαστεί."
-
-msgid "notification.removedSalesRights"
-msgstr "Τα Δικαιώματα Πώλησης έχουν αφαιρεθεί."
-
-msgid "notification.addedRepresentative"
-msgstr "Ο Αντιπρόσωπος έχει προστεθεί."
-
-msgid "notification.editedRepresentative"
-msgstr "Ο Αντιπρόσωπος έχει επεξεργαστεί."
-
-msgid "notification.removedRepresentative"
-msgstr "Ο Αντιπρόσωπος έχει αφαιρεθεί."
-
-msgid "notification.addedMarket"
-msgstr "Η Αγορά έχει προστεθεί."
-
-msgid "notification.editedMarket"
-msgstr "Τα στοιχεία της Αγοράς έχουν επεξεργαστεί."
-
-msgid "notification.removedMarket"
-msgstr "Η Αγορά έχει αφαιρεθεί."
-
-msgid "notification.addedSpotlight"
-msgstr "Η Βιτρίνα έχει προστεθεί."
-
-msgid "notification.editedSpotlight"
-msgstr "Η Βιτρίνα έχει επεξεργαστεί."
-
-msgid "notification.removedSpotlight"
-msgstr "Η Βιτρίνα έχει αφαιρεθεί."
-
-msgid "notification.savedCatalogMetadata"
-msgstr "Τα μεταδεδομένα του Καταλόγου έχουν αποθηκευτεί."
-
-msgid "notification.savedPublicationFormatMetadata"
-msgstr "Τα μεταδεδομένα του μορφότυπου της έκδοσης έχουν αποθηκευτεί."
-
-msgid "notification.proofsApproved"
-msgstr "Το Τυπογραφικό δοκίμιο έχει εγκριθεί."
-
-msgid "notification.removedSubmission"
-msgstr "Η Υποβολή έχει διαγραφεί."
-
-msgid "notification.type.submissionSubmitted"
-msgstr "Μια νέα μονογραφία, \"{$title},\" έχει υποβληθεί."
-
-msgid "notification.type.editing"
-msgstr "Διόρθωση Γεγονότων"
-
-msgid "notification.type.metadataModified"
-msgstr "Τα μεταδεδομένα του \"{$title}\" έχουν μεταβληθεί."
-
-msgid "notification.type.reviewerComment"
-msgstr "Ένας Αξιολογητής έχει σχολιάσει το \"{$title}\"."
-
-msgid "notification.type.reviewing"
-msgstr "Γεγονότα Αξιολόγησης"
-
-msgid "notification.type.site"
-msgstr "Γεγονότα Ιστοτόπου"
-
-msgid "notification.type.submissions"
-msgstr "Γεγονότα Υποβολής"
-
-msgid "notification.type.userComment"
-msgstr "Ένας αναγνώστης έχει κάνει ένα σχόλιο για το \"{$title}\"."
-
-msgid "notification.type.editorAssignmentTask"
-msgstr "Μία νέα μονογραφία έχει υποβληθεί και έιναι απαραίτητο να ανατεθεί σε έναν επιμελητή."
-
-msgid "notification.type.copyeditorRequest"
-msgstr "Έχετε κληθεί να θεωρήσετε την επιμέλεια κειμένων για το \"{$file}\"."
-
-msgid "notification.type.layouteditorRequest"
-msgstr "Έχετε κληθεί να θεωρήσετε την επιμέλεια σελιδοποίησης για το \"{$title}\"."
-
-msgid "notification.type.indexRequest"
-msgstr "Έχετε κληθεί να ευρετηριάσετε το \"{$title}\"."
-
-msgid "notification.type.editorDecisionInternalReview"
-msgstr "Η διαδικασία εσωτερικής αξιολόγησης έχει ξεκινήσει."
-
-msgid "notification.type.approveSubmission"
-msgstr "Αυτή η υποβολή αναμένει πρόσφατα για Καταχώριση στον Κατάλογο πριν αυτή εμφανιστεί δημόσια στον κατάλογο."
-
-msgid "notification.type.approveSubmissionTitle"
-msgstr "Εν αναμονή έγκρισης."
-
-msgid "notification.type.configurePaymentMethod.title"
-msgstr "Καμία μέθοδος πληρωμής εισφορών δεν έχει ρυθμιστεί."
-
-msgid "notification.type.configurePaymentMethod"
-msgstr "Μία διαμορφωμένη μέθοδος πληρωμής εισφορών απαιτείται πριν είστε σε θέση να καθορίσετε τις ρυθμίσεις για ηλεκτρονικό εμπόριο (e-commerce)."
-
-msgid "notification.type.visitCatalogTitle"
-msgstr "Διαχείριση Καταλόγου"
-
-msgid "user.authorization.invalidReviewAssignment"
-msgstr "Η πρόσβαση δεν είναι δυνατή επειδή δεν φαίνεται να είστε έγκυρος ως αναθεωρητής για αυτή τη μονογραφία."
-
-msgid "user.authorization.monographAuthor"
-msgstr "Η πρόσβαση δεν είναι δυνατή επειδή δεν φαίνεται να είστε ο συγγραφέας για αυτή τη μονογραφία."
-
-msgid "user.authorization.monographReviewer"
-msgstr "Η πρόσβαση δεν είναι δυνατή επειδή δεν φαίνεται να σας έχει ανατεθεί η αξιολόγηση για αυτή τη μονογραφία."
-
-msgid "user.authorization.monographFile"
-msgstr "Έχετε απαγορεύσει την πρόσβαση στο συγκεκριμένο αρχείο της μονογραφίας."
-
-msgid "user.authorization.invalidMonograph"
-msgstr "Μη έγκυρη μονογραφία ή δεν έχει ζητηθεί η μονογραφία!"
-
-msgid "user.authorization.seriesAssignment"
-msgstr "Προσπαθείτε να αποκτήσετε πρόσβαση σε μια μονογραφία που δεν είναι μέρος της σειράς που επιμελείστε."
-
-msgid "user.authorization.workflowStageAssignmentMissing"
-msgstr "Η πρόσβαση δεν είναι δυνατή! Δεν έχετε ανάθεση σε αυτό το στάδιο της ροής εργασιών."
-
-msgid "user.authorization.workflowStageSettingMissing"
-msgstr "Η πρόσβαση δεν είναι δυνατή! Η ομάδα χρηστών που πρόσφατα ενεργείτε μέσω αυτής δεν έχει ζητηθεί σε αυτό το στάδιο ροής εργασιών. Παρακαλούμε ελέγξτε τις ρυθμίσεις των εκδόσεων."
-
-msgid "payment.directSales"
-msgstr "Λήψη αρχείου (Download) από τον Ιστότοπο των Εκδόσεων"
-
-msgid "payment.directSales.price"
-msgstr "Τιμή"
-
-msgid "payment.directSales.availability"
-msgstr "Διαθεσιμότητα"
-
-msgid "payment.directSales.catalog"
-msgstr "Κατάλογος"
-
-msgid "payment.directSales.approved"
-msgstr "Έχει εγκριθεί"
-
-msgid "payment.directSales.priceCurrency"
-msgstr "Τιμή ({$currency})"
-
-msgid "payment.directSales.directSales"
-msgstr "Άμεσες Πωλήσεις"
-
-msgid "payment.directSales.amount"
-msgstr "{$amount} ({$currency})"
-
-msgid "payment.directSales.notAvailable"
-msgstr "Δεν είναι δυνατή η λήψη του αρχείου"
-
-msgid "payment.directSales.openAccess"
-msgstr "Ανοικτή Πρόσβαση"
-
-msgid "payment.directSales.price.description"
-msgstr "Τα μορφότυπα των αρχείων μπορεί να είναι διαθέσιμα για λήψη από τον ιστότοπο των εκδόσεων μέσω ανοικτής πρόσβασης χωρίς κόστος για τους αναγνώστες ή χωρίς άμεσες πωλήσεις (χρησιμοποιόντας μια online μέθοδο πληρωμής, όπως έχει ρυθμιστεί στη Διανομή). Για το αρχείο αυτό υποδείξτε την αρχή πρόσβασης."
-
-msgid "payment.directSales.validPriceRequired"
-msgstr "Απαιτείται ένας έγκυρος αριθμός τιμής."
-
-msgid "payment.directSales.purchase"
-msgstr "Αγορά ({$amount} {$currency})"
-
-msgid "payment.directSales.download"
-msgstr "Κατέβασμα"
-
-msgid "payment.directSales.monograph.name"
-msgstr "Αγορά Λήψης Αρχείου Μονογραφίας ή Κεφαλαίου"
-
-msgid "payment.directSales.monograph.description"
-msgstr "Αυτή η συναλλαγή αφορά την αγορά άμεσης λήψης μιας μονογραφίας ή ενός κεφαλαίου μιας μονογραφίας."
-
-msgid "debug.notes.helpMappingLoad"
-msgstr "Η επαναφόρτωση XML βοηθάει τη χαρτογράφηση του αρχείου {$filename} για την αναζήτηση {$id}."
-
-msgid "submission.round"
-msgstr "Γύρος {$round}"
diff --git a/locale/el_GR/manager.po b/locale/el_GR/manager.po
deleted file mode 100644
index c18d9ecfc22..00000000000
--- a/locale/el_GR/manager.po
+++ /dev/null
@@ -1,921 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
-"PO-Revision-Date: 2019-11-28T15:10:06-08:00\n"
-"Language: \n"
-
-msgid "manager.language.confirmDefaultSettingsOverwrite"
-msgstr "Αυτό θα αντικαταστήσει όλες τις παραμέτρους τοπικής ρύθμισης που είχατε ορίσει για την έκδοση σας"
-
-msgid "manager.languages.languageInstructions"
-msgstr "Το OMP είναι διαθέσιμο στους χρήστες σε όλες τις υποστηριζόμενες γλώσσες. Επίσης το OMP μπορεί να λειτουργήσει ως ένα εν μέρει πολυγλωσσικό σύστημα, που παρέχει στους χρήστες τη δυνατότητα να αλλάζουν γλώσσες σε κάθε σελίδα και, επίσης, επιτρέπει τη δυνατότητα καταχώρισης ορισμένων δεδομένων σε δύο πρόσθετες γλώσσες.
Εάν μια γλώσσα που υποστηρίζεται από το OMP δεν εμφανίζεται παρακάτω, απευθυνθείτε στον διαχειριστή του ιστοτόπου για να εγκαταστήσει τη γλώσσα από τη διεπαφή διαχείρισης του ιστοτόπου. Για οδηγίες σχετικά με την προσθήκη υποστήριξης για νέες γλώσσες, ανατρέξτε τα έγγραφα τεκμηρίωσης του OMP."
-
-msgid "manager.languages.noneAvailable"
-msgstr "Συγνώμη, καμία πρόσθετη γλώσσα δεν είναι διαθέσιμη. Επικοινωνήστε με τον διαχειριστή του ιστοτόπου, σε περίπτωση που επιθυμείτε να χρησιμοποιήσετε πρόσθετες γλώσσες για την έκδοση αυτή."
-
-msgid "manager.languages.primaryLocaleInstructions"
-msgstr "Αυτή είναι η προεπιλεγμένη γλώσσα για τον ιστότοπο της έκδοσης."
-
-msgid "manager.series.form.mustAllowPermission"
-msgstr "Παρακαλούμε σιγουρευτείτε ότι τουλάχιστον ένα checkbox έχει τσεκαριστεί για κάθε ανάθεση Επιμελητή Σειράς."
-
-msgid "manager.series.form.reviewFormId"
-msgstr "Παρακαλούμε σιγουρευτείτε ότι έχετε επιλέξει μια έγκυρη φόρμα αξιολόγησης."
-
-msgid "manager.series.submissionIndexing"
-msgstr "Δεν θα συμπεριληφθούν στην ευρετηρίαση του βιβλίου"
-
-msgid "manager.series.editorRestriction"
-msgstr "Αντικείμενα (Items) μπορούν να υποβληθούν μόνο από τους Επιμελητές Έκδοσης (Editors) και τους Επιμελητές Σειράς."
-
-msgid "manager.series.confirmDelete"
-msgstr "Είστε βέβαιοι ότι επιθυμείτε να διαγράψετε αυτή τη σειρά?"
-
-msgid "manager.series.indexed"
-msgstr "Έχει ευρετηριατεί"
-
-msgid "manager.series.open"
-msgstr "Ανοικτές υποβολές"
-
-msgid "manager.series.readingTools"
-msgstr "Εργαλεία Ανάγνωσης"
-
-msgid "manager.series.submissionReview"
-msgstr "Δεν πραγματοποιείται αξιολόγηση από ομότιμους αξιολογητές"
-
-msgid "manager.series.submissionsToThisSection"
-msgstr "Υποβολές στη συγκεκριμένη σειρά"
-
-msgid "manager.series.abstractsNotRequired"
-msgstr "Δεν απαιτείτε περιλείψεις"
-
-msgid "manager.series.disableComments"
-msgstr "Απενεργοποιήστε τα σχόλεια αναγνωστών για αυτή τη σειρά."
-
-msgid "manager.series.book"
-msgstr "Σειρά Βιβλίων"
-
-msgid "manager.series.create"
-msgstr "Δημιουργία Σειράς"
-
-msgid "manager.series.policy"
-msgstr "Περιγραφή Σειράς"
-
-msgid "manager.series.assigned"
-msgstr "Επιμελητές γι' αυτή τη σειρά"
-
-msgid "manager.series.seriesEditorInstructions"
-msgstr "Προσθέστε έναν Επιμελητή Σειράς για αυτή τη σειρά από τους διαθέσιμους Επιμελητές Σειράς. Μόλις προστεθεί, ορίσετε αν ο Επιμελεητής Σειράς θα επιβλέπει τη διαδικασία ΑΞΙΟΛΟΓΗΣΗΣ (peer review) και/ η τη διαδικασία ΣΥΝΤΑΞΗΣ (επιμέλεια κειμένων, σελιδοποίηση και τυπογραφικά δοκίμια) των υποβολών της συγκεκριμένης Σειράς. Οι Επιμελητές Σειρών δημιουργούνται επιλέγοντας Επιμελητές Σειράς κάτω από το Ρόλοι στην σελίδα του Διαχειριστή της Έκδοσης."
-
-msgid "manager.series.hideAbout"
-msgstr "Απόκτυψη αυτής της σειράς από το μενού Σχετικά με την Έκδοση."
-
-msgid "manager.series.unassigned"
-msgstr "Διαθέσιμοι Επιμελητές Σειράς"
-
-msgid "manager.series.form.abbrevRequired"
-msgstr "Απαιτείται συντομογραφία τίτλου για τη Σειρά."
-
-msgid "manager.series.form.titleRequired"
-msgstr "Ένας τίτλος απαιτείται για τη σειρά."
-
-msgid "manager.series.noneCreated"
-msgstr "Καμία σειρά δεν έχει δημιουργηθεί."
-
-msgid "manager.series.existingUsers"
-msgstr "Υπάρχοντες χρήστες"
-
-msgid "manager.series.seriesTitle"
-msgstr "Τίλτος Σειράς"
-
-msgid "manager.series.noSeriesEditors"
-msgstr "Δεν υπάρχουν επιμελητές σειράς ακόμη. Προσθέστε σε αυτό τον ρόλο τουλάχιστον ένα χρήστη από το Διαχείριση > Ρυθμίσεις > Χρήστες & Ρόλοι."
-
-msgid "manager.series.noCategories"
-msgstr "Δεν έχουν οριστεί κατηγορίες ακόμη. Εάν επιθυμείτε να εντάξετε αυτή τη σειρά σε κατηγορίες, κλείστε αυτή τη λειτουργία και επιλέξτε την καρτέλα 'Κατηγορίες' και δημιουργείστε μία πρώτα."
-
-msgid "manager.settings"
-msgstr "Ρυθμίσεις"
-
-msgid "manager.settings.pressSettings"
-msgstr "Ρυθμίσεις Έκδοσης"
-
-msgid "manager.settings.press"
-msgstr "Εκδόσεις"
-
-msgid "manager.settings.publisher.identity.description"
-msgstr "Αυτά τα πεδία δεν είναι απαραίτητα για τη γενική χρήση του OMP, αλλά απαιτούνται για τη δημιουργία έγκυρων ONIX μεταδεδομένων. Παρακαλούμε να τα συμπεριλάβετε αν επιθυμείτε να επιτύχετε τη λειτουργικότητα των ΟΝΙΧ."
-
-msgid "manager.settings.publisher"
-msgstr "Όνομα Εκδότη(Press Publisher Name)"
-
-msgid "manager.settings.location"
-msgstr "Γεωγραφική Τοποθεσία"
-
-msgid "manager.settings.publisherCode"
-msgstr "Κώδικας Εκδότη"
-
-msgid "manager.settings.distributionDescription"
-msgstr "Όλες οι ρυθμίσεις σχετικά με τις διαδικασίες διανομής των εκδόσεων (κοινοποίηση, ευρετηρίαση, αρχειοθέτηση, πληρωμές, εργαλεία ανάγνωσης)."
-
-msgid "manager.tools"
-msgstr "Εργαλεία"
-
-msgid "manager.tools.importExport"
-msgstr "Όλα τα εργαλεία σχετικά με την εισαγωγή και εξαγωγή δεδομένων (εκδόσεις, μονογραφίες, χρήστες)"
-
-msgid "manager.users.availableRoles"
-msgstr "Διαθέσιμοι Ρόλοι"
-
-msgid "manager.users.currentRoles"
-msgstr "Τρέχον Ρόλοι"
-
-msgid "manager.users.selectRole"
-msgstr "Επιλέξτε Ρόλο"
-
-msgid "manager.people.allPresses"
-msgstr "Όλες οι εκδόσεις"
-
-msgid "manager.people.allSiteUsers"
-msgstr "Ανάθεση ρόλου σε χρήστη του ιστοτόπου για αυτή την Έκδοση"
-
-msgid "manager.people.allUsers"
-msgstr "Όλοι οι Χρήστες"
-
-msgid "manager.people.confirmRemove"
-msgstr "Κατάργηση του χρήστη από την έκδοση αυτή; Η συγκεκριμένη ενέργεια θα καταργήσει όλες τις αναθέσεις ρόλων στον χρήστη στο πλαίσιο αυτής της Έκδοσης."
-
-msgid "manager.people.enrollExistingUser"
-msgstr "Ανάθεση ρόλου σε υπάρχον χρήστη"
-
-msgid "manager.people.existingUserRequired"
-msgstr "Ένας υπάρχον χρήστης πρέπει να εισαχθεί."
-
-msgid "manager.people.enrollSyncPress"
-msgstr "Με τις Εκδόσεις"
-
-msgid "manager.people.mergeUsers.from.description"
-msgstr "Επιλέξτε τον χρήστη για συγχώνευση σε λογαριασμό άλλου χρήστη (π.χ., σε περίπτωση όπου ένας χρήστης έχει δύο λογαριασμούς). Ο λογαριασμός που επιλέγεται πρώτος θα διαγραφεί καθώς και οι υποβολές, οι αναθέσεις, κτλ. που έχουν γίνει σε αυτόν και θα αποδοθούν στον δεύτερο λογαριασμό."
-
-msgid "manager.people.mergeUsers.into.description"
-msgstr "Επιλέξτε χρήστη στον οποίο θα αποδοθούν οι προηγούμενες εργασίες συγγραφής, αναθέσεις επιμέλειας, κτλ. του χρήστη."
-
-msgid "manager.people.syncUserDescription"
-msgstr "Ο συγχρονισμός ανάθεσης ρόλων πραγματοποιεί εγγραφή όλων των χρηστών με καθορισμένο ρόλο σε κάποια άλλη έκδοση με τον ίδιο ρόλο στην εν λόγω έκδοση.Η λειτουργία αυτή επιτρέπει σε κοινό σύνολο χρηστών (π.χ., Αξιολογητές) να είναι συγχρονισμένοι σε διάφορες εκδόσεις που φιλοξενούνται."
-
-msgid "manager.people.confirmDisable"
-msgstr "Απενεργοποίηση αυτού του χρήστη? Αυτή η ενέργεια θα εμποδίσει τον χρήστη να εισαχθεί στο σύστημα. Μπορείτε προεραιτικά να παρέχετε στον χρήστη ένα λόγο για την απενεργοποίηση των λογαριασμών του."
-
-msgid "manager.people.noAdministrativeRights"
-msgstr ""
-"Συγνώμη, δεν έχετε δικαιώματα διαχείρισης σε αυτόν τον χρήστη. Αυτό μπορεί να συμβαίνει επειδή:\n"
-"\t\t\n"
-"\t\t\t- Ο χρήστης είναι ο διαχειριστής του ιστοτόπου
\n"
-"\t\t\t- Ο χρήστης είναι ενεργός σε εκδόσεις που δεν διευθύνετε
\n"
-"\t\t
\n"
-"\tΑυτή η εργασία εκτελείτε από έναν διαχειριστή του ιστοτόπου/υπηρεσίας."
-
-msgid "settings.roles.gridDescription"
-msgstr "Οι Ρόλοι αποτελούν τις ομάδες χρηστών μιας έκδοσης που έχουν πρόσβαση σε διαφορετικά επίπεδα αδειών και σχετικών εργασιών κατά την εκδοτική διαδικασία. Υπάρχουν πέντε διαφορετικά επίπεδα αδειών: οι Διαχειριστές των Εκδόσεων έχουν πρόσβαση σε όλες τις λειτουργίες και εργασίες των εκδόσεων (περιεχόμενο και ρυθμίσεις), οι Επιμελητές Έκδοσης (Press Editors) έχουν πρόσβαση σε όλο το περιεχόμενο της σειράς που επιμελούνται, οι Βοηθοί Έκδοσης έχουν πρόσβαση σε όλες τις μονογραφίες που τους έχουν ανατεθεί από έναν επιμελητή, οι Αξιολογητές μπορούν να δούν και να πραγματοποιήσουν τις αξιολογήσεις που του έχουν ανατεθεί και οι Συγγραφείς μπορούν να δούν και να αλληλεπιδρούν με περιορισμένο αριθμό πληροφοριών σχετικά με την πορεία της υποβολή τους. Επιπρόσθετα, υπάρχουν πέντε διαφορετικά στάδια αναθέσεων στα οποία οι ρόλοι χρηστών μπορεί να έχουν πρόσβαση: Υποβολή, Εσωτερική Αξιολόγηση, Εξωτερική Αξιολόγηση, Σύνταξη και Παραγωγή."
-
-msgid "manager.system"
-msgstr "Ρυθμίσεις Συστήματος"
-
-msgid "manager.system.archiving"
-msgstr "Αρχειοθέτηση"
-
-msgid "manager.system.reviewForms"
-msgstr "Φόρμες Αξιολόγησης"
-
-msgid "manager.system.readingTools"
-msgstr "Εργαλεία Ανάγνωσης"
-
-msgid "manager.system.payments"
-msgstr "Πληρωμές"
-
-msgid "manager.pressManagement"
-msgstr "Διαχείριση Εκδόσεων"
-
-msgid "manager.setup"
-msgstr "Οργάνωση"
-
-msgid "manager.setup.aboutItemContent"
-msgstr "Περιεχόμενο"
-
-msgid "manager.setup.addAboutItem"
-msgstr "Προσθήκη Κατηγορίας στο Σχετικά"
-
-msgid "manager.setup.addChecklistItem"
-msgstr "Προσθήκη πεδίου στην Λίστα Ελέγχου"
-
-msgid "manager.setup.addContributor"
-msgstr "Προσθήκη Συντελεστή"
-
-msgid "manager.setup.addItem"
-msgstr "Προσθήκη πεδίου"
-
-msgid "manager.setup.addItemtoAboutPress"
-msgstr "Προσθήκη κατηγορίας στο πεδίο \"Σχετικά με τις εκδόσεις\""
-
-msgid "manager.setup.additionalContent"
-msgstr "Πρόσθετο περιεχόμενο"
-
-msgid "manager.setup.additionalContentDescription"
-msgstr "Εισάγετε στο παρακάτω πεδίο το κείμενο που επιθυμείτε με τη μορφή απλού κειμένου ή HTML κώδικα και το οποίο θα εμφανίζεται κάτω από την εικόνα της αρχικής σελίδας, σε περίπτωση που έχει ήδη φορτωθεί κάποια."
-
-msgid "manager.setup.addNavItem"
-msgstr "Προσθήκη πεδίου"
-
-msgid "manager.setup.addSponsor"
-msgstr "Προσθήκη οργανισμού χορηγίας"
-
-msgid "manager.setup.alternateHeader"
-msgstr "Εναλλακτική κεφαλίδα"
-
-msgid "manager.setup.alternateHeaderDescription"
-msgstr "Εναλλακτικά, αντί του τίτλου και του λογοτύπου, μια HTML έκδοση της κεφαλίδας μπορεί να τοποθετηθεί στο παρακάτω πλαίσιο κειμένου. Εάν δεν είναι απαραίτητο, αφήστε κενό το πλαίσιο κειμένου."
-
-msgid "manager.setup.announcements"
-msgstr "Ανακοινώσεις"
-
-msgid "manager.setup.announcementsDescription"
-msgstr "Οι ανακοινώσεις μπορούν να δημοσιεύονται για πληροφόρηση των αναγνωστών σχετικά με ειδήσεις και εκδηλώσεις των εκδόσεων. Οι δημοσιευμένες ανακοινώσεις εμφανίζονται στη σελίδα «Ανακοινώσεις»."
-
-msgid "manager.setup.announcementsIntroduction"
-msgstr "Πρόσθετες πληροφορίες"
-
-msgid "manager.setup.announcementsIntroduction.description"
-msgstr "Εισάγετε όλες τις πρόσθετες πληροφορίες που θέλετε να εμφανίζονται στους αναγνώστες στη σελίδα «Ανακοινώσεις»."
-
-msgid "manager.setup.appearInAboutPress"
-msgstr "(Για να εμφανίζεται στο μενού «Σχετικά με τις εκδόσεις»)"
-
-msgid "manager.setup.authorCopyrightNotice"
-msgstr "Δήλωση για τα πνευματικά δικαιώματα"
-
-msgid "manager.setup.authorCopyrightNoticeAgree"
-msgstr "Απαιτείται η συμφωνία των συγγραφέων με τη Δήλωση για τα πνευματικά δικαιώματα, ως μέρος της διαδικασίας υποβολής."
-
-msgid "manager.setup.authorCopyrightNotice.description"
-msgstr "Η συγκεκριμένη δήλωση για τα πνευματικά δικαιώματα εμφανίζεται στο μενού «Σχετικά με τις εκδόσεις» και σε κάθε δημοσιευμένο μεταδεδομένο του τεκμηρίου. Αν και εναπόκειται στις Εκδόσεις να καθορίσουν τη φύση της συμφωνίας περί πνευματικών δικαιωμάτων με τους συγγραφείς, το Public Knowledge Project συνιστά τη χρήση των Creative Commons αδειών. Για το σκοπό αυτό, παρέχει έναδείγμα σημιώματος Πνευματικών Δικαιωμάτων το οποίο μπορείτε να κάνετε αποκοπή και επικόλληση στο παρακάτω χώρο για τις εκδόσεις που α) παρέχουν ανοικτή πρόσβαση, β) παρέχουν καθυστερημένη πρόσβαση (delayed open access), ή γ) δεν παρέχουν ανοικτή πρόσβαση."
-
-msgid "manager.setup.authorGuidelines.description"
-msgstr "Διατύπωση προτύπων βιλιογραφίας και μορφοποίησης για συγγραφείς, που χρησιμοποιούνται για τεκμήρια που υποβάλλονται στις εκδόσεις (π.χ., Εγχειρίδιο έκδοσης της Αμερικανικής Ένωσης Ψυχολόγων (American Psychological Association), 5η έκδοση, 2001). Ιδιαίτερα βοηθητική είναι η παροχή παραδειγμάτων κοινών μορφών αναφορών και μορφοποίησης για εκδόσεις και βιβλία που πρέπει να χρησιμοποιούνται στις υποβολές."
-
-msgid "manager.setup.contributor"
-msgstr "Συντελεστής"
-
-msgid "manager.setup.contributors"
-msgstr "Πηγές Υποστήριξης"
-
-msgid "manager.setup.contributors.description"
-msgstr "Πρόσθετοι παράγοντες ή οργανισμοί που παρέχουν οικονομική ή παρεμφερή υποστήριξη για τις εκδόσεις εμφανίζονται στο πεδίο Σχετικά με τις Εκδόσεις και ενδέχεται να συνοδεύονται και από ευχαριστήριο σημείωμα."
-
-msgid "manager.setup.copyediting"
-msgstr "Επιμελητές κειμένων"
-
-msgid "manager.setup.copyeditInstructions"
-msgstr "Οδηγίες επιμέλειας κειμένων"
-
-msgid "manager.setup.copyeditInstructionsDescription"
-msgstr "Οι Οδηγίες επιμέλειας των κειμένων είναι διαθέσιμες για τους Επιμελητές κειμένων, τους Συγγραφείς και τους Επιμελητές ενοτήτων στο στάδιο της επιμέλειας της υποβολής. Παρακάτω θα βρείτε σε μορφή HTML σετ οδηγιών πο μπορούν να τροποποιηθούν ή να αντικατασταθούν από τον Διαχειριστή των Εκδόσεων ανά πάσα στιγμή (σε μορφή HTML ή απλού κειμένου)."
-
-msgid "manager.setup.copyrightNotice"
-msgstr "Δήλωση Πνευματικών Δικαιωμάτων"
-
-msgid "manager.setup.coverage"
-msgstr "Κάλυψη"
-
-msgid "manager.setup.customizingTheLook"
-msgstr "Βήμα 5. Διαμόρφωση της όψης των εκδόσεων"
-
-msgid "manager.setup.customTags"
-msgstr "Ειδικά προσαρμοσμένες ετικέτες"
-
-msgid "manager.setup.customTagsDescription"
-msgstr "Ειδικά προσαρμοσμένες ετικέτες κεφαλίδας HTML που προορίζονται για προσθήκη στην κεφαλίδα κάθε σελίδας (π.χ., ετικέτες META)."
-
-msgid "manager.setup.details"
-msgstr "Λεπτομέρειες"
-
-msgid "manager.setup.details.description"
-msgstr "Όνομα εκδόσεων, υπεύθυνοι επικοινωνίας, χορηγοί, και μηχανές αναζήτησης."
-
-msgid "manager.setup.disableUserRegistration"
-msgstr "Ο Διαχειριστής των Εκδόσεων εγγράφει όλους τους χρήστες, με τους Επιμελητές ή τους Επιμελητές Σειρών να εγγράφουν μόνο τους αξιολογητές."
-
-msgid "manager.setup.discipline"
-msgstr "Επιστημονικά θεματικά πεδία και υπο-πεδία"
-
-msgid "manager.setup.disciplineDescription"
-msgstr "Χρήσιμα όταν οι εκδόσεις δημοσιεύουν ή/και οι συγγραφείς υποβάλλουν τεκμήρια που καλύπτουν περισσότερα του ενός επιστομηνικά πεδία"
-
-msgid "manager.setup.disciplineExamples"
-msgstr "(Π.χ., Ιστορία; Εκπαίδευση; Κοινωνιολογία; Ψυχολογία; Πολιτισμικές Σπουδές; Δίκαιο κτλ.)"
-
-msgid "manager.setup.disciplineProvideExamples"
-msgstr "Παραθέστε μερικά παραδείγματα σχετικών επιστημονικών κλάδων για τη συγκεκριμένη έκδοση."
-
-msgid "manager.setup.displayCurrentMonograph"
-msgstr "Προσθέστε πίνακα των περιεχομένων για την τρέχουσα μονογραφία (αν είναι διαθέσιμος)."
-
-msgid "manager.setup.doiPrefix"
-msgstr "Πρόθημα DOI (DOI Prefix)"
-
-msgid "manager.setup.doiPrefixDescription"
-msgstr "Το πρόθημα DOI (Αναγνωριστικό Ψηφιακού Αντικειμένου) ανατίθεται από CrossRef και βρίσκεται σε μορφή 10.xxxx (π.χ. 10.1234)."
-
-msgid "manager.setup.editorDecision"
-msgstr "Απόφαση επιμελητή"
-
-msgid "manager.setup.emailBounceAddress"
-msgstr "Διεύθυνση επιστροφής σε αποστολέα"
-
-msgid "manager.setup.emailBounceAddress.description"
-msgstr "Όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου που δεν παραδόθηκαν επιτυχώς θα έχουν ως αποτέλεσμα μήνυμα σφάλματος στη συγκεκριμένη διεύθυνση."
-
-msgid "manager.setup.emails"
-msgstr "Αναγνώριση διεύθυνσης ηλεκτρονικού ταχυδρομείου"
-
-msgid "manager.setup.emailSignature"
-msgstr "Υπογραφή"
-
-msgid "manager.setup.emailSignatureDescription"
-msgstr "Τα έτοιμα μηνύματα ηλεκτρονικού ταχυδρομείου που αποστέλλονται μέσω του συστήματος για λογαριασμό των εκδόσεων θα φέρουν την ακόλουθη υπογραφή στο τέλος τους. Το κύριο σώμα των μηνυμάτων είναι διαθέσιμο για επεξεργασία παρακάτω."
-
-msgid "manager.setup.enableAnnouncements.enable"
-msgstr "Ενεργοποίηση δυνατότητας προσθήκης ανακοινώσεων από τους Διαχειριστές των εκδόσεων."
-
-msgid "manager.setup.enablePressInstructions"
-msgstr "Ενεργοποίηση της εμφάνισης των Εκδόσεων στον ιστότοπο"
-
-msgid "manager.setup.enablePublicMonographId"
-msgstr "Θα χρησιμοποιηθούν προσαρμοσμένα αναγνωριστικά για την αναγνώριση των δημοσιευμένων τεκμηρίων."
-
-msgid "manager.setup.enablePublicGalleyId"
-msgstr "Θα χρησιμοποιηθούν προσαρμοσμένα αναγνωριστικά για τις σελιδοποιημένες μορφές (πχ. αρχεία HTML η PDF) των δημοσιευμένων τεκμηρίων."
-
-msgid "manager.setup.focusAndScope"
-msgstr "Πεδίο και περιεχόμενο"
-
-msgid "manager.setup.focusAndScope.description"
-msgstr "Εισαγάγετε δήλωση παρακάτω, η οποία εμφανίζεται στο πεδίο Σχετικά με τις Εκδόσεις και αναφέρεται σε συγγραφείς, αναγνώστες και βιβλιοθηκονόμους σχετικά με το εύρος των μονογραφιών και των λοιπών τεκμηρίων που πρόκειται να δημοσιεύσουν οι εκδόσεις."
-
-msgid "manager.setup.focusScope"
-msgstr "Πεδίο και περιεχόμενο"
-
-msgid "manager.setup.focusScopeDescription"
-msgstr "ΠΑΡΑΔΕΙΓΜΑ ΔΕΔΟΜΕΝΩΝ ΣΕ ΜΟΡΦΗ HTML"
-
-msgid "manager.setup.forAuthorsToIndexTheirWork"
-msgstr "Οδηγίες προς τους συγγραφείς για την ευρετηρίαση του έργου τους"
-
-msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
-msgstr "Το OMP υλοποιεί το πρωτόκολλο Open Archives Initiative Protocol for Metadata Harvesting, που αποτελεί διεθνώς αποδεκτό πρότυπο για παροχή πρόσβασης μέσω ορθής ευρετηρίασης σε διεθνείς ηλεκτρονικές πηγές αναζήτησης. Οι συγγραφείς θα χρησιμοποιήσουν παρόμοιο πρότυπο για παροχή μεταδεδομένων για το έργο τους κατά την διάρκεια της υποβολή του. Ο Διαχειριστής των Εκδόσεων πρέπει να επιλέξει τις κατηγορίες για ευρετηρίαση και να παρουσιάσει στους συγγραφείς σχετικά παραδείγματα για να τους βοηθήσει στην ευρετηρίαση του έργου τους, διαχωρίζοντας τους όρους με ελληνικό ερωτηματικό (πχ., όρος1; όρος2;). Οι καταχωρίσεις πρέπει να εισάγονται ως παραδείγματα χρησιμοποιώντας \"πχ.,\" ή \"Για παράδειγμα,\"."
-
-msgid "manager.setup.form.contactEmailRequired"
-msgstr "Απαιτείται η διεύθυνση ηλεκτρονικού ταχυδρομείου του κύριου υπεύθυνου επικοινωνίας."
-
-msgid "manager.setup.form.contactNameRequired"
-msgstr "Απαιτείται το όνομα του κύριου υπεύθυνου επικοινωνίας."
-
-msgid "manager.setup.form.numReviewersPerSubmission"
-msgstr "Απαιτείται ο αριθμός των αξιολογητών ανά υποβολή."
-
-msgid "manager.setup.form.supportEmailRequired"
-msgstr "Απαιτείται η διεύθυνση ηλεκτρονικού ταχυδρομείου του υπεύθυνου τεχνικής υποστήριξης."
-
-msgid "manager.setup.form.supportNameRequired"
-msgstr "Απαιτείται το κύριο όνομα του υπεύθυνου τεχνικής υποστήριξης."
-
-msgid "manager.setup.generalInformation"
-msgstr "Γενικές Πληροφορίες"
-
-msgid "manager.setup.gettingDownTheDetails"
-msgstr "Βήμα 1. Λεπτομέρειες"
-
-msgid "manager.setup.guidelines"
-msgstr "Κατευθυντήριες γραμμές"
-
-msgid "manager.setup.preparingWorkflow"
-msgstr "Βήμα 3. Προετοιμασία της ροής των εργασιών"
-
-msgid "manager.setup.homepageImage"
-msgstr "Εικόνα αρχικής σελίδας"
-
-msgid "manager.setup.homepageImageDescription"
-msgstr "Προσθήκη εικόνας ή αρχείου γραφικών στο μέσο της σελίδας. Εάν χρησιμοποιείτε το προεπιλεγμένο πρότυπο και css, το μέγιστο πλάτος της εικόνας θα είναι 750px για το πρώτο πλαίσιο και 540px για το δεύτερο. Εάν χρησιμοποιείτε ένα προσαρμοσμένο πρότυπο ή css, οι τιμές αυτές μπορεί να αλλάξουν."
-
-msgid "manager.setup.information.description"
-msgstr "Σύντομες περιγραφές των εκδόσεων για τους βιβλιοθηκονόμους, τους πιθανούς συγγραφείς και τους αναγνώστες είναι διαθέσιμες στην ενότητα “Πληροφορίες” στην δεξιά πλαϊνή μπάρα της ιστοσελίδας."
-
-msgid "manager.setup.information.forAuthors"
-msgstr "Για Συγγραφείς"
-
-msgid "manager.setup.information.forLibrarians"
-msgstr "Για Βιβλιοθηκονόμους"
-
-msgid "manager.setup.information.forReaders"
-msgstr "Για Αναγνώστες"
-
-msgid "manager.setup.institution"
-msgstr "Ίδρυμα"
-
-msgid "manager.setup.labelName"
-msgstr "Όνομα Πεδίου"
-
-msgid "manager.setup.layoutAndGalleys"
-msgstr "Επιμελητές Σελιδοποίησης"
-
-msgid "manager.setup.layoutInstructions"
-msgstr "Οδηγίες Σελιδοποίησης"
-
-msgid "manager.setup.layoutInstructionsDescription"
-msgstr "Οι οδηγίες σελιδοποίησης μπορούν να καθοριστούν για την κατάλληλη μορφοποίηση των τεκμηρίων των εκδόσεων και μπορούν να καταχωρηθούν παρακάτω σε μορφή HTML ή σε απλή μορφή κειμένου. Θα είναι διαθέσιμες στον Επιμελητή σελιδοποίησης και τον Επιμελητή ενότητας στη σελίδα «Επιμέλειας» κάθε υποβολής. (Εφόσον κάθε έκδοση μπορεί να έχει τις δικές της μορφές αρχείου, βιβλιογραφικά πρότυπα, φύλλα στυλ, κτλ., δεν παρέχεται προεπιλεγμένο σετ οδηγιών.)"
-
-msgid "manager.setup.layoutTemplates"
-msgstr "Πρότυπα Σελιδοποίησης"
-
-msgid "manager.setup.layoutTemplatesDescription"
-msgstr "Πρότυπα σελιδοποίησης μπορούν να φορτωθούν για να εμφανίζονται στη \"Σελιδοποίηση\" για καθεμία από τις πρότυπες μορφές που δημοσιεύονται στις εκδόσεις (π.χ., μονογραφία, αναθεώρηση βιβλίου, κλπ.) χρησιμοποιώντας οποιαδήποτε μορφή αρχείου (π.χ., pdf, doc, κτλ.) με πρόσθετους σχολιασμούς που καθορίζουν τη γραμματοσειρά, το μέγεθος, το περιθώριο, κτλ. για να χρησιμοποιηθούν ως οδηγός για τους Επιμελητές Σελιδοποίησης και τους Επιμελητές των Τυπογραφικών Δοκιμίων."
-
-msgid "manager.setup.layoutTemplates.file"
-msgstr "Αρχείο προτύπου"
-
-msgid "manager.setup.layoutTemplates.title"
-msgstr "Τίτλος"
-
-msgid "manager.setup.lists"
-msgstr "Λίστες"
-
-msgid "manager.setup.look"
-msgstr "Όψη Εκδόσεων"
-
-msgid "manager.setup.look.description"
-msgstr "Κεφαλίδα αρχικής σελίδας, περιεχόμενο, κεφαλίδα εκδόσεων, υποσέλιδο, μπάρα πλοήγησης και style sheet."
-
-msgid "manager.setup.mailingAddress.description"
-msgstr "Φυσική τοποθεσία και ταχυδρομική διεύθυνση των εκδόσεων."
-
-msgid "manager.setup.settings"
-msgstr "Ρυθμίσεις"
-
-msgid "manager.setup.management.description"
-msgstr "Πρόσβαση και ασφάλεια, προγραμματισμός, ανακοινώσεις, και χρήση υπεύθυνων επιμελητών κειμένων, επιμελητών σελιδοποίησης και διορθωτών τυπογραφικών δοκιμίων."
-
-msgid "manager.setup.managementOfBasicEditorialSteps"
-msgstr "Διαχείριση βασικών βημάτων επιμέλειας της έκδοσης"
-
-msgid "manager.setup.managingPublishingSetup"
-msgstr "Ρυθμίσεις Διαχείρισης και Δημοσίευσης"
-
-msgid "manager.setup.managingThePress"
-msgstr "Βήμα 4. Διαχείριση των Εκδόσεων"
-
-msgid "manager.setup.noImageFileUploaded"
-msgstr "Δεν έχει φορτωθεί κάποιο αρχείο εικόνας."
-
-msgid "manager.setup.noStyleSheetUploaded"
-msgstr "Δεν έχει φορτωθεί style sheet."
-
-msgid "manager.setup.note"
-msgstr "Σημείωση"
-
-msgid "manager.setup.notifications"
-msgstr "Γνωστοποίηση συγγραφέων για την ολοκλήρωση της υποβολής"
-
-msgid "manager.setup.notifications.copyPrimaryContact"
-msgstr "Αποστολή αντιγράφου στον κύριο υπεύθυνο επικοινωνίας των εκδόσεων, που έχει ορισθεί στο βήμα 1 των ρυθμίσεων."
-
-msgid "manager.setup.notifications.copySpecifiedAddress"
-msgstr "Αποστολή αντιγράφου σε αυτή τη διεύθυνση ηλεκτρονικού ταχυδρομείου:"
-
-msgid "manager.setup.notifications.description"
-msgstr "Με την ολοκλήρωση της διαδικασίας υποβολής, οι συγγραφείς λαμβάνουν αυτόματα ένα ευχαριστήριο μήνυμα ηλεκτρονικού ταχυδρομείου (που μπορεί να προβληθεί και να πεξεργαστεί στα Έτοιμα Email). Επιπλέον, αντίγραφο του μηνύματος αυτού μπορεί να αποσταλεί ως εξής:"
-
-msgid "manager.setup.notifyAllAuthorsOnDecision"
-msgstr "Όταν χρησιμοποιείται το email Ενημέρωσης Συγγραφέα, συμπεριλάβετε τις διευθύνσεις ηλεκτρονικού ταχυδρομείου όλων των συγγραφέων του τεκμηρίου και όχι μόνο του συγγραφέα-χρήστη που υπέβαλε το τεκμήριο."
-
-msgid "manager.setup.noUseCopyeditors"
-msgstr "Η επιμέλεια των κειμένων θα γίνει από τον Επιμελητή των εκδόσεων ή τους επιμελητές ενοτήτων της υποβολής."
-
-msgid "manager.setup.noUseLayoutEditors"
-msgstr "Ο Επιμελητής των εκδόσεων ή κάποιος από τους Επιμελητές Ενοτήτων θα προετοιμάσει τα κατάλληλα σελιδοποιημένα μορφότυπα (αρχεία HTML, PDF, κτλ.)."
-
-msgid "manager.setup.noUseProofreaders"
-msgstr "Ο Επιμελητής των εκδόσεων ή ο Επιμελητής Ενότητας ελέγχουν τα τυπογραφικά δοκίμια."
-
-msgid "manager.setup.numPageLinks"
-msgstr "Σύνδεσμοι σελίδας"
-
-msgid "manager.setup.onlineAccessManagement"
-msgstr "Διαχείριση πρόσβασης"
-
-msgid "manager.setup.onlineIssn"
-msgstr "Online ISΒΝ"
-
-msgid "manager.setup.openAccess"
-msgstr "Οι εκδόσεις παρέχουν ανοικτή πρόσβαση στο περιεχόμενο τους."
-
-msgid "manager.setup.openAccessPolicy"
-msgstr "Πολιτική ανοικτής πρόσβασης"
-
-msgid "manager.setup.openAccessPolicy.description"
-msgstr "Εάν οι εκδόσεις παρέχουν άμεσα ελεύθερη πρόσβαση στο σύνολο του περιεχομένου τους, εισαγάγετε δήλωση σχετικά με την πολιτική ανοικτής πρόσβασης που θα εμφανίζεται στο μενού «Σχετικά με τις εκδόσεις»."
-
-msgid "manager.setup.peerReview.description"
-msgstr "Περιγράψτε τις πολιτικές και τις διαδικασίες των εκδόσεων σχετικά με την αξιολόγηση από ομότιμους αξιολογητές, για αναγνώστες και συγγραφείς, συμπεριλαμβανομένου του αριθμού των αξιολογητών που συνήθως χρησιμοποιούνται στην αναθεώρηση υποβολής, των κριτηρίων βάσει των οποίων οι αξιολογητές καλούνται να κρίνουν υποβολές, του τυπικού χρόνου που απαιτείται για τη διεξαγωγή αξιολογήσεων και των πολιτικών συνεργασίας με τους αξιολογητές. Αυτό εμφανίζεται στο πεδίο Σχετικά με τις εκδόσεις."
-
-msgid "manager.setup.policies"
-msgstr "Πολιτικές"
-
-msgid "manager.setup.policies.description"
-msgstr "Εστίαση (Focus), αξιολόγηση από ομότιμους αξιολογητές (peer review), τομείς, απόρρητα, ασφάλεια, και πρόσθετα στοιχεία σχετικά με τα τεκμήρια."
-
-msgid "manager.setup.pressDescription"
-msgstr "Περιγραφή Εκδόσεων"
-
-msgid "manager.setup.pressDescription.description"
-msgstr "Μια γενική περιγραφή των Εκδόσεων θα πρέπει να περιλαμβάνεται εδώ. Αυτή η περιγραφή θα είναι διαθέσιμη στην αρχική σελίδα των εκδόσεων."
-
-msgid "manager.setup.pressArchiving"
-msgstr "Αρχειοθέτηση Εκδόσεων"
-
-msgid "manager.setup.pressHomepageContent"
-msgstr "Περιεχόμενα Αρχικής Σελίδας Εκδόσεων"
-
-msgid "manager.setup.pressHomepageContentDescription"
-msgstr "Εξ’ορισμού, η αρχική σελίδα των εκδόσεων αποτελείται από δεσμούς πλοήγησης. Η προσθήκη πρόσθετου περιεχομένου αρχικής σελίδας μπορεί να γίνει χρησιμοποιώντας κάποιες ή όλες τις ακόλουθες επιλογές, που θα εμφανιστούν με την σειρά αυτή."
-
-msgid "manager.setup.contextInitials"
-msgstr "Αρχικά Εκδόσεων"
-
-msgid "manager.setup.pressPolicies"
-msgstr "Βήμα 2. Πολιτικές"
-
-msgid "manager.setup.pressSetup"
-msgstr "Οργάνωση Εκδόσεων"
-
-msgid "manager.setup.pressSetupUpdated"
-msgstr "Οι ρυθμίσεις του περιοδικού ενημερώθηκαν."
-
-msgid "manager.setup.pressTheme"
-msgstr "Θέμα Εκδόσεων"
-
-msgid "manager.setup.principalContact"
-msgstr "Κύριος Υπεύθυνος Επικοινωνίας"
-
-msgid "manager.setup.principalContactDescription"
-msgstr "Η εν λόγω θέση που μπορεί να θεωρηθεί θέση κύριας επιμέλειας, διαχείρισης επιμέλειας ή διοικητικού προσωπικού θα καταχωρηθεί στην αρχική σελίδα των εκδόσεων στο πεδίο Υπεύθυνος επικοινωνίας, μαζί με τον Υπεύθυνο για Τεχνική Υποστήριξη."
-
-msgid "manager.setup.printIssn"
-msgstr "Print ISBN"
-
-msgid "manager.setup.privacyStatement"
-msgstr "Δήλωση απορρήτου"
-
-msgid "manager.setup.privacyStatement2"
-msgstr "Δήλωση απορρήτου"
-
-msgid "manager.setup.privacyStatement.description"
-msgstr "Η συγκεκριμένη δήλωση εμφανίζεται στο πεδίο Σχετικά με τις Εκδόσεις καθώς και στις σελίδες εγγραφής συγγραφέα για Υποβολή και Ειδοποίησης. Παρακάτω υπάρχει συνιστώμενη πολιτική απορρήτου, η οποία μπορεί να αναθεωρηθεί ανά πάσα στιγμή."
-
-msgid "manager.setup.proofingInstructions"
-msgstr "Οδηγίες επιμέλειας τυπογραφικών δοκιμίων"
-
-msgid "manager.setup.proofingInstructionsDescription"
-msgstr "Οι Οδηγίες επιμέλειας των τυπογραφικών δοκιμίων θα είναι διαθέσιμες στους Επιμελητές τυπογραφικών δοκιμίων, τους Συγγραφείς, τους Επιμελητές Σελιδοποίησης και τους Επιμελητές ενοτήτων στο στάδιο της επιμέλειας/σύνταξης της υποβολής. Παρακάτω υπάρχει προεπιλεγμένο σετ οδηγιών σε μορφή HTML, το οποίο μπορεί να επεξεργαστεί ή να αντικατασταθεί από τον Διαχειριστή των Εκδόσεων ανά πάσα στιγμή (σε μορφή HTML ή απλού κειμένου)."
-
-msgid "manager.setup.proofreading"
-msgstr "Επιμελητές Τυπογραφικών Δοκιμίων"
-
-msgid "manager.setup.provideRefLinkInstructions"
-msgstr "Παροχή οδηγιών στους Επιμελητές Σελιδοποίησης."
-
-msgid "manager.setup.publicationScheduleDescription"
-msgstr "Τα τεκμήρια μιας έκδοσης μπορούν να δημοσιευτούν συλλογικά, ως μέρος μιας μονογραφίας στο πλαίσιο του δικού της Πίνακα Περιεχομένου. Εναλλακτικά, μεμονωμένα τεκμήρια μπορούν να δημοσιευτούν μόλις είναι έτοιμα, προσθέτοντας στον \"τρέχοντα\" όγκο του Πίνακα Περιεχομένου. Στο μενού «Σχετικά με τις εκδόσεις, μπορείτε να παραθέσετε πληροφορίες σχετικά με το σύστημα που οι εκδόσεις θα χρησιμοποιήσουν και την αναμενόμενη συχνότητα δημοσίευσης."
-
-msgid "manager.setup.publisher"
-msgstr "Εκδότης"
-
-msgid "manager.setup.publisherDescription"
-msgstr "Το όνομα του οργανισμού/εκδότη εμφανίζεται στο πεδίο Σχετικά με τις εκδόσεις."
-
-msgid "manager.setup.referenceLinking"
-msgstr "Σύνδεση Αναφορών"
-
-msgid "manager.setup.refLinkInstructions.description"
-msgstr "Οδηγίες Σελιδοποίησης για Σύνδεση Αναφορών"
-
-msgid "manager.setup.restrictMonographAccess"
-msgstr "Οι χρήστες πρέπει να συνδεθούν για να δουν το περιεχόμενο ανοικτής πρόσβασης."
-
-msgid "manager.setup.restrictSiteAccess"
-msgstr "Οι χρήστες πρέπει να συνδεθούν για να δουν τον ιστότοπο της έκδοσης."
-
-msgid "manager.setup.reviewGuidelines"
-msgstr "Κατευθυντήριες γραμμές αξιολόγησης"
-
-msgid "manager.setup.reviewGuidelinesDescription"
-msgstr "Οι κατευθυντήριες γραμμές αξιολόγησης παρέχουν κριτήρια στους αξιολογητές για καθορισμό της καταλληλότητας δημοσίευσης των υποβληθέντων τεκμηρίων στις εκδόσεις, καθώς και ειδικές οδηγίες για την σύνταξη αποτελεσματικής και κατατοπιστικής αξιολόγησης. Κατά τη διεξαγωγή της αξιολόγησης, οι αξιολογητές παρουσιάζουν την αξιολόγηση τους σε δύο ανοικτά πλαίσια κειμένου, το πρώτο \"για συγγραφείς και εκδότες\" και το δεύτερο μόνο \"για εκδότες\". Εναλλακτικά, ο Διαχειριστής Εκδόσεων μπορεί να δημιουργήσει μια φόρμα αξιολόγησης από ομοτίμους κάτω από το Φόρμες Αξιολόγησης."
-
-msgid "manager.setup.reviewOptions.automatedReminders"
-msgstr "Αυτοματοποιημένες υπενθυμίσεις μέσω ηλεκτρονικού ταχυδρομείου (διαθέσιμα στις προεπιλεγμένες διευθύνσεις ηλεκτρονικού ταχυδρομείου του OMP) μπορούν να αποσταλλούν σε αξιολογητές σε δύο σημεία (ενώ ο επιμελητής μπορεί ανά πάσα στιγμή να αποστείλει μήνυμα ηλεκτρονικού ταχυδρομείου στον αξιολογητή)."
-
-msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
-msgstr "Σημείωση: Για να ενεργοποίησετε τις συγκεκριμένες επιλογές, ο διαχειριστής του ιστοτόπου πρέπει να ενεργοποιήσει την επιλογή scheduled_tasks στο αρχείο ρυθμίσεων του OMP. Ενδέχεται να απαιτούνται πρόσθετες ρυθμίσεις διακομιστή για υποστήριξη της συγκεκριμένης λειτουργίας (που ενδέχεται να μην είναι διαθέσιμες σε όλους τους διακομιστές), όπως διευκρινίζεται στα τεκμηριωτικά έγγραφα του OMP."
-
-msgid "manager.setup.reviewOptions.noteOnModification"
-msgstr "Μπορεί να τροποποιηθεί για κάθε υποβολή κατά την εκδοτική διαδικασία."
-
-msgid "manager.setup.reviewOptions.onQuality"
-msgstr "Οι επιμελητές των εκδόσεων θα βαθμολογούν κατατάξουν τους αξιολογητές σε κλίμακα ποιότητας 0-5 μετά από κάθε αξιολόγηση."
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
-msgstr "Οι αξιολογητές θα έχουν πρόσβαση στο αρχείο υποβολής μόνο μετά από αποδοχή αξιολόγησής αυτού."
-
-msgid "manager.setup.reviewOptions.reviewerAccess"
-msgstr "Πρόσβαση αξιολογητή"
-
-msgid "manager.setup.reviewOptions.reviewerRatings"
-msgstr "Βαθμολόγηση αξιολογητή"
-
-msgid "manager.setup.reviewOptions.reviewerReminders"
-msgstr "Υπενθυμίσεις προς τους αξιολογητές"
-
-msgid "manager.setup.reviewOptions.reviewTime"
-msgstr "Χρόνος αξιολόγησης"
-
-msgid "manager.setup.reviewPolicy"
-msgstr "Πολιτική Αξιολόγησης"
-
-msgid "manager.setup.reviewProcess"
-msgstr "Διαδικασία Αξιολόγησης"
-
-msgid "manager.setup.reviewProcessDescription"
-msgstr "Το OMP υποστηρίζει δύο μοντέλα διαχείρισης της διαδικασίας αξιολόγησης. Συνιστάται η Πρότυπη Διαδικασία Αξιολόγησης γιατί καθοδηγεί με βήματα τους αξιολογητές στη διαδικασία, διασφαλίζει δημιουργία ολοκληρωμένου ιστορικού αξιολόγησης για κάθε υποβολή, και εκμεταλλεύεται την ειδοποίηση με αυτόματο μέσο υπενθύμισης και τις πρότυπες συστάσεις για υποβολές (Αποδοχή, Αποδοχή με αναθεώρηση, Υποβολή για αξιολόγηση, Υποβολή σε άλλο σημείο, Απόρριψη, Ανατρέξτε σε σχόλια).
Επιλέξτε ένα από τα ακόλουθα:"
-
-msgid "manager.setup.reviewProcessEmail"
-msgstr "Διαδικασία αξιολόγησης μέσω email"
-
-msgid "manager.setup.reviewProcessStandard"
-msgstr "Πρότυπη Διαδικασία Αξιολόγησης (online)"
-
-msgid "manager.setup.reviewProcessStandardDescription"
-msgstr "Οι επιμελητές αποστέλλουν με μήνυμα ηλεκτρονικού ταχυδρομείου σε επιλεγμένους αξιολογητές τον τίτλο και το απόσπασμα της υποβολής, καθώς και πρόσκληση για σύνδεση στον ιστότοπο των εκδόσεων για ολοκλήρωση της αξιολόγησης. Οι αξιολογητές συνδέονται στον ιστότοπο των εκδόσεων για να αποδεχτούν την εκτέλεση της αξιολόγησης, για να κατεβάσουν τις υποβολές, και για να επιλέξουν συστάσεις."
-
-msgid "manager.setup.searchEngineIndexing"
-msgstr "Ευρετηρίαση μηχανών αναζήτησης"
-
-msgid "manager.setup.searchEngineIndexing.description"
-msgstr "Για παροχή βοήθειας στους χρήστες μηχανών αναζήτησης στον εντοπισμό του περιοδικού, παρέχετε σύντομη περιγραφή του περιοδικού και σχετικές λέξεις-κλειδιά (που διαχωρίζονται από ελληνικό ερωτηματικό)."
-
-msgid "manager.setup.sectionsAndSectionEditors"
-msgstr "Ενότητες και Επιμελητές ενοτήτων"
-
-msgid "manager.setup.sectionsDefaultSectionDescription"
-msgstr "(Εάν δεν επιλεγεί η χρήση ενοτήτων, τα τεκμήρια που υποβάλλονται καταχωρούνται εξ’ορισμού στην ενότητα Μονογραφίες.)"
-
-msgid "manager.setup.sectionsDescription"
-msgstr "Για να δημιουργήσετε ή να τροποποιήσετε τις ενότητες των εκδόσεων (πχ., Μονογραφίες, Αξιολογήσεις Βιβλίων, κτλ.), μεταβείτε στη Διαχείριση Ενοτήτων.
Οι συγγραφείς με την υποβολή των τεκμηρίων στις εκδόσεις καθορίζουν..."
-
-msgid "manager.setup.securitySettings"
-msgstr "Ρυθμίσεις Ασφαλείας/Πρόσβασης"
-
-msgid "manager.setup.securitySettings.note"
-msgstr "Διάφορες επιλογές σε σχέση με την ασφάλεια και την πρόσβαση μπορούν να ρυθμιστούν από τη σελίδα Πρόσβαση και Ασφάλεια."
-
-msgid "manager.setup.selectEditorDescription"
-msgstr "Τον επιμελητή των εκδόσεων που θα επιβλέπει κατά τη εκδοτική διαδικασία"
-
-msgid "manager.setup.selectSectionDescription"
-msgstr "Την ενότητα των εκδόσεων για την οποία θα ληφθεί υπόψη το τεκμήριο."
-
-msgid "manager.setup.showGalleyLinksDescription"
-msgstr "Προβάλετε πάντα τους συνδέσμους των Σελιδοποιημένων Δοκιμίων και με την υπόδειξη περιορισμένης πρόσβασης."
-
-msgid "manager.setup.sponsors.description"
-msgstr "Τα ονόματα των χορηγών (π.χ., επιστημονικές ενώσεις, πανεπιστημιακά τμήματα, συνεργασίες, κτλ.) που αποτελούν τους χορηγούς των εκδόσεων εμφανίζονται στο πεδίο Σχετικά με τις Εκδόσεις και ενδέχεται να συνοδεύονται και από ευχαριστήριο σημείωμα."
-
-msgid "manager.setup.stepsToPressSite"
-msgstr "Πέντε βήματα για την οργάνωση της ιστοσελίδας των Εκδόσεων"
-
-msgid "manager.setup.subjectExamples"
-msgstr "(Πχ., Φωτοσύνθεση; Μαύρες τρύπες; Οικονομική θεωρία; Θεωρία Bayes, Ανεργία)"
-
-msgid "manager.setup.subjectKeywordTopic"
-msgstr "Λέξεις-κλειδιά"
-
-msgid "manager.setup.subjectProvideExamples"
-msgstr "Παραθέστε μερικά παραδείγματα λέξεων-κλειδιών ή θεμάτων για την καθοδήγηση των συγγραφέων"
-
-msgid "manager.setup.submissionGuidelines"
-msgstr "Οδηγίες Υποβολής"
-
-msgid "manager.setup.submissionPreparationChecklist"
-msgstr "Λίστα ελέγχου προετοιμασίας υποβολής"
-
-msgid "manager.setup.submissionPreparationChecklistDescription"
-msgstr "Κατά τη διάρκεια της διαδικασίας μιας υποβολής στις εκδόσεις, αρχικά ζητείται από τους συγγραφείς να ελέγξουν κάθε πεδίο στη Λίστα Ελέγχου προετοιμασίας της υποβολής, πριν να προχωρήσουν σε επόμενο στάδιο. Η λίστα ελέγχου εμφανίζεται στις «Οδηγίες για τους Συγγραφείς» στο μενού «Σχετικά με τις εκδόσεις». Ο κατάλογος μπορεί να επεξεργασθεί παρακάτω, αλλά πρέπει να υπάρχει σήμανση ελέγχου για όλα τα στοιχεία που βρίσκονται στη λίστα πριν οι συγγραφείς να προχωρήσουν στην υποβολή."
-
-msgid "maganer.setup.submissionChecklistItemRequired"
-msgstr "Απαιτείται λίστα ελέγχου των τεκμηρίων"
-
-msgid "manager.setup.workflow"
-msgstr "Ροή των εργασιών"
-
-msgid "manager.setup.submissions.description"
-msgstr "Κατευθυντήριες γραμμές προς συγγραφέα, πνευματικά δικαιώματα, και καταχώριση σε ευρετήρια (συμπεριλαμβανομένης της εγγραφής)."
-
-msgid "manager.setup.technicalSupportContact"
-msgstr "Υπεύθυνος Επικοινωνίας για Τεχνική Υποστήριξη"
-
-msgid "manager.setup.technicalSupportContactDescription"
-msgstr "Το εν λόγω άτομο θα καταχωρηθεί στη σελίδα του Υπεύθυνου επικοινωνίας των εκδόσεων για χρήση από επιμελητές, συγγραφείς και αξιολογητές και πρέπει να διαθέτει την ανάλογη εργασιακή εμπειρία μέσω του συστήματος για όλες τις δυνατότητες του. Το συγκεκριμένο σύστημα περιοδικών απαιτεί τεχνική υποστήριξη σε μικρό βαθμό, θα πρέπει, συνεπώς, να θεώρηθεί ανάθεση μερικής απασχόλησης. Μπορεί να προκύψουν περιπτώσεις, για παράδειγμα, όταν οι συγγραφείς και οι αξιολογητές αντιμετωπίζουν δυσκολίες σχετικά με τις οδηγίες ή τις μορφές των αρχείων, ή προκύπτει η ανάγκη επιβεβαίωσης της συνεχούς εφεδρικής αποθήκευσης των εκδόσεων στον server."
-
-msgid "manager.setup.typeExamples"
-msgstr "(Πχ., Ιστορική έρευνα; Εν μέρει πειραματικό; Λογοτεχνική ανάλυση; Έρευνα/συνέντευξη)"
-
-msgid "manager.setup.typeMethodApproach"
-msgstr "Τύπος (Μέθοδος/Προσέγγιση)"
-
-msgid "manager.setup.typeProvideExamples"
-msgstr "Παραθέστε μερικά παραδείγματα σχετικών τύπων έρευνας, μεθόδων, και προσεγγίσεων για το συγκεκριμένο πεδίο"
-
-msgid "manager.setup.useCopyeditors"
-msgstr "Οι εκδόσεις θα καθορίσουν τους Επιμελητές κειμένων που θα εργαστούν για κάθε υποβολή."
-
-msgid "manager.setup.useEditorialReviewBoard"
-msgstr "Οι εκδόσεις θα χρησιμοποιούν Επιτροπή Σύνταξης / Αξιολόγησης."
-
-msgid "manager.setup.useImageLogo"
-msgstr "Εικόνα Λογοτύπου"
-
-msgid "manager.setup.useImageLogoDescription"
-msgstr "Ένα προαιρετικό λογότυπο θα μπορούσε να ανεβεί και ν αχρησιμοποιηθεί σε συνδυασμό με την εικόνα ή τον τίτλο που έχει ορισθεί παραπάνω."
-
-msgid "manager.setup.useImageTitle"
-msgstr "Εικόνα Τίτλου"
-
-msgid "manager.setup.useLayoutEditors"
-msgstr "Οι εκδόσεις ορίζουν τον Επιμελητή Σελιδοποίησης που θα προετοιμάσει τα σελιδοποιημένα αρχεία HTML, PDF, PS, κτλ., για την ηλεκτρονική έκδοση."
-
-msgid "manager.setup.useProofreaders"
-msgstr "Οι εκδόσεις ορίζουν τους Επιμελητές Τυπογραφικών Δοκιμίων οι οποίοι (μαζί με τους συγγραφείς) ελέγχουν τα τυπογραφικά δοκίμια."
-
-msgid "manager.setup.userRegistration"
-msgstr "Εγγραφή Χρήστη"
-
-msgid "manager.setup.useTextTitle"
-msgstr "Κείμενο τίτλου"
-
-msgid "manager.setup.volumePerYear"
-msgstr "Τόμοι ανά έτος"
-
-msgid "manager.setup.publicationFormat.code"
-msgstr "Μορφότυπο (format)"
-
-msgid "manager.setup.publicationFormat.codeRequired"
-msgstr "Απαιτείτε επιλογή Μορφότυπου (format)"
-
-msgid "manager.setup.publicationFormat.nameRequired"
-msgstr "Απαιτείται ένα όνομα για αυτή το Μορφότυπο(format)."
-
-msgid "manager.setup.publicationFormat.physicalFormat"
-msgstr "Είναι αυτό ένα μη-ψηφιακό μορφότυπο?"
-
-msgid "manager.setup.publicationFormat.inUse"
-msgstr "Λόγο ότι αυτό το μορφότυπο δημοσίευσης είναι προς το παρόν σε χρήση από μια μονογραφία των εκδόσεων σας, δεν είναι δυνατό να διαγραφεί."
-
-msgid "manager.setup.newPublicationFormat"
-msgstr "Νέο Μορφότυπο Δημοσίευσης"
-
-msgid "manager.setup.newPublicationFormatDescription"
-msgstr "Για να δημιουργήσετε ένα νέο μορφότυπο δημοσίευσης, συμπληρώστε την παρακάτω φόρμα και κάντε κλικ στο κουμπί \"Δημιουργία\"."
-
-msgid "manager.setup.genresDescription"
-msgstr "Τα Μέρη(Genre) του βιβλίου που χρησιμοποιούνται για την κατάταξη-ονομασία των αρχείων μιας έκδοσης, παρουσιάζονται σε ένα κυλιόμενο μενού για τη μεταφόρτωση αρχείων. Τα μέρη του βιβλίου που ορίζονται με το σύμβολο ## επιτρέπουν τον χρήστη να συνδέσει το αρχείο είτε με όλο το βιβλίο (99Ζ) ή με ένα συγκεκριμένο αριθμό κεφαλαίου του βιβλίου (πχ. 02)."
-
-msgid "manager.setup.reviewProcessEmailDescription"
-msgstr "Οι Eπιμελητές αποστέλλουν με μήνυμα ηλεκτρονικού ταχυδρομείου σε επιλεγμένους Aξιολογητές, πρόσκληση για αξιολόγηση του αρχείου της υποβολής που επισυνάπτεται στο μήνυμα. Οι Αξιολογητές αποστέλλουν email στους Επιμελητές για την αποδοχή (η απόρριψη) της αξιολόγησης, καθώς και για την ολοκλήρωση της αξιολόγησης και για την επιλογή συστάσεων. Ο Επιμελητής καταχωρεί την αποδοχή (η απόρριψη), καθώς και την αξιολόγηση και τις συστάσεις στην σελίδα Αξιολόγηση, για την καταγραφή όλης της διαδικασίας αξιολόγησης που ακολουθείθηκε."
-
-msgid "manager.setup.genres"
-msgstr "Τύποι Βιβλίου (Genres)"
-
-msgid "manager.setup.newGenre"
-msgstr "Δημιουργία Νέου τύπου Βιβλίου της Μονογραφίας"
-
-msgid "manager.setup.newGenreDescription"
-msgstr "Για να δημιουργείσετε ένα νέο τύπο βιβλίου (genre), συμπληρώστε την παρακάτω φόρμα και επιλέξτε το κουμπί \"Δημιουργία\"."
-
-msgid "manager.setup.deleteSelected"
-msgstr "Διαγραφή επιλεγμένων"
-
-msgid "manager.setup.restoreDefaults"
-msgstr "Επαναφορά προεπιλεγμένων ρυθμίσεων"
-
-msgid "manager.setup.prospectus"
-msgstr "Οδηγός Πρότασης Έκδοσης/Prospectus Guide"
-
-msgid "manager.setup.prospectusDescription"
-msgstr "Ο οδηγός πρότασης μιας έκδοσης(prospectus guide) αποτελεί ένα κείμενο οδηγιών των εκδόσεων που βοηθά τους συγγραφείς να περιγράψουν το υποβαλλόμενο υλικό με τρόπο που βοηθά τη συντακτική επιτροπή να προσδιορίσει την αξία της υποβολής. Μία πρόταση μπορεί να περιλαμβάνει πολλά στοιχεία - από την δυναμική του έργου στην αγορά των επιστημονικών εκδόσεων ως την επιστημονική και θεωρητική του αξία. Σε κάθε περίπτωση, οι εκδόσεις πρέπει να δημιουργήσουν έναν οδηγό πρότασης που θα συμπληρώνει την αντζέντα των οδηγιών και των πολιτικών που ακολουθεί."
-
-msgid "manager.setup.submitToCategories"
-msgstr "Ένταξη της υποβολής σε Κατηγορία"
-
-msgid "manager.setup.submitToSeries"
-msgstr "Ένταξη της υποβολής σε Σειρά"
-
-msgid "manager.setup.issnDescription"
-msgstr "Ο ISSN (διεθνής πρότυπος αριθμός περιοδικής έκδοσης) αποτελεί αριθμό με οκτώ ψηφία που προσδιορίζει περιοδικές εκδόσεις όπως η συγκεκριμένη, συμπεριλαμβανομένων των αριθμών περιοδικής έκδοσης σε ηλεκτρονική μορφή. Διαχειρίζεται από παγκόσμιο δίκτυο Εθνικών Κέντρων που συντονίζονται από Διεθνές Κέντρο με βάση το Παρίσι, υποστηριζόμενο από την Unesco και τη Γαλλική κυβέρνηση. Η λήψη του αριθμού αυτού μπορεί να γίνει από τον ιστότοπο του ISSN . Αυτό μπορεί να πραγματοποιηθεί σε οποιοδήποτε σημείο χειρισμού των εκδόσεων."
-
-msgid "manager.setup.currentFormats"
-msgstr "Τρέχοντα Μορφότυπα"
-
-msgid "manager.setup.categoriesAndSeries"
-msgstr "Κατηγορίες και Σειρές"
-
-msgid "manager.setup.categories.description"
-msgstr "Μπορείτε να δημιουργήσετε μία λίστα με κατηγορίες που θα σα βοηθήσει να οργανώσετε τις δημοσιεύσεις σας. Οι κατηγορίες ομαδοποιούν τα βιβλία ανάλογα με το αντικείμενο, για παράδειγμα Οικονομικά, Λογοτεχνικά, Ποίηση, κλπ. Ορισμένες κατηγορίες μπορούν να ταξιθετηθούν σε \"γονικές\" κατηγορίες: για παράδειγμα, η γονική κατηγορία Οικονομικά μπορεί να περιλαμβάνει την Μικροοικονομία και Μακροοικονομία. Οι επισκέπτες μπορούν να ανζητήσουν και να περιηγηθούν στις εκδόσεις ανά κατηγορία"
-
-msgid "manager.setup.series.description"
-msgstr "Μπορείτε να δημιουργήσετε οποιοδήποτε αριθμό σειρών για να οργανώσετε τις δημοσιεύσεις σας. Μία Σειρά αντιπροσωπεύει μια σειρά ιδιαίτερων εκδόσεων σχετικά με ένα θέμα ή επιστημονικό πεδίο. Μία Σειρά μπορεί να δημιουργηθεί μετά από πρόταση ενός ή δύο συντελεστών, συνήθως επιστημονικό προσωπικό ή ΔΕΠ, οι οποίοι μπορεί να αναλάβουν και την επιβλεψη ή επιμέλεια της. Οι επισκέπτες μπορούν να ανζητήσουν και να περιηγηθούν στις εκδόσεις ανά σειρά."
-
-msgid "manager.setup.reviewForms"
-msgstr "Φόρμες Αξιολόγησης"
-
-msgid "manager.setup.roleType"
-msgstr "Τύπος Ρόλου"
-
-msgid "manager.setup.authorRoles"
-msgstr "Ρόλοι Συγγραφέων"
-
-msgid "manager.setup.managerialRoles"
-msgstr "Ρόλοι Διαχείρισης"
-
-msgid "manager.setup.availableRoles"
-msgstr "Διαθέσιμοι Ρόλοι"
-
-msgid "manager.setup.currentRoles"
-msgstr "Τρέχον Ρόλοι"
-
-msgid "manager.setup.internalReviewRoles"
-msgstr "Ρόλοι Εσωτερικής Αξιολόγησης"
-
-msgid "manager.setup.masthead"
-msgstr "Ταυτότητα"
-
-msgid "manager.setup.editorialTeam"
-msgstr "Συντακτική ομάδα"
-
-msgid "manager.setup.editorialTeam.description"
-msgstr "Η Ταυτότητα πρέπει να περιέχει μια λίστα από επιμελητές, υπεύθυνους διαχείρισης, και άλλα πρόσωπα που συνδέονται με τις Εκδόσεις. Πληροφορίες που καταχωρούνται εδώ θα εμφανιστούν στη σελίδα \"Σχετικά\" των εκδόσεων"
-
-msgid "manager.setup.files"
-msgstr "Αρχεία"
-
-msgid "manager.setup.productionTemplates"
-msgstr "Πρότυπα Παραγωγής"
-
-msgid "manager.files.note"
-msgstr "Σημείωση: To ευρετήριο αρχείων αποτελεί προηγμένη λειτουργία που παρέχει τη δυνατότητα σε αρχεία και καταλόγους που αφορούν τις εκδόσεις να προβάλλονται και να χειρίζονται άμεσα."
-
-msgid "manager.setup.copyrightNotice.sample"
-msgstr ""
-"Προτεινόμενες Δηλώσεις Προστασίας Πνευματικών Δικαιωμάτων Creative Commons
\n"
-"Προτεινόμενη πολιτική για Εκδόσεις που παρέχουν Ανοικτή Πρόσβαση (Offer Open Access)
\n"
-"Οι Συγγραφείς που δημοσιεύουν το έργο τους με αυτές τις εκδόσεις συμφωνούν με τους ακόλουθους όρους:\n"
-"\n"
-"\t- Οι συγγραφείς διατηρούν τα πνευματικά διακιώματα και εκχωρούν το δικαίωμα της πρώτης δημοσίευσης στις εκδόσεις ενώ ταυτόχρονα τα πνευματικά δικαιώματα του έργου προστατεύονται σύμφωνα με την Creative Commons Attribution License που επιτρέπει σε τρίτους - αποδέκτες της άδειας να χρησιμοποιούν το έργο όπως θέλουν με την προϋπόθεση της διατήρησης των διατυπώσεων που προβλέπονται στην άδεια σχετικά με την αναφορά στον αρχικό δημιουργό και την αρχική δημοσίευση σε αυτές τις εκδόσεις.
\n"
-"\t- Οι συγγραφείς μπορούν να συνάπτουν ξεχωριστές, και πρόσθετες συμβάσεις και συμφωνίες για την μη αποκλειστική διανομή του έργου όπως δημοσιεύτηκε στις εκδόσεις συτές (πχ. κατάθεση σε ένα ακαδημαϊκό καταθετήριο ή δημοσίευση σε ένα βιβλίο), με την προϋπόθεση της αναγνώρισης και της αναφοράς της πρώτης δημοσίευσης σε αυτές τις εκδόσεις.
\n"
-"\t- Οι εκδόσεις επιτρέπουν και ενθαρρύνουν τους συγγραφείς να καταθέτουν τις εργασίες τους online (π.χ. σε ένα ακαδημαϊκό καταθετήριο ή στις προσωπικές τους ιστοσελίδες) πριν και μετά από τις διαδικασίες της δημοσίευσης, καθώς αυτό μπορεί να οδηγήσει σε παραγωγικές ανταλλαγές ιδεών και σκέψεων καθώς επίσης και σε γρηγορότερη και μεγαλύτερη χρήση και ευρετηρίαση της δημοσιευμένης εργασίας (Βλέπε The Effect of Open Access).
\n"
-"
\n"
-"\n"
-"Προτεινόμενη πολιτική για Εκδόσεις που παρέχουν Καθυστερημένη Ανοικτή Πρόσβαση (Delayed Open Access)
\n"
-"Οι Συγγραφείς που δημοσιεύουν το έργο τους με αυτές τις εκδόσεις συμφωνούν με τους ακόλουθους όρους:\n"
-"\n"
-"\t- Οι συγγραφείς διατηρούν τα πενευματικά δικαιώματα και εκχωρούν το δικαίωμα της πρώτης δημοσίευσης στις εκδόσεις, ενώ παράλληλα και [ΠΡΟΣΔΙΟΡΙΣΤΕ ΧΡΟΝΙΚΗ ΠΕΡΙΟΔΟ] μετά την δημοσίευση λαμβάνει άδεια προστασίας των πνευματικών δικαιωμάτων σύμφωνα με την Creative Commons Attribution License που επιτρέπει σε τρίτους - αποδέκτες της άδειας να χρησιμοποιούν την εργασία όπως θέλουν με την προϋπόθεση της διατήρησης των διατυπώσεων που προβλέπονται στην άδεια σχετικά με την αναφορά στον αρχικό δημιουργό και την αρχική δημοσίευση σε αυτές τις εκδόσεις.
\n"
-"\t - Οι συγγραφείς μπορούν να συνάπτουν ξεχωριστές, και πρόσθετες συμβάσεις και συμφωνίες για την μη αποκλειστική διανομή της εργασίας όπως δημοσιεύτηκε στο περιοδικό αυτό (π.χ. κατάθεση σε ένα ακαδημαϊκό καταθετήριο ή δημοσίευση σε ένα βιβλίο), με την προϋπόθεση της αναγνώρισης και την αναφοράς της πρώτης δημοσίευσης σε αυτές τις εκδόσεις.
\n"
-"\t - Οι εκδόσεις επιτρέπουν και ενθαρρύνουν τους συγγραφείς να καταθέτουν τις εργασίες τους online (π.χ. σε ένα ακαδημαϊκό καταθετήριο ή στις προσωπικές τους ιστοσελίδες) πριν και μετά από τις διαδικασίες της δημοσίευσης, καθώς αυτό μπορεί να οδηγήσει σε παραγωγικές ανταλλαγές ιδεών και σκέψεων καθώς επίσης και σε γρηγορότερη και μεγαλύτερη χρήση και ευρετηρίαση της δημοσιευμένης εργασίας (Βλέπε The Effect of Open Access).
\n"
-"
"
-
-msgid "manager.setup.basicEditorialStepsDescription"
-msgstr ""
-"Βήματα: Σειρά αναμονής Υποβολής > Αξιολόγηση Υποβολής > Διαμόρφωση Υποβολής > Πίνακας Περιεχομένων.
\n"
-"Επιλέξτε ένα μοντέλο για χειρισμό των διαφόρων φάσεων της διαδικασίας επιμέλειας. (Για να καθορίζετε επιμελητή διαχείρισης και επιμελητές σειρών, μεταβείτε στους «Επιμελητές» στη «Διαχείριση Εκδόσεων».)"
-
-msgid "manager.setup.referenceLinkingDescription"
-msgstr ""
-"Για να δίνεται η δυνατότητα στους αναγνώστες να εντοπίζουν online εκδόσεις των εργασιών που αναφέρονται από έναν συγγραφέα, οι παρακάτω επιλογές είναι διαθέσιμες.
\n"
-"\n"
-"\n"
-"\t- Προσθήκη ενός Εργαλείου Ανάγνωσης
Ο Διαχειριστής των Εκδόσεων μπορεί να προσθέσει την επιλογή \"Εύρεση Αναφορών\" στα Εργαλεία Ανάγνωσης που συνοδεύουν τα δημοσιευμένα τεκμήρια, που δίνουν την δυνατότητα στους αναγνώστες να επικολήσουν τον τίτλο της αναφοράς και να αναζητήσουν την αντίστοιχη εργασία σε προεπιλεγμένες επσιτημονικές βάσεις δεδομένων.
\n"
-"\t- Ενσωμμάτωση Συνδέσμων στις Αναφορές
Ο Επιμελητής Σελιδοποίησης μπορεί να προσθέσει έναν σύνδεσμο σε αναφορές που μπορούν να βρεθούν online σύμφωνα με τις παρακάτω οδηγίες (και οι οποίες μπορούν να διαμορφωθούν κατά περίπτωση ).
\n"
-"
"
diff --git a/locale/el_GR/submission.po b/locale/el_GR/submission.po
deleted file mode 100644
index cde555bf486..00000000000
--- a/locale/el_GR/submission.po
+++ /dev/null
@@ -1,326 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-11-28T15:10:06-08:00\n"
-"PO-Revision-Date: 2019-11-28T15:10:06-08:00\n"
-"Language: \n"
-
-msgid "submission.select"
-msgstr "Επιλογή Υποβολής"
-
-msgid "submission.synopsis"
-msgstr "Σύνοψη"
-
-msgid "submission.workflowType"
-msgstr "Τύπος Βιβλίου"
-
-msgid "submission.workflowType.description"
-msgstr "Μια μονογραφία είναι ένα έργο που έχει συγγραφεί εξ' ολοκλήρου από έναν ή πολλούς συγγραφείς. Ένα έργο υπο επιμέλια έχει διαφορετικούς συγγραφείς για κάθε κεφάλαιο (λεπτομέρειες για το κάθε κεφάλαιο εισάγονται αργότερα κατα τη διάρκεια της διαδικασίας.)"
-
-msgid "submission.workflowType.editedVolume"
-msgstr "Έργο υπο Επιμέλεια"
-
-msgid "submission.workflowType.authoredWork"
-msgstr "Μονογραφία"
-
-msgid "submission.monograph"
-msgstr "Μονογραφία"
-
-msgid "submission.published"
-msgstr "Η Παραγωγή είναι έτοιμη"
-
-msgid "submission.fairCopy"
-msgstr "Τελικό Αντιγραφο (Fair Copy)"
-
-msgid "submission.artwork.permissions"
-msgstr "Άδειες (Permissions)"
-
-msgid "submission.chapter"
-msgstr "Κεφάλαιο"
-
-msgid "submission.chapters"
-msgstr "Κεφάλαια"
-
-msgid "submission.chaptersDescription"
-msgstr "Εδώ μπορείτε να απαριθμείσετε τα κεφάλαια, τα οποία μπορείτε να ανθέσετε στους συντελεστές του έργου από την παραπάνω λίστα. Οι συντελεστές θα έχουν πρόσβαση στα συγκεκριμένα κεφάλαια σε διάφορες φάσεις της εκδοτικής διαδικασίας."
-
-msgid "submission.chapter.addChapter"
-msgstr "Προσθήκη Κεφαλαίου"
-
-msgid "submission.chapter.editChapter"
-msgstr "Επεξεργασία Κεφαλαίου"
-
-msgid "submission.copyedit"
-msgstr "Επιμέλια Κειμένου"
-
-msgid "submission.publicationFormats"
-msgstr "Μορφότυπα Δημοσίευσης"
-
-msgid "submission.proofs"
-msgstr "Τυπογραφικά Δοκίμια"
-
-msgid "submission.download"
-msgstr "Λήψη αρχείων"
-
-msgid "submission.sharing"
-msgstr "Μοιραστείτε το"
-
-msgid "manuscript.submission"
-msgstr "Υποβολή Χειρογράφου"
-
-msgid "submission.round"
-msgstr "Γύρος {$round}"
-
-msgid "submissions.queuedReview"
-msgstr "Σε αξιολόγηση (In Review)"
-
-msgid "manuscript.submissions"
-msgstr "Χειρόγραφο Υποβολών"
-
-msgid "submission.confirmSubmit"
-msgstr "Είστε σίγουροι ότι επιθυμείτε να υποβάλετε αυτό το χειρόγραφο στις Εκδόσεις μας;"
-
-msgid "submission.metadata"
-msgstr "Μεταδεδομένα"
-
-msgid "submission.supportingAgencies"
-msgstr "Οργανισμοί Υποστήριξης"
-
-msgid "grid.action.addChapter"
-msgstr "Δημιουργία ενός νέου κεφαλαίου"
-
-msgid "grid.action.editChapter"
-msgstr "Επεξεργασία κεφαλαίου"
-
-msgid "grid.action.deleteChapter"
-msgstr "Διαγραφή αυτού του κεφαλαίου"
-
-msgid "submission.submit"
-msgstr "Εισαγωγή Νέας Υποβολής Βιβλίου"
-
-msgid "submission.submit.newSubmissionMultiple"
-msgstr "Ξεκινήστε μια νέα υποβολή στις Εκδόσεις"
-
-msgid "submission.submit.upload"
-msgstr "Μεταφόρτωση"
-
-msgid "submission.submit.upload.description"
-msgstr "Η μεταφόρτωση αρχείων που σχετίζεται με αυτή την υποβολή, συμπεριλαμβάνει χειρόγραφα, πρόταση για μια έκδοση, συνοδευτική επιστολή, καλλιτεχνικά έργα κλπ. Έαν είναι εφικτό, για τα έργα υπο επιμέλεια, καθώς και για τις μονογραφίες, ανεβάστε το κείμενο του έργου σε ξεχωριστό αρχείο."
-
-msgid "submission.submit.cancelSubmission"
-msgstr "Μπορείτε να ολοκληρώσετε τη διαδικασία υποβολής μετέπειτα, επιλέγοντας Ενεργές Υποβολές από την Αρχική Σελίδα του Συγγραφέα."
-
-msgid "submission.submit.copyrightNoticeAgree"
-msgstr "Συμφωνώ να τηρήσω και δεσμέυομαι από τους όρους της δήλωσης πνευματικών δικαιωμάτων."
-
-msgid "submission.submit.selectSeries"
-msgstr "Επιλογή Σειράς..."
-
-msgid "submission.submit.seriesPosition"
-msgstr "Θέση σε αυτή τη Σειρά (πχ. Βιβλίο 2, ή Τόμος 2)"
-
-msgid "submission.submit.form.localeRequired"
-msgstr "Παρακαλώ επιλέξτε τη γλώσσα της υποβολής σας"
-
-msgid "submission.submit.submissionChecklist"
-msgstr "Λίστα Υποβολών"
-
-msgid "submission.submit.submissionChecklistDescription"
-msgstr "Ελέξτε εάν η συγκεκριμένη υποβολή είναι έτοιμη για εξέταση από αυτές τις εκδόσεις, ελέγχοντας και ολοκληρώνοντας τα ακόλουθα (προσθήκη σχολίων προς τον επιμελητή μπορούν να προστεθούν παρακάτω)."
-
-msgid "submission.submit.privacyStatement"
-msgstr "Πολιτική Προστασίας Προσωπικών Δεδομένων"
-
-msgid "submission.submit.contributorRole"
-msgstr "Ρόλος Συντελεστή"
-
-msgid "submission.submit.form.authorRequired"
-msgstr "Απαιτείται τουλάχιστον ένας συγγραφέας."
-
-msgid "submission.submit.form.authorRequiredFields"
-msgstr "Απαιτείται το όνομα, το επίθετο και η ηλεκτρονική διεύθυνση του/ων συγγραφέα/ων."
-
-msgid "submission.submit.form.titleRequired"
-msgstr "Παρακαλούμε εισάγετε τον τίτλο της μονογραφίας."
-
-msgid "submission.submit.form.abstractRequired"
-msgstr "Παρακαλούμε εισάγετε μια σύντομη περίληψη της μονογραφίας."
-
-msgid "submission.submit.form.contributorRoleRequired"
-msgstr "Παρακαλούμε επιλέξτε το ρόλο του συντελεστή."
-
-msgid "submission.submit.submissionFile"
-msgstr "Αρχείο Υποβολής"
-
-msgid "submission.submit.prepare"
-msgstr "Προετοιμασία"
-
-msgid "submission.submit.catalog"
-msgstr "Κατάλογος"
-
-msgid "submission.submit.metadata"
-msgstr "Μεταδεδομένα"
-
-msgid "submission.submit.finishingUp"
-msgstr "Ολοκληρώνοντας"
-
-msgid "submission.submit.nextSteps"
-msgstr "Επόμενα Βήματα"
-
-msgid "submission.submit.coverNote"
-msgstr "Σημειώσεις Εξωφύλλου για τον επιμελητή έκδοσης"
-
-msgid "submission.submit.generalInformation"
-msgstr "Γενικές Πληροφορίες"
-
-msgid "submission.submit.whatNext.description"
-msgstr "Οι εκδόσεις έχουν ενημερωθεί για την υποβολή σας και θα λάβετε ένα email επιβεβαίωσης για το αρχείο σας. Μόλις η εργασία σας αξιολογηθεί από τους επιμελητές, θα επικοινωνήσουμε μαζί σας."
-
-msgid "submission.submit.checklistErrors"
-msgstr "Παρακαλούμε διαβάστε και επισημάνετε τα στοιχεία στη λίστας ελέγχου της υποβολής σας. Το στοιχείο {$itemsRemaining} δεν έχει ελεγχθεί."
-
-msgid "submission.submit.placement"
-msgstr "Τοποθέτηση υποβολής"
-
-msgid "submission.submit.placement.seriesDescription"
-msgstr "Εάν το βιβλίο επίσης πρέπει να ενταχθεί σε μια σειρά..."
-
-msgid "submission.submit.placement.seriesPositionDescription"
-msgstr "Τα βιβλία που ανήκουν σε μια σειρά διατηρούνται αντίστροφα από το χρόνο δημοσίευσης, ώστε να είναι ορατή η ανάπτυξή της σειράς και να εμφανίζεται η πιο πρόσφατη έκδοση."
-
-msgid "submission.submit.userGroup"
-msgstr "Υποβολή με το ρόλο μου ως..."
-
-msgid "submission.submit.userGroupDescription"
-msgstr "Εάν υποβάλλετε ένα 'Εργο υπο Επιμέλεια, τότε θα πρέπει να επιλέξετε το ρόλο του επιμελητή τόμου."
-
-msgid "submission.submit.titleAndSummary"
-msgstr "Τίτλος και Περίληψη"
-
-msgid "submission.upload.selectBookElement"
-msgstr "Επιλέξτε στοιχείο βιβλίου"
-
-msgid "grid.chapters.title"
-msgstr "Κεφάλαια"
-
-msgid "grid.copyediting.deleteCopyeditorResponse"
-msgstr "Διαγραφή αρχείου Επιμελητή Κειμένου"
-
-msgid "publication.catalogEntry"
-msgstr "Κατάλογος"
-
-msgid "submission.editCatalogEntry"
-msgstr "Καταχώριση"
-
-msgid "submission.catalogEntry.new"
-msgstr "Νέα Καταχώριση στον καταλογο"
-
-msgid "submission.catalogEntry.confirm"
-msgstr "Δημιουργείστε μια καταχώριση στον κατάλογο γι'αυτό το βιβλίο, βασιζόμενοι στα παρακάτω μεταδεδομένα."
-
-msgid "submission.catalogEntry.confirm.required"
-msgstr "Παρακαλούμε επιβεβαιώστε ότι η υποβολή είναι έτοιμη να κατχωρηθεί στον καταλόγο."
-
-msgid "submission.catalogEntry.isAvailable"
-msgstr "Η μονογραφία έιναι έτοιμη να συμπεριληφθεί και να δημοσιευθεί στον κατάλογο."
-
-msgid "submission.catalogEntry.monographMetadata"
-msgstr "Μονογραφία"
-
-msgid "submission.catalogEntry.catalogMetadata"
-msgstr "Κατάλογος"
-
-msgid "submission.catalogEntry.publicationMetadata"
-msgstr "Μορφότυπο Έκδοσης"
-
-msgid "submission.event.metadataPublished"
-msgstr "Τα μεταδεδομένα της μονογραφίας έχουν εγκριθεί για δημοσίευση."
-
-msgid "submission.event.metadataUnpublished"
-msgstr "Τα μεταδεδομένα της μονογραφίας δεν είναι πλέον δημοσιευμένα."
-
-msgid "submission.event.publicationFormatMadeAvailable"
-msgstr "Το μορφότυπο της δημοσίευσης \"{$publicationFormatName}\" είναι διαθέσιμο."
-
-msgid "submission.event.publicationFormatMadeUnavailable"
-msgstr "Το μορφότυπο της δημοσίευσης \"{$publicationFormatName}\" δεν είναι πλέον διαθέσιμο."
-
-msgid "submission.event.publicationFormatPublished"
-msgstr "Το μορφότυπο της δημοσίευσης \"{$publicationFormatName}\" έχει εγκριθεί για δημοσίευση."
-
-msgid "submission.event.publicationFormatUnpublished"
-msgstr "Το μορφότυπο της δημοσίεσυης \"{$publicationFormatName}\" δεν είναι πλέον δημοσιευμένο."
-
-msgid "submission.event.catalogMetadataUpdated"
-msgstr "Τα μεταδεδομένα του καταλόγου έχουν ενημερωθεί."
-
-msgid "submission.event.publicationMetadataUpdated"
-msgstr "Τα μεταδεδομένα του μορφότυπου της δημοσίευσης για το \"{$formatName}\" έχουν ενημερωθεί."
-
-msgid "submission.event.publicationFormatCreated"
-msgstr "Το μορφότυπο της δημοσίευσης \"{$formatName}\" έχει δημιουργηθεί."
-
-msgid "submission.event.publicationFormatRemoved"
-msgstr "Το μορφότυπο της δημοσίευσης \"{$formatName}\" έχει αφαιρεθεί."
-
-msgid "submission.publication"
-msgstr "Δημοσίευση"
-
-msgid "publication.status.published"
-msgstr "Δημοσιευμένο"
-
-msgid "submission.status.scheduled"
-msgstr "Προγραμματισμένο"
-
-msgid "submission.publications"
-msgstr "Δημοσιεύσεις"
-
-msgid "publication.copyrightYearBasis.issueDescription"
-msgstr ""
-"Το έτος πνευματικών δικαιωμάτων θα οριστεί αυτόματα όταν δημοσιευθεί σε ένα "
-"τεύχος."
-
-msgid "publication.copyrightYearBasis.submissionDescription"
-msgstr ""
-"Το έτος πνευματικών δικαιωμάτων θα οριστεί αυτόματα με βάση την ημερομηνία "
-"δημοσίευσης."
-
-msgid "publication.datePublished"
-msgstr "Ημερομηνία Δημοσίευσης"
-
-msgid "publication.editDisabled"
-msgstr "Αυτή η έκδοση έχει δημοσιευτεί και δεν είναι δυνατή η επεξεργασία της."
-
-msgid "publication.event.published"
-msgstr "Η υποβολή δημοσιεύτηκε."
-
-msgid "publication.event.scheduled"
-msgstr "Η υποβολή είχε προγραμματιστεί για δημοσίευση."
-
-msgid "publication.event.versionPublished"
-msgstr "Δημοσιεύθηκε μια νέα έκδοση."
-
-msgid "publication.event.versionScheduled"
-msgstr "Μια νέα έκδοση είχε προγραμματιστεί για δημοσίευση."
-
-msgid "publication.event.versionUnpublished"
-msgstr "Μια έκδοση καταργήθηκε από τη δημοσίευση."
-
-msgid "publication.invalidSubmission"
-msgstr "Δεν ήταν δυνατή η εύρεση της υποβολής αυτής της δημοσίευσης."
-
-msgid "publication.publish"
-msgstr "Δημοσίευση"
-
-msgid "publication.publish.requirements"
-msgstr "Πρέπει να πληρούνται οι ακόλουθες προϋποθέσεις για να δημοσιευτεί."
-
-msgid "submission.queries.production"
-msgstr "Συζητήσεις Παραγωγής"
-
diff --git a/locale/en_US/ONIX_BookProduct_CodeLists.xsd b/locale/en/ONIX_BookProduct_CodeLists.xsd
similarity index 100%
rename from locale/en_US/ONIX_BookProduct_CodeLists.xsd
rename to locale/en/ONIX_BookProduct_CodeLists.xsd
diff --git a/locale/en/admin.po b/locale/en/admin.po
new file mode 100644
index 00000000000..a31139f952b
--- /dev/null
+++ b/locale/en/admin.po
@@ -0,0 +1,182 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2019-09-30T06:23:43-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 "admin.hostedContexts"
+msgstr "Hosted Presses"
+
+msgid "admin.settings.appearance.success"
+msgstr "The site appearance settings have been successfully updated."
+
+msgid "admin.settings.config.success"
+msgstr "The site configuration settings have been successfully updated."
+
+msgid "admin.settings.info.success"
+msgstr "The site information has been successfully updated."
+
+msgid "admin.settings.redirect"
+msgstr "Press redirect"
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"Requests to the main site will be redirected to this press. This may be "
+"useful if the site is hosting only a single press, for example."
+
+msgid "admin.settings.noPressRedirect"
+msgstr "Do not redirect"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr "This will be the default language for the site and any hosted presses."
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Select all locales to support on the site. The selected locales will be "
+"available for use by all presses hosted on the site, and also appear in a "
+"language select menu to appear on each site page (which can be overridden on "
+"press-specific pages). If multiple locales are not selected, the language "
+"toggle menu will not appear and extended language settings will not be "
+"available to presses."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "* Marked locales may be incomplete."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"Are you sure you want to uninstall this locale? This may affect any hosted "
+"presses currently using the locale."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Select any additional locales to install support for in this system. Locales "
+"must be installed before they can be used by hosted presses. See the OMP "
+"documentation for information on adding support for new languages."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"Are you sure you want to disable this locale? This may affect any hosted "
+"presses currently using the locale."
+
+msgid "admin.systemVersion"
+msgstr "OMP Version"
+
+msgid "admin.systemConfiguration"
+msgstr "OMP Configuration"
+
+msgid "admin.presses.pressSettings"
+msgstr "Press Settings"
+
+msgid "admin.presses.noneCreated"
+msgstr "No presses have been created."
+
+msgid "admin.contexts.create"
+msgstr "Create Press"
+
+msgid "admin.contexts.form.titleRequired"
+msgstr "A title is required."
+
+msgid "admin.contexts.form.pathRequired"
+msgstr "A path is required."
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+"The path can only include letters, numbers and the characters _ and -. It "
+"must begin and end with a letter or number."
+
+msgid "admin.contexts.form.pathExists"
+msgstr "The selected path is already in use by another press."
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr "The primary locale must be one of the press's supported locales."
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} was created successfully."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} was edited successfully."
+
+msgid "admin.contexts.contextDescription"
+msgstr "Press description"
+
+msgid "admin.presses.addPress"
+msgstr "Add Press"
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"NOTE!\n"
+"
The system could not automatically overwrite the configuration file. To "
+"apply your configuration changes you must open config.inc.php in a "
+"suitable text editor and replace its contents with the contents of the text "
+"field below.
"
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+"Select the hosted presses that should be allowed to send bulk emails. When "
+"this feature is enabled, a press manager will be able to send an email to "
+"all users registered with their press.
Misuse of this feature to send "
+"unsolicited email may violate anti-spam laws in some jurisdictions and may "
+"result in your server's emails being blocked as spam. Seek technical advice "
+"before enabling this feature and consider consulting with press managers to "
+"ensure it is used appropriately.
Further restrictions on this feature "
+"can be enabled for each press by visiting its settings wizard in the list of "
+"Hosted Presses."
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+"A press manager will be unable to send bulk emails to any of the roles "
+"selected below. Use this setting to limit abuse of the email notification "
+"feature. For example, it may be safer to disable bulk emails to readers, "
+"authors, or other large user groups that have not consented to receive such "
+"emails.
The bulk email feature can be disabled completely for this "
+"press in Admin > Site Settings."
+
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
+"The bulk email feature has been disabled for this press. Enable this feature "
+"in Admin > Site Settings."
+
+msgid "admin.siteManagement.description"
+msgstr ""
+"Add, edit or remove presses from this site and manage site-wide settings."
+
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr "Chapter ID is not an integer"
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr "Series ID is not an integer"
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+"Select the type of geographical usage statistics that can be collected by "
+"presses on this site. More detailed geographical statistics may increase "
+"your database size considerably and, in some rare cases, may undermine the "
+"anonymity of your visitors. Each press may configure this setting "
+"differently, but a press can never collect more detailed records than what "
+"is configured here. For example, if the site only supports country and "
+"region, the press may select country and region or only country. The press "
+"will not be able to track country, region and city."
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+"Enable institutional statistics if you would like presses on this site to be "
+"able to collect usage statistics by institution. Presses will need to add "
+"the institution and its IP ranges in order to use this feature. Enabling "
+"institutional statistics may increase your database size considerably."
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+"Whether or not to make the SUSHI API endpoints publicly accessible for all "
+"presses on this site. If you enable the public API, each press may override "
+"this setting to make their statistics private. However, if you disable the "
+"public API, presses can not make their own API public."
+
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr "Use the site as the platform for all presses."
diff --git a/locale/en/api.po b/locale/en/api.po
new file mode 100644
index 00000000000..6d6ba75439b
--- /dev/null
+++ b/locale/en/api.po
@@ -0,0 +1,41 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2019-09-30T06:23:43-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 "api.submissions.400.submissionIdsRequired"
+msgstr ""
+"You must provide one or more submission ids to be added to the catalog."
+
+msgid "api.submissions.400.submissionsNotFound"
+msgstr "One or more of the submissions you specified could not be found."
+
+msgid "api.submissions.400.wrongContext"
+msgstr "The submission you requested is not in this press."
+
+msgid "api.emails.403.disabled"
+msgstr "The email notification feature has not been enabled for this press."
+
+msgid "api.emailTemplates.403.notAllowedChangeContext"
+msgstr ""
+"You do not have permission to move this email template to another press."
+
+msgid "api.publications.403.contextsDidNotMatch"
+msgstr "The publication that you requested is not part of this press."
+
+msgid "api.publications.403.submissionsDidNotMatch"
+msgstr "The publication that you requested is not part of this submission."
+
+msgid "api.submissions.403.cantChangeContext"
+msgstr "You can not change the press of a submission."
+
+msgid "api.submission.400.inactiveSection"
+msgstr "This section is no longer receiving submissions."
diff --git a/locale/en/author.po b/locale/en/author.po
new file mode 100644
index 00000000000..93d1404576a
--- /dev/null
+++ b/locale/en/author.po
@@ -0,0 +1,18 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2019-09-30T06:23:43-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 "author.submit.notAccepting"
+msgstr "This press is not accepting submissions at this time."
+
+msgid "author.submit"
+msgstr "New Submission"
diff --git a/locale/en/default.po b/locale/en/default.po
new file mode 100644
index 00000000000..0ffa01604ca
--- /dev/null
+++ b/locale/en/default.po
@@ -0,0 +1,155 @@
+# Jonas Raoni Soares da Silva , 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2022-07-03 13:31+0000\n"
+"Last-Translator: Jonas Raoni Soares da Silva \n"
+"Language-Team: English (United States) \n"
+"Language: en_US\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 "default.genres.appendix"
+msgstr "Appendix"
+
+msgid "default.genres.bibliography"
+msgstr "Bibliography"
+
+msgid "default.genres.manuscript"
+msgstr "Book Manuscript"
+
+msgid "default.genres.chapter"
+msgstr "Chapter Manuscript"
+
+msgid "default.genres.glossary"
+msgstr "Glossary"
+
+msgid "default.genres.index"
+msgstr "Index"
+
+msgid "default.genres.preface"
+msgstr "Preface"
+
+msgid "default.genres.prospectus"
+msgstr "Prospectus"
+
+msgid "default.genres.table"
+msgstr "Table"
+
+msgid "default.genres.figure"
+msgstr "Figure"
+
+msgid "default.genres.photo"
+msgstr "Photo"
+
+msgid "default.genres.illustration"
+msgstr "Illustration"
+
+msgid "default.genres.other"
+msgstr "Other"
+
+msgid "default.groups.name.manager"
+msgstr "Press manager"
+
+msgid "default.groups.plural.manager"
+msgstr "Press managers"
+
+msgid "default.groups.abbrev.manager"
+msgstr "PM"
+
+msgid "default.groups.name.editor"
+msgstr "Press editor"
+
+msgid "default.groups.plural.editor"
+msgstr "Press editors"
+
+msgid "default.groups.abbrev.editor"
+msgstr "PE"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Series editor"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Series editors"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "AcqE"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr "Subscription Manager"
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr "Subscription Managers"
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr "SubM"
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Chapter Author"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Chapter Authors"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "CA"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Volume editor"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Volume editors"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "VE"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+"Authors are invited to make a submission to this press. Those submissions considered to be a good fit will be sent for peer review before determining whether they will be accepted or rejected.
"
+"Before making a submission, authors are responsible for obtaining permission to publish any material included with the submission, such as photos, documents and datasets. All authors identified on the submission must consent to be identified as an author. Where appropriate, research should be approved by an appropriate ethics committee in accordance with the legal requirements of the study's country.
"
+"An editor may desk reject a submission if it does not meet minimum standards of quality. Before submitting, please ensure that the scope and outline of the book are structured and articulated properly. The title should be concise and the abstract should be able to stand on its own. This will increase the likelihood of reviewers agreeing to review the book. When you're satisfied that your submission meets this standard, please follow the checklist below to prepare your submission.
"
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+"All submissions must meet the following requirements.
"
+""
+"- This submission meets the requirements outlined in the Author Guidelines.
"
+"- This submission has not been previously published, nor is it before another press for consideration.
"
+"- All references have been checked for accuracy and completeness.
"
+"- All tables and figures have been numbered and labeled.
"
+"- Permission has been obtained to publish all photos, datasets and other material provided with this submission.
"
+"
"
+
+msgid "default.contextSettings.privacyStatement"
+msgstr "The names and email addresses entered in this press site will be used exclusively for the stated purposes of this press and will not be made available for any other purpose or to any other party.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr "This press provides immediate open access to its content on the principle that making research freely available to the public supports a greater global exchange of knowledge."
+
+msgid "default.contextSettings.forReaders"
+msgstr "We encourage readers to sign up for the publishing notification service for this press. Use the Register link at the top of the homepage for the press. This registration will result in the reader receiving the Table of Contents by email for each new monograph of the press. This list also allows the press to claim a certain level of support or readership. See the press Privacy Statement which assures readers that their name and email address will not be used for other purposes."
+
+msgid "default.contextSettings.forAuthors"
+msgstr "Interested in submitting to this press? We recommend that you review the About the Press page for the press' section policies and Author Guidelines. Authors need to register with the press prior to submitting, or if already registered can simply log in and begin the 5 step process."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"We encourage research librarians to list this press among their library's "
+"electronic press holdings. As well, this open source publishing system is "
+"suitable for libraries to host for their faculty members to use with presses "
+"they are involved in editing (see Open "
+"Monograph Press)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "External Reviewer"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "External Reviewers"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "ER"
diff --git a/locale/en/editor.po b/locale/en/editor.po
new file mode 100644
index 00000000000..72ead9d6666
--- /dev/null
+++ b/locale/en/editor.po
@@ -0,0 +1,203 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2019-09-30T06:23:43-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 "editor.submissionArchive"
+msgstr "Submission Archive"
+
+msgid "editor.monograph.cancelReview"
+msgstr "Cancel Request"
+
+msgid "editor.monograph.clearReview"
+msgstr "Clear Reviewer"
+
+msgid "editor.monograph.enterRecommendation"
+msgstr "Enter Recommendation"
+
+msgid "editor.monograph.enterReviewerRecommendation"
+msgstr "Enter Reviewer Recommendation"
+
+msgid "editor.monograph.recommendation"
+msgstr "Recommendation"
+
+msgid "editor.monograph.selectReviewerInstructions"
+msgstr ""
+"Select a reviewer above and press the 'Select Reviewer' button to continue."
+
+msgid "editor.monograph.replaceReviewer"
+msgstr "Replace Reviewer"
+
+msgid "editor.monograph.editorToEnter"
+msgstr "Editor to enter recommendation/comments for reviewer"
+
+msgid "editor.monograph.uploadReviewForReviewer"
+msgstr "Upload review"
+
+msgid "editor.monograph.peerReviewOptions"
+msgstr "Peer Review Options"
+
+msgid "editor.monograph.selectProofreadingFiles"
+msgstr "Proofreading Files"
+
+msgid "editor.monograph.internalReview"
+msgstr "Initiate Internal Review"
+
+msgid "editor.monograph.internalReviewDescription"
+msgstr "Select files below to send them to the internal review stage."
+
+msgid "editor.monograph.externalReview"
+msgstr "Initiate External Review"
+
+msgid "editor.monograph.final.selectFinalDraftFiles"
+msgstr "Select Final Draft Files"
+
+msgid "editor.monograph.final.currentFiles"
+msgstr "Current Final Draft Files"
+
+msgid "editor.monograph.copyediting.currentFiles"
+msgstr "Current Files"
+
+msgid "editor.monograph.copyediting.personalMessageToUser"
+msgstr "Message to user"
+
+msgid "editor.monograph.legend.submissionActions"
+msgstr "Submission Actions"
+
+msgid "editor.monograph.legend.submissionActionsDescription"
+msgstr "Overall submission actions and options."
+
+msgid "editor.monograph.legend.sectionActions"
+msgstr "Section Actions"
+
+msgid "editor.monograph.legend.sectionActionsDescription"
+msgstr ""
+"Options particular to a given section, for example uploading files or adding "
+"users."
+
+msgid "editor.monograph.legend.itemActions"
+msgstr "Item Actions"
+
+msgid "editor.monograph.legend.itemActionsDescription"
+msgstr "Actions and options particular to an individual file."
+
+msgid "editor.monograph.legend.catalogEntry"
+msgstr ""
+"View and manage the submission catalog entry, including metadata and "
+"publishing formats"
+
+msgid "editor.monograph.legend.bookInfo"
+msgstr "View and manage submission metadata, notes, notifications, and history"
+
+msgid "editor.monograph.legend.participants"
+msgstr ""
+"View and manage this submission's participants: authors, editors, designers, "
+"and more"
+
+msgid "editor.monograph.legend.add"
+msgstr "Upload a file to the section"
+
+msgid "editor.monograph.legend.add_user"
+msgstr "Add a user to the section"
+
+msgid "editor.monograph.legend.settings"
+msgstr "View and access item settings, such as information and delete options"
+
+msgid "editor.monograph.legend.more_info"
+msgstr "More Information: file notes, notification options, and history"
+
+msgid "editor.monograph.legend.notes_none"
+msgstr ""
+"File information: notes, notification options, and history (No notes added "
+"yet)"
+
+msgid "editor.monograph.legend.notes"
+msgstr ""
+"File information: notes, notification options, and history (Notes are "
+"available)"
+
+msgid "editor.monograph.legend.notes_new"
+msgstr ""
+"File information: notes, notification options, and history (New notes added "
+"since last visit)"
+
+msgid "editor.monograph.legend.edit"
+msgstr "Edit item"
+
+msgid "editor.monograph.legend.delete"
+msgstr "Delete item"
+
+msgid "editor.monograph.legend.in_progress"
+msgstr "Action in progress or not yet complete"
+
+msgid "editor.monograph.legend.complete"
+msgstr "Action complete"
+
+msgid "editor.monograph.legend.uploaded"
+msgstr "File uploaded by the role in the grid column title"
+
+msgid "editor.submission.introduction"
+msgstr ""
+"In Submission, the editor, after the consulting the files submitted, selects "
+"the appropriate action (which includes notifying the author): Send to "
+"Internal Review (entails selecting files for Internal Review); Send to "
+"External Review (entails selecting files for External Review); Accept "
+"Submission (entails selecting files for Editorial stage); or Decline "
+"Submission (archives submission)."
+
+msgid "editor.monograph.editorial.fairCopy"
+msgstr "Fair Copy"
+
+msgid "editor.monograph.proofs"
+msgstr "Proofs"
+
+msgid "editor.monograph.production.approvalAndPublishing"
+msgstr "Approval and Publishing"
+
+msgid "editor.monograph.production.approvalAndPublishingDescription"
+msgstr ""
+"Different publication formats, such as hardcover, softcover and digital, can "
+"be uploaded in the Publication Formats section below. You can use the "
+"publication formats grid below as a checklist for what still needs to be "
+"done to publish a publication format."
+
+msgid "editor.monograph.production.publicationFormatDescription"
+msgstr ""
+"Add publication formats (e.g., digital, paperback) for which the layout "
+"editor prepares page proofs for proofreading. The Proofs need to be "
+"checked as approved and the Catalog entry for the format needs to "
+"be checked as posted in the book’s catalog entry, before a format can be "
+"made Available (i.e., published)."
+
+msgid "editor.monograph.approvedProofs.edit"
+msgstr "Set Terms for Downloading"
+
+msgid "editor.monograph.approvedProofs.edit.linkTitle"
+msgstr "Set Terms"
+
+msgid "editor.monograph.proof.addNote"
+msgstr "Add response"
+
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+"Any files that have already been uploaded to any submission stage can be "
+"added to the Proof Files listing by checking the Include checkbox below and "
+"clicking Search: all available files will be listed and can be chosen for "
+"inclusion."
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+"The public identifier '{$publicIdentifier}' already exists for another "
+"object of the same type. Please choose unique identifiers for the objects of "
+"the same type within your press."
+
+msgid "editor.submissions.assignedTo"
+msgstr "Assigned To Editor"
diff --git a/locale/en/emails.po b/locale/en/emails.po
new file mode 100644
index 00000000000..11297b7fe8c
--- /dev/null
+++ b/locale/en/emails.po
@@ -0,0 +1,501 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-12-03T14:14:06-08:00\n"
+"PO-Revision-Date: 2019-12-03T14:14:06-08: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 "emails.passwordResetConfirm.subject"
+msgstr "Password Reset Confirmation"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"We have received a request to reset your password for the {$siteTitle} web "
+"site.
\n"
+"
\n"
+"If you did not make this request, please ignore this email and your password "
+"will not be changed. If you wish to reset your password, click on the below "
+"URL.
\n"
+"
\n"
+"Reset my password: {$passwordResetUrl}
\n"
+"
\n"
+"{$siteContactName}"
+
+msgid "emails.passwordReset.subject"
+msgstr ""
+
+msgid "emails.passwordReset.body"
+msgstr ""
+
+msgid "emails.userRegister.subject"
+msgstr "Press Registration"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"You have now been registered as a user with {$contextName}. We have included "
+"your username and password in this email, which are needed for all work with "
+"this press through its website. At any point, you can ask to be removed from "
+"the list of users by contacting me.
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"Password: {$password}
\n"
+"
\n"
+"Thank you,
\n"
+"{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr "Validate Your Account"
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"You have created an account with {$contextName}, but before you can start "
+"using it, you need to validate your email account. To do this, simply follow "
+"the link below:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Thank you,
\n"
+"{$contextSignature}"
+
+msgid "emails.userValidateSite.subject"
+msgstr "Validate Your Account"
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"You have created an account with {$siteTitle}, but before you can start "
+"using it, you need to validate your email account. To do this, simply follow "
+"the link below:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Thank you,
\n"
+"{$siteSignature}"
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Registration as Reviewer with {$contextName}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"In light of your expertise, we have taken the liberty of registering your "
+"name in the reviewer database for {$contextName}. This does not entail any "
+"form of commitment on your part, but simply enables us to approach you with "
+"a submission to possibly review. On being invited to review, you will have "
+"an opportunity to see the title and abstract of the paper in question, and "
+"you'll always be in a position to accept or decline the invitation. You can "
+"also ask at any point to have your name removed from this reviewer list.
\n"
+"
\n"
+"We are providing you with a username and password, which is used in all "
+"interactions with the press through its website. You may wish, for example, "
+"to update your profile, including your reviewing interests.
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"Password: {$password}
\n"
+"
\n"
+"Thank you,
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.subject"
+msgstr "You have been assigned as an editor on a submission to {$contextName}"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+"Dear {$recipientName},
The following submission has been assigned "
+"to you to see through the editorial process.
{$submissionTitle}
{$authors}"
+"p>
Abstract
{$submissionAbstract}If you find the submission "
+"to be relevant for {$contextName}, please forward the submission to the "
+"review stage by selecting \"Send to Internal Review\" and then assign "
+"reviewers by clicking \"Add Reviewer\".
If the submission is not "
+"appropriate for this press, please decline the submission.
Thank you "
+"in advance.
Kind regards,
{$contextSignature}"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Manuscript Review Request"
+
+msgid "emails.reviewRequest.body"
+msgstr ""
+"Dear {$recipientName},
"
+"I believe that you would serve as an excellent reviewer for a submission to {$contextName}. The submission's title "
+"and abstract are below, and I hope that you will consider undertaking this important task for us.
"
+"If you are able to review this submission, your review is due by {$reviewDueDate}. You can view the submission, "
+"upload review files, and submit your review by logging into the press and following the steps at the link below.
"
+"{$submissionTitle}
"
+"Abstract
"
+"{$submissionAbstract}"
+"Please accept or decline the review by {$responseDueDate}.
"
+"You may contact me with any questions about the submission or the review process.
"
+"Thank you for considering this request. Your help is much appreciated.
"
+"Kind regards,
"
+"{$signature}"
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr "Request to review a revised submission"
+
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+"Dear {$recipientName},
"
+"Thank you for your review of {$submissionTitle}. The authors have considered the "
+"reviewers' feedback and have now submitted a revised version of their work. "
+"I'm writing to ask if you would conduct a second round of peer review for this submission.
"
+"If you are able to review this submission, your review is due by {$reviewDueDate}. You can "
+"follow the review steps to view the submission, upload review files, and submit "
+"your review comments.
"
+"
{$submissionTitle}
"
+"Abstract
"
+"{$submissionAbstract}"
+"Please accept or decline the review by {$responseDueDate}.
"
+"Please feel free to contact me with any questions about the submission or the review process.
"
+"Thank you for considering this request. Your help is much appreciated.
"
+"Kind regards,
"
+"{$signature}"
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr "Manuscript Review Request"
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+"Dear {$recipientName},
\n"
+"Just a gentle reminder of our request for your review of the submission, "
+""{$submissionTitle}," for {$contextName}. We were hoping to have "
+"your response by {$responseDueDate}, and this email has been automatically "
+"generated and sent with the passing of that date.\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Please log into the press web site to indicate whether you will undertake "
+"the review or not, as well as to access the submission and to record your "
+"review and recommendation.
\n"
+"
\n"
+"The review itself is due {$reviewDueDate}.
\n"
+"
\n"
+"Submission URL: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"Thank you for considering this request.
\n"
+"
\n"
+"
\n"
+"Sincerely,
\n"
+"{$contextSignature}
\n"
+
+msgid "emails.reviewCancel.subject"
+msgstr "Request for Review Cancelled"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"We have decided at this point to cancel our request for you to review the "
+"submission, "{$submissionTitle}," for {$contextName}. We apologize "
+"for any inconvenience this may cause you and hope that we will be able to "
+"call on you to assist with this review process in the future.
\n"
+"
\n"
+"If you have any questions, please contact me."
+
+msgid "emails.reviewReinstate.subject"
+msgstr "Can you still review something for {$contextName}?"
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+"Dear {$recipientName},
"
+"We recently cancelled our request for you to review a submission, {$submissionTitle}, for {$contextName}. "
+"We've reversed that decision and we hope that you are still able to conduct the review.
"
+"If you are able to assist with this submission's review, you can login to the press to view the submission, "
+"upload review files, and submit your review request.
"
+"If you have any questions, please contact me.
"
+"Kind regards,
"
+"{$signature}"
+
+msgid "emails.reviewDecline.subject"
+msgstr "Unable to Review"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"Editor(s):
\n"
+"
\n"
+"I am afraid that at this time I am unable to review the submission, ""
+"{$submissionTitle}," for {$contextName}. Thank you for thinking of me, "
+"and another time feel free to call on me.
\n"
+"
\n"
+"{$senderName}"
+
+msgid "emails.reviewRemind.subject"
+msgstr "A reminder to please complete your review"
+
+msgid "emails.reviewRemind.body"
+msgstr ""
+"Dear {$recipientName},
"
+"Just a gentle reminder of our request for your review of the submission, \"{$submissionTitle},\" for {$contextName}. "
+"We were expecting to have this review by {$reviewDueDate} and we would be pleased to receive it as soon as you are "
+"able to prepare it.
"
+"You can login to the press and follow the review steps to view the submission, upload review files, and submit "
+"your review comments.
"
+"If you need an extension of the deadline, please contact me. I look forward to hearing from you.
"
+"Thank you in advance and kind regards,
"
+"{$signature}"
+
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+"Dear {$recipientName}:
"
+"This email is an automated reminder from {$contextName} in regards to our request for your review of the submission, "
+"\"{$submissionTitle}.\"
"
+"We were expecting to have this review by {$reviewDueDate} and we would be pleased to receive it as soon as you are "
+"able to prepare it.
"
+"Please login to the press and follow the review steps to view the submission, upload review files, and submit "
+"your review comments.
"
+"If you need an extension of the deadline, please contact me. I look forward to hearing from you.
"
+"Thank you in advance and kind regards,
"
+"{$contextSignature}"
+
+msgid "emails.editorDecisionAccept.subject"
+msgstr "Your submission has been accepted to {$contextName}"
+
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+"Dear {$recipientName},
I am pleased to inform you that we have "
+"decided to accept your submission without further revision. After careful "
+"review, we found your submission, {$submissionTitle}, to meet or exceed our "
+"expectations. We are excited to publish your piece in {$contextName} and we "
+"thank you for choosing our press as a venue for your work.
Your "
+"submission will soon be published on the press site for {$contextName} and "
+"you are welcome to include it in your list of publications. We recognize the "
+"hard work that goes into every successful submission and we want to "
+"congratulate you on reaching this stage.
Your submission will now "
+"undergo copy editing and formatting to prepare it for publication.
You "
+"will shortly receive further instructions.
If you have any questions, "
+"please contact me from your submission "
+"dashboard.
Kind regards,
{$signature}"
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr "Your submission has been sent for internal review"
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+"Dear {$recipientName},
I am pleased to inform you that an editor "
+"has reviewed your submission, {$submissionTitle}, and has decided to send it "
+"for internal review. You will hear from us with feedback from the reviewers "
+"and information about the next steps.
Please note that sending the "
+"submission for internal review does not guarantee that it will be published. "
+"We will consider the reviewers' recommendations before deciding to accept "
+"the submission for publication. You may be asked to make revisions and "
+"respond to the reviewers' comments before a final decision is made.
If "
+"you have any questions, please contact me from your submission dashboard."
+"p>
{$signature}
"
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr "Your submission has been sent for copyediting"
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+"Dear {$recipientName},
\n"
+"I am pleased to inform you that we have decided to accept your submission "
+"without peer review. We found your submission, {$submissionTitle}, to meet "
+"our expectations, and we do not require that work of this type undergo peer "
+"review. We are excited to publish your piece in {$contextName} and we thank "
+"you for choosing our press as a venue for your work.
\n"
+"Your submission will soon be published on the press site for "
+"{$contextName} and you are welcome to include it in your list of "
+"publications. We recognize the hard work that goes into every successful "
+"submission and we want to congratulate you on your efforts.
\n"
+"Your submission will now undergo copy editing and formatting to prepare "
+"it for publication.
\n"
+"You will shortly receive further instructions.
\n"
+"If you have any questions, please contact me from your submission dashboard.
\n"
+"Kind regards,
\n"
+"{$signature}
\n"
+
+msgid "emails.layoutRequest.subject"
+msgstr ""
+"Submission {$submissionId} is ready for production at {$contextAcronym}"
+
+msgid "emails.layoutRequest.body"
+msgstr ""
+"Dear {$recipientName},
A new submission is ready for layout editing:"
+"
{$submissionId} {$submissionTitle}"
+"a>
{$contextName}
- Click on the Submission URL above."
+"li>
- Download the Production Ready files and use them to create the "
+"galleys according to the press's standards.
- Upload the galleys to "
+"the Publication Formats section of the submission.
- Use the "
+"Production Discussions to notify the editor that the galleys are ready."
+"li>
If you are unable to undertake this work at this time or have any "
+"questions, please contact me. Thank you for your contribution to this press."
+"
Kind regards,
{$signature}"
+
+msgid "emails.layoutComplete.subject"
+msgstr "Galleys Complete"
+
+msgid "emails.layoutComplete.body"
+msgstr ""
+"Dear {$recipientName},
"
+"
Galleys have now been prepared for the following submission and are ready for final review.
"
+"{$submissionTitle}
"
+"{$contextName}
"
+"If you have any questions, please contact me.
"
+"Kind regards,
"
+"{$senderName}
"
+
+msgid "emails.indexRequest.subject"
+msgstr "Request Index"
+
+msgid "emails.indexRequest.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"The submission "{$submissionTitle}" to {$contextName} now needs "
+"indexes created by following these steps.
\n"
+"1. Click on the Submission URL below.
\n"
+"2. Log into the press and use the Page Proofs file to create the galleys "
+"according to press standards.
\n"
+"3. Send the COMPLETE email to the editor.
\n"
+"
\n"
+"{$contextName} URL: {$contextUrl}
\n"
+"Submission URL: {$submissionUrl}
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"If you are unable to undertake this work at this time or have any questions, "
+"please contact me. Thank you for your contribution to this press.
\n"
+"
\n"
+"{$signature}"
+
+msgid "emails.indexComplete.subject"
+msgstr "Index Galleys Complete"
+
+msgid "emails.indexComplete.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Indexes have now been prepared for the manuscript, "{$submissionTitle},"
+"" for {$contextName} and are ready for proofreading.
\n"
+"
\n"
+"If you have any questions, please contact me.
\n"
+"
\n"
+"{$senderName}"
+
+msgid "emails.emailLink.subject"
+msgstr "Manuscript of Possible Interest"
+
+msgid "emails.emailLink.body"
+msgstr ""
+"Thought you might be interested in seeing "{$submissionTitle}" by "
+"{$authors} published in Vol {$volume}, No {$number} ({$year}) of "
+"{$contextName} at "{$submissionUrl}"."
+
+msgid "emails.notifySubmission.subject"
+msgstr "Submission Notification"
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+"You have a message from {$sender} regarding "{$submissionTitle}" "
+"({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifySubmission.description"
+msgstr ""
+"A notification from a user sent from a submission information center modal."
+
+msgid "emails.notifyFile.subject"
+msgstr "Submission File Notification"
+
+msgid "emails.notifyFile.body"
+msgstr ""
+"You have a message from {$sender} regarding the file "{$fileName}" "
+"in "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifyFile.description"
+msgstr "A notification from a user sent from a file information center modal"
+
+msgid "emails.revisedVersionNotify.subject"
+msgstr "Revised Version Uploaded"
+
+msgid "emails.revisedVersionNotify.body"
+msgstr ""
+"Dear {$recipientName},
"
+"The author has uploaded revisions for the submission, {$authorsShort} — {$submissionTitle}. "
+"
As an assigned editor, we ask that you login and view the revisions and make a decision to accept, decline or send the submission for further review.
"
+"
—
"
+"This is an automated message from {$contextName}."
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr "Editorial activity for {$month}, {$year}"
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+"\n"
+"{$recipientName},
\n"
+"
\n"
+"Your press health report for {$month}, {$year} is now available. Your key "
+"stats for this month are below.
\n"
+"\n"
+"\t- New submissions this month: {$newSubmissions}
\n"
+"\t- Declined submissions this month: {$declinedSubmissions}
\n"
+"\t- Accepted submissions this month: {$acceptedSubmissions}
\n"
+"\t- Total submissions in the system: {$totalSubmissions}
\n"
+"
\n"
+"Login to the the press to view more detailed editorial trends and published book stats. A full copy of this "
+"month's editorial trends is attached.
\n"
+"
\n"
+"Sincerely,
\n"
+"{$contextSignature}"
+
+msgid "emails.announcement.subject"
+msgstr "{$announcementTitle}"
+
+msgid "emails.announcement.body"
+msgstr ""
+"{$announcementTitle}
\n"
+"
\n"
+"{$announcementSummary}
\n"
+"
\n"
+"Visit our website to read the full "
+"announcement."
+
+msgid "emails.editorAssignReview.body"
+msgstr ""
+"Dear {$recipientName},
"
+"The following submission has been assigned to you to see through the review stage.
"
+"{$submissionTitle}
"
+"{$authors}
"
+"Abstract
"
+"{$submissionAbstract}"
+"Please login to view the submission and assign qualified "
+"reviewers. You can assign a reviewer by clicking \"Add Reviewer\".
"
+"Thank you in advance.
"
+"Kind regards,
"
+"{$signature}"
+
+msgid "emails.editorAssignProduction.body"
+msgstr ""
+"Dear {$recipientName},
"
+"The following submission has been assigned to you to see through the production stage.
"
+"{$submissionTitle}
"
+"{$authors}
"
+"Abstract
"
+"{$submissionAbstract}"
+"Please login to view the submission. Once production-ready files "
+"are available, upload them under the Publication > Publication Formats section.
"
+"Thank you in advance.
"
+"Kind regards,
"
+"{$signature}"
diff --git a/locale/en/locale.po b/locale/en/locale.po
new file mode 100644
index 00000000000..79bd52f509f
--- /dev/null
+++ b/locale/en/locale.po
@@ -0,0 +1,1542 @@
+# Jonas Raoni Soares da Silva , 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2022-07-03 13:31+0000\n"
+"Last-Translator: Jonas Raoni Soares da Silva \n"
+"Language-Team: English (United States) \n"
+"Language: en_US\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 "common.payments"
+msgstr "Payments"
+
+msgid "monograph.audience"
+msgstr "Audience"
+
+msgid "monograph.audience.success"
+msgstr "The audience details have been updated."
+
+msgid "monograph.coverImage"
+msgstr "Cover Image"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Audience Range Qualifier"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Audience Range (from)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Audience Range (to)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "Audience Range (exact)"
+
+msgid "monograph.languages"
+msgstr "Languages (English, French, Spanish)"
+
+msgid "monograph.publicationFormats"
+msgstr "Publication Formats"
+
+msgid "monograph.publicationFormat"
+msgstr "Format"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "Details about the available publication format: {$format}"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Details about this monograph"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Formats:"
+
+msgid "monograph.type"
+msgstr "Type of Submission"
+
+msgid "submission.pageProofs"
+msgstr "Page Proofs"
+
+msgid "monograph.proofReadingDescription"
+msgstr "The layout editor uploads the production-ready files that have been prepared for publication here. Use +Assign to designate authors and others to proofread the page proofs, with corrected files uploaded for approval prior to publication."
+
+msgid "monograph.task.addNote"
+msgstr "Add to task"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Open Access"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Imprint (Brand Name)"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Page Counts"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Front Matter"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Back Matter"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Product Composition"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Product Detail (not required)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Product Identification"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Price"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "A price is required."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Price Type"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Discount percentage, if applicable"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Product Availability"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Returnable Indicator"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Digital Information"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Physical Dimensions"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "File Size in Mbytes"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "Enter your own file size value?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Height"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Thickness"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Weight"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Width"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "Country of Manufacture"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Digital Technical Protection"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Product Distribution Region"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Taxation Rate"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Taxation Type"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr "Include the metadata for this publication format in the catalog entry for this book."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Missing markets and prices."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Missing an identification code."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Missing some metadata fields."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr "The publication format you have chosen no longer exists for this monograph.
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Open publication format tab."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Publication Format"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "A name is required."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "A valid price is required."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Format Details"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Physical format"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "This format will be available at a separate website"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "URL of remotely-hosted content"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "A 13-digit ISBN code, such as 978-951-98548-9-2."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "A 10-digit ISBN code, such as 951-98548-9-4."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "A monograph id is required."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "A publication format must be chosen."
+
+msgid "grid.catalogEntry.availability"
+msgstr "Availability"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Available"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "Not Available"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Proof"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Format Approval"
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr "Approve the metadata for this format. Metadata can be checked from the Edit panel for each format.
"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr "Indicate that the metadata for this format has not been approved.
"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Format Availability"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr "Make this format available to readers. Downloadable files and any other distributions will appear in the book's catalog entry.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr "This format will unavailable to readers. Any downloadable files or other distributions will no longer appear in the book's catalog entry.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "Catalog entry not approved."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "Format not in catalog entry."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Proof not approved."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Approved"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "Awaiting Approval"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "A file size for digital formats required."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "A product availability code is required."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "A product composition code must be chosen."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Code Value"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "ONIX Code Type"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "An identification code is required."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "A value is required."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Sales Rights"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Code Value"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Sales Rights Type"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "Rest of World?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr "Check this box to use this Sales Rights entry as a catch-all for your format. Countries and regions need not be chosen in this case."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr "There is already a ROW sales type defined for this publication format."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Countries"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Regions"
+
+msgid "grid.catalogEntry.included"
+msgstr "Included"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Excluded"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Market Territories"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Territory"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Publication Dates"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "A representative role is required."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "A date format is required."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Date"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Role"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Date Format"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr "A date is required and the date value must match the chosen date format."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Representatives"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Representative Type"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Agents"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Suppliers"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Agent"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr "You may assign an agent to represent you in this defined territory. It is not required."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Supplier"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Choose a role:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Role"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Name"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Phone"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "Email Address"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Website"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "Representative ID"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Representative ID Type (GLN is recommended)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr "You may leave the following section empty if you provide your own services to your customers."
+
+msgid "grid.action.addRepresentative"
+msgstr "Add Representative"
+
+msgid "grid.action.editRepresentative"
+msgstr "Edit this Representative"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Delete this Representative"
+
+msgid "spotlight"
+msgstr "Spotlight"
+
+msgid "spotlight.spotlights"
+msgstr "Spotlights"
+
+msgid "spotlight.noneExist"
+msgstr "There are no current spotlights."
+
+msgid "spotlight.title.homePage"
+msgstr "In the Spotlight"
+
+msgid "spotlight.author"
+msgstr "Author, "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Spotlight Item"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Homepage"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Spotlight Location"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Enter spotlighted title (autocomplete)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Spotlight title"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Book"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "An item is required."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "A spotlight title is required."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Please choose a location for this spotlight."
+
+msgid "grid.action.editSpotlight"
+msgstr "Edit this spotlight"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Delete this spotlight"
+
+msgid "grid.action.addSpotlight"
+msgstr "Add Spotlight"
+
+msgid "manager.series.open"
+msgstr "Open Submissions"
+
+msgid "manager.series.indexed"
+msgstr "Indexed"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Files"
+
+msgid "grid.action.catalogEntry"
+msgstr "View the catalog entry form"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "Format appears in catalog entry"
+
+msgid "grid.action.editFormat"
+msgstr "Edit this format"
+
+msgid "grid.action.deleteFormat"
+msgstr "Delete this format"
+
+msgid "grid.action.addFormat"
+msgstr "Add publication format"
+
+msgid "grid.action.approveProof"
+msgstr "Approve the proof for indexing and inclusion in the catalog"
+
+msgid "grid.action.pageProofApproved"
+msgstr "Page proofs file is ready for publication"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "New Catalog Entry"
+
+msgid "grid.action.publicCatalog"
+msgstr "View this item in the catalog"
+
+msgid "grid.action.feature"
+msgstr "Toggle the feature display"
+
+msgid "grid.action.featureMonograph"
+msgstr "Feature this in the catalog carousel"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Mark this submission as a 'new release'"
+
+msgid "grid.action.manageCategories"
+msgstr "Configure categories for this press"
+
+msgid "grid.action.manageSeries"
+msgstr "Configure series for this press"
+
+msgid "grid.action.addCode"
+msgstr "Add Code"
+
+msgid "grid.action.editCode"
+msgstr "Edit this Code"
+
+msgid "grid.action.deleteCode"
+msgstr "Delete this Code"
+
+msgid "grid.action.addRights"
+msgstr "Add Sales Rights"
+
+msgid "grid.action.editRights"
+msgstr "Edit these rights"
+
+msgid "grid.action.deleteRights"
+msgstr "Delete these rights"
+
+msgid "grid.action.addMarket"
+msgstr "Add Market"
+
+msgid "grid.action.editMarket"
+msgstr "Edit this Market"
+
+msgid "grid.action.deleteMarket"
+msgstr "Delete this Market"
+
+msgid "grid.action.addDate"
+msgstr "Add publication date"
+
+msgid "grid.action.editDate"
+msgstr "Edit this Date"
+
+msgid "grid.action.deleteDate"
+msgstr "Delete this Date"
+
+msgid "grid.action.createContext"
+msgstr "Create a new Press"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Show the publication format tab"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Go to press announcements page"
+
+msgid "grid.action.submissionEmail"
+msgstr "Click to read this email"
+
+msgid "grid.action.approveProofs"
+msgstr "View the proofs grid"
+
+msgid "grid.action.proofApproved"
+msgstr "Format has been proofed"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Approve/disapprove this format"
+
+msgid "grid.action.formatAvailable"
+msgstr "Toggle the availability of this format on and off"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Add Attachment to Review"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Available Files"
+
+msgid "series.series"
+msgstr "Series"
+
+msgid "series.featured.description"
+msgstr "This series will appear on the main navigation"
+
+msgid "series.path"
+msgstr "Path"
+
+msgid "catalog.manage"
+msgstr "Catalog Management"
+
+msgid "catalog.manage.newReleases"
+msgstr "New Releases"
+
+msgid "catalog.manage.category"
+msgstr "Category"
+
+msgid "catalog.manage.series"
+msgstr "Series"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "Please enter a valid ISSN."
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "Online and print ISSN must not be the same."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "Online ISSN"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "Print ISSN"
+
+msgid "catalog.selectSeries"
+msgstr "Select Series"
+
+msgid "catalog.selectCategory"
+msgstr "Select Category"
+
+msgid "catalog.manage.homepageDescription"
+msgstr "The cover image of selected books appears toward the top of the homepage as a scrollable set. Click 'Feature', then the star to add a book to the carousel; click the exclamation point to feature as a new release; drag and drop to order."
+
+msgid "catalog.manage.categoryDescription"
+msgstr "Click 'Feature', then the star to select a featured book for this category; drag and drop to order."
+
+msgid "catalog.manage.seriesDescription"
+msgstr "Click 'Feature', then the star to select a featured book for this series; drag and drop to order. Series are identified with an editor(s) and a series title, within a category or independently."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Carousel"
+
+msgid "catalog.manage.newRelease"
+msgstr "Release"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Manage Series"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Manage Categories"
+
+msgid "catalog.manage.noMonographs"
+msgstr "There are no assigned monographs."
+
+msgid "catalog.manage.featured"
+msgstr "Featured"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "Featured in category"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "Featured in series"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "Monograph is featured."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "Monograph is not featured."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "Monograph is marked as a new release."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "Monograph is unmarked as a new release."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "New release"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "New release in category"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "New release in series"
+
+msgid "catalog.manage.nonOrderable"
+msgstr "This monograph is not orderable until it's featured."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Search by title or author"
+
+msgid "catalog.manage.isFeatured"
+msgstr "This monograph is featured. Make this monograph not featured."
+
+msgid "catalog.manage.isNotFeatured"
+msgstr "This monograph is not featured. Make this monograph featured."
+
+msgid "catalog.manage.isNewRelease"
+msgstr "This monograph is a new release. Make this monograph not a new release."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr "This monograph is not a new release. Make this monograph a new release."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr "No submissions were selected to be added to the catalog."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "One or more of the submissions could not be found."
+
+msgid "catalog.manage.findSubmissions"
+msgstr "Find monographs to add to the catalog"
+
+msgid "catalog.noTitles"
+msgstr "No titles have been published yet."
+
+msgid "catalog.noTitlesNew"
+msgstr "No new releases are available at this time."
+
+msgid "catalog.noTitlesSearch"
+msgstr "No titles were found which matched your search for \"{$searchQuery}\"."
+
+msgid "catalog.feature"
+msgstr "Feature"
+
+msgid "catalog.featured"
+msgstr "Featured"
+
+msgid "catalog.featuredBooks"
+msgstr "Featured Books"
+
+msgid "catalog.foundTitleSearch"
+msgstr "One title was found which matched your search for \"{$searchQuery}\"."
+
+msgid "catalog.foundTitlesSearch"
+msgstr "{$number} titles were found which matched your search for \"{$searchQuery}\"."
+
+msgid "catalog.category.heading"
+msgstr "All Books"
+
+msgid "catalog.newReleases"
+msgstr "New Releases"
+
+msgid "catalog.dateAdded"
+msgstr "Added"
+
+msgid "catalog.publicationInfo"
+msgstr "Publication Info"
+
+msgid "catalog.published"
+msgstr "Published"
+
+msgid "catalog.forthcoming"
+msgstr "Forthcoming"
+
+msgid "catalog.categories"
+msgstr "Categories"
+
+msgid "catalog.parentCategory"
+msgstr "Parent Category"
+
+msgid "catalog.category.subcategories"
+msgstr "Subcategories"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "About the {$roleName}"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr "Please note: In order to purchase items, you will need to log in first. Selecting an item to purchase will direct you to the login page. Any item marked with an Open Access icon may be downloaded free of charge, without logging in."
+
+msgid "catalog.sortBy"
+msgstr "Order of monographs"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "Choose how to order books in this series."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr "Choose how to order books in this category."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "Choose how to order books in the catalog."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "Series position (lowest first)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "Series position (highest first)"
+
+msgid "catalog.viewableFile.title"
+msgstr "{$type} view of the file {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "Return to view details about {$monographTitle}"
+
+msgid "submission.search"
+msgstr "Book Search"
+
+msgid "common.publication"
+msgstr "Monograph"
+
+msgid "common.publications"
+msgstr "Monographs"
+
+msgid "common.prefix"
+msgstr "Prefix"
+
+msgid "common.preview"
+msgstr "Preview"
+
+msgid "common.feature"
+msgstr "Feature"
+
+msgid "common.searchCatalog"
+msgstr "Search Catalog"
+
+msgid "common.moreInfo"
+msgstr "More Information"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Please fill out the form completely."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Please select a valid option from the list."
+
+msgid "common.listbuilder.itemExists"
+msgstr "You cannot add the same item twice."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Homepage Header"
+
+msgid "navigation.catalog"
+msgstr "Catalog"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Competing Interest Policy"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "All Monographs"
+
+msgid "navigation.catalog.manage"
+msgstr "Manage"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Administration"
+
+msgid "navigation.catalog.administration"
+msgstr "Catalog Administration"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Categories"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Series"
+
+msgid "navigation.infoForAuthors"
+msgstr "For Authors"
+
+msgid "navigation.infoForLibrarians"
+msgstr "For Librarians"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Information For Authors"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Information For Librarians"
+
+msgid "navigation.newReleases"
+msgstr "New Releases"
+
+msgid "navigation.published"
+msgstr "Published"
+
+msgid "navigation.wizard"
+msgstr "Wizard"
+
+msgid "navigation.linksAndMedia"
+msgstr "Links and Social Media"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Link to your catalog."
+
+msgid "navigation.skip.spotlights"
+msgstr "Skip to spotlights"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Series"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Link to a series."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Category"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Link to a category."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "New Releases"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Link to your New Releases."
+
+msgid "context.contexts"
+msgstr "Presses"
+
+msgid "context.context"
+msgstr "Press"
+
+msgid "context.current"
+msgstr "Current Press:"
+
+msgid "context.select"
+msgstr "Switch to another press:"
+
+msgid "user.authorization.representationNotFound"
+msgstr "The requested publication format could not be found."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "Include users with no roles in this press."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Submit a Proposal"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr "Submit an Monograph: Author registration is currently disabled."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Register as a Reviewer"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr "Register as a Reviewer: Reviewer registration is currently disabled."
+
+msgid "user.reviewerPrompt"
+msgstr "Would you be willing to review submissions to this press?"
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Yes, request the {$userGroup} role."
+
+msgid "user.reviewerPrompt.optin"
+msgstr "Yes, I would like to be contacted with requests to review submissions to this press."
+
+msgid "user.register.contextsPrompt"
+msgstr "Which presses on this site would you like to register with?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Request the following roles."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr "If you requested to be a reviewer for any press, please enter your subject interests."
+
+msgid "user.role.manager"
+msgstr "Press Manager"
+
+msgid "user.role.pressEditor"
+msgstr "Press Editor"
+
+msgid "user.role.subEditor"
+msgstr "Series Editor"
+
+msgid "user.role.copyeditor"
+msgstr "Copyeditor"
+
+msgid "user.role.proofreader"
+msgstr "Proofreader"
+
+msgid "user.role.productionEditor"
+msgstr "Production Editor"
+
+msgid "user.role.managers"
+msgstr "Press Managers"
+
+msgid "user.role.subEditors"
+msgstr "Series Editors"
+
+msgid "user.role.editors"
+msgstr "Editors"
+
+msgid "user.role.copyeditors"
+msgstr "Copyeditors"
+
+msgid "user.role.proofreaders"
+msgstr "Proofreaders"
+
+msgid "user.role.productionEditors"
+msgstr "Production Editors"
+
+msgid "user.register.selectContext"
+msgstr "Select a press to register with:"
+
+msgid "user.register.noContexts"
+msgstr "There are no presses you may register with on this site."
+
+msgid "user.register.privacyStatement"
+msgstr "Privacy Statement"
+
+msgid "user.register.registrationDisabled"
+msgstr "This press is currently not accepting user registrations."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "The password you entered is not long enough."
+
+msgid "user.register.readerDescription"
+msgstr "Notified by email on publication of a monograph."
+
+msgid "user.register.authorDescription"
+msgstr "Able to submit items to the press."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "Willing to conduct peer review of submissions to the press."
+
+msgid "user.register.reviewerDescription"
+msgstr "Willing to conduct peer review of submissions to the site."
+
+msgid "user.register.reviewerInterests"
+msgstr "Identify reviewing interests (substantive areas and research methods):"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "You must select at least one role"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr "Yes, I agree to have my data collected and stored according to this press's privacy statement."
+
+msgid "site.noPresses"
+msgstr "There are no presses available."
+
+msgid "site.pressView"
+msgstr "View Press Website"
+
+msgid "about.pressContact"
+msgstr "Press Contact"
+
+msgid "about.aboutContext"
+msgstr "About the Press"
+
+msgid "about.editorialTeam"
+msgstr "Editorial Team"
+
+msgid "about.editorialPolicies"
+msgstr "Editorial Policies"
+
+msgid "about.focusAndScope"
+msgstr "Focus and Scope"
+
+msgid "about.seriesPolicies"
+msgstr "Series and Category Policies"
+
+msgid "about.submissions"
+msgstr "Submissions"
+
+msgid "about.onlineSubmissions"
+msgstr "Online Submissions"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Login"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Register"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr "{$login} or {$register} to make a submission."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} or {$viewSubmissions}."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Make a new submission"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "view your pending submissions"
+
+msgid "about.authorGuidelines"
+msgstr "Author Guidelines"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Submission Preparation Checklist"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr "As part of the submission process, authors are required to check off their submission's compliance with all of the following items, and submissions may be returned to authors that do not adhere to these guidelines."
+
+msgid "about.copyrightNotice"
+msgstr "Copyright Notice"
+
+msgid "about.privacyStatement"
+msgstr "Privacy Statement"
+
+msgid "about.reviewPolicy"
+msgstr "Peer Review Process"
+
+msgid "about.publicationFrequency"
+msgstr "Publication Frequency"
+
+msgid "about.openAccessPolicy"
+msgstr "Open Access Policy"
+
+msgid "about.pressSponsorship"
+msgstr "Press Sponsorship"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr "More information about the publishing system, Platform and Workflow by OMP/PKP."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "OMP Editorial and Publishing Process"
+
+msgid "about.aboutSoftware"
+msgstr "About Open Monograph Press"
+
+msgid "about.aboutOMPPress"
+msgstr ""
+"This press uses Open Monograph Press {$ompVersion}, which is open source "
+"press management and publishing software developed, supported, and freely "
+"distributed by the Public Knowledge Project under the GNU General Public "
+"License. Visit PKP's website to learn more "
+"about the software. Please contact the "
+"press directly with questions about the press and submissions to the "
+"press."
+
+msgid "about.aboutOMPSite"
+msgstr ""
+"This press uses Open Monograph Press {$ompVersion}, which is open source "
+"press management and publishing software developed, supported, and freely "
+"distributed by the Public Knowledge Project under the GNU General Public "
+"License. Visit PKP's website to learn more "
+"about the software. Please contact the site directly with questions "
+"about its presses and submissions to its presses."
+
+msgid "help.searchReturnResults"
+msgstr "Return to Search Results"
+
+msgid "help.goToEditPage"
+msgstr "Open a new page to edit this information"
+
+msgid "installer.appInstallation"
+msgstr "OMP Installation"
+
+msgid "installer.ompUpgrade"
+msgstr "OMP Upgrade"
+
+msgid "installer.installApplication"
+msgstr "Install Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr "If you are upgrading an existing installation of OMP, click here to proceed."
+
+msgid "installer.installationInstructions"
+msgstr ""
+"Thank you for downloading the Public Knowledge Project's Open "
+"Monograph Press {$version}. Before proceeding, please read the README file included with this "
+"software. For more information about the Public Knowledge Project and its "
+"software projects, please visit the PKP web site. If you have bug reports or technical support "
+"inquiries about Open Monograph Press, see the support forum or visit "
+"PKP's online bug reporting system. Although the support forum is the "
+"preferred method of contact, you can also email the team at pkp.contact@gmail.com.
"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Pre-Installation Steps"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. The following files and directories (and their contents) must be made writable:
\n"
+"\n"
+"\t- config.inc.php is writable (optional): {$writable_config}
\n"
+"\t- public/ is writable: {$writable_public}
\n"
+"\t- cache/ is writable: {$writable_cache}
\n"
+"\t- cache/t_cache/ is writable: {$writable_templates_cache}
\n"
+"\t- cache/t_compile/ is writable: {$writable_templates_compile}
\n"
+"\t- cache/_db is writable: {$writable_db_cache}
\n"
+"
\n"
+"\n"
+"2. A directory to store uploaded files must be created and made writable (see \"File Settings\" below).
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"OMP Version {$version}
\n"
+"\n"
+"Thank you for downloading the Public Knowledge Project's Open "
+"Monograph Press. Before proceeding, please read the README and UPGRADE files included with this software. For more information "
+"about the Public Knowledge Project and its software projects, please visit "
+"the PKP web site. If "
+"you have bug reports or technical support inquiries about Open Monograph "
+"Press, see the "
+"support forum or visit PKP's online bug reporting system. Although the "
+"support forum is the preferred method of contact, you can also email the "
+"team at pkp.contact@gmail.com.
\n"
+"It is strongly recommended that you back up your "
+"database, files directory, and OMP installation directory before "
+"proceeding.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"For complete Unicode support PHP must be compiled with support for the mbstring library "
+"(enabled by default in most recent PHP installations). You may experience "
+"problems using extended character sets if your server does not meet these "
+"requirements.\n"
+"
\n"
+"Your server currently supports mbstring: {$supportsMBString}"
+
+msgid "installer.allowFileUploads"
+msgstr "Your server currently allows file uploads: {$allowFileUploads}"
+
+msgid "installer.maxFileUploadSize"
+msgstr "Your server currently allows a maximum file upload size of: {$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr "The primary language to use for this system. Please consult the OMP documentation if you are interested in support for languages not listed here."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr "Select any additional languages to support in this system. These languages will be available for use by presses hosted on the site. Additional languages can also be installed at any time from the site administration interface. Locales marked * may be incomplete."
+
+msgid "installer.filesDirInstructions"
+msgstr "Enter full pathname to an existing directory where uploaded files are to be kept. This directory should not be directly web-accessible. Please ensure that this directory exists and is writable prior to installation. Windows path names should use forward slashes, e.g. \"C:/mypress/files\"."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr "OMP requires access to a SQL database to store its data. See the system requirements above for a list of supported databases. In the fields below, provide the settings to be used to connect to the database."
+
+msgid "installer.upgradeApplication"
+msgstr "Upgrade Open Monograph Press"
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"IMPORTANT!
\n"
+"The installer could not automatically overwrite the configuration file. Before attempting to use the system, please open config.inc.php in a suitable text editor and replace its contents with the contents of the text field below.
"
+
+msgid "installer.installationComplete"
+msgstr ""
+"Installation of OMP has completed successfully.
\n"
+"To begin using the system, login with the "
+"username and password entered on the previous page.
\n"
+"Visit our community forum or "
+"sign up to our developer newsletter "
+"to receive security notices, and updates on upcoming releases, new plugins, and planned features.
"
+
+msgid "installer.upgradeComplete"
+msgstr ""
+"Upgrade of OMP to version {$version} has completed successfully.
\n"
+"Don't forget to set the \"installed\" setting in your "
+"config.inc.php configuration file back to On.
\n"
+"Visit our community forum or "
+"sign up to our developer newsletter "
+"to receive security notices, and updates on upcoming releases, new plugins, and planned features.
"
+
+msgid "log.review.reviewDueDateSet"
+msgstr "The due date for the round {$round} review of submission {$submissionId} by {$reviewerName} has been set to {$dueDate}."
+
+msgid "log.review.reviewDeclined"
+msgstr "{$reviewerName} has declined the round {$round} review for submission {$submissionId}."
+
+msgid "log.review.reviewAccepted"
+msgstr "{$reviewerName} has accepted the round {$round} review for submission {$submissionId}."
+
+msgid "log.review.reviewUnconsidered"
+msgstr "{$editorName} has marked the round {$round} review for submission {$submissionId} as unconsidered."
+
+msgid "log.editor.decision"
+msgstr "An editor decision ({$decision}) for monograph {$submissionId} was recorded by {$editorName}."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"An editor recommendation ({$decision}) for monograph {$submissionId} was "
+"recorded by {$editorName}."
+
+msgid "log.editor.archived"
+msgstr "The submission {$submissionId} has been archived."
+
+msgid "log.editor.restored"
+msgstr "The submission {$submissionId} has been restored to the queue."
+
+msgid "log.editor.editorAssigned"
+msgstr "{$editorName} has been assigned as editor to submission {$submissionId}."
+
+msgid "log.proofread.assign"
+msgstr "{$assignerName} has assigned {$proofreaderName} to proofread submission {$submissionId}."
+
+msgid "log.proofread.complete"
+msgstr "{$proofreaderName} has submitted {$submissionId} for scheduling."
+
+msgid "log.imported"
+msgstr "{$userName} has imported monograph {$submissionId}."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Identification Code added."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Identification Code edited."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Identification Code removed."
+
+msgid "notification.addedPublicationDate"
+msgstr "Publication Date added."
+
+msgid "notification.editedPublicationDate"
+msgstr "Publication Date edited."
+
+msgid "notification.removedPublicationDate"
+msgstr "Publication Date removed."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Publication Format added."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Publication Format edited."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Publication Format removed."
+
+msgid "notification.addedSalesRights"
+msgstr "Sales Rights added."
+
+msgid "notification.editedSalesRights"
+msgstr "Sales Rights edited."
+
+msgid "notification.removedSalesRights"
+msgstr "Sales Rights removed."
+
+msgid "notification.addedRepresentative"
+msgstr "Representative added."
+
+msgid "notification.editedRepresentative"
+msgstr "Representative edited."
+
+msgid "notification.removedRepresentative"
+msgstr "Representative removed."
+
+msgid "notification.addedMarket"
+msgstr "Market added."
+
+msgid "notification.editedMarket"
+msgstr "Market edited."
+
+msgid "notification.removedMarket"
+msgstr "Market removed."
+
+msgid "notification.addedSpotlight"
+msgstr "Spotlight added."
+
+msgid "notification.editedSpotlight"
+msgstr "Spotlight edited."
+
+msgid "notification.removedSpotlight"
+msgstr "Spotlight removed."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Catalog metadata saved."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Publication format metadata saved."
+
+msgid "notification.proofsApproved"
+msgstr "Proofs approved."
+
+msgid "notification.removedSubmission"
+msgstr "Submission deleted."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "A new monograph, \"{$title},\" has been submitted."
+
+msgid "notification.type.editing"
+msgstr "Editing Events"
+
+msgid "notification.type.reviewing"
+msgstr "Reviewing Events"
+
+msgid "notification.type.site"
+msgstr "Site Events"
+
+msgid "notification.type.submissions"
+msgstr "Submission Events"
+
+msgid "notification.type.userComment"
+msgstr "A reader has made a comment on \"{$title}\"."
+
+msgid "notification.type.public"
+msgstr "Public Announcements"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr "A new monograph has been submitted to which an editor needs to be assigned."
+
+msgid "notification.type.copyeditorRequest"
+msgstr "You have been asked to review copyedits for \"{$file}\"."
+
+msgid "notification.type.layouteditorRequest"
+msgstr "You have been asked to review layouts for \"{$title}\"."
+
+msgid "notification.type.indexRequest"
+msgstr "You have been asked to create an index for \"{$title}\"."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Internal review process started."
+
+msgid "notification.type.approveSubmission"
+msgstr "This submission is currently awaiting approval in the Catalog Entry tool before it will appear in the public catalog."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "Awaiting approval."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr "The monograph will not be listed in the catalog until it has been published. To add this book to the catalog, click on the Publication tab."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "No payment method configured."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr "A configured payment method is required before you can define e-commerce settings."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Catalog Management"
+
+msgid "notification.type.visitCatalog"
+msgstr "The monograph has been approved. Please visit Marketing and Publication to manage its catalog details, using the links just above."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr "You have been denied access because you do not seem to be a valid reviewer for this monograph."
+
+msgid "user.authorization.monographAuthor"
+msgstr "You have been denied access because you do not seem to be the author of this monograph."
+
+msgid "user.authorization.monographReviewer"
+msgstr "You have been denied access because you do not seem to be an assigned reviewer of this monograph."
+
+msgid "user.authorization.monographFile"
+msgstr "You have been denied access to the specified monograph file."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "Invalid monograph or no monograph requested!"
+
+msgid "user.authorization.noContext"
+msgstr "No press was found that matched your request."
+
+msgid "user.authorization.seriesAssignment"
+msgstr "You are trying to access a monograph that is not part of your series."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr "Access denied! You have not been assigned to this workflow stage."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr "Access denied! The user group you are currently acting under has not been assigned to this workflow stage. Please check your press settings."
+
+msgid "payment.directSales"
+msgstr "Download From Press Website"
+
+msgid "payment.directSales.price"
+msgstr "Price"
+
+msgid "payment.directSales.availability"
+msgstr "Availability"
+
+msgid "payment.directSales.catalog"
+msgstr "Catalog"
+
+msgid "payment.directSales.approved"
+msgstr "Approved"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Price ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr "Prices should be numeric only. Do not include currency symbols."
+
+msgid "payment.directSales.directSales"
+msgstr "Direct Sales"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Not Available"
+
+msgid "payment.directSales.notSet"
+msgstr "Not Set"
+
+msgid "payment.directSales.openAccess"
+msgstr "Open Access"
+
+msgid "payment.directSales.price.description"
+msgstr "File formats can be made available for downloading from the press website through open access at no cost to readers or direct sales (using an online payment processor, as configured in Distribution). For this file indicate the basis of access."
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "A valid numeric price is required."
+
+msgid "payment.directSales.purchase"
+msgstr "Purchase {$format} ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Download {$format}"
+
+msgid "payment.directSales.monograph.name"
+msgstr "Purchase Monograph or Chapter Download"
+
+msgid "payment.directSales.monograph.description"
+msgstr "This transaction is for the purchase of a direct download of a single monograph or monograph chapter."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr "Reloaded XML help mapping file {$filename} in search of {$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Book"
+
+msgid "submission.pdf.download"
+msgstr "Download this PDF file"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Register with other presses"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "Hide other presses"
+
+msgid "submission.round"
+msgstr "Round {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "An invalid published submission was specified."
+
+msgid "catalog.coverImageTitle"
+msgstr "Cover Image"
+
+msgid "grid.catalogEntry.chapters"
+msgstr "Chapters"
+
+msgid "search.results.orderBy.article"
+msgstr "Article Title"
+
+msgid "search.results.orderBy.author"
+msgstr "Author"
+
+msgid "search.results.orderBy.date"
+msgstr "Publication Date"
+
+msgid "search.results.orderBy.monograph"
+msgstr "Monograph Title"
+
+msgid "search.results.orderBy.press"
+msgstr "Press Title"
+
+msgid "search.results.orderBy.popularityAll"
+msgstr "Popularity (All Time)"
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr "Popularity (Last Month)"
+
+msgid "search.results.orderBy.relevance"
+msgstr "Relevance"
+
+msgid "search.results.orderDir.asc"
+msgstr "Ascending"
+
+msgid "search.results.orderDir.desc"
+msgstr "Descending"
+
+msgid "section.section"
+msgstr "Series"
+
+msgid "search.cli.rebuildIndex.indexing"
+msgstr "Indexing \"{$pressName}\""
+
+msgid "search.cli.rebuildIndex.indexingByPressNotSupported"
+msgstr "This search implementation does not allow per-press re-indexing."
+
+msgid "search.cli.rebuildIndex.unknownPress"
+msgstr "The given press path \"{$pressPath}\" could not be resolved to a press."
diff --git a/locale/en/manager.po b/locale/en/manager.po
new file mode 100644
index 00000000000..83300b3f6c6
--- /dev/null
+++ b/locale/en/manager.po
@@ -0,0 +1,1434 @@
+# cicilia conceiçao de maria , 2021.
+# Petro Bilous , 2022.
+# Jonas Raoni Soares da Silva , 2022.
+# Marc Bria , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2023-04-26 17:49+0000\n"
+"Last-Translator: Marc Bria \n"
+"Language-Team: English "
+"\n"
+"Language: en\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 "manager.language.confirmDefaultSettingsOverwrite"
+msgstr "This will replace any locale-specific press settings you had for this locale"
+
+msgid "manager.languages.noneAvailable"
+msgstr "Sorry, no additional languages are available. Contact your site administrator if you wish to use additional languages with this press."
+
+msgid "manager.languages.primaryLocaleInstructions"
+msgstr "This will be the default language for the press site."
+
+msgid "manager.series.form.mustAllowPermission"
+msgstr "Please ensure that at least one checkbox is checked for each Series Editor assignment."
+
+msgid "manager.series.form.reviewFormId"
+msgstr "Please ensure that you have chosen a valid review form."
+
+msgid "manager.series.submissionIndexing"
+msgstr "Will not be included in the indexing of the press"
+
+msgid "manager.series.editorRestriction"
+msgstr "Items can only be submitted by Editors and Series Editors."
+
+msgid "manager.series.confirmDelete"
+msgstr "Are you sure you want to permanently delete this series?"
+
+msgid "manager.series.indexed"
+msgstr "Indexed"
+
+msgid "manager.series.open"
+msgstr "Open Submissions"
+
+msgid "manager.series.readingTools"
+msgstr "Reading Tools"
+
+msgid "manager.series.submissionReview"
+msgstr "Will not be peer-reviewed"
+
+msgid "manager.series.submissionsToThisSection"
+msgstr "Submissions made to this series"
+
+msgid "manager.series.abstractsNotRequired"
+msgstr "Do not require abstracts"
+
+msgid "manager.series.disableComments"
+msgstr "Disable reader comments for this series."
+
+msgid "manager.series.book"
+msgstr "Book Series"
+
+msgid "manager.series.create"
+msgstr "Create Series"
+
+msgid "manager.series.policy"
+msgstr "Series description"
+
+msgid "manager.series.assigned"
+msgstr "Editors for this Series"
+
+msgid "manager.series.seriesEditorInstructions"
+msgstr "Add a Series Editor to this series from the available Series Editors. Once added, designate whether the Series Editor will oversee the REVIEW (peer review) and/or the EDITING (copyediting, layout and proofreading) of submissions to this series. Series Editors are created by clicking Series Editors under Roles in Press Management."
+
+msgid "manager.series.hideAbout"
+msgstr "Omit this series from About the Press."
+
+msgid "manager.series.unassigned"
+msgstr "Available Series Editors"
+
+msgid "manager.series.form.abbrevRequired"
+msgstr "An abbreviated title is required for the series."
+
+msgid "manager.series.form.titleRequired"
+msgstr "A title is required for the series."
+
+msgid "manager.series.noneCreated"
+msgstr "No series have been created."
+
+msgid "manager.series.existingUsers"
+msgstr "Existing users"
+
+msgid "manager.series.seriesTitle"
+msgstr "Series Title"
+
+msgid "manager.series.restricted"
+msgstr "Don't allow authors to submit directly to this series."
+
+msgid "manager.sections.alertDelete"
+msgstr "Before this series can be deleted, you must move associated submissions with this series to other series."
+
+msgid "manager.payment.generalOptions"
+msgstr "General Options"
+
+msgid "manager.payment.options.enablePayments"
+msgstr "Payments will be enabled for this press. Note that users will be required to log in to make payments."
+
+msgid "manager.payment.success"
+msgstr "The payment settings have been updated."
+
+msgid "manager.settings"
+msgstr "Settings"
+
+msgid "manager.settings.pressSettings"
+msgstr "Press Settings"
+
+msgid "manager.settings.press"
+msgstr "Press"
+
+msgid "manager.settings.publisher.identity"
+msgstr "Publisher Identity"
+
+msgid "manager.settings.publisher.identity.description"
+msgstr "These fields are required to publish valid ONIX metadata."
+
+msgid "manager.settings.publisher"
+msgstr "Press Publisher Name"
+
+msgid "manager.settings.location"
+msgstr "Geographical Location"
+
+msgid "manager.settings.publisherCode"
+msgstr "Publisher Code"
+
+msgid "manager.settings.publisherCodeType"
+msgstr "Publisher Code Type"
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr "This is not a valid Publisher Code Type."
+
+msgid "manager.settings.distributionDescription"
+msgstr "All settings specific to the distribution process (notification, indexing, archiving, payment, reading tools)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr "Monograph file downloads"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr "Monograph abstract page views"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr "Monograph abstract and downloads"
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr "Series main page views"
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr "Press main page views"
+
+msgid "manager.tools"
+msgstr "Tools"
+
+msgid "manager.tools.importExport"
+msgstr "All tools specific to importing and exporting data (presses, monographs, users)"
+
+msgid "manager.tools.statistics"
+msgstr "Tools to generate reports related to usage statistics (catalog index page view, monograph abstract page views, monograph file downloads)"
+
+msgid "manager.users.availableRoles"
+msgstr "Available Roles"
+
+msgid "manager.users.currentRoles"
+msgstr "Current Roles"
+
+msgid "manager.users.selectRole"
+msgstr "Select Role"
+
+msgid "manager.people.allEnrolledUsers"
+msgstr "Users Enrolled in this Press"
+
+msgid "manager.people.allPresses"
+msgstr "All Presses"
+
+msgid "manager.people.allSiteUsers"
+msgstr "Enroll a User from this Site in this Press"
+
+msgid "manager.people.allUsers"
+msgstr "All Enrolled Users"
+
+msgid "manager.people.confirmRemove"
+msgstr "Remove this user from this press? This action will unenroll the user from all roles within this press."
+
+msgid "manager.people.enrollExistingUser"
+msgstr "Enroll an Existing User"
+
+msgid "manager.people.enrollSyncPress"
+msgstr "With press"
+
+msgid "manager.people.mergeUsers.from.description"
+msgstr "Select a user to merge into another user account (e.g., when someone has two user accounts). The account selected first will be deleted and its submissions, assignments, etc. will be attributed to the second account."
+
+msgid "manager.people.mergeUsers.into.description"
+msgstr "Select a user to whom to attribute the previous user's authorships, editing assignments, etc."
+
+msgid "manager.people.syncUserDescription"
+msgstr "Enrollment synchronization will enroll all users enrolled in the specified role in the specified press into the same role in this press. This function allows a common set of users (e.g., Reviewers) to be synchronized between presses."
+
+msgid "manager.people.confirmDisable"
+msgstr ""
+"Disable this user? This will prevent the user from logging into the system.\n"
+"\n"
+"You may optionally provide the user with a reason for disabling their account."
+
+msgid "manager.people.noAdministrativeRights"
+msgstr ""
+"Sorry, you do not have administrative rights over this user. This may be because:\n"
+"\t\t\n"
+"\t\t\t- The user is a site administrator
\n"
+"\t\t\t- The user is active in presses you do not manage
\n"
+"\t\t
\n"
+"\tThis task must be performed by a site administrator.\n"
+"\t"
+
+msgid "manager.system"
+msgstr "System Settings"
+
+msgid "manager.system.archiving"
+msgstr "Archiving"
+
+msgid "manager.system.reviewForms"
+msgstr "Review Forms"
+
+msgid "manager.system.readingTools"
+msgstr "Reading Tools"
+
+msgid "manager.system.payments"
+msgstr "Payments"
+
+msgid "user.authorization.pluginLevel"
+msgstr "You do not have sufficient privileges to manage this plugin."
+
+msgid "manager.pressManagement"
+msgstr "Press Management"
+
+msgid "manager.setup"
+msgstr "Setup"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Content"
+
+msgid "manager.setup.addAboutItem"
+msgstr "Add About Item"
+
+msgid "manager.setup.addChecklistItem"
+msgstr "Add Checklist Item"
+
+msgid "manager.setup.addItem"
+msgstr "Add Item"
+
+msgid "manager.setup.addItemtoAboutPress"
+msgstr "Add Item to Appear in \"About the Press\""
+
+msgid "manager.setup.addNavItem"
+msgstr "Add Item"
+
+msgid "manager.setup.addSponsor"
+msgstr "Add Sponsoring Organization"
+
+msgid "manager.setup.announcements"
+msgstr "Announcements"
+
+msgid "manager.setup.announcements.success"
+msgstr "The announcements settings have been updated."
+
+msgid "manager.setup.announcementsDescription"
+msgstr "Announcements may be published to inform readers of press news and events. Published announcements will appear on the Announcements page."
+
+msgid "manager.setup.announcementsIntroduction"
+msgstr "Additional Information"
+
+msgid "manager.setup.announcementsIntroduction.description"
+msgstr "Enter any additional information that should be displayed to readers on the Announcements page."
+
+msgid "manager.setup.appearInAboutPress"
+msgstr "(To appear in About the Press) "
+
+msgid "manager.setup.contextAbout"
+msgstr "About the Press"
+
+msgid "manager.setup.contextAbout.description"
+msgstr ""
+"Include any information about your press which may be of interest to "
+"readers, authors or reviewers. This could include your open access policy, "
+"the focus and scope of the press, sponsorship disclosure, and the history of "
+"the press."
+
+msgid "manager.setup.contextSummary"
+msgstr "Press Summary"
+
+msgid "manager.setup.copyediting"
+msgstr "Copyeditors"
+
+msgid "manager.setup.copyeditInstructions"
+msgstr "Copyedit Instructions"
+
+msgid "manager.setup.copyeditInstructionsDescription"
+msgstr "The Copyedit Instructions will be made available to Copyeditors, Authors, and Section Editors in the Submission Editing stage. Below is a default set of instructions in HTML, which can be modified or replaced by the Press Manager at any point (in HTML or plain text)."
+
+msgid "manager.setup.copyrightNotice"
+msgstr "Copyright notice"
+
+msgid "manager.setup.coverage"
+msgstr "Coverage"
+
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr "Cover Image Max Height"
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr "Cover Image Max Width"
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr "Images will be reduced when larger than this size but will never be blown up or stretched to fit these dimensions."
+
+msgid "manager.setup.customizingTheLook"
+msgstr "Step 5. Customizing the Look & Feel"
+
+msgid "manager.setup.customTags"
+msgstr "Custom tags"
+
+msgid "manager.setup.customTagsDescription"
+msgstr "Custom HTML header tags to be inserted in the header of every page (e.g., META tags)."
+
+msgid "manager.setup.details"
+msgstr "Details"
+
+msgid "manager.setup.details.description"
+msgstr "Name of press, contacts, sponsors, and search engines."
+
+msgid "manager.setup.disableUserRegistration"
+msgstr "The Press Manager will register all user accounts. Editors or Section Editors may register user accounts for reviewers."
+
+msgid "manager.setup.discipline"
+msgstr "Academic Discipline and Sub-Disciplines"
+
+msgid "manager.setup.disciplineDescription"
+msgstr "Useful when press crosses disciplinary boundaries and/or authors submit multidisciplinary items."
+
+msgid "manager.setup.disciplineExamples"
+msgstr "(E.g., History; Education; Sociology; Psychology; Cultural Studies; Law)"
+
+msgid "manager.setup.disciplineProvideExamples"
+msgstr "Provide examples of relevant academic disciplines for this press"
+
+msgid "manager.setup.displayCurrentMonograph"
+msgstr "Add the table of contents for the current monograph (if available)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr "Homepage Content"
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr "Display featured books on the home page"
+
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr "Featured Books"
+
+msgid "manager.setup.displayInSpotlight"
+msgstr "Display books in the spotlight on the home page"
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr "Spotlight"
+
+msgid "manager.setup.displayNewReleases"
+msgstr "Display new releases on the home page"
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr "New Releases"
+
+msgid "manager.setup.enableDois.description"
+msgstr "Allow Digital Object Identifiers (DOIs) to be assigned to work published by this press."
+
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr "Select the types of work published by this press that should be assigned DOIs. Most presses assign DOIs to monographs/chapters, but you may wish to assign DOIs to all of the published items."
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr "Use default patterns.
%p.%m for monographs
%p.%m.c%c for chapters
%p.%m.%f for publication formats
%p.%m.%f.%s for files."
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr "Upon reaching the copyediting stage"
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr "Format / {$format}"
+
+msgid "manager.setup.editorDecision"
+msgstr "Editor Decision"
+
+msgid "manager.setup.emailBounceAddress"
+msgstr "Bounce Address"
+
+msgid "manager.setup.emailBounceAddress.description"
+msgstr "Any undeliverable emails will result in an error message to this address."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr "In order to send undeliverable emails to a bounce address, the site administrator must enable the allow_envelope_sender
option in the site configuration file. Server configuration may be required, as indicated in the OMP documentation."
+
+msgid "manager.setup.emails"
+msgstr "Email Identification"
+
+msgid "manager.setup.emailSignature"
+msgstr "Signature"
+
+msgid "manager.setup.emailSignature.description"
+msgstr "Emails sent automatically on behalf of the press will have the following signature added."
+
+msgid "manager.setup.enableAnnouncements.enable"
+msgstr "Enable announcements"
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr "Announcements may be published to inform readers of news and events. Published announcements will appear on the Announcements page."
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr "Display on Homepage"
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr "How many announcements to display on the homepage. Leave this empty to display none."
+
+msgid "manager.setup.enablePressInstructions"
+msgstr "Enable this press to appear publicly on the site"
+
+msgid "manager.setup.enablePublicMonographId"
+msgstr "Custom identifiers will be used to identify published items."
+
+msgid "manager.setup.enablePublicGalleyId"
+msgstr "Custom identifiers will be used to identify galleys (e.g. HTML or PDF files) for published items."
+
+msgid "manager.setup.enableUserRegistration"
+msgstr "Visitors can register a user account with the press."
+
+msgid "manager.setup.focusAndScope"
+msgstr "Focus and Scope of Press"
+
+msgid "manager.setup.focusAndScope.description"
+msgstr "Describe to authors, readers, and librarians the range of monographs and other items the press will publish."
+
+msgid "manager.setup.focusScope"
+msgstr "Focus and Scope"
+
+msgid "manager.setup.focusScopeDescription"
+msgstr "EXAMPLE HTML DATA"
+
+msgid "manager.setup.forAuthorsToIndexTheirWork"
+msgstr "For Authors to Index Their Work"
+
+msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
+msgstr ""
+"OMP adheres to the Open Archives Initiative Protocol for Metadata Harvesting, which is the "
+"emerging standard for providing well-indexed access to electronic research "
+"resources on a global scale. The authors will use a similar template to "
+"provide metadata for their submission. The Press Manager should select the "
+"categories for indexing and present authors with relevant examples to assist "
+"them in indexing their work, separating terms with a semi-colon (e.g., term1;"
+" term2). The entries should be introduced as examples by using \"E.g.,\" or "
+"\"For example,\"."
+
+msgid "manager.setup.form.contactEmailRequired"
+msgstr "The primary contact email is required."
+
+msgid "manager.setup.form.contactNameRequired"
+msgstr "The primary contact name is required."
+
+msgid "manager.setup.form.numReviewersPerSubmission"
+msgstr "The number of reviewers per submission is required."
+
+msgid "manager.setup.form.supportEmailRequired"
+msgstr "The support email is required."
+
+msgid "manager.setup.form.supportNameRequired"
+msgstr "The support name is required."
+
+msgid "manager.setup.generalInformation"
+msgstr "General Information"
+
+msgid "manager.setup.gettingDownTheDetails"
+msgstr "Step 1. Getting Down the Details"
+
+msgid "manager.setup.guidelines"
+msgstr "Guidelines"
+
+msgid "manager.setup.preparingWorkflow"
+msgstr "Step 3. Preparing the workflow"
+
+msgid "manager.setup.identity"
+msgstr "Press Identity"
+
+msgid "manager.setup.information"
+msgstr "Information"
+
+msgid "manager.setup.information.description"
+msgstr "Brief descriptions of the press for librarians and prospective authors and readers. These are made available in the site's sidebar when the Information block has been added."
+
+msgid "manager.setup.information.forAuthors"
+msgstr "For Authors"
+
+msgid "manager.setup.information.forLibrarians"
+msgstr "For Librarians"
+
+msgid "manager.setup.information.forReaders"
+msgstr "For Readers"
+
+msgid "manager.setup.information.success"
+msgstr "The information for this press was updated."
+
+msgid "manager.setup.institution"
+msgstr "Institution"
+
+msgid "manager.setup.itemsPerPage"
+msgstr "Items per page"
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr "Limit the number of items (for example, submissions, users, or editing assignments) to show in a list before showing subsequent items in another page."
+
+msgid "manager.setup.keyInfo"
+msgstr "Key Information"
+
+msgid "manager.setup.keyInfo.description"
+msgstr "Provide a short description of your press and identify editors, managing directors and other members of your editorial team."
+
+msgid "manager.setup.labelName"
+msgstr "Label Name"
+
+msgid "manager.setup.layoutAndGalleys"
+msgstr "Layout Editors"
+
+msgid "manager.setup.layoutInstructions"
+msgstr "Layout Instructions"
+
+msgid "manager.setup.layoutInstructionsDescription"
+msgstr "Layout Instructions can be prepared for the formatting of publishing items in the press and be entered below in HTML or plain text. They will be made available to the Layout Editor and Section Editor on the Editing page of each submission. (As each press may employ its own file formats, bibliographic standards, style sheets, etc., a default set of instructions is not provided.)"
+
+msgid "manager.setup.layoutTemplates"
+msgstr "Layout Templates"
+
+msgid "manager.setup.layoutTemplatesDescription"
+msgstr "Templates can be uploaded to appear in Layout for each of the standard formats published in the press (e.g., monograph, book review, etc.) using any file format (e.g., pdf, doc, etc.) with annotations added specifying font, size, margins, etc. to serve as a guide for Layout Editors and Proofreaders."
+
+msgid "manager.setup.layoutTemplates.file"
+msgstr "Template File"
+
+msgid "manager.setup.layoutTemplates.title"
+msgstr "Title"
+
+msgid "manager.setup.lists"
+msgstr "Lists"
+
+msgid "manager.setup.lists.success"
+msgstr "The list settings have been updated."
+
+msgid "manager.setup.look"
+msgstr "Look & Feel"
+
+msgid "manager.setup.look.description"
+msgstr "Homepage header, content, press header, footer, navigation bar, and style sheet."
+
+msgid "manager.setup.settings"
+msgstr "Settings"
+
+msgid "manager.setup.management.description"
+msgstr "Access and security, scheduling, announcements, copyediting, layout, and proofreading."
+
+msgid "manager.setup.managementOfBasicEditorialSteps"
+msgstr "Management of Basic Editorial Steps"
+
+msgid "manager.setup.managingPublishingSetup"
+msgstr "Management and Publishing Setup"
+
+msgid "manager.setup.managingThePress"
+msgstr "Step 4. Managing the Settings"
+
+msgid "manager.setup.masthead.success"
+msgstr "The masthead details for this press have been updated."
+
+msgid "manager.setup.noImageFileUploaded"
+msgstr "No image file uploaded."
+
+msgid "manager.setup.noStyleSheetUploaded"
+msgstr "No style sheet uploaded."
+
+msgid "manager.setup.note"
+msgstr "Note"
+
+msgid "manager.setup.notifyAllAuthorsOnDecision"
+msgstr "When using the Notify Author email, include the email addresses of all co-authors for multiple-author submissions, and not just the submitting user."
+
+msgid "manager.setup.noUseCopyeditors"
+msgstr "Copyediting will be undertaken by an Editor or Section Editor assigned to the submission."
+
+msgid "manager.setup.noUseLayoutEditors"
+msgstr "An Editor or Section Editor assigned to the submission will prepare the HTML, PDF, etc., files."
+
+msgid "manager.setup.noUseProofreaders"
+msgstr "An Editor or Section Editor assigned to the submission will check the galleys."
+
+msgid "manager.setup.numPageLinks"
+msgstr "Page links"
+
+msgid "manager.setup.numPageLinks.description"
+msgstr "Limit the number of links to display to subsequent pages in a list."
+
+msgid "manager.setup.onlineAccessManagement"
+msgstr "Access to Press Content"
+
+msgid "manager.setup.onlineIssn"
+msgstr "Online ISSN"
+
+msgid "manager.setup.policies"
+msgstr "Policies"
+
+msgid "manager.setup.policies.description"
+msgstr "Focus, peer review, sections, privacy, security, and additional about items."
+
+msgid "manager.setup.privacyStatement.success"
+msgstr "The privacy statement has been updated."
+
+msgid "manager.setup.appearanceDescription"
+msgstr "Various components of the press appearance can be configured from this page, including header and footer elements, the press style and theme, and how lists of information are presented to users."
+
+msgid "manager.setup.pressDescription"
+msgstr "Press Summary"
+
+msgid "manager.setup.pressDescription.description"
+msgstr "A brief description of your press."
+
+msgid "manager.setup.aboutPress"
+msgstr "About the Press"
+
+msgid "manager.setup.aboutPress.description"
+msgstr "Include any information about your press which may be of interest to readers, authors or reviewers. This could include your open access policy, the focus and scope of the press, copyright notice, sponsorship disclosure, history of the press, and a privacy statement."
+
+msgid "manager.setup.pressArchiving"
+msgstr "Press Archiving"
+
+msgid "manager.setup.homepageContent"
+msgstr "Press Homepage Content"
+
+msgid "manager.setup.homepageContentDescription"
+msgstr "The press homepage consists of navigation links by default. Additional homepage content can be appended by using one or all of the following options, which will appear in the order shown."
+
+msgid "manager.setup.pressHomepageContent"
+msgstr "Press Homepage Content"
+
+msgid "manager.setup.pressHomepageContentDescription"
+msgstr "The press homepage consists of navigation links by default. Additional homepage content can be appended by using one or all of the following options, which will appear in the order shown."
+
+msgid "manager.setup.contextInitials"
+msgstr "Press Initials"
+
+msgid "manager.setup.selectCountry"
+msgstr "Select the country where this press is located, or the country of the mailing address for the press or publisher."
+
+msgid "manager.setup.layout"
+msgstr "Press Layout"
+
+msgid "manager.setup.pageHeader"
+msgstr "Press Page Header"
+
+#, fuzzy
+msgid "manager.setup.pageHeaderDescription"
+msgstr "Page Header Description"
+
+msgid "manager.setup.pressPolicies"
+msgstr "Step 2. Press Policies"
+
+msgid "manager.setup.pressSetup"
+msgstr "Press Setup"
+
+msgid "manager.setup.pressSetupUpdated"
+msgstr "Your press setup has been updated."
+
+msgid "manager.setup.styleSheetInvalid"
+msgstr "Invalid style sheet format. Accepted format is .css."
+
+msgid "manager.setup.pressTheme"
+msgstr "Press Theme"
+
+msgid "manager.setup.pressThumbnail"
+msgstr "Press thumbnail"
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr "A small logo or representation of the press that can be used in lists of presses."
+
+msgid "manager.setup.contextTitle"
+msgstr "Press Name"
+
+msgid "manager.setup.printIssn"
+msgstr "Print ISSN"
+
+msgid "manager.setup.proofingInstructions"
+msgstr "Proofing Instructions"
+
+msgid "manager.setup.proofingInstructionsDescription"
+msgstr "The Proofreading Instructions will be made available to Proofreaders, Authors, Layout Editors, and Section Editors in the Submission Editing stage. Below is a default set of instructions in HTML, which can be edited or replaced by the Press Manager at any point (in HTML or plain text)."
+
+msgid "manager.setup.proofreading"
+msgstr "Proofreaders"
+
+msgid "manager.setup.provideRefLinkInstructions"
+msgstr "Provide Layout Editors with instructions."
+
+msgid "manager.setup.publicationScheduleDescription"
+msgstr "Press items can be published collectively, as part of a monograph with its own Table of Contents. Alternatively, individual items can be published as soon as they are ready, by adding them to the \"current\" volume's Table of Contents. Provide readers, in About the Press, with a statement about the system this press will use and its expected frequency of publication."
+
+msgid "manager.setup.publisher"
+msgstr "Publisher"
+
+msgid "manager.setup.publisherDescription"
+msgstr "The name of the organization publishing the press will appear in About the Press."
+
+msgid "manager.setup.referenceLinking"
+msgstr "Reference Linking"
+
+msgid "manager.setup.refLinkInstructions.description"
+msgstr "Layout Instructions for Reference Linking"
+
+msgid "manager.setup.restrictMonographAccess"
+msgstr "Users must be registered and log in to view open access content."
+
+msgid "manager.setup.restrictSiteAccess"
+msgstr "Users must be registered and log in to view the press site."
+
+msgid "manager.setup.reviewGuidelines"
+msgstr "External Review Guidelines"
+
+msgid "manager.setup.reviewGuidelinesDescription"
+msgstr "Provide external reviewers with criteria for judging a submission's suitability for publication in the press, which may include instructions for preparing an effective and helpful review. Reviewers will have an opportunity to provide comments intended for the author and editor, as well as separate comments only for the editor."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr "Internal Review Guidelines"
+
+msgid "manager.setup.reviewOptions"
+msgstr "Review Options"
+
+msgid "manager.setup.reviewOptions.automatedReminders"
+msgstr "Automated Email Reminders"
+
+msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
+msgstr "To activate these options, the site administrator must enable the scheduled_tasks option in the OMP configuration file. Additional server configuration may be required to support this functionality (which may not be possible on all servers), as indicated in the OMP documentation."
+
+msgid "manager.setup.reviewOptions.onQuality"
+msgstr "Editors will rate reviewers on a five-point quality scale after each review."
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr "Restrict File Access"
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
+msgstr "Reviewers will have access to the submission file only after agreeing to review it."
+
+msgid "manager.setup.reviewOptions.reviewerAccess"
+msgstr "Reviewer Access"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr "One-click Reviewer Access"
+
+#, fuzzy
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
+msgstr "Reviewers can be sent a secure link in the email invitation, which will log them in automatically when they click the link."
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr "Include a secure link in the email invitation to reviewers."
+
+msgid "manager.setup.reviewOptions.reviewerRatings"
+msgstr "Reviewer Ratings"
+
+msgid "manager.setup.reviewOptions.reviewerReminders"
+msgstr "Reviewer Reminders"
+
+msgid "manager.setup.reviewPolicy"
+msgstr "Review Policy"
+
+msgid "manager.setup.searchDescription.description"
+msgstr "Provide a brief description (50-300 characters) of the press which search engines can display when listing the press in search results."
+
+msgid "manager.setup.searchEngineIndexing"
+msgstr "Search Indexing"
+
+msgid "manager.setup.searchEngineIndexing.description"
+msgstr "Help search engines like Google discover and display your site. You are encouraged to submit your sitemap."
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr "The search engine index settings have been updated."
+
+msgid "manager.setup.sectionsAndSectionEditors"
+msgstr "Sections and Section Editors"
+
+msgid "manager.setup.sectionsDefaultSectionDescription"
+msgstr "(If sections are not added, then items are submitted to the Monographs section by default.)"
+
+#, fuzzy
+msgid "manager.setup.sectionsDescription"
+msgstr ""
+"To create or modify sections for the press (e.g., Monographs, Book Reviews, "
+"etc.), go to Section Management.
Authors on submitting items to "
+"the press will designate…"
+
+msgid "manager.setup.securitySettings"
+msgstr "Access and Security Settings"
+
+msgid "manager.setup.securitySettings.note"
+msgstr "Other security- and access-related options can be configured from the Access and Security page."
+
+msgid "manager.setup.selectEditorDescription"
+msgstr "The press editor who will see it through the editorial process."
+
+msgid "manager.setup.selectSectionDescription"
+msgstr "The press series for which the item will be considered."
+
+msgid "manager.setup.showGalleyLinksDescription"
+msgstr "Always show galley links and indicate restricted access."
+
+msgid "manager.setup.siteAccess.view"
+msgstr "Site Access"
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr "View Monograph Content"
+
+msgid "manager.setup.stepsToPressSite"
+msgstr "Five Steps to a Press Web Site"
+
+msgid "manager.setup.subjectExamples"
+msgstr "(E.g., Photosynthesis; Black Holes; Four-Color Map Problem; Bayesian Theory)"
+
+msgid "manager.setup.subjectKeywordTopic"
+msgstr "Keywords"
+
+msgid "manager.setup.subjectProvideExamples"
+msgstr "Provide examples of keywords or topics as a guide for authors"
+
+msgid "manager.setup.submissionGuidelines"
+msgstr "Submission guidelines"
+
+msgid "maganer.setup.submissionChecklistItemRequired"
+msgstr "Checklist item is required."
+
+msgid "manager.setup.workflow"
+msgstr "Workflow"
+
+msgid "manager.setup.submissions.description"
+msgstr "Author guidelines, copyright, and indexing (including registration)."
+
+msgid "manager.setup.typeExamples"
+msgstr "(E.g., Historical Inquiry; Quasi-Experimental; Literary Analysis; Survey/Interview)"
+
+msgid "manager.setup.typeMethodApproach"
+msgstr "Type (Method/Approach)"
+
+msgid "manager.setup.typeProvideExamples"
+msgstr "Provide examples of relevant research types, methods, and approaches for this field"
+
+msgid "manager.setup.useCopyeditors"
+msgstr "A Copyeditor will be assigned to work with each submission."
+
+msgid "manager.setup.useEditorialReviewBoard"
+msgstr "An editorial/review board will be used by the press."
+
+msgid "manager.setup.useImageTitle"
+msgstr "Title Image"
+
+msgid "manager.setup.useStyleSheet"
+msgstr "Press style sheet"
+
+msgid "manager.setup.useLayoutEditors"
+msgstr "A Layout Editor will be assigned to prepare the HTML, PDF, etc., files for electronic publication."
+
+msgid "manager.setup.useProofreaders"
+msgstr "A Proofreader will be assigned to check (along with the authors) the galleys prior to publication."
+
+msgid "manager.setup.userRegistration"
+msgstr "User Registration"
+
+msgid "manager.setup.useTextTitle"
+msgstr "Title text"
+
+msgid "manager.setup.volumePerYear"
+msgstr "Volumes per year"
+
+msgid "manager.setup.publicationFormat.code"
+msgstr "Format"
+
+msgid "manager.setup.publicationFormat.codeRequired"
+msgstr "A format must be chosen."
+
+msgid "manager.setup.publicationFormat.nameRequired"
+msgstr "You must assign a name to this format."
+
+msgid "manager.setup.publicationFormat.physicalFormat"
+msgstr "Is this a physical (non-digital) format?"
+
+msgid "manager.setup.publicationFormat.inUse"
+msgstr "Because this publication format is currently in use by a monograph in your press, it cannot be deleted."
+
+msgid "manager.setup.newPublicationFormat"
+msgstr "New Publication Format"
+
+msgid "manager.setup.newPublicationFormatDescription"
+msgstr "To create a new publication format, fill out the form below and click the 'Create' button."
+
+msgid "manager.setup.genresDescription"
+msgstr "These genres are used for file-naming purposes and are presented in a pull-down menu on uploading files. The genres designated ## allow the user to associate the file with either the whole book 99Z or a particular chapter by number (e.g., 02)."
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr "This press is not accepting submissions at this time. Visit the workflow settings to allow submissions."
+
+msgid "manager.setup.disableSubmissions.description"
+msgstr "Prevent users from submitting new articles to the press. Submissions can be disabled for individual press series on the press series settings page."
+
+msgid "manager.setup.genres"
+msgstr "Genres"
+
+msgid "manager.setup.newGenre"
+msgstr "New Monograph Genre"
+
+msgid "manager.setup.newGenreDescription"
+msgstr "To create a new genre, fill out the form below and click the 'Create' button."
+
+msgid "manager.setup.deleteSelected"
+msgstr "Delete Selected"
+
+msgid "manager.setup.restoreDefaults"
+msgstr "Restore Default Settings"
+
+msgid "manager.setup.prospectus"
+msgstr "Prospectus Guide"
+
+msgid "manager.setup.prospectusDescription"
+msgstr "The prospectus guide is a press prepared document that helps the author describe the submitted materials in a way that allows a press to determine the value of the submission. A prospectus can include a lot of items- from marketing potential to theoretical value; in any case, a press should create a prospectus guide that complements their publishing agenda."
+
+msgid "manager.setup.submitToCategories"
+msgstr "Allow category submissions"
+
+msgid "manager.setup.submitToSeries"
+msgstr "Allow series submissions"
+
+msgid "manager.setup.issnDescription"
+msgstr ""
+"The ISSN (International Standard Serial Number) is an eight-digit number "
+"which identifying periodical publications including electronic serials. A "
+"number can be obtained from the ISSN International Centre."
+
+msgid "manager.setup.currentFormats"
+msgstr "Current Formats"
+
+msgid "manager.setup.categoriesAndSeries"
+msgstr "Categories and Series"
+
+msgid "manager.setup.categories.description"
+msgstr "You may create a list of categories to help organize your publications. Categories are groupings of books according to subject matter, for example Economics; Literature; Poetry; and so on. Categories may be nested within \"parent\" categories: for example, an Economics parent category may include individual Microeconomics and Macroeconomics categories. Visitors will be able to search and browse the press by category."
+
+msgid "manager.setup.series.description"
+msgstr "You may create any number of series to help organize your publications. A series represents a special set of books devoted to a theme or topics that someone has proposed, usually a faculty member or two, and then oversees. Visitors will be able to search and browse the press by series."
+
+msgid "manager.setup.reviewForms"
+msgstr "Review Forms"
+
+msgid "manager.setup.roleType"
+msgstr "Role Type"
+
+msgid "manager.setup.authorRoles"
+msgstr "Author Roles"
+
+msgid "manager.setup.managerialRoles"
+msgstr "Managerial Roles"
+
+msgid "manager.setup.availableRoles"
+msgstr "Available Roles"
+
+msgid "manager.setup.currentRoles"
+msgstr "Current Roles"
+
+msgid "manager.setup.internalReviewRoles"
+msgstr "Internal Review Roles"
+
+msgid "manager.setup.masthead"
+msgstr "Masthead"
+
+msgid "manager.setup.editorialTeam"
+msgstr "Editorial Team"
+
+msgid "manager.setup.editorialTeam.description"
+msgstr "List of editors, managing directors, and other individuals associated with the press."
+
+msgid "manager.setup.files"
+msgstr "Files"
+
+msgid "manager.setup.productionTemplates"
+msgstr "Production Templates"
+
+msgid "manager.files.note"
+msgstr "Note: The Files Browser is an advanced feature that allows the files and directories associated with a press to be viewed and manipulated directly."
+
+msgid "manager.setup.copyrightNotice.sample"
+msgstr ""
+"Proposed Creative Commons Copyright Notices
\n"
+"Proposed Policy for Presses That Offer Open Access
\n"
+"Authors who publish with this press agree to the following terms:\n"
+"\n"
+"\t- Authors retain copyright and grant the press right of first "
+"publication with the work simultaneously licensed under a Creative "
+"Commons Attribution License that allows others to share the work with an "
+"acknowledgement of the work's authorship and initial publication in this "
+"press.
\n"
+"\t- Authors are able to enter into separate, additional contractual series "
+"for the non-exclusive distribution of the version of the work published by "
+"the press (e.g., post it to an institutional repository or publish it in a "
+"book), with an acknowledgement of its initial publication in this press.
"
+"\n"
+"\t- Authors are permitted and encouraged to post their work online (e.g., "
+"in institutional repositories or on their website) prior to and during the "
+"submission process, as it can lead to productive exchanges, as well as "
+"earlier and greater citation of published work (See The Effect of Open Access).
\n"
+"
\n"
+"\n"
+"Proposed Policy for Presses That Offer Delayed Open Access
\n"
+"Authors who publish with this press agree to the following terms:\n"
+"\n"
+"\t- Authors retain copyright and grant the press right of first "
+"publication, with the work [SPECIFY PERIOD OF TIME] after publication "
+"simultaneously licensed under a Creative Commons Attribution "
+"License that allows others to share the work with an acknowledgement of "
+"the work's authorship and initial publication in this press.
\n"
+"\t - Authors are able to enter into separate, additional contractual "
+"series for the non-exclusive distribution of the version of the work "
+"published by the press (e.g., post it to an institutional repository or "
+"publish it in a book), with an acknowledgement of its initial publication in "
+"this press.
\n"
+"\t - Authors are permitted and encouraged to post their work online (e.g., "
+"in institutional repositories or on their website) prior to and during the "
+"submission process, as it can lead to productive exchanges, as well as "
+"earlier and greater citation of published work (See The Effect of Open Access).
\n"
+"
"
+
+msgid "manager.setup.basicEditorialStepsDescription"
+msgstr ""
+"Steps: Submission Queue > Submission Review > Submission Editing > Table of Contents.
\n"
+"Select a model for handling these aspects of the editorial process. (To designate a Managing Editor and Series Editors, go to Editors in Press Management.)"
+
+msgid "manager.setup.referenceLinkingDescription"
+msgstr ""
+"To enable readers to locate online versions of the work cited by an author, the following options are available.
\n"
+"\n"
+"\n"
+"\t- Add a Reading Tool
The Press Manager can add \"Find References\" to the Reading Tools that accompany published items, which enables readers to paste a reference's title and then search pre-selected scholarly databases for the cited work.
\n"
+"\t- Embed Links in the References
The Layout Editor can add a link to references that can be found online by using the following instructions (which can be edited).
\n"
+"
"
+
+msgid "manager.publication.library"
+msgstr "Press Library"
+
+msgid "manager.setup.resetPermissions"
+msgstr "Reset Monograph Permissions"
+
+msgid "manager.setup.resetPermissions.confirm"
+msgstr "Are you sure you wish to reset permissions data already attached to monographs?"
+
+msgid "manager.setup.resetPermissions.description"
+msgstr "Copyright statement and license information will be permanently attached to published content, ensuring that this data will not change in the case of a press changing policies for new submissions. To reset stored permissions information already attached to published content, use the button below."
+
+msgid "manager.setup.resetPermissions.success"
+msgstr "Monograph permissions were successfully reset."
+
+msgid "grid.genres.title.short"
+msgstr "Components"
+
+msgid "grid.genres.title"
+msgstr "Monograph Components"
+
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr "Send a copy to the primary contact, identified in the Press Settings."
+
+msgid "grid.series.pathAlphaNumeric"
+msgstr "The series path must consist of only letters and numbers."
+
+msgid "grid.series.pathExists"
+msgstr "The series path already exists. Please enter a unique path."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr "Select Series"
+
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr "Please select the series to which you would like this menu item to link."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr "Select Category"
+
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr "Please select the category to which you would like this menu item to link."
+
+msgid "grid.series.urlWillBe"
+msgstr "The series's URL will be: {$sampleUrl}"
+
+msgid "stats.contextStats"
+msgstr "Press Stats"
+
+msgid "stats.context.tooltip.text"
+msgstr "Number of visitors viewing the press's and catalog's index page."
+
+msgid "stats.context.tooltip.label"
+msgstr "About press statistics"
+
+msgid "stats.context.downloadReport.description"
+msgstr "Download a CSV/Excel spreadsheet with usage statistics for this press matching the following parameters."
+
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr "The number of press's and catalog's index page views."
+
+msgid "stats.context.downloadReport.downloadContext"
+msgstr "Download Press"
+
+msgid "stats.publications.downloadReport.description"
+msgstr "Download a CSV/Excel spreadsheet with usage statistics for monographs matching the following parameters."
+
+msgid "stats.publications.downloadReport.downloadSubmissions"
+msgstr "Download Monographs"
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr "The number of abstract views and file downloads for each monograph."
+
+msgid "stats.publicationStats"
+msgstr "Monograph Stats"
+
+msgid "stats.publications.details"
+msgstr "Monograph Details"
+
+msgid "stats.publications.none"
+msgstr "No monographs were found with usage statistics matching these parameters."
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr "Total catalog views by date"
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr "Total file views by date"
+
+msgid "stats.publications.countOfTotal"
+msgstr "{$count} of {$total} monographs"
+
+msgid "stats.publications.abstracts"
+msgstr "Catalog Entries"
+
+msgid "plugins.importexport.common.error.salesRightRequiresTerritory"
+msgstr "A sales right record has been skipped because it has no country nor region assigned."
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr "No objects selected."
+
+msgid "plugins.importexport.common.error.validation"
+msgstr "Could not convert selected objects."
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr "Invalid XML:"
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr "Export Submissions"
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr "Send a copy of the submission acknowledgement email to this press's primary contact."
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.disabled.description"
+msgstr "No primary contact has been defined for this press. You can enter a primary contact in the press settings."
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr "The specified objects could not be found."
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr "The specified user, \"{$userName}\", does not exist."
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr "Process failed to parse publicationformats"
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr "Process failed to parse chapters"
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr "The press's name"
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr "The URL to the press's homepage"
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr "The name of the press's primary contact"
+
+msgid "emailTemplate.variable.context.contextAcronym"
+msgstr "The press's initials"
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr "The press's email signature for automated emails"
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr "The email address of the press's primary contact"
+
+msgid "emailTemplate.variable.context.mailingAddress"
+msgstr "The mailing address of the press"
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr "The name of the type of payment"
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr "The payment amount"
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr "The currency of the payment amount, such as USD"
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr "Name of the website when more than one press is hosted"
+
+msgid "emailTemplate.variable.statisticsReportNotify.publicationStatsLink"
+msgstr "The link to the books statistics page"
+
+msgid "mailable.statisticsReportNotify.description"
+msgstr ""
+"This email is automatically sent monthly to editors and press managers to "
+"provide them a system health overview."
+
+msgid "mailable.validateEmailContext.name"
+msgstr "Validate Email (Press Registration)"
+
+msgid "mailable.validateEmailContext.description"
+msgstr "This email is automatically sent to a new user when they register with the press when the settings require the email address to be validated."
+
+msgid "doi.displayName"
+msgstr "DOI"
+
+msgid "doi.manager.displayName"
+msgstr "DOIs"
+
+msgid "doi.description"
+msgstr "This plugin enables the assignment of the Digital Object Identifiers to monographs, chapters, publication formats and files in OMP."
+
+msgid "doi.readerDisplayName"
+msgstr "DOI:"
+
+msgid "doi.manager.settings.description"
+msgstr "Please configure the DOI plug-in to be able to manage and use DOIs in OMP:"
+
+msgid "doi.manager.settings.explainDois"
+msgstr "Please select the publishing objects that will have Digital Object Identifiers (DOI) assigned:"
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr "Monographs"
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr "Chapters"
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr "Publication Formats"
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr "Files"
+
+msgid "doi.manager.settings.doiPrefix"
+msgstr "DOI Prefix"
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr "The DOI prefix is mandatory and must be in the form 10.xxxx."
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr "Enter a custom suffix pattern for each publication type. The custom suffix pattern may use the following symbols to generate the suffix:
"
+"%p
Press Initials
"
+"%m
Monograph ID
"
+"%c
Chapter ID
"
+"%f
Publication Format ID
"
+"%s
File ID
"
+"%x
Custom Identifier
"
+"Beware that custom suffix patterns often lead to problems generating and depositing DOIs. When using a custom suffix pattern, carefully test that editors can generate DOIs and deposit them to a registration agency like Crossref. "
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr "For example, press%ppub%r could create a DOI such as 10.1234/pressESPpub100"
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr "for monographs"
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr "for chapters"
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr "for publication formats"
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr "for files"
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr "Please enter the DOI suffix pattern for monographs."
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr "Please enter the DOI suffix pattern for chapters."
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr "Please enter the DOI suffix pattern for publication formats."
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr "Please enter the DOI suffix pattern for files."
+
+msgid "doi.manager.settings.doiReassign"
+msgstr "Reassign DOIs"
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr "If you change your DOI configuration, DOIs that have already been assigned will not be affected. Once the DOI configuration is saved, use this button to clear all existing DOIs so that the new settings will take effect with all existing objects."
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr "Are you sure you wish to delete all existing DOIs?"
+
+msgid "doi.editor.doi"
+msgstr "DOI"
+
+msgid "doi.editor.doi.description"
+msgstr "The DOI must begin with {$prefix}."
+
+msgid "doi.editor.doi.assignDoi"
+msgstr "Assign"
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr "monograph"
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr "chapter"
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr "publication format"
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr "file"
+
+msgid "doi.editor.customSuffixMissing"
+msgstr "The DOI cannot be assigned because the custom suffix is missing."
+
+msgid "doi.editor.missingParts"
+msgstr "You can not generate a DOI because one or more parts of the DOI pattern are missing data."
+
+msgid "doi.editor.patternNotResolved"
+msgstr "The DOI cannot be assigned because it contains an unresolved pattern."
+
+msgid "doi.editor.canBeAssigned"
+msgstr "What you see is a preview of the DOI. Select the checkbox and save the form to assign the DOI."
+
+msgid "doi.editor.assigned"
+msgstr "The DOI is assigned to this {$pubObjectType}."
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr "The given DOI suffix is already in use for another published item. Please enter a unique DOI suffix for each item."
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr "Clear"
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr "Are you sure you wish to delete the existing DOI?"
+
+msgid "doi.editor.assignDoi"
+msgstr "Assign the DOI {$pubId} to this {$pubObjectType}"
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr "The DOI cannot be assigned because the custom suffix is missing."
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr "The DOI {$pubId} cannot be assigned because it contains an unresolved pattern."
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr "The DOI {$pubId} has been assigned."
+
+msgid "doi.editor.missingPrefix"
+msgstr "The DOI must begin with {$doiPrefix}."
+
+msgid "doi.editor.preview.publication"
+msgstr "The DOI for this publication will be {$doi}."
+
+msgid "doi.editor.preview.publication.none"
+msgstr "A DOI has not been assigned to this publication."
+
+msgid "doi.editor.preview.chapters"
+msgstr "Chapter: {$title}"
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr "Publication Format: {$title}"
+
+msgid "doi.editor.preview.files"
+msgstr "File: {$title}"
+
+msgid "doi.editor.preview.objects"
+msgstr "Item"
+
+msgid "doi.manager.submissionDois"
+msgstr "Monograph DOIs"
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr "This email notifies the author that their submission is being sent to the internal review stage."
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr "This email notifies the author that their submission is being declined, before being sent for review, because the submission does not meet the requirements for publication with the press."
+
+msgid "manager.institutions.noContext"
+msgstr "This institution's press could not be found."
+
+msgid "manager.manageEmails.description"
+msgstr "Edit the messages sent in emails from this press."
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr "Sent to Internal Review"
+
+msgid "mailable.indexRequest.name"
+msgstr "Index Requested"
+
+msgid "mailable.indexComplete.name"
+msgstr "Index Completed"
+
+msgid "mailable.layoutComplete.name"
+msgstr "Galleys Complete"
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr "New Version Created"
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr "This email automatically notifies the assigned editors when a new version of the submission has been created."
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+"This email is sent to press managers when a new submission is made and no editors are assigned."
diff --git a/locale/en/submission.po b/locale/en/submission.po
new file mode 100644
index 00000000000..7f766239f40
--- /dev/null
+++ b/locale/en/submission.po
@@ -0,0 +1,618 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
+"PO-Revision-Date: 2019-09-30T06:23:43-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 "submission.upload.selectComponent"
+msgstr "Select component"
+
+msgid "submission.title"
+msgstr "Book Title"
+
+msgid "submission.select"
+msgstr "Select Submission"
+
+msgid "submission.synopsis"
+msgstr "Synopsis"
+
+msgid "submission.workflowType"
+msgstr "Submission Type"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"A monograph is a work authored wholly by one or more authors. An edited "
+"volume has different authors for each chapter (with the chapter details "
+"entered later in this process.)"
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr "Edited Volume"
+
+msgid "submission.workflowType.editedVolume"
+msgstr "Edited Volume: Authors are associated with their own chapter."
+
+msgid "submission.workflowType.authoredWork"
+msgstr "Monograph: Authors are associated with the book as a whole."
+
+msgid "submission.workflowType.change"
+msgstr "Change"
+
+msgid "submission.editorName"
+msgstr "{$editorName} (ed)"
+
+msgid "submission.monograph"
+msgstr "Monograph"
+
+msgid "submission.published"
+msgstr "Production Ready"
+
+msgid "submission.fairCopy"
+msgstr "Fair Copy"
+
+msgid "submission.authorListSeparator"
+msgstr "; "
+
+msgid "submission.artwork.permissions"
+msgstr "Permissions"
+
+msgid "submission.chapter"
+msgstr "Chapter"
+
+msgid "submission.chapters"
+msgstr "Chapters"
+
+msgid "submission.chapter.addChapter"
+msgstr "Add Chapter"
+
+msgid "submission.chapter.editChapter"
+msgstr "Edit Chapter"
+
+msgid "submission.chapter.pages"
+msgstr "Pages"
+
+msgid "submission.copyedit"
+msgstr "Copyedit"
+
+msgid "submission.publicationFormats"
+msgstr "Publication Formats"
+
+msgid "submission.proofs"
+msgstr "Proofs"
+
+msgid "submission.download"
+msgstr "Download"
+
+msgid "submission.sharing"
+msgstr "Share This"
+
+msgid "manuscript.submission"
+msgstr "Manuscript Submission"
+
+msgid "submission.round"
+msgstr "Round {$round}"
+
+msgid "submissions.queuedReview"
+msgstr "In Review"
+
+msgid "manuscript.submissions"
+msgstr "Manuscript Submissions"
+
+msgid "submission.metadata"
+msgstr "Metadata"
+
+msgid "submission.supportingAgencies"
+msgstr "Supporting Agencies"
+
+msgid "grid.action.addChapter"
+msgstr "Create a new chapter"
+
+msgid "grid.action.editChapter"
+msgstr "Edit this chapter"
+
+msgid "grid.action.deleteChapter"
+msgstr "Delete this chapter"
+
+msgid "submission.submit"
+msgstr "Start New Book Submission"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Start a New Submission in"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr "New Submission"
+
+msgid "submission.submit.upload"
+msgstr "Upload Submission"
+
+msgid "author.volumeEditor"
+msgstr "Volume Editor"
+
+msgid "author.isVolumeEditor"
+msgstr "Identify this contributor as the editor of this volume."
+
+msgid "submission.submit.seriesPosition"
+msgstr "Series Position"
+
+msgid "submission.submit.seriesPosition.description"
+msgstr "Examples: Book 2, Volume 2"
+
+msgid "submission.submit.privacyStatement"
+msgstr "Privacy Statement"
+
+msgid "submission.submit.contributorRole"
+msgstr "Contributor's role"
+
+msgid "submission.submit.submissionFile"
+msgstr "Submission File"
+
+msgid "submission.submit.prepare"
+msgstr "Prepare"
+
+msgid "submission.submit.catalog"
+msgstr "Catalog"
+
+msgid "submission.submit.metadata"
+msgstr "Metadata"
+
+msgid "submission.submit.finishingUp"
+msgstr "Finishing Up"
+
+msgid "submission.submit.confirmation"
+msgstr "Confirmation"
+
+msgid "submission.submit.nextSteps"
+msgstr "Next Steps"
+
+msgid "submission.submit.coverNote"
+msgstr "Cover Note to Editor"
+
+msgid "submission.submit.generalInformation"
+msgstr "General Information"
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"The press has been notified of your submission, and you've been emailed a "
+"confirmation for your records. Once the editor has reviewed the submission, "
+"they will contact you."
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Please read and check off the items in the submission checklist. There are "
+"{$itemsRemaining} items left unchecked."
+
+msgid "submission.submit.placement"
+msgstr "Submission Placement"
+
+msgid "submission.submit.userGroup"
+msgstr "Submit in my role as..."
+
+msgid "submission.submit.noContext"
+msgstr "This submission's press could not be found."
+
+msgid "grid.chapters.title"
+msgstr "Chapters"
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Delete Copyeditor Upload"
+
+msgid "submission.complete"
+msgstr "Approved"
+
+msgid "submission.incomplete"
+msgstr "Awaiting Approval"
+
+msgid "submission.editCatalogEntry"
+msgstr "Entry"
+
+msgid "submission.catalogEntry.new"
+msgstr "Add Entry"
+
+msgid "submission.catalogEntry.add"
+msgstr "Add Selected to Catalog"
+
+msgid "submission.catalogEntry.select"
+msgstr "Select monographs to add to the catalog"
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr "You must select at least one monograph to add to the catalog."
+
+msgid "submission.catalogEntry.confirm"
+msgstr "Add this book to the public catalog"
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr ""
+"Please confirm that the submission is ready to be placed in the catalog."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr "This monograph is ready to be included in the public catalog."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr "View Submission"
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr "Publication Dates"
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr "All chapters will use the publication date of the monograph."
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr "Each chapter may have its own publication date."
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Monograph"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Catalog"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Publication Format"
+
+msgid "submission.event.metadataPublished"
+msgstr "The monograph's metadata is approved for publication."
+
+msgid "submission.event.metadataUnpublished"
+msgstr "The monograph's metadata is no longer published."
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr "The publication format \"{$publicationFormatName}\" is made available."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr ""
+"The publication format \"{$publicationFormatName}\" is no longer available."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+"The publication format \"{$publicationFormatName}\" is approved for "
+"publication."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr ""
+"The publication format \"{$publicationFormatName}\" is no longer published."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "The catalog metadata was updated."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr "The publication format metadata for \"{$formatName}\" was updated."
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "The publication format \"{$formatName}\" was created."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "The publication format \"{$formatName}\" was removed."
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr "Send to External Review"
+
+msgid "workflow.review.externalReview"
+msgstr "External Review"
+
+msgid "submission.upload.fileContents"
+msgstr "Submission Component"
+
+msgid "submission.dependentFiles"
+msgstr "Dependent Files"
+
+msgid "submission.metadataDescription"
+msgstr ""
+"These specifications are based on the Dublin Core metadata set, an "
+"international standard used to describe press content."
+
+msgid "section.any"
+msgstr "Any Series"
+
+msgid "submission.list.monographs"
+msgstr "Monographs"
+
+msgid "submission.list.countMonographs"
+msgstr "{$count} monographs"
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr "{$count} of {$total} monographs"
+
+msgid "submission.list.orderFeatures"
+msgstr "Order Features"
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+"Drag-and-drop or tap the up and down buttons to change the order of features "
+"on the homepage."
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+"Drag-and-drop or tap the up and down buttons to change the order of features "
+"in {$title}."
+
+msgid "submission.list.saveFeatureOrder"
+msgstr "Save Order"
+
+msgid "submission.list.viewEntry"
+msgstr "View Entry"
+
+msgid "catalog.browseTitles"
+msgstr "{$numTitles} Titles"
+
+msgid "publication.catalogEntry"
+msgstr "Catalog Entry"
+
+msgid "publication.catalogEntry.success"
+msgstr "The catalog entry details have been updated."
+
+msgid "publication.invalidSeries"
+msgstr "The series for this publication could not be found."
+
+msgid "publication.inactiveSeries"
+msgstr "{$series} (Inactive)"
+
+msgid "publication.required.issue"
+msgstr ""
+"The publication must be assigned to an issue before it can be published."
+
+msgid "publication.publishedIn"
+msgstr "Published in {$issueName}."
+
+msgid "publication.publish.confirmation"
+msgstr ""
+"All publication requirements have been met. Are you sure you want to make "
+"this catalog entry public?"
+
+msgid "publication.scheduledIn"
+msgstr "Scheduled for publication in {$issueName}."
+
+msgid "submission.publication"
+msgstr "Publication"
+
+msgid "publication.status.published"
+msgstr "Published"
+
+msgid "submission.status.scheduled"
+msgstr "Scheduled"
+
+msgid "publication.status.unscheduled"
+msgstr "Unscheduled"
+
+msgid "submission.publications"
+msgstr "Publications"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+"The copyright year will be set automatically when this is published in an "
+"issue."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+"The copyright year will be set automatically based on the publication date."
+
+msgid "publication.datePublished"
+msgstr "Date Published"
+
+msgid "publication.editDisabled"
+msgstr "This version has been published and can not be edited."
+
+msgid "publication.event.published"
+msgstr "The submission was published."
+
+msgid "publication.event.scheduled"
+msgstr "The submission was scheduled for publication."
+
+msgid "publication.event.unpublished"
+msgstr "The submission was unpublished."
+
+msgid "publication.event.versionPublished"
+msgstr "A new version was published."
+
+msgid "publication.event.versionScheduled"
+msgstr "A new version was scheduled for publication."
+
+msgid "publication.event.versionUnpublished"
+msgstr "A version was removed from publication."
+
+msgid "publication.invalidSubmission"
+msgstr "The submission for this publication could not be found."
+
+msgid "publication.publish"
+msgstr "Publish"
+
+msgid "publication.publish.requirements"
+msgstr "The following requirements must be met before this can be published."
+
+msgid "publication.required.declined"
+msgstr "A declined submission can not be published."
+
+msgid "publication.required.reviewStage"
+msgstr ""
+"The submission must be in the Copyediting or Production stages before it can "
+"be published."
+
+msgid "submission.license.description"
+msgstr ""
+"The license will be set automatically to {$licenseName} when this is published."
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+"Copyright will be assigned automatically to {$copyright} when this is "
+"published."
+
+msgid "submission.copyrightOther.description"
+msgstr "Assign copyright for published submissions to the following party."
+
+msgid "publication.unpublish"
+msgstr "Unpublish"
+
+msgid "publication.unpublish.confirm"
+msgstr "Are you sure you don't want this to be published?"
+
+msgid "publication.unschedule.confirm"
+msgstr "Are you sure you don't want this scheduled for publication?"
+
+msgid "publication.version.details"
+msgstr "Publication details for version {$version}"
+
+msgid "submission.queries.production"
+msgstr "Production Discussions"
+
+msgid "publication.chapter.landingPage"
+msgstr "Chapter Page"
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+"Show this chapter on its own page and link to that page from the book's "
+"table of contents."
+
+msgid "publication.publish.success"
+msgstr "Publication status successfully changed."
+
+msgid "chapter.volume"
+msgstr "Volume"
+
+msgid "submission.withoutChapter"
+msgstr "{$name} — Without this chapter"
+
+msgid "submission.chapterCreated"
+msgstr " — Chapter created"
+
+msgid "chapter.pages"
+msgstr "Pages"
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr "Send to Internal Review"
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr "This submission is ready to be sent for internal review."
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr "{$editorName} sent this submission to the internal review stage."
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr "Sent for Internal Review"
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+"The submission, {$title}, has been sent to the internal review stage. The "
+"author has been notified, unless you chose to skip that email."
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+"Send an email to the authors to let them know that this submission will be "
+"sent for internal review. If possible, give the authors some indication of "
+"how long the internal review process might take and when they should expect "
+"to hear from the editors again."
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr "Select files that should be sent to the internal review stage."
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr "{$editorName} sent this submission to the external review stage."
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr "Sent for External Review"
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr "The submission, {$title}, has been sent to the external review stage."
+
+msgid "editor.submission.decision.backToReview"
+msgstr "Back to Review"
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+"Revert the decision to accept this submission and send it back to the review "
+"stage."
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+"{$editorName} reverted the decision to accept this submission and sent it "
+"back to the review stage."
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr "Sent Back to Review"
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr "The submission, {$title}, was sent back to the review stage."
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+"Send an email to the authors to let them know that their submission is being "
+"sent back to the review stage. Explain why this decision was made and inform "
+"the author of what further review will be undertaken."
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+"Send an email to the authors to let them know that this submission will be "
+"sent for peer review. If possible, give the authors some indication of how "
+"long the peer review process might take and when they should expect to hear "
+"from the editors again."
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr "Select files that should be sent to the review stage."
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr "Recommend Send to External Review"
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr "Recommend that this submission be sent to the external review stage."
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+"{$editorName} recommended that this submission be sent to the external "
+"review stage."
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+"Could not create a DOI for the following submission: {$pubObjectTitle}. It "
+"does not exist in the current press context."
+
+msgid "publication.chapter.licenseUrl"
+msgstr "License URL"
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr "Default Chapter License URL"
+
+msgid "submission.copyright.description"
+msgstr ""
+"Please read and understand the copyright terms for submissions to this press."
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+"You are not allowed to submit to this press because authors must be "
+"registered by the editorial staff. If you believe this is an error, please "
+"contact {$name}."
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+"{$contextName} is not accepting submissions to the {$section} series. If you "
+"need help recovering your submission, please contact {$name}."
+
+msgid "submission.sectionNotFound"
+msgstr "The series for this submission could not be found."
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr "Only editorial staff are allowed to submit to this series."
+
+msgid "submission.wizard.submitting.monograph"
+msgstr "Submitting a Monograph."
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+"Submitting a Monograph in {$language}."
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr "Submitting an Edited Volume."
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+"Submitting an Edited Volume in {$language}."
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
+"Please provide all of the chapters of this submission. If you are submitting "
+"an edited volume, please make sure that each chapter indicates the "
+"contributors for that chapter."
diff --git a/locale/en/sushi.po b/locale/en/sushi.po
new file mode 100644
index 00000000000..2a50127932e
--- /dev/null
+++ b/locale/en/sushi.po
@@ -0,0 +1,26 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-12-01T09:54:38-07:00\n"
+"PO-Revision-Date: 2021-12-01T09:54:38-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 "sushi.reports.pr.description"
+msgstr "Activities summarized accross the press."
+
+msgid "sushi.reports.pr_p1.description"
+msgstr "Press-level usage summarized by Metric_Type."
+
+msgid "sushi.reports.tr.description"
+msgstr "Activities at the book level."
+
+msgid "sushi.reports.tr_b3.description"
+msgstr ""
+"Reports on book usage showing all applicable Metric_Types broken down by "
+"Access_Type."
diff --git a/locale/en_US/admin.po b/locale/en_US/admin.po
deleted file mode 100644
index 72d3317d2e1..00000000000
--- a/locale/en_US/admin.po
+++ /dev/null
@@ -1,119 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2019-09-30T06:23:43-07:00\n"
-"Language: \n"
-
-msgid "admin.hostedContexts"
-msgstr "Hosted Presses"
-
-msgid "admin.settings.appearance.success"
-msgstr "The site appearance settings have been successfully updated."
-
-msgid "admin.settings.config.success"
-msgstr "The site configuration settings have been successfully updated."
-
-msgid "admin.settings.info.success"
-msgstr "The site information has been successfully updated."
-
-msgid "admin.settings.redirect"
-msgstr "Press redirect"
-
-msgid "admin.settings.redirectInstructions"
-msgstr "Requests to the main site will be redirected to this press. This may be useful if the site is hosting only a single press, for example."
-
-msgid "admin.settings.noPressRedirect"
-msgstr "Do not redirect"
-
-msgid "admin.languages.primaryLocaleInstructions"
-msgstr "This will be the default language for the site and any hosted presses."
-
-msgid "admin.languages.supportedLocalesInstructions"
-msgstr "Select all locales to support on the site. The selected locales will be available for use by all presses hosted on the site, and also appear in a language select menu to appear on each site page (which can be overridden on press-specific pages). If multiple locales are not selected, the language toggle menu will not appear and extended language settings will not be available to presses."
-
-msgid "admin.locale.maybeIncomplete"
-msgstr "* Marked locales may be incomplete."
-
-msgid "admin.languages.confirmUninstall"
-msgstr "Are you sure you want to uninstall this locale? This may affect any hosted presses currently using the locale."
-
-msgid "admin.languages.installNewLocalesInstructions"
-msgstr "Select any additional locales to install support for in this system. Locales must be installed before they can be used by hosted presses. See the OMP documentation for information on adding support for new languages."
-
-msgid "admin.languages.confirmDisable"
-msgstr "Are you sure you want to disable this locale? This may affect any hosted presses currently using the locale."
-
-msgid "admin.systemVersion"
-msgstr "OMP Version"
-
-msgid "admin.systemConfiguration"
-msgstr "OMP Configuration"
-
-msgid "admin.presses.pressSettings"
-msgstr "Press Settings"
-
-msgid "admin.presses.noneCreated"
-msgstr "No presses have been created."
-
-msgid "admin.contexts.create"
-msgstr "Create Press"
-
-msgid "admin.contexts.form.titleRequired"
-msgstr "A title is required."
-
-msgid "admin.contexts.form.pathRequired"
-msgstr "A path is required."
-
-msgid "admin.contexts.form.pathAlphaNumeric"
-msgstr "The path can only include letters, numbers and the characters _ and -. It must begin and end with a letter or number."
-
-msgid "admin.contexts.form.pathExists"
-msgstr "The selected path is already in use by another press."
-
-msgid "admin.contexts.form.primaryLocaleNotSupported"
-msgstr "The primary locale must be one of the press's supported locales."
-
-msgid "admin.contexts.form.create.success"
-msgstr "{$name} was created successfully."
-
-msgid "admin.contexts.form.edit.success"
-msgstr "{$name} was edited successfully."
-
-msgid "admin.contexts.contextDescription"
-msgstr "Press description"
-
-msgid "admin.presses.addPress"
-msgstr "Add Press"
-
-msgid "admin.overwriteConfigFileInstructions"
-msgstr ""
-"NOTE!\n"
-"
The system could not automatically overwrite the configuration file. To apply your configuration changes you must open config.inc.php in a suitable text editor and replace its contents with the contents of the text field below.
"
-
-msgid "admin.settings.enableBulkEmails.description"
-msgstr ""
-"Select the hosted presses that should be allowed to send bulk emails. When this feature is enabled, "
-"a press manager will be able to send an email to all users registered with their press."
-"
"
-"Misuse of this feature to send unsolicited email may violate anti-spam laws in some jurisdictions and "
-"may result in your server's emails being blocked as spam. Seek technical advice before "
-"enabling this feature and consider consulting with press managers to ensure it is used appropriately."
-"
"
-"Further restrictions on this feature can be enabled for each press by visiting its settings wizard in "
-"the list of Hosted Presses."
-
-msgid "admin.settings.disableBulkEmailRoles.description"
-msgstr ""
-"A press manager will be unable to send bulk emails to any of the roles selected below. Use this setting to limit abuse of the email notification feature. For example, it may be safer to disable bulk emails to readers, authors, or other large user groups that have not consented to receive such emails."
-"
"
-"The bulk email feature can be disabled completely for this press in Admin > Site Settings."
-
-msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
-msgstr "The bulk email feature has been disabled for this press. Enable this feature in Admin > Site Settings."
diff --git a/locale/en_US/api.po b/locale/en_US/api.po
deleted file mode 100644
index f614ca9029c..00000000000
--- a/locale/en_US/api.po
+++ /dev/null
@@ -1,36 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2019-09-30T06:23:43-07:00\n"
-"Language: \n"
-
-msgid "api.submissions.400.submissionIdsRequired"
-msgstr "You must provide one or more submission ids to be added to the catalog."
-
-msgid "api.submissions.400.submissionsNotFound"
-msgstr "One or more of the submissions you specified could not be found."
-
-msgid "api.emails.403.disabled"
-msgstr "The email notification feature has not been enabled for this press."
-
-msgid "api.emailTemplates.403.notAllowedChangeContext"
-msgstr "You do not have permission to move this email template to another press."
-
-msgid "api.publications.403.contextsDidNotMatch"
-msgstr "The publication that you requested is not part of this press."
-
-msgid "api.publications.403.submissionsDidNotMatch"
-msgstr "The publication that you requested is not part of this submission."
-
-msgid "api.submissions.403.cantChangeContext"
-msgstr "You can not change the press of a submission."
-
-msgid "api.submissions.403.contextRequired"
-msgstr "To make or edit a submission you must make a request to the press's API endpoint."
\ No newline at end of file
diff --git a/locale/en_US/author.po b/locale/en_US/author.po
deleted file mode 100644
index 8ce135c83f1..00000000000
--- a/locale/en_US/author.po
+++ /dev/null
@@ -1,15 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2019-09-30T06:23:43-07:00\n"
-"Language: \n"
-
-msgid "author.submit.notAccepting"
-msgstr "This press is not accepting submissions at this time."
diff --git a/locale/en_US/author.xml b/locale/en_US/author.xml
deleted file mode 100644
index fd3191bcf72..00000000000
--- a/locale/en_US/author.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- This press is not accepting submissions at this time.
-
diff --git a/locale/en_US/default.po b/locale/en_US/default.po
deleted file mode 100644
index af87699044a..00000000000
--- a/locale/en_US/default.po
+++ /dev/null
@@ -1,141 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2019-09-30T06:23:43-07:00\n"
-"Language: \n"
-
-msgid "default.genres.appendix"
-msgstr "Appendix"
-
-msgid "default.genres.bibliography"
-msgstr "Bibliography"
-
-msgid "default.genres.manuscript"
-msgstr "Book Manuscript"
-
-msgid "default.genres.chapter"
-msgstr "Chapter Manuscript"
-
-msgid "default.genres.glossary"
-msgstr "Glossary"
-
-msgid "default.genres.index"
-msgstr "Index"
-
-msgid "default.genres.preface"
-msgstr "Preface"
-
-msgid "default.genres.prospectus"
-msgstr "Prospectus"
-
-msgid "default.genres.table"
-msgstr "Table"
-
-msgid "default.genres.figure"
-msgstr "Figure"
-
-msgid "default.genres.photo"
-msgstr "Photo"
-
-msgid "default.genres.illustration"
-msgstr "Illustration"
-
-msgid "default.genres.other"
-msgstr "Other"
-
-msgid "default.groups.name.manager"
-msgstr "Press manager"
-
-msgid "default.groups.plural.manager"
-msgstr "Press managers"
-
-msgid "default.groups.abbrev.manager"
-msgstr "PM"
-
-msgid "default.groups.name.editor"
-msgstr "Press editor"
-
-msgid "default.groups.plural.editor"
-msgstr "Press editors"
-
-msgid "default.groups.abbrev.editor"
-msgstr "PE"
-
-msgid "default.groups.name.sectionEditor"
-msgstr "Series editor"
-
-msgid "default.groups.plural.sectionEditor"
-msgstr "Series editors"
-
-msgid "default.groups.abbrev.sectionEditor"
-msgstr "AcqE"
-
-msgid "default.groups.name.chapterAuthor"
-msgstr "Chapter Author"
-
-msgid "default.groups.plural.chapterAuthor"
-msgstr "Chapter Authors"
-
-msgid "default.groups.abbrev.chapterAuthor"
-msgstr "CA"
-
-msgid "default.groups.name.volumeEditor"
-msgstr "Volume editor"
-
-msgid "default.groups.plural.volumeEditor"
-msgstr "Volume editors"
-
-msgid "default.groups.abbrev.volumeEditor"
-msgstr "VE"
-
-msgid "default.contextSettings.checklist.notPreviouslyPublished"
-msgstr "The submission has not been previously published, nor is it before another press for consideration (or an explanation has been provided in Comments to the Editor)."
-
-msgid "default.contextSettings.checklist.fileFormat"
-msgstr "The submission file is in the Microsoft Word, RTF, or OpenDocument file format."
-
-msgid "default.contextSettings.checklist.addressesLinked"
-msgstr "Where available, URLs for the references have been provided."
-
-msgid "default.contextSettings.checklist.submissionAppearance"
-msgstr "The text is single-spaced; uses a 12-point font; employs italics, rather than underlining (except with URL addresses); and all illustrations, figures, and tables are placed within the text at the appropriate points, rather than at the end."
-
-msgid "default.contextSettings.checklist.bibliographicRequirements"
-msgstr "The text adheres to the stylistic and bibliographic requirements outlined in the Author Guidelines, which is found in About the Press."
-
-msgid "default.contextSettings.privacyStatement"
-msgstr "The names and email addresses entered in this press site will be used exclusively for the stated purposes of this press and will not be made available for any other purpose or to any other party.
"
-
-msgid "default.contextSettings.openAccessPolicy"
-msgstr "This press provides immediate open access to its content on the principle that making research freely available to the public supports a greater global exchange of knowledge."
-
-msgid "default.contextSettings.emailSignature"
-msgstr ""
-"
\n"
-"________________________________________________________________________
\n"
-"{$ldelim}$contextName{$rdelim}"
-
-msgid "default.contextSettings.forReaders"
-msgstr "We encourage readers to sign up for the publishing notification service for this press. Use the Register link at the top of the homepage for the press. This registration will result in the reader receiving the Table of Contents by email for each new monograph of the press. This list also allows the press to claim a certain level of support or readership. See the press Privacy Statement which assures readers that their name and email address will not be used for other purposes."
-
-msgid "default.contextSettings.forAuthors"
-msgstr "Interested in submitting to this press? We recommend that you review the About the Press page for the press' section policies and Author Guidelines. Authors need to register with the press prior to submitting, or if already registered can simply log in and begin the 5 step process."
-
-msgid "default.contextSettings.forLibrarians"
-msgstr "We encourage research librarians to list this press among their library's electronic press holdings. As well, this open source publishing system is suitable for libraries to host for their faculty members to use with presses they are involved in editing (see Open Monograph Press)."
-
-msgid "default.groups.name.externalReviewer"
-msgstr "External Reviewer"
-
-msgid "default.groups.plural.externalReviewer"
-msgstr "External Reviewers"
-
-msgid "default.groups.abbrev.externalReviewer"
-msgstr "ER"
diff --git a/locale/en_US/editor.po b/locale/en_US/editor.po
deleted file mode 100644
index 12e6fc51d5a..00000000000
--- a/locale/en_US/editor.po
+++ /dev/null
@@ -1,168 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2019-09-30T06:23:43-07:00\n"
-"Language: \n"
-
-msgid "editor.submissionArchive"
-msgstr "Submission Archive"
-
-msgid "editor.monograph.cancelReview"
-msgstr "Cancel Request"
-
-msgid "editor.monograph.clearReview"
-msgstr "Clear Reviewer"
-
-msgid "editor.monograph.enterRecommendation"
-msgstr "Enter Recommendation"
-
-msgid "editor.monograph.enterReviewerRecommendation"
-msgstr "Enter Reviewer Recommendation"
-
-msgid "editor.monograph.recommendation"
-msgstr "Recommendation"
-
-msgid "editor.monograph.selectReviewerInstructions"
-msgstr "Select a reviewer above and press the 'Select Reviewer' button to continue."
-
-msgid "editor.monograph.replaceReviewer"
-msgstr "Replace Reviewer"
-
-msgid "editor.monograph.editorToEnter"
-msgstr "Editor to enter recommendation/comments for reviewer"
-
-msgid "editor.monograph.uploadReviewForReviewer"
-msgstr "Upload review"
-
-msgid "editor.monograph.peerReviewOptions"
-msgstr "Peer Review Options"
-
-msgid "editor.monograph.selectProofreadingFiles"
-msgstr "Proofreading Files"
-
-msgid "editor.monograph.internalReview"
-msgstr "Initiate Internal Review"
-
-msgid "editor.monograph.internalReviewDescription"
-msgstr "Select files below to send them to the internal review stage."
-
-msgid "editor.monograph.externalReview"
-msgstr "Initiate External Review"
-
-msgid "editor.monograph.final.selectFinalDraftFiles"
-msgstr "Select Final Draft Files"
-
-msgid "editor.monograph.final.currentFiles"
-msgstr "Current Final Draft Files"
-
-msgid "editor.monograph.copyediting.currentFiles"
-msgstr "Current Files"
-
-msgid "editor.monograph.copyediting.personalMessageToUser"
-msgstr "Message to user"
-
-msgid "editor.monograph.legend.submissionActions"
-msgstr "Submission Actions"
-
-msgid "editor.monograph.legend.submissionActionsDescription"
-msgstr "Overall submission actions and options."
-
-msgid "editor.monograph.legend.sectionActions"
-msgstr "Section Actions"
-
-msgid "editor.monograph.legend.sectionActionsDescription"
-msgstr "Options particular to a given section, for example uploading files or adding users."
-
-msgid "editor.monograph.legend.itemActions"
-msgstr "Item Actions"
-
-msgid "editor.monograph.legend.itemActionsDescription"
-msgstr "Actions and options particular to an individual file."
-
-msgid "editor.monograph.legend.catalogEntry"
-msgstr "View and manage the submission catalog entry, including metadata and publishing formats"
-
-msgid "editor.monograph.legend.bookInfo"
-msgstr "View and manage submission metadata, notes, notifications, and history"
-
-msgid "editor.monograph.legend.participants"
-msgstr "View and manage this submission's participants: authors, editors, designers, and more"
-
-msgid "editor.monograph.legend.add"
-msgstr "Upload a file to the section"
-
-msgid "editor.monograph.legend.add_user"
-msgstr "Add a user to the section"
-
-msgid "editor.monograph.legend.settings"
-msgstr "View and access item settings, such as information and delete options"
-
-msgid "editor.monograph.legend.more_info"
-msgstr "More Information: file notes, notification options, and history"
-
-msgid "editor.monograph.legend.notes_none"
-msgstr "File information: notes, notification options, and history (No notes added yet)"
-
-msgid "editor.monograph.legend.notes"
-msgstr "File information: notes, notification options, and history (Notes are available)"
-
-msgid "editor.monograph.legend.notes_new"
-msgstr "File information: notes, notification options, and history (New notes added since last visit)"
-
-msgid "editor.monograph.legend.edit"
-msgstr "Edit item"
-
-msgid "editor.monograph.legend.delete"
-msgstr "Delete item"
-
-msgid "editor.monograph.legend.in_progress"
-msgstr "Action in progress or not yet complete"
-
-msgid "editor.monograph.legend.complete"
-msgstr "Action complete"
-
-msgid "editor.monograph.legend.uploaded"
-msgstr "File uploaded by the role in the grid column title"
-
-msgid "editor.submission.introduction"
-msgstr "In Submission, the editor, after the consulting the files submitted, selects the appropriate action (which includes notifying the author): Send to Internal Review (entails selecting files for Internal Review); Send to External Review (entails selecting files for External Review); Accept Submission (entails selecting files for Editorial stage); or Decline Submission (archives submission)."
-
-msgid "editor.monograph.editorial.fairCopy"
-msgstr "Fair Copy"
-
-msgid "editor.monograph.proofs"
-msgstr "Proofs"
-
-msgid "editor.monograph.production.approvalAndPublishing"
-msgstr "Approval and Publishing"
-
-msgid "editor.monograph.production.approvalAndPublishingDescription"
-msgstr "Different publication formats, such as hardcover, softcover and digital, can be uploaded in the Publication Formats section below. You can use the publication formats grid below as a checklist for what still needs to be done to publish a publication format."
-
-msgid "editor.monograph.production.publicationFormatDescription"
-msgstr "Add publication formats (e.g., digital, paperback) for which the layout editor prepares page proofs for proofreading. The Proofs need to be checked as approved and the Catalog entry for the format needs to be checked as posted in the book’s catalog entry, before a format can be made Available (i.e., published)."
-
-msgid "editor.monograph.approvedProofs.edit"
-msgstr "Set Terms for Downloading"
-
-msgid "editor.monograph.approvedProofs.edit.linkTitle"
-msgstr "Set Terms"
-
-msgid "editor.monograph.proof.addNote"
-msgstr "Add response"
-
-msgid "editor.submission.proof.manageProofFilesDescription"
-msgstr "Any files that have already been uploaded to any submission stage can be added to the Proof Files listing by checking the Include checkbox below and clicking Search: all available files will be listed and can be chosen for inclusion."
-
-msgid "editor.publicIdentificationExistsForTheSameType"
-msgstr "The public identifier '{$publicIdentifier}' already exists for another object of the same type. Please choose unique identifiers for the objects of the same type within your press."
-
-msgid "editor.submissions.assignedTo"
-msgstr "Assigned To Editor"
diff --git a/locale/en_US/emails.po b/locale/en_US/emails.po
deleted file mode 100644
index 5063942afbf..00000000000
--- a/locale/en_US/emails.po
+++ /dev/null
@@ -1,771 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-12-03T14:14:06-08:00\n"
-"PO-Revision-Date: 2019-12-03T14:14:06-08:00\n"
-"Language: \n"
-
-msgid "emails.notification.subject"
-msgstr "New notification from {$siteTitle}"
-
-msgid "emails.notification.body"
-msgstr ""
-"You have a new notification from {$siteTitle}:
\n"
-"
\n"
-"{$notificationContents}
\n"
-"
\n"
-"Link: {$url}
\n"
-"
\n"
-"This is an automatically generated email; please do not reply to this message.
\n"
-"{$principalContactSignature}"
-
-msgid "emails.notification.description"
-msgstr "The email is sent to registered users that have selected to have this type of notification emailed to them."
-
-msgid "emails.passwordResetConfirm.subject"
-msgstr "Password Reset Confirmation"
-
-msgid "emails.passwordResetConfirm.body"
-msgstr ""
-"We have received a request to reset your password for the {$siteTitle} web site.
\n"
-"
\n"
-"If you did not make this request, please ignore this email and your password will not be changed. If you wish to reset your password, click on the below URL.
\n"
-"
\n"
-"Reset my password: {$url}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordResetConfirm.description"
-msgstr "This email is sent to a registered user when they indicate that they have forgotten their password or are unable to login. It provides a URL they can follow to reset their password."
-
-msgid "emails.passwordReset.subject"
-msgstr "Password Reset"
-
-msgid "emails.passwordReset.body"
-msgstr ""
-"Your password has been successfully reset for use with the {$siteTitle} web site.
\n"
-"
\n"
-"Your username: {$username}
\n"
-"Your new password: {$password}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordReset.description"
-msgstr "This email is sent to a registered user when they have successfully reset their password following the process described in the PASSWORD_RESET_CONFIRM email."
-
-msgid "emails.userRegister.subject"
-msgstr "Press Registration"
-
-msgid "emails.userRegister.body"
-msgstr ""
-"{$userFullName}
\n"
-"
\n"
-"You have now been registered as a user with {$contextName}. We have included your username and password in this email, which are needed for all work with this press through its website. At any point, you can ask to be removed from the list of users by contacting me.
\n"
-"
\n"
-"Username: {$username}
\n"
-"Password: {$password}
\n"
-"
\n"
-"Thank you,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userRegister.description"
-msgstr "This email is sent to a newly registered user to welcome them to the system and provide them with a record of their username and password."
-
-msgid "emails.userValidate.subject"
-msgstr "Validate Your Account"
-
-msgid "emails.userValidate.body"
-msgstr ""
-"{$userFullName}
\n"
-"
\n"
-"You have created an account with {$contextName}, but before you can start using it, you need to validate your email account. To do this, simply follow the link below:
\n"
-"
\n"
-"{$activateUrl}
\n"
-"
\n"
-"Thank you,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userValidate.description"
-msgstr "This email is sent to a newly registered user to welcome them to the system and provide them with a record of their username and password."
-
-msgid "emails.reviewerRegister.subject"
-msgstr "Registration as Reviewer with {$contextName}"
-
-msgid "emails.reviewerRegister.body"
-msgstr ""
-"In light of your expertise, we have taken the liberty of registering your name in the reviewer database for {$contextName}. This does not entail any form of commitment on your part, but simply enables us to approach you with a submission to possibly review. On being invited to review, you will have an opportunity to see the title and abstract of the paper in question, and you'll always be in a position to accept or decline the invitation. You can also ask at any point to have your name removed from this reviewer list.
\n"
-"
\n"
-"We are providing you with a username and password, which is used in all interactions with the press through its website. You may wish, for example, to update your profile, including your reviewing interests.
\n"
-"
\n"
-"Username: {$username}
\n"
-"Password: {$password}
\n"
-"
\n"
-"Thank you,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.reviewerRegister.description"
-msgstr "This email is sent to a newly registered reviewer to welcome them to the system and provide them with a record of their username and password."
-
-msgid "emails.publishNotify.subject"
-msgstr "New Book Published"
-
-msgid "emails.publishNotify.body"
-msgstr ""
-"Readers:
\n"
-"
\n"
-"{$contextName} has just published its latest book at {$contextUrl}. We invite you to review the Table of Contents here and then visit our web site to review monographs and items of interest.
\n"
-"
\n"
-"Thanks for the continuing interest in our work,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.publishNotify.description"
-msgstr "This email is sent to registered readers via the \"Notify Users\" link in the Editor's User Home. It notifies readers of a new book and invites them to visit the press at a supplied URL."
-
-msgid "emails.submissionAck.subject"
-msgstr "Submission Acknowledgement"
-
-msgid "emails.submissionAck.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Thank you for submitting the manuscript, "{$submissionTitle}" to {$contextName}. With the online press management system that we are using, you will be able to track its progress through the editorial process by logging in to the press web site:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}
\n"
-"Username: {$authorUsername}
\n"
-"
\n"
-"If you have any questions, please contact me. Thank you for considering this press as a venue for your work.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAck.description"
-msgstr "This email, when enabled, is automatically sent to an author when he or she completes the process of submitting a manuscript to the press. It provides information about tracking the submission through the process and thanks the author for the submission."
-
-msgid "emails.submissionAckNotUser.subject"
-msgstr "Submission Acknowledgement"
-
-msgid "emails.submissionAckNotUser.body"
-msgstr ""
-"Hello,
\n"
-"
\n"
-"{$submitterName} has submitted the manuscript, "{$submissionTitle}" to {$contextName}.
\n"
-"
\n"
-"If you have any questions, please contact me. Thank you for considering this press as a venue for your work.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAckNotUser.description"
-msgstr "This email, when enabled, is automatically sent to the other authors who are not users within OMP specified during the submission process."
-
-msgid "emails.editorAssign.subject"
-msgstr "Editorial Assignment"
-
-msgid "emails.editorAssign.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"The submission, "{$submissionTitle}," to {$contextName} has been assigned to you to see through the editorial process in your role as an Editor.
\n"
-"
\n"
-"Submission URL: {$submissionUrl}
\n"
-"Username: {$editorUsername}
\n"
-"
\n"
-"Thank you,"
-
-msgid "emails.editorAssign.description"
-msgstr "This email notifies a Series Editor that the Editor has assigned them the task of overseeing a submission through the editing process. It provides information about the submission and how to access the press site."
-
-msgid "emails.reviewRequest.subject"
-msgstr "Manuscript Review Request"
-
-msgid "emails.reviewRequest.body"
-msgstr ""
-"Dear {$reviewerName},
\n"
-"
\n"
-"{$messageToReviewer}
\n"
-"
\n"
-"Please log into the press web site by {$responseDueDate} to indicate whether you will undertake the review or not, as well as to access the submission and to record your review and recommendation.
\n"
-"
\n"
-"The review itself is due {$reviewDueDate}.
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Username: {$reviewerUserName}
\n"
-"
\n"
-"Thank you for considering this request.
\n"
-"
\n"
-"
\n"
-"Sincerely,
\n"
-"{$editorialContactSignature}
\n"
-""
-
-msgid "emails.reviewRequest.description"
-msgstr "This email from the Series Editor to a Reviewer requests that the reviewer accept or decline the task of reviewing a submission. It provides information about the submission such as the title and abstract, a review due date, and how to access the submission itself. This message is used when the Standard Review Process is selected in Management > Settings > Workflow > Review. (Otherwise see REVIEW_REQUEST_ATTACHED.)"
-
-msgid "emails.reviewRequestOneclick.subject"
-msgstr "Manuscript Review Request"
-
-msgid "emails.reviewRequestOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"I believe that you would serve as an excellent reviewer of the manuscript, "{$submissionTitle}," which has been submitted to {$contextName}. The submission's abstract is inserted below, and I hope that you will consider undertaking this important task for us.
\n"
-"
\n"
-"Please log into the press web site by {$weekLaterDate} to indicate whether you will undertake the review or not, as well as to access the submission and to record your review and recommendation.
\n"
-"
\n"
-"The review itself is due {$reviewDueDate}.
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Thank you for considering this request.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$submissionAbstract}"
-
-msgid "emails.reviewRequestOneclick.description"
-msgstr "This email from the Series Editor to a Reviewer requests that the reviewer accept or decline the task of reviewing a submission. It provides information about the submission such as the title and abstract, a review due date, and how to access the submission itself. This message is used when the Standard Review Process is selected in Management > Settings > Workflow > Review, and one-click reviewer access is enabled."
-
-msgid "emails.reviewRequestRemindAuto.subject"
-msgstr "Manuscript Review Request"
-
-msgid "emails.reviewRequestRemindAuto.body"
-msgstr ""
-"Dear {$reviewerName},
\n"
-"Just a gentle reminder of our request for your review of the submission, "{$submissionTitle}," for {$contextName}. We were hoping to have your response by {$responseDueDate}, and this email has been automatically generated and sent with the passing of that date.\n"
-"
\n"
-"{$messageToReviewer}
\n"
-"
\n"
-"Please log into the press web site to indicate whether you will undertake the review or not, as well as to access the submission and to record your review and recommendation.
\n"
-"
\n"
-"The review itself is due {$reviewDueDate}.
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Username: {$reviewerUserName}
\n"
-"
\n"
-"Thank you for considering this request.
\n"
-"
\n"
-"
\n"
-"Sincerely,
\n"
-"{$editorialContactSignature}
\n"
-""
-
-msgid "emails.reviewRequestRemindAuto.description"
-msgstr "This email is automatically sent when a reviewer's confirmation due date elapses (see Review Options under Settings > Workflow > Review) and one-click reviewer access is disabled. Scheduled tasks must be enabled and configured (see the site configuration file)."
-
-msgid "emails.reviewRequestRemindAutoOneclick.subject"
-msgstr "Manuscript Review Request"
-
-msgid "emails.reviewRequestRemindAutoOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"Just a gentle reminder of our request for your review of the submission, "{$submissionTitle}," for {$contextName}. We were hoping to have your response by {$responseDueDate}, and this email has been automatically generated and sent with the passing of that date.\n"
-"
\n"
-"I believe that you would serve as an excellent reviewer of the manuscript. The submission's abstract is inserted below, and I hope that you will consider undertaking this important task for us.
\n"
-"
\n"
-"Please log into the press web site to indicate whether you will undertake the review or not, as well as to access the submission and to record your review and recommendation.
\n"
-"
\n"
-"The review itself is due {$reviewDueDate}.
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Thank you for considering this request.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$submissionAbstract}"
-
-msgid "emails.reviewRequestRemindAutoOneclick.description"
-msgstr "This email is automatically sent when a reviewer's confirmation due date elapses (see Review Options under Settings > Workflow > Review) and one-click reviewer access is enabled. Scheduled tasks must be enabled and configured (see the site configuration file)."
-
-msgid "emails.reviewRequestAttached.subject"
-msgstr "Manuscript Review Request"
-
-msgid "emails.reviewRequestAttached.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"I believe that you would serve as an excellent reviewer of the manuscript, "{$submissionTitle}," and I am asking that you consider undertaking this important task for us. The Review Guidelines for this press are appended below, and the submission is attached to this email. Your review of the submission, along with your recommendation, should be emailed to me by {$reviewDueDate}.
\n"
-"
\n"
-"Please indicate in a return email by {$weekLaterDate} whether you are able and willing to do the review.
\n"
-"
\n"
-"Thank you for considering this request.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"Review Guidelines
\n"
-"
\n"
-"{$reviewGuidelines}
\n"
-""
-
-msgid "emails.reviewRequestAttached.description"
-msgstr "This email is sent by the Series Editor to a Reviewer to request that they accept or decline the task of reviewing a submission. It includes the submission as an attachment. This message is used when the Email-Attachment Review Process is selected in Management > Settings > Workflow > Review. (Otherwise see REVIEW_REQUEST.)"
-
-msgid "emails.reviewCancel.subject"
-msgstr "Request for Review Cancelled"
-
-msgid "emails.reviewCancel.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"We have decided at this point to cancel our request for you to review the submission, "{$submissionTitle}," for {$contextName}. We apologize for any inconvenience this may cause you and hope that we will be able to call on you to assist with this review process in the future.
\n"
-"
\n"
-"If you have any questions, please contact me."
-
-msgid "emails.reviewCancel.description"
-msgstr "This email is sent by the Series Editor to a Reviewer who has a submission review in progress to notify them that the review has been cancelled."
-
-msgid "emails.reviewReinstate.subject"
-msgstr "Request for Review Reinstated"
-
-msgid "emails.reviewReinstate.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"We would like to reinstate our request for you to review the submission, "{$submissionTitle}," for {$contextName}. We hope that you will be able to assist with this journal's review process.
\n"
-"
\n"
-"If you have any questions, please contact me."
-
-msgid "emails.reviewReinstate.description"
-msgstr "This email is sent by the Section Editor to a Reviewer who has a submission review in progress to notify them that the review has been cancelled."
-
-msgid "emails.reviewConfirm.subject"
-msgstr "Able to Review"
-
-msgid "emails.reviewConfirm.body"
-msgstr ""
-"Editor(s):
\n"
-"
\n"
-"I am able and willing to review the submission, "{$submissionTitle}," for {$contextName}. Thank you for thinking of me, and I plan to have the review completed by its due date, {$reviewDueDate}, if not before.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewConfirm.description"
-msgstr "This email is sent by a Reviewer to the Series Editor in response to a review request to notify the Series Editor that the review request has been accepted and will be completed by the specified date."
-
-msgid "emails.reviewDecline.subject"
-msgstr "Unable to Review"
-
-msgid "emails.reviewDecline.body"
-msgstr ""
-"Editor(s):
\n"
-"
\n"
-"I am afraid that at this time I am unable to review the submission, "{$submissionTitle}," for {$contextName}. Thank you for thinking of me, and another time feel free to call on me.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewDecline.description"
-msgstr "This email is sent by a Reviewer to the Series Editor in response to a review request to notify the Series Editor that the review request has been declined."
-
-msgid "emails.reviewAck.subject"
-msgstr "Manuscript Review Acknowledgement"
-
-msgid "emails.reviewAck.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Thank you for completing the review of the submission, "{$submissionTitle}," for {$contextName}. We appreciate your contribution to the quality of the work that we publish."
-
-msgid "emails.reviewAck.description"
-msgstr "This email is sent by a Series Editor to confirm receipt of a completed review and thank the reviewer for their contributions."
-
-msgid "emails.reviewRemind.subject"
-msgstr "Submission Review Reminder"
-
-msgid "emails.reviewRemind.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Just a gentle reminder of our request for your review of the submission, "{$submissionTitle}," for {$contextName}. We were hoping to have this review by {$reviewDueDate}, and would be pleased to receive it as soon as you are able to prepare it.
\n"
-"
\n"
-"If you do not have your username and password for the web site, you can use this link to reset your password (which will then be emailed to you along with your username). {$passwordResetUrl}
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Username: {$reviewerUserName}
\n"
-"
\n"
-"Please confirm your ability to complete this vital contribution to the work of the press. I look forward to hearing from you.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemind.description"
-msgstr "This email is sent by a Series Editor to remind a reviewer that their review is due."
-
-msgid "emails.reviewRemindOneclick.subject"
-msgstr "Submission Review Reminder"
-
-msgid "emails.reviewRemindOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Just a gentle reminder of our request for your review of the submission, "{$submissionTitle}," for {$contextName}. We were hoping to have this review by {$reviewDueDate}, and would be pleased to receive it as soon as you are able to prepare it.
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Please confirm your ability to complete this vital contribution to the work of the press. I look forward to hearing from you.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindOneclick.description"
-msgstr "This email is sent by a Series Editor to remind a reviewer that their review is due."
-
-msgid "emails.reviewRemindAuto.subject"
-msgstr "Automated Submission Review Reminder"
-
-msgid "emails.reviewRemindAuto.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Just a gentle reminder of our request for your review of the submission, "{$submissionTitle}," for {$contextName}. We were hoping to have this review by {$reviewDueDate}, and this email has been automatically generated and sent with the passing of that date. We would still be pleased to receive it as soon as you are able to prepare it.
\n"
-"
\n"
-"If you do not have your username and password for the web site, you can use this link to reset your password (which will then be emailed to you along with your username). {$passwordResetUrl}
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Username: {$reviewerUserName}
\n"
-"
\n"
-"Please confirm your ability to complete this vital contribution to the work of the press. I look forward to hearing from you.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAuto.description"
-msgstr "This email is automatically sent when a reviewer's due date elapses (see Review Options under Settings > Workflow > Review) and one-click reviewer access is disabled. Scheduled tasks must be enabled and configured (see the site configuration file)."
-
-msgid "emails.reviewRemindAutoOneclick.subject"
-msgstr "Automated Submission Review Reminder"
-
-msgid "emails.reviewRemindAutoOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Just a gentle reminder of our request for your review of the submission, "{$submissionTitle}," for {$contextName}. We were hoping to have this review by {$reviewDueDate}, and this email has been automatically generated and sent with the passing of that date. We would still be pleased to receive it as soon as you are able to prepare it.
\n"
-"
\n"
-"Submission URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Please confirm your ability to complete this vital contribution to the work of the press. I look forward to hearing from you.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAutoOneclick.description"
-msgstr "This email is automatically sent when a reviewer's due date elapses (see Review Options under Settings > Workflow > Review) and one-click reviewer access is enabled. Scheduled tasks must be enabled and configured (see the site configuration file)."
-
-msgid "emails.editorDecisionAccept.subject"
-msgstr "Editor Decision"
-
-msgid "emails.editorDecisionAccept.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"We have reached a decision regarding your submission to {$contextName}, "{$submissionTitle}".
\n"
-"
\n"
-"Our decision is to:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionAccept.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them of a final decision regarding their submission."
-
-msgid "emails.editorDecisionSendToExternal.subject"
-msgstr "Editor Decision"
-
-msgid "emails.editorDecisionSendToExternal.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"We have reached a decision regarding your submission to {$contextName}, "{$submissionTitle}".
\n"
-"
\n"
-"Our decision is to:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToExternal.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them that their submission is being sent to an external review."
-
-msgid "emails.editorDecisionSendToProduction.subject"
-msgstr "Editor Decision"
-
-msgid "emails.editorDecisionSendToProduction.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"The editing of your manuscript, "{$submissionTitle}," is complete. We are now sending it to production.
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToProduction.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them that their submission is being sent to production."
-
-msgid "emails.editorDecisionRevisions.subject"
-msgstr "Editor Decision"
-
-msgid "emails.editorDecisionRevisions.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"We have reached a decision regarding your submission to {$contextName}, "{$submissionTitle}".
\n"
-"
\n"
-"Our decision is to:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionRevisions.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them of a final decision regarding their submission."
-
-msgid "emails.editorDecisionResubmit.subject"
-msgstr "Editor Decision"
-
-msgid "emails.editorDecisionResubmit.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"We have reached a decision regarding your submission to {$contextName}, "{$submissionTitle}".
\n"
-"
\n"
-"Our decision is to:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionResubmit.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them of a final decision regarding their submission."
-
-msgid "emails.editorDecisionDecline.subject"
-msgstr "Editor Decision"
-
-msgid "emails.editorDecisionDecline.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"We have reached a decision regarding your submission to {$contextName}, "{$submissionTitle}".
\n"
-"
\n"
-"Our decision is to:
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionDecline.description"
-msgstr "This email from the Editor or Series Editor to an Author notifies them of a final decision regarding their submission."
-
-msgid "emails.editorRecommendation.subject"
-msgstr "Editor Recommendation"
-
-msgid "emails.editorRecommendation.body"
-msgstr ""
-"{$editors}:
\n"
-"
\n"
-"The recommendation regarding the submission to {$contextName}, "{$submissionTitle}" is: {$recommendation}"
-
-msgid "emails.editorRecommendation.description"
-msgstr "This email from the recommending Editor or Section Editor to the decision making Editors or Section Editors notifies them of a final recommendation regarding the submission."
-
-msgid "emails.copyeditRequest.subject"
-msgstr "Copyediting Request"
-
-msgid "emails.copyeditRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"I would ask that you undertake the copyediting of "{$submissionTitle}" for {$contextName} by following these steps.
\n"
-"1. Click on the Submission URL below.
\n"
-"2. Log into the press and click on the File that appears in Step 1.
\n"
-"3. Consult Copyediting Instructions posted on webpage.
\n"
-"4. Open the downloaded file and copyedit, while adding Author Queries as needed.
\n"
-"5. Save copyedited file, and upload to Step 1 of Copyediting.
\n"
-"6. Send the COMPLETE email to the editor.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Submission URL: {$submissionUrl}
\n"
-"Username: {$participantUsername}"
-
-msgid "emails.copyeditRequest.description"
-msgstr "This email is sent by a Series Editor to a submission's Copyeditor to request that they begin the copyediting process. It provides information about the submission and how to access it."
-
-msgid "emails.layoutRequest.subject"
-msgstr "Request Galleys"
-
-msgid "emails.layoutRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"The submission "{$submissionTitle}" to {$contextName} now needs galleys laid out by following these steps.
\n"
-"1. Click on the Submission URL below.
\n"
-"2. Log into the press and use the Layout Version file to create the galleys according to press standards.
\n"
-"3. Send the COMPLETE email to the editor.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Submission URL: {$submissionUrl}
\n"
-"Username: {$participantUsername}
\n"
-"
\n"
-"If you are unable to undertake this work at this time or have any questions, please contact me. Thank you for your contribution to this press."
-
-msgid "emails.layoutRequest.description"
-msgstr "This email from the Series Editor to the Layout Editor notifies them that they have been assigned the task of performing layout editing on a submission. It provides information about the submission and how to access it."
-
-msgid "emails.layoutComplete.subject"
-msgstr "Layout Galleys Complete"
-
-msgid "emails.layoutComplete.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Galleys have now been prepared for the manuscript, "{$submissionTitle}," for {$contextName} and are ready for proofreading.
\n"
-"
\n"
-"If you have any questions, please contact me.
\n"
-"
\n"
-"{$signatureFullName}"
-
-msgid "emails.layoutComplete.description"
-msgstr "This email from the Layout Editor to the Series Editor notifies them that the layout process has been completed."
-
-msgid "emails.indexRequest.subject"
-msgstr "Request Index"
-
-msgid "emails.indexRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"The submission "{$submissionTitle}" to {$contextName} now needs indexes created by following these steps.
\n"
-"1. Click on the Submission URL below.
\n"
-"2. Log into the press and use the Page Proofs file to create the galleys according to press standards.
\n"
-"3. Send the COMPLETE email to the editor.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Submission URL: {$submissionUrl}
\n"
-"Username: {$participantUsername}
\n"
-"
\n"
-"If you are unable to undertake this work at this time or have any questions, please contact me. Thank you for your contribution to this press.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.indexRequest.description"
-msgstr "This email from the Series Editor to the Indexer notifies them that they have been assigned the task of creating indexes for a submission. It provides information about the submission and how to access it."
-
-msgid "emails.indexComplete.subject"
-msgstr "Index Galleys Complete"
-
-msgid "emails.indexComplete.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Indexes have now been prepared for the manuscript, "{$submissionTitle}," for {$contextName} and are ready for proofreading.
\n"
-"
\n"
-"If you have any questions, please contact me.
\n"
-"
\n"
-"{$signatureFullName}"
-
-msgid "emails.indexComplete.description"
-msgstr "This email from the Indexer to the Series Editor notifies them that the index creation process has been completed."
-
-msgid "emails.emailLink.subject"
-msgstr "Manuscript of Possible Interest"
-
-msgid "emails.emailLink.body"
-msgstr "Thought you might be interested in seeing "{$submissionTitle}" by {$authorName} published in Vol {$volume}, No {$number} ({$year}) of {$contextName} at "{$monographUrl}"."
-
-msgid "emails.emailLink.description"
-msgstr "This email template provides a registered reader with the opportunity to send information about a monograph to somebody who may be interested. It is available via the Reading Tools and must be enabled by the Press Manager in the Reading Tools Administration page."
-
-msgid "emails.notifySubmission.subject"
-msgstr "Submission Notification"
-
-msgid "emails.notifySubmission.body"
-msgstr ""
-"You have a message from {$sender} regarding "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
-"
\n"
-"\t\t{$message}
\n"
-"
\n"
-"\t\t"
-
-msgid "emails.notifySubmission.description"
-msgstr "A notification from a user sent from a submission information center modal."
-
-msgid "emails.notifyFile.subject"
-msgstr "Submission File Notification"
-
-msgid "emails.notifyFile.body"
-msgstr ""
-"You have a message from {$sender} regarding the file "{$fileName}" in "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
-"
\n"
-"\t\t{$message}
\n"
-"
\n"
-"\t\t"
-
-msgid "emails.notifyFile.description"
-msgstr "A notification from a user sent from a file information center modal"
-
-msgid "emails.notificationCenterDefault.subject"
-msgstr "A message regarding {$contextName}"
-
-msgid "emails.notificationCenterDefault.body"
-msgstr "Please enter your message."
-
-msgid "emails.notificationCenterDefault.description"
-msgstr "The default (blank) message used in the Notification Center Message Listbuilder."
-
-msgid "emails.editorDecisionInitialDecline.subject"
-msgstr "Editor Decision"
-
-msgid "emails.editorDecisionInitialDecline.body"
-msgstr ""
-"\n"
-"\t\t\t{$authorName}:
\n"
-"
\n"
-"We have reached a decision regarding your submission to {$contextName}, "{$submissionTitle}".
\n"
-"
\n"
-"Our decision is to: Decline Submission
\n"
-"
\n"
-"Manuscript URL: {$submissionUrl}\n"
-"\t\t"
-
-msgid "emails.editorDecisionInitialDecline.description"
-msgstr "This email is send to the author if the editor declines his submission initially, before the review stage"
-
-msgid "emails.statisticsReportNotification.subject"
-msgstr "Editorial activity for {$month}, {$year}"
-
-msgid "emails.statisticsReportNotification.body"
-msgstr ""
-"\n"
-"{$name},
\n"
-"
\n"
-"Your press health report for {$month}, {$year} is now available. Your key stats for this month are below.
\n"
-"\n"
-"\t- New submissions this month: {$newSubmissions}
\n"
-"\t- Declined submissions this month: {$declinedSubmissions}
\n"
-"\t- Accepted submissions this month: {$acceptedSubmissions}
\n"
-"\t- Total submissions in the system: {$totalSubmissions}
\n"
-"
\n"
-"Login to the the press to view more detailed editorial trends and published article stats. A full copy of this month's editorial trends is attached.
\n"
-"
\n"
-"Sincerely,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.statisticsReportNotification.description"
-msgstr "This email is automatically sent monthly to editors and journal managers to provide them a system health overview."
-
-msgid "emails.announcement.subject"
-msgstr "{$title}"
-
-msgid "emails.announcement.body"
-msgstr ""
-"{$title}
\n"
-"
\n"
-"{$summary}
\n"
-"
\n"
-"Visit our website to read the full announcement."
-
-msgid "emails.announcement.description"
-msgstr "This email is sent when a new announcement is created."
\ No newline at end of file
diff --git a/locale/en_US/locale.po b/locale/en_US/locale.po
deleted file mode 100644
index 6398d06646e..00000000000
--- a/locale/en_US/locale.po
+++ /dev/null
@@ -1,1447 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2020-11-13 14:49+0000\n"
-"Last-Translator: Gabriele Höfler \n"
-"Language-Team: English (United States) \n"
-"Language: en_US\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 "common.payments"
-msgstr "Payments"
-
-msgid "monograph.audience"
-msgstr "Audience"
-
-msgid "monograph.audience.success"
-msgstr "The audience details have been updated."
-
-msgid "monograph.coverImage"
-msgstr "Cover Image"
-
-msgid "monograph.audience.rangeQualifier"
-msgstr "Audience Range Qualifier"
-
-msgid "monograph.audience.rangeFrom"
-msgstr "Audience Range (from)"
-
-msgid "monograph.audience.rangeTo"
-msgstr "Audience Range (to)"
-
-msgid "monograph.audience.rangeExact"
-msgstr "Audience Range (exact)"
-
-msgid "monograph.languages"
-msgstr "Languages (English, French, Spanish)"
-
-msgid "monograph.publicationFormats"
-msgstr "Publication Formats"
-
-msgid "monograph.publicationFormat"
-msgstr "Format"
-
-msgid "monograph.publicationFormatDetails"
-msgstr "Details about the available publication format: {$format}"
-
-msgid "monograph.miscellaneousDetails"
-msgstr "Details about this monograph"
-
-msgid "monograph.carousel.publicationFormats"
-msgstr "Formats:"
-
-msgid "monograph.type"
-msgstr "Type of Submission"
-
-msgid "submission.pageProofs"
-msgstr "Page Proofs"
-
-msgid "monograph.proofReadingDescription"
-msgstr "The layout editor uploads the production-ready files that have been prepared for publication here. Use +Assign to designate authors and others to proofread the page proofs, with corrected files uploaded for approval prior to publication."
-
-msgid "monograph.task.addNote"
-msgstr "Add to task"
-
-msgid "monograph.accessLogoOpen.altText"
-msgstr "Open Access"
-
-msgid "monograph.publicationFormat.imprint"
-msgstr "Imprint (Brand Name)"
-
-msgid "monograph.publicationFormat.pageCounts"
-msgstr "Page Counts"
-
-msgid "monograph.publicationFormat.frontMatterCount"
-msgstr "Front Matter"
-
-msgid "monograph.publicationFormat.backMatterCount"
-msgstr "Back Matter"
-
-msgid "monograph.publicationFormat.productComposition"
-msgstr "Product Composition"
-
-msgid "monograph.publicationFormat.productFormDetailCode"
-msgstr "Product Detail (not required)"
-
-msgid "monograph.publicationFormat.productIdentifierType"
-msgstr "Product Identification"
-
-msgid "monograph.publicationFormat.price"
-msgstr "Price"
-
-msgid "monograph.publicationFormat.priceRequired"
-msgstr "A price is required."
-
-msgid "monograph.publicationFormat.priceType"
-msgstr "Price Type"
-
-msgid "monograph.publicationFormat.discountAmount"
-msgstr "Discount percentage, if applicable"
-
-msgid "monograph.publicationFormat.productAvailability"
-msgstr "Product Availability"
-
-msgid "monograph.publicationFormat.returnInformation"
-msgstr "Returnable Indicator"
-
-msgid "monograph.publicationFormat.digitalInformation"
-msgstr "Digital Information"
-
-msgid "monograph.publicationFormat.productDimensions"
-msgstr "Physical Dimensions"
-
-msgid "monograph.publicationFormat.productDimensionsSeparator"
-msgstr " x "
-
-msgid "monograph.publicationFormat.productFileSize"
-msgstr "File Size in Mbytes"
-
-msgid "monograph.publicationFormat.productFileSize.override"
-msgstr "Enter your own file size value?"
-
-msgid "monograph.publicationFormat.productHeight"
-msgstr "Height"
-
-msgid "monograph.publicationFormat.productThickness"
-msgstr "Thickness"
-
-msgid "monograph.publicationFormat.productWeight"
-msgstr "Weight"
-
-msgid "monograph.publicationFormat.productWidth"
-msgstr "Width"
-
-msgid "monograph.publicationFormat.countryOfManufacture"
-msgstr "Country of Manufacture"
-
-msgid "monograph.publicationFormat.technicalProtection"
-msgstr "Digital Technical Protection"
-
-msgid "monograph.publicationFormat.productRegion"
-msgstr "Product Distribution Region"
-
-msgid "monograph.publicationFormat.taxRate"
-msgstr "Taxation Rate"
-
-msgid "monograph.publicationFormat.taxType"
-msgstr "Taxation Type"
-
-msgid "monograph.publicationFormat.isApproved"
-msgstr "Include the metadata for this publication format in the catalog entry for this book."
-
-msgid "monograph.publicationFormat.noMarketsAssigned"
-msgstr "Missing markets and prices."
-
-msgid "monograph.publicationFormat.noCodesAssigned"
-msgstr "Missing an identification code."
-
-msgid "monograph.publicationFormat.missingONIXFields"
-msgstr "Missing some metadata fields."
-
-msgid "monograph.publicationFormat.formatDoesNotExist"
-msgstr "The publication format you have chosen no longer exists for this monograph.
"
-
-msgid "monograph.publicationFormat.openTab"
-msgstr "Open publication format tab."
-
-msgid "grid.catalogEntry.publicationFormatType"
-msgstr "Publication Format"
-
-msgid "grid.catalogEntry.nameRequired"
-msgstr "A name is required."
-
-msgid "grid.catalogEntry.validPriceRequired"
-msgstr "A valid price is required."
-
-msgid "grid.catalogEntry.publicationFormatDetails"
-msgstr "Format Details"
-
-msgid "grid.catalogEntry.physicalFormat"
-msgstr "Physical format"
-
-msgid "grid.catalogEntry.remotelyHostedContent"
-msgstr "This format will be available at a separate website"
-
-msgid "grid.catalogEntry.remoteURL"
-msgstr "URL of remotely-hosted content"
-
-msgid "grid.catalogEntry.monographRequired"
-msgstr "A monograph id is required."
-
-msgid "grid.catalogEntry.publicationFormatRequired"
-msgstr "A publication format must be chosen."
-
-msgid "grid.catalogEntry.availability"
-msgstr "Availability"
-
-msgid "grid.catalogEntry.isAvailable"
-msgstr "Available"
-
-msgid "grid.catalogEntry.isNotAvailable"
-msgstr "Not Available"
-
-msgid "grid.catalogEntry.proof"
-msgstr "Proof"
-
-msgid "grid.catalogEntry.approvedRepresentation.title"
-msgstr "Format Approval"
-
-msgid "grid.catalogEntry.approvedRepresentation.message"
-msgstr "Approve the metadata for this format. Metadata can be checked from the Edit panel for each format.
"
-
-msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
-msgstr "Indicate that the metadata for this format has not been approved.
"
-
-msgid "grid.catalogEntry.availableRepresentation.title"
-msgstr "Format Availability"
-
-msgid "grid.catalogEntry.availableRepresentation.message"
-msgstr "Make this format available to readers. Downloadable files and any other distributions will appear in the book's catalog entry.
"
-
-msgid "grid.catalogEntry.availableRepresentation.removeMessage"
-msgstr "This format will unavailable to readers. Any downloadable files or other distributions will no longer appear in the book's catalog entry.
"
-
-msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
-msgstr "Catalog entry not approved."
-
-msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
-msgstr "Format not in catalog entry."
-
-msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
-msgstr "Proof not approved."
-
-msgid "grid.catalogEntry.availableRepresentation.approved"
-msgstr "Approved"
-
-msgid "grid.catalogEntry.availableRepresentation.notApproved"
-msgstr "Awaiting Approval"
-
-msgid "grid.catalogEntry.fileSizeRequired"
-msgstr "A file size for digital formats required."
-
-msgid "grid.catalogEntry.productAvailabilityRequired"
-msgstr "A product availability code is required."
-
-msgid "grid.catalogEntry.productCompositionRequired"
-msgstr "A product composition code must be chosen."
-
-msgid "grid.catalogEntry.identificationCodeValue"
-msgstr "Code Value"
-
-msgid "grid.catalogEntry.identificationCodeType"
-msgstr "ONIX Code Type"
-
-msgid "grid.catalogEntry.codeRequired"
-msgstr "An identification code is required."
-
-msgid "grid.catalogEntry.valueRequired"
-msgstr "A value is required."
-
-msgid "grid.catalogEntry.salesRights"
-msgstr "Sales Rights"
-
-msgid "grid.catalogEntry.salesRightsValue"
-msgstr "Code Value"
-
-msgid "grid.catalogEntry.salesRightsType"
-msgstr "Sales Rights Type"
-
-msgid "grid.catalogEntry.salesRightsROW"
-msgstr "Rest of World?"
-
-msgid "grid.catalogEntry.salesRightsROW.tip"
-msgstr "Check this box to use this Sales Rights entry as a catch-all for your format. Countries and regions need not be chosen in this case."
-
-msgid "grid.catalogEntry.oneROWPerFormat"
-msgstr "There is already a ROW sales type defined for this publication format."
-
-msgid "grid.catalogEntry.countries"
-msgstr "Countries"
-
-msgid "grid.catalogEntry.regions"
-msgstr "Regions"
-
-msgid "grid.catalogEntry.included"
-msgstr "Included"
-
-msgid "grid.catalogEntry.excluded"
-msgstr "Excluded"
-
-msgid "grid.catalogEntry.markets"
-msgstr "Market Territories"
-
-msgid "grid.catalogEntry.marketTerritory"
-msgstr "Territory"
-
-msgid "grid.catalogEntry.publicationDates"
-msgstr "Publication Dates"
-
-msgid "grid.catalogEntry.roleRequired"
-msgstr "A representative role is required."
-
-msgid "grid.catalogEntry.dateFormatRequired"
-msgstr "A date format is required."
-
-msgid "grid.catalogEntry.dateValue"
-msgstr "Date"
-
-msgid "grid.catalogEntry.dateRole"
-msgstr "Role"
-
-msgid "grid.catalogEntry.dateFormat"
-msgstr "Date Format"
-
-msgid "grid.catalogEntry.dateRequired"
-msgstr "A date is required and the date value must match the chosen date format."
-
-msgid "grid.catalogEntry.representatives"
-msgstr "Representatives"
-
-msgid "grid.catalogEntry.representativeType"
-msgstr "Representative Type"
-
-msgid "grid.catalogEntry.agentsCategory"
-msgstr "Agents"
-
-msgid "grid.catalogEntry.suppliersCategory"
-msgstr "Suppliers"
-
-msgid "grid.catalogEntry.agent"
-msgstr "Agent"
-
-msgid "grid.catalogEntry.agentTip"
-msgstr "You may assign an agent to represent you in this defined territory. It is not required."
-
-msgid "grid.catalogEntry.supplier"
-msgstr "Supplier"
-
-msgid "grid.catalogEntry.representativeRoleChoice"
-msgstr "Choose a role:"
-
-msgid "grid.catalogEntry.representativeRole"
-msgstr "Role"
-
-msgid "grid.catalogEntry.representativeName"
-msgstr "Name"
-
-msgid "grid.catalogEntry.representativePhone"
-msgstr "Phone"
-
-msgid "grid.catalogEntry.representativeEmail"
-msgstr "Email Address"
-
-msgid "grid.catalogEntry.representativeWebsite"
-msgstr "Website"
-
-msgid "grid.catalogEntry.representativeIdValue"
-msgstr "Representative ID"
-
-msgid "grid.catalogEntry.representativeIdType"
-msgstr "Representative ID Type (GLN is recommended)"
-
-msgid "grid.catalogEntry.representativesDescription"
-msgstr "You may leave the following section empty if you provide your own services to your customers."
-
-msgid "grid.action.addRepresentative"
-msgstr "Add Representative"
-
-msgid "grid.action.editRepresentative"
-msgstr "Edit this Representative"
-
-msgid "grid.action.deleteRepresentative"
-msgstr "Delete this Representative"
-
-msgid "spotlight"
-msgstr "Spotlight"
-
-msgid "spotlight.spotlights"
-msgstr "Spotlights"
-
-msgid "spotlight.noneExist"
-msgstr "There are no current spotlights."
-
-msgid "spotlight.title.homePage"
-msgstr "In the Spotlight"
-
-msgid "spotlight.author"
-msgstr "Author, "
-
-msgid "grid.content.spotlights.spotlightItemTitle"
-msgstr "Spotlight Item"
-
-msgid "grid.content.spotlights.category.homepage"
-msgstr "Homepage"
-
-msgid "grid.content.spotlights.form.location"
-msgstr "Spotlight Location"
-
-msgid "grid.content.spotlights.form.item"
-msgstr "Enter spotlighted title (autocomplete)"
-
-msgid "grid.content.spotlights.form.title"
-msgstr "Spotlight title"
-
-msgid "grid.content.spotlights.form.type.book"
-msgstr "Book"
-
-msgid "grid.content.spotlights.itemRequired"
-msgstr "An item is required."
-
-msgid "grid.content.spotlights.titleRequired"
-msgstr "A spotlight title is required."
-
-msgid "grid.content.spotlights.locationRequired"
-msgstr "Please choose a location for this spotlight."
-
-msgid "grid.action.editSpotlight"
-msgstr "Edit this spotlight"
-
-msgid "grid.action.deleteSpotlight"
-msgstr "Delete this spotlight"
-
-msgid "grid.action.addSpotlight"
-msgstr "Add Spotlight"
-
-msgid "manager.series.open"
-msgstr "Open Submissions"
-
-msgid "manager.series.indexed"
-msgstr "Indexed"
-
-msgid "grid.libraryFiles.column.files"
-msgstr "Files"
-
-msgid "grid.action.catalogEntry"
-msgstr "View the catalog entry form"
-
-msgid "grid.action.formatInCatalogEntry"
-msgstr "Format appears in catalog entry"
-
-msgid "grid.action.editFormat"
-msgstr "Edit this format"
-
-msgid "grid.action.deleteFormat"
-msgstr "Delete this format"
-
-msgid "grid.action.addFormat"
-msgstr "Add publication format"
-
-msgid "grid.action.approveProof"
-msgstr "Approve the proof for indexing and inclusion in the catalog"
-
-msgid "grid.action.pageProofApproved"
-msgstr "Page proofs file is ready for publication"
-
-msgid "grid.action.addAnnouncement"
-msgstr "Add an Announcement"
-
-msgid "grid.action.newCatalogEntry"
-msgstr "New Catalog Entry"
-
-msgid "grid.action.publicCatalog"
-msgstr "View this item in the catalog"
-
-msgid "grid.action.feature"
-msgstr "Toggle the feature display"
-
-msgid "grid.action.featureMonograph"
-msgstr "Feature this in the catalog carousel"
-
-msgid "grid.action.releaseMonograph"
-msgstr "Mark this submission as a 'new release'"
-
-msgid "grid.action.manageCategories"
-msgstr "Configure categories for this press"
-
-msgid "grid.action.manageSeries"
-msgstr "Configure series for this press"
-
-msgid "grid.action.addCode"
-msgstr "Add Code"
-
-msgid "grid.action.editCode"
-msgstr "Edit this Code"
-
-msgid "grid.action.deleteCode"
-msgstr "Delete this Code"
-
-msgid "grid.action.addRights"
-msgstr "Add Sales Rights"
-
-msgid "grid.action.editRights"
-msgstr "Edit these rights"
-
-msgid "grid.action.deleteRights"
-msgstr "Delete these rights"
-
-msgid "grid.action.addMarket"
-msgstr "Add Market"
-
-msgid "grid.action.editMarket"
-msgstr "Edit this Market"
-
-msgid "grid.action.deleteMarket"
-msgstr "Delete this Market"
-
-msgid "grid.action.addDate"
-msgstr "Add publication date"
-
-msgid "grid.action.editDate"
-msgstr "Edit this Date"
-
-msgid "grid.action.deleteDate"
-msgstr "Delete this Date"
-
-msgid "grid.action.createContext"
-msgstr "Create a new Press"
-
-msgid "grid.action.publicationFormatTab"
-msgstr "Show the publication format tab"
-
-msgid "grid.action.moreAnnouncements"
-msgstr "Go to press announcements page"
-
-msgid "grid.action.submissionEmail"
-msgstr "Click to read this email"
-
-msgid "grid.action.approveProofs"
-msgstr "View the proofs grid"
-
-msgid "grid.action.proofApproved"
-msgstr "Format has been proofed"
-
-msgid "grid.action.availableRepresentation"
-msgstr "Approve/disapprove this format"
-
-msgid "grid.action.formatAvailable"
-msgstr "Toggle the availability of this format on and off"
-
-msgid "grid.reviewAttachments.add"
-msgstr "Add Attachment to Review"
-
-msgid "grid.reviewAttachments.availableFiles"
-msgstr "Available Files"
-
-msgid "submissionGroup.assignedSubEditors"
-msgstr "Assigned editors"
-
-msgid "series.series"
-msgstr "Series"
-
-msgid "series.featured.description"
-msgstr "This series will appear on the main navigation"
-
-msgid "series.path"
-msgstr "Path"
-
-msgid "catalog.manage"
-msgstr "Catalog Management"
-
-msgid "catalog.manage.newReleases"
-msgstr "New Releases"
-
-msgid "catalog.manage.category"
-msgstr "Category"
-
-msgid "catalog.manage.series"
-msgstr "Series"
-
-msgid "catalog.manage.series.issn"
-msgstr "ISSN"
-
-msgid "catalog.manage.series.issn.validation"
-msgstr "Please enter a valid ISSN."
-
-msgid "catalog.manage.series.issn.equalValidation"
-msgstr "Online and print ISSN must not be the same."
-
-msgid "catalog.manage.series.onlineIssn"
-msgstr "Online ISSN"
-
-msgid "catalog.manage.series.printIssn"
-msgstr "Print ISSN"
-
-msgid "catalog.selectSeries"
-msgstr "Select Series"
-
-msgid "catalog.selectCategory"
-msgstr "Select Category"
-
-msgid "catalog.manage.homepageDescription"
-msgstr "The cover image of selected books appears toward the top of the homepage as a scrollable set. Click 'Feature', then the star to add a book to the carousel; click the exclamation point to feature as a new release; drag and drop to order."
-
-msgid "catalog.manage.categoryDescription"
-msgstr "Click 'Feature', then the star to select a featured book for this category; drag and drop to order."
-
-msgid "catalog.manage.seriesDescription"
-msgstr "Click 'Feature', then the star to select a featured book for this series; drag and drop to order. Series are identified with an editor(s) and a series title, within a category or independently."
-
-msgid "catalog.manage.placeIntoCarousel"
-msgstr "Carousel"
-
-msgid "catalog.manage.newRelease"
-msgstr "Release"
-
-msgid "catalog.manage.manageSeries"
-msgstr "Manage Series"
-
-msgid "catalog.manage.manageCategories"
-msgstr "Manage Categories"
-
-msgid "catalog.manage.noMonographs"
-msgstr "There are no assigned monographs."
-
-msgid "catalog.manage.featured"
-msgstr "Featured"
-
-msgid "catalog.manage.categoryFeatured"
-msgstr "Featured in category"
-
-msgid "catalog.manage.seriesFeatured"
-msgstr "Featured in series"
-
-msgid "catalog.manage.featuredSuccess"
-msgstr "Monograph is featured."
-
-msgid "catalog.manage.notFeaturedSuccess"
-msgstr "Monograph is not featured."
-
-msgid "catalog.manage.newReleaseSuccess"
-msgstr "Monograph is marked as a new release."
-
-msgid "catalog.manage.notNewReleaseSuccess"
-msgstr "Monograph is unmarked as a new release."
-
-msgid "catalog.manage.feature.newRelease"
-msgstr "New release"
-
-msgid "catalog.manage.feature.categoryNewRelease"
-msgstr "New release in category"
-
-msgid "catalog.manage.feature.seriesNewRelease"
-msgstr "New release in series"
-
-msgid "catalog.manage.nonOrderable"
-msgstr "This monograph is not orderable until it's featured."
-
-msgid "catalog.manage.filter.searchByAuthorOrTitle"
-msgstr "Search by title or author"
-
-msgid "catalog.manage.isFeatured"
-msgstr "This monograph is featured. Make this monograph not featured."
-
-msgid "catalog.manage.isNotFeatured"
-msgstr "This monograph is not featured. Make this monograph featured."
-
-msgid "catalog.manage.isNewRelease"
-msgstr "This monograph is a new release. Make this monograph not a new release."
-
-msgid "catalog.manage.isNotNewRelease"
-msgstr "This monograph is not a new release. Make this monograph a new release."
-
-msgid "catalog.manage.noSubmissionsSelected"
-msgstr "No submissions were selected to be added to the catalog."
-
-msgid "catalog.manage.submissionsNotFound"
-msgstr "One or more of the submissions could not be found."
-
-msgid "catalog.manage.findSubmissions"
-msgstr "Find monographs to add to the catalog"
-
-msgid "catalog.noTitles"
-msgstr "No titles have been published yet."
-
-msgid "catalog.noTitlesNew"
-msgstr "No new releases are available at this time."
-
-msgid "catalog.noTitlesSearch"
-msgstr "No titles were found which matched your search for \"{$searchQuery}\"."
-
-msgid "catalog.feature"
-msgstr "Feature"
-
-msgid "catalog.featured"
-msgstr "Featured"
-
-msgid "catalog.featuredBooks"
-msgstr "Featured Books"
-
-msgid "catalog.foundTitleSearch"
-msgstr "One title was found which matched your search for \"{$searchQuery}\"."
-
-msgid "catalog.foundTitlesSearch"
-msgstr "{$number} titles were found which matched your search for \"{$searchQuery}\"."
-
-msgid "catalog.category.heading"
-msgstr "All Books"
-
-msgid "catalog.newReleases"
-msgstr "New Releases"
-
-msgid "catalog.dateAdded"
-msgstr "Added"
-
-msgid "catalog.publicationInfo"
-msgstr "Publication Info"
-
-msgid "catalog.published"
-msgstr "Published"
-
-msgid "catalog.forthcoming"
-msgstr "Forthcoming"
-
-msgid "catalog.categories"
-msgstr "Categories"
-
-msgid "catalog.parentCategory"
-msgstr "Parent Category"
-
-msgid "catalog.category.subcategories"
-msgstr "Subcategories"
-
-msgid "catalog.aboutTheAuthor"
-msgstr "About the {$roleName}"
-
-msgid "catalog.loginRequiredForPayment"
-msgstr "Please note: In order to purchase items, you will need to log in first. Selecting an item to purchase will direct you to the login page. Any item marked with an Open Access icon may be downloaded free of charge, without logging in."
-
-msgid "catalog.sortBy"
-msgstr "Order of monographs"
-
-msgid "catalog.sortBy.seriesDescription"
-msgstr "Choose how to order books in this series."
-
-msgid "catalog.sortBy.categoryDescription"
-msgstr "Choose how to order books in this category."
-
-msgid "catalog.sortBy.catalogDescription"
-msgstr "Choose how to order books in the catalog."
-
-msgid "catalog.sortBy.seriesPositionAsc"
-msgstr "Series position (lowest first)"
-
-msgid "catalog.sortBy.seriesPositionDesc"
-msgstr "Series position (highest first)"
-
-msgid "catalog.viewableFile.title"
-msgstr "{$type} view of the file {$title}"
-
-msgid "catalog.viewableFile.return"
-msgstr "Return to view details about {$monographTitle}"
-
-msgid "submission.search"
-msgstr "Book Search"
-
-msgid "common.publication"
-msgstr "Monograph"
-
-msgid "common.publications"
-msgstr "Monographs"
-
-msgid "common.prefix"
-msgstr "Prefix"
-
-msgid "common.preview"
-msgstr "Preview"
-
-msgid "common.feature"
-msgstr "Feature"
-
-msgid "common.searchCatalog"
-msgstr "Search Catalog"
-
-msgid "common.moreInfo"
-msgstr "More Information"
-
-msgid "common.listbuilder.completeForm"
-msgstr "Please fill out the form completely."
-
-msgid "common.listbuilder.selectValidOption"
-msgstr "Please select a valid option from the list."
-
-msgid "common.listbuilder.itemExists"
-msgstr "You cannot add the same item twice."
-
-msgid "common.software"
-msgstr "Open Monograph Press"
-
-msgid "common.omp"
-msgstr "OMP"
-
-msgid "common.homePageHeader.altText"
-msgstr "Homepage Header"
-
-msgid "navigation.catalog"
-msgstr "Catalog"
-
-msgid "navigation.competingInterestPolicy"
-msgstr "Competing Interest Policy"
-
-msgid "navigation.catalog.allMonographs"
-msgstr "All Monographs"
-
-msgid "navigation.catalog.manage"
-msgstr "Manage"
-
-msgid "navigation.catalog.administration.short"
-msgstr "Administration"
-
-msgid "navigation.catalog.administration"
-msgstr "Catalog Administration"
-
-msgid "navigation.catalog.administration.categories"
-msgstr "Categories"
-
-msgid "navigation.catalog.administration.series"
-msgstr "Series"
-
-msgid "navigation.infoForAuthors"
-msgstr "For Authors"
-
-msgid "navigation.infoForLibrarians"
-msgstr "For Librarians"
-
-msgid "navigation.infoForAuthors.long"
-msgstr "Information For Authors"
-
-msgid "navigation.infoForLibrarians.long"
-msgstr "Information For Librarians"
-
-msgid "navigation.newReleases"
-msgstr "New Releases"
-
-msgid "navigation.published"
-msgstr "Published"
-
-msgid "navigation.wizard"
-msgstr "Wizard"
-
-msgid "navigation.linksAndMedia"
-msgstr "Links and Social Media"
-
-msgid "navigation.navigationMenus.catalog.description"
-msgstr "Link to your catalog."
-
-msgid "navigation.skip.spotlights"
-msgstr "Skip to spotlights"
-
-msgid "navigation.navigationMenus.series.generic"
-msgstr "Series"
-
-msgid "navigation.navigationMenus.series.description"
-msgstr "Link to a series."
-
-msgid "navigation.navigationMenus.category.generic"
-msgstr "Category"
-
-msgid "navigation.navigationMenus.category.description"
-msgstr "Link to a category."
-
-msgid "navigation.navigationMenus.newRelease"
-msgstr "New Releases"
-
-msgid "navigation.navigationMenus.newRelease.description"
-msgstr "Link to your New Releases."
-
-msgid "context.contexts"
-msgstr "Presses"
-
-msgid "context.context"
-msgstr "Press"
-
-msgid "context.current"
-msgstr "Current Press:"
-
-msgid "context.select"
-msgstr "Switch to another press:"
-
-msgid "user.authorization.representationNotFound"
-msgstr "The requested publication format could not be found."
-
-msgid "user.noRoles.selectUsersWithoutRoles"
-msgstr "Include users with no roles in this press."
-
-msgid "user.noRoles.submitMonograph"
-msgstr "Submit a Proposal"
-
-msgid "user.noRoles.submitMonographRegClosed"
-msgstr "Submit an Monograph: Author registration is currently disabled."
-
-msgid "user.noRoles.regReviewer"
-msgstr "Register as a Reviewer"
-
-msgid "user.noRoles.regReviewerClosed"
-msgstr "Register as a Reviewer: Reviewer registration is currently disabled."
-
-msgid "user.reviewerPrompt"
-msgstr "Would you be willing to review submissions to this press?"
-
-msgid "user.reviewerPrompt.userGroup"
-msgstr "Yes, request the {$userGroup} role."
-
-msgid "user.reviewerPrompt.optin"
-msgstr "Yes, I would like to be contacted with requests to review submissions to this press."
-
-msgid "user.register.contextsPrompt"
-msgstr "Which presses on this site would you like to register with?"
-
-msgid "user.register.otherContextRoles"
-msgstr "Request the following roles."
-
-msgid "user.register.noContextReviewerInterests"
-msgstr "If you requested to be a reviewer for any press, please enter your subject interests."
-
-msgid "user.role.manager"
-msgstr "Press Manager"
-
-msgid "user.role.pressEditor"
-msgstr "Press Editor"
-
-msgid "user.role.subEditor"
-msgstr "Series Editor"
-
-msgid "user.role.copyeditor"
-msgstr "Copyeditor"
-
-msgid "user.role.proofreader"
-msgstr "Proofreader"
-
-msgid "user.role.productionEditor"
-msgstr "Production Editor"
-
-msgid "user.role.managers"
-msgstr "Press Managers"
-
-msgid "user.role.subEditors"
-msgstr "Series Editors"
-
-msgid "user.role.editors"
-msgstr "Editors"
-
-msgid "user.role.copyeditors"
-msgstr "Copyeditors"
-
-msgid "user.role.proofreaders"
-msgstr "Proofreaders"
-
-msgid "user.role.productionEditors"
-msgstr "Production Editors"
-
-msgid "user.register.selectContext"
-msgstr "Select a press to register with:"
-
-msgid "user.register.noContexts"
-msgstr "There are no presses you may register with on this site."
-
-msgid "user.register.privacyStatement"
-msgstr "Privacy Statement"
-
-msgid "user.register.registrationDisabled"
-msgstr "This press is currently not accepting user registrations."
-
-msgid "user.register.form.passwordLengthTooShort"
-msgstr "The password you entered is not long enough."
-
-msgid "user.register.readerDescription"
-msgstr "Notified by email on publication of a monograph."
-
-msgid "user.register.authorDescription"
-msgstr "Able to submit items to the press."
-
-msgid "user.register.reviewerDescriptionNoInterests"
-msgstr "Willing to conduct peer review of submissions to the press."
-
-msgid "user.register.reviewerDescription"
-msgstr "Willing to conduct peer review of submissions to the site."
-
-msgid "user.register.reviewerInterests"
-msgstr "Identify reviewing interests (substantive areas and research methods):"
-
-msgid "user.register.form.userGroupRequired"
-msgstr "You must select at least one role"
-
-msgid "user.register.form.privacyConsentThisContext"
-msgstr "Yes, I agree to have my data collected and stored according to this press's privacy statement."
-
-msgid "site.noPresses"
-msgstr "There are no presses available."
-
-msgid "site.pressView"
-msgstr "View Press Website"
-
-msgid "about.pressContact"
-msgstr "Press Contact"
-
-msgid "about.aboutContext"
-msgstr "About the Press"
-
-msgid "about.editorialTeam"
-msgstr "Editorial Team"
-
-msgid "about.editorialPolicies"
-msgstr "Editorial Policies"
-
-msgid "about.focusAndScope"
-msgstr "Focus and Scope"
-
-msgid "about.seriesPolicies"
-msgstr "Series and Category Policies"
-
-msgid "about.submissions"
-msgstr "Submissions"
-
-msgid "about.onlineSubmissions"
-msgstr "Online Submissions"
-
-msgid "about.onlineSubmissions.login"
-msgstr "Login"
-
-msgid "about.onlineSubmissions.register"
-msgstr "Register"
-
-msgid "about.onlineSubmissions.registrationRequired"
-msgstr "{$login} or {$register} to make a submission."
-
-msgid "about.onlineSubmissions.submissionActions"
-msgstr "{$newSubmission} or {$viewSubmissions}."
-
-msgid "about.onlineSubmissions.newSubmission"
-msgstr "Make a new submission"
-
-msgid "about.onlineSubmissions.viewSubmissions"
-msgstr "view your pending submissions"
-
-msgid "about.authorGuidelines"
-msgstr "Author Guidelines"
-
-msgid "about.submissionPreparationChecklist"
-msgstr "Submission Preparation Checklist"
-
-msgid "about.submissionPreparationChecklist.description"
-msgstr "As part of the submission process, authors are required to check off their submission's compliance with all of the following items, and submissions may be returned to authors that do not adhere to these guidelines."
-
-msgid "about.copyrightNotice"
-msgstr "Copyright Notice"
-
-msgid "about.privacyStatement"
-msgstr "Privacy Statement"
-
-msgid "about.reviewPolicy"
-msgstr "Peer Review Process"
-
-msgid "about.publicationFrequency"
-msgstr "Publication Frequency"
-
-msgid "about.openAccessPolicy"
-msgstr "Open Access Policy"
-
-msgid "about.pressSponsorship"
-msgstr "Press Sponsorship"
-
-msgid "about.aboutThisPublishingSystem"
-msgstr "More information about the publishing system, Platform and Workflow by OMP/PKP."
-
-msgid "about.aboutThisPublishingSystem.altText"
-msgstr "OMP Editorial and Publishing Process"
-
-msgid "about.aboutSoftware"
-msgstr "About Open Monograph Press"
-
-msgid "about.aboutOMPPress"
-msgstr "This press uses Open Monograph Press {$ompVersion}, which is open source press management and publishing software developed, supported, and freely distributed by the Public Knowledge Project under the GNU General Public License. Visit PKP's website to learn more about the software. Please contact the press directly with questions about the press and submissions to the press."
-
-msgid "about.aboutOMPSite"
-msgstr "This site uses Open Monograph Press {$ompVersion}, which is open source press management and publishing software developed, supported, and freely distributed by the Public Knowledge Project under the GNU General Public License. Visit PKP's website to learn more about the software. Please contact the site directly with questions about its presses and submissions to its presses."
-
-msgid "help.searchReturnResults"
-msgstr "Return to Search Results"
-
-msgid "help.goToEditPage"
-msgstr "Open a new page to edit this information"
-
-msgid "installer.appInstallation"
-msgstr "OMP Installation"
-
-msgid "installer.ompUpgrade"
-msgstr "OMP Upgrade"
-
-msgid "installer.installApplication"
-msgstr "Install Open Monograph Press"
-
-msgid "installer.updatingInstructions"
-msgstr "If you are upgrading an existing installation of OMP, click here to proceed."
-
-msgid "installer.installationInstructions"
-msgstr ""
-"\n"
-"Thank you for downloading the Public Knowledge Project's Open Monograph Press {$version}. Before proceeding, please read the README file included with this software. For more information about the Public Knowledge Project and its software projects, please visit the PKP web site. If you have bug reports or technical support inquiries about Open Monograph Press, see the support forum or visit PKP's online bug reporting system. Although the support forum is the preferred method of contact, you can also email the team at pkp.contact@gmail.com.
\n"
-
-msgid "installer.preInstallationInstructionsTitle"
-msgstr "Pre-Installation Steps"
-
-msgid "installer.preInstallationInstructions"
-msgstr ""
-"1. The following files and directories (and their contents) must be made writable:
\n"
-"\n"
-"\t- config.inc.php is writable (optional): {$writable_config}
\n"
-"\t- public/ is writable: {$writable_public}
\n"
-"\t- cache/ is writable: {$writable_cache}
\n"
-"\t- cache/t_cache/ is writable: {$writable_templates_cache}
\n"
-"\t- cache/t_compile/ is writable: {$writable_templates_compile}
\n"
-"\t- cache/_db is writable: {$writable_db_cache}
\n"
-"
\n"
-"\n"
-"2. A directory to store uploaded files must be created and made writable (see \"File Settings\" below).
"
-
-msgid "installer.upgradeInstructions"
-msgstr ""
-"OMP Version {$version}
\n"
-"\n"
-"Thank you for downloading the Public Knowledge Project's Open Monograph Press. Before proceeding, please read the README and UPGRADE files included with this software. For more information about the Public Knowledge Project and its software projects, please visit the PKP web site. If you have bug reports or technical support inquiries about Open Monograph Press, see the support forum or visit PKP's online bug reporting system. Although the support forum is the preferred method of contact, you can also email the team at pkp.contact@gmail.com.
\n"
-"It is strongly recommended that you back up your database, files directory, and OMP installation directory before proceeding.
\n"
-"If you are running in PHP Safe Mode, please ensure that the max_execution_time directive in your php.ini configuration file is set to a high limit. If this or any other time limit (e.g. Apache's \"Timeout\" directive) is reached and the upgrade process is interrupted, manual intervention will be required.
"
-
-msgid "installer.localeSettingsInstructions"
-msgstr ""
-"For complete Unicode (UTF-8) support, select UTF-8 for all character set settings. Note that this support currently requires a MySQL >= 4.1.1 or PostgreSQL >= 9.1.5 database server. Please also note that full Unicode support requires the mbstring library (enabled by default in most recent PHP installations). You may experience problems using extended character sets if your server does not meet these requirements.\n"
-"
\n"
-"Your server currently supports mbstring: {$supportsMBString}"
-
-msgid "installer.allowFileUploads"
-msgstr "Your server currently allows file uploads: {$allowFileUploads}"
-
-msgid "installer.maxFileUploadSize"
-msgstr "Your server currently allows a maximum file upload size of: {$maxFileUploadSize}"
-
-msgid "installer.localeInstructions"
-msgstr "The primary language to use for this system. Please consult the OMP documentation if you are interested in support for languages not listed here."
-
-msgid "installer.additionalLocalesInstructions"
-msgstr "Select any additional languages to support in this system. These languages will be available for use by presses hosted on the site. Additional languages can also be installed at any time from the site administration interface. Locales marked * may be incomplete."
-
-msgid "installer.filesDirInstructions"
-msgstr "Enter full pathname to an existing directory where uploaded files are to be kept. This directory should not be directly web-accessible. Please ensure that this directory exists and is writable prior to installation. Windows path names should use forward slashes, e.g. \"C:/mypress/files\"."
-
-msgid "installer.databaseSettingsInstructions"
-msgstr "OMP requires access to a SQL database to store its data. See the system requirements above for a list of supported databases. In the fields below, provide the settings to be used to connect to the database."
-
-msgid "installer.upgradeApplication"
-msgstr "Upgrade Open Monograph Press"
-
-msgid "installer.overwriteConfigFileInstructions"
-msgstr ""
-"IMPORTANT!
\n"
-"The installer could not automatically overwrite the configuration file. Before attempting to use the system, please open config.inc.php in a suitable text editor and replace its contents with the contents of the text field below.
"
-
-msgid "installer.installationComplete"
-msgstr ""
-"Installation of OMP has completed successfully.
\n"
-"To begin using the system, login with the username and password entered on the previous page.
\n"
-"If you wish to receive news and updates, please register at http://pkp.sfu.ca/omp/register. If you have questions or comments, please visit the support forum.
"
-
-msgid "installer.upgradeComplete"
-msgstr ""
-"Upgrade of OMP to version {$version} has completed successfully.
\n"
-"Don't forget to set the \"installed\" setting in your config.inc.php configuration file back to On.
\n"
-"If you haven't already registered and wish to receive news and updates, please register at http://pkp.sfu.ca/omp/register. If you have questions or comments, please visit the support forum.
"
-
-msgid "log.review.reviewDueDateSet"
-msgstr "The due date for the round {$round} review of submission {$submissionId} by {$reviewerName} has been set to {$dueDate}."
-
-msgid "log.review.reviewDeclined"
-msgstr "{$reviewerName} has declined the round {$round} review for submission {$submissionId}."
-
-msgid "log.review.reviewAccepted"
-msgstr "{$reviewerName} has accepted the round {$round} review for submission {$submissionId}."
-
-msgid "log.review.reviewUnconsidered"
-msgstr "{$editorName} has marked the round {$round} review for submission {$submissionId} as unconsidered."
-
-msgid "log.editor.decision"
-msgstr "An editor decision ({$decision}) for monograph {$submissionId} was recorded by {$editorName}."
-
-msgid "log.editor.recommendation"
-msgstr ""
-"An editor recommendation ({$decision}) for monograph {$submissionId} was "
-"recorded by {$editorName}."
-
-msgid "log.editor.archived"
-msgstr "The submission {$submissionId} has been archived."
-
-msgid "log.editor.restored"
-msgstr "The submission {$submissionId} has been restored to the queue."
-
-msgid "log.editor.editorAssigned"
-msgstr "{$editorName} has been assigned as editor to submission {$submissionId}."
-
-msgid "log.proofread.assign"
-msgstr "{$assignerName} has assigned {$proofreaderName} to proofread submission {$submissionId}."
-
-msgid "log.proofread.complete"
-msgstr "{$proofreaderName} has submitted {$submissionId} for scheduling."
-
-msgid "log.imported"
-msgstr "{$userName} has imported monograph {$submissionId}."
-
-msgid "notification.addedIdentificationCode"
-msgstr "Identification Code added."
-
-msgid "notification.editedIdentificationCode"
-msgstr "Identification Code edited."
-
-msgid "notification.removedIdentificationCode"
-msgstr "Identification Code removed."
-
-msgid "notification.addedPublicationDate"
-msgstr "Publication Date added."
-
-msgid "notification.editedPublicationDate"
-msgstr "Publication Date edited."
-
-msgid "notification.removedPublicationDate"
-msgstr "Publication Date removed."
-
-msgid "notification.addedPublicationFormat"
-msgstr "Publication Format added."
-
-msgid "notification.editedPublicationFormat"
-msgstr "Publication Format edited."
-
-msgid "notification.removedPublicationFormat"
-msgstr "Publication Format removed."
-
-msgid "notification.addedSalesRights"
-msgstr "Sales Rights added."
-
-msgid "notification.editedSalesRights"
-msgstr "Sales Rights edited."
-
-msgid "notification.removedSalesRights"
-msgstr "Sales Rights removed."
-
-msgid "notification.addedRepresentative"
-msgstr "Representative added."
-
-msgid "notification.editedRepresentative"
-msgstr "Representative edited."
-
-msgid "notification.removedRepresentative"
-msgstr "Representative removed."
-
-msgid "notification.addedMarket"
-msgstr "Market added."
-
-msgid "notification.editedMarket"
-msgstr "Market edited."
-
-msgid "notification.removedMarket"
-msgstr "Market removed."
-
-msgid "notification.addedSpotlight"
-msgstr "Spotlight added."
-
-msgid "notification.editedSpotlight"
-msgstr "Spotlight edited."
-
-msgid "notification.removedSpotlight"
-msgstr "Spotlight removed."
-
-msgid "notification.savedCatalogMetadata"
-msgstr "Catalog metadata saved."
-
-msgid "notification.savedPublicationFormatMetadata"
-msgstr "Publication format metadata saved."
-
-msgid "notification.proofsApproved"
-msgstr "Proofs approved."
-
-msgid "notification.removedSubmission"
-msgstr "Submission deleted."
-
-msgid "notification.type.submissionSubmitted"
-msgstr "A new monograph, \"{$title},\" has been submitted."
-
-msgid "notification.type.editing"
-msgstr "Editing Events"
-
-msgid "notification.type.reviewing"
-msgstr "Reviewing Events"
-
-msgid "notification.type.site"
-msgstr "Site Events"
-
-msgid "notification.type.submissions"
-msgstr "Submission Events"
-
-msgid "notification.type.userComment"
-msgstr "A reader has made a comment on \"{$title}\"."
-
-msgid "notification.type.public"
-msgstr "Public Announcements"
-
-msgid "notification.type.editorAssignmentTask"
-msgstr "A new monograph has been submitted to which an editor needs to be assigned."
-
-msgid "notification.type.copyeditorRequest"
-msgstr "You have been asked to review copyedits for \"{$file}\"."
-
-msgid "notification.type.layouteditorRequest"
-msgstr "You have been asked to review layouts for \"{$title}\"."
-
-msgid "notification.type.indexRequest"
-msgstr "You have been asked to create an index for \"{$title}\"."
-
-msgid "notification.type.editorDecisionInternalReview"
-msgstr "Internal review process started."
-
-msgid "notification.type.approveSubmission"
-msgstr "This submission is currently awaiting approval in the Catalog Entry tool before it will appear in the public catalog."
-
-msgid "notification.type.approveSubmissionTitle"
-msgstr "Awaiting approval."
-
-msgid "notification.type.formatNeedsApprovedSubmission"
-msgstr "The monograph will not be listed in the catalog until it has been published. To add this book to the catalog, click on the Publication tab."
-
-msgid "notification.type.configurePaymentMethod.title"
-msgstr "No payment method configured."
-
-msgid "notification.type.configurePaymentMethod"
-msgstr "A configured payment method is required before you can define e-commerce settings."
-
-msgid "notification.type.visitCatalogTitle"
-msgstr "Catalog Management"
-
-msgid "notification.type.visitCatalog"
-msgstr "The monograph has been approved. Please visit Marketing and Publication to manage its catalog details, using the links just above."
-
-msgid "user.authorization.invalidReviewAssignment"
-msgstr "You have been denied access because you do not seem to be a valid reviewer for this monograph."
-
-msgid "user.authorization.monographAuthor"
-msgstr "You have been denied access because you do not seem to be the author of this monograph."
-
-msgid "user.authorization.monographReviewer"
-msgstr "You have been denied access because you do not seem to be an assigned reviewer of this monograph."
-
-msgid "user.authorization.monographFile"
-msgstr "You have been denied access to the specified monograph file."
-
-msgid "user.authorization.invalidMonograph"
-msgstr "Invalid monograph or no monograph requested!"
-
-msgid "user.authorization.noContext"
-msgstr "No press in context!"
-
-msgid "user.authorization.seriesAssignment"
-msgstr "You are trying to access a monograph that is not part of your series."
-
-msgid "user.authorization.workflowStageAssignmentMissing"
-msgstr "Access denied! You have not been assigned to this workflow stage."
-
-msgid "user.authorization.workflowStageSettingMissing"
-msgstr "Access denied! The user group you are currently acting under has not been assigned to this workflow stage. Please check your press settings."
-
-msgid "payment.directSales"
-msgstr "Download From Press Website"
-
-msgid "payment.directSales.price"
-msgstr "Price"
-
-msgid "payment.directSales.availability"
-msgstr "Availability"
-
-msgid "payment.directSales.catalog"
-msgstr "Catalog"
-
-msgid "payment.directSales.approved"
-msgstr "Approved"
-
-msgid "payment.directSales.priceCurrency"
-msgstr "Price ({$currency})"
-
-msgid "payment.directSales.numericOnly"
-msgstr "Prices should be numeric only. Do not include currency symbols."
-
-msgid "payment.directSales.directSales"
-msgstr "Direct Sales"
-
-msgid "payment.directSales.amount"
-msgstr "{$amount} ({$currency})"
-
-msgid "payment.directSales.notAvailable"
-msgstr "Not Available"
-
-msgid "payment.directSales.notSet"
-msgstr "Not Set"
-
-msgid "payment.directSales.openAccess"
-msgstr "Open Access"
-
-msgid "payment.directSales.price.description"
-msgstr "File formats can be made available for downloading from the press website through open access at no cost to readers or direct sales (using an online payment processor, as configured in Distribution). For this file indicate the basis of access."
-
-msgid "payment.directSales.validPriceRequired"
-msgstr "A valid numeric price is required."
-
-msgid "payment.directSales.purchase"
-msgstr "Purchase {$format} ({$amount} {$currency})"
-
-msgid "payment.directSales.download"
-msgstr "Download {$format}"
-
-msgid "payment.directSales.monograph.name"
-msgstr "Purchase Monograph or Chapter Download"
-
-msgid "payment.directSales.monograph.description"
-msgstr "This transaction is for the purchase of a direct download of a single monograph or monograph chapter."
-
-msgid "debug.notes.helpMappingLoad"
-msgstr "Reloaded XML help mapping file {$filename} in search of {$id}."
-
-msgid "rt.metadata.pkp.dctype"
-msgstr "Book"
-
-msgid "submission.pdf.download"
-msgstr "Download this PDF file"
-
-msgid "user.profile.form.showOtherContexts"
-msgstr "Register with other presses"
-
-msgid "user.profile.form.hideOtherContexts"
-msgstr "Hide other presses"
-
-msgid "submission.round"
-msgstr "Round {$round}"
-
-msgid "user.authorization.invalidPublishedSubmission"
-msgstr "An invalid published submission was specified."
-
-msgid "catalog.coverImageTitle"
-msgstr "Cover Image"
diff --git a/locale/en_US/manager.po b/locale/en_US/manager.po
deleted file mode 100644
index a53ab1a9edd..00000000000
--- a/locale/en_US/manager.po
+++ /dev/null
@@ -1,1107 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2020-12-11 20:34+0000\n"
-"Last-Translator: Weblate Admin \n"
-"Language-Team: English (United States) \n"
-"Language: en_US\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 "manager.language.confirmDefaultSettingsOverwrite"
-msgstr "This will replace any locale-specific press settings you had for this locale"
-
-msgid "manager.languages.noneAvailable"
-msgstr "Sorry, no additional languages are available. Contact your site administrator if you wish to use additional languages with this press."
-
-msgid "manager.languages.primaryLocaleInstructions"
-msgstr "This will be the default language for the press site."
-
-msgid "manager.series.form.mustAllowPermission"
-msgstr "Please ensure that at least one checkbox is checked for each Series Editor assignment."
-
-msgid "manager.series.form.reviewFormId"
-msgstr "Please ensure that you have chosen a valid review form."
-
-msgid "manager.series.submissionIndexing"
-msgstr "Will not be included in the indexing of the press"
-
-msgid "manager.series.editorRestriction"
-msgstr "Items can only be submitted by Editors and Series Editors."
-
-msgid "manager.series.confirmDelete"
-msgstr "Are you sure you want to permanently delete this series?"
-
-msgid "manager.series.indexed"
-msgstr "Indexed"
-
-msgid "manager.series.open"
-msgstr "Open Submissions"
-
-msgid "manager.series.readingTools"
-msgstr "Reading Tools"
-
-msgid "manager.series.submissionReview"
-msgstr "Will not be peer-reviewed"
-
-msgid "manager.series.submissionsToThisSection"
-msgstr "Submissions made to this series"
-
-msgid "manager.series.abstractsNotRequired"
-msgstr "Do not require abstracts"
-
-msgid "manager.series.disableComments"
-msgstr "Disable reader comments for this series."
-
-msgid "manager.series.book"
-msgstr "Book Series"
-
-msgid "manager.series.create"
-msgstr "Create Series"
-
-msgid "manager.series.policy"
-msgstr "Series description"
-
-msgid "manager.series.assigned"
-msgstr "Editors for this Series"
-
-msgid "manager.series.seriesEditorInstructions"
-msgstr "Add a Series Editor to this series from the available Series Editors. Once added, designate whether the Series Editor will oversee the REVIEW (peer review) and/or the EDITING (copyediting, layout and proofreading) of submissions to this series. Series Editors are created by clicking Series Editors under Roles in Press Management."
-
-msgid "manager.series.hideAbout"
-msgstr "Omit this series from About the Press."
-
-msgid "manager.series.unassigned"
-msgstr "Available Series Editors"
-
-msgid "manager.series.form.abbrevRequired"
-msgstr "An abbreviated title is required for the series."
-
-msgid "manager.series.form.titleRequired"
-msgstr "A title is required for the series."
-
-msgid "manager.series.noneCreated"
-msgstr "No series have been created."
-
-msgid "manager.series.existingUsers"
-msgstr "Existing users"
-
-msgid "manager.series.seriesTitle"
-msgstr "Series Title"
-
-msgid "manager.series.restricted"
-msgstr "Don't allow authors to submit directly to this series."
-
-msgid "manager.series.confirmDeactivateSeries.error"
-msgstr "At least one series must be active. Visit the workflow settings to disable all submissions to this press."
-
-msgid "manager.payment.generalOptions"
-msgstr "General Options"
-
-msgid "manager.payment.options.enablePayments"
-msgstr "Payments will be enabled for this press. Note that users will be required to log in to make payments."
-
-msgid "manager.payment.success"
-msgstr "The payment settings have been updated."
-
-msgid "manager.settings"
-msgstr "Settings"
-
-msgid "manager.settings.pressSettings"
-msgstr "Press Settings"
-
-msgid "manager.settings.press"
-msgstr "Press"
-
-msgid "manager.settings.publisher.identity"
-msgstr "Publisher Identity"
-
-msgid "manager.settings.publisher.identity.description"
-msgstr "These fields are required to publish valid ONIX metadata."
-
-msgid "manager.settings.publisher"
-msgstr "Press Publisher Name"
-
-msgid "manager.settings.location"
-msgstr "Geographical Location"
-
-msgid "manager.settings.publisherCode"
-msgstr "Publisher Code"
-
-msgid "manager.settings.publisherCodeType"
-msgstr "Publisher Code Type"
-
-msgid "manager.settings.publisherCodeType.invalid"
-msgstr "This is not a valid Publisher Code Type."
-
-msgid "manager.settings.distributionDescription"
-msgstr "All settings specific to the distribution process (notification, indexing, archiving, payment, reading tools)."
-
-msgid "manager.statistics.reports.defaultReport.monographDownloads"
-msgstr "Monograph file downloads"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstract"
-msgstr "Monograph abstract page views"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
-msgstr "Monograph abstract and downloads"
-
-msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
-msgstr "Series main page views"
-
-msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
-msgstr "Press main page views"
-
-msgid "manager.statistics.reports.filters.byContext.description"
-msgstr "Narrow results by context (series and/or monograph)."
-
-msgid "manager.statistics.reports.filters.byObject.description"
-msgstr "Narrow results by object type (press, series, monograph, file types) and/or by one or more object id(s)."
-
-msgid "manager.tools"
-msgstr "Tools"
-
-msgid "manager.tools.importExport"
-msgstr "All tools specific to importing and exporting data (presses, monographs, users)"
-
-msgid "manager.tools.statistics"
-msgstr "Tools to generate reports related to usage statistics (catalog index page view, monograph abstract page views, monograph file downloads)"
-
-msgid "manager.users.availableRoles"
-msgstr "Available Roles"
-
-msgid "manager.users.currentRoles"
-msgstr "Current Roles"
-
-msgid "manager.users.selectRole"
-msgstr "Select Role"
-
-msgid "manager.people.allEnrolledUsers"
-msgstr "Users Enrolled in this Press"
-
-msgid "manager.people.allPresses"
-msgstr "All Presses"
-
-msgid "manager.people.allSiteUsers"
-msgstr "Enroll a User from this Site in this Press"
-
-msgid "manager.people.allUsers"
-msgstr "All Enrolled Users"
-
-msgid "manager.people.confirmRemove"
-msgstr "Remove this user from this press? This action will unenroll the user from all roles within this press."
-
-msgid "manager.people.enrollExistingUser"
-msgstr "Enroll an Existing User"
-
-msgid "manager.people.enrollSyncPress"
-msgstr "With press"
-
-msgid "manager.people.mergeUsers.from.description"
-msgstr "Select a user to merge into another user account (e.g., when someone has two user accounts). The account selected first will be deleted and its submissions, assignments, etc. will be attributed to the second account."
-
-msgid "manager.people.mergeUsers.into.description"
-msgstr "Select a user to whom to attribute the previous user's authorships, editing assignments, etc."
-
-msgid "manager.people.syncUserDescription"
-msgstr "Enrollment synchronization will enroll all users enrolled in the specified role in the specified press into the same role in this press. This function allows a common set of users (e.g., Reviewers) to be synchronized between presses."
-
-msgid "manager.people.confirmDisable"
-msgstr ""
-"Disable this user? This will prevent the user from logging into the system.\n"
-"\n"
-"You may optionally provide the user with a reason for disabling their account."
-
-msgid "manager.people.noAdministrativeRights"
-msgstr ""
-"Sorry, you do not have administrative rights over this user. This may be because:\n"
-"\t\t\n"
-"\t\t\t- The user is a site administrator
\n"
-"\t\t\t- The user is active in presses you do not manage
\n"
-"\t\t
\n"
-"\tThis task must be performed by a site administrator.\n"
-"\t"
-
-msgid "manager.system"
-msgstr "System Settings"
-
-msgid "manager.system.archiving"
-msgstr "Archiving"
-
-msgid "manager.system.reviewForms"
-msgstr "Review Forms"
-
-msgid "manager.system.readingTools"
-msgstr "Reading Tools"
-
-msgid "manager.system.payments"
-msgstr "Payments"
-
-msgid "user.authorization.pluginLevel"
-msgstr "You do not have sufficient privileges to manage this plugin."
-
-msgid "manager.pressManagement"
-msgstr "Press Management"
-
-msgid "manager.setup"
-msgstr "Setup"
-
-msgid "manager.setup.aboutItemContent"
-msgstr "Content"
-
-msgid "manager.setup.addAboutItem"
-msgstr "Add About Item"
-
-msgid "manager.setup.addChecklistItem"
-msgstr "Add Checklist Item"
-
-msgid "manager.setup.addItem"
-msgstr "Add Item"
-
-msgid "manager.setup.addItemtoAboutPress"
-msgstr "Add Item to Appear in \"About the Press\""
-
-msgid "manager.setup.addNavItem"
-msgstr "Add Item"
-
-msgid "manager.setup.addSponsor"
-msgstr "Add Sponsoring Organization"
-
-msgid "manager.setup.announcements"
-msgstr "Announcements"
-
-msgid "manager.setup.announcements.success"
-msgstr "The announcements settings have been updated."
-
-msgid "manager.setup.announcementsDescription"
-msgstr "Announcements may be published to inform readers of press news and events. Published announcements will appear on the Announcements page."
-
-msgid "manager.setup.announcementsIntroduction"
-msgstr "Additional Information"
-
-msgid "manager.setup.announcementsIntroduction.description"
-msgstr "Enter any additional information that should be displayed to readers on the Announcements page."
-
-msgid "manager.setup.appearInAboutPress"
-msgstr "(To appear in About the Press) "
-
-msgid "manager.setup.contextAbout"
-msgstr "About the Press"
-
-msgid "manager.setup.contextAbout.description"
-msgstr ""
-"Include any information about your press which may be of interest to "
-"readers, authors or reviewers. This could include your open access policy, "
-"the focus and scope of the press, sponsorship disclosure, and the history of "
-"the press."
-
-msgid "manager.setup.contextSummary"
-msgstr "Press Summary"
-
-msgid "manager.setup.copyediting"
-msgstr "Copyeditors"
-
-msgid "manager.setup.copyeditInstructions"
-msgstr "Copyedit Instructions"
-
-msgid "manager.setup.copyeditInstructionsDescription"
-msgstr "The Copyedit Instructions will be made available to Copyeditors, Authors, and Section Editors in the Submission Editing stage. Below is a default set of instructions in HTML, which can be modified or replaced by the Press Manager at any point (in HTML or plain text)."
-
-msgid "manager.setup.copyrightNotice"
-msgstr "Copyright notice"
-
-msgid "manager.setup.coverage"
-msgstr "Coverage"
-
-msgid "manager.setup.coverThumbnailsMaxHeight"
-msgstr "Cover Image Max Height"
-
-msgid "manager.setup.coverThumbnailsMaxWidth"
-msgstr "Cover Image Max Width"
-
-msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
-msgstr "Images will be reduced when larger than this size but will never be blown up or stretched to fit these dimensions."
-
-msgid "manager.setup.customizingTheLook"
-msgstr "Step 5. Customizing the Look & Feel"
-
-msgid "manager.setup.customTags"
-msgstr "Custom tags"
-
-msgid "manager.setup.customTagsDescription"
-msgstr "Custom HTML header tags to be inserted in the header of every page (e.g., META tags)."
-
-msgid "manager.setup.details"
-msgstr "Details"
-
-msgid "manager.setup.details.description"
-msgstr "Name of press, contacts, sponsors, and search engines."
-
-msgid "manager.setup.disableUserRegistration"
-msgstr "The Press Manager will register all user accounts. Editors or Section Editors may register user accounts for reviewers."
-
-msgid "manager.setup.discipline"
-msgstr "Academic Discipline and Sub-Disciplines"
-
-msgid "manager.setup.disciplineDescription"
-msgstr "Useful when press crosses disciplinary boundaries and/or authors submit multidisciplinary items."
-
-msgid "manager.setup.disciplineExamples"
-msgstr "(E.g., History; Education; Sociology; Psychology; Cultural Studies; Law)"
-
-msgid "manager.setup.disciplineProvideExamples"
-msgstr "Provide examples of relevant academic disciplines for this press"
-
-msgid "manager.setup.displayCurrentMonograph"
-msgstr "Add the table of contents for the current monograph (if available)."
-
-msgid "manager.setup.displayOnHomepage"
-msgstr "Homepage Content"
-
-msgid "manager.setup.displayFeaturedBooks"
-msgstr "Display featured books on the home page"
-
-msgid "manager.setup.displayFeaturedBooks.label"
-msgstr "Featured Books"
-
-msgid "manager.setup.displayInSpotlight"
-msgstr "Display books in the spotlight on the home page"
-
-msgid "manager.setup.displayInSpotlight.label"
-msgstr "Spotlight"
-
-msgid "manager.setup.displayNewReleases"
-msgstr "Display new releases on the home page"
-
-msgid "manager.setup.displayNewReleases.label"
-msgstr "New Releases"
-
-msgid "manager.setup.doiPrefix"
-msgstr "DOI Prefix"
-
-msgid "manager.setup.doiPrefixDescription"
-msgstr "The DOI (Digital Object Identifier) Prefix is assigned by CrossRef and is in the format 10.xxxx (e.g. 10.1234)."
-
-msgid "manager.setup.editorDecision"
-msgstr "Editor Decision"
-
-msgid "manager.setup.emailBounceAddress"
-msgstr "Bounce Address"
-
-msgid "manager.setup.emailBounceAddress.description"
-msgstr "Any undeliverable emails will result in an error message to this address."
-
-msgid "manager.setup.emailBounceAddress.disabled"
-msgstr "In order to send undeliverable emails to a bounce address, the site administrator must enable the allow_envelope_sender
option in the site configuration file. Server configuration may be required, as indicated in the OMP documentation."
-
-msgid "manager.setup.emails"
-msgstr "Email Identification"
-
-msgid "manager.setup.emailSignature"
-msgstr "Signature"
-
-msgid "manager.setup.emailSignature.description"
-msgstr "The prepared emails that are sent by the system on behalf of the press will have the following signature added to the end."
-
-msgid "manager.setup.enableAnnouncements.enable"
-msgstr "Enable announcements"
-
-msgid "manager.setup.enableAnnouncements.description"
-msgstr "Announcements may be published to inform readers of news and events. Published announcements will appear on the Announcements page."
-
-msgid "manager.setup.numAnnouncementsHomepage"
-msgstr "Display on Homepage"
-
-msgid "manager.setup.numAnnouncementsHomepage.description"
-msgstr "How many announcements to display on the homepage. Leave this empty to display none."
-
-msgid "manager.setup.enablePressInstructions"
-msgstr "Enable this press to appear publicly on the site"
-
-msgid "manager.setup.enablePublicMonographId"
-msgstr "Custom identifiers will be used to identify published items."
-
-msgid "manager.setup.enablePublicGalleyId"
-msgstr "Custom identifiers will be used to identify galleys (e.g. HTML or PDF files) for published items."
-
-msgid "manager.setup.enableUserRegistration"
-msgstr "Visitors can register a user account with the press."
-
-msgid "manager.setup.focusAndScope"
-msgstr "Focus and Scope of Press"
-
-msgid "manager.setup.focusAndScope.description"
-msgstr "Describe to authors, readers, and librarians the range of monographs and other items the press will publish."
-
-msgid "manager.setup.focusScope"
-msgstr "Focus and Scope"
-
-msgid "manager.setup.focusScopeDescription"
-msgstr "EXAMPLE HTML DATA"
-
-msgid "manager.setup.forAuthorsToIndexTheirWork"
-msgstr "For Authors to Index Their Work"
-
-msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
-msgstr "OMP adheres to the Open Archives Initiative Protocol for Metadata Harvesting, which is the emerging standard for providing well-indexed access to electronic research resources on a global scale. The authors will use a similar template to provide metadata for their submission. The Press Manager should select the categories for indexing and present authors with relevant examples to assist them in indexing their work, separating terms with a semi-colon (e.g., term1; term2). The entries should be introduced as examples by using \"E.g.,\" or \"For example,\"."
-
-msgid "manager.setup.form.contactEmailRequired"
-msgstr "The primary contact email is required."
-
-msgid "manager.setup.form.contactNameRequired"
-msgstr "The primary contact name is required."
-
-msgid "manager.setup.form.numReviewersPerSubmission"
-msgstr "The number of reviewers per submission is required."
-
-msgid "manager.setup.form.supportEmailRequired"
-msgstr "The support email is required."
-
-msgid "manager.setup.form.supportNameRequired"
-msgstr "The support name is required."
-
-msgid "manager.setup.generalInformation"
-msgstr "General Information"
-
-msgid "manager.setup.gettingDownTheDetails"
-msgstr "Step 1. Getting Down the Details"
-
-msgid "manager.setup.guidelines"
-msgstr "Guidelines"
-
-msgid "manager.setup.preparingWorkflow"
-msgstr "Step 3. Preparing the workflow"
-
-msgid "manager.setup.identity"
-msgstr "Press Identity"
-
-msgid "manager.setup.information"
-msgstr "Information"
-
-msgid "manager.setup.information.description"
-msgstr "Brief descriptions of the press for librarians and prospective authors and readers. These are made available in the site's sidebar when the Information block has been added."
-
-msgid "manager.setup.information.forAuthors"
-msgstr "For Authors"
-
-msgid "manager.setup.information.forLibrarians"
-msgstr "For Librarians"
-
-msgid "manager.setup.information.forReaders"
-msgstr "For Readers"
-
-msgid "manager.setup.information.success"
-msgstr "The information for this press was updated."
-
-msgid "manager.setup.institution"
-msgstr "Institution"
-
-msgid "manager.setup.itemsPerPage"
-msgstr "Items per page"
-
-msgid "manager.setup.itemsPerPage.description"
-msgstr "Limit the number of items (for example, submissions, users, or editing assignments) to show in a list before showing subsequent items in another page."
-
-msgid "manager.setup.keyInfo"
-msgstr "Key Information"
-
-msgid "manager.setup.keyInfo.description"
-msgstr "Provide a short description of your press and identify editors, managing directors and other members of your editorial team."
-
-msgid "manager.setup.labelName"
-msgstr "Label Name"
-
-msgid "manager.setup.layoutAndGalleys"
-msgstr "Layout Editors"
-
-msgid "manager.setup.layoutInstructions"
-msgstr "Layout Instructions"
-
-msgid "manager.setup.layoutInstructionsDescription"
-msgstr "Layout Instructions can be prepared for the formatting of publishing items in the press and be entered below in HTML or plain text. They will be made available to the Layout Editor and Section Editor on the Editing page of each submission. (As each press may employ its own file formats, bibliographic standards, style sheets, etc., a default set of instructions is not provided.)"
-
-msgid "manager.setup.layoutTemplates"
-msgstr "Layout Templates"
-
-msgid "manager.setup.layoutTemplatesDescription"
-msgstr "Templates can be uploaded to appear in Layout for each of the standard formats published in the press (e.g., monograph, book review, etc.) using any file format (e.g., pdf, doc, etc.) with annotations added specifying font, size, margins, etc. to serve as a guide for Layout Editors and Proofreaders."
-
-msgid "manager.setup.layoutTemplates.file"
-msgstr "Template File"
-
-msgid "manager.setup.layoutTemplates.title"
-msgstr "Title"
-
-msgid "manager.setup.lists"
-msgstr "Lists"
-
-msgid "manager.setup.lists.success"
-msgstr "The list settings have been updated."
-
-msgid "manager.setup.look"
-msgstr "Look & Feel"
-
-msgid "manager.setup.look.description"
-msgstr "Homepage header, content, press header, footer, navigation bar, and style sheet."
-
-msgid "manager.setup.settings"
-msgstr "Settings"
-
-msgid "manager.setup.management.description"
-msgstr "Access and security, scheduling, announcements, copyediting, layout, and proofreading."
-
-msgid "manager.setup.managementOfBasicEditorialSteps"
-msgstr "Management of Basic Editorial Steps"
-
-msgid "manager.setup.managingPublishingSetup"
-msgstr "Management and Publishing Setup"
-
-msgid "manager.setup.managingThePress"
-msgstr "Step 4. Managing the Settings"
-
-msgid "manager.setup.masthead.success"
-msgstr "The masthead details for this press have been updated."
-
-msgid "manager.setup.noImageFileUploaded"
-msgstr "No image file uploaded."
-
-msgid "manager.setup.noStyleSheetUploaded"
-msgstr "No style sheet uploaded."
-
-msgid "manager.setup.note"
-msgstr "Note"
-
-msgid "manager.setup.notifyAllAuthorsOnDecision"
-msgstr "When using the Notify Author email, include the email addresses of all co-authors for multiple-author submissions, and not just the submitting user."
-
-msgid "manager.setup.noUseCopyeditors"
-msgstr "Copyediting will be undertaken by an Editor or Section Editor assigned to the submission."
-
-msgid "manager.setup.noUseLayoutEditors"
-msgstr "An Editor or Section Editor assigned to the submission will prepare the HTML, PDF, etc., files."
-
-msgid "manager.setup.noUseProofreaders"
-msgstr "An Editor or Section Editor assigned to the submission will check the galleys."
-
-msgid "manager.setup.numPageLinks"
-msgstr "Page links"
-
-msgid "manager.setup.numPageLinks.description"
-msgstr "Limit the number of links to display to subsequent pages in a list."
-
-msgid "manager.setup.onlineAccessManagement"
-msgstr "Access to Press Content"
-
-msgid "manager.setup.onlineIssn"
-msgstr "Online ISSN"
-
-msgid "manager.setup.policies"
-msgstr "Policies"
-
-msgid "manager.setup.policies.description"
-msgstr "Focus, peer review, sections, privacy, security, and additional about items."
-
-msgid "manager.setup.privacyStatement.success"
-msgstr "The privacy statement has been updated."
-
-msgid "manager.setup.appearanceDescription"
-msgstr "Various components of the press appearance can be configured from this page, including header and footer elements, the press style and theme, and how lists of information are presented to users."
-
-msgid "manager.setup.pressDescription"
-msgstr "Press Summary"
-
-msgid "manager.setup.pressDescription.description"
-msgstr "A brief description of your press."
-
-msgid "manager.setup.aboutPress"
-msgstr "About the Press"
-
-msgid "manager.setup.aboutPress.description"
-msgstr "Include any information about your press which may be of interest to readers, authors or reviewers. This could include your open access policy, the focus and scope of the press, copyright notice, sponsorship disclosure, history of the press, and a privacy statement."
-
-msgid "manager.setup.pressArchiving"
-msgstr "Press Archiving"
-
-msgid "manager.setup.homepageContent"
-msgstr "Press Homepage Content"
-
-msgid "manager.setup.homepageContentDescription"
-msgstr "The press homepage consists of navigation links by default. Additional homepage content can be appended by using one or all of the following options, which will appear in the order shown."
-
-msgid "manager.setup.pressHomepageContent"
-msgstr "Press Homepage Content"
-
-msgid "manager.setup.pressHomepageContentDescription"
-msgstr "The press homepage consists of navigation links by default. Additional homepage content can be appended by using one or all of the following options, which will appear in the order shown."
-
-msgid "manager.setup.contextInitials"
-msgstr "Press Initials"
-
-msgid "manager.setup.layout"
-msgstr "Press Layout"
-
-msgid "manager.setup.pageHeader"
-msgstr "Press Page Header"
-
-msgid "manager.setup.pageHeaderDescription"
-msgstr ""
-
-msgid "manager.setup.pressPolicies"
-msgstr "Step 2. Press Policies"
-
-msgid "manager.setup.pressSetup"
-msgstr "Press Setup"
-
-msgid "manager.setup.pressSetupUpdated"
-msgstr "Your press setup has been updated."
-
-msgid "manager.setup.styleSheetInvalid"
-msgstr "Invalid style sheet format. Accepted format is .css."
-
-msgid "manager.setup.pressTheme"
-msgstr "Press Theme"
-
-msgid "manager.setup.pressThumbnail"
-msgstr "Press thumbnail"
-
-msgid "manager.setup.pressThumbnail.description"
-msgstr "A small logo or representation of the press that can be used in lists of presses."
-
-msgid "manager.setup.contextTitle"
-msgstr "Press Name"
-
-msgid "manager.setup.printIssn"
-msgstr "Print ISSN"
-
-msgid "manager.setup.proofingInstructions"
-msgstr "Proofing Instructions"
-
-msgid "manager.setup.proofingInstructionsDescription"
-msgstr "The Proofreading Instructions will be made available to Proofreaders, Authors, Layout Editors, and Section Editors in the Submission Editing stage. Below is a default set of instructions in HTML, which can be edited or replaced by the Press Manager at any point (in HTML or plain text)."
-
-msgid "manager.setup.proofreading"
-msgstr "Proofreaders"
-
-msgid "manager.setup.provideRefLinkInstructions"
-msgstr "Provide Layout Editors with instructions."
-
-msgid "manager.setup.publicationScheduleDescription"
-msgstr "Press items can be published collectively, as part of a monograph with its own Table of Contents. Alternatively, individual items can be published as soon as they are ready, by adding them to the \"current\" volume's Table of Contents. Provide readers, in About the Press, with a statement about the system this press will use and its expected frequency of publication."
-
-msgid "manager.setup.publisher"
-msgstr "Publisher"
-
-msgid "manager.setup.publisherDescription"
-msgstr "The name of the organization publishing the press will appear in About the Press."
-
-msgid "manager.setup.referenceLinking"
-msgstr "Reference Linking"
-
-msgid "manager.setup.refLinkInstructions.description"
-msgstr "Layout Instructions for Reference Linking"
-
-msgid "manager.setup.restrictMonographAccess"
-msgstr "Users must be registered and log in to view open access content."
-
-msgid "manager.setup.restrictSiteAccess"
-msgstr "Users must be registered and log in to view the press site."
-
-msgid "manager.setup.reviewGuidelines"
-msgstr "External Review Guidelines"
-
-msgid "manager.setup.reviewGuidelinesDescription"
-msgstr "Provide external reviewers with criteria for judging a submission's suitability for publication in the press, which may include instructions for preparing an effective and helpful review. Reviewers will have an opportunity to provide comments intended for the author and editor, as well as separate comments only for the editor."
-
-msgid "manager.setup.internalReviewGuidelines"
-msgstr "Internal Review Guidelines"
-
-msgid "manager.setup.reviewOptions"
-msgstr "Review Options"
-
-msgid "manager.setup.reviewOptions.automatedReminders"
-msgstr "Automated Email Reminders"
-
-msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
-msgstr "To activate these options, the site administrator must enable the scheduled_tasks option in the OMP configuration file. Additional server configuration may be required to support this functionality (which may not be possible on all servers), as indicated in the OMP documentation."
-
-msgid "manager.setup.reviewOptions.onQuality"
-msgstr "Editors will rate reviewers on a five-point quality scale after each review."
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
-msgstr "Restrict File Access"
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
-msgstr "Reviewers will have access to the submission file only after agreeing to review it."
-
-msgid "manager.setup.reviewOptions.reviewerAccess"
-msgstr "Reviewer Access"
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
-msgstr "One-click Reviewer Access"
-
-#, fuzzy
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
-msgstr "Reviewers can be sent a secure link in the email invitation, which will log them in automatically when they click the link."
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
-msgstr "Include a secure link in the email invitation to reviewers."
-
-msgid "manager.setup.reviewOptions.reviewerRatings"
-msgstr "Reviewer Ratings"
-
-msgid "manager.setup.reviewOptions.reviewerReminders"
-msgstr "Reviewer Reminders"
-
-msgid "manager.setup.reviewPolicy"
-msgstr "Review Policy"
-
-msgid "manager.setup.reviewProcess"
-msgstr "Review Process"
-
-msgid "manager.setup.reviewProcessDescription"
-msgstr "OMP supports two models for managing the review process. The Standard Review Process is recommended because it steps reviewers through the process, ensures a complete review history for each submission, and takes advantage of automatic reminder notification, and standard recommendations for submissions (Accept; Accept with revisions; Submit for review; Submit elsewhere; Decline; See comments).
Select one of the following:"
-
-msgid "manager.setup.reviewProcessEmail"
-msgstr "Email-Attachment Review Process"
-
-msgid "manager.setup.reviewProcessStandard"
-msgstr "Standard Review Process"
-
-msgid "manager.setup.reviewProcessStandardDescription"
-msgstr "Editors will email selected Reviewers the title and abstract of the submission, as well as an invitation to log into the press web site to complete the review. Reviewers enter the press web site to agree to do the review, to download submissions, submit their comments, and select a recommendation."
-
-msgid "manager.setup.searchDescription.description"
-msgstr "Provide a brief description (50-300 characters) of the press which search engines can display when listing the press in search results."
-
-msgid "manager.setup.searchEngineIndexing"
-msgstr "Search Indexing"
-
-msgid "manager.setup.searchEngineIndexing.description"
-msgstr "Help search engines like Google discover and display your site. You are encouraged to submit your sitemap."
-
-msgid "manager.setup.searchEngineIndexing.success"
-msgstr "The search engine index settings have been updated."
-
-msgid "manager.setup.sectionsAndSectionEditors"
-msgstr "Sections and Section Editors"
-
-msgid "manager.setup.sectionsDefaultSectionDescription"
-msgstr "(If sections are not added, then items are submitted to the Monographs section by default.)"
-
-msgid "manager.setup.sectionsDescription"
-msgstr "To create or modify sections for the press (e.g., Monographs, Book Reviews, etc.), go to Section Management.
Authors on submitting items to the press will designate..."
-
-msgid "manager.setup.securitySettings"
-msgstr "Access and Security Settings"
-
-msgid "manager.setup.securitySettings.note"
-msgstr "Other security- and access-related options can be configured from the Access and Security page."
-
-msgid "manager.setup.selectEditorDescription"
-msgstr "The press editor who will see it through the editorial process."
-
-msgid "manager.setup.selectSectionDescription"
-msgstr "The press section for which the item will be considered."
-
-msgid "manager.setup.showGalleyLinksDescription"
-msgstr "Always show galley links and indicate restricted access."
-
-msgid "manager.setup.siteAccess.view"
-msgstr "Site Access"
-
-msgid "manager.setup.siteAccess.viewContent"
-msgstr "View Monograph Content"
-
-msgid "manager.setup.stepsToPressSite"
-msgstr "Five Steps to a Press Web Site"
-
-msgid "manager.setup.subjectExamples"
-msgstr "(E.g., Photosynthesis; Black Holes; Four-Color Map Problem; Bayesian Theory)"
-
-msgid "manager.setup.subjectKeywordTopic"
-msgstr "Keywords"
-
-msgid "manager.setup.subjectProvideExamples"
-msgstr "Provide examples of keywords or topics as a guide for authors"
-
-msgid "manager.setup.submissionGuidelines"
-msgstr "Submission guidelines"
-
-msgid "manager.setup.submissionPreparationChecklist"
-msgstr "Submission Preparation Checklist"
-
-msgid "maganer.setup.submissionChecklistItemRequired"
-msgstr "Checklist item is required."
-
-msgid "manager.setup.workflow"
-msgstr "Workflow"
-
-msgid "manager.setup.submissions.description"
-msgstr "Author guidelines, copyright, and indexing (including registration)."
-
-msgid "manager.setup.typeExamples"
-msgstr "(E.g., Historical Inquiry; Quasi-Experimental; Literary Analysis; Survey/Interview)"
-
-msgid "manager.setup.typeMethodApproach"
-msgstr "Type (Method/Approach)"
-
-msgid "manager.setup.typeProvideExamples"
-msgstr "Provide examples of relevant research types, methods, and approaches for this field"
-
-msgid "manager.setup.useCopyeditors"
-msgstr "A Copyeditor will be assigned to work with each submission."
-
-msgid "manager.setup.useEditorialReviewBoard"
-msgstr "An editorial/review board will be used by the press."
-
-msgid "manager.setup.useImageTitle"
-msgstr "Title Image"
-
-msgid "manager.setup.useStyleSheet"
-msgstr "Press style sheet"
-
-msgid "manager.setup.useLayoutEditors"
-msgstr "A Layout Editor will be assigned to prepare the HTML, PDF, etc., files for electronic publication."
-
-msgid "manager.setup.useProofreaders"
-msgstr "A Proofreader will be assigned to check (along with the authors) the galleys prior to publication."
-
-msgid "manager.setup.userRegistration"
-msgstr "User Registration"
-
-msgid "manager.setup.useTextTitle"
-msgstr "Title text"
-
-msgid "manager.setup.volumePerYear"
-msgstr "Volumes per year"
-
-msgid "manager.setup.publicationFormat.code"
-msgstr "Format"
-
-msgid "manager.setup.publicationFormat.codeRequired"
-msgstr "A format must be chosen."
-
-msgid "manager.setup.publicationFormat.nameRequired"
-msgstr "You must assign a name to this format."
-
-msgid "manager.setup.publicationFormat.physicalFormat"
-msgstr "Is this a physical (non-digital) format?"
-
-msgid "manager.setup.publicationFormat.inUse"
-msgstr "Because this publication format is currently in use by a monograph in your press, it cannot be deleted."
-
-msgid "manager.setup.newPublicationFormat"
-msgstr "New Publication Format"
-
-msgid "manager.setup.newPublicationFormatDescription"
-msgstr "To create a new publication format, fill out the form below and click the 'Create' button."
-
-msgid "manager.setup.genresDescription"
-msgstr "These genres are used for file-naming purposes and are presented in a pull-down menu on uploading files. The genres designated ## allow the user to associate the file with either the whole book 99Z or a particular chapter by number (e.g., 02)."
-
-msgid "manager.setup.reviewProcessEmailDescription"
-msgstr "Editors send\tReviewers the request to review with the submission attached to the email. Reviewers email editors their assent (or regrets), as well as the review and recommendation. Editors enter Reviewers' assent (or regrets), as well as the review and recommendation on the submission's Review page, to record the review process."
-
-msgid "manager.setup.disableSubmissions.notAccepting"
-msgstr "This press is not accepting submissions at this time. Visit the workflow settings to allow submissions."
-
-msgid "manager.setup.disableSubmissions.description"
-msgstr "Prevent users from submitting new articles to the press. Submissions can be disabled for individual press series on the press series settings page."
-
-msgid "manager.setup.genres"
-msgstr "Genres"
-
-msgid "manager.setup.newGenre"
-msgstr "New Monograph Genre"
-
-msgid "manager.setup.newGenreDescription"
-msgstr "To create a new genre, fill out the form below and click the 'Create' button."
-
-msgid "manager.setup.deleteSelected"
-msgstr "Delete Selected"
-
-msgid "manager.setup.restoreDefaults"
-msgstr "Restore Default Settings"
-
-msgid "manager.setup.prospectus"
-msgstr "Prospectus Guide"
-
-msgid "manager.setup.prospectusDescription"
-msgstr "The prospectus guide is a press prepared document that helps the author describe the submitted materials in a way that allows a press to determine the value of the submission. A prospectus can include a lot of items- from marketing potential to theoretical value; in any case, a press should create a prospectus guide that complements their publishing agenda."
-
-msgid "manager.setup.submitToCategories"
-msgstr "Allow category submissions"
-
-msgid "manager.setup.submitToSeries"
-msgstr "Allow series submissions"
-
-msgid "manager.setup.issnDescription"
-msgstr "The ISSN (International Standard Serial Number) is an eight-digit number which identifying periodical publications including electronic serials. A number can be obtained from the ISSN International Centre."
-
-msgid "manager.setup.currentFormats"
-msgstr "Current Formats"
-
-msgid "manager.setup.categoriesAndSeries"
-msgstr "Categories and Series"
-
-msgid "manager.setup.categories.description"
-msgstr "You may create a list of categories to help organize your publications. Categories are groupings of books according to subject matter, for example Economics; Literature; Poetry; and so on. Categories may be nested within \"parent\" categories: for example, an Economics parent category may include individual Microeconomics and Macroeconomics categories. Visitors will be able to search and browse the press by category."
-
-msgid "manager.setup.series.description"
-msgstr "You may create any number of series to help organize your publications. A series represents a special set of books devoted to a theme or topics that someone has proposed, usually a faculty member or two, and then oversees. Visitors will be able to search and browse the press by series."
-
-msgid "manager.setup.reviewForms"
-msgstr "Review Forms"
-
-msgid "manager.setup.roleType"
-msgstr "Role Type"
-
-msgid "manager.setup.authorRoles"
-msgstr "Author Roles"
-
-msgid "manager.setup.managerialRoles"
-msgstr "Managerial Roles"
-
-msgid "manager.setup.availableRoles"
-msgstr "Available Roles"
-
-msgid "manager.setup.currentRoles"
-msgstr "Current Roles"
-
-msgid "manager.setup.internalReviewRoles"
-msgstr "Internal Review Roles"
-
-msgid "manager.setup.masthead"
-msgstr "Masthead"
-
-msgid "manager.setup.editorialTeam"
-msgstr "Editorial Team"
-
-msgid "manager.setup.editorialTeam.description"
-msgstr "List of editors, managing directors, and other individuals associated with the press."
-
-msgid "manager.setup.files"
-msgstr "Files"
-
-msgid "manager.setup.productionTemplates"
-msgstr "Production Templates"
-
-msgid "manager.files.note"
-msgstr "Note: The Files Browser is an advanced feature that allows the files and directories associated with a press to be viewed and manipulated directly."
-
-msgid "manager.setup.copyrightNotice.sample"
-msgstr ""
-"Proposed Creative Commons Copyright Notices
\n"
-"Proposed Policy for Presses That Offer Open Access
\n"
-"Authors who publish with this press agree to the following terms:\n"
-"\n"
-"\t- Authors retain copyright and grant the press right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this press.
\n"
-"\t- Authors are able to enter into separate, additional contractual series for the non-exclusive distribution of the version of the work published by the press (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this press.
\n"
-"\t- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).
\n"
-"
\n"
-"\n"
-"Proposed Policy for Presses That Offer Delayed Open Access
\n"
-"Authors who publish with this press agree to the following terms:\n"
-"\n"
-"\t- Authors retain copyright and grant the press right of first publication, with the work [SPECIFY PERIOD OF TIME] after publication simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this press.
\n"
-"\t - Authors are able to enter into separate, additional contractual series for the non-exclusive distribution of the version of the work published by the press (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this press.
\n"
-"\t - Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).
\n"
-"
"
-
-msgid "manager.setup.basicEditorialStepsDescription"
-msgstr ""
-"Steps: Submission Queue > Submission Review > Submission Editing > Table of Contents.
\n"
-"Select a model for handling these aspects of the editorial process. (To designate a Managing Editor and Series Editors, go to Editors in Press Management.)"
-
-msgid "manager.setup.referenceLinkingDescription"
-msgstr ""
-"To enable readers to locate online versions of the work cited by an author, the following options are available.
\n"
-"\n"
-"\n"
-"\t- Add a Reading Tool
The Press Manager can add \"Find References\" to the Reading Tools that accompany published items, which enables readers to paste a reference's title and then search pre-selected scholarly databases for the cited work.
\n"
-"\t- Embed Links in the References
The Layout Editor can add a link to references that can be found online by using the following instructions (which can be edited).
\n"
-"
"
-
-msgid "manager.publication.library"
-msgstr "Press Library"
-
-msgid "manager.setup.resetPermissions"
-msgstr "Reset Monograph Permissions"
-
-msgid "manager.setup.resetPermissions.confirm"
-msgstr "Are you sure you wish to reset permissions data already attached to monographs?"
-
-msgid "manager.setup.resetPermissions.description"
-msgstr "Copyright statement and license information will be permanently attached to published content, ensuring that this data will not change in the case of a press changing policies for new submissions. To reset stored permissions information already attached to published content, use the button below."
-
-msgid "manager.setup.resetPermissions.success"
-msgstr "Monograph permissions were successfully reset."
-
-msgid "grid.genres.title.short"
-msgstr "Components"
-
-msgid "grid.genres.title"
-msgstr "Monograph Components"
-
-msgid "manager.setup.notifications.copyPrimaryContact"
-msgstr "Send a copy to the primary contact, identified in the Press Settings."
-
-msgid "grid.series.pathAlphaNumeric"
-msgstr "The series path must consist of only letters and numbers."
-
-msgid "grid.series.pathExists"
-msgstr "The series path already exists. Please enter a unique path."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.series"
-msgstr "Select Series"
-
-msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
-msgstr "Please select the series to which you would like this menu item to link."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.category"
-msgstr "Select Category"
-
-msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
-msgstr "Please select the category to which you would like this menu item to link."
-
-msgid "grid.series.urlWillBe"
-msgstr "The series's URL will be: {$sampleUrl}"
-
-msgid "stats.publicationStats"
-msgstr "Monograph Stats"
-
-msgid "stats.publications.details"
-msgstr "Monograph Details"
-
-msgid "stats.publications.none"
-msgstr "No monographs were found with usage statistics matching these parameters."
-
-msgid "stats.publications.totalAbstractViews.timelineInterval"
-msgstr "Total catalog views by date"
-
-msgid "stats.publications.totalGalleyViews.timelineInterval"
-msgstr "Total file views by date"
-
-msgid "stats.publications.countOfTotal"
-msgstr "{$count} of {$total} monographs"
-
-msgid "stats.publications.abstracts"
-msgstr "Catalog Entries"
-
-msgid "plugins.importexport.common.error.noObjectsSelected"
-msgstr "No objects selected."
-
-msgid "plugins.importexport.common.error.validation"
-msgstr "Could not convert selected objects."
-
-msgid "plugins.importexport.common.invalidXML"
-msgstr "Invalid XML:"
-
-msgid "plugins.importexport.native.exportSubmissions"
-msgstr "Export Submissions"
diff --git a/locale/en_US/submission.po b/locale/en_US/submission.po
deleted file mode 100644
index 8b76255bc21..00000000000
--- a/locale/en_US/submission.po
+++ /dev/null
@@ -1,469 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-09-30T06:23:43-07:00\n"
-"PO-Revision-Date: 2019-09-30T06:23:43-07:00\n"
-"Language: \n"
-
-msgid "submission.submit.title"
-msgstr "Submit a Monograph"
-
-msgid "submission.upload.selectComponent"
-msgstr "Select component"
-
-msgid "submission.title"
-msgstr "Book Title"
-
-msgid "submission.select"
-msgstr "Select Submission"
-
-msgid "submission.synopsis"
-msgstr "Synopsis"
-
-msgid "submission.workflowType"
-msgstr "Submission Type"
-
-msgid "submission.workflowType.description"
-msgstr "A monograph is a work authored wholly by one or more authors. An edited volume has different authors for each chapter (with the chapter details entered later in this process.)"
-
-msgid "submission.workflowType.editedVolume.label"
-msgstr "Edited Volume"
-
-msgid "submission.workflowType.editedVolume"
-msgstr "Edited Volume: Authors are associated with their own chapter."
-
-msgid "submission.workflowType.authoredWork"
-msgstr "Monograph: Authors are associated with the book as a whole."
-
-msgid "submission.workflowType.change"
-msgstr "Change"
-
-msgid "submission.editorName"
-msgstr "{$editorName} (ed)"
-
-msgid "submission.monograph"
-msgstr "Monograph"
-
-msgid "submission.published"
-msgstr "Production Ready"
-
-msgid "submission.fairCopy"
-msgstr "Fair Copy"
-
-msgid "submission.authorListSeparator"
-msgstr "; "
-
-msgid "submission.artwork.permissions"
-msgstr "Permissions"
-
-msgid "submission.chapter"
-msgstr "Chapter"
-
-msgid "submission.chapters"
-msgstr "Chapters"
-
-msgid "submission.chaptersDescription"
-msgstr "You may list the chapters here, and assign contributors from the list of contributors, above. These contributors will be able to access the chapter during various stages of the publication process."
-
-msgid "submission.chapter.addChapter"
-msgstr "Add Chapter"
-
-msgid "submission.chapter.editChapter"
-msgstr "Edit Chapter"
-
-msgid "submission.chapter.pages"
-msgstr "Pages"
-
-msgid "submission.copyedit"
-msgstr "Copyedit"
-
-msgid "submission.publicationFormats"
-msgstr "Publication Formats"
-
-msgid "submission.proofs"
-msgstr "Proofs"
-
-msgid "submission.download"
-msgstr "Download"
-
-msgid "submission.sharing"
-msgstr "Share This"
-
-msgid "manuscript.submission"
-msgstr "Manuscript Submission"
-
-msgid "submission.round"
-msgstr "Round {$round}"
-
-msgid "submissions.queuedReview"
-msgstr "In Review"
-
-msgid "manuscript.submissions"
-msgstr "Manuscript Submissions"
-
-msgid "submission.confirmSubmit"
-msgstr "Are you sure you wish to submit this manuscript to the press?"
-
-msgid "submission.metadata"
-msgstr "Metadata"
-
-msgid "submission.supportingAgencies"
-msgstr "Supporting Agencies"
-
-msgid "grid.action.addChapter"
-msgstr "Create a new chapter"
-
-msgid "grid.action.editChapter"
-msgstr "Edit this chapter"
-
-msgid "grid.action.deleteChapter"
-msgstr "Delete this chapter"
-
-msgid "submission.submit"
-msgstr "Start New Book Submission"
-
-msgid "submission.submit.newSubmissionMultiple"
-msgstr "Start a New Submission in"
-
-msgid "submission.submit.newSubmissionSingle"
-msgstr "New Submission"
-
-msgid "submission.submit.upload"
-msgstr "Upload Submission"
-
-msgid "submission.submit.cancelSubmission"
-msgstr "You can complete this submission at a later date by selecting Active Submissions from the Author home."
-
-msgid "submission.submit.selectSeries"
-msgstr "Select series (optional)"
-
-msgid "author.isVolumeEditor"
-msgstr "Identify this contributor as the editor of this volume."
-
-msgid "author.submit.seriesRequired"
-msgstr "A valid series is required."
-
-msgid "submission.submit.seriesPosition"
-msgstr "Series Position"
-
-msgid "submission.submit.seriesPosition.description"
-msgstr "Examples: Book 2, Volume 2"
-
-msgid "submission.submit.form.localeRequired"
-msgstr "Please select a submission language."
-
-msgid "submission.submit.privacyStatement"
-msgstr "Privacy Statement"
-
-msgid "submission.submit.contributorRole"
-msgstr "Contributor's role"
-
-msgid "submission.submit.form.authorRequired"
-msgstr "At least one author is required."
-
-msgid "submission.submit.form.authorRequiredFields"
-msgstr "The first name, last name, and email address of each author is required."
-
-msgid "submission.submit.form.titleRequired"
-msgstr "Please enter the title of your monograph."
-
-msgid "submission.submit.form.abstractRequired"
-msgstr "Please enter a brief summary of your monograph."
-
-msgid "submission.submit.form.contributorRoleRequired"
-msgstr "Please select the contributor's role."
-
-msgid "submission.submit.submissionFile"
-msgstr "Submission File"
-
-msgid "submission.submit.prepare"
-msgstr "Prepare"
-
-msgid "submission.submit.catalog"
-msgstr "Catalog"
-
-msgid "submission.submit.metadata"
-msgstr "Metadata"
-
-msgid "submission.submit.finishingUp"
-msgstr "Finishing Up"
-
-msgid "submission.submit.confirmation"
-msgstr "Confirmation"
-
-msgid "submission.submit.nextSteps"
-msgstr "Next Steps"
-
-msgid "submission.submit.coverNote"
-msgstr "Cover Note to Editor"
-
-msgid "submission.submit.generalInformation"
-msgstr "General Information"
-
-msgid "submission.submit.whatNext.description"
-msgstr "The press has been notified of your submission, and you've been emailed a confirmation for your records. Once the editor has reviewed the submission, they will contact you."
-
-msgid "submission.submit.checklistErrors"
-msgstr "Please read and check off the items in the submission checklist. There are {$itemsRemaining} items left unchecked."
-
-msgid "submission.submit.placement"
-msgstr "Submission Placement"
-
-msgid "submission.submit.userGroup"
-msgstr "Submit in my role as..."
-
-msgid "submission.submit.userGroupDescription"
-msgstr "If you are submitting an Edited Volume, you should choose the volume editor role."
-
-msgid "submission.submit.noContext"
-msgstr "This submission's press could not be found."
-
-msgid "grid.chapters.title"
-msgstr "Chapters"
-
-msgid "grid.copyediting.deleteCopyeditorResponse"
-msgstr "Delete Copyeditor Upload"
-
-msgid "submission.complete"
-msgstr "Approved"
-
-msgid "submission.incomplete"
-msgstr "Awaiting Approval"
-
-msgid "submission.editCatalogEntry"
-msgstr "Entry"
-
-msgid "submission.catalogEntry.new"
-msgstr "Add Entry"
-
-msgid "submission.catalogEntry.add"
-msgstr "Add Selected to Catalog"
-
-msgid "submission.catalogEntry.select"
-msgstr "Select monographs to add to the catalog"
-
-msgid "submission.catalogEntry.selectionMissing"
-msgstr "You must select at least one monograph to add to the catalog."
-
-msgid "submission.catalogEntry.confirm"
-msgstr "Add this book to the public catalog"
-
-msgid "submission.catalogEntry.confirm.required"
-msgstr "Please confirm that the submission is ready to be placed in the catalog."
-
-msgid "submission.catalogEntry.isAvailable"
-msgstr "This monograph is ready to be included in the public catalog."
-
-msgid "submission.catalogEntry.viewSubmission"
-msgstr "View Submission"
-
-msgid "submission.catalogEntry.chapterPublicationDates"
-msgstr "Publication Dates"
-
-msgid "submission.catalogEntry.disableChapterPublicationDates"
-msgstr "All chapters will use the publication date of the monograph."
-
-msgid "submission.catalogEntry.enableChapterPublicationDates"
-msgstr "Each chapter may have its own publication date."
-
-msgid "submission.catalogEntry.monographMetadata"
-msgstr "Monograph"
-
-msgid "submission.catalogEntry.catalogMetadata"
-msgstr "Catalog"
-
-msgid "submission.catalogEntry.publicationMetadata"
-msgstr "Publication Format"
-
-msgid "submission.event.metadataPublished"
-msgstr "The monograph's metadata is approved for publication."
-
-msgid "submission.event.metadataUnpublished"
-msgstr "The monograph's metadata is no longer published."
-
-msgid "submission.event.publicationFormatMadeAvailable"
-msgstr "The publication format \"{$publicationFormatName}\" is made available."
-
-msgid "submission.event.publicationFormatMadeUnavailable"
-msgstr "The publication format \"{$publicationFormatName}\" is no longer available."
-
-msgid "submission.event.publicationFormatPublished"
-msgstr "The publication format \"{$publicationFormatName}\" is approved for publication."
-
-msgid "submission.event.publicationFormatUnpublished"
-msgstr "The publication format \"{$publicationFormatName}\" is no longer published."
-
-msgid "submission.event.catalogMetadataUpdated"
-msgstr "The catalog metadata was updated."
-
-msgid "submission.event.publicationMetadataUpdated"
-msgstr "The publication format metadata for \"{$formatName}\" was updated."
-
-msgid "submission.event.publicationFormatCreated"
-msgstr "The publication format \"{$formatName}\" was created."
-
-msgid "submission.event.publicationFormatRemoved"
-msgstr "The publication format \"{$formatName}\" was removed."
-
-msgid "submission.submit.titleAndSummary"
-msgstr "Title and Summary"
-
-msgid "editor.submission.decision.sendExternalReview"
-msgstr "Send to External Review"
-
-msgid "workflow.review.externalReview"
-msgstr "External Review"
-
-msgid "submission.upload.fileContents"
-msgstr "Submission Component"
-
-msgid "submission.dependentFiles"
-msgstr "Dependent Files"
-
-msgid "submission.metadataDescription"
-msgstr "These specifications are based on the Dublin Core metadata set, an international standard used to describe press content."
-
-msgid "section.any"
-msgstr "Any Series"
-
-msgid "submission.list.monographs"
-msgstr "Monographs"
-
-msgid "submission.list.countMonographs"
-msgstr "{$count} monographs"
-
-msgid "submission.list.itemsOfTotalMonographs"
-msgstr "{$count} of {$total} monographs"
-
-msgid "submission.list.orderFeatures"
-msgstr "Order Features"
-
-msgid "submission.list.orderingFeatures"
-msgstr "Drag-and-drop or tap the up and down buttons to change the order of features on the homepage."
-
-msgid "submission.list.orderingFeaturesSection"
-msgstr "Drag-and-drop or tap the up and down buttons to change the order of features in {$title}."
-
-msgid "submission.list.saveFeatureOrder"
-msgstr "Save Order"
-
-msgid "submission.list.viewEntry"
-msgstr "View Entry"
-
-msgid "catalog.browseTitles"
-msgstr "{$numTitles} Titles"
-
-msgid "publication.catalogEntry"
-msgstr "Catalog Entry"
-
-msgid "publication.catalogEntry.success"
-msgstr "The catalog entry details have been updated."
-
-msgid "publication.invalidSeries"
-msgstr "The series for this publication could not be found."
-
-msgid "publication.inactiveSeries"
-msgstr "{$series} (Inactive)"
-
-msgid "publication.required.issue"
-msgstr "The publication must be assigned to an issue before it can be published."
-
-msgid "publication.publishedIn"
-msgstr "Published in {$issueName}."
-
-msgid "publication.publish.confirmation"
-msgstr "All publication requirements have been met. Are you sure you want to make this catalog entry public?"
-
-msgid "publication.scheduledIn"
-msgstr "Scheduled for publication in {$issueName}."
-
-msgid "submission.publication"
-msgstr "Publication"
-
-msgid "publication.status.published"
-msgstr "Published"
-
-msgid "submission.status.scheduled"
-msgstr "Scheduled"
-
-msgid "publication.status.unscheduled"
-msgstr "Unscheduled"
-
-msgid "submission.publications"
-msgstr "Publications"
-
-msgid "publication.copyrightYearBasis.issueDescription"
-msgstr "The copyright year will be set automatically when this is published in an issue."
-
-msgid "publication.copyrightYearBasis.submissionDescription"
-msgstr "The copyright year will be set automatically based on the publication date."
-
-msgid "publication.datePublished"
-msgstr "Date Published"
-
-msgid "publication.editDisabled"
-msgstr "This version has been published and can not be edited."
-
-msgid "publication.event.published"
-msgstr "The submission was published."
-
-msgid "publication.event.scheduled"
-msgstr "The submission was scheduled for publication."
-
-msgid "publication.event.unpublished"
-msgstr "The submission was unpublished."
-
-msgid "publication.event.versionPublished"
-msgstr "A new version was published."
-
-msgid "publication.event.versionScheduled"
-msgstr "A new version was scheduled for publication."
-
-msgid "publication.event.versionUnpublished"
-msgstr "A version was removed from publication."
-
-msgid "publication.invalidSubmission"
-msgstr "The submission for this publication could not be found."
-
-msgid "publication.publish"
-msgstr "Publish"
-
-msgid "publication.publish.requirements"
-msgstr "The following requirements must be met before this can be published."
-
-msgid "publication.required.declined"
-msgstr "A declined submission can not be published."
-
-msgid "publication.required.reviewStage"
-msgstr "The submission must be in the Copyediting or Production stages before it can be published."
-
-msgid "submission.license.description"
-msgstr "The license will be set automatically to {$licenseName} when this is published."
-
-msgid "submission.copyrightHolder.description"
-msgstr "Copyright will be assigned automatically to {$copyright} when this is published."
-
-msgid "submission.copyrightOther.description"
-msgstr "Assign copyright for published submissions to the following party."
-
-msgid "publication.unpublish"
-msgstr "Unpublish"
-
-msgid "publication.unpublish.confirm"
-msgstr "Are you sure you don't want this to be published?"
-
-msgid "publication.unschedule.confirm"
-msgstr "Are you sure you don't want this scheduled for publication?"
-
-msgid "publication.version.details"
-msgstr "Publication details for version {$version}"
-
-msgid "submission.queries.production"
-msgstr "Production Discussions"
-
diff --git a/locale/es_ES/ONIX_BookProduct_CodeLists.xsd b/locale/es/ONIX_BookProduct_CodeLists.xsd
similarity index 100%
rename from locale/es_ES/ONIX_BookProduct_CodeLists.xsd
rename to locale/es/ONIX_BookProduct_CodeLists.xsd
diff --git a/locale/es/admin.po b/locale/es/admin.po
new file mode 100644
index 00000000000..e41bb6ee696
--- /dev/null
+++ b/locale/es/admin.po
@@ -0,0 +1,199 @@
+# Marc Bria , 2023.
+# Jordi LC , 2023, 2024.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2024-03-02 04:53+0000\n"
+"Last-Translator: Jordi LC \n"
+"Language-Team: Spanish \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 "admin.hostedContexts"
+msgstr "Editoriales alojadas"
+
+msgid "admin.settings.appearance.success"
+msgstr "Los ajustes de apariencia del sitio se han actualizado con éxito."
+
+msgid "admin.settings.info.success"
+msgstr "Los información del sitio se ha actualizado con éxito."
+
+msgid "admin.settings.redirect"
+msgstr "Redirección a la editorial"
+
+msgid "admin.settings.noPressRedirect"
+msgstr "No redireccionar"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr ""
+"Este será el idioma predeterminado del sitio y de todas las editoriales "
+"alojadas."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "* Las configuraciones regionales señaladas podrían estar incompletas."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"¿Seguro que quiere desinstalar esta configuración regional? Esto podría "
+"afectar a todas las editoriales alojadas que la utilicen en este momento."
+
+msgid "admin.systemVersion"
+msgstr "Versión de OMP"
+
+msgid "admin.systemConfiguration"
+msgstr "Configuración de OMP"
+
+msgid "admin.presses.pressSettings"
+msgstr "Ajustes de la editorial"
+
+msgid "admin.presses.noneCreated"
+msgstr "No se ha creado ninguna editorial."
+
+msgid "admin.contexts.create"
+msgstr "Crear editorial"
+
+msgid "admin.contexts.form.titleRequired"
+msgstr "El título es obligatorio."
+
+msgid "admin.contexts.form.pathRequired"
+msgstr "La ruta es obligatoria."
+
+msgid "admin.settings.config.success"
+msgstr "Los ajustes de configuración del sitio se han actualizado con éxito."
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"Las solicitudes al sitio web principal serán redirigidas a esta editorial. "
+"Esto puede ser útil si el sitio web solo aloja una editorial, por ejemplo."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"¿Seguro que quiere desactivar esta configuración regional? Esto podría "
+"afectar a todas las editoriales alojadas que la utilicen en este momento."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Seleccionar cualquier configuración regional adicional que desee este "
+"sistema. Las configuraciones regionales deben instalarse antes de ser usadas "
+"por las editoriales alojadas. Consulte la documentación de OMP para obtener "
+"información sobre cómo añadir soporte para nuevos idiomas."
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+"La ruta solo puede incluir letras, números, los caracteres de guión bajo o "
+"guión medio y debe empezar y terminar con una letra o un número."
+
+msgid "admin.contexts.form.pathExists"
+msgstr "Existe otra editorial que ya está usando la ruta seleccionada."
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr ""
+"La configuración regional principal debe ser compatible con las "
+"configuraciones soportadas por la editorial."
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} se ha creado correctamente."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} se ha editado correctamente."
+
+msgid "admin.contexts.contextDescription"
+msgstr "Descripción de la publicación"
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+"Seleccionar las editoriales alojadas que podrán enviar correos electrónicos "
+"masivos. Cuando se habilita esta función, un administrador/a de la editorial "
+"podrá enviar un correo electrónico a todos los usuarios/as registrados con "
+"su editorial.
El mal uso de esta función podría violar las leyes "
+"contra el correo basura en algunas jurisdicciones y podría provocar que los "
+"correos electrónicos de su servidor sean bloqueados al considerarse spam. "
+"Busque asesoramiento técnico antes de habilitar esta función y considere "
+"consultar con los administradores/as de la editorial para asegurarse de que "
+"se use adecuadamente.
Se pueden habilitar más restricciones en esta "
+"función para cada editorial visitando su asistente de configuración en la "
+"lista de Editoriales alojadas."
+
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
+"Se ha desactivado la función de correo electrónico masivo en esta editorial. "
+"Puede habilitar esta función en Admin > "
+"Configuración del sitio."
+
+msgid "admin.siteManagement.description"
+msgstr ""
+"Añadir, editar o eliminar editoriales a este sitio y gestionar la "
+"configuración de todo el sitio."
+
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr "El ID del capítulo (Chapter ID) no es un número entero"
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr "El ID de la serie (Series ID) no es un número entero"
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+"Seleccionar el tipo de estadísticas de uso geográfico que pueden recopilar "
+"las editoriales de este sitio. Las estadísticas geográficas más detalladas "
+"pueden aumentar considerablemente el tamaño de su base de datos y, en "
+"algunos casos, pueden socavar el anonimato de sus visitantes. Cada editorial "
+"puede configurar este ajuste de forma diferente, pero una editorial nunca "
+"podrá recopilar registros más detallados que los definidos en este apartado. "
+"Por ejemplo, si el sitio solo admite país y región, la editorial puede "
+"seleccionar país y región o solo país, pero la editorial no podrá hacer un "
+"seguimiento del país, la región y la ciudad."
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+"Activar las estadísticas institucionales si desea que las editoriales de "
+"este sitio puedan recopilar estadísticas de uso por institución. Para poder "
+"utilizar esta función, los medios de comunicación deberán añadir la "
+"institución y sus rangos de IP. Activar estas estadísticas puede aumentar "
+"considerablemente el tamaño de su base de datos."
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+"Si desea que los puntos finales (endpoints) de la API SUSHI sean accesibles "
+"públicamente para todas las editoriales de este sitio. Si activa la API "
+"pública, cada editorial podrá anular esta configuración para que sus "
+"estadísticas sean privadas. Sin embargo, si desactiva la API pública, las "
+"editoriales no podrán hacer pública su propia API."
+
+msgid "admin.presses.addPress"
+msgstr "Añadir una publicación"
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Seleccionar todas las configuraciones regionales del sitio. Las "
+"configuraciones regionales seleccionadas estarán disponibles para todas las "
+"editoriales alojadas en el sitio, y también aparecerán en un menú de idioma "
+"que aparecerá en cada página del sitio (aunque pueden anularse en páginas "
+"específicas de la editorial). Si solo selecciona una configuración regional, "
+"el menú de selección de idioma no se mostrará y las editoriales no tendrán "
+"una configuración de idioma ampliada."
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"¡NOTA!
\n"
+"El sistema no pudo sobrescribir automáticamente el archivo de "
+"configuración. Para aplicar los cambios de configuración, debe abrir "
+"config.inc.php en un editor de texto adecuado y reemplazar su "
+"contenido con el contenido del campo de texto a continuación.
"
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+"El administrador/a de la editorial no podrá enviar correos electrónicos "
+"masivos a ninguno de los siguientes roles seleccionados. Use esta "
+"configuración para limitar el abuso de la función de notificación por correo "
+"electrónico. Por ejemplo, podría ser más seguro deshabilitar los correos "
+"electrónicos masivos a lectores/as, autores/as u otros grupos de usuarios/as "
+"que no hayan dado su consentimiento para recibir tales correos "
+"electrónicos.
La función de correo electrónico masivo se puede "
+"deshabilitar por completo para esta editorial en Admin > Configuración del sitio."
+
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr "Usar este sitio como plataforma para todas las publicaciones."
diff --git a/locale/es/api.po b/locale/es/api.po
new file mode 100644
index 00000000000..fc501a183ce
--- /dev/null
+++ b/locale/es/api.po
@@ -0,0 +1,46 @@
+# Marc Bria , 2023.
+# Jordi LC , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-04-29 14:49+0000\n"
+"Last-Translator: Jordi LC \n"
+"Language-Team: Spanish \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.13.1\n"
+
+msgid "api.submissions.400.submissionIdsRequired"
+msgstr ""
+"Debe proporcionar uno o más identificadores de envío para añadirlos al "
+"catálogo."
+
+msgid "api.submissions.400.submissionsNotFound"
+msgstr "No se han podido encontrar uno o más de los envíos que ha especificado."
+
+msgid "api.submissions.400.wrongContext"
+msgstr "El envío que ha solicitado no está en esta editorial."
+
+msgid "api.emails.403.disabled"
+msgstr ""
+"No se ha activado la funcionalidad de notificación por correo electrónico en "
+"esta editorial."
+
+msgid "api.publications.403.contextsDidNotMatch"
+msgstr "La publicación que ha solicitado no forma parte de esta editorial."
+
+msgid "api.publications.403.submissionsDidNotMatch"
+msgstr "La publicación que ha solicitado no forma parte de este envío."
+
+msgid "api.submissions.403.cantChangeContext"
+msgstr "No puede cambiar la editorial de un envío."
+
+msgid "api.submission.400.inactiveSection"
+msgstr "Esta sección ya no recibe más envíos."
+
+msgid "api.emailTemplates.403.notAllowedChangeContext"
+msgstr ""
+"No tiene permiso para mover esta plantilla de correo electrónico a otra "
+"editorial."
diff --git a/locale/es/author.po b/locale/es/author.po
new file mode 100644
index 00000000000..d0be7c21fd2
--- /dev/null
+++ b/locale/es/author.po
@@ -0,0 +1,19 @@
+# Jordi LC , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-04-22 12:49+0000\n"
+"Last-Translator: Jordi LC \n"
+"Language-Team: Spanish "
+"\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.13.1\n"
+
+msgid "author.submit.notAccepting"
+msgstr "Esta editorial no acepta envíos en este momento."
+
+msgid "author.submit"
+msgstr "Nuevo envío"
diff --git a/locale/es/default.po b/locale/es/default.po
new file mode 100644
index 00000000000..2f6490b41ad
--- /dev/null
+++ b/locale/es/default.po
@@ -0,0 +1,223 @@
+# Jordi LC , 2023, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
+"PO-Revision-Date: 2024-04-26 12:34+0000\n"
+"Last-Translator: Jordi LC \n"
+"Language-Team: Spanish "
+"\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 "default.genres.appendix"
+msgstr "Apéndice"
+
+msgid "default.genres.bibliography"
+msgstr "Bibliografía"
+
+msgid "default.genres.manuscript"
+msgstr "Manuscrito de libro"
+
+msgid "default.genres.chapter"
+msgstr "Manuscrito de capítulo"
+
+msgid "default.genres.glossary"
+msgstr "Glosario"
+
+msgid "default.genres.index"
+msgstr "Índice"
+
+msgid "default.genres.preface"
+msgstr "Prefacio"
+
+msgid "default.genres.prospectus"
+msgstr "Documento de proyecto"
+
+msgid "default.genres.table"
+msgstr "Tabla"
+
+msgid "default.genres.figure"
+msgstr "Figura"
+
+msgid "default.genres.photo"
+msgstr "Foto"
+
+msgid "default.genres.illustration"
+msgstr "Ilustración"
+
+msgid "default.genres.other"
+msgstr "Otros"
+
+msgid "default.groups.name.manager"
+msgstr "Jefe/a editorial"
+
+msgid "default.groups.plural.manager"
+msgstr "Jefes/as editoriales"
+
+msgid "default.groups.abbrev.manager"
+msgstr "JE"
+
+msgid "default.groups.name.editor"
+msgstr "Coordinador editorial"
+
+msgid "default.groups.plural.editor"
+msgstr "Coordinadores editoriales"
+
+msgid "default.groups.abbrev.editor"
+msgstr "CE"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Coordinador de obra"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Editores/as de las colecciones"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "CO"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr "Gestor/a de la suscripción"
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr "Gestores/as de la suscripción"
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr "SubM"
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Autor de capítulo"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Autores de capítulo"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "AC"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Coordinador de obra"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Editores/as del volumen"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "CO"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+"Se invita a los autores/as a realizar un envío a esta editorial. Los que "
+"se consideren adecuados se enviarán a una revisión por pares antes de "
+"determinar si serán aceptados o rechazados.
Antes de remitir un envío, "
+"los autores/as son responsables de obtener el permiso para publicar "
+"cualquier material incluido en él, como fotografías, documentos y conjuntos "
+"de datos. Todos los autores/as identificados en el envío deben dar su "
+"consentimiento para ser identificados como autores/as. Cuando corresponda, "
+"la investigación debe ser aprobada por un comité de ética apropiado de "
+"acuerdo con los requisitos legales del país del estudio.
Un editor/a "
+"puede rechazar un envío si no cumple con los estándares mínimos de calidad. "
+"Antes de hacer el envío, asegúrese de que el diseño del estudio y el "
+"argumento de la investigación estén estructurados y articulados "
+"correctamente. El título debe ser conciso y el resumen debe poder sostenerse "
+"por sí solo. Esto aumentará la probabilidad de que los revisores/as acepten "
+"revisar el artículo. Cuando tenga la certeza de que su envío cumple con este "
+"estándar, continúe a la lista de verificación que hay a continuación para "
+"preparar su envío.
"
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+"Todos los envíos deben cumplir con los siguientes requisitos."
+"p>
- Este envío cumple con los requisitos descritos en las Directrices para autores/as.
- Este "
+"envío no ha sido publicado previamente, ni se ha presentado ante otra "
+"editorial para su consideración.
- Todas las referencias han sido "
+"verificadas para ver si son precisas y completas.
- Todas las tablas y "
+"figuras han sido numeradas y etiquetadas.
- Se ha obtenido permiso "
+"para publicar todas las imágenes, conjuntos de datos y cualquier otro "
+"material proporcionado con este envío.
"
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"Los nombres y direcciones de correo electrónico introducidos en esta "
+"editorial se utilizarán exclusivamente para los fines declarados por la "
+"misma y no estarán disponibles para ningún otro propósito ni lugar.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"Esta editorial proporciona acceso abierto inmediato a su contenido bajo el "
+"principio de que hacer disponible la investigación, abiertamente al público, "
+"fomenta un mayor intercambio de conocimiento global."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"Los lectores pueden darse de alta en el servicio de notificación de "
+"novedades. Para ello, utiliza el enlace de Crear cuenta en la parte superior de la "
+"página. Este registro permitirá al lector recibir por correo electrónico la "
+"Tabla de Contenidos de cada novedad. Consulta la Declaración de "
+"Privacidad de la editorial que asegura a los lectores que su nombre y "
+"dirección de correo electrónico no será utilizada para otros fines."
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"¿Le interesa hacer un envío a esta publicación? Le recomendamos que revise "
+"los apartados Acerca de la "
+"publicación, para obtener información sobre las políticas de sección, y "
+"Directrices para autores/as. Los autores/as deben registrarse en la "
+"publicación antes realizar un envío o, si ya están registrados, simplemente "
+"iniciar sesión y empezar con el "
+"proceso de 5 pasos."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Animamos a los bibliotecarios/as a listar esta publicación en sus fondos de "
+"publicaciones electrónicas. Además, este sistema de publicación de código "
+"abierto es apropiado para que las bibliotecas lo ofrezcan a sus miembros "
+"involucrados en la edición de publicaciones (ver Open Monograph Press)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Revisor/a externo"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Revisores/as externos"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "RE"
+
+#~ msgid "default.contextSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "La propuesta no ha sido publicada previamente, ni está bajo consideración "
+#~ "de ninguna otra editorial (o se proporciona una explicación en "
+#~ "\"Comentarios para la editorial\")."
+
+#~ msgid "default.contextSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "El fichero de la propuesta está en formato Microsoft Word, RTF o "
+#~ "OpenDocument."
+
+#~ msgid "default.contextSettings.checklist.addressesLinked"
+#~ msgstr ""
+#~ "Se proporcionan las direcciones URLs de las referencias si están "
+#~ "disponibles."
+
+#~ msgid "default.contextSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "El texto tiene interlineado simple, se utiliza una fuente de 12 puntos, "
+#~ "cursiva en lugar de subrayado (exceptuando las direcciones URL), y todas "
+#~ "las ilustraciones, figuras y tablas están dentro del texto en los lugares "
+#~ "apropiados en lugar de al final."
+
+#~ msgid "default.contextSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "El texto se adhiere a los requisitos bibliográficos y de estilo indicados "
+#~ "en las Directrices para "
+#~ "autores, que se encuentran en Acerca de la editorial."
diff --git a/locale/es/editor.po b/locale/es/editor.po
new file mode 100644
index 00000000000..cf7fd19db2d
--- /dev/null
+++ b/locale/es/editor.po
@@ -0,0 +1,276 @@
+# Marc Bria , 2023.
+# Jordi LC , 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
+"PO-Revision-Date: 2024-04-26 12:34+0000\n"
+"Last-Translator: Jordi LC \n"
+"Language-Team: Spanish "
+"\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 "editor.submissionArchive"
+msgstr "Archivo de envíos"
+
+msgid "editor.monograph.cancelReview"
+msgstr "Cancelar solicitud"
+
+msgid "editor.monograph.clearReview"
+msgstr "Eliminar revisor/a"
+
+msgid "editor.monograph.enterRecommendation"
+msgstr "Introducir recomendación"
+
+msgid "editor.monograph.enterReviewerRecommendation"
+msgstr "Introducir recomendación del revisor/a"
+
+msgid "editor.monograph.recommendation"
+msgstr "Recomendación"
+
+msgid "editor.monograph.selectReviewerInstructions"
+msgstr ""
+"Seleccione un revisor/a y pulse el botón \"Seleccionar revisor/a\" para "
+"continuar."
+
+msgid "editor.monograph.replaceReviewer"
+msgstr "Reemplazar revisor/a"
+
+msgid "editor.monograph.editorToEnter"
+msgstr "Recomendaciones/comentarios del editor/a para el revisor/a"
+
+msgid "editor.monograph.uploadReviewForReviewer"
+msgstr "Cargar revisión"
+
+msgid "editor.monograph.peerReviewOptions"
+msgstr "Opciones de evaluación por pares"
+
+msgid "editor.monograph.selectProofreadingFiles"
+msgstr "Corrección de archivos"
+
+msgid "editor.monograph.internalReview"
+msgstr "Iniciar revisión interna"
+
+msgid "editor.monograph.internalReviewDescription"
+msgstr ""
+"Seleccione los archivos a continuación para enviarlos a la fase de revisión "
+"interna."
+
+msgid "editor.monograph.externalReview"
+msgstr "Iniciar revisión externa"
+
+msgid "editor.monograph.final.selectFinalDraftFiles"
+msgstr "Seleccionar los archivos del borrador final"
+
+msgid "editor.monograph.final.currentFiles"
+msgstr "Archivos actuales del borrador final"
+
+msgid "editor.monograph.copyediting.currentFiles"
+msgstr "Archivos actuales"
+
+msgid "editor.monograph.copyediting.personalMessageToUser"
+msgstr "Mensaje al usuario"
+
+msgid "editor.monograph.legend.submissionActions"
+msgstr "Acciones de envío"
+
+msgid "editor.monograph.legend.submissionActionsDescription"
+msgstr "Opciones y acciones generales de envío."
+
+msgid "editor.monograph.legend.sectionActions"
+msgstr "Acciones de sección"
+
+msgid "editor.monograph.legend.sectionActionsDescription"
+msgstr ""
+"Opciones específicas de una sección determinada, por ejemplo, cargar "
+"archivos o añadir usuarios."
+
+msgid "editor.monograph.legend.itemActions"
+msgstr "Acciones de elemento"
+
+msgid "editor.monograph.legend.itemActionsDescription"
+msgstr "Acciones y opciones específicas de un archivo individual."
+
+msgid "editor.monograph.legend.catalogEntry"
+msgstr ""
+"Ver y gestionar la entrada de catálogo del envío, incluso formatos de "
+"metadatos y publicación"
+
+msgid "editor.monograph.legend.bookInfo"
+msgstr ""
+"Ver y gestionar metadatos, notas, notificaciones y el historial del envío"
+
+msgid "editor.monograph.legend.participants"
+msgstr ""
+"Ver y gestionar los participantes en este envío: autores/as, editores/as, "
+"diseñadores/as, etc."
+
+msgid "editor.monograph.legend.add"
+msgstr "Cargar un archivo a la sección"
+
+msgid "editor.monograph.legend.add_user"
+msgstr "Añadir un usuario/a a la sección"
+
+msgid "editor.monograph.legend.settings"
+msgstr ""
+"Ver y acceder a la configuración de elemento, como información y opciones de "
+"eliminación"
+
+msgid "editor.monograph.legend.more_info"
+msgstr ""
+"Más información: notas de archivo, opciones de notificación e historial"
+
+msgid "editor.monograph.legend.notes_none"
+msgstr ""
+"Información de archivo: notas, opciones de notificación e historial (sin "
+"notas todavía)"
+
+msgid "editor.monograph.legend.notes"
+msgstr ""
+"Información de archivo: notas, opciones de notificación e historial (con "
+"notas)"
+
+msgid "editor.monograph.legend.notes_new"
+msgstr ""
+"Información de archivo: notas, opciones de notificación e historial (nuevas "
+"notas añadidas desde la última visita)"
+
+msgid "editor.monograph.legend.edit"
+msgstr "Editar elemento"
+
+msgid "editor.monograph.legend.delete"
+msgstr "Eliminar elemento"
+
+msgid "editor.monograph.legend.in_progress"
+msgstr "Acción en curso o incompleta"
+
+msgid "editor.monograph.legend.complete"
+msgstr "Acción completa"
+
+msgid "editor.monograph.legend.uploaded"
+msgstr "Archivo cargado por el rol en el título de la columna de cuadrícula"
+
+msgid "editor.submission.introduction"
+msgstr ""
+"Durante el envío, el editor/a, después de consultar los archivos enviados, "
+"selecciona la acción adecuada (la cual incluye notificar al autor/a): enviar "
+"a revisión interna (implica seleccionar los archivos para la revisión "
+"interna), enviar a revisión externa (implica seleccionar los archivos para "
+"la revisión externa), aceptar el envío (implica seleccionar los archivos "
+"para la fase editorial), o rechazar el envío (envío de archivos)."
+
+msgid "editor.monograph.editorial.fairCopy"
+msgstr "Copia en limpio"
+
+msgid "editor.monograph.proofs"
+msgstr "Pruebas"
+
+msgid "editor.monograph.production.approvalAndPublishing"
+msgstr "Aprobación y publicaciones"
+
+msgid "editor.monograph.production.approvalAndPublishingDescription"
+msgstr ""
+"Los diferentes formatos de publicación, como tapa dura, tapa blanda y "
+"digital, pueden cargarse a la sección Formatos de publicación que se ve a "
+"continuación. Se puede usar la cuadrícula de formatos de publicación "
+"mostrada a continuación, como una lista de comprobación de lo que todavía "
+"queda por hacer para publicar un formato de publicación."
+
+msgid "editor.monograph.production.publicationFormatDescription"
+msgstr ""
+"Añadir formatos de publicación (p.ej., digital, en rústica) para los cuales "
+"el/la maquetista prepara pruebas de página para su corrección. Las "
+"Pruebas deben marcarse como aprobadas y la entrada de Catálogo"
+"em> para el formato debe marcarse como publicada en la entrada de catálogo "
+"del libro, antes de que un formato se pueda hacer Disponible (i.e., "
+"publicado)."
+
+msgid "editor.monograph.approvedProofs.edit"
+msgstr "Establecer condiciones para la descarga"
+
+msgid "editor.monograph.approvedProofs.edit.linkTitle"
+msgstr "Establecer condiciones"
+
+msgid "editor.monograph.proof.addNote"
+msgstr "Añadir respuesta"
+
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+"Cualquier fichero que ya haya sido subido en cualquier fase del envío puede "
+"añadirse al listado \"Ficheros de prueba\" marcando la siguiente casilla "
+"\"Añadir\" y pulsando \"Buscar\": todos los ficheros disponibles se listarán "
+"y podrán incluirse."
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+"El identificador público '{$publicIdentifier}' ya existe para otro objeto "
+"del mismo tipo. Elija identificadores únicos para los objetos del mismo tipo."
+
+msgid "editor.submissions.assignedTo"
+msgstr "Asignado a un editor/a"
+
+#~ msgid "editor.pressSignoff"
+#~ msgstr "Pulse Cerrar sesión"
+
+#~ msgid "editor.submission.selectedReviewer"
+#~ msgstr "Revisor/a seleccionado"
+
+#~ msgid "editor.submission.editorial.finalDraftDescription"
+#~ msgstr ""
+#~ "Para volúmenes editados con diferentes autores/as por capítulo, el "
+#~ "archivo de envío puede dividirse en varios archivos de tamaño de un "
+#~ "capítulo cada uno. Éstos se revisan por el autor/a de cada capítulo "
+#~ "después de que los archivos corregidos se suban a Corrección de originales."
+
+#~ msgid "editor.monograph.editorial.fairCopyDescription"
+#~ msgstr ""
+#~ "El corrector/a sube una copia original o en limpio del envío para su "
+#~ "revisión por el editor/a, antes de enviarla a producción."
+
+#~ msgid "editor.submission.production.introduction"
+#~ msgstr ""
+#~ "Durante la producción, el editor/a selecciona formatos del libro (por "
+#~ "ejemplo digital, en rústica, etc) en Formatos de publicación, para los cuales el/la maquetista "
+#~ "prepara archivos de calidad de publicación basándose en los archivos "
+#~ "listos para producción. Los archivos de calidad de publicación se suben "
+#~ "para cada formato en Pruebas de página"
+#~ "span>, dónde se revisan. El libro se hace Disponible (i.e., "
+#~ "publicado) para cada formato en Formatos "
+#~ "de publicación, tras marcar la opción Pruebas como "
+#~ "aprobada, y la entrada de Catálogo como incluida en la entrada de "
+#~ "catálogo del libro."
+
+#~ msgid "editor.submission.production.productionReadyFilesDescription"
+#~ msgstr ""
+#~ "El/la maquetista prepara estos archivos para cada formato de publicación "
+#~ "y después los sube a las Pruebas de "
+#~ "página correspondientes para su corrección."
+
+#~ msgid "editor.internalReview.introduction"
+#~ msgstr ""
+#~ "Durante la revisión interna, el editor/a asigna revisores/as internos a "
+#~ "los archivos de envío y verifica los resultados de la revisión, antes de "
+#~ "seleccionar la acción apropiada (la cual incluye notificar al autor/a): "
+#~ "solicitar revisiones (revisiones hechas sólo por el editor/a), reenviar "
+#~ "para revisión (se inicia otra ronda de revisiones), enviar para revisión "
+#~ "externa (implica seleccionar los archivos para la revisión externa), "
+#~ "aceptar el envío (implica seleccionar los archivos para la fase "
+#~ "editorial), o rechazar el envío (archiva el envío)."
+
+#~ msgid "editor.externalReview.introduction"
+#~ msgstr ""
+#~ "Durante la revisión externa, el editor/a asigna revisores/as externos a "
+#~ "los archivos de envío y verifica los resultados de la revisión, antes de "
+#~ "seleccionar la acción apropiada (la cual incluye notificar al autor/a): "
+#~ "solicitar revisiones (revisiones hechas sólo por el editor), reenviar a "
+#~ "revisión (se inicia otra ronda de revisiones), aceptar el envío (implica "
+#~ "seleccionar los archivos para la fase editorial), o rechazar el envío (el "
+#~ "editor/a archiva el envío)."
diff --git a/locale/es/emails.po b/locale/es/emails.po
new file mode 100644
index 00000000000..32cd8434f38
--- /dev/null
+++ b/locale/es/emails.po
@@ -0,0 +1,564 @@
+# Jordi LC , 2021, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-12-03T14:14:06-08:00\n"
+"PO-Revision-Date: 2023-06-16 11:49+0000\n"
+"Last-Translator: Jordi LC \n"
+"Language-Team: Spanish "
+"\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.13.1\n"
+
+msgid "emails.passwordResetConfirm.subject"
+msgstr "Confirmación para restablecer la contraseña"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"Se recibió una solicitud para restablecer su contraseña en la página web "
+"{$siteTitle}.
\n"
+"
\n"
+"Si no realizó esta solicitud, ignore este correo electrónico y su contraseña "
+"no se cambiará. Si desea restablecer su contraseña, haga clic en la "
+"dirección URL que aparece debajo.
\n"
+"
\n"
+"Restablecer contraseña: {$passwordResetUrl}
\n"
+"
\n"
+"{$siteContactName}"
+
+msgid "emails.passwordReset.subject"
+msgstr ""
+
+msgid "emails.passwordReset.body"
+msgstr ""
+
+msgid "emails.userRegister.subject"
+msgstr "Registro en la publicación"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Se registró como usuario/a con {$contextName}. En este correo electrónico "
+"hemos incluido el nombre de usuario/a y contraseña que necesitará para "
+"trabajar con esta publicación a través de su página web. En cualquier "
+"momento puede contactarse conmigo para pedir que se le elimine de la lista "
+"de usuarios/as.
\n"
+"
\n"
+"Nombre de usuario/a: {$recipientUsername}
\n"
+"Contraseña: {$password}
\n"
+"
\n"
+"Gracias,
\n"
+"{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr "Valide su cuenta"
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Ha creado una cuenta en {$contextName}, pero es necesario que valide su "
+"cuenta de correo electrónico antes de poder utilizarla. Para ello, "
+"simplemente haga clic en el enlace siguiente:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Gracias,
\n"
+"{$contextSignature}"
+
+msgid "emails.userValidateSite.subject"
+msgstr "Valide su cuenta"
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Ha creado una cuenta en {$siteTitle}, pero es necesario que valide su cuenta "
+"de correo electrónico antes de poder utilizarla. Para ello, simplemente haga "
+"clic en el enlace siguiente:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Gracias,
\n"
+"{$siteSignature}"
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Registro como revisor/a con {$contextName}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"Dada su experiencia, nos hemos tomado la libertad de registrar su nombre en "
+"la base de datos de revisores/as para {$contextName}. Esto no implica ningún "
+"tipo de compromiso por su parte, simplemente permite que nos pongamos en "
+"contacto con usted si tenemos un envío que quizás pueda revisar. Si se le "
+"invita a realizar una revisión, tendrá la oportunidad de ver el título y el "
+"resumen de dicho trabajo y en todo momento podrá aceptar o rechazar la "
+"invitación. Asimismo, puede pedir que se elimine su nombre de la lista de "
+"revisores/as.
\n"
+"
\n"
+"Le proporcionamos un nombre de usuario/a y una contraseña que se utilizan "
+"para trabajar con la publicación a través de su página web. Si lo desea "
+"puede, por ejemplo, actualizar su perfil y sus preferencias de revisión.
\n"
+"
\n"
+"Nombre de usuario/a: {$recipientUsername}
\n"
+"Contraseña: {$password}
\n"
+"
\n"
+"Gracias,
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.subject"
+msgstr "Tarea editorial"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+"Estimado/a {$recipientName},
Se le ha asignado el envío siguiente "
+"para supervisarlo durante el proceso editorial.
{$submissionTitle}
{$authors}
Resumen
{$submissionAbstract}Si considera "
+"que el envío es relevante para {$contextName}, remítalo a la fase de "
+"revisión seleccionando \"Enviar a revisión interna\" y, a continuación, "
+"asigne revisores/as haciendo clic en \"Añadir revisor/a\".
Si el envío "
+"no es adecuado para esta publicación, rechácelo.
Gracias por "
+"adelantado.
Saludos cordiales,
{$contextSignature}"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Solicitud de revisión de manuscrito"
+
+msgid "emails.reviewRequest.body"
+msgstr ""
+"Estimado/a {$recipientName},
Consideramos que sería un revisor/a "
+"excelente para este envío a {$contextName}. Encontrará el título y el "
+"resumen del envío más abajo. Esperamos que considere llevar a cabo esta "
+"tarea tan importante para nosotros.
Si está disponible para revisar el "
+"envío, la fecha límite para completar la revisión sería el {$reviewDueDate}. "
+"Puede consultar el envío, cargar los archivos de revisión y enviar su "
+"revisión iniciando sesión en la publicación y siguiendo los pasos desde el "
+"enlace que hay más abajo.
{$submissionTitle}
Resumen
{$submissionAbstract}Por "
+"favor, acepte o rechace la revisión "
+"antes del {$responseDueDate}.
Si tiene cualquier pregunta sobre "
+"el envío o el proceso de revisión no dude en contactarnos.
Gracias por "
+"tener en cuenta esta petición, apreciamos mucho su ayuda.
Saludos "
+"cordiales,
{$signature}"
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr "Solicitud para revisar un envío ya revisado"
+
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+"Estimado/a {$recipientName},
Gracias por la revisión de {$submissionTitle}. Los autores/as han tenido "
+"en cuenta los comentarios de los revisores/as y han enviado una versión "
+"revisada de su obra. Le escribo para pedirle si podría llevar a cabo una "
+"segunda ronda de revisión por pares de este envío.
Si está disponible "
+"para revisar el envío, la fecha límite para completar la revisión sería el "
+"{$reviewDueDate}. Puede seguir los pasos "
+"de revisión para consultar el envío, cargar los archivos de revisión y "
+"enviar sus comentarios de revisión.
{$submissionTitle}
{$submissionAbstract}Por "
+"favor, acepte o rechace la revisión "
+"antes del {$responseDueDate}.
Si tiene cualquier pregunta sobre "
+"el envío o el proceso de revisión no dude en contactarnos.
Gracias por "
+"tener en cuenta esta petición, apreciamos mucho su ayuda.
Saludos "
+"cordiales,
{$signature}"
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr "Solicitud de revisión del manuscrito"
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+"Estimado/a {$recipientName},
\n"
+"Esto es un breve recordatorio de nuestra solicitud de revisión del envío, "
+""{$submissionTitle}," para {$contextName}. Esperábamos recibir su "
+"respuesta el {$responseDueDate}, así que este correo electrónico se ha "
+"generado y enviado automáticamente al excederse dicha fecha.\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Inicie la sesión en el sitio web de la publicación para indicar si realizará "
+"la revisión o no, así como para acceder al envío y registrar su revisión y "
+"recomendación..
\n"
+"
\n"
+"La revisión está prevista para el día {$reviewDueDate}.
\n"
+"
\n"
+"URL del envío: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Nombre de usuario/a: {$recipientUsername}
\n"
+"
\n"
+"Gracias por considerar esta solicitud.
\n"
+"
\n"
+"
\n"
+"Sinceramente,
\n"
+"{$contextSignature}
\n"
+
+msgid "emails.reviewCancel.subject"
+msgstr "Solicitud de revisión cancelada"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Hemos decidido cancelar nuestra solicitud de que usted revise el envío ""
+"{$submissionTitle}" para {$contextName}. Pedimos disculpas por "
+"cualquier inconveniente que esta decisión pueda causar y esperamos poder "
+"contar con usted para participar en este proceso de revisión en el futuro."
+"
\n"
+"
\n"
+"Si tiene alguna duda, puede ponerse en contacto conmigo."
+
+#, fuzzy
+msgid "emails.reviewReinstate.body"
+msgstr "Solicitud de revisión restablecida"
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+"Estimado/a {$recipientName},
Recientemente cancelamos nuestra "
+"solicitud para que revisara el envío, {$submissionTitle}, para {$contextName}"
+". Sin embargo, hemos revertido dicha decisión y tenemos la esperanza de que "
+"aún pueda llevar a cabo la revisión.
Si está disponible para ayudarnos "
+"con la revisión de este envío puede iniciar sesión en la publicación para ver el envío, cargar archivos de "
+"revisión y enviar su revisión.
Si tiene cualquier pregunta póngase en "
+"contacto con nosotros.
Saludos cordiales,
{$signature}"
+
+msgid "emails.reviewDecline.subject"
+msgstr "No disponible para revisar"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Me temo que en este momento no puedo revisar el envío ""
+"{$submissionTitle}" para {$contextName}. Gracias por pensar en mí, "
+"pueden contar conmigo en futuras ocasiones.
\n"
+"
\n"
+"{$senderName}"
+
+msgid "emails.reviewRemind.subject"
+msgstr "Recordatorio para completar la revisión"
+
+msgid "emails.reviewRemind.body"
+msgstr ""
+"Estimado/a {$recipientName},
Esto es un breve recordatorio sobre "
+"nuestra solicitud de revisión del envío \"{$submissionTitle}\" para "
+"{$contextName}. Esperábamos recibir la revisión el {$reviewDueDate}, así que "
+"le agradeceríamos que nos la enviara tan pronto como la tenga preparada."
+"p>
Puede iniciar sesión en la "
+"publicación y seguir los pasos de revisión para consultar el envío, "
+"cargar los archivos de revisión y enviar sus comentarios de revisión."
+"p>
Si necesita ampliar la fecha límite póngase en contacto con nosotros. "
+"Esperamos recibir noticias suyas bien pronto.
Gracias por adelantado y "
+"saludos cordiales,
{$signature}"
+
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+"Estimado/a {$recipientName},
Este correo electrónico es un "
+"recordatorio automático de {$contextName} acerca de nuestra solicitud de "
+"revisión del envío \"{$submissionTitle}\"
. Esperábamos recibir la "
+"revisión el {$reviewDueDate}, así que le agradeceríamos que nos la enviara "
+"tan pronto como la tenga preparada.
Por favor, inicie sesión en la publicación y siga los "
+"pasos de revisión para consultar el envío, cargar los archivos de revisión y "
+"enviar sus comentarios de revisión.
Si necesita ampliar la fecha "
+"límite póngase en contacto con nosotros. Esperamos recibir noticias suyas "
+"bien pronto.
Gracias por adelantado y saludos "
+"cordiales,
{$signature}"
+
+msgid "emails.editorDecisionAccept.subject"
+msgstr "Se ha aceptado su envío para {$contextName}"
+
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+"Estimado/a {$recipientName},
Nos complace informarle de que hemos "
+"decidido aceptar su envío sin más revisiones. Tras una cuidadosa revisión, "
+"hemos comprobado que su envío, {$submissionTitle}, cumple o supera nuestras "
+"expectativas. Estamos emocionados por publicar su trabajo en {$contextName} "
+"y le agradecemos que haya elegido nuestra publicación para publicar su "
+"obra.
Su envío se publicará próximamente en el sitio web de "
+"{$contextName} y le invitamos a que lo incluya en su listado de "
+"publicaciones. Reconocemos el duro trabajo que conlleva cada envío exitoso y "
+"queremos felicitarle por haber llegado a esta fase.
Su envío se "
+"someterá ahora a un proceso de corrección y formateo para prepararlo para su "
+"publicación.
En breve recibirá más instrucciones.
Si tiene "
+"cualquier pregunta no dude en contactarnos desde su panel de envíos.
Saludos "
+"cordiales,
{$signature}"
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr "Su envío se ha remitido a revisión interna"
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+"Estimado/a {$recipientName},
Nos complace informarle de que un "
+"editor/a ha revisado su envío, {$submissionTitle}, y ha decidido remitirlo a "
+"una revisión interna. Le enviaremos los comentarios de los revisores/as y la "
+"información sobre los próximos pasos.
Tenga en cuenta que el hecho de "
+"remitir el envío a revisión interna no garantiza que este será publicado. "
+"Antes de aceptar el envío para su publicación consideraremos las "
+"recomendaciones de los revisores/as. Es posible que se le pida que haga "
+"revisiones y responda a los comentarios de los revisores/as antes de tomar "
+"una decisión definitiva.
Si tiene cualquier pregunta no dude en "
+"contactarnos a través de su panel de envíos.
{$signature}
"
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr "Su envío se ha remitido a edición"
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+"Estimado/a {$recipientName},
\n"
+"Nos complace informarle de que hemos decidido aceptar su envío sin "
+"revisión por pares. Consideramos que su envío, {$submissionTitle}, cumple "
+"nuestras expectativas, y no exigimos que trabajos de este tipo se sometan a "
+"revisión por pares. Estamos emocionados por publicar su trabajo en "
+"{$contextName} y le agradecemos que haya elegido nuestra publicación para "
+"publicar su obra.
\n"
+"Su envío se publicará próximamente en el sitio web de {$contextName} y le "
+"invitamos a que lo incluya en su listado de publicaciones. Reconocemos el "
+"duro trabajo que conlleva cada envío exitoso y queremos felicitarle por su "
+"esfuerzo.
\n"
+"Su envío se someterá ahora a un proceso de corrección y formateo para "
+"prepararlo para su publicación.
\n"
+"En breve recibirá más instrucciones.
\n"
+"Si tiene cualquier pregunta no dude en contactarnos desde su panel de envíos.
\n"
+"Saludos cordiales,
\n"
+"{$signature}
\n"
+
+msgid "emails.layoutRequest.subject"
+msgstr ""
+"El envío {$submissionId} está listo para la producción en {$contextAcronym}"
+
+msgid "emails.layoutRequest.body"
+msgstr ""
+"Estimado/a {$recipientName},
Un envío nuevo está listo para su "
+"maquetación:
{$submissionId} "
+"{$submissionTitle}
{$contextName}
- Haga clic en la URL "
+"del envío que aparece encima.
- Descargue los archivos listos para la "
+"producción y utilícelos para crear las galeradas según los estándares de "
+"estilo de la publicación.
- Cargue las galeradas en la sección de "
+"\"Formatos de publicación\" del envío.
- Inicie una discusión de "
+"producción para notificar al editor/a que la galerada está lista.
"
+"ol>Si en este momento no puede llevar a cabo esta tarea o tiene alguna "
+"pregunta no dude en contactar con nosotros. Gracias por su contribución a "
+"esta publicación.
Saludos cordiales,
{$signature}"
+
+msgid "emails.layoutComplete.subject"
+msgstr "Galeradas completadas"
+
+msgid "emails.layoutComplete.body"
+msgstr ""
+"Estimado/a {$recipientName},
Ya se han preparado las galeradas del "
+"envío siguiente y están listas para su revisión final.
{$submissionTitle}
{$contextName}
Si tiene "
+"cualquier pregunta póngase en contacte con nosotros.
Saludos "
+"cordiales,
{$senderName}
"
+
+msgid "emails.indexRequest.subject"
+msgstr "Solicitud de índice"
+
+msgid "emails.indexRequest.body"
+msgstr ""
+"{$indexerName}:
\n"
+"
\n"
+"Es necesario crear índices al envío "{$submissionTitle}" a "
+"{$contextName} siguiendo los siguientes pasos.
\n"
+"1. Haga clic en la URL del envío que aparece debajo.
\n"
+"2. Inicie sesión en la publicación y use el fichero Galeradas de la página "
+"para crear galeradas según los estándares de publicación.
\n"
+"3. Envíe el correo electrónico COMPLETO al editor/a.
\n"
+"
\n"
+"{$contextName} URL: {$contextUrl}
\n"
+"URL del envío: {$submissionUrl}
\n"
+"Nombre de usuario/a: {$indexerUsername}
\n"
+"
\n"
+"Si no puede realizar esta tarea en este momento o tiene alguna duda, póngase "
+"en contacto conmigo. Gracias por su contribución a la publicación.
\n"
+"
\n"
+"{$signature}"
+
+msgid "emails.indexComplete.subject"
+msgstr "Galeradas de índice completadas"
+
+msgid "emails.indexComplete.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Los índices para el manuscrito "{$submissionTitle}" para "
+"{$contextName} están preparados y listos para la corrección de pruebas.
\n"
+"
\n"
+"Si tiene alguna duda, puede ponerse en contacto conmigo.
\n"
+"
\n"
+"{$signatureFullName}"
+
+msgid "emails.emailLink.subject"
+msgstr "Manuscrito de posible interés"
+
+msgid "emails.emailLink.body"
+msgstr ""
+"Quizá le interese consultar "{$submissionTitle}" de {$authors} "
+"publicado en el vol. {$volume}, n.º {$number} ({$year}) de {$contextName} en "
+""{$submissionUrl}"."
+
+msgid "emails.emailLink.description"
+msgstr ""
+"Esta plantilla de correo electrónico da al lector/a registrado la "
+"oportunidad de enviar información sobre una monografía a alguien que pueda "
+"estar interesado. Está disponible en las Herramientas de lectura y debe ser "
+"habilitada por el jefe/a editorial en la página de Administración de "
+"herramientas de lectura."
+
+msgid "emails.notifySubmission.subject"
+msgstr "Notificación de envío"
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+"Tiene un mensaje de {$sender} en relación con "{$submissionTitle}" "
+"({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifySubmission.description"
+msgstr ""
+"Notificación de un usuario/a enviada desde un centro de información sobre "
+"envíos."
+
+msgid "emails.notifyFile.subject"
+msgstr "Notificación de envío de fichero"
+
+msgid "emails.notifyFile.body"
+msgstr ""
+"Tiene un mensaje de {$sender} en relación con el fichero "{$fileName}"
+"" en "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifyFile.description"
+msgstr ""
+"Notificación de un usuario/a enviada desde un centro de información sobre "
+"archivos"
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr "Actividad editorial del {$month}, {$year}"
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+"\n"
+"{$recipientName},
\n"
+"
\n"
+"El informe editorial de {$month}, {$year} ya está disponible. Las "
+"estadísticas fundamentales del mes son las siguientes.
\n"
+"\n"
+"\t- Nuevas contribuciones este mes: {$newSubmissions}
\n"
+"\t- Contribuciones rechazadas este mes: {$declinedSubmissions}
\n"
+"\t- Contribuciones aceptadas este mes: {$acceptedSubmissions}
\n"
+"\t- Contribuciones totales al sistema: {$totalSubmissions}
\n"
+"
\n"
+"Inicie sesión para obtener más detalles de sus tendencias editoriales y estadísticas de libros publicados. Se adjunta "
+"una copia completa de este informe correspondiente a este mes.
\n"
+"
\n"
+"Sinceramente,
\n"
+"{$contextSignature}"
+
+msgid "emails.announcement.subject"
+msgstr "{$announcementTitle}"
+
+msgid "emails.announcement.body"
+msgstr ""
+"{$announcementTitle}
\n"
+"
\n"
+"{$announcementSummary}
\n"
+"
\n"
+"Visite nuestra página web para leer el aviso "
+"completo."
+
+#~ msgid "emails.userValidate.subject"
+#~ msgstr "Validar la cuenta"
+
+#~ msgid "emails.userValidate.body"
+#~ msgstr ""
+#~ "{$recipientName}
\n"
+#~ "
\n"
+#~ "Creó una cuenta con {$contextName}, pero antes de empezar a utilizarla es "
+#~ "necesario que valide su cuenta de correo electrónico. Para hacerlo, haga "
+#~ "clic en el enlace que aparece debajo:
\n"
+#~ "
\n"
+#~ "{$activateUrl}
\n"
+#~ "
\n"
+#~ "Gracias,
\n"
+#~ "{$signature}"
+
+#~ msgid "emails.userValidate.description"
+#~ msgstr ""
+#~ "Este correo electrónico se envía a un nuevo usuario/a registrado para "
+#~ "darle la bienvenida al sistema y proporcionarle un documento con su "
+#~ "nombre de usuario/a y contraseña."
+
+#~ msgid "emails.reviewComplete.subject"
+#~ msgstr "Revisión del manuscrito completada"
+
+#~ msgid "emails.reviewComplete.body"
+#~ msgstr ""
+#~ "{$recipientName}:
\n"
+#~ "
\n"
+#~ "He completado la revisión de "{$submissionTitle}" para "
+#~ "{$contextName} y enviado la recomendación "{$recommendation}"."
+#~ "
\n"
+#~ "
\n"
+#~ "{$recipientName}"
+
+#~ msgid "emails.reviewComplete.description"
+#~ msgstr ""
+#~ "El revisor/a envía este correo electrónico al editor/a de la serie para "
+#~ "notificarle que la revisión se completó y que los comentarios y "
+#~ "recomendaciones se registraron en la página web de la publicación."
+
+msgid "emails.reviewReinstate.subject"
+msgstr "Aún está disponible para revisar textos para {$contextName}?"
+
+msgid "emails.revisedVersionNotify.subject"
+msgstr "Versión revisada cargada"
+
+msgid "emails.editorAssignProduction.body"
+msgstr ""
+"Estimado/a {$recipientName},
Se le ha asignado el siguiente envío "
+"para que lo supervise durante la fase de producción.
{$submissionTitle}
{$authors}
Resumen
{$submissionAbstract}Inicie la "
+"sesión para ver el envío. Cuando los "
+"archivos listos para la producción estén disponibles, cárguelos en la "
+"sección Publicación > Formatos de publicación."
+"p>
Gracias por adelantado.
Saludos cordiales,
{$signature}"
+
+msgid "emails.revisedVersionNotify.body"
+msgstr ""
+"Estimado/a {$recipientName},
El autor/a ha cargado revisiones para "
+"el envío, {$authorsShort} — {$submissionTitle}.
Como editor/a "
+"responsable, le pedimos que inicie la sesión, compruebe las revisiones y tome la decisión de aceptar, rechazar o "
+"remitir el envío a más revisiones.
—
Este es un mensaje "
+"automático desde {$contextName}."
+
+msgid "emails.editorAssignReview.body"
+msgstr ""
+"Estimado/a {$recipientName},
Se le ha asignado el envío siguiente "
+"para supervisarlo durante la fase de revisión.
{$submissionTitle}
{$authors}
Resumen
{$submissionAbstract}Inicie la "
+"sesión para ver el envío y para asignar "
+"revisores/as cualificados. Puede asignar un revisor/a haciendo clic en "
+"\"Asignar revisor/a\".
Gracias por adelantado.
Saludos "
+"cordiales,
{$signature}"
diff --git a/locale/es/locale.po b/locale/es/locale.po
new file mode 100644
index 00000000000..4a804226fce
--- /dev/null
+++ b/locale/es/locale.po
@@ -0,0 +1,1864 @@
+# Jordi LC , 2021, 2023, 2024.
+# Ruxandra Berescu , 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
+"PO-Revision-Date: 2024-04-26 19:05+0000\n"
+"Last-Translator: Jordi LC \n"
+"Language-Team: Spanish "
+"\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 "common.payments"
+msgstr "Pagos"
+
+msgid "monograph.audience"
+msgstr "Tipo de lector"
+
+msgid "monograph.audience.success"
+msgstr "Los detalles de audiencia han sido actualizados."
+
+msgid "monograph.coverImage"
+msgstr "Imagen de portada"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Calificador de la variedad de lector"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Variedad de lector (de)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Variedad de lector (a)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "Variedad de lector (exacto)"
+
+msgid "monograph.languages"
+msgstr "Idiomas (español, inglés, francés)"
+
+msgid "monograph.publicationFormats"
+msgstr "Formatos de publicaciones"
+
+msgid "monograph.publicationFormat"
+msgstr "Formato"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "Detalles sobre el formato de publicación disponible: {$format}"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Detalles sobre esta monografía"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Formatos:"
+
+msgid "monograph.type"
+msgstr "Tipo de propuesta"
+
+msgid "submission.pageProofs"
+msgstr "Galeradas"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"El maquetador/a sube aquí los archivos listos para producción que se "
+"prepararon para publicar. Utilice +Asignar para designar a los "
+"autores/as y a otras personas que harán la corrección de pruebas de las "
+"galeradas con los archivos corregidos y subidos para su aprobación antes de "
+"publicarse."
+
+msgid "monograph.task.addNote"
+msgstr "Añadir a tarea"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Acceso abierto"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Imprimir (nombre de marca)"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Número de páginas"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Prólogo"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Epílogo"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Composición del producto"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Detalle del producto (opcional)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Identificación del producto"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Precio"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "Se necesita un precio."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Tipo de precio"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Porcentaje de descuento, si es aplicable"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Disponibilidad del producto"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Indicador de devoluciones"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Información digital"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Dimensiones físicas"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "Tamaño del fichero en MB"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "¿Deseas introducir un valor personalizado para el tamaño del fichero?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Altura"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Grosor"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Peso"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Anchura"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "País de fabricación"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Protección técnica digital"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Región de distribución del producto"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Tipo impositivo"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Tipo de impuesto"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+"Incluir los metadatos de este formato de publicación en la entrada de "
+"catálogo de este libro."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Ausencia de mercados y precios."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Ausencia de código de identificación."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Ausencia de varios campos de metadatos."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+"El formato de publicación escogido para la monografía ya no existe.
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Pestaña de formato de publicación abierta."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Formato de publicación"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "Se necesita un nombre."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "Se requiere un precio válido."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Detalles de formato"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Formato físico"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "Este formato estará disponible en un sitio web independiente"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "URL de contenido alojado remotamente"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "Un código ISBN de 13 dígitos, como por ejemplo 978-951-98548-9-2."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "Un código ISBN de 10 dígitos, como por ejemplo 951-98548-9-4."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "Se requiere una identificación de la monografía."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Debe elegirse un formato de publicación."
+
+msgid "grid.catalogEntry.availability"
+msgstr "Disponibilidad"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Disponible"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "No disponible"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Prueba"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Aceptación de formato"
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"Aprobar los metadatos para este formato. Los metadatos pueden comprobarse "
+"desde el panel de edición para cada formato.
"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr ""
+"Indicar que los metadatos para este formato no han sido aprobados.
"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Disponibilidad de formato"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Haz que este formato esté disponible para los lectores/as. Los "
+"archivos descargables y cualquier otra distribución aparecerán en la entrada "
+"del catálogo de libros.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Este formato no estará disponible para los lectores/as. Todos "
+"los archivos descargables o las otras distribuciones ya no aparecerán en la "
+"entrada del catálogo de libros.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "Entrada de catálogo no aceptada."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "Formato no disponible en la entrada del catálogo."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Prueba no aceptada."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Aceptado"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "Esperando aceptación"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "Se requiere un tamaño de archivo para formatos digitales."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "Se requiere un código de disponibilidad del producto."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "Se debe elegir un código de composición del producto."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Valor de código"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "Tipo de código ONIX"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "Especifique un código."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "Se requiere un valor."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Derechos de venta"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Valor de código"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Tipo de derechos de venta"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "¿Resto del mundo?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Marque la casilla para utilizar la entrada de Derechos de venta como filtro "
+"para formato. En este caso no es necesario elegir países ni regiones."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr ""
+"Ya existe un tipo de ventas RDM definido para este formato de publicación."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Países"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Regiones"
+
+msgid "grid.catalogEntry.included"
+msgstr "Incluidos"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Excluidos"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Territorios de mercado"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Territorio"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Fechas de publicación"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Especifique un rol del representante."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "Se requiere formato de fecha."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Fecha"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Rol"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Formato de fecha"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"Se requiere fecha y el valor de la fecha debe corresponder con el formato de "
+"fecha elegido."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Representantes"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Tipo de representante"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Agentes"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Proveedores"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Agente"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"Puede asignar a un agente para que le represente en el territorio definido. "
+"No se necesita."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Proveedor"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Elegir una función:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Rol"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Nombre"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Teléfono"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "Dirección de correo electrónico"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Página web"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "Identificación del representante"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Tipo de identificación del representante ( GLN recomendado)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"Puedes dejar vacía la siguiente sección si proporcionas tus propios "
+"servicios a tus clientes."
+
+msgid "grid.action.addRepresentative"
+msgstr "Añadir representante"
+
+msgid "grid.action.editRepresentative"
+msgstr "Editar este representante"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Borrar este representante"
+
+msgid "spotlight"
+msgstr "Destacado"
+
+msgid "spotlight.spotlights"
+msgstr "Destacados"
+
+msgid "spotlight.noneExist"
+msgstr "No existen destacados actualmente."
+
+msgid "spotlight.title.homePage"
+msgstr "En primer plano"
+
+msgid "spotlight.author"
+msgstr "Autor, "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Elemento destacado"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Página de inicio"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Localización destacada"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Introducir título destacado (autocompletar)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Título destacado"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Libro"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "Se necesita un elemento."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "Se necesita un título destacado."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Elige una localización para este destacado."
+
+msgid "grid.action.editSpotlight"
+msgstr "Editar este destacado"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Borrar este destacado"
+
+msgid "grid.action.addSpotlight"
+msgstr "Añadir destacado"
+
+msgid "manager.series.open"
+msgstr "Propuestas abiertas"
+
+msgid "manager.series.indexed"
+msgstr "Indizado"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Archivos"
+
+msgid "grid.action.catalogEntry"
+msgstr "Ver registro en el catálogo"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "El formato aparece en el catálogo"
+
+msgid "grid.action.editFormat"
+msgstr "Editar este formato"
+
+msgid "grid.action.deleteFormat"
+msgstr "Borrar este formato"
+
+msgid "grid.action.addFormat"
+msgstr "Añadir formato de publicación"
+
+msgid "grid.action.approveProof"
+msgstr "Aprobar la prueba para la indexación e inclusión en el catálogo"
+
+msgid "grid.action.pageProofApproved"
+msgstr "La página prueba que el fichero está listo para su publicación"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Nueva entrada de catálogo"
+
+msgid "grid.action.publicCatalog"
+msgstr "Ver elemento en el catálogo"
+
+msgid "grid.action.feature"
+msgstr "Cambiar visualización de características"
+
+msgid "grid.action.featureMonograph"
+msgstr "Destacar en el carrusel"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Marcar la propuesta como \"novedad\""
+
+msgid "grid.action.manageCategories"
+msgstr "Configurar categorías para la edición"
+
+msgid "grid.action.manageSeries"
+msgstr "Configurar series para la edición"
+
+msgid "grid.action.addCode"
+msgstr "Añadir código"
+
+msgid "grid.action.editCode"
+msgstr "Editar código"
+
+msgid "grid.action.deleteCode"
+msgstr "Borrar código"
+
+msgid "grid.action.addRights"
+msgstr "Añadir derechos de venta"
+
+msgid "grid.action.editRights"
+msgstr "Edit derechos"
+
+msgid "grid.action.deleteRights"
+msgstr "Borrar estos derechos"
+
+msgid "grid.action.addMarket"
+msgstr "Añadir mercado"
+
+msgid "grid.action.editMarket"
+msgstr "Editar este mercado"
+
+msgid "grid.action.deleteMarket"
+msgstr "Borrar este mercado"
+
+msgid "grid.action.addDate"
+msgstr "Añadir fecha de publicación"
+
+msgid "grid.action.editDate"
+msgstr "Editar esta fecha"
+
+msgid "grid.action.deleteDate"
+msgstr "Borrar esta fecha"
+
+msgid "grid.action.createContext"
+msgstr "Crear nueva publicación"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Mostrar la pestaña de formato de publicación"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Ir a página de comunicados de prensa"
+
+msgid "grid.action.submissionEmail"
+msgstr "Hacer clic para leer el correo electrónico"
+
+msgid "grid.action.approveProofs"
+msgstr "Ver cuadrícula de las pruebas"
+
+msgid "grid.action.proofApproved"
+msgstr "Se ha comprobado el formato"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Acepta/rechaza este formato"
+
+msgid "grid.action.formatAvailable"
+msgstr "El formato está disponible y publicado"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Añadir archivo a la revisión"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Ficheros disponibles"
+
+msgid "series.series"
+msgstr "Colección"
+
+msgid "series.featured.description"
+msgstr "Esta colección aparecerá en la navegación principal"
+
+msgid "series.path"
+msgstr "Ruta"
+
+msgid "catalog.manage"
+msgstr "Gestión del catálogo"
+
+msgid "catalog.manage.newReleases"
+msgstr "Novedades"
+
+msgid "catalog.manage.category"
+msgstr "Categoría"
+
+msgid "catalog.manage.series"
+msgstr "Colección"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "Introduzca un ISSN válido."
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "El ISSN en línea y el de la versión impresa no pueden ser iguales."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "ISSN en línea"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "ISSN impreso"
+
+msgid "catalog.selectSeries"
+msgstr "Seleccionar colección"
+
+msgid "catalog.selectCategory"
+msgstr "Seleccionar categoría"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"La imagen de portada de los libros seleccionados aparece en la parte "
+"superior de la página de inicio como un conjunto desplazable. Haga clic en "
+"\"Destacar\" y después en la estrella para añadir el libro al visor. Haga "
+"clic en el signo de exclamación para marcarlo como novedad y arrastre y "
+"suelte para ordenarlo."
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Haz clic en \"destacar\"; después haz clic en la estrella para seleccionar "
+"un libro destacado para esta categoría; arrastra y y suelta para ordenar."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Haga clic en \"Destacar\" y después en la estrella para seleccionar un libro "
+"destacado de la colección; arrastre y suelte para ordenarlo. La colección se "
+"identifica con un título de editor/as y de serie, dentro de una categoría o "
+"independientemente."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Carrusel"
+
+msgid "catalog.manage.newRelease"
+msgstr "Publicación"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Gestionar colecciones"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Gestionar categorías"
+
+msgid "catalog.manage.noMonographs"
+msgstr "No existen monografías asignadas."
+
+msgid "catalog.manage.featured"
+msgstr "Destacado"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "Destacado en categoría"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "Destacado en series"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "Monografía destacada."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "Monografía no destacada."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "Monografía marcada como nuevo lanzamiento."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "Monografía desmarcada como nueva publicación."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "Nueva publicación"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "Nueva publicación en categoría"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "Nueva publicación en series"
+
+msgid "catalog.manage.nonOrderable"
+msgstr "Esta monografía no se puede solicitar hasta que se publique."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Buscar por título o autor"
+
+msgid "catalog.manage.isFeatured"
+msgstr "Esta monografía está destacada. Hacer la monografía no destacada."
+
+msgid "catalog.manage.isNotFeatured"
+msgstr "Esta monografía no está destacada. Hacer la monografía destacada."
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+"Esta monografía es un nuevo lanzamiento. Hacer que la monografía no sea un "
+"nuevo lanzamiento."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+"Esta monografía no es un nuevo lanzamiento. Hacer que la monografía sea un "
+"nuevo lanzamiento."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr "No se ha seleccionado ningún envío para añadirse al catálogo."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "No se ha podido encontrar uno o más envíos."
+
+msgid "catalog.manage.findSubmissions"
+msgstr "Encontrar monografías para añadirlas al catálogo"
+
+msgid "catalog.noTitles"
+msgstr "No se ha publicado aún ningún título."
+
+msgid "catalog.noTitlesNew"
+msgstr "No está disponible ninguna nueva publicación en este momento."
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
+"No se ha encontrado ningún resultado que coincida con su búsqueda "
+"\"{$searchQuery}\"."
+
+msgid "catalog.feature"
+msgstr "Destacar"
+
+msgid "catalog.featured"
+msgstr "Destacado"
+
+msgid "catalog.featuredBooks"
+msgstr "Libros destacados"
+
+msgid "catalog.foundTitleSearch"
+msgstr ""
+"Se ha encontrado un resultado que coincide con su búsqueda "
+"\"{$searchQuery}\"."
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+"Se han encontrado {$number} resultados que coinciden con su búsqueda "
+"\"{$searchQuery}\"."
+
+msgid "catalog.category.heading"
+msgstr "Todos los libros"
+
+msgid "catalog.newReleases"
+msgstr "Novedades"
+
+msgid "catalog.dateAdded"
+msgstr "Añadido"
+
+msgid "catalog.publicationInfo"
+msgstr "Información de publicación"
+
+msgid "catalog.published"
+msgstr "Publicado"
+
+msgid "catalog.forthcoming"
+msgstr "Próximamente"
+
+msgid "catalog.categories"
+msgstr "Categorías"
+
+msgid "catalog.parentCategory"
+msgstr "Categoría matriz"
+
+msgid "catalog.category.subcategories"
+msgstr "Subcategorías"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "Acerca de {$roleName}"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"Nota: Para comprar elementos, es necesario iniciar sesión. Al seleccionar un "
+"elemento para comprarlo, será redirigido a la página de inicio de sesión. Se "
+"pueden descargar gratis todos los elementos marcados con el icono Acceso "
+"abierto sin necesidad de iniciar sesión."
+
+msgid "catalog.sortBy"
+msgstr "Orden de las monografías"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "Elija la forma de ordenar los libros en estas colecciones."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr "Elija la forma de ordenar los libros en esta categoría."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "Elija la forma de ordenar los libros en este catálogo."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "Posición de las colecciones (inferiores primero)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "Posición de las colecciones (superiores primero)"
+
+msgid "catalog.viewableFile.title"
+msgstr "{$type} visualización del fichero {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "Vuelva para ver los detalles sobre {$monographTitle}"
+
+msgid "submission.search"
+msgstr "Búsqueda de libros"
+
+msgid "common.publication"
+msgstr "Monografía"
+
+msgid "common.publications"
+msgstr "Monografías"
+
+msgid "common.prefix"
+msgstr "Prefijo"
+
+msgid "common.preview"
+msgstr "Previsualizar"
+
+msgid "common.feature"
+msgstr "Destacar"
+
+msgid "common.searchCatalog"
+msgstr "Buscar aquí"
+
+msgid "common.moreInfo"
+msgstr "Más información"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Rellene todo el formulario."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Seleccione una opción válida de la lista."
+
+msgid "common.listbuilder.itemExists"
+msgstr "No puede añadir el mismo elemento dos veces."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Cabecera de inicio"
+
+msgid "navigation.catalog"
+msgstr "Catálogo"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Política de conflicto de intereses"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "Todas las monografías"
+
+msgid "navigation.catalog.manage"
+msgstr "Administrar"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Administración"
+
+msgid "navigation.catalog.administration"
+msgstr "Administración del catálogo"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Categorías"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Colección"
+
+msgid "navigation.infoForAuthors"
+msgstr "Para autores"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Para bibliotecarios"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Información para autores"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Información para bibliotecas"
+
+msgid "navigation.newReleases"
+msgstr "Novedades"
+
+msgid "navigation.published"
+msgstr "Publicado"
+
+msgid "navigation.wizard"
+msgstr "Asistente"
+
+msgid "navigation.linksAndMedia"
+msgstr "Enlaces y redes sociales"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Enlace a su catálogo."
+
+msgid "navigation.skip.spotlights"
+msgstr "Pasar a destacados"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Series"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Enlace a series."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Categoría"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Enlace a una categoría."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "Nuevos lanzamientos"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Enlace a sus nuevos lanzamientos."
+
+msgid "context.contexts"
+msgstr "Editoriales"
+
+msgid "context.context"
+msgstr "Editorial"
+
+msgid "context.current"
+msgstr "Editorial actual:"
+
+msgid "context.select"
+msgstr "Cambiar a otra editorial:"
+
+msgid "user.authorization.representationNotFound"
+msgstr "No se ha podido encontrar el formato de publicación solicitado."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "Incluir usuarios/as sin roles en la publicación."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Enviar una propuesta"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr ""
+"Enviar una monografía: el registro de autor/a se encuentra actualmente "
+"deshabilitado."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Registrarse como corrector"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+"Registrarse como corrector: El registro del corrector se encuentra "
+"actualmente deshabilitado."
+
+msgid "user.reviewerPrompt"
+msgstr "¿Estaría dispuesto a revisar los envíos a esta editorial?"
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Sí, solicitar el rol de {$userGroup}."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"Sí, me gustaría que me contacten para revisar los envíos de esta editorial."
+
+msgid "user.register.contextsPrompt"
+msgstr "¿En qué editoriales de este sitio le gustaría registrarse?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Solicita los siguientes roles."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"Si solicitó ser revisor de alguna editorial debe introcir sus temas de "
+"interés."
+
+msgid "user.role.manager"
+msgstr "Gestor editorial"
+
+msgid "user.role.pressEditor"
+msgstr "Editor editorial"
+
+msgid "user.role.subEditor"
+msgstr "Editor/a de la sèrie"
+
+msgid "user.role.copyeditor"
+msgstr "Corrector/a de originales"
+
+msgid "user.role.proofreader"
+msgstr "Corrector/a de pruebas"
+
+msgid "user.role.productionEditor"
+msgstr "Editor/a de producción"
+
+msgid "user.role.managers"
+msgstr "Gestores/as editoriales"
+
+msgid "user.role.subEditors"
+msgstr "Editor/a de la serie"
+
+msgid "user.role.editors"
+msgstr "Editores/as"
+
+msgid "user.role.copyeditors"
+msgstr "Correctores/as de originales"
+
+msgid "user.role.proofreaders"
+msgstr "Correctores/as de pruebas"
+
+msgid "user.role.productionEditors"
+msgstr "Editores/as de producción"
+
+msgid "user.register.selectContext"
+msgstr "Seleccione una editorial en la que registrarse:"
+
+msgid "user.register.noContexts"
+msgstr "No hay editoriales en las que registrarse en este sitio."
+
+msgid "user.register.privacyStatement"
+msgstr "Declaración de privacidad"
+
+msgid "user.register.registrationDisabled"
+msgstr "Esta editorial no acepta cuentas de usuarios actualmente."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "La contraseña que has introducido no es lo suficientemente larga."
+
+msgid "user.register.readerDescription"
+msgstr "Publicación de una monografía notificada por correo electrónico."
+
+msgid "user.register.authorDescription"
+msgstr "Es posible enviar elementos a la editorial."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr ""
+"Dispuesto a llevar a cabo una revisión por pares de las propuestas a la "
+"editorial."
+
+msgid "user.register.reviewerDescription"
+msgstr ""
+"Dispuesto a presentar una revisión por pares de las propuestas a la página."
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+"Identificar los intereses de la revisión (áreas sustantivas y métodos de "
+"investigación):"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Debe seleccionar por lo menos un rol"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"Sí, acepto que mis datos sean recopilados y almacenados según la declaración de privacidad de esta "
+"editorial."
+
+msgid "site.noPresses"
+msgstr "No hay editoriales disponibles."
+
+msgid "site.pressView"
+msgstr "Ver página web de la editorial"
+
+msgid "about.pressContact"
+msgstr "Contacto de la editorial"
+
+msgid "about.aboutContext"
+msgstr "Sobre la editorial"
+
+msgid "about.editorialTeam"
+msgstr "Equipo editorial"
+
+msgid "about.editorialPolicies"
+msgstr "Políticas editoriales"
+
+msgid "about.focusAndScope"
+msgstr "Orientación y ámbito de actividad"
+
+msgid "about.seriesPolicies"
+msgstr "Políticas de categorías y series"
+
+msgid "about.submissions"
+msgstr "Propuestas"
+
+msgid "about.onlineSubmissions"
+msgstr "Envío electrónico de propuestas"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Ir a Autenticación"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Registra"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr ""
+"Debe estar registrado y haber iniciado la sesión para enviar elementos y "
+"hacer el seguimiento de los envíos actuales. {$login} en una cuenta "
+"existente o {$register} una nueva."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} o {$viewSubmissions}."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Crear un nuevo envío"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "Ver sus envíos pendientes"
+
+msgid "about.authorGuidelines"
+msgstr "Directrices para autores"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Lista de comprobación de preparación de propuestas"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"Como parte del proceso de entrega de propuestas, se exige a los autores que "
+"comprueben que la propuesta está de acuerdo con todos los siguientes "
+"elementos, y las propuestas que no se acojan a estas directrices pueden ser "
+"devueltas a los autores."
+
+msgid "about.copyrightNotice"
+msgstr "Aviso de derechos de autor"
+
+msgid "about.privacyStatement"
+msgstr "Declaración de privacidad"
+
+msgid "about.reviewPolicy"
+msgstr "Proceso de revisión por pares"
+
+msgid "about.publicationFrequency"
+msgstr "Periodicidad de la publicación"
+
+msgid "about.openAccessPolicy"
+msgstr "Política de acceso abierto"
+
+msgid "about.pressSponsorship"
+msgstr "Patrocinio de la editorial"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr ""
+"Más información acerca del sistema de publicación, de la plataforma y del "
+"flujo de trabajo de OMP/PKP."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "OMP Proceso editorial y publicitario"
+
+msgid "about.aboutSoftware"
+msgstr "Acerca de Open Monograph Press"
+
+msgid "about.aboutOMPPress"
+msgstr ""
+"Esta publicación utiliza Open Monograph Press {$ompVersion}, que es un "
+"software de publicación y gestión editorial de código abierto desarrollado, "
+"impulsado y distribuido de forma gratuita por Public Knowledge Project bajo "
+"una licencia pública general GNU. Visite la página web de PKP para saber más acerca del software. Por favor, contacte con la editorial directamente si tiene "
+"preguntas sobre la editorial o acerca de los envíos a la editorial."
+
+msgid "about.aboutOMPSite"
+msgstr ""
+"Esta publicación utiliza Open Monograph Press {$ompVersion}, que es un "
+"software de código abierto de gestión editorial de publicaciones "
+"desarrollado, respaldado y distribuido gratuitamente por Public Knowledge "
+"Project bajo la Licencia Pública General (GNU). Visite la página web de PKP "
+"para obtener más información del software"
+"a>. Para cuestiones relacionadas con las publicaciones, contacte "
+"directamente con el sitio web."
+
+msgid "help.searchReturnResults"
+msgstr "Volver a Búsqueda de resultados"
+
+msgid "help.goToEditPage"
+msgstr "Abrir una nueva página para editar esta información"
+
+msgid "installer.appInstallation"
+msgstr "Instalación OMP"
+
+msgid "installer.ompUpgrade"
+msgstr "Actualización OMP"
+
+msgid "installer.installApplication"
+msgstr "Instalar Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+"Si está actualizando una instalación existente de OMP, haga clic aquí para continuar."
+
+msgid "installer.installationInstructions"
+msgstr ""
+"Gracias por descargar Open Monograph Press {$version} de "
+"Public Knowledge Project. Antes de continuar lea el archivo README incluido con el software. Para obtener "
+"más información sobre Public Knowledge Project y sus proyectos de software "
+"visite la página web de "
+"PKP. Si tiene dudas sobre los informes de errores o soporte técnico de "
+"Open Monograph Press visite el foro de ayuda o el sistema de informes de errores en línea de PKP. Aunque "
+"el foro de ayuda es el mejor método de contacto también puede mandar un "
+"correo electrónico al equipo a pkp."
+"contact@gmail.com.
"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Pasos para preinstalación"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. Los siguientes archivos y directorios (junto con sus contenidos) "
+"tienen que cambiarse a modo editable:
\n"
+"\n"
+"\t- config.inc.php es editable (opcional): {$writable_config}"
+"li>\n"
+"\t
- public/ es editable: {$writable_public}
\n"
+"\t- cache/ es editable: {$writable_cache}
\n"
+"\t- cache/t_cache/ es editable: {$writable_templates_cache}
\n"
+"\t- cache/t_compile/ es editable: {$writable_templates_compile}"
+"li>\n"
+"\t
- cache/_db es editable: {$writable_db_cache}
\n"
+"
\n"
+"\n"
+"2. Es necesario crear un directorio para guardar los archivos subidos y "
+"que sea editable (ver \"Configuración de archivo\" a continuación).
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"Versión de OMP {$version}
\n"
+"\n"
+"Gracias por descargar Open Monograph Press de Public "
+"Knowledge Project. Antes de continuar lea los archivos README y UPGRADE "
+"incluidos con el software. Para obtener más información sobre Public "
+"Knowledge Project y sus proyectos de software visite la página web de PKP. Si tiene dudas sobre los "
+"informes de errores o soporte técnico de Open Monograph Press visite el foro de ayuda "
+"o el sistema de "
+"informes de errores en línea de PKP. Aunque el foro de ayuda es el mejor "
+"método de contacto también puede mandar un correo electrónico al equipo a pkp.contact@gmail.com.
\n"
+"Es muy recomendable que haga una copia de su base de "
+"datos, directorio de archivos y directorio de instalación de OMP antes de "
+"continuar.
\n"
+"Si está ejecutando el modo seguro de PHP asegúrese de que la directiva "
+"max_execution_time en su archivo de configuración php.ini tiene un límite "
+"elevado. Si se alcanza este o cualquier otro límite de tiempo (por ejemplo, "
+"la directiva de Apache \"Timeout\") y el proceso de actualización se ve "
+"interrumpido, se necesitará ayuda manual.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"Para obtener una compatibilidad completa con Unicode, PHP debe compilarse "
+"con compatibilidad para la biblioteca mbstring (activada por defecto en la "
+"mayoría de las instalaciones recientes de PHP). Podría experimentar "
+"problemas al utilizar grupos extendidos de caracteres si su servidor no "
+"cumple estos requisitos.\n"
+"
\n"
+"Su servidor actualmente es compatible con: "
+"{$supportsMBString}"
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"Su servidor actualmente permite la subida de archivos: "
+"{$allowFileUploads}"
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"Su servidor actualmente permite un tamaño máximo de archivos subidos de: "
+"{$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"El idioma principal para usar en el sistema. Consulte la documentación de "
+"OMP si tiene interés en ayuda para idiomas que no se encuentran en la lista."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Seleccione cualquier otro idioma adicional para que lo reconozca el sistema. "
+"Los idiomas estarán disponibles para que las publicaciones del sitio los "
+"puedan utilizar. También se pueden instalar otros idiomas en cualquier "
+"momento desde la interfaz de administración del sitio. Las ubicaciones "
+"marcadas con * pueden estar incompletas."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Introduzca la ruta completa de un directorio donde se guardarán los archivos "
+"subidos. El directorio no debe ser directamente accesible desde la web. "
+"Asegúrese de que el directorio existe y es editable antes de la "
+"instalación. Los nombres de ruta de Windows deben contener "
+"barras /, por ejemplo \"C:/mypress/files\"."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"OMP necesita acceso a la base de datos SQL para guardar los datos. Compruebe "
+"los requisitos del sistema anteriores en la lista de bases de datos "
+"soportadas. Establezca la configuración que se utilizará para conectarse a "
+"la base de datos en los siguientes campos."
+
+msgid "installer.upgradeApplication"
+msgstr "Actualizar Open Monograph Press"
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"¡IMPORTANTE!
\n"
+"No se pudo sobrescribir automáticamente el archivo de configuración con "
+"el instalador. Antes de usar el sistema abra config.inc.php en un "
+"editor/a de textos adecuado y reemplace el contenido con el contenido de los "
+"campos de texto siguientes.
"
+
+msgid "installer.installationComplete"
+msgstr ""
+"La instalación de OMP se ha completado correctamente.
\n"
+"Para empezar a utilizar el sistema, inicie "
+"sesión con el nombre de usuario/a y la contraseña introducidos en la "
+"página anterior.
\n"
+"Visite nuestro foro "
+"de la comunidad o dese de alta en nuestro boletín de desarrolladores para "
+"recibir avisos de seguridad y novedades acerca de lanzamientos futuros, "
+"nuevos módulos y funcionalidades planificadas.
"
+
+msgid "installer.upgradeComplete"
+msgstr ""
+"La actualización de OMP a la versión {$version} se ha completado con "
+"éxito.
\n"
+"No se olvide de establecer el ajuste \"installed\" en su archivo de "
+"configuración config.inc.php de nuevo a On.
\n"
+"Visite nuestro foro "
+"de la comunidad o dese de alta en nuestro boletín de desarrolladores para "
+"recibir avisos de seguridad y novedades acerca de lanzamientos futuros, "
+"nuevos módulos y funcionalidades planificadas.
"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"{$reviewerName} cambió a {$dueDate} la fecha de entrega de la revisión para "
+"envío {$submissionId} de la ronda {$round}."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"{$reviewerName} rechazó la revisión para envío {$submissionId} de la ronda "
+"{$round}."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"{$reviewerName} aceptó la revisión para envío {$submissionId} de la ronda "
+"{$round}."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"{$editorName} marcó la revisión para envío {$submissionId} de la ronda "
+"{$round}."
+
+msgid "log.editor.decision"
+msgstr ""
+"{$editorName} grabó la decisión del editor/a ({$decision}) en la monografía "
+"{$submissionId}."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"{$editorName} ha registrado una recomendación editorial ({$decision}) para "
+"la monografía {$submissionId}."
+
+msgid "log.editor.archived"
+msgstr "El envío {$submissionId} fue archivado."
+
+msgid "log.editor.restored"
+msgstr "Se restauró el envío {$submissionId} a la lista."
+
+msgid "log.editor.editorAssigned"
+msgstr "Se asignó a envío {$submissionId} a {$editorName} como editor/a."
+
+msgid "log.proofread.assign"
+msgstr ""
+"{$assignerName} asignó a {$proofreaderName} para corregir el envío "
+"{$submissionId}."
+
+msgid "log.proofread.complete"
+msgstr "{$proofreaderName} envió {$submissionId} para su programación."
+
+msgid "log.imported"
+msgstr "{$userName}importó la monografía {$submissionId}."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Código de identificación añadido."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Código de intensificación editado."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Código de identificación eliminado."
+
+msgid "notification.addedPublicationDate"
+msgstr "Fecha de publicación añadida."
+
+msgid "notification.editedPublicationDate"
+msgstr "Fecha de publicación editada."
+
+msgid "notification.removedPublicationDate"
+msgstr "Fecha de publicación eliminada."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Formato de publicación añadido."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Formato de publicación editado."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Formato de publicación eliminado."
+
+msgid "notification.addedSalesRights"
+msgstr "Derechos de venta añadidos."
+
+msgid "notification.editedSalesRights"
+msgstr "Derechos de venta editados."
+
+msgid "notification.removedSalesRights"
+msgstr "Derechos de venta eliminados."
+
+msgid "notification.addedRepresentative"
+msgstr "Representante añadido."
+
+msgid "notification.editedRepresentative"
+msgstr "Representante editado."
+
+msgid "notification.removedRepresentative"
+msgstr "Representante eliminado."
+
+msgid "notification.addedMarket"
+msgstr "Mercado añadido."
+
+msgid "notification.editedMarket"
+msgstr "Mercado editado."
+
+msgid "notification.removedMarket"
+msgstr "Mercado eliminado."
+
+msgid "notification.addedSpotlight"
+msgstr "Destacado añadido."
+
+msgid "notification.editedSpotlight"
+msgstr "Destacado editado."
+
+msgid "notification.removedSpotlight"
+msgstr "Destacado eliminado."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Catálogo de metadatos guardado."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Formato de publicación de los metadatos guardado."
+
+msgid "notification.proofsApproved"
+msgstr "Revisiones aprobadas."
+
+msgid "notification.removedSubmission"
+msgstr "Propuesta eliminada."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Se envió una nueva monografía \"{$title}\"."
+
+msgid "notification.type.editing"
+msgstr "Editar eventos"
+
+msgid "notification.type.reviewing"
+msgstr "Revisar eventos"
+
+msgid "notification.type.site"
+msgstr "Eventos del sitio Web"
+
+msgid "notification.type.submissions"
+msgstr "Eventos de propuesta"
+
+msgid "notification.type.userComment"
+msgstr "Un lector/a hizo un comentario sobre \"{$title}\"."
+
+msgid "notification.type.public"
+msgstr "Anuncios públicos"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr ""
+"Se ha realizado una propuesta de una monografía para la cuál es necesario "
+"asignar un Editor."
+
+msgid "notification.type.copyeditorRequest"
+msgstr "Le pedimos que revise las correcciones para \"{$file}\"."
+
+msgid "notification.type.layouteditorRequest"
+msgstr "Le pedimos que revise la maquetación para \"{$title}\"."
+
+msgid "notification.type.indexRequest"
+msgstr "Le pedimos que cree un índice para \"{$title}\"."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Proceso de revisión interna comenzado."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Esta propuesta está actualmente pendiente de aprobación en la herramienta de "
+"Entrada de Catálogo antes de que pueda aparecer en el catálogo público."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "Pendiente de aprobación."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"La monografía no aparecerá listada en el catálogo hasta que no esté "
+"publicada. Para añadir este libro al catálogo haga clic en la pestaña "
+"\"Publicación\"."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "No se ha configurado ningún método de pago."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"Se requiere un método de pago configurado antes de poder definir ajustes de "
+"e-commerce."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Gestión del catálogo"
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+"Se ha aceptado la monografía. Visite Marketing y Publicación para gestionar "
+"los detalles del catálogo mediante los enlaces que aparecen justo encima."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+"Se te ha denegado el acceso porque parece que no eres un revisor válido para "
+"esta monografía."
+
+msgid "user.authorization.monographAuthor"
+msgstr ""
+"Se te ha denegado el acceso porque parece que no eres el autor de esta "
+"monografía."
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"Se te ha denegado el acceso porque parece que no eres el revisor asignado de "
+"esta monografía."
+
+msgid "user.authorization.monographFile"
+msgstr "Se te ha denegado el acceso al fichero de la monografía especificado."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "¡No se ha solicitado monografía o esta no es válida!"
+
+msgid "user.authorization.noContext"
+msgstr "No se encontró ninguna editorial que coincida con su solicitud."
+
+msgid "user.authorization.seriesAssignment"
+msgstr "Estás intentando acceder a una monografía que no es parte de tu serie."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr ""
+"¡Acceso denegado! No se le asignó para esta etapa del flujo de trabajo."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"¡Acceso denegado! No se asignó al grupo de trabajo en el que se encuentra "
+"para esta etapa del flujo de trabajo. Compruebe la configuración de la "
+"publicación."
+
+msgid "payment.directSales"
+msgstr "Descarga del sitio web de la editorial"
+
+msgid "payment.directSales.price"
+msgstr "Precio"
+
+msgid "payment.directSales.availability"
+msgstr "Disponibilidad"
+
+msgid "payment.directSales.catalog"
+msgstr "Catálogo"
+
+msgid "payment.directSales.approved"
+msgstr "Aprobado"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Precio ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr "Los precios deben ser solo numéricos, no incluya símbolos de moneda."
+
+msgid "payment.directSales.directSales"
+msgstr "Ventas directas"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "No disponible"
+
+msgid "payment.directSales.notSet"
+msgstr "No configurado"
+
+msgid "payment.directSales.openAccess"
+msgstr "Acceso abierto"
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"Los formatos del archivo pueden estar disponibles para descargarse desde la "
+"página web de la publicación, bien mediante una política de acceso abierto "
+"sin coste para los lectores/as, o bien mediante ventas directas (utilizando "
+"un proceso de pago en línea, tal y como está configurado en Distribución). "
+"Indicar base de acceso a este archivo."
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Se necesita un precio numérico válido."
+
+msgid "payment.directSales.purchase"
+msgstr "Compra {$format} ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Descarga {$format}"
+
+msgid "payment.directSales.monograph.name"
+msgstr "Comprar monografía o descargar capítulo"
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+"Esta transacción es relativa a la compra de una descarga directa de una "
+"monografía sola o un capítulo de una monografía."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+"El archivo {$filename} de asignación de ayuda XML se volvió a cargar en "
+"busca de {$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Libro"
+
+msgid "submission.pdf.download"
+msgstr "Descargar el archivo PDF"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Registro con otras editoriales"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "Oculta otras editoriales"
+
+msgid "submission.round"
+msgstr "Ronda {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "Se ha especificado un envío publicado no válido."
+
+msgid "catalog.coverImageTitle"
+msgstr "Imagen de cubierta"
+
+msgid "grid.catalogEntry.chapters"
+msgstr "Capítulos"
+
+msgid "search.results.orderBy.article"
+msgstr "Título del artículo"
+
+msgid "search.results.orderBy.author"
+msgstr "Autor/a"
+
+msgid "search.results.orderBy.date"
+msgstr "Fecha de publicación"
+
+msgid "search.results.orderBy.monograph"
+msgstr "Título de la monografía"
+
+msgid "search.results.orderBy.press"
+msgstr "Nombre de la editorial"
+
+msgid "search.results.orderBy.popularityAll"
+msgstr "Popularidad (histórica)"
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr "Popularidad (último mes)"
+
+msgid "search.results.orderBy.relevance"
+msgstr "Relevancia"
+
+msgid "search.results.orderDir.asc"
+msgstr "Ascendente"
+
+msgid "search.results.orderDir.desc"
+msgstr "Descendente"
+
+#~ msgid "monograph.coverImage.uploadInstructions"
+#~ msgstr ""
+#~ "Asegúrate de que la altura de la imagen no sea más grande que el 150% de "
+#~ "su anchura. De lo contrario el carrusel no mostrará toda la portada."
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.title"
+#~ msgstr "Aprobación de formato"
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.message"
+#~ msgstr ""
+#~ "El formato estará disponible para los lectores/as mediante "
+#~ "archivos descargables que se encontrarán junto a la entrada de catálogo "
+#~ "del libro y mediante otras opciones que la editorial ofrezca para "
+#~ "distribuir el libro.
"
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.removeMessage"
+#~ msgstr ""
+#~ "El formato ya no estará disponible para los lectores/as "
+#~ "mediante archivos descargables que antes se encontraban junto a la "
+#~ "entrada de catálogo del libro ni mediante otras opciones que la editorial "
+#~ "ofrezca para distribuir el libro.
"
+
+#~ msgid ""
+#~ "grid.catalogEntry.availablePublicationFormat.catalogNotApprovedWarning"
+#~ msgstr "Entrada de catálogo no aprobada."
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.notApprovedWarning"
+#~ msgstr "Formato no en entrada de catálogo"
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.proofNotApproved"
+#~ msgstr "Prueba no aprobada."
+
+#~ msgid "grid.catalogEntry.representativeFax"
+#~ msgstr "Fax"
+
+#~ msgid "grid.content.spotlights.category.sidebar"
+#~ msgstr "Barra lateral"
+
+#~ msgid "grid.action.editApprovedProof"
+#~ msgstr "Editar esta prueba aprobada"
+
+#~ msgid "grid.action.availablePublicationFormat"
+#~ msgstr "Aprobar / no aprobar este formato"
+
+#~ msgid "series.featured"
+#~ msgstr "Presentados"
+
+#~ msgid "catalog.manage.homepage"
+#~ msgstr "Página de inicio"
+
+#~ msgid "catalog.manage.managementIntroduction"
+#~ msgstr ""
+#~ "Bienvenido/a a la gestión del catálogo. Desde esta página puede publicar "
+#~ "nuevas entradas de catálogo; revisar y configurar la lista de libros "
+#~ "destacados, la lista de novedades y los libros por categoría y colección."
+
+#~ msgid "catalog.manage.entryDescription"
+#~ msgstr ""
+#~ "Para citar un libro en el catálogo, seleccione la pestaña Monografía y "
+#~ "complete la información necesaria. La información sobre todos los "
+#~ "formatos del libro se puede incluir en la entrada del catálogo "
+#~ "seleccionando la pestaña de formato. Las especificaciones de los "
+#~ "metadatos se basan en ONIX for Books, un estándar internacional que "
+#~ "utilizan las editoriales para publicar la información del producto."
+
+#~ msgid "catalog.manage.spotlightDescription"
+#~ msgstr ""
+#~ "Tres destacados (por ejemplo, como Libro Destacado) pueden aparecer en la "
+#~ "página de inicio, con título, imagen, y texto."
+
+#~ msgid "catalog.relatedCategories"
+#~ msgstr "Categorías relacionadas"
+
+#~ msgid "catalog.noBioInfo"
+#~ msgstr "Ninguna biografía disponible actualmente."
+
+#~ msgid "common.plusMore"
+#~ msgstr "+ Más"
+
+#~ msgid "common.catalogInformation"
+#~ msgstr ""
+#~ "La información de catálogo no necesita completarse en una propuesta "
+#~ "inicial de la obra, a excepción de Título y Resumen."
+
+#~ msgid "common.prefixAndTitle.tip"
+#~ msgstr ""
+#~ "Si el título del libro comienza con \"Un/a\" o \"El/La/Los/Las\" (o algo "
+#~ "similar que no deba incluirse por orden alfabético) añade la palabra como "
+#~ "prefijo."
+
+#~ msgid "user.role.seriesEditor"
+#~ msgstr "Editor/a de la colección"
+
+#~ msgid "user.role.seriesEditors"
+#~ msgstr "Editores de la colección"
+
+#~ msgid "user.register.completeForm"
+#~ msgstr "Complete el formulario para registrarse en la publicación."
+
+#~ msgid "user.register.alreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Haga clic aquí si ya está registrado en el "
+#~ "sitio con esta o con otra publicación."
+
+#~ msgid "user.register.notAlreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Haga clic aquí si todavía no"
+#~ "strong> está registrado en el sitio con esta o con otra publicación."
+
+#~ msgid "user.register.loginToRegister"
+#~ msgstr ""
+#~ "Introduce tu nombre de usuario actual y contraseña para registrarte con "
+#~ "esta editorial."
+
+#~ msgid "about.aboutThePress"
+#~ msgstr "Sobre la editorial"
+
+#~ msgid "about.sponsors"
+#~ msgstr "Patrocinadores"
+
+#~ msgid "about.contributors"
+#~ msgstr "Fuentes de apoyo"
+
+#~ msgid "about.onlineSubmissions.haveAccount"
+#~ msgstr "¿Ya tengo nombre de usuario/a y contraseña para {$pressTitle}?"
+
+#~ msgid "about.onlineSubmissions.needAccount"
+#~ msgstr "¿Necesitas un Nombre de usuario/Contraseña?"
+
+#~ msgid "about.onlineSubmissions.registration"
+#~ msgstr "Ir a Crear cuenta"
+
+#~ msgid "log.editor.submissionExpedited"
+#~ msgstr ""
+#~ "{$editorName} envió el proceso de edición de la monografía "
+#~ "{$submissionId}."
+
+#~ msgid "notification.removedFooterLink"
+#~ msgstr "Vínculo a pie de página eliminado."
+
+#~ msgid "notification.type.metadataModified"
+#~ msgstr "Se modificaron los metadatos de \"{$title}\""
+
+#~ msgid "notification.type.reviewerComment"
+#~ msgstr "Un revisor/a comentó \"{$title}\"."
+
+#~ msgid "user.authorization.invalidSeriesEditorSubmission"
+#~ msgstr ""
+#~ "¡No se ha solicitado propuesta de editor de colección o esta no es válida!"
+
+#~ msgid "payment.directSales.readRemotely"
+#~ msgstr "Vaya a {$format}"
+
+#~ msgid "grid.series.urlWillBe"
+#~ msgstr ""
+#~ "La URL de la colección es {$sampleUrl}. La ruta es una cadena de "
+#~ "caracteres que sirven para identificar una serie."
+
+msgid "section.section"
+msgstr "Colección"
+
+msgid "search.cli.rebuildIndex.indexing"
+msgstr "Indexando \"{$pressName}\""
+
+msgid "search.cli.rebuildIndex.indexingByPressNotSupported"
+msgstr ""
+"Esta implementación de búsqueda no permite la reindexación por publicación."
+
+msgid "search.cli.rebuildIndex.unknownPress"
+msgstr ""
+"La ruta de publicación proporcionada \"{$pressPath}\" no pudo resolverse en "
+"una publicación."
diff --git a/locale/es/manager.po b/locale/es/manager.po
new file mode 100644
index 00000000000..0addc724ed8
--- /dev/null
+++ b/locale/es/manager.po
@@ -0,0 +1,2270 @@
+# Jordi LC , 2021, 2023, 2024.
+# Marc Bria , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
+"PO-Revision-Date: 2024-04-26 12:34+0000\n"
+"Last-Translator: Jordi LC \n"
+"Language-Team: Spanish "
+"\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 "manager.language.confirmDefaultSettingsOverwrite"
+msgstr ""
+"Esto sustituirá cualquier ajuste de publicación específico que hubiera "
+"establecido para esta configuración regional"
+
+msgid "manager.languages.noneAvailable"
+msgstr ""
+"No hay más idiomas disponibles. Póngase en contacto con el administrador/a "
+"del sitio si desea utilizar más idiomas con la publicación."
+
+msgid "manager.languages.primaryLocaleInstructions"
+msgstr "Este será el idioma predeterminado para el sitio de la editorial."
+
+msgid "manager.series.form.mustAllowPermission"
+msgstr ""
+"Por favor, asegúrate de que se ha marcado al menos una casilla para cada "
+"tarea del coordinador de colección."
+
+msgid "manager.series.form.reviewFormId"
+msgstr ""
+"Por favor, asegúrate de que has elegido un formulario de revisión válido."
+
+msgid "manager.series.submissionIndexing"
+msgstr "No se incluirá en la indexación de la publicación"
+
+msgid "manager.series.editorRestriction"
+msgstr ""
+"Solo los coordinadores y coordinadores de colección pueden presentar "
+"elementos."
+
+msgid "manager.series.confirmDelete"
+msgstr "¿Estás seguro de que deseas eliminar esta serie de forma permanente?"
+
+msgid "manager.series.indexed"
+msgstr "Indizado"
+
+msgid "manager.series.open"
+msgstr "Propuestas abiertas"
+
+msgid "manager.series.readingTools"
+msgstr "Herramientas de lectura"
+
+msgid "manager.series.submissionReview"
+msgstr "No se revisará por pares"
+
+msgid "manager.series.submissionsToThisSection"
+msgstr "Propuesta realizada para esta colección"
+
+msgid "manager.series.abstractsNotRequired"
+msgstr "No se necesitan resúmenes"
+
+msgid "manager.series.disableComments"
+msgstr "Desactivar comentarios de los lectores para esta colección."
+
+msgid "manager.series.book"
+msgstr "Colección de libros"
+
+msgid "manager.series.create"
+msgstr "Crear colección"
+
+msgid "manager.series.policy"
+msgstr "Descripción de la colección"
+
+msgid "manager.series.assigned"
+msgstr "Coordinadores de esta colección"
+
+msgid "manager.series.seriesEditorInstructions"
+msgstr ""
+"Añadir un editor/a de la serie a la serie desde Editores/as de la serie. Una "
+"vez añadido, designe si el editor/a de la serie supervisará la REVISIÓN "
+"(evaluación por pares) o la EDICIÓN (corrección, maquetación y corrección de "
+"pruebas) de los envíos a la serie. Los editores/as de la serie se crean "
+"haciendo clic en Editores/as de la serie "
+"en Roles en la gestión de la publicación."
+
+msgid "manager.series.hideAbout"
+msgstr "Omitir esta colección de Sobre la editorial."
+
+msgid "manager.series.unassigned"
+msgstr "Coordinadores de colección disponibles"
+
+msgid "manager.series.form.abbrevRequired"
+msgstr "Se necesita un título abreviado para esta colección."
+
+msgid "manager.series.form.titleRequired"
+msgstr "Se necesita un título para esta colección."
+
+msgid "manager.series.noneCreated"
+msgstr "No se ha creado ninguna colección."
+
+msgid "manager.series.existingUsers"
+msgstr "Usuarios existentes"
+
+msgid "manager.series.seriesTitle"
+msgstr "Título de la colección"
+
+msgid "manager.series.restricted"
+msgstr "No permitir que los autores/as envíen directamente a esta serie."
+
+msgid "manager.payment.generalOptions"
+msgstr "Opciones generales"
+
+msgid "manager.payment.options.enablePayments"
+msgstr ""
+"Se han habilitado los pagos para esta publicación. Tenga en cuenta que los "
+"usuarios/as deberán iniciar la sesión para hacer los pagos."
+
+msgid "manager.payment.success"
+msgstr "La configuración de pago ha sido actualizada."
+
+msgid "manager.settings"
+msgstr "Preferéncias"
+
+msgid "manager.settings.pressSettings"
+msgstr "Ajustes editorial"
+
+msgid "manager.settings.press"
+msgstr "Editorial"
+
+msgid "manager.settings.publisher.identity"
+msgstr "Identidad de la editorial"
+
+msgid "manager.settings.publisher.identity.description"
+msgstr ""
+"Estos campos son obligatorios para publicar metadatos ONIX válidos."
+
+msgid "manager.settings.publisher"
+msgstr "Nombre sello editorial"
+
+msgid "manager.settings.location"
+msgstr "Localización geográfica"
+
+msgid "manager.settings.publisherCode"
+msgstr "Código sello editorial"
+
+msgid "manager.settings.publisherCodeType"
+msgstr "Tipo de código de la editorial"
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr "Este no es un tipo de código de editorial válido."
+
+msgid "manager.settings.distributionDescription"
+msgstr ""
+"Todos los ajustes específicos del proceso de distribución (notificación, "
+"indización, archivado, pago, herramientas de lectura)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr "Descargas del archivo de la monografía"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr "Vista preliminar del resumen de la monografía"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr "Resumen y descargas de la monografía"
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr "Principales vistas preliminares de la serie"
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr "Principales vistas preliminares de la publicación"
+
+msgid "manager.tools"
+msgstr "Herramientas"
+
+msgid "manager.tools.importExport"
+msgstr ""
+"Todas las herramientas específicas para importar y exportar datos "
+"(publicaciones, monografías, usuarios/as)"
+
+msgid "manager.tools.statistics"
+msgstr ""
+"Herramientas para generar informes relacionados con estadísticas de uso "
+"(visualización de páginas de índice de catálogo, visualización de páginas de "
+"resumen de monografías, descargas de archivos de monografías)"
+
+msgid "manager.users.availableRoles"
+msgstr "Funciones disponibles"
+
+msgid "manager.users.currentRoles"
+msgstr "Funciones actuales"
+
+msgid "manager.users.selectRole"
+msgstr "Seleccionar función"
+
+msgid "manager.people.allEnrolledUsers"
+msgstr "Usuarios/as inscritos en esta publicación"
+
+msgid "manager.people.allPresses"
+msgstr "Todas las editoriales"
+
+msgid "manager.people.allSiteUsers"
+msgstr "Inscribir a un usuario de este sitio en esta editorial"
+
+msgid "manager.people.allUsers"
+msgstr "Todos los usuarios inscritos"
+
+msgid "manager.people.confirmRemove"
+msgstr ""
+"¿Desea eliminar al usuario/a de la publicación? Esta acción eliminará al "
+"usuario/a de todos los roles dentro de la publicación."
+
+msgid "manager.people.enrollExistingUser"
+msgstr "Inscribir a un usuario existente"
+
+msgid "manager.people.enrollSyncPress"
+msgstr "Con editorial"
+
+msgid "manager.people.mergeUsers.from.description"
+msgstr ""
+"Seleccione un usuario/a para incorporarlo a otra cuenta de usuario/a (p.ej., "
+"cuando alguien tiene dos cuentas de usuario/a). La primera cuenta "
+"seleccionada se borrará y sus envíos, encargos, etc. serán atribuidos a la "
+"segunda cuenta."
+
+msgid "manager.people.mergeUsers.into.description"
+msgstr ""
+"Selecciona a un usuario al que atribuirle la autoría, encargos de edición y "
+"demás del usuario anterior."
+
+msgid "manager.people.syncUserDescription"
+msgstr ""
+"La sincronización de la inscripción registrará a todos los usuarios/as "
+"inscritos previamente en un rol específico de dicha publicación en el mismo "
+"rol de esta publicación. La función permite la sincronización entre "
+"publicaciones de un grupo común de usuarios/as (por ejemplo revisores/as)."
+
+msgid "manager.people.confirmDisable"
+msgstr ""
+"¿Deshabilitar al usuario/a? Esto evitará que el usuario/a se registre en el "
+"sistema.\n"
+"\n"
+"Podrá ofrecer una razón al usuario/a para deshabilitar su cuenta."
+
+msgid "manager.people.noAdministrativeRights"
+msgstr ""
+"No tiene derechos administrativos sobre este usuario/a. Esto puede deberse "
+"a:\n"
+"\t\t\n"
+"\t\t\t- El usuario/a es el administrador/a del sitio
\n"
+"\t\t\t- El usuario/a está activo en publicaciones que usted no gestiona"
+"li>\n"
+"\t\t
\n"
+"\t\tEsta tarea la debe llevar a cabo el administrador/a del sitio.\n"
+"\t"
+
+msgid "manager.system"
+msgstr "Ajustes del sistema"
+
+msgid "manager.system.archiving"
+msgstr "Archivado"
+
+msgid "manager.system.reviewForms"
+msgstr "Formularios de revisión"
+
+msgid "manager.system.readingTools"
+msgstr "Herramientas de lectura"
+
+msgid "manager.system.payments"
+msgstr "Pagos"
+
+msgid "user.authorization.pluginLevel"
+msgstr "No tiene suficientes privilegios para gestionar este módulo."
+
+msgid "manager.pressManagement"
+msgstr "Gestión editorial"
+
+msgid "manager.setup"
+msgstr "Configuración"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Contenido"
+
+msgid "manager.setup.addAboutItem"
+msgstr "Añadir Acerca del elemento"
+
+msgid "manager.setup.addChecklistItem"
+msgstr "Añadir elemento de la lista de comprobación"
+
+msgid "manager.setup.addItem"
+msgstr "Agregar ítem"
+
+msgid "manager.setup.addItemtoAboutPress"
+msgstr "Añadir un elemento a \"Acerca de la editorial\""
+
+msgid "manager.setup.addNavItem"
+msgstr "Agregar ítem"
+
+msgid "manager.setup.addSponsor"
+msgstr "Añadir organización patrocinadora"
+
+msgid "manager.setup.announcements"
+msgstr "Anuncios"
+
+msgid "manager.setup.announcements.success"
+msgstr "La configuración de los avisos ha sido actualizada."
+
+msgid "manager.setup.announcementsDescription"
+msgstr ""
+"Los avisos se publican para informar a los lectores/as de las noticias y los "
+"eventos de la publicación. Los avisos publicados aparecerán en la Página de "
+"avisos."
+
+msgid "manager.setup.announcementsIntroduction"
+msgstr "Información adicional"
+
+msgid "manager.setup.announcementsIntroduction.description"
+msgstr ""
+"Introduce la información adicional que quieres que se muestre a los lectores "
+"en la Página de anuncios."
+
+msgid "manager.setup.appearInAboutPress"
+msgstr "(Aparecerá en Acerca de la editorial) "
+
+msgid "manager.setup.contextAbout"
+msgstr "Acerca de la publicación"
+
+msgid "manager.setup.contextAbout.description"
+msgstr ""
+"Incluya toda la información sobre su editorial que pueda ser de interés para "
+"lectores/as, autores/as o revisores/as. Esto podría incluir su política de "
+"acceso abierto, el enfoque y el alcance del mismo, la divulgación del "
+"patrocinio y la historia de la editorial."
+
+msgid "manager.setup.contextSummary"
+msgstr "Resumen de la publicación"
+
+msgid "manager.setup.copyediting"
+msgstr "Correctores/as de originales"
+
+msgid "manager.setup.copyeditInstructions"
+msgstr "Instrucciones para la corrección de originales"
+
+msgid "manager.setup.copyeditInstructionsDescription"
+msgstr ""
+"Las instrucciones de corrección estarán disponibles para correctores/as, "
+"autores/as y editores/as de sección en la fase Edición del envío. A "
+"continuación se detallan unas instrucciones por defecto para HTML, que el "
+"jefe/a editorial puede modificar o reemplazar en cualquier momento (en HTML "
+"o en texto plano)."
+
+msgid "manager.setup.copyrightNotice"
+msgstr "Aviso derechos de autor"
+
+msgid "manager.setup.coverage"
+msgstr "Cobertura"
+
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr "Altura máxima de la imagen de portada"
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr "Ancho máximo de la imagen de portada"
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr ""
+"Las imágenes se reducirán cuando sean más grandes que este tamaño, pero "
+"nunca se inflarán ni se estirarán para ajustarse a estas dimensiones."
+
+msgid "manager.setup.customizingTheLook"
+msgstr "Paso 5. Personalizar Vista y Estilo"
+
+msgid "manager.setup.customTags"
+msgstr "Etiquetas personalizadas"
+
+msgid "manager.setup.customTagsDescription"
+msgstr ""
+"Las etiquetas HTML personalizadas de la cabecera pueden insertarse en la "
+"cabecera de cada página (p.ej. etiquetas META)."
+
+msgid "manager.setup.details"
+msgstr "Detalles"
+
+msgid "manager.setup.details.description"
+msgstr ""
+"Nombre de la editorial, contactos, patrocinadores y motores de búsqueda."
+
+msgid "manager.setup.disableUserRegistration"
+msgstr ""
+"El gestor editorial registra a todos los usuarios, aunque solo los "
+"coordinadores o coordinadores de sección pueden registrar a los revisores."
+
+msgid "manager.setup.discipline"
+msgstr "Disciplinas y subdisciplinas académicas"
+
+msgid "manager.setup.disciplineDescription"
+msgstr ""
+"De utilidad cuando la editorial traspasa las fronteras entre disciplinas y/o "
+"los autores presentan elementos multidisciplinarios."
+
+msgid "manager.setup.disciplineExamples"
+msgstr ""
+"(P.ej., historia; educación; sociología; psicología; estudios culutrales; "
+"derecho)"
+
+msgid "manager.setup.disciplineProvideExamples"
+msgstr ""
+"Proporciona ejemplos de disciplinas académicas relevantes para esta editorial"
+
+msgid "manager.setup.displayCurrentMonograph"
+msgstr ""
+"Añade la tabla de contenidos para la monografía actual (si disponible)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr "Contenido de la página de inicio"
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr "Mostrar los libros destacados en la página de inicio"
+
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr "Libros destacados"
+
+msgid "manager.setup.displayInSpotlight"
+msgstr "Mostrar los libros como destacados en la página de inicio"
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr "Foco"
+
+msgid "manager.setup.displayNewReleases"
+msgstr "Mostrar novedades en la página de inicio"
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr "Nuevos lanzamientos"
+
+msgid "manager.setup.enableDois.description"
+msgstr ""
+"Permita que se asignen identificadores de objetos digitales (DOI) al trabajo "
+"publicado por esta editorial."
+
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr ""
+"Seleccionar los tipos de trabajos publicados a los que se les deben asignar "
+"DOIs en esta editorial. La mayoría de las editoriales asignan DOIs a "
+"monografías/capítulos, pero podría querer asignarlos a todos los elementos "
+"publicados."
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr ""
+"Usar los patrones predeterminados:
%p.%m para monografías
%p.%m.c%c para capítulos
%p.%m.%f para formatos de publicación
%p.%m.%f.%s para archivos."
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr "Al alcanzar la fase de corrección de estilo"
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr "Formato / {$format}"
+
+msgid "manager.setup.editorDecision"
+msgstr "Decisión del coordinador"
+
+msgid "manager.setup.emailBounceAddress"
+msgstr "Remitente"
+
+msgid "manager.setup.emailBounceAddress.description"
+msgstr ""
+"Cualquier correo electrónico que no pueda entregarse generará un mensaje de "
+"error a esta dirección."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr ""
+"Para enviar correos electrónicos que no se pueden entregar a una dirección "
+"rechazada, el administrador del sitio debe habilitar la opción "
+"allow_envelope_sender
en el archivo de configuración del sitio. "
+"Puede ser necesaria la configuración del servidor, como se indica en la "
+"documentación de OMP."
+
+msgid "manager.setup.emails"
+msgstr "Identificación de correo electrónico"
+
+msgid "manager.setup.emailSignature"
+msgstr "Firma"
+
+msgid "manager.setup.emailSignature.description"
+msgstr ""
+"Los correos electrónicos enviados automáticamente por el sistema en nombre "
+"de la editorial, incluirán la siguiente firma."
+
+msgid "manager.setup.enableAnnouncements.enable"
+msgstr "Habilitar avisos"
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr ""
+"Se pueden publicar avisos para informar a los lectores sobre noticias y "
+"eventos. Los avisos publicados aparecerán en la página de avisos."
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr "Mostrar en la página principal"
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr ""
+"Número de avisos que mostrar en la página de inicio. Dejelo vacío para no "
+"mostrar ninguno."
+
+msgid "manager.setup.enablePressInstructions"
+msgstr "Habilitar que esta editorial aparezca públicamente en el sitio"
+
+msgid "manager.setup.enablePublicMonographId"
+msgstr ""
+"Los identificadores personalizados se usarán para identificar los elementos "
+"publicados."
+
+msgid "manager.setup.enablePublicGalleyId"
+msgstr ""
+"Los identificadores personalizados se usarán para identificar galeradas (p."
+"ej. ficheros HTML o PDF) para elementos publicados."
+
+msgid "manager.setup.enableUserRegistration"
+msgstr "Los visitantes pueden crear una cuenta de usuario/a en la editorial."
+
+msgid "manager.setup.focusAndScope"
+msgstr "Enfoque y alcance de la editorial"
+
+msgid "manager.setup.focusAndScope.description"
+msgstr ""
+"Informe a los autores/as, lectores/as y bibliotecarios/as de la temática de "
+"las monografías y de otros elementos que publicará la editorial."
+
+msgid "manager.setup.focusScope"
+msgstr "Enfoque y alcance"
+
+msgid "manager.setup.focusScopeDescription"
+msgstr "EJEMPLO DE DATOS HTML"
+
+msgid "manager.setup.forAuthorsToIndexTheirWork"
+msgstr "Para que los autores indicen su obra"
+
+msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
+msgstr ""
+"OMP cumple el protocolo sobre recopilación de metadatos Iniciativa de archivos abiertos, "
+"que es un estándar emergente que proporciona acceso bien indexado a los "
+"recursos electrónicos de investigación a escala global. Los autores/as "
+"usarán una plantilla similar para proporcionar metadatos a su envío. El jefe/"
+"a editorial deberá seleccionar las categorías para indexar y presentar a los "
+"autores/as ejemplos relevantes para ayudarles a indexar su trabajo, "
+"separando términos con punto y coma (p. ej. término1; término2). Las "
+"entradas deben introducirse como ejemplos utilizando \"P. ej.\" o \"Por "
+"ejemplo\"."
+
+msgid "manager.setup.form.contactEmailRequired"
+msgstr "Se necesita el correo electrónico del contacto principal."
+
+msgid "manager.setup.form.contactNameRequired"
+msgstr "Se necesita el nombre del contacto principal."
+
+msgid "manager.setup.form.numReviewersPerSubmission"
+msgstr "Se necesita el número de revisores por propuesta."
+
+msgid "manager.setup.form.supportEmailRequired"
+msgstr "Se necesita una dirección de correo alternativa."
+
+msgid "manager.setup.form.supportNameRequired"
+msgstr "Se necesita un nombre alternativo."
+
+msgid "manager.setup.generalInformation"
+msgstr "Información general"
+
+msgid "manager.setup.gettingDownTheDetails"
+msgstr "Paso 1. Detalles"
+
+msgid "manager.setup.guidelines"
+msgstr "Directrices"
+
+msgid "manager.setup.preparingWorkflow"
+msgstr "Paso 3. Preparando el flujo de trabajo"
+
+msgid "manager.setup.identity"
+msgstr "Identidad del medio"
+
+msgid "manager.setup.information"
+msgstr "Información"
+
+msgid "manager.setup.information.description"
+msgstr ""
+"En la sección \"Información\" de la barra lateral se encuentran disponibles "
+"unas breves descripciones de la editorial para bibliotecarios y posibles "
+"autores y lectores."
+
+msgid "manager.setup.information.forAuthors"
+msgstr "Para autores"
+
+msgid "manager.setup.information.forLibrarians"
+msgstr "Para bibliotecarios"
+
+msgid "manager.setup.information.forReaders"
+msgstr "Para lectoras/es"
+
+msgid "manager.setup.information.success"
+msgstr "La información de este medio fue actualizado."
+
+msgid "manager.setup.institution"
+msgstr "Institución"
+
+msgid "manager.setup.itemsPerPage"
+msgstr "Elementos por página"
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr ""
+"Limite el número de elementos (por ejemplo, envíos, usuarios o tareas de "
+"edición) a mostrar en una lista antes de mostrar elementos sucesivos en otra "
+"página."
+
+msgid "manager.setup.keyInfo"
+msgstr "Información clave"
+
+msgid "manager.setup.keyInfo.description"
+msgstr ""
+"Proporcione una breve descripción de su medio e identifique a los editores, "
+"directores generales y otros miembros de su equipo editorial."
+
+msgid "manager.setup.labelName"
+msgstr "Nombre de la etiqueta"
+
+msgid "manager.setup.layoutAndGalleys"
+msgstr "Maquetadores"
+
+msgid "manager.setup.layoutInstructions"
+msgstr "Instrucciones de maquetación"
+
+msgid "manager.setup.layoutInstructionsDescription"
+msgstr ""
+"Puede prepara las instrucciones de maquetación para dar formato a los "
+"elementos que la editorial publica e introducirlos a continuación en HTML o "
+"en texto plano. Estas instrucciones estarán disponibles para el maquetador/a "
+"y para el editor/a de sección en la página de edición de cada envío. (Tenga "
+"en cuenta que no se proporcionan instrucciones predefinidas porque cada "
+"publicación puede utilizar sus propios formatos de archivo, estándares "
+"bibliográficos, hojas de estilo, etc.)"
+
+msgid "manager.setup.layoutTemplates"
+msgstr "Plantillas de maquetació"
+
+msgid "manager.setup.layoutTemplatesDescription"
+msgstr ""
+"Se pueden subir las plantillas para que aparezcan en Maquetación para cada "
+"uno de los formatos estándares publicados en la publicación (p. ej. "
+"monografía, reseña de libro, etc.) usando cualquier formato de archivo (p. "
+"ej. pdf., doc., etc.) con anotaciones que especifiquen la fuente, el tamaño, "
+"los márgenes, etc. que sirvan como guía para los maquetadores/as y los "
+"correctores/as de pruebas."
+
+msgid "manager.setup.layoutTemplates.file"
+msgstr "Fichero de plantilla"
+
+msgid "manager.setup.layoutTemplates.title"
+msgstr "Título"
+
+msgid "manager.setup.lists"
+msgstr "Listas"
+
+msgid "manager.setup.lists.success"
+msgstr "Los ajustes de lista se han actualizado."
+
+msgid "manager.setup.look"
+msgstr "Vista y estilo"
+
+msgid "manager.setup.look.description"
+msgstr ""
+"Cabecera de la página principal, contenido, cabecera de la editorial, pie de "
+"página, barra de navegación y hoja de estilos."
+
+msgid "manager.setup.settings"
+msgstr "Preferéncias"
+
+msgid "manager.setup.management.description"
+msgstr ""
+"Acceso y seguridad, planificación, avisos, corrección de originales, "
+"maquetación y revisión."
+
+msgid "manager.setup.managementOfBasicEditorialSteps"
+msgstr "Gestión de los pasos básicos de la editorial"
+
+msgid "manager.setup.managingPublishingSetup"
+msgstr "Gestión y configuración de la publicación"
+
+msgid "manager.setup.managingThePress"
+msgstr "Paso 4. Gestionar la configuración"
+
+msgid "manager.setup.masthead.success"
+msgstr "Los detalles de la cabecera de este medio se han actualizado."
+
+msgid "manager.setup.noImageFileUploaded"
+msgstr "No se cargó ningún archivo de imagen."
+
+msgid "manager.setup.noStyleSheetUploaded"
+msgstr "No se cargó ninguna hoja de estilo."
+
+msgid "manager.setup.note"
+msgstr "Nota"
+
+msgid "manager.setup.notifyAllAuthorsOnDecision"
+msgstr ""
+"Cuando se quiera enviar un correo electrónico de notificación para el autor/"
+"a, incluya las direcciones de correo de todos los coautores/as, en casos en "
+"los que participan varios autores/as, en lugar de añadir únicamente la del "
+"usuario/a que realiza el envío."
+
+msgid "manager.setup.noUseCopyeditors"
+msgstr ""
+"El editor/a o editor/a de sección responsable del envío asumirá la tarea de "
+"corrección de originales."
+
+msgid "manager.setup.noUseLayoutEditors"
+msgstr ""
+"El editor/a o editor/a de sección responsable del envío se encargará de la "
+"preparación de los archivos en formato HTML, PDF, etc."
+
+msgid "manager.setup.noUseProofreaders"
+msgstr ""
+"El editor/a o editor/a de sección responsable del envío se encargará de la "
+"inspección de las galeradas."
+
+msgid "manager.setup.numPageLinks"
+msgstr "Enlaces de la página"
+
+msgid "manager.setup.numPageLinks.description"
+msgstr ""
+"Limitar el número de enlaces que se muestran en las páginas sucesivas en una "
+"lista."
+
+msgid "manager.setup.onlineAccessManagement"
+msgstr "Acceder al contenido de la editorial"
+
+msgid "manager.setup.onlineIssn"
+msgstr "ISSN en línea"
+
+msgid "manager.setup.policies"
+msgstr "Políticas"
+
+msgid "manager.setup.policies.description"
+msgstr ""
+"Objeto de la revista, proceso de evaluación por pares, secciones, "
+"privacidad, seguridad y otros."
+
+msgid "manager.setup.privacyStatement.success"
+msgstr "La declaración de privacidad ha sido actualizada."
+
+msgid "manager.setup.appearanceDescription"
+msgstr ""
+"Desde esta página se pueden configurar varios componentes del aspecto de la "
+"publicación, incluyendo elementos del encabezado y pie de página, el estilo "
+"y tema de la publicación y cómo se presentan las listas de información a los "
+"usuarios/as."
+
+msgid "manager.setup.pressDescription"
+msgstr "Descripción de la editorial"
+
+msgid "manager.setup.pressDescription.description"
+msgstr ""
+"Incluya aquí una descripción general de la publicación. La descripción "
+"estará disponible en la página de inicio de la publicación."
+
+msgid "manager.setup.aboutPress"
+msgstr "Sobre la editorial"
+
+msgid "manager.setup.aboutPress.description"
+msgstr ""
+"Incluya cualquier información sobre su editorial, la cual pueda ser de "
+"interés para lectores, autores y revisores. Esto podría incluir su política "
+"de acceso abierto, el enfoque y el alcance de la editorial, el aviso de "
+"copyright, la divulgación de patrocinio, el historial de la editorial y una "
+"declaración de privacidad."
+
+msgid "manager.setup.pressArchiving"
+msgstr "Archivos de la publicación"
+
+msgid "manager.setup.homepageContent"
+msgstr "Contenido de la página de inicio de la publicación"
+
+msgid "manager.setup.homepageContentDescription"
+msgstr ""
+"La página de inicio de la publicación consta de enlaces de navegación por "
+"defecto. Se pueden añadir más contenidos a la página de inicio utilizando "
+"una de las siguientes opciones, que aparecen en el orden descrito."
+
+msgid "manager.setup.pressHomepageContent"
+msgstr "Contenido de la página de inicio de la publicación"
+
+msgid "manager.setup.pressHomepageContentDescription"
+msgstr ""
+"La página de inicio de la publicación consta de enlaces de navegación por "
+"defecto. Se pueden añadir más contenidos a la página de inicio utilizando "
+"una de las siguientes opciones, que aparecen en el orden descrito."
+
+msgid "manager.setup.contextInitials"
+msgstr "Iniciales de la editorial"
+
+msgid "manager.setup.selectCountry"
+msgstr ""
+"Seleccione el país donde se ubica la editorial, o el país de la dirección "
+"postal de la editorial o del editor/a."
+
+msgid "manager.setup.layout"
+msgstr "Maquetación de la publicación"
+
+msgid "manager.setup.pageHeader"
+msgstr "Encabezado de la página de la publicación"
+
+msgid "manager.setup.pageHeaderDescription"
+msgstr "Configuración de la cabecera de la página"
+
+msgid "manager.setup.pressPolicies"
+msgstr "Paso 2. Políticas de la publicación"
+
+msgid "manager.setup.pressSetup"
+msgstr "Configuración de la publicación"
+
+msgid "manager.setup.pressSetupUpdated"
+msgstr "Se actualizó la configuración de la publicación."
+
+msgid "manager.setup.styleSheetInvalid"
+msgstr "Formato de hoja de estilo no válido. El formato aceptado es .css."
+
+msgid "manager.setup.pressTheme"
+msgstr "Tema de la publicación"
+
+msgid "manager.setup.pressThumbnail"
+msgstr "Miniatura de la editorial"
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr ""
+"Un pequeño logotipo o representación de la editorial que pueda utilizarse en "
+"listados de editoriales."
+
+msgid "manager.setup.contextTitle"
+msgstr "Nombre de la publicación"
+
+msgid "manager.setup.printIssn"
+msgstr "Imprimir ISSN"
+
+msgid "manager.setup.proofingInstructions"
+msgstr "Instrucciones de corrección de pruebas"
+
+msgid "manager.setup.proofingInstructionsDescription"
+msgstr ""
+"Las instrucciones de correcciones de pruebas estarán disponibles en la fase "
+"de edición del envío para correctores/as de pruebas, autores/as y editores/"
+"as de sección A continuación se detallan unas instrucciones por defecto en "
+"HTML que el jefe/a editorial puede editar o reemplazar en cualquier momento "
+"(en HTML o texto plano)."
+
+msgid "manager.setup.proofreading"
+msgstr "Correctores de pruebas"
+
+msgid "manager.setup.provideRefLinkInstructions"
+msgstr "Proporcione instrucciones a los maquetadores/as."
+
+msgid "manager.setup.publicationScheduleDescription"
+msgstr ""
+"Los elementos de la publicación se pueden publicar de forma colectiva, como "
+"parte de una monografía con su propia tabla de contenidos. Además, los "
+"elementos individuales pueden publicarse en cuanto estén preparados, "
+"añadiéndolos a la tabla de contenidos \"actual\". En Acerca de la "
+"publicación proporcione a los lectores/as información sobre el sistema que "
+"la editorial usará y su frecuencia estimada de publicación."
+
+msgid "manager.setup.publisher"
+msgstr "Editor"
+
+msgid "manager.setup.publisherDescription"
+msgstr ""
+"El nombre de la organización que publica la publicación aparecerá en Acerca "
+"de la publicación."
+
+msgid "manager.setup.referenceLinking"
+msgstr "Enlaces de referencia"
+
+msgid "manager.setup.refLinkInstructions.description"
+msgstr "Instrucciones de maquetación para los enlaces de referencia"
+
+msgid "manager.setup.restrictMonographAccess"
+msgstr ""
+"Los usuarios/as deben registrarse e iniciar sesión para ver el contenido de "
+"acceso abierto."
+
+msgid "manager.setup.restrictSiteAccess"
+msgstr ""
+"Los usuarios/as deben registrarse e iniciar sesión para ver el sitio de la "
+"publicación."
+
+msgid "manager.setup.reviewGuidelines"
+msgstr "Review Guidelines"
+
+msgid "manager.setup.reviewGuidelinesDescription"
+msgstr ""
+"Las directrices de revisión externa proporcionarán a los revisores/as "
+"externos criterios para juzgar la adecuación de un envío para su publicación "
+"en la editorial y podrán incluir instrucciones especiales para conseguir una "
+"revisión eficaz y útil. Cuando se lleva a cabo la revisión, se les entrega a "
+"los revisores/as externos dos cuadros de texto abiertos, el primero \"para "
+"autor/a y editor/a\" y el segundo \"para editor/a\". Además el jefe/a "
+"editorial puede crear una evaluación por pares en Formularios de revisión. "
+"En todos los casos los editores/as podrán incluir las revisiones "
+"correspondientes a cada autor/a."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr "Directrices de revisión interna"
+
+msgid "manager.setup.reviewOptions"
+msgstr "Opciones de revisión"
+
+msgid "manager.setup.reviewOptions.automatedReminders"
+msgstr "Recordatorios de correo electrónico automáticos"
+
+msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
+msgstr ""
+"Para activar estas opciones, el administrador/a del sitio debe habilitar la "
+"opción scheduled_tasks en el archivo de configuración de OMP. Será "
+"necesario modificar la configuración del servidor para que sea compatible "
+"con esta funcionalidad (que puede no estar disponible en todos los "
+"servidores), como se indica en la documentación de OMP."
+
+msgid "manager.setup.reviewOptions.onQuality"
+msgstr ""
+"Los editores/as pueden calificar a los revisores/as en una escala de cinco "
+"puntos después de cada revisión."
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr "Restringir el acceso al archivo"
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
+msgstr ""
+"Permitir que los revisores/as tengan acceso a los archivos de envío sólo "
+"después de que éstos/as hayan aceptado la revisión."
+
+msgid "manager.setup.reviewOptions.reviewerAccess"
+msgstr "Acceso para los revisores/as"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr "Acceso del revisor/a con un clic"
+
+#, fuzzy
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
+msgstr ""
+"A los revisores se les puede enviar un enlace seguro en la invitación por "
+"correo electrónico, que les permitirá acceder a la revisión sin iniciar "
+"sesión. El acceso a otras páginas requiere que inicien sesión."
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr ""
+"Incluir un enlace seguro en la invitación por correo electrónico a los "
+"revisores."
+
+msgid "manager.setup.reviewOptions.reviewerRatings"
+msgstr "Calificación de los revisores/as"
+
+msgid "manager.setup.reviewOptions.reviewerReminders"
+msgstr "Recordatorios para los revisores/as"
+
+msgid "manager.setup.reviewPolicy"
+msgstr "Política de evaluación"
+
+msgid "manager.setup.searchDescription.description"
+msgstr ""
+"Proporcione una breve descripción (50-300 caracteres) de la publicación que "
+"los motores de búsqueda puedan mostrar cuando listen la publicación en los "
+"resultados de búsqueda."
+
+msgid "manager.setup.searchEngineIndexing"
+msgstr "Indización en buscadores"
+
+msgid "manager.setup.searchEngineIndexing.description"
+msgstr ""
+"Ayude a motores de búsqueda como Google a descubrir y mostrar su sitio. Por "
+"ello le animamos a enviar su mapa del sitio."
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr "Los ajustes de indexación del motor de búsqueda se han actualizado."
+
+msgid "manager.setup.sectionsAndSectionEditors"
+msgstr "Secciones y editores/as de secciones"
+
+msgid "manager.setup.sectionsDefaultSectionDescription"
+msgstr ""
+"(Si no se han añadido secciones, los elementos se envían por defecto a la "
+"sección Monografías.)"
+
+msgid "manager.setup.sectionsDescription"
+msgstr ""
+"Para crear o modificar secciones de la publicación (p. ej. monografías, "
+"reseñas de libros, etc.) vaya a la sección Gestión.
Los autores/"
+"as que envíen elementos a la publicación designarán..."
+
+msgid "manager.setup.securitySettings"
+msgstr "Configuración de acceso y seguridad"
+
+msgid "manager.setup.securitySettings.note"
+msgstr ""
+"Otras opciones relacionadas con la seguridad y el acceso se pueden "
+"configurar desde la página de Acceso y seguridad."
+
+msgid "manager.setup.selectEditorDescription"
+msgstr "El editor/a lo verá durante el proceso editorial."
+
+msgid "manager.setup.selectSectionDescription"
+msgstr "La serie para la cual se considerará el elemento."
+
+msgid "manager.setup.showGalleyLinksDescription"
+msgstr ""
+"Mostrar siempre los enlaces de galeradas e indicar que el acceso es "
+"restringido."
+
+msgid "manager.setup.siteAccess.view"
+msgstr "Acceso al sitio"
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr "Ver contenido de la monografía"
+
+msgid "manager.setup.stepsToPressSite"
+msgstr "Cinco pasos para configurar el sitio web de una publicación"
+
+msgid "manager.setup.subjectExamples"
+msgstr ""
+"(p. ej., fotosíntesis; agujeros negros; Teorema de los cuatro colores; "
+"Teoría de Bayes)"
+
+msgid "manager.setup.subjectKeywordTopic"
+msgstr "Palabras clave"
+
+msgid "manager.setup.subjectProvideExamples"
+msgstr ""
+"Proporcione ejemplos de palabras clave y temas que sirvan de guía para los "
+"autores/as"
+
+msgid "manager.setup.submissionGuidelines"
+msgstr "Indicaciones para el envío"
+
+msgid "maganer.setup.submissionChecklistItemRequired"
+msgstr "La lista de comprobación de elementos es obligatoria."
+
+msgid "manager.setup.workflow"
+msgstr "Flujo de trabajo"
+
+msgid "manager.setup.submissions.description"
+msgstr ""
+"Indicaciones para los autores/as, derechos de autor/a e indexación (incluido "
+"el registro)."
+
+msgid "manager.setup.typeExamples"
+msgstr ""
+"(p. ej., investigación histórica; casi experimental; análisis literario; "
+"encuesta/entrevista)"
+
+msgid "manager.setup.typeMethodApproach"
+msgstr "Tipo (método/enfoque)"
+
+msgid "manager.setup.typeProvideExamples"
+msgstr ""
+"Proporcione ejemplos de tipos de investigación, métodos y enfoques para este "
+"campo"
+
+msgid "manager.setup.useCopyeditors"
+msgstr "Asignar un corrector/a de originales para cada envío."
+
+msgid "manager.setup.useEditorialReviewBoard"
+msgstr "La editorial utilizará un consejo editorial/de revisión."
+
+msgid "manager.setup.useImageTitle"
+msgstr "Imagen del título"
+
+msgid "manager.setup.useStyleSheet"
+msgstr "Hoja de estilo de la publicación"
+
+msgid "manager.setup.useLayoutEditors"
+msgstr ""
+"Asignar al maquetista la preparación de los archivos en formato HTML, PDF, "
+"etc., para su posterior publicación en la red."
+
+msgid "manager.setup.useProofreaders"
+msgstr ""
+"Se asignará a un corrector/a de pruebas la inspección (junto con los autores/"
+"as) de las galeradas antes de la publicación."
+
+msgid "manager.setup.userRegistration"
+msgstr "Registro de usuarios/as"
+
+msgid "manager.setup.useTextTitle"
+msgstr "Título en formato de texto"
+
+msgid "manager.setup.volumePerYear"
+msgstr "Volúmenes por año"
+
+msgid "manager.setup.publicationFormat.code"
+msgstr "Formato"
+
+msgid "manager.setup.publicationFormat.codeRequired"
+msgstr "Especifique un formato."
+
+msgid "manager.setup.publicationFormat.nameRequired"
+msgstr "Especifique un nombre para el formato."
+
+msgid "manager.setup.publicationFormat.physicalFormat"
+msgstr "¿Es un formato físico (no digital)?"
+
+msgid "manager.setup.publicationFormat.inUse"
+msgstr ""
+"No se puede eliminar el formato de publicación porque se está utilizando en "
+"una monografía de su publicación."
+
+msgid "manager.setup.newPublicationFormat"
+msgstr "Nuevo formato de publicación"
+
+msgid "manager.setup.newPublicationFormatDescription"
+msgstr ""
+"Para crear un formato de publicación nuevo, rellene el formulario siguiente "
+"y haga clic en el botón \"Crear\"."
+
+msgid "manager.setup.genresDescription"
+msgstr ""
+"Los géneros se utilizan para nombrar archivos y se presentan en un menú "
+"desplegable en el momento de subir los archivos. Los géneros designados como "
+"## permiten que el usuario/a asocie el archivo con el libro entero 99Z o con "
+"un capítulo concreto por número (p. ej., 02)."
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr ""
+"La editorial no acepta envíos en este momento. Visite los ajustes del flujo "
+"editorial para habilitar los envíos."
+
+msgid "manager.setup.disableSubmissions.description"
+msgstr ""
+"Impedir que los usuarios/as envíen nuevos artículos a la editorial. Los "
+"envíos se pueden deshabilitar individualmente para cada serie editorial en "
+"la página de ajustes de series editoriales."
+
+msgid "manager.setup.genres"
+msgstr "Géneros"
+
+msgid "manager.setup.newGenre"
+msgstr "Nuevo género de monografía"
+
+msgid "manager.setup.newGenreDescription"
+msgstr ""
+"Para crear un género nuevo, rellene el formulario siguiente y haga clic en "
+"el botón \"Crear\"."
+
+msgid "manager.setup.deleteSelected"
+msgstr "Eliminar selección"
+
+msgid "manager.setup.restoreDefaults"
+msgstr "Restaurar la configuración por defecto"
+
+msgid "manager.setup.prospectus"
+msgstr "Guía del prospecto"
+
+msgid "manager.setup.prospectusDescription"
+msgstr ""
+"La guía del prospecto es un documento preparado por la editorial que ayuda "
+"al autor/a a describir los materiales enviados de forma que permita a una "
+"editorial determinar el valor del envío. Un prospecto puede incluir muchos "
+"elementos, desde potencial de mercado hasta valor teórico; en cualquier "
+"caso, una editorial debe crear una guía de prospecto que complemente su "
+"agenda de publicación."
+
+msgid "manager.setup.submitToCategories"
+msgstr "Permitir envíos de categorías"
+
+msgid "manager.setup.submitToSeries"
+msgstr "Permitir envíos de series"
+
+msgid "manager.setup.issnDescription"
+msgstr ""
+"El ISSN (número de serie estándar internacional) es un número de ocho "
+"dígitos que identifica las publicaciones periódicas, incluyendo las series "
+"electrónicas. Lo gestiona una red internacional de centros nacionales "
+"coordinada por un centro internacional cuya sede se encuentra en París y "
+"está respaldada por la Unesco y el Gobierno francés. El número se puede "
+"obtener desde la página "
+"web del ISSN. Esto puede hacerse en cualquier momento de la ejecución de "
+"la publicación."
+
+msgid "manager.setup.currentFormats"
+msgstr "Formatos actuales"
+
+msgid "manager.setup.categoriesAndSeries"
+msgstr "Categorías y series"
+
+msgid "manager.setup.categories.description"
+msgstr ""
+"Puede crear una lista de categorías para organizar sus publicaciones. Las "
+"categorías son grupos de libros de la misma materia, por ejemplo, economía, "
+"literatura, poesía, etc. Las categorías pueden contener subcategorías: por "
+"ejemplo, la categoría Economía puede incluir las subcategorías Microeconomía "
+"y Macroeconomía. Los visitantes podrán buscar y explorar la publicación por "
+"categorías."
+
+msgid "manager.setup.series.description"
+msgstr ""
+"Puede crear un número indefinido de series para organizar sus publicaciones. "
+"Una serie representa un conjunto de libros dedicado a un tema propuesto, "
+"normalmente por uno o varios miembros de la facultad. Los visitantes podrán "
+"buscar y explorar la publicación por series."
+
+msgid "manager.setup.reviewForms"
+msgstr "Formularios de revisión"
+
+msgid "manager.setup.roleType"
+msgstr "Tipo de rol"
+
+msgid "manager.setup.authorRoles"
+msgstr "Roles del autor/a"
+
+msgid "manager.setup.managerialRoles"
+msgstr "Roles de gestión"
+
+msgid "manager.setup.availableRoles"
+msgstr "Funciones disponibles"
+
+msgid "manager.setup.currentRoles"
+msgstr "Funciones actuales"
+
+msgid "manager.setup.internalReviewRoles"
+msgstr "Roles de revisión interna"
+
+msgid "manager.setup.masthead"
+msgstr "Equipo editorial"
+
+msgid "manager.setup.editorialTeam"
+msgstr "Equipo editorial"
+
+msgid "manager.setup.editorialTeam.description"
+msgstr ""
+"El equipo editorial debe contener una lista de editores/as, directores/as de "
+"gestión y otros cargos asociados a la editorial. La información que "
+"introduzca aquí aparecerá en Acerca de la publicación."
+
+msgid "manager.setup.files"
+msgstr "Archivos"
+
+msgid "manager.setup.productionTemplates"
+msgstr "Plantillas de producción"
+
+msgid "manager.files.note"
+msgstr ""
+"Nota: El explorador de archivos es una función avanzada que permite "
+"visualizar y manipular directamente archivos y directorios asociados a una "
+"publicación."
+
+msgid "manager.setup.copyrightNotice.sample"
+msgstr ""
+"Notificaciones sobre derechos de autor/a de Creative Commons
\n"
+"Política para publicaciones que ofrecen acceso abierto
Los autores/"
+"as que publiquen en la editorial aceptan los siguientes términos:\n"
+"\t- Los autores/as poseen derechos de autor/a y conceden a la editorial el "
+"derecho de la primera publicación junto con la obra autorizada conforme a "
+"una Licencia de reconocimiento de Creative Commons que permite a terceras "
+"personas publicar la obra con una nota de reconocimiento en la publicación "
+"sobre la autoría de la obra y la publicación inicial.
\n"
+"\t- Los autores/as pueden acordar otra serie contractual independiente "
+"para una distribución no exclusiva de la versión de la obra publicada por la "
+"editorial (p. ej. subirla a un repositorio internacional o publicarla en un "
+"libro), con una nota de reconocimientos de la publicación inicial en la "
+"editorial.
\n"
+"\t- Los autores/as pueden publicar su obra en la red (p. ej. en "
+"repositorios institucionales o en su página web) antes de y durante el "
+"proceso de envío, ya que puede facilitar intercambios productivos, así como "
+"una citación más rápida y más amplia de la obra publicada (Véase El "
+"efecto del acceso abierto).
\n"
+"
\n"
+"\n"
+"Política para publicaciones que ofrecen acceso abierto
Los autores/"
+"as que publiquen en la editorial aceptan los siguientes términos:\n"
+"\t- Los autores/as poseen derechos de autor/a y conceden a la editorial el "
+"derecho de la primera publicación junto con la obra [ESPECIFIQUE PERIODO DE "
+"TIEMPO] tras haberse publicado debidamente autorizada conforme a una Licencia de reconocimiento de Creative Commons que permite a terceras "
+"personas publicar la obra con una nota de reconocimiento en la publicación "
+"sobre la autoría de la obra y la publicación inicial.<segmento 1562>"
+"li>\n"
+"\t
- Los autores/as pueden acordar otra serie contractual independiente "
+"para una distribución no exclusiva de la versión de la obra publicada por la "
+"editorial (p. ej. subirla a un repositorio internacional o publicarla en un "
+"libro), con una nota de reconocimientos de la publicación inicial en la "
+"editorial.
\n"
+"\t - Los autores/as pueden publicar su obra en la red (p. ej. en "
+"repositorios institucionales o en su página web) antes de y durante el "
+"proceso de envío, ya que puede facilitar intercambios productivos, así como "
+"una citación más rápida y más amplia de la obra publicada (Véase El "
+"efecto del acceso abierto).
\n"
+"
"
+
+msgid "manager.setup.basicEditorialStepsDescription"
+msgstr ""
+"Pasos: Cola de envíos > Revisión de envíos > Edición de envíos > "
+"Tabla de contenidos.
\n"
+"Seleccione un modelo para manejar estos aspectos del proceso editorial. "
+"(Para designar a un editor/a de gestión y a un editor/a de serie, vaya al "
+"apartado Editores/as en Gestión de la publicación.)"
+
+msgid "manager.setup.referenceLinkingDescription"
+msgstr ""
+"Para permitir a los lectores/as buscar versiones en línea de la obra "
+"citada por un autor/a, dispone de las siguientes opciones.
\n"
+"\n"
+"\n"
+"\t- Añadir una herramienta de lectura
El jefe/a "
+"editorial puede añadir \"Buscar referencias\" a las herramientas de lectura "
+"que acompañan a los elementos publicados, lo que permite a los lectores/as "
+"pegar el título de una referencia y buscarlo en las bases de datos "
+"académicas preseleccionadas para dicha obra.
\n"
+"\t- Enlaces incorporados en las referencias
El "
+"maquetador/a puede añadir un enlace a las referencias que pueden consultarse "
+"en línea usando las siguiente instrucciones (que se pueden editar).
"
+"li>\n"
+"
"
+
+msgid "manager.publication.library"
+msgstr "Biblioteca de la publicación"
+
+msgid "manager.setup.resetPermissions"
+msgstr "Reinicia los permisos de monografía"
+
+msgid "manager.setup.resetPermissions.confirm"
+msgstr ""
+"¿Seguro que desea reiniciar los datos de permisos ya asociados a las "
+"monografías?"
+
+msgid "manager.setup.resetPermissions.description"
+msgstr ""
+"La declaración de derechos de autor y la información de licencia estarán "
+"ligadas permanentemente al contenido publicado, lo que garantiza que estos "
+"datos no cambiarán en el caso de producirse un cambio en las políticas de la "
+"editorial para nuevos envíos. Para reiniciar la información sobre permisos "
+"almacenada y todavía ligada al contenido publicado, utilice el botón "
+"siguiente."
+
+msgid "manager.setup.resetPermissions.success"
+msgstr "Los permisos de la monografía se restablecieron correctamente."
+
+msgid "grid.genres.title.short"
+msgstr "Componentes"
+
+msgid "grid.genres.title"
+msgstr "Componentes de la monografía"
+
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr ""
+"Enviar una copia al contacto principal, identificado en el paso 1 de la "
+"configuración."
+
+msgid "grid.series.pathAlphaNumeric"
+msgstr "La ruta de las series solo admite letras y números."
+
+msgid "grid.series.pathExists"
+msgstr "La ruta de la serie ya existe. Introduzca una ruta única."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr "Seleccionar Series"
+
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr "Seleccione la serie a la que desea vincular este elemento del menú."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr "Seleccionar categoría"
+
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr ""
+"Seleccione la categoría a la que desea vincular este elemento del menú."
+
+msgid "grid.series.urlWillBe"
+msgstr "La URL de las series, será: {$sampleUrl}"
+
+msgid "stats.contextStats"
+msgstr "Estadísticas de la editorial"
+
+msgid "stats.context.tooltip.text"
+msgstr ""
+"Número de visitantes que han visto la página de índice de la editorial y el "
+"catálogo."
+
+msgid "stats.context.tooltip.label"
+msgstr "Acerca de las estadísticas de la editorial"
+
+msgid "stats.context.downloadReport.description"
+msgstr ""
+"Descargar una hoja de cálculo en formato CSV/Excel con estadísticas de uso "
+"de esta editorial que coincidan con los siguientes parámetros."
+
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr ""
+"El número de vistas de la página de índice de la editorial y el catálogo."
+
+msgid "stats.context.downloadReport.downloadContext"
+msgstr "Descargas en la editorial"
+
+msgid "stats.publications.downloadReport.description"
+msgstr ""
+"Descargar una hoja de cálculo en formato CSV/Excel con estadísticas de uso "
+"de las monografías que coincidan con los siguientes parámetros."
+
+msgid "stats.publications.downloadReport.downloadSubmissions"
+msgstr "Descargas de monografías"
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr ""
+"El número de vistas de resumen y descargas de archivos para cada monografía."
+
+msgid "stats.publicationStats"
+msgstr "Estadísticas de la monografía"
+
+msgid "stats.publications.details"
+msgstr "Detalles de la monografía"
+
+msgid "stats.publications.none"
+msgstr ""
+"No se encontraron monografías con estadísticas de uso que coincidan con "
+"estos parámetros."
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr "Vistas totales del catálogo por fecha"
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr "Vistas totales de archivos por fecha"
+
+msgid "stats.publications.countOfTotal"
+msgstr "{$count} de {$total} monografías"
+
+msgid "stats.publications.abstracts"
+msgstr "Registros del catálogo"
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr "No se ha seleccionado ningún objeto."
+
+msgid "plugins.importexport.common.error.validation"
+msgstr "No se han podido convertir los objetos seleccionados."
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr "XML inválido:"
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr "Exportar envíos"
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr ""
+"Enviar una copia del correo electrónico de agradecimiento por el envío al "
+"contacto principal de la editorial."
+
+msgid ""
+"manager.setup.notifications.copySubmissionAckPrimaryContact.disabled."
+"description"
+msgstr ""
+"No se ha definido el contacto principal de esta editorial. Puede "
+"introducirlo en los ajustes de la editorial."
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr "Los objetos especificados no se pueden encontrar."
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr "El usuario/a especificado, \"{$userName}\", no existe."
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr "El proceso ha fallado al analizar los formatos de publicación"
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr "El proceso ha fallado al analizar los capítulos"
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr "El nombre de la editorial"
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr "La URL a la página de inicio de la publicación"
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr "El nombre de contacto principal de la publicación"
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr "La firma para los correos electrónicos automatizados de la publicación"
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr ""
+"La dirección de correo electrónico del contacto principal de la publicación"
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr "El nombre del tipo de pago"
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr "El monto del pago"
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr "La moneda del importe del pago, por ejemplo USD"
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr "Nombre del sitio web cuando se aloja más de una publicación"
+
+msgid "mailable.validateEmailContext.name"
+msgstr "Validar correo electrónico (registro en la editorial)"
+
+msgid "mailable.validateEmailContext.description"
+msgstr ""
+"Este correo electrónico se envía automáticamente a un nuevo usuario/a cuando "
+"se registra en la editorial y la configuración requiere que se valide la "
+"dirección de correo electrónico."
+
+msgid "doi.displayName"
+msgstr "Identificador de objeto digital (DOI)"
+
+msgid "doi.manager.displayName"
+msgstr "DOI"
+
+msgid "doi.description"
+msgstr ""
+"Este módulo permite la asignación de identificadores de objetos digitales "
+"(DOI) a monografías, capítulos, formatos de publicación y archivos en OMP."
+
+msgid "doi.readerDisplayName"
+msgstr "DOI:"
+
+msgid "doi.manager.settings.description"
+msgstr ""
+"Configure el módulo DOI para poder gestionar y usar los elementos DOI en OMP:"
+
+msgid "doi.manager.settings.explainDois"
+msgstr ""
+"Seleccione los objetos publicados a los que desea asignar el Identificador "
+"de objetos digitales (DOI):"
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr "Monografías"
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr "Capítulos"
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr "Formatos de publicación"
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr "Archivos"
+
+msgid "doi.manager.settings.doiPrefix"
+msgstr "Prefijo DOI"
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr "El prefijo del DOI es obligatorio y debe respetar la forma 10.xxxx."
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr ""
+"Utilice el patrón introducido a continuación para generar sufijos DOI. "
+"Utilice %p para las iniciales de la publicación, %m para el ID de "
+"monografía, %c para el ID de capítulo, %f para el ID de formato de "
+"publicación, %s para el ID de archivo y %x para \"identificador "
+"personalizado\". "
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr ""
+"Por ejemplo, press%ppub%f puede crear un DOI como 10.1234/pressESPpub100"
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr "para monografías"
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr "para capítulos"
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr "para formatos de publicación"
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr "para archivos"
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr "Ingrese el patrón de sufijo DOI para monografías."
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr "Ingrese el patrón de sufijo DOI para los capítulos."
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr ""
+"Introduzca el modelo de sufijo del DOI para los formatos de publicación."
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr "Ingrese el patrón de sufijo DOI para los archivos."
+
+msgid "doi.manager.settings.doiReassign"
+msgstr "Asignar los DOI de nuevo"
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr ""
+"Si cambia la configuración del DOI, los DOI que ya se han asignado no se "
+"verán afectados. Una vez guardada la configuración del DOI, utilice este "
+"botón para borrar todos los DOI existentes de modo que la nueva "
+"configuración surta efecto con todos los objetos existentes."
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr "¿Seguro que desea eliminar todos los DOI existentes?"
+
+msgid "doi.editor.doi"
+msgstr "Identificador de objeto digital (DOI)"
+
+msgid "doi.editor.doi.description"
+msgstr "El DOI debe empezar con {$prefix}."
+
+msgid "doi.editor.doi.assignDoi"
+msgstr "Asignar"
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr "monografía"
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr "capítulo"
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr "formato de publicación"
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr "archivo"
+
+msgid "doi.editor.customSuffixMissing"
+msgstr "El DOI no se puede asignar porque falta el sufijo personalizado."
+
+msgid "doi.editor.missingParts"
+msgstr ""
+"No puede generar un DOI porque faltan datos en una o más partes del patrón "
+"DOI."
+
+msgid "doi.editor.patternNotResolved"
+msgstr "El DOI no se puede asignar porque contiene un patrón no resuelto."
+
+msgid "doi.editor.canBeAssigned"
+msgstr ""
+"Lo que ve es una vista previa del DOI. Seleccione la casilla de verificación "
+"y guarde el formulario para asignar el DOI."
+
+msgid "doi.editor.assigned"
+msgstr "El DOI es asignado a este {$pubObjectType}."
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr ""
+"El sufijo del DOI suministrado ya se encuentra en uso en otro elemento "
+"publicado. Introduzca un sufjo DOI único para cada elemento."
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr "Limpiar"
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr "¿Seguro que desea eliminar este DOI?"
+
+msgid "doi.editor.assignDoi"
+msgstr "Asignar el DOI {$pubId} a este {$pubObjectType}"
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr "El DOI no se puede asignar porque falta el sufijo personalizado."
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr ""
+"El DOI {$pubId} no puede ser asignado porque contiene un patrón no resuelto."
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr "El DOI {$pubId} ha sido asignado."
+
+msgid "doi.editor.missingPrefix"
+msgstr "El DOI debe empezar con {$doiPrefix}."
+
+msgid "doi.editor.preview.publication"
+msgstr "El DOI para esta publicación será {$doi}."
+
+msgid "doi.editor.preview.publication.none"
+msgstr "No se ha asignado un DOI para esta publicación."
+
+msgid "doi.editor.preview.chapters"
+msgstr "Capítulo: {$title}"
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr "Formato de publicación: {$title}"
+
+msgid "doi.editor.preview.files"
+msgstr "Archivo: {$title}"
+
+msgid "doi.editor.preview.objects"
+msgstr "Elemento"
+
+msgid "doi.manager.submissionDois"
+msgstr "DOI de monografías"
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr ""
+"Este correo electrónico notifica al autor/a que su envío se está remitiendo "
+"a la fase de revisión interna."
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr ""
+"Este correo electrónico notifica al autor/a que su envío está siendo "
+"rechazado antes de ser enviado a revisión, porque no cumple con los "
+"requisitos de publicación de la editorial."
+
+msgid "manager.institutions.noContext"
+msgstr "No se pudo encontrar la editorial de esta institución."
+
+msgid "manager.manageEmails.description"
+msgstr ""
+"Editar los mensajes enviados en correos electrónicos desde esta editorial."
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr "Enviar a revisión interna"
+
+msgid "mailable.indexRequest.name"
+msgstr "Índice requerido"
+
+msgid "mailable.indexComplete.name"
+msgstr "Índice completado"
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr "Nueva versión creada"
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr ""
+"Este correo electrónico notifica automáticamente a los editores/as asignados "
+"cuando se ha creado una nueva versión del envío."
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+"Este correo electrónico se envía a los jefes/as editoriales cuando se "
+"realiza un nuevo envío y no se han asignado cordinadores/as editoriales."
+
+#~ msgid "manager.languages.languageInstructions"
+#~ msgstr ""
+#~ "OMP estará disponible para los usuarios/as en cualquiera de los idiomas "
+#~ "compatibles. Asímismo, OMP puede ejecutarse como un sistema multilingüe, "
+#~ "permitiendo a los usuarios/as cambiar entre idiomas en cada página, e "
+#~ "introducir algunos datos en otros idiomas.
Si un idioma "
+#~ "compatible con OMP no está en la siguiente lista, pida al administrador/a "
+#~ "del sitio que instale el idioma desde la interfaz del administrador/a del "
+#~ "sitio. Si desea más instrucciones sobre cómo añadir compatibilidad para "
+#~ "nuevos idiomas, consulte la documentación de OMP."
+
+#~ msgid "manager.reviewForms"
+#~ msgstr "Formularios de revisión"
+
+#~ msgid "manager.reviewForms.completed"
+#~ msgstr "Completado"
+
+#~ msgid "manager.reviewForms.confirmDeletePublished"
+#~ msgstr "Confirmar la eliminación del formulario de revisión publicado..."
+
+#~ msgid "manager.reviewForms.confirmDeleteUnpublished"
+#~ msgstr "Confirmar la eliminación del formulario de revisión no publicado..."
+
+#~ msgid "manager.reviewForms.create"
+#~ msgstr "Crear formulario de revisión"
+
+#~ msgid "manager.reviewForms.description"
+#~ msgstr "Descripción e indicaciones"
+
+#~ msgid "manager.reviewForms.edit"
+#~ msgstr "Formulario de revisión"
+
+#~ msgid "manager.reviewForms.form.titleRequired"
+#~ msgstr "Se necesita un título para el formulario de revisión."
+
+#~ msgid "manager.reviewForms.inReview"
+#~ msgstr "En revisión"
+
+#~ msgid "manager.reviewForms.list.description"
+#~ msgstr ""
+#~ "Los formularios de evaluación por pares creados aquí se presentarán a los "
+#~ "revisores/as para que los completen, en lugar del formulario por defecto, "
+#~ "que contiene dos cuadros de texto abiertos, el primero \"para el autor/a "
+#~ "y el editor/a\", y el segundo \"para el editor/a\". Los formularios de "
+#~ "revisión pueden designarse para una sección específica de la publicación, "
+#~ "y los editores/as tendrán la opción de elegir qué formulario usar para "
+#~ "asignar la revisión. En todos los casos los editores/as podrán incluir "
+#~ "las revisiones correspondientes a cada autor/a."
+
+#~ msgid "manager.reviewForms.noneChosen"
+#~ msgstr "Ninguno / Revisión de formulario libre"
+
+#~ msgid "manager.reviewForms.noneCreated"
+#~ msgstr "No se ha creado ningún formulario de revisión."
+
+#~ msgid "manager.reviewForms.noneUsed"
+#~ msgstr "No se ha utilizado ningún formulario de revisión."
+
+#~ msgid "manager.reviewForms.preview"
+#~ msgstr "Previsualizar formulario"
+
+#~ msgid "manager.reviewForms.reviewFormData"
+#~ msgstr "Información del formulario de revisión"
+
+#~ msgid "manager.reviewForms.title"
+#~ msgstr "Título"
+
+#~ msgid "manager.reviewFormElement.changeType"
+#~ msgstr "Cambiando el tipo de elementos del formulario..."
+
+#~ msgid "manager.reviewFormElements"
+#~ msgstr "Elementos del formulario"
+
+#~ msgid "manager.reviewFormElements.addResponseItem"
+#~ msgstr "Añadir selección"
+
+#~ msgid "manager.reviewFormElements.checkboxes"
+#~ msgstr "Casillas (puedes elegir más de una)"
+
+#~ msgid "manager.reviewFormElements.chooseType"
+#~ msgstr "Elegir tipo de elemento"
+
+#~ msgid "manager.reviewFormElements.confirmDelete"
+#~ msgstr "Confirmar la eliminación del elemento del formulario publicado..."
+
+#~ msgid "manager.reviewFormElements.copyTo"
+#~ msgstr "Copiar a:"
+
+#~ msgid "manager.reviewFormElements.create"
+#~ msgstr "Crear un nuevo elemento"
+
+#~ msgid "manager.reviewFormElements.dropdownbox"
+#~ msgstr "Menú desplegable"
+
+#~ msgid "manager.reviewFormElements.edit"
+#~ msgstr "Editar elemento del formulario"
+
+#~ msgid "manager.reviewFormElements.elementType"
+#~ msgstr "Tipo de elemento"
+
+#~ msgid "manager.reviewFormElements.form.elementTypeRequired"
+#~ msgstr "Se necesita un tipo de elemento para el elemento del formulario."
+
+#~ msgid "manager.reviewFormElements.form.questionRequired"
+#~ msgstr "Se necesita una pregunta para el elemento del formulario."
+
+#~ msgid "manager.reviewFormElements.noneCreated"
+#~ msgstr "No se ha creado ningún elemento del formulario."
+
+#~ msgid "manager.reviewFormElements.possibleResponse"
+#~ msgstr "Selección"
+
+#~ msgid "manager.reviewFormElements.question"
+#~ msgstr "Elemento"
+
+#~ msgid "manager.reviewFormElements.radiobuttons"
+#~ msgstr "Botones de selección (solo puedes elegir uno)"
+
+#~ msgid "manager.reviewFormElements.required"
+#~ msgstr "Es necesario que los revisores completen el elemento"
+
+#~ msgid "manager.reviewFormElements.smalltextfield"
+#~ msgstr "Cuadro de texto de una sola palabra"
+
+#~ msgid "manager.reviewFormElements.textarea"
+#~ msgstr "Cuadro de texto ampliado"
+
+#~ msgid "manager.reviewFormElements.textfield"
+#~ msgstr "Cuadro de texto de una sola línea"
+
+#~ msgid "manager.reviewFormElements.viewable"
+#~ msgstr "Visible (para autores)"
+
+#~ msgid "manager.series.noSeriesEditors"
+#~ msgstr ""
+#~ "Todavía no hay editores/as de la serie. Añadir antes el rol a al menos un "
+#~ "usuario/a a través de Gestión > Configuración > Usuarios/as y Roles."
+
+#~ msgid "manager.series.noCategories"
+#~ msgstr ""
+#~ "Todavía no hay categorías. Si desea asignar categorías a la serie, cierre "
+#~ "antes este menú, haga clic en la pestaña \"Categorías\" y cree una."
+
+#~ msgid "manager.setup.addContributor"
+#~ msgstr "Añadir colaborador"
+
+#~ msgid "manager.setup.additionalContent"
+#~ msgstr "Contenido adicional"
+
+#~ msgid "manager.setup.additionalContentDescription"
+#~ msgstr ""
+#~ "Añade el contenido siguiente utilizando texto/HTML, que aparecerá a "
+#~ "debajo de la imagen de la página principal, en caso de que se haya subido "
+#~ "alguna."
+
+#~ msgid "manager.setup.alternateHeader"
+#~ msgstr "Cabecera alternativa"
+
+#~ msgid "manager.setup.alternateHeaderDescription"
+#~ msgstr ""
+#~ "En el siguiente cuadro de texto puede insertar una versión HTML del "
+#~ "encabezado, en lugar del título y logotipo. Dejar el cuadro de texto en "
+#~ "blanco si no se necesita."
+
+#~ msgid "manager.setup.authorCopyrightNotice"
+#~ msgstr "Aviso de derechos de autor"
+
+#~ msgid "manager.setup.authorCopyrightNoticeAgree"
+#~ msgstr ""
+#~ "Es necesario que los autores acepten el Aviso de derechos de autor como "
+#~ "parte del proceso de propuesta."
+
+#~ msgid "manager.setup.authorCopyrightNotice.description"
+#~ msgstr ""
+#~ "El aviso de derechos de autor/a que introduzca a continuación aparecerá "
+#~ "en Acerca de la publicación y en los metadatos de todos los elementos "
+#~ "publicados. Aunque la publicación determina la naturaleza del acuerdo con "
+#~ "los autores/as sobre los derechos de autor/a, el Public Knowledge Project "
+#~ "recomienda el uso de la licencia Creative Commons. Para ese fin, se "
+#~ "proporciona una prueba de aviso de derechos de autor/a que puede "
+#~ "cortarse y pegarse en el espacio que hay a continuación para "
+#~ "publicaciones que (a) ofrecen acceso abierto, (b) ofrecen acceso abierto "
+#~ "diferido, o (c) no ofrecen acceso abierto."
+
+#~ msgid "manager.setup.authorGuidelines.description"
+#~ msgstr ""
+#~ "Exponga a los autores/as los estándares bibliográficos y de formato "
+#~ "utilizados para los elementos subidos a la publicación (por ejemplo el "
+#~ "Manual de publicaciones de la American Psychological Association"
+#~ "em>, 5ª edición, 2001). Es útil proporcionar ejemplos de los formatos "
+#~ "comunes de citación para publicaciones y libros que se usarán en los "
+#~ "envíos."
+
+#~ msgid "manager.setup.contributor"
+#~ msgstr "Colaborador"
+
+#~ msgid "manager.setup.contributors"
+#~ msgstr "Fuentes de apoyo"
+
+#~ msgid "manager.setup.contributors.description"
+#~ msgstr ""
+#~ "Las agencias u organizaciones adicionales que proporcionan ayuda "
+#~ "financiera y en especie a la editorial, aparecerán en Acerca de la "
+#~ "editorial y podrán ir acompañadas de una nota de reconocimiento."
+
+#~ msgid "manager.setup.coverageChronExamples"
+#~ msgstr ""
+#~ "(P.ej. renacimiento europeo; periodo jurásico; tercer trimestre; etc.)"
+
+#~ msgid "manager.setup.coverageChronProvideExamples"
+#~ msgstr ""
+#~ "Da ejemplos de términos cronológicos e históricos relevantes para este "
+#~ "campo"
+
+#~ msgid "manager.setup.coverageDescription"
+#~ msgstr ""
+#~ "Se refiere a la localización geoespacial, cobertura cronológica o "
+#~ "histórica, y/o características de la investigación."
+
+#~ msgid "manager.setup.coverageGeoExamples"
+#~ msgstr "(P.ej. península ibérica; estratosfera; bosques boreales; etc.)"
+
+#~ msgid "manager.setup.coverageGeoProvideExamples"
+#~ msgstr "Da ejemplos de términos geoespaciales o geográficos para este campo"
+
+#~ msgid "manager.setup.coverageResearchSampleExamples"
+#~ msgstr "(P.ej. edad; sexo; etnia; etc.)"
+
+#~ msgid "manager.setup.coverageResearchSampleProvideExamples"
+#~ msgstr ""
+#~ "Da ejemplos de características de la muestras de investigación para este "
+#~ "campo."
+
+#~ msgid "manager.setup.doiPrefix"
+#~ msgstr "Prefijo DOI"
+
+#~ msgid "manager.setup.doiPrefixDescription"
+#~ msgstr ""
+#~ "El prefijo DOI (Identificador Digital del Objeto) se asigna mediante Referencia cruzada "
+#~ "y tiene el formato 10.xxxx (p. ej. 10.1234)."
+
+#~ msgid "manager.setup.editorialMembers"
+#~ msgstr ""
+#~ "Ir a Miembros del consejo de redacción y añadir miembros del Consejo "
+#~ "editorial y/o del Consejo de revisión. Esto puede hacerse en cualquier "
+#~ "momento de la ejecución de la publicación."
+
+#~ msgid "manager.setup.editorialProcess1"
+#~ msgstr ""
+#~ "Uno o más coordinadores se encargan de los pasos básicos sin ninguna "
+#~ "función designada."
+
+#~ msgid "manager.setup.editorialProcess2"
+#~ msgstr ""
+#~ "El coordinador jefe se encarga de la lista de la propuesta y la tabla de "
+#~ "contenidos, mientras que los coordinadores de sección se encargan de la "
+#~ "revisión y edición de la propuesta."
+
+#~ msgid "manager.setup.editorialProcess3"
+#~ msgstr ""
+#~ "El coordinador jefe se encarga de la lista de la propuesta, edición de la "
+#~ "propuesta y tabla de contenidos, mientras que los coordinadores de "
+#~ "sección se encargan de la revisión de la propuesta."
+
+#~ msgid "manager.setup.editorialReviewBoard"
+#~ msgstr "Comité de Redacción/ Revisión"
+
+#~ msgid "manager.setup.editorialReviewBoardDescription"
+#~ msgstr ""
+#~ "Las publicaciones disponen de Consejos editoriales que supervisan la "
+#~ "dirección editorial de la publicación, participan en el nombramiento de "
+#~ "editores/as y, gracias a la reputación de los miembros del consejo de "
+#~ "redacción, dan a la publicación prestigio en el campo. Los Consejos de "
+#~ "revisión desempeñan un rol similar pero además, dirigen el proceso de "
+#~ "evaluación por pares. Los miembros del consejo de revisión no tendrán "
+#~ "acceso al sistema administrativo de la página web pero se añadirán a la "
+#~ "lista de participantes en el proceso de evaluación por pares."
+
+#~ msgid "manager.setup.emailSignatureDescription"
+#~ msgstr ""
+#~ "Las plantillas de correo que el sistema envía en nombre de la publicación "
+#~ "tendrán la siguiente firma al final. El cuerpo de las plantillas de "
+#~ "correo podrá editarse a continuación."
+
+#~ msgid "manager.setup.enableUserRegistration.author"
+#~ msgstr "Autores (pueden presentar material a la editorial)"
+
+#~ msgid "manager.setup.enableUserRegistration.reader"
+#~ msgstr ""
+#~ "Lectores (recibirán notificaciones y se considerarán equivalentes a los "
+#~ "suscriptores)"
+
+#~ msgid "manager.setup.enableUserRegistration.reviewer"
+#~ msgstr "Revisores (pueden revisar propuestas)"
+
+#~ msgid "manager.setup.featuredBooks"
+#~ msgstr "Libros destacados"
+
+#~ msgid "manager.setup.inSpotlight"
+#~ msgstr "En primer plano"
+
+#~ msgid "manager.setup.homepageImage"
+#~ msgstr "Imagen página principal"
+
+#~ msgid "manager.setup.homepageImageDescription"
+#~ msgstr ""
+#~ "Añada una imagen o un gráfico en el centro de la página. Si usa la "
+#~ "plantilla y la css por defecto, la anchura máxima de la imagen será de "
+#~ "750 px para la configuración de una barra lateral y de 540 px para la de "
+#~ "dos barras laterales. Si usa una plantilla o una css personalizada, los "
+#~ "valores pueden cambiar."
+
+#~ msgid "manager.setup.mailingAddress.description"
+#~ msgstr "La localización física y la dirección de envío de la editorial."
+
+#~ msgid "manager.setup.newReleases"
+#~ msgstr "Novedades"
+
+#~ msgid "manager.setup.notifications"
+#~ msgstr "Notificación de envío del autor/a"
+
+#~ msgid "manager.setup.notifications.copySpecifiedAddress"
+#~ msgstr "Enviar una copia a esta dirección de correo electrónico:"
+
+#~ msgid "manager.setup.notifications.description"
+#~ msgstr ""
+#~ "Al completar el proceso de envío, se envía automáticamente a los autores/"
+#~ "as un correo electrónico de confirmación (que se puede ver y editar en "
+#~ "Plantillas de correo electrónico). Además se puede enviar una copia del "
+#~ "correo de confirmación como se indica a continuación:"
+
+#~ msgid "manager.setup.openAccess"
+#~ msgstr "La publicación proporcionará acceso abierto al contenido."
+
+#~ msgid "manager.setup.openAccessPolicy"
+#~ msgstr "Política de acceso abierto"
+
+#~ msgid "manager.setup.openAccessPolicy.description"
+#~ msgstr ""
+#~ "Si la editorial proporciona a los lectores/as acceso libre a todo el "
+#~ "contenido publicado, introduzca una política de acceso abierto que "
+#~ "aparecerá en Políticas > Acerca de la publicación."
+
+#~ msgid "manager.setup.peerReview.description"
+#~ msgstr ""
+#~ "Describa la política de evaluación por pares y los procesos para lectores/"
+#~ "as y autores/as, incluyendo el número de revisores/as utilizados "
+#~ "normalmente para revisar los envíos, los criterios que los revisores/as "
+#~ "deben seguir para juzgar los envíos, el tiempo habitual que conllevan las "
+#~ "revisiones y los principios que se siguen a la hora de contratar "
+#~ "revisores/as. Esto aparecerá en Acerca de la publicación."
+
+#~ msgid "manager.setup.pressHomepageHeader"
+#~ msgstr "Encabezado de la página de inicio de la publicación"
+
+#~ msgid "manager.setup.pressHomepageHeader.altText"
+#~ msgstr "Encabezado de la página de inicio de la publicación"
+
+#~ msgid "manager.setup.pressHomepageHeaderDescription"
+#~ msgstr ""
+#~ "Escoja entre un fragmento de texto del nombre de la publicación, o una "
+#~ "versión gráfica del título de la publicación (se aceptan archivos .gif, ."
+#~ "jpg o .png) El encabezado y el logo opcional que lo acompañe solo "
+#~ "aparecerán en la página de inicio de la publicación. El encabezado por "
+#~ "defecto tiene un tamaño de 180 px x 90 px."
+
+#~ msgid "manager.setup.logo"
+#~ msgstr "Logo de la publicación"
+
+#~ msgid "manager.setup.logo.altText"
+#~ msgstr "Logo de la publicación"
+
+#~ msgid "manager.setup.pageFooter"
+#~ msgstr "Pie de página de la publicación"
+
+#~ msgid "manager.setup.pageFooterDescription"
+#~ msgstr ""
+#~ "Este es el pie de página de la publicación. Para cambiar o actualizar el "
+#~ "pie de página, pegue el código HTML en el siguiente cuadro de texto. "
+#~ "Algunos ejemplos pueden ser otra barra de navegación, un contador, etc. "
+#~ "El pie de página aparecerá en todas las páginas."
+
+#~ msgid "manager.setup.principalContact"
+#~ msgstr "Contacto principal"
+
+#~ msgid "manager.setup.principalContactDescription"
+#~ msgstr ""
+#~ "Este cargo, que puede ser tratado como el editor principal, el gestor "
+#~ "editorial, o personal administrativo, se mostrará en la página de inicio "
+#~ "de la editorial bajo Contacto, junto con el contacto de soporte técnico."
+
+#~ msgid "manager.setup.privacyStatement"
+#~ msgstr "Declaración de privacidad"
+
+#~ msgid "manager.setup.privacyStatement2"
+#~ msgstr "Declaración de privacidad"
+
+#~ msgid "manager.setup.privacyStatement.description"
+#~ msgstr ""
+#~ "Esta declaración aparecerá en Acerca de la publicación, así como en las "
+#~ "páginas de Envío y Notificación del autor/a A continuación se incluye una "
+#~ "política de privacidad, que puede revisarse en cualquier momento."
+
+#~ msgid "manager.setup.internalReviewGuidelinesDescription"
+#~ msgstr ""
+#~ "Al igual que las directrices de revisión externa, estas instrucciones "
+#~ "proporcionarán a los revisores/as información sobre la evaluación del "
+#~ "envío. Estas instrucciones son para los revisores/as internos, que "
+#~ "normalmente hacen un proceso de revisión usando revisores/as internos de "
+#~ "la editorial."
+
+#~ msgid "manager.setup.reviewOptions.noteOnModification"
+#~ msgstr ""
+#~ "Los valores por defectos se pueden modificar en cualquier envío durante "
+#~ "el proceso editorial."
+
+#~ msgid "manager.setup.reviewOptions.reviewTime"
+#~ msgstr "Plazo para la revisión"
+
+#~ msgid "manager.setup.sponsors.description"
+#~ msgstr ""
+#~ "El nombre de las organizaciones (p. ej. asociaciones académicas, "
+#~ "departamentos de universidades, cooperativas, etc.) que patrocinan a la "
+#~ "publicación aparecerán en Acerca de la publicación y se acompañarán de "
+#~ "una nota de agradecimiento."
+
+#~ msgid "manager.setup.subjectClassification"
+#~ msgstr "Clasificación por materias"
+
+#~ msgid "manager.setup.subjectClassificationExamples"
+#~ msgstr ""
+#~ "p. ej., MSC (Mathematics Subject Classification, Clasificación de las "
+#~ "matemáticas); LCC (Library of Congress Classification, Clasificación "
+#~ "desarrollada por la Biblioteca del Congreso de EEUU)"
+
+#~ msgid "manager.setup.technicalSupportContact"
+#~ msgstr "Contacto de soporte técnico"
+
+#~ msgid "manager.setup.technicalSupportContactDescription"
+#~ msgstr ""
+#~ "Esta persona aparecerá en la lista de la página de contacto de la "
+#~ "publicación para el uso de editores/as, autores/as y revisores/as, y "
+#~ "deberá estar familiarizado con el sistema desde la perspectiva de todos "
+#~ "los roles. Como el sistema de publicación necesita muy poca asistencia "
+#~ "técnica, esta será considerada como una tarea a tiempo parcial. Se pueden "
+#~ "dar casos como, por ejemplo, cuando los autores/as y revisores/as tienen "
+#~ "dificultades con las instrucciones o formatos de los archivos, o cuando "
+#~ "es necesario asegurar que se realiza regularmente una copia de seguridad "
+#~ "de la publicación en el servidor."
+
+#~ msgid "manager.setup.useImageLogo"
+#~ msgstr "Logo de la publicación"
+
+#~ msgid "manager.setup.useImageLogoDescription"
+#~ msgstr ""
+#~ "Es posible subir un logo de la publicación y usarlo junto al título en "
+#~ "imagen o texto configurado anteriormente."
+
+#~ msgid "manager.setup.registerForIndexing"
+#~ msgstr ""
+#~ "Registrar la publicación para su indexación (recopilación de metadatos)"
+
+#~ msgid "manager.setup.subjectClassificationDescription"
+#~ msgstr ""
+#~ "[La publicación usará un sistema de clasificación de materias disponible "
+#~ "en la web.
Título del sistema de clasificación"
+
+#~ msgid "manager.setup.registerForIndexingDescription"
+#~ msgstr ""
+#~ "Para indexar los contenidos de la publicación dentro de un sistema global "
+#~ "de bases de datos de investigación, registre la URL de su publicación con el "
+#~ "recopilador"
+#~ "a> de metadatos de Public Knowledge Project. La herramienta recoge los "
+#~ "metadatos de cada elemento indexado en la publicación, permitiendo "
+#~ "búsquedas colectivas y adecuadas entre las páginas de investigación que "
+#~ "se acojan al Protocolo de "
+#~ "iniciativa de archivos abiertos para recopilación de metadatos.
Tenga en cuenta que si el administrador/a del sitio ya ha "
+#~ "registrado el sitio con la recopilación PKP, su publicación se indexará "
+#~ "automáticamente y no tendrá que registrar su publicación.
Haga clic "
+#~ "aquí e introduzca {$siteUrl} en "
+#~ "la URL del sitio, y {$oaiUrl}"
+#~ "span> en el archivo de la base URL para OAI.."
+
+#~ msgid "settings.roles.gridDescription"
+#~ msgstr ""
+#~ "Los roles son grupos de usuarios/as de la publicación que tienen acceso a "
+#~ "diferentes niveles de permiso y a flujos de trabajo relacionados en la "
+#~ "publicación. Hay cinco niveles de permiso diferentes: los jefes/as "
+#~ "editoriales tienen acceso a la publicación completa (todo el contenido y "
+#~ "la configuración); los editores/as tienen acceso a todo el contenido "
+#~ "dentro de sus series; los ayudantes de producción tienen acceso a todas "
+#~ "las monografías que un editor/a les ha asignado explícitamente; los "
+#~ "revisores/as pueden ver y realizar las revisiones que se les ha asignado; "
+#~ "y los autores/as pueden ver e interactuar con una cantidad limitada de "
+#~ "información en sus propios envíos. Además, hay cinco fases de tareas "
+#~ "diferentes a las que podrán dar acceso los roles: envío, revisión "
+#~ "interna, revisión externa, edición y producción."
+
+msgid "mailable.layoutComplete.name"
+msgstr "Galeradas completadas"
+
+msgid "emailTemplate.variable.statisticsReportNotify.publicationStatsLink"
+msgstr "El enlace a la página de estadísticas de libros"
+
+msgid "mailable.statisticsReportNotify.description"
+msgstr ""
+"Este correo electrónico se envía automáticamente cada mes a editores y "
+"gerentes de la editorial para proporcionarles una visión general de la salud "
+"del sistema."
+
+msgid "manager.sections.alertDelete"
+msgstr ""
+"Antes de eliminar esta serie, debe mover los envíos asociados a esta serie a "
+"otras series."
+
+msgid "plugins.importexport.common.error.salesRightRequiresTerritory"
+msgstr ""
+"Se ha omitido un registro de derechos de venta porque no tiene asignado "
+"ningún país ni región."
+
+msgid "emailTemplate.variable.context.mailingAddress"
+msgstr "La dirección postal de la editorial"
+
+msgid "emailTemplate.variable.context.contextAcronym"
+msgstr "Las iniciales de la editorial"
diff --git a/locale/es/submission.po b/locale/es/submission.po
new file mode 100644
index 00000000000..ec8c5e21b45
--- /dev/null
+++ b/locale/es/submission.po
@@ -0,0 +1,635 @@
+# pep sanso , 2023.
+# Jordi LC , 2023, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
+"PO-Revision-Date: 2024-04-26 12:34+0000\n"
+"Last-Translator: Jordi LC \n"
+"Language-Team: Spanish \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 "submission.upload.selectComponent"
+msgstr "Seleccionar componente"
+
+msgid "submission.title"
+msgstr "Título de libro"
+
+msgid "submission.select"
+msgstr "Seleccionar propuesta"
+
+msgid "submission.synopsis"
+msgstr "Sinopsis"
+
+msgid "submission.workflowType"
+msgstr "Tipo de libro"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"Una monografía es una obra escrita totalmente por uno o más autores/as. Un "
+"volumen editado tiene diferentes autores/as para cada capítulo (los detalles "
+"de capítulo se introducirán posteriormente durante el proceso)."
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr "Obra colectiva"
+
+msgid "submission.workflowType.editedVolume"
+msgstr "Obra colectiva: los autores/as se asocian con sus propios capítulos."
+
+msgid "submission.workflowType.authoredWork"
+msgstr "Monografía: los autores/as se asocian con el libro completo."
+
+msgid "submission.workflowType.change"
+msgstr "Cambiar"
+
+msgid "submission.editorName"
+msgstr "{$editorName} (ed.)"
+
+msgid "submission.monograph"
+msgstr "Monografía"
+
+msgid "submission.published"
+msgstr "Producción lista"
+
+msgid "submission.fairCopy"
+msgstr "Copia en limpio"
+
+msgid "submission.authorListSeparator"
+msgstr "; "
+
+msgid "submission.artwork.permissions"
+msgstr "Permisos"
+
+msgid "submission.chapter"
+msgstr "Capítulo"
+
+msgid "submission.chapters"
+msgstr "Capítulos"
+
+msgid "submission.chapter.addChapter"
+msgstr "Añadir capítulo"
+
+msgid "submission.chapter.editChapter"
+msgstr "Editar capítulo"
+
+msgid "submission.chapter.pages"
+msgstr "Páginas"
+
+msgid "submission.copyedit"
+msgstr "Corregir el estilo"
+
+msgid "submission.publicationFormats"
+msgstr "Formatos de publicación"
+
+msgid "submission.proofs"
+msgstr "Pruebas"
+
+msgid "submission.download"
+msgstr "Descargar"
+
+msgid "submission.sharing"
+msgstr "Compartir"
+
+msgid "manuscript.submission"
+msgstr "Propuesta de manuscrito"
+
+msgid "submission.round"
+msgstr "Ronda {$round}"
+
+msgid "submissions.queuedReview"
+msgstr "En revisión"
+
+msgid "manuscript.submissions"
+msgstr "Propuestas de manuscritos"
+
+msgid "submission.metadata"
+msgstr "Metadatos"
+
+msgid "submission.supportingAgencies"
+msgstr "Agencias de apoyo"
+
+msgid "grid.action.addChapter"
+msgstr "Crear un nuevo capítulo"
+
+msgid "grid.action.editChapter"
+msgstr "Editar este capítulo"
+
+msgid "grid.action.deleteChapter"
+msgstr "Eliminar este capítulo"
+
+msgid "submission.submit"
+msgstr "Comenzar nueva propuesta"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Comenzar una nueva propuesta para"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr "Nuevo Envío"
+
+msgid "submission.submit.upload"
+msgstr "Cargar envío"
+
+msgid "author.volumeEditor"
+msgstr "Editor/a del volumen"
+
+msgid "author.isVolumeEditor"
+msgstr "Identificar a este contribuidor/a como editor/a de este volumen."
+
+msgid "submission.submit.seriesPosition"
+msgstr ""
+"Lugar que ocupa dentro de esta serie, colección, ... (por ejemplo, Libro 2, "
+"o Volumen 2)"
+
+msgid "submission.submit.seriesPosition.description"
+msgstr "Ejemplos: libro 2, volumen 2"
+
+msgid "submission.submit.privacyStatement"
+msgstr "Declaración de privacidad"
+
+msgid "submission.submit.contributorRole"
+msgstr "Rol del colaborador"
+
+msgid "submission.submit.submissionFile"
+msgstr "Fichero de la propuesta"
+
+msgid "submission.submit.prepare"
+msgstr "Preparar"
+
+msgid "submission.submit.catalog"
+msgstr "Catálogo"
+
+msgid "submission.submit.metadata"
+msgstr "Metadatos"
+
+msgid "submission.submit.finishingUp"
+msgstr "Finalizar"
+
+msgid "submission.submit.confirmation"
+msgstr "Confirmación"
+
+msgid "submission.submit.nextSteps"
+msgstr "Pasos siguientes"
+
+msgid "submission.submit.coverNote"
+msgstr "Nota para el Editor"
+
+msgid "submission.submit.generalInformation"
+msgstr "Información general"
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"El envío se notificó a la editorial y usted recibió un correo electrónico de "
+"confirmación por sus registros. Una vez revisado el envío por el editor/a, "
+"este contactará con usted."
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Lea y marque los elementos en la lista de comprobación del envío. No se "
+"marcaron {$itemsRemaining} elementos."
+
+msgid "submission.submit.placement"
+msgstr "Disposición de la propuesta"
+
+msgid "submission.submit.userGroup"
+msgstr "Realizar propuesta como..."
+
+msgid "submission.submit.noContext"
+msgstr "La publicación del envío no pudo encontrarse."
+
+msgid "grid.chapters.title"
+msgstr "Capítulos"
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Borrar archivo subido del corrector"
+
+msgid "submission.complete"
+msgstr "Aceptado"
+
+msgid "submission.incomplete"
+msgstr "Esperando aceptación"
+
+msgid "submission.editCatalogEntry"
+msgstr "Registro"
+
+msgid "submission.catalogEntry.new"
+msgstr "Nueva entrada de catálogo"
+
+msgid "submission.catalogEntry.add"
+msgstr "Añadir los seleccionados al catálogo"
+
+msgid "submission.catalogEntry.select"
+msgstr "Seleccione monografías a añadir al catálogo"
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr "Debe seleccionar al menos una monografía para añadir al catálogo."
+
+msgid "submission.catalogEntry.confirm"
+msgstr "Añadir este libro al catálogo público"
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr "Confirma que la propuesta está lista para situarse en el catálogo."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr "Esta monografía está lista para incluirse en un catalogo público."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr "Ver envío"
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr "Fechas de publicación"
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr ""
+"Todos los capítulos utilizarán la fecha de publicación del monográfico."
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr "Cada capítulo puede tener su propia fecha de publicación."
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Monografía"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Catálogo"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Formato de publicación"
+
+msgid "submission.event.metadataPublished"
+msgstr "Los metadatos de la monografía se han aprobado para su publicación."
+
+msgid "submission.event.metadataUnpublished"
+msgstr "Los metadatos de la monografía no están ya publicados."
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr ""
+"El formato de publicación \"{$publicationFormatName}\" está disponible."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr ""
+"El formato de publicación \"{$publicationFormatName}\" ya no está disponible."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+"El formato de publicación \"{$publicationFormatName}\" está aprobado para su "
+"publicación."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr ""
+"El formato de publicación \"{$publicationFormatName}\" ya no se publica."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "Se han subido los metadatos del catálogo."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr ""
+"Se actualizaron los metadatos del formato de publicación \"{$formatName}\"."
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "Se creó el formato de publicación \"{$formatName}\"."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "Se eliminó el formato de publicación \"{$formatName}\"."
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr "Enviar para una revisión externa"
+
+msgid "workflow.review.externalReview"
+msgstr "Revisión externa"
+
+msgid "submission.upload.fileContents"
+msgstr "Componente de envío"
+
+msgid "submission.dependentFiles"
+msgstr "Archivos dependientes"
+
+msgid "submission.metadataDescription"
+msgstr ""
+"Estas especificaciones se basan en el conjunto de metadatos Dublin Core, un "
+"estándar internacional usado para describir contenido editorial."
+
+msgid "section.any"
+msgstr "Cualquier serie"
+
+msgid "submission.list.monographs"
+msgstr "Monografías"
+
+msgid "submission.list.countMonographs"
+msgstr "{$count} monografías"
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr "{$count} de {$total} monografías"
+
+msgid "submission.list.orderFeatures"
+msgstr "Ordenar elementos"
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+"Arrastre y suelte o pulse los botones de arriba y abajo para cambiar el "
+"orden de los elementos en la página principal."
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+"Arrastre y suelte o pulse los botones de arriba y abajo para cambiar el "
+"orden de los elementos en {$title}."
+
+msgid "submission.list.saveFeatureOrder"
+msgstr "Guardar orden"
+
+msgid "submission.list.viewEntry"
+msgstr "Ver entrada"
+
+msgid "catalog.browseTitles"
+msgstr "{$numTitles} títulos"
+
+msgid "publication.catalogEntry"
+msgstr "Catálogo"
+
+msgid "publication.catalogEntry.success"
+msgstr "Los detalles de entrada del catálogo han sido actualizados."
+
+msgid "publication.invalidSeries"
+msgstr "Las series para esta publicación no pudieron encontrarse."
+
+msgid "publication.inactiveSeries"
+msgstr "{$series} (Inactivo)"
+
+msgid "publication.required.issue"
+msgstr ""
+"La publicación debe asignarse a un número antes de poder ser publicada."
+
+msgid "publication.publishedIn"
+msgstr "Publicado en {$issueName}."
+
+msgid "publication.publish.confirmation"
+msgstr ""
+"Todos los requisitos de publicación se cumplen. ¿Seguro que desea hacer "
+"pública esta entrada del catálogo?"
+
+msgid "publication.scheduledIn"
+msgstr ""
+"Programado para publicarse en {$issueName}."
+
+msgid "submission.publication"
+msgstr "Publicación"
+
+msgid "publication.status.published"
+msgstr "Publicado"
+
+msgid "submission.status.scheduled"
+msgstr "Programado"
+
+msgid "publication.status.unscheduled"
+msgstr "Desprogramado"
+
+msgid "submission.publications"
+msgstr "Publicaciones"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+"El año de los derechos de autor se ajustará automáticamente cuando se "
+"publique en un número."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+"El año de los derechos de autor se ajustará automáticamente en función de la "
+"fecha de publicación."
+
+msgid "publication.datePublished"
+msgstr "Fecha de publicación"
+
+msgid "publication.editDisabled"
+msgstr "Esta versión ya ha sido publicada y no puede editarse."
+
+msgid "publication.event.published"
+msgstr "El envío fue publicado."
+
+msgid "publication.event.scheduled"
+msgstr "El envío se programó para su publicación."
+
+msgid "publication.event.unpublished"
+msgstr "El envío fue retirado de publicación."
+
+msgid "publication.event.versionPublished"
+msgstr "Se publicó una versión nueva."
+
+msgid "publication.event.versionScheduled"
+msgstr "Se programó una versión nueva para su publicación."
+
+msgid "publication.event.versionUnpublished"
+msgstr "Se eliminó una versión de publicación."
+
+msgid "publication.invalidSubmission"
+msgstr "No se pudo encontrar el envío para esta publicación."
+
+msgid "publication.publish"
+msgstr "Publicar"
+
+msgid "publication.publish.requirements"
+msgstr ""
+"Se deben cumplir los siguientes requisitos antes de que esto pueda ser "
+"publicado."
+
+msgid "publication.required.declined"
+msgstr "Un envío rechazado no puede ser publicado."
+
+msgid "publication.required.reviewStage"
+msgstr ""
+"El envío debe estar en las fases de \"corrección\" o de \"producción\" antes "
+"de poder ser publicado."
+
+msgid "submission.license.description"
+msgstr ""
+"La licencia se ajustará automáticamente a {$licenseName} cuando se publique."
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+"Los derechos de autor se asignarán automáticamente a {$copyright} cuando se "
+"publique."
+
+msgid "submission.copyrightOther.description"
+msgstr ""
+"Asignar derechos de autor para los envíos publicados en la parte siguiente."
+
+msgid "publication.unpublish"
+msgstr "Retirar de publicación"
+
+msgid "publication.unpublish.confirm"
+msgstr "¿Seguro que no quiere que esto sea publicado?"
+
+msgid "publication.unschedule.confirm"
+msgstr "¿Seguro que no quiere que esto se programe para su publicación?"
+
+msgid "publication.version.details"
+msgstr "Detalles de publicación de la versión {$version}"
+
+msgid "submission.queries.production"
+msgstr "Discusiones de producción"
+
+msgid "publication.chapter.landingPage"
+msgstr "Página del capítulo"
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+"Mostrar este capítulo en su propia página y enlazar a esa página desde el "
+"índice del libro."
+
+msgid "publication.publish.success"
+msgstr "El estado de la publicación se modificó con éxito."
+
+msgid "chapter.volume"
+msgstr "Volumen"
+
+msgid "submission.withoutChapter"
+msgstr "{$name} — Sin este capítulo"
+
+msgid "submission.chapterCreated"
+msgstr " — Capítulo creado"
+
+msgid "chapter.pages"
+msgstr "Páginas"
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr "Enviar a revisión interna"
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr "Este envío está listo para remitirse a revisión interna."
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr "{$editorName} ha remitido este envío a la fase de revisión interna."
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr "Enviado a revisión interna"
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+"El envío, {$title}, se ha remitido a la fase de revisión interna. Se ha "
+"notificado al autor/a, a menos que haya decidido omitir el correo "
+"electrónico."
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+"Enviar un correo electrónico a los autores/as para informarlos de que este "
+"envío se remitirá a revisión interna. Si es posible, indique a los autores/"
+"as cuánto tiempo puede durar el proceso de revisión interna y cuándo está "
+"previsto que vuelvan a tener noticias de los editores/as."
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr ""
+"Seleccionar los archivos que deben enviarse a la fase de revisión interna."
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr "{$editorName} remitió este envío a la fase de revisión externa."
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr "Enviado a revisión externa"
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr "El envío, {$title}, se ha remitido a la fase de revisión externa."
+
+msgid "editor.submission.decision.backToReview"
+msgstr "Volver a revisión"
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+"Revertir la decisión de aceptar este envío y devolverlo a la fase de "
+"revisión."
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+"{$editorName} ha revertido la decisión de aceptar este envío y lo ha "
+"devuelto a la fase de revisión."
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr "Devuelto a revisión"
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr "El envío, {$title}, se ha devuelto a la fase de revisión."
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+"Enviar un correo electrónico a los autores/as para informarles de que su "
+"envío ha sido devuelto a la fase de revisión. Explique por qué se ha tomado "
+"esta decisión e informe al autor/a de qué otras revisiones se llevarán a "
+"cabo."
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+"Enviar un correo electrónico a los autores/as para informarles de que este "
+"trabajo se remitirá a la fase de revisión por pares. Si es posible, dé a los "
+"autores/as alguna indicación sobre el tiempo que puede durar el proceso de "
+"revisión por pares y cuándo está previsto que vuelvan a tener noticias de "
+"los editores/as."
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr "Seleccionar los archivos que deberían enviarse a la fase de revisión."
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr "Recomendar el envío a revisión externa"
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr "Recomendar que este envío pase a la fase de revisión externa."
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+"{$editorName} recomendó que este envío pasara a la fase de revisión externa."
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+"No se pudo crear un DOI para el siguiente envío: {$pubObjectTitle}. No "
+"existe en el contexto editorial actual."
+
+msgid "publication.chapter.licenseUrl"
+msgstr "URL de la licencia"
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr "URL predeterminada de la licencia del capítulo"
+
+msgid "submission.copyright.description"
+msgstr ""
+"Lea y acepte los términos de derechos de autoría para los envíos a esta "
+"editorial."
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+"No puede enviar artículos a esta editorial porque los autores/as deben haber "
+"sido registrados por el equipo editorial. Si cree que se trata de un error, "
+"póngase en contacto con {$name}."
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+"{$contextName} no acepta envíos a la colección {$section}. Si necesita ayuda "
+"para recuperar su envío, póngase en contacto con {$name}."
+
+msgid "submission.sectionNotFound"
+msgstr "No se ha podido encontrar la colección de este envío."
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr "Solo el equipo editorial puede hacer envíos a esta colección."
+
+msgid "submission.wizard.submitting.monograph"
+msgstr "Enviando una monografía."
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+"Enviando una monografía en {$language}."
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr "Enviando un volumen editado."
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+"Enviando un volumen editado en {$language}."
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
+"Proporcione todos los capítulos de este envío. Si está enviando un volumen "
+"editado, asegúrese de que en cada capítulo se indican sus colaboradores/as."
diff --git a/locale/es_ES/admin.po b/locale/es_ES/admin.po
deleted file mode 100644
index 0c6676ee4d6..00000000000
--- a/locale/es_ES/admin.po
+++ /dev/null
@@ -1,101 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2020-03-05 10:36+0000\n"
-"Last-Translator: Jordi LC \n"
-"Language-Team: Spanish \n"
-"Language: es_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 "admin.hostedContexts"
-msgstr "Editoriales alojadas"
-
-msgid "admin.settings.redirect"
-msgstr "Redirección de editoriales"
-
-msgid "admin.settings.redirectInstructions"
-msgstr "Las solicitudes de la página principal se redirigirán a esta editorial. Esto puede ser útil si el sitio solo aloja una editorial, por ejemplo."
-
-msgid "admin.settings.noPressRedirect"
-msgstr "No redirigir"
-
-msgid "admin.languages.primaryLocaleInstructions"
-msgstr "Este será el idioma por defecto de la página y de cualquier editorial alojada."
-
-msgid "admin.languages.supportedLocalesInstructions"
-msgstr "Seleccione todas las configuraciones regionales para que sean compatibles con el sitio. Las configuraciones locales seleccionadas estarán disponibles para su uso por todas las editoriales alojadas en el sitio, y también aparecerán en el menú de selección de idioma que figura en cada página del sitio (que puede invalidarse en páginas de editoriales específicas). Si no se seleccionan varias configuraciones locales, el menú de cambio de idioma no aparecerá y la configuración de idioma ampliada no estará disponible para las editoriales."
-
-msgid "admin.locale.maybeIncomplete"
-msgstr "* Los locales marcados están incompletos."
-
-msgid "admin.languages.confirmUninstall"
-msgstr "¿Está seguro/a de que desea desinstalar esta configuración regional? Esto puede afectar a cualquier editorial alojada que esté utilizando actualmente la configuración regional."
-
-msgid "admin.languages.installNewLocalesInstructions"
-msgstr "Seleccione cualquier configuración regional adicional para instalar soporte en este sistema. Las configuraciones regionales deben instalarse antes de que las editoriales alojadas puedan usarlas. Véase la documentación de OMP para obtener información acerca de cómo añadir soporte para nuevos idiomas."
-
-msgid "admin.languages.confirmDisable"
-msgstr "¿Está seguro/a de que desea desactivar esta configuración regional? Esto puede afectar a cualquier editorial alojada que esté utilizando actualmente la configuración regional."
-
-msgid "admin.systemVersion"
-msgstr "Versión OMP"
-
-msgid "admin.systemConfiguration"
-msgstr "Configuración OMP"
-
-msgid "admin.presses.pressSettings"
-msgstr "Ajustes editorial"
-
-msgid "admin.presses.noneCreated"
-msgstr "No se han creado editoriales."
-
-msgid "admin.contexts.confirmDelete"
-msgstr "¿Está seguro/a de que desea eliminar de forma permanente esta editorial y todo su contenido?"
-
-msgid "admin.contexts.create"
-msgstr "Crear editorial"
-
-msgid "admin.contexts.form.titleRequired"
-msgstr "Es necesario introducir el título."
-
-msgid "admin.contexts.form.pathRequired"
-msgstr "Inserte una ruta."
-
-msgid "admin.contexts.form.pathAlphaNumeric"
-msgstr "La ruta sólo puede contener caracteres alfanuméricos, guiones y guiones bajos, y debe empezar y terminar con un carácter alfanumérico."
-
-msgid "admin.contexts.form.pathExists"
-msgstr "La ruta seleccionada ya está siendo utilizada por otra editorial."
-
-msgid "admin.contexts.contextDescription"
-msgstr "Detalles de la editorial"
-
-msgid "admin.presses.addPress"
-msgstr "Añadir editorial"
-
-msgid "admin.overwriteConfigFileInstructions"
-msgstr ""
-"Aviso
\n"
-"El sistema no puede sobrescribir automáticamente el archivo de configuración. Para aplicar los cambios de la configuración es necesario abrir config.inc.php en un editor de texto adecuado y reemplazar su contenido por los del campo de texto que figuran a continuación.
"
-
-msgid "admin.contexts.form.edit.success"
-msgstr "{$name} fue modificado correctamente."
-
-msgid "admin.contexts.form.create.success"
-msgstr "{$name} fue creado correctamente."
-
-msgid "admin.settings.info.success"
-msgstr "La información del sitio se ha actualizado correctamente."
-
-msgid "admin.settings.config.success"
-msgstr "La configuración del sitio se ha actualizado correctamente."
-
-msgid "admin.settings.appearance.success"
-msgstr ""
-"La configuración de apariencia del sitio se ha actualizado correctamente."
diff --git a/locale/es_ES/api.po b/locale/es_ES/api.po
deleted file mode 100644
index 79fb40b6f52..00000000000
--- a/locale/es_ES/api.po
+++ /dev/null
@@ -1,39 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2020-11-30 18:48+0000\n"
-"Last-Translator: Jordi LC \n"
-"Language-Team: Spanish "
-"\n"
-"Language: es_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 "api.submissions.403.contextRequired"
-msgstr ""
-"Para hacer o editar un envío debe hacer una solicitud al terminal API de la "
-"editorial."
-
-msgid "api.submissions.403.cantChangeContext"
-msgstr "No puede cambiar la editorial de un envío."
-
-msgid "api.publications.403.submissionsDidNotMatch"
-msgstr "La publicación que ha solicitado no forma parte de este envío."
-
-msgid "api.publications.403.contextsDidNotMatch"
-msgstr "La publicación que ha solicitado no forma parte de esta editorial."
-
-msgid "api.emailTemplates.403.notAllowedChangeContext"
-msgstr ""
-"No tiene permiso para mover esta plantilla de correo electrónico a otra "
-"editorial."
-
-msgid "api.submissions.400.submissionsNotFound"
-msgstr "No se ha podido encontrar uno o más envíos de los que ha especificado."
-
-msgid "api.submissions.400.submissionIdsRequired"
-msgstr ""
-"Debe proporcionar uno o más identificadores de envío para añadirlos al "
-"catálogo."
diff --git a/locale/es_ES/author.po b/locale/es_ES/author.po
deleted file mode 100644
index d0b472310a3..00000000000
--- a/locale/es_ES/author.po
+++ /dev/null
@@ -1,15 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2020-04-29 11:38+0000\n"
-"Last-Translator: Jordi LC \n"
-"Language-Team: Spanish \n"
-"Language: es_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 "author.submit.notAccepting"
-msgstr "Esta editorial no acepta envíos en este momento."
diff --git a/locale/es_ES/default.po b/locale/es_ES/default.po
deleted file mode 100644
index 2e02da07735..00000000000
--- a/locale/es_ES/default.po
+++ /dev/null
@@ -1,162 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2020-04-16 14:37+0000\n"
-"Last-Translator: Jordi LC \n"
-"Language-Team: Spanish "
-"\n"
-"Language: es_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 "default.genres.appendix"
-msgstr "Apéndice"
-
-msgid "default.genres.bibliography"
-msgstr "Bibliografía"
-
-msgid "default.genres.manuscript"
-msgstr "Manuscrito de libro"
-
-msgid "default.genres.chapter"
-msgstr "Manuscrito de capítulo"
-
-msgid "default.genres.glossary"
-msgstr "Glosario"
-
-msgid "default.genres.index"
-msgstr "Índice"
-
-msgid "default.genres.preface"
-msgstr "Prefacio"
-
-msgid "default.genres.prospectus"
-msgstr "Documento de proyecto"
-
-msgid "default.genres.table"
-msgstr "Tabla"
-
-msgid "default.genres.figure"
-msgstr "Figura"
-
-msgid "default.genres.photo"
-msgstr "Foto"
-
-msgid "default.genres.illustration"
-msgstr "Ilustración"
-
-msgid "default.genres.other"
-msgstr "Otros"
-
-msgid "default.groups.name.editor"
-msgstr "Coordinador editorial"
-
-msgid "default.groups.plural.editor"
-msgstr "Coordinadores editoriales"
-
-msgid "default.groups.abbrev.editor"
-msgstr "CE"
-
-msgid "default.groups.name.sectionEditor"
-msgstr "Coordinador de obra"
-
-msgid "default.groups.plural.sectionEditor"
-msgstr "Coordinadores de obra"
-
-msgid "default.groups.abbrev.sectionEditor"
-msgstr "CO"
-
-msgid "default.groups.name.chapterAuthor"
-msgstr "Autor de capítulo"
-
-msgid "default.groups.plural.chapterAuthor"
-msgstr "Autores de capítulo"
-
-msgid "default.groups.abbrev.chapterAuthor"
-msgstr "AC"
-
-msgid "default.groups.name.volumeEditor"
-msgstr "Coordinador de obra"
-
-msgid "default.groups.plural.volumeEditor"
-msgstr "Coordinadores de obra"
-
-msgid "default.groups.abbrev.volumeEditor"
-msgstr "CO"
-
-msgid "default.contextSettings.checklist.notPreviouslyPublished"
-msgstr "La propuesta no ha sido publicada previamente, ni está bajo consideración de ninguna otra editorial (o se proporciona una explicación en \"Comentarios para la editorial\")."
-
-msgid "default.contextSettings.checklist.fileFormat"
-msgstr "El fichero de la propuesta está en formato Microsoft Word, RTF o OpenDocument."
-
-msgid "default.contextSettings.checklist.addressesLinked"
-msgstr "Se proporcionan las direcciones URLs de las referencias si están disponibles."
-
-msgid "default.contextSettings.checklist.submissionAppearance"
-msgstr ""
-"El texto tiene interlineado simple, se utiliza una fuente de 12 puntos, "
-"cursiva en lugar de subrayado (exceptuando las direcciones URL), y todas las "
-"ilustraciones, figuras y tablas están dentro del texto en los lugares "
-"apropiados en lugar de al final."
-
-msgid "default.contextSettings.checklist.bibliographicRequirements"
-msgstr "El texto se adhiere a los requisitos bibliográficos y de estilo indicados en las Directrices para autores, que se encuentran en Acerca de la editorial."
-
-msgid "default.contextSettings.privacyStatement"
-msgstr "Los nombres y direcciones de correo electrónico introducidos en esta editorial se utilizarán exclusivamente para los fines declarados por la misma y no estarán disponibles para ningún otro propósito ni lugar.
"
-
-msgid "default.contextSettings.openAccessPolicy"
-msgstr "Esta editorial proporciona acceso abierto inmediato a su contenido bajo el principio de que hacer disponible la investigación, abiertamente al público, fomenta un mayor intercambio de conocimiento global."
-
-msgid "default.contextSettings.emailSignature"
-msgstr ""
-"
\n"
-"________________________________________________________________________
\n"
-"{$ldelim}$contextName{$rdelim}"
-
-msgid "default.contextSettings.forReaders"
-msgstr "Los lectores pueden darse de alta en el servicio de notificación de novedades. Para ello, utiliza el enlace de Crear cuenta en la parte superior de la página. Este registro permitirá al lector recibir por correo electrónico la Tabla de Contenidos de cada novedad. Consulta la Declaración de Privacidad de la editorial que asegura a los lectores que su nombre y dirección de correo electrónico no será utilizada para otros fines."
-
-msgid "default.contextSettings.forAuthors"
-msgstr ""
-"¿Le interesa hacer un envío a esta publicación? Le recomendamos que revise "
-"los apartados Acerca de la "
-"publicación, para obtener información sobre las políticas de sección, y <"
-"a href=\"{$indexUrl}/{$contextPath}/about/submissions#authorGuidelines\">"
-"Directrices para autores/as. Los autores/as deben registrarse en la publicación "
-"antes realizar un envío o, si ya están registrados, simplemente iniciar sesión y empezar con el proceso de 5 "
-"pasos."
-
-msgid "default.contextSettings.forLibrarians"
-msgstr ""
-"Animamos a los bibliotecarios/as a listar esta publicación en sus fondos de "
-"publicaciones electrónicas. Además, este sistema de publicación de código "
-"abierto es apropiado para que las bibliotecas lo ofrezcan a sus miembros "
-"involucrados en la edición de publicaciones (ver Open Monograph Press)."
-
-msgid "default.groups.name.manager"
-msgstr "Jefe/a editorial"
-
-msgid "default.groups.plural.manager"
-msgstr "Jefes/as editoriales"
-
-msgid "default.groups.abbrev.manager"
-msgstr "JE"
-
-msgid "default.groups.name.externalReviewer"
-msgstr "Revisor/a externo"
-
-msgid "default.groups.plural.externalReviewer"
-msgstr "Revisores/as externos"
-
-msgid "default.groups.abbrev.externalReviewer"
-msgstr "RE"
diff --git a/locale/es_ES/editor.po b/locale/es_ES/editor.po
deleted file mode 100644
index 6c65370a40c..00000000000
--- a/locale/es_ES/editor.po
+++ /dev/null
@@ -1,197 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2020-11-30 18:48+0000\n"
-"Last-Translator: Jordi LC \n"
-"Language-Team: Spanish \n"
-"Language: es_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 "editor.pressSignoff"
-msgstr "Pulse Cerrar sesión"
-
-msgid "editor.submissionArchive"
-msgstr "Archivo de envíos"
-
-msgid "editor.monograph.cancelReview"
-msgstr "Cancelar solicitud"
-
-msgid "editor.monograph.clearReview"
-msgstr "Eliminar revisor/a"
-
-msgid "editor.monograph.enterRecommendation"
-msgstr "Introducir recomendación"
-
-msgid "editor.monograph.enterReviewerRecommendation"
-msgstr "Introducir recomendación del revisor/a"
-
-msgid "editor.monograph.recommendation"
-msgstr "Recomendación"
-
-msgid "editor.monograph.selectReviewerInstructions"
-msgstr "Seleccione un revisor/a y pulse el botón \"Seleccionar revisor/a\" para continuar."
-
-msgid "editor.submission.selectedReviewer"
-msgstr "Revisor/a seleccionado"
-
-msgid "editor.monograph.replaceReviewer"
-msgstr "Reemplazar revisor/a"
-
-msgid "editor.monograph.editorToEnter"
-msgstr "Recomendaciones/comentarios del editor/a para el revisor/a"
-
-msgid "editor.monograph.uploadReviewForReviewer"
-msgstr "Cargar revisión"
-
-msgid "editor.monograph.peerReviewOptions"
-msgstr "Opciones de evaluación por pares"
-
-msgid "editor.monograph.selectProofreadingFiles"
-msgstr "Corrección de archivos"
-
-msgid "editor.monograph.internalReview"
-msgstr "Iniciar revisión interna"
-
-msgid "editor.monograph.internalReviewDescription"
-msgstr "Está a punto de iniciar una revisión interna para este envío. Los archivos que formen parte de este envío se enumeran abajo y se pueden seleccionar para su revisión."
-
-msgid "editor.monograph.externalReview"
-msgstr "Iniciar revisión externa"
-
-msgid "editor.monograph.final.selectFinalDraftFiles"
-msgstr "Seleccionar los archivos del borrador final"
-
-msgid "editor.monograph.final.currentFiles"
-msgstr "Archivos actuales del borrador final"
-
-msgid "editor.monograph.copyediting.currentFiles"
-msgstr "Archivos actuales"
-
-msgid "editor.monograph.copyediting.personalMessageToUser"
-msgstr "Mensaje al usuario"
-
-msgid "editor.monograph.legend.submissionActions"
-msgstr "Acciones de envío"
-
-msgid "editor.monograph.legend.submissionActionsDescription"
-msgstr "Opciones y acciones generales de envío."
-
-msgid "editor.monograph.legend.sectionActions"
-msgstr "Acciones de sección"
-
-msgid "editor.monograph.legend.sectionActionsDescription"
-msgstr "Opciones específicas de una sección determinada, por ejemplo, cargar archivos o añadir usuarios."
-
-msgid "editor.monograph.legend.itemActions"
-msgstr "Acciones de elemento"
-
-msgid "editor.monograph.legend.itemActionsDescription"
-msgstr "Acciones y opciones específicas de un archivo individual."
-
-msgid "editor.monograph.legend.catalogEntry"
-msgstr "Ver y gestionar la entrada de catálogo del envío, incluso formatos de metadatos y publicación"
-
-msgid "editor.monograph.legend.bookInfo"
-msgstr "Ver y gestionar metadatos, notas, notificaciones y el historial del envío"
-
-msgid "editor.monograph.legend.participants"
-msgstr "Ver y gestionar los participantes de este envío: autores/as, editores/as, diseñadores/as, etc."
-
-msgid "editor.monograph.legend.add"
-msgstr "Cargar un archivo a la sección"
-
-msgid "editor.monograph.legend.add_user"
-msgstr "Añadir un usuario/a a la sección"
-
-msgid "editor.monograph.legend.settings"
-msgstr "Ver y acceder a la configuración de elemento, como información y opciones de eliminación"
-
-msgid "editor.monograph.legend.more_info"
-msgstr "Más información: notas de archivo, opciones de notificación e historial"
-
-msgid "editor.monograph.legend.notes_none"
-msgstr "Información de archivo: notas, opciones de notificación e historial (sin notas todavía)"
-
-msgid "editor.monograph.legend.notes"
-msgstr "Información de archivo: notas, opciones de notificación e historial (con notas)"
-
-msgid "editor.monograph.legend.notes_new"
-msgstr "Información de archivo: notas, opciones de notificación e historial (nuevas notas añadidas desde la última visita)"
-
-msgid "editor.monograph.legend.edit"
-msgstr "Editar elemento"
-
-msgid "editor.monograph.legend.delete"
-msgstr "Eliminar elemento"
-
-msgid "editor.monograph.legend.in_progress"
-msgstr "Acción en curso o incompleta"
-
-msgid "editor.monograph.legend.complete"
-msgstr "Acción completa"
-
-msgid "editor.monograph.legend.uploaded"
-msgstr "Archivo cargado por el rol en el título de la columna de cuadrícula"
-
-msgid "editor.submission.introduction"
-msgstr "Durante el envío, el editor/a, después de consultar los archivos enviados, selecciona la acción adecuada (la cual incluye notificar al autor/a): enviar a revisión interna (implica seleccionar los archivos para la revisión interna), enviar a revisión externa (implica seleccionar los archivos para la revisión externa), aceptar el envío (implica seleccionar los archivos para la fase editorial), o rechazar el envío (envío de archivos)."
-
-msgid "editor.submission.editorial.finalDraftDescription"
-msgstr "Para volúmenes editados con diferentes autores/as por capítulo, el archivo de envío puede dividirse en varios archivos de tamaño de un capítulo cada uno. Éstos se revisan por el autor/a de cada capítulo después de que los archivos corregidos se suban a Corrección de originales."
-
-msgid "editor.monograph.editorial.fairCopy"
-msgstr "Copia en limpio"
-
-msgid "editor.monograph.editorial.fairCopyDescription"
-msgstr "El corrector/a sube una copia original o en limpio del envío para su revisión por el editor/a, antes de enviarla a producción."
-
-msgid "editor.submission.production.introduction"
-msgstr "Durante la producción, el editor/a selecciona formatos del libro (por ejemplo digital, en rústica, etc) en Formatos de publicación, para los cuales el/la maquetista prepara archivos de calidad de publicación basándose en los archivos listos para producción. Los archivos de calidad de publicación se suben para cada formato en Pruebas de página, dónde se revisan. El libro se hace Disponible (i.e., publicado) para cada formato en Formatos de publicación, tras marcar la opción Pruebas como aprobada, y la entrada de Catálogo como incluida en la entrada de catálogo del libro."
-
-msgid "editor.submission.production.productionReadyFilesDescription"
-msgstr "El/la maquetista prepara estos archivos para cada formato de publicación y después los sube a las Pruebas de página correspondientes para su corrección."
-
-msgid "editor.monograph.proofs"
-msgstr "Pruebas"
-
-msgid "editor.monograph.production.approvalAndPublishing"
-msgstr "Aprobación y publicaciones"
-
-msgid "editor.monograph.production.approvalAndPublishingDescription"
-msgstr "Los diferentes formatos de publicación, como tapa dura, tapa blanda y digital, pueden cargarse a la sección Formatos de publicación que se ve a continuación. Se puede usar la cuadrícula de formatos de publicación mostrada a continuación, como una lista de comprobación de lo que todavía queda por hacer para publicar un formato de publicación."
-
-msgid "editor.monograph.production.publicationFormatDescription"
-msgstr "Añadir formatos de publicación (p.ej., digital, en rústica) para los cuales el/la maquetista prepara pruebas de página para su corrección. Las Pruebas deben marcarse como aprobadas y la entrada de Catálogo para el formato debe marcarse como publicada en la entrada de catálogo del libro, antes de que un formato se pueda hacer Disponible (i.e., publicado)."
-
-msgid "editor.monograph.approvedProofs.edit"
-msgstr "Establecer condiciones para la descarga"
-
-msgid "editor.monograph.approvedProofs.edit.linkTitle"
-msgstr "Establecer condiciones"
-
-msgid "editor.monograph.proof.addNote"
-msgstr "Añadir respuesta"
-
-msgid "editor.internalReview.introduction"
-msgstr "Durante la revisión interna, el editor/a asigna revisores/as internos a los archivos de envío y verifica los resultados de la revisión, antes de seleccionar la acción apropiada (la cual incluye notificar al autor/a): solicitar revisiones (revisiones hechas sólo por el editor/a), reenviar para revisión (se inicia otra ronda de revisiones), enviar para revisión externa (implica seleccionar los archivos para la revisión externa), aceptar el envío (implica seleccionar los archivos para la fase editorial), o rechazar el envío (archiva el envío)."
-
-msgid "editor.externalReview.introduction"
-msgstr "Durante la revisión externa, el editor/a asigna revisores/as externos a los archivos de envío y verifica los resultados de la revisión, antes de seleccionar la acción apropiada (la cual incluye notificar al autor/a): solicitar revisiones (revisiones hechas sólo por el editor), reenviar a revisión (se inicia otra ronda de revisiones), aceptar el envío (implica seleccionar los archivos para la fase editorial), o rechazar el envío (el editor/a archiva el envío)."
-
-msgid "editor.submission.proof.manageProofFilesDescription"
-msgstr "Cualquier fichero que ya haya sido subido en cualquier fase del envío puede añadirse al listado \"Ficheros de prueba\" marcando la siguiente casilla \"Añadir\" y pulsando \"Buscar\": todos los ficheros disponibles se listarán y podrán incluirse."
-
-msgid "editor.publicIdentificationExistsForTheSameType"
-msgstr ""
-"El identificador público '{$publicIdentifier}' ya existe para otro objeto "
-"del mismo tipo. Elija identificadores únicos para los objetos del mismo tipo."
-
-msgid "editor.submissions.assignedTo"
-msgstr "Asignado a un editor/a"
diff --git a/locale/es_ES/emails.po b/locale/es_ES/emails.po
deleted file mode 100644
index bb27e3c53be..00000000000
--- a/locale/es_ES/emails.po
+++ /dev/null
@@ -1,862 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-12-03T14:14:06-08:00\n"
-"PO-Revision-Date: 2020-06-20 09:39+0000\n"
-"Last-Translator: Jordi LC \n"
-"Language-Team: Spanish \n"
-"Language: es_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 "emails.notification.subject"
-msgstr "Nueva notificación de {$siteTitle}"
-
-msgid "emails.notification.body"
-msgstr ""
-"Tiene una notificación nueva de {$siteTitle}:
\n"
-"
\n"
-"{$notificationContents}
\n"
-"
\n"
-"Enlace: {$url}
\n"
-"
\n"
-"Esto es un correo electrónico generado automáticamente; no responda a este "
-"mensaje.
\n"
-"{$principalContactSignature}"
-
-msgid "emails.notification.description"
-msgstr "El correo electrónico se envía a los usuarios/as registrados que seleccionaron este tipo de notificación."
-
-msgid "emails.passwordResetConfirm.subject"
-msgstr "Confirmación para restablecer la contraseña"
-
-msgid "emails.passwordResetConfirm.body"
-msgstr ""
-"Se recibió una solicitud para restablecer su contraseña en la página web {$siteTitle}.
\n"
-"
\n"
-"Si no realizó esta solicitud, ignore este correo electrónico y su contraseña no se cambiará. Si desea restablecer su contraseña, haga clic en la dirección URL que aparece debajo.
\n"
-"
\n"
-"Restablecer contraseña: {$url}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordResetConfirm.description"
-msgstr "Este correo electrónico se envía a un usuario/a registrado cuando indica que olvidó su contraseña o cuando no puede iniciar sesión. Proporciona una dirección URL con la que se puede restablecer la contraseña."
-
-msgid "emails.passwordReset.subject"
-msgstr "Restablecer contraseña"
-
-msgid "emails.passwordReset.body"
-msgstr ""
-"La contraseña se restableció con éxito en la página web {$siteTitle}. Recuerde el nombre de usuario/a y contraseña, son necesarios para trabajar en la publicación.
\n"
-"
\n"
-"Nombre de usuario/a: {$username}
\n"
-"Nueva contraseña: {$password}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordReset.description"
-msgstr "Este correo electrónico se envía a un usuario/a registrado cuando se restablece su contraseña con éxito tras seguir el proceso descrito en el correo RESTABLECER_CONTRASEÑA_CONFIRMACIÓN."
-
-msgid "emails.userRegister.subject"
-msgstr "Registro en la publicación"
-
-msgid "emails.userRegister.body"
-msgstr ""
-"{$userFullName}
\n"
-"
\n"
-"Se registró como usuario/a con {$contextName}. En este correo electrónico hemos incluido el nombre de usuario/a y contraseña que necesitará para trabajar con esta publicación a través de su página web. En cualquier momento puede contactarse conmigo para pedir que se le elimine de la lista de usuarios/as.
\n"
-"
\n"
-"Nombre de usuario/a: {$username}
\n"
-"Contraseña: {$password}
\n"
-"
\n"
-"Gracias,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userRegister.description"
-msgstr "Este correo electrónico se envía a un nuevo usuario/a registrado para darle la bienvenida al sistema y proporcionarle un documento con su nombre de usuario/a y contraseña."
-
-msgid "emails.userValidate.subject"
-msgstr "Validar la cuenta"
-
-msgid "emails.userValidate.body"
-msgstr ""
-"{$userFullName}
\n"
-"
\n"
-"Creó una cuenta con {$contextName}, pero antes de empezar a utilizarla es necesario que valide su cuenta de correo electrónico. Para hacerlo, haga clic en el enlace que aparece debajo:
\n"
-"
\n"
-"{$activateUrl}
\n"
-"
\n"
-"Gracias,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userValidate.description"
-msgstr "Este correo electrónico se envía a un nuevo usuario/a registrado para darle la bienvenida al sistema y proporcionarle un documento con su nombre de usuario/a y contraseña."
-
-msgid "emails.reviewerRegister.subject"
-msgstr "Registro como revisor/a con {$contextName}"
-
-msgid "emails.reviewerRegister.body"
-msgstr ""
-"Dada su experiencia, nos hemos tomado la libertad de registrar su nombre en la base de datos de revisores/as para {$contextName}. Esto no implica ningún tipo de compromiso por su parte, simplemente permite que nos pongamos en contacto con usted si tenemos un envío que quizás pueda revisar. Si se le invita a realizar una revisión, tendrá la oportunidad de ver el título y el resumen de dicho trabajo y en todo momento podrá aceptar o rechazar la invitación. Asimismo, puede pedir que se elimine su nombre de la lista de revisores/as.
\n"
-"
\n"
-"Le proporcionamos un nombre de usuario/a y una contraseña que se utilizan para trabajar con la publicación a través de su página web. Si lo desea puede, por ejemplo, actualizar su perfil y sus preferencias de revisión.
\n"
-"
\n"
-"Nombre de usuario/a: {$username}
\n"
-"Contraseña: {$password}
\n"
-"
\n"
-"Gracias,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.reviewerRegister.description"
-msgstr "Este correo electrónico se envía a un nuevo revisor/a registrado para darle la bienvenida al sistema y proporcionarle un documento con su nombre de usuario/a y contraseña."
-
-msgid "emails.publishNotify.subject"
-msgstr "Nuevo libro publicado"
-
-msgid "emails.publishNotify.body"
-msgstr ""
-"Lectores/as:
\n"
-"
\n"
-"{$contextName} acaba de publicar su último libro en {$contextUrl}. Les invitamos a revisar la tabla de contenidos que les proporcionamos y a visitar nuestra página web para ver monografías y elementos de interés.
\n"
-"
\n"
-"Gracias por el interés mostrado en nuestro trabajo,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.publishNotify.description"
-msgstr "Este correo electrónico se envía a los lectores/as registrados a través del enlace \"Notificar a los usuarios/as\" en el área personal del editor/a. Notifica a los lectores/as que se publicó un nuevo libro y les invita a visitar la publicación mediante la URL proporcionada."
-
-msgid "emails.submissionAck.subject"
-msgstr "Acuse de recibo del envío"
-
-msgid "emails.submissionAck.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Gracias por enviar el manuscrito "{$submissionTitle}" a {$contextName}. Con el sistema de gestión de publicaciones en línea que utilizamos podrá seguir el progreso a través del proceso editorial tras iniciar sesión en el sitio web de la publicación:
\n"
-"
\n"
-"URL del manuscrito: {$submissionUrl}
\n"
-"Nombre de usuario/a: {$authorUsername}
\n"
-"
\n"
-"Si tiene alguna duda puede ponerse en contacto conmigo. Gracias por elegir esta editorial para mostrar su trabajo.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAck.description"
-msgstr "Este correo electrónico, si está activado, se envía automáticamente a un autor/a cuando completa el proceso de envío de un manuscrito a la editorial. Proporciona información sobre el seguimiento del envío en el proceso y agradece al autor/a el envío."
-
-msgid "emails.submissionAckNotUser.subject"
-msgstr "Acuse de recibo del envío"
-
-msgid "emails.submissionAckNotUser.body"
-msgstr ""
-"Hola:
\n"
-"
\n"
-"{$submitterName} envió el manuscrito "{$submissionTitle}" a {$contextName}.
\n"
-"
\n"
-"Si tiene alguna duda, puede ponerse en contacto conmigo. Gracias por elegir esta editorial para mostrar su trabajo.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAckNotUser.description"
-msgstr "Este correo electrónico, si está activado, se envía automáticamente a otros autores/as que no son usuarios/as de OMP según lo especificado en el proceso de envío."
-
-msgid "emails.editorAssign.subject"
-msgstr "Tarea editorial"
-
-msgid "emails.editorAssign.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"El envío "{$submissionTitle}" a {$contextName} se le asignó para llevar a cabo el proceso editorial en calidad de editor/a.
\n"
-"
\n"
-"URL de envío: {$submissionUrl}
\n"
-"Nombre de usuario/a: {$editorUsername}
\n"
-"
\n"
-"Gracias,"
-
-msgid "emails.editorAssign.description"
-msgstr "Este correo electrónico notifica al editor/a de la serie que el editor/a le asignó la tarea de supervisar un envío a lo largo del proceso de edición. Proporciona información sobre el envío y sobre cómo acceder al sitio de la publicación."
-
-msgid "emails.reviewRequest.subject"
-msgstr "Solicitud de revisión de manuscrito"
-
-msgid "emails.reviewRequest.body"
-msgstr ""
-"Estimado/a {$reviewerName}:
\n"
-"
\n"
-"{$messageToReviewer}
\n"
-"
\n"
-"Inicie sesión en el sitio web de la publicación antes del {$responseDueDate} para indicar si llevará o no a cabo la revisión, así como para acceder al envío y registrar su revisión y recomendación.
\n"
-"
\n"
-"La revisión debe estar preparada antes del {$reviewDueDate}.
\n"
-"
\n"
-"Dirección URL de envío: {$submissionReviewUrl}
\n"
-"
\n"
-"Nombre de usuario/a: {$reviewerUserName}
\n"
-"
\n"
-"Gracias por considerar esta solicitud.
\n"
-"
\n"
-"
\n"
-"Un saludo cordial,
\n"
-"{$editorialContactSignature}
\n"
-""
-
-msgid "emails.reviewRequest.description"
-msgstr ""
-"Este correo electrónico del editor/a de la serie para el revisor/a solicita "
-"que el revisor/a acepte o rechace la tarea de revisión de un envío. "
-"Proporciona información sobre el envío, como el título y el resumen, una "
-"fecha límite de revisión y cómo acceder al propio envío. Este mensaje se "
-"utiliza cuando se selecciona el proceso de revisión estándar en Gestión > "
-"Ajustes > Flujo de trabajo > Revisión. (Si no consulte "
-"REVIEW_REQUEST_ATTACHED.)"
-
-msgid "emails.reviewRequestOneclick.subject"
-msgstr "Solicitud de revisión de manuscrito"
-
-msgid "emails.reviewRequestOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Creo que puede ser un excelente revisor/a para el manuscrito "{$submissionTitle}" que se envió a {$contextName}. El resumen del envío se incluye debajo. Espero que considere llevar a cabo esta importante tarea para nosotros.
\n"
-"
\n"
-"Inicie sesión en la página web de la publicación antes del {$weekLaterDate} para indicar si podrá o no realizar la revisión, así como para acceder al envío y registrar su revisión y recomendación.
\n"
-"
\n"
-"La revisión debe estar preparada antes del {$reviewDueDate}.
\n"
-"
\n"
-"Dirección URL del envío: {$submissionReviewUrl}
\n"
-"
\n"
-"Gracias por considerar esta solicitud.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$submissionAbstract}"
-
-msgid "emails.reviewRequestOneclick.description"
-msgstr "El editor/a de la serie envía este correo electrónico al revisor/a para solicitar a este último que acepte o rechace la tarea de revisión de un envío. Proporciona información sobre el envío, como el título y el resumen, una fecha límite para la revisión y cómo acceder al propio envío. Este mensaje se emplea cuando se selecciona el proceso de revisión estándar en Gestión > Configuración > Circuito de publicación > Revisión y el acceso al revisor/a con un solo clic está habilitado."
-
-msgid "emails.reviewRequestAttached.subject"
-msgstr "Solicitud de revisión de manuscrito"
-
-msgid "emails.reviewRequestAttached.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Creo que puede ser un excelente revisor/a para el manuscrito "{$submissionTitle}" , por ese motivo le pido que considere llevar a cabo esta importante tarea para nosotros. Las indicaciones para la revisión de la publicación se incluyen más abajo y el envío se adjunta al presente correo electrónico. Debe mandarme por correo electrónico la revisión que haga del envío, junto con su recomendación, antes del {$reviewDueDate}.
\n"
-"
\n"
-"Indique mediante un correo electrónico antes del {$weekLaterDate} si puede y desea realizar la revisión.
\n"
-"
\n"
-"Gracias por considerar la solicitud.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"Directrices para la revisión
\n"
-"
\n"
-"{$reviewGuidelines}
\n"
-""
-
-msgid "emails.reviewRequestAttached.description"
-msgstr ""
-"El editor/a de la serie envía este correo electrónico al revisor/a para "
-"solicitarle que acepte o rechace la tarea de revisión de un envío. Incluye "
-"el envío como archivo adjunto. Este mensaje se utiliza cuando se selecciona "
-"el proceso de revisión mediante archivos adjuntos a los correos electrónicos "
-"en Gestión > Ajustes > Flujo de trabajo > Revisión. (Si no consulte "
-"REVIEW_REQUEST.)"
-
-msgid "emails.reviewCancel.subject"
-msgstr "Solicitud de revisión cancelada"
-
-msgid "emails.reviewCancel.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Hemos decidido cancelar nuestra solicitud de que usted revise el envío "{$submissionTitle}" para {$contextName}. Pedimos disculpas por cualquier inconveniente que esta decisión pueda causar y esperamos poder contar con usted para participar en este proceso de revisión en el futuro.
\n"
-"
\n"
-"Si tiene alguna duda, puede ponerse en contacto conmigo."
-
-msgid "emails.reviewCancel.description"
-msgstr "El editor/a de la serie envía este correo al revisor/a que inició el proceso de revisión de un envío para notificarle que el mismo se canceló."
-
-msgid "emails.reviewConfirm.subject"
-msgstr "Disponible para revisar"
-
-msgid "emails.reviewConfirm.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Estoy disponible y puedo revisar el envío "{$submissionTitle}" para {$contextName}. Gracias por pensar en mí. Tengo previsto completar la revisión en la fecha establecida, el {$reviewDueDate}, o antes.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewConfirm.description"
-msgstr "El revisor/a envía este correo electrónico al editor/a de la serie como respuesta a la solicitud de revisión para notificar al editor/a de la serie que la solicitud se aceptó y que la revisión estará terminada en el plazo especificado."
-
-msgid "emails.reviewDecline.subject"
-msgstr "No disponible para revisar"
-
-msgid "emails.reviewDecline.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Me temo que en este momento no puedo revisar el envío "{$submissionTitle}" para {$contextName}. Gracias por pensar en mí, pueden contar conmigo en futuras ocasiones.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewDecline.description"
-msgstr "El revisor/a envía este correo electrónico al editor/a de la serie como respuesta a una solicitud de revisión para notificar al editor/a de la serie que la petición se rechazó."
-
-msgid "emails.reviewComplete.subject"
-msgstr "Revisión del manuscrito completada"
-
-msgid "emails.reviewComplete.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"He completado la revisión de "{$submissionTitle}" para {$contextName} y enviado la recomendación "{$recommendation}".
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewComplete.description"
-msgstr "El revisor/a envía este correo electrónico al editor/a de la serie para notificarle que la revisión se completó y que los comentarios y recomendaciones se registraron en la página web de la publicación."
-
-msgid "emails.reviewAck.subject"
-msgstr "Acuse de recibo de la revisión del manuscrito"
-
-msgid "emails.reviewAck.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Gracias por completar la revisión del envío "{$submissionTitle}" para {$contextName}. Agradecemos su aportación a la calidad de los trabajos que publicamos."
-
-msgid "emails.reviewAck.description"
-msgstr "El editor/a de la serie envía este correo electrónico para confirmar la recepción de una revisión completada y dar las gracias al revisor/a por su contribución."
-
-msgid "emails.reviewRemind.subject"
-msgstr "Recordatorio de revisión del envío"
-
-msgid "emails.reviewRemind.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Este es un pequeño recordatorio de que realizamos una solicitud para que revisara el envío "{$submissionTitle}" para {$contextName}. Esperábamos que la revisión estuviera lista para el {$reviewDueDate} y nos complacería recibirla tan pronto como la tenga preparada.
\n"
-"
\n"
-"En caso de no tener nombre de usuario/a y contraseña para la página web, puede usar este enlace para restablecer su contraseña (posteriormente se le enviará por correo electrónico junto con el nombre de usuario/a). {$passwordResetUrl}
\n"
-"
\n"
-"URL del envío: {$submissionReviewUrl}
\n"
-"
\n"
-"Nombre de usuario/a: {$reviewerUserName}
\n"
-"
\n"
-"Confirme que puede completar esta fundamental contribución al trabajo de la editorial. Espero tener noticias suyas.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemind.description"
-msgstr "El editor/a de la serie envía este correo electrónico para recordar al revisor/a que finaliza el plazo de revisión."
-
-msgid "emails.reviewRemindOneclick.subject"
-msgstr "Recordatorio de revisión del envío"
-
-msgid "emails.reviewRemindOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Este es un pequeño recordatorio de que realizamos una solicitud para que revisara el envío "{$submissionTitle}" para {$contextName}. Esperábamos que la revisión estuviera lista para el {$reviewDueDate} y nos complacería recibirla tan pronto como la tenga preparada.
\n"
-"
\n"
-"URL del envío: {$submissionReviewUrl}
\n"
-"
\n"
-"Confirme que puede completar esta contribución fundamental al trabajo de la editorial. Espero tener noticias suyas.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindOneclick.description"
-msgstr "El editor/a de la serie envía este correo electrónico para recordar al revisor/a que finaliza el plazo de revisión."
-
-msgid "emails.reviewRemindAuto.subject"
-msgstr "Recordatorio automatizado de revisión del envío"
-
-msgid "emails.reviewRemindAuto.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Esto es un amable recordatorio de la solicitud de revisión que le hicimos "
-"del envío "{$submissionTitle}," para {$contextName}. Esperábamos "
-"que la revisión estuviera lista el {$reviewDueDate}. Este correo electrónico "
-"se ha generado y enviado automáticamente porque se ha sobrepasado dicha "
-"fecha. Aun así, todavía nos complacería recibirla tan pronto como pueda "
-"tenerla lista.
\n"
-"
\n"
-"En caso de no tener nombre de usuario/a y contraseña para la página web, "
-"puede usar este enlace para restablecer su contraseña (posteriormente se le "
-"enviará por correo electrónico junto con su nombre de usuario/a). "
-"{$passwordResetUrl}
\n"
-"
\n"
-"URL del envío: {$submissionReviewUrl}
\n"
-"
\n"
-"Nombre de usuario/a: {$reviewerUserName}
\n"
-"
\n"
-"Por favor, confírmenos su disponibilidad para completar esta fundamental "
-"contribución para el trabajo de la publicación. Esperamos tener noticias "
-"suyas.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAuto.description"
-msgstr "Este correo electrónico se envía automáticamente cuando se supera el plazo indicado al revisor/a (véase Opciones de revisión en Gestión > Configuración > Circuito de publicación > Revisión) y el acceso al revisor/a con un solo clic está deshabilitado. Las tareas programadas se deben habilitar y configurar (véase el archivo de configuración del sitio)."
-
-msgid "emails.reviewRemindAutoOneclick.subject"
-msgstr "Recordatorio automatizado de revisión del envío"
-
-msgid "emails.reviewRemindAutoOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Este es un pequeño recordatorio de que realizamos una solicitud para que revisara el envío "{$submissionTitle}" para {$contextName}. Esperábamos que la revisión estuviera lista para el {$reviewDueDate}. Este correo electrónico se genera y envía automáticamente cuando se supera el plazo establecido. Aun así, nos complacería recibirla tan pronto como la tenga preparada.
\n"
-"
\n"
-"URL del envío: {$submissionReviewUrl}
\n"
-"
\n"
-"Confirme que puede completar esta contribución fundamental al trabajo de la editorial. Espero tener noticias suyas.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAutoOneclick.description"
-msgstr "Este correo se envía automáticamente cuando se supera el plazo indicado al revisor/a (véase Opciones de revisión en Gestión > Configuración > Circuito de publicación > Revisión) y el acceso al revisor/a con un solo clic está habilitado. Las tareas programadas se deben habilitar y configurar (véase el archivo de configuración del sitio)."
-
-msgid "emails.editorDecisionAccept.subject"
-msgstr "Decisión del coordinador"
-
-msgid "emails.editorDecisionAccept.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Hemos tomado una decisión con respecto al envío que realizó a {$contextName}"
-", "{$submissionTitle}".
\n"
-"
\n"
-"Nuestra decisión es:
\n"
-"
\n"
-"URL del manuscrito: {$submissionUrl}"
-
-msgid "emails.editorDecisionAccept.description"
-msgstr "El editor/a o el editor/a de la serie envía este correo electrónico a un autor/a para notificar la decisión final con respecto a su envío."
-
-msgid "emails.editorDecisionSendToExternal.subject"
-msgstr "Decisión del coordinador"
-
-msgid "emails.editorDecisionSendToExternal.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Hemos tomado una decisión con respecto al envío que realizó a {$contextName}"
-", "{$submissionTitle}".
\n"
-"
\n"
-"Nuestra decisión es:
\n"
-"
\n"
-"URL del manuscrito: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToExternal.description"
-msgstr "El editor/a o el editor/a de la serie envía este correo electrónico a un autor/a para notificar la remisión de su envío a una revisión externa."
-
-msgid "emails.editorDecisionSendToProduction.subject"
-msgstr "Decisión del coordinador"
-
-msgid "emails.editorDecisionSendToProduction.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"La edición de su manuscrito, "{$submissionTitle}," se ha "
-"completado. Procedemos ahora a enviarlo a producción.
\n"
-"
\n"
-"URL del manuscrito: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToProduction.description"
-msgstr "El editor/a o el editor/a de la serie envía este correo electrónico a un autor/a para notificar la remisión de su envío para producción."
-
-msgid "emails.editorDecisionRevisions.subject"
-msgstr "Decisión del coordinador"
-
-msgid "emails.editorDecisionRevisions.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Hemos tomado una decisión con respecto al envío que realizó a {$contextName}"
-", "{$submissionTitle}".
\n"
-"
\n"
-"Nuestra decisión es:
\n"
-"
\n"
-"URL del manuscrito: {$submissionUrl}"
-
-msgid "emails.editorDecisionRevisions.description"
-msgstr "El editor/a o el editor/a de la serie envía este correo electrónico a un autor/a para notificar la decisión final con respecto a su envío."
-
-msgid "emails.editorDecisionResubmit.subject"
-msgstr "Decisión del coordinador"
-
-msgid "emails.editorDecisionResubmit.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Hemos tomado una decisión con respecto al envío que realizó a {$contextName}"
-", "{$submissionTitle}".
\n"
-"
\n"
-"Nuestra decisión es:
\n"
-"
\n"
-"URL del manuscrito: {$submissionUrl}"
-
-msgid "emails.editorDecisionResubmit.description"
-msgstr "El editor/a o el editor/a de la serie envía este correo electrónico a un autor/a para notificar la decisión final con respecto a su envío."
-
-msgid "emails.editorDecisionDecline.subject"
-msgstr "Decisión del coordinador"
-
-msgid "emails.editorDecisionDecline.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Hemos tomado una decisión con respecto al envío que realizó a {$contextName}"
-", "{$submissionTitle}".
\n"
-"
\n"
-"Nuestra decisión es:
\n"
-"
\n"
-"URL del manuscrito: {$submissionUrl}"
-
-msgid "emails.editorDecisionDecline.description"
-msgstr "El editor/a o el editor/a de la serie envía este correo electrónico a un autor/a para notificar la decisión final con respecto a su envío."
-
-msgid "emails.copyeditRequest.subject"
-msgstr "Solicitud de corrección de originales"
-
-msgid "emails.copyeditRequest.body"
-msgstr ""
-"{$copyeditorName}:
\n"
-"
\n"
-"Solicito que realice la corrección del original "{$submissionTitle}" para {$contextName} siguiendo los siguientes pasos.
\n"
-"1. Haga clic en la URL del envío que aparece debajo.
\n"
-"2. Inicie sesión en la publicación y haga clic en el archivo que aparece en el paso 1.
\n"
-"3. Consulte las Instrucciones de corrección publicadas en la página web.
\n"
-"4. Abra el archivo descargado, corríjalo y añada consultas al autor/a si es necesario.
\n"
-"5. Guarde el archivo corregido y súbalo al paso 1 de corrección.
\n"
-"6. Envíe el correo electrónico COMPLETO al editor/a.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"URL del envío: {$submissionCopyeditingUrl}
\n"
-"Nombre de usuario/a: {$copyeditorUsername}"
-
-msgid "emails.copyeditRequest.description"
-msgstr "El editor/a de la serie envía este correo electrónico al corrector/a del envío para solicitar que se inicie el proceso de corrección. Proporciona información sobre el envío y cómo acceder al mismo."
-
-msgid "emails.layoutRequest.subject"
-msgstr "Solicitud de galeradas"
-
-msgid "emails.layoutRequest.body"
-msgstr ""
-"{$layoutEditorName}:
\n"
-"
\n"
-"Es necesario extraer galeradas del envío "{$submissionTitle}" a {$contextName} siguiendo los siguientes pasos.
\n"
-"1. Haga clic en la URL del envío que aparece debajo.
\n"
-"2. Inicie sesión en la publicación y use el archivo Versión para maquetar para crear las galeradas según los estándares de publicación.
\n"
-"3. Envíe el correo electrónico COMPLETO al editor/a.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"URL del envío: {$submissionUrl}
\n"
-"Nombre de usuario/a: {$layoutEditorUsername}
\n"
-"
\n"
-"Si no puede realizar esta tarea en este momento o tiene alguna duda, póngase en contacto conmigo. Gracias por su contribución a la publicación."
-
-msgid "emails.layoutRequest.description"
-msgstr "El editor/a de la serie envía este correo electrónico al maquetador/a para notificar que se les asignó la tarea de llevar a cabo la maquetación de un envío. Proporciona información sobre el envío y cómo acceder al mismo."
-
-msgid "emails.layoutComplete.subject"
-msgstr "Galeradas de maquetación completadas"
-
-msgid "emails.layoutComplete.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Las galeradas para el manuscrito "{$submissionTitle}" para {$contextName} están preparadas y listas para la corrección de pruebas.
\n"
-"
\n"
-"Si tiene alguna duda, puede ponerse en contacto conmigo.
\n"
-"
\n"
-"{$signatureFullName}"
-
-msgid "emails.layoutComplete.description"
-msgstr "El maquetador/a envía este correo electrónico al editor/a de la serie para notificar que el proceso de maquetación se completó."
-
-msgid "emails.indexRequest.subject"
-msgstr "Solicitud de índice"
-
-msgid "emails.indexRequest.body"
-msgstr ""
-"{$indexerName}:
\n"
-"
\n"
-"Es necesario crear índices al envío "{$submissionTitle}" a {$contextName} siguiendo los siguientes pasos.
\n"
-"1. Haga clic en la URL del envío que aparece debajo.
\n"
-"2. Inicie sesión en la publicación y use el fichero Galeradas de la página para crear galeradas según los estándares de publicación.
\n"
-"3. Envíe el correo electrónico COMPLETO al editor/a.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"URL del envío: {$submissionUrl}
\n"
-"Nombre de usuario/a: {$indexerUsername}
\n"
-"
\n"
-"Si no puede realizar esta tarea en este momento o tiene alguna duda, póngase en contacto conmigo. Gracias por su contribución a la publicación.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.indexRequest.description"
-msgstr "El editor/a de la serie envía este correo electrónico al indexador/a para notificar que se les asignó la tarea de creación de índices para un envío. Proporciona información sobre el envío y cómo acceder al mismo."
-
-msgid "emails.indexComplete.subject"
-msgstr "Galeradas de índice completadas"
-
-msgid "emails.indexComplete.body"
-msgstr ""
-"{$editorialContactName}:
\n"
-"
\n"
-"Los índices para el manuscrito "{$submissionTitle}" para {$contextName} están preparados y listos para la corrección de pruebas.
\n"
-"
\n"
-"Si tiene alguna duda, puede ponerse en contacto conmigo.
\n"
-"
\n"
-"{$signatureFullName}"
-
-msgid "emails.indexComplete.description"
-msgstr "El indexador/a envía este correo electrónico al editor/a de la serie para notificar que el proceso de creación de índices se completó."
-
-msgid "emails.emailLink.subject"
-msgstr "Manuscrito de posible interés"
-
-msgid "emails.emailLink.body"
-msgstr "Quizá le interese consultar "{$submissionTitle}" de {$authorName} publicado en el vol. {$volume}, n.º {$number} ({$year}) de {$contextName} en "{$monographUrl}"."
-
-msgid "emails.emailLink.description"
-msgstr "Esta plantilla de correo electrónico da al lector/a registrado la oportunidad de enviar información sobre una monografía a alguien que pueda estar interesado. Está disponible en las Herramientas de lectura y debe ser habilitada por el jefe/a editorial en la página de Administración de herramientas de lectura."
-
-msgid "emails.notifySubmission.subject"
-msgstr "Notificación de envío"
-
-msgid "emails.notifySubmission.body"
-msgstr ""
-"Tiene un mensaje de {$sender} en relación con "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
-"
\n"
-"\t\t{$message}
\n"
-"
\n"
-"\t\t"
-
-msgid "emails.notifySubmission.description"
-msgstr "Notificación de un usuario/a enviada desde un centro de información sobre envíos."
-
-msgid "emails.notifyFile.subject"
-msgstr "Notificación de envío de fichero"
-
-msgid "emails.notifyFile.body"
-msgstr ""
-"Tiene un mensaje de {$sender} en relación con el fichero "{$fileName}" en "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
-"
\n"
-"\t\t{$message}
\n"
-"
\n"
-"\t\t"
-
-msgid "emails.notifyFile.description"
-msgstr "Notificación de un usuario/a enviada desde un centro de información sobre archivos"
-
-msgid "emails.notificationCenterDefault.subject"
-msgstr "Mensaje sobre {$contextName}"
-
-msgid "emails.notificationCenterDefault.body"
-msgstr "Introduzca su mensaje."
-
-msgid "emails.notificationCenterDefault.description"
-msgstr "El mensaje por defecto (en blanco) usado en el Creador de listas de mensajes del Centro de notificación."
-
-msgid "emails.statisticsReportNotification.description"
-msgstr ""
-"Este correo electrónico se envía automáticamente cada mes a los editores/as "
-"y gestores/as de revistas para proporcionarles una visión general del estado "
-"de salud del sistema."
-
-msgid "emails.statisticsReportNotification.subject"
-msgstr "Actividad editorial del {$month}, {$year}"
-
-msgid "emails.editorDecisionInitialDecline.description"
-msgstr ""
-"Este correo electrónico se envía al autor si el editor rechaza inicialmente "
-"su presentación, antes de la etapa de revisión"
-
-msgid "emails.editorDecisionInitialDecline.subject"
-msgstr "Decisión del editor/a"
-
-msgid "emails.editorRecommendation.subject"
-msgstr "Recomendación del editor/a"
-
-msgid "emails.reviewReinstate.subject"
-msgstr "Solicitud de revisión restablecida"
-
-msgid "emails.reviewRequestRemindAutoOneclick.subject"
-msgstr "Solicitud de revisión del manuscrito"
-
-msgid "emails.reviewRequestRemindAuto.subject"
-msgstr "Solicitud de revisión del manuscrito"
-
-msgid "emails.editorRecommendation.description"
-msgstr ""
-"Este correo electrónico del Editor o Editor de Sección recomendando a los "
-"Editores o Editores de Sección a quienes se les notifica una recomendación "
-"final con respecto a la presentación."
-
-msgid "emails.reviewReinstate.description"
-msgstr ""
-"Este correo electrónico es enviado por el Editor de Sección a un Revisor que "
-"tiene una revisión en curso para notificarle que la revisión ha sido "
-"cancelada."
-
-msgid "emails.reviewRequestRemindAutoOneclick.description"
-msgstr ""
-"Este correo electrónico se envía automáticamente cuando transcurre la fecha "
-"de vencimiento de la confirmación de un revisor (consulte Opciones de "
-"revisión en Configuración > Flujo de trabajo > Revisión) y se habilita el "
-"acceso de revisor con un solo clic. Las tareas programadas deben estar "
-"habilitadas y configuradas (consulte el archivo de configuración del sitio)."
-
-msgid "emails.reviewRequestRemindAuto.description"
-msgstr ""
-"Este correo electrónico se envía automáticamente cuando transcurre la fecha "
-"de vencimiento de la confirmación de un revisor (consulte Opciones de "
-"revisión en Configuración > Flujo de trabajo > Revisar) y el acceso del "
-"revisor con un solo clic está deshabilitado. Las tareas programadas deben "
-"estar habilitadas y configuradas (consulte el archivo de configuración del "
-"sitio)."
-
-msgid "emails.reviewRequestRemindAuto.body"
-msgstr ""
-"Estimado/a {$reviewerName},
\n"
-"Sólo un sutil recordatorio de nuestra solicitud de la revisión de su "
-"presentación, "{$submissionTitle}," para {$contextName}. Esperamos "
-"tener una respuesta para el {$responseDueDate}, y este correo electrónico "
-"ha sido generado y enviado automáticamente en tanto dicha fecha ya ha "
-"transcurrido.\n"
-"
\n"
-"{$messageToReviewer}
\n"
-"
\n"
-"Inicie sesión en el sitio web de la editorial para indicar si realizará la "
-"revisión o no, así como para acceder a la presentación y registrar su "
-"revisión y recomendación..
\n"
-"
\n"
-"La revisión en sí misma está prevista para el día {$reviewDueDate}.
\n"
-"
\n"
-"URL del envío: {$submissionReviewUrl}
\n"
-"
\n"
-"Nombre de usuario: {$reviewerUserName}
\n"
-"
\n"
-"Gracias por considerar esta solicitud.
\n"
-"
\n"
-"
\n"
-"Sinceramente,
\n"
-"{$editorialContactSignature}
\n"
-
-msgid "emails.editorRecommendation.body"
-msgstr ""
-"{$editors}:
\n"
-"
\n"
-"La recomendación respecto a la presentación {$contextName}, "
-""{$submissionTitle}" es: {$recommendation}"
-
-msgid "emails.reviewReinstate.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Nos gustaría restablecer la solicitud que le hicimos para revisar la "
-"presentación, "{$submissionTitle}," para {$contextName}. Esperamos "
-"que nos pueda ayudar en este proceso de revisión de la publicación.
\n"
-"
\n"
-"Si tiene cualquier pregunta no dude en contactarme."
-
-msgid "emails.reviewRequestRemindAutoOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"Le recordamos nuestra petición acerca de la revisión del envío "
-""{$submissionTitle}," para {$contextName}. Esperamos tener esta "
-"revisión como muy tarde para el {$responseDueDate}, por lo cual este correo "
-"electrónico se ha generado automáticamente y se ha enviado una vez pasada "
-"dicha fecha.\n"
-"
\n"
-"El resumen del envío se ha insertado a continuación. Creemos que sería un "
-"excelente revisor para este artículo, por lo que esperamos que reconsidere "
-"llevar a cabo esta importante tarea para nosotros.
\n"
-"
\n"
-"Por favor, ingrese en la página web de la publicación para indicar si "
-"realizará o no la revisión; y en caso afirmativo, para acceder al envío y "
-"registrar su revisión y su recomendación.
\n"
-"
\n"
-"La fecha límite para la revisión es el {$reviewDueDate}.
\n"
-"
\n"
-"URL de la propuesta: {$submissionReviewUrl}
\n"
-"
\n"
-"Gracias por considerar esta propuesta.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$submissionAbstract}"
-
-msgid "emails.statisticsReportNotification.body"
-msgstr ""
-"\n"
-"{$name},
\n"
-"
\n"
-"El informe editorial al {$month}, {$year} ya está disponible. Las "
-"estadísticas fundamentales del mes son las siguientes.
\n"
-"\n"
-"\t- Nuevas contribuciones del mes: {$newSubmissions}
\n"
-"\t- Contribuciones rechazadas del mes: {$declinedSubmissions}
\n"
-"\t- Contribuciones aceptadas del mes: {$acceptedSubmissions}
\n"
-"\t- Contribuciones totales al sistema: {$totalSubmissions}
\n"
-"
\n"
-"Inicie sesión para obtener mayores detalles de sus tendencias editoriales y estadísticas de artículos publicados. Se "
-"adjunta una copia completa de este informe correspondiente a este mes.
"
-"\n"
-"
\n"
-"Sinceramente,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.editorDecisionInitialDecline.body"
-msgstr ""
-"\n"
-"\t\t\t{$authorName}:
\n"
-"
\n"
-"Hemos llegado a una decisión respecto de su presentación {$contextName}, "
-""{$submissionTitle}".
\n"
-"
\n"
-"Nuestra decisión es: rechazar la presentación
\n"
-"
\n"
-"URL del manuscripto: {$submissionUrl}\n"
-"\t\t"
-
-msgid "emails.announcement.description"
-msgstr "Este correo electrónico se envía cuando se crea un aviso nuevo."
-
-msgid "emails.announcement.body"
-msgstr ""
-"{$title}
\n"
-"
\n"
-"{$summary}
\n"
-"
\n"
-"Visite nuestra página web para leer el aviso completo."
-
-msgid "emails.announcement.subject"
-msgstr "{$title}"
diff --git a/locale/es_ES/locale.po b/locale/es_ES/locale.po
deleted file mode 100644
index 3e14ff59be5..00000000000
--- a/locale/es_ES/locale.po
+++ /dev/null
@@ -1,1599 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2020-11-30 18:48+0000\n"
-"Last-Translator: Jordi LC \n"
-"Language-Team: Spanish \n"
-"Language: es_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 "monograph.audience"
-msgstr "Tipo de lector"
-
-msgid "monograph.coverImage"
-msgstr "Imagen de portada"
-
-msgid "monograph.coverImage.uploadInstructions"
-msgstr "Asegúrate de que la altura de la imagen no sea más grande que el 150% de su anchura. De lo contrario el carrusel no mostrará toda la portada."
-
-msgid "monograph.audience.rangeQualifier"
-msgstr "Calificador de la variedad de lector"
-
-msgid "monograph.audience.rangeFrom"
-msgstr "Variedad de lector (de)"
-
-msgid "monograph.audience.rangeTo"
-msgstr "Variedad de lector (a)"
-
-msgid "monograph.audience.rangeExact"
-msgstr "Variedad de lector (exacto)"
-
-msgid "monograph.languages"
-msgstr "Idiomas (español, inglés, francés)"
-
-msgid "monograph.publicationFormats"
-msgstr "Formatos de publicación"
-
-msgid "monograph.carousel.publicationFormats"
-msgstr "Formatos:"
-
-msgid "monograph.type"
-msgstr "Tipo de propuesta"
-
-msgid "submission.pageProofs"
-msgstr "Galeradas"
-
-msgid "monograph.proofReadingDescription"
-msgstr "El maquetador/a sube aquí los archivos listos para producción que se prepararon para publicar. Utilice +Asignar para designar a los autores/as y a otras personas que harán la corrección de pruebas de las galeradas con los archivos corregidos y subidos para su aprobación antes de publicarse."
-
-msgid "monograph.task.addNote"
-msgstr "Añadir a tarea"
-
-msgid "monograph.accessLogoOpen.altText"
-msgstr "Acceso abierto"
-
-msgid "monograph.publicationFormat.imprint"
-msgstr "Imprimir (nombre de marca)"
-
-msgid "monograph.publicationFormat.pageCounts"
-msgstr "Número de páginas"
-
-msgid "monograph.publicationFormat.frontMatterCount"
-msgstr "Prólogo"
-
-msgid "monograph.publicationFormat.backMatterCount"
-msgstr "Epílogo"
-
-msgid "monograph.publicationFormat.productComposition"
-msgstr "Composición del producto"
-
-msgid "monograph.publicationFormat.productFormDetailCode"
-msgstr "Detalle del producto (opcional)"
-
-msgid "monograph.publicationFormat.productIdentifierType"
-msgstr "Identificación del producto"
-
-msgid "monograph.publicationFormat.price"
-msgstr "Precio"
-
-msgid "monograph.publicationFormat.priceRequired"
-msgstr "Se necesita un precio."
-
-msgid "monograph.publicationFormat.priceType"
-msgstr "Tipo de precio"
-
-msgid "monograph.publicationFormat.discountAmount"
-msgstr "Porcentaje de descuento, si es aplicable"
-
-msgid "monograph.publicationFormat.productAvailability"
-msgstr "Disponibilidad del producto"
-
-msgid "monograph.publicationFormat.returnInformation"
-msgstr "Indicador de devoluciones"
-
-msgid "monograph.publicationFormat.digitalInformation"
-msgstr "Información digital"
-
-msgid "monograph.publicationFormat.productDimensions"
-msgstr "Dimensiones físicas"
-
-msgid "monograph.publicationFormat.productFileSize"
-msgstr "Tamaño del fichero en MB"
-
-msgid "monograph.publicationFormat.productFileSize.override"
-msgstr "¿Deseas introducir un valor personalizado para el tamaño del fichero?"
-
-msgid "monograph.publicationFormat.productHeight"
-msgstr "Altura"
-
-msgid "monograph.publicationFormat.productThickness"
-msgstr "Grosor"
-
-msgid "monograph.publicationFormat.productWeight"
-msgstr "Peso"
-
-msgid "monograph.publicationFormat.productWidth"
-msgstr "Anchura"
-
-msgid "monograph.publicationFormat.countryOfManufacture"
-msgstr "País de fabricación"
-
-msgid "monograph.publicationFormat.technicalProtection"
-msgstr "Protección técnica digital"
-
-msgid "monograph.publicationFormat.productRegion"
-msgstr "Región de distribución del producto"
-
-msgid "monograph.publicationFormat.taxRate"
-msgstr "Tipo impositivo"
-
-msgid "monograph.publicationFormat.taxType"
-msgstr "Tipo de impuesto"
-
-msgid "monograph.publicationFormat.isApproved"
-msgstr "Incluir los metadatos de este formato de publicación en la entrada de catálogo de este libro."
-
-msgid "monograph.publicationFormat.noMarketsAssigned"
-msgstr "Ausencia de mercados y precios."
-
-msgid "monograph.publicationFormat.noCodesAssigned"
-msgstr "Ausencia de código de identificación."
-
-msgid "monograph.publicationFormat.missingONIXFields"
-msgstr "Ausencia de varios campos de metadatos."
-
-msgid "monograph.publicationFormat.formatDoesNotExist"
-msgstr "El formato de publicación escogido para la monografía ya no existe.
"
-
-msgid "monograph.publicationFormat.openTab"
-msgstr "Pestaña de formato de publicación abierta."
-
-msgid "grid.catalogEntry.publicationFormatType"
-msgstr "Formato de publicación"
-
-msgid "grid.catalogEntry.nameRequired"
-msgstr "Se necesita un nombre."
-
-msgid "grid.catalogEntry.validPriceRequired"
-msgstr "Se requiere un precio válido."
-
-msgid "grid.catalogEntry.publicationFormatDetails"
-msgstr "Detalles de formato"
-
-msgid "grid.catalogEntry.physicalFormat"
-msgstr "Formato físico"
-
-msgid "grid.catalogEntry.monographRequired"
-msgstr "Se requiere una identificación de la monografía."
-
-msgid "grid.catalogEntry.publicationFormatRequired"
-msgstr "Debe elegirse un formato de publicación."
-
-msgid "grid.catalogEntry.isAvailable"
-msgstr "Disponible"
-
-msgid "grid.catalogEntry.proof"
-msgstr "Prueba"
-
-msgid "grid.catalogEntry.availablePublicationFormat.title"
-msgstr "Aprobación de formato"
-
-msgid "grid.catalogEntry.availablePublicationFormat.message"
-msgstr "El formato estará disponible para los lectores/as mediante archivos descargables que se encontrarán junto a la entrada de catálogo del libro y mediante otras opciones que la editorial ofrezca para distribuir el libro.
"
-
-msgid "grid.catalogEntry.availablePublicationFormat.removeMessage"
-msgstr "El formato ya no estará disponible para los lectores/as mediante archivos descargables que antes se encontraban junto a la entrada de catálogo del libro ni mediante otras opciones que la editorial ofrezca para distribuir el libro.
"
-
-msgid "grid.catalogEntry.availablePublicationFormat.catalogNotApprovedWarning"
-msgstr "Entrada de catálogo no aprobada."
-
-msgid "grid.catalogEntry.availablePublicationFormat.notApprovedWarning"
-msgstr "Formato no en entrada de catálogo"
-
-msgid "grid.catalogEntry.availablePublicationFormat.proofNotApproved"
-msgstr "Prueba no aprobada."
-
-msgid "grid.catalogEntry.fileSizeRequired"
-msgstr "Se requiere un tamaño de archivo para formatos digitales."
-
-msgid "grid.catalogEntry.productAvailabilityRequired"
-msgstr "Se requiere un código de disponibilidad del producto."
-
-msgid "grid.catalogEntry.productCompositionRequired"
-msgstr "Se debe elegir un código de composición del producto."
-
-msgid "grid.catalogEntry.identificationCodeValue"
-msgstr "Valor de código"
-
-msgid "grid.catalogEntry.identificationCodeType"
-msgstr "Tipo de código ONIX"
-
-msgid "grid.catalogEntry.codeRequired"
-msgstr "Especifique un código."
-
-msgid "grid.catalogEntry.valueRequired"
-msgstr "Se requiere un valor."
-
-msgid "grid.catalogEntry.salesRights"
-msgstr "Derechos de venta"
-
-msgid "grid.catalogEntry.salesRightsValue"
-msgstr "Valor de código"
-
-msgid "grid.catalogEntry.salesRightsType"
-msgstr "Tipo de derechos de venta"
-
-msgid "grid.catalogEntry.salesRightsROW"
-msgstr "¿Resto del mundo?"
-
-msgid "grid.catalogEntry.salesRightsROW.tip"
-msgstr "Marque la casilla para utilizar la entrada de Derechos de venta como filtro para formato. En este caso no es necesario elegir países ni regiones."
-
-msgid "grid.catalogEntry.oneROWPerFormat"
-msgstr "Ya existe un tipo de ventas RDM definido para este formato de publicación."
-
-msgid "grid.catalogEntry.countries"
-msgstr "Países"
-
-msgid "grid.catalogEntry.regions"
-msgstr "Regiones"
-
-msgid "grid.catalogEntry.included"
-msgstr "Incluidos"
-
-msgid "grid.catalogEntry.excluded"
-msgstr "Excluidos"
-
-msgid "grid.catalogEntry.markets"
-msgstr "Territorios de mercado"
-
-msgid "grid.catalogEntry.marketTerritory"
-msgstr "Territorio"
-
-msgid "grid.catalogEntry.publicationDates"
-msgstr "Fechas de publicación"
-
-msgid "grid.catalogEntry.roleRequired"
-msgstr "Especifique un rol del representante."
-
-msgid "grid.catalogEntry.dateFormatRequired"
-msgstr "Se requiere formato de fecha."
-
-msgid "grid.catalogEntry.dateValue"
-msgstr "Fecha"
-
-msgid "grid.catalogEntry.dateRole"
-msgstr "Rol"
-
-msgid "grid.catalogEntry.dateFormat"
-msgstr "Formato de fecha"
-
-msgid "grid.catalogEntry.dateRequired"
-msgstr "Se requiere fecha y el valor de la fecha debe corresponder con el formato de fecha elegido."
-
-msgid "grid.catalogEntry.representatives"
-msgstr "Representantes"
-
-msgid "grid.catalogEntry.representativeType"
-msgstr "Tipo de representante"
-
-msgid "grid.catalogEntry.agentsCategory"
-msgstr "Agentes"
-
-msgid "grid.catalogEntry.suppliersCategory"
-msgstr "Proveedores"
-
-msgid "grid.catalogEntry.agent"
-msgstr "Agente"
-
-msgid "grid.catalogEntry.agentTip"
-msgstr "Puede asignar a un agente para que le represente en el territorio definido. No se necesita."
-
-msgid "grid.catalogEntry.supplier"
-msgstr "Proveedor"
-
-msgid "grid.catalogEntry.representativeRoleChoice"
-msgstr "Elegir una función:"
-
-msgid "grid.catalogEntry.representativeRole"
-msgstr "Rol"
-
-msgid "grid.catalogEntry.representativeName"
-msgstr "Nombre"
-
-msgid "grid.catalogEntry.representativePhone"
-msgstr "Teléfono"
-
-msgid "grid.catalogEntry.representativeFax"
-msgstr "Fax"
-
-msgid "grid.catalogEntry.representativeEmail"
-msgstr "Dirección de correo electrónico"
-
-msgid "grid.catalogEntry.representativeWebsite"
-msgstr "Página web"
-
-msgid "grid.catalogEntry.representativeIdValue"
-msgstr "Identificación del representante"
-
-msgid "grid.catalogEntry.representativeIdType"
-msgstr "Tipo de identificación del representante ( GLN recomendado)"
-
-msgid "grid.catalogEntry.representativesDescription"
-msgstr "Puedes dejar vacía la siguiente sección si proporcionas tus propios servicios a tus clientes."
-
-msgid "grid.action.addRepresentative"
-msgstr "Añadir representante"
-
-msgid "grid.action.editRepresentative"
-msgstr "Editar este representante"
-
-msgid "grid.action.deleteRepresentative"
-msgstr "Borrar este representante"
-
-msgid "spotlight.spotlights"
-msgstr "Destacados"
-
-msgid "spotlight.noneExist"
-msgstr "No existen destacados actualmente."
-
-msgid "spotlight.title.homePage"
-msgstr "En primer plano"
-
-msgid "spotlight.author"
-msgstr "Autor, "
-
-msgid "grid.content.spotlights.spotlightItemTitle"
-msgstr "Elemento destacado"
-
-msgid "grid.content.spotlights.category.homepage"
-msgstr "Página de inicio"
-
-msgid "grid.content.spotlights.category.sidebar"
-msgstr "Barra lateral"
-
-msgid "grid.content.spotlights.form.location"
-msgstr "Localización destacada"
-
-msgid "grid.content.spotlights.form.item"
-msgstr "Introducir título destacado (autocompletar)"
-
-msgid "grid.content.spotlights.form.title"
-msgstr "Título destacado"
-
-msgid "grid.content.spotlights.form.type.book"
-msgstr "Libro"
-
-msgid "grid.content.spotlights.itemRequired"
-msgstr "Se necesita un elemento."
-
-msgid "grid.content.spotlights.titleRequired"
-msgstr "Se necesita un título destacado."
-
-msgid "grid.content.spotlights.locationRequired"
-msgstr "Elige una localización para este destacado."
-
-msgid "grid.action.editSpotlight"
-msgstr "Editar este destacado"
-
-msgid "grid.action.deleteSpotlight"
-msgstr "Borrar este destacado"
-
-msgid "grid.action.addSpotlight"
-msgstr "Añadir destacado"
-
-msgid "manager.series.open"
-msgstr "Propuestas abiertas"
-
-msgid "manager.series.indexed"
-msgstr "Indizado"
-
-msgid "grid.libraryFiles.column.files"
-msgstr "Archivos"
-
-msgid "grid.action.catalogEntry"
-msgstr "Ver registro en el catálogo"
-
-msgid "grid.action.formatInCatalogEntry"
-msgstr "El formato aparece en el catálogo"
-
-msgid "grid.action.editFormat"
-msgstr "Editar este formato"
-
-msgid "grid.action.deleteFormat"
-msgstr "Borrar este formato"
-
-msgid "grid.action.addFormat"
-msgstr "Añadir formato de publicación"
-
-msgid "grid.action.approveProof"
-msgstr "Aprobar la prueba para la indexación e inclusión en el catálogo"
-
-msgid "grid.action.pageProofApproved"
-msgstr "La página prueba que el fichero está listo para su publicación"
-
-msgid "grid.action.addAnnouncement"
-msgstr "Añadir aviso"
-
-msgid "grid.action.newCatalogEntry"
-msgstr "Nueva entrada de catálogo"
-
-msgid "grid.action.publicCatalog"
-msgstr "Ver elemento en el catálogo"
-
-msgid "grid.action.feature"
-msgstr "Cambiar visualización de características"
-
-msgid "grid.action.featureMonograph"
-msgstr "Destacar en el carrusel"
-
-msgid "grid.action.releaseMonograph"
-msgstr "Marcar la propuesta como \"novedad\""
-
-msgid "grid.action.manageCategories"
-msgstr "Configurar categorías para la edición"
-
-msgid "grid.action.manageSeries"
-msgstr "Configurar series para la edición"
-
-msgid "grid.action.editApprovedProof"
-msgstr "Editar esta prueba aprobada"
-
-msgid "grid.action.addCode"
-msgstr "Añadir código"
-
-msgid "grid.action.editCode"
-msgstr "Editar código"
-
-msgid "grid.action.deleteCode"
-msgstr "Borrar código"
-
-msgid "grid.action.addRights"
-msgstr "Añadir derechos de venta"
-
-msgid "grid.action.editRights"
-msgstr "Edit derechos"
-
-msgid "grid.action.deleteRights"
-msgstr "Borrar estos derechos"
-
-msgid "grid.action.addMarket"
-msgstr "Añadir mercado"
-
-msgid "grid.action.editMarket"
-msgstr "Editar este mercado"
-
-msgid "grid.action.deleteMarket"
-msgstr "Borrar este mercado"
-
-msgid "grid.action.addDate"
-msgstr "Añadir fecha de publicación"
-
-msgid "grid.action.editDate"
-msgstr "Editar esta fecha"
-
-msgid "grid.action.deleteDate"
-msgstr "Borrar esta fecha"
-
-msgid "grid.action.createContext"
-msgstr "Crear nueva publicación"
-
-msgid "grid.action.publicationFormatTab"
-msgstr "Mostrar la pestaña de formato de publicación"
-
-msgid "grid.action.moreAnnouncements"
-msgstr "Ir a página de comunicados de prensa"
-
-msgid "grid.action.submissionEmail"
-msgstr "Hacer clic para leer el correo electrónico"
-
-msgid "grid.action.approveProofs"
-msgstr "Ver cuadrícula de las pruebas"
-
-msgid "grid.action.proofApproved"
-msgstr "Se ha comprobado el formato"
-
-msgid "grid.action.availablePublicationFormat"
-msgstr "Aprobar / no aprobar este formato"
-
-msgid "grid.action.formatAvailable"
-msgstr "El formato está disponible y publicado"
-
-msgid "grid.reviewAttachments.add"
-msgstr "Añadir archivo a la revisión"
-
-msgid "grid.reviewAttachments.availableFiles"
-msgstr "Ficheros disponibles"
-
-msgid "series.series"
-msgstr "Colección"
-
-msgid "series.featured"
-msgstr "Presentados"
-
-msgid "series.featured.description"
-msgstr "Esta colección aparecerá en la navegación principal"
-
-msgid "series.path"
-msgstr "Ruta"
-
-msgid "catalog.manage"
-msgstr "Gestión del catálogo"
-
-msgid "catalog.manage.homepage"
-msgstr "Página de inicio"
-
-msgid "catalog.manage.newReleases"
-msgstr "Novedades"
-
-msgid "catalog.manage.category"
-msgstr "Categorías"
-
-msgid "catalog.manage.series"
-msgstr "Colección"
-
-msgid "catalog.manage.managementIntroduction"
-msgstr "Bienvenido/a a la gestión del catálogo. Desde esta página puede publicar nuevas entradas de catálogo; revisar y configurar la lista de libros destacados, la lista de novedades y los libros por categoría y colección."
-
-msgid "catalog.selectSeries"
-msgstr "Seleccionar colección"
-
-msgid "catalog.selectCategory"
-msgstr "Seleccionar categoría"
-
-msgid "catalog.manage.entryDescription"
-msgstr "Para citar un libro en el catálogo, seleccione la pestaña Monografía y complete la información necesaria. La información sobre todos los formatos del libro se puede incluir en la entrada del catálogo seleccionando la pestaña de formato. Las especificaciones de los metadatos se basan en ONIX for Books, un estándar internacional que utilizan las editoriales para publicar la información del producto."
-
-msgid "catalog.manage.spotlightDescription"
-msgstr "Tres destacados (por ejemplo, como Libro Destacado) pueden aparecer en la página de inicio, con título, imagen, y texto."
-
-msgid "catalog.manage.homepageDescription"
-msgstr "La imagen de portada de los libros seleccionados aparece en la parte superior de la página de inicio como un conjunto desplazable. Haga clic en \"Destacar\" y después en la estrella para añadir el libro al visor. Haga clic en el signo de exclamación para marcarlo como novedad y arrastre y suelte para ordenarlo."
-
-msgid "catalog.manage.categoryDescription"
-msgstr "Haz clic en \"destacar\"; después haz clic en la estrella para seleccionar un libro destacado para esta categoría; arrastra y y suelta para ordenar."
-
-msgid "catalog.manage.seriesDescription"
-msgstr "Haga clic en \"Destacar\" y después en la estrella para seleccionar un libro destacado de la colección; arrastre y suelte para ordenarlo. La colección se identifica con un título de editor/as y de serie, dentro de una categoría o independientemente."
-
-msgid "catalog.manage.placeIntoCarousel"
-msgstr "Carrusel"
-
-msgid "catalog.manage.newRelease"
-msgstr "Publicación"
-
-msgid "catalog.manage.manageSeries"
-msgstr "Gestionar colecciones"
-
-msgid "catalog.manage.manageCategories"
-msgstr "Gestionar categorías"
-
-msgid "catalog.manage.noMonographs"
-msgstr "No existen monografías asignadas."
-
-msgid "catalog.feature"
-msgstr "Destacar"
-
-msgid "catalog.featuredBooks"
-msgstr "Libros destacados"
-
-msgid "catalog.dateAdded"
-msgstr "Añadido"
-
-msgid "catalog.publicationInfo"
-msgstr "Información de publicación"
-
-msgid "catalog.relatedCategories"
-msgstr "Categorías relacionadas"
-
-msgid "catalog.aboutTheAuthor"
-msgstr "Acerca de {$roleName}"
-
-msgid "catalog.noBioInfo"
-msgstr "Ninguna biografía disponible actualmente."
-
-msgid "catalog.loginRequiredForPayment"
-msgstr "Nota: Para comprar elementos, es necesario iniciar sesión. Al seleccionar un elemento para comprarlo, será redirigido a la página de inicio de sesión. Se pueden descargar gratis todos los elementos marcados con el icono Acceso abierto sin necesidad de iniciar sesión."
-
-msgid "common.prefix"
-msgstr "Prefijo"
-
-msgid "common.preview"
-msgstr "Previsualizar"
-
-msgid "common.feature"
-msgstr "Destacar"
-
-msgid "common.searchCatalog"
-msgstr "Buscar aquí"
-
-msgid "common.moreInfo"
-msgstr "Más información"
-
-msgid "common.plusMore"
-msgstr "+ Más"
-
-msgid "common.listbuilder.completeForm"
-msgstr "Rellene todo el formulario."
-
-msgid "common.listbuilder.selectValidOption"
-msgstr "Seleccione una opción válida de la lista."
-
-msgid "common.listbuilder.itemExists"
-msgstr "No puede añadir el mismo elemento dos veces."
-
-msgid "common.catalogInformation"
-msgstr "La información de catálogo no necesita completarse en una propuesta inicial de la obra, a excepción de Título y Resumen."
-
-msgid "common.prefixAndTitle.tip"
-msgstr "Si el título del libro comienza con \"Un/a\" o \"El/La/Los/Las\" (o algo similar que no deba incluirse por orden alfabético) añade la palabra como prefijo."
-
-msgid "common.software"
-msgstr "Open Monograph Press"
-
-msgid "common.omp"
-msgstr "OMP"
-
-msgid "common.homePageHeader.altText"
-msgstr "Cabecera de inicio"
-
-msgid "navigation.catalog"
-msgstr "Catálogo"
-
-msgid "navigation.competingInterestPolicy"
-msgstr "Política de conflicto de intereses"
-
-msgid "navigation.catalog.manage"
-msgstr "Administrar"
-
-msgid "navigation.catalog.administration.short"
-msgstr "Administración"
-
-msgid "navigation.catalog.administration"
-msgstr "Administración del catálogo"
-
-msgid "navigation.catalog.administration.categories"
-msgstr "Categorías"
-
-msgid "navigation.catalog.administration.series"
-msgstr "Colección"
-
-msgid "navigation.infoForAuthors"
-msgstr "Para autores"
-
-msgid "navigation.infoForLibrarians"
-msgstr "Para bibliotecarios"
-
-msgid "navigation.infoForAuthors.long"
-msgstr "Información para autores"
-
-msgid "navigation.infoForLibrarians.long"
-msgstr "Información para bibliotecas"
-
-msgid "navigation.newReleases"
-msgstr "Novedades"
-
-msgid "navigation.published"
-msgstr "Publicado"
-
-msgid "navigation.wizard"
-msgstr "Asistente"
-
-msgid "navigation.linksAndMedia"
-msgstr "Enlaces y redes sociales"
-
-msgid "context.contexts"
-msgstr "Editoriales"
-
-msgid "context.context"
-msgstr "Editorial"
-
-msgid "context.select"
-msgstr "Cambiar a otra editorial:"
-
-msgid "user.noRoles.selectUsersWithoutRoles"
-msgstr "Incluir usuarios/as sin roles en la publicación."
-
-msgid "user.noRoles.submitMonograph"
-msgstr "Presentar una propuesta"
-
-msgid "user.noRoles.submitMonographRegClosed"
-msgstr ""
-"Enviar una monografía: el registro de autor/a se encuentra actualmente "
-"deshabilitado."
-
-msgid "user.noRoles.regReviewer"
-msgstr "Registrarse como corrector"
-
-msgid "user.noRoles.regReviewerClosed"
-msgstr "Registrarse como corrector: El registro del corrector se encuentra actualmente deshabilitado."
-
-msgid "user.role.manager"
-msgstr "Gestor editorial"
-
-msgid "user.role.pressEditor"
-msgstr "Editor editorial"
-
-msgid "user.role.seriesEditor"
-msgstr "Editor/a de la colección"
-
-msgid "user.role.copyeditor"
-msgstr "Corrector/a de originales"
-
-msgid "user.role.proofreader"
-msgstr "Corrector/a de pruebas"
-
-msgid "user.role.productionEditor"
-msgstr "Editor/a de producción"
-
-msgid "user.role.managers"
-msgstr "Gestores/as editoriales"
-
-msgid "user.role.seriesEditors"
-msgstr "Editores de la colección"
-
-msgid "user.role.editors"
-msgstr "Editores/as"
-
-msgid "user.role.copyeditors"
-msgstr "Correctores/as de originales"
-
-msgid "user.role.proofreaders"
-msgstr "Correctores/as de pruebas"
-
-msgid "user.role.productionEditors"
-msgstr "Editores/as de producción"
-
-msgid "user.register.completeForm"
-msgstr "Complete el formulario para registrarse en la publicación."
-
-msgid "user.register.selectContext"
-msgstr "Seleccione una editorial en la que registrarse:"
-
-msgid "user.register.noContexts"
-msgstr "No hay editoriales en las que registrarse en este sitio."
-
-msgid "user.register.privacyStatement"
-msgstr "Declaración de privacidad"
-
-msgid "user.register.alreadyRegisteredOtherContext"
-msgstr "Haga clic aquí si ya está registrado en el sitio con esta o con otra publicación."
-
-msgid "user.register.notAlreadyRegisteredOtherContext"
-msgstr "Haga clic aquí si todavía no está registrado en el sitio con esta o con otra publicación."
-
-msgid "user.register.loginToRegister"
-msgstr "Introduce tu nombre de usuario actual y contraseña para registrarte con esta editorial."
-
-msgid "user.register.registrationDisabled"
-msgstr "Esta editorial no acepta cuentas de usuarios actualmente."
-
-msgid "user.register.form.passwordLengthTooShort"
-msgstr "La contraseña que has introducido no es lo suficientemente larga."
-
-msgid "user.register.readerDescription"
-msgstr "Publicación de una monografía notificada por correo electrónico."
-
-msgid "user.register.authorDescription"
-msgstr "Es posible presentar elementos a la editorial."
-
-msgid "user.register.reviewerDescriptionNoInterests"
-msgstr "Dispuesto a presentar una revisión por pares de las propuestas a la editorial."
-
-msgid "user.register.reviewerDescription"
-msgstr "Dispuesto a presentar una revisión por pares de las propuestas a la página."
-
-msgid "user.register.reviewerInterests"
-msgstr "Identificar los intereses de la revisión (áreas sustantivas y métodos de investigación):"
-
-msgid "user.register.form.userGroupRequired"
-msgstr "Debe seleccionar por lo menos un rol"
-
-msgid "user.register.form.privacyConsentThisContext"
-msgstr ""
-"Sí, acepto que mis datos sean recopilados y almacenados según la declaración de privacidad de esta "
-"editorial."
-
-msgid "site.noPresses"
-msgstr "No hay editoriales disponibles."
-
-msgid "site.pressView"
-msgstr "Ver página web de la editorial"
-
-msgid "about.pressContact"
-msgstr "Contacto de la editorial"
-
-msgid "about.aboutThePress"
-msgstr "Sobre la editorial"
-
-msgid "about.editorialTeam"
-msgstr "Equipo editorial"
-
-msgid "about.editorialPolicies"
-msgstr "Políticas editoriales"
-
-msgid "about.focusAndScope"
-msgstr "Orientación y ámbito de actividad"
-
-msgid "about.seriesPolicies"
-msgstr "Políticas de categorías y series"
-
-msgid "about.submissions"
-msgstr "Propuestas"
-
-msgid "about.sponsors"
-msgstr "Patrocinadores"
-
-msgid "about.contributors"
-msgstr "Fuentes de apoyo"
-
-msgid "about.onlineSubmissions"
-msgstr "Envío electrónico de propuestas"
-
-msgid "about.onlineSubmissions.haveAccount"
-msgstr "¿Ya tengo nombre de usuario/a y contraseña para {$pressTitle}?"
-
-msgid "about.onlineSubmissions.login"
-msgstr "Ir a Autenticación"
-
-msgid "about.onlineSubmissions.needAccount"
-msgstr "¿Necesitas un Nombre de usuario/Contraseña?"
-
-msgid "about.onlineSubmissions.registration"
-msgstr "Ir a Crear cuenta"
-
-msgid "about.onlineSubmissions.registrationRequired"
-msgstr "Debe estar registrado y haber iniciado la sesión para enviar elementos y hacer el seguimiento de los envíos actuales. {$login} en una cuenta existente o {$register} una nueva."
-
-msgid "about.authorGuidelines"
-msgstr "Directrices para autores"
-
-msgid "about.submissionPreparationChecklist"
-msgstr "Lista de comprobación de preparación de propuestas"
-
-msgid "about.submissionPreparationChecklist.description"
-msgstr "Como parte del proceso de entrega de propuestas, se exige a los autores que comprueben que la propuesta está de acuerdo con todos los siguientes elementos, y las propuestas que no se acojan a estas directrices pueden ser devueltas a los autores."
-
-msgid "about.copyrightNotice"
-msgstr "Aviso de derechos de autor"
-
-msgid "about.privacyStatement"
-msgstr "Declaración de privacidad"
-
-msgid "about.reviewPolicy"
-msgstr "Proceso de revisión por pares"
-
-msgid "about.publicationFrequency"
-msgstr "Periodicidad de la publicación"
-
-msgid "about.openAccessPolicy"
-msgstr "Política de acceso abierto"
-
-msgid "about.pressSponsorship"
-msgstr "Patrocinio de la editorial"
-
-msgid "about.aboutThisPublishingSystem"
-msgstr ""
-"Más información acerca del sistema de publicación, de la plataforma y del "
-"flujo de trabajo de OMP/PKP."
-
-msgid "about.aboutThisPublishingSystem.altText"
-msgstr "OMP Proceso editorial y publicitario"
-
-msgid "about.aboutOMPPress"
-msgstr ""
-"Esta publicación utiliza Open Monograph Press {$ompVersion}, que es un "
-"software de publicación y gestión editorial de código abierto desarrollado, "
-"impulsado y distribuido de forma gratuita por Public Knowledge Project bajo "
-"una licencia pública general GNU. Visite la página web de PKP para saber más acerca del software. Por favor, contacte con la editorial directamente si tiene "
-"preguntas sobre la editorial o acerca de los envíos a la editorial."
-
-#, fuzzy
-msgid "about.aboutOMPSite"
-msgstr "Esta publicación utiliza Open Monograph Press {$ompVersion}, un software de gestión y publicación de publicaciones de código abierto desarrollado, patrocinado y distribuido gratuitamente por Public Knowledge Project de conformidad con la Licencia Pública General (GNU)."
-
-msgid "help.searchReturnResults"
-msgstr "Volver a Búsqueda de resultados"
-
-msgid "help.goToEditPage"
-msgstr "Abrir una nueva página para editar esta información"
-
-msgid "installer.appInstallation"
-msgstr "Instalación OMP"
-
-msgid "installer.ompUpgrade"
-msgstr "Actualización OMP"
-
-msgid "installer.installApplication"
-msgstr "Instalar Open Monograph Press"
-
-#, fuzzy
-msgid "installer.installationInstructions"
-msgstr ""
-"\n"
-"Gracias por descargar Open Monograph Press {$version} de Public Knowledge Project. Antes de continuar lea el archivo README incluido con el software. Para obtener más información sobre Public Knowledge Project y sus proyectos de software visite la página web de PKP. Si tiene dudas sobre los informes de errores o soporte técnico de Open Monograph Press visite el foro de ayuda o el sistema de informes de errores en línea de PKP. Aunque el foro de ayuda es el mejor método de contacto también puede mandar un correo electrónico al equipo a pkp.contact@gmail.com.
\n"
-"\n"
-"Actualizar
\n"
-"\n"
-"Si está actualizando una instalación de OMP haga clic aquí para continuar.
"
-
-msgid "installer.preInstallationInstructionsTitle"
-msgstr "Pasos para preinstalación"
-
-msgid "installer.preInstallationInstructions"
-msgstr ""
-"1. Los siguientes archivos y directorios (junto con sus contenidos) tienen que cambiarse a modo editable:
\n"
-"\n"
-"\t- config.inc.php es editable (opcional): {$writable_config}
\n"
-"\t- public/ es editable: {$writable_public}
\n"
-"\t- cache/ es editable: {$writable_cache}
\n"
-"\t- cache/t_cache/ es editable: {$writable_templates_cache}
\n"
-"\t- cache/t_compile/ es editable: {$writable_templates_compile}
\n"
-"\t- cache/_db es editable: {$writable_db_cache}
\n"
-"
\n"
-"\n"
-"2. Es necesario crear un directorio para guardar los archivos subidos y que sea editable (ver \"Configuración de archivo\" a continuación).
"
-
-msgid "installer.upgradeInstructions"
-msgstr ""
-"Versión de OMP {$version}
\n"
-"\n"
-"Gracias por descargar Open Monograph Press de Public Knowledge Project. Antes de continuar lea los archivos README y UPGRADE incluidos con el software. Para obtener más información sobre Public Knowledge Project y sus proyectos de software visite la página web de PKP. Si tiene dudas sobre los informes de errores o soporte técnico de Open Monograph Press visite el foro de ayuda o el sistema de informes de errores en línea de PKP. Aunque el foro de ayuda es el mejor método de contacto también puede mandar un correo electrónico al equipo a pkp.contact@gmail.com.
\n"
-"Es muy recomendable que haga una copia de su base de datos, directorio de archivos y directorio de instalación de OMP antes de continuar.
\n"
-"Si está ejecutando el modo seguro de PHP asegúrese de que la directiva max_execution_time en su archivo de configuración php.ini tiene un límite elevado. Si se alcanza este o cualquier otro límite de tiempo (por ejemplo, la directiva de Apache \"Timeout\") y el proceso de actualización se ve interrumpido, se necesitará ayuda manual.
"
-
-msgid "installer.localeSettingsInstructions"
-msgstr "Para obtener la ayuda completa de Unicode (UTF-8) seleccione UTF-8 para la configuración de todos los grupos de caracteres. Tenga en cuenta que esta ayuda actualmente necesita un servidor de bases de datos MySQL >= 4.1.1 or PostgreSQL >= 9.1.5. Tenga también en cuenta que la ayuda completa de Unicode necesita la biblioteca mbstring (habilitada por defecto en la mayoría de actualizaciones recientes de PHP). Puede tener problemas al utilizar grupos extendidos de caracteres si su servidor no cumple los requisitos.
Su servidor actualmente es compatible con mbstring: {$supportsMBString}"
-
-msgid "installer.allowFileUploads"
-msgstr "Su servidor actualmente permite la subida de archivos: {$allowFileUploads}"
-
-msgid "installer.maxFileUploadSize"
-msgstr "Su servidor actualmente permite un tamaño máximo de archivos subidos de: {$maxFileUploadSize}"
-
-msgid "installer.localeInstructions"
-msgstr "El idioma principal para usar en el sistema. Consulte la documentación de OMP si tiene interés en ayuda para idiomas que no se encuentran en la lista."
-
-msgid "installer.additionalLocalesInstructions"
-msgstr "Seleccione cualquier otro idioma adicional para que lo reconozca el sistema. Los idiomas estarán disponibles para que las publicaciones del sitio los puedan utilizar. También se pueden instalar otros idiomas en cualquier momento desde la interfaz de administración del sitio. Las ubicaciones marcadas con * pueden estar incompletas."
-
-msgid "installer.filesDirInstructions"
-msgstr "Introduzca la ruta completa de un directorio donde se guardarán los archivos subidos. El directorio no debe ser directamente accesible desde la web. Asegúrese de que el directorio existe y es editable antes de la instalación. Los nombres de ruta de Windows deben contener barras /, por ejemplo \"C:/mypress/files\"."
-
-msgid "installer.databaseSettingsInstructions"
-msgstr "OMP necesita acceso a la base de datos SQL para guardar los datos. Compruebe los requisitos del sistema anteriores en la lista de bases de datos soportadas. Establezca la configuración que se utilizará para conectarse a la base de datos en los siguientes campos."
-
-msgid "installer.upgradeApplication"
-msgstr "Actualizar Open Monograph Press"
-
-msgid "installer.overwriteConfigFileInstructions"
-msgstr ""
-"¡IMPORTANTE!
\n"
-"No se pudo sobrescribir automáticamente el archivo de configuración con el instalador. Antes de usar el sistema abra config.inc.php en un editor/a de textos adecuado y reemplace el contenido con el contenido de los campos de texto siguientes.
"
-
-msgid "installer.installationComplete"
-msgstr ""
-"La instalación de OMP se completó correctamente.
\n"
-"Para empezar a utilizar el sistema inicie sesión con el nombre de usuario/a y la contraseña introducidos en la página anterior.
\n"
-"Si desea recibir noticias y actualizaciones regístrese en http://pkp.sfu.ca/omp/register. Si tiene dudas o comentarios visite el foro de ayuda.
"
-
-msgid "installer.upgradeComplete"
-msgstr ""
-"La actualización de OMP a versión {$version} se completó con éxito.
\n"
-"No olvide volver a cambiar a Activadala configuración \"instalada\" en el archivo de configuración config.inc.php
\n"
-"Si todavía no se registró y desea recibir noticias y actualizaciones regístrese en http://pkp.sfu.ca/omp/register. Si tiene dudas o comentarios visite el foro de ayuda.
"
-
-msgid "log.review.reviewDueDateSet"
-msgstr "{$reviewerName} cambió a {$dueDate} la fecha de entrega de la revisión para envío {$submissionId} de la ronda {$round}."
-
-msgid "log.review.reviewDeclined"
-msgstr "{$reviewerName} rechazó la revisión para envío {$submissionId} de la ronda {$round}."
-
-msgid "log.review.reviewAccepted"
-msgstr "{$reviewerName} aceptó la revisión para envío {$submissionId} de la ronda {$round}."
-
-msgid "log.review.reviewUnconsidered"
-msgstr "{$editorName} marcó la revisión para envío {$submissionId} de la ronda {$round}."
-
-msgid "log.editor.decision"
-msgstr "{$editorName} grabó la decisión del editor/a ({$decision}) en la monografía {$submissionId}."
-
-msgid "log.editor.archived"
-msgstr "El envío {$submissionId} fue archivado."
-
-msgid "log.editor.restored"
-msgstr "Se restauró el envío {$submissionId} a la lista."
-
-msgid "log.editor.editorAssigned"
-msgstr "Se asignó a envío {$submissionId} a {$editorName} como editor/a."
-
-msgid "log.editor.submissionExpedited"
-msgstr "{$editorName} envió el proceso de edición de la monografía {$submissionId}."
-
-msgid "log.proofread.assign"
-msgstr "{$assignerName} asignó a {$proofreaderName} para corregir el envío {$submissionId}."
-
-msgid "log.proofread.complete"
-msgstr "{$proofreaderName} envió {$submissionId} para su programación."
-
-msgid "log.imported"
-msgstr "{$userName}importó la monografía {$submissionId}."
-
-msgid "notification.addedIdentificationCode"
-msgstr "Código de identificación añadido."
-
-msgid "notification.editedIdentificationCode"
-msgstr "Código de intensificación editado."
-
-msgid "notification.removedIdentificationCode"
-msgstr "Código de identificación eliminado."
-
-msgid "notification.addedPublicationDate"
-msgstr "Fecha de publicación añadida."
-
-msgid "notification.editedPublicationDate"
-msgstr "Fecha de publicación editada."
-
-msgid "notification.removedPublicationDate"
-msgstr "Fecha de publicación eliminada."
-
-msgid "notification.addedPublicationFormat"
-msgstr "Formato de publicación añadido."
-
-msgid "notification.editedPublicationFormat"
-msgstr "Formato de publicación editado."
-
-msgid "notification.removedPublicationFormat"
-msgstr "Formato de publicación eliminado."
-
-msgid "notification.addedSalesRights"
-msgstr "Derechos de venta añadidos."
-
-msgid "notification.editedSalesRights"
-msgstr "Derechos de venta editados."
-
-msgid "notification.removedSalesRights"
-msgstr "Derechos de venta eliminados."
-
-msgid "notification.addedRepresentative"
-msgstr "Representante añadido."
-
-msgid "notification.editedRepresentative"
-msgstr "Representante editado."
-
-msgid "notification.removedRepresentative"
-msgstr "Representante eliminado."
-
-msgid "notification.addedMarket"
-msgstr "Mercado añadido."
-
-msgid "notification.editedMarket"
-msgstr "Mercado editado."
-
-msgid "notification.removedMarket"
-msgstr "Mercado eliminado."
-
-msgid "notification.addedSpotlight"
-msgstr "Destacado añadido."
-
-msgid "notification.editedSpotlight"
-msgstr "Destacado editado."
-
-msgid "notification.removedSpotlight"
-msgstr "Destacado eliminado."
-
-msgid "notification.removedFooterLink"
-msgstr "Vínculo a pie de página eliminado."
-
-msgid "notification.savedCatalogMetadata"
-msgstr "Catálogo de metadatos guardado."
-
-msgid "notification.savedPublicationFormatMetadata"
-msgstr "Formato de publicación de los metadatos guardado."
-
-msgid "notification.proofsApproved"
-msgstr "Revisiones aprobadas."
-
-msgid "notification.removedSubmission"
-msgstr "Propuesta eliminada."
-
-msgid "notification.type.submissionSubmitted"
-msgstr "Se envió una nueva monografía \"{$title}\"."
-
-msgid "notification.type.editing"
-msgstr "Editar eventos"
-
-msgid "notification.type.metadataModified"
-msgstr "Se modificaron los metadatos de \"{$title}\""
-
-msgid "notification.type.reviewerComment"
-msgstr "Un revisor/a comentó \"{$title}\"."
-
-msgid "notification.type.reviewing"
-msgstr "Revisar eventos"
-
-msgid "notification.type.site"
-msgstr "Eventos del sitio Web"
-
-msgid "notification.type.submissions"
-msgstr "Eventos de propuesta"
-
-msgid "notification.type.userComment"
-msgstr "Un lector/a hizo un comentario sobre \"{$title}\"."
-
-msgid "notification.type.editorAssignmentTask"
-msgstr "Se ha realizado una propuesta de una monografía para la cuál es necesario asignar un Editor."
-
-msgid "notification.type.copyeditorRequest"
-msgstr "Le pedimos que revise las correcciones para \"{$file}\"."
-
-msgid "notification.type.layouteditorRequest"
-msgstr "Le pedimos que revise la maquetación para \"{$title}\"."
-
-msgid "notification.type.indexRequest"
-msgstr "Le pedimos que cree un índice para \"{$title}\"."
-
-msgid "notification.type.editorDecisionInternalReview"
-msgstr "Proceso de revisión interna comenzado."
-
-msgid "notification.type.approveSubmission"
-msgstr "Esta propuesta está actualmente pendiente de aprobación en la herramienta de Entrada de Catálogo antes de que pueda aparecer en el catálogo público."
-
-msgid "notification.type.approveSubmissionTitle"
-msgstr "Pendiente de aprobación."
-
-msgid "notification.type.configurePaymentMethod.title"
-msgstr "No se ha configurado ningún método de pago."
-
-msgid "notification.type.configurePaymentMethod"
-msgstr "Se requiere un método de pago configurado antes de poder definir ajustes de e-commerce."
-
-msgid "notification.type.visitCatalogTitle"
-msgstr "Gestión del catálogo"
-
-msgid "user.authorization.invalidReviewAssignment"
-msgstr "Se te ha denegado el acceso porque parece que no eres un revisor válido para esta monografía."
-
-msgid "user.authorization.monographAuthor"
-msgstr "Se te ha denegado el acceso porque parece que no eres el autor de esta monografía."
-
-msgid "user.authorization.monographReviewer"
-msgstr "Se te ha denegado el acceso porque parece que no eres el revisor asignado de esta monografía."
-
-msgid "user.authorization.monographFile"
-msgstr "Se te ha denegado el acceso al fichero de la monografía especificado."
-
-msgid "user.authorization.invalidMonograph"
-msgstr "¡No se ha solicitado monografía o esta no es válida!"
-
-msgid "user.authorization.invalidSeriesEditorSubmission"
-msgstr "¡No se ha solicitado propuesta de editor de colección o esta no es válida!"
-
-msgid "user.authorization.noContext"
-msgstr "¡Ninguna editorial dentro del contexto!"
-
-msgid "user.authorization.seriesAssignment"
-msgstr "Estás intentando acceder a una monografía que no es parte de tu serie."
-
-msgid "user.authorization.workflowStageAssignmentMissing"
-msgstr "¡Acceso denegado! No se le asignó para esta etapa del flujo de trabajo."
-
-msgid "user.authorization.workflowStageSettingMissing"
-msgstr "¡Acceso denegado! No se asignó al grupo de trabajo en el que se encuentra para esta etapa del flujo de trabajo. Compruebe la configuración de la publicación."
-
-msgid "payment.directSales"
-msgstr "Descarga del sitio web de la editorial"
-
-msgid "payment.directSales.price"
-msgstr "Precio"
-
-msgid "payment.directSales.availability"
-msgstr "Disponibilidad"
-
-msgid "payment.directSales.catalog"
-msgstr "Catálogo"
-
-msgid "payment.directSales.approved"
-msgstr "Aprobado"
-
-msgid "payment.directSales.priceCurrency"
-msgstr "Precio ({$currency})"
-
-msgid "payment.directSales.directSales"
-msgstr "Ventas directas"
-
-msgid "payment.directSales.amount"
-msgstr "{$amount} ({$currency})"
-
-msgid "payment.directSales.notAvailable"
-msgstr "No disponible"
-
-msgid "payment.directSales.notSet"
-msgstr "No configurado"
-
-msgid "payment.directSales.openAccess"
-msgstr "Acceso abierto"
-
-msgid "payment.directSales.price.description"
-msgstr "Los formatos del archivo pueden estar disponibles para descargarse desde la página web de la publicación, bien mediante una política de acceso abierto sin coste para los lectores/as, o bien mediante ventas directas (utilizando un proceso de pago en línea, tal y como está configurado en Distribución). Indicar base de acceso a este archivo."
-
-msgid "payment.directSales.validPriceRequired"
-msgstr "Se necesita un precio numérico válido."
-
-msgid "payment.directSales.purchase"
-msgstr "Compra {$format} ({$amount} {$currency})"
-
-msgid "payment.directSales.download"
-msgstr "Descarga {$format}"
-
-msgid "payment.directSales.monograph.name"
-msgstr "Comprar monografía o descargar capítulo"
-
-msgid "payment.directSales.monograph.description"
-msgstr "Esta transacción es relativa a la compra de una descarga directa de una monografía sola o un capítulo de una monografía."
-
-msgid "debug.notes.helpMappingLoad"
-msgstr "El archivo {$filename} de asignación de ayuda XML se volvió a cargar en busca de {$id}."
-
-msgid "rt.metadata.pkp.dctype"
-msgstr "Libro"
-
-msgid "submission.pdf.download"
-msgstr "Descargar el archivo PDF"
-
-msgid "monograph.publicationFormat"
-msgstr "Formato"
-
-msgid "monograph.publicationFormatDetails"
-msgstr "Detalles sobre el formato de publicación disponible: {$format}"
-
-msgid "monograph.miscellaneousDetails"
-msgstr "Detalles sobre esta monografía"
-
-msgid "monograph.publicationFormat.productDimensionsSeparator"
-msgstr " x "
-
-msgid "grid.catalogEntry.remotelyHostedContent"
-msgstr "Este formato estará disponible en un sitio web independiente"
-
-msgid "grid.catalogEntry.remoteURL"
-msgstr "URL de contenido alojado remotamente"
-
-msgid "grid.catalogEntry.availability"
-msgstr "Disponibilidad"
-
-msgid "grid.catalogEntry.isNotAvailable"
-msgstr "No disponible"
-
-msgid "grid.catalogEntry.approvedRepresentation.title"
-msgstr "Aceptación de formato"
-
-msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
-msgstr ""
-"Indicar que los metadatos para este formato no han sido aprobados.
"
-
-msgid "grid.catalogEntry.availableRepresentation.title"
-msgstr "Disponibilidad de formato"
-
-msgid "grid.catalogEntry.availableRepresentation.message"
-msgstr ""
-"Haz que este formato esté disponible para los lectores/as. Los "
-"archivos descargables y cualquier otra distribución aparecerán en la entrada "
-"del catálogo de libros.
"
-
-msgid "grid.catalogEntry.availableRepresentation.removeMessage"
-msgstr ""
-"Este formato no estará disponible para los lectores/as. Todos "
-"los archivos descargables o las otras distribuciones ya no aparecerán en la "
-"entrada del catálogo de libros.
"
-
-msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
-msgstr "Entrada de catálogo no aceptada."
-
-msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
-msgstr "Formato no disponible en la entrada del catálogo."
-
-msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
-msgstr "Prueba no aceptada."
-
-msgid "grid.catalogEntry.availableRepresentation.approved"
-msgstr "Aceptado"
-
-msgid "grid.catalogEntry.availableRepresentation.notApproved"
-msgstr "Esperando aceptación"
-
-msgid "spotlight"
-msgstr "Destacado"
-
-msgid "grid.action.availableRepresentation"
-msgstr "Acepta/rechaza este formato"
-
-msgid "catalog.manage.series.issn"
-msgstr "ISSN"
-
-msgid "catalog.manage.series.issn.validation"
-msgstr "Introduzca un ISSN válido."
-
-msgid "catalog.manage.series.issn.equalValidation"
-msgstr "El ISSN en línea y el de la versión impresa no pueden ser iguales."
-
-msgid "catalog.manage.series.onlineIssn"
-msgstr "ISSN en línea"
-
-msgid "catalog.manage.series.printIssn"
-msgstr "ISSN impreso"
-
-msgid "catalog.noTitles"
-msgstr "No se ha publicado aún ningún título."
-
-msgid "catalog.noTitlesNew"
-msgstr "No está disponible ninguna nueva publicación en este momento."
-
-msgid "catalog.noTitlesSearch"
-msgstr "No se ha encontrado ningún resultado que coincida con su búsqueda \"{$searchQuery}\"."
-
-msgid "catalog.featured"
-msgstr "Destacado"
-
-msgid "catalog.foundTitleSearch"
-msgstr "Se ha encontrado un resultado que coincide con su búsqueda \"{$searchQuery}\"."
-
-msgid "catalog.foundTitlesSearch"
-msgstr "Se han encontrado {$number} resultados que coinciden con su búsqueda \"{$searchQuery}\"."
-
-msgid "catalog.category.heading"
-msgstr "Todos los libros"
-
-msgid "catalog.newReleases"
-msgstr "Novedades"
-
-msgid "catalog.published"
-msgstr "Publicado"
-
-msgid "catalog.categories"
-msgstr "Categorías"
-
-msgid "catalog.parentCategory"
-msgstr "Categoría matriz"
-
-msgid "catalog.category.subcategories"
-msgstr "Subcategorías"
-
-msgid "catalog.sortBy"
-msgstr "Orden de las monografías"
-
-msgid "catalog.sortBy.seriesDescription"
-msgstr "Elija la forma de ordenar los libros en estas colecciones."
-
-msgid "catalog.sortBy.categoryDescription"
-msgstr "Elija la forma de ordenar los libros en esta categoría."
-
-msgid "catalog.sortBy.catalogDescription"
-msgstr "Elija la forma de ordenar los libros en este catálogo."
-
-msgid "catalog.sortBy.seriesPositionAsc"
-msgstr "Posición de las colecciones (inferiores primero)"
-
-msgid "catalog.sortBy.seriesPositionDesc"
-msgstr "Posición de las colecciones (superiores primero)"
-
-msgid "catalog.viewableFile.title"
-msgstr "{$type} visualización del fichero {$title}"
-
-msgid "catalog.viewableFile.return"
-msgstr "Vuelva para ver los detalles sobre {$monographTitle}"
-
-msgid "context.current"
-msgstr "Editorial actual:"
-
-msgid "about.onlineSubmissions.register"
-msgstr "Registra"
-
-msgid "payment.directSales.numericOnly"
-msgstr "Los precios deben ser solo numéricos, no incluya símbolos de moneda."
-
-msgid "payment.directSales.readRemotely"
-msgstr "Vaya a {$format}"
-
-msgid "user.profile.form.showOtherContexts"
-msgstr "Registro con otras editoriales"
-
-msgid "user.profile.form.hideOtherContexts"
-msgstr "Oculta otras editoriales"
-
-msgid "user.role.subEditor"
-msgstr "Editor/a de la sèrie"
-
-msgid "user.role.subEditors"
-msgstr "Editor/a de la serie"
-
-msgid "about.aboutContext"
-msgstr "Sobre la editorial"
-
-msgid "about.onlineSubmissions.submissionActions"
-msgstr "{$newSubmission} o {$viewSubmissions}."
-
-msgid "about.onlineSubmissions.newSubmission"
-msgstr "Crear un nuevo envío"
-
-msgid "about.onlineSubmissions.viewSubmissions"
-msgstr "Ver sus envíos pendientes"
-
-msgid "log.editor.recommendation"
-msgstr ""
-"{$editorName} ha registrado una recomendación editorial ({$decision}) para "
-"la monografía {$submissionId}."
-
-msgid "notification.type.public"
-msgstr "Anuncios públicos"
-
-msgid "catalog.manage.notNewReleaseSuccess"
-msgstr "Monografía desmarcada como nueva publicación."
-
-msgid "catalog.manage.feature.newRelease"
-msgstr "Nueva publicación"
-
-msgid "catalog.manage.feature.categoryNewRelease"
-msgstr "Nueva publicación en categoría"
-
-msgid "catalog.manage.feature.seriesNewRelease"
-msgstr "Nueva publicación en series"
-
-msgid "catalog.manage.nonOrderable"
-msgstr "Esta monografía no se puede solicitar hasta que se publique."
-
-msgid "catalog.manage.filter.searchByAuthorOrTitle"
-msgstr "Buscar por título o autor"
-
-msgid "catalog.forthcoming"
-msgstr "Próximamente"
-
-msgid "navigation.catalog.allMonographs"
-msgstr "Todas las monografías"
-
-msgid "navigation.navigationMenus.catalog.description"
-msgstr "Enlace a su catálogo."
-
-msgid "user.reviewerPrompt"
-msgstr "¿Estaría dispuesto a revisar los envíos a esta editorial?"
-
-msgid "user.reviewerPrompt.userGroup"
-msgstr "Sí, solicitar el rol de {$userGroup}."
-
-msgid "user.reviewerPrompt.optin"
-msgstr "Sí, me gustaría que me contacten para revisar los envíos de esta editorial."
-
-msgid "user.register.contextsPrompt"
-msgstr "¿En qué editoriales de este sitio le gustaría registrarse?"
-
-msgid "user.register.otherContextRoles"
-msgstr "Solicita los siguientes roles."
-
-msgid "user.register.noContextReviewerInterests"
-msgstr ""
-"Si solicitó ser revisor de alguna editorial debe introcir sus temas de "
-"interés."
-
-msgid "catalog.manage.featured"
-msgstr "Destacado"
-
-msgid "catalog.manage.categoryFeatured"
-msgstr "Destacado en categoría"
-
-msgid "catalog.manage.seriesFeatured"
-msgstr "Destacado en series"
-
-msgid "catalog.manage.featuredSuccess"
-msgstr "Monografía destacada."
-
-msgid "catalog.manage.notFeaturedSuccess"
-msgstr "Monografía no destacada."
-
-msgid "catalog.manage.newReleaseSuccess"
-msgstr "Monografía marcada como nuevo lanzamiento."
-
-msgid "grid.series.urlWillBe"
-msgstr "La URL de la colección es {$sampleUrl}. La ruta es una cadena de caracteres que sirven para identificar una serie."
-
-msgid "submission.round"
-msgstr "Ronda {$round}"
-
-msgid "catalog.coverImageTitle"
-msgstr "Imagen de cubierta"
-
-msgid "user.authorization.invalidPublishedSubmission"
-msgstr "Se ha especificado un envío publicado no válido."
-
-#, fuzzy
-msgid "notification.type.visitCatalog"
-msgstr ""
-"La monografía ha sido aceptada. Visite el catálogo para gestionar sus "
-"detalles de catálogo mediante el enlace que aparece justo encima."
-
-msgid "notification.type.formatNeedsApprovedSubmission"
-msgstr ""
-"La monografía no aparecerá listada en el catálogo hasta que no esté "
-"publicada. Para añadir este libro al catálogo haga clic en la pestaña \""
-"Publicación\"."
-
-msgid "navigation.navigationMenus.newRelease.description"
-msgstr "Enlace a sus nuevos lanzamientos."
-
-msgid "navigation.navigationMenus.newRelease"
-msgstr "Nuevos lanzamientos"
-
-msgid "navigation.navigationMenus.category.description"
-msgstr "Enlace a una categoría."
-
-msgid "navigation.navigationMenus.category.generic"
-msgstr "Categoría"
-
-msgid "navigation.navigationMenus.series.description"
-msgstr "Enlace a series."
-
-msgid "navigation.navigationMenus.series.generic"
-msgstr "Series"
-
-msgid "navigation.skip.spotlights"
-msgstr "Pasar a destacados"
-
-msgid "common.publications"
-msgstr "Monografías"
-
-msgid "common.publication"
-msgstr "Monografía"
-
-msgid "submission.search"
-msgstr "Búsqueda de libros"
-
-msgid "catalog.manage.isNotNewRelease"
-msgstr ""
-"Esta monografía no es un nuevo lanzamiento. Hacer que la monografía sea un "
-"nuevo lanzamiento."
-
-msgid "catalog.manage.isNewRelease"
-msgstr ""
-"Esta monografía es un nuevo lanzamiento. Hacer que la monografía no sea un "
-"nuevo lanzamiento."
-
-msgid "catalog.manage.isNotFeatured"
-msgstr "Esta monografía no está destacada. Hacer la monografía destacada."
-
-msgid "catalog.manage.isFeatured"
-msgstr "Esta monografía está destacada. Hacer la monografía no destacada."
-
-msgid "grid.catalogEntry.approvedRepresentation.message"
-msgstr ""
-"Aprobar los metadatos para este formato. Los metadatos pueden comprobarse "
-"desde el panel de edición para cada formato.
"
-
-msgid "monograph.audience.success"
-msgstr "Los detalles de audiencia han sido actualizados."
-
-msgid "submissionGroup.assignedSubEditors"
-msgstr "Editores/as asignados"
-
-msgid "about.aboutSoftware"
-msgstr "Acerca de Open Monograph Press"
-
-msgid "user.authorization.representationNotFound"
-msgstr "No se ha podido encontrar el formato de publicación solicitado."
-
-msgid "catalog.manage.findSubmissions"
-msgstr "Encontrar monografías para añadirlas al catálogo"
-
-msgid "catalog.manage.submissionsNotFound"
-msgstr "No se ha podido encontrar uno o más envíos."
-
-msgid "catalog.manage.noSubmissionsSelected"
-msgstr "No se ha seleccionado ningún envío para añadirse al catálogo."
diff --git a/locale/es_ES/manager.po b/locale/es_ES/manager.po
deleted file mode 100644
index 30325cd0af8..00000000000
--- a/locale/es_ES/manager.po
+++ /dev/null
@@ -1,1501 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2020-11-30 18:48+0000\n"
-"Last-Translator: Jordi LC \n"
-"Language-Team: Spanish \n"
-"Language: es_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 "manager.language.confirmDefaultSettingsOverwrite"
-msgstr ""
-"Esto sustituirá cualquier ajuste de publicación específico que hubiera "
-"establecido para esta configuración regional"
-
-msgid "manager.languages.languageInstructions"
-msgstr "OMP estará disponible para los usuarios/as en cualquiera de los idiomas compatibles. Asímismo, OMP puede ejecutarse como un sistema multilingüe, permitiendo a los usuarios/as cambiar entre idiomas en cada página, e introducir algunos datos en otros idiomas.
Si un idioma compatible con OMP no está en la siguiente lista, pida al administrador/a del sitio que instale el idioma desde la interfaz del administrador/a del sitio. Si desea más instrucciones sobre cómo añadir compatibilidad para nuevos idiomas, consulte la documentación de OMP."
-
-msgid "manager.languages.noneAvailable"
-msgstr "No hay más idiomas disponibles. Póngase en contacto con el administrador/a del sitio si desea utilizar más idiomas con la publicación."
-
-msgid "manager.languages.primaryLocaleInstructions"
-msgstr "Este será el idioma predeterminado para el sitio de la editorial."
-
-msgid "manager.reviewForms"
-msgstr "Formularios de revisión"
-
-msgid "manager.reviewForms.completed"
-msgstr "Completado"
-
-msgid "manager.reviewForms.confirmDeletePublished"
-msgstr "Confirmar la eliminación del formulario de revisión publicado..."
-
-msgid "manager.reviewForms.confirmDeleteUnpublished"
-msgstr "Confirmar la eliminación del formulario de revisión no publicado..."
-
-msgid "manager.reviewForms.create"
-msgstr "Crear formulario de revisión"
-
-msgid "manager.reviewForms.description"
-msgstr "Descripción e indicaciones"
-
-msgid "manager.reviewForms.edit"
-msgstr "Formulario de revisión"
-
-msgid "manager.reviewForms.form.titleRequired"
-msgstr "Se necesita un título para el formulario de revisión."
-
-msgid "manager.reviewForms.inReview"
-msgstr "En revisión"
-
-msgid "manager.reviewForms.list.description"
-msgstr "Los formularios de evaluación por pares creados aquí se presentarán a los revisores/as para que los completen, en lugar del formulario por defecto, que contiene dos cuadros de texto abiertos, el primero \"para el autor/a y el editor/a\", y el segundo \"para el editor/a\". Los formularios de revisión pueden designarse para una sección específica de la publicación, y los editores/as tendrán la opción de elegir qué formulario usar para asignar la revisión. En todos los casos los editores/as podrán incluir las revisiones correspondientes a cada autor/a."
-
-msgid "manager.reviewForms.noneChosen"
-msgstr "Ninguno / Revisión de formulario libre"
-
-msgid "manager.reviewForms.noneCreated"
-msgstr "No se ha creado ningún formulario de revisión."
-
-msgid "manager.reviewForms.noneUsed"
-msgstr "No se ha utilizado ningún formulario de revisión."
-
-msgid "manager.reviewForms.preview"
-msgstr "Previsualizar formulario"
-
-msgid "manager.reviewForms.reviewFormData"
-msgstr "Información del formulario de revisión"
-
-msgid "manager.reviewForms.title"
-msgstr "Título"
-
-msgid "manager.reviewFormElement.changeType"
-msgstr "Cambiando el tipo de elementos del formulario..."
-
-msgid "manager.reviewFormElements"
-msgstr "Elementos del formulario"
-
-msgid "manager.reviewFormElements.addResponseItem"
-msgstr "Añadir selección"
-
-msgid "manager.reviewFormElements.checkboxes"
-msgstr "Casillas (puedes elegir más de una)"
-
-msgid "manager.reviewFormElements.chooseType"
-msgstr "Elegir tipo de elemento"
-
-msgid "manager.reviewFormElements.confirmDelete"
-msgstr "Confirmar la eliminación del elemento del formulario publicado..."
-
-msgid "manager.reviewFormElements.copyTo"
-msgstr "Copiar a:"
-
-msgid "manager.reviewFormElements.create"
-msgstr "Crear un nuevo elemento"
-
-msgid "manager.reviewFormElements.dropdownbox"
-msgstr "Menú desplegable"
-
-msgid "manager.reviewFormElements.edit"
-msgstr "Editar elemento del formulario"
-
-msgid "manager.reviewFormElements.elementType"
-msgstr "Tipo de elemento"
-
-msgid "manager.reviewFormElements.form.elementTypeRequired"
-msgstr "Se necesita un tipo de elemento para el elemento del formulario."
-
-msgid "manager.reviewFormElements.form.questionRequired"
-msgstr "Se necesita una pregunta para el elemento del formulario."
-
-msgid "manager.reviewFormElements.noneCreated"
-msgstr "No se ha creado ningún elemento del formulario."
-
-msgid "manager.reviewFormElements.possibleResponse"
-msgstr "Selección"
-
-msgid "manager.reviewFormElements.question"
-msgstr "Elemento"
-
-msgid "manager.reviewFormElements.radiobuttons"
-msgstr "Botones de selección (solo puedes elegir uno)"
-
-msgid "manager.reviewFormElements.required"
-msgstr "Es necesario que los revisores completen el elemento"
-
-msgid "manager.reviewFormElements.smalltextfield"
-msgstr "Cuadro de texto de una sola palabra"
-
-msgid "manager.reviewFormElements.textarea"
-msgstr "Cuadro de texto ampliado"
-
-msgid "manager.reviewFormElements.textfield"
-msgstr "Cuadro de texto de una sola línea"
-
-msgid "manager.reviewFormElements.viewable"
-msgstr "Visible (para autores)"
-
-msgid "manager.series.form.mustAllowPermission"
-msgstr "Por favor, asegúrate de que se ha marcado al menos una casilla para cada tarea del coordinador de colección."
-
-msgid "manager.series.form.reviewFormId"
-msgstr "Por favor, asegúrate de que has elegido un formulario de revisión válido."
-
-msgid "manager.series.submissionIndexing"
-msgstr "No se incluirá en la indexación de la publicación"
-
-msgid "manager.series.editorRestriction"
-msgstr "Solo los coordinadores y coordinadores de colección pueden presentar elementos."
-
-msgid "manager.series.confirmDelete"
-msgstr "¿Estás seguro de que deseas eliminar esta serie de forma permanente?"
-
-msgid "manager.series.indexed"
-msgstr "Indizado"
-
-msgid "manager.series.open"
-msgstr "Propuestas abiertas"
-
-msgid "manager.series.readingTools"
-msgstr "Herramientas de lectura"
-
-msgid "manager.series.submissionReview"
-msgstr "No se revisará por pares"
-
-msgid "manager.series.submissionsToThisSection"
-msgstr "Propuesta realizada para esta colección"
-
-msgid "manager.series.abstractsNotRequired"
-msgstr "No se necesitan resúmenes"
-
-msgid "manager.series.disableComments"
-msgstr "Desactivar comentarios de los lectores para esta colección."
-
-msgid "manager.series.book"
-msgstr "Colección de libros"
-
-msgid "manager.series.create"
-msgstr "Crear colección"
-
-msgid "manager.series.policy"
-msgstr "Descripción de la colección"
-
-msgid "manager.series.assigned"
-msgstr "Coordinadores de esta colección"
-
-msgid "manager.series.seriesEditorInstructions"
-msgstr "Añadir un editor/a de la serie a la serie desde Editores/as de la serie. Una vez añadido, designe si el editor/a de la serie supervisará la REVISIÓN (evaluación por pares) o la EDICIÓN (corrección, maquetación y corrección de pruebas) de los envíos a la serie. Los editores/as de la serie se crean haciendo clic en Editores/as de la serie en Roles en la gestión de la publicación."
-
-msgid "manager.series.hideAbout"
-msgstr "Omitir esta colección de Sobre la editorial."
-
-msgid "manager.series.unassigned"
-msgstr "Coordinadores de colección disponibles"
-
-msgid "manager.series.form.abbrevRequired"
-msgstr "Se necesita un título abreviado para esta colección."
-
-msgid "manager.series.form.titleRequired"
-msgstr "Se necesita un título para esta colección."
-
-msgid "manager.series.noneCreated"
-msgstr "No se ha creado ninguna colección."
-
-msgid "manager.series.existingUsers"
-msgstr "Usuarios existentes"
-
-msgid "manager.series.seriesTitle"
-msgstr "Título de la colección"
-
-msgid "manager.series.noSeriesEditors"
-msgstr "Todavía no hay editores/as de la serie. Añadir antes el rol a al menos un usuario/a a través de Gestión > Configuración > Usuarios/as y Roles."
-
-msgid "manager.series.noCategories"
-msgstr "Todavía no hay categorías. Si desea asignar categorías a la serie, cierre antes este menú, haga clic en la pestaña \"Categorías\" y cree una."
-
-msgid "manager.series.restricted"
-msgstr "No permitir que los autores/as envíen directamente a esta serie."
-
-msgid "manager.settings"
-msgstr "Preferéncias"
-
-msgid "manager.settings.pressSettings"
-msgstr "Ajustes editorial"
-
-msgid "manager.settings.press"
-msgstr "Editorial"
-
-msgid "manager.settings.publisher.identity.description"
-msgstr ""
-"Estos campos son obligatorios para publicar metadatos ONIX válidos."
-
-msgid "manager.settings.publisher"
-msgstr "Nombre sello editorial"
-
-msgid "manager.settings.location"
-msgstr "Localización geográfica"
-
-msgid "manager.settings.publisherCode"
-msgstr "Código sello editorial"
-
-msgid "manager.settings.distributionDescription"
-msgstr "Todos los ajustes específicos del proceso de distribución (notificación, indización, archivado, pago, herramientas de lectura)."
-
-msgid "manager.statistics.reports.defaultReport.monographDownloads"
-msgstr "Descargas del archivo de la monografía"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstract"
-msgstr "Vista preliminar del resumen de la monografía"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
-msgstr "Resumen y descargas de la monografía"
-
-msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
-msgstr "Principales vistas preliminares de la serie"
-
-msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
-msgstr "Principales vistas preliminares de la publicación"
-
-msgid "manager.statistics.reports.filters.byContext.description"
-msgstr "Resultados reducidos por contexto (serie y/o monografía)."
-
-msgid "manager.statistics.reports.filters.byObject.description"
-msgstr "Resultados reducidos por tipo de objeto (publicación, serie, monografía, tipos de archivo) o por uno o varios identificadores de objeto."
-
-msgid "manager.tools"
-msgstr "Herramientas"
-
-msgid "manager.tools.importExport"
-msgstr "Todas las herramientas específicas para importar y exportar datos (publicaciones, monografías, usuarios/as)"
-
-msgid "manager.users.availableRoles"
-msgstr "Funciones disponibles"
-
-msgid "manager.users.currentRoles"
-msgstr "Funciones actuales"
-
-msgid "manager.users.selectRole"
-msgstr "Seleccionar función"
-
-msgid "manager.people.allEnrolledUsers"
-msgstr "Usuarios/as inscritos en esta publicación"
-
-msgid "manager.people.allPresses"
-msgstr "Todas las editoriales"
-
-msgid "manager.people.allSiteUsers"
-msgstr "Inscribir a un usuario de este sitio en esta editorial"
-
-msgid "manager.people.allUsers"
-msgstr "Todos los usuarios inscritos"
-
-msgid "manager.people.confirmRemove"
-msgstr "¿Desea eliminar al usuario/a de la publicación? Esta acción eliminará al usuario/a de todos los roles dentro de la publicación."
-
-msgid "manager.people.enrollExistingUser"
-msgstr "Inscribir a un usuario existente"
-
-msgid "manager.people.enrollSyncPress"
-msgstr "Con editorial"
-
-msgid "manager.people.mergeUsers.from.description"
-msgstr "Seleccione un usuario/a para incorporarlo a otra cuenta de usuario/a (p.ej., cuando alguien tiene dos cuentas de usuario/a). La primera cuenta seleccionada se borrará y sus envíos, encargos, etc. serán atribuidos a la segunda cuenta."
-
-msgid "manager.people.mergeUsers.into.description"
-msgstr "Selecciona a un usuario al que atribuirle la autoría, encargos de edición y demás del usuario anterior."
-
-msgid "manager.people.syncUserDescription"
-msgstr "La sincronización de la inscripción registrará a todos los usuarios/as inscritos previamente en un rol específico de dicha publicación en el mismo rol de esta publicación. La función permite la sincronización entre publicaciones de un grupo común de usuarios/as (por ejemplo revisores/as)."
-
-msgid "manager.people.confirmDisable"
-msgstr ""
-"¿Deshabilitar al usuario/a? Esto evitará que el usuario/a se registre en el sistema.\n"
-"\n"
-"Podrá ofrecer una razón al usuario/a para deshabilitar su cuenta."
-
-msgid "manager.people.noAdministrativeRights"
-msgstr ""
-"No tiene derechos administrativos sobre este usuario/a. Esto puede deberse a:"
-"\n"
-"\t\t\n"
-"\t\t\t- El usuario/a es el administrador/a del sitio
\n"
-"\t\t\t- El usuario/a está activo en publicaciones que usted no "
-"gestiona
\n"
-"\t\t
\n"
-"\t\tEsta tarea la debe llevar a cabo el administrador/a del sitio.\n"
-"\t"
-
-msgid "manager.system"
-msgstr "Ajustes del sistema"
-
-msgid "manager.system.archiving"
-msgstr "Archivado"
-
-msgid "manager.system.reviewForms"
-msgstr "Formularios de revisión"
-
-msgid "manager.system.readingTools"
-msgstr "Herramientas de lectura"
-
-msgid "manager.system.payments"
-msgstr "Pagos"
-
-msgid "manager.pressManagement"
-msgstr "Gestión editorial"
-
-msgid "manager.setup"
-msgstr "Configuración"
-
-msgid "manager.setup.aboutItemContent"
-msgstr "Contenido"
-
-msgid "manager.setup.addAboutItem"
-msgstr "Añadir Acerca del elemento"
-
-msgid "manager.setup.addChecklistItem"
-msgstr "Añadir elemento de la lista de comprobación"
-
-msgid "manager.setup.addContributor"
-msgstr "Añadir colaborador"
-
-msgid "manager.setup.addItem"
-msgstr "Agregar ítem"
-
-msgid "manager.setup.addItemtoAboutPress"
-msgstr "Añadir un elemento a \"Acerca de la editorial\""
-
-msgid "manager.setup.additionalContent"
-msgstr "Contenido adicional"
-
-msgid "manager.setup.additionalContentDescription"
-msgstr "Añade el contenido siguiente utilizando texto/HTML, que aparecerá a debajo de la imagen de la página principal, en caso de que se haya subido alguna."
-
-msgid "manager.setup.addNavItem"
-msgstr "Agregar ítem"
-
-msgid "manager.setup.addSponsor"
-msgstr "Añadir organización patrocinadora"
-
-msgid "manager.setup.alternateHeader"
-msgstr "Cabecera alternativa"
-
-msgid "manager.setup.alternateHeaderDescription"
-msgstr "En el siguiente cuadro de texto puede insertar una versión HTML del encabezado, en lugar del título y logotipo. Dejar el cuadro de texto en blanco si no se necesita."
-
-msgid "manager.setup.announcements"
-msgstr "Anuncios"
-
-msgid "manager.setup.announcementsDescription"
-msgstr "Los avisos se publican para informar a los lectores/as de las noticias y los eventos de la publicación. Los avisos publicados aparecerán en la Página de avisos."
-
-msgid "manager.setup.announcementsIntroduction"
-msgstr "Información adicional"
-
-msgid "manager.setup.announcementsIntroduction.description"
-msgstr "Introduce la información adicional que quieres que se muestre a los lectores en la Página de anuncios."
-
-msgid "manager.setup.appearInAboutPress"
-msgstr "(Aparecerá en Acerca de la editorial) "
-
-msgid "manager.setup.authorCopyrightNotice"
-msgstr "Aviso de derechos de autor"
-
-msgid "manager.setup.authorCopyrightNoticeAgree"
-msgstr "Es necesario que los autores acepten el Aviso de derechos de autor como parte del proceso de propuesta."
-
-msgid "manager.setup.authorCopyrightNotice.description"
-msgstr "El aviso de derechos de autor/a que introduzca a continuación aparecerá en Acerca de la publicación y en los metadatos de todos los elementos publicados. Aunque la publicación determina la naturaleza del acuerdo con los autores/as sobre los derechos de autor/a, el Public Knowledge Project recomienda el uso de la licencia Creative Commons. Para ese fin, se proporciona una prueba de aviso de derechos de autor/a que puede cortarse y pegarse en el espacio que hay a continuación para publicaciones que (a) ofrecen acceso abierto, (b) ofrecen acceso abierto diferido, o (c) no ofrecen acceso abierto."
-
-msgid "manager.setup.authorGuidelines.description"
-msgstr "Exponga a los autores/as los estándares bibliográficos y de formato utilizados para los elementos subidos a la publicación (por ejemplo el Manual de publicaciones de la American Psychological Association, 5ª edición, 2001). Es útil proporcionar ejemplos de los formatos comunes de citación para publicaciones y libros que se usarán en los envíos."
-
-msgid "manager.setup.contributor"
-msgstr "Colaborador"
-
-msgid "manager.setup.contributors"
-msgstr "Fuentes de apoyo"
-
-msgid "manager.setup.contributors.description"
-msgstr "Las agencias u organizaciones adicionales que proporcionan ayuda financiera y en especie a la editorial, aparecerán en Acerca de la editorial y podrán ir acompañadas de una nota de reconocimiento."
-
-msgid "manager.setup.copyediting"
-msgstr "Correctores/as de originales"
-
-msgid "manager.setup.copyeditInstructions"
-msgstr "Instrucciones para la corrección de originales"
-
-msgid "manager.setup.copyeditInstructionsDescription"
-msgstr "Las instrucciones de corrección estarán disponibles para correctores/as, autores/as y editores/as de sección en la fase Edición del envío. A continuación se detallan unas instrucciones por defecto para HTML, que el jefe/a editorial puede modificar o reemplazar en cualquier momento (en HTML o en texto plano)."
-
-msgid "manager.setup.copyrightNotice"
-msgstr "Aviso derechos de autor"
-
-msgid "manager.setup.coverage"
-msgstr "Cobertura"
-
-msgid "manager.setup.coverageChronExamples"
-msgstr "(P.ej. renacimiento europeo; periodo jurásico; tercer trimestre; etc.)"
-
-msgid "manager.setup.coverageChronProvideExamples"
-msgstr "Da ejemplos de términos cronológicos e históricos relevantes para este campo"
-
-msgid "manager.setup.coverageDescription"
-msgstr "Se refiere a la localización geoespacial, cobertura cronológica o histórica, y/o características de la investigación."
-
-msgid "manager.setup.coverageGeoExamples"
-msgstr "(P.ej. península ibérica; estratosfera; bosques boreales; etc.)"
-
-msgid "manager.setup.coverageGeoProvideExamples"
-msgstr "Da ejemplos de términos geoespaciales o geográficos para este campo"
-
-msgid "manager.setup.coverageResearchSampleExamples"
-msgstr "(P.ej. edad; sexo; etnia; etc.)"
-
-msgid "manager.setup.coverageResearchSampleProvideExamples"
-msgstr "Da ejemplos de características de la muestras de investigación para este campo."
-
-msgid "manager.setup.customizingTheLook"
-msgstr "Paso 5. Personalizar Vista y Estilo"
-
-msgid "manager.setup.customTags"
-msgstr "Etiquetas personalizadas"
-
-msgid "manager.setup.customTagsDescription"
-msgstr "Las etiquetas HTML personalizadas de la cabecera pueden insertarse en la cabecera de cada página (p.ej. etiquetas META)."
-
-msgid "manager.setup.details"
-msgstr "Detalles"
-
-msgid "manager.setup.details.description"
-msgstr "Nombre de la editorial, contactos, patrocinadores y motores de búsqueda."
-
-msgid "manager.setup.disableUserRegistration"
-msgstr "El gestor editorial registra a todos los usuarios, aunque solo los coordinadores o coordinadores de sección pueden registrar a los revisores."
-
-msgid "manager.setup.discipline"
-msgstr "Disciplinas y subdisciplinas académicas"
-
-msgid "manager.setup.disciplineDescription"
-msgstr "De utilidad cuando la editorial traspasa las fronteras entre disciplinas y/o los autores presentan elementos multidisciplinarios."
-
-msgid "manager.setup.disciplineExamples"
-msgstr "(P.ej., historia; educación; sociología; psicología; estudios culutrales; derecho)"
-
-msgid "manager.setup.disciplineProvideExamples"
-msgstr "Proporciona ejemplos de disciplinas académicas relevantes para esta editorial"
-
-msgid "manager.setup.displayCurrentMonograph"
-msgstr "Añade la tabla de contenidos para la monografía actual (si disponible)."
-
-msgid "manager.setup.displayFeaturedBooks"
-msgstr "Mostrar los libros destacados en la página de inicio"
-
-msgid "manager.setup.displayInSpotlight"
-msgstr "Mostrar los libros como destacados en la página de inicio"
-
-msgid "manager.setup.displayNewReleases"
-msgstr "Mostrar novedades en la página de inicio"
-
-msgid "manager.setup.doiPrefix"
-msgstr "Prefijo DOI"
-
-msgid "manager.setup.doiPrefixDescription"
-msgstr "El prefijo DOI (Identificador Digital del Objeto) se asigna mediante Referencia cruzada y tiene el formato 10.xxxx (p. ej. 10.1234)."
-
-msgid "manager.setup.editorDecision"
-msgstr "Decisión del coordinador"
-
-msgid "manager.setup.editorialMembers"
-msgstr "Ir a Miembros del consejo de redacción y añadir miembros del Consejo editorial y/o del Consejo de revisión. Esto puede hacerse en cualquier momento de la ejecución de la publicación."
-
-msgid "manager.setup.editorialProcess1"
-msgstr "Uno o más coordinadores se encargan de los pasos básicos sin ninguna función designada."
-
-msgid "manager.setup.editorialProcess2"
-msgstr "El coordinador jefe se encarga de la lista de la propuesta y la tabla de contenidos, mientras que los coordinadores de sección se encargan de la revisión y edición de la propuesta."
-
-msgid "manager.setup.editorialProcess3"
-msgstr "El coordinador jefe se encarga de la lista de la propuesta, edición de la propuesta y tabla de contenidos, mientras que los coordinadores de sección se encargan de la revisión de la propuesta."
-
-msgid "manager.setup.editorialReviewBoard"
-msgstr "Comité de Redacción/ Revisión"
-
-msgid "manager.setup.editorialReviewBoardDescription"
-msgstr "Las publicaciones disponen de Consejos editoriales que supervisan la dirección editorial de la publicación, participan en el nombramiento de editores/as y, gracias a la reputación de los miembros del consejo de redacción, dan a la publicación prestigio en el campo. Los Consejos de revisión desempeñan un rol similar pero además, dirigen el proceso de evaluación por pares. Los miembros del consejo de revisión no tendrán acceso al sistema administrativo de la página web pero se añadirán a la lista de participantes en el proceso de evaluación por pares."
-
-msgid "manager.setup.emailBounceAddress"
-msgstr "Remitente"
-
-msgid "manager.setup.emailBounceAddress.description"
-msgstr "Cualquier correo electrónico que no pueda entregarse generará un mensaje de error a esta dirección."
-
-msgid "manager.setup.emails"
-msgstr "Identificación de correo electrónico"
-
-msgid "manager.setup.emailSignature"
-msgstr "Firma"
-
-msgid "manager.setup.emailSignatureDescription"
-msgstr "Las plantillas de correo que el sistema envía en nombre de la publicación tendrán la siguiente firma al final. El cuerpo de las plantillas de correo podrá editarse a continuación."
-
-msgid "manager.setup.enableAnnouncements.enable"
-msgstr "Habilitar avisos"
-
-msgid "manager.setup.enablePressInstructions"
-msgstr "Habilitar que esta editorial aparezca públicamente en el sitio"
-
-msgid "manager.setup.enablePublicMonographId"
-msgstr "Los identificadores personalizados se usarán para identificar los elementos publicados."
-
-msgid "manager.setup.enablePublicGalleyId"
-msgstr "Los identificadores personalizados se usarán para identificar galeradas (p.ej. ficheros HTML o PDF) para elementos publicados."
-
-msgid "manager.setup.enableUserRegistration"
-msgstr "Los visitantes pueden crear una cuenta de usuario/a en la editorial."
-
-msgid "manager.setup.enableUserRegistration.author"
-msgstr "Autores (pueden presentar material a la editorial)"
-
-msgid "manager.setup.enableUserRegistration.reader"
-msgstr "Lectores (recibirán notificaciones y se considerarán equivalentes a los suscriptores)"
-
-msgid "manager.setup.enableUserRegistration.reviewer"
-msgstr "Revisores (pueden revisar propuestas)"
-
-msgid "manager.setup.featuredBooks"
-msgstr "Libros destacados"
-
-msgid "manager.setup.focusAndScope"
-msgstr "Enfoque y alcance de la editorial"
-
-msgid "manager.setup.focusAndScope.description"
-msgstr ""
-"Informe a los autores/as, lectores/as y bibliotecarios/as de la temática de "
-"las monografías y de otros elementos que publicará la editorial."
-
-msgid "manager.setup.focusScope"
-msgstr "Enfoque y alcance"
-
-msgid "manager.setup.focusScopeDescription"
-msgstr "EJEMPLO DE DATOS HTML"
-
-msgid "manager.setup.forAuthorsToIndexTheirWork"
-msgstr "Para que los autores indicen su obra"
-
-msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
-msgstr "OMP cumple el protocolo sobre recopilación de metadatos Iniciativa de archivos abiertos, que es un estándar emergente que proporciona acceso bien indexado a los recursos electrónicos de investigación a escala global. Los autores/as usarán una plantilla similar para proporcionar metadatos a su envío. El jefe/a editorial deberá seleccionar las categorías para indexar y presentar a los autores/as ejemplos relevantes para ayudarles a indexar su trabajo, separando términos con punto y coma (p. ej. término1; término2). Las entradas deben introducirse como ejemplos utilizando \"P. ej.\" o \"Por ejemplo\"."
-
-msgid "manager.setup.form.contactEmailRequired"
-msgstr "Se necesita el correo electrónico del contacto principal."
-
-msgid "manager.setup.form.contactNameRequired"
-msgstr "Se necesita el nombre del contacto principal."
-
-msgid "manager.setup.form.numReviewersPerSubmission"
-msgstr "Se necesita el número de revisores por propuesta."
-
-msgid "manager.setup.form.supportEmailRequired"
-msgstr "Se necesita una dirección de correo alternativa."
-
-msgid "manager.setup.form.supportNameRequired"
-msgstr "Se necesita un nombre alternativo."
-
-msgid "manager.setup.generalInformation"
-msgstr "Información general"
-
-msgid "manager.setup.gettingDownTheDetails"
-msgstr "Paso 1. Detalles"
-
-msgid "manager.setup.guidelines"
-msgstr "Directrices"
-
-msgid "manager.setup.inSpotlight"
-msgstr "En primer plano"
-
-msgid "manager.setup.preparingWorkflow"
-msgstr "Paso 3. Preparando el flujo de trabajo"
-
-msgid "manager.setup.homepageImage"
-msgstr "Imagen página principal"
-
-msgid "manager.setup.homepageImageDescription"
-msgstr "Añada una imagen o un gráfico en el centro de la página. Si usa la plantilla y la css por defecto, la anchura máxima de la imagen será de 750 px para la configuración de una barra lateral y de 540 px para la de dos barras laterales. Si usa una plantilla o una css personalizada, los valores pueden cambiar."
-
-msgid "manager.setup.information.description"
-msgstr "En la sección \"Información\" de la barra lateral se encuentran disponibles unas breves descripciones de la editorial para bibliotecarios y posibles autores y lectores."
-
-msgid "manager.setup.information.forAuthors"
-msgstr "Para autores"
-
-msgid "manager.setup.information.forLibrarians"
-msgstr "Para bibliotecarios"
-
-msgid "manager.setup.information.forReaders"
-msgstr "Para lectoras/es"
-
-msgid "manager.setup.institution"
-msgstr "Institución"
-
-msgid "manager.setup.labelName"
-msgstr "Nombre de la etiqueta"
-
-msgid "manager.setup.layoutAndGalleys"
-msgstr "Maquetadores"
-
-msgid "manager.setup.layoutInstructions"
-msgstr "Instrucciones de maquetación"
-
-msgid "manager.setup.layoutInstructionsDescription"
-msgstr ""
-"Puede prepara las instrucciones de maquetación para dar formato a los "
-"elementos que la editorial publica e introducirlos a continuación en HTML o "
-"en texto plano. Estas instrucciones estarán disponibles para el maquetador/a "
-"y para el editor/a de sección en la página de edición de cada envío. (Tenga "
-"en cuenta que no se proporcionan instrucciones predefinidas porque cada "
-"publicación puede utilizar sus propios formatos de archivo, estándares "
-"bibliográficos, hojas de estilo, etc.)"
-
-msgid "manager.setup.layoutTemplates"
-msgstr "Plantillas de maquetació"
-
-msgid "manager.setup.layoutTemplatesDescription"
-msgstr "Se pueden subir las plantillas para que aparezcan en Maquetación para cada uno de los formatos estándares publicados en la publicación (p. ej. monografía, reseña de libro, etc.) usando cualquier formato de archivo (p. ej. pdf., doc., etc.) con anotaciones que especifiquen la fuente, el tamaño, los márgenes, etc. que sirvan como guía para los maquetadores/as y los correctores/as de pruebas."
-
-msgid "manager.setup.layoutTemplates.file"
-msgstr "Fichero de plantilla"
-
-msgid "manager.setup.layoutTemplates.title"
-msgstr "Título"
-
-msgid "manager.setup.lists"
-msgstr "Listas"
-
-msgid "manager.setup.look"
-msgstr "Vista y estilo"
-
-msgid "manager.setup.look.description"
-msgstr "Cabecera de la página principal, contenido, cabecera de la editorial, pie de página, barra de navegación y hoja de estilos."
-
-msgid "manager.setup.mailingAddress.description"
-msgstr "La localización física y la dirección de envío de la editorial."
-
-msgid "manager.setup.settings"
-msgstr "Preferéncias"
-
-msgid "manager.setup.management.description"
-msgstr "Acceso y seguridad, planificación, avisos, corrección de originales, maquetación y revisión."
-
-msgid "manager.setup.managementOfBasicEditorialSteps"
-msgstr "Gestión de los pasos básicos de la editorial"
-
-msgid "manager.setup.managingPublishingSetup"
-msgstr "Gestión y configuración de la publicación"
-
-msgid "manager.setup.managingThePress"
-msgstr "Paso 4. Gestionar la configuración"
-
-msgid "manager.setup.newReleases"
-msgstr "Novedades"
-
-msgid "manager.setup.noImageFileUploaded"
-msgstr "No se cargó ningún archivo de imagen."
-
-msgid "manager.setup.noStyleSheetUploaded"
-msgstr "No se cargó ninguna hoja de estilo."
-
-msgid "manager.setup.note"
-msgstr "Nota"
-
-msgid "manager.setup.notifications"
-msgstr "Notificación de envío del autor/a"
-
-msgid "manager.setup.notifications.copyPrimaryContact"
-msgstr "Enviar una copia al contacto principal, identificado en el paso 1 de la configuración."
-
-msgid "manager.setup.notifications.copySpecifiedAddress"
-msgstr "Enviar una copia a esta dirección de correo electrónico:"
-
-msgid "manager.setup.notifications.description"
-msgstr "Al completar el proceso de envío, se envía automáticamente a los autores/as un correo electrónico de confirmación (que se puede ver y editar en Plantillas de correo electrónico). Además se puede enviar una copia del correo de confirmación como se indica a continuación:"
-
-msgid "manager.setup.notifyAllAuthorsOnDecision"
-msgstr "Cuando se quiera enviar un correo electrónico de notificación para el autor/a, incluya las direcciones de correo de todos los coautores/as, en casos en los que participan varios autores/as, en lugar de añadir únicamente la del usuario/a que realiza el envío."
-
-msgid "manager.setup.noUseCopyeditors"
-msgstr "El editor/a o editor/a de sección responsable del envío asumirá la tarea de corrección de originales."
-
-msgid "manager.setup.noUseLayoutEditors"
-msgstr "El editor/a o editor/a de sección responsable del envío se encargará de la preparación de los archivos en formato HTML, PDF, etc."
-
-msgid "manager.setup.noUseProofreaders"
-msgstr "El editor/a o editor/a de sección responsable del envío se encargará de la inspección de las galeradas."
-
-msgid "manager.setup.numPageLinks"
-msgstr "Enlaces de la página"
-
-msgid "manager.setup.onlineAccessManagement"
-msgstr "Acceder al contenido de la editorial"
-
-msgid "manager.setup.onlineIssn"
-msgstr "ISSN en línea"
-
-msgid "manager.setup.openAccess"
-msgstr "La publicación proporcionará acceso abierto al contenido."
-
-msgid "manager.setup.openAccessPolicy"
-msgstr "Política de acceso abierto"
-
-msgid "manager.setup.openAccessPolicy.description"
-msgstr "Si la editorial proporciona a los lectores/as acceso libre a todo el contenido publicado, introduzca una política de acceso abierto que aparecerá en Políticas > Acerca de la publicación."
-
-msgid "manager.setup.peerReview.description"
-msgstr "Describa la política de evaluación por pares y los procesos para lectores/as y autores/as, incluyendo el número de revisores/as utilizados normalmente para revisar los envíos, los criterios que los revisores/as deben seguir para juzgar los envíos, el tiempo habitual que conllevan las revisiones y los principios que se siguen a la hora de contratar revisores/as. Esto aparecerá en Acerca de la publicación."
-
-msgid "manager.setup.policies"
-msgstr "Políticas"
-
-msgid "manager.setup.policies.description"
-msgstr "Objeto de la revista, proceso de evaluación por pares, secciones, privacidad, seguridad y otros."
-
-msgid "manager.setup.appearanceDescription"
-msgstr "Desde esta página se pueden configurar varios componentes del aspecto de la publicación, incluyendo elementos del encabezado y pie de página, el estilo y tema de la publicación y cómo se presentan las listas de información a los usuarios/as."
-
-msgid "manager.setup.pressDescription"
-msgstr "Descripción de la editorial"
-
-msgid "manager.setup.pressDescription.description"
-msgstr "Incluya aquí una descripción general de la publicación. La descripción estará disponible en la página de inicio de la publicación."
-
-msgid "manager.setup.pressArchiving"
-msgstr "Archivos de la publicación"
-
-msgid "manager.setup.homepageContent"
-msgstr "Contenido de la página de inicio de la publicación"
-
-msgid "manager.setup.homepageContentDescription"
-msgstr "La página de inicio de la publicación consta de enlaces de navegación por defecto. Se pueden añadir más contenidos a la página de inicio utilizando una de las siguientes opciones, que aparecen en el orden descrito."
-
-msgid "manager.setup.pressHomepageContent"
-msgstr "Contenido de la página de inicio de la publicación"
-
-msgid "manager.setup.pressHomepageContentDescription"
-msgstr "La página de inicio de la publicación consta de enlaces de navegación por defecto. Se pueden añadir más contenidos a la página de inicio utilizando una de las siguientes opciones, que aparecen en el orden descrito."
-
-msgid "manager.setup.pressHomepageHeader"
-msgstr "Encabezado de la página de inicio de la publicación"
-
-msgid "manager.setup.pressHomepageHeader.altText"
-msgstr "Encabezado de la página de inicio de la publicación"
-
-msgid "manager.setup.pressHomepageHeaderDescription"
-msgstr "Escoja entre un fragmento de texto del nombre de la publicación, o una versión gráfica del título de la publicación (se aceptan archivos .gif, .jpg o .png) El encabezado y el logo opcional que lo acompañe solo aparecerán en la página de inicio de la publicación. El encabezado por defecto tiene un tamaño de 180 px x 90 px."
-
-msgid "manager.setup.contextInitials"
-msgstr "Iniciales de la editorial"
-
-msgid "manager.setup.layout"
-msgstr "Maquetación de la publicación"
-
-msgid "manager.setup.logo"
-msgstr "Logo de la publicación"
-
-msgid "manager.setup.logo.altText"
-msgstr "Logo de la publicación"
-
-msgid "manager.setup.pageFooter"
-msgstr "Pie de página de la publicación"
-
-msgid "manager.setup.pageFooterDescription"
-msgstr "Este es el pie de página de la publicación. Para cambiar o actualizar el pie de página, pegue el código HTML en el siguiente cuadro de texto. Algunos ejemplos pueden ser otra barra de navegación, un contador, etc. El pie de página aparecerá en todas las páginas."
-
-msgid "manager.setup.pageHeader"
-msgstr "Encabezado de la página de la publicación"
-
-msgid "manager.setup.pageHeaderDescription"
-msgstr "Se puede subir una versión gráfica del título y logo de la publicación (archivo .gif, .jpg o .png), si es posible una versión más pequeña que la usada en la página de inicio, para que aparezca como un encabezado en las páginas de la publicación y que reemplazará la versión textual."
-
-msgid "manager.setup.pressPolicies"
-msgstr "Paso 2. Políticas de la publicación"
-
-msgid "manager.setup.pressSetup"
-msgstr "Configuración de la publicación"
-
-msgid "manager.setup.pressSetupUpdated"
-msgstr "Se actualizó la configuración de la publicación."
-
-msgid "manager.setup.styleSheetInvalid"
-msgstr "Formato de hoja de estilo no válido. El formato aceptado es .css."
-
-msgid "manager.setup.pressTheme"
-msgstr "Tema de la publicación"
-
-msgid "manager.setup.contextTitle"
-msgstr "Nombre de la publicación"
-
-msgid "manager.setup.principalContact"
-msgstr "Contacto principal"
-
-msgid "manager.setup.principalContactDescription"
-msgstr "Este cargo, que puede ser tratado como el editor principal, el gestor editorial, o personal administrativo, se mostrará en la página de inicio de la editorial bajo Contacto, junto con el contacto de soporte técnico."
-
-msgid "manager.setup.printIssn"
-msgstr "Imprimir ISSN"
-
-msgid "manager.setup.privacyStatement"
-msgstr "Declaración de privacidad"
-
-msgid "manager.setup.privacyStatement2"
-msgstr "Declaración de privacidad"
-
-msgid "manager.setup.privacyStatement.description"
-msgstr "Esta declaración aparecerá en Acerca de la publicación, así como en las páginas de Envío y Notificación del autor/a A continuación se incluye una política de privacidad, que puede revisarse en cualquier momento."
-
-msgid "manager.setup.proofingInstructions"
-msgstr "Instrucciones de corrección de pruebas"
-
-msgid "manager.setup.proofingInstructionsDescription"
-msgstr "Las instrucciones de correcciones de pruebas estarán disponibles en la fase de edición del envío para correctores/as de pruebas, autores/as y editores/as de sección A continuación se detallan unas instrucciones por defecto en HTML que el jefe/a editorial puede editar o reemplazar en cualquier momento (en HTML o texto plano)."
-
-msgid "manager.setup.proofreading"
-msgstr "Correctores de pruebas"
-
-msgid "manager.setup.provideRefLinkInstructions"
-msgstr "Proporcione instrucciones a los maquetadores/as."
-
-msgid "manager.setup.publicationScheduleDescription"
-msgstr "Los elementos de la publicación se pueden publicar de forma colectiva, como parte de una monografía con su propia tabla de contenidos. Además, los elementos individuales pueden publicarse en cuanto estén preparados, añadiéndolos a la tabla de contenidos \"actual\". En Acerca de la publicación proporcione a los lectores/as información sobre el sistema que la editorial usará y su frecuencia estimada de publicación."
-
-msgid "manager.setup.publisher"
-msgstr "Editor"
-
-msgid "manager.setup.publisherDescription"
-msgstr "El nombre de la organización que publica la publicación aparecerá en Acerca de la publicación."
-
-msgid "manager.setup.referenceLinking"
-msgstr "Enlaces de referencia"
-
-msgid "manager.setup.refLinkInstructions.description"
-msgstr "Instrucciones de maquetación para los enlaces de referencia"
-
-msgid "manager.setup.restrictMonographAccess"
-msgstr "Los usuarios/as deben registrarse e iniciar sesión para ver el contenido de acceso abierto."
-
-msgid "manager.setup.restrictSiteAccess"
-msgstr "Los usuarios/as deben registrarse e iniciar sesión para ver el sitio de la publicación."
-
-msgid "manager.setup.reviewGuidelines"
-msgstr "Review Guidelines"
-
-msgid "manager.setup.reviewGuidelinesDescription"
-msgstr "Las directrices de revisión externa proporcionarán a los revisores/as externos criterios para juzgar la adecuación de un envío para su publicación en la editorial y podrán incluir instrucciones especiales para conseguir una revisión eficaz y útil. Cuando se lleva a cabo la revisión, se les entrega a los revisores/as externos dos cuadros de texto abiertos, el primero \"para autor/a y editor/a\" y el segundo \"para editor/a\". Además el jefe/a editorial puede crear una evaluación por pares en Formularios de revisión. En todos los casos los editores/as podrán incluir las revisiones correspondientes a cada autor/a."
-
-msgid "manager.setup.internalReviewGuidelines"
-msgstr "Directrices de revisión interna"
-
-msgid "manager.setup.internalReviewGuidelinesDescription"
-msgstr "Al igual que las directrices de revisión externa, estas instrucciones proporcionarán a los revisores/as información sobre la evaluación del envío. Estas instrucciones son para los revisores/as internos, que normalmente hacen un proceso de revisión usando revisores/as internos de la editorial."
-
-msgid "manager.setup.reviewOptions"
-msgstr "Opciones de revisión"
-
-msgid "manager.setup.reviewOptions.automatedReminders"
-msgstr "Recordatorios de correo electrónico automáticos"
-
-msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
-msgstr ""
-"Para activar estas opciones, el administrador/a del sitio debe habilitar la "
-"opción scheduled_tasks en el archivo de configuración de OMP. Será "
-"necesario modificar la configuración del servidor para que sea compatible "
-"con esta funcionalidad (que puede no estar disponible en todos los "
-"servidores), como se indica en la documentación de OMP."
-
-msgid "manager.setup.reviewOptions.noteOnModification"
-msgstr "Los valores por defectos se pueden modificar en cualquier envío durante el proceso editorial."
-
-msgid "manager.setup.reviewOptions.onQuality"
-msgstr "Los editores/as pueden calificar a los revisores/as en una escala de de cinco puntos después de cada revisión."
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
-msgstr "Permitir que los revisores/as tengan acceso a los archivos de envío sólo después de que éstos/as hayan aceptado la revisión."
-
-msgid "manager.setup.reviewOptions.reviewerAccess"
-msgstr "Acceso para los revisores/as"
-
-msgid "manager.setup.reviewOptions.reviewerRatings"
-msgstr "Calificación de los revisores/as"
-
-msgid "manager.setup.reviewOptions.reviewerReminders"
-msgstr "Recordatorios para los revisores/as"
-
-msgid "manager.setup.reviewOptions.reviewTime"
-msgstr "Plazo para la revisión"
-
-msgid "manager.setup.reviewPolicy"
-msgstr "Política de evaluación"
-
-msgid "manager.setup.reviewProcess"
-msgstr "Proceso de revisión"
-
-msgid "manager.setup.reviewProcessDescription"
-msgstr "OMP es compatible con dos modelos para gestionar el proceso de revisión. Se recomienda el proceso de revisión estándar porque guía a los revisores/as a través del proceso, asegura un historial completo de revisión para cada envío y saca provecho de las notificaciones de recordatorio automático y de las recomendaciones estándares para envíos (Aceptar, Aceptar con revisiones, Enviar para revisión, Enviar a otro lugar, Rechazar, Ver comentarios).
Seleccione una de las siguientes:"
-
-msgid "manager.setup.reviewProcessEmail"
-msgstr "Proceso de revisión de los archivos adjuntos a correos electrónicos"
-
-msgid "manager.setup.reviewProcessStandard"
-msgstr "Proceso de revisión estándar"
-
-msgid "manager.setup.reviewProcessStandardDescription"
-msgstr "Los editores/as mandarán por correo electrónico a los revisores/as seleccionados el título y el resumen del envío, así como una invitación para iniciar sesión en la página web de la publicación para completar la revisión. Los revisores/as entrarán en la página web de la publicación para aceptar el encargo de revisión, descargar los envíos, enviar comentarios y seleccionar una recomendación."
-
-msgid "manager.setup.searchEngineIndexing"
-msgstr "Indización en buscadores"
-
-msgid "manager.setup.searchEngineIndexing.description"
-msgstr ""
-"Ayude a motores de búsqueda como Google a descubrir y mostrar su sitio. Por "
-"ello le animamos a enviar su "
-"mapa del sitio."
-
-msgid "manager.setup.sectionsAndSectionEditors"
-msgstr "Secciones y editores/as de secciones"
-
-msgid "manager.setup.sectionsDefaultSectionDescription"
-msgstr ""
-"(Si no se han añadido secciones, los elementos se envían por defecto a la "
-"sección Monografías.)"
-
-msgid "manager.setup.sectionsDescription"
-msgstr "Para crear o modificar secciones de la publicación (p. ej. Monografías, Reseñas de libros, etc.) vaya a la sección Gestión.
Cuando los autores/as envíen elementos a la publicación designarán..."
-
-msgid "manager.setup.securitySettings"
-msgstr "Configuración de acceso y seguridad"
-
-msgid "manager.setup.securitySettings.note"
-msgstr "Otras opciones relacionadas con la seguridad y el acceso se pueden configurar desde la página de Acceso y seguridad."
-
-msgid "manager.setup.selectEditorDescription"
-msgstr "El editor/a lo verá durante el proceso editorial."
-
-msgid "manager.setup.selectSectionDescription"
-msgstr "La sección de la publicación para la que se considerará el elemento."
-
-msgid "manager.setup.showGalleyLinksDescription"
-msgstr "Mostrar siempre los enlaces de galeradas e indicar que el acceso es restringido."
-
-msgid "manager.setup.sponsors.description"
-msgstr "El nombre de las organizaciones (p. ej. asociaciones académicas, departamentos de universidades, cooperativas, etc.) que patrocinan a la publicación aparecerán en Acerca de la publicación y se acompañarán de una nota de agradecimiento."
-
-msgid "manager.setup.stepsToPressSite"
-msgstr "Cinco pasos para configurar el sitio web de una publicación"
-
-msgid "manager.setup.subjectClassification"
-msgstr "Clasificación por materias"
-
-msgid "manager.setup.subjectClassificationExamples"
-msgstr "p. ej., MSC (Mathematics Subject Classification, Clasificación de las matemáticas); LCC (Library of Congress Classification, Clasificación desarrollada por la Biblioteca del Congreso de EEUU)"
-
-msgid "manager.setup.subjectExamples"
-msgstr "(p. ej., fotosíntesis; agujeros negros; Teorema de los cuatro colores; Teoría de Bayes)"
-
-msgid "manager.setup.subjectKeywordTopic"
-msgstr "Palabras clave"
-
-msgid "manager.setup.subjectProvideExamples"
-msgstr "Proporcione ejemplos de palabras clave y temas que sirvan de guía para los autores/as"
-
-msgid "manager.setup.submissionGuidelines"
-msgstr "Indicaciones para el envío"
-
-msgid "manager.setup.submissionPreparationChecklist"
-msgstr "Lista de comprobación de preparación de propuestas"
-
-msgid "manager.setup.submissionPreparationChecklistDescription"
-msgstr "Cuando se realiza un envío a la publicación, se pide a los autores/as que comprueben que se ha completado cada elemento de la lista de comprobación de preparación de envíos antes de continuar. La lista de comprobación también aparece en las indicaciones para el autor/a, en Acerca de la publicación. Se puede editar la lista a continuación, pero todos los elementos de la lista necesitarán haberse comprobado para que los autores/as puedan continuar con el envío. "
-
-msgid "maganer.setup.submissionChecklistItemRequired"
-msgstr "La lista de comprobación de elementos es obligatoria."
-
-msgid "manager.setup.workflow"
-msgstr "Flujo de trabajo"
-
-msgid "manager.setup.submissions.description"
-msgstr "Indicaciones para los autores/as, derechos de autor/a e indexación (incluido el registro)."
-
-msgid "manager.setup.technicalSupportContact"
-msgstr "Contacto de soporte técnico"
-
-msgid "manager.setup.technicalSupportContactDescription"
-msgstr "Esta persona aparecerá en la lista de la página de contacto de la publicación para el uso de editores/as, autores/as y revisores/as, y deberá estar familiarizado con el sistema desde la perspectiva de todos los roles. Como el sistema de publicación necesita muy poca asistencia técnica, esta será considerada como una tarea a tiempo parcial. Se pueden dar casos como, por ejemplo, cuando los autores/as y revisores/as tienen dificultades con las instrucciones o formatos de los archivos, o cuando es necesario asegurar que se realiza regularmente una copia de seguridad de la publicación en el servidor."
-
-msgid "manager.setup.typeExamples"
-msgstr "(p. ej., investigación histórica; casi experimental; análisis literario; encuesta/entrevista)"
-
-msgid "manager.setup.typeMethodApproach"
-msgstr "Tipo (método/enfoque)"
-
-msgid "manager.setup.typeProvideExamples"
-msgstr "Proporcione ejemplos de tipos de investigación, métodos y enfoques para este campo"
-
-msgid "manager.setup.useCopyeditors"
-msgstr "Asignar un corrector/a de originales para cada envío."
-
-msgid "manager.setup.useEditorialReviewBoard"
-msgstr "La editorial utilizará un consejo editorial/de revisión."
-
-msgid "manager.setup.useImageLogo"
-msgstr "Logo de la publicación"
-
-msgid "manager.setup.useImageLogoDescription"
-msgstr "Es posible subir un logo de la publicación y usarlo junto al título en imagen o texto configurado anteriormente."
-
-msgid "manager.setup.useImageTitle"
-msgstr "Imagen del título"
-
-msgid "manager.setup.useStyleSheet"
-msgstr "Hoja de estilo de la publicación"
-
-msgid "manager.setup.useLayoutEditors"
-msgstr "Asignar al maquetista la preparación de los archivos en formato HTML, PDF, etc., para su posterior publicación en la red."
-
-msgid "manager.setup.useProofreaders"
-msgstr "Se asignará a un corrector/a de pruebas la inspección (junto con los autores/as) de las galeradas antes de la publicación."
-
-msgid "manager.setup.userRegistration"
-msgstr "Registro de usuarios/as"
-
-msgid "manager.setup.useTextTitle"
-msgstr "Título en formato de texto"
-
-msgid "manager.setup.volumePerYear"
-msgstr "Volúmenes por año"
-
-msgid "manager.setup.registerForIndexing"
-msgstr "Registrar la publicación para su indexación (recopilación de metadatos)"
-
-msgid "manager.setup.publicationFormat.code"
-msgstr "Formato"
-
-msgid "manager.setup.publicationFormat.codeRequired"
-msgstr "Especifique un formato."
-
-msgid "manager.setup.publicationFormat.nameRequired"
-msgstr "Especifique un nombre para el formato."
-
-msgid "manager.setup.publicationFormat.physicalFormat"
-msgstr "¿Es un formato físico (no digital)?"
-
-msgid "manager.setup.publicationFormat.inUse"
-msgstr "No se puede eliminar el formato de publicación porque se está utilizando en una monografía de su publicación."
-
-msgid "manager.setup.newPublicationFormat"
-msgstr "Nuevo formato de publicación"
-
-msgid "manager.setup.newPublicationFormatDescription"
-msgstr "Para crear un formato de publicación nuevo, rellene el formulario siguiente y haga clic en el botón \"Crear\"."
-
-msgid "manager.setup.genresDescription"
-msgstr "Los géneros se utilizan para nombrar archivos y se presentan en un menú desplegable en el momento de subir los archivos. Los géneros designados como ## permiten que el usuario/a asocie el archivo con el libro entero 99Z o con un capítulo concreto por número (p. ej., 02)."
-
-msgid "manager.setup.reviewProcessEmailDescription"
-msgstr "Los editores/as mandan a los revisores/as la solicitud para que revisen el envío adjunto al correo electrónico. Los revisores/as mandan un correo electrónico a los editores/as con su aceptación (o rechazo), así como la revisión y la recomendación. Los editores/as abren la aceptación (o rechazo) de los revisores/as, así como la revisión y la recomendación en la página de revisión del envío para grabar el proceso de revisión."
-
-msgid "manager.setup.genres"
-msgstr "Géneros"
-
-msgid "manager.setup.newGenre"
-msgstr "Nuevo género de monografía"
-
-msgid "manager.setup.newGenreDescription"
-msgstr "Para crear un género nuevo, rellene el formulario siguiente y haga clic en el botón \"Crear\"."
-
-msgid "manager.setup.deleteSelected"
-msgstr "Eliminar selección"
-
-msgid "manager.setup.restoreDefaults"
-msgstr "Restaurar la configuración por defecto"
-
-msgid "manager.setup.prospectus"
-msgstr "Guía del prospecto"
-
-msgid "manager.setup.prospectusDescription"
-msgstr "La guía del prospecto es un documento preparado por la editorial que ayuda al autor/a a describir los materiales enviados de forma que permita a una editorial determinar el valor del envío. Un prospecto puede incluir muchos elementos, desde potencial de mercado hasta valor teórico; en cualquier caso, una editorial debe crear una guía de prospecto que complemente su agenda de publicación."
-
-msgid "manager.setup.submitToCategories"
-msgstr "Permitir envíos de categorías"
-
-msgid "manager.setup.submitToSeries"
-msgstr "Permitir envíos de series"
-
-msgid "manager.setup.issnDescription"
-msgstr "El ISSN (número de serie estándar internacional) es un número de ocho dígitos que identifica las publicaciones periódicas, incluyendo las series electrónicas. Lo gestiona una red internacional de centros nacionales coordinada por un centro internacional cuya sede se encuentra en París y está respaldada por la Unesco y el Gobierno francés. El número se puede obtener desde la página web del ISSN. Esto puede hacerse en cualquier momento de la ejecución de la publicación."
-
-msgid "manager.setup.currentFormats"
-msgstr "Formatos actuales"
-
-msgid "manager.setup.categoriesAndSeries"
-msgstr "Categorías y series"
-
-msgid "manager.setup.categories.description"
-msgstr "Puede crear una lista de categorías para organizar sus publicaciones. Las categorías son grupos de libros de la misma materia, por ejemplo, economía, literatura, poesía, etc. Las categorías pueden contener subcategorías: por ejemplo, la categoría Economía puede incluir las subcategorías Microeconomía y Macroeconomía. Los visitantes podrán buscar y explorar la publicación por categorías."
-
-msgid "manager.setup.series.description"
-msgstr "Puede crear un número indefinido de series para organizar sus publicaciones. Una serie representa un conjunto de libros dedicado a un tema propuesto, normalmente por uno o varios miembros de la facultad. Los visitantes podrán buscar y explorar la publicación por series."
-
-msgid "manager.setup.reviewForms"
-msgstr "Formularios de revisión"
-
-msgid "manager.setup.roleType"
-msgstr "Tipo de rol"
-
-msgid "manager.setup.authorRoles"
-msgstr "Roles del autor/a"
-
-msgid "manager.setup.managerialRoles"
-msgstr "Roles de gestión"
-
-msgid "manager.setup.availableRoles"
-msgstr "Funciones disponibles"
-
-msgid "manager.setup.currentRoles"
-msgstr "Funciones actuales"
-
-msgid "manager.setup.internalReviewRoles"
-msgstr "Roles de revisión interna"
-
-msgid "manager.setup.masthead"
-msgstr "Equipo editorial"
-
-msgid "manager.setup.editorialTeam"
-msgstr "Equipo editorial"
-
-msgid "manager.setup.editorialTeam.description"
-msgstr "El equipo editorial debe contener una lista de editores/as, directores/as de gestión y otros cargos asociados a la editorial. La información que introduzca aquí aparecerá en Acerca de la publicación."
-
-msgid "manager.setup.files"
-msgstr "Archivos"
-
-msgid "manager.setup.productionTemplates"
-msgstr "Plantillas de producción"
-
-msgid "manager.files.note"
-msgstr "Nota: El explorador de archivos es una función avanzada que permite visualizar y manipular directamente archivos y directorios asociados a una publicación."
-
-msgid "manager.setup.copyrightNotice.sample"
-msgstr ""
-"Notificaciones sobre derechos de autor/a de Creative Commons
\n"
-"Política para publicaciones que ofrecen acceso abierto
Los autores/as que publiquen en la editorial aceptan los siguientes términos:\n"
-"\t- Los autores/as poseen derechos de autor/a y conceden a la editorial el derecho de la primera publicación junto con la obra autorizada conforme a una Licencia de reconocimiento de Creative Commons que permite a terceras personas publicar la obra con una nota de reconocimiento en la publicación sobre la autoría de la obra y la publicación inicial.
\n"
-"\t- Los autores/as pueden acordar otra serie contractual independiente para una distribución no exclusiva de la versión de la obra publicada por la editorial (p. ej. subirla a un repositorio internacional o publicarla en un libro), con una nota de reconocimientos de la publicación inicial en la editorial.
\n"
-"\t- Los autores/as pueden publicar su obra en la red (p. ej. en repositorios institucionales o en su página web) antes de y durante el proceso de envío, ya que puede facilitar intercambios productivos, así como una citación más rápida y más amplia de la obra publicada (Véase El efecto del acceso abierto).
\n"
-"
\n"
-"\n"
-"Política para publicaciones que ofrecen acceso abierto
Los autores/as que publiquen en la editorial aceptan los siguientes términos:\n"
-"\t- Los autores/as poseen derechos de autor/a y conceden a la editorial el derecho de la primera publicación junto con la obra [ESPECIFIQUE PERIODO DE TIEMPO] tras haberse publicado debidamente autorizada conforme a una Licencia de reconocimiento de Creative Commons que permite a terceras personas publicar la obra con una nota de reconocimiento en la publicación sobre la autoría de la obra y la publicación inicial.<segmento 1562>
\n"
-"\t - Los autores/as pueden acordar otra serie contractual independiente para una distribución no exclusiva de la versión de la obra publicada por la editorial (p. ej. subirla a un repositorio internacional o publicarla en un libro), con una nota de reconocimientos de la publicación inicial en la editorial.
\n"
-"\t - Los autores/as pueden publicar su obra en la red (p. ej. en repositorios institucionales o en su página web) antes de y durante el proceso de envío, ya que puede facilitar intercambios productivos, así como una citación más rápida y más amplia de la obra publicada (Véase El efecto del acceso abierto).
\n"
-"
"
-
-msgid "manager.setup.subjectClassificationDescription"
-msgstr "[La publicación usará un sistema de clasificación de materias disponible en la web.
Título del sistema de clasificación"
-
-msgid "manager.setup.basicEditorialStepsDescription"
-msgstr ""
-"Pasos: Cola de envíos > Revisión de envíos > Edición de envíos > "
-"Tabla de contenidos.
\n"
-"Seleccione un modelo para manejar estos aspectos del proceso editorial. ("
-"Para designar a un editor/a de gestión y a un editor/a de serie, vaya al "
-"apartado Editores/as en Gestión de la publicación.)"
-
-msgid "manager.setup.referenceLinkingDescription"
-msgstr ""
-"Para permitir a los lectores/as buscar versiones en línea de la obra citada por un autor/a, dispone de las siguientes opciones.
\n"
-"\n"
-"\n"
-"\t- Añadir una herramienta de lectura
El jefe/a editorial puede añadir \"Buscar referencias\" a las herramientas de lectura que acompañan a los elementos publicados, lo que permite a los lectores/as pegar el título de una referencia y buscarlo en las bases de datos académicas preseleccionadas para dicha obra.
\n"
-"\t- Enlaces incorporados en las referencias
El maquetador/a puede añadir un enlace a las referencias que pueden consultarse en línea usando las siguiente instrucciones (que se pueden editar).
\n"
-"
"
-
-msgid "manager.setup.registerForIndexingDescription"
-msgstr "Para indexar los contenidos de la publicación dentro de un sistema global de bases de datos de investigación, registre la URL de su publicación con el recopilador de metadatos de Public Knowledge Project. La herramienta recoge los metadatos de cada elemento indexado en la publicación, permitiendo búsquedas colectivas y adecuadas entre las páginas de investigación que se acojan al Protocolo de iniciativa de archivos abiertos para recopilación de metadatos.
Tenga en cuenta que si el administrador/a del sitio ya ha registrado el sitio con la recopilación PKP, su publicación se indexará automáticamente y no tendrá que registrar su publicación.
Haga clic aquí e introduzca {$siteUrl} en la URL del sitio, y {$oaiUrl} en el archivo de la base URL para OAI.."
-
-msgid "settings.roles.gridDescription"
-msgstr "Los roles son grupos de usuarios/as de la publicación que tienen acceso a diferentes niveles de permiso y a flujos de trabajo relacionados en la publicación. Hay cinco niveles de permiso diferentes: los jefes/as editoriales tienen acceso a la publicación completa (todo el contenido y la configuración); los editores/as tienen acceso a todo el contenido dentro de sus series; los ayudantes de producción tienen acceso a todas las monografías que un editor/a les ha asignado explícitamente; los revisores/as pueden ver y realizar las revisiones que se les ha asignado; y los autores/as pueden ver e interactuar con una cantidad limitada de información en sus propios envíos. Además, hay cinco fases de tareas diferentes a las que podrán dar acceso los roles: envío, revisión interna, revisión externa, edición y producción."
-
-msgid "manager.publication.library"
-msgstr "Biblioteca de la publicación"
-
-msgid "manager.settings.publisherCodeType"
-msgstr "Tipo de código de la editorial"
-
-msgid "user.authorization.pluginLevel"
-msgstr "No tiene suficientes privilegios para gestionar este módulo."
-
-msgid "manager.setup.displayOnHomepage"
-msgstr "Contenido de la página de inicio"
-
-msgid "manager.setup.resetPermissions"
-msgstr "Reinicia los permisos de monografía"
-
-msgid "manager.setup.resetPermissions.confirm"
-msgstr ""
-"¿Seguro que desea reiniciar los datos de permisos ya asociados a las "
-"monografías?"
-
-msgid "manager.setup.resetPermissions.description"
-msgstr ""
-"La declaración de derechos de autor y la información de licencia estarán "
-"ligadas permanentemente al contenido publicado, lo que garantiza que estos "
-"datos no cambiarán en el caso de producirse un cambio en las políticas de la "
-"editorial para nuevos envíos. Para reiniciar la información sobre permisos "
-"almacenada y todavía ligada al contenido publicado, utilice el botón "
-"siguiente."
-
-msgid "grid.genres.title.short"
-msgstr "Componentes"
-
-msgid "grid.genres.title"
-msgstr "Componentes de la monografía"
-
-msgid "manager.payment.generalOptions"
-msgstr "Opciones generales"
-
-msgid "manager.payment.options.enablePayments"
-msgstr ""
-"Se han habilitado los pagos para esta publicación. Tenga en cuenta que los "
-"usuarios/as deberán iniciar la sesión para hacer los pagos."
-
-msgid "manager.tools.statistics"
-msgstr ""
-"Herramientas para generar informes relacionados con estadísticas de uso ("
-"visualización de páginas de índice de catálogo, visualización de páginas de "
-"resumen de monografías, descargas de archivos de monografías)"
-
-msgid "manager.setup.aboutPress"
-msgstr "Sobre la editorial"
-
-msgid "manager.setup.aboutPress.description"
-msgstr "Incluya cualquier información sobre su editorial, la cual pueda ser de interés para lectores, autores y revisores. Esto podría incluir su política de acceso abierto, el enfoque y el alcance de la editorial, el aviso de copyright, la divulgación de patrocinio, el historial de la editorial y una declaración de privacidad."
-
-msgid "grid.series.pathAlphaNumeric"
-msgstr "La ruta de las series solo admite letras y números."
-
-msgid "grid.series.pathExists"
-msgstr "La ruta de la serie ya existe. Introduzca una ruta única."
-
-msgid "grid.series.urlWillBe"
-msgstr "La URL de las series, será: {$sampleUrl}"
-
-msgid "stats.publications.abstracts"
-msgstr "Registros del catálogo"
-
-msgid "stats.publications.countOfTotal"
-msgstr "{$count} de {$total} monografías"
-
-msgid "stats.publications.totalGalleyViews.timelineInterval"
-msgstr "Vistas totales de archivos por fecha"
-
-msgid "stats.publications.totalAbstractViews.timelineInterval"
-msgstr "Vistas totales del catálogo por fecha"
-
-msgid "stats.publications.none"
-msgstr ""
-"No se encontraron monografías con estadísticas de uso que coincidan con "
-"estos parámetros."
-
-msgid "stats.publications.details"
-msgstr "Detalles de la monografía"
-
-msgid "stats.publicationStats"
-msgstr "Estadísticas de la monografía"
-
-msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
-msgstr "Seleccione la categoría a la que desea vincular este elemento del menú."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.category"
-msgstr "Seleccionar categoría"
-
-msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
-msgstr "Seleccione la serie a la que desea vincular este elemento del menú."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.series"
-msgstr "Seleccionar Series"
-
-msgid "manager.setup.resetPermissions.success"
-msgstr "Los permisos de la monografía se restablecieron correctamente."
-
-msgid "manager.setup.siteAccess.viewContent"
-msgstr "Ver contenido de la monografía"
-
-msgid "manager.setup.siteAccess.view"
-msgstr "Acceso al sitio"
-
-msgid "manager.setup.searchEngineIndexing.success"
-msgstr "Los ajustes de indexación del motor de búsqueda se han actualizado."
-
-msgid "manager.setup.searchDescription.description"
-msgstr ""
-"Proporcione una breve descripción (50-300 caracteres) de la publicación que "
-"los motores de búsqueda puedan mostrar cuando listen la publicación en los "
-"resultados de búsqueda."
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
-msgstr ""
-"Incluir un enlace seguro en la invitación por correo electrónico a los "
-"revisores."
-
-#, fuzzy
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
-msgstr ""
-"A los revisores se les puede enviar un enlace seguro en la invitación por "
-"correo electrónico, que les permitirá acceder a la revisión sin iniciar "
-"sesión. El acceso a otras páginas requiere que inicien sesión."
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
-msgstr "Acceso del revisor/a con un clic"
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
-msgstr "Restringir el acceso al archivo"
-
-msgid "manager.setup.privacyStatement.success"
-msgstr "La declaración de privacidad ha sido actualizada."
-
-msgid "manager.setup.numPageLinks.description"
-msgstr ""
-"Limitar el número de enlaces que se muestran en las páginas sucesivas en una "
-"lista."
-
-msgid "manager.setup.masthead.success"
-msgstr "Los detalles de la cabecera de este medio se han actualizado."
-
-msgid "manager.setup.lists.success"
-msgstr "La configuración de la lista para esta publicación se ha actualizado."
-
-msgid "manager.setup.keyInfo.description"
-msgstr ""
-"Proporcione una breve descripción de su medio e identifique a los editores, "
-"directores generales y otros miembros de su equipo editorial."
-
-msgid "manager.setup.keyInfo"
-msgstr "Información clave"
-
-msgid "manager.setup.itemsPerPage.description"
-msgstr ""
-"Limite el número de elementos (por ejemplo, envíos, usuarios o tareas de "
-"edición) a mostrar en una lista antes de mostrar elementos sucesivos en otra "
-"página."
-
-msgid "manager.setup.itemsPerPage"
-msgstr "Elementos por página"
-
-msgid "manager.setup.information.success"
-msgstr "La información de este medio fue actualizado."
-
-msgid "manager.setup.information"
-msgstr "Información"
-
-msgid "manager.setup.identity"
-msgstr "Identidad del medio"
-
-msgid "manager.setup.numAnnouncementsHomepage.description"
-msgstr ""
-"Número de avisos que mostrar en la página de inicio. Dejelo vacío para no "
-"mostrar ninguno."
-
-msgid "manager.setup.numAnnouncementsHomepage"
-msgstr "Mostrar en la página principal"
-
-msgid "manager.setup.enableAnnouncements.description"
-msgstr ""
-"Se pueden publicar avisos para informar a los lectores sobre noticias y "
-"eventos. Los avisos publicados aparecerán en la página de avisos."
-
-msgid "manager.setup.emailSignature.description"
-msgstr ""
-"Los correos electrónicos predefinidos que envía el sistema en nombre de la "
-"editorial tendrán la siguiente firma al final."
-
-msgid "manager.setup.emailBounceAddress.disabled"
-msgstr ""
-"Para enviar correos electrónicos que no se pueden entregar a una dirección "
-"rechazada, el administrador del sitio debe habilitar la opción "
-"allow_envelope_sender
en el archivo de configuración del sitio. "
-"Puede ser necesaria la configuración del servidor, como se indica en la "
-"documentación de OMP."
-
-msgid "manager.setup.displayNewReleases.label"
-msgstr "Nuevos lanzamientos"
-
-msgid "manager.setup.displayInSpotlight.label"
-msgstr "Foco"
-
-msgid "manager.setup.displayFeaturedBooks.label"
-msgstr "Libros destacados"
-
-msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
-msgstr ""
-"Las imágenes se reducirán cuando sean más grandes que este tamaño, pero "
-"nunca se inflarán ni se estirarán para ajustarse a estas dimensiones."
-
-msgid "manager.setup.coverThumbnailsMaxWidth"
-msgstr "Ancho máximo de la imagen de portada"
-
-msgid "manager.setup.coverThumbnailsMaxHeight"
-msgstr "Altura máxima de la imagen de portada"
-
-msgid "manager.setup.contextSummary"
-msgstr "Resumen de la publicación"
-
-msgid "manager.setup.contextAbout.description"
-msgstr ""
-"Incluya toda la información sobre su editorial que pueda ser de interés para "
-"lectores/as, autores/as o revisores/as. Esto podría incluir su política de "
-"acceso abierto, el enfoque y el alcance del mismo, la divulgación del "
-"patrocinio y la historia de la editorial."
-
-msgid "manager.setup.contextAbout"
-msgstr "Acerca de la publicación"
-
-msgid "manager.setup.announcements.success"
-msgstr "La configuración de los avisos ha sido actualizada."
-
-msgid "manager.settings.publisherCodeType.invalid"
-msgstr "Este no es un tipo de código de editorial válido."
-
-msgid "manager.settings.publisher.identity"
-msgstr "Identidad de la editorial"
-
-msgid "manager.payment.success"
-msgstr "La configuración de pago ha sido actualizada."
-
-msgid "manager.setup.pressThumbnail.description"
-msgstr ""
-"Un pequeño logotipo o representación de la editorial que pueda utilizarse en "
-"listados de editoriales."
-
-msgid "manager.setup.pressThumbnail"
-msgstr "Miniatura de la editorial"
-
-msgid "manager.setup.disableSubmissions.description"
-msgstr ""
-"Impedir que los usuarios/as envíen nuevos artículos a la editorial. Los "
-"envíos se pueden deshabilitar individualmente para cada serie editorial en "
-"la página de ajustes de series editoriales."
-
-msgid "manager.setup.disableSubmissions.notAccepting"
-msgstr ""
-"La editorial no acepta envíos en este momento. Visite los ajustes del flujo "
-"editorial para habilitar los envíos."
-
-msgid "manager.series.confirmDeactivateSeries.error"
-msgstr ""
-"Debe estar activa como mínimo una serie. Visite los ajustes del flujo de "
-"trabajo para deshabilitar todos los envíos a la editorial."
diff --git a/locale/es_ES/submission.po b/locale/es_ES/submission.po
deleted file mode 100644
index aaffd769c8c..00000000000
--- a/locale/es_ES/submission.po
+++ /dev/null
@@ -1,488 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2020-11-30 18:48+0000\n"
-"Last-Translator: Jordi LC \n"
-"Language-Team: Spanish \n"
-"Language: es_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 "submission.submit.title"
-msgstr "Enviar una monografía"
-
-msgid "submission.title"
-msgstr "Título de libro"
-
-msgid "submission.select"
-msgstr "Seleccionar propuesta"
-
-msgid "submission.synopsis"
-msgstr "Sinopsis"
-
-msgid "submission.workflowType"
-msgstr "Tipo de libro"
-
-msgid "submission.workflowType.description"
-msgstr "Una monografía es una obra escrita totalmente por uno o más autores/as. Una obra colectiva tiene diferentes autores/as para cada capítulo (los detalles de capítulo se introducen posteriormente durante el proceso)."
-
-msgid "submission.workflowType.editedVolume"
-msgstr "Obra colectiva: los autores/as se asocian con sus propios capítulos."
-
-msgid "submission.workflowType.authoredWork"
-msgstr "Monografía: los autores/as se asocian con el libro completo."
-
-msgid "submission.monograph"
-msgstr "Monografía"
-
-msgid "submission.published"
-msgstr "Producción lista"
-
-msgid "submission.fairCopy"
-msgstr "Copia en limpio"
-
-msgid "submission.artwork.permissions"
-msgstr "Permisos"
-
-msgid "submission.chapter"
-msgstr "Capítulo"
-
-msgid "submission.chapters"
-msgstr "Capítulos"
-
-msgid "submission.chaptersDescription"
-msgstr "Puede hacer una lista de los capítulos aquí y asignarlos a los colaboradores que figuran en la lista de colaboradores más arriba. Los colaboradores/as podrán acceder al capítulo durante varias fases del proceso de publicación."
-
-msgid "submission.chapter.addChapter"
-msgstr "Añadir capítulo"
-
-msgid "submission.chapter.editChapter"
-msgstr "Editar capítulo"
-
-msgid "submission.copyedit"
-msgstr "Corregir el estilo"
-
-msgid "submission.publicationFormats"
-msgstr "Formatos de publicación"
-
-msgid "submission.proofs"
-msgstr "Pruebas"
-
-msgid "submission.download"
-msgstr "Descargar"
-
-msgid "submission.sharing"
-msgstr "Compartir"
-
-msgid "manuscript.submission"
-msgstr "Propuesta de manuscrito"
-
-msgid "submission.round"
-msgstr "Ronda {$round}"
-
-msgid "submissions.queuedReview"
-msgstr "En revisión"
-
-msgid "manuscript.submissions"
-msgstr "Propuestas de manuscritos"
-
-msgid "submission.confirmSubmit"
-msgstr "¿Seguro que deseas proponer este manuscrito a la editorial?"
-
-msgid "submission.metadata"
-msgstr "Metadatos"
-
-msgid "submission.supportingAgencies"
-msgstr "Agencias de apoyo"
-
-msgid "grid.action.addChapter"
-msgstr "Crear un nuevo capítulo"
-
-msgid "grid.action.editChapter"
-msgstr "Editar este capítulo"
-
-msgid "grid.action.deleteChapter"
-msgstr "Eliminar este capítulo"
-
-msgid "submission.submit"
-msgstr "Comenzar nueva propuesta"
-
-msgid "submission.submit.newSubmissionMultiple"
-msgstr "Comenzar una nueva propuesta para"
-
-msgid "submission.submit.newSubmissionSingle"
-msgstr "Nuevo Envío"
-
-msgid "submission.submit.upload"
-msgstr "Subir"
-
-msgid "submission.submit.cancelSubmission"
-msgstr "Puedes completar esta propuesta más tarde seleccionando Propuestas Activas desde la página de inicio del autor."
-
-msgid "submission.submit.selectSeries"
-msgstr "Seleccionar serie (opcional)"
-
-msgid "submission.submit.seriesPosition"
-msgstr "Lugar que ocupa dentro de esta serie, colección, ... (por ejemplo, Libro 2, o Volumen 2)"
-
-msgid "submission.submit.form.localeRequired"
-msgstr "Selecciona una lengua para la propuesta."
-
-msgid "submission.submit.privacyStatement"
-msgstr "Declaración de privacidad"
-
-msgid "submission.submit.contributorRole"
-msgstr "Rol del colaborador"
-
-msgid "submission.submit.form.authorRequired"
-msgstr "Se necesita al menos un autor."
-
-msgid "submission.submit.form.authorRequiredFields"
-msgstr "Tienen que añadirse el nombre, apellido(s) y dirección de correo electrónico de cada autor."
-
-msgid "submission.submit.form.titleRequired"
-msgstr "Introduce el texto de tu monografía."
-
-msgid "submission.submit.form.abstractRequired"
-msgstr "Introduce un breve resumen de tu monografía."
-
-msgid "submission.submit.form.contributorRoleRequired"
-msgstr "Selecciona el rol del colaborador."
-
-msgid "submission.submit.submissionFile"
-msgstr "Fichero de la propuesta"
-
-msgid "submission.submit.prepare"
-msgstr "Preparar"
-
-msgid "submission.submit.catalog"
-msgstr "Catálogo"
-
-msgid "submission.submit.metadata"
-msgstr "Metadatos"
-
-msgid "submission.submit.finishingUp"
-msgstr "Finalizar"
-
-msgid "submission.submit.nextSteps"
-msgstr "Pasos siguientes"
-
-msgid "submission.submit.coverNote"
-msgstr "Nota para el Editor"
-
-msgid "submission.submit.generalInformation"
-msgstr "Información general"
-
-msgid "submission.submit.whatNext.description"
-msgstr "El envío se notificó a la editorial y usted recibió un correo electrónico de confirmación por sus registros. Una vez revisado el envío por el editor/a, este contactará con usted."
-
-msgid "submission.submit.checklistErrors"
-msgstr "Lea y marque los elementos en la lista de comprobación del envío. No se marcaron {$itemsRemaining} elementos."
-
-msgid "submission.submit.placement"
-msgstr "Disposición de la propuesta"
-
-msgid "submission.submit.userGroup"
-msgstr "Realizar propuesta como..."
-
-msgid "submission.submit.userGroupDescription"
-msgstr "Si estás realizando la obra conjunta, deberás elegir el rol Editor de obra conjunta."
-
-msgid "grid.chapters.title"
-msgstr "Capítulos"
-
-msgid "grid.copyediting.deleteCopyeditorResponse"
-msgstr "Borrar archivo subido del corrector"
-
-msgid "publication.catalogEntry"
-msgstr "Catálogo"
-
-msgid "submission.editCatalogEntry"
-msgstr "Registro"
-
-msgid "submission.catalogEntry.new"
-msgstr "Nueva entrada de catálogo"
-
-msgid "submission.catalogEntry.confirm"
-msgstr "Añadir este libro al catálogo público"
-
-msgid "submission.catalogEntry.confirm.required"
-msgstr "Confirma que la propuesta está lista para situarse en el catálogo."
-
-msgid "submission.catalogEntry.isAvailable"
-msgstr "Esta monografía está lista para incluirse en un catalogo público."
-
-msgid "submission.catalogEntry.monographMetadata"
-msgstr "Monografía"
-
-msgid "submission.catalogEntry.catalogMetadata"
-msgstr "Catálogo"
-
-msgid "submission.catalogEntry.publicationMetadata"
-msgstr "Formato de publicación"
-
-msgid "submission.event.metadataPublished"
-msgstr "Los metadatos de la monografía se han aprobado para su publicación."
-
-msgid "submission.event.metadataUnpublished"
-msgstr "Los metadatos de la monografía no están ya publicados."
-
-msgid "submission.event.publicationFormatMadeAvailable"
-msgstr "El formato de publicación \"{$publicationFormatName}\" está disponible."
-
-msgid "submission.event.publicationFormatMadeUnavailable"
-msgstr "El formato de publicación \"{$publicationFormatName}\" ya no está disponible."
-
-msgid "submission.event.publicationFormatPublished"
-msgstr "El formato de publicación \"{$publicationFormatName}\" está aprobado para su publicación."
-
-msgid "submission.event.publicationFormatUnpublished"
-msgstr "El formato de publicación \"{$publicationFormatName}\" ya no se publica."
-
-msgid "submission.event.catalogMetadataUpdated"
-msgstr "Se han subido los metadatos del catálogo."
-
-msgid "submission.event.publicationMetadataUpdated"
-msgstr "Se actualizaron los metadatos del formato de publicación \"{$formatName}\"."
-
-msgid "submission.event.publicationFormatCreated"
-msgstr "Se creó el formato de publicación \"{$formatName}\"."
-
-msgid "submission.event.publicationFormatRemoved"
-msgstr "Se eliminó el formato de publicación \"{$formatName}\"."
-
-msgid "submission.submit.titleAndSummary"
-msgstr "Título y Resumen"
-
-msgid "submission.upload.selectComponent"
-msgstr "Seleccionar componente"
-
-msgid "submission.submit.seriesPosition.description"
-msgstr "Ejemplos: libro 2, volumen 2"
-
-msgid "submission.submit.confirmation"
-msgstr "Confirmación"
-
-msgid "submission.complete"
-msgstr "Aceptado"
-
-msgid "submission.incomplete"
-msgstr "Esperando aceptación"
-
-msgid "workflow.review.externalReview"
-msgstr "Revisión externa"
-
-msgid "editor.submission.decision.sendExternalReview"
-msgstr "Enviar para una revisión externa"
-
-msgid "submission.upload.fileContents"
-msgstr "Componente de envío"
-
-msgid "submission.list.orderingFeaturesSection"
-msgstr "Arrastre y suelte o pulse los botones de arriba y abajo para cambiar el orden de los elementos en {$title}."
-
-msgid "submission.list.saveFeatureOrder"
-msgstr "Guardar orden"
-
-msgid "submission.editorName"
-msgstr "{$editorName} (ed)"
-
-msgid "submission.authorListSeparator"
-msgstr "; "
-
-msgid "author.submit.seriesRequired"
-msgstr "Se requieren series válidas."
-
-msgid "submission.catalogEntry.add"
-msgstr "Añadir los seleccionados al catálogo"
-
-msgid "submission.catalogEntry.select"
-msgstr "Seleccione monografías a añadir al catálogo"
-
-msgid "submission.catalogEntry.selectionMissing"
-msgstr "Debe seleccionar al menos una monografía para añadir al catálogo."
-
-msgid "submission.catalogEntry.viewSubmission"
-msgstr "Ver envío"
-
-msgid "submission.dependentFiles"
-msgstr "Archivos dependientes"
-
-msgid "submission.metadataDescription"
-msgstr ""
-"Estas especificaciones se basan en el conjunto de metadatos Dublin Core, un "
-"estándar internacional usado para describir contenido editorial."
-
-msgid "section.any"
-msgstr "Cualquier serie"
-
-msgid "submission.list.monographs"
-msgstr "Monografías"
-
-msgid "submission.list.countMonographs"
-msgstr "{$count} monografías"
-
-msgid "submission.list.itemsOfTotalMonographs"
-msgstr "{$count} de {$total} monografías"
-
-msgid "submission.list.orderFeatures"
-msgstr "Ordenar elementos"
-
-msgid "submission.list.orderingFeatures"
-msgstr "Arrastre y suelte o pulse los botones de arriba y abajo para cambiar el orden de los elementos en la página principal."
-
-msgid "submission.submit.noContext"
-msgstr "La publicación del envío no pudo encontrarse."
-
-msgid "author.isVolumeEditor"
-msgstr "Identificar a este contribuidor/a como editor/a de este volumen."
-
-msgid "publication.scheduledIn"
-msgstr "Programado para publicarse en {$issueName}."
-
-msgid "publication.publish.confirmation"
-msgstr ""
-"Todos los requisitos de publicación se cumplen. ¿Seguro que desea hacer "
-"pública esta entrada del catálogo?"
-
-msgid "publication.publishedIn"
-msgstr "Publicado en {$issueName}."
-
-msgid "publication.required.issue"
-msgstr "La publicación debe asignarse a un número antes de poder ser publicada."
-
-msgid "publication.invalidSeries"
-msgstr "Las series para esta publicación no pudieron encontrarse."
-
-msgid "publication.catalogEntry.success"
-msgstr "Los detalles de entrada del catálogo han sido actualizados."
-
-msgid "catalog.browseTitles"
-msgstr "{$numTitles} títulos"
-
-msgid "submission.catalogEntry.enableChapterPublicationDates"
-msgstr "Cada capítulo puede tener su propia fecha de publicación."
-
-msgid "submission.catalogEntry.disableChapterPublicationDates"
-msgstr "Todos los capítulos utilizarán la fecha de publicación del monográfico."
-
-msgid "submission.catalogEntry.chapterPublicationDates"
-msgstr "Fechas de publicación"
-
-msgid "submission.chapter.pages"
-msgstr "Páginas"
-
-msgid "submission.workflowType.change"
-msgstr "Cambiar"
-
-msgid "submission.workflowType.editedVolume.label"
-msgstr "Obra colectiva"
-
-msgid "publication.inactiveSeries"
-msgstr "{$series} (Inactivo)"
-
-msgid "submission.list.viewEntry"
-msgstr "Ver entrada"
-
-msgid "submission.publication"
-msgstr "Publicación"
-
-msgid "publication.status.published"
-msgstr "Publicado"
-
-msgid "submission.status.scheduled"
-msgstr "Programado"
-
-msgid "publication.status.unscheduled"
-msgstr "Desprogramado"
-
-msgid "submission.publications"
-msgstr "Publicaciones"
-
-msgid "publication.copyrightYearBasis.issueDescription"
-msgstr ""
-"El año de los derechos de autor se ajustará automáticamente cuando se "
-"publique en un número."
-
-msgid "publication.copyrightYearBasis.submissionDescription"
-msgstr ""
-"El año de los derechos de autor se ajustará automáticamente en función de la "
-"fecha de publicación."
-
-msgid "publication.datePublished"
-msgstr "Fecha de publicación"
-
-msgid "publication.editDisabled"
-msgstr "Esta versión ya ha sido publicada y no puede editarse."
-
-msgid "publication.event.published"
-msgstr "El envío fue publicado."
-
-msgid "publication.event.scheduled"
-msgstr "El envío se programó para su publicación."
-
-msgid "publication.event.unpublished"
-msgstr "El envío fue retirado de publicación."
-
-msgid "publication.event.versionPublished"
-msgstr "Se publicó una versión nueva."
-
-msgid "publication.event.versionScheduled"
-msgstr "Se programó una versión nueva para su publicación."
-
-msgid "publication.event.versionUnpublished"
-msgstr "Se eliminó una versión de publicación."
-
-msgid "publication.invalidSubmission"
-msgstr "No se pudo encontrar el envío para esta publicación."
-
-msgid "publication.publish"
-msgstr "Publicar"
-
-msgid "publication.publish.requirements"
-msgstr ""
-"Se deben cumplir los siguientes requisitos antes de que esto pueda ser "
-"publicado."
-
-msgid "publication.required.declined"
-msgstr "Un envío rechazado no puede ser publicado."
-
-msgid "publication.required.reviewStage"
-msgstr ""
-"El envío debe estar en las fases de \"corrección\" o de \"producción\" antes "
-"de poder ser publicado."
-
-msgid "submission.license.description"
-msgstr ""
-"La licencia se ajustará automáticamente a {$licenseName} cuando se publique."
-
-msgid "submission.copyrightHolder.description"
-msgstr ""
-"Los derechos de autor se asignarán automáticamente a {$copyright} cuando se "
-"publique."
-
-msgid "submission.copyrightOther.description"
-msgstr ""
-"Asignar derechos de autor para los envíos publicados en la parte siguiente."
-
-msgid "publication.unpublish"
-msgstr "Retirar de publicación"
-
-msgid "publication.unpublish.confirm"
-msgstr "¿Seguro que no quiere que esto sea publicado?"
-
-msgid "publication.unschedule.confirm"
-msgstr "¿Seguro que no quiere que esto se programe para su publicación?"
-
-msgid "publication.version.details"
-msgstr "Detalles de publicación de la versión {$version}"
-
-msgid "submission.queries.production"
-msgstr "Discusiones de producción"
diff --git a/locale/fa/locale.po b/locale/fa/locale.po
new file mode 100644
index 00000000000..d732ef73ed2
--- /dev/null
+++ b/locale/fa/locale.po
@@ -0,0 +1,1541 @@
+# Kamdin Parsakia , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-09-30 00:06+0000\n"
+"Last-Translator: Kamdin Parsakia \n"
+"Language-Team: Persian "
+"\n"
+"Language: fa\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 "common.payments"
+msgstr "پرداختها"
+
+msgid "monograph.audience"
+msgstr "مخاطبان"
+
+msgid "monograph.audience.success"
+msgstr "جزئیات مخاطب به روزرسانی شد."
+
+msgid "monograph.coverImage"
+msgstr "عکس جلد"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "انتخاب طیف مخاطب"
+
+msgid "monograph.audience.rangeTo"
+msgstr "طیف مخاطبین (تا)"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "طیف مخاطبین (از)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "طیف مخاطبین (دقیق)"
+
+msgid "monograph.languages"
+msgstr "زبانها"
+
+msgid "monograph.publicationFormat"
+msgstr "فرمت"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "جزئیات این کتاب یا رساله"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "فرمتها:"
+
+msgid "monograph.type"
+msgstr "نوع نوشته دریافتی"
+
+msgid "submission.pageProofs"
+msgstr "شواهد"
+
+msgid "monograph.task.addNote"
+msgstr "افزودن به وظیفه"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "دسترسی باز"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "حک کردن برند"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "تعداد صفحات"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "نوشته پشت جلد"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "نوشته روی جلد"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "جنس محصول"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "جزئیات محصول (اختیاری)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "شناسایی محصول"
+
+msgid "monograph.publicationFormat.price"
+msgstr "قیمت"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "تعیین قیمت الزامی است."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "نوع قیمت"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "قابلیت مرجوع کردن محصول"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "مشخصات دیجیتال"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "ابعاد فیزیکی"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "حجم فایل (مگابایت)"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "وارد کردن حجم فایل آپلود شده"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "ارتفاع"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "قطر"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "وزن"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "عرض"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "کشور"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "منطقه توزیع محصول"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "نرخ مالیات"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "نوع مالیات"
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "کد شناسایی ناقص است."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "برخی از فیلدهای فراداده ناقص است."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr "فرمت انتشاری که انتخاب کردید قابل استفاده نیست."
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "باز کردن تب فرمت انتشار."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "فرمت انتشار"
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "تعیین قیمت معتبر ضروری است."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "جزئیات فرمت"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "جنس فیزیکی"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "لینک سایت خارجی"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "یک کد سیزده رقمی ISBN."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "کد ده رقمی ISBN."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "تعیین شناسه برای کتاب ضروری است."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "یک فرمت انتشار باید انتخاب شود."
+
+msgid "grid.catalogEntry.availability"
+msgstr "موجودی"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "موجود"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "ناموجود"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "تأییدیه فرمت"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr "نشان دادن عدم تأیید فراداده برای این فرمت."
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "موجود بودن فرمت"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"این فرمت را برای خوانندگان غیرقابل دسترس قرار بده. فایلهای قابل دانلود و "
+"انواع دیگر توزیع کتاب در بخش کاتالوگ آن دیگر نمایش داده نخواهد شد."
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "کاتالوگ تأیید نشده."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "اثبات تأیید نشده."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "تأیید شده"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "در انتظار تأیید"
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "کد موجودی محصول الزامی است."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "کد جنس محصول باید انتخاب شود."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "مقدار کد"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "نوع کد ONIX"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "کد شناسایی الزامی است."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "مقدار الزامی است."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "حق فروش"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "مقدار کد"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "باقی مناطق؟"
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr "در حال حاضر حق فروش در سایر کشورها برای این انتشار تعیین شده است."
+
+msgid "grid.catalogEntry.countries"
+msgstr "کشورها"
+
+msgid "grid.catalogEntry.regions"
+msgstr "مناطق"
+
+msgid "grid.catalogEntry.included"
+msgstr "انتخاب شده"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "بیرون گذاشته شده"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "قلمرو"
+
+msgid "grid.catalogEntry.markets"
+msgstr "قلمروهای بازار"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "تاریخهای انتشار"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "تعیین نقش نماینده الزامی است."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "تاریخ"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "نقش"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "فرمت تاریخ"
+
+msgid "grid.catalogEntry.representatives"
+msgstr "نمایندگان"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "نوع نماینده"
+
+msgid "grid.catalogEntry.agent"
+msgstr "عامل فروش"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "عوامل فروش"
+
+msgid "grid.catalogEntry.supplier"
+msgstr "تأمین کننده"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "تأمین کنندگان"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "انتخاب نقش:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "نقش"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "اسم"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "شماره تلفن"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "ایمیل"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "وبسایت"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "کد شناسایی نمایندگی"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "نوع کد شناسایی نماینده"
+
+msgid "grid.action.editRepresentative"
+msgstr "ویرایش این نماینده"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "حذف این نماینده"
+
+msgid "spotlight.author"
+msgstr "نویسنده، "
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "صفحه خانگی"
+
+msgid "spotlight"
+msgstr "ویژه"
+
+msgid "spotlight.noneExist"
+msgstr "در حال حاضر محصول ویژهای وجود ندارد."
+
+msgid "spotlight.title.homePage"
+msgstr "ویژه شده"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "موقعیت مورد ویژه"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "عنوان ویژه"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "کتاب"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "تعیین یک آیتم ضروری است."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "تعیین عنوان ویژه ضروری است."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "لطفاً یک محل برای این آیتم ویژه انتخاب کنید."
+
+msgid "grid.action.editSpotlight"
+msgstr "ویرایش این آیتم ویژه"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "حذف این آیتم ویژه"
+
+msgid "grid.action.addSpotlight"
+msgstr "اضافه کردن آیتم ویژه"
+
+msgid "manager.series.indexed"
+msgstr "نمایه شده"
+
+msgid "grid.action.catalogEntry"
+msgstr "مشاهده فرم کاتالوگ"
+
+msgid "grid.action.editFormat"
+msgstr "ویرایش فرمت"
+
+msgid "grid.action.deleteFormat"
+msgstr "حذف این فرمت"
+
+msgid "grid.action.addFormat"
+msgstr "اضافه کردن فرمت انتشار"
+
+msgid "grid.action.pageProofApproved"
+msgstr "صفحات اثبات فایل برای این انتشار آماده است"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "ورودی کاتالوگ جدید"
+
+msgid "grid.action.publicCatalog"
+msgstr "مشاهده این آیتم در کاتالوگ"
+
+msgid "grid.action.feature"
+msgstr "تغییر وضعیت نمایش برجسته"
+
+msgid "grid.action.releaseMonograph"
+msgstr "نشان کردن این ارسال به عنوان «انتشار تازه»"
+
+msgid "grid.action.manageCategories"
+msgstr "پیکربندی دستهها برای این انتشارات"
+
+msgid "grid.action.manageSeries"
+msgstr "پیکربندی سریهای این انتشارات"
+
+msgid "grid.action.addCode"
+msgstr "اضافه کردن کد"
+
+msgid "grid.action.editCode"
+msgstr "ویرایش این کد"
+
+msgid "grid.action.addRights"
+msgstr "اضافه کردن حق فروش"
+
+msgid "grid.action.editRights"
+msgstr "ویرایش این حقوق"
+
+msgid "grid.action.deleteRights"
+msgstr "حذف این حقوق"
+
+msgid "grid.action.addMarket"
+msgstr "اضافه کردن بازار"
+
+msgid "grid.action.deleteMarket"
+msgstr "حذف این بازار"
+
+msgid "grid.action.addDate"
+msgstr "اضافه کردن تاریخ انتشار"
+
+msgid "grid.action.editDate"
+msgstr "ویرایش این تاریخ"
+
+msgid "grid.action.deleteDate"
+msgstr "حذف این تاریخ"
+
+msgid "grid.action.createContext"
+msgstr "ایجاد نشر جدید"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "برو به صفحه اعلانات"
+
+msgid "grid.action.submissionEmail"
+msgstr "کلیک جهت خواندن این ایمیل"
+
+msgid "grid.action.approveProofs"
+msgstr "مشاهده گرید اثباتها"
+
+msgid "grid.action.proofApproved"
+msgstr "فرمت اثبات شده"
+
+msgid "grid.action.formatAvailable"
+msgstr "تغییر وضعیت موجودی این فرمت"
+
+msgid "grid.reviewAttachments.add"
+msgstr "اضافه کردن ضمیمه به بررسی"
+
+msgid "series.series"
+msgstr "مجموعهها"
+
+msgid "series.path"
+msgstr "مسیر"
+
+msgid "catalog.manage"
+msgstr "مدیریت کاتالوگ"
+
+msgid "catalog.manage.newReleases"
+msgstr "تازهها"
+
+msgid "catalog.manage.category"
+msgstr "دستهبندی"
+
+msgid "catalog.manage.series"
+msgstr "مجموعهها"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "ISSN چاپی و آنلاین نباید یکسان باشد."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "ISSN آنلاین"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "ISSN چاپی"
+
+msgid "catalog.selectSeries"
+msgstr "انتخاب مجموعهها"
+
+msgid "catalog.selectCategory"
+msgstr "انتخاب دستهبندی"
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"روی دکمه «ویژگی» کلید کنید و سپس برای انتخاب کتاب جهت ویژه این دستهبندی "
+"ستاره را بزنید."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "کاروسل"
+
+msgid "catalog.manage.newRelease"
+msgstr "نشر"
+
+msgid "catalog.manage.manageSeries"
+msgstr "مدیریت مجموعهها"
+
+msgid "catalog.manage.manageCategories"
+msgstr "مدیریت دستهبندیها"
+
+msgid "catalog.manage.noMonographs"
+msgstr "هیچ جلدی انتخاب نشده."
+
+msgid "catalog.manage.featured"
+msgstr "برجسته"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "برجسته در مجموعه"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "این جلد برجسته شده است."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "این جلد برجسته نشده."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "علامتگذاری جلد به عنوان انتشار تازه برداشته شده."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "انتشار تازه"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "انتشار جدید در دستهبندی"
+
+msgid "catalog.manage.nonOrderable"
+msgstr "این جلد تا وقتی برجسته نشده قابل سفارش نیست."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "جستجو بر اساس عنوان یا نویسنده"
+
+msgid "catalog.manage.isNotFeatured"
+msgstr "این جلد برجسته نیست؛ آن را به حالت برجسته تغییر بده."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr "این جلد انتشار تازه نیست؛ آن را به انتشار تازه تغییر بده."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr "هیچ دریافتی برای اضافه شدن به این کاتالوگ انتخاب نشده."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "حداقل یکی از دریافتها یافت نشد."
+
+msgid "catalog.noTitles"
+msgstr "هیچ عنوانی تاکنون منتشر نشده."
+
+msgid "catalog.noTitlesNew"
+msgstr "هیچ انتشار تازهای در حال حاضر وجود ندارد."
+
+msgid "catalog.feature"
+msgstr "برجستگی"
+
+msgid "catalog.featured"
+msgstr "برجسته"
+
+msgid "catalog.featuredBooks"
+msgstr "کتابهای برجسته"
+
+msgid "catalog.foundTitleSearch"
+msgstr "یک عنوان منطبق با جستجوی «{$searchQuery}» پیدا شد."
+
+msgid "catalog.foundTitlesSearch"
+msgstr "{$number} عنوان منطبق با جستجوی شما برای «{$searchQuery}» یافت شد."
+
+msgid "catalog.newReleases"
+msgstr "انتشارهای تازه"
+
+msgid "catalog.dateAdded"
+msgstr "اضافه شده"
+
+msgid "catalog.publicationInfo"
+msgstr "مشخصات انتشار"
+
+msgid "catalog.published"
+msgstr "منتشر شده"
+
+msgid "catalog.forthcoming"
+msgstr "به زودی"
+
+msgid "catalog.categories"
+msgstr "دستهبندیها"
+
+msgid "catalog.parentCategory"
+msgstr "دستهبندی والد"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "درباره {$roleName}"
+
+msgid "catalog.sortBy"
+msgstr "ترتیب جلدها"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "انتخاب چگونگی چینش کتابها در این مجموعه."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr "انتخاب نحوه چینش کتابها در این دستهبندی."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "انتخاب نحوه چینش کتابها در کاتالوگ."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "جایگاه مجموعهها (اول پایینترین)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "جایگاه مجموعهها (اول بالاترین)"
+
+msgid "catalog.viewableFile.title"
+msgstr "مشاهده {$type} فایل {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "بازگشت به مشاهده جزئیات درباره {$monographTitle}"
+
+msgid "submission.search"
+msgstr "جستجوی کتاب"
+
+msgid "common.publication"
+msgstr "جلد"
+
+msgid "common.publications"
+msgstr "جلدها"
+
+msgid "common.preview"
+msgstr "پیش نمایش"
+
+msgid "common.feature"
+msgstr "برجستگی"
+
+msgid "common.searchCatalog"
+msgstr "جستجوی کاتالوگ"
+
+msgid "common.moreInfo"
+msgstr "اطلاعات بیشتر"
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "لطفاً یک گزینه معتبر از لیست انتخاب کند."
+
+msgid "common.listbuilder.itemExists"
+msgstr "نمیتوانید یک آیتم را دوباره انتخاب کنید."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "navigation.catalog"
+msgstr "کاتالوگ"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "سیاست منافع رقابتی"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "همه جلدها"
+
+msgid "navigation.catalog.manage"
+msgstr "مدیریت"
+
+msgid "navigation.catalog.administration.short"
+msgstr "اداره"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "دستهبندیها"
+
+msgid "navigation.catalog.administration.series"
+msgstr "مجموعهها"
+
+msgid "navigation.infoForAuthors"
+msgstr "برای نویسندگان"
+
+msgid "navigation.infoForLibrarians"
+msgstr "برای کتابداران"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "اطلاعات برای نویسندگان"
+
+msgid "navigation.newReleases"
+msgstr "انتشارات تازه"
+
+msgid "navigation.published"
+msgstr "منتشر شده"
+
+msgid "navigation.wizard"
+msgstr "ابزار جادویی"
+
+msgid "navigation.linksAndMedia"
+msgstr "پیوندها و رسانههای اجتماعی"
+
+msgid "navigation.skip.spotlights"
+msgstr "پریدن به ویژهها"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "مجموعهها"
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "دستهبندی"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "پیوند به یک دستهبندی."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "انتشارات تازه"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "پیوند به انتشارات تازه خودتان."
+
+msgid "context.contexts"
+msgstr "نشرها"
+
+msgid "context.context"
+msgstr "نشر"
+
+msgid "context.current"
+msgstr "نشر کنونی:"
+
+msgid "user.authorization.representationNotFound"
+msgstr "فرمت انتشار درخواست شده یافت نشد."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "در بر گرفتن کاربران بدون نقش در این نشر."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "ارسال پروپوزال"
+
+msgid "user.noRoles.regReviewer"
+msgstr "ثبت نام به عنوان داور"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr "ثبت نام به عنوان داور: در حال حاضر ثبت نام داوران غیر فعال است."
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "بله، درخواست نقش {$userGroup}."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"بله، میخواهم با درخواستهای داوری نوشتههای ارسالی به این نشر در ارتباط "
+"باشم."
+
+msgid "user.register.otherContextRoles"
+msgstr "درخواست نقشهای ذیل."
+
+msgid "user.role.manager"
+msgstr "مدیریت نشر"
+
+msgid "user.role.pressEditor"
+msgstr "دبیر نشر"
+
+msgid "user.role.subEditor"
+msgstr "دبیر مجموعه"
+
+msgid "user.role.copyeditor"
+msgstr "صفحهآرا"
+
+msgid "user.role.proofreader"
+msgstr "بازرس پروف"
+
+msgid "user.role.productionEditor"
+msgstr "دبیر انتشار"
+
+msgid "user.role.managers"
+msgstr "مدیران نشر"
+
+msgid "user.role.subEditors"
+msgstr "دبیران مجموعه"
+
+msgid "user.role.editors"
+msgstr "دبیران"
+
+msgid "user.role.copyeditors"
+msgstr "صفحهآراها"
+
+msgid "user.role.proofreaders"
+msgstr "بازرسان پروف"
+
+msgid "user.role.productionEditors"
+msgstr "دبیران انتشار"
+
+msgid "user.register.selectContext"
+msgstr "یک نشر برای ثبت انتخاب کنید:"
+
+msgid "user.register.noContexts"
+msgstr "هیچ نشری برای ثبت موجود نیست."
+
+msgid "user.register.privacyStatement"
+msgstr "بیانیه محرمانگی"
+
+msgid "user.register.registrationDisabled"
+msgstr "در حال حاضر امکان ثبت نام در این نشر وجود ندارد."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "پسورد وارد شده کوتاه است."
+
+msgid "user.register.readerDescription"
+msgstr "اطلاع رسانی شده همزمان با انتشار جلد از طریق ایمیل."
+
+msgid "monograph.publicationFormats"
+msgstr "فرمتهای انتشار"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "موجودی محصول"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr "قرار دادن فراداده برای این فرمت انتشار در کاتالوگ کتاب."
+
+msgid "grid.catalogEntry.proof"
+msgstr "اثبات"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "جزئیات فرمت انتشار قابل استفاده: {$format}"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "محافظت فنی دیجیتال"
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "قیمتها و بازارها ناقص است."
+
+msgid "monograph.proofReadingDescription"
+msgstr "صفحهآرا فایل نهایی آماده انتشار را آپلود مینماید."
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "انتخاب نام الزامی است."
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "درصد تخفیف"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "این فرمت در یک سایت جداگانه قابل دسترسی خواهد بود"
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"تأیید فراداده برای این فرمت. فراداده میتواند از طریق پنل ویرایش برای هر "
+"فرمت چک شود."
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"این فرمت را برای خوانندگان در دسترس قرار بده. فایلهای قابل دانلود و انواع "
+"دیگر توزیع کتاب در بخش کاتالوگ آن نمایش داده خواهد شد."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "تعیین فرمت تاریخ الزامی است."
+
+msgid "spotlight.spotlights"
+msgstr "ویژهها"
+
+msgid "grid.action.featureMonograph"
+msgstr "برجسته کردن این آیتم در کاروسل کاتالوگ"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "نمایش تب فرمت انتشار"
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "فرمت در فهرست نیست."
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr "تعیین تاریخ الزامی بوده و تاریخ باید با فرمت انتخاب شده مطابقت کند."
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "آیتم ویژه"
+
+msgid "grid.action.deleteCode"
+msgstr "حذف این کد"
+
+msgid "grid.action.availableRepresentation"
+msgstr "تأیید/رد این فرد"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "حجم فایل برای فرمتهای دیجیتالی الزامی است."
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"میتواند یک عامل فروش برای نمایندگی خود در این محدوده تعیین نمایید (اختیاری)."
+
+msgid "grid.content.spotlights.form.item"
+msgstr "وارد کردن عنوان ویژه (تکمیل خودکار)"
+
+msgid "grid.action.editMarket"
+msgstr "ویرایش این بازار"
+
+msgid "series.featured.description"
+msgstr "این مجموعهها در منوی گشت و گذار اصلی نمایش داده خواهد شد"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "نوع حق فروش"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"اگر خدمات را خودتان به مشتریان خود ارائه میدهد میتوانید بخش زیر را خالی "
+"بگذارید."
+
+msgid "manager.series.open"
+msgstr "دریافتیهای باز"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"این گزینه را برای به کارگیری عمومی این حق فروش انتخاب کنید. در این حالت "
+"نیازی به انتخاب کشور و مناطق فروش نیست."
+
+msgid "grid.action.addRepresentative"
+msgstr "اضافه کردن نماینده"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "فایلها"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "لطفاً یک ISSN معتبر وارد کنید."
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "نمایش فرمت در کاتالوگ"
+
+msgid "grid.action.approveProof"
+msgstr "تأیید نسخه اثبات برای نمایه سازی و ورود به کاتالوگ"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"عکس جلد کتب انتخاب شده بالای صفحه اصلی به عنوان یک مجموعه قابل اسکرول نمایش "
+"داده میشود. روی گزینه «ویژگی» کلیک کرده و سپس با کلیک بر روی ستاره کتاب را "
+"به کاروسل خود اضافه کنید."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"روی گزینه «ویژگی» کلیک کرده و سپس ستار را برای انتخاب یک کتاب ویژه برای این "
+"مجموعه بزنید."
+
+msgid "common.prefix"
+msgstr "پیشوند"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "برجسته در دستهبندی"
+
+msgid "common.listbuilder.completeForm"
+msgstr "لطفاً فرم را کامل کنید."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "جلد به عنوان انتشار تازه نشان شده."
+
+msgid "common.homePageHeader.altText"
+msgstr "هدر صفحه اصلی"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "انتشار تازه در مجموعهها"
+
+msgid "navigation.catalog.administration"
+msgstr "اداره کاتالوگ"
+
+msgid "context.select"
+msgstr "تعویض به نشر دیگر:"
+
+msgid "catalog.manage.isFeatured"
+msgstr "این جلد برجسته است؛ آن را از حالت برجسته خارج کن."
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "اطلاعات برای کتابداران"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr "ارسال نوشته: در حال حاضر ثبت نام نویسنده غیر فعال است."
+
+msgid "catalog.manage.isNewRelease"
+msgstr "این جلد یک انتشار تازه است؛ آن را از حالت انتشار تازه خارج کن."
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "پیوند به کاتالوگ خودتان."
+
+msgid "user.reviewerPrompt"
+msgstr "آیا مایلید نوشتههای ارسالی به این نشر را داوری کنید؟"
+
+msgid "catalog.manage.findSubmissions"
+msgstr "یافتن جلدهایی برای افزودن به این کاتالوگ"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "پیوند به مجموعهها."
+
+msgid "user.register.contextsPrompt"
+msgstr "میخواهید در کدام نشرهای این سایت ثبت نام کنید؟"
+
+msgid "catalog.noTitlesSearch"
+msgstr "هیچ عنوانی مطابق جستجوی «{$searchQuery}» یافت نشد."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"اگر برای داوری در هر یک از نشرها درخواست دادید لطفاً موضوعات مورد علاقه خود "
+"را وارد کنید."
+
+msgid "catalog.category.heading"
+msgstr "همه کتابها"
+
+msgid "catalog.category.subcategories"
+msgstr "زیردستهها"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"یادداشت: برای سفارش آیتمهای مورد نظر ابتدا باید وارد سایت شوید (تمامی آیتم"
+"های علامت گذاری شده با دسترسی باز بدون نیاز به ورود و به طور رایگان قابل "
+"دریافت است)."
+
+msgid "user.register.authorDescription"
+msgstr "قادر به ارسال برای انتشارات."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "تمایل به انجام داوری برای انتشارات."
+
+msgid "user.register.reviewerDescription"
+msgstr "تمایل به انجام داوری برای تمامی نشرها."
+
+msgid "user.register.reviewerInterests"
+msgstr "تعیین حوزههای علاقمهمندی جهت داوری:"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "باید حداقل یک نقش انتخاب کنید"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"بله، شرایط جمع آوری و نگهداری اطلاعات توسط ناشر را میپذیرم ( بیانیه محرمانگی)."
+
+msgid "site.noPresses"
+msgstr "هیچ نشری در دسترس نیست."
+
+msgid "site.pressView"
+msgstr "مشاهده وبسایت نشر"
+
+msgid "about.pressContact"
+msgstr "ارتباط با انتشارات"
+
+msgid "about.aboutContext"
+msgstr "درباره نشر"
+
+msgid "about.editorialTeam"
+msgstr "هیئت تحریریه"
+
+msgid "about.editorialPolicies"
+msgstr "سیاستهای دبیری"
+
+msgid "about.focusAndScope"
+msgstr "اهداف و زمینهها"
+
+msgid "about.seriesPolicies"
+msgstr "سیاستهای دستهبندی و مجموعه کتابها"
+
+msgid "about.submissions"
+msgstr "ارسالیها"
+
+msgid "about.onlineSubmissions.login"
+msgstr "ورود"
+
+msgid "about.onlineSubmissions.register"
+msgstr "ثبت نام"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr "برای ثبت نام وارد شوید یا ثبت نام کنید ({$login} یا {$register})."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "ارسال نوشته جدید"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "مشاهده ارسالهای در حال بررسی"
+
+msgid "about.authorGuidelines"
+msgstr "راهنمای نویسندگان"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "چک لیست آماده سازی نوشته ارسالی"
+
+msgid "about.copyrightNotice"
+msgstr "تذکر حق نشر"
+
+msgid "about.privacyStatement"
+msgstr "بیانیه محرمانگی"
+
+msgid "about.reviewPolicy"
+msgstr "فرآیند دوری همتا"
+
+msgid "about.publicationFrequency"
+msgstr "تکرر انتشار"
+
+msgid "about.openAccessPolicy"
+msgstr "سیاست دسترسی باز"
+
+msgid "about.pressSponsorship"
+msgstr "اسپانسری انتشارات"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr "اطلاعات بیشتر درباره سیستم انتشار، پلتفرم و جریان کار OMP/PKP."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "فرآیند انتشار و دبیری"
+
+msgid "about.aboutSoftware"
+msgstr "درباره سیستم مدیریت کتاب"
+
+msgid "help.searchReturnResults"
+msgstr "بازگشت به نتایج جستجو"
+
+msgid "help.goToEditPage"
+msgstr "باز کردن صفحه جدید برای ویرایش اطلاعات"
+
+msgid "installer.appInstallation"
+msgstr "نصب OMP"
+
+msgid "installer.ompUpgrade"
+msgstr "به روز رسانی OMP"
+
+msgid "installer.installApplication"
+msgstr "نصب OMP"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+"برای به روز رسانی نسخه نصب شده OMP روی این لینک"
+"a> کلید نمایید."
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "مراحل پیش از نصب"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. فایلها و نشانیهای زیر باید قابل نوشتن شود:\n"
+"\t- config.inc.php is writable (optional): {$writable_config}
"
+"\n"
+"\t- public/ is writable: {$writable_public}
\n"
+"\t- cache/ is writable: {$writable_cache}
\n"
+"\t- cache/t_cache/ is writable: {$writable_templates_cache}
\n"
+"\t- cache/t_compile/ is writable: "
+"{$writable_templates_compile}
\n"
+"\t- cache/_db is writable: {$writable_db_cache}
\n"
+"2. یک نشانی برای ذخیرهسازی فایلها باید ایجاد شود (رجوع شود به بخش "
+"تنظیمات فایل).
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"برای پشتیبانی کامل از Unicode باید تنظیمات PHP با پشتیبانی از mbstring سازگار باشد."
+"\n"
+"سرور شما در حال حاضر از {$supportsMBString} پشتیبانی میکند."
+
+msgid "installer.allowFileUploads"
+msgstr "در حال حاضر سرور شما اجازه آپلود {$allowFileUploads} را میدهد."
+
+msgid "installer.maxFileUploadSize"
+msgstr "حداکثر حجم فایل قابل آپلود در سرور شما {$maxFileUploadSize} میباشد."
+
+msgid "installer.localeInstructions"
+msgstr "زبان اصلی برای استفاده از برنامه."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"در صورتی که مایلید زبانهای دیگری همزمان با نصب در سایت شما پشتیبانی شود از "
+"لیست زیر زبان مورد نظر را انتخاب نمایید. ترجمه زبانهایی که علامت ستاره (*) "
+"دارند ناقص است."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"برای نگهداری از اطلاعات به دیتابیس SQL نیاز است. لطفاً سیستم مورد نیاز برای "
+"نصب OMP را مطالعه نمایید."
+
+msgid "installer.upgradeApplication"
+msgstr "به روز رسانی OMP"
+
+msgid "installer.upgradeComplete"
+msgstr ""
+"به روز رسانی OMP به ورژن {$version} با موفقیت انجام شد. لطفاً پیش از هر "
+"اقدامی تنظیمات نصب (\"Installed\") در فایل onfig.inc.php را به حالت On "
+"برگردانید."
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"موعد مقرر برای دور {$round} داوری نوشته ارسالی {$submissionId} توسط "
+"{$reviewerName} در تاریخ {$dueDate} تنظیم شد."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"{$reviewerName} داوری دور {$round} برای مقاله {$submissionId} را رد کرد."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"{$reviewerName} داوری دور {$round} برای مقاله {$submissionId} را پذیرفت."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"{$reviewerName} داوری دور {$round} برای مقاله {$submissionId} را در حالت "
+"تصمیم گیری نشده قرار داد."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"پیشنهاد دبیر ({$decision}) برای نوشته ارسالی {$submissionId} توسط "
+"{$editorName} ثبت شد."
+
+msgid "log.editor.editorAssigned"
+msgstr "{$editorName} به عنوان دبیر برای نوشته ارسالی {$submissionId} تعیین شد."
+
+msgid "log.proofread.complete"
+msgstr ""
+"{$proofreaderName} نوشته ارسالی {$submissionId} را برای زمانبندی فرستاد."
+
+msgid "log.imported"
+msgstr "{$userName} جلد {$submissionId} را ایمپورت کرد."
+
+msgid "notification.addedIdentificationCode"
+msgstr "کد شناسایی افزوده شد."
+
+msgid "notification.editedIdentificationCode"
+msgstr "کد شناسایی ویرایش شد."
+
+msgid "notification.removedIdentificationCode"
+msgstr "کد شناسایی حذف شد."
+
+msgid "notification.addedPublicationDate"
+msgstr "تاریخ انتشار افزوده شد."
+
+msgid "notification.removedPublicationDate"
+msgstr "تاریخ انتشار حذف شد."
+
+msgid "notification.addedPublicationFormat"
+msgstr "فرمت انتشار افزوده شد."
+
+msgid "notification.editedPublicationFormat"
+msgstr "فرمت انتشار ویرایش شد."
+
+msgid "notification.removedPublicationFormat"
+msgstr "فرمت انتشار حذف شد."
+
+msgid "notification.addedSalesRights"
+msgstr "حق فروش افزوده شد."
+
+msgid "notification.removedSalesRights"
+msgstr "حق فروش حذف شد."
+
+msgid "notification.addedRepresentative"
+msgstr "نماینده افزوده شد."
+
+msgid "about.onlineSubmissions"
+msgstr "ارسالیهای آنلاین"
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} یا {$viewSubmissions}."
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"به عنوان بخشی از فرآیند ارسال نوشته، نویسندگان باید تمامی موارد زیر را رعایت "
+"نمایند."
+
+msgid "about.aboutOMPPress"
+msgstr "این نشر از سیستم مدیریت محتوای OMP {$ompVersion} استفاده میکند."
+
+msgid "about.aboutOMPSite"
+msgstr "این نشر از سیستم مدیریت محتوای OMP {$ompVersion} استفاده میکند."
+
+msgid "installer.installationInstructions"
+msgstr ""
+"از دانلود و انتخاب OMP متشکریم. قبل از شروع فرآیند حتماً راهنمای نصب را از "
+"طریق وبسایت PKP مطالعه نمایید."
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"از انتخاب و نصب OMP متشکریم. لطفاً پیش از ادامه مراحل با دقت راهنمای نصب را "
+"مطالعه و مرور نمایید."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"مسیر کامل محل نگهداری فایلها را وارد کنید. دقت کنید که این مسیر قابل دسترسی "
+"برای عموم نباشد."
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"مهم: قبل از اقدام به استفاده از سیستم فایل کانفیگ (config.inc.php) را ویرایش "
+"کرده و محتوای آن را با موارد زیر جایگزین کنید."
+
+msgid "installer.installationComplete"
+msgstr ""
+"نصب OMP با موفقیت انجام شد. برای شروع استفاده از آن با نام کاربری و پسورد "
+"وارد شده در صفحه قبل وارد شوید."
+
+msgid "log.editor.decision"
+msgstr ""
+"تصمیم دبیر ({$decision}) برای نوشته ارسالی {$submissionId} توسط {$editorName}"
+" ثبت شد."
+
+msgid "log.editor.archived"
+msgstr "نوشته ارسالی {$submissionId} آرشیو شد."
+
+msgid "log.editor.restored"
+msgstr "نوشته ارسالی {$submissionId} برای قرارگیری در صف بازیابی شد."
+
+msgid "log.proofread.assign"
+msgstr ""
+"{$assignerName} {$proofreaderName} را برای ویراستاری نوشته ارسالی "
+"{$submissionId} تعیین کرد."
+
+msgid "notification.editedPublicationDate"
+msgstr "تاریخ انتشار ویرایش شد."
+
+msgid "notification.editedSalesRights"
+msgstr "حق فروش ویرایش شد."
+
+msgid "notification.editedRepresentative"
+msgstr "نماینده ویرایش شد."
+
+msgid "notification.removedRepresentative"
+msgstr "نماینده حذف شد."
+
+msgid "notification.addedMarket"
+msgstr "بازار افزوده شد."
+
+msgid "notification.editedMarket"
+msgstr "بازار ویرایش شد."
+
+msgid "notification.addedSpotlight"
+msgstr "بازار حذف شد."
+
+msgid "notification.editedSpotlight"
+msgstr "ویژه ویرایش شد."
+
+msgid "notification.removedSpotlight"
+msgstr "ویژه حذف شد."
+
+msgid "notification.proofsApproved"
+msgstr "پروف تأیید شد."
+
+msgid "notification.removedSubmission"
+msgstr "نوشته ارسالی پاک شد."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "یک جلد جدید با عنوان \"{$title}\" ارسال شده است."
+
+msgid "notification.type.editing"
+msgstr "رخدادهای ویرایش"
+
+msgid "notification.type.reviewing"
+msgstr "رخدادهای داوری"
+
+msgid "notification.type.site"
+msgstr "رخدادهای سایت"
+
+msgid "notification.type.userComment"
+msgstr "یک خواننده برای عنوان {$title} نظر ارسال نمود."
+
+msgid "notification.type.public"
+msgstr "اعلانات عمومی"
+
+msgid "notification.type.copyeditorRequest"
+msgstr "از شما برای بررسی فایل {$file} درخواست شده است."
+
+msgid "notification.type.layouteditorRequest"
+msgstr "از شما برای بررسی ویراستاری عنوان \"{$file}\" درخواست شده است."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "فرآیند داوری داخلی آغاز شد."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "در انتظار تأیید."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"این جلد تا زمانی که منتشر نشود در کاتالوگ نمایش داده نخواهد شد. برای اضافه "
+"کردن این جلد به کاتالوگ روی تب انتشار کلیک نمایید."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "هیچ روش پرداختی تنظیم نشده است."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "مدیریت کاتالوگ"
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+"این جلد تأیید شده است. لطفاً به بخش بازاریابی و انتشار مراجعه کرده تا جزئیات "
+"کاتالوگ را مدیریت کنید."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+"دسترسی شما مجاز نمیباشد چرا که به نظر میرسید شما داور معتبری برای این جلد "
+"نیستید."
+
+msgid "user.authorization.monographAuthor"
+msgstr ""
+"دسترسی شما مجاز نمیباشد چرا که به نظر میرسد شما نویسنده این جلد نیستید."
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"دسترسی شما مجاز نمیباشد چرا که به نظر نمیرسد دبیر تعیین شده برای این جلد "
+"باشید."
+
+msgid "user.authorization.monographFile"
+msgstr "دسترسی شما به فایل مخصوص این جلد مجاز نمیباشد."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "جلد نامعتبر است یا هیچ جلدی درخواست داده نشده!"
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr "دسترسی غیر مجاز! شما برای این مرحله از کار تعیین نشدهاید."
+
+msgid "payment.directSales"
+msgstr "دانلود از وبسایت نشر"
+
+msgid "payment.directSales.price"
+msgstr "قیمت"
+
+msgid "payment.directSales.availability"
+msgstr "موجودی"
+
+msgid "payment.directSales.catalog"
+msgstr "کاتالوگ"
+
+msgid "payment.directSales.approved"
+msgstr "تأیید شده"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "قیمت ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr ""
+"قیمت باید فقط شامل ارقام باشد. لطفاً از هیچ نماد یا حروفی استفاده نکنید."
+
+msgid "payment.directSales.directSales"
+msgstr "فروشهای مستقیم"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "ناموجود"
+
+msgid "payment.directSales.notSet"
+msgstr "تنظیم نشده"
+
+msgid "payment.directSales.openAccess"
+msgstr "دسترسی باز"
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "وارد کردن قیمت عددی معتبر الزامی است."
+
+msgid "payment.directSales.purchase"
+msgstr "سفارش {$format} ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "دانلود {$format}"
+
+msgid "payment.directSales.monograph.name"
+msgstr "سفارش دانلود جلد یا فصل"
+
+msgid "payment.directSales.monograph.description"
+msgstr "این تراکنش برای سفارش دانلود مستقیم یک جلد یا یک فصل از آن میباشد."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+"فایل Reloaded XML به نقشهکشی فایل {$filename} در جستجوی {$id} کمک میکند."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "کتاب"
+
+msgid "submission.pdf.download"
+msgstr "دانلود این فایل PDF"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "ثبت در سایر نشرها"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "مخفی کردن سایر نشرها"
+
+msgid "submission.round"
+msgstr "دوره {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "یک ارسال منتشر شده نامعتبر مشخص شد."
+
+msgid "catalog.coverImageTitle"
+msgstr "عکس جلد"
+
+msgid "grid.catalogEntry.chapters"
+msgstr "فصلها"
+
+msgid "search.results.orderBy.article"
+msgstr "عنوان مقاله"
+
+msgid "search.results.orderBy.author"
+msgstr "نویسنده"
+
+msgid "search.results.orderBy.date"
+msgstr "تاریخ انتشار"
+
+msgid "search.results.orderBy.monograph"
+msgstr "عنوان جلد"
+
+msgid "search.results.orderBy.press"
+msgstr "عنوان نشر"
+
+msgid "search.results.orderBy.popularityAll"
+msgstr "محبوبیت (همه زمانها)"
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr "محبوبیت (ماه اخیر)"
+
+msgid "search.results.orderBy.relevance"
+msgstr "مرتبط بودن"
+
+msgid "search.results.orderDir.asc"
+msgstr "صعودی"
+
+msgid "search.results.orderDir.desc"
+msgstr "نزولی"
+
+msgid "section.section"
+msgstr "مجموعه"
+
+msgid "notification.savedCatalogMetadata"
+msgstr "فراداده کاتالوگ ذخیره شد."
+
+msgid "notification.type.indexRequest"
+msgstr "از شما برای ایجاد نمایه برای عنوان \"{$file}\" درخواست شده است."
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"فرمتهایی که از طریق دسترسی باز قابل دانلود هستند هیچ هزینهای برای "
+"خوانندگان و توزیع کنندگان در بر نخواهد داشت."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "فراداده فرمت انتشار ذخیره شد."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"این ارسال در حال حاضر منتظر تأیید در ابزار وروی کاتالوگ است تا در کاتالوگ "
+"عمومی نمایش داده شود."
+
+msgid "notification.type.submissions"
+msgstr "رخدادهای ارسال"
+
+msgid "notification.type.configurePaymentMethod"
+msgstr "پیش از اقدام به تنظیمات فروش باید روش پرداخت تعیین شود."
+
+msgid "notification.type.editorAssignmentTask"
+msgstr "یک جلد جدید ارسال شده و باید برای آن دبیر مشخص شود."
+
+msgid "user.authorization.noContext"
+msgstr "هیچ نشری مطابق درخواست شما یافت نشد."
+
+msgid "user.authorization.seriesAssignment"
+msgstr "شما در حال تلاش برای دسترسی به جلدی هستید که مربوط به مجموعه شما نیست."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"دسترسی غیرمجاز! گروه کاربری که شما تحت آن در حال فعالیت هستید برای این مرحله "
+"از کار تعیین نشده است. لطفاً تنظیمات نشر را ملاحظه کنید."
diff --git a/locale/fi/admin.po b/locale/fi/admin.po
new file mode 100644
index 00000000000..6344fd09503
--- /dev/null
+++ b/locale/fi/admin.po
@@ -0,0 +1,223 @@
+# Antti-Jussi Nygård , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
+"PO-Revision-Date: 2023-12-03 14:38+0000\n"
+"Last-Translator: Antti-Jussi Nygård \n"
+"Language-Team: Finnish \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 "admin.hostedContexts"
+msgstr "Ylläpidetyt julkaisijoiden sivustot"
+
+msgid "admin.settings.appearance.success"
+msgstr "Sivuston ulkoasua koskevat asetukset on päivitetty."
+
+msgid "admin.settings.config.success"
+msgstr "Sivuston asetukset on päivitetty."
+
+msgid "admin.settings.info.success"
+msgstr "Sivuston tietoja koskevat asetukset on päivitetty."
+
+msgid "admin.settings.redirect"
+msgstr "Julkaisijan sivuston uudelleenohjaus"
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"Koko sivustoon kohdistuvat pyynnöt ohjataan tämän julkaisijan sivustolle."
+
+msgid "admin.settings.noPressRedirect"
+msgstr "Älä uudelleenohjaa"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr ""
+"Tätä kieltä käytetään sivuston ja kaikkien ylläpidettyjen julkaisijoiden "
+"sivustojen oletuskielenä."
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Valitse kaikki sivustolla tuettavat kielialueet. Valitut kielialueet ovat "
+"kaikkien sivustolla ylläpidettävien julkaisijoiden käytössä. Ne esiintyvät "
+"myös kielivalikossa, joka näkyy jokaisella sivuston sivulla (tämä voidaan "
+"ohittaa julkaisijoiden omilla sivuilla). Mikäli valitaan vain yksi "
+"kielialue, kielivalikko ei tule näkyviin ja laajennetut kieliasetukset eivät "
+"ole julkaisijoiden käytettävissä."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "Tähdellä (*) merkityt kielialueet saattavat olla vaillinaisia."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"Haluatko varmasti poistaa tämän kielialueen? Se saattaa vaikuttaa "
+"julkaisijoihin, joilla on tämä kielialue käytössä."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Valitse mitä tahansa lisäkielialueita, joille asennetaan tuki tässä "
+"järjestelmässä. Kielialueet täytyy asentaa ennen kuin ylläpidetyt "
+"julkaisijat voivat käyttää niitä. Katso OMP:n ohjeista tietoja siitä, kuinka "
+"uusille kielille lisätään tuki."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"Haluatko varmasti poistaa tämän kielialueen käytöstä? Se saattaa vaikuttaa "
+"julkaisijoihin, joilla on tämä kielialue käytössä."
+
+msgid "admin.systemVersion"
+msgstr "OMP-versio"
+
+msgid "admin.systemConfiguration"
+msgstr "OMP:n määritys"
+
+msgid "admin.presses.pressSettings"
+msgstr "Julkaisijan asetukset"
+
+msgid "admin.presses.noneCreated"
+msgstr "Yhtään julkaisijan sivustoa ei ole luotu."
+
+msgid "admin.contexts.create"
+msgstr "Luo julkaisijan sivusto"
+
+msgid "admin.contexts.form.titleRequired"
+msgstr "Otsikko vaaditaan."
+
+msgid "admin.contexts.form.pathRequired"
+msgstr "Polku vaaditaan."
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+"Polku voi sisältää vain aakkosnumeerisia merkkejä, alaviivoja ja "
+"yhdysmerkkejä, ja sen täytyy alkaa ja päättyä aakkosnumeeriseen merkkiin."
+
+msgid "admin.contexts.form.pathExists"
+msgstr "Valittu polku on jo toisen julkaisijan sivuston käytössä."
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr ""
+"Pääasiallisen kielen tulee olla yksi julkaisijan sivuston käyttämistä "
+"kielistä."
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} luotiin onnistuneesti."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} päivitettiin onnistuneesti."
+
+msgid "admin.contexts.contextDescription"
+msgstr "Julkaisijan kuvaus"
+
+msgid "admin.presses.addPress"
+msgstr "Lisää julkaisijan sivusto"
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"HUOM!\n"
+"
Järjestelmä ei voinut korvata määritystiedostoa automaattisesti. "
+"Ottaaksesi määritysmuutokset käyttöön avaa config.inc.php sopivassa "
+"tekstieditorissa ja korvaa sen sisältö alla olevan tekstikentän "
+"sisällöllä.
"
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+"Valitse ne julkaisijoiden sivustot, joiden sallitaan lähettää "
+"massasähköposteja. Kun tämä ominaisuus on päällä, julkaisijan sivuston "
+"hallinnoija pystyy lähettämään sähköpostin kaikille sivustolleen "
+"rekisteröityneille käyttäjille.
Ominaisuuden väärinkäyttö voi rikkoa "
+"massasähköposteja koskevaa lainsäädäntöä ja voi edesauttaa "
+"sähköpostipalvelimelta lähtevien viestien päätymistä roskapostiksi. Ennen "
+"ominaisuuden käyttöönottoa kysy tarvittaessa neuvoa tekniseltä "
+"asiantuntijalta ja keskustele ominaisuuden oikeaoppisesta käytöstä sivustosi "
+"julkaisijoiden kanssa.
Ominaisuuden käyttöä voi rajoittaa tarkemmin "
+"julkaisijan sivuston asetuksista, joihin pääset julkaisijoiden sivustojen listauksesta."
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+"Julkaisijan sivuston hallinnoija ei pysty lähettämään massasähköposteja alla "
+"valituille rooleille. Tätä asetusta voi käyttää massasähköpostien "
+"väärinkäytösten rajoittamiseen. Esimerkiksi, voi olla kannattavaa rajoittaa "
+"lukijoille, kirjoittajille tai muille suurille käyttäjäryhmille lähetettäviä "
+"viestejä, jos he eivät ole antaneet lupaa sellaisten "
+"lähettämiseen.
Massasähköpostit voi ottaa kokonaan pois käytöstä "
+"kohdasta Ylläpito > Sivuston asetukset."
+
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
+"Massasähköpostit on poistettu käytöstä tämän julkaisijan sivustolla. Ota "
+"toiminto käyttöön kohdasta Ylläpito > "
+"Sivuston asetukset."
+
+msgid "admin.siteManagement.description"
+msgstr ""
+"Lisää, muokkaa tai poista julkaisijoita tältä sivustolta ja hallitse koko "
+"sivuston asetuksia."
+
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr "Luvun ID-tunnus ei ole kokonaisluku"
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr "Sarjan ID-tunnus ei ole kokonaisluku"
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+"Valitse, minkä tyyppisiä maantieteellisiä käyttötilastoja tämän sivuston "
+"julkaisijat voivat kerätä. Yksityiskohtaisemmat maantieteelliset tilastot "
+"saattavat kasvattaa tietokannan kokoa huomattavasti ja joissakin harvoissa "
+"tapauksissa heikentää kävijöiden anonymiteettiä. Kukin julkaisija voi "
+"määrittää tämän asetuksen eri tavalla, mutta julkaisija ei voi koskaan "
+"kerätä yksityiskohtaisempia tietueita kuin mitä tässä on määritetty. Jos "
+"sivusto esimerkiksi tukee vain maata ja aluetta, julkaisija voi valita "
+"esimerkiksi maan ja alueen tai vain maan. Julkaisija ei voi tallentaa maata, "
+"aluetta ja kaupunkia."
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+"Ota käyttöön instituutiotilastot, jos haluat, että tämän sivuston "
+"julkaisijat voivat kerätä instituutiokohtaisia käyttötilastoja. "
+"Julkaisijoiden on lisättävä instituutio ja sen IP-alueet voidakseen käyttää "
+"tätä ominaisuutta. Instituutiotilastojen käyttöönotto voi kasvattaa "
+"tietokannan kokoa huomattavasti."
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+"Asetetaanko SUSHI API julkisesti saataville kaikissa tämän sivuston "
+"julkaisijoille. Jos otat julkisen API:n käyttöön, kukin julkaisija voi "
+"ohittaa tämän asetuksen tehdäkseen tilastonsa yksityisiksi. Jos kuitenkin "
+"poistat julkisen API:n käytöstä, julkaisijat eivät voi tehdä omasta API:sta "
+"julkista."
+
+#~ msgid "admin.hostedPresses"
+#~ msgstr "Ylläpidetyt painot"
+
+#~ msgid "admin.settings.pressRedirect"
+#~ msgstr "Painon uudelleenohjaus"
+
+#~ msgid "admin.settings.pressRedirectInstructions"
+#~ msgstr ""
+#~ "Pyynnöt pääsivustolle uudelleenohjataan tähän painoon. Tämä saattaa olla "
+#~ "hyödyllinen toiminto, jos sivustolla ylläpidetään vain yhtä painoa."
+
+#~ msgid "admin.presses.createInstructions"
+#~ msgstr ""
+#~ "Sinut lisätään automaattisesti tämän painon hallinnoijaksi. Uuden painon "
+#~ "luonnin jälkeen sinut uudelleenohjataan ohjattuun asetusten luontiin "
+#~ "painon aloitusasetusten loppuun saattamiseksi."
+
+#~ msgid "admin.presses.urlWillBe"
+#~ msgstr "Painon URL-osoitteeksi tulee {$sampleUrl}"
+
+#~ msgid "admin.presses.enablePressInstructions"
+#~ msgstr "Näytä tämä paino julkisesti sivustolla"
+
+#~ msgid "admin.presses.pressDescription"
+#~ msgstr "Painon kuvaus"
+
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr "Käytä sivustoa kaikkien julkaisijoiden sivustojen alustana."
diff --git a/locale/fi/api.po b/locale/fi/api.po
new file mode 100644
index 00000000000..7e6441eab09
--- /dev/null
+++ b/locale/fi/api.po
@@ -0,0 +1,42 @@
+# Antti-Jussi Nygård , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-05-24 11:08+0000\n"
+"Last-Translator: Antti-Jussi Nygård \n"
+"Language-Team: Finnish \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.13.1\n"
+
+msgid "api.submissions.400.submissionIdsRequired"
+msgstr ""
+"Anna yhden tai useamman luetteloon lisättävän käsikirjoituksen ID-tunniste."
+
+msgid "api.submissions.400.submissionsNotFound"
+msgstr "Yhtä tai useampaa määrittämääsi käsikirjoitusta ei löytynyt."
+
+msgid "api.submissions.400.wrongContext"
+msgstr "Pyytämääsi käsikirjoitusta ei ole tällä julkaisijalla."
+
+msgid "api.emails.403.disabled"
+msgstr ""
+"Sähköposti-ilmoituksia ei ole otettu käyttöön tämän julkaisijan sivustolla."
+
+msgid "api.emailTemplates.403.notAllowedChangeContext"
+msgstr ""
+"Sinulla ei ole lupaa siirtää tätä sähköpostipohjaa toiseen julkaisijaan."
+
+msgid "api.publications.403.contextsDidNotMatch"
+msgstr "Pyytämäsi julkaistu versio ei kuulu tälle julkaisijalle."
+
+msgid "api.publications.403.submissionsDidNotMatch"
+msgstr "Pyytämäsi julkaistu versio ei kuulu tähän käsikirjoitukseen."
+
+msgid "api.submissions.403.cantChangeContext"
+msgstr "Et voi vaihtaa käsikirjoitukseen liittyvää julkaisijaa."
+
+msgid "api.submission.400.inactiveSection"
+msgstr "Tämä sarja ei enää vastaanota käsikirjoituksia."
diff --git a/locale/fi/author.po b/locale/fi/author.po
new file mode 100644
index 00000000000..93402534d50
--- /dev/null
+++ b/locale/fi/author.po
@@ -0,0 +1,19 @@
+# Antti-Jussi Nygård , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-03-01 21:48+0000\n"
+"Last-Translator: Antti-Jussi Nygård \n"
+"Language-Team: Finnish "
+"\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.13.1\n"
+
+msgid "author.submit.notAccepting"
+msgstr "Tämä julkaisija ei tällä hetkellä ota vastaan käsikirjoituksia."
+
+msgid "author.submit"
+msgstr "Uusi käsikirjoitus"
diff --git a/locale/fi/default.po b/locale/fi/default.po
new file mode 100644
index 00000000000..de9ad356917
--- /dev/null
+++ b/locale/fi/default.po
@@ -0,0 +1,317 @@
+# Antti-Jussi Nygård , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
+"PO-Revision-Date: 2023-05-23 20:49+0000\n"
+"Last-Translator: Antti-Jussi Nygård \n"
+"Language-Team: Finnish "
+"\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.13.1\n"
+
+msgid "default.genres.appendix"
+msgstr "Liite"
+
+msgid "default.genres.bibliography"
+msgstr "Bibliografia"
+
+msgid "default.genres.manuscript"
+msgstr "Kirjan käsikirjoitus"
+
+msgid "default.genres.chapter"
+msgstr "Luvun käsikirjoitus"
+
+msgid "default.genres.glossary"
+msgstr "Sanasto"
+
+msgid "default.genres.index"
+msgstr "Hakemisto"
+
+msgid "default.genres.preface"
+msgstr "Alkusanat"
+
+msgid "default.genres.prospectus"
+msgstr "Esite"
+
+msgid "default.genres.table"
+msgstr "Taulukko"
+
+msgid "default.genres.figure"
+msgstr "Kuvio"
+
+msgid "default.genres.photo"
+msgstr "Valokuva"
+
+msgid "default.genres.illustration"
+msgstr "Kuva"
+
+msgid "default.genres.other"
+msgstr "Muu"
+
+msgid "default.groups.name.manager"
+msgstr "Julkaisijan sivuston hallinnoija"
+
+msgid "default.groups.plural.manager"
+msgstr "Julkaisijan sivuston hallinnoijat"
+
+msgid "default.groups.abbrev.manager"
+msgstr "PH"
+
+msgid "default.groups.name.editor"
+msgstr "Toimittaja"
+
+msgid "default.groups.plural.editor"
+msgstr "Toimittajat"
+
+msgid "default.groups.abbrev.editor"
+msgstr "PT"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Sarjan toimittaja"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Sarjan toimittajat"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "ST"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr "Tilaussihteeri"
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr "Tilaussihteerit"
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr "SubM"
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Luvun kirjoittaja"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Luvun kirjoittajat"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "LK"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Niteen toimittaja"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Niteen toimittajat"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "NT"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+"Kirjoittajia kutsutaan ehdottamaan käsikirjoituksia julkaisijalle. "
+"Sopivat käsikirjoitukset lähetetään vertaisarviointiin, jonka jälkeen "
+"päätetään, hyväksytäänkö vai hylätäänkö ne.
Tekijät ovat ennen "
+"käsikirjoituksen lähettämistä vastuussa siitä, että he hankkivat luvan "
+"julkaista kaikki käsikirjoitukseen sisältyvät aineistot, kuten valokuvat, "
+"liitteet ja tietoaineistot. Kaikkien kirjoittajien, jotka on merkitty "
+"käsikirjoitukseen, on annettava suostumuksensa siihen, että heidät "
+"tunnistetaan kirjoittajiksi. Tutkimuksen on oltava mahdollisuuksien mukaan "
+"asianmukaisen eettisen toimikunnan hyväksymä tutkimuksen kotimaan "
+"lakisääteisten vaatimusten mukaisesti.
Toimittaja voi hylätä "
+"käsikirjoituksen, jos se ei täytä vähimmäislaatuvaatimuksia. Varmista ennen "
+"lähettämistä, että teos jäsennelty ja tulokset kuvattu selkeästi. Otsikon on "
+"oltava tiivis, ja tiivistelmän tulee olla ymmärrettävissä itsenäisesti. Tämä "
+"lisää todennäköisyyttä, että arvioijat suostuvat arvioimaan teoksen. Kun "
+"olet vakuuttunut siitä, että käsikirjoituksesi täyttää nämä vaatimukset, "
+"voit valmistella käsikirjoituksesi lähetystä varten alla olevan "
+"tarkistuslistan avulla.
"
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+"Kaikkien käsikirjoitusten on täytettävä seuraavat vaatimukset."
+"p>
- Tämä käsikirjoitus täyttää kirjoittajaohjeissa esitetyt vaatimukset.
- Tätä käsikirjoitusta "
+"ei ole aiemmin julkaistu, eikä se ole toisen julkaisijan käsiteltävänä."
+"li>
- Kaikki viitteet on tarkistettu virheettömyyden varmistamiseksi."
+"li>
- Kaikki taulukot ja kuviot on numeroitu ja nimetty.
- Kaikkien "
+"valokuvien, tietoaineistojen ja muun aineiston julkaisemiseen on saatu "
+"lupa.
"
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"Tämän julkaisijan sivustolle syötettyjä nimiä ja sähköpostiosoitteita "
+"käytetään yksinomaan tämän julkaisijan tarkoituksiin, eikä niitä luovuteta "
+"mihinkään muuhun tarkoitukseen tai muille osapuolille.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"Tämä julkaisijan sisällöt ovat välittömästi avoimesti saatavilla noudattaen "
+"periaatetta, jonka mukaan tutkimuksen tekeminen vapaasti saatavilla olevaksi "
+"suurelle yleisölle tukee suurempaa globaalia tiedonvaihtoa."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"Kehotamme lukijoita rekisteröitymään palveluun, joka ilmoittaa tämän "
+"julkaisijan uusista teoksista. Käytä etusivun yläosassa olevaa Rekisteröidy -linkkiä. "
+"Rekisteröitymisen tuloksena lukijalle lähetetään sähköpostitse julkaisijan "
+"jokaisen uuden teoksen sisällysluettelo. Tämän palvelun käyttäjälistan "
+"avulla julkaisija myös saa tietoa lukijakunnastaan. Julkaisijan Tietosuojaseloste takaa, että lukijoiden nimiä ja sähköpostiosoitteita "
+"ei käytetä muihin tarkoituksiin."
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"Kiinnostaako oman käsikirjoituksen lähetys? Suosittelemme, että tutustut Tietoa julkaisijasta -sivulla "
+"julkaisijan sarjojen käytäntöihin sekä Kirjoittajan ohjeisiin. "
+"Kirjoittajien tulee rekisteröityä julkaisijan sivuston käyttäjäksi ennen käsikirjoituksen "
+"lähettämistä tai jo rekisteröidyttyään kirjautua sisään aloittaakseen viisivaiheisen prosessin."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Suosittelemme, että tutkimuskirjastojen hoitajat listaavat tämän julkaisijan "
+"kirjastojensa sähköisten julkaisijoiden kokoelmaan. Tämä avoimen lähdekoodin "
+"julkaisujärjestelmä sopii kirjastojen ylläpitämänä myös tiedekuntien "
+"jäsenten käyttöön sellaisten julkaisijoiden yhteydessä, joiden julkaisujen "
+"toimittamiseen he osallistuvat (ks. Open "
+"Monograph Press)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Ulkopuolinen arvioija"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Ulkopuoliset arvioijat"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "UA"
+
+#~ msgid "default.groups.name.seriesEditor"
+#~ msgstr "Sarjan toimittaja"
+
+#~ msgid "default.groups.plural.seriesEditor"
+#~ msgstr "Sarjan toimittajat"
+
+#~ msgid "default.groups.abbrev.seriesEditor"
+#~ msgstr "ST"
+
+#~ msgid "default.pressSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "Tätä käsikirjoitusta ei ole aiemmin julkaistu, eikä sitä ole lähetetty "
+#~ "toiseen painoon (tai asiasta on annettu selvitys Kommentteja "
+#~ "toimittajalle -kohdassa)."
+
+#~ msgid "default.pressSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "Käsikirjoitustiedosto on Microsoft Word, RTF tai OpenDocument -"
+#~ "tiedostomuodossa."
+
+#~ msgid "default.pressSettings.checklist.addressesLinked"
+#~ msgstr "Lähteiden URL-osoitteet on annettu, mikäli ne ovat saatavilla."
+
+#~ msgid "default.pressSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "Tekstin riviväli on yksi; kirjasinkoko on 12; tekstissä käytetään "
+#~ "kursiivia, ei alleviivausta (paitsi URL-osoitteissa); ja kaikki kuvat, "
+#~ "kuviot ja taulukot on sijoitettu ensisijaisesti sopiviin kohtiin tekstin "
+#~ "lomaan, ei tekstin loppuun."
+
+#~ msgid "default.pressSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "Teksti noudattaa Kirjoittajan ohjeissa"
+#~ "a> mainittuja stilistisiä ja bibliografisia vaatimuksia, jotka löytyvät "
+#~ "Tietoa painosta -kohdasta."
+
+#~ msgid "default.pressSettings.privacyStatement"
+#~ msgstr ""
+#~ "Tämän painon sivustolle syötettyjä nimiä ja sähköpostiosoitteita "
+#~ "käytetään yksinomaan tämän painon tarkoituksiin, eikä niitä luovuteta "
+#~ "mihinkään muuhun tarkoitukseen tai muille osapuolille."
+
+#~ msgid "default.pressSettings.openAccessPolicy"
+#~ msgstr ""
+#~ "Tämä painon sisällöt ovat välittömästi avoimesti saatavilla noudattaen "
+#~ "periaatetta, jonka mukaan tutkimuksen tekeminen vapaasti saatavilla "
+#~ "olevaksi suurelle yleisölle tukee suurempaa globaalia tiedonvaihtoa."
+
+#~ msgid "default.pressSettings.emailSignature"
+#~ msgstr ""
+#~ "
\n"
+#~ "________________________________________________________________________
\n"
+#~ "{$ldelim}$contextName{$rdelim}"
+#~ "a>"
+
+#~ msgid "default.pressSettings.forReaders"
+#~ msgstr ""
+#~ "Kehotamme lukijoita rekisteröitymään palveluun, joka ilmoittaa tämän "
+#~ "painon uusista julkaisuista. Käytä tämän painon etusivun yläosassa olevaa "
+#~ "Rekisteröidy -"
+#~ "linkkiä. Rekisteröitymisen tuloksena lukijalle lähetetään sähköpostitse "
+#~ "painon jokaisen uuden kirjan sisällysluettelo. Tämän palvelun "
+#~ "käyttäjälistan avulla paino myös kerää tietoa kannattajamääristään ja "
+#~ "lukijakunnastaan. Painon Tietosuojaseloste takaa, että "
+#~ "lukijoiden nimiä ja sähköpostiosoitteita ei käytetä muihin tarkoituksiin."
+
+#~ msgid "default.pressSettings.forAuthors"
+#~ msgstr ""
+#~ "Kiinnostaako tähän painoon kirjoittaminen? Suosittelemme, että tutustut "
+#~ "Tietoa painosta -sivulla "
+#~ "painon osastojen käytäntöihin sekä Kirjoittajan ohjeisiin. "
+#~ "Kirjoittajien tulee rekisteröityä painon käyttäjäksi ennen käsikirjoituksen "
+#~ "lähettämistä tai jo rekisteröidyttyään kirjautua sisään aloittaakseen viisivaiheisen prosessin."
+
+#~ msgid "default.pressSettings.forLibrarians"
+#~ msgstr ""
+#~ "Suosittelemme, että tutkimuskirjastojen hoitajat listaavat tämän painon "
+#~ "kirjastojensa sähköisten painojen kokoelmaan. Tämä avoimen lähdekoodin "
+#~ "julkaisujärjestelmä sopii kirjastojen ylläpitämänä myös tiedekuntien "
+#~ "jäsenten käyttöön sellaisten painojen yhteydessä, joiden julkaisujen "
+#~ "toimittamiseen he osallistuvat (ks. Open Monograph Press)."
+
+#~ msgid "default.pressSettings.manager.setup.category"
+#~ msgstr "Kategoria"
+
+#~ msgid "default.pressSettings.manager.series.book"
+#~ msgstr "Kirjasarja"
+
+#~ msgid "default.contextSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "Teksti noudattaa Kirjoittajan ohjeissa"
+#~ "a> mainittuja stilistisiä ja bibliografisia vaatimuksia, jotka löytyvät "
+#~ "Tietoa julkaisijasta -kohdasta."
+
+#~ msgid "default.contextSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "Tekstin riviväli on yksi; kirjasinkoko on 12; tekstissä käytetään "
+#~ "kursiivia, ei alleviivausta (paitsi URL-osoitteissa); ja kaikki kuvat, "
+#~ "kuviot ja taulukot on sijoitettu ensisijaisesti sopiviin kohtiin tekstin "
+#~ "lomaan, ei tekstin loppuun."
+
+#~ msgid "default.contextSettings.checklist.addressesLinked"
+#~ msgstr ""
+#~ "Lähdeviitteiden pysyvät tunnisteet tai osoitteet on ilmoitettu mikäli "
+#~ "mahdollista."
+
+#~ msgid "default.contextSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "Käsikirjoituksen tiedosto on Microsoft Word, RTF tai OpenDocument -"
+#~ "muodossa."
+
+#~ msgid "default.contextSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "Käsikirjoitusta ei ole ennen julkaistu, eikä se ole harkittavana toisella "
+#~ "julkaisijalla."
diff --git a/locale/fi_FI/editor.po b/locale/fi/editor.po
similarity index 100%
rename from locale/fi_FI/editor.po
rename to locale/fi/editor.po
diff --git a/locale/fi/emails.po b/locale/fi/emails.po
new file mode 100644
index 00000000000..3750c46263c
--- /dev/null
+++ b/locale/fi/emails.po
@@ -0,0 +1,542 @@
+# Antti-Jussi Nygård , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-02-13T19:57:22+00:00\n"
+"PO-Revision-Date: 2023-05-29 19:34+0000\n"
+"Last-Translator: Antti-Jussi Nygård \n"
+"Language-Team: Finnish "
+"\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.13.1\n"
+
+msgid "emails.passwordResetConfirm.subject"
+msgstr "Vahvista salasanan vaihtaminen"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"Olemme vastaanottaneet pyynnön vaihtaa salasananne {$siteTitle} sivustolle."
+"
\n"
+"
\n"
+"Jos ette tehnyt tätä pyyntöä, voitte jättää tämän sähköpostin huomiotta. Jos "
+"haluatte vaihtaa salasanan, klikatkaa alla olevaa linkkiä.
\n"
+"
\n"
+"Vaihda salasana: {$passwordResetUrl}
\n"
+"
\n"
+"{$siteContactName}"
+
+msgid "emails.passwordReset.subject"
+msgstr ""
+
+msgid "emails.passwordReset.body"
+msgstr ""
+
+msgid "emails.userRegister.subject"
+msgstr "Julkaisijan sivustolle rekisteröityminen"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"Hyvä {$recipientName},
\n"
+"
\n"
+"Olette nyt rekisteröitynyt julkaisijan {$contextName} käyttäjäksi. "
+"Tarvitsette alla olevaa käyttäjätunnustanne ja salasanaanne kaikkeen "
+"työskentelyyn julkaisijan sivustolla. Voitte missä vaiheessa tahansa pyytää "
+"poistamaan teidät julkaisujan sivuston käyttäjistä ottamalla yhteyttä minuun."
+"
\n"
+"
\n"
+"Käyttäjätunnus: {$recipientUsername}
\n"
+"Salasana: {$password}
\n"
+"
\n"
+"Ystävällisin terveisin,
\n"
+"{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr "Käyttäjätunnuksen vahvistaminen"
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+"Hyvä {$recipientName},
\n"
+"
\n"
+"Olette luonut käyttäjätunnuksen {$contextName}-sivustolla. Ennen kuin voitte "
+"alkaa käyttää tunnustanne, teidän pitää vahvistaa sähköpostiosoitteenne. "
+"Voitte tehdä sen alla olevan linkin kautta:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Ystävällisin terveisin,
\n"
+"{$contextSignature}"
+
+msgid "emails.userValidateSite.subject"
+msgstr "Vahvista käyttäjätilisi"
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+"Hyvä {$recipientName}
\n"
+"
\n"
+"Olette luonut tilin sivustolle {$siteTitle}. Ennen kuin voitte alkaa käyttää "
+"tiliänne, teidän pitää vahvistaa sähköpostitilinne. Voitte tehdä sen alla "
+"olevan linkin kautta:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Ystävällisin terveisin,
\n"
+"{$siteSignature}"
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Rekisteröinti arvioijaksi julkaisijan sivustolle {$contextName}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"Asiantuntemuksenne valossa, olemme ottaneet vapauden rekisteröidä teidät "
+"julkaisijan {$contextName} arvioijatietokantaan. Tämä ei velvoita teitä "
+"mihinkään, mutta antaa meille mahdollisuuden ottaa teihin yhteyttä "
+"mahdollisen käsikirjoituksen arvioinnin tiimoilta. Arviointikutsun "
+"yhteydessä näette arvioitavan työn nimekkeen ja abstraktin, ja voitte aina "
+"joko hyväksyä kutsun tai kieltäytyä siitä. Voitte myös missä tahansa "
+"vaiheessa pyytää, että nimenne poistetaan tältä arvioijalistalta.
\n"
+"
\n"
+"Annamme teille käyttäjätunnuksen ja salasanan, joita käytetään kaikkeen "
+"vuorovaikutukseen julkaisijan kanssa sen verkkosivuston kautta. Halutessanne "
+"voitte esimerkiksi päivittää profiilinne ja teitä kiinnostavat "
+"arviointiaiheet.
\n"
+"
\n"
+"Käyttäjätunnus: {$recipientUsername}
\n"
+"Salasana: {$password}
\n"
+"
\n"
+"Ystävällisin terveisin,
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.subject"
+msgstr "Toimituksellinen toimeksianto"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+"Hyvä {$recipientName},
Seuraava käsikirjoitus on osoitettu sinulle "
+"toimitustyötä varten.
{$submissionTitle}"
+"a>
{$authors}
Abstract
{$submissionAbstract}Jos olet "
+"sitä mieltä, että käsikirjoitus on sopiva julkaisijalle {$contextName}, "
+"lähetä käsikirjoitus eteenpäin arviointivaiheeseen valitsemalla \"Lähetä "
+"sisäiseen arviointiin\" ja osoita sitten arvioijat valitsemalla \"Lisää "
+"arvioija\".
Jos käsikirjoitus ei mielestäsi sovi meille, ole hyvä ja "
+"hylkää se.
Kiitos jo etukäteen.
Ystävällisin "
+"terveisin,
{$contextSignature}"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Käsikirjoituksen arviointipyyntö"
+
+msgid "emails.reviewRequest.body"
+msgstr ""
+"Hyvä {$recipientName},
Uskon, että olisitte sopiva arvioija "
+"käsikirjoitukselle, joka on lähetetty julkaisijalle {$contextName}. "
+"Käsikirjoituksen otsikko ja tiivistelmä löytyy tämän viestin lopusta. "
+"Toivon, että harkitsette tähän meille tärkeään työhön ryhtymistä.
Jos "
+"pystytte arvioimaan tämän käsikirjoituksen, arvio on palautettava "
+"{$reviewDueDate} mennessä. Voitte tarkastella käsikirjoitusta, lisätä "
+"arviointitiedostoja ja lähettää arvion kirjautumalla julkaisun sivustolle ja "
+"seuraamalla alla olevan linkin takaa löytyviä ohjeita.
{$submissionTitle}
Abstrakti
{$submissionAbstract}"
+"Olkaa hyvä ja hyväksykää tai hylätkää"
+"a> arviointipyyntö {$responseDueDate} mennessä.
Voitte ottaa "
+"minuun yhteyttä, jos teillä on kysyttävää käsikirjoituksesta tai "
+"arviointiprosessista.
Kiitos, että harkitsette tätä arviointipyyntöä."
+"p>
Ystävällisin terveisin,
{$signature}"
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr "Korjatun käsikirjoituksen arviointipyyntö"
+
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+"Hyvä {$recipientName},
Paljon kiitoksia aiemmasta käsikirjoitusta "
+"{$submissionTitle} koskevasta "
+"arvioinnistanne. Käsikirjoituksen aiemman version arvioinnin jälkeen "
+"kirjoittaja on nyt lähettänyt korjatun version työstään. Arvostaisimme "
+"suuresti, jos voisitte auttaa sen arvioinnissa.
Jos pystytte "
+"arvioimaan tämän käsikirjoituksen, arvio on palautettava {$reviewDueDate} "
+"mennessä. Voitte tarkastella käsikirjoitusta, lisätä arviointitiedostoja ja "
+"lähettää arvion kirjautumalla julkaisijan "
+"sivustolle ja seuraamalla järjestelmän antamia ohjeita.
{$submissionTitle}
Abstrakti
{$submissionAbstract}"
+"Olkaa hyvä ja hyväksykää tai hylätkää"
+"a> arviointipyyntö {$responseDueDate} mennessä.
Voitte ottaa "
+"minuun yhteyttä, jos teillä on kysyttävää käsikirjoituksesta tai "
+"arviointiprosessista.
Kiitos, että harkitsette tätä arviointipyyntöä."
+"p>Ystävällisin terveisin,
{$signature}"
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr "Käsikirjoituksen arviointipyyntö"
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+"Hyvä {$recipientName},
\n"
+"Muistuttaisin ystävällisesti pyynnöstämme arvioida käsikirjoitus "
+""{$submissionTitle}". Toivoimme saavamme vastauksenne "
+"{$responseDueDate} mennessä, ja tämä sähköposti on lähetetty automaattisesti "
+"määräajan umpeuduttua.\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Kirjautukaa julkaisijan verkkosivustolle ilmoittaaksenne haluatteko "
+"suorittaa arvioinnin vai ette. Teidän on kirjauduttava verkkosivustolle "
+"myös, jotta saatte pääsyn käsikirjoitukseen ja voitte tallentaa arvionne ja "
+"suosituksenne.
\n"
+"
\n"
+"Arvioinnin määräpäivä on {$reviewDueDate}.
\n"
+"
\n"
+"Käsikirjoituksen URL: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Käyttäjätunnus: {$recipientUsername}
\n"
+"
\n"
+"Kiitos, että harkitsette arvioijaksi ryhtymistä.
\n"
+"
\n"
+"
\n"
+"Ystävällisin terveisin,
\n"
+"{$contextSignature}
\n"
+
+msgid "emails.reviewCancel.subject"
+msgstr "Arviointipyynnön peruminen"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"Hyvä {$recipientName},
\n"
+"
\n"
+"Olemme tässä vaiheessa päättäneet perua pyyntömme käsikirjoituksen ""
+"{$submissionTitle}" arvioinnista julkaisijalle {$contextName}. "
+"Pahoittelemme tästä teille mahdollisesti aiheutuvaa vaivaa, ja toivomme, "
+"että voimme kuitenkin tulevaisuudessa pyytää teitä avustamaan "
+"arviointiprosessissa.
\n"
+"
\n"
+"Mikäli teillä on kysyttävää, otattehan yhteyttä minuun."
+
+#, fuzzy
+msgid "emails.reviewReinstate.body"
+msgstr "Arviointipyyntö uusittu"
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+"Hyvä {$recipientName},
Peruimme hiljattain pyyntömme arvioida "
+"julkaisijalle {$contextName} lähetetyn käsikirjoituksen {$submissionTitle}. "
+"Olemme peruneet tämän päätöksen, ja toivomme, että voitte edelleen tehdä "
+"arvioinnin.
Jos voitte avustaa tämän käsikirjoituksen arvioinnissa, "
+"voitte tarkastella käsikirjoitusta, lisätä arviointitiedostoja ja lähettää "
+"arvion kirjautumalla julkaisijan "
+"sivustolle ja seuraamalla järjestelmän antamia ohjeita
Mikäli "
+"teillä on kysyttävää, otattehan yhteyttä minuun.
Ystävällisin "
+"terveisin,
{$signature}"
+
+msgid "emails.reviewDecline.subject"
+msgstr "Arviointipyynnön hylkääminen"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"Hyvä(t) toimittaja(t),
\n"
+"
\n"
+"En valitettavasti voi tällä kertaa suorittaa käsikirjoituksen ""
+"{$submissionTitle}" arviointia. Kiitos, että pyysitte minua tähän "
+"tehtävään. Toivon, että otatte vastaisuudessakin minuun yhteyttä arviointeja "
+"koskien.
\n"
+"
\n"
+"{$senderName}"
+
+msgid "emails.reviewRemind.subject"
+msgstr "Muistutus käsikirjoituksen arvioinnista"
+
+msgid "emails.reviewRemind.body"
+msgstr ""
+"Hyvä {$recipientName},
Muistuttaisin ystävällisesti pyynnöstämme "
+"arvioida käsikirjoitus \"{$submissionTitle}\" julkaisijalle {$contextName}. "
+"Toivoimme saavamme arviointinne {$reviewDueDate} mennessä, ja olisimme "
+"iloisia, mikäli voisitte lähettää arvioinnin meille heti sen tehtyänne."
+"p>
Voitte tarkastella käsikirjoitusta, lisätä arviointitiedostoja ja "
+"lähettää arvion kirjautumalla julkaisijan "
+"sivustolle ja seuraamalla järjestelmän antamia ohjeita.
Jos "
+"tarvitsette pidennystä määräaikaan, ottakaa yhteyttä minuun. Toivottavasti "
+"kuulemme teistä pian.
Ystävällisin terveisin,
{$signature}"
+
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+"Hyvä {$recipientName},
Tämä on automaattinen muistutus "
+"julkaisijalta {$contextName}, joka koskee käsikirjoituksen \""
+"{$submissionTitle}\" arviointipyyntöä.
Odotimme saavamme tämän "
+"arvioinnin {$reviewDueDate} mennessä, ja ottaisimme sen mielellämme vastaan "
+"heti, kun pystytte sen tekemään.
Voitte tarkastella käsikirjoitusta, "
+"lisätä arviointitiedostoja ja lähettää arvion kirjautumalla julkaisijan sivustolle ja "
+"seuraamalla järjestelmän antamia ohjeita.
Jos tarvitsette pidennystä "
+"määräaikaan, ottakaa yhteyttä minuun. Toivottavasti kuulemme teistä pian."
+"p>
Ystävällisin terveisin,
{$contextSignature}"
+
+msgid "emails.editorDecisionAccept.subject"
+msgstr "{$contextName} on hyväksynyt käsikirjoituksesi"
+
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+"Hyvä {$recipientName},
Minulla on kunnia ilmoittaa, että olemme "
+"päättäneet hyväksyä käsikirjoituksesi. Huolellisen arvioinnin jälkeen "
+"katsoimme, että käsikirjoitus {$submissionTitle} täyttää vaatimuksemme. "
+"Olemme iloisia voidessamme julkaista käsikirjoituksesi {$contextName}-"
+"julkaisussa ja kiitämme sinua siitä, että valitsit meidät."
+"p>
Käsikirjoitus tullaan julkaisemaan pian sivustollamme, ja voitte lisätä "
+"sen julkaisuluetteloonne. Käsikirjoituksen hyväksytyksi saaminen on aina "
+"kovan työn takana ja haluammekin onnitella sinua tämän vaiheen saavuttamisen "
+"johdosta.
Seuraavaksi käsikirjoituksesi siirtyy tekniseen "
+"toimitukseen, jossa se valmistellaan julkaistavaksi.
Saat pian "
+"lisäohjeita.
Jos sinulla on kysyttävää, ota yhteyttä minuun aloittamalla uusi keskustelu julkaisumme "
+"sivustolla.
Ystävällisin terveisin,
{$signature}"
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr "Käsikirjoituksesi on lähetetty sisäiseen arviointiin"
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+"Hyvä {$recipientName},
Olen iloinen voidessani ilmoittaa, että "
+"toimittaja on käsitellyt käsikirjoituksesi {$submissionTitle} ja päättänyt "
+"lähettää sen sisäiseen arviointiin. Saat pian palautetta arvioijilta ja "
+"tietoa seuraavista vaiheista.
Huomaa, että käsikirjoituksen "
+"lähettäminen sisäiseen arviointiin ei takaa, että se julkaistaan. Kuulemme "
+"arvioijien suosituksia ennen kuin päätämme hyväksyä käsikirjoituksen "
+"julkaistavaksi. Sinua saatetaan pyytää tekemään korjauksia ja vastaamaan "
+"arvioijien kommentteihin ennen lopullisen päätöksen tekemistä.
Jos "
+"sinulla on kysyttävää, ota minuun yhteyttä järjestelmämme "
+"keskustelutoiminnolla.
{$signature}
"
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr "Käsikirjoituksesi on lähetetty tekniseen toimitukseen"
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+"Hyvä {$recipientName},
\n"
+"Minulla on kunnia ilmoittaa, että olemme päättäneet hyväksyä "
+"käsikirjoituksesi ilman vertaisarviointia. Katsoimme, että käsikirjoitus "
+"{$submissionTitle} täyttää vaatimuksemme, emmekä lähetä tämän tyyppisiä "
+"tekstejä tavallisesti arvioitavaksi. Olemme iloisia voidessamme julkaista "
+"käsikirjoituksesi ja kiitämme sinua siitä, että valitsit meidät.
\n"
+"Käsikirjoitus tullaan julkaisemaan pian sivustollamme, ja voitte lisätä "
+"sen julkaisuluetteloosi. Haluamme onnitella sinua tulevasta julkaisusta ja "
+"tehdystä työstä.
\n"
+" Seuraavaksi käsikirjoituksesi siirtyy tekniseen toimitukseen, jossa se "
+"valmistellaan julkaistavaksi.
\n"
+"Saat pian lisäohjeita.
\n"
+"Jos sinulla on kysyttävää, ota yhteyttä minuun aloittamalla uusi keskustelu sivustollamme.
"
+"\n"
+"Ystävällisin terveisin,
\n"
+"{$signature}
\n"
+
+msgid "emails.layoutRequest.subject"
+msgstr "Julkaistavia tiedostoja pyydetään"
+
+msgid "emails.layoutRequest.body"
+msgstr ""
+"Hyvä {$recipientName},
Uusi käsikirjoitus on valmiina "
+"taitettavaksi:
{$submissionId} — "
+"{$submissionTitle}
{$contextName}
- Klikatkaa yllä olevaa "
+"käsikirjoituksen URL-osoitetta.
- Ladatkaa omalle tietokoneelle "
+"tuotantovalmiit tiedostot ja käyttäkää niitä julkaistavien tiedostojen "
+"taittamiseen julkaisijan käytäntöjen mukaisesti.
- Ladatkaa valmiit "
+"tiedostot kohtaan Julkaiseminen > Julkaisumuodot.
- Ilmoittakaa "
+"toimittajalle keskustelutoiminnon kautta, että julkaisumuotojen tiedostot "
+"ovat valmiit ja ne on lisätty käsikirjoituksen yhteyteen.
Mikäli "
+"ette voi ryhtyä tähän tehtävään juuri nyt, tai jos teillä on kysyttävää, "
+"otattehan minuun yhteyttä. Kiitos panoksestanne tämän julkaisijan hyväksi."
+"p>
Ystävällisin terveisin,
{$signature}"
+
+msgid "emails.layoutComplete.subject"
+msgstr "Taiton julkaistavat tiedostot valmiita"
+
+msgid "emails.layoutComplete.body"
+msgstr ""
+"Hyvä {$recipientName},
Käsikirjoituksen julkaisumuodot on lisätty "
+"ja ne ovat valmiina viimeistä tarkistusta varten.
{$submissionTitle}
{$contextName}
Mikäli "
+"teillä on kysyttävää, otattehan yhteyttä minuun.
Ystävällisin "
+"terveisin,
{$signature}
"
+
+msgid "emails.indexRequest.subject"
+msgstr "Indeksointia pyydetään"
+
+msgid "emails.indexRequest.body"
+msgstr ""
+"Hyvä {$recipientName},
\n"
+"
\n"
+"Käsikirjoitukselle "{$submissionTitle}" tulee nyt luoda "
+"indeksointitiedot seuraavien vaiheiden mukaisesti:
\n"
+"1. Klikatkaa alla olevaa Käsikirjoituksen URL-linkkiä.
\n"
+"2. Kirjautukaa julkaisijan sivustolle ja käyttäkää Sivujen korjausvedokset -"
+"tiedostoa laatiaksenne julkaistavat tiedostot julkaisijan standardien "
+"mukaisesti.
\n"
+"3. Lähettäkää toimittajalle \"Indeksoinnin julkaistavat tiedostot valmiita\" "
+"-sähköposti.
\n"
+"
\n"
+"{$contextName} URL: {$contextUrl}
\n"
+"Käsikirjoituksen URL: {$submissionUrl}
\n"
+"Käyttäjätunnus: {$recipientUsername}
\n"
+"
\n"
+"Mikäli ette voi ryhtyä tähän tehtävään juuri nyt, tai teillä on kysyttävää, "
+"otattehan minuun yhteyttä. Kiitos panoksestanne tämän julkaisun hyväksi.
\n"
+"
\n"
+"{$signature}"
+
+msgid "emails.indexComplete.subject"
+msgstr "Indeksoinnin julkaistavat tiedostot valmiita"
+
+msgid "emails.indexComplete.body"
+msgstr ""
+"Hyvä {$recipientName},
\n"
+"
\n"
+"Käsikirjoituksen "{$submissionTitle}" indeksointitiedot on nyt "
+"luotu ja ne ovat valmiit oikolukua varten.
\n"
+"
\n"
+"Mikäli teillä on kysyttävää, otattehan minuun yhteyttä.
\n"
+"
\n"
+"{$senderName}"
+
+msgid "emails.emailLink.subject"
+msgstr "Mahdollisesti kiinnostava käsikirjoitus"
+
+msgid "emails.emailLink.body"
+msgstr ""
+"Ajattelin, että sinua saattaisi kiinnostaa {$authors}:n kirjoittama "
+"\"{$submissionTitle}\". Sen julkaisutiedot ovat {$contextName}, Nide "
+"{$volume} Nro. {$number} ({$year}), ja se löytyy osoitteesta ""
+"{$submissionUrl}"."
+
+msgid "emails.emailLink.description"
+msgstr ""
+"Tämä sähköpostipohja antaa rekisteröidylle lukijalle mahdollisuuden lähettää "
+"tietoa teoksesta jollekin, joka saattaa olla kiinnostunut siitä. Se on "
+"käytettävissä Lukutyökalujen kautta, ja julkaisun hallinnoijan on otettava "
+"se käyttöön Lukutyökalujen hallintasivulla."
+
+msgid "emails.notifySubmission.subject"
+msgstr "Ilmoitus käsikirjoitukseen liittyen"
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+"Sinulle on saapunut viesti käyttäjältä {$sender} käsikirjoitukseen ""
+"{$submissionTitle}" ({$monographDetailsUrl}) liittyen:
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifySubmission.description"
+msgstr "Käyttäjän lähettämä ilmoitus."
+
+msgid "emails.notifyFile.subject"
+msgstr "Ilmoitus käsikirjoitustiedostoon liittyen"
+
+msgid "emails.notifyFile.body"
+msgstr ""
+"Sinulle on saapunut viesti käyttäjältä {$sender} käsikirjoitukseen "
+"{$submissionTitle} ({$monographDetailsUrl} liittyvää tiedostoa ""
+"{$fileName}" koskien:
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifyFile.description"
+msgstr "Käyttäjän lähettämä ilmoitus"
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr "Toimitustyötä koskeva raportti {$month}/{$year}"
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+"\n"
+"{$recipientName},
\n"
+"
\n"
+"Toimitustyön raportti {$month}/{$year} on nyt valmis. Kuukautta koskevat "
+"keskeiset luvut ovat alla.
\n"
+"\n"
+"\t- Uudet käsikirjoitukset: {$newSubmissions}
\n"
+"\t- Hylätyt käsikirjoitukset: {$declinedSubmissions}
\n"
+"\t- Hyväksytyt käsikirjoitukset: {$acceptedSubmissions}
\n"
+"\t- Käsikirjoitusten kokonaismäärä: {$totalSubmissions}
\n"
+"
\n"
+"Kirjaudu julkaisuun nähdäksesi yksityiskohtaisemmat toimitustyön tilastot ja julkaistujen kirjojen tilastot. Kopio tämän "
+"kuun toimitustyön tilastoista on liitteenä.
\n"
+"
\n"
+"Terveisin,
\n"
+"{$contextSignature}"
+
+msgid "emails.announcement.subject"
+msgstr "{$announcementTitle}"
+
+msgid "emails.announcement.body"
+msgstr ""
+"{$announcementTitle}
\n"
+"
\n"
+"{$announcementSummary}
\n"
+"
\n"
+"Verkkosivuillamme voit lukea koko "
+"ilmoituksen."
+
+#~ msgid "emails.userValidate.subject"
+#~ msgstr "Tilin vahvistaminen"
+
+#~ msgid "emails.userValidate.body"
+#~ msgstr ""
+#~ "Hyvä {$recipientName},
\n"
+#~ "
\n"
+#~ "Olette luonut tilin julkaisijan sivustolle {$contextName}. Ennen kuin "
+#~ "voitte aloittaa tilin käytön, teidän täytyy vahvistaa sähköpostinne. "
+#~ "Voitte tehdä sen alla olevan linkin kautta:
\n"
+#~ "
\n"
+#~ "{$activateUrl}
\n"
+#~ "
\n"
+#~ "Ystävällisin terveisin,
\n"
+#~ "{$signature}"
+
+#~ msgid "emails.userValidate.description"
+#~ msgstr ""
+#~ "This email is sent to a newly registered user to welcome them to the "
+#~ "system and provide them with a record of their username and password."
+
+msgid "emails.editorAssignReview.body"
+msgstr ""
+"Hyvä {$recipientName},
Seuraava käsikirjoitus on osoitettu sinulle "
+"toimitustyötä varten.
{$submissionTitle}"
+"a>
{$authors}
Abstract
{$submissionAbstract}Ole hyvä "
+"ja kirjaudu sisään nähdäksesi käsikirjoituksen"
+"a> ja osoita sille sopivat arvioijat. Voit osoittaa arvioijat valitsemalla "
+"\"Lisää arvioija\".
Kiitos jo etukäteen.
Ystävällisin "
+"terveisin,
{$signature}"
+
+msgid "emails.editorAssignProduction.body"
+msgstr ""
+"Hyvä {$recipientName},
Seuraava käsikirjoitus on osoitettu sinulle "
+"tuotantovaiheen läpivientiä varten.
{$submissionTitle}
{$authors}
Abstract
{$submissionAbstract}Ole hyvä ja kirjaudu sisään nähdäksesi käsikirjoituksen. "
+"Kun tuotantovalmiit tiedostot ovat käytettävissä, lataa ne kohtaan "
+"Julkaiseminen > Julkaisumuodot.
Kiitos jo etukäteen."
+"p>
Ystävällisin terveisin,
{$signature}"
+
+msgid "emails.reviewReinstate.subject"
+msgstr "Voitteko vielä arvioida julkaisijalle {$contextName}?"
+
+msgid "emails.revisedVersionNotify.subject"
+msgstr "Korjattu versio on ladattu"
+
+msgid "emails.revisedVersionNotify.body"
+msgstr ""
+"Hyvä {$recipientName},
Kirjoittaja on lähettänyt korjauksia "
+"käsikirjoitukseen {$authorsShort} — {$submissionTitle}.
Pyydämme "
+"sinua osoitettuna toimittajana kirjautumaan sisään, tarkistamaan tehdyt korjaukset ja tekemään päätöksen "
+"siitä, hyväksytkö, hylkäätkö vai lähetätkö käsikirjoituksen uudelleen "
+"arvioitavaksi.
—
Tämä on automaattinen viesti, jonka lähettäjä "
+"on {$contextName}."
diff --git a/locale/fi/locale.po b/locale/fi/locale.po
new file mode 100644
index 00000000000..9085d1e00f3
--- /dev/null
+++ b/locale/fi/locale.po
@@ -0,0 +1,1723 @@
+# Antti-Jussi Nygård , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
+"PO-Revision-Date: 2023-12-03 14:38+0000\n"
+"Last-Translator: Antti-Jussi Nygård \n"
+"Language-Team: Finnish "
+"\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 "common.payments"
+msgstr "Maksut"
+
+msgid "monograph.audience"
+msgstr "Kohderyhmä"
+
+msgid "monograph.audience.success"
+msgstr "Kohderyhmäasetukset päivitetty."
+
+msgid "monograph.coverImage"
+msgstr "Kansikuva"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Kohderyhmän tarkenteen tyyppi"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Kohderyhmän tarkenne (alkaen)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Kohderyhmän tarkenne (asti)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "Kohderyhmän tarkenne (tarkalleen)"
+
+msgid "monograph.languages"
+msgstr "Kielet (englanti, ranska, espanja)"
+
+msgid "monograph.publicationFormats"
+msgstr "Julkaisumuodot"
+
+msgid "monograph.publicationFormat"
+msgstr "Muoto"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "Tietoja saatavilla olevasta julkaisumuodosta: {$format}"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Tietoja tästä kirjasta"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Muodot:"
+
+msgid "monograph.type"
+msgstr "Käsikirjoitustyyppi"
+
+msgid "submission.pageProofs"
+msgstr "Sivujen korjausvedokset"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"Taittaja lataa tuotantovalmiit tiedostot, jotka on täällä valmisteltu "
+"julkaisemista varten. Klikkaa Valitse-kohtaa valitaksesi "
+"kirjoittajia ja muita henkilöitä oikolukemaan sivujen korjausvedokset, jotka "
+"on korjattu ja ladattu hyväksyttäväksi ennen julkaisemista."
+
+msgid "monograph.task.addNote"
+msgstr "Lisää tehtävään"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Avoin saatavuus"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Kustantajan markkinointinimi (tuotenimi)"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Sivumäärät"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Alkusivut"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Lopputekstit"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Tuotteen kokoonpano"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Tuotteen tiedot (ei pakollinen)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Tuotteen tunnistetiedot"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Hinta"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "Hinta vaaditaan."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Hintatyyppi"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Alennusprosentti, mikäli käytössä"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Tuotteen saatavuus"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Palautettavuustiedot"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Digitaaliset tiedot"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Fyysiset mitat"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "Tiedoston koko megatavuina (Mt)"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "Annetaanko oma tiedostokoon arvo?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Korkeus"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Paksuus"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Paino"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Leveys"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "Valmistusmaa"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Digitaalinen tekninen suojaus"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Tuotteen jakelualue"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Verokanta"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Verotyyppi"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+"Sisällytä tämän julkaisumuodon metatiedot tämän kirjan luettelomerkintöihin."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Markkina- ja hintatiedot puuttuvat."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Tunnistuskoodi puuttuu."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Joitakin metatietokenttiä puuttuu."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+"Valitsemaasi julkaisumuotoa ei ole enää olemassa tälle kirjalle.
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Avaa julkaisumuodon välilehti."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Julkaisumuoto"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "Nimi vaaditaan."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "Kelvollinen hinta vaaditaan."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Muodon tiedot"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Fyysinen muoto"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "Tämä muoto tulee saataville erilliselle verkkosivustolle"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "Etä-ylläpidetyn sisällön URL-osoite"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "13-numeroinen ISBN, esimerkiksi 978-951-98548-9-2."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "10-numeroinen ISBN, esimerkiksi 951-98548-9-4."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "Kirjan tunniste vaaditaan."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Julkaisumuoto on valittava."
+
+msgid "grid.catalogEntry.availability"
+msgstr "Saatavuus"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Saatavilla"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "Ei saatavilla"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Korjausvedos"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Muodon hyväksyminen"
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"Hyväksy tämän muodon metatiedot. Metatiedot voidaan tarkistaa "
+"Luettelomerkintä-paneelista.
"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr "Näytä, että tämän muodon metatietoja ei ole hyväksytty.
"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Muodon saatavuus"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Tee tämä muoto lukijoiden saatavillaolevaksi. Ladattavat "
+"tiedostot sekä kaikki muut jaetut materiaalit tulevat näkyviin kirjan "
+"luettelomerkintöihin.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Tämä muoto poistetaan lukijoiden saatavilta. Mitkään ladattavat "
+"tiedostot tai muut jaetut materiaalit eivät ole enää näkyvillä kirjan "
+"luettelomerkinnöissä.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "Luettelomerkintää ei hyväksytty."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "Muotoa ei luettelomerkinnässä."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Korjausvedosta ei hyväksytty."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Hyväksytty"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "Odottaa hyväksyntää"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "Digitaalisten muotojen tiedostokoko vaaditaan."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "Tuotteen saatavuuskoodi vaaditaan."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "Tuotteen kokoonpanokoodi on valittava."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Koodi"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "ONIX-koodityyppi"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "Tunnistuskoodi vaaditaan."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "Arvo vaaditaan."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Myyntioikeudet"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Koodi"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Myyntioikeustyyppi"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "Ulkomaat (ROW)?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Rastita tämä ruutu (alla), jos haluat käyttää tätä Myyntioikeudet-merkintää "
+"kaikenkattavana julkaisumuodollesi. Maita ja alueita ei tällöin tarvitse "
+"valita."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr "Tälle julkaisumuodolle on jo määritelty Ulkomaat-myyntityyppi."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Maat"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Alueet"
+
+msgid "grid.catalogEntry.included"
+msgstr "Sisällytetään"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Ei sisällytetä"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Markkina-alueet"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Alue"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Julkaisupäivämäärät"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Edustajan rooli vaaditaan."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "Aikamääreen muoto vaaditaan."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Päivämäärä"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Rooli"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Aikamääreen muoto"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"Päivämäärä vaaditaan. Aikamääreen arvon on vastattava valittua aikamääreen "
+"muotoa."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Edustajat"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Edustajatyyppi"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Agentit"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Välittäjät"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Agentti"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"Mikäli haluat, voit valita agentin edustamaan sinua määritellyllä alueella "
+"(ei pakollinen)."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Välittäjä"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Valitse rooli:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Rooli"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Nimi"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Puhelin"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "Sähköposti"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Verkkosivusto"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "Edustajan tunniste"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr ""
+"Edustajan tunnisteen tyyppi (suositeltava tunniste: yrityksen GLN-numero)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"Voit jättää seuraavan osion tyhjäksi, jos tarjoat itse omia palveluitasi "
+"asiakkaillesi."
+
+msgid "grid.action.addRepresentative"
+msgstr "Lisää edustaja"
+
+msgid "grid.action.editRepresentative"
+msgstr "Muokkaa tätä edustajaa"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Poista tämä edustaja"
+
+msgid "spotlight"
+msgstr "Nosto"
+
+msgid "spotlight.spotlights"
+msgstr "Nostot"
+
+msgid "spotlight.noneExist"
+msgstr "Ei yhtään nostoa."
+
+msgid "spotlight.title.homePage"
+msgstr "Nostetut"
+
+msgid "spotlight.author"
+msgstr "Kirjoittaja, "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Nostettu nimeke"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Etusivu"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Noston sijainti"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Anna nostettava nimeke (automaattinen täydennys)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Noston otsikko"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Kirja"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "Kohde vaaditaan."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "Noston otsikko on pakollinen."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Valitse tämän noston sijainti."
+
+msgid "grid.action.editSpotlight"
+msgstr "Muokkaa tätä nostoa"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Poista tämä nosto"
+
+msgid "grid.action.addSpotlight"
+msgstr "Lisää nosto"
+
+msgid "manager.series.open"
+msgstr "Käsikirjoitukset vapaasti lähetettävissä"
+
+msgid "manager.series.indexed"
+msgstr "Indeksoitu"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Tiedostot"
+
+msgid "grid.action.catalogEntry"
+msgstr "Näytä luettelomerkintä-lomake"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "Muoto näkyy luettelomerkinnässä"
+
+msgid "grid.action.editFormat"
+msgstr "Muokkaa tätä muotoa"
+
+msgid "grid.action.deleteFormat"
+msgstr "Poista tämä muoto"
+
+msgid "grid.action.addFormat"
+msgstr "Lisää julkaisumuoto"
+
+msgid "grid.action.approveProof"
+msgstr "Hyväksy korjausvedos indeksointia ja luetteloon sisällyttämistä varten"
+
+msgid "grid.action.pageProofApproved"
+msgstr "Sivujen korjausvedokset -tiedosto on valmis julkaistavaksi"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Uusi luettelomerkintä"
+
+msgid "grid.action.publicCatalog"
+msgstr "Näytä tämä kohde luettelossa"
+
+msgid "grid.action.feature"
+msgstr "Näytä tai piilota esittelynäyttö"
+
+msgid "grid.action.featureMonograph"
+msgstr "Esittele luettelokarusellissa"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Merkitse tämä käsikirjoitus uutuudeksi"
+
+msgid "grid.action.manageCategories"
+msgstr "Määritä kategoriat tälle julkaisijalle"
+
+msgid "grid.action.manageSeries"
+msgstr "Määritä sarjat tälle julkaisijalle"
+
+msgid "grid.action.addCode"
+msgstr "Lisää koodi"
+
+msgid "grid.action.editCode"
+msgstr "Muokkaa tätä koodia"
+
+msgid "grid.action.deleteCode"
+msgstr "Poista tämä koodi"
+
+msgid "grid.action.addRights"
+msgstr "Lisää myyntioikeudet"
+
+msgid "grid.action.editRights"
+msgstr "Muokkaa näitä oikeuksia"
+
+msgid "grid.action.deleteRights"
+msgstr "Poista nämä oikeudet"
+
+msgid "grid.action.addMarket"
+msgstr "Lisää markkina"
+
+msgid "grid.action.editMarket"
+msgstr "Muokkaa tätä markkinaa"
+
+msgid "grid.action.deleteMarket"
+msgstr "Poista tämä markkina"
+
+msgid "grid.action.addDate"
+msgstr "Lisää julkaisupäivämäärä"
+
+msgid "grid.action.editDate"
+msgstr "Muokkaa tätä päivämäärää"
+
+msgid "grid.action.deleteDate"
+msgstr "Poista tämä päivämäärä"
+
+msgid "grid.action.createContext"
+msgstr "Luo uusi julkaisija"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Näytä julkaisumuodon välilehti"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Siirry julkaisijan Ilmoitukset-sivulle"
+
+msgid "grid.action.submissionEmail"
+msgstr "Klikkaa lukeaksesi tämän sähköpostin"
+
+msgid "grid.action.approveProofs"
+msgstr "Näytä korjausvedosten kehikko"
+
+msgid "grid.action.proofApproved"
+msgstr "Muoto on oikoluettu"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Hyväksy/hylkää tämä muoto"
+
+msgid "grid.action.formatAvailable"
+msgstr "Vaihda tämän muodon saatavuutta (saatavilla/ei saatavilla)"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Lisää arviointiin liite"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Saatavilla olevat tiedostot"
+
+msgid "series.series"
+msgstr "Sarja"
+
+msgid "series.featured.description"
+msgstr "Tämä sarja tulee näkyville päävalikkoon"
+
+msgid "series.path"
+msgstr "Polku"
+
+msgid "catalog.manage"
+msgstr "Luettelon hallinnointi"
+
+msgid "catalog.manage.newReleases"
+msgstr "Uutuudet"
+
+msgid "catalog.manage.category"
+msgstr "Kategoria"
+
+msgid "catalog.manage.series"
+msgstr "Sarja"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "Anna kelvollinen ISSN."
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "Verkkokirjan ja painetun kirjan ISSN-tunnusten tulee erota toisistaan."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "Verkkokirjan ISSN"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "Painetun kirjan ISSN"
+
+msgid "catalog.selectSeries"
+msgstr "Valitse sarja"
+
+msgid "catalog.selectCategory"
+msgstr "Valitse kategoria"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"Valittujen kirjojen kansikuvat näkyvät etusivun yläosassa vieritettävänä "
+"joukkona. Klikkaa ensin \"Esittele\"-kohtaa ja sitten tähteä lisätäksesi "
+"kirjan karuselliin; klikkaa huutomerkkiä merkitäksesi julkaisun uutuudeksi; "
+"muuta järjestystä vetämällä ja pudottamalla."
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Klikkaa \"Esittele\"-kohtaa ja sen jälkeen tähteä valitaksesi tämän "
+"kategorian esiteltävän kirjan; muuta järjestystä vetämällä ja pudottamalla."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Klikkaa \"Esittele\"-kohtaa ja sen jälkeen tähteä valitaksesi tämän sarjan "
+"esiteltävän kirjan; muuta järjestystä vetämällä ja pudottamalla. Toimittajan/"
+"toimittajien nimet ja sarjan nimeke ovat sarjan tunnisteita sekä kategorian "
+"sisällä että yksittäisinä."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Karuselli"
+
+msgid "catalog.manage.newRelease"
+msgstr "Uutuus"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Hallinnoi sarjoja"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Hallinnoi kategorioita"
+
+msgid "catalog.manage.noMonographs"
+msgstr "Ei osoitettuja kirjoja."
+
+msgid "catalog.manage.featured"
+msgstr "Esittelyssä"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "Esiteltävät kategoriassa"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "Esiteltävät sarjassa"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "Kirja on esittelyssä."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "Kirja ei ole esittelyssä."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "Kirja on merkitty uutuudeksi."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "Kirjaa ei ole merkitty uutuudeksi."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "Uutuus"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "Uutuus kategoriassa"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "Uutuus sarjassa"
+
+msgid "catalog.manage.nonOrderable"
+msgstr "Tämä kirja ei ole tilattavissa ennen kuin se on esittelyssä."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Hae nimekkeen tai kirjoittajan mukaan"
+
+msgid "catalog.manage.isFeatured"
+msgstr "Tämä teos on esittelyssä etusivulla. Poista tämä teos esittelystä."
+
+msgid "catalog.manage.isNotFeatured"
+msgstr ""
+"Tämä teos ei ole esittelyssä etusivulla. Siirrä tämä teos esittelyyn "
+"etusivulle."
+
+msgid "catalog.manage.isNewRelease"
+msgstr "Tämä teos on uutuus. Poista uutuusmerkintä."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr "Tämä teos ei ole uutuus. Lisää uutuusmerkintä."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr "Yhtään käsikirjoitusta ei valittu luetteloon liitettäväksi."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "Yhtä tai useampaa käsikirjoitusta ei löytynyt."
+
+msgid "catalog.manage.findSubmissions"
+msgstr "Etsi teokset, jotka lisätään luetteloon"
+
+msgid "catalog.noTitles"
+msgstr "Yhtään nimekettä ei ole vielä julkaistu."
+
+msgid "catalog.noTitlesNew"
+msgstr "Uutuuksia ei saatavilla tällä hetkellä."
+
+msgid "catalog.noTitlesSearch"
+msgstr "Haullasi \"{$searchQuery}\" ei löytynyt nimekkeitä."
+
+msgid "catalog.feature"
+msgstr "Esittele"
+
+msgid "catalog.featured"
+msgstr "Esittelyssä"
+
+msgid "catalog.featuredBooks"
+msgstr "Esittelyssä olevat kirjat"
+
+msgid "catalog.foundTitleSearch"
+msgstr "Haullasi \"{$searchQuery}\" löytyi yksi (1) nimeke."
+
+msgid "catalog.foundTitlesSearch"
+msgstr "Haullasi \"{$searchQuery}\" löytyi {$number} nimekettä."
+
+msgid "catalog.category.heading"
+msgstr "Kaikki kirjat"
+
+msgid "catalog.newReleases"
+msgstr "Uutuudet"
+
+msgid "catalog.dateAdded"
+msgstr "Lisätty"
+
+msgid "catalog.publicationInfo"
+msgstr "Julkaisutiedot"
+
+msgid "catalog.published"
+msgstr "Julkaistu"
+
+msgid "catalog.forthcoming"
+msgstr "Tulossa"
+
+msgid "catalog.categories"
+msgstr "Kategoriat"
+
+msgid "catalog.parentCategory"
+msgstr "Pääkategoria"
+
+msgid "catalog.category.subcategories"
+msgstr "Alakategoriat"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "Tietoa roolista {$roleName}"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"Huomaa: Jotta voit ostaa nimekkeitä, sinun on ensin kirjauduttava sisään. "
+"Kun valitset ostettavan nimekkeen, sinut ohjataan kirjautumissivulle. Open "
+"Access -kuvakkeella merkittyjä nimekkeitä voidaan ladata maksutta ilman "
+"sisäänkirjautumista."
+
+msgid "catalog.sortBy"
+msgstr "Kirjojen järjestys"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "Valitse miten tämän sarjan kirjat järjestetään."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr "Valitse miten tämän kategorian kirjat järjestetään."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "Valitse miten luettelon kirjat järjestetään."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "Sijoitus sarjassa (alin ensin)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "Sijoitus sarjassa (korkein ensin)"
+
+msgid "catalog.viewableFile.title"
+msgstr "{$type}-näkymä tiedostosta {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "Palaa tarkastelemaan {$monographTitle}:n tietoja"
+
+msgid "submission.search"
+msgstr "Kirjahaku"
+
+msgid "common.publication"
+msgstr "Kirja"
+
+msgid "common.publications"
+msgstr "Kirjat"
+
+msgid "common.prefix"
+msgstr "Prefiksi"
+
+msgid "common.preview"
+msgstr "Esikatselu"
+
+msgid "common.feature"
+msgstr "Esittele"
+
+msgid "common.searchCatalog"
+msgstr "Hae luettelosta"
+
+msgid "common.moreInfo"
+msgstr "Lisätietoja"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Täytä lomake kokonaan."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Valitse kelvollinen vaihtoehto listasta."
+
+msgid "common.listbuilder.itemExists"
+msgstr "Samaa kohtaa ei voi lisätä kahdesti."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Etusivun ylätunniste"
+
+msgid "navigation.catalog"
+msgstr "Luettelo"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Sidonnaisuuksien ilmoittaminen"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "Kaikki kirjat"
+
+msgid "navigation.catalog.manage"
+msgstr "Hallinnoi"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Ylläpito"
+
+msgid "navigation.catalog.administration"
+msgstr "Luettelon ylläpito"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Kategoriat"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Sarja"
+
+msgid "navigation.infoForAuthors"
+msgstr "Kirjoittajille"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Kirjastonhoitajille"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Tietoa kirjoittajille"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Tietoa kirjastonhoitajille"
+
+msgid "navigation.newReleases"
+msgstr "Uutuudet"
+
+msgid "navigation.published"
+msgstr "Julkaistu"
+
+msgid "navigation.wizard"
+msgstr "Ohjattu toiminto"
+
+msgid "navigation.linksAndMedia"
+msgstr "Linkit ja sosiaalinen media"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Linkki omaan luetteloon."
+
+msgid "navigation.skip.spotlights"
+msgstr "Siirry uutuuslistaan"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Sarja"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Linkki sarjaan."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Kategoria"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Linkki kategoriaan."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "Uutuudet"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Linkki omiin uutuuksiin."
+
+msgid "context.contexts"
+msgstr "Julkaisijat"
+
+msgid "context.context"
+msgstr "Julkaisija"
+
+msgid "context.current"
+msgstr "Nykyinen julkaisija:"
+
+msgid "context.select"
+msgstr "Vaihda toiseen julkaisijaan:"
+
+msgid "user.authorization.representationNotFound"
+msgstr "Pyydettyä julkaisumuotoa ei löytynyt."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr ""
+"Sisällytä käyttäjät, joilla ei ole roolia tämän julkaisijan sivustolla."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Lähetä ehdotus"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr ""
+"Lähetä kirja: Kirjoittajaksi rekisteröityminen ei juuri nyt ole mahdollista."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Rekisteröidy arvioijaksi"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+"Rekisteröidy arvioijaksi: Arvioijaksi rekisteröityminen ei juuri nyt ole "
+"mahdollista."
+
+msgid "user.reviewerPrompt"
+msgstr "Haluaisitko arvioida tälle julkaisijalle lähetettyjä käsikirjoituksia?"
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Kyllä, pyydä {$userGroup}-roolia."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"Kyllä, haluan, että minulle lähetetään pyyntöjä tämän julkaisijan "
+"käsikirjoitusten arvioinnista."
+
+msgid "user.register.contextsPrompt"
+msgstr ""
+"Minkä tällä sivustolla olevien julkaisijoiden sivustojen käyttäjäksi haluat "
+"rekisteröityä?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Pyydä seuraavia rooleja."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"Jos pyysit jonkin julkaisijan arvioijan roolia, anna sinua kiinnostavat "
+"aiheet."
+
+msgid "user.role.manager"
+msgstr "Julkaisijan sivuston hallinnoija"
+
+msgid "user.role.pressEditor"
+msgstr "Toimittaja"
+
+msgid "user.role.subEditor"
+msgstr "Sarjan toimittaja"
+
+msgid "user.role.copyeditor"
+msgstr "Tekninen toimittaja"
+
+msgid "user.role.proofreader"
+msgstr "Oikolukija"
+
+msgid "user.role.productionEditor"
+msgstr "Tuotantotoimittaja"
+
+msgid "user.role.managers"
+msgstr "Julkaisijan sivuston hallinnoijat"
+
+msgid "user.role.subEditors"
+msgstr "Sarjan toimittajat"
+
+msgid "user.role.editors"
+msgstr "Toimittajat"
+
+msgid "user.role.copyeditors"
+msgstr "Tekniset toimittajat"
+
+msgid "user.role.proofreaders"
+msgstr "Oikolukijat"
+
+msgid "user.role.productionEditors"
+msgstr "Tuotantotoimittajat"
+
+msgid "user.register.selectContext"
+msgstr "Valitse julkaisijan sivusto, johon rekisteröidyt:"
+
+msgid "user.register.noContexts"
+msgstr ""
+"Et voi rekisteröityä tällä sivustolla olevien julkaisijoiden sivustoille."
+
+msgid "user.register.privacyStatement"
+msgstr "Tietosuojaseloste"
+
+msgid "user.register.registrationDisabled"
+msgstr "Tämän julkaisijan sivuston käyttäjäksi ei voi rekisteröityä juuri nyt."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "Kirjoittamasi salasana ei ole tarpeeksi pitkä."
+
+msgid "user.register.readerDescription"
+msgstr "Kirjan julkaisemisesta ilmoitetaan sähköpostitse."
+
+msgid "user.register.authorDescription"
+msgstr "Kohteiden lähetys julkaisijalle sallittu."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "Halukas vertaisarvioimaan julkaisijalle lähetettyjä käsikirjoituksia."
+
+msgid "user.register.reviewerDescription"
+msgstr "Halukas vertaisarvioimaan sivustolle lähetettyjä käsikirjoituksia."
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+"Kerro kiinnostavat arviointiaiheet (olennaiset alueet ja tutkimusmenetelmät):"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Valitse vähintään yksi rooli"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"Kyllä, annan luvan tallentaa tietojani tämän julkaisijan tietosuojaselosteen kuvaamalla "
+"tavalla."
+
+msgid "site.noPresses"
+msgstr "Julkaisijoita ei löytynyt."
+
+msgid "site.pressView"
+msgstr "Näytä julkaisijan verkkosivusto"
+
+msgid "about.pressContact"
+msgstr "Julkaisijan yhteystiedot"
+
+msgid "about.aboutContext"
+msgstr "Tietoa julkaisijasta"
+
+msgid "about.editorialTeam"
+msgstr "Toimituskunta"
+
+msgid "about.editorialPolicies"
+msgstr "Toimitukselliset käytännöt"
+
+msgid "about.focusAndScope"
+msgstr "Tarkoitus ja toimintaperiaatteet"
+
+msgid "about.seriesPolicies"
+msgstr "Sarja- ja kategoriakäytännöt"
+
+msgid "about.submissions"
+msgstr "Käsikirjoitukset"
+
+msgid "about.onlineSubmissions"
+msgstr "Käsikirjoituksen lähettäminen verkossa"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Kirjaudu sisään"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Rekisteröidy"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr "{$login} tai {$register} lähettääksesi käsikirjoituksen."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} tai {$viewSubmissions}."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Lähetä uusi käsikirjoitus"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "katso odottavia käsikirjoituksiasi"
+
+msgid "about.authorGuidelines"
+msgstr "Kirjoittajan ohjeet"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Käsikirjoituksen lähettämisen tarkistuslista"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"Kirjoittajien tulee vahvistaa, että heidän käsikirjoituksensa noudattaa "
+"kaikkia seuraavia kohtia. Jos näitä ohjeita ei noudateta, käsikirjoitus "
+"palautetaan kirjoittajalle."
+
+msgid "about.copyrightNotice"
+msgstr "Tekijänoikeushuomautus"
+
+msgid "about.privacyStatement"
+msgstr "Tietosuojaseloste"
+
+msgid "about.reviewPolicy"
+msgstr "Vertaisarviointiprosessi"
+
+msgid "about.publicationFrequency"
+msgstr "Julkaisutiheys"
+
+msgid "about.openAccessPolicy"
+msgstr "Avoimen saatavuuden periaate"
+
+msgid "about.pressSponsorship"
+msgstr "Julkaisijan tukijana toimiminen"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr "Tietoja julkaisujärjestelmästä."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "OMP:n toimitus- ja julkaisuprosessit"
+
+msgid "about.aboutSoftware"
+msgstr "Tietoa Open Monograph Press -järjestelmästä"
+
+msgid "about.aboutOMPPress"
+msgstr ""
+"Tämä julkaisija käyttää Open Monograph Press {$ompVersion} -järjestelmää, "
+"joka on Public Knowledge Projectin "
+"kehittämä, tukema ja GNU General Public License -lisenssillä vapaasti jakama "
+"avoimen lähdekoodin toimitus- ja julkaisuohjelmisto. Julkaisijaa ja "
+"käsikirjoituksia koskevissa kysymyksissä tulee olla yhteydessä suoraan julkaisijaan."
+
+msgid "about.aboutOMPSite"
+msgstr ""
+"Tämä sivusto käyttää Open Monograph Press {$ompVersion} -järjestelmää, joka "
+"on Public Knowledge Projectin kehittämä, tukema ja GNU General Public "
+"License -lisenssillä vapaasti jakama avoimen lähdekoodin toimitustyö- ja "
+"julkaisuohjelmisto. Vieraile PKP:n verkkosivustolla ja lue lisää ohjelmistosta. Ota suoraan yhteyttä tähän sivustoon, "
+"jos sinulla on kysyttävää sen julkaisijoista ja sen julkaisijoille "
+"ehdotettavista käsikirjoituksista."
+
+msgid "help.searchReturnResults"
+msgstr "Takaisin hakutuloksiin"
+
+msgid "help.goToEditPage"
+msgstr "Avaa uusi sivu muokataksesi näitä tietoja"
+
+msgid "installer.appInstallation"
+msgstr "OMP:n asennus"
+
+msgid "installer.ompUpgrade"
+msgstr "OMP:n päivitys"
+
+msgid "installer.installApplication"
+msgstr "Asenna Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+"Jos olet päivittämässä vanhaa OMP-asennusta, klikkaa tästä päästäksesi eteenpäin."
+
+msgid "installer.installationInstructions"
+msgstr ""
+"Kiitos, että latasit Public Knowledge Projectin Open Monograph "
+"Press {$version}-järjestelmän. Ennen kuin jatkat, lue README-tiedosto, joka tulee tämän "
+"ohjelmiston mukana. Lisätietoja Public Knowledge Projectista ja sen "
+"ohjelmistoprojekteista löydät PKP:n verkkosivustolta. Jos haluat tehdä ilmoituksen "
+"ohjelmistovirheestä tai ottaa yhteyttä Open Monograph Pressin tekniseen "
+"tukeen, tutustu tukifoorumiin tai PKP:n online-virheilmoitusjärjestelmään. Yhteydenotot "
+"ensisijaisesti tukifoorumin kautta, mutta voit myös lähettää sähköpostia "
+"osoitteeseen pkp.contact@gmail."
+"com.
"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Esiasennuksen vaiheet"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. Seuraavista tiedostoista ja kansioista (ja niiden sisällöstä) on "
+"tehtävä kirjoituskelpoisia:
\n"
+"\n"
+"\t- config.inc.php on kirjoituskelpoinen (valinnainen): "
+"{$writable_config}
\n"
+"\t- public/ on kirjoituskelpoinen: {$writable_public}
\n"
+"\t- cache/ on kirjoituskelpoinen: {$writable_cache}
\n"
+"\t- cache/t_cache/ on kirjoituskelpoinen: "
+"{$writable_templates_cache}
\n"
+"\t- cache/t_compile/ on kirjoituskelpoinen: "
+"{$writable_templates_compile}
\n"
+"\t- cache/_db on kirjoituskelpoinen: {$writable_db_cache}
\n"
+"
\n"
+"\n"
+"2. Ladattaville tiedostoille on luotava hakemisto ja siitä on tehtävä "
+"kirjoituskelpoinen (ks. \"Tiedostoasetukset\" alla).
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"OMP versio {$version}
\n"
+"\n"
+"Kiitos, että latasit Public Knowledge Projectin Open Monograph "
+"Press-järjestelmän. Ennen kuin jatkat, lue README ja UPGRADE -tiedostot, jotka tulevat tämän ohjelmiston mukana. Löydät "
+"lisätietoja Public Knowledge Projectista ja sen ohjelmistoprojekteista PKP:n verkkosivustolta. "
+"Jos haluat ilmoittaa ohjelmistovirheestä tai ottaa yhteyttä Open Monograph "
+"Press-järjestelmän tekniseen tukeen, katso tukifoorumi tai mene PKP:n virheilmoitusjärjestelmään. Yhteydenotot mieluiten tukifoorumin kautta, "
+"mutta voit myös lähettää sähköpostia osoitteeseen pkp.contact@gmail.com.
\n"
+"On erittäin suositeltavaa, että varmuuskopioit "
+"tietokannan, tiedostohakemiston ja OMP-asennushakemiston ennen "
+"jatkamista.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"Saadaksesi täyden Unicode (UTF-8) -tuen, valitse UTF-8 kaikkiin "
+"merkistöasetuksiin. Huomaa, että tällä hetkellä tämä tuki edellyttää MySQL "
+">= 4.1.1 tai PostgreSQL >= 9.1.5 tietokantapalvelinta. Huomioithan myös, "
+"että täysi Unicode-tuki edellyttää mbstring-kirjastoa (oletuksena viimeisimmissä PHP-"
+"asennuksissa). Saatat kohdata ongelmia käyttäessäsi laajennettuja "
+"merkistöjä, jos palvelimesi ei täytä näitä vaatimuksia.\n"
+"
\n"
+"Palvelimesi tukee tällä hetkellä mbstringiä: {$supportsMBString}"
+"strong>"
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"Palvelimesi sallii tällä hetkellä seuraavat tiedostojen lataukset: "
+"{$allowFileUploads}"
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"Palvelimesi sallima latausten enimmäiskoko tällä hetkellä: "
+"{$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"Pääkieli, jota käytetään tässä järjestelmässä. Jos olet kiinnostunut muiden "
+"kuin tässä lueteltujen kielten tuesta, katso lisätietoja OMP:n "
+"käyttöohjeista."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Valitse muita tässä järjestelmässä tuettavia kieliä. Nämä kielet ovat "
+"sivustolla ylläpidettyjen julkaisijoiden sivustojen käytettävissä. Lisää "
+"kieliä voidaan asentaa milloin tahansa myös sivuston ylläpitokäyttöliittymän "
+"kautta. Tähdellä (*) merkityt kielialueet saattavat olla vaillinaisia."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Anna koko polun nimi olemassa olevaan hakemistoon, jossa ladattavia "
+"tiedostoja tullaan säilyttämään. Tähän hakemistoon ei tulisi olla suoraa "
+"pääsyä verkosta. Varmista ennen asennusta, että tämä hakemisto on "
+"olemassa ja kirjoituskelpoinen. Windowsin polkujen nimissä tulee "
+"käyttää vinoviivaa, esim. \"C:/mypress/files\"."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"Voidakseen tallentaa tietoja OMP edellyttää pääsyä SQL-tietokantaan. Katso "
+"järjestelmävaatimukset (yllä) nähdäksesi luettelon tuetuista tietokannoista. "
+"Anna alla olevissa kentissä asetukset, joita käytetään muodostettaessa "
+"yhteys tietokantaan."
+
+msgid "installer.upgradeApplication"
+msgstr "Päivitä Open Monograph Press"
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"HUOM!
\n"
+"Asennusohjelma ei voinut korvata määritystiedostoa automaattisesti. Ennen "
+"kuin aloitat järjestelmän käytön, avaa config.inc.php sopivassa "
+"tekstieditorissa ja korvaa sen sisältö alla olevan tekstikentän sisällöllä."
+"p>"
+
+msgid "installer.installationComplete"
+msgstr ""
+"
OMP on asennettu onnistuneesti.
\n"
+"Aloittaaksesi järjestelmän käytönkirjaudu sisään"
+"a> käyttäjätunnuksella ja salasanalla, jotka syötettiin edellisellä "
+"sivulla.
\n"
+"Vieraile meidän tukifoorumissa tai tilaa meidän kehittäjien uutiskirje saadaksesi "
+"tietoturvailmoituksia ja päivityksiä tulevista ohjelmistoversioista, uusista "
+"lisäosista ja suunnitelluista ominaisuuksista.
"
+
+msgid "installer.upgradeComplete"
+msgstr ""
+"OMP on päivitetty onnistuneesti versioon {$version}.
\n"
+"Muista päivittää config.inc.php-määritystiedoston \"installed\"-"
+"asetus takaisin päälle (On).
\n"
+"Vieraile meidän tukifoorumissa tai tilaa meidän kehittäjien uutiskirje saadaksesi "
+"tietoturvailmoituksia ja päivityksiä tulevista ohjelmistoversioista, uusista "
+"lisäosista ja suunnitelluista ominaisuuksista.
"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"Kierroksen {$round} määräpäivä {$reviewerName}:n arvioinnille "
+"käsikirjoituksesta {$submissionId} on {$dueDate}."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"{$reviewerName} on kieltäytynyt arvioimasta käsikirjoitusta {$submissionId} "
+"kierroksella {$round}."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"{$reviewerName} on suostunut arvioimaan käsikirjoituksen {$submissionId} "
+"kierroksella {$round}."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"{$editorName} on merkinnyt käsikirjoituksen {$submissionId} arvion "
+"käsittelemättömäksi kierroksella {$round}."
+
+msgid "log.editor.decision"
+msgstr ""
+"Toimittaja {$editorName} on tallentanut toimittajan päätöksen ({$decision}) "
+"kirjalle {$submissionId}."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"Toimittaja {$editorName} on tallentanut toimittajan suosituksen "
+"({$decision}) teokselle {$submissionId}."
+
+msgid "log.editor.archived"
+msgstr "Käsikirjoitus {$submissionId} on arkistoitu."
+
+msgid "log.editor.restored"
+msgstr "Käsikirjoitus {$submissionId} on palautettu jonoon."
+
+msgid "log.editor.editorAssigned"
+msgstr ""
+"{$editorName} on valittu käsikirjoituksen {$submissionId} toimittajaksi."
+
+msgid "log.proofread.assign"
+msgstr ""
+"{$assignerName} on valinnut käyttäjän {$proofreaderName} oikolukemaan "
+"käsikirjoituksen {$submissionId}."
+
+msgid "log.proofread.complete"
+msgstr ""
+"{$proofreaderName} on lähettänyt käsikirjoituksen {$submissionId} "
+"aikataulutukseen."
+
+msgid "log.imported"
+msgstr "{$userName} on tuonut kirjan {$submissionId}."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Tunnistuskoodi lisätty."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Tunnistuskoodia muokattu."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Tunnistuskoodi poistettu."
+
+msgid "notification.addedPublicationDate"
+msgstr "Julkaisupäivämäärä lisätty."
+
+msgid "notification.editedPublicationDate"
+msgstr "Julkaisupäivämäärää muokattu."
+
+msgid "notification.removedPublicationDate"
+msgstr "Julkaisupäivämäärä poistettu."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Julkaisumuoto lisätty."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Julkaisumuotoa muokattu."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Julkaisumuoto poistettu."
+
+msgid "notification.addedSalesRights"
+msgstr "Myyntioikeudet lisätty."
+
+msgid "notification.editedSalesRights"
+msgstr "Myyntioikeuksia muokattu."
+
+msgid "notification.removedSalesRights"
+msgstr "Myyntioikeudet poistettu."
+
+msgid "notification.addedRepresentative"
+msgstr "Edustaja lisätty."
+
+msgid "notification.editedRepresentative"
+msgstr "Edustajaa muokattu."
+
+msgid "notification.removedRepresentative"
+msgstr "Edustaja poistettu."
+
+msgid "notification.addedMarket"
+msgstr "Markkina lisätty."
+
+msgid "notification.editedMarket"
+msgstr "Markkina muokattu."
+
+msgid "notification.removedMarket"
+msgstr "Markkina poistettu."
+
+msgid "notification.addedSpotlight"
+msgstr "Nosto lisätty."
+
+msgid "notification.editedSpotlight"
+msgstr "Nostoa muokattu."
+
+msgid "notification.removedSpotlight"
+msgstr "Nosto poistettu."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Luettelon metatiedot tallennettu."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Julkaisumuodon metatiedot tallennettu."
+
+msgid "notification.proofsApproved"
+msgstr "Korjausvedokset hyväksytty."
+
+msgid "notification.removedSubmission"
+msgstr "Käsikirjoitus poistettu."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Uusi kirja, \"{$title}\", on lähetetty."
+
+msgid "notification.type.editing"
+msgstr "Toimittamiseen liittyvät tapahtumat"
+
+msgid "notification.type.reviewing"
+msgstr "Arviointitapahtumat"
+
+msgid "notification.type.site"
+msgstr "Sivuston tapahtumat"
+
+msgid "notification.type.submissions"
+msgstr "Käsikirjoitukseen liittyvät tapahtumat"
+
+msgid "notification.type.userComment"
+msgstr "Lukija on kommentoinut nimekettä \"{$title}\"."
+
+msgid "notification.type.public"
+msgstr "Julkiset ilmoitukset"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr "Uusi kirja on lähetetty ja sille tulee valita toimittaja."
+
+msgid "notification.type.copyeditorRequest"
+msgstr ""
+"Sinua on pyydetty arvioimaan tiedoston \"{$file}\" teknisesti toimitetut "
+"tiedostot."
+
+msgid "notification.type.layouteditorRequest"
+msgstr "Sinua on pyydetty arvioimaan nimekkeen \"{$title}\" taitot."
+
+msgid "notification.type.indexRequest"
+msgstr "Sinua on pyydetty luomaan indeksi nimekkeelle \"{$title}\"."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Sisäinen arviointiprosessi aloitettu."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Tämä käsikirjoitus odottaa vielä Luettelomerkintä-työkalussa hyväksyntää, "
+"jonka jälkeen se tulee näkyville julkiseen luetteloon."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "Odottaa hyväksyntää."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"Kirjaa ei lisätä luetteloon ennen kuin luettelomerkintä on luotu. "
+"Lisätäksesi tämän kirjan luetteloon klikkaa yllä olevaa Luettelomerkintä -"
+"kohtaa ja etsi Luettelo-välilehti."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "Maksutapaa ei ole määritetty."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"Määritetty maksutapa vaaditaan, ennen kuin voit määritellä verkkokaupan "
+"asetukset."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Luettelon hallinnointi"
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+"Teos on hyväksytty. Voit hallinnoida sen tietoja yläpuolella olevien "
+"linkkien kautta."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+"Sinulta on evätty pääsy, koska et ole tämän kirjan kelvollinen arvioija."
+
+msgid "user.authorization.monographAuthor"
+msgstr "Sinulta on evätty pääsy, koska et ole tämän kirjan kirjoittaja."
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"Sinulta on evätty pääsy, koska sinua ei ole valittu tämän kirjan arvioijaksi."
+
+msgid "user.authorization.monographFile"
+msgstr "Sinulta on evätty pääsy tähän kirjan tiedostoon."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "Virheellinen kirja tai ei pyydettyä kirjaa!"
+
+msgid "user.authorization.noContext"
+msgstr "Pyyntöäsi vastaavaa julkaisijaa ei löytynyt."
+
+msgid "user.authorization.seriesAssignment"
+msgstr "Yrität päästä kirjaan, joka ei kuulu omaan sarjaasi."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr "Pääsy evätty! Sinua ei ole valittu tähän työnkulun vaiheeseen."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"Pääsy evätty! Käyttäjäryhmää, johon tällä hetkellä kuulut, ei ole valittu "
+"tähän työnkulun vaiheeseen. Tarkista julkaisijan asetukset."
+
+msgid "payment.directSales"
+msgstr "Lataa julkaisijan verkkosivustolta"
+
+msgid "payment.directSales.price"
+msgstr "Hinta"
+
+msgid "payment.directSales.availability"
+msgstr "Saatavuus"
+
+msgid "payment.directSales.catalog"
+msgstr "Luettelo"
+
+msgid "payment.directSales.approved"
+msgstr "Hyväksytty"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Hinta ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr "Hintojen tulee sisältää vain numeroita. Älä käytä valuuttasymboleja."
+
+msgid "payment.directSales.directSales"
+msgstr "Suoramyynti"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Ei saatavilla"
+
+msgid "payment.directSales.notSet"
+msgstr "Ei määritelty"
+
+msgid "payment.directSales.openAccess"
+msgstr "Avoin saatavuus"
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"Tiedostomuotoja voidaan tarjota ladattaviksi julkaisijan verkkosivustolta "
+"joko avoimen saatavuuden periaatteen mukaisesti tai suoramyynnin kautta (kun "
+"käytetään asetusten Jakelu-kohdassa määriteltyä maksulisäosaa). Määritä "
+"tämän tiedostomuodon lähtökohtainen saatavuus."
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Kelvollinen numeerinen hinta vaaditaan."
+
+msgid "payment.directSales.purchase"
+msgstr "Osta {$format} ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Lataa {$format}"
+
+msgid "payment.directSales.monograph.name"
+msgstr "Osta kirjan tai luvun lataus"
+
+msgid "payment.directSales.monograph.description"
+msgstr "Tämä tapahtuma liittyy kirjan tai kirjan luvun suoralatauksen ostoon."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr "XML-tiedosto {$filename} ladattiin uudelleen haulla {$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Kirja"
+
+msgid "submission.pdf.download"
+msgstr "Lataa tämä PDF-tiedosto"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Rekisteröidy muiden julkaisijoiden sivustoille"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "Piilota muut julkaisijat"
+
+msgid "submission.round"
+msgstr "Kierros {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "Virheellinen julkaistu käsikirjoitus."
+
+msgid "catalog.coverImageTitle"
+msgstr "Kirjan {$monographTitle} kansi"
+
+msgid "grid.catalogEntry.chapters"
+msgstr "Luvut"
+
+msgid "search.results.orderBy.article"
+msgstr "Artikkelin otsikko"
+
+msgid "search.results.orderBy.author"
+msgstr "Kirjoittaja"
+
+msgid "search.results.orderBy.date"
+msgstr "Julkaisupäivä"
+
+msgid "search.results.orderBy.monograph"
+msgstr "Teoksen otsikko"
+
+msgid "search.results.orderBy.press"
+msgstr "Julkaisijan nimi"
+
+msgid "search.results.orderBy.popularityAll"
+msgstr "Suosio (kaikkien aikojen)"
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr "Suosio (viime kuussa)"
+
+msgid "search.results.orderBy.relevance"
+msgstr "Relevanssi"
+
+msgid "search.results.orderDir.asc"
+msgstr "Nouseva"
+
+msgid "search.results.orderDir.desc"
+msgstr "Laskeva"
+
+#~ msgid "monograph.currentCoverImage"
+#~ msgstr "Nykyinen kuva"
+
+#~ msgid "monograph.currentCoverImageReload"
+#~ msgstr "Tallenna muutokset nähdäksesi uuden kansikuvan."
+
+#~ msgid "monograph.publicationFormat.formatMetadata"
+#~ msgstr "Muodon metatiedot"
+
+#~ msgid "catalog.noTitlesSection"
+#~ msgstr "Tähän osastoon ei ole vielä julkaistu nimekkeitä."
+
+#~ msgid "catalog.browseTitles"
+#~ msgstr "{$numTitles} nimekettä"
+
+#~ msgid "catalog.allBooks"
+#~ msgstr "Kaikki kirjat"
+
+#~ msgid "catalog.subcategories"
+#~ msgstr "Alakategoriat"
+
+#~ msgid "catalog.sortBy.titleAsc"
+#~ msgstr "Nimeke (A-Ö)"
+
+#~ msgid "catalog.sortBy.titleDesc"
+#~ msgstr "Nimeke (Ö-A)"
+
+#~ msgid "catalog.sortBy.datePublishedAsc"
+#~ msgstr "Julkaisupäivämäärä (vanhin ensin)"
+
+#~ msgid "catalog.sortBy.datePublishedDesc"
+#~ msgstr "Julkaisupäivämäärä (uusin ensin)"
+
+#~ msgid "common.openMonographPress"
+#~ msgstr "Open Monograph Press"
+
+#~ msgid "press.presses"
+#~ msgstr "Painot"
+
+#~ msgid "press.path"
+#~ msgstr "Polku"
+
+#~ msgid "log.review.reviewCleared"
+#~ msgstr ""
+#~ "{$reviewerName}:n arviointi käsikirjoituksesta {$submissionId} "
+#~ "kierroksella {$round} on poistettu."
+
+#~ msgid "grid.category.categories"
+#~ msgstr "Kategoriat"
+
+msgid "section.section"
+msgstr "Sarja"
+
+msgid "search.cli.rebuildIndex.indexing"
+msgstr "Indeksoidaan \"{$pressName}\""
+
+msgid "search.cli.rebuildIndex.indexingByPressNotSupported"
+msgstr "Tämä haun toteutus ei salli julkaisijakohtaista uudelleenindeksointia."
+
+msgid "search.cli.rebuildIndex.unknownPress"
+msgstr "Annettu polku \"{$journalPath}\" ei johtanut julkaisijan sivustoon."
diff --git a/locale/fi/manager.po b/locale/fi/manager.po
new file mode 100644
index 00000000000..8c210f234fd
--- /dev/null
+++ b/locale/fi/manager.po
@@ -0,0 +1,1924 @@
+# Antti-Jussi Nygård , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
+"PO-Revision-Date: 2023-05-25 09:42+0000\n"
+"Last-Translator: Antti-Jussi Nygård \n"
+"Language-Team: Finnish "
+"\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.13.1\n"
+
+msgid "manager.language.confirmDefaultSettingsOverwrite"
+msgstr ""
+"Tämä korvaa kaikki tähän kielialueeseen liittyvät, kielialuekohtaiset "
+"julkaisijan sivuston asetukset"
+
+msgid "manager.languages.noneAvailable"
+msgstr ""
+"Valitettavasti muita kieliä ei ole käytettävissä. Jos haluat käyttää tämän "
+"julkaisijan sivustolla muita kieliä, ota yhteyttä sivuston ylläpitäjään."
+
+msgid "manager.languages.primaryLocaleInstructions"
+msgstr "Tätä kieltä käytetään julkaisijan sivuston oletuskielenä."
+
+msgid "manager.series.form.mustAllowPermission"
+msgstr ""
+"Varmista, että vähintään yksi valintaruutu on rastitettu kunkin sarjan "
+"toimittajan valinnan kohdalla."
+
+msgid "manager.series.form.reviewFormId"
+msgstr "Varmista, että olet valinnut kelvollisen arviointilomakkeen."
+
+msgid "manager.series.submissionIndexing"
+msgstr "Ei sisällytetä julkaisijan sivuston indeksointiin"
+
+msgid "manager.series.editorRestriction"
+msgstr "Ainoastaan toimittajat ja sarjan toimittajat voivat lähettää kohteita."
+
+msgid "manager.series.confirmDelete"
+msgstr "Haluatko varmasti poistaa tämän sarjan pysyvästi?"
+
+msgid "manager.series.indexed"
+msgstr "Indeksoitu"
+
+msgid "manager.series.open"
+msgstr "Käsikirjoitukset vapaasti lähetettävissä"
+
+msgid "manager.series.readingTools"
+msgstr "Lukutyökalut"
+
+msgid "manager.series.submissionReview"
+msgstr "Ei vertaisarvioida"
+
+msgid "manager.series.submissionsToThisSection"
+msgstr "Tähän sarjaan lähetetyt käsikirjoitukset"
+
+msgid "manager.series.abstractsNotRequired"
+msgstr "Älä vaadi abstrakteja"
+
+msgid "manager.series.disableComments"
+msgstr "Estä lukijoiden kommentit tähän sarjaan."
+
+msgid "manager.series.book"
+msgstr "Kirjasarja"
+
+msgid "manager.series.create"
+msgstr "Luo sarja"
+
+msgid "manager.series.policy"
+msgstr "Sarjan kuvaus"
+
+msgid "manager.series.assigned"
+msgstr "Tämän sarjan toimittajat"
+
+msgid "manager.series.seriesEditorInstructions"
+msgstr ""
+"Lisää tälle sarjalle sarjan toimittaja saatavilla olevista sarjan "
+"toimittajista. Määritä sen jälkeen valvooko sarjan toimittaja tämän sarjan "
+"käsikirjoitusten ARVIOINTIA (vertaisarviointi) ja/tai TOIMITUSTYÖTÄ "
+"(tekninen toimittaminen, taitto ja oikoluku). Sarjan toimittajat luodaan "
+"klikkaamalla Sarjan toimittajat "
+"Julkaisijan sivuston hallinnoinnin Roolit-kohdassa."
+
+msgid "manager.series.hideAbout"
+msgstr "Poista tämä sarja Tietoa julkaisijasta -sivulta."
+
+msgid "manager.series.unassigned"
+msgstr "Käytettävissä olevat Sarjan toimittajat"
+
+msgid "manager.series.form.abbrevRequired"
+msgstr "Sarjalle vaaditaan lyhennetty nimeke."
+
+msgid "manager.series.form.titleRequired"
+msgstr "Sarjalle vaaditaan nimeke."
+
+msgid "manager.series.noneCreated"
+msgstr "Yhtään sarjaa ei ole luotu."
+
+msgid "manager.series.existingUsers"
+msgstr "Olemassa olevat käyttäjät"
+
+msgid "manager.series.seriesTitle"
+msgstr "Sarjan nimeke"
+
+msgid "manager.series.restricted"
+msgstr ""
+"Älä salli kirjoittajien lähettää käsikirjoituksia suoraan tähän sarjaan."
+
+msgid "manager.payment.generalOptions"
+msgstr "Yleiset valinnat"
+
+msgid "manager.payment.options.enablePayments"
+msgstr ""
+"Maksut otetaan käyttöön tälle julkaisijalle. Huomaa, että käyttäjien tulee "
+"kirjautua sisään maksaakseen."
+
+msgid "manager.payment.success"
+msgstr "Maksutoimintojen asetukset päivitetty."
+
+msgid "manager.settings"
+msgstr "Asetukset"
+
+msgid "manager.settings.pressSettings"
+msgstr "Julkaisijan asetukset"
+
+msgid "manager.settings.press"
+msgstr "Julkaisija"
+
+msgid "manager.settings.publisher.identity"
+msgstr "Julkaisijan tiedot"
+
+msgid "manager.settings.publisher.identity.description"
+msgstr ""
+"Tämä on pakollinen tieto kelvollisten ONIX-kuvailutietojen julkaisemiseksi."
+
+msgid "manager.settings.publisher"
+msgstr "Julkaisijan nimi"
+
+msgid "manager.settings.location"
+msgstr "Maantieteellinen sijainti"
+
+msgid "manager.settings.publisherCode"
+msgstr "Julkaisijan koodi"
+
+msgid "manager.settings.publisherCodeType"
+msgstr "Julkaisijan koodityyppi"
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr "Tämä ei ole kelvollinen julkaisijan koodityyppi."
+
+msgid "manager.settings.distributionDescription"
+msgstr ""
+"Kaikki jakeluprosessiin liittyvät asetukset (ilmoitus, indeksointi, "
+"arkistointi, maksaminen, lukutyökalut)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr "Kirjatiedostojen lataukset"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr "Kirjan abstraktisivun katselukerrat"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr "Kirjan abstrakti ja lataukset"
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr "Sarjan pääsivun katselukerrat"
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr "Sivuston pääsivun katselukerrat"
+
+msgid "manager.tools"
+msgstr "Työkalut"
+
+msgid "manager.tools.importExport"
+msgstr ""
+"Kaikki tietojen (julkaisijat, kirjat, käyttäjät) tuomisen ja viemisen "
+"työkalut"
+
+msgid "manager.tools.statistics"
+msgstr ""
+"Käyttötilastoihin liittyvien raporttien (luettelon hakemistosivun "
+"katselukerrat, kirjan abstraktisivun katselukerrat, kirjan "
+"tiedostolataukset) luomiseen liittyvät työkalut"
+
+msgid "manager.users.availableRoles"
+msgstr "Käytettävissä olevat roolit"
+
+msgid "manager.users.currentRoles"
+msgstr "Nykyiset roolit"
+
+msgid "manager.users.selectRole"
+msgstr "Valitse rooli"
+
+msgid "manager.people.allEnrolledUsers"
+msgstr "Tämän julkaisijan sivustolle lisätyt käyttäjät"
+
+msgid "manager.people.allPresses"
+msgstr "Kaikki julkaisijat"
+
+msgid "manager.people.allSiteUsers"
+msgstr "Lisää olemassa oleva käyttäjä tämän julkaisijan sivustolle"
+
+msgid "manager.people.allUsers"
+msgstr "Kaikki käyttäjät, joilla on rooleja"
+
+msgid "manager.people.confirmRemove"
+msgstr ""
+"Poistetaanko tämä käyttäjä tämän julkaisijan sivustolta? Tämä toiminto "
+"poistaa käyttäjän kaikista tähän julkaisijaan liittyvistä rooleista."
+
+msgid "manager.people.enrollExistingUser"
+msgstr "Lisää olemassa oleva käyttäjä rooliin"
+
+msgid "manager.people.enrollSyncPress"
+msgstr "Julkaisijan sivuston kanssa"
+
+msgid "manager.people.mergeUsers.from.description"
+msgstr ""
+"Valitse käyttäjä, joka yhdistetään toiseen käyttäjätiliin (esim. jos "
+"jollakulla on kaksi käyttäjätiliä). Ensin valittu tili poistetaan ja sen "
+"käsikirjoitukset, toimeksiannot jne. siirretään toiselle tilille."
+
+msgid "manager.people.mergeUsers.into.description"
+msgstr ""
+"Valitse käyttäjä, kenelle aiemman käyttäjän kirjoittajahenkilöllisyys, "
+"toimitustoimeksiannot jne. siirretään."
+
+msgid "manager.people.syncUserDescription"
+msgstr ""
+"Rooliin lisäämisen synkronointi lisää kaikki määrätyn julkaisijan määrätyssä "
+"roolissa olevat käyttäjät tämän julkaisijan sivuston vastaavaan rooliin. "
+"Tämä toiminto mahdollistaa sen, että samankaltaisten käyttäjien joukko "
+"(esim. arvioijat) voidaan synkronoida julkaisijoiden välillä."
+
+msgid "manager.people.confirmDisable"
+msgstr ""
+"Estä tämä käyttäjä? Tämä estää käyttäjän kirjautumisen järjestelmään.\n"
+"\n"
+"Voit halutessasi kertoa käyttäjälle syyn siihen, miksi hänen käyttäjätilinsä "
+"on poistettu käytöstä."
+
+msgid "manager.people.noAdministrativeRights"
+msgstr ""
+"Sinulla ei ole hallinnollisia oikeuksia tähän käyttäjään. Syynä tähän voi "
+"olla:\n"
+"\n"
+"\t\t\t- Käyttäjä on sivuston ylläpitäjä
\n"
+"\t\t\t- Käyttäjä on aktiivisena julkaisijan sivustolla, joita sinä et "
+"hallinnoi
\n"
+"\t\t
\n"
+"Tämän tehtävän voi suorittaa vain sivuston ylläpitäjä.\n"
+"\t"
+
+msgid "manager.system"
+msgstr "Järjestelmäasetukset"
+
+msgid "manager.system.archiving"
+msgstr "Arkistointi"
+
+msgid "manager.system.reviewForms"
+msgstr "Arviointilomakkeet"
+
+msgid "manager.system.readingTools"
+msgstr "Lukutyökalut"
+
+msgid "manager.system.payments"
+msgstr "Maksut"
+
+msgid "user.authorization.pluginLevel"
+msgstr "Sinulla ei ole riittäviä oikeuksia tämän lisäosan hallinnointiin."
+
+msgid "manager.pressManagement"
+msgstr "Julkaisijan sivuston hallinnointi"
+
+msgid "manager.setup"
+msgstr "Asetukset"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Sisältö"
+
+msgid "manager.setup.addAboutItem"
+msgstr "Lisää Tietoa-kohta"
+
+msgid "manager.setup.addChecklistItem"
+msgstr "Lisää tarkistuslistan kohta"
+
+msgid "manager.setup.addItem"
+msgstr "Lisää kohta"
+
+msgid "manager.setup.addItemtoAboutPress"
+msgstr "Lisää kohta näkyviin Tietoa julkaisijasta -sivulle"
+
+msgid "manager.setup.addNavItem"
+msgstr "Lisää kohta"
+
+msgid "manager.setup.addSponsor"
+msgstr "Lisää tukiorganisaatio"
+
+msgid "manager.setup.announcements"
+msgstr "Ilmoitukset"
+
+msgid "manager.setup.announcements.success"
+msgstr "Ilmoitusasetukset päivitetty."
+
+msgid "manager.setup.announcementsDescription"
+msgstr ""
+"Ilmoituksia julkaisemalla lukijoille voidaan kertoa julkaisijan uutisista ja "
+"tapahtumista. Julkaistut ilmoitukset näkyvät Ilmoitukset-sivulla."
+
+msgid "manager.setup.announcementsIntroduction"
+msgstr "Lisätietoja"
+
+msgid "manager.setup.announcementsIntroduction.description"
+msgstr ""
+"Kirjoita mahdolliset lisätiedot, jotka haluat esittää lukijoille Ilmoitukset-"
+"sivulla."
+
+msgid "manager.setup.appearInAboutPress"
+msgstr "(Näkyy Tietoa julkaisijasta -sivulla) "
+
+msgid "manager.setup.contextAbout"
+msgstr "Tietoa julkaisijasta"
+
+msgid "manager.setup.contextAbout.description"
+msgstr ""
+"Kerro sellaisia lisätietoja, jotka voivat kiinnostaa lukijoita, kirjoittajia "
+"tai arvioijia. Esimerkiksi avoimen julkaisemisen linjaukset, tarkoitus ja "
+"toimintaperiaatteet, tukijat ja julkaisijan historia."
+
+msgid "manager.setup.contextSummary"
+msgstr "Julkaisijan yhteenveto"
+
+msgid "manager.setup.copyediting"
+msgstr "Tekniset toimittajat"
+
+msgid "manager.setup.copyeditInstructions"
+msgstr "Teknisen toimittamisen ohjeet"
+
+msgid "manager.setup.copyeditInstructionsDescription"
+msgstr ""
+"Teknisen toimittamisen ohjeet tulevat teknisten toimittajien, kirjoittajien "
+"ja sarjojen toimittajien saataville käsikirjoituksen toimittamisvaiheessa. "
+"Alla HTML-muotoiset oletusohjeet, joita julkaisijan sivuston hallinnoija voi "
+"muokata tai korvata missä tahansa vaiheessa (HTML-muodossa tai pelkkänä "
+"tekstinä)."
+
+msgid "manager.setup.copyrightNotice"
+msgstr "Tekijänoikeushuomautus"
+
+msgid "manager.setup.coverage"
+msgstr "Kattavuus"
+
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr "Maksimikorkeus"
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr "Maksimileveys"
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr ""
+"Tätä kokoa suuremmat kuvat pienennetään tähän kokoon, mutta kokoa pienempiä "
+"kuvia ei suurenneta."
+
+msgid "manager.setup.customizingTheLook"
+msgstr "Vaihe 5. Ulkoasun ja yleisilmeen mukauttaminen"
+
+msgid "manager.setup.customTags"
+msgstr "Mukautetut tagit"
+
+msgid "manager.setup.customTagsDescription"
+msgstr ""
+"Mukautetut HTML-muotoiset ylätunnisteen tagit, jotka sijoitetaan jokaisen "
+"sivun ylätunnisteeseen (esim. meta-tagit)."
+
+msgid "manager.setup.details"
+msgstr "Tiedot"
+
+msgid "manager.setup.details.description"
+msgstr "Julkaisijan nimi, yhteystiedot, tukijat ja hakukoneet."
+
+msgid "manager.setup.disableUserRegistration"
+msgstr ""
+"Julkaisijan sivuston hallinnoija rekisteröi kaikki käyttäjätilit. "
+"Toimittajat tai sarjan toimittajat voivat rekisteröidä käyttäjätilejä "
+"arvioijille."
+
+msgid "manager.setup.discipline"
+msgstr "Akateeminen tieteenala ja alatieteet"
+
+msgid "manager.setup.disciplineDescription"
+msgstr ""
+"Hyödyllinen, kun julkaisija ylittää tieteenalojen väliset rajat ja/tai kun "
+"tekijät lähettävät monitieteellisiä kohteita."
+
+msgid "manager.setup.disciplineExamples"
+msgstr ""
+"(Esim. historia; koulutus; sosiologia; psykologia; kulttuurintutkimus; laki)"
+
+msgid "manager.setup.disciplineProvideExamples"
+msgstr ""
+"Anna esimerkkejä tähän julkaisijaan liittyvistä olennaisista akateemisista "
+"tieteenaloista"
+
+msgid "manager.setup.displayCurrentMonograph"
+msgstr "Lisää uusimman kirjan sisällysluettelo (jos saatavilla)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr "Etusivun sisältö"
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr "Näytä esittelyssä olevat kirjat etusivulla"
+
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr "Esittelyssä olevat teokset"
+
+msgid "manager.setup.displayInSpotlight"
+msgstr "Näytä kirjat nostoissa etusivulla"
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr "Nosto"
+
+msgid "manager.setup.displayNewReleases"
+msgstr "Näytä uutuudet etusivulla"
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr "Uutuudet"
+
+msgid "manager.setup.enableDois.description"
+msgstr ""
+"Salli digitaalisten objektitunnisteiden (DOI) määrittäminen tämän "
+"julkaisijan sisällöille."
+
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr ""
+"Valitse, minkä tyyppisille kohteille annetaan DOI-tunnus. Useimmat "
+"julkaisijat antavat DOI-tunnukset teoksille ja luvuille, mutta voit "
+"halutessasi antaa DOI-tunnukset kaikille julkaistaville kohteille."
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr ""
+"Käytä oletusrakennetta.
%p.%m teoksille
%p.%m.c%c luvuille
%p.%m.%f julkaisumuodoille
%p.%m.%f.%s tiedostoille."
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr "Kun teknisen toimittamisen työvaiheeseen on päästy"
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr "Formaatti / {$format}"
+
+msgid "manager.setup.editorDecision"
+msgstr "Toimittajan päätös"
+
+msgid "manager.setup.emailBounceAddress"
+msgstr "Palautusosoite"
+
+msgid "manager.setup.emailBounceAddress.description"
+msgstr ""
+"Kaikki sähköpostit, jotka eivät mene perille johtavat tähän osoitteeseen "
+"lähetettävään virheilmoitukseen."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr ""
+"Aktivoidakseen tämän valinnan sivuston ylläpitäjän täytyy ottaa käyttöön "
+"allow_envelope_sender
-valinta OMP:n määritystiedostossa. "
+"Palvelimen lisämäärityksiä saatetaan edellyttää tämän toiminnon tukemiseksi, "
+"kuten OMP:n käyttöohjeissa mainitaan."
+
+msgid "manager.setup.emails"
+msgstr "Sähköpostitunnistautuminen"
+
+msgid "manager.setup.emailSignature"
+msgstr "Allekirjoitus"
+
+msgid "manager.setup.emailSignature.description"
+msgstr ""
+"Valmiisiin sähköposteihin, jotka järjestelmä lähettää automaattisesti "
+"julkaisijan puolesta, lisätään seuraava allekirjoitus."
+
+msgid "manager.setup.enableAnnouncements.enable"
+msgstr "Ota ilmoitukset käyttöön"
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr ""
+"Ilmoituksia julkaisemalla, lukijoille voidaan kertoa uutisista ja "
+"tapahtumista. Julkaistut ilmoitukset näkyvät Ilmoitukset-sivulla."
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr "Näytä kotisivulla"
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr ""
+"Montako ilmoitusta näytetään kotisivulla? Jätä tyhjäksi jos et halu näyttää "
+"yhtään."
+
+msgid "manager.setup.enablePressInstructions"
+msgstr "Näytä tämä julkaisija julkisesti sivustolla"
+
+msgid "manager.setup.enablePublicMonographId"
+msgstr ""
+"Mukautettuja tunnisteita käytetään julkaistujen kohteiden identifioimiseen."
+
+msgid "manager.setup.enablePublicGalleyId"
+msgstr ""
+"Mukautettuja tunnisteita käytetään julkaistujen kohteiden julkaistavien "
+"tiedostojen (esim. HTML- tai PDF-tiedostot) identifioimiseen."
+
+msgid "manager.setup.enableUserRegistration"
+msgstr "Vierailijat voivat rekisteröidä käyttäjätilin julkaisijan sivustolle."
+
+msgid "manager.setup.focusAndScope"
+msgstr "Julkaisijan tarkoitus ja toimintaperiaatteet"
+
+msgid "manager.setup.focusAndScope.description"
+msgstr ""
+"Kuvaile kirjoittajille, lukijoille ja kirjastonhoitajille millaisia kirjoja "
+"ja muita kohteita julkaisija julkaisee."
+
+msgid "manager.setup.focusScope"
+msgstr "Tarkoitus ja toimintaperiaatteet"
+
+msgid "manager.setup.focusScopeDescription"
+msgstr "HTML-MUOTOINEN ESIMERKKITEKSTI"
+
+msgid "manager.setup.forAuthorsToIndexTheirWork"
+msgstr "Kirjoittajille töiden indeksointia varten"
+
+msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
+msgstr ""
+"OMP noudattaa Open Archives Initiativen protokollaa metatietojen haravoinnista, "
+"joka on nouseva standardi elektronisten tutkimusresurssien hyvin indeksoidun "
+"saatavuuden tarjoamisessa maailmanlaajuisesti. Kirjoittajat käyttävät "
+"samanlaista mallipohjaa antaessaan käsikirjoitustensa metatiedot. "
+"Julkaisijan sivuston hallinnoijan tulee valita käytettävät "
+"indeksointikategoriat ja avustaa kirjoittajia töidensä indeksoinnissa "
+"tarjoamalla olennaisia esimerkkejä, ehdot puolipisteellä (esim. ehto1; "
+"ehto2) erotellen. Merkinnät tulee esitellä esimerkkeinä \"esim.\" -"
+"lyhennettä tai \"esimerkiksi\"-termiä käyttäen."
+
+msgid "manager.setup.form.contactEmailRequired"
+msgstr "Ensisijainen sähköposti yhteydenottoja varten vaaditaan."
+
+msgid "manager.setup.form.contactNameRequired"
+msgstr "Ensisijainen yhteyshenkilö vaaditaan."
+
+msgid "manager.setup.form.numReviewersPerSubmission"
+msgstr "Arvioijien määrä käsikirjoitusta kohti vaaditaan."
+
+msgid "manager.setup.form.supportEmailRequired"
+msgstr "Teknisen tuen sähköposti vaaditaan."
+
+msgid "manager.setup.form.supportNameRequired"
+msgstr "Teknisen tuen henkilö vaaditaan."
+
+msgid "manager.setup.generalInformation"
+msgstr "Yleisiä tietoja"
+
+msgid "manager.setup.gettingDownTheDetails"
+msgstr "Vaihe 1. Perustiedot"
+
+msgid "manager.setup.guidelines"
+msgstr "Ohjeet"
+
+msgid "manager.setup.preparingWorkflow"
+msgstr "Vaihe 3. Työnkulun valmisteleminen"
+
+msgid "manager.setup.identity"
+msgstr "Julkaisijan sivuston tiedot"
+
+msgid "manager.setup.information"
+msgstr "Tietoa"
+
+msgid "manager.setup.information.description"
+msgstr ""
+"Lyhyet kuvaukset julkaisijasta kirjastonhoitajille, mahdollisille "
+"kirjoittajille ja lukijoille. Kuvaukset tulevat näkyville sivuston "
+"sivupalkkiin, kun Tietoa-lohko on lisätty."
+
+msgid "manager.setup.information.forAuthors"
+msgstr "Kirjoittajille"
+
+msgid "manager.setup.information.forLibrarians"
+msgstr "Kirjastonhoitajille"
+
+msgid "manager.setup.information.forReaders"
+msgstr "Lukijoille"
+
+msgid "manager.setup.information.success"
+msgstr "Julkaisijan tietoja koskevat asetukset on päivitetty."
+
+msgid "manager.setup.institution"
+msgstr "Instituutio"
+
+msgid "manager.setup.itemsPerPage"
+msgstr "Kohteita per sivu"
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr ""
+"Rajoita niiden kohteiden (käsikirjoitus, käyttäjä jne.) lukumäärä, jotka "
+"näytetään yhdellä sivulla."
+
+msgid "manager.setup.keyInfo"
+msgstr "Avaintiedot"
+
+msgid "manager.setup.keyInfo.description"
+msgstr "Anna julkaisijan lyhyt kuvaus ja esittele toimituskunnan jäsenet."
+
+msgid "manager.setup.labelName"
+msgstr "Selitteen nimi"
+
+msgid "manager.setup.layoutAndGalleys"
+msgstr "Taittajat"
+
+msgid "manager.setup.layoutInstructions"
+msgstr "Taitto-ohjeet"
+
+msgid "manager.setup.layoutInstructionsDescription"
+msgstr ""
+"Julkaistavien kohteiden muotoilua varten voidaan tehdä taitto-ohjeet, jotka "
+"voidaan syöttää alle joko HTML-muodossa tai pelkkänä tekstinä. Ne tulevat "
+"taittajan ja osastotoimittajan saataville jokaisen käsikirjoituksen "
+"toimittamissivulla. (Koska jokainen julkaisija saattaa käyttää eri "
+"tiedostomuotoja, bibliografisia standardeja, tyylitiedostoja jne., "
+"oletusohjeita ei anneta.)"
+
+msgid "manager.setup.layoutTemplates"
+msgstr "Taiton mallipohjat"
+
+msgid "manager.setup.layoutTemplatesDescription"
+msgstr ""
+"Jokaiselle julkaistavalle, mitä tahansa tiedostomuotoa (esim. pdf, doc jne.) "
+"käyttävälle, standardimuodolle (esim. kirja, kirja-arvostelu jne.), voidaan "
+"ladata mallipohja, joka näkyy Taitto-kohdassa. Mallipohjiin voi lisätä "
+"huomautuksia, jotka määrittävät kirjasinlajin, koon, reunukset jne. ja "
+"toimivat ohjeena taittajille ja oikolukijoille."
+
+msgid "manager.setup.layoutTemplates.file"
+msgstr "Mallipohjatiedosto"
+
+msgid "manager.setup.layoutTemplates.title"
+msgstr "Otsikko"
+
+msgid "manager.setup.lists"
+msgstr "Listat"
+
+msgid "manager.setup.lists.success"
+msgstr "Listauksia koskevat asetukset on päivitetty."
+
+msgid "manager.setup.look"
+msgstr "Ulkoasu & Yleisilme"
+
+msgid "manager.setup.look.description"
+msgstr ""
+"Etusivun ylätunniste, sisältö, julkaisijan sivuston ylätunniste, "
+"alatunniste, navigointipalkki ja tyylitiedosto."
+
+msgid "manager.setup.settings"
+msgstr "Asetukset"
+
+msgid "manager.setup.management.description"
+msgstr ""
+"Käyttöoikeudet ja turvallisuus, aikataulutus, ilmoitukset, tekninen "
+"toimittaminen, taitto ja oikoluku."
+
+msgid "manager.setup.managementOfBasicEditorialSteps"
+msgstr "Toimituksellisten perusvaiheiden hallinnointi"
+
+msgid "manager.setup.managingPublishingSetup"
+msgstr "Hallinnoinnin ja julkaisemisen asetukset"
+
+msgid "manager.setup.managingThePress"
+msgstr "Vaihe 4. Asetusten hallinnointi"
+
+msgid "manager.setup.masthead.success"
+msgstr "Tunnuslaatikkoa koskevat asetukset on päivitetty."
+
+msgid "manager.setup.noImageFileUploaded"
+msgstr "Ei ladattua kuvatiedostoa."
+
+msgid "manager.setup.noStyleSheetUploaded"
+msgstr "Ei ladattua tyylitiedostoa."
+
+msgid "manager.setup.note"
+msgstr "Huomautus"
+
+msgid "manager.setup.notifyAllAuthorsOnDecision"
+msgstr ""
+"Käyttäessäsi Ilmoita kirjoittajalle -sähköpostia, muista lisätä "
+"vastaanottajaksi käsikirjoituksen lähettäneen käyttäjän lisäksi kaikki "
+"kirjoittajat, kun kyseessä on käsikirjoitus, jolla on monta kirjoittajaa."
+
+msgid "manager.setup.noUseCopyeditors"
+msgstr ""
+"Käsikirjoitukselle valittu toimittaja tai osastotoimittaja hoitaa teknisen "
+"toimittamisen."
+
+msgid "manager.setup.noUseLayoutEditors"
+msgstr ""
+"Käsikirjoitukselle valittu toimittaja tai osastotoimittaja valmistelee "
+"HTML-, PDF- ja muut tiedostot."
+
+msgid "manager.setup.noUseProofreaders"
+msgstr ""
+"Käsikirjoitukselle valittu toimittaja tai osastotoimittaja tarkistaa "
+"julkaistavat tiedostot."
+
+msgid "manager.setup.numPageLinks"
+msgstr "Sivun linkit"
+
+msgid "manager.setup.numPageLinks.description"
+msgstr "Rajoita listauksessa näkyvien sivulinkkien määrää."
+
+msgid "manager.setup.onlineAccessManagement"
+msgstr "Pääsy julkaisijan sisältöihin"
+
+msgid "manager.setup.onlineIssn"
+msgstr "Verkkokirjan ISSN"
+
+msgid "manager.setup.policies"
+msgstr "Toimintaperiaatteet"
+
+msgid "manager.setup.policies.description"
+msgstr ""
+"Julkaisijan tarkoitus, vertaisarviointi, osastot, yksityisyyden suoja, "
+"turvallisuus ja lisätietoja kohteista."
+
+msgid "manager.setup.privacyStatement.success"
+msgstr "Tietosuojaselostetta koskevat asetukset on päivitetty."
+
+msgid "manager.setup.appearanceDescription"
+msgstr ""
+"Tällä sivulla voidaan määrittää julkaisijan sivuston eri osien ulkoasu, "
+"kuten ylä- ja alatunnisteiden osat, tyyli ja teema, sekä se, kuinka listattu "
+"tieto esitetään käyttäjille."
+
+msgid "manager.setup.pressDescription"
+msgstr "Julkaisija lyhyesti"
+
+msgid "manager.setup.pressDescription.description"
+msgstr "Lyhyt kuvaus julkaisijasta."
+
+msgid "manager.setup.aboutPress"
+msgstr "Tietoa julkaisijasta"
+
+msgid "manager.setup.aboutPress.description"
+msgstr ""
+"Sisällytä tähän mitä tahansa tietoa julkaisijasta, joka saattaa kiinnostaa "
+"lukijoita, kirjoittajia ja arvioijia. Tällaisia tietoja voivat olla esim. "
+"avoimen saatavuuden periaate, julkaisijan tarkoitus ja toimintaperiaatteet, "
+"tekijänoikeushuomautus, tiedonanto tukemista koskien, julkaisijan historia "
+"ja tietosuojaseloste."
+
+msgid "manager.setup.pressArchiving"
+msgstr "Julkaisijan arkistointi"
+
+msgid "manager.setup.homepageContent"
+msgstr "Julkaisijan etusivun sisältö"
+
+msgid "manager.setup.homepageContentDescription"
+msgstr ""
+"Julkaisijan etusivu koostuu oletusarvoisesti siirtymälinkeistä. Muuta "
+"sisältöä etusivulle voidaan liittää käyttämällä yhtä tai kaikkia seuraavista "
+"vaihtoehdoista, jotka ilmestyvät esitetyssä järjestyksessä."
+
+msgid "manager.setup.pressHomepageContent"
+msgstr "Julkaisijan etusivun sisältö"
+
+msgid "manager.setup.pressHomepageContentDescription"
+msgstr ""
+"Julkaisijan etusivu koostuu oletusarvoisesti siirtymälinkeistä. Muuta "
+"sisältöä etusivulle voidaan liittää käyttämällä yhtä tai kaikkia seuraavista "
+"vaihtoehdoista, jotka ilmestyvät esitetyssä järjestyksessä."
+
+msgid "manager.setup.contextInitials"
+msgstr "Julkaisijan alkukirjaimet"
+
+msgid "manager.setup.selectCountry"
+msgstr "Valitse julkaisijan kotimaa."
+
+msgid "manager.setup.layout"
+msgstr "Julkaisijan sivuston taitto"
+
+msgid "manager.setup.pageHeader"
+msgstr "Julkaisijan sivuston ylätunniste"
+
+msgid "manager.setup.pageHeaderDescription"
+msgstr ""
+
+msgid "manager.setup.pressPolicies"
+msgstr "Vaihe 2. Julkaisijan toimintaperiaatteet"
+
+msgid "manager.setup.pressSetup"
+msgstr "Julkaisijan asetukset"
+
+msgid "manager.setup.pressSetupUpdated"
+msgstr "Julkaisijan asetukset on päivitetty."
+
+msgid "manager.setup.styleSheetInvalid"
+msgstr "Virheellinen tyylitiedoston muoto. Hyväksytty muoto on .css."
+
+msgid "manager.setup.pressTheme"
+msgstr "Julkaisijan sivuston teema"
+
+msgid "manager.setup.pressThumbnail"
+msgstr "Julkaisijan pikkukuva"
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr ""
+"Pieni logo tai julkaisijaa edustava kuva, jota voidaan käyttää "
+"julkaisijoiden listauksessa."
+
+msgid "manager.setup.contextTitle"
+msgstr "Julkaisijan sivuston nimi"
+
+msgid "manager.setup.printIssn"
+msgstr "Painetun kirjan ISSN"
+
+msgid "manager.setup.proofingInstructions"
+msgstr "Oikolukuohjeet"
+
+msgid "manager.setup.proofingInstructionsDescription"
+msgstr ""
+"Oikoluvun ohjeet tulevat oikolukijoiden, kirjoittajien, taittajien ja "
+"osastotoimittajien saataville käsikirjoituksen toimittamisvaiheessa. Alla "
+"HTML-muotoiset oletusohjeet, joita Julkaisijan sivuston hallinnoija voi "
+"muokata tai korvata missä tahansa vaiheessa (HTML-muodossa tai pelkkänä "
+"tekstinä)."
+
+msgid "manager.setup.proofreading"
+msgstr "Oikolukijat"
+
+msgid "manager.setup.provideRefLinkInstructions"
+msgstr "Anna ohjeet taittajille."
+
+msgid "manager.setup.publicationScheduleDescription"
+msgstr ""
+"Nimekkeitä voidaan julkaista kokonaisuutena osana kirjaa, jolla on oma "
+"sisällysluettelonsa. Vaihtoehtoisesti yksittäisiä nimekkeitä voidaan "
+"julkaista heti niiden ollessa valmiita, lisäämällä ne uusimman niteen "
+"sisällysluetteloon. Kerro lukijoille tämän julkaisijan käytännöstä asian "
+"suhteen sekä oletetusta julkaisutiheydestä Tietoa julkaisijasta -sivulla."
+
+msgid "manager.setup.publisher"
+msgstr "Julkaisija"
+
+msgid "manager.setup.publisherDescription"
+msgstr ""
+"Julkaisijan sivustoa ylläpitävän organisaation nimi näkyy Tietoa "
+"julkaisijasta -sivulla."
+
+msgid "manager.setup.referenceLinking"
+msgstr "Lähdeviitteiden linkitys"
+
+msgid "manager.setup.refLinkInstructions.description"
+msgstr "Taiton ohjeet lähdeviitteiden linkitykseen"
+
+msgid "manager.setup.restrictMonographAccess"
+msgstr ""
+"Käyttäjien tulee olla rekisteröityneitä ja sisäänkirjautuneita katsellakseen "
+"avoimesti saatavilla olevaa sisältöä."
+
+msgid "manager.setup.restrictSiteAccess"
+msgstr ""
+"Käyttäjien tulee olla rekisteröityneitä ja sisäänkirjautuneita katsellakseen "
+"julkaisijan sivustoa."
+
+msgid "manager.setup.reviewGuidelines"
+msgstr "Ulkopuolista arviointia koskevat ohjeet"
+
+msgid "manager.setup.reviewGuidelinesDescription"
+msgstr ""
+"Anna ulkopuolisille arvioijille kriteerit, joiden perusteella he arvioivat "
+"soveltuuko käsikirjoitus julkaisijan julkaistavaksi. Ohjeet voivat sisältää "
+"myös ohjeita vaikuttavan ja hyödyllisen arvion kirjoittamiseksi. Arvioijilla "
+"on mahdollisuus antaa sekä kirjoittajalle että toimittajalle tarkoitettuja "
+"kommentteja ja erillisiä, vain toimittajalle tarkoitettuja kommentteja."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr "Sisäistä arviointia koskevat ohjeet"
+
+msgid "manager.setup.reviewOptions"
+msgstr "Arviointiin liittyvät valinnat"
+
+msgid "manager.setup.reviewOptions.automatedReminders"
+msgstr "Automaattiset sähköpostimuistutukset"
+
+msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
+msgstr ""
+"Aktivoidakseen nämä valinnat sivuston ylläpitäjän täytyy ottaa käyttöön "
+"scheduled_tasks -valinta OMP:n määritystiedostossa. Palvelimen "
+"lisämäärityksiä saatetaan edellyttää tämän toiminnon tukemiseksi (joka ei "
+"välttämättä ole mahdollista kaikilla palvelimilla), kuten OMP:n "
+"käyttöohjeissa mainitaan."
+
+msgid "manager.setup.reviewOptions.onQuality"
+msgstr ""
+"Toimittajat arvostelevat arvioijat viisiportaisella laatuasteikolla jokaisen "
+"arviointitapahtuman jälkeen."
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr ""
+"Arvioijilla on pääsy käsikirjoitustiedostoon vasta suostuttuaan arvioimaan "
+"sen"
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
+msgstr ""
+"Arvioijilla on pääsy käsikirjoituksen tiedostoihin vasta pyynnön "
+"hyväksymisen jälkeen."
+
+msgid "manager.setup.reviewOptions.reviewerAccess"
+msgstr "Arvioijan pääsy käsikirjoitukseen"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr ""
+"Ota käyttöön automaattisesti arvioijan sisäänkirjaavat linkit "
+"arviointipyynnöissä"
+
+#, fuzzy
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
+msgstr ""
+"Huom! Arvioijille lähetettävässä sähköpostikutsussa on "
+"erityinen URL-osoite, jonka kautta arvioijat pääsevät suoraan "
+"käsikirjoituksen arviointisivulle (muille sivuille pääsy vaatii "
+"sisäänkirjautumisen). Tietoturvasyistä tämän valinnan kohdalla toimittajat "
+"eivät voi muokata sähköpostiosoitteita eivätkä lisätä kopioita tai "
+"piilokopioita ennen viestin lähettämistä."
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr ""
+"Lisää automaattisen kirjautumisen mahdollistava linkki arvioijille lähtevään "
+"kutsuun."
+
+msgid "manager.setup.reviewOptions.reviewerRatings"
+msgstr "Arvioijien arvostelu"
+
+msgid "manager.setup.reviewOptions.reviewerReminders"
+msgstr "Arvioijan muistutukset"
+
+msgid "manager.setup.reviewPolicy"
+msgstr "Arviointiperiaatteet"
+
+msgid "manager.setup.searchDescription.description"
+msgstr ""
+"Anna lyhyt (50-300 merkkiä) kuvaus, jonka hakukoneet voivat näyttää "
+"julkaisijan sivustoa koskevissa hakutuloksissaan."
+
+msgid "manager.setup.searchEngineIndexing"
+msgstr "Hakukoneindeksointi"
+
+msgid "manager.setup.searchEngineIndexing.description"
+msgstr ""
+"Auta Googlea ja muita hakukoneita löytämään sivustosi. Suosittelemme sinua "
+"lähettämään sivustokarttasi "
+"hakukoneille tiedoksi."
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr "Hakukoneindeksointia koskevat asetukset on päivitetty."
+
+msgid "manager.setup.sectionsAndSectionEditors"
+msgstr "Osastot ja osastotoimittajat"
+
+msgid "manager.setup.sectionsDefaultSectionDescription"
+msgstr ""
+"(Jos osastoja ei ole lisätty, kohteet lähetetään oletusarvoisesti Kirjat-"
+"osastoon.)"
+
+msgid "manager.setup.sectionsDescription"
+msgstr ""
+"Luodaksesi tai muokataksesi julkaisijan sarjoja mene Sarjan hallinnointi -"
+"kohtaan.
Julkaisijalle kohteita lähettävät kirjoittajat "
+"nimittävät..."
+
+msgid "manager.setup.securitySettings"
+msgstr "Käyttöoikeus- ja turvallisuusasetukset"
+
+msgid "manager.setup.securitySettings.note"
+msgstr ""
+"Muita turvallisuuteen ja käyttöoikeuksiin liittyviä valintoja voidaan "
+"määrittää Käyttöoikeudet ja turvallisuus -sivulla."
+
+msgid "manager.setup.selectEditorDescription"
+msgstr "Toimittaja, joka on mukana toimitusprosessin alusta loppuun asti."
+
+msgid "manager.setup.selectSectionDescription"
+msgstr "Julkaisijan sarja, johon kohdetta harkitaan."
+
+msgid "manager.setup.showGalleyLinksDescription"
+msgstr ""
+"Näytä aina julkaistavien tiedostojen linkit ja ilmaise rajoitettu saatavuus."
+
+msgid "manager.setup.siteAccess.view"
+msgstr "Pääsy verkkosivulle"
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr "Näytä julkaistut teokset"
+
+msgid "manager.setup.stepsToPressSite"
+msgstr "Julkaisijan verkkosivuston luonnin viisi vaihetta"
+
+msgid "manager.setup.subjectExamples"
+msgstr "(Esim. fotosynteesi; mustat aukot; neliväriteoreema; Bayesin teoreema)"
+
+msgid "manager.setup.subjectKeywordTopic"
+msgstr "Avainsanat"
+
+msgid "manager.setup.subjectProvideExamples"
+msgstr "Anna esimerkkejä avainsanoista tai aiheista kirjoittajien avuksi"
+
+msgid "manager.setup.submissionGuidelines"
+msgstr "Käsikirjoituksen lähettämisen ohjeet"
+
+msgid "maganer.setup.submissionChecklistItemRequired"
+msgstr "Tarkistuslistan kohta vaaditaan."
+
+msgid "manager.setup.workflow"
+msgstr "Työnkulku"
+
+msgid "manager.setup.submissions.description"
+msgstr ""
+"Ohjeet kirjoittajille, tekijänoikeudet ja indeksointi (sis. rekisteröinnin)."
+
+msgid "manager.setup.typeExamples"
+msgstr ""
+"(Esim. historiatutkimus; kvasikokeellinen; kirjallisuusanalyysi; kysely/"
+"haastattelu)"
+
+msgid "manager.setup.typeMethodApproach"
+msgstr "Tyyppi (menetelmä/lähestymistapa)"
+
+msgid "manager.setup.typeProvideExamples"
+msgstr ""
+"Anna esimerkkejä tälle alalle oleellisista tutkimustyypeistä ja -"
+"menetelmistä sekä lähestymistavoista"
+
+msgid "manager.setup.useCopyeditors"
+msgstr "Jokaiselle käsikirjoitukselle valitaan tekninen toimittaja."
+
+msgid "manager.setup.useEditorialReviewBoard"
+msgstr "Julkaisija käyttää toimitus-/arviointineuvostoa."
+
+msgid "manager.setup.useImageTitle"
+msgstr "Nimekkeen kuva"
+
+msgid "manager.setup.useStyleSheet"
+msgstr "Julkaisijan tyylitiedosto"
+
+msgid "manager.setup.useLayoutEditors"
+msgstr ""
+"Sähköisen julkaisun HTML-, PDF- ja muiden tiedostojen valmisteluun valitaan "
+"taittaja."
+
+msgid "manager.setup.useProofreaders"
+msgstr ""
+"Julkaistavien tiedostojen tarkistamiseen (yhdessä kirjoittajien kanssa) "
+"ennen julkaisua valitaan oikolukija."
+
+msgid "manager.setup.userRegistration"
+msgstr "Käyttäjärekisteröinti"
+
+msgid "manager.setup.useTextTitle"
+msgstr "Nimekkeen teksti"
+
+msgid "manager.setup.volumePerYear"
+msgstr "Nidettä vuodessa"
+
+msgid "manager.setup.publicationFormat.code"
+msgstr "Muoto"
+
+msgid "manager.setup.publicationFormat.codeRequired"
+msgstr "Muoto on valittava."
+
+msgid "manager.setup.publicationFormat.nameRequired"
+msgstr "Tälle muodolle on annettava nimi."
+
+msgid "manager.setup.publicationFormat.physicalFormat"
+msgstr "Onko tämä fyysinen (ei digitaalinen) muoto?"
+
+msgid "manager.setup.publicationFormat.inUse"
+msgstr ""
+"Tätä julkaisumuotoa ei voi poistaa, koska se on tällä hetkellä yhden kirjan "
+"käytössä."
+
+msgid "manager.setup.newPublicationFormat"
+msgstr "Uusi julkaisumuoto"
+
+msgid "manager.setup.newPublicationFormatDescription"
+msgstr ""
+"Luo uusi julkaisumuoto täyttämällä alla oleva lomake ja klikkaamalla ”Luo”-"
+"painiketta."
+
+msgid "manager.setup.genresDescription"
+msgstr ""
+"Näitä lajityyppejä käytetään tiedostojen nimeämistarkoituksiin ja ne "
+"näytetään vetovalikossa tiedostojen lataamisen yhteydessä. ##-merkityt "
+"lajityypit mahdollistavat sen, että käyttäjät voivat yhdistää tiedoston joko "
+"koko kirjaan 99Z tai vain tiettyyn lukuun numerolla (esim. 02)."
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr ""
+"Julkaisija ei ota vastaan käsikirjoituksia tällä hetkellä. Käy työnkulun "
+"asetuksissa sallimassa käsikirjoitukset."
+
+msgid "manager.setup.disableSubmissions.description"
+msgstr ""
+"Estä käyttäjiä lähettämästä uusia teoksia julkaisijalle. Käsikirjoitukset "
+"yksittäisiin julkaisijan sarjoihin voidaan estää julkaisijan sarjojen asetussivulla."
+
+msgid "manager.setup.genres"
+msgstr "Lajityypit"
+
+msgid "manager.setup.newGenre"
+msgstr "Uusi kirjan lajityyppi"
+
+msgid "manager.setup.newGenreDescription"
+msgstr ""
+"Luo uusi lajityyppi täyttämällä alla oleva lomake ja klikkaamalla ”Luo”-"
+"painiketta."
+
+msgid "manager.setup.deleteSelected"
+msgstr "Poista valitut"
+
+msgid "manager.setup.restoreDefaults"
+msgstr "Palauta oletusasetukset"
+
+msgid "manager.setup.prospectus"
+msgstr "Esiteopas"
+
+msgid "manager.setup.prospectusDescription"
+msgstr ""
+"Esiteopas on julkaisijan laatima asiakirja. Sen tarkoitus on auttaa "
+"kirjoittajaa kuvailemaan lähetettyjä materiaaleja tavalla, joka mahdollistaa "
+"sen, että julkaisija voi määritellä käsikirjoituksen arvon. Esite voi "
+"sisältää paljon kohtia aina markkinointipotentiaalista teoreettiseen arvoon. "
+"Julkaisijan tulisi luoda sellainen esiteopas, joka täydentää sen "
+"julkaisutavoitteita."
+
+msgid "manager.setup.submitToCategories"
+msgstr "Salli käsikirjoitusten lähetys kategoriaan"
+
+msgid "manager.setup.submitToSeries"
+msgstr "Salli käsikirjoitusten lähetys sarjaan"
+
+msgid "manager.setup.issnDescription"
+msgstr ""
+"ISSN (International Standard Serial Number) on kahdeksannumeroinen tunnus, "
+"joka toimii aikakausjulkaisujen, mukaan lukien sähköiset kausijulkaisut, "
+"tunnuksena. Tunnuksen saa Suomen ISSN-keskuksesta."
+
+msgid "manager.setup.currentFormats"
+msgstr "Nykyiset muodot"
+
+msgid "manager.setup.categoriesAndSeries"
+msgstr "Kategoriat ja sarjat"
+
+msgid "manager.setup.categories.description"
+msgstr ""
+"Voit luoda luettelon kategorioista helpottaaksesi julkaisuidesi järjestelyä. "
+"Kategoriat ovat aihealueittaisia (esim. taloustiede; kirjallisuus; runous "
+"jne.) kirjaryhmittymiä. Pääkategorioihin voidaan sisällyttää toisia "
+"kategorioita, esimerkiksi Taloustiede-pääkategoria voi sisältää erilliset "
+"Mikro- ja Makrotaloustieteiden kategoriat. Kävijät voivat hakea ja selailla "
+"sisältöä kategorioiden mukaan."
+
+msgid "manager.setup.series.description"
+msgstr ""
+"Voit luoda sarjoja helpottaaksesi julkaisuidesi järjestelyä. Sarja edustaa "
+"erityistä kirjojen joukkoa, jotka käsittelevät jonkun, yleensä yhden tai "
+"useamman tiedekunnan jäsenen, ehdottamaa ja valvomaa teemaa tai aiheita. "
+"Kävijät voivat hakea ja selailla sisältöä sarjojen mukaan."
+
+msgid "manager.setup.reviewForms"
+msgstr "Arviointilomakkeet"
+
+msgid "manager.setup.roleType"
+msgstr "Roolityyppi"
+
+msgid "manager.setup.authorRoles"
+msgstr "Kirjoittajaroolit"
+
+msgid "manager.setup.managerialRoles"
+msgstr "Hallinnon roolit"
+
+msgid "manager.setup.availableRoles"
+msgstr "Käytettävissä olevat roolit"
+
+msgid "manager.setup.currentRoles"
+msgstr "Nykyiset roolit"
+
+msgid "manager.setup.internalReviewRoles"
+msgstr "Sisäisen arvioinnin roolit"
+
+msgid "manager.setup.masthead"
+msgstr "Tunnuslaatikko"
+
+msgid "manager.setup.editorialTeam"
+msgstr "Toimituskunta"
+
+msgid "manager.setup.editorialTeam.description"
+msgstr ""
+"Lista toimittajista, toimitusjohtajista ja muista julkaisijaan liittyvistä "
+"henkilöistä."
+
+msgid "manager.setup.files"
+msgstr "Tiedostot"
+
+msgid "manager.setup.productionTemplates"
+msgstr "Tuotannon mallipohjat"
+
+msgid "manager.files.note"
+msgstr ""
+"Huom! Tiedostoselain (Files Browser) on erikoisominaisuus, jonka avulla "
+"julkaisijaan liittyviä tiedostoja ja hakemistoja voidaan katsoa ja käsitellä "
+"suoraan."
+
+msgid "manager.setup.copyrightNotice.sample"
+msgstr ""
+"Ehdotetut Creative Commons-tekijänoikeushuomautukset
\n"
+"Ehdotettu käytäntö julkaisijoille, jotka tarjoavat avoimen saatavuuden ("
+"Open Access)
\n"
+"Tämän julkaisijan kirjoittajat hyväksyvät seuraavat ehdot:\n"
+"\n"
+"\t- Kirjoittajat säilyttävät tekijänoikeuden ja myöntävät julkaisulle "
+"oikeuden julkaista työn ensimmäisenä. Samanaikaisesti työ lisensoidaan Creative Commons Attribution License -lisenssillä, joka sallii muiden "
+"jakaa työtä vain, jos työn alkuperäinen tekijä sekä sen ensijulkaisu tämän "
+"julkaisijan kirjassa mainitaan.
\n"
+"\t- Kirjoittajat voivat tehdä erillisiä, muita sopimuksia työn tässä "
+"julkaisussa julkaistun version levittämisestä ilman yksityisoikeutta (esim. "
+"lähettää sen julkaisuarkistoon tai julkaista sen muualla) vain, jos työn "
+"ensijulkaisu tämän julkaisijan kirjassa mainitaan.
\n"
+"\t- Kirjoittajilla on lupa lähettää työnsä verkkoon (esim. "
+"julkaisuarkistoihin tai omille verkkosivuilleen) sekä ennen käsikirjoituksen "
+"lähetysprosessia että sen aikana. Kirjoittajia myös kannustetaan toimimaan "
+"näin, koska se voi johtaa hyödyllisiin kanssakäymisiin sekä siihen, että "
+"julkaistuun työhön viitataan jo aikaisessa vaiheessa ja enemmän. (Lisää avoimen saatavuuden vaikutuksesta).
\n"
+"
\n"
+"\n"
+"Ehdotettu käytäntö julkaisijoille, jotka tarjoavat viiveellisen avoimen "
+"saatavuuden (Delayed Open Access)
\n"
+"Tämän julkaisijan kirjoittajat hyväksyvät seuraavat ehdot:\n"
+"\n"
+"\t- Kirjoittajat säilyttävät tekijänoikeuden ja myöntävät julkaisijalle "
+"oikeuden julkaista työn ensimmäisenä. [MÄÄRITÄ AJANJAKSO] julkaisemisen "
+"jälkeen työ samanaikaisesti lisensoidaan Creative Commons Attribution "
+"License-lisenssillä, joka sallii muiden jakaa työtä vain, jos työn "
+"alkuperäinen tekijä sekä sen ensijulkaisu tämän julkaisijan kirjassa "
+"mainitaan.
\n"
+"\t- Kirjoittajat voivat tehdä erillisiä, muita sopimuksia työn tässä "
+"julkaisussa julkaistun versio levittämisestä ilman yksityisoikeutta (esim. "
+"lähettää sen julkaisuarkistoon tai julkaista sen muualla) vain, jos työn "
+"ensijulkaisu tämän julkaisijan kirjassa mainitaan.
\n"
+"\t- Kirjoittajilla on lupa lähettää työnsä verkkoon (esim. "
+"julkaisuarkistoihin tai omille verkkosivuilleen) sekä ennen käsikirjoituksen "
+"lähetysprosessia että sen aikana. Kirjoittajia myös kannustetaan toimimaan "
+"näin, koska se voi johtaa hyödyllisiin kanssakäymisiin sekä siihen, että "
+"julkaistuun työhön viitataan jo aikaisemmassa vaiheessa ja enemmän. (Lisää "
+"avoimen saatavuuden "
+"vaikutuksesta).
\n"
+"
"
+
+msgid "manager.setup.basicEditorialStepsDescription"
+msgstr ""
+"Vaiheet: Käsikirjoitusjono > Käsikirjoituksen arviointi > "
+"Käsikirjoituksen toimittaminen > Sisällysluettelo.
\n"
+"Valitse malli näiden toimitusprosessin kohtien käsittelyä varten. "
+"(Valitaksesi hallinnoivan toimittajan ja sarjan toimittajat mene Toimittajat-"
+"kohtaan Julkaisijan hallinnointi -sivulla.)"
+
+msgid "manager.setup.referenceLinkingDescription"
+msgstr ""
+"Kun lukijoiden halutaan löytävän verkkoversiot töistä, joihin kirjoittaja "
+"viittaa, seuraavat vaihtoehdot ovat käytettävissä.
\n"
+"\n"
+"\n"
+"\t- Lisää lukutyökalu
Julkaisijan sivuston hallinnoija "
+"voi lisätä “Etsi lähdeviitteitä” julkaistujen kohteiden lukutyökaluihin, "
+"mahdollistaen sen, että lukijat voivat liittää lähdeviitteen nimekkeen ja "
+"hakea viitattua työtä etukäteen valituista tieteellisistä tietokannoista."
+"p>
\n"
+"\t- Upota linkit lähdeviitteisiin
Taittaja voi lisätä "
+"linkin verkosta löytyviin lähdeviitteisiin seuraamalla seuraavia ohjeita "
+"(joita voidaan muokata).
\n"
+"
"
+
+msgid "manager.publication.library"
+msgstr "Julkaisijan kirjasto"
+
+msgid "manager.setup.resetPermissions"
+msgstr "Palauta kirjojen käyttöoikeudet"
+
+msgid "manager.setup.resetPermissions.confirm"
+msgstr ""
+"Haluatko varmasti palauttaa oletusarvoisiksi käyttöoikeustiedot, jotka on jo "
+"liitetty kirjoihin?"
+
+msgid "manager.setup.resetPermissions.description"
+msgstr ""
+"Tekijänoikeusilmauksen ja -suojan tiedot liitetään pysyvästi julkaistuun "
+"sisältöön. Tämä varmistaa sen, että kyseiset tiedot eivät muutu, vaikka "
+"julkaisija muuttaisi toimintaperiaatteitaan uusia käsikirjoituksia koskien. "
+"Palauttaaksesi tallennetut käyttöoikeustiedot, jotka on jo liitetty "
+"julkaistuun sisältöön, käytä alla olevaa painiketta."
+
+msgid "manager.setup.resetPermissions.success"
+msgstr "Teosten lupatiedot tyhjennettiin onnistuneesti."
+
+msgid "grid.genres.title.short"
+msgstr "Osat"
+
+msgid "grid.genres.title"
+msgstr "Kirjan osat"
+
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr ""
+"Lähetä kopio ensisijaiselle yhteyshenkilölle, joka on mainittu julkaisijan "
+"asetuksissa."
+
+msgid "grid.series.pathAlphaNumeric"
+msgstr "Sarjan polku saa sisältää vain kirjaimia ja numeroita."
+
+msgid "grid.series.pathExists"
+msgstr "Sarjan polku on jo olemassa. Anna yksilöllinen polku."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr "Valitse sarja"
+
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr "Valitse sarja, jonka haluat linkittää tähän valikon kohtaan."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr "Valitse kategoria"
+
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr "Valitse kategoria, jonka haluat linkittää tähän valikon kohtaan."
+
+msgid "grid.series.urlWillBe"
+msgstr "Sarjan URL-osoitteeksi tulee: {$sampleUrl}"
+
+msgid "stats.contextStats"
+msgstr "Julkaisijan tilastot"
+
+msgid "stats.context.tooltip.text"
+msgstr "Julkaisijan sivuston etusivun ja luettelosivun kävijöiden määrä."
+
+msgid "stats.context.tooltip.label"
+msgstr "Tietoa julkaisijan tilastoista"
+
+msgid "stats.context.downloadReport.description"
+msgstr ""
+"Lataa CSV/Excel-taulukko tämän julkaisijan käyttötilastoista, jotka "
+"vastaavat seuraavia valintoja."
+
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr "Julkaisijan sivuston etusivun ja luettelosivun katselukertojen määrä."
+
+msgid "stats.context.downloadReport.downloadContext"
+msgstr "Lataa julkaisija"
+
+msgid "stats.publications.downloadReport.description"
+msgstr ""
+"Lataa CSV/Excel-taulukko, jossa on käyttötilastoja seuraaviin valintoihin "
+"sopivista teoksista."
+
+msgid "stats.publications.downloadReport.downloadSubmissions"
+msgstr "Lataa teokset"
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr ""
+"Kunkin teoksen abstraktien katselukertojen ja tiedostojen latausten määrä."
+
+msgid "stats.publicationStats"
+msgstr "Kirjatilastot"
+
+msgid "stats.publications.details"
+msgstr "Kirjan tiedot"
+
+msgid "stats.publications.none"
+msgstr "Annetuilla hakumääreillä ei löytynyt kirjoja."
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr "Tiivistelmien katselukerrat ajankohdan mukaan"
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr "Kokotekstien latausmäärät ajankohdan mukaan"
+
+msgid "stats.publications.countOfTotal"
+msgstr "{$count}/{$total} kirjasta"
+
+msgid "stats.publications.abstracts"
+msgstr "Luettelomerkinnät"
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr "Yhtään kohdetta ei ole valittu."
+
+msgid "plugins.importexport.common.error.validation"
+msgstr "Valittuja kohteita ei voitu muuntaa."
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr "Virheellinen XML:"
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr "Vie käsikirjoituksia"
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr ""
+"Lähetä sähköpostilla tieto uusista käsikirjoituksista julkaisijan "
+"pääasialliselle yhteyshenkilölle."
+
+msgid ""
+"manager.setup.notifications.copySubmissionAckPrimaryContact.disabled."
+"description"
+msgstr ""
+"Julkaisijalle ei ole annettu pääasiallista yhteyshenkilöä. Voit antaa "
+"pääasiallisen yhteyshenkilön tiedot sivuston asetuksissa"
+"a>."
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr "Annettuja kohteita ei löytynyt."
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr "Annettua käyttäjää, \"{$userName}\", ei löydy."
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr "Julkaisumuotoja ei voitu lukea"
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr "Lukuja ei voitu lukea"
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr "Julkaisijan nimi"
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr "URL-osoite julkaisijan kotisivulle"
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr "Julkaisijan ensisijaisen yhteyshenkilön nimi"
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr "Julkaisijan allekirjoitus automaattisia sähköpostiviestejä varten"
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr "Julkaisijan ensisijaisen yhteyshenkilön sähköpostiosoite"
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr "Maksutyypin nimi"
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr "Maksun summa"
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr "Maksusumman valuutta, esimerkiksi EUR"
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr "Verkkosivuston nimi, jos hallinnoidaan useampaa kuin yhtä julkaisijaa"
+
+msgid "mailable.validateEmailContext.name"
+msgstr "Vahvista sähköpostiosoite (julkaisijan sivustolle rekisteröityminen)"
+
+msgid "mailable.validateEmailContext.description"
+msgstr ""
+"Tämä sähköposti lähetetään automaattisesti uudelle käyttäjälle, kun hän "
+"rekisteröityy julkaisijan sivustolle, kun asetukset edellyttävät "
+"sähköpostiosoitteen vahvistamista."
+
+msgid "doi.displayName"
+msgstr "DOI"
+
+msgid "doi.manager.displayName"
+msgstr "DOI-tunnukset"
+
+msgid "doi.description"
+msgstr ""
+"Tämä lisäosa mahdollistaa DOI-tunnisteiden (Digital Object Identifier) "
+"määrittämisen OMP-järjestelmässä oleville kirjoille, luvuille ja "
+"julkaisumuodoille."
+
+msgid "doi.readerDisplayName"
+msgstr "DOI:"
+
+msgid "doi.manager.settings.description"
+msgstr ""
+"Määritä DOI-lisäosa, jotta voit hallinnoida ja käyttää DOI-tunnisteita:"
+
+msgid "doi.manager.settings.explainDois"
+msgstr "Valitse objektit, joille DOI-tunnisteet määritetään:"
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr "Kirjat"
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr "Luvut"
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr "Julkaisumuodot"
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr "Tiedostot"
+
+msgid "doi.manager.settings.doiPrefix"
+msgstr "DOI-prefiksi"
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr "DOI-prefiksi on pakollinen, ja sen on oltava muodossa 10.xxxx."
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr ""
+"Käytä alla annettua rakennetta luodaksesi DOI-suffikseja. Käytä %p "
+"julkaisijan alkukirjaimille, %m kirjan tunnisteelle, %c luvun tunnisteelle, "
+"%f julkaisumuodon tunnisteelle, %s tiedoston tunnisteelle ja %x "
+"\"mukautetulle tunnisteelle\". "
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr ""
+"Esimerkiksi julkaisija%ppub%r voisi luoda DOI-tunnisteen 10.1234/"
+"julkaisijaTHYpub100"
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr "kirjoille"
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr "luvuille"
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr "julkaisumuodoille"
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr "tiedostoille"
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr "Anna DOI-suffiksin rakenne kirjoille."
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr "Anna DOI-suffiksin rakenne luvuille."
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr "Anna DOI-suffiksin rakenne julkaisumuodoille."
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr "Anna DOI-suffiksin rakenne tiedostoille."
+
+msgid "doi.manager.settings.doiReassign"
+msgstr "Määritä DOI-tunnisteet uudelleen"
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr ""
+"Jos muutat DOI-määritystäsi, se ei vaikuta aiemmin määritettyihin DOI-"
+"tunnisteisiin. Kun DOI-määritys on tallennettu, poista kaikki olemassa "
+"olevat DOI-tunnisteet tämän painikkeen avulla, jotta uudet asetukset alkavat "
+"päteä myös olemassa oleviin objekteihin."
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr "Haluatko varmasti poistaa kaikki olemassa olevat DOI-tunnisteet?"
+
+msgid "doi.editor.doi"
+msgstr "DOI"
+
+msgid "doi.editor.doi.description"
+msgstr "DOI-tunnuksen alun pitää olla {$prefix}."
+
+msgid "doi.editor.doi.assignDoi"
+msgstr "Osoita"
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr "kirja"
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr "luku"
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr "julkaisumuoto"
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr "tiedosto"
+
+msgid "doi.editor.customSuffixMissing"
+msgstr "DOI-tunnistetta ei voida määrittää, koska mukautettu suffiksi puuttuu."
+
+msgid "doi.editor.missingParts"
+msgstr ""
+"Et voi luoda DOI-tunnusta, koska jokin tunnuksen loppuosan vaatimista "
+"muuttujista puuttuu."
+
+msgid "doi.editor.patternNotResolved"
+msgstr ""
+"DOI-tunnistetta ei voida määrittää, koska se sisältää resolvoitumattoman "
+"rakenteen."
+
+msgid "doi.editor.canBeAssigned"
+msgstr ""
+"Näet nyt DOI-tunnisteen esikatselussa. Rastita valintaruutu ja tallenna "
+"muoto määrittääksesi DOI:n."
+
+msgid "doi.editor.assigned"
+msgstr "DOI-tunniste on määritetty objektille {$pubObjectType}."
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr ""
+"Annettu DOI-suffiksi on jo toisen julkaistun kohteen käytössä. Anna "
+"jokaiselle kohteelle uniikki DOI-suffiksi."
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr "Poista DOI-tunniste"
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr "Haluatko varmasti poistaa olemassa olevan DOI-tunnisteen?"
+
+msgid "doi.editor.assignDoi"
+msgstr "Määritä DOI-tunniste {$pubId} tälle objektille {$pubObjectType}"
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr "DOI-tunnistetta ei voida määrittää, koska mukautettu suffiksi puuttuu."
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr ""
+"DOI-tunnistetta {$pubId} ei voida määrittää, koska se sisältää "
+"resolvoitumattoman rakenteen."
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr "DOI-tunniste {$pubId} on määritetty."
+
+msgid "doi.editor.missingPrefix"
+msgstr "DOI-tunnuksen alun pitää olla {$doiPrefix}."
+
+msgid "doi.editor.preview.publication"
+msgstr "Tämän julkaistavan version DOI tulee olemaan {$doi}."
+
+msgid "doi.editor.preview.publication.none"
+msgstr "Tälle julkaistulle versiolle ei ole annettu DOI-tunnusta."
+
+msgid "doi.editor.preview.chapters"
+msgstr "Luku: {$title}"
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr "Julkaisumuoto: {$title}"
+
+msgid "doi.editor.preview.files"
+msgstr "Tiedosto: {$title}"
+
+msgid "doi.editor.preview.objects"
+msgstr "Kohde"
+
+msgid "doi.manager.submissionDois"
+msgstr "Teosten DOI-tunnukset"
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr ""
+"Tässä sähköpostiviestissä ilmoitetaan kirjoittajalle, että hänen "
+"käsikirjoituksensa lähetetään sisäiseen arviointiin."
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr ""
+"Tässä sähköpostiviestissä ilmoitetaan kirjoittajalle, että hänen "
+"käsikirjoituksensa hylätään ennen arviointivaihetta, koska se ei täytä "
+"julkaisijan vaatimuksia."
+
+msgid "manager.institutions.noContext"
+msgstr "Tämän instituution julkaisijaa ei löytynyt."
+
+msgid "manager.manageEmails.description"
+msgstr "Muokkaa tämän julkaisijan sähköpostiviestejä."
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr "Lähetetty sisäiseen arviointiin"
+
+msgid "mailable.indexRequest.name"
+msgstr "Indeksointia pyydetään"
+
+msgid "mailable.indexComplete.name"
+msgstr "Indeksointi valmis"
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr "Uusi versio luotu"
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr ""
+"Tämä sähköpostiviesti ilmoittaa osoitetuille toimittajille automaattisesti, "
+"kun käsikirjoituksen uusi julkaistava versio luodaan."
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+"Tämä sähköposti lähetetään julkaisijan sivuston hallinnoijille, kun uusi "
+"käsikirjoitus on lähetetty eikä toimittajia ole osoitettu."
+
+#~ msgid "manager.settings.publisherInformation"
+#~ msgstr ""
+#~ "Nämä kentät vaaditaan kelvollisten ONIX-metatietojen luomiseen. Täytä kaikki "
+#~ "kentät, jos haluat julkaista ONIX-metatietoja."
+
+#~ msgid "manager.settings.publisherCodeType.tip"
+#~ msgstr ""
+#~ "Jos sinulla on julkaisijan nimikoodi, täytä se alla. Se sisällytetään "
+#~ "luotuihin metatietoihin. Kenttä on pakollinen, jos luot ONIX-metatietoja "
+#~ "julkaisuillesi."
+
+#~ msgid "manager.users"
+#~ msgstr "Käyttäjien hallinnointi"
+
+#~ msgid "manager.setup.announcementsIntroductionDescription"
+#~ msgstr ""
+#~ "Syötä mitä tahansa lisätietoja, joiden halutaan näkyvän Ilmoitukset-sivun "
+#~ "lukijoille."
+
+#~ msgid "manager.setup.doiPrefix"
+#~ msgstr "DOI-prefiksi"
+
+#~ msgid "manager.setup.doiPrefixDescription"
+#~ msgstr ""
+#~ "DOI (Digital Object Identifier) -prefiksi on CrossRef:in myöntämä ja se on "
+#~ "muodossa 10.xxxx (esim. 10.1234)."
+
+#~ msgid "manager.setup.emailBounceAddressDescription"
+#~ msgstr ""
+#~ "Tähän osoitteeseen lähetetään virheilmoitus aina, kun sähköpostia ei "
+#~ "voida toimittaa perille."
+
+#~ msgid "manager.setup.emailBounceAddressDisabled"
+#~ msgstr ""
+#~ "Huom! Aktivoidakseen tämän valinnan sivuston ylläpitäjän "
+#~ "täytyy ottaa käyttöön allow_envelope_sender -valinta OMP:n "
+#~ "määritystiedostossa. Palvelimen lisämäärityksiä saatetaan edellyttää "
+#~ "tämän toiminnon tukemiseksi (joka ei välttämättä ole mahdollista kaikilla "
+#~ "palvelimilla), kuten OMP:n käyttöohjeissa mainitaan."
+
+#~ msgid "manager.setup.emailSignatureDescription"
+#~ msgstr ""
+#~ "Valmiisiin sähköposteihin, jotka järjestelmä lähettää painon puolesta, "
+#~ "lisätään seuraava allekirjoitus."
+
+#~ msgid "manager.setup.enableAnnouncements"
+#~ msgstr "Ota ilmoitukset käyttöön."
+
+#~ msgid "manager.setup.enableAnnouncementsHomepage1"
+#~ msgstr "Näytä"
+
+#~ msgid "manager.setup.enableAnnouncementsHomepage2"
+#~ msgstr "viimeisintä ilmoitusta painon etusivulla."
+
+#~ msgid "manager.setup.form.pressNameRequired"
+#~ msgstr "Painon nimi vaaditaan."
+
+#~ msgid "manager.setup.form.pressInitialsRequired"
+#~ msgstr "Painon alkukirjaimet tarvitaan."
+
+#~ msgid "manager.setup.listsDescription"
+#~ msgstr ""
+#~ "Rajoita listan sivuilla näytettävien kohteiden (esim. käsikirjoitukset, "
+#~ "käyttäjät tai toimitustoimeksiannot) määrää. Rajoita myös listan "
+#~ "seuraaville sivuille johtavien linkkien näytettävää määrää."
+
+#~ msgid "manager.setup.pressInitials"
+#~ msgstr "Painon alkukirjaimet"
+
+#~ msgid "manager.setup.contextName"
+#~ msgstr "Painon nimi"
+
+#~ msgid "manager.setup.internalReviewGuidelinesDescription"
+#~ msgstr ""
+#~ "Aivan kuten ulkopuolista arviointia koskevat ohjeet, nämäkin ohjeet "
+#~ "tarjoavat arvioijille tietoa käsikirjoituksen arviointiin liittyen. Nämä "
+#~ "ohjeet koskevat painoja, jotka yleisesti käyttävät arviointiprosessissa "
+#~ "painon sisäisiä arvioijia."
+
+#~ msgid "manager.setup.searchEngineIndexingDescription"
+#~ msgstr ""
+#~ "Anna painosta lyhyt kuvaus, jonka hakukoneet voivat näyttää listatessaan "
+#~ "painon hakutuloksissa."
+
+#~ msgid "manager.setup.siteAccess"
+#~ msgstr "Sivuston ja sisällön saatavuuden lisärajoitukset"
+
+#~ msgid "manager.setup.coverThumbnails"
+#~ msgstr "Kannen pikkukuvat"
+
+#~ msgid "manager.setup.coverThumbnailsDescription"
+#~ msgstr ""
+#~ "Määritä kannen pikkukuvien maksimileveys ja -korkeus. Mikäli pikkukuvien "
+#~ "koko on näitä asetuksia suurempi, kokoa pienennetään, mutta kuvien "
+#~ "ollessa asetuksia pienempiä, niitä ei laajenneta. Kuvia ei koskaan "
+#~ "venytetä näihin mittoihin."
+
+#~ msgid "manager.setup.coverThumbnailsMaxHeightRequired"
+#~ msgstr "Kannen pikkukuvien maksimikorkeus vaaditaan."
+
+#~ msgid "manager.setup.coverThumbnailsMaxWidthRequired"
+#~ msgstr "Kannen pikkukuvien maksimileveys vaaditaan."
+
+#~ msgid "manager.setup.coverThumbnailsResize"
+#~ msgstr "Muuta kaikkien olemassa olevien kannen pikkukuvien kokoa."
+
+#~ msgid "manager.setup.cataloguingMetadata"
+#~ msgstr "Metatietojen luettelointi"
+
+#~ msgid "manager.setup.authorCopyrightNotice.sample"
+#~ msgstr ""
+#~ "Ehdotetut Creative Commons -tekijänoikeushuomautukset
\n"
+#~ "Ehdotettu käytäntö painoille, jotka tarjoavat avoimen saatavuuden "
+#~ "(Open Access)
\n"
+#~ "Tässä painossa julkaisevat kirjoittajat hyväksyvät seuraavat ehdot:\n"
+#~ "\n"
+#~ "\t- Kirjoittajat säilyttävät tekijänoikeuden ja myöntävät painolle "
+#~ "oikeuden julkaista työn ensimmäisenä. Samanaikaisesti työ lisensoidaan Creative Commons Attribution License -lisenssillä, joka sallii "
+#~ "muiden jakaa työtä vain, jos työn alkuperäinen tekijä sekä sen "
+#~ "ensijulkaisu tässä painossa mainitaan.
\n"
+#~ "\t- Kirjoittajat voivat tehdä erillisiä, muita sopimuksellisia sarjoja "
+#~ "työn tässä painossa julkaistun version levittämiseksi ilman "
+#~ "yksityisoikeutta (esim. lähettää sen julkaisuarkistoon tai julkaista sen "
+#~ "kirjassa) vain, jos työn ensijulkaisu tässä painossa mainitaan.
\n"
+#~ "\t- Kirjoittajilla on lupa lähettää työnsä verkkoon (esim. "
+#~ "julkaisuarkistoihin tai omille verkkosivuilleen) sekä ennen "
+#~ "käsikirjoituksen lähetysprosessia että sen aikana. Kirjoittajia myös "
+#~ "kannustetaan toimimaan näin, koska se voi johtaa hyödyllisiin "
+#~ "kanssakäymisiin sekä siihen, että julkaistuun työhön viitataan jo "
+#~ "aikaisessa vaiheessa ja enemmän. (Lisää avoimen saatavuuden "
+#~ "vaikutuksesta).
\n"
+#~ "
\n"
+#~ "\n"
+#~ "Ehdotettu käytäntö painoille, jotka tarjoavat viiveellisen avoimen "
+#~ "saatavuuden (Delayed Open Access)
\n"
+#~ "Tässä painossa julkaisevat kirjoittajat hyväksyvät seuraavat ehdot:\n"
+#~ "\n"
+#~ "\t- Kirjoittajat säilyttävät tekijänoikeuden ja myöntävät painolle "
+#~ "oikeuden julkaista työn ensimmäisenä. [MÄÄRITÄ AJANJAKSO] julkaisemisen "
+#~ "jälkeen työ samanaikaisesti lisensoidaan Creative Commons "
+#~ "Attribution License -lisenssillä, joka sallii muiden jakaa työtä "
+#~ "vain, jos työn alkuperäinen tekijä sekä sen ensijulkaisu tässä painossa "
+#~ "mainitaan.
\n"
+#~ "\t - Kirjoittajat voivat tehdä erillisiä, muita sopimuksellisia sarjoja "
+#~ "työn tässä painossa julkaistun version levittämiseksi ilman "
+#~ "yksityisoikeutta (esim. lähettää sen julkaisuarkistoon tai julkaista sen "
+#~ "kirjassa) vain, jos työn ensijulkaisu tässä painossa mainitaan.
\n"
+#~ "\t - Kirjoittajilla on lupa lähettää työnsä verkkoon (esim. "
+#~ "julkaisuarkistoihin tai omille verkkosivuilleen) sekä ennen "
+#~ "käsikirjoituksen lähetysprosessia että sen aikana. Kirjoittajia myös "
+#~ "kannustetaan toimimaan näin, koska se voi johtaa hyödyllisiin "
+#~ "kanssakäymisiin sekä siihen, että julkaistuun työhön viitataan jo "
+#~ "aikaisemmassa vaiheessa ja enemmän. (Lisää avoimen saatavuuden "
+#~ "vaikutuksesta).
\n"
+#~ "
"
+
+#~ msgid "grid.category.add"
+#~ msgstr "Lisää kategoria"
+
+#~ msgid "grid.category.edit"
+#~ msgstr "Muokkaa kategoriaa"
+
+#~ msgid "grid.category.name"
+#~ msgstr "Nimi"
+
+#~ msgid "grid.category.path"
+#~ msgstr "Polku"
+
+#~ msgid "grid.category.urlWillBe"
+#~ msgstr "Kategorian URL-osoitteeksi tulee: {$sampleUrl}"
+
+#~ msgid "grid.category.pathAlphaNumeric"
+#~ msgstr "Kategorian polku saa sisältää vain kirjaimia ja numeroita."
+
+#~ msgid "grid.category.pathExists"
+#~ msgstr "Kategorian polku on jo olemassa. Anna yksilöllinen polku."
+
+#~ msgid "grid.category.description"
+#~ msgstr "Kuvaus"
+
+#~ msgid "grid.category.parentCategory"
+#~ msgstr "Pääkategoria"
+
+#~ msgid "grid.category.removeText"
+#~ msgstr "Haluatko varmasti poistaa tämän kategorian?"
+
+#~ msgid "grid.category.nameRequired"
+#~ msgstr "Anna kategorian nimi."
+
+#~ msgid "grid.category.categoryDetails"
+#~ msgstr "Kategorian tiedot"
+
+msgid "manager.sections.alertDelete"
+msgstr ""
+"Ennen kuin tämä sarja voidaan poistaa, sinun on siirrettävä tähän sarjaan "
+"liittyvät käsikirjoitukset muihin sarjoihin."
+
+msgid "mailable.layoutComplete.name"
+msgstr "Julkaistavat tiedostot valmiina"
+
+msgid "plugins.importexport.common.error.salesRightRequiresTerritory"
+msgstr ""
+"Tieto myyntioikeuksista on ohitettu, koska sille ei ole määritetty maata tai "
+"aluetta."
+
+msgid "emailTemplate.variable.context.mailingAddress"
+msgstr "Julkaisijan postiosoite"
+
+msgid "emailTemplate.variable.statisticsReportNotify.publicationStatsLink"
+msgstr "Linkki teoksen tilastosivulle"
+
+msgid "mailable.statisticsReportNotify.description"
+msgstr ""
+"Tämä sähköposti lähetetään automaattisesti kuukausittain toimittajille ja "
+"julkaisijan sivuvoston hallinnoijille, jotta he saavat yleiskatsauksen "
+"sivustonsa tilasta."
+
+msgid "emailTemplate.variable.context.contextAcronym"
+msgstr "Julkaisijan alkukirjaimet"
diff --git a/locale/fi/submission.po b/locale/fi/submission.po
new file mode 100644
index 00000000000..31d88d54e43
--- /dev/null
+++ b/locale/fi/submission.po
@@ -0,0 +1,621 @@
+# Antti-Jussi Nygård , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
+"PO-Revision-Date: 2023-05-23 20:49+0000\n"
+"Last-Translator: Antti-Jussi Nygård \n"
+"Language-Team: Finnish \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.13.1\n"
+
+msgid "submission.upload.selectComponent"
+msgstr "Valitse osa"
+
+msgid "submission.title"
+msgstr "Kirjan nimeke"
+
+msgid "submission.select"
+msgstr "Valitse käsikirjoitus"
+
+msgid "submission.synopsis"
+msgstr "Tiivistelmä"
+
+msgid "submission.workflowType"
+msgstr "Käsikirjoitustyyppi"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"Erillisteos on yhden tai useamman kirjoittajan kokonaan kirjoittama teos. "
+"Toimitetussa teoksessa jokaisella luvulla on eri kirjoittaja (lukujen tiedot "
+"syötetään myöhemmin.)"
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr "Toimitettu teos"
+
+msgid "submission.workflowType.editedVolume"
+msgstr "Toimitettu teos: Jokaisella luvulla on eri kirjoittaja."
+
+msgid "submission.workflowType.authoredWork"
+msgstr ""
+"Erillisteos: Yhden tai useamman kirjoittajan kokonaan kirjoittama teos."
+
+msgid "submission.workflowType.change"
+msgstr "Vaihda"
+
+msgid "submission.editorName"
+msgstr "{$editorName} (toim.)"
+
+msgid "submission.monograph"
+msgstr "Kirja"
+
+msgid "submission.published"
+msgstr "Valmis tuotantoon"
+
+msgid "submission.fairCopy"
+msgstr "Puhtaaksi kirjoitettu käsikirjoitus"
+
+msgid "submission.authorListSeparator"
+msgstr "; "
+
+msgid "submission.artwork.permissions"
+msgstr "Luvat"
+
+msgid "submission.chapter"
+msgstr "Luku"
+
+msgid "submission.chapters"
+msgstr "Luvut"
+
+msgid "submission.chapter.addChapter"
+msgstr "Lisää luku"
+
+msgid "submission.chapter.editChapter"
+msgstr "Muokkaa lukua"
+
+msgid "submission.chapter.pages"
+msgstr "Sivut"
+
+msgid "submission.copyedit"
+msgstr "Tekninen toimittaminen"
+
+msgid "submission.publicationFormats"
+msgstr "Julkaisumuodot"
+
+msgid "submission.proofs"
+msgstr "Korjausvedokset"
+
+msgid "submission.download"
+msgstr "Lataa"
+
+msgid "submission.sharing"
+msgstr "Jaa tämä"
+
+msgid "manuscript.submission"
+msgstr "Käsikirjoituksen lähetys"
+
+msgid "submission.round"
+msgstr "Kierros {$round}"
+
+msgid "submissions.queuedReview"
+msgstr "Arvioitavana"
+
+msgid "manuscript.submissions"
+msgstr "Vastaanotetut käsikirjoitukset"
+
+msgid "submission.metadata"
+msgstr "Metatiedot"
+
+msgid "submission.supportingAgencies"
+msgstr "Kannattajajärjestöt"
+
+msgid "grid.action.addChapter"
+msgstr "Luo uusi luku"
+
+msgid "grid.action.editChapter"
+msgstr "Muokkaa tätä lukua"
+
+msgid "grid.action.deleteChapter"
+msgstr "Poista tämä luku"
+
+msgid "submission.submit"
+msgstr "Uuden kirjan lähetys"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Aloita käsikirjoituksen lähetys julkaisijalle"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr "Uusi käsikirjoitus"
+
+msgid "submission.submit.upload"
+msgstr "Lataa käsikirjoitus"
+
+msgid "author.volumeEditor"
+msgstr "Niteen toimittaja"
+
+msgid "author.isVolumeEditor"
+msgstr "Merkitse tämä tekijä teoksen toimittajaksi."
+
+msgid "submission.submit.seriesPosition"
+msgstr "Sijoitus sarjassa"
+
+msgid "submission.submit.seriesPosition.description"
+msgstr "Esimerkiksi: Kirja 2, Nide 2"
+
+msgid "submission.submit.privacyStatement"
+msgstr "Tietosuojaseloste"
+
+msgid "submission.submit.contributorRole"
+msgstr "Tekijän rooli"
+
+msgid "submission.submit.submissionFile"
+msgstr "Käsikirjoitustiedosto"
+
+msgid "submission.submit.prepare"
+msgstr "Valmistelu"
+
+msgid "submission.submit.catalog"
+msgstr "Luettelo"
+
+msgid "submission.submit.metadata"
+msgstr "Metatiedot"
+
+msgid "submission.submit.finishingUp"
+msgstr "Viimeistely"
+
+msgid "submission.submit.confirmation"
+msgstr "Vahvistus"
+
+msgid "submission.submit.nextSteps"
+msgstr "Seuraavat vaiheet"
+
+msgid "submission.submit.coverNote"
+msgstr "Saate toimittajalle"
+
+msgid "submission.submit.generalInformation"
+msgstr "Yleisiä tietoja"
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"Julkaisijalle on ilmoitettu käsikirjoituksestasi ja sinulle on lähetetty "
+"sähköpostitse vahvistus säilytettäväksi. Toimittajan arvioitua "
+"käsikirjoituksen sinuun otetaan yhteyttä."
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Lue ja kuittaa käsikirjoituksen tarkistuslistan kohdat. {$itemsRemaining} "
+"kohtaa on vielä kuittaamatta."
+
+msgid "submission.submit.placement"
+msgstr "Käsikirjoituksen sijoittaminen"
+
+msgid "submission.submit.userGroup"
+msgstr "Lähetä roolissani..."
+
+msgid "submission.submit.noContext"
+msgstr "Käsikirjoitusta vastaavaa julkaisijaa ei löytynyt."
+
+msgid "grid.chapters.title"
+msgstr "Luvut"
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Poista teknisen toimittajan lataus"
+
+msgid "submission.complete"
+msgstr "Hyväksytty"
+
+msgid "submission.incomplete"
+msgstr "Odottaa hyväksyntää"
+
+msgid "submission.editCatalogEntry"
+msgstr "Merkintä"
+
+msgid "submission.catalogEntry.new"
+msgstr "Lisää merkintä"
+
+msgid "submission.catalogEntry.add"
+msgstr "Lisää valitut luetteloon"
+
+msgid "submission.catalogEntry.select"
+msgstr "Valitse kirjat, jotka lisätään luetteloon"
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr "Valitse vähintään yksi kirja, joka lisätään luetteloon."
+
+msgid "submission.catalogEntry.confirm"
+msgstr "Lisää tämä kirja julkiseen luetteloon"
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr "Vahvista, että käsikirjoitus on valmis luetteloon sijoitettavaksi."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr "Tämä kirja on valmis sisällytettäväksi julkiseen luetteloon."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr "Näytä käsikirjoitus"
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr "Julkaisupäivät"
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr "Kaikki luvut käyttävät teoksen julkaisupäivää."
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr "Jokaisella luvulla voi olla oma julkaisupäivä."
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Kirja"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Luettelo"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Julkaisumuoto"
+
+msgid "submission.event.metadataPublished"
+msgstr "Kirjan metatiedot on hyväksytty julkaistavaksi."
+
+msgid "submission.event.metadataUnpublished"
+msgstr "Kirjan metatiedot eivät ole enää julkaistuna."
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr "Julkaisumuoto ”{$publicationFormatName}” on nyt saatavissa."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr "Julkaisumuoto \"{$publicationFormatName}\" ei ole enää saatavissa."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+"Julkaisumuoto \"{$publicationFormatName}\" on hyväksytty julkaistavaksi."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr "Julkaisumuoto \"{$publicationFormatName}\" ei ole enää julkaistuna."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "Luettelon metatiedot päivitettiin."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr "Julkaisumuodon \"{$formatName}\" metatiedot päivitettiin."
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "Julkaisumuoto \"{$formatName}\" luotiin."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "Julkaisumuoto \"{$formatName}\" poistettiin."
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr "Lähetä ulkopuoliseen arviointiin"
+
+msgid "workflow.review.externalReview"
+msgstr "Ulkopuolinen arviointi"
+
+msgid "submission.upload.fileContents"
+msgstr "Käsikirjoituksen osa"
+
+msgid "submission.dependentFiles"
+msgstr "Riippuvat tiedostot"
+
+msgid "submission.metadataDescription"
+msgstr ""
+"Nämä määritykset perustuvat Dublin Core -metatietosanastostandardiin. Se on "
+"kansainvälinen standardi, jolla kuvataan julkaisijan julkaisemia sisältöjä."
+
+msgid "section.any"
+msgstr "Mikä tahansa sarja"
+
+msgid "submission.list.monographs"
+msgstr "Kirjat"
+
+msgid "submission.list.countMonographs"
+msgstr "{$count} kirjaa"
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr "{$count}/{$total} kirjasta"
+
+msgid "submission.list.orderFeatures"
+msgstr "Järjestä esittelyssä olevat"
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+"Vedä ja pudota tai napauta ylös- ja alas-painikkeita muuttaaksesi "
+"esittelyssä olevien kohteiden järjestystä etusivulla."
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+"Vedä ja pudota tai napauta ylös- ja alas-painikkeita muuttaaksesi kohteen "
+"{$title} ominaisuuksien järjestystä."
+
+msgid "submission.list.saveFeatureOrder"
+msgstr "Tallenna järjestys"
+
+msgid "submission.list.viewEntry"
+msgstr "Näytä merkintä"
+
+msgid "catalog.browseTitles"
+msgstr "{$numTitles} nimikettä"
+
+msgid "publication.catalogEntry"
+msgstr "Luettelomerkintä"
+
+msgid "publication.catalogEntry.success"
+msgstr "Luettelomerkinnän tiedot on päivitetty."
+
+msgid "publication.invalidSeries"
+msgstr "Sarjaa ei löytynyt."
+
+msgid "publication.inactiveSeries"
+msgstr "{$series} (Pois käytöstä)"
+
+msgid "publication.required.issue"
+msgstr "Julkaisu pitää lisätä numeroon ennen kuin sen von julkaista."
+
+msgid "publication.publishedIn"
+msgstr "Julkaistu {$issueName}."
+
+msgid "publication.publish.confirmation"
+msgstr ""
+"Kaikki julkaisuun liittyvät vaatimukset täyttyvät. Haluatko julkaista "
+"teoksen?"
+
+msgid "publication.scheduledIn"
+msgstr "Tullaan julkaisemaan {$issueName}."
+
+msgid "submission.publication"
+msgstr "Julkaistu versio"
+
+msgid "publication.status.published"
+msgstr "Julkaistu"
+
+msgid "submission.status.scheduled"
+msgstr "Ajoitettu"
+
+msgid "publication.status.unscheduled"
+msgstr "Ajoitus peruttu"
+
+msgid "submission.publications"
+msgstr "Julkaistut versiot"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr "Tekijänoikeusvuosi asetetaan automaattisesti julkaisun yhteydessä."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr "Tekijänoikeusvuosi asetetaan automaattisesti julkaisupäivän mukaan."
+
+msgid "publication.datePublished"
+msgstr "Julkaisupäivä"
+
+msgid "publication.editDisabled"
+msgstr "Tämä versio on julkaistu eikä sitä voi muokata."
+
+msgid "publication.event.published"
+msgstr "Käsikirjoitus julkaistiin."
+
+msgid "publication.event.scheduled"
+msgstr "Käsikirjoitus ajoitettiin julkaistavaksi."
+
+msgid "publication.event.unpublished"
+msgstr "Käsikirjoituksen julkaisu peruttiin."
+
+msgid "publication.event.versionPublished"
+msgstr "Uusi versio julkaistiin."
+
+msgid "publication.event.versionScheduled"
+msgstr "Uusi versio ajoitettiin julkaistavaksi."
+
+msgid "publication.event.versionUnpublished"
+msgstr "Versio poistettiin."
+
+msgid "publication.invalidSubmission"
+msgstr "Tälle julkaistulle versiolle ei löydy vastaavaa käsikirjoitusta."
+
+msgid "publication.publish"
+msgstr "Julkaise"
+
+msgid "publication.publish.requirements"
+msgstr "Seuraavat ehdot pitää täyttyä ennen julkaisua."
+
+msgid "publication.required.declined"
+msgstr "Hylättyä käsikirjoitusta ei voi julkaista."
+
+msgid "publication.required.reviewStage"
+msgstr ""
+"Käsikirjoituksen pitää olla teknisen toimituksessa tai tuotantovaiheessa, "
+"jotta sen voi julkaista."
+
+msgid "submission.license.description"
+msgstr ""
+"Lisenssiksi annetaan julkaisun yhteydessä {$licenseName}."
+
+msgid "submission.copyrightHolder.description"
+msgstr "Tekijänoikeus osoitetaan julkaisun yhteydessä {$copyright}."
+
+msgid "submission.copyrightOther.description"
+msgstr ""
+"Osoita julkaistujen käsikirjoitusten tekijänoikeus seuraavalle osapuolelle."
+
+msgid "publication.unpublish"
+msgstr "Peru julkaisu"
+
+msgid "publication.unpublish.confirm"
+msgstr "Oletko varma, että haluat peruuttaa julkaisun?"
+
+msgid "publication.unschedule.confirm"
+msgstr "Oletko varma, että et halua ajoittaa tätä julkaistavaksi?"
+
+msgid "publication.version.details"
+msgstr "Version {$version} tiedot"
+
+msgid "submission.queries.production"
+msgstr "Tuotantoon liittyvät keskustelut"
+
+msgid "publication.chapter.landingPage"
+msgstr "Luvun laskeutumissivu"
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+"Näytä tämä luku omalla sivullaan ja linkitä sivulle kirjan laskeutumissivun "
+"sisällysluettelosta."
+
+msgid "publication.publish.success"
+msgstr "Julkaisutila muutettu onnistuneesti."
+
+msgid "chapter.volume"
+msgstr "Vuosikerta"
+
+msgid "submission.withoutChapter"
+msgstr "{$name} — Ilman tätä lukua"
+
+msgid "submission.chapterCreated"
+msgstr " — Luku luotu"
+
+msgid "chapter.pages"
+msgstr "Sivut"
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr "Lähetä sisäiseen arviointiin"
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr "Tämä käsikirjoitus on valmis lähetettäväksi sisäiseen arviointiin."
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr "{$editorName} lähetti tämän käsikirjoituksen sisäiseen arviointiin."
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr "Lähetetty sisäiseen arviointiin"
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+"Käsikirjoitus {$title} on lähetetty sisäiseen arviointiin. Kirjoittajalle on "
+"ilmoitettu asiasta, ellet päättänyt ohittaa tätä sähköpostiviestiä."
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+"Ilmoita sähköpostilla kirjoittajille käsikirjoituksen lähettämisestä "
+"sisäiseen arviointiin. Mikäli mahdollista kerro myös arvio sen kestosta ja "
+"milloin kirjoittajat voivat kuulla asiasta uudelleen. Tätä sähköpostia ei "
+"lähetetä ennen päätöksen tallentamista."
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr "Valitse tiedostot, jotka siirretään sisäiseen arviointiin."
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr "{$editorName} lähetti tämän käsikirjoituksen ulkoiseen arviointiin."
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr "Lähetetty ulkoiseen arviointiin"
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr "Käsikirjoitus {$title} on lähetetty ulkoiseen arviointiin."
+
+msgid "editor.submission.decision.backToReview"
+msgstr "Palauta vertaisarvioitavaksi"
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+"Peru päätös käsikirjoituksen hyväksymisestä ja palauta käsikirjoitus "
+"arviointivaiheeseen."
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+"{$editorName} perui päätöksen hyväksyä käsikirjoitus ja palautti sen "
+"arviointivaiheeseen."
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr "Palautettu arviointivaiheeseen"
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr "Käsikirjoitus {$title} on palautettu arviointivaiheeseen."
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+"Lähetä sähköpostia kirjoittajille ja ilmoita käsikirjoituksen "
+"palauttamisesta arviointivaiheeseen. Perustele miksi päätös on tehty ja "
+"kerro kirjoittajille miten käsikirjoitusta arvioidaan edelleen."
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+"Ilmoita sähköpostilla kirjoittajille käsikirjoituksen lähettämisestä "
+"vertaisarviointiin. Mikäli mahdollista kerro myös arvio sen kestosta ja "
+"milloin kirjoittajat voivat kuulla asiasta uudelleen."
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr "Valitse tiedostot, jotka siirretään arviointivaiheeseen."
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr "Suosittele lähettämistä ulkoiseen arviointiin"
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr "Suosittele, että tämä käsikirjoitus lähetetään ulkoiseen arviointiin."
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+"{$editorName} suositteli, että tämä käsikirjoitus lähetetään ulkoiseen "
+"arviointiin."
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+"Käsikirjoitukselle {$pubObjectTitle}ei voitu luoda DOI-tunnusta. "
+"Käsikirjoitusta ei ole olemassa tämän julkaisijan sivustolla."
+
+msgid "publication.chapter.licenseUrl"
+msgstr "Lisenssin URL-osoite"
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr "Lukujen oletuslisenssin URL-osoite"
+
+msgid "submission.copyright.description"
+msgstr ""
+"Lue ja sisäistä tämän julkaisijan tekijänoikeusehdot käsikirjoituksille."
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+"Et voi lähettää käsikirjoitusta tälle julkaisijalle, koska vain "
+"toimituskunta voi rekisteröidä uusia kirjoittajia. Jos arvioit tämän olevan "
+"virhe, otathan yhteyttä {$name}."
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+"{$contextName} ei vastaanota käsikirjoituksia sarjaan {$section}. Jos "
+"tarvitset apua käsikirjoituksesi kanssa, ota yhteyttä {$name}."
+
+msgid "submission.sectionNotFound"
+msgstr "Sarjaa tälle käsikirjoitukselle ei löytynyt."
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr "Vain toimituskunta voi lisätä käsikirjoituksia tähän sarjaan."
+
+msgid "submission.wizard.submitting.monograph"
+msgstr "Lähetetään monografiaa."
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+"Lähetetään monografiaa kielellä "
+"{$language}."
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr "Lähetetään toimitettua teosta."
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+"Lähetetään toimitettua teosta kielellä "
+"{$language}."
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
+"Anna kaikki tämän käsikirjoituksen luvut. Jos lähetät toimitetun teoksen, "
+"varmista, että jokaisessa luvussa ilmoitetaan kyseisen luvun kirjoittajat."
+
+#~ msgid "submission.submit.placement.categories"
+#~ msgstr "Kategoriat"
+
+#~ msgid "submission.submit.placement.categoriesDescription"
+#~ msgstr ""
+#~ "Valitse painon kategorioista se, jonne tämä työ lähetetään käsiteltäväksi."
diff --git a/locale/fi_FI/admin.po b/locale/fi_FI/admin.po
deleted file mode 100644
index 1aca3331add..00000000000
--- a/locale/fi_FI/admin.po
+++ /dev/null
@@ -1,135 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
-"PO-Revision-Date: 2020-03-18 12:36+0000\n"
-"Last-Translator: Antti-Jussi Nygård \n"
-"Language-Team: Finnish \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 "admin.hostedPresses"
-msgstr "Ylläpidetyt painot"
-
-msgid "admin.settings.pressRedirect"
-msgstr "Painon uudelleenohjaus"
-
-msgid "admin.settings.pressRedirectInstructions"
-msgstr "Pyynnöt pääsivustolle uudelleenohjataan tähän painoon. Tämä saattaa olla hyödyllinen toiminto, jos sivustolla ylläpidetään vain yhtä painoa."
-
-msgid "admin.settings.noPressRedirect"
-msgstr "Älä uudelleenohjaa"
-
-msgid "admin.languages.primaryLocaleInstructions"
-msgstr ""
-"Tätä kieltä käytetään sivuston ja kaikkien ylläpidettyjen julkaisijoiden "
-"sivustojen oletuskielenä."
-
-msgid "admin.languages.supportedLocalesInstructions"
-msgstr ""
-"Valitse kaikki sivustolla tuettavat kielialueet. Valitut kielialueet ovat "
-"kaikkien sivustolla ylläpidettävien julkaisijoiden käytössä. Ne esiintyvät "
-"myös kielivalikossa, joka näkyy jokaisella sivuston sivulla (tämä voidaan "
-"ohittaa julkaisijoiden omilla sivuilla). Mikäli valitaan vain yksi "
-"kielialue, kielivalikko ei tule näkyviin ja laajennetut kieliasetukset eivät "
-"ole julkaisijoiden käytettävissä."
-
-msgid "admin.locale.maybeIncomplete"
-msgstr "Tähdellä (*) merkityt kielialueet saattavat olla vaillinaisia."
-
-msgid "admin.languages.confirmUninstall"
-msgstr ""
-"Haluatko varmasti poistaa tämän kielialueen? Se saattaa vaikuttaa "
-"julkaisijoihin, joilla on tämä kielialue käytössä."
-
-msgid "admin.languages.installNewLocalesInstructions"
-msgstr ""
-"Valitse mitä tahansa lisäkielialueita, joille asennetaan tuki tässä "
-"järjestelmässä. Kielialueet täytyy asentaa ennen kuin ylläpidetyt "
-"julkaisijat voivat käyttää niitä. Katso OMP:n ohjeista tietoja siitä, kuinka "
-"uusille kielille lisätään tuki."
-
-msgid "admin.languages.confirmDisable"
-msgstr ""
-"Haluatko varmasti poistaa tämän kielialueen käytöstä? Se saattaa vaikuttaa "
-"julkaisijoihin, joilla on tämä kielialue käytössä."
-
-msgid "admin.systemVersion"
-msgstr "OMP-versio"
-
-msgid "admin.systemConfiguration"
-msgstr "OMP:n määritys"
-
-msgid "admin.presses.pressSettings"
-msgstr "Julkaisijan asetukset"
-
-msgid "admin.presses.noneCreated"
-msgstr "Yhtään julkaisijan sivustoa ei ole luotu."
-
-msgid "admin.contexts.create"
-msgstr "Luo julkaisijan sivusto"
-
-msgid "admin.presses.createInstructions"
-msgstr "Sinut lisätään automaattisesti tämän painon hallinnoijaksi. Uuden painon luonnin jälkeen sinut uudelleenohjataan ohjattuun asetusten luontiin painon aloitusasetusten loppuun saattamiseksi."
-
-msgid "admin.presses.urlWillBe"
-msgstr "Painon URL-osoitteeksi tulee {$sampleUrl}"
-
-msgid "admin.contexts.form.titleRequired"
-msgstr "Otsikko vaaditaan."
-
-msgid "admin.contexts.form.pathRequired"
-msgstr "Polku vaaditaan."
-
-msgid "admin.contexts.form.pathAlphaNumeric"
-msgstr "Polku voi sisältää vain aakkosnumeerisia merkkejä, alaviivoja ja yhdysmerkkejä, ja sen täytyy alkaa ja päättyä aakkosnumeeriseen merkkiin."
-
-msgid "admin.contexts.form.pathExists"
-msgstr "Valittu polku on jo toisen julkaisijan sivuston käytössä."
-
-msgid "admin.presses.enablePressInstructions"
-msgstr "Näytä tämä paino julkisesti sivustolla"
-
-msgid "admin.presses.pressDescription"
-msgstr "Painon kuvaus"
-
-msgid "admin.presses.addPress"
-msgstr "Lisää julkaisijan sivusto"
-
-msgid "admin.overwriteConfigFileInstructions"
-msgstr ""
-"HUOM!\n"
-"
Järjestelmä ei voinut korvata määritystiedostoa automaattisesti. Ottaaksesi määritysmuutokset käyttöön avaa config.inc.php sopivassa tekstieditorissa ja korvaa sen sisältö alla olevan tekstikentän sisällöllä.
"
-
-msgid "admin.contexts.contextDescription"
-msgstr "Julkaisijan kuvaus"
-
-msgid "admin.contexts.form.edit.success"
-msgstr "{$name} päivitettiin onnistuneesti."
-
-msgid "admin.contexts.form.create.success"
-msgstr "{$name} luotiin onnistuneesti."
-
-msgid "admin.settings.redirectInstructions"
-msgstr ""
-"Koko sivustoon kohdistuvat pyynnöt ohjataan tämän julkaisijan sivustolle."
-
-msgid "admin.settings.redirect"
-msgstr "Julkaisijan sivuston uudelleenohjaus"
-
-msgid "admin.settings.info.success"
-msgstr "Sivuston tietoja koskevat asetukset on päivitetty."
-
-msgid "admin.settings.config.success"
-msgstr "Sivuston asetukset on päivitetty."
-
-msgid "admin.settings.appearance.success"
-msgstr "Sivuston ulkoasua koskevat asetukset on päivitetty."
-
-msgid "admin.hostedContexts"
-msgstr "Ylläpidetyt julkaisijoiden sivustot"
diff --git a/locale/fi_FI/api.po b/locale/fi_FI/api.po
deleted file mode 100644
index 96dcbb35c03..00000000000
--- a/locale/fi_FI/api.po
+++ /dev/null
@@ -1,37 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2020-12-11 17:22+0000\n"
-"Last-Translator: Antti-Jussi Nygård \n"
-"Language-Team: Finnish "
-"\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 "api.submissions.403.contextRequired"
-msgstr ""
-"Käsikirjoituksen luomiseksi tai muokkaamiseksi pitää tehdä kysely "
-"julkaisijan rajapintaan."
-
-msgid "api.submissions.403.cantChangeContext"
-msgstr "Et voi vaihtaa käsikirjoitukseen liittyvää julkaisijaa."
-
-msgid "api.publications.403.submissionsDidNotMatch"
-msgstr "Pyytämäsi julkaistu versio ei kuulu tähän käsikirjoitukseen."
-
-msgid "api.publications.403.contextsDidNotMatch"
-msgstr "Pyytämäsi julkaistu versio ei kuulu tälle julkaisijalle."
-
-msgid "api.emailTemplates.403.notAllowedChangeContext"
-msgstr ""
-"Sinulla ei ole lupaa siirtää tätä sähköpostipohjaa toiseen julkaisijaan."
-
-msgid "api.submissions.400.submissionsNotFound"
-msgstr "Yhtä tai useampaa määrittämääsi käsikirjoitusta ei löytynyt."
-
-msgid "api.submissions.400.submissionIdsRequired"
-msgstr ""
-"Anna yhden tai useamman luetteloon lisättävän käsikirjoituksen ID-tunniste."
diff --git a/locale/fi_FI/default.po b/locale/fi_FI/default.po
deleted file mode 100644
index f99d436fe40..00000000000
--- a/locale/fi_FI/default.po
+++ /dev/null
@@ -1,238 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
-"PO-Revision-Date: 2020-10-15 05:36+0000\n"
-"Last-Translator: Antti-Jussi Nygård \n"
-"Language-Team: Finnish \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 "default.genres.appendix"
-msgstr "Liite"
-
-msgid "default.genres.bibliography"
-msgstr "Bibliografia"
-
-msgid "default.genres.manuscript"
-msgstr "Kirjan käsikirjoitus"
-
-msgid "default.genres.chapter"
-msgstr "Luvun käsikirjoitus"
-
-msgid "default.genres.glossary"
-msgstr "Sanasto"
-
-msgid "default.genres.index"
-msgstr "Hakemisto"
-
-msgid "default.genres.preface"
-msgstr "Alkusanat"
-
-msgid "default.genres.prospectus"
-msgstr "Esite"
-
-msgid "default.genres.table"
-msgstr "Taulukko"
-
-msgid "default.genres.figure"
-msgstr "Kuvio"
-
-msgid "default.genres.photo"
-msgstr "Valokuva"
-
-msgid "default.genres.illustration"
-msgstr "Kuva"
-
-msgid "default.genres.other"
-msgstr "Muu"
-
-msgid "default.groups.name.manager"
-msgstr "Julkaisijan sivuston hallinnoija"
-
-msgid "default.groups.plural.manager"
-msgstr "Julkaisijan sivuston hallinnoijat"
-
-msgid "default.groups.abbrev.manager"
-msgstr "PH"
-
-msgid "default.groups.name.editor"
-msgstr "Toimittaja"
-
-msgid "default.groups.plural.editor"
-msgstr "Toimittajat"
-
-msgid "default.groups.abbrev.editor"
-msgstr "PT"
-
-msgid "default.groups.name.seriesEditor"
-msgstr "Sarjan toimittaja"
-
-msgid "default.groups.plural.seriesEditor"
-msgstr "Sarjan toimittajat"
-
-msgid "default.groups.abbrev.seriesEditor"
-msgstr "ST"
-
-msgid "default.groups.name.chapterAuthor"
-msgstr "Luvun kirjoittaja"
-
-msgid "default.groups.plural.chapterAuthor"
-msgstr "Luvun kirjoittajat"
-
-msgid "default.groups.abbrev.chapterAuthor"
-msgstr "LK"
-
-msgid "default.groups.name.volumeEditor"
-msgstr "Niteen toimittaja"
-
-msgid "default.groups.plural.volumeEditor"
-msgstr "Niteen toimittajat"
-
-msgid "default.groups.abbrev.volumeEditor"
-msgstr "NT"
-
-msgid "default.pressSettings.checklist.notPreviouslyPublished"
-msgstr "Tätä käsikirjoitusta ei ole aiemmin julkaistu, eikä sitä ole lähetetty toiseen painoon (tai asiasta on annettu selvitys Kommentteja toimittajalle -kohdassa)."
-
-msgid "default.pressSettings.checklist.fileFormat"
-msgstr "Käsikirjoitustiedosto on Microsoft Word, RTF tai OpenDocument -tiedostomuodossa."
-
-msgid "default.pressSettings.checklist.addressesLinked"
-msgstr "Lähteiden URL-osoitteet on annettu, mikäli ne ovat saatavilla."
-
-msgid "default.pressSettings.checklist.submissionAppearance"
-msgstr "Tekstin riviväli on yksi; kirjasinkoko on 12; tekstissä käytetään kursiivia, ei alleviivausta (paitsi URL-osoitteissa); ja kaikki kuvat, kuviot ja taulukot on sijoitettu ensisijaisesti sopiviin kohtiin tekstin lomaan, ei tekstin loppuun."
-
-msgid "default.pressSettings.checklist.bibliographicRequirements"
-msgstr "Teksti noudattaa Kirjoittajan ohjeissa mainittuja stilistisiä ja bibliografisia vaatimuksia, jotka löytyvät Tietoa painosta -kohdasta."
-
-msgid "default.pressSettings.privacyStatement"
-msgstr "Tämän painon sivustolle syötettyjä nimiä ja sähköpostiosoitteita käytetään yksinomaan tämän painon tarkoituksiin, eikä niitä luovuteta mihinkään muuhun tarkoitukseen tai muille osapuolille."
-
-msgid "default.pressSettings.openAccessPolicy"
-msgstr "Tämä painon sisällöt ovat välittömästi avoimesti saatavilla noudattaen periaatetta, jonka mukaan tutkimuksen tekeminen vapaasti saatavilla olevaksi suurelle yleisölle tukee suurempaa globaalia tiedonvaihtoa."
-
-msgid "default.pressSettings.emailSignature"
-msgstr ""
-"
\n"
-"________________________________________________________________________
\n"
-"{$ldelim}$contextName{$rdelim}"
-
-msgid "default.pressSettings.forReaders"
-msgstr "Kehotamme lukijoita rekisteröitymään palveluun, joka ilmoittaa tämän painon uusista julkaisuista. Käytä tämän painon etusivun yläosassa olevaa Rekisteröidy -linkkiä. Rekisteröitymisen tuloksena lukijalle lähetetään sähköpostitse painon jokaisen uuden kirjan sisällysluettelo. Tämän palvelun käyttäjälistan avulla paino myös kerää tietoa kannattajamääristään ja lukijakunnastaan. Painon Tietosuojaseloste takaa, että lukijoiden nimiä ja sähköpostiosoitteita ei käytetä muihin tarkoituksiin."
-
-msgid "default.pressSettings.forAuthors"
-msgstr "Kiinnostaako tähän painoon kirjoittaminen? Suosittelemme, että tutustut Tietoa painosta -sivulla painon osastojen käytäntöihin sekä Kirjoittajan ohjeisiin. Kirjoittajien tulee rekisteröityä painon käyttäjäksi ennen käsikirjoituksen lähettämistä tai jo rekisteröidyttyään kirjautua sisään aloittaakseen viisivaiheisen prosessin."
-
-msgid "default.pressSettings.forLibrarians"
-msgstr "Suosittelemme, että tutkimuskirjastojen hoitajat listaavat tämän painon kirjastojensa sähköisten painojen kokoelmaan. Tämä avoimen lähdekoodin julkaisujärjestelmä sopii kirjastojen ylläpitämänä myös tiedekuntien jäsenten käyttöön sellaisten painojen yhteydessä, joiden julkaisujen toimittamiseen he osallistuvat (ks. Open Monograph Press)."
-
-msgid "default.pressSettings.manager.setup.category"
-msgstr "Kategoria"
-
-msgid "default.pressSettings.manager.series.book"
-msgstr "Kirjasarja"
-
-msgid "default.groups.name.externalReviewer"
-msgstr "Ulkopuolinen arvioija"
-
-msgid "default.groups.plural.externalReviewer"
-msgstr "Ulkopuoliset arvioijat"
-
-msgid "default.groups.abbrev.externalReviewer"
-msgstr "UA"
-
-msgid "default.contextSettings.forLibrarians"
-msgstr ""
-"Suosittelemme, että tutkimuskirjastojen hoitajat listaavat tämän julkaisijan "
-"kirjastojensa sähköisten julkaisijoiden kokoelmaan. Tämä avoimen lähdekoodin "
-"julkaisujärjestelmä sopii kirjastojen ylläpitämänä myös tiedekuntien "
-"jäsenten käyttöön sellaisten julkaisijoiden yhteydessä, joiden julkaisujen "
-"toimittamiseen he osallistuvat (ks. Open "
-"Monograph Press)."
-
-msgid "default.contextSettings.forAuthors"
-msgstr ""
-"Kiinnostaako oman käsikirjoituksen lähetys? Suosittelemme, että tutustut Tietoa julkaisijasta -sivulla "
-"julkaisijan sarjojen käytäntöihin sekä Kirjoittajan ohjeisiin. "
-"Kirjoittajien tulee rekisteröityä julkaisijan sivuston käyttäjäksi ennen käsikirjoituksen "
-"lähettämistä tai jo rekisteröidyttyään "
-"kirjautua sisään aloittaakseen viisivaiheisen prosessin."
-
-msgid "default.contextSettings.forReaders"
-msgstr ""
-"Kehotamme lukijoita rekisteröitymään palveluun, joka ilmoittaa tämän "
-"julkaisijan uusista julkaisuista. Käytä tämän julkaisijan etusivun yläosassa "
-"olevaa Rekisteröidy -"
-"linkkiä. Rekisteröitymisen tuloksena lukijalle lähetetään sähköpostitse "
-"julkaisijan jokaisen uuden kirjan sisällysluettelo. Tämän palvelun "
-"käyttäjälistan avulla julkaisija myös kerää tietoa lukijakunnastaan. "
-"Julkaisijan Tietosuojaseloste takaa, että lukijoiden nimiä ja "
-"sähköpostiosoitteita ei käytetä muihin tarkoituksiin."
-
-msgid "default.contextSettings.emailSignature"
-msgstr ""
-"
\n"
-"________________________________________________________________________
"
-"\n"
-"{$ldelim}$contextName{$rdelim}"
-
-msgid "default.contextSettings.openAccessPolicy"
-msgstr ""
-"Tämä julkaisijan sisällöt ovat välittömästi avoimesti saatavilla noudattaen "
-"periaatetta, jonka mukaan tutkimuksen tekeminen vapaasti saatavilla olevaksi "
-"suurelle yleisölle tukee suurempaa globaalia tiedonvaihtoa."
-
-msgid "default.contextSettings.privacyStatement"
-msgstr ""
-"Tämän julkaisijan sivustolle syötettyjä nimiä ja sähköpostiosoitteita "
-"käytetään yksinomaan tämän julkaisijan tarkoituksiin, eikä niitä luovuteta "
-"mihinkään muuhun tarkoitukseen tai muille osapuolille.
"
-
-msgid "default.contextSettings.checklist.bibliographicRequirements"
-msgstr ""
-"Teksti noudattaa Kirjoittajan ohjeissa mainittuja "
-"stilistisiä ja bibliografisia vaatimuksia, jotka löytyvät Tietoa "
-"julkaisijasta -kohdasta."
-
-msgid "default.contextSettings.checklist.submissionAppearance"
-msgstr ""
-"Tekstin riviväli on yksi; kirjasinkoko on 12; tekstissä käytetään kursiivia, "
-"ei alleviivausta (paitsi URL-osoitteissa); ja kaikki kuvat, kuviot ja "
-"taulukot on sijoitettu ensisijaisesti sopiviin kohtiin tekstin lomaan, ei "
-"tekstin loppuun."
-
-msgid "default.contextSettings.checklist.addressesLinked"
-msgstr ""
-"Lähdeviitteiden pysyvät tunnisteet tai osoitteet on ilmoitettu mikäli "
-"mahdollista."
-
-msgid "default.contextSettings.checklist.fileFormat"
-msgstr ""
-"Käsikirjoituksen tiedosto on Microsoft Word, RTF tai OpenDocument -muodossa."
-
-msgid "default.contextSettings.checklist.notPreviouslyPublished"
-msgstr ""
-"Käsikirjoitusta ei ole ennen julkaistu, eikä se ole harkittavana toisella "
-"julkaisijalla."
-
-msgid "default.groups.abbrev.sectionEditor"
-msgstr "ST"
-
-msgid "default.groups.plural.sectionEditor"
-msgstr "Sarjan toimittajat"
-
-msgid "default.groups.name.sectionEditor"
-msgstr "Sarjan toimittaja"
diff --git a/locale/fi_FI/emails.po b/locale/fi_FI/emails.po
deleted file mode 100644
index 8604f80ac8c..00000000000
--- a/locale/fi_FI/emails.po
+++ /dev/null
@@ -1,1031 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-13T19:57:22+00:00\n"
-"PO-Revision-Date: 2020-12-12 05:46+0000\n"
-"Last-Translator: Antti-Jussi Nygård \n"
-"Language-Team: Finnish \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 "emails.notification.subject"
-msgstr "Uusi ilmoitus sivustolta {$siteTitle}"
-
-msgid "emails.notification.body"
-msgstr ""
-"Teille on uusi ilmoitus sivustolta {$siteTitle}:
\n"
-"
\n"
-"{$notificationContents}
\n"
-"
\n"
-"Linkki: {$url}
\n"
-"
\n"
-"Tämä on automaattisesti luotu sähköposti; Älkää vastatko tähän viestiin.
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordResetConfirm.subject"
-msgstr "Vahvista salasanan vaihtaminen"
-
-msgid "emails.passwordResetConfirm.body"
-msgstr ""
-"Olemme vastaanottaneet pyynnön vaihtaa salasananne {$siteTitle} sivustolle.
\n"
-"
\n"
-"Jos ette tehnyt tätä pyyntöä, voitte jättää tämän sähköpostin huomiotta. Jos haluatte vaihtaa salasanan, klikatkaa alla olevaa linkkiä.
\n"
-"
\n"
-"Vaihda salasana: {$url}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordReset.subject"
-msgstr "Salasana vaihdettu"
-
-msgid "emails.passwordReset.body"
-msgstr ""
-"Salasananne sivustolle {$siteTitle} on vaihdettu onnistuneesti.
\n"
-"
\n"
-"Käyttäjätunnus: {$username}
\n"
-"Uusi salasana: {$password}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userRegister.subject"
-msgstr "Julkaisijan sivustolle rekisteröityminen"
-
-msgid "emails.userRegister.body"
-msgstr ""
-"Hyvä {$userFullName},
\n"
-"
\n"
-"Olette nyt rekisteröitynyt julkaisijan {$contextName} käyttäjäksi. "
-"Tarvitsette alla olevaa käyttäjätunnustanne ja salasanaanne kaikkeen "
-"työskentelyyn julkaisijan sivustolla. Voitte missä vaiheessa tahansa pyytää "
-"poistamaan teidät julkaisujan sivuston käyttäjistä ottamalla yhteyttä "
-"minuun.
\n"
-"
\n"
-"Käyttäjätunnus: {$username}
\n"
-"Salasana: {$password}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.userValidate.subject"
-msgstr "Tilin vahvistaminen"
-
-msgid "emails.userValidate.body"
-msgstr ""
-"Hyvä {$userFullName},
\n"
-"
\n"
-"Olette luonut tilin julkaisijan sivustolle {$contextName}. Ennen kuin voitte "
-"aloittaa tilin käytön, teidän täytyy vahvistaa sähköpostinne. Voitte tehdä "
-"sen alla olevan linkin kautta:
\n"
-"
\n"
-"{$activateUrl}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.reviewerRegister.subject"
-msgstr "Rekisteröinti arvioijaksi julkaisijan sivustolle {$contextName}"
-
-msgid "emails.reviewerRegister.body"
-msgstr ""
-"Asiantuntemuksenne valossa, olemme ottaneet vapauden rekisteröidä teidät "
-"julkaisijan {$contextName} arvioijatietokantaan. Tämä ei velvoita teitä "
-"mihinkään, mutta antaa meille mahdollisuuden ottaa teihin yhteyttä "
-"mahdollisen käsikirjoituksen arvioinnin tiimoilta. Arviointikutsun "
-"yhteydessä näette arvioitavan työn nimekkeen ja abstraktin, ja voitte aina "
-"joko hyväksyä kutsun tai kieltäytyä siitä. Voitte myös missä tahansa "
-"vaiheessa pyytää, että nimenne poistetaan tältä arvioijalistalta.
\n"
-"
\n"
-"Annamme teille käyttäjätunnuksen ja salasanan, joita käytetään kaikkeen "
-"vuorovaikutukseen julkaisijan kanssa sen verkkosivuston kautta. Halutessanne "
-"voitte esimerkiksi päivittää profiilinne ja teitä kiinnostavat "
-"arviointiaiheet.
\n"
-"
\n"
-"Käyttäjätunnus: {$username}
\n"
-"Salasana: {$password}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.publishNotify.subject"
-msgstr "Uusi kirja on julkaistu"
-
-msgid "emails.publishNotify.body"
-msgstr ""
-"Hyvä lukija,
\n"
-"
\n"
-"{$contextName} on juuri julkaissut uusimman kirjansa osoitteessa {$contextUrl}. Voitte tutustua sen sisällysluetteloon tässä ja sen jälkeen tutustua kirjoihin ja muihin kiinnostaviin kohteisiin verkkosivustollamme.
\n"
-"
\n"
-"Kiitos mielenkiinnostanne työtämme kohtaan.
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAck.subject"
-msgstr "Käsikirjoituksenne on vastaanotettu"
-
-msgid "emails.submissionAck.body"
-msgstr ""
-"Hyvä {$authorName},
\n"
-"
\n"
-"Kiitos, että lähetitte meille käsikirjoituksenne "{$submissionTitle} "
-"". Käyttämämme online-toimitusjärjestelmän avulla voitte seurata "
-"käsikirjoituksen etenemistä toimitusprosessissa kirjautumalla julkaisijan "
-"verkkosivustolle:
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"Käyttäjätunnus: {$authorUsername}
\n"
-"
\n"
-"Jos teillä on kysyttävää, otattehan yhteyttä minuun. Kiitos, että valitsitte "
-"tämän julkaisijan työllenne.
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAckNotUser.subject"
-msgstr "Käsikirjoitus vastaanotettu"
-
-msgid "emails.submissionAckNotUser.body"
-msgstr ""
-"Hei,
\n"
-"
\n"
-"{$submitterName} on lähettänyt käsikirjoituksen "
-""{$submissionTitle}" julkaisijalle {$contextName}.
\n"
-"
\n"
-"Jos teillä on kysyttävää, otattehan yhteyttä minuun. Kiitos, että valitsitte "
-"tämän julkaisijan työllenne.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.editorAssign.subject"
-msgstr "Toimituksellinen toimeksianto"
-
-msgid "emails.editorAssign.body"
-msgstr ""
-"Hyvä {$editorialContactName},
\n"
-"
\n"
-"Käsikirjoitus "{$submissionTitle}" on annettu toimitusprosessin "
-"ajaksi vastuullenne toimittajan roolissanne.
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"Käyttäjätunnus: {$editorUsername}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRequest.subject"
-msgstr "Käsikirjoituksen arviointipyyntö"
-
-msgid "emails.reviewRequest.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"{$messageToReviewer}
\n"
-"
\n"
-"Kirjautukaa julkaisijan verkkosivustolle {$responseDueDate} mennessä "
-"ilmoittaaksenne haluatteko suorittaa arvioinnin vai ette. Teidän on "
-"kirjauduttava verkkosivustolle myös, jotta saatte pääsyn käsikirjoitukseen "
-"ja voitte tallentaa arviointinne ja suosituksenne.
\n"
-"
\n"
-"Arvioinnin määräpäivä on {$reviewDueDate}.
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Käyttäjänimi: {$reviewerUserName}
\n"
-"
\n"
-"Kiitos, että harkitsette arvioijaksi ryhtymistä.
\n"
-"
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
\n"
-
-msgid "emails.reviewRequestOneclick.subject"
-msgstr "Käsikirjoituksen arviointipyyntö"
-
-msgid "emails.reviewRequestOneclick.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Uskon, että olisitte sopiva arvioija käsikirjoitukselle "
-""{$submissionTitle}". Käsikirjoituksen abstrakti löytyy tämän "
-"viestin lopusta. Toivon, että harkitsette tähän meille tärkeään tehtävään "
-"ryhtymistä.
\n"
-"
\n"
-"Kirjautukaa julkaisijan verkkosivustolle {$weekLaterDate} mennessä "
-"ilmoittaaksenne haluatteko suorittaa arvioinnin vai ette. Teidän on "
-"kirjauduttava verkkosivustolle myös, jotta saatte pääsyn käsikirjoitukseen "
-"ja voitte tallentaa arviointinne ja suosituksenne.
\n"
-"
\n"
-"Arvioinnin määräpäivä on {$reviewDueDate}.
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Kiitos, että harkitsette arvioijaksi ryhtymistä.
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$submissionAbstract}"
-
-msgid "emails.reviewRequestRemindAuto.subject"
-msgstr "Käsikirjoituksen arviointipyyntö"
-
-msgid "emails.reviewRequestRemindAuto.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Muistuttaisin ystävällisesti pyynnöstämme arvioida käsikirjoitus "
-""{$submissionTitle}". Toivoimme saavamme vastauksenne "
-"{$responseDueDate} mennessä, ja tämä sähköposti on lähetetty automaattisesti "
-"määräajan umpeuduttua.\n"
-"
\n"
-"{$messageToReviewer}
\n"
-"
\n"
-"Kirjautukaa julkaisijan verkkosivustolle ilmoittaaksenne haluatteko "
-"suorittaa arvioinnin vai ette. Teidän on kirjauduttava verkkosivustolle "
-"myös, jotta saatte pääsyn käsikirjoitukseen ja voitte tallentaa arvionne ja "
-"suosituksenne.
\n"
-"
\n"
-"Arvioinnin määräpäivä on {$reviewDueDate}.
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Käyttäjätunnus: {$reviewerUserName}
\n"
-"
\n"
-"Kiitos, että harkitsette arvioijaksi ryhtymistä.
\n"
-"
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
\n"
-
-msgid "emails.reviewRequestRemindAutoOneclick.subject"
-msgstr "Käsikirjoituksen arviointipyyntö"
-
-msgid "emails.reviewRequestRemindAutoOneclick.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Muistuttaisin ystävällisesti pyynnöstämme arvioida käsikirjoitus "
-""{$submissionTitle}". Toivoimme saavamme vastauksenne "
-"{$responseDueDate} mennessä, ja tämä sähköposti on lähetetty automaattisesti "
-"määräajan umpeuduttua.\n"
-"
\n"
-"Uskon, että olisitte sopiva arvioija kyseiselle käsikirjoitukselle. "
-"Käsikirjoituksen abstrakti löytyy tämän sähköpostin lopusta. Toivon, että "
-"harkitsette tähän meille tärkeään tehtävään ryhtymistä.
\n"
-"
\n"
-"Kirjautukaa julkaisijan verkkosivustolle ilmoittaaksenne haluatteko "
-"suorittaa arvioinnin vai ette. Teidän on kirjauduttava verkkosivustolle "
-"myös, jotta saatte pääsyn käsikirjoitukseen ja voitte tallentaa arviointinne "
-"ja suosituksenne.
\n"
-"
\n"
-"Arvioinnin määräpäivä on {$reviewDueDate}.
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Kiitos, että harkitsette arvioijaksi ryhtymistä.
\n"
-"
\n"
-"Ystävällisin terveisin
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$submissionAbstract}"
-
-msgid "emails.reviewRequestAttached.subject"
-msgstr "Käsikirjoituksen arviointipyyntö"
-
-msgid "emails.reviewRequestAttached.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Uskon, että sopisitte erinomaisesti käsikirjoituksen "
-""{$submissionTitle}" arvioijaksi, ja pyydänkin, että harkitsette "
-"ryhtyvänne tähän meille tärkeään tehtävään. Arviointiohjeet löytyvät tämän "
-"sähköpostin lopusta ja käsikirjoitus on liitteenä. Arviointinne sekä "
-"suosituksenne tulisi lähettää minulle sähköpostitse {$reviewDueDate} "
-"mennessä.
\n"
-"
\n"
-"Ilmoitattehan oletteko halukas suorittamaan arvioinnin vastaamalla tähän "
-"viestiin {$weekLaterDate} mennessä.
\n"
-"
\n"
-"Kiitos, että harkitsette arvioijaksi ryhtymistä.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"Arviointiohjeet
\n"
-"
\n"
-"{$reviewGuidelines}
\n"
-
-msgid "emails.reviewCancel.subject"
-msgstr "Arviointipyynnön peruminen"
-
-msgid "emails.reviewCancel.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Olemme tässä vaiheessa päättäneet perua pyyntömme käsikirjoituksen "
-""{$submissionTitle}" arvioinnista julkaisijalle {$contextName}. "
-"Pahoittelemme tästä teille mahdollisesti aiheutuvaa vaivaa, ja toivomme, "
-"että voimme kuitenkin tulevaisuudessa pyytää teitä avustamaan "
-"arviointiprosessissa.
\n"
-"
\n"
-"Mikäli teillä on kysyttävää, otattehan yhteyttä minuun."
-
-msgid "emails.reviewConfirm.subject"
-msgstr "Arviointipyynnön hyväksyminen"
-
-msgid "emails.reviewConfirm.body"
-msgstr ""
-"Hyvä(t) toimittaja(t),
\n"
-"
\n"
-"Olen halukas arvioimaan käsikirjoituksen "{$submissionTitle}". Kiitos, että pyysitte minua tähän tehtävään. Suoritan arvioinnin viimeistään sen määräaikaan {$reviewDueDate} mennessä.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewDecline.subject"
-msgstr "Arviointipyynnön hylkääminen"
-
-msgid "emails.reviewDecline.body"
-msgstr ""
-"Hyvä(t) toimittaja(t),
\n"
-"
\n"
-"En valitettavasti voi tällä kertaa suorittaa käsikirjoituksen "{$submissionTitle}" arviointia. Kiitos, että pyysitte minua tähän tehtävään. Toivon, että otatte vastaisuudessakin minuun yhteyttä arviointeja koskien.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewAck.subject"
-msgstr "Käsikirjoituksen arvioinnin vastaanottoilmoitus"
-
-msgid "emails.reviewAck.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Kiitos käsikirjoituksen "{$submissionTitle}" arvioinnin "
-"suorittamisesta. Arvostamme panostanne julkaisemamme työn laadun hyväksi."
-
-msgid "emails.reviewRemind.subject"
-msgstr "Muistutus käsikirjoituksen arvioinnista"
-
-msgid "emails.reviewRemind.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Muistuttaisin ystävällisesti pyynnöstämme arvioida käsikirjoitus "
-""{$submissionTitle}". Toivoimme saavamme arviointinne "
-"{$reviewDueDate} mennessä, ja olisimme iloisia, mikäli voisitte lähettää sen "
-"meille mahdollisimman pian.
\n"
-"
\n"
-"Jos ette muista käyttäjätunnustanne ja salasanaanne verkkosivustolle, "
-"klikatkaa seuraavaa linkkiä vaihtaaksenne salasanan (salasana ja "
-"käyttäjätunnus lähetetään teille sähköpostitse). {$passwordResetUrl}
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Käyttäjänimi: {$reviewerUserName}
\n"
-"
\n"
-"Vahvistattehan vielä, voitteko suorittaa tämän arvioinnin.
\n"
-"
\n"
-"Yhteydenottoanne odottaen,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindOneclick.subject"
-msgstr "Muistutus käsikirjoituksen arvioinnista"
-
-msgid "emails.reviewRemindOneclick.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Muistuttaisin ystävällisesti pyynnöstämme arvioida käsikirjoitus "
-""{$submissionTitle}". Toivoimme saavamme arviointinne "
-"{$reviewDueDate} mennessä, ja olisimme iloisia, mikäli voisitte lähettää sen "
-"meille mahdollisimman pian.
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Vahvistattehan vielä, voitteko suorittaa tämän arvioinnin.
\n"
-"
\n"
-"Yhteydenottoanne odottaen,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAuto.subject"
-msgstr "Automaattinen muistutus käsikirjoituksen arvioinnista"
-
-msgid "emails.reviewRemindAuto.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Muistuttaisin ystävällisesti pyynnöstämme arvioida käsikirjoitus "
-""{$submissionTitle}". Toivoimme saavamme arviointinne "
-"{$reviewDueDate} mennessä, ja tämä sähköposti on lähetetty automaattisesti "
-"määräajan umpeuduttua. Olisimme iloisia, mikäli edelleen voisitte lähettää "
-"arvioinnin meille, mahdollisimman pian.
\n"
-"
\n"
-"Jos ette muista käyttäjätunnustanne ja salasanaanne verkkosivustolle, "
-"klikatkaa seuraavaa linkkiä vaihtaaksenne salasanan (salasana ja "
-"käyttäjätunnus lähetetään teille sähköpostitse). {$passwordResetUrl}\"
"
-"\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Käyttäjätunnus: {$reviewerUserName}
\n"
-"
\n"
-"Vahvistattehan vielä voitteko suorittaa tämän arvioinnin.
\n"
-"
\n"
-"Yhteydenottoanne odottaen,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAutoOneclick.subject"
-msgstr "Automaattinen muistutus käsikirjoituksen arvioinnista"
-
-msgid "emails.reviewRemindAutoOneclick.body"
-msgstr ""
-"Hyvä {$reviewerName},
\n"
-"
\n"
-"Muistuttaisin ystävällisesti pyynnöstämme arvioida käsikirjoitus "
-""{$submissionTitle}". Toivoimme saavamme arviointinne "
-"{$reviewDueDate} mennessä, ja tämä sähköposti on lähetetty automaattisesti "
-"määräajan umpeuduttua. Olisimme iloisia, mikäli edelleen voisitte lähettää "
-"arvioinnin meille, mahdollisimman pian.
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionReviewUrl}
\n"
-"
\n"
-"Vahvistattehan vielä, voitteko suorittaa tämän arvioinnin.
\n"
-"
\n"
-"Yhteydenottoanne odottaen,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.editorDecisionAccept.subject"
-msgstr "Toimittajan päätös"
-
-msgid "emails.editorDecisionAccept.body"
-msgstr ""
-"Hyvä {$authorName},
\n"
-"
\n"
-"Olemme tehneet päätöksen käsikirjoitustanne "{$submissionTitle}" "
-"koskien.
\n"
-"
\n"
-"Päätöksemme on:
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
"
-
-msgid "emails.editorDecisionSendToExternal.subject"
-msgstr "Toimittajan päätös"
-
-msgid "emails.editorDecisionSendToExternal.body"
-msgstr ""
-"Hyvä {$authorName},
\n"
-"
\n"
-"Olemme tehneet päätöksen käsikirjoitustanne "{$submissionTitle}" "
-"koskien.
\n"
-"
\n"
-"Päätöksemme on:
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
"
-
-msgid "emails.editorDecisionSendToProduction.subject"
-msgstr "Toimittajan päätös"
-
-msgid "emails.editorDecisionSendToProduction.body"
-msgstr ""
-"Hyvä {$authorName},
\n"
-"
\n"
-"Käsikirjoituksenne "{$submissionTitle}" on nyt toimitettu ja "
-"lähetämme sen tuotantoon.
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionUrl}"
-
-msgid "emails.editorDecisionRevisions.subject"
-msgstr "Toimittajan päätös"
-
-msgid "emails.editorDecisionRevisions.body"
-msgstr ""
-"Hyvä {$authorName},
\n"
-"
\n"
-"Olemme tehneet päätöksen käsikirjoitustanne "{$submissionTitle}" "
-"koskien.
\n"
-"
\n"
-"Päätöksemme on:
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
"
-
-msgid "emails.editorDecisionResubmit.subject"
-msgstr "Toimittajan päätös"
-
-msgid "emails.editorDecisionResubmit.body"
-msgstr ""
-"Hyvä {$authorName},
\n"
-"
\n"
-"Olemme tehneet päätöksen käsikirjoitustanne "{$submissionTitle}" "
-"koskien.
\n"
-"
\n"
-"Päätöksemme on:
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
"
-
-msgid "emails.editorDecisionDecline.subject"
-msgstr "Toimittajan päätös"
-
-msgid "emails.editorDecisionDecline.body"
-msgstr ""
-"Hyvä {$authorName},
\n"
-"
\n"
-"Olemme tehneet päätöksen käsikirjoitustanne "{$submissionTitle}" "
-"koskien.
\n"
-"
\n"
-"Päätöksemme on:
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
"
-
-msgid "emails.editorRecommendation.subject"
-msgstr "Toimittajan suositus"
-
-msgid "emails.editorRecommendation.body"
-msgstr ""
-"{$editors}:
\n"
-"
\n"
-"Suositus käsikirjoitusta ”{$submissionTitle}” koskien on:{$recommendation}<"
-"br />\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
"
-
-msgid "emails.copyeditRequest.subject"
-msgstr "Teknistä toimittamista pyydetään"
-
-msgid "emails.copyeditRequest.body"
-msgstr ""
-"Hyvä {$participantName},
\n"
-"
\n"
-"Pyydän, että aloitatte käsikirjoituksen "{$submissionTitle}" "
-"teknisen toimittamisen seuraavien vaiheiden mukaisesti:
\n"
-"
\n"
-"1. Klikatkaa alla olevaa Käsikirjoituksen URL-linkkiä.
\n"
-"2. Kirjautukaa julkaisijan sivustolle ja klikatkaa tiedostoa joka näkyy "
-"Vaihe 1 -kohdassa.
\n"
-"3. Tutustukaa verkkosivulle lähetettyihin teknisen toimittamisen ohjeisiin.<"
-"br />\n"
-"4. Avatkaa ladatut tiedostot ja toimittakaa ne teknisesti. Voitte "
-"tarvittaessa samalla lisätä kysymyksiä kirjoittajalle.
\n"
-"5. Tallentakaa teknisesti toimitetut tiedostot ja ladatkaa ne Teknisen "
-"toimittamisen ensimmäiseen vaiheeseen (Vaihe 1).
\n"
-"6. Lähettäkää toimittajalle SÄHKÖPOSTIPOHJAN NIMI sähköposti.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"Käyttäjätunnus: {$participantUsername}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.layoutRequest.subject"
-msgstr "Julkaistavia tiedostoja pyydetään"
-
-msgid "emails.layoutRequest.body"
-msgstr ""
-"Hyvä {$participantName},
\n"
-"
\n"
-"Käsikirjoitus "{$submissionTitle}" tulee nyt taittaa "
-"julkaistaviksi tiedostoiksi seuraavien vaiheiden mukaisesti:
\n"
-"1. Klikatkaa alla olevaa Käsikirjoituksen URL-linkkiä.
\n"
-"2. Kirjautukaa julkaisijan sivustolle ja käyttäkää taiton tiedostoja "
-"laatiaksenne julkaistavat tiedostot julkaisijan standardien mukaisesti.
"
-"\n"
-"3. Lähettäkää toimittajalle \"Taiton julkaistavat tiedostot valmiita\" "
-"-sähköposti.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"Käyttäjätunnus: {$participantUsername}
\n"
-"
\n"
-"Mikäli ette voi ryhtyä tähän tehtävään juuri nyt, tai teillä on kysyttävää, "
-"otattehan minuun yhteyttä. Kiitos panoksestanne tämän julkaisijan hyväksi."
-
-msgid "emails.layoutComplete.subject"
-msgstr "Taiton julkaistavat tiedostot valmiita"
-
-msgid "emails.layoutComplete.body"
-msgstr ""
-"Hyvä {$editorialContactName},
\n"
-"
\n"
-"Käsikirjoituksen "{$submissionTitle}" julkaistavat tiedostot on nyt taitettu ja ne ovat valmiit oikolukua varten.
\n"
-"
\n"
-"Mikäli teillä on kysyttävää, otattehan minuun yhteyttä.
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$signatureFullName}"
-
-msgid "emails.indexRequest.subject"
-msgstr "Indeksointia pyydetään"
-
-msgid "emails.indexRequest.body"
-msgstr ""
-"Hyvä {$participantName},
\n"
-"
\n"
-"Käsikirjoitukselle "{$submissionTitle}" tulee nyt luoda "
-"indeksointitiedot seuraavien vaiheiden mukaisesti:
\n"
-"1. Klikatkaa alla olevaa Käsikirjoituksen URL-linkkiä.
\n"
-"2. Kirjautukaa julkaisijan sivustolle ja käyttäkää Sivujen korjausvedokset -"
-"tiedostoa laatiaksenne julkaistavat tiedostot julkaisijan standardien "
-"mukaisesti.
\n"
-"3. Lähettäkää toimittajalle \"Indeksoinnin julkaistavat tiedostot valmiita\" "
-"-sähköposti.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"Käyttäjätunnus: {$participantUsername}
\n"
-"
\n"
-"Mikäli ette voi ryhtyä tähän tehtävään juuri nyt, tai teillä on kysyttävää, "
-"otattehan minuun yhteyttä. Kiitos panoksestanne tämän julkaisun hyväksi.
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.indexComplete.subject"
-msgstr "Indeksoinnin julkaistavat tiedostot valmiita"
-
-msgid "emails.indexComplete.body"
-msgstr ""
-"Hyvä {$editorialContactName},
\n"
-"
\n"
-"Käsikirjoituksen "{$submissionTitle}" indeksointitiedot on nyt luotu ja ne ovat valmiit oikolukua varten.
\n"
-"
\n"
-"Mikäli teillä on kysyttävää, otattehan minuun yhteyttä.
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$signatureFullName}"
-
-msgid "emails.emailLink.subject"
-msgstr "Mahdollisesti kiinnostava käsikirjoitus"
-
-msgid "emails.emailLink.body"
-msgstr "Ajattelin, että sinua saattaisi kiinnostaa {$authorName}:n kirjoittama \"{$submissionTitle}\". Sen julkaisutiedot ovat {$contextName}, Nide {$volume} Nro. {$number} ({$year}), ja se löytyy osoitteesta "{$monographUrl}"."
-
-msgid "emails.notifySubmission.subject"
-msgstr "Ilmoitus käsikirjoitukseen liittyen"
-
-msgid "emails.notifySubmission.body"
-msgstr ""
-"Sinulle on saapunut viesti käyttäjältä {$sender} käsikirjoitukseen "{$submissionTitle}" ({$monographDetailsUrl}) liittyen:
\n"
-"
\n"
-"\t\t{$message}
\n"
-"
\n"
-"\t\t"
-
-msgid "emails.notifyFile.subject"
-msgstr "Ilmoitus käsikirjoitustiedostoon liittyen"
-
-msgid "emails.notifyFile.body"
-msgstr ""
-"Sinulle on saapunut viesti käyttäjältä {$sender} käsikirjoitukseen {$submissionTitle} ({$monographDetailsUrl} liittyvää tiedostoa "{$fileName}" koskien:
\n"
-"
\n"
-"\t\t{$message}
\n"
-"
\n"
-"\t\t"
-
-msgid "emails.notificationCenterDefault.subject"
-msgstr "Viesti julkaisijaa {$contextName} koskien"
-
-msgid "emails.notificationCenterDefault.body"
-msgstr "Kirjoita viesti."
-
-msgid "emails.editorDecisionInitialDecline.subject"
-msgstr "Toimittajan päätös"
-
-msgid "emails.editorDecisionInitialDecline.body"
-msgstr ""
-"\n"
-"\t\t\tHyvä {$authorName},
\n"
-"
\n"
-"Olemme tehneet päätöksen käsikirjoitustanne "{$submissionTitle}" "
-"koskien.
\n"
-"
\n"
-"Päätöksemme on: Käsikirjoitus hylätty
\n"
-"
\n"
-"Käsikirjoituksen URL: {$submissionUrl}
\n"
-"
\n"
-"Ystävällisin terveisin,
\n"
-"{$editorialContactSignature}
\n"
-"\t\t"
-
-msgid "emails.passwordResetConfirm.description"
-msgstr ""
-"Tämä sähköpostiviesti lähetetään rekisteröityneelle käyttäjälle, joka "
-"ilmoittaa unohtaneensa salasanansa tai joka ei pysty kirjautumaan. Viesti "
-"sisältää ULR:n, jonka kautta salasana voidaan vaihtaa."
-
-msgid "emails.announcement.description"
-msgstr "This email is sent when a new announcement is created."
-
-msgid "emails.announcement.body"
-msgstr ""
-"{$title}
\n"
-"
\n"
-"{$summary}
\n"
-"
\n"
-"Verkkosivuillamme voit lukea koko ilmoituksen."
-
-msgid "emails.announcement.subject"
-msgstr "{$title}"
-
-msgid "emails.statisticsReportNotification.description"
-msgstr ""
-"This email is automatically sent monthly to editors and journal managers to "
-"provide them a system health overview."
-
-msgid "emails.statisticsReportNotification.body"
-msgstr ""
-"\n"
-"{$name},
\n"
-"
\n"
-"Toimitustyön raportti {$month}/{$year} on nyt valmis. Kuukautta koskevat "
-"keskeiset luvut ovat alla.
\n"
-"\n"
-"\t- Uudet käsikirjoitukset: {$newSubmissions}
\n"
-"\t- Hylätyt käsikirjoitukset: {$declinedSubmissions}
\n"
-"\t- Hyväksytyt käsikirjoitukset: {$acceptedSubmissions}
\n"
-"\t- Käsikirjoitusten kokonaismäärä: {$totalSubmissions}
\n"
-"
\n"
-"Kirjaudu julkaisuun nähdäksesi yksityiskohtaisemmat toimitustyön tilastot ja julkaistujen kirjojen tilastot. Kopio tämän "
-"kuun toimitustyön tilastoista on liitteenä.
\n"
-"
\n"
-"Terveisin,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.statisticsReportNotification.subject"
-msgstr "Toimitustyötä koskeva raportti {$month}/{$year}"
-
-msgid "emails.editorDecisionInitialDecline.description"
-msgstr ""
-"This email is send to the author if the editor declines his submission "
-"initially, before the review stage"
-
-msgid "emails.notificationCenterDefault.description"
-msgstr ""
-"The default (blank) message used in the Notification Center Message "
-"Listbuilder."
-
-msgid "emails.notifyFile.description"
-msgstr "A notification from a user sent from a file information center modal"
-
-msgid "emails.notifySubmission.description"
-msgstr ""
-"A notification from a user sent from a submission information center modal."
-
-msgid "emails.emailLink.description"
-msgstr ""
-"This email template provides a registered reader with the opportunity to "
-"send information about a monograph to somebody who may be interested. It is "
-"available via the Reading Tools and must be enabled by the Press Manager in "
-"the Reading Tools Administration page."
-
-msgid "emails.indexComplete.description"
-msgstr ""
-"This email from the Indexer to the Series Editor notifies them that the "
-"index creation process has been completed."
-
-msgid "emails.indexRequest.description"
-msgstr ""
-"This email from the Series Editor to the Indexer notifies them that they "
-"have been assigned the task of creating indexes for a submission. It "
-"provides information about the submission and how to access it."
-
-msgid "emails.layoutComplete.description"
-msgstr ""
-"This email from the Layout Editor to the Series Editor notifies them that "
-"the layout process has been completed."
-
-msgid "emails.layoutRequest.description"
-msgstr ""
-"This email from the Series Editor to the Layout Editor notifies them that "
-"they have been assigned the task of performing layout editing on a "
-"submission. It provides information about the submission and how to access "
-"it."
-
-msgid "emails.copyeditRequest.description"
-msgstr ""
-"This email is sent by a Series Editor to a submission's Copyeditor to "
-"request that they begin the copyediting process. It provides information "
-"about the submission and how to access it."
-
-msgid "emails.editorRecommendation.description"
-msgstr ""
-"This email from the recommending Editor or Section Editor to the decision "
-"making Editors or Section Editors notifies them of a final recommendation "
-"regarding the submission."
-
-msgid "emails.editorDecisionDecline.description"
-msgstr ""
-"This email from the Editor or Series Editor to an Author notifies them of a "
-"final decision regarding their submission."
-
-msgid "emails.editorDecisionResubmit.description"
-msgstr ""
-"This email from the Editor or Series Editor to an Author notifies them of a "
-"final decision regarding their submission."
-
-msgid "emails.editorDecisionRevisions.description"
-msgstr ""
-"This email from the Editor or Series Editor to an Author notifies them of a "
-"final decision regarding their submission."
-
-msgid "emails.editorDecisionSendToProduction.description"
-msgstr ""
-"This email from the Editor or Series Editor to an Author notifies them that "
-"their submission is being sent to production."
-
-msgid "emails.editorDecisionSendToExternal.description"
-msgstr ""
-"This email from the Editor or Series Editor to an Author notifies them that "
-"their submission is being sent to an external review."
-
-msgid "emails.editorDecisionAccept.description"
-msgstr ""
-"This email from the Editor or Series Editor to an Author notifies them of a "
-"final decision regarding their submission."
-
-msgid "emails.reviewRemindAutoOneclick.description"
-msgstr ""
-"This email is automatically sent when a reviewer's due date elapses (see "
-"Review Options under Settings > Workflow > Review) and one-click reviewer "
-"access is enabled. Scheduled tasks must be enabled and configured (see the "
-"site configuration file)."
-
-msgid "emails.reviewRemindAuto.description"
-msgstr ""
-"This email is automatically sent when a reviewer's due date elapses (see "
-"Review Options under Settings > Workflow > Review) and one-click reviewer "
-"access is disabled. Scheduled tasks must be enabled and configured (see the "
-"site configuration file)."
-
-msgid "emails.reviewRemindOneclick.description"
-msgstr ""
-"This email is sent by a Series Editor to remind a reviewer that their review "
-"is due."
-
-msgid "emails.reviewRemind.description"
-msgstr ""
-"This email is sent by a Series Editor to remind a reviewer that their review "
-"is due."
-
-msgid "emails.reviewAck.description"
-msgstr ""
-"This email is sent by a Series Editor to confirm receipt of a completed "
-"review and thank the reviewer for their contributions."
-
-msgid "emails.reviewDecline.description"
-msgstr ""
-"This email is sent by a Reviewer to the Series Editor in response to a "
-"review request to notify the Series Editor that the review request has been "
-"declined."
-
-msgid "emails.reviewConfirm.description"
-msgstr ""
-"This email is sent by a Reviewer to the Series Editor in response to a "
-"review request to notify the Series Editor that the review request has been "
-"accepted and will be completed by the specified date."
-
-msgid "emails.reviewReinstate.description"
-msgstr ""
-"This email is sent by the Section Editor to a Reviewer who has a submission "
-"review in progress to notify them that the review has been cancelled."
-
-msgid "emails.reviewReinstate.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Haluaisimme uusia käsikirjoitusta "{$submissionTitle}," koskevan "
-"arviointipyyntömme julkaisijalta {$contextName}. \n"
-"Toivomme, että pystytte ottamaan arvioinnin vastaan.
\n"
-"
\n"
-"Mikäli teillä on kysymyksiä, olkaa yhteydessä."
-
-msgid "emails.reviewReinstate.subject"
-msgstr "Arviointipyyntö uusittu"
-
-msgid "emails.reviewCancel.description"
-msgstr ""
-"This email is sent by the Series Editor to a Reviewer who has a submission "
-"review in progress to notify them that the review has been cancelled."
-
-msgid "emails.reviewRequestAttached.description"
-msgstr ""
-"This email is sent by the Series Editor to a Reviewer to request that they "
-"accept or decline the task of reviewing a submission. It includes the "
-"submission as an attachment. This message is used when the Email-Attachment "
-"Review Process is selected in Management > Settings > Workflow > Review. ("
-"Otherwise see REVIEW_REQUEST.)"
-
-msgid "emails.reviewRequestRemindAutoOneclick.description"
-msgstr ""
-"This email is automatically sent when a reviewer's confirmation due date "
-"elapses (see Review Options under Settings > Workflow > Review) and one-"
-"click reviewer access is enabled. Scheduled tasks must be enabled and "
-"configured (see the site configuration file)."
-
-msgid "emails.reviewRequestRemindAuto.description"
-msgstr ""
-"This email is automatically sent when a reviewer's confirmation due date "
-"elapses (see Review Options under Settings > Workflow > Review) and one-"
-"click reviewer access is disabled. Scheduled tasks must be enabled and "
-"configured (see the site configuration file)."
-
-msgid "emails.reviewRequestOneclick.description"
-msgstr ""
-"This email from the Series Editor to a Reviewer requests that the reviewer "
-"accept or decline the task of reviewing a submission. It provides "
-"information about the submission such as the title and abstract, a review "
-"due date, and how to access the submission itself. This message is used when "
-"the Standard Review Process is selected in Management > Settings > Workflow >"
-" Review, and one-click reviewer access is enabled."
-
-msgid "emails.reviewRequest.description"
-msgstr ""
-"This email from the Series Editor to a Reviewer requests that the reviewer "
-"accept or decline the task of reviewing a submission. It provides "
-"information about the submission such as the title and abstract, a review "
-"due date, and how to access the submission itself. This message is used when "
-"the Standard Review Process is selected in Management > Settings > Workflow >"
-" Review. (Otherwise see REVIEW_REQUEST_ATTACHED.)"
-
-msgid "emails.editorAssign.description"
-msgstr ""
-"This email notifies a Series Editor that the Editor has assigned them the "
-"task of overseeing a submission through the editing process. It provides "
-"information about the submission and how to access the press site."
-
-msgid "emails.submissionAckNotUser.description"
-msgstr ""
-"This email, when enabled, is automatically sent to the other authors who are "
-"not users within OMP specified during the submission process."
-
-msgid "emails.submissionAck.description"
-msgstr ""
-"This email, when enabled, is automatically sent to an author when he or she "
-"completes the process of submitting a manuscript to the press. It provides "
-"information about tracking the submission through the process and thanks the "
-"author for the submission."
-
-msgid "emails.publishNotify.description"
-msgstr ""
-"This email is sent to registered readers via the \"Notify Users\" link in "
-"the Editor's User Home. It notifies readers of a new book and invites them "
-"to visit the press at a supplied URL."
-
-msgid "emails.reviewerRegister.description"
-msgstr ""
-"This email is sent to a newly registered reviewer to welcome them to the "
-"system and provide them with a record of their username and password."
-
-msgid "emails.userValidate.description"
-msgstr ""
-"This email is sent to a newly registered user to welcome them to the system "
-"and provide them with a record of their username and password."
-
-msgid "emails.userRegister.description"
-msgstr ""
-"This email is sent to a newly registered user to welcome them to the system "
-"and provide them with a record of their username and password."
-
-msgid "emails.passwordReset.description"
-msgstr ""
-"Tämä sähköposti lähetetään rekisteröityneille käyttäjille, kun he ovat "
-"onnistuneesti uusineet salasanansa PASSWORD_RESET_CONFIRM-sähköpostipohjan "
-"kuvaamalla tavalla."
-
-msgid "emails.notification.description"
-msgstr ""
-"Sähköposti lähetetään rekisteröityneille käyttäjille, jotka ovat tilanneet "
-"tämän tyyppiset ilmoitukset sähköpostilla."
diff --git a/locale/fi_FI/locale.po b/locale/fi_FI/locale.po
deleted file mode 100644
index 7bc414339f1..00000000000
--- a/locale/fi_FI/locale.po
+++ /dev/null
@@ -1,1526 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
-"PO-Revision-Date: 2020-12-11 19:15+0000\n"
-"Last-Translator: Antti-Jussi Nygård \n"
-"Language-Team: Finnish \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 "submission.round"
-msgstr "Kierros {$round}"
-
-msgid "monograph.audience"
-msgstr "Kohderyhmä"
-
-msgid "monograph.coverImage"
-msgstr "Kansikuva"
-
-msgid "monograph.currentCoverImage"
-msgstr "Nykyinen kuva"
-
-msgid "monograph.currentCoverImageReload"
-msgstr "Tallenna muutokset nähdäksesi uuden kansikuvan."
-
-msgid "monograph.audience.rangeQualifier"
-msgstr "Kohderyhmän tarkenteen tyyppi"
-
-msgid "monograph.audience.rangeFrom"
-msgstr "Kohderyhmän tarkenne (alkaen)"
-
-msgid "monograph.audience.rangeTo"
-msgstr "Kohderyhmän tarkenne (asti)"
-
-msgid "monograph.audience.rangeExact"
-msgstr "Kohderyhmän tarkenne (tarkalleen)"
-
-msgid "monograph.languages"
-msgstr "Kielet (englanti, ranska, espanja)"
-
-msgid "monograph.publicationFormats"
-msgstr "Julkaisumuodot"
-
-msgid "monograph.publicationFormat"
-msgstr "Muoto"
-
-msgid "monograph.publicationFormatDetails"
-msgstr "Tietoja saatavilla olevasta julkaisumuodosta: {$format}"
-
-msgid "monograph.miscellaneousDetails"
-msgstr "Tietoja tästä kirjasta"
-
-msgid "monograph.carousel.publicationFormats"
-msgstr "Muodot:"
-
-msgid "monograph.type"
-msgstr "Käsikirjoitustyyppi"
-
-msgid "submission.pageProofs"
-msgstr "Sivujen korjausvedokset"
-
-msgid "monograph.proofReadingDescription"
-msgstr "Taittaja lataa tuotantovalmiit tiedostot, jotka on täällä valmisteltu julkaisemista varten. Klikkaa Valitse-kohtaa valitaksesi kirjoittajia ja muita henkilöitä oikolukemaan sivujen korjausvedokset, jotka on korjattu ja ladattu hyväksyttäväksi ennen julkaisemista."
-
-msgid "monograph.task.addNote"
-msgstr "Lisää tehtävään"
-
-msgid "monograph.accessLogoOpen.altText"
-msgstr "Avoin saatavuus"
-
-msgid "monograph.publicationFormat.imprint"
-msgstr "Kustantajan markkinointinimi (tuotenimi)"
-
-msgid "monograph.publicationFormat.pageCounts"
-msgstr "Sivumäärät"
-
-msgid "monograph.publicationFormat.frontMatterCount"
-msgstr "Alkusivut"
-
-msgid "monograph.publicationFormat.backMatterCount"
-msgstr "Lopputekstit"
-
-msgid "monograph.publicationFormat.productComposition"
-msgstr "Tuotteen kokoonpano"
-
-msgid "monograph.publicationFormat.productFormDetailCode"
-msgstr "Tuotteen tiedot (ei pakollinen)"
-
-msgid "monograph.publicationFormat.productIdentifierType"
-msgstr "Tuotteen tunnistetiedot"
-
-msgid "monograph.publicationFormat.price"
-msgstr "Hinta"
-
-msgid "monograph.publicationFormat.priceRequired"
-msgstr "Hinta vaaditaan."
-
-msgid "monograph.publicationFormat.priceType"
-msgstr "Hintatyyppi"
-
-msgid "monograph.publicationFormat.discountAmount"
-msgstr "Alennusprosentti, mikäli käytössä"
-
-msgid "monograph.publicationFormat.productAvailability"
-msgstr "Tuotteen saatavuus"
-
-msgid "monograph.publicationFormat.returnInformation"
-msgstr "Palautettavuustiedot"
-
-msgid "monograph.publicationFormat.digitalInformation"
-msgstr "Digitaaliset tiedot"
-
-msgid "monograph.publicationFormat.productDimensions"
-msgstr "Fyysiset mitat"
-
-msgid "monograph.publicationFormat.productDimensionsSeparator"
-msgstr " x "
-
-msgid "monograph.publicationFormat.productFileSize"
-msgstr "Tiedoston koko megatavuina (Mt)"
-
-msgid "monograph.publicationFormat.productFileSize.override"
-msgstr "Annetaanko oma tiedostokoon arvo?"
-
-msgid "monograph.publicationFormat.productHeight"
-msgstr "Korkeus"
-
-msgid "monograph.publicationFormat.productThickness"
-msgstr "Paksuus"
-
-msgid "monograph.publicationFormat.productWeight"
-msgstr "Paino"
-
-msgid "monograph.publicationFormat.productWidth"
-msgstr "Leveys"
-
-msgid "monograph.publicationFormat.countryOfManufacture"
-msgstr "Valmistusmaa"
-
-msgid "monograph.publicationFormat.technicalProtection"
-msgstr "Digitaalinen tekninen suojaus"
-
-msgid "monograph.publicationFormat.productRegion"
-msgstr "Tuotteen jakelualue"
-
-msgid "monograph.publicationFormat.taxRate"
-msgstr "Verokanta"
-
-msgid "monograph.publicationFormat.taxType"
-msgstr "Verotyyppi"
-
-msgid "monograph.publicationFormat.formatMetadata"
-msgstr "Muodon metatiedot"
-
-msgid "monograph.publicationFormat.isApproved"
-msgstr "Sisällytä tämän julkaisumuodon metatiedot tämän kirjan luettelomerkintöihin."
-
-msgid "monograph.publicationFormat.noMarketsAssigned"
-msgstr "Markkina- ja hintatiedot puuttuvat."
-
-msgid "monograph.publicationFormat.noCodesAssigned"
-msgstr "Tunnistuskoodi puuttuu."
-
-msgid "monograph.publicationFormat.missingONIXFields"
-msgstr "Joitakin metatietokenttiä puuttuu."
-
-msgid "monograph.publicationFormat.formatDoesNotExist"
-msgstr "Valitsemaasi julkaisumuotoa ei ole enää olemassa tälle kirjalle.
"
-
-msgid "monograph.publicationFormat.openTab"
-msgstr "Avaa julkaisumuodon välilehti."
-
-msgid "grid.catalogEntry.publicationFormatType"
-msgstr "Julkaisumuoto"
-
-msgid "grid.catalogEntry.nameRequired"
-msgstr "Nimi vaaditaan."
-
-msgid "grid.catalogEntry.validPriceRequired"
-msgstr "Kelvollinen hinta vaaditaan."
-
-msgid "grid.catalogEntry.publicationFormatDetails"
-msgstr "Muodon tiedot"
-
-msgid "grid.catalogEntry.physicalFormat"
-msgstr "Fyysinen muoto"
-
-msgid "grid.catalogEntry.remotelyHostedContent"
-msgstr "Tämä muoto tulee saataville erilliselle verkkosivustolle"
-
-msgid "grid.catalogEntry.remoteURL"
-msgstr "Etä-ylläpidetyn sisällön URL-osoite"
-
-msgid "grid.catalogEntry.monographRequired"
-msgstr "Kirjan tunniste vaaditaan."
-
-msgid "grid.catalogEntry.publicationFormatRequired"
-msgstr "Julkaisumuoto on valittava."
-
-msgid "grid.catalogEntry.availability"
-msgstr "Saatavuus"
-
-msgid "grid.catalogEntry.isAvailable"
-msgstr "Saatavilla"
-
-msgid "grid.catalogEntry.isNotAvailable"
-msgstr "Ei saatavilla"
-
-msgid "grid.catalogEntry.proof"
-msgstr "Korjausvedos"
-
-msgid "grid.catalogEntry.approvedRepresentation.title"
-msgstr "Muodon hyväksyminen"
-
-msgid "grid.catalogEntry.approvedRepresentation.message"
-msgstr "Hyväksy tämän muodon metatiedot. Metatiedot voidaan tarkistaa Luettelomerkintä-paneelista.
"
-
-msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
-msgstr "Näytä, että tämän muodon metatietoja ei ole hyväksytty.
"
-
-msgid "grid.catalogEntry.availableRepresentation.title"
-msgstr "Muodon saatavuus"
-
-msgid "grid.catalogEntry.availableRepresentation.message"
-msgstr "Tee tämä muoto lukijoiden saatavillaolevaksi. Ladattavat tiedostot sekä kaikki muut jaetut materiaalit tulevat näkyviin kirjan luettelomerkintöihin.
"
-
-msgid "grid.catalogEntry.availableRepresentation.removeMessage"
-msgstr "Tämä muoto poistetaan lukijoiden saatavilta. Mitkään ladattavat tiedostot tai muut jaetut materiaalit eivät ole enää näkyvillä kirjan luettelomerkinnöissä.
"
-
-msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
-msgstr "Luettelomerkintää ei hyväksytty."
-
-msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
-msgstr "Muotoa ei luettelomerkinnässä."
-
-msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
-msgstr "Korjausvedosta ei hyväksytty."
-
-msgid "grid.catalogEntry.availableRepresentation.approved"
-msgstr "Hyväksytty"
-
-msgid "grid.catalogEntry.availableRepresentation.notApproved"
-msgstr "Odottaa hyväksyntää"
-
-msgid "grid.catalogEntry.fileSizeRequired"
-msgstr "Digitaalisten muotojen tiedostokoko vaaditaan."
-
-msgid "grid.catalogEntry.productAvailabilityRequired"
-msgstr "Tuotteen saatavuuskoodi vaaditaan."
-
-msgid "grid.catalogEntry.productCompositionRequired"
-msgstr "Tuotteen kokoonpanokoodi on valittava."
-
-msgid "grid.catalogEntry.identificationCodeValue"
-msgstr "Koodi"
-
-msgid "grid.catalogEntry.identificationCodeType"
-msgstr "ONIX-koodityyppi"
-
-msgid "grid.catalogEntry.codeRequired"
-msgstr "Tunnistuskoodi vaaditaan."
-
-msgid "grid.catalogEntry.valueRequired"
-msgstr "Arvo vaaditaan."
-
-msgid "grid.catalogEntry.salesRights"
-msgstr "Myyntioikeudet"
-
-msgid "grid.catalogEntry.salesRightsValue"
-msgstr "Koodi"
-
-msgid "grid.catalogEntry.salesRightsType"
-msgstr "Myyntioikeustyyppi"
-
-msgid "grid.catalogEntry.salesRightsROW"
-msgstr "Ulkomaat (ROW)?"
-
-msgid "grid.catalogEntry.salesRightsROW.tip"
-msgstr "Rastita tämä ruutu (alla), jos haluat käyttää tätä Myyntioikeudet-merkintää kaikenkattavana julkaisumuodollesi. Maita ja alueita ei tällöin tarvitse valita."
-
-msgid "grid.catalogEntry.oneROWPerFormat"
-msgstr "Tälle julkaisumuodolle on jo määritelty Ulkomaat-myyntityyppi."
-
-msgid "grid.catalogEntry.countries"
-msgstr "Maat"
-
-msgid "grid.catalogEntry.regions"
-msgstr "Alueet"
-
-msgid "grid.catalogEntry.included"
-msgstr "Sisällytetään"
-
-msgid "grid.catalogEntry.excluded"
-msgstr "Ei sisällytetä"
-
-msgid "grid.catalogEntry.markets"
-msgstr "Markkina-alueet"
-
-msgid "grid.catalogEntry.marketTerritory"
-msgstr "Alue"
-
-msgid "grid.catalogEntry.publicationDates"
-msgstr "Julkaisupäivämäärät"
-
-msgid "grid.catalogEntry.roleRequired"
-msgstr "Edustajan rooli vaaditaan."
-
-msgid "grid.catalogEntry.dateFormatRequired"
-msgstr "Aikamääreen muoto vaaditaan."
-
-msgid "grid.catalogEntry.dateValue"
-msgstr "Päivämäärä"
-
-msgid "grid.catalogEntry.dateRole"
-msgstr "Rooli"
-
-msgid "grid.catalogEntry.dateFormat"
-msgstr "Aikamääreen muoto"
-
-msgid "grid.catalogEntry.dateRequired"
-msgstr "Päivämäärä vaaditaan. Aikamääreen arvon on vastattava valittua aikamääreen muotoa."
-
-msgid "grid.catalogEntry.representatives"
-msgstr "Edustajat"
-
-msgid "grid.catalogEntry.representativeType"
-msgstr "Edustajatyyppi"
-
-msgid "grid.catalogEntry.agentsCategory"
-msgstr "Agentit"
-
-msgid "grid.catalogEntry.suppliersCategory"
-msgstr "Välittäjät"
-
-msgid "grid.catalogEntry.agent"
-msgstr "Agentti"
-
-msgid "grid.catalogEntry.agentTip"
-msgstr "Mikäli haluat, voit valita agentin edustamaan sinua määritellyllä alueella (ei pakollinen)."
-
-msgid "grid.catalogEntry.supplier"
-msgstr "Välittäjä"
-
-msgid "grid.catalogEntry.representativeRoleChoice"
-msgstr "Valitse rooli:"
-
-msgid "grid.catalogEntry.representativeRole"
-msgstr "Rooli"
-
-msgid "grid.catalogEntry.representativeName"
-msgstr "Nimi"
-
-msgid "grid.catalogEntry.representativePhone"
-msgstr "Puhelin"
-
-msgid "grid.catalogEntry.representativeEmail"
-msgstr "Sähköposti"
-
-msgid "grid.catalogEntry.representativeWebsite"
-msgstr "Verkkosivusto"
-
-msgid "grid.catalogEntry.representativeIdValue"
-msgstr "Edustajan tunniste"
-
-msgid "grid.catalogEntry.representativeIdType"
-msgstr "Edustajan tunnisteen tyyppi (suositeltava tunniste: yrityksen GLN-numero)"
-
-msgid "grid.catalogEntry.representativesDescription"
-msgstr "Voit jättää seuraavan osion tyhjäksi, jos tarjoat itse omia palveluitasi asiakkaillesi."
-
-msgid "grid.action.addRepresentative"
-msgstr "Lisää edustaja"
-
-msgid "grid.action.editRepresentative"
-msgstr "Muokkaa tätä edustajaa"
-
-msgid "grid.action.deleteRepresentative"
-msgstr "Poista tämä edustaja"
-
-msgid "spotlight"
-msgstr "Nosto"
-
-msgid "spotlight.spotlights"
-msgstr "Nostot"
-
-msgid "spotlight.noneExist"
-msgstr "Ei yhtään nostoa."
-
-msgid "spotlight.title.homePage"
-msgstr "Nostetut"
-
-msgid "spotlight.author"
-msgstr "Kirjoittaja, "
-
-msgid "grid.content.spotlights.spotlightItemTitle"
-msgstr "Nostettu nimeke"
-
-msgid "grid.content.spotlights.category.homepage"
-msgstr "Etusivu"
-
-msgid "grid.content.spotlights.form.location"
-msgstr "Noston sijainti"
-
-msgid "grid.content.spotlights.form.item"
-msgstr "Anna nostettava nimeke (automaattinen täydennys)"
-
-msgid "grid.content.spotlights.form.title"
-msgstr "Noston otsikko"
-
-msgid "grid.content.spotlights.form.type.book"
-msgstr "Kirja"
-
-msgid "grid.content.spotlights.itemRequired"
-msgstr "Kohde vaaditaan."
-
-msgid "grid.content.spotlights.titleRequired"
-msgstr "Noston otsikko on pakollinen."
-
-msgid "grid.content.spotlights.locationRequired"
-msgstr "Valitse tämän noston sijainti."
-
-msgid "grid.action.editSpotlight"
-msgstr "Muokkaa tätä nostoa"
-
-msgid "grid.action.deleteSpotlight"
-msgstr "Poista tämä nosto"
-
-msgid "grid.action.addSpotlight"
-msgstr "Lisää nosto"
-
-msgid "manager.series.open"
-msgstr "Käsikirjoitukset vapaasti lähetettävissä"
-
-msgid "manager.series.indexed"
-msgstr "Indeksoitu"
-
-msgid "grid.libraryFiles.column.files"
-msgstr "Tiedostot"
-
-msgid "grid.action.catalogEntry"
-msgstr "Näytä luettelomerkintä-lomake"
-
-msgid "grid.action.formatInCatalogEntry"
-msgstr "Muoto näkyy luettelomerkinnässä"
-
-msgid "grid.action.editFormat"
-msgstr "Muokkaa tätä muotoa"
-
-msgid "grid.action.deleteFormat"
-msgstr "Poista tämä muoto"
-
-msgid "grid.action.addFormat"
-msgstr "Lisää julkaisumuoto"
-
-msgid "grid.action.approveProof"
-msgstr "Hyväksy korjausvedos indeksointia ja luetteloon sisällyttämistä varten"
-
-msgid "grid.action.pageProofApproved"
-msgstr "Sivujen korjausvedokset -tiedosto on valmis julkaistavaksi"
-
-msgid "grid.action.addAnnouncement"
-msgstr "Lisää ilmoitus"
-
-msgid "grid.action.newCatalogEntry"
-msgstr "Uusi luettelomerkintä"
-
-msgid "grid.action.publicCatalog"
-msgstr "Näytä tämä kohde luettelossa"
-
-msgid "grid.action.feature"
-msgstr "Näytä tai piilota esittelynäyttö"
-
-msgid "grid.action.featureMonograph"
-msgstr "Esittele luettelokarusellissa"
-
-msgid "grid.action.releaseMonograph"
-msgstr "Merkitse tämä käsikirjoitus uutuudeksi"
-
-msgid "grid.action.manageCategories"
-msgstr "Määritä kategoriat tälle julkaisijalle"
-
-msgid "grid.action.manageSeries"
-msgstr "Määritä sarjat tälle julkaisijalle"
-
-msgid "grid.action.addCode"
-msgstr "Lisää koodi"
-
-msgid "grid.action.editCode"
-msgstr "Muokkaa tätä koodia"
-
-msgid "grid.action.deleteCode"
-msgstr "Poista tämä koodi"
-
-msgid "grid.action.addRights"
-msgstr "Lisää myyntioikeudet"
-
-msgid "grid.action.editRights"
-msgstr "Muokkaa näitä oikeuksia"
-
-msgid "grid.action.deleteRights"
-msgstr "Poista nämä oikeudet"
-
-msgid "grid.action.addMarket"
-msgstr "Lisää markkina"
-
-msgid "grid.action.editMarket"
-msgstr "Muokkaa tätä markkinaa"
-
-msgid "grid.action.deleteMarket"
-msgstr "Poista tämä markkina"
-
-msgid "grid.action.addDate"
-msgstr "Lisää julkaisupäivämäärä"
-
-msgid "grid.action.editDate"
-msgstr "Muokkaa tätä päivämäärää"
-
-msgid "grid.action.deleteDate"
-msgstr "Poista tämä päivämäärä"
-
-msgid "grid.action.createContext"
-msgstr "Luo uusi julkaisija"
-
-msgid "grid.action.publicationFormatTab"
-msgstr "Näytä julkaisumuodon välilehti"
-
-msgid "grid.action.moreAnnouncements"
-msgstr "Siirry julkaisijan Ilmoitukset-sivulle"
-
-msgid "grid.action.submissionEmail"
-msgstr "Klikkaa lukeaksesi tämän sähköpostin"
-
-msgid "grid.action.approveProofs"
-msgstr "Näytä korjausvedosten kehikko"
-
-msgid "grid.action.proofApproved"
-msgstr "Muoto on oikoluettu"
-
-msgid "grid.action.availableRepresentation"
-msgstr "Hyväksy/hylkää tämä muoto"
-
-msgid "grid.action.formatAvailable"
-msgstr "Vaihda tämän muodon saatavuutta (saatavilla/ei saatavilla)"
-
-msgid "grid.reviewAttachments.add"
-msgstr "Lisää arviointiin liite"
-
-msgid "grid.reviewAttachments.availableFiles"
-msgstr "Saatavilla olevat tiedostot"
-
-msgid "series.series"
-msgstr "Sarja"
-
-msgid "series.featured.description"
-msgstr "Tämä sarja tulee näkyville päävalikkoon"
-
-msgid "series.path"
-msgstr "Polku"
-
-msgid "catalog.manage"
-msgstr "Luettelon hallinnointi"
-
-msgid "catalog.manage.newReleases"
-msgstr "Uutuudet"
-
-msgid "catalog.manage.category"
-msgstr "Kategoria"
-
-msgid "catalog.manage.series"
-msgstr "Sarja"
-
-msgid "catalog.manage.series.issn"
-msgstr "ISSN"
-
-msgid "catalog.manage.series.issn.validation"
-msgstr "Anna kelvollinen ISSN."
-
-msgid "catalog.manage.series.issn.equalValidation"
-msgstr "Verkkokirjan ja painetun kirjan ISSN-tunnusten tulee erota toisistaan."
-
-msgid "catalog.manage.series.onlineIssn"
-msgstr "Verkkokirjan ISSN"
-
-msgid "catalog.manage.series.printIssn"
-msgstr "Painetun kirjan ISSN"
-
-msgid "catalog.selectSeries"
-msgstr "Valitse sarja"
-
-msgid "catalog.selectCategory"
-msgstr "Valitse kategoria"
-
-msgid "catalog.manage.homepageDescription"
-msgstr "Valittujen kirjojen kansikuvat näkyvät etusivun yläosassa vieritettävänä joukkona. Klikkaa ensin \"Esittele\"-kohtaa ja sitten tähteä lisätäksesi kirjan karuselliin; klikkaa huutomerkkiä merkitäksesi julkaisun uutuudeksi; muuta järjestystä vetämällä ja pudottamalla."
-
-msgid "catalog.manage.categoryDescription"
-msgstr "Klikkaa \"Esittele\"-kohtaa ja sen jälkeen tähteä valitaksesi tämän kategorian esiteltävän kirjan; muuta järjestystä vetämällä ja pudottamalla."
-
-msgid "catalog.manage.seriesDescription"
-msgstr "Klikkaa \"Esittele\"-kohtaa ja sen jälkeen tähteä valitaksesi tämän sarjan esiteltävän kirjan; muuta järjestystä vetämällä ja pudottamalla. Toimittajan/toimittajien nimet ja sarjan nimeke ovat sarjan tunnisteita sekä kategorian sisällä että yksittäisinä."
-
-msgid "catalog.manage.placeIntoCarousel"
-msgstr "Karuselli"
-
-msgid "catalog.manage.newRelease"
-msgstr "Uutuus"
-
-msgid "catalog.manage.manageSeries"
-msgstr "Hallinnoi sarjoja"
-
-msgid "catalog.manage.manageCategories"
-msgstr "Hallinnoi kategorioita"
-
-msgid "catalog.manage.noMonographs"
-msgstr "Ei osoitettuja kirjoja."
-
-msgid "catalog.manage.featured"
-msgstr "Esittelyssä"
-
-msgid "catalog.manage.categoryFeatured"
-msgstr "Esiteltävät kategoriassa"
-
-msgid "catalog.manage.seriesFeatured"
-msgstr "Esiteltävät sarjassa"
-
-msgid "catalog.manage.featuredSuccess"
-msgstr "Kirja on esittelyssä."
-
-msgid "catalog.manage.notFeaturedSuccess"
-msgstr "Kirja ei ole esittelyssä."
-
-msgid "catalog.manage.newReleaseSuccess"
-msgstr "Kirja on merkitty uutuudeksi."
-
-msgid "catalog.manage.notNewReleaseSuccess"
-msgstr "Kirjaa ei ole merkitty uutuudeksi."
-
-msgid "catalog.manage.feature.newRelease"
-msgstr "Uutuus"
-
-msgid "catalog.manage.feature.categoryNewRelease"
-msgstr "Uutuus kategoriassa"
-
-msgid "catalog.manage.feature.seriesNewRelease"
-msgstr "Uutuus sarjassa"
-
-msgid "catalog.manage.nonOrderable"
-msgstr "Tämä kirja ei ole tilattavissa ennen kuin se on esittelyssä."
-
-msgid "catalog.manage.filter.searchByAuthorOrTitle"
-msgstr "Hae nimekkeen tai kirjoittajan mukaan"
-
-msgid "catalog.noTitles"
-msgstr "Yhtään nimekettä ei ole vielä julkaistu."
-
-msgid "catalog.noTitlesNew"
-msgstr "Uutuuksia ei saatavilla tällä hetkellä."
-
-msgid "catalog.noTitlesSearch"
-msgstr "Haullasi \"{$searchQuery}\" ei löytynyt nimekkeitä."
-
-msgid "catalog.noTitlesSection"
-msgstr "Tähän osastoon ei ole vielä julkaistu nimekkeitä."
-
-msgid "catalog.browseTitles"
-msgstr "{$numTitles} nimekettä"
-
-msgid "catalog.feature"
-msgstr "Esittele"
-
-msgid "catalog.featured"
-msgstr "Esittelyssä"
-
-msgid "catalog.featuredBooks"
-msgstr "Esittelyssä olevat kirjat"
-
-msgid "catalog.foundTitleSearch"
-msgstr "Haullasi \"{$searchQuery}\" löytyi yksi (1) nimeke."
-
-msgid "catalog.foundTitlesSearch"
-msgstr "Haullasi \"{$searchQuery}\" löytyi {$number} nimekettä."
-
-msgid "catalog.allBooks"
-msgstr "Kaikki kirjat"
-
-msgid "catalog.newReleases"
-msgstr "Uutuudet"
-
-msgid "catalog.dateAdded"
-msgstr "Lisätty"
-
-msgid "catalog.publicationInfo"
-msgstr "Julkaisutiedot"
-
-msgid "catalog.published"
-msgstr "Julkaistu"
-
-msgid "catalog.forthcoming"
-msgstr "Tulossa"
-
-msgid "catalog.categories"
-msgstr "Kategoriat"
-
-msgid "catalog.parentCategory"
-msgstr "Pääkategoria"
-
-msgid "catalog.subcategories"
-msgstr "Alakategoriat"
-
-msgid "catalog.aboutTheAuthor"
-msgstr "Tietoa roolista {$roleName}"
-
-msgid "catalog.coverImageTitle"
-msgstr "Kirjan {$monographTitle} kansi"
-
-msgid "catalog.loginRequiredForPayment"
-msgstr "Huomaa: Jotta voit ostaa nimekkeitä, sinun on ensin kirjauduttava sisään. Kun valitset ostettavan nimekkeen, sinut ohjataan kirjautumissivulle. Open Access -kuvakkeella merkittyjä nimekkeitä voidaan ladata maksutta ilman sisäänkirjautumista."
-
-msgid "catalog.sortBy"
-msgstr "Kirjojen järjestys"
-
-msgid "catalog.sortBy.seriesDescription"
-msgstr "Valitse miten tämän sarjan kirjat järjestetään."
-
-msgid "catalog.sortBy.categoryDescription"
-msgstr "Valitse miten tämän kategorian kirjat järjestetään."
-
-msgid "catalog.sortBy.catalogDescription"
-msgstr "Valitse miten luettelon kirjat järjestetään."
-
-msgid "catalog.sortBy.titleAsc"
-msgstr "Nimeke (A-Ö)"
-
-msgid "catalog.sortBy.titleDesc"
-msgstr "Nimeke (Ö-A)"
-
-msgid "catalog.sortBy.datePublishedAsc"
-msgstr "Julkaisupäivämäärä (vanhin ensin)"
-
-msgid "catalog.sortBy.datePublishedDesc"
-msgstr "Julkaisupäivämäärä (uusin ensin)"
-
-msgid "catalog.sortBy.seriesPositionAsc"
-msgstr "Sijoitus sarjassa (alin ensin)"
-
-msgid "catalog.sortBy.seriesPositionDesc"
-msgstr "Sijoitus sarjassa (korkein ensin)"
-
-msgid "catalog.viewableFile.title"
-msgstr "{$type}-näkymä tiedostosta {$title}"
-
-msgid "catalog.viewableFile.return"
-msgstr "Palaa tarkastelemaan {$monographTitle}:n tietoja"
-
-msgid "common.prefix"
-msgstr "Prefiksi"
-
-msgid "common.preview"
-msgstr "Esikatselu"
-
-msgid "common.feature"
-msgstr "Esittele"
-
-msgid "common.searchCatalog"
-msgstr "Hae luettelosta"
-
-msgid "common.moreInfo"
-msgstr "Lisätietoja"
-
-msgid "common.listbuilder.completeForm"
-msgstr "Täytä lomake kokonaan."
-
-msgid "common.listbuilder.selectValidOption"
-msgstr "Valitse kelvollinen vaihtoehto listasta."
-
-msgid "common.listbuilder.itemExists"
-msgstr "Samaa kohtaa ei voi lisätä kahdesti."
-
-msgid "common.openMonographPress"
-msgstr "Open Monograph Press"
-
-msgid "common.omp"
-msgstr "OMP"
-
-msgid "common.homePageHeader.altText"
-msgstr "Etusivun ylätunniste"
-
-msgid "navigation.catalog"
-msgstr "Luettelo"
-
-msgid "navigation.competingInterestPolicy"
-msgstr "Sidonnaisuuksien ilmoittaminen"
-
-msgid "navigation.catalog.allMonographs"
-msgstr "Kaikki kirjat"
-
-msgid "navigation.catalog.manage"
-msgstr "Hallinnoi"
-
-msgid "navigation.catalog.administration.short"
-msgstr "Ylläpito"
-
-msgid "navigation.catalog.administration"
-msgstr "Luettelon ylläpito"
-
-msgid "navigation.catalog.administration.categories"
-msgstr "Kategoriat"
-
-msgid "navigation.catalog.administration.series"
-msgstr "Sarja"
-
-msgid "navigation.infoForAuthors"
-msgstr "Kirjoittajille"
-
-msgid "navigation.infoForLibrarians"
-msgstr "Kirjastonhoitajille"
-
-msgid "navigation.infoForAuthors.long"
-msgstr "Tietoa kirjoittajille"
-
-msgid "navigation.infoForLibrarians.long"
-msgstr "Tietoa kirjastonhoitajille"
-
-msgid "navigation.newReleases"
-msgstr "Uutuudet"
-
-msgid "navigation.published"
-msgstr "Julkaistu"
-
-msgid "navigation.wizard"
-msgstr "Ohjattu toiminto"
-
-msgid "navigation.linksAndMedia"
-msgstr "Linkit ja sosiaalinen media"
-
-msgid "navigation.navigationMenus.catalog.description"
-msgstr "Linkki omaan luetteloon."
-
-msgid "navigation.navigationMenus.series.generic"
-msgstr "Sarja"
-
-msgid "navigation.navigationMenus.series.description"
-msgstr "Linkki sarjaan."
-
-msgid "navigation.navigationMenus.category.generic"
-msgstr "Kategoria"
-
-msgid "navigation.navigationMenus.category.description"
-msgstr "Linkki kategoriaan."
-
-msgid "navigation.navigationMenus.newRelease"
-msgstr "Uutuudet"
-
-msgid "navigation.navigationMenus.newRelease.description"
-msgstr "Linkki omiin uutuuksiin."
-
-msgid "press.presses"
-msgstr "Painot"
-
-msgid "press.path"
-msgstr "Polku"
-
-msgid "context.context"
-msgstr "Julkaisija"
-
-msgid "context.current"
-msgstr "Nykyinen julkaisija:"
-
-msgid "context.select"
-msgstr "Vaihda toiseen julkaisijaan:"
-
-msgid "user.noRoles.selectUsersWithoutRoles"
-msgstr "Sisällytä käyttäjät, joilla ei ole roolia tämän julkaisijan sivustolla."
-
-msgid "user.noRoles.submitMonograph"
-msgstr "Lähetä ehdotus"
-
-msgid "user.noRoles.submitMonographRegClosed"
-msgstr "Lähetä kirja: Kirjoittajaksi rekisteröityminen ei juuri nyt ole mahdollista."
-
-msgid "user.noRoles.regReviewer"
-msgstr "Rekisteröidy arvioijaksi"
-
-msgid "user.noRoles.regReviewerClosed"
-msgstr "Rekisteröidy arvioijaksi: Arvioijaksi rekisteröityminen ei juuri nyt ole mahdollista."
-
-msgid "user.reviewerPrompt"
-msgstr "Haluaisitko arvioida tälle julkaisijalle lähetettyjä käsikirjoituksia?"
-
-msgid "user.reviewerPrompt.userGroup"
-msgstr "Kyllä, pyydä {$userGroup}-roolia."
-
-msgid "user.reviewerPrompt.optin"
-msgstr ""
-"Kyllä, haluan, että minulle lähetetään pyyntöjä tämän julkaisijan "
-"käsikirjoitusten arvioinnista."
-
-msgid "user.register.contextsPrompt"
-msgstr ""
-"Minkä tällä sivustolla olevien julkaisijoiden sivustojen käyttäjäksi haluat "
-"rekisteröityä?"
-
-msgid "user.register.otherContextRoles"
-msgstr "Pyydä seuraavia rooleja."
-
-msgid "user.register.noContextReviewerInterests"
-msgstr ""
-"Jos pyysit jonkin julkaisijan arvioijan roolia, anna sinua kiinnostavat "
-"aiheet."
-
-msgid "user.role.manager"
-msgstr "Julkaisijan sivuston hallinnoija"
-
-msgid "user.role.pressEditor"
-msgstr "Toimittaja"
-
-msgid "user.role.subEditor"
-msgstr "Sarjan toimittaja"
-
-msgid "user.role.copyeditor"
-msgstr "Tekninen toimittaja"
-
-msgid "user.role.proofreader"
-msgstr "Oikolukija"
-
-msgid "user.role.productionEditor"
-msgstr "Tuotantotoimittaja"
-
-msgid "user.role.managers"
-msgstr "Julkaisijan sivuston hallinnoijat"
-
-msgid "user.role.subEditors"
-msgstr "Sarjan toimittajat"
-
-msgid "user.role.editors"
-msgstr "Toimittajat"
-
-msgid "user.role.copyeditors"
-msgstr "Tekniset toimittajat"
-
-msgid "user.role.proofreaders"
-msgstr "Oikolukijat"
-
-msgid "user.role.productionEditors"
-msgstr "Tuotantotoimittajat"
-
-msgid "user.register.selectContext"
-msgstr "Valitse julkaisijan sivusto, johon rekisteröidyt:"
-
-msgid "user.register.noContexts"
-msgstr ""
-"Et voi rekisteröityä tällä sivustolla olevien julkaisijoiden sivustoille."
-
-msgid "user.register.privacyStatement"
-msgstr "Tietosuojaseloste"
-
-msgid "user.register.registrationDisabled"
-msgstr "Tämän julkaisijan sivuston käyttäjäksi ei voi rekisteröityä juuri nyt."
-
-msgid "user.register.form.passwordLengthTooShort"
-msgstr "Kirjoittamasi salasana ei ole tarpeeksi pitkä."
-
-msgid "user.register.readerDescription"
-msgstr "Kirjan julkaisemisesta ilmoitetaan sähköpostitse."
-
-msgid "user.register.authorDescription"
-msgstr "Kohteiden lähetys julkaisijalle sallittu."
-
-msgid "user.register.reviewerDescriptionNoInterests"
-msgstr "Halukas vertaisarvioimaan julkaisijalle lähetettyjä käsikirjoituksia."
-
-msgid "user.register.reviewerDescription"
-msgstr "Halukas vertaisarvioimaan sivustolle lähetettyjä käsikirjoituksia."
-
-msgid "user.register.reviewerInterests"
-msgstr "Kerro kiinnostavat arviointiaiheet (olennaiset alueet ja tutkimusmenetelmät):"
-
-msgid "user.register.form.userGroupRequired"
-msgstr "Valitse vähintään yksi rooli"
-
-msgid "site.pressView"
-msgstr "Näytä julkaisijan verkkosivusto"
-
-msgid "about.pressContact"
-msgstr "Julkaisijan yhteystiedot"
-
-msgid "about.aboutContext"
-msgstr "Tietoa julkaisijasta"
-
-msgid "about.editorialTeam"
-msgstr "Toimituskunta"
-
-msgid "about.editorialPolicies"
-msgstr "Toimitukselliset käytännöt"
-
-msgid "about.focusAndScope"
-msgstr "Tarkoitus ja toimintaperiaatteet"
-
-msgid "about.seriesPolicies"
-msgstr "Sarja- ja kategoriakäytännöt"
-
-msgid "about.submissions"
-msgstr "Käsikirjoitukset"
-
-msgid "about.onlineSubmissions"
-msgstr "Käsikirjoituksen lähettäminen verkossa"
-
-msgid "about.onlineSubmissions.login"
-msgstr "Kirjaudu sisään"
-
-msgid "about.onlineSubmissions.register"
-msgstr "Rekisteröidy"
-
-msgid "about.onlineSubmissions.registrationRequired"
-msgstr "{$login} tai {$register} lähettääksesi käsikirjoituksen."
-
-msgid "about.onlineSubmissions.submissionActions"
-msgstr "{$newSubmission} tai {$viewSubmissions}."
-
-msgid "about.onlineSubmissions.newSubmission"
-msgstr "Lähetä uusi käsikirjoitus"
-
-msgid "about.onlineSubmissions.viewSubmissions"
-msgstr "katso odottavia käsikirjoituksiasi"
-
-msgid "about.authorGuidelines"
-msgstr "Kirjoittajan ohjeet"
-
-msgid "about.submissionPreparationChecklist"
-msgstr "Käsikirjoituksen lähettämisen tarkistuslista"
-
-msgid "about.submissionPreparationChecklist.description"
-msgstr "Kirjoittajien tulee vahvistaa, että heidän käsikirjoituksensa noudattaa kaikkia seuraavia kohtia. Jos näitä ohjeita ei noudateta, käsikirjoitus palautetaan kirjoittajalle."
-
-msgid "about.copyrightNotice"
-msgstr "Tekijänoikeushuomautus"
-
-msgid "about.privacyStatement"
-msgstr "Tietosuojaseloste"
-
-msgid "about.reviewPolicy"
-msgstr "Vertaisarviointiprosessi"
-
-msgid "about.publicationFrequency"
-msgstr "Julkaisutiheys"
-
-msgid "about.openAccessPolicy"
-msgstr "Avoimen saatavuuden periaate"
-
-msgid "about.pressSponsorship"
-msgstr "Julkaisijan tukijana toimiminen"
-
-msgid "about.aboutThisPublishingSystem"
-msgstr "Tietoja julkaisujärjestelmästä."
-
-msgid "about.aboutThisPublishingSystem.altText"
-msgstr "OMP:n toimitus- ja julkaisuprosessit"
-
-msgid "about.aboutOMPPress"
-msgstr ""
-"Tämä julkaisija käyttää Open Monograph Press {$ompVersion} -järjestelmää, "
-"joka on Public Knowledge Projectin "
-"kehittämä, tukema ja GNU General Public License -lisenssillä vapaasti jakama "
-"avoimen lähdekoodin toimitus- ja julkaisuohjelmisto. Julkaisijaa ja "
-"käsikirjoituksia koskevissa kysymyksissä tulee olla yhteydessä suoraan julkaisijaan."
-
-#, fuzzy
-msgid "about.aboutOMPSite"
-msgstr "Tämä sivusto käyttää Open Monograph Press {$ompVersion} -järjestelmää, joka on Public Knowledge Projectin kehittämä, tukema ja GNU General Public License -lisenssillä vapaasti jakama avoimen lähdekoodin toimitus- ja julkaisuohjelmisto."
-
-msgid "help.searchReturnResults"
-msgstr "Takaisin hakutuloksiin"
-
-msgid "help.goToEditPage"
-msgstr "Avaa uusi sivu muokataksesi näitä tietoja"
-
-msgid "installer.appInstallation"
-msgstr "OMP:n asennus"
-
-msgid "installer.ompUpgrade"
-msgstr "OMP:n päivitys"
-
-msgid "installer.installApplication"
-msgstr "Asenna Open Monograph Press"
-
-#, fuzzy
-msgid "installer.installationInstructions"
-msgstr ""
-"\n"
-"Kiitos, että latasit Public Knowledge Projectin Open Monograph Press {$version}-järjestelmän. Ennen kuin jatkat, lue README-tiedosto, joka tulee tämän ohjelmiston mukana. Lisätietoja Public Knowledge Projectista ja sen ohjelmistoprojekteista löydät PKP:n verkkosivustolta. Jos haluat tehdä ilmoituksen ohjelmistovirheestä tai ottaa yhteyttä Open Monograph Pressin tekniseen tukeen, tutustu tukifoorumiin tai PKP:n online-virheilmoitusjärjestelmään. Yhteydenotot ensisijaisesti tukifoorumin kautta, mutta voit myös lähettää sähköpostia osoitteeseen pkp.contact@gmail.com.
\n"
-"\n"
-"Päivitys
\n"
-"\n"
-"Jos olet päivittämässä OMP -järjestelmän aiempaa asennusta, klikkaa tästä edetäksesi.
"
-
-msgid "installer.preInstallationInstructionsTitle"
-msgstr "Esiasennuksen vaiheet"
-
-msgid "installer.preInstallationInstructions"
-msgstr ""
-"1. Seuraavista tiedostoista ja kansioista (ja niiden sisällöstä) on tehtävä kirjoituskelpoisia:
\n"
-"\n"
-"\t- config.inc.php on kirjoituskelpoinen (valinnainen): {$writable_config}
\n"
-"\t- public/ on kirjoituskelpoinen: {$writable_public}
\n"
-"\t- cache/ on kirjoituskelpoinen: {$writable_cache}
\n"
-"\t- cache/t_cache/ on kirjoituskelpoinen: {$writable_templates_cache}
\n"
-"\t- cache/t_compile/ on kirjoituskelpoinen: {$writable_templates_compile}
\n"
-"\t- cache/_db on kirjoituskelpoinen: {$writable_db_cache}
\n"
-"
\n"
-"\n"
-"2. Ladattaville tiedostoille on luotava hakemisto ja siitä on tehtävä kirjoituskelpoinen (ks. \"Tiedostoasetukset\" alla).
"
-
-msgid "installer.upgradeInstructions"
-msgstr ""
-"OMP:n versio {$version}
\n"
-"\n"
-"Kiitos, että latasit Public Knowledge Projectin Open Monograph Press-järjestelmän. Ennen kuin jatkat, lue README ja UPGRADE -tiedostot, jotka tulevat tämän ohjelmiston mukana. Lisätietoja Public Knowledge Projectista ja sen ohjelmistoprojekteista löydätPKP:n verkkosivustolta. Jos haluat ilmoittaa ohjelmistovirheestä tai ottaa yhteyttä Open Monograph Pressin tekniseen tukeen, tutustu tukifoorumiin tai PKP:n online- virheilmoitusjärjestelmään. Yhteydenotot ensisijaisesti tukifoorumin kautta, mutta voit myös lähettää sähköpostia osoitteeseen pkp.contact@gmail.com.
\n"
-"On erittäin suositeltavaa, että varmuuskopioit tietokannan, tiedostohakemiston ja OMP-asennushakemiston ennen jatkamista.
\n"
-"Jos käytät PHP Safe Mode-vikasietotilaa, varmista, että max_execution_time-direktiivi php.ini -asetustiedostossa on määritetty korkeaksi. Jos tämä tai jokin muu määräaikaraja (esim. Apachen \"Aikakatkaisu\"-direktiivi) täyttyy ja päivitysprosessi keskeytetään, vaaditaan manuaalisia toimia.
"
-
-msgid "installer.localeSettingsInstructions"
-msgstr ""
-"Saadaksesi täyden Unicode (UTF-8) -tuen, valitse UTF-8 kaikkiin merkistöasetuksiin. Huomaa, että tällä hetkellä tämä tuki edellyttää MySQL >= 4.1.1 tai PostgreSQL >= 9.1.5 tietokantapalvelinta. Huomioithan myös, että täysi Unicode-tuki edellyttää mbstring-kirjastoa (oletuksena viimeisimmissä PHP-asennuksissa). Saatat kohdata ongelmia käyttäessäsi laajennettuja merkistöjä, jos palvelimesi ei täytä näitä vaatimuksia.\n"
-"
\n"
-"Palvelimesi tukee tällä hetkellä mbstringiä: {$supportsMBString}"
-
-msgid "installer.allowFileUploads"
-msgstr "Palvelimesi sallii tällä hetkellä seuraavat tiedostojen lataukset: {$allowFileUploads}"
-
-msgid "installer.maxFileUploadSize"
-msgstr "Palvelimesi sallima latausten enimmäiskoko tällä hetkellä: {$maxFileUploadSize}"
-
-msgid "installer.localeInstructions"
-msgstr "Pääkieli, jota käytetään tässä järjestelmässä. Jos olet kiinnostunut muiden kuin tässä lueteltujen kielten tuesta, katso lisätietoja OMP:n käyttöohjeista."
-
-msgid "installer.additionalLocalesInstructions"
-msgstr ""
-"Valitse muita tässä järjestelmässä tuettavia kieliä. Nämä kielet ovat "
-"sivustolla ylläpidettyjen julkaisijoiden sivustojen käytettävissä. Lisää "
-"kieliä voidaan asentaa milloin tahansa myös sivuston ylläpitokäyttöliittymän "
-"kautta. Tähdellä (*) merkityt kielialueet saattavat olla vaillinaisia."
-
-msgid "installer.filesDirInstructions"
-msgstr "Anna koko polun nimi olemassa olevaan hakemistoon, jossa ladattavia tiedostoja tullaan säilyttämään. Tähän hakemistoon ei tulisi olla suoraa pääsyä verkosta. Varmista ennen asennusta, että tämä hakemisto on olemassa ja kirjoituskelpoinen. Windowsin polkujen nimissä tulee käyttää vinoviivaa, esim. \"C:/mypress/files\"."
-
-msgid "installer.databaseSettingsInstructions"
-msgstr "Voidakseen tallentaa tietoja OMP edellyttää pääsyä SQL-tietokantaan. Katso järjestelmävaatimukset (yllä) nähdäksesi luettelon tuetuista tietokannoista. Anna alla olevissa kentissä asetukset, joita käytetään muodostettaessa yhteys tietokantaan."
-
-msgid "installer.upgradeApplication"
-msgstr "Päivitä Open Monograph Press"
-
-msgid "installer.overwriteConfigFileInstructions"
-msgstr ""
-"HUOM!
\n"
-"Asennusohjelma ei voinut korvata määritystiedostoa automaattisesti. Ennen kuin aloitat järjestelmän käytön, avaa config.inc.php sopivassa tekstieditorissa ja korvaa sen sisältö alla olevan tekstikentän sisällöllä.
"
-
-msgid "installer.installationComplete"
-msgstr ""
-"OMP:n asennus on suoritettu onnistuneesti.
\n"
-"Aloittaaksesi järjestelmän käytön, Kirjaudu sisään käyttäjätunnuksella ja salasanalla, jotka annoit edellisellä sivulla.
\n"
-"Jos haluat saada uutisia ja päivityksiä, rekisteröidy osoitteessa http://pkp.sfu.ca/omp/register. Jos sinulla on kysymyksiä tai kommentteja, tutustu tukifoorumi-sivuun.
"
-
-msgid "installer.upgradeComplete"
-msgstr ""
-"OMP on päivitetty onnistuneesti versioon {$version}.
\n"
-"Muista laittaa config.inc.php-määritystiedoston \"asennettu\" -asetus takaisin päälle (On).
\n"
-"Jos et ole vielä rekisteröinyt, mutta haluat saada uutisia ja päivityksiä, rekisteröidy osoitteessa http://pkp.sfu.ca/omp/register. Jos sinulla on kysymyksiä tai kommentteja, tutustu tukifoorumi-sivuun.
"
-
-msgid "log.review.reviewCleared"
-msgstr "{$reviewerName}:n arviointi käsikirjoituksesta {$submissionId} kierroksella {$round} on poistettu."
-
-msgid "log.review.reviewDueDateSet"
-msgstr "Kierroksen {$round} määräpäivä {$reviewerName}:n arvioinnille käsikirjoituksesta {$submissionId} on {$dueDate}."
-
-msgid "log.review.reviewDeclined"
-msgstr "{$reviewerName} on kieltäytynyt arvioimasta käsikirjoitusta {$submissionId} kierroksella {$round}."
-
-msgid "log.review.reviewAccepted"
-msgstr "{$reviewerName} on suostunut arvioimaan käsikirjoituksen {$submissionId} kierroksella {$round}."
-
-msgid "log.review.reviewUnconsidered"
-msgstr "{$editorName} on merkinnyt käsikirjoituksen {$submissionId} arvion käsittelemättömäksi kierroksella {$round}."
-
-msgid "log.editor.decision"
-msgstr "Toimittaja {$editorName} on tallentanut toimittajan päätöksen ({$decision}) kirjalle {$submissionId}."
-
-msgid "log.editor.recommendation"
-msgstr ""
-"Toimittaja {$editorName} on tallentanut toimittajan suosituksen ({$decision})"
-" teokselle {$submissionId}."
-
-msgid "log.editor.archived"
-msgstr "Käsikirjoitus {$submissionId} on arkistoitu."
-
-msgid "log.editor.restored"
-msgstr "Käsikirjoitus {$submissionId} on palautettu jonoon."
-
-msgid "log.editor.editorAssigned"
-msgstr "{$editorName} on valittu käsikirjoituksen {$submissionId} toimittajaksi."
-
-msgid "log.proofread.assign"
-msgstr "{$assignerName} on valinnut käyttäjän {$proofreaderName} oikolukemaan käsikirjoituksen {$submissionId}."
-
-msgid "log.proofread.complete"
-msgstr "{$proofreaderName} on lähettänyt käsikirjoituksen {$submissionId} aikataulutukseen."
-
-msgid "log.imported"
-msgstr "{$userName} on tuonut kirjan {$submissionId}."
-
-msgid "notification.addedIdentificationCode"
-msgstr "Tunnistuskoodi lisätty."
-
-msgid "notification.editedIdentificationCode"
-msgstr "Tunnistuskoodia muokattu."
-
-msgid "notification.removedIdentificationCode"
-msgstr "Tunnistuskoodi poistettu."
-
-msgid "notification.addedPublicationDate"
-msgstr "Julkaisupäivämäärä lisätty."
-
-msgid "notification.editedPublicationDate"
-msgstr "Julkaisupäivämäärää muokattu."
-
-msgid "notification.removedPublicationDate"
-msgstr "Julkaisupäivämäärä poistettu."
-
-msgid "notification.addedPublicationFormat"
-msgstr "Julkaisumuoto lisätty."
-
-msgid "notification.editedPublicationFormat"
-msgstr "Julkaisumuotoa muokattu."
-
-msgid "notification.removedPublicationFormat"
-msgstr "Julkaisumuoto poistettu."
-
-msgid "notification.addedSalesRights"
-msgstr "Myyntioikeudet lisätty."
-
-msgid "notification.editedSalesRights"
-msgstr "Myyntioikeuksia muokattu."
-
-msgid "notification.removedSalesRights"
-msgstr "Myyntioikeudet poistettu."
-
-msgid "notification.addedRepresentative"
-msgstr "Edustaja lisätty."
-
-msgid "notification.editedRepresentative"
-msgstr "Edustajaa muokattu."
-
-msgid "notification.removedRepresentative"
-msgstr "Edustaja poistettu."
-
-msgid "notification.addedMarket"
-msgstr "Markkina lisätty."
-
-msgid "notification.editedMarket"
-msgstr "Markkina muokattu."
-
-msgid "notification.removedMarket"
-msgstr "Markkina poistettu."
-
-msgid "notification.addedSpotlight"
-msgstr "Nosto lisätty."
-
-msgid "notification.editedSpotlight"
-msgstr "Nostoa muokattu."
-
-msgid "notification.removedSpotlight"
-msgstr "Nosto poistettu."
-
-msgid "notification.savedCatalogMetadata"
-msgstr "Luettelon metatiedot tallennettu."
-
-msgid "notification.savedPublicationFormatMetadata"
-msgstr "Julkaisumuodon metatiedot tallennettu."
-
-msgid "notification.proofsApproved"
-msgstr "Korjausvedokset hyväksytty."
-
-msgid "notification.removedSubmission"
-msgstr "Käsikirjoitus poistettu."
-
-msgid "notification.type.submissionSubmitted"
-msgstr "Uusi kirja, \"{$title}\", on lähetetty."
-
-msgid "notification.type.editing"
-msgstr "Toimittamiseen liittyvät tapahtumat"
-
-msgid "notification.type.reviewing"
-msgstr "Arviointitapahtumat"
-
-msgid "notification.type.site"
-msgstr "Sivuston tapahtumat"
-
-msgid "notification.type.submissions"
-msgstr "Käsikirjoitukseen liittyvät tapahtumat"
-
-msgid "notification.type.userComment"
-msgstr "Lukija on kommentoinut nimekettä \"{$title}\"."
-
-msgid "notification.type.public"
-msgstr "Julkiset ilmoitukset"
-
-msgid "notification.type.editorAssignmentTask"
-msgstr "Uusi kirja on lähetetty ja sille tulee valita toimittaja."
-
-msgid "notification.type.copyeditorRequest"
-msgstr "Sinua on pyydetty arvioimaan tiedoston \"{$file}\" teknisesti toimitetut tiedostot."
-
-msgid "notification.type.layouteditorRequest"
-msgstr "Sinua on pyydetty arvioimaan nimekkeen \"{$title}\" taitot."
-
-msgid "notification.type.indexRequest"
-msgstr "Sinua on pyydetty luomaan indeksi nimekkeelle \"{$title}\"."
-
-msgid "notification.type.editorDecisionInternalReview"
-msgstr "Sisäinen arviointiprosessi aloitettu."
-
-msgid "notification.type.approveSubmission"
-msgstr "Tämä käsikirjoitus odottaa vielä Luettelomerkintä-työkalussa hyväksyntää, jonka jälkeen se tulee näkyville julkiseen luetteloon."
-
-msgid "notification.type.approveSubmissionTitle"
-msgstr "Odottaa hyväksyntää."
-
-msgid "notification.type.formatNeedsApprovedSubmission"
-msgstr "Kirjaa ei lisätä luetteloon ennen kuin luettelomerkintä on luotu. Lisätäksesi tämän kirjan luetteloon klikkaa yllä olevaa Luettelomerkintä -kohtaa ja etsi Luettelo-välilehti."
-
-msgid "notification.type.configurePaymentMethod.title"
-msgstr "Maksutapaa ei ole määritetty."
-
-msgid "notification.type.configurePaymentMethod"
-msgstr "Määritetty maksutapa vaaditaan, ennen kuin voit määritellä verkkokaupan asetukset."
-
-#, fuzzy
-msgid "notification.type.visitCatalog"
-msgstr "Kirja on hyväksytty. Hallinnoidaksesi sen luettelotietoja, siirry Luetteloon yläpuolella olevan luettelolinkin kautta."
-
-msgid "notification.type.visitCatalogTitle"
-msgstr "Luettelon hallinnointi"
-
-msgid "user.authorization.invalidReviewAssignment"
-msgstr "Sinulta on evätty pääsy, koska et ole tämän kirjan kelvollinen arvioija."
-
-msgid "user.authorization.monographAuthor"
-msgstr "Sinulta on evätty pääsy, koska et ole tämän kirjan kirjoittaja."
-
-msgid "user.authorization.monographReviewer"
-msgstr "Sinulta on evätty pääsy, koska sinua ei ole valittu tämän kirjan arvioijaksi."
-
-msgid "user.authorization.monographFile"
-msgstr "Sinulta on evätty pääsy tähän kirjan tiedostoon."
-
-msgid "user.authorization.invalidMonograph"
-msgstr "Virheellinen kirja tai ei pyydettyä kirjaa!"
-
-msgid "user.authorization.noContext"
-msgstr "Ei julkaisijaa valittuna!"
-
-msgid "user.authorization.seriesAssignment"
-msgstr "Yrität päästä kirjaan, joka ei kuulu omaan sarjaasi."
-
-msgid "user.authorization.workflowStageAssignmentMissing"
-msgstr "Pääsy evätty! Sinua ei ole valittu tähän työnkulun vaiheeseen."
-
-msgid "user.authorization.workflowStageSettingMissing"
-msgstr ""
-"Pääsy evätty! Käyttäjäryhmää, johon tällä hetkellä kuulut, ei ole valittu "
-"tähän työnkulun vaiheeseen. Tarkista julkaisijan asetukset."
-
-msgid "payment.directSales"
-msgstr "Lataa julkaisijan verkkosivustolta"
-
-msgid "payment.directSales.price"
-msgstr "Hinta"
-
-msgid "payment.directSales.availability"
-msgstr "Saatavuus"
-
-msgid "payment.directSales.catalog"
-msgstr "Luettelo"
-
-msgid "payment.directSales.approved"
-msgstr "Hyväksytty"
-
-msgid "payment.directSales.priceCurrency"
-msgstr "Hinta ({$currency})"
-
-msgid "payment.directSales.numericOnly"
-msgstr "Hintojen tulee sisältää vain numeroita. Älä käytä valuuttasymboleja."
-
-msgid "payment.directSales.directSales"
-msgstr "Suoramyynti"
-
-msgid "payment.directSales.amount"
-msgstr "{$amount} ({$currency})"
-
-msgid "payment.directSales.notAvailable"
-msgstr "Ei saatavilla"
-
-msgid "payment.directSales.notSet"
-msgstr "Ei määritelty"
-
-msgid "payment.directSales.openAccess"
-msgstr "Avoin saatavuus"
-
-msgid "payment.directSales.price.description"
-msgstr ""
-"Tiedostomuotoja voidaan tarjota ladattaviksi julkaisijan verkkosivustolta "
-"joko avoimen saatavuuden periaatteen mukaisesti tai suoramyynnin kautta (kun "
-"käytetään asetusten Jakelu-kohdassa määriteltyä maksulisäosaa). Määritä "
-"tämän tiedostomuodon lähtökohtainen saatavuus."
-
-msgid "payment.directSales.validPriceRequired"
-msgstr "Kelvollinen numeerinen hinta vaaditaan."
-
-msgid "payment.directSales.purchase"
-msgstr "Osta {$format} ({$amount} {$currency})"
-
-msgid "payment.directSales.download"
-msgstr "Lataa {$format}"
-
-msgid "payment.directSales.monograph.name"
-msgstr "Osta kirjan tai luvun lataus"
-
-msgid "payment.directSales.monograph.description"
-msgstr "Tämä tapahtuma liittyy kirjan tai kirjan luvun suoralatauksen ostoon."
-
-msgid "debug.notes.helpMappingLoad"
-msgstr "XML-tiedosto {$filename} ladattiin uudelleen haulla {$id}."
-
-msgid "rt.metadata.pkp.dctype"
-msgstr "Kirja"
-
-msgid "submission.pdf.download"
-msgstr "Lataa tämä PDF-tiedosto"
-
-msgid "user.profile.form.showOtherContexts"
-msgstr "Rekisteröidy muiden julkaisijoiden sivustoille"
-
-msgid "user.profile.form.hideOtherContexts"
-msgstr "Piilota muut julkaisijat"
-
-msgid "grid.category.categories"
-msgstr "Kategoriat"
-
-msgid "user.authorization.invalidPublishedSubmission"
-msgstr "Virheellinen julkaistu käsikirjoitus."
-
-msgid "context.contexts"
-msgstr "Julkaisijat"
-
-msgid "navigation.skip.spotlights"
-msgstr "Siirry uutuuslistaan"
-
-msgid "common.software"
-msgstr "Open Monograph Press"
-
-msgid "common.publications"
-msgstr "Kirjat"
-
-msgid "common.publication"
-msgstr "Kirja"
-
-msgid "submission.search"
-msgstr "Kirjahaku"
-
-msgid "catalog.category.subcategories"
-msgstr "Alakategoriat"
-
-msgid "catalog.category.heading"
-msgstr "Kaikki kirjat"
-
-msgid "catalog.manage.isNotNewRelease"
-msgstr "Tämä teos ei ole uutuus. Lisää uutuusmerkintä."
-
-msgid "catalog.manage.isNewRelease"
-msgstr "Tämä teos on uutuus. Poista uutuusmerkintä."
-
-msgid "catalog.manage.isNotFeatured"
-msgstr ""
-"Tämä teos ei ole esittelyssä etusivulla. Siirrä tämä teos esittelyyn "
-"etusivulle."
-
-msgid "catalog.manage.isFeatured"
-msgstr "Tämä teos on esittelyssä etusivulla. Poista tämä teos esittelystä."
-
-msgid "submissionGroup.assignedSubEditors"
-msgstr "Osoitetut toimittajat"
-
-msgid "monograph.audience.success"
-msgstr "Kohderyhmäasetukset päivitetty."
-
-msgid "site.noPresses"
-msgstr "Julkaisijoita ei löytynyt."
-
-msgid "user.register.form.privacyConsentThisContext"
-msgstr ""
-"Kyllä, annan luvan tallentaa tietojani tämän julkaisijan tietosuojaselosteen kuvaamalla tavalla."
-
-msgid "about.aboutSoftware"
-msgstr "Tietoa Open Monograph Press -järjestelmästä"
-
-msgid "user.authorization.representationNotFound"
-msgstr "Pyydettyä julkaisumuotoa ei löytynyt."
-
-msgid "catalog.manage.findSubmissions"
-msgstr "Etsi teokset, jotka lisätään luetteloon"
-
-msgid "catalog.manage.submissionsNotFound"
-msgstr "Yhtä tai useampaa käsikirjoitusta ei löytynyt."
-
-msgid "catalog.manage.noSubmissionsSelected"
-msgstr "Yhtään käsikirjoitusta ei valittu luetteloon liitettäväksi."
-
-msgid "common.payments"
-msgstr "Maksut"
diff --git a/locale/fi_FI/manager.po b/locale/fi_FI/manager.po
deleted file mode 100644
index b551f8f4cbb..00000000000
--- a/locale/fi_FI/manager.po
+++ /dev/null
@@ -1,1458 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
-"PO-Revision-Date: 2021-01-24 09:55+0000\n"
-"Last-Translator: Antti-Jussi Nygård \n"
-"Language-Team: Finnish \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 "manager.language.confirmDefaultSettingsOverwrite"
-msgstr ""
-"Tämä korvaa kaikki tähän kielialueeseen liittyvät, kielialuekohtaiset "
-"julkaisijan sivuston asetukset"
-
-msgid "manager.languages.noneAvailable"
-msgstr ""
-"Valitettavasti muita kieliä ei ole käytettävissä. Jos haluat käyttää tämän "
-"julkaisijan sivustolla muita kieliä, ota yhteyttä sivuston ylläpitäjään."
-
-msgid "manager.languages.primaryLocaleInstructions"
-msgstr "Tätä kieltä käytetään julkaisijan sivuston oletuskielenä."
-
-msgid "manager.series.form.mustAllowPermission"
-msgstr "Varmista, että vähintään yksi valintaruutu on rastitettu kunkin sarjan toimittajan valinnan kohdalla."
-
-msgid "manager.series.form.reviewFormId"
-msgstr "Varmista, että olet valinnut kelvollisen arviointilomakkeen."
-
-msgid "manager.series.submissionIndexing"
-msgstr "Ei sisällytetä julkaisijan sivuston indeksointiin"
-
-msgid "manager.series.editorRestriction"
-msgstr "Ainoastaan toimittajat ja sarjan toimittajat voivat lähettää kohteita."
-
-msgid "manager.series.confirmDelete"
-msgstr "Haluatko varmasti poistaa tämän sarjan pysyvästi?"
-
-msgid "manager.series.indexed"
-msgstr "Indeksoitu"
-
-msgid "manager.series.open"
-msgstr "Käsikirjoitukset vapaasti lähetettävissä"
-
-msgid "manager.series.readingTools"
-msgstr "Lukutyökalut"
-
-msgid "manager.series.submissionReview"
-msgstr "Ei vertaisarvioida"
-
-msgid "manager.series.submissionsToThisSection"
-msgstr "Tähän sarjaan lähetetyt käsikirjoitukset"
-
-msgid "manager.series.abstractsNotRequired"
-msgstr "Älä vaadi abstrakteja"
-
-msgid "manager.series.disableComments"
-msgstr "Estä lukijoiden kommentit tähän sarjaan."
-
-msgid "manager.series.book"
-msgstr "Kirjasarja"
-
-msgid "manager.series.create"
-msgstr "Luo sarja"
-
-msgid "manager.series.policy"
-msgstr "Sarjan kuvaus"
-
-msgid "manager.series.assigned"
-msgstr "Tämän sarjan toimittajat"
-
-msgid "manager.series.seriesEditorInstructions"
-msgstr ""
-"Lisää tälle sarjalle sarjan toimittaja saatavilla olevista sarjan "
-"toimittajista. Määritä sen jälkeen valvooko sarjan toimittaja tämän sarjan "
-"käsikirjoitusten ARVIOINTIA (vertaisarviointi) ja/tai TOIMITUSTYÖTÄ ("
-"tekninen toimittaminen, taitto ja oikoluku). Sarjan toimittajat luodaan "
-"klikkaamalla Sarjan toimittajat "
-"Julkaisijan sivuston hallinnoinnin Roolit-kohdassa."
-
-msgid "manager.series.hideAbout"
-msgstr "Poista tämä sarja Tietoa julkaisijasta -sivulta."
-
-msgid "manager.series.unassigned"
-msgstr "Käytettävissä olevat Sarjan toimittajat"
-
-msgid "manager.series.form.abbrevRequired"
-msgstr "Sarjalle vaaditaan lyhennetty nimeke."
-
-msgid "manager.series.form.titleRequired"
-msgstr "Sarjalle vaaditaan nimeke."
-
-msgid "manager.series.noneCreated"
-msgstr "Yhtään sarjaa ei ole luotu."
-
-msgid "manager.series.existingUsers"
-msgstr "Olemassa olevat käyttäjät"
-
-msgid "manager.series.seriesTitle"
-msgstr "Sarjan nimeke"
-
-msgid "manager.series.restricted"
-msgstr "Älä salli kirjoittajien lähettää käsikirjoituksia suoraan tähän sarjaan."
-
-msgid "manager.payment.generalOptions"
-msgstr "Yleiset valinnat"
-
-msgid "manager.payment.options.enablePayments"
-msgstr ""
-"Maksut otetaan käyttöön tälle julkaisijalle. Huomaa, että käyttäjien tulee "
-"kirjautua sisään maksaakseen."
-
-msgid "manager.settings"
-msgstr "Asetukset"
-
-msgid "manager.settings.pressSettings"
-msgstr "Julkaisijan asetukset"
-
-msgid "manager.settings.press"
-msgstr "Julkaisija"
-
-msgid "manager.settings.publisherInformation"
-msgstr "Nämä kentät vaaditaan kelvollisten ONIX-metatietojen luomiseen. Täytä kaikki kentät, jos haluat julkaista ONIX-metatietoja."
-
-msgid "manager.settings.publisher"
-msgstr "Julkaisijan nimi"
-
-msgid "manager.settings.location"
-msgstr "Maantieteellinen sijainti"
-
-msgid "manager.settings.publisherCode"
-msgstr "Julkaisijan koodi"
-
-msgid "manager.settings.publisherCodeType"
-msgstr "Julkaisijan koodityyppi"
-
-msgid "manager.settings.publisherCodeType.tip"
-msgstr "Jos sinulla on julkaisijan nimikoodi, täytä se alla. Se sisällytetään luotuihin metatietoihin. Kenttä on pakollinen, jos luot ONIX-metatietoja julkaisuillesi."
-
-msgid "manager.settings.distributionDescription"
-msgstr "Kaikki jakeluprosessiin liittyvät asetukset (ilmoitus, indeksointi, arkistointi, maksaminen, lukutyökalut)."
-
-msgid "manager.statistics.reports.defaultReport.monographDownloads"
-msgstr "Kirjatiedostojen lataukset"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstract"
-msgstr "Kirjan abstraktisivun katselukerrat"
-
-msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
-msgstr "Kirjan abstrakti ja lataukset"
-
-msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
-msgstr "Sarjan pääsivun katselukerrat"
-
-msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
-msgstr "Sivuston pääsivun katselukerrat"
-
-msgid "manager.statistics.reports.filters.byContext.description"
-msgstr "Rajaa tuloksia kontekstin (sarja ja/tai kirja) mukaan."
-
-msgid "manager.statistics.reports.filters.byObject.description"
-msgstr ""
-"Rajaa tuloksia kohteen tyypin (julkaisija, sarja, kirja, tiedostotyypit) ja/"
-"tai yhden tai useamman kohteen tunnisteen perusteella."
-
-msgid "manager.tools"
-msgstr "Työkalut"
-
-msgid "manager.tools.importExport"
-msgstr ""
-"Kaikki tietojen (julkaisijat, kirjat, käyttäjät) tuomisen ja viemisen "
-"työkalut"
-
-msgid "manager.tools.statistics"
-msgstr ""
-"Käyttötilastoihin liittyvien raporttien (luettelon hakemistosivun "
-"katselukerrat, kirjan abstraktisivun katselukerrat, kirjan tiedostolataukset)"
-" luomiseen liittyvät työkalut"
-
-msgid "manager.users"
-msgstr "Käyttäjien hallinnointi"
-
-msgid "manager.users.availableRoles"
-msgstr "Käytettävissä olevat roolit"
-
-msgid "manager.users.currentRoles"
-msgstr "Nykyiset roolit"
-
-msgid "manager.users.selectRole"
-msgstr "Valitse rooli"
-
-msgid "manager.people.allEnrolledUsers"
-msgstr "Tämän julkaisijan sivustolle lisätyt käyttäjät"
-
-msgid "manager.people.allPresses"
-msgstr "Kaikki julkaisijat"
-
-msgid "manager.people.allSiteUsers"
-msgstr "Lisää olemassa oleva käyttäjä tämän julkaisijan sivustolle"
-
-msgid "manager.people.allUsers"
-msgstr "Kaikki käyttäjät, joilla on rooleja"
-
-msgid "manager.people.confirmRemove"
-msgstr ""
-"Poistetaanko tämä käyttäjä tämän julkaisijan sivustolta? Tämä toiminto "
-"poistaa käyttäjän kaikista tähän julkaisijaan liittyvistä rooleista."
-
-msgid "manager.people.enrollExistingUser"
-msgstr "Lisää olemassa oleva käyttäjä rooliin"
-
-msgid "manager.people.enrollSyncPress"
-msgstr "Julkaisijan sivuston kanssa"
-
-msgid "manager.people.mergeUsers.from.description"
-msgstr "Valitse käyttäjä, joka yhdistetään toiseen käyttäjätiliin (esim. jos jollakulla on kaksi käyttäjätiliä). Ensin valittu tili poistetaan ja sen käsikirjoitukset, toimeksiannot jne. siirretään toiselle tilille."
-
-msgid "manager.people.mergeUsers.into.description"
-msgstr "Valitse käyttäjä, kenelle aiemman käyttäjän kirjoittajahenkilöllisyys, toimitustoimeksiannot jne. siirretään."
-
-msgid "manager.people.syncUserDescription"
-msgstr ""
-"Rooliin lisäämisen synkronointi lisää kaikki määrätyn julkaisijan määrätyssä "
-"roolissa olevat käyttäjät tämän julkaisijan sivuston vastaavaan rooliin. "
-"Tämä toiminto mahdollistaa sen, että samankaltaisten käyttäjien joukko ("
-"esim. arvioijat) voidaan synkronoida julkaisijoiden välillä."
-
-msgid "manager.people.confirmDisable"
-msgstr ""
-"Estä tämä käyttäjä? Tämä estää käyttäjän kirjautumisen järjestelmään.\n"
-"\n"
-"Voit halutessasi kertoa käyttäjälle syyn siihen, miksi hänen käyttäjätilinsä on poistettu käytöstä."
-
-msgid "manager.people.noAdministrativeRights"
-msgstr ""
-"Sinulla ei ole hallinnollisia oikeuksia tähän käyttäjään. Syynä tähän voi "
-"olla:\n"
-"\n"
-"\t\t\t- Käyttäjä on sivuston ylläpitäjä
\n"
-"\t\t\t- Käyttäjä on aktiivisena julkaisijan sivustolla, joita sinä et "
-"hallinnoi
\n"
-"\t\t
\n"
-"Tämän tehtävän voi suorittaa vain sivuston ylläpitäjä.\n"
-"\t"
-
-msgid "manager.system"
-msgstr "Järjestelmäasetukset"
-
-msgid "manager.system.archiving"
-msgstr "Arkistointi"
-
-msgid "manager.system.reviewForms"
-msgstr "Arviointilomakkeet"
-
-msgid "manager.system.readingTools"
-msgstr "Lukutyökalut"
-
-msgid "manager.system.payments"
-msgstr "Maksut"
-
-msgid "user.authorization.pluginLevel"
-msgstr "Sinulla ei ole riittäviä oikeuksia tämän lisäosan hallinnointiin."
-
-msgid "manager.pressManagement"
-msgstr "Julkaisijan sivuston hallinnointi"
-
-msgid "manager.setup"
-msgstr "Asetukset"
-
-msgid "manager.setup.aboutItemContent"
-msgstr "Sisältö"
-
-msgid "manager.setup.addAboutItem"
-msgstr "Lisää Tietoa-kohta"
-
-msgid "manager.setup.addChecklistItem"
-msgstr "Lisää tarkistuslistan kohta"
-
-msgid "manager.setup.addItem"
-msgstr "Lisää kohta"
-
-msgid "manager.setup.addItemtoAboutPress"
-msgstr "Lisää kohta näkyviin Tietoa julkaisijasta -sivulle"
-
-msgid "manager.setup.addNavItem"
-msgstr "Lisää kohta"
-
-msgid "manager.setup.addSponsor"
-msgstr "Lisää tukiorganisaatio"
-
-msgid "manager.setup.announcements"
-msgstr "Ilmoitukset"
-
-msgid "manager.setup.announcementsDescription"
-msgstr ""
-"Ilmoituksia julkaisemalla lukijoille voidaan kertoa julkaisijan uutisista ja "
-"tapahtumista. Julkaistut ilmoitukset näkyvät Ilmoitukset-sivulla."
-
-msgid "manager.setup.announcementsIntroduction"
-msgstr "Lisätietoja"
-
-msgid "manager.setup.announcementsIntroductionDescription"
-msgstr "Syötä mitä tahansa lisätietoja, joiden halutaan näkyvän Ilmoitukset-sivun lukijoille."
-
-msgid "manager.setup.appearInAboutPress"
-msgstr "(Näkyy Tietoa julkaisijasta -sivulla) "
-
-msgid "manager.setup.copyediting"
-msgstr "Tekniset toimittajat"
-
-msgid "manager.setup.copyeditInstructions"
-msgstr "Teknisen toimittamisen ohjeet"
-
-msgid "manager.setup.copyeditInstructionsDescription"
-msgstr ""
-"Teknisen toimittamisen ohjeet tulevat teknisten toimittajien, kirjoittajien "
-"ja sarjojen toimittajien saataville käsikirjoituksen toimittamisvaiheessa. "
-"Alla HTML-muotoiset oletusohjeet, joita julkaisijan sivuston hallinnoija voi "
-"muokata tai korvata missä tahansa vaiheessa (HTML-muodossa tai pelkkänä "
-"tekstinä)."
-
-msgid "manager.setup.copyrightNotice"
-msgstr "Tekijänoikeushuomautus"
-
-msgid "manager.setup.coverage"
-msgstr "Kattavuus"
-
-msgid "manager.setup.customizingTheLook"
-msgstr "Vaihe 5. Ulkoasun ja yleisilmeen mukauttaminen"
-
-msgid "manager.setup.customTags"
-msgstr "Mukautetut tagit"
-
-msgid "manager.setup.customTagsDescription"
-msgstr "Mukautetut HTML-muotoiset ylätunnisteen tagit, jotka sijoitetaan jokaisen sivun ylätunnisteeseen (esim. meta-tagit)."
-
-msgid "manager.setup.details"
-msgstr "Tiedot"
-
-msgid "manager.setup.details.description"
-msgstr "Julkaisijan nimi, yhteystiedot, tukijat ja hakukoneet."
-
-msgid "manager.setup.disableUserRegistration"
-msgstr ""
-"Julkaisijan sivuston hallinnoija rekisteröi kaikki käyttäjätilit. "
-"Toimittajat tai sarjan toimittajat voivat rekisteröidä käyttäjätilejä "
-"arvioijille."
-
-msgid "manager.setup.discipline"
-msgstr "Akateeminen tieteenala ja alatieteet"
-
-msgid "manager.setup.disciplineDescription"
-msgstr ""
-"Hyödyllinen, kun julkaisija ylittää tieteenalojen väliset rajat ja/tai kun "
-"tekijät lähettävät monitieteellisiä kohteita."
-
-msgid "manager.setup.disciplineExamples"
-msgstr "(Esim. historia; koulutus; sosiologia; psykologia; kulttuurintutkimus; laki)"
-
-msgid "manager.setup.disciplineProvideExamples"
-msgstr ""
-"Anna esimerkkejä tähän julkaisijaan liittyvistä olennaisista akateemisista "
-"tieteenaloista"
-
-msgid "manager.setup.displayCurrentMonograph"
-msgstr "Lisää uusimman kirjan sisällysluettelo (jos saatavilla)."
-
-msgid "manager.setup.displayOnHomepage"
-msgstr "Etusivun sisältö"
-
-msgid "manager.setup.displayFeaturedBooks"
-msgstr "Näytä esittelyssä olevat kirjat etusivulla"
-
-msgid "manager.setup.displayInSpotlight"
-msgstr "Näytä kirjat nostoissa etusivulla"
-
-msgid "manager.setup.displayNewReleases"
-msgstr "Näytä uutuudet etusivulla"
-
-msgid "manager.setup.doiPrefix"
-msgstr "DOI-prefiksi"
-
-msgid "manager.setup.doiPrefixDescription"
-msgstr "DOI (Digital Object Identifier) -prefiksi on CrossRef:in myöntämä ja se on muodossa 10.xxxx (esim. 10.1234)."
-
-msgid "manager.setup.editorDecision"
-msgstr "Toimittajan päätös"
-
-msgid "manager.setup.emailBounceAddress"
-msgstr "Palautusosoite"
-
-msgid "manager.setup.emailBounceAddressDescription"
-msgstr "Tähän osoitteeseen lähetetään virheilmoitus aina, kun sähköpostia ei voida toimittaa perille."
-
-msgid "manager.setup.emailBounceAddressDisabled"
-msgstr "Huom! Aktivoidakseen tämän valinnan sivuston ylläpitäjän täytyy ottaa käyttöön allow_envelope_sender -valinta OMP:n määritystiedostossa. Palvelimen lisämäärityksiä saatetaan edellyttää tämän toiminnon tukemiseksi (joka ei välttämättä ole mahdollista kaikilla palvelimilla), kuten OMP:n käyttöohjeissa mainitaan."
-
-msgid "manager.setup.emails"
-msgstr "Sähköpostitunnistautuminen"
-
-msgid "manager.setup.emailSignature"
-msgstr "Allekirjoitus"
-
-msgid "manager.setup.emailSignatureDescription"
-msgstr "Valmiisiin sähköposteihin, jotka järjestelmä lähettää painon puolesta, lisätään seuraava allekirjoitus."
-
-msgid "manager.setup.enableAnnouncements"
-msgstr "Ota ilmoitukset käyttöön."
-
-msgid "manager.setup.enableAnnouncementsHomepage1"
-msgstr "Näytä"
-
-msgid "manager.setup.enableAnnouncementsHomepage2"
-msgstr "viimeisintä ilmoitusta painon etusivulla."
-
-msgid "manager.setup.enablePressInstructions"
-msgstr "Näytä tämä julkaisija julkisesti sivustolla"
-
-msgid "manager.setup.enablePublicMonographId"
-msgstr "Mukautettuja tunnisteita käytetään julkaistujen kohteiden identifioimiseen."
-
-msgid "manager.setup.enablePublicGalleyId"
-msgstr "Mukautettuja tunnisteita käytetään julkaistujen kohteiden julkaistavien tiedostojen (esim. HTML- tai PDF-tiedostot) identifioimiseen."
-
-msgid "manager.setup.enableUserRegistration"
-msgstr "Vierailijat voivat rekisteröidä käyttäjätilin julkaisijan sivustolle."
-
-msgid "manager.setup.focusAndScope"
-msgstr "Julkaisijan tarkoitus ja toimintaperiaatteet"
-
-msgid "manager.setup.focusAndScope.description"
-msgstr ""
-"Kuvaile kirjoittajille, lukijoille ja kirjastonhoitajille millaisia kirjoja "
-"ja muita kohteita julkaisija julkaisee."
-
-msgid "manager.setup.focusScope"
-msgstr "Tarkoitus ja toimintaperiaatteet"
-
-msgid "manager.setup.focusScopeDescription"
-msgstr "HTML-MUOTOINEN ESIMERKKITEKSTI"
-
-msgid "manager.setup.forAuthorsToIndexTheirWork"
-msgstr "Kirjoittajille töiden indeksointia varten"
-
-msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
-msgstr ""
-"OMP noudattaa "
-"Open Archives Initiativen protokollaa metatietojen haravoinnista, joka "
-"on nouseva standardi elektronisten tutkimusresurssien hyvin indeksoidun "
-"saatavuuden tarjoamisessa maailmanlaajuisesti. Kirjoittajat käyttävät "
-"samanlaista mallipohjaa antaessaan käsikirjoitustensa metatiedot. "
-"Julkaisijan sivuston hallinnoijan tulee valita käytettävät "
-"indeksointikategoriat ja avustaa kirjoittajia töidensä indeksoinnissa "
-"tarjoamalla olennaisia esimerkkejä, ehdot puolipisteellä (esim. ehto1; ehto2)"
-" erotellen. Merkinnät tulee esitellä esimerkkeinä \"esim.\" -lyhennettä tai "
-"\"esimerkiksi\"-termiä käyttäen."
-
-msgid "manager.setup.form.contactEmailRequired"
-msgstr "Ensisijainen sähköposti yhteydenottoja varten vaaditaan."
-
-msgid "manager.setup.form.contactNameRequired"
-msgstr "Ensisijainen yhteyshenkilö vaaditaan."
-
-msgid "manager.setup.form.pressNameRequired"
-msgstr "Painon nimi vaaditaan."
-
-msgid "manager.setup.form.numReviewersPerSubmission"
-msgstr "Arvioijien määrä käsikirjoitusta kohti vaaditaan."
-
-msgid "manager.setup.form.supportEmailRequired"
-msgstr "Teknisen tuen sähköposti vaaditaan."
-
-msgid "manager.setup.form.supportNameRequired"
-msgstr "Teknisen tuen henkilö vaaditaan."
-
-msgid "manager.setup.form.pressInitialsRequired"
-msgstr "Painon alkukirjaimet tarvitaan."
-
-msgid "manager.setup.generalInformation"
-msgstr "Yleisiä tietoja"
-
-msgid "manager.setup.gettingDownTheDetails"
-msgstr "Vaihe 1. Perustiedot"
-
-msgid "manager.setup.guidelines"
-msgstr "Ohjeet"
-
-msgid "manager.setup.preparingWorkflow"
-msgstr "Vaihe 3. Työnkulun valmisteleminen"
-
-msgid "manager.setup.information.description"
-msgstr ""
-"Lyhyet kuvaukset julkaisijasta kirjastonhoitajille, mahdollisille "
-"kirjoittajille ja lukijoille. Kuvaukset tulevat näkyville sivuston "
-"sivupalkkiin, kun Tietoa-lohko on lisätty."
-
-msgid "manager.setup.information.forAuthors"
-msgstr "Kirjoittajille"
-
-msgid "manager.setup.information.forLibrarians"
-msgstr "Kirjastonhoitajille"
-
-msgid "manager.setup.information.forReaders"
-msgstr "Lukijoille"
-
-msgid "manager.setup.institution"
-msgstr "Instituutio"
-
-msgid "manager.setup.labelName"
-msgstr "Selitteen nimi"
-
-msgid "manager.setup.layoutAndGalleys"
-msgstr "Taittajat"
-
-msgid "manager.setup.layoutInstructions"
-msgstr "Taitto-ohjeet"
-
-msgid "manager.setup.layoutInstructionsDescription"
-msgstr ""
-"Julkaistavien kohteiden muotoilua varten voidaan tehdä taitto-ohjeet, jotka "
-"voidaan syöttää alle joko HTML-muodossa tai pelkkänä tekstinä. Ne tulevat "
-"taittajan ja osastotoimittajan saataville jokaisen käsikirjoituksen "
-"toimittamissivulla. (Koska jokainen julkaisija saattaa käyttää eri "
-"tiedostomuotoja, bibliografisia standardeja, tyylitiedostoja jne., "
-"oletusohjeita ei anneta.)"
-
-msgid "manager.setup.layoutTemplates"
-msgstr "Taiton mallipohjat"
-
-msgid "manager.setup.layoutTemplatesDescription"
-msgstr ""
-"Jokaiselle julkaistavalle, mitä tahansa tiedostomuotoa (esim. pdf, doc jne.) "
-"käyttävälle, standardimuodolle (esim. kirja, kirja-arvostelu jne.), voidaan "
-"ladata mallipohja, joka näkyy Taitto-kohdassa. Mallipohjiin voi lisätä "
-"huomautuksia, jotka määrittävät kirjasinlajin, koon, reunukset jne. ja "
-"toimivat ohjeena taittajille ja oikolukijoille."
-
-msgid "manager.setup.layoutTemplates.file"
-msgstr "Mallipohjatiedosto"
-
-msgid "manager.setup.layoutTemplates.title"
-msgstr "Otsikko"
-
-msgid "manager.setup.lists"
-msgstr "Listat"
-
-msgid "manager.setup.listsDescription"
-msgstr "Rajoita listan sivuilla näytettävien kohteiden (esim. käsikirjoitukset, käyttäjät tai toimitustoimeksiannot) määrää. Rajoita myös listan seuraaville sivuille johtavien linkkien näytettävää määrää."
-
-msgid "manager.setup.look"
-msgstr "Ulkoasu & Yleisilme"
-
-msgid "manager.setup.look.description"
-msgstr ""
-"Etusivun ylätunniste, sisältö, julkaisijan sivuston ylätunniste, "
-"alatunniste, navigointipalkki ja tyylitiedosto."
-
-msgid "manager.setup.settings"
-msgstr "Asetukset"
-
-msgid "manager.setup.management.description"
-msgstr "Käyttöoikeudet ja turvallisuus, aikataulutus, ilmoitukset, tekninen toimittaminen, taitto ja oikoluku."
-
-msgid "manager.setup.managementOfBasicEditorialSteps"
-msgstr "Toimituksellisten perusvaiheiden hallinnointi"
-
-msgid "manager.setup.managingPublishingSetup"
-msgstr "Hallinnoinnin ja julkaisemisen asetukset"
-
-msgid "manager.setup.managingThePress"
-msgstr "Vaihe 4. Asetusten hallinnointi"
-
-msgid "manager.setup.noImageFileUploaded"
-msgstr "Ei ladattua kuvatiedostoa."
-
-msgid "manager.setup.noStyleSheetUploaded"
-msgstr "Ei ladattua tyylitiedostoa."
-
-msgid "manager.setup.note"
-msgstr "Huomautus"
-
-msgid "manager.setup.notifyAllAuthorsOnDecision"
-msgstr "Käyttäessäsi Ilmoita kirjoittajalle -sähköpostia, muista lisätä vastaanottajaksi käsikirjoituksen lähettäneen käyttäjän lisäksi kaikki kirjoittajat, kun kyseessä on käsikirjoitus, jolla on monta kirjoittajaa."
-
-msgid "manager.setup.noUseCopyeditors"
-msgstr "Käsikirjoitukselle valittu toimittaja tai osastotoimittaja hoitaa teknisen toimittamisen."
-
-msgid "manager.setup.noUseLayoutEditors"
-msgstr "Käsikirjoitukselle valittu toimittaja tai osastotoimittaja valmistelee HTML-, PDF- ja muut tiedostot."
-
-msgid "manager.setup.noUseProofreaders"
-msgstr "Käsikirjoitukselle valittu toimittaja tai osastotoimittaja tarkistaa julkaistavat tiedostot."
-
-msgid "manager.setup.numPageLinks"
-msgstr "Sivun linkit"
-
-msgid "manager.setup.onlineAccessManagement"
-msgstr "Pääsy julkaisijan sisältöihin"
-
-msgid "manager.setup.onlineIssn"
-msgstr "Verkkokirjan ISSN"
-
-msgid "manager.setup.policies"
-msgstr "Toimintaperiaatteet"
-
-msgid "manager.setup.policies.description"
-msgstr ""
-"Julkaisijan tarkoitus, vertaisarviointi, osastot, yksityisyyden suoja, "
-"turvallisuus ja lisätietoja kohteista."
-
-msgid "manager.setup.appearanceDescription"
-msgstr ""
-"Tällä sivulla voidaan määrittää julkaisijan sivuston eri osien ulkoasu, "
-"kuten ylä- ja alatunnisteiden osat, tyyli ja teema, sekä se, kuinka listattu "
-"tieto esitetään käyttäjille."
-
-msgid "manager.setup.pressDescription"
-msgstr "Julkaisija lyhyesti"
-
-msgid "manager.setup.pressDescription.description"
-msgstr "Lyhyt kuvaus julkaisijasta."
-
-msgid "manager.setup.aboutPress"
-msgstr "Tietoa julkaisijasta"
-
-msgid "manager.setup.aboutPress.description"
-msgstr ""
-"Sisällytä tähän mitä tahansa tietoa julkaisijasta, joka saattaa kiinnostaa "
-"lukijoita, kirjoittajia ja arvioijia. Tällaisia tietoja voivat olla esim. "
-"avoimen saatavuuden periaate, julkaisijan tarkoitus ja toimintaperiaatteet, "
-"tekijänoikeushuomautus, tiedonanto tukemista koskien, julkaisijan historia "
-"ja tietosuojaseloste."
-
-msgid "manager.setup.pressArchiving"
-msgstr "Julkaisijan arkistointi"
-
-msgid "manager.setup.homepageContent"
-msgstr "Julkaisijan etusivun sisältö"
-
-msgid "manager.setup.homepageContentDescription"
-msgstr ""
-"Julkaisijan etusivu koostuu oletusarvoisesti siirtymälinkeistä. Muuta "
-"sisältöä etusivulle voidaan liittää käyttämällä yhtä tai kaikkia seuraavista "
-"vaihtoehdoista, jotka ilmestyvät esitetyssä järjestyksessä."
-
-msgid "manager.setup.pressHomepageContent"
-msgstr "Julkaisijan etusivun sisältö"
-
-msgid "manager.setup.pressHomepageContentDescription"
-msgstr ""
-"Julkaisijan etusivu koostuu oletusarvoisesti siirtymälinkeistä. Muuta "
-"sisältöä etusivulle voidaan liittää käyttämällä yhtä tai kaikkia seuraavista "
-"vaihtoehdoista, jotka ilmestyvät esitetyssä järjestyksessä."
-
-msgid "manager.setup.pressInitials"
-msgstr "Painon alkukirjaimet"
-
-msgid "manager.setup.layout"
-msgstr "Julkaisijan sivuston taitto"
-
-msgid "manager.setup.pageHeader"
-msgstr "Julkaisijan sivuston ylätunniste"
-
-msgid "manager.setup.pageHeaderDescription"
-msgstr ""
-
-msgid "manager.setup.pressPolicies"
-msgstr "Vaihe 2. Julkaisijan toimintaperiaatteet"
-
-msgid "manager.setup.pressSetup"
-msgstr "Julkaisijan asetukset"
-
-msgid "manager.setup.pressSetupUpdated"
-msgstr "Julkaisijan asetukset on päivitetty."
-
-msgid "manager.setup.styleSheetInvalid"
-msgstr "Virheellinen tyylitiedoston muoto. Hyväksytty muoto on .css."
-
-msgid "manager.setup.pressTheme"
-msgstr "Julkaisijan sivuston teema"
-
-msgid "manager.setup.contextName"
-msgstr "Painon nimi"
-
-msgid "manager.setup.printIssn"
-msgstr "Painetun kirjan ISSN"
-
-msgid "manager.setup.proofingInstructions"
-msgstr "Oikolukuohjeet"
-
-msgid "manager.setup.proofingInstructionsDescription"
-msgstr ""
-"Oikoluvun ohjeet tulevat oikolukijoiden, kirjoittajien, taittajien ja "
-"osastotoimittajien saataville käsikirjoituksen toimittamisvaiheessa. Alla "
-"HTML-muotoiset oletusohjeet, joita Julkaisijan sivuston hallinnoija voi "
-"muokata tai korvata missä tahansa vaiheessa (HTML-muodossa tai pelkkänä "
-"tekstinä)."
-
-msgid "manager.setup.proofreading"
-msgstr "Oikolukijat"
-
-msgid "manager.setup.provideRefLinkInstructions"
-msgstr "Anna ohjeet taittajille."
-
-msgid "manager.setup.publicationScheduleDescription"
-msgstr ""
-"Nimekkeitä voidaan julkaista kokonaisuutena osana kirjaa, jolla on oma "
-"sisällysluettelonsa. Vaihtoehtoisesti yksittäisiä nimekkeitä voidaan "
-"julkaista heti niiden ollessa valmiita, lisäämällä ne uusimman niteen "
-"sisällysluetteloon. Kerro lukijoille tämän julkaisijan käytännöstä asian "
-"suhteen sekä oletetusta julkaisutiheydestä Tietoa julkaisijasta -sivulla."
-
-msgid "manager.setup.publisher"
-msgstr "Julkaisija"
-
-msgid "manager.setup.publisherDescription"
-msgstr ""
-"Julkaisijan sivustoa ylläpitävän organisaation nimi näkyy Tietoa "
-"julkaisijasta -sivulla."
-
-msgid "manager.setup.referenceLinking"
-msgstr "Lähdeviitteiden linkitys"
-
-msgid "manager.setup.refLinkInstructions.description"
-msgstr "Taiton ohjeet lähdeviitteiden linkitykseen"
-
-msgid "manager.setup.restrictMonographAccess"
-msgstr "Käyttäjien tulee olla rekisteröityneitä ja sisäänkirjautuneita katsellakseen avoimesti saatavilla olevaa sisältöä."
-
-msgid "manager.setup.restrictSiteAccess"
-msgstr ""
-"Käyttäjien tulee olla rekisteröityneitä ja sisäänkirjautuneita katsellakseen "
-"julkaisijan sivustoa."
-
-msgid "manager.setup.reviewGuidelines"
-msgstr "Ulkopuolista arviointia koskevat ohjeet"
-
-msgid "manager.setup.reviewGuidelinesDescription"
-msgstr ""
-"Anna ulkopuolisille arvioijille kriteerit, joiden perusteella he arvioivat "
-"soveltuuko käsikirjoitus julkaisijan julkaistavaksi. Ohjeet voivat sisältää "
-"myös ohjeita vaikuttavan ja hyödyllisen arvion kirjoittamiseksi. Arvioijilla "
-"on mahdollisuus antaa sekä kirjoittajalle että toimittajalle tarkoitettuja "
-"kommentteja ja erillisiä, vain toimittajalle tarkoitettuja kommentteja."
-
-msgid "manager.setup.internalReviewGuidelines"
-msgstr "Sisäistä arviointia koskevat ohjeet"
-
-msgid "manager.setup.internalReviewGuidelinesDescription"
-msgstr "Aivan kuten ulkopuolista arviointia koskevat ohjeet, nämäkin ohjeet tarjoavat arvioijille tietoa käsikirjoituksen arviointiin liittyen. Nämä ohjeet koskevat painoja, jotka yleisesti käyttävät arviointiprosessissa painon sisäisiä arvioijia."
-
-msgid "manager.setup.reviewOptions"
-msgstr "Arviointiin liittyvät valinnat"
-
-msgid "manager.setup.reviewOptions.automatedReminders"
-msgstr "Automaattiset sähköpostimuistutukset"
-
-msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
-msgstr "Aktivoidakseen nämä valinnat sivuston ylläpitäjän täytyy ottaa käyttöön scheduled_tasks -valinta OMP:n määritystiedostossa. Palvelimen lisämäärityksiä saatetaan edellyttää tämän toiminnon tukemiseksi (joka ei välttämättä ole mahdollista kaikilla palvelimilla), kuten OMP:n käyttöohjeissa mainitaan."
-
-msgid "manager.setup.reviewOptions.onQuality"
-msgstr "Toimittajat arvostelevat arvioijat viisiportaisella laatuasteikolla jokaisen arviointitapahtuman jälkeen."
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
-msgstr ""
-"Arvioijilla on pääsy käsikirjoitustiedostoon vasta suostuttuaan arvioimaan "
-"sen"
-
-msgid "manager.setup.reviewOptions.reviewerAccess"
-msgstr "Arvioijan pääsy käsikirjoitukseen"
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
-msgstr ""
-"Ota käyttöön automaattisesti arvioijan sisäänkirjaavat linkit "
-"arviointipyynnöissä"
-
-#, fuzzy
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
-msgstr "Huom! Arvioijille lähetettävässä sähköpostikutsussa on erityinen URL-osoite, jonka kautta arvioijat pääsevät suoraan käsikirjoituksen arviointisivulle (muille sivuille pääsy vaatii sisäänkirjautumisen). Tietoturvasyistä tämän valinnan kohdalla toimittajat eivät voi muokata sähköpostiosoitteita eivätkä lisätä kopioita tai piilokopioita ennen viestin lähettämistä."
-
-msgid "manager.setup.reviewOptions.reviewerRatings"
-msgstr "Arvioijien arvostelu"
-
-msgid "manager.setup.reviewOptions.reviewerReminders"
-msgstr "Arvioijan muistutukset"
-
-msgid "manager.setup.reviewPolicy"
-msgstr "Arviointiperiaatteet"
-
-msgid "manager.setup.reviewProcess"
-msgstr "Arviointiprosessi"
-
-msgid "manager.setup.reviewProcessDescription"
-msgstr "OMP tukee kahta arviointiprosessin hallinnointimallia. Standardi arviointiprosessi on suositeltava, koska siinä arvioijat johdatetaan prosessin läpi vaihe kerrallaan. Se myös takaa jokaiselle käsikirjoitukselle täyden arviointihistorian, hyödyntää automaattista muistutustoimintoa sekä standardimuotoisia suosituksia käsikirjoituksille (Hyväksy; Hyväksy korjauksin; Lähetä arviointiin; Lähetä toiseen julkaisuun; Hylkää; Katso kommentit).
Valitse yksi seuraavista:"
-
-msgid "manager.setup.reviewProcessEmail"
-msgstr "Arviointiprosessi sähköpostin liitetiedostoja käyttäen"
-
-msgid "manager.setup.reviewProcessStandard"
-msgstr "Standardi arviointiprosessi"
-
-msgid "manager.setup.reviewProcessStandardDescription"
-msgstr ""
-"Toimittajat lähettävät valituille arvioijille sähköpostilla käsikirjoituksen "
-"nimekkeen ja abstraktin sekä kutsun kirjautua julkaisijan verkkosivustolle "
-"arvioinnin suorittamista varten. Verkkosivustolla arvioijat hyväksyvät/"
-"hylkäävät arviointikutsun, lataavat käsikirjoituksia, lähettävät "
-"kommenttinsa ja valitsevat suosituksen."
-
-msgid "manager.setup.searchEngineIndexing"
-msgstr "Hakukoneindeksointi"
-
-msgid "manager.setup.searchEngineIndexingDescription"
-msgstr "Anna painosta lyhyt kuvaus, jonka hakukoneet voivat näyttää listatessaan painon hakutuloksissa."
-
-msgid "manager.setup.sectionsAndSectionEditors"
-msgstr "Osastot ja osastotoimittajat"
-
-msgid "manager.setup.sectionsDefaultSectionDescription"
-msgstr "(Jos osastoja ei ole lisätty, kohteet lähetetään oletusarvoisesti Kirjat-osastoon.)"
-
-msgid "manager.setup.sectionsDescription"
-msgstr ""
-"Luodaksesi tai muokataksesi julkaisijan sarjoja mene Sarjan hallinnointi "
-"-kohtaan.
Julkaisijalle kohteita lähettävät kirjoittajat "
-"nimittävät..."
-
-msgid "manager.setup.securitySettings"
-msgstr "Käyttöoikeus- ja turvallisuusasetukset"
-
-msgid "manager.setup.securitySettings.note"
-msgstr "Muita turvallisuuteen ja käyttöoikeuksiin liittyviä valintoja voidaan määrittää Käyttöoikeudet ja turvallisuus -sivulla."
-
-msgid "manager.setup.selectEditorDescription"
-msgstr "Toimittaja, joka on mukana toimitusprosessin alusta loppuun asti."
-
-msgid "manager.setup.selectSectionDescription"
-msgstr "Julkaisijan sarja, johon kohdetta harkitaan."
-
-msgid "manager.setup.showGalleyLinksDescription"
-msgstr "Näytä aina julkaistavien tiedostojen linkit ja ilmaise rajoitettu saatavuus."
-
-msgid "manager.setup.siteAccess"
-msgstr "Sivuston ja sisällön saatavuuden lisärajoitukset"
-
-msgid "manager.setup.stepsToPressSite"
-msgstr "Julkaisijan verkkosivuston luonnin viisi vaihetta"
-
-msgid "manager.setup.subjectExamples"
-msgstr "(Esim. fotosynteesi; mustat aukot; neliväriteoreema; Bayesin teoreema)"
-
-msgid "manager.setup.subjectKeywordTopic"
-msgstr "Avainsanat"
-
-msgid "manager.setup.subjectProvideExamples"
-msgstr "Anna esimerkkejä avainsanoista tai aiheista kirjoittajien avuksi"
-
-msgid "manager.setup.submissionGuidelines"
-msgstr "Käsikirjoituksen lähettämisen ohjeet"
-
-msgid "manager.setup.submissionPreparationChecklist"
-msgstr "Käsikirjoituksen lähettämisen tarkistuslista"
-
-msgid "maganer.setup.submissionChecklistItemRequired"
-msgstr "Tarkistuslistan kohta vaaditaan."
-
-msgid "manager.setup.workflow"
-msgstr "Työnkulku"
-
-msgid "manager.setup.submissions.description"
-msgstr "Ohjeet kirjoittajille, tekijänoikeudet ja indeksointi (sis. rekisteröinnin)."
-
-msgid "manager.setup.coverThumbnails"
-msgstr "Kannen pikkukuvat"
-
-msgid "manager.setup.coverThumbnailsDescription"
-msgstr "Määritä kannen pikkukuvien maksimileveys ja -korkeus. Mikäli pikkukuvien koko on näitä asetuksia suurempi, kokoa pienennetään, mutta kuvien ollessa asetuksia pienempiä, niitä ei laajenneta. Kuvia ei koskaan venytetä näihin mittoihin."
-
-msgid "manager.setup.coverThumbnailsMaxHeight"
-msgstr "Maksimikorkeus"
-
-msgid "manager.setup.coverThumbnailsMaxHeightRequired"
-msgstr "Kannen pikkukuvien maksimikorkeus vaaditaan."
-
-msgid "manager.setup.coverThumbnailsMaxWidth"
-msgstr "Maksimileveys"
-
-msgid "manager.setup.coverThumbnailsMaxWidthRequired"
-msgstr "Kannen pikkukuvien maksimileveys vaaditaan."
-
-msgid "manager.setup.coverThumbnailsResize"
-msgstr "Muuta kaikkien olemassa olevien kannen pikkukuvien kokoa."
-
-msgid "manager.setup.typeExamples"
-msgstr "(Esim. historiatutkimus; kvasikokeellinen; kirjallisuusanalyysi; kysely/haastattelu)"
-
-msgid "manager.setup.typeMethodApproach"
-msgstr "Tyyppi (menetelmä/lähestymistapa)"
-
-msgid "manager.setup.typeProvideExamples"
-msgstr "Anna esimerkkejä tälle alalle oleellisista tutkimustyypeistä ja -menetelmistä sekä lähestymistavoista"
-
-msgid "manager.setup.useCopyeditors"
-msgstr "Jokaiselle käsikirjoitukselle valitaan tekninen toimittaja."
-
-msgid "manager.setup.useEditorialReviewBoard"
-msgstr "Julkaisija käyttää toimitus-/arviointineuvostoa."
-
-msgid "manager.setup.useImageTitle"
-msgstr "Nimekkeen kuva"
-
-msgid "manager.setup.useStyleSheet"
-msgstr "Julkaisijan tyylitiedosto"
-
-msgid "manager.setup.useLayoutEditors"
-msgstr "Sähköisen julkaisun HTML-, PDF- ja muiden tiedostojen valmisteluun valitaan taittaja."
-
-msgid "manager.setup.useProofreaders"
-msgstr "Julkaistavien tiedostojen tarkistamiseen (yhdessä kirjoittajien kanssa) ennen julkaisua valitaan oikolukija."
-
-msgid "manager.setup.userRegistration"
-msgstr "Käyttäjärekisteröinti"
-
-msgid "manager.setup.useTextTitle"
-msgstr "Nimekkeen teksti"
-
-msgid "manager.setup.volumePerYear"
-msgstr "Nidettä vuodessa"
-
-msgid "manager.setup.publicationFormat.code"
-msgstr "Muoto"
-
-msgid "manager.setup.publicationFormat.codeRequired"
-msgstr "Muoto on valittava."
-
-msgid "manager.setup.publicationFormat.nameRequired"
-msgstr "Tälle muodolle on annettava nimi."
-
-msgid "manager.setup.publicationFormat.physicalFormat"
-msgstr "Onko tämä fyysinen (ei digitaalinen) muoto?"
-
-msgid "manager.setup.publicationFormat.inUse"
-msgstr ""
-"Tätä julkaisumuotoa ei voi poistaa, koska se on tällä hetkellä yhden kirjan "
-"käytössä."
-
-msgid "manager.setup.newPublicationFormat"
-msgstr "Uusi julkaisumuoto"
-
-msgid "manager.setup.newPublicationFormatDescription"
-msgstr "Luo uusi julkaisumuoto täyttämällä alla oleva lomake ja klikkaamalla ”Luo”-painiketta."
-
-msgid "manager.setup.genresDescription"
-msgstr "Näitä lajityyppejä käytetään tiedostojen nimeämistarkoituksiin ja ne näytetään vetovalikossa tiedostojen lataamisen yhteydessä. ##-merkityt lajityypit mahdollistavat sen, että käyttäjät voivat yhdistää tiedoston joko koko kirjaan 99Z tai vain tiettyyn lukuun numerolla (esim. 02)."
-
-msgid "manager.setup.reviewProcessEmailDescription"
-msgstr "Toimittajat lähettävät arvioijille arviointipyynnön sähköpostilla, jonka liitteenä käsikirjoitus on. Arvioijat ilmoittavat sähköpostitse joko hyväksyvänsä tai hylkäävänsä arviointipyynnön. Samoin itse arviointi ja suositus toimitetaan sähköpostitse. Toimittajat syöttävät arvioijan suostumuksen/kieltäytymisen, arvioinnin sekä suosituksen käsikirjoituksen Arviointi-sivulle, jotta arviointiprosessi tallentuu järjestelmään."
-
-msgid "manager.setup.genres"
-msgstr "Lajityypit"
-
-msgid "manager.setup.newGenre"
-msgstr "Uusi kirjan lajityyppi"
-
-msgid "manager.setup.newGenreDescription"
-msgstr "Luo uusi lajityyppi täyttämällä alla oleva lomake ja klikkaamalla ”Luo”-painiketta."
-
-msgid "manager.setup.deleteSelected"
-msgstr "Poista valitut"
-
-msgid "manager.setup.restoreDefaults"
-msgstr "Palauta oletusasetukset"
-
-msgid "manager.setup.prospectus"
-msgstr "Esiteopas"
-
-msgid "manager.setup.prospectusDescription"
-msgstr ""
-"Esiteopas on julkaisijan laatima asiakirja. Sen tarkoitus on auttaa "
-"kirjoittajaa kuvailemaan lähetettyjä materiaaleja tavalla, joka mahdollistaa "
-"sen, että julkaisija voi määritellä käsikirjoituksen arvon. Esite voi "
-"sisältää paljon kohtia aina markkinointipotentiaalista teoreettiseen arvoon. "
-"Julkaisijan tulisi luoda sellainen esiteopas, joka täydentää sen "
-"julkaisutavoitteita."
-
-msgid "manager.setup.submitToCategories"
-msgstr "Salli käsikirjoitusten lähetys kategoriaan"
-
-msgid "manager.setup.submitToSeries"
-msgstr "Salli käsikirjoitusten lähetys sarjaan"
-
-msgid "manager.setup.issnDescription"
-msgstr "ISSN (International Standard Serial Number) on kahdeksannumeroinen tunnus, joka toimii aikakausjulkaisujen, mukaan lukien sähköiset kausijulkaisut, tunnuksena. Tunnuksen saa Suomen ISSN-keskuksesta."
-
-msgid "manager.setup.cataloguingMetadata"
-msgstr "Metatietojen luettelointi"
-
-msgid "manager.setup.currentFormats"
-msgstr "Nykyiset muodot"
-
-msgid "manager.setup.categoriesAndSeries"
-msgstr "Kategoriat ja sarjat"
-
-msgid "manager.setup.categories.description"
-msgstr ""
-"Voit luoda luettelon kategorioista helpottaaksesi julkaisuidesi järjestelyä. "
-"Kategoriat ovat aihealueittaisia (esim. taloustiede; kirjallisuus; runous "
-"jne.) kirjaryhmittymiä. Pääkategorioihin voidaan sisällyttää toisia "
-"kategorioita, esimerkiksi Taloustiede-pääkategoria voi sisältää erilliset "
-"Mikro- ja Makrotaloustieteiden kategoriat. Kävijät voivat hakea ja selailla "
-"sisältöä kategorioiden mukaan."
-
-msgid "manager.setup.series.description"
-msgstr ""
-"Voit luoda sarjoja helpottaaksesi julkaisuidesi järjestelyä. Sarja edustaa "
-"erityistä kirjojen joukkoa, jotka käsittelevät jonkun, yleensä yhden tai "
-"useamman tiedekunnan jäsenen, ehdottamaa ja valvomaa teemaa tai aiheita. "
-"Kävijät voivat hakea ja selailla sisältöä sarjojen mukaan."
-
-msgid "manager.setup.reviewForms"
-msgstr "Arviointilomakkeet"
-
-msgid "manager.setup.roleType"
-msgstr "Roolityyppi"
-
-msgid "manager.setup.authorRoles"
-msgstr "Kirjoittajaroolit"
-
-msgid "manager.setup.managerialRoles"
-msgstr "Hallinnon roolit"
-
-msgid "manager.setup.availableRoles"
-msgstr "Käytettävissä olevat roolit"
-
-msgid "manager.setup.currentRoles"
-msgstr "Nykyiset roolit"
-
-msgid "manager.setup.internalReviewRoles"
-msgstr "Sisäisen arvioinnin roolit"
-
-msgid "manager.setup.masthead"
-msgstr "Tunnuslaatikko"
-
-msgid "manager.setup.editorialTeam"
-msgstr "Toimituskunta"
-
-msgid "manager.setup.editorialTeam.description"
-msgstr ""
-"Lista toimittajista, toimitusjohtajista ja muista julkaisijaan liittyvistä "
-"henkilöistä."
-
-msgid "manager.setup.files"
-msgstr "Tiedostot"
-
-msgid "manager.setup.productionTemplates"
-msgstr "Tuotannon mallipohjat"
-
-msgid "manager.files.note"
-msgstr ""
-"Huom! Tiedostoselain (Files Browser) on erikoisominaisuus, jonka avulla "
-"julkaisijaan liittyviä tiedostoja ja hakemistoja voidaan katsoa ja käsitellä "
-"suoraan."
-
-msgid "manager.setup.authorCopyrightNotice.sample"
-msgstr ""
-"Ehdotetut Creative Commons -tekijänoikeushuomautukset
\n"
-"Ehdotettu käytäntö painoille, jotka tarjoavat avoimen saatavuuden (Open Access)
\n"
-"Tässä painossa julkaisevat kirjoittajat hyväksyvät seuraavat ehdot:\n"
-"\n"
-"\t- Kirjoittajat säilyttävät tekijänoikeuden ja myöntävät painolle oikeuden julkaista työn ensimmäisenä. Samanaikaisesti työ lisensoidaan Creative Commons Attribution License -lisenssillä, joka sallii muiden jakaa työtä vain, jos työn alkuperäinen tekijä sekä sen ensijulkaisu tässä painossa mainitaan.
\n"
-"\t- Kirjoittajat voivat tehdä erillisiä, muita sopimuksellisia sarjoja työn tässä painossa julkaistun version levittämiseksi ilman yksityisoikeutta (esim. lähettää sen julkaisuarkistoon tai julkaista sen kirjassa) vain, jos työn ensijulkaisu tässä painossa mainitaan.
\n"
-"\t- Kirjoittajilla on lupa lähettää työnsä verkkoon (esim. julkaisuarkistoihin tai omille verkkosivuilleen) sekä ennen käsikirjoituksen lähetysprosessia että sen aikana. Kirjoittajia myös kannustetaan toimimaan näin, koska se voi johtaa hyödyllisiin kanssakäymisiin sekä siihen, että julkaistuun työhön viitataan jo aikaisessa vaiheessa ja enemmän. (Lisää avoimen saatavuuden vaikutuksesta).
\n"
-"
\n"
-"\n"
-"Ehdotettu käytäntö painoille, jotka tarjoavat viiveellisen avoimen saatavuuden (Delayed Open Access)
\n"
-"Tässä painossa julkaisevat kirjoittajat hyväksyvät seuraavat ehdot:\n"
-"\n"
-"\t- Kirjoittajat säilyttävät tekijänoikeuden ja myöntävät painolle oikeuden julkaista työn ensimmäisenä. [MÄÄRITÄ AJANJAKSO] julkaisemisen jälkeen työ samanaikaisesti lisensoidaan Creative Commons Attribution License -lisenssillä, joka sallii muiden jakaa työtä vain, jos työn alkuperäinen tekijä sekä sen ensijulkaisu tässä painossa mainitaan.
\n"
-"\t - Kirjoittajat voivat tehdä erillisiä, muita sopimuksellisia sarjoja työn tässä painossa julkaistun version levittämiseksi ilman yksityisoikeutta (esim. lähettää sen julkaisuarkistoon tai julkaista sen kirjassa) vain, jos työn ensijulkaisu tässä painossa mainitaan.
\n"
-"\t - Kirjoittajilla on lupa lähettää työnsä verkkoon (esim. julkaisuarkistoihin tai omille verkkosivuilleen) sekä ennen käsikirjoituksen lähetysprosessia että sen aikana. Kirjoittajia myös kannustetaan toimimaan näin, koska se voi johtaa hyödyllisiin kanssakäymisiin sekä siihen, että julkaistuun työhön viitataan jo aikaisemmassa vaiheessa ja enemmän. (Lisää avoimen saatavuuden vaikutuksesta).
\n"
-"
"
-
-msgid "manager.setup.basicEditorialStepsDescription"
-msgstr ""
-"Vaiheet: Käsikirjoitusjono > Käsikirjoituksen arviointi > "
-"Käsikirjoituksen toimittaminen > Sisällysluettelo.
\n"
-"Valitse malli näiden toimitusprosessin kohtien käsittelyä varten. ("
-"Valitaksesi hallinnoivan toimittajan ja sarjan toimittajat mene Toimittajat-"
-"kohtaan Julkaisijan hallinnointi -sivulla.)"
-
-msgid "manager.setup.referenceLinkingDescription"
-msgstr ""
-"Kun lukijoiden halutaan löytävän verkkoversiot töistä, joihin kirjoittaja "
-"viittaa, seuraavat vaihtoehdot ovat käytettävissä.
\n"
-"\n"
-"\n"
-"\t- Lisää lukutyökalu
Julkaisijan sivuston hallinnoija "
-"voi lisätä “Etsi lähdeviitteitä” julkaistujen kohteiden lukutyökaluihin, "
-"mahdollistaen sen, että lukijat voivat liittää lähdeviitteen nimekkeen ja "
-"hakea viitattua työtä etukäteen valituista tieteellisistä "
-"tietokannoista.
\n"
-"\t- Upota linkit lähdeviitteisiin
Taittaja voi lisätä "
-"linkin verkosta löytyviin lähdeviitteisiin seuraamalla seuraavia ohjeita ("
-"joita voidaan muokata).
\n"
-"
"
-
-msgid "manager.publication.library"
-msgstr "Julkaisijan kirjasto"
-
-msgid "manager.setup.resetPermissions"
-msgstr "Palauta kirjojen käyttöoikeudet"
-
-msgid "manager.setup.resetPermissions.confirm"
-msgstr "Haluatko varmasti palauttaa oletusarvoisiksi käyttöoikeustiedot, jotka on jo liitetty kirjoihin?"
-
-msgid "manager.setup.resetPermissions.description"
-msgstr ""
-"Tekijänoikeusilmauksen ja -suojan tiedot liitetään pysyvästi julkaistuun "
-"sisältöön. Tämä varmistaa sen, että kyseiset tiedot eivät muutu, vaikka "
-"julkaisija muuttaisi toimintaperiaatteitaan uusia käsikirjoituksia koskien. "
-"Palauttaaksesi tallennetut käyttöoikeustiedot, jotka on jo liitetty "
-"julkaistuun sisältöön, käytä alla olevaa painiketta."
-
-msgid "grid.genres.title.short"
-msgstr "Osat"
-
-msgid "grid.genres.title"
-msgstr "Kirjan osat"
-
-msgid "manager.setup.notifications.copyPrimaryContact"
-msgstr ""
-"Lähetä kopio ensisijaiselle yhteyshenkilölle, joka on mainittu julkaisijan "
-"asetuksissa."
-
-msgid "grid.category.add"
-msgstr "Lisää kategoria"
-
-msgid "grid.category.edit"
-msgstr "Muokkaa kategoriaa"
-
-msgid "grid.category.name"
-msgstr "Nimi"
-
-msgid "grid.category.path"
-msgstr "Polku"
-
-msgid "grid.category.urlWillBe"
-msgstr "Kategorian URL-osoitteeksi tulee: {$sampleUrl}"
-
-msgid "grid.series.urlWillBe"
-msgstr "Sarjan URL-osoitteeksi tulee: {$sampleUrl}"
-
-msgid "grid.category.pathAlphaNumeric"
-msgstr "Kategorian polku saa sisältää vain kirjaimia ja numeroita."
-
-msgid "grid.category.pathExists"
-msgstr "Kategorian polku on jo olemassa. Anna yksilöllinen polku."
-
-msgid "grid.category.description"
-msgstr "Kuvaus"
-
-msgid "grid.category.parentCategory"
-msgstr "Pääkategoria"
-
-msgid "grid.category.removeText"
-msgstr "Haluatko varmasti poistaa tämän kategorian?"
-
-msgid "grid.category.nameRequired"
-msgstr "Anna kategorian nimi."
-
-msgid "grid.category.categoryDetails"
-msgstr "Kategorian tiedot"
-
-msgid "grid.series.pathAlphaNumeric"
-msgstr "Sarjan polku saa sisältää vain kirjaimia ja numeroita."
-
-msgid "grid.series.pathExists"
-msgstr "Sarjan polku on jo olemassa. Anna yksilöllinen polku."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.series"
-msgstr "Valitse sarja"
-
-msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
-msgstr "Valitse sarja, jonka haluat linkittää tähän valikon kohtaan."
-
-msgid "manager.navigationMenus.form.navigationMenuItem.category"
-msgstr "Valitse kategoria"
-
-msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
-msgstr "Valitse kategoria, jonka haluat linkittää tähän valikon kohtaan."
-
-msgid "manager.setup.announcements.success"
-msgstr "Ilmoitusasetukset päivitetty."
-
-msgid "manager.settings.publisherCodeType.invalid"
-msgstr "Tämä ei ole kelvollinen julkaisijan koodityyppi."
-
-msgid "manager.settings.publisher.identity.description"
-msgstr ""
-"Tämä on pakollinen tieto kelvollisten ONIX-kuvailutietojen julkaisemiseksi."
-
-msgid "manager.settings.publisher.identity"
-msgstr "Julkaisijan tiedot"
-
-msgid "manager.payment.success"
-msgstr "Maksutoimintojen asetukset päivitetty."
-
-msgid "manager.setup.copyrightNotice.sample"
-msgstr ""
-"Ehdotetut Creative Commons-tekijänoikeushuomautukset
\n"
-"1. Ehdotettu käytäntö julkaisijoille, jotka tarjoavat avoimen "
-"saatavuuden (Open Access)
\n"
-"Tämän julkaisijan kirjoittajat hyväksyvät seuraavat ehdot:\n"
-"\n"
-"\t- Kirjoittajat säilyttävät tekijänoikeuden ja myöntävät julkaisulle "
-"oikeuden julkaista työn ensimmäisenä. Samanaikaisesti työ lisensoidaan "
-"Creative Commons Attribution License -lisenssillä, joka sallii muiden "
-"jakaa työtä vain, jos työn alkuperäinen tekijä sekä sen ensijulkaisu tämän "
-"julkaisijan kirjassa mainitaan.
\n"
-"\t- Kirjoittajat voivat tehdä erillisiä, muita sopimuksia työn tässä "
-"julkaisussa julkaistun version levittämisestä ilman yksityisoikeutta (esim. "
-"lähettää sen julkaisuarkistoon tai julkaista sen muualla) vain, jos työn "
-"ensijulkaisu tämän julkaisijan kirjassa mainitaan.
\n"
-"\t- Kirjoittajilla on lupa lähettää työnsä verkkoon (esim. "
-"julkaisuarkistoihin tai omille verkkosivuilleen) sekä ennen käsikirjoituksen "
-"lähetysprosessia että sen aikana. Kirjoittajia myös kannustetaan toimimaan "
-"näin, koska se voi johtaa hyödyllisiin kanssakäymisiin sekä siihen, että "
-"julkaistuun työhön viitataan jo aikaisessa vaiheessa ja enemmän. (Lisää "
-"avoimen saatavuuden vaikutuksesta).
\n"
-"
\n"
-"\n"
-"Ehdotettu käytäntö julkaisijoille, jotka tarjoavat viiveellisen avoimen "
-"saatavuuden (Delayed Open Access)
\n"
-"Tämän julkaisijan kirjoittajat hyväksyvät seuraavat ehdot:\n"
-"\n"
-"\t- Kirjoittajat säilyttävät tekijänoikeuden ja myöntävät julkaisijalle "
-"oikeuden julkaista työn ensimmäisenä. [MÄÄRITÄ AJANJAKSO] julkaisemisen "
-"jälkeen työ samanaikaisesti lisensoidaan Creative Commons Attribution "
-"License-lisenssillä, joka sallii muiden jakaa työtä vain, jos työn "
-"alkuperäinen tekijä sekä sen ensijulkaisu tämän julkaisijan kirjassa "
-"mainitaan.
\n"
-"\t - Kirjoittajat voivat tehdä erillisiä, muita sopimuksia työn tässä "
-"julkaisussa julkaistun versio levittämisestä ilman yksityisoikeutta (esim. "
-"lähettää sen julkaisuarkistoon tai julkaista sen muualla) vain, jos työn "
-"ensijulkaisu tämän julkaisijan kirjassa mainitaan.
\n"
-"\t - Kirjoittajilla on lupa lähettää työnsä verkkoon (esim. "
-"julkaisuarkistoihin tai omille verkkosivuilleen) sekä ennen käsikirjoituksen "
-"lähetysprosessia että sen aikana. Kirjoittajia myös kannustetaan toimimaan "
-"näin, koska se voi johtaa hyödyllisiin kanssakäymisiin sekä siihen, että "
-"julkaistuun työhön viitataan jo aikaisemmassa vaiheessa ja enemmän. (Lisää <"
-"a target=\"_new\" href=\"http://opcit.eprints.org/oacitation-biblio.html\">"
-"avoimen saatavuuden vaikutuksesta
).\n"
-"
"
-
-msgid "manager.setup.lists.success"
-msgstr "Listauksia koskevat asetukset on päivitetty."
-
-msgid "manager.setup.itemsPerPage.description"
-msgstr ""
-"Rajoita niiden kohteiden (käsikirjoitus, käyttäjä jne.) lukumäärä, jotka "
-"näytetään yhdellä sivulla."
-
-msgid "stats.publications.abstracts"
-msgstr "Luettelomerkinnät"
-
-msgid "stats.publications.countOfTotal"
-msgstr "{$count}/{$total} kirjasta"
-
-msgid "stats.publications.totalGalleyViews.timelineInterval"
-msgstr "Kokotekstien latausmäärät ajankohdan mukaan"
-
-msgid "stats.publications.totalAbstractViews.timelineInterval"
-msgstr "Tiivistelmien katselukerrat ajankohdan mukaan"
-
-msgid "stats.publications.none"
-msgstr "Annetuilla hakumääreillä ei löytynyt kirjoja."
-
-msgid "stats.publications.details"
-msgstr "Kirjan tiedot"
-
-msgid "stats.publicationStats"
-msgstr "Kirjatilastot"
-
-msgid "manager.setup.resetPermissions.success"
-msgstr "Teosten lupatiedot tyhjennettiin onnistuneesti."
-
-msgid "manager.setup.siteAccess.viewContent"
-msgstr "Näytä julkaistut teokset"
-
-msgid "manager.setup.siteAccess.view"
-msgstr "Pääsy verkkosivulle"
-
-msgid "manager.setup.searchEngineIndexing.success"
-msgstr "Hakukoneindeksointia koskevat asetukset on päivitetty."
-
-msgid "manager.setup.searchEngineIndexing.description"
-msgstr ""
-"Auta Googlea ja muita hakukoneita löytämään sivustosi. Suosittelemme sinua "
-"lähettämään sivustokarttasi "
-"hakukoneille tiedoksi."
-
-msgid "manager.setup.searchDescription.description"
-msgstr ""
-"Anna lyhyt (50-300 merkkiä) kuvaus, jonka hakukoneet voivat näyttää "
-"julkaisijan sivustoa koskevissa hakutuloksissaan."
-
-msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
-msgstr ""
-"Lisää automaattisen kirjautumisen mahdollistava linkki arvioijille lähtevään "
-"kutsuun."
-
-msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
-msgstr ""
-"Arvioijilla on pääsy käsikirjoituksen tiedostoihin vasta pyynnön "
-"hyväksymisen jälkeen."
-
-msgid "manager.setup.contextTitle"
-msgstr "Julkaisijan sivuston nimi"
-
-msgid "manager.setup.pressThumbnail.description"
-msgstr ""
-"Pieni logo tai julkaisijaa edustava kuva, jota voidaan käyttää "
-"julkaisijoiden listauksessa."
-
-msgid "manager.setup.pressThumbnail"
-msgstr "Julkaisijan pikkukuva"
-
-msgid "manager.setup.contextInitials"
-msgstr "Julkaisijan alkukirjaimet"
-
-msgid "manager.setup.privacyStatement.success"
-msgstr "Tietosuojaselostetta koskevat asetukset on päivitetty."
-
-msgid "manager.setup.numPageLinks.description"
-msgstr "Rajoita listauksessa näkyvien sivulinkkien määrää."
-
-msgid "manager.setup.masthead.success"
-msgstr "Tunnuslaatikkoa koskevat asetukset on päivitetty."
-
-msgid "manager.setup.keyInfo.description"
-msgstr "Anna julkaisijan lyhyt kuvaus ja esittele toimituskunnan jäsenet."
-
-msgid "manager.setup.keyInfo"
-msgstr "Avaintiedot"
-
-msgid "manager.setup.itemsPerPage"
-msgstr "Kohteita per sivu"
-
-msgid "manager.setup.information.success"
-msgstr "Julkaisijan tietoja koskevat asetukset on päivitetty."
-
-msgid "manager.setup.information"
-msgstr "Tietoa"
-
-msgid "manager.setup.identity"
-msgstr "Julkaisijan sivuston tiedot"
-
-msgid "manager.setup.numAnnouncementsHomepage.description"
-msgstr ""
-"Montako ilmoitusta näytetään kotisivulla? Jätä tyhjäksi jos et halu näyttää "
-"yhtään."
-
-msgid "manager.setup.numAnnouncementsHomepage"
-msgstr "Näytä kotisivulla"
-
-msgid "manager.setup.enableAnnouncements.description"
-msgstr ""
-"Ilmoituksia julkaisemalla, lukijoille voidaan kertoa uutisista ja "
-"tapahtumista. Julkaistut ilmoitukset näkyvät Ilmoitukset-sivulla."
-
-msgid "manager.setup.enableAnnouncements.enable"
-msgstr "Ota ilmoitukset käyttöön"
-
-msgid "manager.setup.emailSignature.description"
-msgstr ""
-"Valmiisiin sähköposteihin, jotka järjestelmä lähettää julkaisijan puolesta, "
-"lisätään seuraava allekirjoitus."
-
-msgid "manager.setup.emailBounceAddress.disabled"
-msgstr ""
-"Aktivoidakseen tämän valinnan sivuston ylläpitäjän täytyy ottaa käyttöön "
-"allow_envelope_sender
-valinta OMP:n määritystiedostossa. "
-"Palvelimen lisämäärityksiä saatetaan edellyttää tämän toiminnon tukemiseksi, "
-"kuten OMP:n käyttöohjeissa mainitaan."
-
-msgid "manager.setup.emailBounceAddress.description"
-msgstr ""
-"Kaikki sähköpostit, jotka eivät mene perille johtavat tähän osoitteeseen "
-"lähetettävään virheilmoitukseen."
-
-msgid "manager.setup.displayNewReleases.label"
-msgstr "Uutuudet"
-
-msgid "manager.setup.displayInSpotlight.label"
-msgstr "Nosto"
-
-msgid "manager.setup.displayFeaturedBooks.label"
-msgstr "Esittelyssä olevat teokset"
-
-msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
-msgstr ""
-"Tätä kokoa suuremmat kuvat pienennetään tähän kokoon, mutta kokoa pienempiä "
-"kuvia ei suurenneta."
-
-msgid "manager.setup.contextSummary"
-msgstr "Julkaisijan yhteenveto"
-
-msgid "manager.setup.contextAbout.description"
-msgstr ""
-"Kerro sellaisia lisätietoja, jotka voivat kiinnostaa lukijoita, kirjoittajia "
-"tai arvioijia. Esimerkiksi avoimen julkaisemisen linjaukset, tarkoitus ja "
-"toimintaperiaatteet, tukijat ja julkaisijan historia."
-
-msgid "manager.setup.announcementsIntroduction.description"
-msgstr ""
-"Kirjoita mahdolliset lisätiedot, jotka haluat esittää lukijoille Ilmoitukset-"
-"sivulla."
-
-msgid "manager.setup.contextAbout"
-msgstr "Tietoa julkaisijasta"
-
-msgid "manager.setup.disableSubmissions.description"
-msgstr ""
-"Estä käyttäjiä lähettämästä uusia teoksia julkaisijalle. Käsikirjoitukset "
-"yksittäisiin julkaisijan sarjoihin voidaan estää "
-"julkaisijan sarjojen asetussivulla."
-
-msgid "manager.setup.disableSubmissions.notAccepting"
-msgstr ""
-"Julkaisija ei ota vastaan käsikirjoituksia tällä hetkellä. Käy työnkulun "
-"asetuksissa sallimassa käsikirjoitukset."
-
-msgid "manager.series.confirmDeactivateSeries.error"
-msgstr ""
-"Vähintään yhden sarjan tulee olla käytössä. Käy työnkulun asetuksissa "
-"estämässä käsikirjoitusten lähettäminen tälle julkaisijalle."
-
-msgid "plugins.importexport.native.exportSubmissions"
-msgstr "Vie käsikirjoituksia"
-
-msgid "plugins.importexport.common.invalidXML"
-msgstr "Virheellinen XML:"
-
-msgid "plugins.importexport.common.error.validation"
-msgstr "Valittuja kohteita ei voitu muuntaa."
-
-msgid "plugins.importexport.common.error.noObjectsSelected"
-msgstr "Yhtään kohdetta ei ole valittu."
diff --git a/locale/fi_FI/submission.po b/locale/fi_FI/submission.po
deleted file mode 100644
index c2da397511d..00000000000
--- a/locale/fi_FI/submission.po
+++ /dev/null
@@ -1,492 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-13T19:56:53+00:00\n"
-"PO-Revision-Date: 2020-12-11 20:34+0000\n"
-"Last-Translator: Antti-Jussi Nygård \n"
-"Language-Team: Finnish \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 "submission.submit.title"
-msgstr "Lähetä käsikirjoitus"
-
-msgid "submission.upload.selectComponent"
-msgstr "Valitse osa"
-
-msgid "submission.title"
-msgstr "Kirjan nimeke"
-
-msgid "submission.select"
-msgstr "Valitse käsikirjoitus"
-
-msgid "submission.synopsis"
-msgstr "Tiivistelmä"
-
-msgid "submission.workflowType"
-msgstr "Käsikirjoitustyyppi"
-
-msgid "submission.workflowType.description"
-msgstr ""
-"Erillisteos on yhden tai useamman kirjoittajan kokonaan kirjoittama teos. "
-"Toimitetussa teoksessa jokaisella luvulla on eri kirjoittaja (lukujen tiedot "
-"syötetään myöhemmin.)"
-
-msgid "submission.workflowType.editedVolume"
-msgstr "Toimitettu teos: Jokaisella luvulla on eri kirjoittaja."
-
-msgid "submission.workflowType.authoredWork"
-msgstr "Erillisteos: Yhden tai useamman kirjoittajan kokonaan kirjoittama teos."
-
-msgid "submission.editorName"
-msgstr "{$editorName} (toim.)"
-
-msgid "submission.monograph"
-msgstr "Kirja"
-
-msgid "submission.published"
-msgstr "Valmis tuotantoon"
-
-msgid "submission.fairCopy"
-msgstr "Puhtaaksi kirjoitettu käsikirjoitus"
-
-msgid "submission.authorListSeparator"
-msgstr "; "
-
-msgid "submission.artwork.permissions"
-msgstr "Luvat"
-
-msgid "submission.chapter"
-msgstr "Luku"
-
-msgid "submission.chapters"
-msgstr "Luvut"
-
-msgid "submission.chaptersDescription"
-msgstr "Tässä voit luetella luvut ja valita tekijät yllä olevasta tekijälistasta. Nämä tekijät saavat pääsyn lukuihin julkaisuprosessin eri vaiheissa."
-
-msgid "submission.chapter.addChapter"
-msgstr "Lisää luku"
-
-msgid "submission.chapter.editChapter"
-msgstr "Muokkaa lukua"
-
-msgid "submission.copyedit"
-msgstr "Tekninen toimittaminen"
-
-msgid "submission.publicationFormats"
-msgstr "Julkaisumuodot"
-
-msgid "submission.proofs"
-msgstr "Korjausvedokset"
-
-msgid "submission.download"
-msgstr "Lataa"
-
-msgid "submission.sharing"
-msgstr "Jaa tämä"
-
-msgid "manuscript.submission"
-msgstr "Käsikirjoituksen lähetys"
-
-msgid "submission.round"
-msgstr "Kierros {$round}"
-
-msgid "submissions.queuedReview"
-msgstr "Arvioitavana"
-
-msgid "manuscript.submissions"
-msgstr "Vastaanotetut käsikirjoitukset"
-
-msgid "submission.confirmSubmit"
-msgstr "Oletko varma, että haluat lähettää tämän käsikirjoituksen?"
-
-msgid "submission.metadata"
-msgstr "Metatiedot"
-
-msgid "submission.supportingAgencies"
-msgstr "Kannattajajärjestöt"
-
-msgid "grid.action.addChapter"
-msgstr "Luo uusi luku"
-
-msgid "grid.action.editChapter"
-msgstr "Muokkaa tätä lukua"
-
-msgid "grid.action.deleteChapter"
-msgstr "Poista tämä luku"
-
-msgid "submission.submit"
-msgstr "Uuden kirjan lähetys"
-
-msgid "submission.submit.newSubmissionMultiple"
-msgstr "Aloita käsikirjoituksen lähetys julkaisijalle"
-
-msgid "submission.submit.newSubmissionSingle"
-msgstr "Uusi käsikirjoitus"
-
-msgid "submission.submit.upload"
-msgstr "Lataa käsikirjoitus"
-
-msgid "submission.submit.cancelSubmission"
-msgstr "Voit viimeistellä tämän lähetyksen myöhemmin valitsemalla Aktiiviset käsikirjoitukset Kirjoittajan etusivulta."
-
-msgid "submission.submit.selectSeries"
-msgstr "Valitse sarja (valinnainen)"
-
-msgid "author.submit.seriesRequired"
-msgstr "Kelvollinen sarja vaaditaan."
-
-msgid "submission.submit.seriesPosition"
-msgstr "Sijoitus sarjassa"
-
-msgid "submission.submit.seriesPosition.description"
-msgstr "Esimerkiksi: Kirja 2, Nide 2"
-
-msgid "submission.submit.form.localeRequired"
-msgstr "Valitse käsikirjoituksen kieli."
-
-msgid "submission.submit.privacyStatement"
-msgstr "Tietosuojaseloste"
-
-msgid "submission.submit.contributorRole"
-msgstr "Tekijän rooli"
-
-msgid "submission.submit.form.authorRequired"
-msgstr "Vähintään yksi kirjoittaja vaaditaan."
-
-msgid "submission.submit.form.authorRequiredFields"
-msgstr "Jokaisen kirjoittajan etunimi, sukunimi ja sähköpostiosoite vaaditaan."
-
-msgid "submission.submit.form.titleRequired"
-msgstr "Syötä kirjasi nimeke."
-
-msgid "submission.submit.form.abstractRequired"
-msgstr "Kirjoita lyhyt yhteenveto kirjastasi."
-
-msgid "submission.submit.form.contributorRoleRequired"
-msgstr "Valitse tekijän rooli."
-
-msgid "submission.submit.submissionFile"
-msgstr "Käsikirjoitustiedosto"
-
-msgid "submission.submit.prepare"
-msgstr "Valmistelu"
-
-msgid "submission.submit.catalog"
-msgstr "Luettelo"
-
-msgid "submission.submit.metadata"
-msgstr "Metatiedot"
-
-msgid "submission.submit.finishingUp"
-msgstr "Viimeistely"
-
-msgid "submission.submit.confirmation"
-msgstr "Vahvistus"
-
-msgid "submission.submit.nextSteps"
-msgstr "Seuraavat vaiheet"
-
-msgid "submission.submit.coverNote"
-msgstr "Saate toimittajalle"
-
-msgid "submission.submit.generalInformation"
-msgstr "Yleisiä tietoja"
-
-msgid "submission.submit.whatNext.description"
-msgstr ""
-"Julkaisijalle on ilmoitettu käsikirjoituksestasi ja sinulle on lähetetty "
-"sähköpostitse vahvistus säilytettäväksi. Toimittajan arvioitua "
-"käsikirjoituksen sinuun otetaan yhteyttä."
-
-msgid "submission.submit.checklistErrors"
-msgstr "Lue ja kuittaa käsikirjoituksen tarkistuslistan kohdat. {$itemsRemaining} kohtaa on vielä kuittaamatta."
-
-msgid "submission.submit.placement"
-msgstr "Käsikirjoituksen sijoittaminen"
-
-msgid "submission.submit.placement.categories"
-msgstr "Kategoriat"
-
-msgid "submission.submit.placement.categoriesDescription"
-msgstr "Valitse painon kategorioista se, jonne tämä työ lähetetään käsiteltäväksi."
-
-msgid "submission.submit.userGroup"
-msgstr "Lähetä roolissani..."
-
-msgid "submission.submit.userGroupDescription"
-msgstr "Jos olet lähettämässä toimitettua teosta, sinun tulee valita niteen toimittajan rooli."
-
-msgid "grid.chapters.title"
-msgstr "Luvut"
-
-msgid "grid.copyediting.deleteCopyeditorResponse"
-msgstr "Poista teknisen toimittajan lataus"
-
-msgid "submission.complete"
-msgstr "Hyväksytty"
-
-msgid "submission.incomplete"
-msgstr "Odottaa hyväksyntää"
-
-msgid "submission.editCatalogEntry"
-msgstr "Merkintä"
-
-msgid "submission.catalogEntry.new"
-msgstr "Lisää merkintä"
-
-msgid "submission.catalogEntry.add"
-msgstr "Lisää valitut luetteloon"
-
-msgid "submission.catalogEntry.select"
-msgstr "Valitse kirjat, jotka lisätään luetteloon"
-
-msgid "submission.catalogEntry.selectionMissing"
-msgstr "Valitse vähintään yksi kirja, joka lisätään luetteloon."
-
-msgid "submission.catalogEntry.confirm"
-msgstr "Lisää tämä kirja julkiseen luetteloon"
-
-msgid "submission.catalogEntry.confirm.required"
-msgstr "Vahvista, että käsikirjoitus on valmis luetteloon sijoitettavaksi."
-
-msgid "submission.catalogEntry.isAvailable"
-msgstr "Tämä kirja on valmis sisällytettäväksi julkiseen luetteloon."
-
-msgid "submission.catalogEntry.viewSubmission"
-msgstr "Näytä käsikirjoitus"
-
-msgid "submission.catalogEntry.monographMetadata"
-msgstr "Kirja"
-
-msgid "submission.catalogEntry.catalogMetadata"
-msgstr "Luettelo"
-
-msgid "submission.catalogEntry.publicationMetadata"
-msgstr "Julkaisumuoto"
-
-msgid "submission.event.metadataPublished"
-msgstr "Kirjan metatiedot on hyväksytty julkaistavaksi."
-
-msgid "submission.event.metadataUnpublished"
-msgstr "Kirjan metatiedot eivät ole enää julkaistuna."
-
-msgid "submission.event.publicationFormatMadeAvailable"
-msgstr "Julkaisumuoto ”{$publicationFormatName}” on nyt saatavissa."
-
-msgid "submission.event.publicationFormatMadeUnavailable"
-msgstr "Julkaisumuoto \"{$publicationFormatName}\" ei ole enää saatavissa."
-
-msgid "submission.event.publicationFormatPublished"
-msgstr "Julkaisumuoto \"{$publicationFormatName}\" on hyväksytty julkaistavaksi."
-
-msgid "submission.event.publicationFormatUnpublished"
-msgstr "Julkaisumuoto \"{$publicationFormatName}\" ei ole enää julkaistuna."
-
-msgid "submission.event.catalogMetadataUpdated"
-msgstr "Luettelon metatiedot päivitettiin."
-
-msgid "submission.event.publicationMetadataUpdated"
-msgstr "Julkaisumuodon \"{$formatName}\" metatiedot päivitettiin."
-
-msgid "submission.event.publicationFormatCreated"
-msgstr "Julkaisumuoto \"{$formatName}\" luotiin."
-
-msgid "submission.event.publicationFormatRemoved"
-msgstr "Julkaisumuoto \"{$formatName}\" poistettiin."
-
-msgid "submission.submit.titleAndSummary"
-msgstr "Nimeke ja yhteenveto"
-
-msgid "workflow.review.externalReview"
-msgstr "Ulkopuolinen arviointi"
-
-msgid "editor.submission.decision.sendExternalReview"
-msgstr "Lähetä ulkopuoliseen arviointiin"
-
-msgid "submission.upload.fileContents"
-msgstr "Käsikirjoituksen osa"
-
-msgid "submission.dependentFiles"
-msgstr "Riippuvat tiedostot"
-
-msgid "submission.metadataDescription"
-msgstr ""
-"Nämä määritykset perustuvat Dublin Core -metatietosanastostandardiin. Se on "
-"kansainvälinen standardi, jolla kuvataan julkaisijan julkaisemia sisältöjä."
-
-msgid "section.any"
-msgstr "Mikä tahansa sarja"
-
-msgid "submission.list.monographs"
-msgstr "Kirjat"
-
-msgid "submission.list.countMonographs"
-msgstr "{$count} kirjaa"
-
-msgid "submission.list.itemsOfTotalMonographs"
-msgstr "{$count}/{$total} kirjasta"
-
-msgid "submission.list.orderFeatures"
-msgstr "Järjestä esittelyssä olevat"
-
-msgid "submission.list.orderingFeatures"
-msgstr "Vedä ja pudota tai napauta ylös- ja alas-painikkeita muuttaaksesi esittelyssä olevien kohteiden järjestystä etusivulla."
-
-msgid "submission.list.orderingFeaturesSection"
-msgstr "Vedä ja pudota tai napauta ylös- ja alas-painikkeita muuttaaksesi kohteen {$title} ominaisuuksien järjestystä."
-
-msgid "submission.list.saveFeatureOrder"
-msgstr "Tallenna järjestys"
-
-msgid "publication.scheduledIn"
-msgstr "Tullaan julkaisemaan {$issueName}."
-
-msgid "publication.publish.confirmation"
-msgstr ""
-"Kaikki julkaisuun liittyvät vaatimukset täyttyvät. Haluatko julkaista "
-"teoksen?"
-
-msgid "publication.publishedIn"
-msgstr "Julkaistu {$issueName}."
-
-msgid "publication.required.issue"
-msgstr "Julkaisu pitää lisätä numeroon ennen kuin sen von julkaista."
-
-msgid "publication.invalidSeries"
-msgstr "Sarjaa ei löytynyt."
-
-msgid "publication.catalogEntry.success"
-msgstr "Luettelomerkinnän tiedot on päivitetty."
-
-msgid "publication.catalogEntry"
-msgstr "Luettelomerkintä"
-
-msgid "catalog.browseTitles"
-msgstr "{$numTitles} nimikettä"
-
-msgid "submission.catalogEntry.enableChapterPublicationDates"
-msgstr "Jokaisella luvulla voi olla oma julkaisupäivä."
-
-msgid "submission.catalogEntry.disableChapterPublicationDates"
-msgstr "Kaikki luvut käyttävät teoksen julkaisupäivää."
-
-msgid "submission.catalogEntry.chapterPublicationDates"
-msgstr "Julkaisupäivät"
-
-msgid "submission.submit.noContext"
-msgstr "Käsikirjoitusta vastaavaa julkaisijaa ei löytynyt."
-
-msgid "author.isVolumeEditor"
-msgstr "Merkitse tämä tekijä teoksen toimittajaksi."
-
-msgid "submission.chapter.pages"
-msgstr "Sivut"
-
-msgid "submission.workflowType.change"
-msgstr "Vaihda"
-
-msgid "submission.workflowType.editedVolume.label"
-msgstr "Toimitettu teos"
-
-msgid "submission.publication"
-msgstr "Julkaistu versio"
-
-msgid "publication.status.published"
-msgstr "Julkaistu"
-
-msgid "submission.status.scheduled"
-msgstr "Ajoitettu"
-
-msgid "publication.status.unscheduled"
-msgstr "Ajoitus peruttu"
-
-msgid "submission.publications"
-msgstr "Julkaistut versiot"
-
-msgid "publication.copyrightYearBasis.issueDescription"
-msgstr "Tekijänoikeusvuosi asetetaan automaattisesti julkaisun yhteydessä."
-
-msgid "publication.copyrightYearBasis.submissionDescription"
-msgstr "Tekijänoikeusvuosi asetetaan automaattisesti julkaisupäivän mukaan."
-
-msgid "publication.datePublished"
-msgstr "Julkaisupäivä"
-
-msgid "publication.editDisabled"
-msgstr "Tämä versio on julkaistu eikä sitä voi muokata."
-
-msgid "publication.event.published"
-msgstr "Käsikirjoitus julkaistiin."
-
-msgid "publication.event.scheduled"
-msgstr "Käsikirjoitus ajoitettiin julkaistavaksi."
-
-msgid "publication.event.unpublished"
-msgstr "Käsikirjoituksen julkaisu peruttiin."
-
-msgid "publication.event.versionPublished"
-msgstr "Uusi versio julkaistiin."
-
-msgid "publication.event.versionScheduled"
-msgstr "Uusi versio ajoitettiin julkaistavaksi."
-
-msgid "publication.event.versionUnpublished"
-msgstr "Versio poistettiin."
-
-msgid "publication.invalidSubmission"
-msgstr "Tälle julkaistulle versiolle ei löydy vastaavaa käsikirjoitusta."
-
-msgid "publication.publish"
-msgstr "Julkaise"
-
-msgid "publication.publish.requirements"
-msgstr "Seuraavat ehdot pitää täyttyä ennen julkaisua."
-
-msgid "publication.required.declined"
-msgstr "Hylättyä käsikirjoitusta ei voi julkaista."
-
-msgid "publication.required.reviewStage"
-msgstr ""
-"Käsikirjoituksen pitää olla teknisen toimituksessa tai tuotantovaiheessa, "
-"jotta sen voi julkaista."
-
-msgid "submission.license.description"
-msgstr ""
-"Lisenssiksi annetaan julkaisun yhteydessä {$licenseName}."
-
-msgid "submission.copyrightHolder.description"
-msgstr "Tekijänoikeus osoitetaan julkaisun yhteydessä {$copyright}."
-
-msgid "submission.copyrightOther.description"
-msgstr ""
-"Osoita julkaistujen käsikirjoitusten tekijänoikeus seuraavalle osapuolelle."
-
-msgid "publication.unpublish"
-msgstr "Peru julkaisu"
-
-msgid "publication.unpublish.confirm"
-msgstr "Oletko varma, että haluat peruuttaa julkaisun?"
-
-msgid "publication.unschedule.confirm"
-msgstr "Oletko varma, että et halua ajoittaa tätä julkaistavaksi?"
-
-msgid "publication.version.details"
-msgstr "Version {$version} tiedot"
-
-msgid "submission.queries.production"
-msgstr "Tuotantoon liittyvät keskustelut"
-
-msgid "publication.inactiveSeries"
-msgstr "{$series} (Inactive)"
-
-msgid "submission.list.viewEntry"
-msgstr "Näytä merkintä"
diff --git a/locale/fr_CA/admin.po b/locale/fr_CA/admin.po
index 31101ca20aa..632081e9750 100644
--- a/locale/fr_CA/admin.po
+++ b/locale/fr_CA/admin.po
@@ -1,11 +1,12 @@
+# Marie-Hélène Vézina [UdeMontréal] , 2023.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2020-06-05 16:39+0000\n"
-"Last-Translator: Marie-Hélène Vézina [UdeMontréal] \n"
+"PO-Revision-Date: 2023-02-17 03:04+0000\n"
+"Last-Translator: Marie-Hélène Vézina [UdeMontréal] \n"
"Language-Team: French (Canada) \n"
"Language: fr_CA\n"
@@ -13,16 +14,27 @@ msgstr ""
"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"
+"X-Generator: Weblate 4.13.1\n"
msgid "admin.hostedContexts"
msgstr "Presses hébergées"
+msgid "admin.settings.appearance.success"
+msgstr "Les paramètres d'apparence du site ont bien été mis à jour."
+
+msgid "admin.settings.config.success"
+msgstr "Les paramètres d'apparence du site ont bien été mis à jour."
+
+msgid "admin.settings.info.success"
+msgstr "Les informations du site ont bien été mises à jour."
+
msgid "admin.settings.redirect"
msgstr "Réacheminement de la presse"
msgid "admin.settings.redirectInstructions"
-msgstr "Les requêtes envoyées au site central seront redirigées vers cette presse. Cela pourrait être utile si le site héberge une seule presse, par exemple."
+msgstr ""
+"Les requêtes envoyées au site central seront redirigées vers cette presse. "
+"Cela pourrait être utile si le site héberge une seule presse, par exemple."
msgid "admin.settings.noPressRedirect"
msgstr "Ne pas rediriger"
@@ -31,7 +43,14 @@ msgid "admin.languages.primaryLocaleInstructions"
msgstr "Ceci sera la langue par défaut pour le site et les presses hébergées."
msgid "admin.languages.supportedLocalesInstructions"
-msgstr "Choisissez les paramètres qui seront supportés sur le site. Toutes les presses hébergées sur le site pourront utiliser les paramètres sélectionnés. Ces derniers feront partie du menu de sélection de la langue apparaissant sur toutes les pages du site (lesquels peuvent être remplacés sur les pages d'une presse particulière). Si plusieurs paramètres ne sont pas sélectionnés, le bouton à bascule de la langue n'apparaitra pas et les presses n'auront pas accès aux paramètres de langue étendus."
+msgstr ""
+"Choisissez les paramètres qui seront supportés sur le site. Toutes les "
+"presses hébergées sur le site pourront utiliser les paramètres sélectionnés. "
+"Ces derniers feront partie du menu de sélection de la langue apparaissant "
+"sur toutes les pages du site (lesquels peuvent être remplacés sur les pages "
+"d'une presse particulière). Si plusieurs paramètres ne sont pas "
+"sélectionnés, le bouton à bascule de la langue n'apparaitra pas et les "
+"presses n'auront pas accès aux paramètres de langue étendus."
msgid "admin.locale.maybeIncomplete"
msgstr "*Les paramètres marqués pourraient être incomplets."
@@ -42,7 +61,12 @@ msgstr ""
"presses hébergées qui l'utilisent actuellement."
msgid "admin.languages.installNewLocalesInstructions"
-msgstr "Choisissez les autres paramètres de support que vous souhaitez installer dans ce système. Les paramètres doivent être installés avant de pouvoir être utilisés par les presses hébergées. Consultez la documentation de l'OMP pour de plus amples renseignements sur l'ajout de support pour les nouvelles langues."
+msgstr ""
+"Choisissez les autres paramètres de support que vous souhaitez installer "
+"dans ce système. Les paramètres doivent être installés avant de pouvoir être "
+"utilisés par les presses hébergées. Consultez la documentation de l'OMP pour "
+"de plus amples renseignements sur l'ajout de support pour les nouvelles "
+"langues."
msgid "admin.languages.confirmDisable"
msgstr ""
@@ -55,18 +79,12 @@ msgstr "Version OMP"
msgid "admin.systemConfiguration"
msgstr "Configuration OMP"
-msgid "admin.systemConfigurationDescription"
-msgstr "Paramètres de configuration OMP pour config.inc.php."
-
msgid "admin.presses.pressSettings"
msgstr "Configuration de la presse"
msgid "admin.presses.noneCreated"
msgstr "Aucune presse n'a été créée."
-msgid "admin.contexts.confirmDelete"
-msgstr "Vous voulez supprimer cette presse et tout son contenu de façon permanente?"
-
msgid "admin.contexts.create"
msgstr "Créer une presse"
@@ -77,11 +95,23 @@ msgid "admin.contexts.form.pathRequired"
msgstr "Vous devez choisir un chemin."
msgid "admin.contexts.form.pathAlphaNumeric"
-msgstr "Le chemin ne peut contenir que des caractères alphanumériques, des traits de soulignement et des traits d'union, et doit commencer et se terminer par un caractère alphanumérique."
+msgstr ""
+"Le chemin ne peut contenir que des caractères alphanumériques, des traits de "
+"soulignement et des traits d'union, et doit commencer et se terminer par un "
+"caractère alphanumérique."
msgid "admin.contexts.form.pathExists"
msgstr "Le chemin choisi est déjà utilisé par une autre presse."
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr ""
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} a bien été créé-e."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} a bien été modifié-e."
+
msgid "admin.contexts.contextDescription"
msgstr "Description de la presse"
@@ -91,19 +121,46 @@ msgstr "Ajouter la presse"
msgid "admin.overwriteConfigFileInstructions"
msgstr ""
"NOTE!\n"
-"
Le système ne peut pas réécrire automatiquement le fichier de configuration. Pour appliquer les modifications de configuration, vous devez ouvrir config.inc.php dans un éditeur de texte approprié et remplacer le contenu par le contenu de la zone de texte ci-dessous.
"
+"Le système ne peut pas réécrire automatiquement le fichier de "
+"configuration. Pour appliquer les modifications de configuration, vous devez "
+"ouvrir config.inc.php dans un éditeur de texte approprié et "
+"remplacer le contenu par le contenu de la zone de texte ci-dessous.
"
-msgid "admin.contexts.form.edit.success"
-msgstr "{$name} a bien été modifié-e."
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
-msgid "admin.contexts.form.create.success"
-msgstr "{$name} a bien été créé-e."
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
-msgid "admin.settings.info.success"
-msgstr "Les informations du site ont bien été mises à jour."
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
-msgid "admin.settings.config.success"
-msgstr "Les paramètres d'apparence du site ont bien été mis à jour."
+msgid "admin.siteManagement.description"
+msgstr ""
-msgid "admin.settings.appearance.success"
-msgstr "Les paramètres d'apparence du site ont bien été mis à jour."
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr ""
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr ""
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+
+#~ msgid "admin.systemConfigurationDescription"
+#~ msgstr "Paramètres de configuration OMP pour config.inc.php."
+
+#~ msgid "admin.contexts.confirmDelete"
+#~ msgstr ""
+#~ "Vous voulez supprimer cette presse et tout son contenu de façon "
+#~ "permanente?"
+
+#, fuzzy
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr "Utiliser le site comme la plateforme pour toutes les revues."
diff --git a/locale/fr_CA/api.po b/locale/fr_CA/api.po
new file mode 100644
index 00000000000..5a4b45fceb2
--- /dev/null
+++ b/locale/fr_CA/api.po
@@ -0,0 +1,8 @@
+# Weblate Admin , 2023.
+msgid ""
+msgstr ""
+"Language: fr_CA\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Weblate\n"
diff --git a/locale/fr_CA/author.po b/locale/fr_CA/author.po
new file mode 100644
index 00000000000..5a4b45fceb2
--- /dev/null
+++ b/locale/fr_CA/author.po
@@ -0,0 +1,8 @@
+# Weblate Admin , 2023.
+msgid ""
+msgstr ""
+"Language: fr_CA\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Weblate\n"
diff --git a/locale/fr_CA/default.po b/locale/fr_CA/default.po
index 3178add8d7d..3206c3342be 100644
--- a/locale/fr_CA/default.po
+++ b/locale/fr_CA/default.po
@@ -4,8 +4,8 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
"PO-Revision-Date: 2020-06-05 16:39+0000\n"
-"Last-Translator: Marie-Hélène Vézina [UdeMontréal] \n"
+"Last-Translator: Marie-Hélène Vézina [UdeMontréal] \n"
"Language-Team: French (Canada) \n"
"Language: fr_CA\n"
@@ -54,6 +54,15 @@ msgstr "Illustration"
msgid "default.genres.other"
msgstr "Autre"
+msgid "default.groups.name.manager"
+msgstr "Gestionnaire de la presse"
+
+msgid "default.groups.plural.manager"
+msgstr "Gestionnaires de la presse"
+
+msgid "default.groups.abbrev.manager"
+msgstr "MP"
+
msgid "default.groups.name.editor"
msgstr "Rédacteur/Rédactrice en chef de la presse"
@@ -72,6 +81,15 @@ msgstr "Rédacteurs en chef de la série"
msgid "default.groups.abbrev.sectionEditor"
msgstr "RS"
+msgid "default.groups.name.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr ""
+
msgid "default.groups.name.chapterAuthor"
msgstr "Auteur du chapitre"
@@ -90,41 +108,36 @@ msgstr "Rédacteurs en chef du volume"
msgid "default.groups.abbrev.volumeEditor"
msgstr "RV"
-msgid "default.contextSettings.checklist.notPreviouslyPublished"
-msgstr "Cette soumission n'a jamais été publiée et n'a pas été soumise à une autre presse (ou une explication a été ajoutée à la section Commentaires du rédacteur en chef)."
-
-msgid "default.contextSettings.checklist.fileFormat"
-msgstr "Le fichier soumis est de format Microsoft Word, RTF ou OpenDocument."
-
-msgid "default.contextSettings.checklist.addressesLinked"
-msgstr "Les adresses URL des références ont été fournies si elles étaient disponibles."
-
-msgid "default.contextSettings.checklist.submissionAppearance"
+msgid "default.contextSettings.authorGuidelines"
msgstr ""
-"Le texte est publié à simple interligne ; utiliser une police de caractères "
-"de 12 points ; utiliser des caractères italiques au lieu de souligner (sauf "
-"pour les adresses URL) ; et toutes les illustrations, figures et tableaux "
-"doivent être insérés dans le texte aux endroits appropriés plutôt qu'à la "
-"fin."
-msgid "default.contextSettings.checklist.bibliographicRequirements"
-msgstr "Le texte respecte les exigences stylistiques et bibliographiques conformément aux lignes directrices à l'intention des auteurs, disponibles dans la rubrique À propos de cette presse."
+msgid "default.contextSettings.checklist"
+msgstr ""
msgid "default.contextSettings.privacyStatement"
-msgstr "Les noms et adresses courriel saisis sur ce site de presse seront utilisés exclusivement pour les fins convenues de cette presse. Ils ne seront pas utilisés pour d'autres fins ou transmis à une tierce partie.
"
+msgstr ""
+"Les noms et adresses courriel saisis sur ce site de presse seront "
+"utilisés exclusivement pour les fins convenues de cette presse. Ils ne "
+"seront pas utilisés pour d'autres fins ou transmis à une tierce partie.
"
msgid "default.contextSettings.openAccessPolicy"
-msgstr "Cette presse offre un accès libre immédiat à son contenu en partant du principe que la recherche doit être accessible au grand public, car cela favorise un meilleur échange des connaissances à l'échelle mondiale."
-
-msgid "default.contextSettings.emailSignature"
msgstr ""
-"
\n"
-"________________________________________________________________________
"
-"\n"
-"{$ldelim}$contextName{$rdelim}"
+"Cette presse offre un accès libre immédiat à son contenu en partant du "
+"principe que la recherche doit être accessible au grand public, car cela "
+"favorise un meilleur échange des connaissances à l'échelle mondiale."
msgid "default.contextSettings.forReaders"
-msgstr "Nous encourageons les lecteurs à s'abonner au service d'avis de publication de cette presse. Utilisez le lien d'inscription situé en haut de la page d'accueil de la presse. Cette inscription permettra au lecteur de recevoir la table des matières de chaque nouvelle monographie de cette presse par courriel. Cette liste permet également à la presse d'affirmer qu'elle compte un certain nombre de lecteurs. Consultez l'énoncé de confidentialité de la presse, lequel stipule que les noms et adresses courriel de ses lecteurs ne seront pas utilisés à d'autres fins."
+msgstr ""
+"Nous encourageons les lecteurs à s'abonner au service d'avis de publication "
+"de cette presse. Utilisez le lien d'inscription situé en haut de la page d'accueil de la "
+"presse. Cette inscription permettra au lecteur de recevoir la table des "
+"matières de chaque nouvelle monographie de cette presse par courriel. Cette "
+"liste permet également à la presse d'affirmer qu'elle compte un certain "
+"nombre de lecteurs. Consultez l'énoncé de confidentialité de la "
+"presse, lequel stipule que les noms et adresses courriel de ses lecteurs ne "
+"seront pas utilisés à d'autres fins."
msgid "default.contextSettings.forAuthors"
msgstr ""
@@ -132,30 +145,58 @@ msgstr ""
"recommandons de lire la page\n"
" À propos de cette presse "
"pour connaitre ses règlements et la page\n"
-" "
-"Lignes directrices à l'intention des auteurs-es. Les auteurs-es doivent <"
-"a href=\"{$indexUrl}/{$contextPath}/user/register\">s'inscrire auprès de "
-"la presse avant d'envoyer une soumission. Si vous êtes déjà inscrit-e, il "
-"suffit simplement d'ouvrir une "
-"session pour débuter la procédure en 5 étapes."
+" Lignes directrices à l'intention des auteurs-es. Les auteurs-es "
+"doivent s'inscrire "
+"auprès de la presse avant d'envoyer une soumission. Si vous êtes déjà "
+"inscrit-e, il suffit simplement d'ouvrir "
+"une session pour débuter la procédure en 5 étapes."
msgid "default.contextSettings.forLibrarians"
-msgstr "Nous encourageons les bibliothécaires de recherche à ajouter cette presse à la liste électronique des ressources documentaires de la bibliothèque. De plus, ce système d'édition à libre accès convient à toutes les bibliothèques et permet aux membres des facultés de l'utiliser pour les presses auxquelles ils contribuent à titre de rédacteur en chef. (voir Open Monograph Press)."
-
-msgid "default.groups.name.manager"
-msgstr "Gestionnaire de la presse"
+msgstr ""
+"Nous encourageons les bibliothécaires de recherche à ajouter cette presse à "
+"la liste électronique des ressources documentaires de la bibliothèque. De "
+"plus, ce système d'édition à libre accès convient à toutes les bibliothèques "
+"et permet aux membres des facultés de l'utiliser pour les presses auxquelles "
+"ils contribuent à titre de rédacteur en chef. (voir Open Monograph Press)."
-msgid "default.groups.plural.manager"
-msgstr "Gestionnaires de la presse"
+msgid "default.groups.name.externalReviewer"
+msgstr "Évaluateur-trice externe"
-msgid "default.groups.abbrev.manager"
-msgstr "MP"
+msgid "default.groups.plural.externalReviewer"
+msgstr "Évaluateurs-trices externes"
msgid "default.groups.abbrev.externalReviewer"
msgstr "EvEx"
-msgid "default.groups.plural.externalReviewer"
-msgstr "Évaluateurs-trices externes"
-
-msgid "default.groups.name.externalReviewer"
-msgstr "Évaluateur-trice externe"
+#~ msgid "default.contextSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "Cette soumission n'a jamais été publiée et n'a pas été soumise à une "
+#~ "autre presse (ou une explication a été ajoutée à la section Commentaires "
+#~ "du rédacteur en chef)."
+
+#~ msgid "default.contextSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "Le fichier soumis est de format Microsoft Word, RTF ou OpenDocument."
+
+#~ msgid "default.contextSettings.checklist.addressesLinked"
+#~ msgstr ""
+#~ "Les adresses URL des références ont été fournies si elles étaient "
+#~ "disponibles."
+
+#~ msgid "default.contextSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "Le texte est publié à simple interligne ; utiliser une police de "
+#~ "caractères de 12 points ; utiliser des caractères italiques au lieu de "
+#~ "souligner (sauf pour les adresses URL) ; et toutes les illustrations, "
+#~ "figures et tableaux doivent être insérés dans le texte aux endroits "
+#~ "appropriés plutôt qu'à la fin."
+
+#~ msgid "default.contextSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "Le texte respecte les exigences stylistiques et bibliographiques "
+#~ "conformément aux lignes directrices à "
+#~ "l'intention des auteurs, disponibles dans la rubrique À propos de "
+#~ "cette presse."
diff --git a/locale/fr_CA/editor.po b/locale/fr_CA/editor.po
index 0fe13fafcf7..6ba5fc66335 100644
--- a/locale/fr_CA/editor.po
+++ b/locale/fr_CA/editor.po
@@ -1,18 +1,19 @@
+# Germán Huélamo Bautista , 2023.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
+"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
+"PO-Revision-Date: 2023-06-25 13:49+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
+"Language-Team: French (Canada) \n"
+"Language: fr_CA\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2019-09-30T06:23:44-07:00\n"
-"Language: \n"
-
-msgid "editor.pressSignoff"
-msgstr "Fermeture de session de la presse"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Generator: Weblate 4.13.1\n"
msgid "editor.submissionArchive"
msgstr "Archives des soumissions"
@@ -33,13 +34,17 @@ msgid "editor.monograph.recommendation"
msgstr "Recommendation"
msgid "editor.monograph.selectReviewerInstructions"
-msgstr "Choisir un évaluateur et une presse ci-haut, cliquer sur \"Choisir un évaluateur\" pour continuer."
+msgstr ""
+"Choisir un évaluateur et une presse ci-haut, cliquer sur \"Choisir un "
+"évaluateur\" pour continuer."
msgid "editor.monograph.replaceReviewer"
msgstr "Remplacer l'évaluateur"
msgid "editor.monograph.editorToEnter"
-msgstr "Le rédacteur en chef doit saisir sa recommandation et ses commentaires pour l'évaluateur"
+msgstr ""
+"Le rédacteur en chef doit saisir sa recommandation et ses commentaires pour "
+"l'évaluateur"
msgid "editor.monograph.uploadReviewForReviewer"
msgstr "Télécharger l'évaluation"
@@ -54,7 +59,10 @@ msgid "editor.monograph.internalReview"
msgstr "Procéder à l'évaluation interne"
msgid "editor.monograph.internalReviewDescription"
-msgstr "Vous entamez le processus d'évaluation interne de cette soumission. La liste des fichiers faisant partie de cette soumission est affichée ci-dessous. Ils peuvent être sélectionnés pour être révisés."
+msgstr ""
+"Vous entamez le processus d'évaluation interne de cette soumission. La liste "
+"des fichiers faisant partie de cette soumission est affichée ci-dessous. Ils "
+"peuvent être sélectionnés pour être révisés."
msgid "editor.monograph.externalReview"
msgstr "Procéder à l'évaluation externe"
@@ -78,25 +86,33 @@ msgid "editor.monograph.legend.submissionActionsDescription"
msgstr "Actions et options de soumission générales."
msgid "editor.monograph.legend.sectionActions"
-msgstr "Actions de section "
+msgstr "Actions de section"
msgid "editor.monograph.legend.sectionActionsDescription"
-msgstr "Les options associées à une section particulière, comme le téléchargement de fichiers ou l'ajout d'utilisateurs."
+msgstr ""
+"Les options associées à une section particulière, comme le téléchargement de "
+"fichiers ou l'ajout d'utilisateurs."
msgid "editor.monograph.legend.itemActions"
-msgstr "Actions des articles "
+msgstr "Actions des articles"
msgid "editor.monograph.legend.itemActionsDescription"
msgstr "Les actions et options associées à un fichier particulier."
msgid "editor.monograph.legend.catalogEntry"
-msgstr "Visionner et gérer l'entrée dans le catalogue de soumission, incluant les formats des métadonnées et de publication."
+msgstr ""
+"Visionner et gérer l'entrée dans le catalogue de soumission, incluant les "
+"formats des métadonnées et de publication."
msgid "editor.monograph.legend.bookInfo"
-msgstr "Visionner et gérer les métadonnées, les notes, les avis et l'historique de la soumission."
+msgstr ""
+"Visionner et gérer les métadonnées, les notes, les avis et l'historique de "
+"la soumission."
msgid "editor.monograph.legend.participants"
-msgstr "Visionner et gérer la liste des personnes impliquées dans cette soumission: auteurs, évaluateurs, concepteurs et autres."
+msgstr ""
+"Visionner et gérer la liste des personnes impliquées dans cette soumission: "
+"auteurs, évaluateurs, concepteurs et autres"
msgid "editor.monograph.legend.add"
msgstr "Télécharger un fichier dans la section."
@@ -105,19 +121,29 @@ msgid "editor.monograph.legend.add_user"
msgstr "Ajouter un utilisateur à la section"
msgid "editor.monograph.legend.settings"
-msgstr "Visionner et accéder aux paramètres des articles, comme les fonctions d'information et de suppression."
+msgstr ""
+"Visionner et accéder aux paramètres des articles, comme les fonctions "
+"d'information et de suppression."
msgid "editor.monograph.legend.more_info"
-msgstr "Renseignements supplémentaires: notes sur les fichiers, options d'alerte et historique."
+msgstr ""
+"Renseignements supplémentaires: notes sur les fichiers, options d'alerte et "
+"historique."
msgid "editor.monograph.legend.notes_none"
-msgstr "Renseignements sur le fichier: notes, options d'alerte et historique (Aucunes notes ajoutées pour le moment)"
+msgstr ""
+"Renseignements sur le fichier: notes, options d'alerte et historique "
+"(Aucunes notes ajoutées pour le moment)"
msgid "editor.monograph.legend.notes"
-msgstr "Renseignements sur le fichier: notes, options d'alertes et historique (Les notes sont disponibles)"
+msgstr ""
+"Renseignements sur le fichier: notes, options d'alertes et historique (Les "
+"notes sont disponibles)"
msgid "editor.monograph.legend.notes_new"
-msgstr "Renseignements sur le fichier: notes, options d'alerte et historique (Nouvelles notes ajoutées depuis la dernière visite)"
+msgstr ""
+"Renseignements sur le fichier: notes, options d'alerte et historique "
+"(Nouvelles notes ajoutées depuis la dernière visite)"
msgid "editor.monograph.legend.edit"
msgstr "Modifier l'article"
@@ -132,28 +158,23 @@ msgid "editor.monograph.legend.complete"
msgstr "Action complétée"
msgid "editor.monograph.legend.uploaded"
-msgstr "Fichier téléchargé par le rôle correspondant au titre de la colonne de la grille."
+msgstr ""
+"Fichier téléchargé par le rôle correspondant au titre de la colonne de la "
+"grille."
msgid "editor.submission.introduction"
-msgstr "Au moment de soumettre un fichier, le rédacteur en chef, après avoir consulté les fichiers soumis, choisit l'action appropriée (qui comprend envoyer un avis à l'auteur): Acheminer pour évaluation interne (exige la sélection des fichiers pour l'évaluation interne); Acheminer pour évaluation externe (exige la sélection des fichiers pour l'évaluation externe); Accepter la soumission (exige la sélection des fichiers pour l'étape de rédaction); ou Refuser la soumission (archivage de la soumission)."
-
-msgid "editor.submission.editorial.finalDraftDescription"
-msgstr "Pour les ouvrages dans lesquels les chapitres ont été écrits par des auteurs différents, le fichier de soumission peut être divisé en fichiers-chapitres pour l'étape de révision. Ces fichiers seront ensuite examinés par les auteurs des chapitres après avoir été téléchargés dans Révision."
+msgstr ""
+"Au moment de soumettre un fichier, le rédacteur en chef, après avoir "
+"consulté les fichiers soumis, choisit l'action appropriée (qui comprend "
+"envoyer un avis à l'auteur): Acheminer pour évaluation interne (exige la "
+"sélection des fichiers pour l'évaluation interne); Acheminer pour évaluation "
+"externe (exige la sélection des fichiers pour l'évaluation externe); "
+"Accepter la soumission (exige la sélection des fichiers pour l'étape de "
+"rédaction); ou Refuser la soumission (archivage de la soumission)."
msgid "editor.monograph.editorial.fairCopy"
msgstr "Copie au net"
-msgid "editor.monograph.editorial.fairCopyDescription"
-msgstr "Le réviseur télécharge une copie au net de la soumission qui sera ensuite examinée par le rédacteur en chef, avant de passer à l'étape de publication."
-
-msgid "editor.submission.production.introduction"
-msgstr ""
-"À l'étape de publication, le rédacteur en chef choisit le format du livre (ex.: numérique, couverture souple, etc.) dans\n"
-" Formats de publication. Le rédacteur metteur en page préparera ensuite des fichiers publiables à partir des fichiers destinés à la publication. Les fichiers publiables sont téléchargés pour chaque format dans Épreuves, où ils seront révisés. Le livre est Disponible (c'est-à-dire publié) pour chacun des formats dans Formats de publication, lorsque les Épreuves ont été vérifiées et approuvées, et on indique que l'entrée de catalogue a été ajoutée à l'entrée de catalogue du livre."
-
-msgid "editor.submission.production.productionReadyFilesDescription"
-msgstr "Le rédacteur metteur en page prépare ces fichiers pour chaque format de publication, puis il télécharge les Épreuves appropriées pour révision."
-
msgid "editor.monograph.proofs"
msgstr "Épreuves"
@@ -161,10 +182,21 @@ msgid "editor.monograph.production.approvalAndPublishing"
msgstr "Approbation et publication"
msgid "editor.monograph.production.approvalAndPublishingDescription"
-msgstr "Les livres peuvent être publiés sous différents formats, soit avec une couverture rigide ou souple, ou en format électronique, et ces formats peuvent être téléchargés dans la section Formats de publication ci-dessous. Vous pouvez utiliser la grille de formats suivante à titre d'aide-mémoire pour savoir ce qu'il faut faire avant de publier un format particulier."
+msgstr ""
+"Les livres peuvent être publiés sous différents formats, soit avec une "
+"couverture rigide ou souple, ou en format électronique, et ces formats "
+"peuvent être téléchargés dans la section Formats de publication ci-dessous. "
+"Vous pouvez utiliser la grille de formats suivante à titre d'aide-mémoire "
+"pour savoir ce qu'il faut faire avant de publier un format particulier."
msgid "editor.monograph.production.publicationFormatDescription"
-msgstr "Ajoutez les formats de publication (ex.: numérique, couverture souple) afin que le rédacteur metteur en page prépare les épreuves qui seront révisées. On doit indiquer que les Épreuves ont été approuvées, et on doit cocher l'entrée de Catalogue pour le format en question afin d'indiquer que cette entrée a été ajoutée au catalogue d'entrée du livre, avant que le format ne soit Disponible (c'est-à-dire publié)."
+msgstr ""
+"Ajoutez les formats de publication (ex.: numérique, couverture souple) afin "
+"que le rédacteur metteur en page prépare les épreuves qui seront révisées. "
+"On doit indiquer que les Épreuves ont été approuvées, et on doit "
+"cocher l'entrée de Catalogue pour le format en question afin "
+"d'indiquer que cette entrée a été ajoutée au catalogue d'entrée du livre, "
+"avant que le format ne soit Disponible (c'est-à-dire publié)."
msgid "editor.monograph.approvedProofs.edit"
msgstr "Choisir les modalités de téléchargement"
@@ -175,8 +207,73 @@ msgstr "Choisir les modalités"
msgid "editor.monograph.proof.addNote"
msgstr "Ajouter une réponse"
-msgid "editor.internalReview.introduction"
-msgstr "Pendant l'évaluation interne, le rédacteur en chef choisit des évaluateurs internes pour chaque fichier soumis et tient compte de leurs commentaires avant de choisir une action appropriée (qui comprend l'envoi d'un avis à l'auteur): À réviser (les révisions ne seront examinées que par le rédacteur en chef); Soumettre à nouveau pour révision (une nouvelle série de révisions sera entreprise); Envoyer à l'évaluateur externe (il faut choisir les fichiers qui seront envoyés à l'évaluateur externe); Accepter la soumission (il faut choisir les fichiers qui seront envoyés au rédacteur en chef); ou Refuser la soumission (archiver la soumission)."
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+
+msgid "editor.submissions.assignedTo"
+msgstr ""
-msgid "editor.externalReview.introduction"
-msgstr "Pendant l'évaluation externe, le rédacteur en chef choisit des évaluateurs qui ne font pas partie de la presse pour chaque fichier soumis et tient compte de leurs commentaires avant de choisir une action appropriée (qui comprend l'envoi d'un avis à l'auteur): À réviser (les révisions ne seront examinées que par le rédacteur en chef); Soumettre à nouveau pour révision (une nouvelle série de révisions sera entreprise); Accepter la soumission (il faut choisir les fichiers qui seront envoyés au rédacteur en chef); ou Refuser la soumission (le rédacteur en chef archive la soumission)."
+#~ msgid "editor.pressSignoff"
+#~ msgstr "Fermeture de session de la presse"
+
+#~ msgid "editor.submission.editorial.finalDraftDescription"
+#~ msgstr ""
+#~ "Pour les ouvrages dans lesquels les chapitres ont été écrits par des "
+#~ "auteurs différents, le fichier de soumission peut être divisé en fichiers-"
+#~ "chapitres pour l'étape de révision. Ces fichiers seront ensuite examinés "
+#~ "par les auteurs des chapitres après avoir été téléchargés dans Révision."
+
+#~ msgid "editor.monograph.editorial.fairCopyDescription"
+#~ msgstr ""
+#~ "Le réviseur télécharge une copie au net de la soumission qui sera ensuite "
+#~ "examinée par le rédacteur en chef, avant de passer à l'étape de "
+#~ "publication."
+
+#~ msgid "editor.submission.production.introduction"
+#~ msgstr ""
+#~ "À l'étape de publication, le rédacteur en chef choisit le format du livre "
+#~ "(ex.: numérique, couverture souple, etc.) dans\n"
+#~ " Formats de publication. Le "
+#~ "rédacteur metteur en page préparera ensuite des fichiers publiables à "
+#~ "partir des fichiers destinés à la publication. Les fichiers publiables "
+#~ "sont téléchargés pour chaque format dans Épreuves, où ils seront révisés. Le livre est Disponible"
+#~ "em> (c'est-à-dire publié) pour chacun des formats dans Formats de publication, lorsque les "
+#~ "Épreuves ont été vérifiées et approuvées, et on indique que "
+#~ "l'entrée de catalogue a été ajoutée à l'entrée de catalogue du livre."
+
+#~ msgid "editor.submission.production.productionReadyFilesDescription"
+#~ msgstr ""
+#~ "Le rédacteur metteur en page prépare ces fichiers pour chaque format de "
+#~ "publication, puis il télécharge les Épreuves appropriées pour révision."
+
+#~ msgid "editor.internalReview.introduction"
+#~ msgstr ""
+#~ "Pendant l'évaluation interne, le rédacteur en chef choisit des "
+#~ "évaluateurs internes pour chaque fichier soumis et tient compte de leurs "
+#~ "commentaires avant de choisir une action appropriée (qui comprend l'envoi "
+#~ "d'un avis à l'auteur): À réviser (les révisions ne seront examinées que "
+#~ "par le rédacteur en chef); Soumettre à nouveau pour révision (une "
+#~ "nouvelle série de révisions sera entreprise); Envoyer à l'évaluateur "
+#~ "externe (il faut choisir les fichiers qui seront envoyés à l'évaluateur "
+#~ "externe); Accepter la soumission (il faut choisir les fichiers qui seront "
+#~ "envoyés au rédacteur en chef); ou Refuser la soumission (archiver la "
+#~ "soumission)."
+
+#~ msgid "editor.externalReview.introduction"
+#~ msgstr ""
+#~ "Pendant l'évaluation externe, le rédacteur en chef choisit des "
+#~ "évaluateurs qui ne font pas partie de la presse pour chaque fichier "
+#~ "soumis et tient compte de leurs commentaires avant de choisir une action "
+#~ "appropriée (qui comprend l'envoi d'un avis à l'auteur): À réviser (les "
+#~ "révisions ne seront examinées que par le rédacteur en chef); Soumettre à "
+#~ "nouveau pour révision (une nouvelle série de révisions sera entreprise); "
+#~ "Accepter la soumission (il faut choisir les fichiers qui seront envoyés "
+#~ "au rédacteur en chef); ou Refuser la soumission (le rédacteur en chef "
+#~ "archive la soumission)."
diff --git a/locale/fr_CA/emails.po b/locale/fr_CA/emails.po
index 5f396afd896..735d447a942 100644
--- a/locale/fr_CA/emails.po
+++ b/locale/fr_CA/emails.po
@@ -2,295 +2,172 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-12-03T14:14:06-08:00\n"
+"PO-Revision-Date: 2019-12-03T14:14:06-08: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"
-"POT-Creation-Date: 2019-12-03T14:14:06-08:00\n"
-"PO-Revision-Date: 2019-12-03T14:14:06-08:00\n"
-"Language: \n"
-
-msgid "emails.notification.subject"
-msgstr "Nouvelle notification de {$siteTitle}"
-
-msgid "emails.notification.body"
-msgstr ""
-"Vous avez reçu une nouvelle notification de {$siteTitle}:
\n"
-"
\n"
-"{$notificationContents}
\n"
-"
\n"
-"Lien: {$url}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.notification.description"
-msgstr "Ce courriel est envoyé aux utilisateurs qui ont demandé qu'on leur envoie ce type de notification par courriel."
msgid "emails.passwordResetConfirm.subject"
msgstr "Confirmation de réinitialisation du mot de passe"
msgid "emails.passwordResetConfirm.body"
msgstr ""
-"Nous avons reçu une requête de réinitialisation de votre mot de passe pour le site Web {$siteTitle}.
\n"
+"Nous avons reçu une requête de réinitialisation de votre mot de passe pour "
+"le site Web {$siteTitle}.
\n"
"
\n"
-"Si vous n'avez pas fait cette requête, veuillez ignorer ce courriel et votre mot de passe demeurera le même. Si vous souhaitez modifier votre mot de passe, cliquez sur l'adresse URL ci-dessous.
\n"
+"Si vous n'avez pas fait cette requête, veuillez ignorer ce courriel et votre "
+"mot de passe demeurera le même. Si vous souhaitez modifier votre mot de "
+"passe, cliquez sur l'adresse URL ci-dessous.
\n"
"
\n"
-"Modifier mon mot de passe: {$url}
\n"
+"Modifier mon mot de passe: {$passwordResetUrl}
\n"
"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordResetConfirm.description"
-msgstr "Ce courriel est envoyé à un utilisateur lorsqu'il a indiqué avoir oublié son mot de passe ou être incapable d'ouvrir une session. On lui fournit une adresse URL sur laquelle il peut cliquer pour modifier son mot de passe."
+"{$siteContactName}"
msgid "emails.passwordReset.subject"
-msgstr "Réinitialisation du mot de passe"
+msgstr ""
msgid "emails.passwordReset.body"
msgstr ""
-"Votre mot de passe vous permettant d'avoir accès au site Web {$siteTitle} a été réinitialisé. Veuillez noter votre nom d'utilisateur et mot de passe dans vos dossiers, car vous en aurez besoin pour vos travaux auprès de la presse.
\n"
-"
\n"
-"Votre nom d'utilisateur: {$username}
\n"
-"Votre nouveau mot de passe: {$password}
\n"
-"
\n"
-"{$principalContactSignature}"
-
-msgid "emails.passwordReset.description"
-msgstr "Ce courriel est envoyé à un utilisateur lorsque son mot de passe a été réinitialisé après avoir suivi les instructions du courriel \"PASSWORD_RESET_CONFIRM\"."
msgid "emails.userRegister.subject"
msgstr "Inscription à la presse"
msgid "emails.userRegister.body"
msgstr ""
-"{$userFullName}
\n"
+"{$recipientName}
\n"
"
\n"
-"Vous êtes désormais inscrit à la presse {$contextName}. Ce courriel contient votre nom d'utilisateur et votre mot de passe, dont vous aurez besoin pour tous vos travaux au sein de la presse. Vous pouvez demander que l'on retire votre nom de la liste des utilisateurs en tout temps. Il suffit de me contacter.
\n"
+"Vous êtes désormais inscrit à la presse {$contextName}. Ce courriel contient "
+"votre nom d'utilisateur et votre mot de passe, dont vous aurez besoin pour "
+"tous vos travaux au sein de la presse. Vous pouvez demander que l'on retire "
+"votre nom de la liste des utilisateurs en tout temps. Il suffit de me "
+"contacter.
\n"
"
\n"
"
\n"
-"Nom d'utilisateur: {$username}
\n"
+"Nom d'utilisateur: {$recipientUsername}
\n"
"Mot de passe: {$password}
\n"
"
\n"
"Merci,
\n"
-"{$principalContactSignature}"
+"{$signature}"
-msgid "emails.userRegister.description"
-msgstr "Ce courriel est envoyé à un nouvel utilisateur afin de lui souhaiter la bienvenue dans le système et lui fournir son nom d'utilisateur et son mot de passe pour ses dossiers."
+msgid "emails.userValidateContext.subject"
+msgstr ""
-msgid "emails.userValidate.subject"
-msgstr "Valider votre compte"
+msgid "emails.userValidateContext.body"
+msgstr ""
-msgid "emails.userValidate.body"
+msgid "emails.userValidateSite.subject"
msgstr ""
-"{$userFullName}
\n"
-"
\n"
-"Vous avez ouvert un compte chez {$contextName}. Mais avant de pouvoir l'utiliser, vous devez confirmer votre adresse courriel. Il suffit de cliquer sur le lien ci-dessous.
\n"
-"
\n"
-"
\n"
-"{$activateUrl}
\n"
-"
\n"
-"Merci,
\n"
-"{$principalContactSignature}"
-msgid "emails.userValidate.description"
-msgstr "Ce courriel est envoyé à un nouvel utilisateur pour lui souhaiter la bienvenue dans le système et lui fournir une confirmation écrite de son nom d'utilisateur et de son mot de passe."
+msgid "emails.userValidateSite.body"
+msgstr ""
msgid "emails.reviewerRegister.subject"
msgstr "Inscription à titre d'évaluateur pour la presse {$contextName}"
msgid "emails.reviewerRegister.body"
msgstr ""
-"En raison de votre expertise, nous avons ajouté votre nom à notre base de données d'évaluateurs pour la presse {$contextName}. Ceci ne vous oblige à rien, mais nous permet simplement de vous approcher si nous recevons une soumission que vous pourriez évaluer. Après avoir reçu une demande d'évaluation, vous aurez la possibilité de lire le titre et le résumé de l'article en question. Vous serez toujours libre d'accepter ou de refuser l'invitation. Vous pouvez demander que l'on retire votre nom de notre liste d'évaluateurs en tout temps.
\n"
+"En raison de votre expertise, nous avons ajouté votre nom à notre base de "
+"données d'évaluateurs pour la presse {$contextName}. Ceci ne vous oblige à "
+"rien, mais nous permet simplement de vous approcher si nous recevons une "
+"soumission que vous pourriez évaluer. Après avoir reçu une demande "
+"d'évaluation, vous aurez la possibilité de lire le titre et le résumé de "
+"l'article en question. Vous serez toujours libre d'accepter ou de refuser "
+"l'invitation. Vous pouvez demander que l'on retire votre nom de notre liste "
+"d'évaluateurs en tout temps.
\n"
"
\n"
-"Voici votre nom d'utilisateur et votre mot de passe, dont vous aurez besoin dans tous vos échanges avec la presse à travers son site Web. Vous pourriez, par exemple, mettre votre profil à jour, y compris vos champs d'intérêt en ce qui concerne l'évaluation des articles.
\n"
+"Voici votre nom d'utilisateur et votre mot de passe, dont vous aurez besoin "
+"dans tous vos échanges avec la presse à travers son site Web. Vous pourriez, "
+"par exemple, mettre votre profil à jour, y compris vos champs d'intérêt en "
+"ce qui concerne l'évaluation des articles.
\n"
"
\n"
"
\n"
-"Nom d'utilisateur: {$username}
\n"
+"Nom d'utilisateur: {$recipientUsername}
\n"
"Mot de passe: {$password}
\n"
"
\n"
"Merci,
\n"
-"{$principalContactSignature}"
-
-msgid "emails.reviewerRegister.description"
-msgstr "Ce courriel est envoyé à un nouvel évaluateur pour lui souhaiter la bienvenue dans le système et lui fournir une confirmation écrite de son nom d'utilisateur et de son mot de passe."
-
-msgid "emails.publishNotify.subject"
-msgstr "Nouveau livre publié"
-
-msgid "emails.publishNotify.body"
-msgstr ""
-"Chers lecteurs,
\n"
-"
\n"
-"{$contextName} a récemment publié son dernier livre au {$contextUrl}. Nous vous invitons à consulter la table des matières ici et à consulter notre site Web afin de lire les monographies et les articles qui vous intéressent.
\n"
-"
\n"
-"Merci de l'intérêt que vous portez à nos publications.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.publishNotify.description"
-msgstr "Ce courriel est envoyé aux lecteurs par le lien d'avis aux utilisateurs qui se trouve sur la page du rédacteur en chef. Il indique aux lecteurs que l'on a récemment publié un nouveau livre et les invite à cliquer sur le lien URL de la presse."
-
-msgid "emails.submissionAck.subject"
-msgstr "Accusé de réception d'une soumission"
-
-msgid "emails.submissionAck.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Merci d'avoir envoyé votre manuscrit "{$submissionTitle}" à la presse {$contextName}. Le système de gestion virtuel de la presse que nous utilisons vous permet de suivre les progrès de votre article tout au long du processus de publication. Il suffit d'ouvrir une session sur le site Web:
\n"
-"
\n"
-"URL du manuscrit: {$submissionUrl}
\n"
-"Nom d'utilisateur: {$authorUsername}
\n"
-"
\n"
-"Si vous avez des questions, n'hésitez pas à me contacter. Merci d'avoir envoyé votre article à cette presse.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAck.description"
-msgstr "Lorsqu'il est activé, ce courriel est envoyé automatiquement à l'auteur lorsqu'il soumet son manuscrit à la presse. Il fournit des renseignements sur le suivi de la soumission tout au long du processus de publication et remercie l'auteur d'avoir envoyé une soumission."
-
-msgid "emails.submissionAckNotUser.subject"
-msgstr "Accusé de réception d'une soumission"
-
-msgid "emails.submissionAckNotUser.body"
-msgstr ""
-"Bonjour,
\n"
-"
\n"
-"{$submitterName} a envoyé un manuscrit intitulé "{$submissionTitle}" à la presse {$contextName}.
\n"
-"
\n"
-"Si vous avez des questions, n'hésitez pas à me contacter. Merci d'avoir envoyé votre article à cette presse.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.submissionAckNotUser.description"
-msgstr "Lorsqu'il est activé, ce courriel est envoyé automatiquement aux autres auteurs qui ne font pas partie des utilisateurs d'OMP identifiés pendant le processus de soumission."
+"{$signature}"
msgid "emails.editorAssign.subject"
msgstr "Travail éditorial"
msgid "emails.editorAssign.body"
msgstr ""
-"{$editorialContactName}:
\n"
+"{$recipientName}:
\n"
"
\n"
-"La soumission "{$submissionTitle}" à la presse {$contextName} vous a été assignée. En tant que rédacteur en chef, vous devrez superviser le processus éditorial de cette soumission.
\n"
+"La soumission "{$submissionTitle}" à la presse {$contextName} vous "
+"a été assignée. En tant que rédacteur en chef, vous devrez superviser le "
+"processus éditorial de cette soumission.
\n"
"
\n"
"URL de la soumission: {$submissionUrl}
\n"
-"Nom d'utilisateur: {$editorUsername}
\n"
+"Nom d'utilisateur: {$recipientUsername}
\n"
"
\n"
"Merci,"
-msgid "emails.editorAssign.description"
-msgstr "Ce courriel indique au rédacteur en chef d'une série qu'on lui a assigné la tâche de superviser une soumission tout au long de son processus éditorial. Il contient des renseignements sur la soumission et indique comment accéder au site de la presse."
-
msgid "emails.reviewRequest.subject"
msgstr "Requête d'évaluation d'un manuscrit"
+#, fuzzy
msgid "emails.reviewRequest.body"
msgstr ""
-"Bonjour {$reviewerName},
\n"
+"Bonjour {$recipientName},
\n"
"
\n"
"{$messageToReviewer}
\n"
"
\n"
-"Veuillez ouvrir une session sur le site Web de la presse d'ici le {$responseDueDate} pour indiquer si vous serez en mesure d'évaluer l'article ou non. Ceci vous permettra également d'accéder à la soumission, et de saisir votre évaluation et vos recommandations.
\n"
+"Veuillez ouvrir une session sur le site Web de la presse d'ici le "
+"{$responseDueDate} pour indiquer si vous serez en mesure d'évaluer l'article "
+"ou non. Ceci vous permettra également d'accéder à la soumission, et de "
+"saisir votre évaluation et vos recommandations.
\n"
"
\n"
"
\n"
"L'évaluation doit être terminée d'ici le {$reviewDueDate}.
\n"
"
\n"
-"URL de la soumission: {$submissionReviewUrl}
\n"
+"URL de la soumission: {$reviewAssignmentUrl}
\n"
"
\n"
-"Nom d'utilisateur: {$reviewerUserName}
\n"
+"Nom d'utilisateur: {$recipientUsername}
\n"
"
\n"
"Merci de votre intérêt à évaluer des articles pour notre presse.
\n"
"
\n"
-"{$editorialContactSignature}
\n"
-""
-
-msgid "emails.reviewRequest.description"
-msgstr "Ce courriel est envoyé à un évaluateur par le rédacteur en chef d'une série afin de lui demander s'il accepte ou refuse d'évaluer une soumission. Il contient des informations sur la soumission comme le titre et le résumé de l'article, il indique la date d'échéance pour l'évaluation et explique comment on peut accéder à la soumission. Ce message est utilisé lorsqu'on choisit l'option Processus d'évaluation standard à l'étape 2 de la section Configuration de la presse. (Sinon, voir REVIEW_REQUEST_ATTACHED.)"
+"{$signature}
\n"
-msgid "emails.reviewRequestOneclick.subject"
-msgstr "Requête d'évaluation d'un manuscrit"
-
-msgid "emails.reviewRequestOneclick.body"
+msgid "emails.reviewRequestSubsequent.subject"
msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Je crois que vous seriez un excellent évaluateur pour le manuscrit "{$submissionTitle}" soumis à la presse {$contextName}. Vous trouverez ci-dessous le résumé de l'article. J'espère que vous accepterez cette tâche importante du processus de publication.
\n"
-"
\n"
-"Veuillez ouvrir une session sur le site Web d'ici le {$weekLaterDate} pour indiquer si vous acceptez ou refusez d'évaluer l'article. Ceci vous permettra également d'accéder à la soumission, et de saisir votre évaluation et vos recommandations.
\n"
-"
\n"
-"L'évaluation doit être terminée d'ici le {$reviewDueDate}.
\n"
-"
\n"
-"URL de la soumission: {$submissionReviewUrl}
\n"
-"
\n"
-"Merci de votre intérêt à évaluer des articles pour notre presse.
\n"
-"
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"
\n"
-""{$submissionTitle}"
\n"
-"
\n"
-"{$abstractTermIfEnabled}
\n"
-"{$submissionAbstract}"
-
-msgid "emails.reviewRequestOneclick.description"
-msgstr "Ce courriel est envoyé à un évaluateur par le rédacteur en chef d'une série afin de lui demander s'il accepte ou refuse d'évaluer une soumission. Il fournit des informations sur la soumission comme le titre et le résumé de l'article, il indique la date d'échéance pour l'évaluation et explique comment on peut accéder à la soumission. Ce message est utilisé lorsqu'on choisit l'option Processus d'évaluation standard à l'étape 2 de la section Configuration de la presse, et que l'on a activé l'option permettant à l'évaluateur d'avoir accès à la soumission en un seul clic."
-msgid "emails.reviewRequestAttached.subject"
-msgstr "Requête d'évaluation d'un manuscrit"
+#, fuzzy
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
-msgid "emails.reviewRequestAttached.body"
+msgid "emails.reviewResponseOverdueAuto.subject"
msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Je crois que vous seriez un excellent évaluateur pour le manuscrit "{$submissionTitle}" et nous vous serions reconnaissants si vous acceptiez cette tâche importante. Vous trouverez ci-dessous les lignes directrices de cette presse concernant l'évaluation. Vous trouverez également la soumission en pièce jointe. Votre évaluation de la soumission et vos recommandations devraient nous parvenir par courriel d'ici le {$reviewDueDate}.
\n"
-"
\n"
-"Veuillez répondre à ce courriel d'ici le {$weekLaterDate} pour confirmer si vous acceptez d'évaluer cet article.
\n"
-"
\n"
-"
\n"
-"Nous vous remercions à l'avance et espérons que vous accepterez cette requête.
\n"
-"
\n"
-"{$editorialContactSignature}
\n"
-"
\n"
-"
\n"
-"Lignes directrices concernant l'évaluation
\n"
-"
\n"
-"{$reviewGuidelines}
\n"
-""
-msgid "emails.reviewRequestAttached.description"
-msgstr "Ce courriel est envoyé par le rédacteur en chef d'une série à un évaluateur afin de lui demander s'il accepte ou refuse d'évaluer une soumission. Il contient la soumission en pièce jointe. Ce message est utilisé lorsque vous sélectionnez l'option Processus d'évaluation par courriel avec pièce jointe à l'étape 2 de la Configuration de la presse. (Sinon, voir REVIEW_REQUEST.)"
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
msgid "emails.reviewCancel.subject"
msgstr "Annulation de la requête d'évaluation"
msgid "emails.reviewCancel.body"
msgstr ""
-"{$reviewerName}:
\n"
+"{$recipientName}:
\n"
"
\n"
"
\n"
-"Nous avons décidé d'annuler notre requête d'évaluation pour la soumission "{$submissionTitle}" de la presse {$contextName}. Nous vous prions de nous excuser pour tout inconvénient que cette décision pourrait occasionner et nous espérons que vous serez en mesure d'évaluer une soumission dans un avenir prochain.
\n"
+"Nous avons décidé d'annuler notre requête d'évaluation pour la soumission "
+""{$submissionTitle}" de la presse {$contextName}. Nous vous prions "
+"de nous excuser pour tout inconvénient que cette décision pourrait "
+"occasionner et nous espérons que vous serez en mesure d'évaluer une "
+"soumission dans un avenir prochain.
\n"
"
\n"
"Si vous avez des questions, n'hésitez pas à me contacter."
-msgid "emails.reviewCancel.description"
-msgstr "Ce courriel est envoyé à un évaluateur qui a entamé le processus d'évaluation d'une soumission par le rédacteur en chef d'une série afin d'informer l'évaluateur que la procédure d'évaluation a été annulée."
-
-msgid "emails.reviewConfirm.subject"
-msgstr "En mesure d'évaluer"
-
-msgid "emails.reviewConfirm.body"
+#, fuzzy
+msgid "emails.reviewReinstate.body"
msgstr ""
-"Éditeurs:
\n"
-"
\n"
-"Je peux et je souhaite évaluer la soumission "{$submissionTitle}" pour la presse {$contextName}. Merci de m'avoir invité à évaluer cet article. Je prévois terminer mon évaluation d'ici le {$reviewDueDate}.
\n"
-"
\n"
-"{$reviewerName}"
-msgid "emails.reviewConfirm.description"
-msgstr "Ce courriel est envoyé au rédacteur en chef d'une série pour répondre à la requête d'évaluation. Il a pour but de permettre à l'évaluateur d'indiquer au rédacteur en chef qu'il a accepté d'évaluer l'article et qu'il aura terminé son évaluation dans les délais prescrits."
+msgid "emails.reviewReinstate.body"
+msgstr ""
msgid "emails.reviewDecline.subject"
msgstr "Ne peux pas évaluer"
@@ -299,341 +176,261 @@ msgid "emails.reviewDecline.body"
msgstr ""
"Éditeurs:
\n"
"
\n"
-"Malheureusement, je ne pourrai pas évaluer "{$submissionTitle}" pour la presse {$contextName}. Merci de m'avoir invité à évaluer cet article et n'hésitez pas à me contacter dans un avenir prochain.
\n"
-"
\n"
-"{$reviewerName}"
-
-msgid "emails.reviewDecline.description"
-msgstr "Ce courriel est envoyé par l'évaluateur au rédacteur en chef d'une série série pour indiquer qu'il ne sera pas en mesure d'évaluer l'article en question."
-
-msgid "emails.reviewAck.subject"
-msgstr "Accusé de réception pour l'évaluation d'un manuscrit"
-
-msgid "emails.reviewAck.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
+"Malheureusement, je ne pourrai pas évaluer "{$submissionTitle}" "
+"pour la presse {$contextName}. Merci de m'avoir invité à évaluer cet article "
+"et n'hésitez pas à me contacter dans un avenir prochain.
\n"
"
\n"
-"Merci d'avoir terminé l'évaluation de l'article "{$submissionTitle}" pour la presse {$contextName}. Grâce à vous, nous sommes en mesure de publier des articles de qualité."
-
-msgid "emails.reviewAck.description"
-msgstr "Ce courriel est envoyé par le rédacteur en chef d'une série pour confirmer qu'il a reçu l'évaluation finale de l'article et pour le remercier de sa contribution."
+"{$senderName}"
+#, fuzzy
msgid "emails.reviewRemind.subject"
msgstr "Rappel d'évaluation"
+#, fuzzy
msgid "emails.reviewRemind.body"
msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Nous vous remercions d'avoir accepté d'évaluer "{$submissionTitle}" pour la presse {$contextName}. Veuillez noter que cette évaluation doit nous parvenir avant le {$reviewDueDate}. Nous vous serions reconnaissants si vous pouviez nous faire parvenir votre évaluation dans les plus brefs délais.
\n"
-"
\n"
-"Si vous n'avez plus votre nom d'utilisateur et mot de passe pour le site Web, vous pouvez réinitialiser votre mot de passe en cliquant sur le lien suivant. Votre mot de passe et nom d'utilisateur vous seront envoyés par courriel. {$passwordResetUrl}
\n"
-"
\n"
-"URL de la soumission: {$submissionReviewUrl}
\n"
-"
\n"
-"Nom d'utilisateur: {$reviewerUserName}
\n"
+"{$recipientName}:
\n"
"
\n"
-"Nous vous prions de confirmer si vous êtes encore disponible pour participer à cette étape cruciale de notre processus éditorial. Nous vous prions d'agréer l'expression de nos sentiments les plus distingués.
\n"
+"Nous vous remercions d'avoir accepté d'évaluer "{$submissionTitle}"
+"" pour la presse {$contextName}. Veuillez noter que cette évaluation "
+"doit nous parvenir avant le {$reviewDueDate}. Nous vous serions "
+"reconnaissants si vous pouviez nous faire parvenir votre évaluation dans les "
+"plus brefs délais.
\n"
"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemind.description"
-msgstr "Ce courriel est envoyé par le rédacteur en chef d'une série pour rappeler à l'évaluateur qu'il doit envoyer sa soumission dès que possible."
-
-msgid "emails.reviewRemindOneclick.subject"
-msgstr "Rappel d'évaluation"
-
-msgid "emails.reviewRemindOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
+"Si vous n'avez plus votre nom d'utilisateur et mot de passe pour le site "
+"Web, vous pouvez réinitialiser votre mot de passe en cliquant sur le lien "
+"suivant. Votre mot de passe et nom d'utilisateur vous seront envoyés par "
+"courriel. {$passwordLostUrl}
\n"
"
\n"
-"Nous vous remercions d'avoir accepté d'évaluer "{$submissionTitle}" pour la presse {$contextName}. Veuillez noter que cette évaluation doit nous parvenir avant le {$reviewDueDate}. Nous vous serions reconnaissants si vous pouviez nous faire parvenir votre évaluation dans les plus brefs délais
\n"
+"URL de la soumission: {$reviewAssignmentUrl}
\n"
"
\n"
-"URL de la soumission: {$submissionReviewUrl}
\n"
+"Nom d'utilisateur: {$recipientUsername}
\n"
"
\n"
-"Nous vous prions de confirmer si vous êtes encore disponible pour participer à cette étape cruciale de notre processus éditorial. Nous vous prions d'agréer l'expression de nos sentiments les plus distingués.
\n"
+"Nous vous prions de confirmer si vous êtes encore disponible pour participer "
+"à cette étape cruciale de notre processus éditorial. Nous vous prions "
+"d'agréer l'expression de nos sentiments les plus distingués.
\n"
"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindOneclick.description"
-msgstr "Ce courriel est envoyé par le rédacteur en chef d'une série pour rappeler à l'évaluateur qu'il doit envoyer sa soumission dès que possible."
-
-msgid "emails.reviewRemindAuto.subject"
-msgstr "Rappel automatique d'évaluation d'une soumission"
+"{$signature}"
+#, fuzzy
msgid "emails.reviewRemindAuto.body"
msgstr ""
-"{$reviewerName}:
\n"
+"{$recipientName}:
\n"
"
\n"
-"Nous vous remercions d'avoir accepté d'évaluer "{$submissionTitle}" pour la presse {$contextName}. Veuillez noter que cette évaluation doit nous parvenir avant le {$reviewDueDate}. Ce courriel a été généré et envoyé automatiquement parce que vous avez dépassé la date d'échéance. Toutefois, nous vous serions reconnaissants si vous pouviez nous faire parvenir votre évaluation dans les plus brefs délais.
\n"
+"Nous vous remercions d'avoir accepté d'évaluer "{$submissionTitle}"
+"" pour la presse {$contextName}. Veuillez noter que cette évaluation "
+"doit nous parvenir avant le {$reviewDueDate}. Ce courriel a été généré et "
+"envoyé automatiquement parce que vous avez dépassé la date d'échéance. "
+"Toutefois, nous vous serions reconnaissants si vous pouviez nous faire "
+"parvenir votre évaluation dans les plus brefs délais.
\n"
"
\n"
-"Si vous n'avez plus votre nom d'utilisateur et mot de passe pour le site Web, vous pouvez réinitialiser votre mot de passe en cliquant sur le lien suivant. Votre mot de passe et nom d'utilisateur vous seront envoyés par courriel. {$passwordResetUrl}
\n"
+"Si vous n'avez plus votre nom d'utilisateur et mot de passe pour le site "
+"Web, vous pouvez réinitialiser votre mot de passe en cliquant sur le lien "
+"suivant. Votre mot de passe et nom d'utilisateur vous seront envoyés par "
+"courriel. {$passwordLostUrl}
\n"
"
\n"
-"URL de la soumission: {$submissionReviewUrl}
\n"
+"URL de la soumission: {$reviewAssignmentUrl}
\n"
"
\n"
-"Nous vous prions de confirmer si vous êtes encore disponible pour participer à cette étape cruciale de notre processus éditorial. Veuillez agréer l'expression de nos sentiments les plus distingués.
\n"
+"Nous vous prions de confirmer si vous êtes encore disponible pour participer "
+"à cette étape cruciale de notre processus éditorial. Veuillez agréer "
+"l'expression de nos sentiments les plus distingués.
\n"
"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAuto.description"
-msgstr "Ce courriel est envoyé automatiquement lorsqu'une évaluation est en retard (voir les options d'évaluation à l'étape 2 de la section Configuration de la presse) et que l'accès de l'évaluateur en un seul clic est désactivé. Les tâches prévues doivent être activées et configurée (voir le fichier de configuration du site)."
-
-msgid "emails.reviewRemindAutoOneclick.subject"
-msgstr "Rappel automatique d'évaluation d'une soumission"
-
-msgid "emails.reviewRemindAutoOneclick.body"
-msgstr ""
-"{$reviewerName}:
\n"
-"
\n"
-"Nous vous remercions d'avoir accepté d'évaluer "{$submissionTitle}" pour la presse {$contextName}. Veuillez noter que cette évaluation doit nous parvenir avant le {$reviewDueDate}. Ce courriel a été généré et envoyé automatiquement parce que vous avez dépassé la date d'échéance. Toutefois, nous vous serions reconnaissants si vous pouviez nous faire parvenir votre évaluation dans les plus brefs délais.
\n"
-"
\n"
-"URL de la soumission: {$submissionReviewUrl}
\n"
-"
\n"
-"Nous vous prions de confirmer si vous êtes encore disponible pour participer à cette étape cruciale de notre processus éditorial. Veuillez agréer l'expression de nos sentiments les plus distingués.
\n"
-"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.reviewRemindAutoOneclick.description"
-msgstr "Ce courriel est envoyé automatiquement lorsqu'une évaluation est en retard (voir les options d'évaluation à l'étape 2 de la section Configuration de la presse) et que l'accès de l'évaluateur en un seul clic est activé. Les tâches prévues doivent être activées et configurée (voir le fichier de configuration du site)."
+"{$contextSignature}"
+#, fuzzy
msgid "emails.editorDecisionAccept.subject"
msgstr "Décision du rédacteur en chef"
+#, fuzzy
msgid "emails.editorDecisionAccept.body"
msgstr ""
-"{$authorName}:
\n"
+"{$authors}:
\n"
"
\n"
-"Nous avons pris une décision concernant votre soumission à la presse {$contextName} intitulée "{$submissionTitle}".
\n"
+"Nous avons pris une décision concernant votre soumission à la presse "
+"{$contextName} intitulée "{$submissionTitle}".
\n"
"
\n"
"Nous avons décidé de:
\n"
"
\n"
"URL du manuscrit: {$submissionUrl}"
-msgid "emails.editorDecisionAccept.description"
-msgstr "Ce courriel est envoyé par un rédacteur en chef à un auteur pour signaler que l'on a pris une décision finale concernant sa soumission."
-
-msgid "emails.editorDecisionSendToExternal.subject"
-msgstr "Décision du rédacteur en chef"
-
-msgid "emails.editorDecisionSendToExternal.body"
+msgid "emails.editorDecisionSendToInternal.subject"
msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Nous avons pris une décision concernant votre soumission à la presse {$contextName} intitulée "{$submissionTitle}".
\n"
-"
\n"
-"Nous avons décidé de:
\n"
-"
\n"
-"URL du manuscrit: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToExternal.description"
-msgstr "Ce courriel est envoyé par un rédacteur en chef à un auteur pour l'informer que sa soumission sera envoyée à un évaluateur externe."
-msgid "emails.editorDecisionSendToProduction.subject"
-msgstr "Décision du rédacteur en chef"
-
-msgid "emails.editorDecisionSendToProduction.body"
+msgid "emails.editorDecisionSendToInternal.body"
msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"La révision de votre manuscrit "{$submissionTitle}" est terminée. Nous l'envoyons maintenant en production.
\n"
-"
\n"
-"URL du manuscrit: {$submissionUrl}"
-
-msgid "emails.editorDecisionSendToProduction.description"
-msgstr "Ce courriel est envoyé par un rédacteur en chef à un auteur pour l'informer que sa soumission passera à l'étape de production."
-msgid "emails.editorDecisionRevisions.subject"
-msgstr "Décision du rédacteur en chef"
-
-msgid "emails.editorDecisionRevisions.body"
+msgid "emails.editorDecisionSkipReview.subject"
msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Nous avons pris une décision concernant votre soumission à la presse {$contextName} intitulée "{$submissionTitle}".
\n"
-"
\n"
-"Nous avons décidé de:
\n"
-"
\n"
-"URL du manuscrit: {$submissionUrl}"
-
-msgid "emails.editorDecisionRevisions.description"
-msgstr "Ce courriel est envoyé par un rédacteur en chef à un auteur pour signaler que l'on a pris une décision finale concernant sa soumission."
-msgid "emails.editorDecisionResubmit.subject"
-msgstr "Décision du rédacteur en chef"
-
-msgid "emails.editorDecisionResubmit.body"
-msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Nous avons pris une décision concernant votre soumission à la presse {$contextName} intitulée "{$submissionTitle}".
\n"
-"
\n"
-"Nous avons décidé de:
\n"
-"
\n"
-"URL du manuscrit: {$submissionUrl}"
-
-msgid "emails.editorDecisionResubmit.description"
-msgstr "Ce courriel est envoyé par un rédacteur en chef à un auteur pour signaler que l'on a pris une décision finale concernant sa soumission."
-
-msgid "emails.editorDecisionDecline.subject"
-msgstr "Décision du rédacteur en chef"
-
-msgid "emails.editorDecisionDecline.body"
+msgid "emails.editorDecisionSkipReview.body"
msgstr ""
-"{$authorName}:
\n"
-"
\n"
-"Nous avons pris une décision concernant votre soumission à la presse {$contextName} intitulée "{$submissionTitle}".
\n"
-"
\n"
-"Nous avons décidé de:
\n"
-"
\n"
-"URL du manuscrit: {$submissionUrl}"
-
-msgid "emails.editorDecisionDecline.description"
-msgstr "Ce courriel est envoyé par un rédacteur en chef à un auteur pour signaler que l'on a pris une décision finale concernant sa soumission."
-
-msgid "emails.copyeditRequest.subject"
-msgstr "Requête de révision"
-
-msgid "emails.copyeditRequest.body"
-msgstr ""
-"{$participantName}:
\n"
-"
\n"
-"J'aimerais que vous entamiez le processus de révision de l'article "{$submissionTitle}" pour la presse {$contextName}. Veuillez suivre les étapes suivantes.
\n"
-"
\n"
-"1. Cliquez sure le lien URL de la soumission ci-dessous.
\n"
-"2. Ouvrez une session sur la presse et cliquez sur le fichier qui apparait à l'étape 1.
\n"
-"3. Lisez les instructions de révision publiées sur la page Web.
\n"
-"4. Ouvrez le fichier téléchargé et débutez le processus de révision, tout en ajoutant des questions pour les auteurs, au besoin.
\n"
-"5. Sauvegardez le fichier révisé et téléchargez-le à l'étape 1 de Révision.
\n"
-"6. Envoyez le courriel COMPLET au rédacteur en chef.
\n"
-"
\n"
-"{$contextName} URL: {$contextUrl}
\n"
-"URL de la soumission: {$submissionUrl}
\n"
-"Nom d'utilisateur: {$participantUsername}"
-
-msgid "emails.copyeditRequest.description"
-msgstr "Ce courriel est envoyé par le rédacteur en chef d'une série au réviseur de la soumission afin qu'il entame de processus de révision, lorsque l'évaluation par les pairs est terminée. Il explique comment accéder à la soumission."
+#, fuzzy
msgid "emails.layoutRequest.subject"
msgstr "Requête des épreuves en placard"
+#, fuzzy
msgid "emails.layoutRequest.body"
msgstr ""
-"{$participantName}:
\n"
+"{$recipientName}:
\n"
"
\n"
-"Il faut maintenant préparer les épreuves en placard de la soumission "{$submissionTitle}" pour la presse {$contextName}. Pour ce faire, veuillez suivre les étapes suivantes:
\n"
+"Il faut maintenant préparer les épreuves en placard de la soumission ""
+"{$submissionTitle}" pour la presse {$contextName}. Pour ce faire, "
+"veuillez suivre les étapes suivantes:
\n"
"
\n"
"1. Cliquez sur le lien URL de la soumission ci-dessous.
\n"
-"2. Ouvrez une session sur la presse et utilisez le fichier Version de mise en page pour créer les épreuves en placard conformément aux normes de la presse.
\n"
+"2. Ouvrez une session sur la presse et utilisez le fichier Version de mise "
+"en page pour créer les épreuves en placard conformément aux normes de la "
+"presse.
\n"
"3. Envoyez le courriel COMPLET au rédacteur en chef.
\n"
"
\n"
"{$contextName} URL: {$contextUrl}
\n"
"URL de la soumission: {$submissionUrl}
\n"
-"Nom d'utilisateur: {$participantUsername}
\n"
+"Nom d'utilisateur: {$recipientUsername}
\n"
"
\n"
-"Si vous ne pouvez pas faire ce travail en ce moment ou si vous avez des questions, n'hésitez pas à me contacter. Merci d'avoir contribué à cette presse."
-
-msgid "emails.layoutRequest.description"
-msgstr "Ce courriel est envoyé au rédacteur metteur en page par le rédacteur en chef de la série pour lui indiquer qu'on lui a demandé de faire la mise en page de la soumission. Il contient des renseignements sur la soumission et explique comment y accéder."
+"Si vous ne pouvez pas faire ce travail en ce moment ou si vous avez des "
+"questions, n'hésitez pas à me contacter. Merci d'avoir contribué à cette "
+"presse."
+#, fuzzy
msgid "emails.layoutComplete.subject"
msgstr "Épreuves en placard complétées"
+#, fuzzy
msgid "emails.layoutComplete.body"
msgstr ""
-"{$editorialContactName}:
\n"
+"{$recipientName}:
\n"
"
\n"
-"Les épreuves en placard du manuscrit "{$submissionTitle}" pour la presse {$contextName} ont été préparées et peuvent être révisées.
\n"
+"Les épreuves en placard du manuscrit "{$submissionTitle}" pour la "
+"presse {$contextName} ont été préparées et peuvent être révisées.
\n"
"
\n"
"Si vous avez questions, n'hésitez pas à me contacter.
\n"
"
\n"
-"{$signatureFullName}"
-
-msgid "emails.layoutComplete.description"
-msgstr "Ce courriel est envoyé par le rédacteur metteur en page au rédacteur d'une série pour l'informer que la mise en page du manuscrit est terminée."
+"{$senderName}"
msgid "emails.indexRequest.subject"
msgstr "Requête d'indexage"
msgid "emails.indexRequest.body"
msgstr ""
-"{$participantName}:
\n"
+"{$recipientName}:
\n"
"
\n"
-"La soumission "{$submissionTitle}" par la presse {$contextName} doit désormais être indexée. Veuillez suivre les étapes suivantes:
\n"
+"La soumission "{$submissionTitle}" par la presse {$contextName} "
+"doit désormais être indexée. Veuillez suivre les étapes suivantes:
\n"
"
\n"
"1. Cliquez sur le lien URL de la soumission ci-dessous.
\n"
-"2. Ouvrez une session sur la presse et utilisez les fichiers d'épreuves de mise en page pour créer les épreuves en placard conformément aux normes de la presse.
\n"
+"2. Ouvrez une session sur la presse et utilisez les fichiers d'épreuves de "
+"mise en page pour créer les épreuves en placard conformément aux normes de "
+"la presse.
\n"
"3. Envoyez le courriel COMPLET au rédacteur en chef.
\n"
"
\n"
"{$contextName} URL: {$contextUrl}
\n"
"URL de la soumission: {$submissionUrl}
\n"
-"Nom d'utilisateur: {$participantUsername}
\n"
+"Nom d'utilisateur: {$recipientUsername}
\n"
"
\n"
-"Si vous ne pouvez pas faire ce travail en ce moment ou si vous avez des questions, n'hésitez pas à me contacter. Merci d'avoir contribué à cette presse.
\n"
+"Si vous ne pouvez pas faire ce travail en ce moment ou si vous avez des "
+"questions, n'hésitez pas à me contacter. Merci d'avoir contribué à cette "
+"presse.
\n"
"
\n"
-"{$editorialContactSignature}"
-
-msgid "emails.indexRequest.description"
-msgstr "Ce courriel est envoyé à l'indexateur par le rédacteur en chef d'une série pour lui indiquer qu'il devra créer les index de la soumission en question. Il contient des renseignements sur la soumission et explique comment y accéder."
+"{$signature}"
msgid "emails.indexComplete.subject"
msgstr "Indexage des épreuves en placard complété"
msgid "emails.indexComplete.body"
msgstr ""
-"{$editorialContactName}:
\n"
+"{$recipientName}:
\n"
"
\n"
-"Les index du manuscrit "{$submissionTitle}" pour la presse {$contextName} sont prêts et peuvent être révisés.
\n"
+"Les index du manuscrit "{$submissionTitle}" pour la presse "
+"{$contextName} sont prêts et peuvent être révisés.
\n"
"
\n"
"Si vous avez questions, n'hésitez pas à me contacter.
\n"
"
\n"
"{$signatureFullName}"
-msgid "emails.indexComplete.description"
-msgstr "Ce courriel est envoyé par l'indexateur au rédacteur en chef d'une série pour lui indiquer que l'indexage est terminé."
-
msgid "emails.emailLink.subject"
msgstr "Manuscrit susceptible d'intéresser"
msgid "emails.emailLink.body"
-msgstr "Nous crayons que l'article intitulé "{$submissionTitle}" par {$authorName} publié dans le Volume {$volume}, No {$number} ({$year}) de la presse {$contextName} au "{$monographUrl}" pourrait vous intéresser."
+msgstr ""
+"Nous crayons que l'article intitulé "{$submissionTitle}" par "
+"{$authors} publié dans le Volume {$volume}, No {$number} ({$year}) de la "
+"presse {$contextName} au "{$submissionUrl}" pourrait vous "
+"intéresser."
msgid "emails.emailLink.description"
-msgstr "Ce modèle de courriel permet à un lecteur inscrit d'envoyer des renseignements sur une monographie à une personne qui pourrait être intéressée. Il est disponible dans les Outils de lecture et peut être activé par le gestionnaire de la presse sur la page Administration des outils de lecture."
+msgstr ""
+"Ce modèle de courriel permet à un lecteur inscrit d'envoyer des "
+"renseignements sur une monographie à une personne qui pourrait être "
+"intéressée. Il est disponible dans les Outils de lecture et peut être activé "
+"par le gestionnaire de la presse sur la page Administration des outils de "
+"lecture."
msgid "emails.notifySubmission.subject"
msgstr "Avis de soumission"
msgid "emails.notifySubmission.body"
msgstr ""
-"Vous avez reçu un message de {$sender} concernant la monographie "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"Vous avez reçu un message de {$sender} concernant la monographie ""
+"{$submissionTitle}" ({$monographDetailsUrl}):
\n"
"
\n"
"\t\t{$message}
\n"
"
\n"
"\t\t"
msgid "emails.notifySubmission.description"
-msgstr "Avis envoyé par un usager à partir d'un centre de renseignements sur les soumissions."
+msgstr ""
+"Avis envoyé par un usager à partir d'un centre de renseignements sur les "
+"soumissions."
msgid "emails.notifyFile.subject"
msgstr "Avis de soumission d'un fichier"
msgid "emails.notifyFile.body"
msgstr ""
-"Vous avez un message de {$sender} concernant le fichier "{$fileName}" dans "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"Vous avez un message de {$sender} concernant le fichier "{$fileName}"
+"" dans "{$submissionTitle}" ({$monographDetailsUrl}):
\n"
"
\n"
"\t\t{$message}
\n"
"
\n"
"\t\t"
msgid "emails.notifyFile.description"
-msgstr "Avis envoyé par un usager à partir d'un centre de renseignements sur les fichiers."
+msgstr ""
+"Avis envoyé par un usager à partir d'un centre de renseignements sur les "
+"fichiers."
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr ""
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+
+msgid "emails.announcement.subject"
+msgstr ""
+
+msgid "emails.announcement.body"
+msgstr ""
-msgid "emails.notificationCenterDefault.subject"
-msgstr "Un message à propos de la presse {$contextName}"
+#~ msgid "emails.userValidate.subject"
+#~ msgstr "Valider votre compte"
-msgid "emails.notificationCenterDefault.body"
-msgstr "Veuillez saisir votre message."
+#~ msgid "emails.userValidate.body"
+#~ msgstr ""
+#~ "{$recipientName}
\n"
+#~ "
\n"
+#~ "Vous avez ouvert un compte chez {$contextName}. Mais avant de pouvoir "
+#~ "l'utiliser, vous devez confirmer votre adresse courriel. Il suffit de "
+#~ "cliquer sur le lien ci-dessous.
\n"
+#~ "
\n"
+#~ "
\n"
+#~ "{$activateUrl}
\n"
+#~ "
\n"
+#~ "Merci,
\n"
+#~ "{$signature}"
-msgid "emails.notificationCenterDefault.description"
-msgstr "Le message (vierge) par défaut utilisé par le centre d'alerte."
+#~ msgid "emails.userValidate.description"
+#~ msgstr ""
+#~ "Ce courriel est envoyé à un nouvel utilisateur pour lui souhaiter la "
+#~ "bienvenue dans le système et lui fournir une confirmation écrite de son "
+#~ "nom d'utilisateur et de son mot de passe."
diff --git a/locale/fr_CA/locale.po b/locale/fr_CA/locale.po
index 654afeca8cd..82988814e12 100644
--- a/locale/fr_CA/locale.po
+++ b/locale/fr_CA/locale.po
@@ -1,11 +1,11 @@
+# Germán Huélamo Bautista , 2023.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2020-06-05 16:39+0000\n"
-"Last-Translator: Marie-Hélène Vézina [UdeMontréal] \n"
+"PO-Revision-Date: 2023-07-22 07:37+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
"Language-Team: French (Canada) \n"
"Language: fr_CA\n"
@@ -13,17 +13,20 @@ msgstr ""
"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"
+"X-Generator: Weblate 4.13.1\n"
+
+msgid "common.payments"
+msgstr ""
msgid "monograph.audience"
msgstr "Public"
+msgid "monograph.audience.success"
+msgstr "Les renseignements de l'auditoire ont été mis à jour."
+
msgid "monograph.coverImage"
msgstr "Illustration de couverture"
-msgid "monograph.coverImage.uploadInstructions"
-msgstr "Assurez-vous que la hauteur de l'image ne dépasse pas 150% de sa largeur car sinon, le carrousel ne présentera pas toute la couverture."
-
msgid "monograph.audience.rangeQualifier"
msgstr "Qualificatif de l'intervalle du public"
@@ -42,6 +45,15 @@ msgstr "Langues (anglais, français, espagnol)"
msgid "monograph.publicationFormats"
msgstr "Formats de publication "
+msgid "monograph.publicationFormat"
+msgstr "Format"
+
+msgid "monograph.publicationFormatDetails"
+msgstr ""
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Renseignements à propos de cette monographie"
+
msgid "monograph.carousel.publicationFormats"
msgstr "Formats :"
@@ -54,8 +66,8 @@ msgstr "Épreuves en page"
msgid "monograph.proofReadingDescription"
msgstr ""
"Le rédacteur ou la rédactrice responsable de la mise en page téléverse ici "
-"les fichiers préparés en vue de les rendre publiables. Utiliser "
-"+Assigner pour assigner les auteurs-es et les autres individus qui "
+"les fichiers préparés en vue de les rendre publiables. Utiliser "
+"+Assigner pour assigner les auteurs-es et les autres individus qui "
"réviseront les épreuves en page. Les fichiers corrigés doivent être "
"téléversés pour approbation avant la publication."
@@ -110,6 +122,9 @@ msgstr "Renseignements numériques"
msgid "monograph.publicationFormat.productDimensions"
msgstr "Dimensions physiques"
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr ""
+
msgid "monograph.publicationFormat.productFileSize"
msgstr "Taille du fichier en mégaoctets"
@@ -144,7 +159,9 @@ msgid "monograph.publicationFormat.taxType"
msgstr "Type de taxation"
msgid "monograph.publicationFormat.isApproved"
-msgstr "Inclure les métadonnées de ce format de publication dans l'entrée de catalogue de ce livre."
+msgstr ""
+"Inclure les métadonnées de ce format de publication dans l'entrée de "
+"catalogue de ce livre."
msgid "monograph.publicationFormat.noMarketsAssigned"
msgstr "Marchés et prix manquants."
@@ -156,7 +173,9 @@ msgid "monograph.publicationFormat.missingONIXFields"
msgstr "Certains champs de métadonnées ont été omis."
msgid "monograph.publicationFormat.formatDoesNotExist"
-msgstr "Le format de publication que vous avez choisi n'existe plus pour cette monographie.
"
+msgstr ""
+"Le format de publication que vous avez choisi n'existe plus pour cette "
+"monographie.
"
msgid "monograph.publicationFormat.openTab"
msgstr "Ouvrir l'onglet du format de publication."
@@ -176,26 +195,64 @@ msgstr "Détails du format"
msgid "grid.catalogEntry.physicalFormat"
msgstr "Format physique"
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr ""
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr ""
+
msgid "grid.catalogEntry.monographRequired"
msgstr "Vous devez identifier la monographie."
msgid "grid.catalogEntry.publicationFormatRequired"
msgstr "Vous devez choisir un format de publication."
+msgid "grid.catalogEntry.availability"
+msgstr ""
+
msgid "grid.catalogEntry.isAvailable"
msgstr "Disponible"
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr ""
+
msgid "grid.catalogEntry.proof"
msgstr "Épreuve"
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr ""
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr ""
+
msgid "grid.catalogEntry.availableRepresentation.title"
msgstr "Approbation du format"
msgid "grid.catalogEntry.availableRepresentation.message"
-msgstr "Ce format sera accessible aux lecteurs. Ils pourront consulter des fichiers téléchargeables qui apparaitront désormais dans l'entrée de catalogue du livre et/ou par le biais d'autres actions entreprises par la presse pour la distribution du livre.
"
+msgstr ""
+"Ce format sera accessible aux lecteurs. Ils pourront consulter "
+"des fichiers téléchargeables qui apparaitront désormais dans l'entrée de "
+"catalogue du livre et/ou par le biais d'autres actions entreprises par la "
+"presse pour la distribution du livre.
"
msgid "grid.catalogEntry.availableRepresentation.removeMessage"
-msgstr "Ce format ne sera plus accessible aux lecteurs par le biais de fichiers téléchargeables qui auparavant apparaissaient dans l'entrée de catalogue du livre et/ou par le biais d'autres actions entreprises par la presse pour la distribution du livre.
"
+msgstr ""
+"Ce format ne sera plus accessible aux lecteurs par le biais de "
+"fichiers téléchargeables qui auparavant apparaissaient dans l'entrée de "
+"catalogue du livre et/ou par le biais d'autres actions entreprises par la "
+"presse pour la distribution du livre.
"
msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
msgstr "L'entrée de catalogue n'a pas été approuvée."
@@ -206,6 +263,12 @@ msgstr "Ce format n'est pas disponible dans l'entrée de catalogue."
msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
msgstr "L'épreuve n'a pas été approuvée."
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr ""
+
msgid "grid.catalogEntry.fileSizeRequired"
msgstr "Pour les formats numériques, vous devez indiquer la taille du fichier."
@@ -240,10 +303,15 @@ msgid "grid.catalogEntry.salesRightsROW"
msgstr "Le reste du monde?"
msgid "grid.catalogEntry.salesRightsROW.tip"
-msgstr "Cochez cette case si vous souhaitez que cette entrée pour les droits de vente s'applique à votre format de manière générale. Vous n'avez pas à choisir des pays et des régions dans ce cas."
+msgstr ""
+"Cochez cette case si vous souhaitez que cette entrée pour les droits de "
+"vente s'applique à votre format de manière générale. Vous n'avez pas à "
+"choisir des pays et des régions dans ce cas."
msgid "grid.catalogEntry.oneROWPerFormat"
-msgstr "Un type de vente \"Reste du monde\" a déjà été défini pour ce format de publication."
+msgstr ""
+"Un type de vente \"Reste du monde\" a déjà été défini pour ce format de "
+"publication."
msgid "grid.catalogEntry.countries"
msgstr "Pays"
@@ -282,7 +350,9 @@ msgid "grid.catalogEntry.dateFormat"
msgstr "Format de date"
msgid "grid.catalogEntry.dateRequired"
-msgstr "Vous devez indiquer une date et celle-ci doit correspondre au format de date choisi."
+msgstr ""
+"Vous devez indiquer une date et celle-ci doit correspondre au format de date "
+"choisi."
msgid "grid.catalogEntry.representatives"
msgstr "Représentants"
@@ -300,7 +370,9 @@ msgid "grid.catalogEntry.agent"
msgstr "Agent"
msgid "grid.catalogEntry.agentTip"
-msgstr "Vous pouvez nommer un agent qui vous représentera dans ce territoire, mais cela n'est pas nécessaire."
+msgstr ""
+"Vous pouvez nommer un agent qui vous représentera dans ce territoire, mais "
+"cela n'est pas nécessaire."
msgid "grid.catalogEntry.supplier"
msgstr "Fournisseur"
@@ -330,7 +402,9 @@ msgid "grid.catalogEntry.representativeIdType"
msgstr "Type d'identification du représentant (on recommande GLN)"
msgid "grid.catalogEntry.representativesDescription"
-msgstr "Vous n'avez pas à remplir la section suivante si vous offrez vos propres services à vos clients."
+msgstr ""
+"Vous n'avez pas à remplir la section suivante si vous offrez vos propres "
+"services à vos clients."
msgid "grid.action.addRepresentative"
msgstr "Ajouter un(e) représentant(e)"
@@ -341,6 +415,9 @@ msgstr "Modifier ce(tte) représentant(e)"
msgid "grid.action.deleteRepresentative"
msgstr "Supprimer ce(tte) représentant(e)"
+msgid "spotlight"
+msgstr ""
+
msgid "spotlight.spotlights"
msgstr "Sous les projecteurs"
@@ -359,9 +436,6 @@ msgstr "Ouvrage en vedette"
msgid "grid.content.spotlights.category.homepage"
msgstr "Page d'accueil"
-msgid "grid.content.spotlights.category.sidebar"
-msgstr "Encadré"
-
msgid "grid.content.spotlights.form.location"
msgstr "Emplacement de l'ouvrage en vedette"
@@ -422,9 +496,6 @@ msgstr "Approuver l'épreuve afin qu'elle soit indexée et ajoutée au catalogue
msgid "grid.action.pageProofApproved"
msgstr "Le fichier d'épreuves de mise en page est prêt à être publié"
-msgid "grid.action.addAnnouncement"
-msgstr "Ajouter une annonce"
-
msgid "grid.action.newCatalogEntry"
msgstr "Nouvelle entrée de catalogue"
@@ -482,6 +553,9 @@ msgstr "Modifier cette date"
msgid "grid.action.deleteDate"
msgstr "Supprimer cette date"
+msgid "grid.action.createContext"
+msgstr "Créer une nouvelle presse"
+
msgid "grid.action.publicationFormatTab"
msgstr "Afficher l'onglet du format de publication"
@@ -512,38 +586,38 @@ msgstr "Fichiers disponibles"
msgid "series.series"
msgstr "Séries"
-msgid "series.featured"
-msgstr "En vedette"
-
msgid "series.featured.description"
msgstr "Cette série s'affichera dans la navigation principale"
msgid "series.path"
msgstr "Chemin d'accès"
-msgid "grid.series.urlWillBe"
-msgstr "L'adresse URL de la série sera {$sampleUrl}. Le 'chemin d'accès' consiste en une série de caractères utilisés pour identifier une série."
-
msgid "catalog.manage"
msgstr "Gestion du catalogue"
-msgid "catalog.manage.homepage"
-msgstr "Page d'accueil"
-
msgid "catalog.manage.newReleases"
msgstr "Communiqués de presse"
-msgid "catalog.published"
-msgstr "Publié"
-
msgid "catalog.manage.category"
msgstr "Catégorie"
msgid "catalog.manage.series"
msgstr "Série"
-msgid "catalog.manage.managementIntroduction"
-msgstr "Bienvenue au gestionnaire de catalogue. À partir de cette page, vous pouvez publier de nouvelles entrées de catalogue, réviser et configurer votre liste des livres 'en vedette', réviser et configurer votre liste de nouveautés, et réviser et configurer vos livres par catégorie et par série."
+msgid "catalog.manage.series.issn"
+msgstr ""
+
+msgid "catalog.manage.series.issn.validation"
+msgstr ""
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr ""
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr ""
+
+msgid "catalog.manage.series.printIssn"
+msgstr ""
msgid "catalog.selectSeries"
msgstr "Choisir une série"
@@ -551,20 +625,24 @@ msgstr "Choisir une série"
msgid "catalog.selectCategory"
msgstr "Choisir une catégorie"
-msgid "catalog.manage.entryDescription"
-msgstr "Pour ajouter un livre à la liste du catalogue, sélectionnez l'onglet 'Monographie' et fournissez les renseignements nécessaires. Vous pouvez ajouter les renseignements concernant chaque format de livre dans l'entrée de catalogue en sélectionnant l'onglet Format. Les spécifications concernant les métadonnées sont basées sur ONIX for Books, une norme internationale utilisée par l'industrie du livre pour la communication de renseignements sur les produits."
-
-msgid "catalog.manage.spotlightDescription"
-msgstr "Trois produits vedette (ex.: livres sous les projecteurs) sont affichés sur la page d'accueil de la presse, avec leur titre, une image et du texte."
-
msgid "catalog.manage.homepageDescription"
-msgstr "La couverture des livres choisis s'affiche vers le haut de la page d'accueil sous forme d'entrée déroulante. Cliquez \"Vedettes\", puis l'étoile pour ajouter un livre au carrousel; cliquez sur le point d'exclamation pour mettre une nouveauté en vedette; glissez et déplacez pour commander."
+msgstr ""
+"La couverture des livres choisis s'affiche vers le haut de la page d'accueil "
+"sous forme d'entrée déroulante. Cliquez \"Vedettes\", puis l'étoile pour "
+"ajouter un livre au carrousel; cliquez sur le point d'exclamation pour "
+"mettre une nouveauté en vedette; glissez et déplacez pour commander."
msgid "catalog.manage.categoryDescription"
-msgstr "Cliquez 'En vedette', puis l'étoile pour choisir un livre en vedette dans cette catégorie; glissez et déplacez pour commander."
+msgstr ""
+"Cliquez 'En vedette', puis l'étoile pour choisir un livre en vedette dans "
+"cette catégorie; glissez et déplacez pour commander."
msgid "catalog.manage.seriesDescription"
-msgstr "Cliquez 'En vedette', puis l'étoile pour choisir un livre en vedette dans cette série; glissez et déplacez pour commander. Les séries sont identifiées par leurs rédacteurs en chef et le titre de la série, au sein d'une catégorie ou de manière indépendante."
+msgstr ""
+"Cliquez 'En vedette', puis l'étoile pour choisir un livre en vedette dans "
+"cette série; glissez et déplacez pour commander. Les séries sont identifiées "
+"par leurs rédacteurs en chef et le titre de la série, au sein d'une "
+"catégorie ou de manière indépendante."
msgid "catalog.manage.placeIntoCarousel"
msgstr "Carrousel"
@@ -581,32 +659,92 @@ msgstr "Gérer les catégories"
msgid "catalog.manage.noMonographs"
msgstr "Aucune monographie n'a été assignée."
-msgid "catalog.browseTitles"
-msgstr "{$numTitles} élément(s)"
+msgid "catalog.manage.featured"
+msgstr ""
+
+msgid "catalog.manage.categoryFeatured"
+msgstr ""
+
+msgid "catalog.manage.seriesFeatured"
+msgstr ""
+
+msgid "catalog.manage.featuredSuccess"
+msgstr ""
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr ""
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr ""
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr ""
+
+msgid "catalog.manage.feature.newRelease"
+msgstr ""
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr ""
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr ""
+
+msgid "catalog.manage.nonOrderable"
+msgstr ""
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr ""
+
+msgid "catalog.manage.isFeatured"
+msgstr ""
+
+msgid "catalog.manage.isNotFeatured"
+msgstr ""
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr ""
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr ""
+
+msgid "catalog.manage.findSubmissions"
+msgstr ""
+
+msgid "catalog.noTitles"
+msgstr ""
+
+msgid "catalog.noTitlesNew"
+msgstr ""
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
msgid "catalog.feature"
msgstr "En vedette"
msgid "catalog.featured"
-msgstr "En vedette"
+msgstr ""
msgid "catalog.featuredBooks"
msgstr "Livres en vedette"
-msgid "catalog.category.heading"
-msgstr "Tous les livres"
-
-msgid "catalog.categories"
-msgstr "Catégories"
-
msgid "catalog.foundTitleSearch"
-msgstr "Un titre a été trouvé correspondant à \"{$searchQuery}\"."
+msgstr ""
msgid "catalog.foundTitlesSearch"
-msgstr "{$number} des titres ont été trouvés correspondant à \"{$searchQuery}\"."
+msgstr ""
+
+msgid "catalog.category.heading"
+msgstr ""
msgid "catalog.newReleases"
-msgstr "Nouvelles publications"
+msgstr ""
msgid "catalog.dateAdded"
msgstr "Ajouté le"
@@ -614,14 +752,62 @@ msgstr "Ajouté le"
msgid "catalog.publicationInfo"
msgstr "Renseignements sur la publication"
-msgid "catalog.relatedCategories"
-msgstr "Catégories connexes"
+msgid "catalog.published"
+msgstr ""
+
+msgid "catalog.forthcoming"
+msgstr ""
+
+msgid "catalog.categories"
+msgstr ""
+
+msgid "catalog.parentCategory"
+msgstr ""
+
+msgid "catalog.category.subcategories"
+msgstr ""
msgid "catalog.aboutTheAuthor"
msgstr "À propos de le {$roleName}"
msgid "catalog.loginRequiredForPayment"
-msgstr "Note: Pour acheter des ouvrages, vous devez d'abord ouvrir une session. Choisissez un ouvrage que vous souhaitez acheter et vous serez acheminé vers la page d'ouverture de session."
+msgstr ""
+"Note: Pour acheter des ouvrages, vous devez d'abord ouvrir une session. "
+"Choisissez un ouvrage que vous souhaitez acheter et vous serez acheminé vers "
+"la page d'ouverture de session."
+
+msgid "catalog.sortBy"
+msgstr ""
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr ""
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr ""
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr ""
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr ""
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr ""
+
+msgid "catalog.viewableFile.title"
+msgstr ""
+
+msgid "catalog.viewableFile.return"
+msgstr ""
+
+msgid "submission.search"
+msgstr ""
+
+msgid "common.publication"
+msgstr ""
+
+msgid "common.publications"
+msgstr ""
msgid "common.prefix"
msgstr "Préfixe"
@@ -638,9 +824,6 @@ msgstr "Recherche dans le catalogue"
msgid "common.moreInfo"
msgstr "Informations supplémentaires"
-msgid "common.plusMore"
-msgstr "+ Plus"
-
msgid "common.listbuilder.completeForm"
msgstr "Veuillez remplir le formulaire au complet."
@@ -650,12 +833,6 @@ msgstr "Veuillez choisir une option valide à partir de la liste."
msgid "common.listbuilder.itemExists"
msgstr "Vous ne pouvez pas ajouter le même élément deux fois."
-msgid "common.catalogInformation"
-msgstr "Il n'est pas nécessaire de remplir les renseignements sur le catalogue lorsque le travail est soumis pour la première fois, mis à part le titre et un sommaire."
-
-msgid "common.prefixAndTitle.tip"
-msgstr "Si le titre du livre commence par un “Un/Une” ou “Le/la” (ou quelque chose de semblable qui affecte l'ordre alphabétique), ajoutez un mot dans Préfixe."
-
msgid "common.software"
msgstr "Open Monograph Press"
@@ -671,6 +848,9 @@ msgstr "Catalogue"
msgid "navigation.competingInterestPolicy"
msgstr "Politique concernant les intérêts concurrentiels"
+msgid "navigation.catalog.allMonographs"
+msgstr ""
+
msgid "navigation.catalog.manage"
msgstr "Gérer"
@@ -710,23 +890,81 @@ msgstr "Guide intelligent"
msgid "navigation.linksAndMedia"
msgstr "Liens et médias sociaux"
+msgid "navigation.navigationMenus.catalog.description"
+msgstr ""
+
+msgid "navigation.skip.spotlights"
+msgstr ""
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr ""
+
+msgid "navigation.navigationMenus.series.description"
+msgstr ""
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr ""
+
+msgid "navigation.navigationMenus.category.description"
+msgstr ""
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr ""
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr ""
+
msgid "context.contexts"
msgstr "Presses"
msgid "context.context"
msgstr "Presse"
+msgid "context.current"
+msgstr ""
+
+msgid "context.select"
+msgstr "Sélectionner une presse..."
+
+msgid "user.authorization.representationNotFound"
+msgstr ""
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "Ajouter des utilisateurs sans rôle à cette presse."
+
msgid "user.noRoles.submitMonograph"
msgstr "Soumettre une soumission"
msgid "user.noRoles.submitMonographRegClosed"
-msgstr "Soumettre une monographie: l'inscription des auteurs est actuellement désactivée."
+msgstr ""
+"Soumettre une monographie: l'inscription des auteurs est actuellement "
+"désactivée."
msgid "user.noRoles.regReviewer"
msgstr "S'enregistrer à titre d'évaluateur"
msgid "user.noRoles.regReviewerClosed"
-msgstr "S'enregistrer à titre d'évaluateur: l'inscription des évaluateurs est actuellement désactivée."
+msgstr ""
+"S'enregistrer à titre d'évaluateur: l'inscription des évaluateurs est "
+"actuellement désactivée."
+
+msgid "user.reviewerPrompt"
+msgstr ""
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr ""
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+
+msgid "user.register.contextsPrompt"
+msgstr ""
+
+msgid "user.register.otherContextRoles"
+msgstr ""
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
msgid "user.role.manager"
msgstr "Directeur/Directrice de la presse"
@@ -734,14 +972,11 @@ msgstr "Directeur/Directrice de la presse"
msgid "user.role.pressEditor"
msgstr "Rédacteur/Rédactrice en chef de la presse"
-msgid "user.role.copyeditor"
-msgstr "Réviseur"
-
msgid "user.role.subEditor"
msgstr "Rédacteur/Rédactrice en chef de la série"
-msgid "user.role.subEditors"
-msgstr "Rédacteurs en chef de la série"
+msgid "user.role.copyeditor"
+msgstr "Réviseur"
msgid "user.role.proofreader"
msgstr "Correcteur/Correctrice d'épreuves"
@@ -752,6 +987,12 @@ msgstr "Directeur/Directrice de la production"
msgid "user.role.managers"
msgstr "Directeurs de la presse"
+msgid "user.role.subEditors"
+msgstr "Rédacteurs en chef de la série"
+
+msgid "user.role.editors"
+msgstr "Éditeurs"
+
msgid "user.role.copyeditors"
msgstr "Réviseurs"
@@ -761,9 +1002,6 @@ msgstr "Correcteurs d'épreuves"
msgid "user.role.productionEditors"
msgstr "Directeurs de la production"
-msgid "user.register.completeForm"
-msgstr "Veuillez remplir ce formulaire pour vous inscrire auprès de cette presse."
-
msgid "user.register.selectContext"
msgstr "Choisir une presse pour l'inscription"
@@ -773,15 +1011,6 @@ msgstr "Vous ne pouvez vous inscrire à aucune presse sur ce site."
msgid "user.register.privacyStatement"
msgstr "Énoncé de confidentialité"
-msgid "user.register.alreadyRegisteredOtherContext"
-msgstr "Cliquez ici si vous êtes déjà inscrit(e) auprès de cette presse ou d'une autre presse sur ce site."
-
-msgid "user.register.notAlreadyRegisteredOtherContext"
-msgstr "Cliquez ici si vous n'êtes pas déjà inscrit(e) auprès de cette presse ou d'une autre presse sur ce site."
-
-msgid "user.register.loginToRegister"
-msgstr "Indiquez voter nom d'utilisateur et mot de passe actuels pour vous inscrire auprès de cette presse."
-
msgid "user.register.registrationDisabled"
msgstr "Cette presse n'accepte plus d'inscriptions pour le moment."
@@ -795,25 +1024,34 @@ msgid "user.register.authorDescription"
msgstr "Peut soumettre des documents à la presse."
msgid "user.register.reviewerDescriptionNoInterests"
-msgstr "Souhaite mener des évaluations par les pairs des articles soumis à la revue."
+msgstr ""
+"Souhaite mener des évaluations par les pairs des articles soumis à la revue."
msgid "user.register.reviewerDescription"
msgstr "Souhaite mener des évaluations par les pairs pour le site."
msgid "user.register.reviewerInterests"
-msgstr "Identifier les domaines d'intérêt d'évaluation (contenu et méthodes de recherche):"
+msgstr ""
+"Identifier les domaines d'intérêt d'évaluation (contenu et méthodes de "
+"recherche):"
msgid "user.register.form.userGroupRequired"
msgstr "Vous devez choisir au moins un rôle"
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+
+msgid "site.noPresses"
+msgstr ""
+
msgid "site.pressView"
msgstr "Consulter le site Web de la presse"
msgid "about.pressContact"
msgstr "Pour contacter la presse"
-msgid "about.aboutThePress"
-msgstr "À propos de cette presse"
+msgid "about.aboutContext"
+msgstr "A propos de la presse"
msgid "about.editorialTeam"
msgstr "Équipe de rédaction"
@@ -830,29 +1068,28 @@ msgstr "Politiques concernant la série et les catégories"
msgid "about.submissions"
msgstr "Soumissions"
-msgid "about.sponsors"
-msgstr "Parrains"
-
-msgid "about.contributors"
-msgstr "Sources de financement"
-
msgid "about.onlineSubmissions"
msgstr "Soumissions en ligne"
-msgid "about.onlineSubmissions.haveAccount"
-msgstr "Un nom d'utilisateur/mot de passe existe déjà pour {$pressTitle}?"
-
msgid "about.onlineSubmissions.login"
msgstr "Accéder à l'ouverture de session"
-msgid "about.onlineSubmissions.needAccount"
-msgstr "Vous avez besoin d'un nom d'utilisateur/mot de passe?"
-
-msgid "about.onlineSubmissions.registration"
-msgstr "Accéder à l'inscription"
+msgid "about.onlineSubmissions.register"
+msgstr ""
msgid "about.onlineSubmissions.registrationRequired"
-msgstr "Vous devez vous inscrire et ouvrir une session pour soumettre des articles en ligne et pour vérifier le statut des soumissions courantes."
+msgstr ""
+"Vous devez vous inscrire et ouvrir une session pour soumettre des articles "
+"en ligne et pour vérifier le statut des soumissions courantes."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr ""
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Faire une nouvelle soumission"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "voir vos soumissions en attente"
msgid "about.authorGuidelines"
msgstr "Lignes directrices s'adressant aux auteurs"
@@ -861,7 +1098,11 @@ msgid "about.submissionPreparationChecklist"
msgstr "Liste de vérification pour la préparation de la soumission"
msgid "about.submissionPreparationChecklist.description"
-msgstr "Dans le cadre du processus de soumission, les auteurs doivent s'assurer que leur soumission respecte les directives énoncées dans les documents suivants. Les soumissions qui ne respectent pas les lignes directrices peuvent être retournées à leur auteur."
+msgstr ""
+"Dans le cadre du processus de soumission, les auteurs doivent s'assurer que "
+"leur soumission respecte les directives énoncées dans les documents "
+"suivants. Les soumissions qui ne respectent pas les lignes directrices "
+"peuvent être retournées à leur auteur."
msgid "about.copyrightNotice"
msgstr "Avis de droit d'auteur"
@@ -887,13 +1128,24 @@ msgstr "À propos de ce système de publication"
msgid "about.aboutThisPublishingSystem.altText"
msgstr "Processus de redaction et de publication d'OMP"
+msgid "about.aboutSoftware"
+msgstr ""
+
#, fuzzy
msgid "about.aboutOMPPress"
-msgstr "Cette presse utilise Open Monograph Press {$ompVersion}, un logiciel de gestion de presse et de publication ouvert conçu, encadré et distribué gratuitement par Public Knowledge Project sous une licence publique GNU."
+msgstr ""
+"Cette presse utilise Open Monograph Press {$ompVersion}, un logiciel de "
+"gestion de presse et de publication ouvert conçu, encadré et distribué "
+"gratuitement par Public Knowledge Project "
+"sous une licence publique GNU."
#, fuzzy
msgid "about.aboutOMPSite"
-msgstr "Ce site utilise Open Monograph Press {$ompVersion}, un logiciel de gestion de presse et de publication ouvert conçu, encadré et distribué gratuitement par Public Knowledge Project sous une licence publique GNU."
+msgstr ""
+"Ce site utilise Open Monograph Press {$ompVersion}, un logiciel de gestion "
+"de presse et de publication ouvert conçu, encadré et distribué gratuitement "
+"par Public Knowledge Project sous une "
+"licence publique GNU."
msgid "help.searchReturnResults"
msgstr "Retour aux résultats de la recherche"
@@ -910,69 +1162,138 @@ msgstr "Mise à jour d'OMP"
msgid "installer.installApplication"
msgstr "Installer Open Monograph Press"
+msgid "installer.updatingInstructions"
+msgstr ""
+
#, fuzzy
msgid "installer.installationInstructions"
msgstr ""
"\n"
-"Merci d'avoir téléchargé Open Monograph Press {$version} du Public Knowledge Project. Avant de procéder, veuillez lire le fichier README qui accompagne ce logiciel. Pour de plus amples renseignements sure le Public Knowledge Project et ses projets de logiciels, veuillez consulter le site Web du PKP. Si vous rencontrez des bogues ou avez des questions d'ordre technique à poser à Open Monograph Press, consultez le forum ou consultez le système de rapport sur les bogues en ligne de PKP. Bien que le forum soit le mode préféré de communication, vous pouvez également envoyer un courriel à l'équipe au pkp.contact@gmail.com.
\n"
+"Merci d'avoir téléchargé Open Monograph Press {$version} "
+"du Public Knowledge Project. Avant de procéder, veuillez lire le fichier README qui accompagne ce logiciel. Pour "
+"de plus amples renseignements sure le Public Knowledge Project et ses "
+"projets de logiciels, veuillez consulter le site Web du PKP. Si vous rencontrez des bogues ou avez "
+"des questions d'ordre technique à poser à Open Monograph Press, consultez le "
+"forum ou consultez "
+"le système de "
+"rapport sur les bogues en ligne de PKP. Bien que le forum soit le mode "
+"préféré de communication, vous pouvez également envoyer un courriel à "
+"l'équipe au pkp.contact@gmail.com"
+"a>.
\n"
"\n"
"Upgrade
\n"
"\n"
-"S'il s'agit d'une mise à jour d'OMP, cliquez ici pour continuer.
"
+"S'il s'agit d'une mise à jour d'OMP, cliquez "
+"ici pour continuer.
"
msgid "installer.preInstallationInstructionsTitle"
msgstr "Étapes de Pré-installation"
msgid "installer.preInstallationInstructions"
msgstr ""
-"1. Les fichiers et répertoires suivants (et leur contenu) doivent être inscriptibles:
\n"
+"1. Les fichiers et répertoires suivants (et leur contenu) doivent être "
+"inscriptibles:
\n"
"\n"
-"\t- config.inc.php est inscriptible (optionnel): {$writable_config}
\n"
+"\t- config.inc.php est inscriptible (optionnel): "
+"{$writable_config}
\n"
"\t- public/ est a inscriptible: {$writable_public}
\n"
"\t- cache/ est inscriptible: {$writable_cache}
\n"
-"\t- cache/t_cache/ est inscriptible: {$writable_templates_cache}
\n"
-"\t- cache/t_compile/ est inscriptible: {$writable_templates_compile}
\n"
+"\t- cache/t_cache/ est inscriptible: {$writable_templates_cache}"
+"li>\n"
+"\t
- cache/t_compile/ est inscriptible: "
+"{$writable_templates_compile}
\n"
"\t- cache/_db est inscriptible: {$writable_db_cache}
\n"
"
\n"
"\n"
-"2. Un répertoire de stockage des fichiers doit être créé et être inscriptible (voir \"Paramètres du fichier\" ci-dessous)
"
+"2. Un répertoire de stockage des fichiers doit être créé et être "
+"inscriptible (voir \"Paramètres du fichier\" ci-dessous)
"
msgid "installer.upgradeInstructions"
msgstr ""
"OMP Version {$version}
\n"
"\n"
-"Merci d'avoir téléchargé Open Monograph Press du Public Knowledge Project. Avant de procéder, veuillez lire les fichiers README et UPGRADE de ce logiciel. Pour de plus amples renseignements sur le Public Knowledge Project et ses projets de logiciels, veuillez consulter le site Web du PKP. Si vous rencontrez des bogues ou avez des questions d'ordre technique à poser à Open Monograph Press, consultez le forum ou consultez le système de rapport sur les bogues. Bien que le forum soit le mode préféré de communication, vous pouvez également envoyer un courriel à l'équipe au pkp.contact@gmail.com.
\n"
+"Merci d'avoir téléchargé Open Monograph Press du Public "
+"Knowledge Project. Avant de procéder, veuillez lire les fichiers README et UPGRADE de ce logiciel. Pour de plus amples renseignements sur le "
+"Public Knowledge Project et ses projets de logiciels, veuillez consulter le "
+"site Web du PKP. Si "
+"vous rencontrez des bogues ou avez des questions d'ordre technique à poser à "
+"Open Monograph Press, consultez le forum ou consultez le système de rapport sur les bogues. Bien "
+"que le forum soit le mode préféré de communication, vous pouvez également "
+"envoyer un courriel à l'équipe au pkp.contact@gmail.com.
\n"
"\n"
-"On recommande fortement que vous conserviez une copie de sauvegarde de votre base de données, de vos répertoires de fichiers et de votre répertoire d'installation OMP avant de continuer.
\n"
+"On recommande fortement que vous conserviez une copie de "
+"sauvegarde de votre base de données, de vos répertoires de fichiers et de "
+"votre répertoire d'installation OMP avant de continuer.
\n"
"\n"
-"Si vous êtes en mode sans échec PHP, assurez-vous que la directive max_execution_time de votre fichier de configuration php.ini soit fixée à une limite élevée. Si vous atteignez cette limite de temps ou une autre limite (ex.: la directive \"Timeout\" d'Apache), le processus de mise à jour sera interrompu et vous devrez intervenir manuellement.
"
+"Si vous êtes en mode sans échec PHP, assurez-vous que la directive "
+"max_execution_time de votre fichier de configuration php.ini soit fixée à "
+"une limite élevée. Si vous atteignez cette limite de temps ou une autre "
+"limite (ex.: la directive \"Timeout\" d'Apache), le processus de mise à jour "
+"sera interrompu et vous devrez intervenir manuellement.
"
msgid "installer.localeSettingsInstructions"
msgstr ""
-"Pour un soutien Unicode (UTF-8) complet, choisissez UTF-8 pour tous les paramètres de caractères. Veuillez noter que ce soutien exige actuellement un serveur de base de données MySQL >= 4.1.1 ou PostgreSQL >= 9.1.5. Veuillez également noter qu'un support Unicode complet exige la bibliothèque mbstring (activée par défaut dans les installations PHP les plus récentes). Vous pourriez rencontrer des problèmes si vous utilisez des jeux de caractères étendus, car il est possible que votre serveur ne puisse pas satisfaire ces exigences.\n"
+"Pour un soutien Unicode (UTF-8) complet, choisissez UTF-8 pour tous les "
+"paramètres de caractères. Veuillez noter que ce soutien exige actuellement "
+"un serveur de base de données MySQL >= 4.1.1 ou PostgreSQL >= 9.1.5. "
+"Veuillez également noter qu'un support Unicode complet exige la bibliothèque "
+"mbstring "
+"(activée par défaut dans les installations PHP les plus récentes). Vous "
+"pourriez rencontrer des problèmes si vous utilisez des jeux de caractères "
+"étendus, car il est possible que votre serveur ne puisse pas satisfaire ces "
+"exigences.\n"
"\n"
"
\n"
-"Votre serveur supporte actuellement mbstring: {$supportsMBString}"
+"Votre serveur supporte actuellement mbstring: {$supportsMBString}"
+"strong>"
msgid "installer.allowFileUploads"
-msgstr "Votre serveur permet de télécharger des fichiers: {$allowFileUploads}"
+msgstr ""
+"Votre serveur permet de télécharger des fichiers: {$allowFileUploads}"
+""
msgid "installer.maxFileUploadSize"
-msgstr "Votre serveur permet de télécharger des fichiers dont la taille maximale est: {$maxFileUploadSize}"
+msgstr ""
+"Votre serveur permet de télécharger des fichiers dont la taille maximale "
+"est: {$maxFileUploadSize}"
msgid "installer.localeInstructions"
-msgstr "La langue principalement utilisée par ce système. Veuillez consulter le document d'OMP si vous souhaitez obtenir un soutien dans une langue qui n'apparait pas dans cette liste."
+msgstr ""
+"La langue principalement utilisée par ce système. Veuillez consulter le "
+"document d'OMP si vous souhaitez obtenir un soutien dans une langue qui "
+"n'apparait pas dans cette liste."
msgid "installer.additionalLocalesInstructions"
-msgstr "Sélectionnez d'autres langues qui bénéficieront d'un soutien dans ce système. Ces langues pourront être utilisées par les presses hébergées sur ce site. D'autres langues peuvent être installées en tout temps à partir de l'interface de gestion du site. Les paramètres marqués d'une étoile (*) pourraient être incomplets."
+msgstr ""
+"Sélectionnez d'autres langues qui bénéficieront d'un soutien dans ce "
+"système. Ces langues pourront être utilisées par les presses hébergées sur "
+"ce site. D'autres langues peuvent être installées en tout temps à partir de "
+"l'interface de gestion du site. Les paramètres marqués d'une étoile (*) "
+"pourraient être incomplets."
msgid "installer.filesDirInstructions"
msgstr ""
-"Saisir un chemin d'accès complet vers un répertoire existant où les fichiers téléchargés seront stockés. Ce répertoire ne devrait pas être accessible directement par le Web.\n"
-"Assurez-vous que ce répertoire existe et est inscriptible avant l'installation. Les noms de chemin devraient contenir des barres obliques, ex.: \"C:/mypress/files\"."
+"Saisir un chemin d'accès complet vers un répertoire existant où les fichiers "
+"téléchargés seront stockés. Ce répertoire ne devrait pas être accessible "
+"directement par le Web.\n"
+"Assurez-vous que ce répertoire existe et est inscriptible avant "
+"l'installation. Les noms de chemin devraient contenir des barres "
+"obliques, ex.: \"C:/mypress/files\"."
msgid "installer.databaseSettingsInstructions"
-msgstr "OMP requiert l'accès à une base de données SQL pour stocker ses données. Consultez les exigences système ci-haut pour obtenir la liste des bases de données supportées. Dans les champs ci-dessous, indiquez les paramètres qui seront utilisés pour brancher la base de données."
+msgstr ""
+"OMP requiert l'accès à une base de données SQL pour stocker ses données. "
+"Consultez les exigences système ci-haut pour obtenir la liste des bases de "
+"données supportées. Dans les champs ci-dessous, indiquez les paramètres qui "
+"seront utilisés pour brancher la base de données."
msgid "installer.upgradeApplication"
msgstr "Mise à jour d'Open Monograph Press"
@@ -980,34 +1301,63 @@ msgstr "Mise à jour d'Open Monograph Press"
msgid "installer.overwriteConfigFileInstructions"
msgstr ""
"IMPORTANT!
\n"
-"Le programme d'installation n'a pas pu réécrire automatiquement le fichier de configuration. Avant de tenter d'utiliser le système, veuillez ouvrir config.inc.php dans un éditeur de texte approprié et remplacer son contenu par le contenu de la zone de texte ci-dessous.
"
+"Le programme d'installation n'a pas pu réécrire automatiquement le "
+"fichier de configuration. Avant de tenter d'utiliser le système, veuillez "
+"ouvrir config.inc.php dans un éditeur de texte approprié et "
+"remplacer son contenu par le contenu de la zone de texte ci-dessous.
"
+#, fuzzy
msgid "installer.installationComplete"
msgstr ""
"L'installation d'OMP est terminée.
\n"
-"Pour utiliser le système, ouvrez une session en utilisant le nom d'utilisateur et mot de passe saisis sur la page précédente.
\n"
-"Si vous souhaitez recevoir des nouvelles et des mises à jour, veuillez vous inscrire au http://pkp.sfu.ca/omp/register. Si vous avez des questions ou commentaires, veuillez consultez le forum.
"
+"Pour utiliser le système, ouvrez une session "
+"en utilisant le nom d'utilisateur et mot de passe saisis sur la page "
+"précédente.
\n"
+"Si vous souhaitez recevoir des nouvelles et des mises à jour, "
+"veuillez vous inscrire au http://pkp.sfu.ca/omp/register. Si vous avez "
+"des questions ou commentaires, veuillez consultez le forum.
"
+#, fuzzy
msgid "installer.upgradeComplete"
msgstr ""
"La mise à jour de la version OMP {$version} est terminée.
\n"
-"N'oubliez pas de remettre le paramètre \"installed\" à On dans votre fichier de configuration config.inc.php.
\n"
-"Si vous n'êtes pas déjà inscrit et souhaitez recevoir des nouvelles et des mises à jour, veuillez vous inscrire au http://pkp.sfu.ca/omp/register. Si vous avez des questions ou commentaires, veuillez consultez le forum.
"
+"N'oubliez pas de remettre le paramètre \"installed\" à On dans "
+"votre fichier de configuration config.inc.php.
\n"
+"Si vous n'êtes pas déjà inscrit et souhaitez recevoir des nouvelles et "
+"des mises à jour, veuillez vous inscrire au http://pkp.sfu.ca/omp/register"
+"strong>. Si vous avez des questions ou commentaires, veuillez consultez le "
+"forum.
"
msgid "log.review.reviewDueDateSet"
-msgstr "La date limite pour la {$round}e série de révisions de la soumission {$monographId} par {$reviewerName} est {$dueDate}."
+msgstr ""
+"La date limite pour la {$round}e série de révisions de la soumission "
+"{$monographId} par {$reviewerName} est {$dueDate}."
msgid "log.review.reviewDeclined"
-msgstr "{$reviewerName} n'a pas accepté la {$round}e série de révisions de la soumission {$monographId}."
+msgstr ""
+"{$reviewerName} n'a pas accepté la {$round}e série de révisions de la "
+"soumission {$monographId}."
msgid "log.review.reviewAccepted"
-msgstr "{$reviewerName} a accepté la {$round}e série de révisions de la soumission {$monographId}."
+msgstr ""
+"{$reviewerName} a accepté la {$round}e série de révisions de la soumission "
+"{$monographId}."
msgid "log.review.reviewUnconsidered"
-msgstr "{$editorName} a indiqué que la {$round}e série de révisions de la soumission {$monographId} n'a pas été considérée."
+msgstr ""
+"{$editorName} a indiqué que la {$round}e série de révisions de la soumission "
+"{$monographId} n'a pas été considérée."
msgid "log.editor.decision"
-msgstr "Une décision rédactionnelle ({$decision}) pour la monographie {$submissionId} a été enregistrée par {$editorName}."
+msgstr ""
+"Une décision rédactionnelle ({$decision}) pour la monographie "
+"{$submissionId} a été enregistrée par {$editorName}."
+
+msgid "log.editor.recommendation"
+msgstr ""
msgid "log.editor.archived"
msgstr "La soumission {$monographId} a été archivée."
@@ -1016,16 +1366,18 @@ msgid "log.editor.restored"
msgstr "La soumission {$monographId} a été remise dans la file d'attente."
msgid "log.editor.editorAssigned"
-msgstr "{$editorName} a été nommé rédacteur en chef de la soumission {$monographId}."
-
-msgid "log.editor.submissionExpedited"
-msgstr "{$editorName} a accéléré le processus rédactionnelle de la soumission {$monographId}."
+msgstr ""
+"{$editorName} a été nommé rédacteur en chef de la soumission {$monographId}."
msgid "log.proofread.assign"
-msgstr "{$assignerName} a nommé {$proofreaderName} pour corriger les épreuves de la soumission {$monographId}."
+msgstr ""
+"{$assignerName} a nommé {$proofreaderName} pour corriger les épreuves de la "
+"soumission {$monographId}."
msgid "log.proofread.complete"
-msgstr "{$proofreaderName} a soumis {$monographId} pour l'établissement d'un calendrier."
+msgstr ""
+"{$proofreaderName} a soumis {$monographId} pour l'établissement d'un "
+"calendrier."
msgid "log.imported"
msgstr "{$userName} a importé la monographie {$monographId}."
@@ -1111,12 +1463,6 @@ msgstr "Une nouvelle monographie, \"{$title},\" a été soumise."
msgid "notification.type.editing"
msgstr "Modifications"
-msgid "notification.type.metadataModified"
-msgstr "Les métadonnées de \"{$title}\" ont été modifiées."
-
-msgid "notification.type.reviewerComment"
-msgstr "Un évaluateur a commenté \"{$title}\"."
-
msgid "notification.type.reviewing"
msgstr "Révisions"
@@ -1129,8 +1475,13 @@ msgstr "Activités de soumission"
msgid "notification.type.userComment"
msgstr "Un lecteur a commenté \"{$title}\"."
+msgid "notification.type.public"
+msgstr ""
+
msgid "notification.type.editorAssignmentTask"
-msgstr "Une nouvelle monographie a été soumise. On doit lui assigner un rédacteur en chef."
+msgstr ""
+"Une nouvelle monographie a été soumise. On doit lui assigner un rédacteur en "
+"chef."
msgid "notification.type.copyeditorRequest"
msgstr "On vous a demandé de réviser les corrections dans \"{$file}\"."
@@ -1145,28 +1496,44 @@ msgid "notification.type.editorDecisionInternalReview"
msgstr "Le processus d'évaluation interne a débuté."
msgid "notification.type.approveSubmission"
-msgstr "Cette soumission est en attente d'approbation dans l'outil d'entrée de catalogue avant d'apparaitre dans le catalogue public."
+msgstr ""
+"Cette soumission est en attente d'approbation dans l'outil d'entrée de "
+"catalogue avant d'apparaitre dans le catalogue public."
msgid "notification.type.approveSubmissionTitle"
msgstr "En attente d'approbation."
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+
msgid "notification.type.configurePaymentMethod.title"
msgstr "Aucun mode de paiement n'a été configuré."
msgid "notification.type.configurePaymentMethod"
-msgstr "Il faut configurer un mode de paiement avant de définir les paramètre de commerce électronique."
+msgstr ""
+"Il faut configurer un mode de paiement avant de définir les paramètre de "
+"commerce électronique."
msgid "notification.type.visitCatalogTitle"
msgstr "Gestion du catalogue"
+msgid "notification.type.visitCatalog"
+msgstr ""
+
msgid "user.authorization.invalidReviewAssignment"
-msgstr "Vous n'avez pas accès à cette monographie car vous ne semblez pas être un évaluateur valide de ce document."
+msgstr ""
+"Vous n'avez pas accès à cette monographie car vous ne semblez pas être un "
+"évaluateur valide de ce document."
msgid "user.authorization.monographAuthor"
-msgstr "Vous n'avez pas accès à cette monographie car vous ne semblez pas en être l'auteur."
+msgstr ""
+"Vous n'avez pas accès à cette monographie car vous ne semblez pas en être "
+"l'auteur."
msgid "user.authorization.monographReviewer"
-msgstr "Vous n'avez pas accès à cette monographie car vous ne semblez pas figurer parmi les évaluateurs reconnus de celle-ci."
+msgstr ""
+"Vous n'avez pas accès à cette monographie car vous ne semblez pas figurer "
+"parmi les évaluateurs reconnus de celle-ci."
msgid "user.authorization.monographFile"
msgstr "Vous n'avez pas accès à ce fichier associé à la monographie."
@@ -1174,17 +1541,22 @@ msgstr "Vous n'avez pas accès à ce fichier associé à la monographie."
msgid "user.authorization.invalidMonograph"
msgstr "Vous avez demandé une monographie non valide ou inexistante!"
+#, fuzzy
msgid "user.authorization.noContext"
msgstr "Aucune presse en contexte!"
msgid "user.authorization.seriesAssignment"
-msgstr "Vous tentez d'avoir accès à une monographie qui ne fait pas partie de votre série."
+msgstr ""
+"Vous tentez d'avoir accès à une monographie qui ne fait pas partie de votre "
+"série."
msgid "user.authorization.workflowStageAssignmentMissing"
msgstr "Accès refusé! On ne vous a pas assigné de travail à cette étape."
msgid "user.authorization.workflowStageSettingMissing"
-msgstr "Accès refusé! Le groupe d'utilisateurs auquel vous appartenez n'a pas accès à cette étape du travail. Veuillez vérifier vos paramètres de presse."
+msgstr ""
+"Accès refusé! Le groupe d'utilisateurs auquel vous appartenez n'a pas accès "
+"à cette étape du travail. Veuillez vérifier vos paramètres de presse."
msgid "payment.directSales"
msgstr "Télécharger à partir du site Web de la presse"
@@ -1204,6 +1576,9 @@ msgstr "Approuvé"
msgid "payment.directSales.priceCurrency"
msgstr "Prix ({$currency})"
+msgid "payment.directSales.numericOnly"
+msgstr ""
+
msgid "payment.directSales.directSales"
msgstr "Ventes directes"
@@ -1220,7 +1595,11 @@ msgid "payment.directSales.openAccess"
msgstr "Accès libre"
msgid "payment.directSales.price.description"
-msgstr "Les formats des fichiers peuvent être accessibles et téléchargeables gratuitement sur le site Web de la presse, pour les lecteurs ou les ventes directes (en utilisant un processeur de paiement en ligne, tel que configuré dans Distribution). Il faut indiquer la base de l'accès pour ce fichier."
+msgstr ""
+"Les formats des fichiers peuvent être accessibles et téléchargeables "
+"gratuitement sur le site Web de la presse, pour les lecteurs ou les ventes "
+"directes (en utilisant un processeur de paiement en ligne, tel que configuré "
+"dans Distribution). Il faut indiquer la base de l'accès pour ce fichier."
msgid "payment.directSales.validPriceRequired"
msgstr "Il faut indiquer un prix numérique valide."
@@ -1235,34 +1614,178 @@ msgid "payment.directSales.monograph.name"
msgstr "Acheter la monographie ou le chapitre téléchargeable"
msgid "payment.directSales.monograph.description"
-msgstr "Cette transaction représente l'achat d'un téléchargement direct d'une seule monographie ou d'un chapitre."
+msgstr ""
+"Cette transaction représente l'achat d'un téléchargement direct d'une seule "
+"monographie ou d'un chapitre."
msgid "debug.notes.helpMappingLoad"
-msgstr "Le fichier de mappage d'aide XML {$filename} a été téléchargé à nouveau pour trouver {$id}."
-
-msgid "grid.action.createContext"
-msgstr "Créer une nouvelle presse"
-
-msgid "context.select"
-msgstr "Sélectionner une presse..."
+msgstr ""
+"Le fichier de mappage d'aide XML {$filename} a été téléchargé à nouveau pour "
+"trouver {$id}."
-msgid "user.role.editors"
-msgstr "Éditeurs"
+msgid "rt.metadata.pkp.dctype"
+msgstr ""
msgid "submission.pdf.download"
msgstr "Télécharger ce fichier PDF"
-msgid "user.noRoles.selectUsersWithoutRoles"
-msgstr "Ajouter des utilisateurs sans rôle à cette presse."
+msgid "user.profile.form.showOtherContexts"
+msgstr ""
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr ""
msgid "submission.round"
msgstr "Cycle {$round}"
-msgid "monograph.miscellaneousDetails"
-msgstr "Renseignements à propos de cette monographie"
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr ""
-msgid "monograph.publicationFormat"
-msgstr "Format"
+msgid "catalog.coverImageTitle"
+msgstr ""
-msgid "monograph.audience.success"
-msgstr "Les renseignements de l'auditoire ont été mis à jour."
+msgid "grid.catalogEntry.chapters"
+msgstr ""
+
+msgid "search.results.orderBy.article"
+msgstr ""
+
+msgid "search.results.orderBy.author"
+msgstr ""
+
+msgid "search.results.orderBy.date"
+msgstr ""
+
+msgid "search.results.orderBy.monograph"
+msgstr ""
+
+msgid "search.results.orderBy.press"
+msgstr ""
+
+msgid "search.results.orderBy.popularityAll"
+msgstr ""
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr ""
+
+msgid "search.results.orderBy.relevance"
+msgstr ""
+
+msgid "search.results.orderDir.asc"
+msgstr ""
+
+msgid "search.results.orderDir.desc"
+msgstr ""
+
+#~ msgid "monograph.coverImage.uploadInstructions"
+#~ msgstr ""
+#~ "Assurez-vous que la hauteur de l'image ne dépasse pas 150% de sa largeur "
+#~ "car sinon, le carrousel ne présentera pas toute la couverture."
+
+#~ msgid "grid.content.spotlights.category.sidebar"
+#~ msgstr "Encadré"
+
+#~ msgid "series.featured"
+#~ msgstr "En vedette"
+
+#~ msgid "grid.series.urlWillBe"
+#~ msgstr ""
+#~ "L'adresse URL de la série sera {$sampleUrl}. Le 'chemin d'accès' consiste "
+#~ "en une série de caractères utilisés pour identifier une série."
+
+#~ msgid "catalog.manage.homepage"
+#~ msgstr "Page d'accueil"
+
+#~ msgid "catalog.manage.managementIntroduction"
+#~ msgstr ""
+#~ "Bienvenue au gestionnaire de catalogue. À partir de cette page, vous "
+#~ "pouvez publier de nouvelles entrées de catalogue, réviser et configurer "
+#~ "votre liste des livres 'en vedette', réviser et configurer votre liste de "
+#~ "nouveautés, et réviser et configurer vos livres par catégorie et par "
+#~ "série."
+
+#~ msgid "catalog.manage.entryDescription"
+#~ msgstr ""
+#~ "Pour ajouter un livre à la liste du catalogue, sélectionnez l'onglet "
+#~ "'Monographie' et fournissez les renseignements nécessaires. Vous pouvez "
+#~ "ajouter les renseignements concernant chaque format de livre dans "
+#~ "l'entrée de catalogue en sélectionnant l'onglet Format. Les "
+#~ "spécifications concernant les métadonnées sont basées sur ONIX for Books, "
+#~ "une norme internationale utilisée par l'industrie du livre pour la "
+#~ "communication de renseignements sur les produits."
+
+#~ msgid "catalog.manage.spotlightDescription"
+#~ msgstr ""
+#~ "Trois produits vedette (ex.: livres sous les projecteurs) sont affichés "
+#~ "sur la page d'accueil de la presse, avec leur titre, une image et du "
+#~ "texte."
+
+#~ msgid "catalog.relatedCategories"
+#~ msgstr "Catégories connexes"
+
+#~ msgid "common.plusMore"
+#~ msgstr "+ Plus"
+
+#~ msgid "common.catalogInformation"
+#~ msgstr ""
+#~ "Il n'est pas nécessaire de remplir les renseignements sur le catalogue "
+#~ "lorsque le travail est soumis pour la première fois, mis à part le titre "
+#~ "et un sommaire."
+
+#~ msgid "common.prefixAndTitle.tip"
+#~ msgstr ""
+#~ "Si le titre du livre commence par un “Un/Une” ou “Le/la” (ou quelque "
+#~ "chose de semblable qui affecte l'ordre alphabétique), ajoutez un mot dans "
+#~ "Préfixe."
+
+#~ msgid "user.register.completeForm"
+#~ msgstr ""
+#~ "Veuillez remplir ce formulaire pour vous inscrire auprès de cette presse."
+
+#~ msgid "user.register.alreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Cliquez ici si vous êtes déjà inscrit(e) "
+#~ "auprès de cette presse ou d'une autre presse sur ce site."
+
+#~ msgid "user.register.notAlreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Cliquez ici si vous n'êtes pas"
+#~ "strong> déjà inscrit(e) auprès de cette presse ou d'une autre presse sur "
+#~ "ce site."
+
+#~ msgid "user.register.loginToRegister"
+#~ msgstr ""
+#~ "Indiquez voter nom d'utilisateur et mot de passe actuels pour vous "
+#~ "inscrire auprès de cette presse."
+
+#~ msgid "about.aboutThePress"
+#~ msgstr "À propos de cette presse"
+
+#~ msgid "about.sponsors"
+#~ msgstr "Parrains"
+
+#~ msgid "about.contributors"
+#~ msgstr "Sources de financement"
+
+#~ msgid "about.onlineSubmissions.haveAccount"
+#~ msgstr "Un nom d'utilisateur/mot de passe existe déjà pour {$pressTitle}?"
+
+#~ msgid "about.onlineSubmissions.needAccount"
+#~ msgstr "Vous avez besoin d'un nom d'utilisateur/mot de passe?"
+
+#~ msgid "about.onlineSubmissions.registration"
+#~ msgstr "Accéder à l'inscription"
+
+#~ msgid "log.editor.submissionExpedited"
+#~ msgstr ""
+#~ "{$editorName} a accéléré le processus rédactionnelle de la soumission "
+#~ "{$monographId}."
+
+#~ msgid "notification.type.metadataModified"
+#~ msgstr "Les métadonnées de \"{$title}\" ont été modifiées."
+
+#~ msgid "notification.type.reviewerComment"
+#~ msgstr "Un évaluateur a commenté \"{$title}\"."
+
+msgid "section.section"
+msgstr "Séries"
diff --git a/locale/fr_CA/manager.po b/locale/fr_CA/manager.po
index 5e4bbe487e0..85af625ea90 100644
--- a/locale/fr_CA/manager.po
+++ b/locale/fr_CA/manager.po
@@ -2,29 +2,32 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
+"PO-Revision-Date: 2019-09-30T06:23: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"
-"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2019-09-30T06:23:44-07:00\n"
-"Language: \n"
msgid "manager.language.confirmDefaultSettingsOverwrite"
-msgstr "Ceci remplacera tous les paramètres spécifiques aux données de la presse que vous aviez spécifiés pour ce paramètre."
-
-msgid "manager.languages.languageInstructions"
-msgstr "Les utilisateurs peuvent utiliser différentes langues dans OMP. De plus, OMP peut être multilingue: les utilisateurs peuvent basculer d'une langue à l'autre sur chaque page et ils peuvent saisir les données dans différentes langues.
Si une langue prise en charge par OMP n'apparait dans la liste, demandez à l'administrateur du site d'installer la langue à partir de l'interface d'administration du site. La documentation d'OMP contient des instructions sur la prise en charge de nouvelles langues."
+msgstr ""
+"Ceci remplacera tous les paramètres spécifiques aux données de la presse que "
+"vous aviez spécifiés pour ce paramètre."
msgid "manager.languages.noneAvailable"
-msgstr "Désolé, aucune autre langue n'est disponible. Contactez l'administrateur du site si vous souhaitez ajouter d'autres langues à cette presse."
+msgstr ""
+"Désolé, aucune autre langue n'est disponible. Contactez l'administrateur du "
+"site si vous souhaitez ajouter d'autres langues à cette presse."
msgid "manager.languages.primaryLocaleInstructions"
msgstr "Cette langue sera la langue par défaut du site de la presse."
msgid "manager.series.form.mustAllowPermission"
-msgstr "Assurez-vous qu'au moins une case ait été cochée pour chaque tâche assignée au rédacteur en chef de la série."
+msgstr ""
+"Assurez-vous qu'au moins une case ait été cochée pour chaque tâche assignée "
+"au rédacteur en chef de la série."
msgid "manager.series.form.reviewFormId"
msgstr "Assurez-vous d'avoir choisi un formulaire d'évaluation valide."
@@ -33,7 +36,9 @@ msgid "manager.series.submissionIndexing"
msgstr "Ne fera pas partie de l'indexage de la presse."
msgid "manager.series.editorRestriction"
-msgstr "Les articles ne peuvent être soumis que par les rédacteurs en chef et les rédacteurs en chef de la série."
+msgstr ""
+"Les articles ne peuvent être soumis que par les rédacteurs en chef et les "
+"rédacteurs en chef de la série."
msgid "manager.series.confirmDelete"
msgstr "Vous voulez supprimer cette série de façon permanente?"
@@ -72,7 +77,14 @@ msgid "manager.series.assigned"
msgstr "Rédacteurs en chef de la série"
msgid "manager.series.seriesEditorInstructions"
-msgstr "Ajouter un rédacteur en chef pour cette série à partir de la liste de rédacteurs en chef de série. Lorsqu'un rédacteur a été ajouté, indiquez s'il sera en charge de l'ÉVALUATION (évaluation par les pairs) et/ou du TRAVAIL ÉDITORIAL (révision, mise en page et correction d'épreuves) des soumissions de cette série. Pour ajouter un rédacteur en chef à la série, il faut cliquer Rédacteurs/Rédactrices en chef de série dans la section Rôles des administrateurs de la presse."
+msgstr ""
+"Ajouter un rédacteur en chef pour cette série à partir de la liste de "
+"rédacteurs en chef de série. Lorsqu'un rédacteur a été ajouté, indiquez s'il "
+"sera en charge de l'ÉVALUATION (évaluation par les pairs) et/ou du TRAVAIL "
+"ÉDITORIAL (révision, mise en page et correction d'épreuves) des soumissions "
+"de cette série. Pour ajouter un rédacteur en chef à la série, il faut "
+"cliquer Rédacteurs/Rédactrices en chef de "
+"série dans la section Rôles des administrateurs de la presse."
msgid "manager.series.hideAbout"
msgstr "Omettre cette série de la section À propos de cette presse."
@@ -95,11 +107,17 @@ msgstr "Utilisateurs actuels"
msgid "manager.series.seriesTitle"
msgstr "Titre de la série"
-msgid "manager.series.noSeriesEditors"
-msgstr "Aucun rédacteur en chef n'a été choisi pour cette série. Assignez ce rôle à au moins un utilisateur en choisissant Gestion > Paramètres > Utilisateurs & Rôles."
+msgid "manager.series.restricted"
+msgstr "Restreint"
+
+msgid "manager.payment.generalOptions"
+msgstr ""
+
+msgid "manager.payment.options.enablePayments"
+msgstr ""
-msgid "manager.series.noCategories"
-msgstr "Il n'y a pas encore de catégories. Si vous souhaitez assigner des catégories à cette série, fermez ce modal et cliquez sur l'onglet \"Catégories\", puis créez une catégorie."
+msgid "manager.payment.success"
+msgstr ""
msgid "manager.settings"
msgstr "Paramètres"
@@ -110,8 +128,14 @@ msgstr "Paramètres de la presse"
msgid "manager.settings.press"
msgstr "Presse"
+msgid "manager.settings.publisher.identity"
+msgstr ""
+
msgid "manager.settings.publisher.identity.description"
-msgstr "Ces champs ne sont pas nécessaires pour l'usage général d'OMP, mais sont nécessaires pour créer des métadonnées ONIX valides. Veuillez les ajouter si vous souhaitez utiliser la fonctionnalité ONIX."
+msgstr ""
+"Ces champs ne sont pas nécessaires pour l'usage général d'OMP, mais sont "
+"nécessaires pour créer des métadonnées ONIX valides. Veuillez les ajouter si "
+"vous souhaitez utiliser la fonctionnalité ONIX."
msgid "manager.settings.publisher"
msgstr "Nom de l'éditeur de la presse"
@@ -122,14 +146,42 @@ msgstr "Lieu géographique"
msgid "manager.settings.publisherCode"
msgstr "Code de l'éditeur"
+msgid "manager.settings.publisherCodeType"
+msgstr ""
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr ""
+
msgid "manager.settings.distributionDescription"
-msgstr "Tous les paramètres associés au processus de distribution (avis, indexage, archivage, paiement, outils de lecture)."
+msgstr ""
+"Tous les paramètres associés au processus de distribution (avis, indexage, "
+"archivage, paiement, outils de lecture)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr "Téléchargement des fichiers des monographies"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr "Vues du résumé de la monographie"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr "Résumé et téléchargements de la monographie"
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr "Vues de la page d'accueil de la série"
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr "Vues de la page d'accueil de la presse"
msgid "manager.tools"
msgstr "Outils"
msgid "manager.tools.importExport"
-msgstr "Tous les outils associés spécifiquement à l'importation et à l'exportation des données (presses, monographies, utilisateurs)"
+msgstr ""
+"Tous les outils associés spécifiquement à l'importation et à l'exportation "
+"des données (presses, monographies, utilisateurs)"
+
+msgid "manager.tools.statistics"
+msgstr ""
msgid "manager.users.availableRoles"
msgstr "Rôles disponibles"
@@ -140,6 +192,9 @@ msgstr "Rôles actuels"
msgid "manager.users.selectRole"
msgstr "Choisir un rôle"
+msgid "manager.people.allEnrolledUsers"
+msgstr ""
+
msgid "manager.people.allPresses"
msgstr "Toutes les presses"
@@ -150,43 +205,53 @@ msgid "manager.people.allUsers"
msgstr "Tous les utilisateurs inscrits"
msgid "manager.people.confirmRemove"
-msgstr "Vous voulez supprimer cet utilisateur de la presse? Cet utilisateur ne sera plus inscrit à aucun rôle dans cette presse."
+msgstr ""
+"Vous voulez supprimer cet utilisateur de la presse? Cet utilisateur ne sera "
+"plus inscrit à aucun rôle dans cette presse."
msgid "manager.people.enrollExistingUser"
msgstr "Inscrire un utilisateur actuel"
-msgid "manager.people.existingUserRequired"
-msgstr "Vous devez choisir un utilisateur actuel."
-
msgid "manager.people.enrollSyncPress"
msgstr "Avec la presse"
msgid "manager.people.mergeUsers.from.description"
-msgstr "Sélectionnez un utilisateur qui sera fusionné à un autre compte d'utilisateur (ex.: lorsqu'une personne a deux comptes). Le premier compte sélectionné sera supprimé et ses soumissions, tâches, etc. seront assignées au deuxième compte."
+msgstr ""
+"Sélectionnez un utilisateur qui sera fusionné à un autre compte "
+"d'utilisateur (ex.: lorsqu'une personne a deux comptes). Le premier compte "
+"sélectionné sera supprimé et ses soumissions, tâches, etc. seront assignées "
+"au deuxième compte."
msgid "manager.people.mergeUsers.into.description"
-msgstr "Sélectionnez l'utilisateur à qui vous souhaitez attribuer les paternités d'oeuvre, les tâches d'édition, etc. de l'ancien utilisateur."
+msgstr ""
+"Sélectionnez l'utilisateur à qui vous souhaitez attribuer les paternités "
+"d'oeuvre, les tâches d'édition, etc. de l'ancien utilisateur."
msgid "manager.people.syncUserDescription"
-msgstr "La synchronisation de l'inscription inscrira tous les utilisateurs de la presse spécifiée dans cette presse, et le rôle qui leur avait été assigné dans la presse spécifiée leur sera attribué dans cette presse. Cette fonction permet de synchroniser un groupe d'utilisateurs communs (ex.: évaluateurs) parmi les différentes presses."
+msgstr ""
+"La synchronisation de l'inscription inscrira tous les utilisateurs de la "
+"presse spécifiée dans cette presse, et le rôle qui leur avait été assigné "
+"dans la presse spécifiée leur sera attribué dans cette presse. Cette "
+"fonction permet de synchroniser un groupe d'utilisateurs communs (ex.: "
+"évaluateurs) parmi les différentes presses."
msgid "manager.people.confirmDisable"
-msgstr "Vous souhaitez désactiver cet utilisateur? Il ne pourra plus ouvrir une session dans le système. Vous pourriez expliquer à l'utilisateur pourquoi vous avez désactivé son compte, mais cela est optionnel."
+msgstr ""
+"Vous souhaitez désactiver cet utilisateur? Il ne pourra plus ouvrir une "
+"session dans le système. Vous pourriez expliquer à l'utilisateur pourquoi "
+"vous avez désactivé son compte, mais cela est optionnel."
msgid "manager.people.noAdministrativeRights"
msgstr ""
-"Désolé, vous ne possédez pas les droits administratifs vous permettant de modifier cet utilisateur parce que:\n"
+"Désolé, vous ne possédez pas les droits administratifs vous permettant de "
+"modifier cet utilisateur parce que:\n"
"\t\t\n"
"\t\t\t- L'utilisateur est un administrateur du site
\n"
-"\t\t\t- L'utilisateur est actif dans les presses que vous ne gérez pas
\n"
+"\t\t\t- L'utilisateur est actif dans les presses que vous ne gérez pas"
+"li>\n"
"\t\t
\n"
"\tCette tâche doit être effectuée par un administrateur du site."
-msgid "settings.roles.gridDescription"
-msgstr ""
-"Les rôles représentent des groupes d'utilisateurs de la presse à qui l'on a donné accès à différents niveaux d'autorisation et de flux de travaux au sein de la presse. Il existe cinq niveaux d'autorisation: les directeurs de la presse ont accès à tout le contenu de la presse (contenu et paramètres); les rédacteurs en chef de la presse ont accès à tout le contenu de leur série; les adjoints de presse ont accès à toutes les monographies leur ayant été explicitement assignées par un rédacteur en chef; les évaluateurs peuvent visionner et effectuer les évaluations leur ayant été assignées; et les auteurs peuvent visionner et interagir avec un nombre restreint de renseignements concernant leurs soumissions. De plus, les tâches sont divisées en cinq étapes auxquelles les rôles peuvent avoir accès:\n"
-"Soumission, Évaluation interne, Évaluation externe, Rédaction et Production."
-
msgid "manager.system"
msgstr "Paramètres du système"
@@ -202,6 +267,9 @@ msgstr "Outils de lecture"
msgid "manager.system.payments"
msgstr "Paiement"
+msgid "user.authorization.pluginLevel"
+msgstr ""
+
msgid "manager.pressManagement"
msgstr "Administration de la presse"
@@ -217,20 +285,13 @@ msgstr "Ajouter un élément dans À propos de"
msgid "manager.setup.addChecklistItem"
msgstr "Ajouter un point à la liste de vérification"
-msgid "manager.setup.addContributor"
-msgstr "Ajouter un contributeur"
-
msgid "manager.setup.addItem"
msgstr "Ajouter un élément"
msgid "manager.setup.addItemtoAboutPress"
-msgstr "Ajouter un élément qui s'affichera dans la section \"À propos de cette presse\""
-
-msgid "manager.setup.additionalContent"
-msgstr "Contenu supplémentaire"
-
-msgid "manager.setup.additionalContentDescription"
-msgstr "Ajouter le contenu suivant en utilisant le format texte/HTML. Il s'affichera sous l'image de la page d'accueil, si une telle page a été téléchargée."
+msgstr ""
+"Ajouter un élément qui s'affichera dans la section \"À propos de cette presse"
+"\""
msgid "manager.setup.addNavItem"
msgstr "Ajouter un élément"
@@ -238,47 +299,37 @@ msgstr "Ajouter un élément"
msgid "manager.setup.addSponsor"
msgstr "Ajouter un organisme parrain"
-msgid "manager.setup.alternateHeader"
-msgstr "En-tête secondaire"
-
-msgid "manager.setup.alternateHeaderDescription"
-msgstr "Au lieu d'un titre ou d'un logo, la version HTML de l'en-tête peut être insérée dans la zone de texte ci-dessous. Laissez cette zone vide si vous n'en avez pas besoin."
-
msgid "manager.setup.announcements"
msgstr "Annonces"
+msgid "manager.setup.announcements.success"
+msgstr ""
+
msgid "manager.setup.announcementsDescription"
-msgstr "Vous pouvez publier des annonces pour informer les lecteurs des récentes nouvelles et activités de la presse. Les annonces s'afficheront sur la page Annonces."
+msgstr ""
+"Vous pouvez publier des annonces pour informer les lecteurs des récentes "
+"nouvelles et activités de la presse. Les annonces s'afficheront sur la page "
+"Annonces."
msgid "manager.setup.announcementsIntroduction"
msgstr "Renseignements supplémentaires"
msgid "manager.setup.announcementsIntroduction.description"
-msgstr "Saisissez les renseignements supplémentaires s'adressant aux lecteurs qui devraient s'afficher sur la page Annonces."
+msgstr ""
+"Saisissez les renseignements supplémentaires s'adressant aux lecteurs qui "
+"devraient s'afficher sur la page Annonces."
msgid "manager.setup.appearInAboutPress"
msgstr "(S'affichera dans À propos de cette presse) "
-msgid "manager.setup.authorCopyrightNotice"
-msgstr "Avis de droit d'auteur"
-
-msgid "manager.setup.authorCopyrightNoticeAgree"
-msgstr "Le processus de soumission exige que les auteurs souscrivent à l'avis de droit d'auteur."
-
-msgid "manager.setup.authorCopyrightNotice.description"
-msgstr "L'avis de droit d'auteur saisi ci-dessous s'affichera dans À propos de cette presse et dans les métadonnées de chaque article publié. Bien qu'il en revienne à la presse d'établir la nature de son avis de droit d'auteur, le Public Knowledge Project recommande d'utiliser la licence Creative Commons. À cette fin, on fournit un modèle suggérant la formulation de l'avis de droit d'auteur qui peut être copié-collé dans l'espace ci-dessous par les presses qui (a) offrent l'accès libre, (b), offrent l'accès libre différé, ou (c) n'offrent pas l'accès libre."
-
-msgid "manager.setup.authorGuidelines.description"
-msgstr "Énoncer les normes bibliographiques et d'édition que les auteurs doivent utiliser lorsqu'ils soumettent un article à la presse (ex: manuel d'édition de l'American Psychological Association, 5e édition, 2001). Il est souvent utile de fournir des exemples des styles de citation couramment utilisés par les presses et les livres et qui doivent être utilisés dans les soumissions."
-
-msgid "manager.setup.contributor"
-msgstr "Contributeur"
+msgid "manager.setup.contextAbout"
+msgstr ""
-msgid "manager.setup.contributors"
-msgstr "Sources de financement"
+msgid "manager.setup.contextAbout.description"
+msgstr ""
-msgid "manager.setup.contributors.description"
-msgstr "Les noms des agences ou organismes qui fournissent une aide financière ou en nature à la presse apparaitront dans la section À propos de cette presse et pourraient être accompagnés d'un mot de remerciement."
+msgid "manager.setup.contextSummary"
+msgstr ""
msgid "manager.setup.copyediting"
msgstr "Réviseurs de textes"
@@ -287,7 +338,12 @@ msgid "manager.setup.copyeditInstructions"
msgstr "Instructions pour la révision"
msgid "manager.setup.copyeditInstructionsDescription"
-msgstr "Les réviseurs de textes, les auteurs et les rédacteurs en chef de la section auront accès aux Instructions pour la révision à l'étape de révision de la soumission. Voici l'ensemble des instructions par défaut en HTML, qui peuvent être modifiées ou remplacées par le directeur de la presse en tout temps (en HTML ou texte clair)."
+msgstr ""
+"Les réviseurs de textes, les auteurs et les rédacteurs en chef de la section "
+"auront accès aux Instructions pour la révision à l'étape de révision de la "
+"soumission. Voici l'ensemble des instructions par défaut en HTML, qui "
+"peuvent être modifiées ou remplacées par le directeur de la presse en tout "
+"temps (en HTML ou texte clair)."
msgid "manager.setup.copyrightNotice"
msgstr "Avis de droit d'auteur"
@@ -295,6 +351,15 @@ msgstr "Avis de droit d'auteur"
msgid "manager.setup.coverage"
msgstr "Champ couvert"
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr ""
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr ""
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr ""
+
msgid "manager.setup.customizingTheLook"
msgstr "Étape 5. Personnaliser l'apparence"
@@ -302,7 +367,9 @@ msgid "manager.setup.customTags"
msgstr "Marqueurs personnalisés"
msgid "manager.setup.customTagsDescription"
-msgstr "Vous pouvez ajouter des marqueurs HTML personnalisés dans l'en-tête de chaque page. (ex.: marqueurs Méta)."
+msgstr ""
+"Vous pouvez ajouter des marqueurs HTML personnalisés dans l'en-tête de "
+"chaque page. (ex.: marqueurs Méta)."
msgid "manager.setup.details"
msgstr "Détails"
@@ -311,28 +378,67 @@ msgid "manager.setup.details.description"
msgstr "Nom de la presse, coordonnées, parrains et moteurs de recherche."
msgid "manager.setup.disableUserRegistration"
-msgstr "Les directeurs de presse inscrivent tous les utilisateurs. Les rédacteurs en chef et rédacteurs en chef de section ne peuvent inscrire que les évaluateurs."
+msgstr ""
+"Les directeurs de presse inscrivent tous les utilisateurs. Les rédacteurs en "
+"chef et rédacteurs en chef de section ne peuvent inscrire que les "
+"évaluateurs."
msgid "manager.setup.discipline"
msgstr "Discipline et sous-disciplines universitaires"
msgid "manager.setup.disciplineDescription"
-msgstr "Utile lorsque les presses traversent les frontières des disciplines et/ou les auteurs soumettent des articles multidisciplinaires."
+msgstr ""
+"Utile lorsque les presses traversent les frontières des disciplines et/ou "
+"les auteurs soumettent des articles multidisciplinaires."
msgid "manager.setup.disciplineExamples"
-msgstr "(ex.: histoire; éducation; sociologie; psychologie; études culturelles; loi)"
+msgstr ""
+"(ex.: histoire; éducation; sociologie; psychologie; études culturelles; loi)"
msgid "manager.setup.disciplineProvideExamples"
-msgstr "Fournir des exemples des disciplines universitaires normalement associées à cette presse."
+msgstr ""
+"Fournir des exemples des disciplines universitaires normalement associées à "
+"cette presse."
msgid "manager.setup.displayCurrentMonograph"
-msgstr "Ajouter la table des matières de la monographie en question (si disponible)."
+msgstr ""
+"Ajouter la table des matières de la monographie en question (si disponible)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr ""
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr ""
-msgid "manager.setup.doiPrefix"
-msgstr "Préfixe DOI"
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr ""
-msgid "manager.setup.doiPrefixDescription"
-msgstr "Le préfixe DOI (Digital Object Identifier) est assigné par CrossRef sous le format 10.xxxx (ex.: 10.1234)."
+msgid "manager.setup.displayInSpotlight"
+msgstr ""
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr ""
+
+msgid "manager.setup.displayNewReleases"
+msgstr ""
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr ""
+
+msgid "manager.setup.enableDois.description"
+msgstr ""
+
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr ""
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr ""
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr ""
msgid "manager.setup.editorDecision"
msgstr "Décision du rédacteur en chef"
@@ -341,7 +447,12 @@ msgid "manager.setup.emailBounceAddress"
msgstr "Adresse de retour"
msgid "manager.setup.emailBounceAddress.description"
-msgstr "Un message d'erreur s'affichera à cette adresse lorsqu'un courriel est non délivrable."
+msgstr ""
+"Un message d'erreur s'affichera à cette adresse lorsqu'un courriel est non "
+"délivrable."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr ""
msgid "manager.setup.emails"
msgstr "Identification de courriel"
@@ -349,26 +460,46 @@ msgstr "Identification de courriel"
msgid "manager.setup.emailSignature"
msgstr "Signature"
-msgid "manager.setup.emailSignatureDescription"
-msgstr "Les courriels distribués par le système au nom de la presse contiendront le bloc-signature suivant à la fin du message. Le contenu des courriels peut être modifié dans la section ci-dessous."
+msgid "manager.setup.emailSignature.description"
+msgstr ""
msgid "manager.setup.enableAnnouncements.enable"
-msgstr "Permettre au directeur de la presse d'ajouter des annonces de la presse."
+msgstr ""
+"Permettre au directeur de la presse d'ajouter des annonces de la presse."
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr ""
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr ""
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr ""
msgid "manager.setup.enablePressInstructions"
msgstr "Afficher cette presse publiquement sur le site"
msgid "manager.setup.enablePublicMonographId"
-msgstr "Des identificateurs personnalisés seront utilisés pour identifier les articles publiés."
+msgstr ""
+"Des identificateurs personnalisés seront utilisés pour identifier les "
+"articles publiés."
msgid "manager.setup.enablePublicGalleyId"
-msgstr "Des identificateurs personnalisés seront utilisés pour identifier les épreuves en placard (ex.: fichiers HTML ou PDF) des articles publiés."
+msgstr ""
+"Des identificateurs personnalisés seront utilisés pour identifier les "
+"épreuves en placard (ex.: fichiers HTML ou PDF) des articles publiés."
+
+msgid "manager.setup.enableUserRegistration"
+msgstr ""
msgid "manager.setup.focusAndScope"
msgstr "Objectif et portée de la presse"
msgid "manager.setup.focusAndScope.description"
-msgstr "Saisir un énoncé qui s'affichera dans la section À propos de cette presse et indiquera aux auteurs, aux lecteurs et aux bibliothécaires l'éventail des monographies et autres articles qui seront publiés par la presse."
+msgstr ""
+"Saisir un énoncé qui s'affichera dans la section À propos de cette presse et "
+"indiquera aux auteurs, aux lecteurs et aux bibliothécaires l'éventail des "
+"monographies et autres articles qui seront publiés par la presse."
msgid "manager.setup.focusScope"
msgstr "Objectif et portée"
@@ -380,10 +511,20 @@ msgid "manager.setup.forAuthorsToIndexTheirWork"
msgstr "Permet aux auteurs d'indexer leur travail"
msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
-msgstr "OMP a adopté le protocole Open Archives Initiative pour la collecte de métadonnées, la norme émergente qui permet de fournir un accès mondial à des ressources de recherche électroniques indexées adéquatement. Les auteurs utiliseront un modèle semblable pour les métadonnées de leur soumission. Le directeur de la presse devrait choisir les catégories d'indexage et donner des exemples pertinents aux auteurs pour les aider à indexer leur article, en séparant les termes par un point-virgule (ex.: terme1; terme2). Les entrées devraient être précédées d'exemples en utilisant \"ex.:\" ou \"Par exemple,\"."
+msgstr ""
+"OMP a adopté le protocole Open Archives Initiative pour la collecte de métadonnées, la "
+"norme émergente qui permet de fournir un accès mondial à des ressources de "
+"recherche électroniques indexées adéquatement. Les auteurs utiliseront un "
+"modèle semblable pour les métadonnées de leur soumission. Le directeur de la "
+"presse devrait choisir les catégories d'indexage et donner des exemples "
+"pertinents aux auteurs pour les aider à indexer leur article, en séparant "
+"les termes par un point-virgule (ex.: terme1; terme2). Les entrées devraient "
+"être précédées d'exemples en utilisant \"ex.:\" ou \"Par exemple,\"."
msgid "manager.setup.form.contactEmailRequired"
-msgstr "Vous devez ajouter l'adresse courriel de la personne-ressource principale."
+msgstr ""
+"Vous devez ajouter l'adresse courriel de la personne-ressource principale."
msgid "manager.setup.form.contactNameRequired"
msgstr "Vous devez ajouter le nom de la personne-ressource principale."
@@ -409,14 +550,17 @@ msgstr "Lignes directrices"
msgid "manager.setup.preparingWorkflow"
msgstr "Étape 3. Préparer le flux des travaux"
-msgid "manager.setup.homepageImage"
-msgstr "Image de la page d'accueil"
+msgid "manager.setup.identity"
+msgstr ""
-msgid "manager.setup.homepageImageDescription"
-msgstr "Ajouter un fichier image ou graphique au milieu de la page. Si vous utilisez le modèle et CSS par défaut, l'image peut être d'une largeur maximale de 750 px pour une configuration avec une barre des menus verticale, ou de 540 px pour une configuration avec deux barres des menus verticales. Si vous utilisez un modèle ou CSS personnalisé, ces valeurs pourraient varier."
+msgid "manager.setup.information"
+msgstr ""
msgid "manager.setup.information.description"
-msgstr "De brèves descriptions de la presse pour les bibliothécaires ainsi que pour les lecteurs et les auteurs potentiels sont affichées dans la section \"Renseignements\" de la barre des menus verticale."
+msgstr ""
+"De brèves descriptions de la presse pour les bibliothécaires ainsi que pour "
+"les lecteurs et les auteurs potentiels sont affichées dans la section "
+"\"Renseignements\" de la barre des menus verticale."
msgid "manager.setup.information.forAuthors"
msgstr "Pour les auteurs"
@@ -427,9 +571,24 @@ msgstr "Pour les bibliothécaires"
msgid "manager.setup.information.forReaders"
msgstr "Pour les lecteurs"
+msgid "manager.setup.information.success"
+msgstr ""
+
msgid "manager.setup.institution"
msgstr "Institution"
+msgid "manager.setup.itemsPerPage"
+msgstr ""
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr ""
+
+msgid "manager.setup.keyInfo"
+msgstr ""
+
+msgid "manager.setup.keyInfo.description"
+msgstr ""
+
msgid "manager.setup.labelName"
msgstr "Nom d'étiquette"
@@ -440,13 +599,26 @@ msgid "manager.setup.layoutInstructions"
msgstr "Instructions de mise en page"
msgid "manager.setup.layoutInstructionsDescription"
-msgstr "Des instructions concernant la mise en page des articles publiés par cette presse peuvent être ajoutées ci-dessous en format HTML ou texte clair. Elles pourront être consultées par le responsable de la mise en page et le rédacteur en chef de section sur la page de révision de chaque soumission. (Étant donné que chaque presse utilise ses propres formats de fichiers, normes bibliographiques, feuilles de style, etc., on ne fournit pas d'instructions par défaut.)"
+msgstr ""
+"Des instructions concernant la mise en page des articles publiés par cette "
+"presse peuvent être ajoutées ci-dessous en format HTML ou texte clair. Elles "
+"pourront être consultées par le responsable de la mise en page et le "
+"rédacteur en chef de section sur la page de révision de chaque soumission. "
+"(Étant donné que chaque presse utilise ses propres formats de fichiers, "
+"normes bibliographiques, feuilles de style, etc., on ne fournit pas "
+"d'instructions par défaut.)"
msgid "manager.setup.layoutTemplates"
msgstr "Modèles de mise en page"
msgid "manager.setup.layoutTemplatesDescription"
-msgstr "Des modèles de chaque format standard publié par la presse (ex.: monographie, critique de livre, etc.) peuvent être téléchargés dans la section Mise en page, dans tous les formats (ex.: pdf, doc, etc.). Ils contiennent des annotations sur la police de caractères, la taille, les marges, etc. qui guideront les rédacteurs metteurs en page et les correcteurs d'épreuves."
+msgstr ""
+"Des modèles de chaque format standard publié par la presse (ex.: "
+"monographie, critique de livre, etc.) peuvent être téléchargés dans la "
+"section Mise en page, dans tous les formats (ex.: pdf, doc, etc.). Ils "
+"contiennent des annotations sur la police de caractères, la taille, les "
+"marges, etc. qui guideront les rédacteurs metteurs en page et les "
+"correcteurs d'épreuves."
msgid "manager.setup.layoutTemplates.file"
msgstr "Fichier modèle"
@@ -457,20 +629,24 @@ msgstr "Titre"
msgid "manager.setup.lists"
msgstr "Listes"
+msgid "manager.setup.lists.success"
+msgstr ""
+
msgid "manager.setup.look"
msgstr "Aspect et convivialité"
msgid "manager.setup.look.description"
-msgstr "En-tête de la page d'accueil, contenu, en-tête de la presse, bas de page, barre de navigation et feuille de style."
-
-msgid "manager.setup.mailingAddress.description"
-msgstr "L'emplacement physique et l'adresse postale de la presse."
+msgstr ""
+"En-tête de la page d'accueil, contenu, en-tête de la presse, bas de page, "
+"barre de navigation et feuille de style."
msgid "manager.setup.settings"
msgstr "Paramètres"
msgid "manager.setup.management.description"
-msgstr "Accès et sécurité, planification, annonces, révision, mise en page et correction d'épreuves."
+msgstr ""
+"Accès et sécurité, planification, annonces, révision, mise en page et "
+"correction d'épreuves."
msgid "manager.setup.managementOfBasicEditorialSteps"
msgstr "Gestion des étapes de révision de base"
@@ -481,6 +657,9 @@ msgstr "Configuration de la gestion et de la publication"
msgid "manager.setup.managingThePress"
msgstr "Étape 4. Gestion des paramètres"
+msgid "manager.setup.masthead.success"
+msgstr ""
+
msgid "manager.setup.noImageFileUploaded"
msgstr "Aucun fichier image n'a été téléchargé."
@@ -490,86 +669,112 @@ msgstr "Aucune feuille de style n'a été téléchargée."
msgid "manager.setup.note"
msgstr "Note"
-msgid "manager.setup.notifications"
-msgstr "Avis de soumission d'un auteur"
-
-msgid "manager.setup.notifications.copyPrimaryContact"
-msgstr "Envoyer une copie à la principale personne-ressource telle qu'identifiée à l'étape 1, lors de la configuration."
-
-msgid "manager.setup.notifications.copySpecifiedAddress"
-msgstr "Envoyer une copie à cette adresse courriel:"
-
-msgid "manager.setup.notifications.description"
-msgstr "Lorsque le processus de soumission est terminé, les auteurs reçoivent automatiquement un accusé de réception par courriel (qui peut être visionné et modifié dans la section Courriels préparés). De plus, une copie de l'accusé de réception peut être envoyée ainsi:"
-
msgid "manager.setup.notifyAllAuthorsOnDecision"
-msgstr "Si vous avez choisi l'option Envoyer un avis par courriel à l'auteur, ajoutez les adresses courriel de tous les co-auteurs s'il s'agit de soumissions par de multiples auteurs, et non seulement l'adresse courriel de l'utilisateur qui envoie la soumission."
+msgstr ""
+"Si vous avez choisi l'option Envoyer un avis par courriel à l'auteur, "
+"ajoutez les adresses courriel de tous les co-auteurs s'il s'agit de "
+"soumissions par de multiples auteurs, et non seulement l'adresse courriel de "
+"l'utilisateur qui envoie la soumission."
msgid "manager.setup.noUseCopyeditors"
-msgstr "La révision sera entreprise par le rédacteur en chef ou le rédacteur de section à qui l'on a assigné la soumission."
+msgstr ""
+"La révision sera entreprise par le rédacteur en chef ou le rédacteur de "
+"section à qui l'on a assigné la soumission."
msgid "manager.setup.noUseLayoutEditors"
-msgstr "Le rédacteur en chef ou le rédacteur de section à qui l'on a assigné la soumission préparera les fichiers HTML, PDF, etc."
+msgstr ""
+"Le rédacteur en chef ou le rédacteur de section à qui l'on a assigné la "
+"soumission préparera les fichiers HTML, PDF, etc."
msgid "manager.setup.noUseProofreaders"
-msgstr "Le rédacteur en chef ou le rédacteur de section à qui l'on a assigné la soumission vérifiera les épreuves en placard."
+msgstr ""
+"Le rédacteur en chef ou le rédacteur de section à qui l'on a assigné la "
+"soumission vérifiera les épreuves en placard."
msgid "manager.setup.numPageLinks"
msgstr "Liens vers des pages Web"
+msgid "manager.setup.numPageLinks.description"
+msgstr ""
+
msgid "manager.setup.onlineAccessManagement"
msgstr "Accès au contenu de la presse"
msgid "manager.setup.onlineIssn"
msgstr "ISSN en ligne"
-msgid "manager.setup.openAccess"
-msgstr "La presse fournit l'accès libre à son contenu."
-
-msgid "manager.setup.openAccessPolicy"
-msgstr "Politique de libre accès"
-
-msgid "manager.setup.openAccessPolicy.description"
-msgstr "Si la presse permet aux lecteurs d'accéder immédiatement et librement à tout le contenu qu'elle a publié, veuillez ajouter la Politique de libre accès qui s'affichera dans la section À propos de cette presse, sous la rubrique Politiques."
-
-msgid "manager.setup.peerReview.description"
-msgstr "Présentez les grandes lignes de la politique et du processus d'évaluation par les pairs pour les lecteurs et les auteurs, y compris le nombre d'évaluateurs auquel on fait normalement appel pour évaluer une soumission, les critères utilisés par les évaluateurs pour évaluer les soumissions, les délais habituels pour mener les évaluations et les principes de recrutement des évaluateurs. Ces renseignements s'afficheront dans la section À propos de cette presse."
-
msgid "manager.setup.policies"
msgstr "Politiques"
msgid "manager.setup.policies.description"
-msgstr "Centre d'intérêt, évaluation par les pairs, sections, confidentialité, sécurité et autres renseignements."
+msgstr ""
+"Centre d'intérêt, évaluation par les pairs, sections, confidentialité, "
+"sécurité et autres renseignements."
+
+msgid "manager.setup.privacyStatement.success"
+msgstr ""
+
+msgid "manager.setup.appearanceDescription"
+msgstr ""
+"Différentes composantes de l'apparence de la presse peuvent être configurées "
+"à partir de cette page, y compris des éléments de l'en-tête et du pied de "
+"page, le style et le thème de la presse, et la manière dont les listes de "
+"renseignements sont présentées aux utilisateurs."
msgid "manager.setup.pressDescription"
msgstr "Description de la presse"
msgid "manager.setup.pressDescription.description"
-msgstr "Une description générale de la presse devrait être ajoutée ici. Cette description sera disponible sur la page d'accueil de la presse."
+msgstr ""
+"Une description générale de la presse devrait être ajoutée ici. Cette "
+"description sera disponible sur la page d'accueil de la presse."
+
+msgid "manager.setup.aboutPress"
+msgstr ""
+
+msgid "manager.setup.aboutPress.description"
+msgstr ""
msgid "manager.setup.pressArchiving"
msgstr "Archivage de la presse"
+msgid "manager.setup.homepageContent"
+msgstr "Contenu de la page d'accueil de la presse"
+
+msgid "manager.setup.homepageContentDescription"
+msgstr ""
+"La page d'accueil de la presse est constituée de liens de navigation par "
+"défaut. Vous pouvez ajouter du contenu à la page d'accueil à l'aide d'une ou "
+"plusieurs des options suivantes, qui apparaitront dans l'ordre montré à "
+"l'écran."
+
msgid "manager.setup.pressHomepageContent"
msgstr "Contenu de la page d'accueil de la presse"
msgid "manager.setup.pressHomepageContentDescription"
-msgstr "La page d'accueil de la presse contient les liens de navigation par défaut. Vous pouvez ajouter du texte sur la page d'accueil à l'aide d'une ou de toutes les options suivantes, qui s'afficheront dans l'ordre indiqué."
+msgstr ""
+"La page d'accueil de la presse contient les liens de navigation par défaut. "
+"Vous pouvez ajouter du texte sur la page d'accueil à l'aide d'une ou de "
+"toutes les options suivantes, qui s'afficheront dans l'ordre indiqué."
msgid "manager.setup.contextInitials"
msgstr "Sigles de la presse"
-msgid "manager.setup.pageFooter"
-msgstr "Bas de page de la presse"
+msgid "manager.setup.selectCountry"
+msgstr ""
-msgid "manager.setup.pageFooterDescription"
-msgstr "Voici le bas de page de votre presse. Pour modifier ou mettre à jour le bas de page, copiez-collez le code HTML dans la zone d'entrée de texte ci-dessous. Vous pourriez par exemple ajouter une autre barre de navigation ou un compteur. Ce bas de page apparaitra sur chaque page."
+msgid "manager.setup.layout"
+msgstr "Mise en page de la presse"
msgid "manager.setup.pageHeader"
msgstr "Page d'en-tête de la presse"
msgid "manager.setup.pageHeaderDescription"
-msgstr "Une version graphique du titre de la presse (fichier .gif, .jpg, ou .png), qui peut être plus petite que celle utilisée sur la page d'accueil, peut être téléchargée afin que le titre apparaisse dans l'en-tête de chaque page de la presse et remplace la version textuelle qui apparait normalement."
+msgstr ""
+"Une version graphique du titre de la presse (fichier .gif, .jpg, ou .png), "
+"qui peut être plus petite que celle utilisée sur la page d'accueil, peut "
+"être téléchargée afin que le titre apparaisse dans l'en-tête de chaque page "
+"de la presse et remplace la version textuelle qui apparait normalement."
msgid "manager.setup.pressPolicies"
msgstr "Étape 2. Politiques de la presse"
@@ -586,29 +791,28 @@ msgstr "Feuille de style non valide. Le format accepté est .css."
msgid "manager.setup.pressTheme"
msgstr "Thème de la presse"
-msgid "manager.setup.principalContact"
-msgstr "Principale personne-ressource"
+msgid "manager.setup.pressThumbnail"
+msgstr ""
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr ""
-msgid "manager.setup.principalContactDescription"
-msgstr "Cet individu peut être rédacteur principal, rédacteur en chef, directeur de la publication ou employé administratif, et son nom apparaitra sur la page d'accueil de la presse dans la section Pour nous contacter, avec le nom du responsable du soutien technique."
+msgid "manager.setup.contextTitle"
+msgstr "Nom de la presse"
msgid "manager.setup.printIssn"
msgstr "ISSN version imprimée"
-msgid "manager.setup.privacyStatement"
-msgstr "Énoncé de confidentialité"
-
-msgid "manager.setup.privacyStatement2"
-msgstr "Énoncé de confidentialité"
-
-msgid "manager.setup.privacyStatement.description"
-msgstr "Cet énoncé s'affichera sur la page À propos de cette presse, ainsi que sur les pages d'inscription pour soumettre un article ou recevoir des notifications. Voici un énoncé de confidentialité proposé, qui peut être modifié en tout temps."
-
msgid "manager.setup.proofingInstructions"
msgstr "Instructions pour le tirage d'épreuves"
msgid "manager.setup.proofingInstructionsDescription"
-msgstr "Les lecteurs d'épreuves, les auteurs, les rédacteurs metteurs en page et les rédacteurs de section pourront consulter les instructions pour le tirage d'épreuves lors de l'étape de révision des soumissions. Voici des instructions par défaut en HTML, qui peuvent être modifiées ou remplacées par le directeur de la presse en tout temps (HTML ou texte clair)."
+msgstr ""
+"Les lecteurs d'épreuves, les auteurs, les rédacteurs metteurs en page et les "
+"rédacteurs de section pourront consulter les instructions pour le tirage "
+"d'épreuves lors de l'étape de révision des soumissions. Voici des "
+"instructions par défaut en HTML, qui peuvent être modifiées ou remplacées "
+"par le directeur de la presse en tout temps (HTML ou texte clair)."
msgid "manager.setup.proofreading"
msgstr "Lecteurs d'épreuves"
@@ -617,13 +821,21 @@ msgid "manager.setup.provideRefLinkInstructions"
msgstr "Fournir les instructions aux rédacteurs metteurs en page."
msgid "manager.setup.publicationScheduleDescription"
-msgstr "Les articles peuvent être publiés collectivement, en tant qu'élément d'une monographie avec sa propre table des matières, ou bien les articles peuvent être publiés dès qu'ils sont prêts en les ajoutant à la table des matières du volume \"actuel\". Dans la section À propos de cette presse, veuillez indiquer aux lecteurs quelle méthode de publication a été choisie et la fréquence de publication prévue."
+msgstr ""
+"Les articles peuvent être publiés collectivement, en tant qu'élément d'une "
+"monographie avec sa propre table des matières, ou bien les articles peuvent "
+"être publiés dès qu'ils sont prêts en les ajoutant à la table des matières "
+"du volume \"actuel\". Dans la section À propos de cette presse, veuillez "
+"indiquer aux lecteurs quelle méthode de publication a été choisie et la "
+"fréquence de publication prévue."
msgid "manager.setup.publisher"
msgstr "Éditeur"
msgid "manager.setup.publisherDescription"
-msgstr "Le nom de l'organisation qui publie la presse apparaitra dans la page À propos de cette presse."
+msgstr ""
+"Le nom de l'organisation qui publie la presse apparaitra dans la page À "
+"propos de cette presse."
msgid "manager.setup.referenceLinking"
msgstr "Liens de référence"
@@ -632,100 +844,152 @@ msgid "manager.setup.refLinkInstructions.description"
msgstr "Instructions de mise en page pour les liens de référence"
msgid "manager.setup.restrictMonographAccess"
-msgstr "Les utilisateurs doivent s'inscrire et ouvrir une session pour visionner le contenu à libre accès."
+msgstr ""
+"Les utilisateurs doivent s'inscrire et ouvrir une session pour visionner le "
+"contenu à libre accès."
msgid "manager.setup.restrictSiteAccess"
-msgstr "Les utilisateurs doivent être inscrits et ouvrir une session pour visionner le site de la presse."
+msgstr ""
+"Les utilisateurs doivent être inscrits et ouvrir une session pour visionner "
+"le site de la presse."
msgid "manager.setup.reviewGuidelines"
msgstr "Lignes directrices pour l'évaluation"
msgid "manager.setup.reviewGuidelinesDescription"
-msgstr "Les lignes directrices pour l'évaluation fourniront aux évaluateurs les critères nécessaires pour déterminer si une soumission peut être publiée par la presse. Elles peuvent aussi contenir des instructions spéciales qui aideront l'évaluateur à rédiger une évaluation efficace et utile. Lors de l'évaluation, les évaluateurs auront accès à deux zones d'entrée de texte, la première \"pour l'auteur et le rédacteur en chef\" et la seconde \"pour le rédacteur en chef\". Ou bien, le directeur de la presse peut créer un formulaire d'évaluation dans la section Formulaires d'évaluation. Dans tous les cas, les rédacteurs pourront, s'ils le désirent, joindre les évaluations à leur correspondance avec l'auteur."
+msgstr ""
+"Les lignes directrices pour l'évaluation fourniront aux évaluateurs les "
+"critères nécessaires pour déterminer si une soumission peut être publiée par "
+"la presse. Elles peuvent aussi contenir des instructions spéciales qui "
+"aideront l'évaluateur à rédiger une évaluation efficace et utile. Lors de "
+"l'évaluation, les évaluateurs auront accès à deux zones d'entrée de texte, "
+"la première \"pour l'auteur et le rédacteur en chef\" et la seconde \"pour "
+"le rédacteur en chef\". Ou bien, le directeur de la presse peut créer un "
+"formulaire d'évaluation dans la section Formulaires d'évaluation. Dans tous "
+"les cas, les rédacteurs pourront, s'ils le désirent, joindre les évaluations "
+"à leur correspondance avec l'auteur."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr "Lignes directrices concernant l'examen interne"
+
+msgid "manager.setup.reviewOptions"
+msgstr "Options d'examen"
msgid "manager.setup.reviewOptions.automatedReminders"
-msgstr "Des rappels peuvent être envoyés automatiquement par courriel aux évaluateurs (disponible dans les courriels par défaut d'OMP) à deux moments, mais le rédacteur en chef peut envoyer un courriel directement à l'évaluateur en tout temps."
+msgstr ""
+"Des rappels peuvent être envoyés automatiquement par courriel aux "
+"évaluateurs (disponible dans les courriels par défaut d'OMP) à deux moments, "
+"mais le rédacteur en chef peut envoyer un courriel directement à "
+"l'évaluateur en tout temps."
msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
-msgstr "Note: Pour activer ces options, l'administrateur du site doit activer l'option scheduled_tasks dans le fichier de configuration OMP. Il pourrait s'avérer nécessaire d'intégrer d'autres configurations au serveur pour supporter cette fonctionnalité (qui n'est peut-être pas possible sur tous les serveurs), tel qu'indiqué dans les documents d'OMP."
-
-msgid "manager.setup.reviewOptions.noteOnModification"
-msgstr "Ces valeurs par défaut peuvent être modifiées pour toute les soumissions tout au long du processus éditorial."
+msgstr ""
+"Note: Pour activer ces options, l'administrateur du site "
+"doit activer l'option scheduled_tasks dans le fichier de "
+"configuration OMP. Il pourrait s'avérer nécessaire d'intégrer d'autres "
+"configurations au serveur pour supporter cette fonctionnalité (qui n'est "
+"peut-être pas possible sur tous les serveurs), tel qu'indiqué dans les "
+"documents d'OMP."
msgid "manager.setup.reviewOptions.onQuality"
-msgstr "Les rédacteurs en chef accorderont une note à l'aide d'une échelle de qualité de 1 à 5 pour chaque évaluation."
+msgstr ""
+"Les rédacteurs en chef accorderont une note à l'aide d'une échelle de "
+"qualité de 1 à 5 pour chaque évaluation."
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr ""
msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
-msgstr "Les évaluateurs auront accès au fichier de soumission uniquement s'ils acceptent de l'évaluer."
+msgstr ""
+"Les évaluateurs auront accès au fichier de soumission uniquement s'ils "
+"acceptent de l'évaluer."
msgid "manager.setup.reviewOptions.reviewerAccess"
msgstr "Accès des évaluateurs"
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr ""
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
+msgstr ""
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr ""
+
msgid "manager.setup.reviewOptions.reviewerRatings"
msgstr "Cotes des évaluateurs"
msgid "manager.setup.reviewOptions.reviewerReminders"
msgstr "Rappels aux évaluateurs"
-msgid "manager.setup.reviewOptions.reviewTime"
-msgstr "Délai d'évaluation"
-
msgid "manager.setup.reviewPolicy"
msgstr "Politique concernant l'évaluation"
-msgid "manager.setup.reviewProcess"
-msgstr "Processus d'évaluation"
-
-msgid "manager.setup.reviewProcessDescription"
-msgstr "OMP offre un support pour deux modèles de gestion du processus d'évaluation. Le processus standard d'évaluation est recommandé parce qu'il permet aux évaluateurs de suivre un processus par étapes, ce qui permet de créer un historique d'évaluation complet pour chaque soumission. Il permet aussi de profiter des rappels envoyés automatiquement et des recommandations standards pour les soumissions (accepter; accepter avec révisions; soumettre pour évaluation; soumettre ailleurs; refuser; voir commentaires).
Choisir l'une des options suivantes:"
-
-msgid "manager.setup.reviewProcessEmail"
-msgstr "Processus pour l'envoi de pièces jointes par courriel aux évaluateurs"
-
-msgid "manager.setup.reviewProcessStandard"
-msgstr "Processus d'évaluation standard"
-
-msgid "manager.setup.reviewProcessStandardDescription"
-msgstr "Les rédacteurs en chef enverront le titre et le résumé de la soumission par courriel aux évaluateurs choisis, ainsi qu'une invitation à ouvrir une session sur le site web pour évaluer la soumission. Les évaluateurs se rendent sur le site Web pour accepter l'invitation, télécharger les soumissions, envoyer leur commentaires et sélectionner une recommandation."
+msgid "manager.setup.searchDescription.description"
+msgstr ""
msgid "manager.setup.searchEngineIndexing"
msgstr "Indexage du moteur de recherche"
msgid "manager.setup.searchEngineIndexing.description"
-msgstr "Pour aider les utilisateurs de moteur de recherche à trouver cette presse, veuillez rédiger une brève description de la presse avec des mots-clés (séparés par un point-virgule)."
+msgstr ""
+"Pour aider les utilisateurs de moteur de recherche à trouver cette presse, "
+"veuillez rédiger une brève description de la presse avec des mots-clés "
+"(séparés par un point-virgule)."
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr ""
msgid "manager.setup.sectionsAndSectionEditors"
msgstr "Sections et rédacteurs de sections"
msgid "manager.setup.sectionsDefaultSectionDescription"
-msgstr "(Si aucune section n'est ajoutée, les articles seront ajoutés à la section Monographies par défaut.)"
+msgstr ""
+"(Si aucune section n'est ajoutée, les articles seront ajoutés à la section "
+"Monographies par défaut.)"
msgid "manager.setup.sectionsDescription"
-msgstr "Pour créer ou modifier les sections de la presse (ex.: monographies, critiques de livre, etc.), choisissez Gestion de section.
Les auteurs des articles soumis à la presse désigneront..."
+msgstr ""
+"Pour créer ou modifier les sections de la presse (ex.: monographies, "
+"critiques de livre, etc.), choisissez Gestion de section.
Les "
+"auteurs des articles soumis à la presse désigneront..."
msgid "manager.setup.securitySettings"
msgstr "Paramètres d'accès et de sécurité"
msgid "manager.setup.securitySettings.note"
-msgstr "D'autres options liées à l'accès et à la sécurité peuvent être configurées à partir de la page Accès et sécurité"
+msgstr ""
+"D'autres options liées à l'accès et à la sécurité peuvent être configurées à "
+"partir de la page Accès et sécurité"
msgid "manager.setup.selectEditorDescription"
-msgstr "Le rédacteur en chef de la presse qui suivra l'article tout au long du processus éditorial."
+msgstr ""
+"Le rédacteur en chef de la presse qui suivra l'article tout au long du "
+"processus éditorial."
msgid "manager.setup.selectSectionDescription"
-msgstr "La section de la presse à laquelle on pourrait ajouter l'article en question."
+msgstr ""
+"La section de la presse à laquelle on pourrait ajouter l'article en question."
msgid "manager.setup.showGalleyLinksDescription"
-msgstr "Toujours afficher les liens des épreuves en placard et indiquer les réserves de consultation."
+msgstr ""
+"Toujours afficher les liens des épreuves en placard et indiquer les réserves "
+"de consultation."
-msgid "manager.setup.sponsors.description"
-msgstr "Les noms des organismes (ex.: associations universitaires, départements universitaires, coopératives, etc.) qui parrainent la presse apparaitront dans la section À propos de cette presse et peuvent être accompagnés d'une note de remerciement."
+msgid "manager.setup.siteAccess.view"
+msgstr ""
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr ""
msgid "manager.setup.stepsToPressSite"
msgstr "Cinq étapes pour établir le site Web d'une presse"
msgid "manager.setup.subjectExamples"
-msgstr "(ex.: la photosynthèse; les trous noirs; le théorème des quatre couleurs; le théorème de Bayes)"
+msgstr ""
+"(ex.: la photosynthèse; les trous noirs; le théorème des quatre couleurs; le "
+"théorème de Bayes)"
msgid "manager.setup.subjectKeywordTopic"
msgstr "Mots clés"
@@ -736,12 +1000,6 @@ msgstr "Fournir des exemples de mots clés ou sujets pour guider les auteurs."
msgid "manager.setup.submissionGuidelines"
msgstr "Lignes directrices concernant les soumissions"
-msgid "manager.setup.submissionPreparationChecklist"
-msgstr "Liste de vérification pour la préparation de la soumission"
-
-msgid "manager.setup.submissionPreparationChecklistDescription"
-msgstr "Après avoir envoyé leur soumission à la presse, on demande aux auteurs de cocher tous les éléments de la liste de vérification avant d'envoyer leur soumission. La liste de vérification est aussi disponible dans la section Lignes directrices à l'intention des auteurs, dans la rubrique À propos de cette presse. La liste peut être modifiée ci-dessous, mais tous les éléments apparaissant sur la liste doivent être cochés avant que les auteurs puissent envoyer leur soumission."
-
msgid "maganer.setup.submissionChecklistItemRequired"
msgstr "Vous devez cocher cet élément sur la liste."
@@ -749,22 +1007,22 @@ msgid "manager.setup.workflow"
msgstr "Flux des travaux"
msgid "manager.setup.submissions.description"
-msgstr "Lignes directrices à l'intention des auteurs, droit d'auteur et indexage (y compris l'inscription)."
-
-msgid "manager.setup.technicalSupportContact"
-msgstr "Support technique"
-
-msgid "manager.setup.technicalSupportContactDescription"
-msgstr "Le nom de cette personne sera ajouté à la page Contactez-nous pour les rédacteurs, auteurs et évaluateurs. Cette personne devrait bien connaitre le système et être en mesure de travailler sous les angles respectifs de tous les utilisateurs. Ce système exige peu de soutien technique, alors il s'agit d'un poste à temps partiel. Par exemple, il est possible qu'à l'occasion, les auteurs et les évaluateurs éprouvent des difficultés avec les instructions ou les formats de fichiers, ou qu'il soit nécessaire de s'assurer que la presse est sauvegardée régulièrement sur le serveur."
+msgstr ""
+"Lignes directrices à l'intention des auteurs, droit d'auteur et indexage (y "
+"compris l'inscription)."
msgid "manager.setup.typeExamples"
-msgstr "(ex.: recherche historique; quasi-expérimental; analyse littéraire; sondage/entrevue)"
+msgstr ""
+"(ex.: recherche historique; quasi-expérimental; analyse littéraire; sondage/"
+"entrevue)"
msgid "manager.setup.typeMethodApproach"
msgstr "Type (Méthode/Approche)"
msgid "manager.setup.typeProvideExamples"
-msgstr "Fournir des exemples qui représentent bien les différents types, méthodes et approches de recherche dans ce domaine"
+msgstr ""
+"Fournir des exemples qui représentent bien les différents types, méthodes et "
+"approches de recherche dans ce domaine"
msgid "manager.setup.useCopyeditors"
msgstr "Un réviseur de texte sera assigné à chaque soumission."
@@ -772,20 +1030,21 @@ msgstr "Un réviseur de texte sera assigné à chaque soumission."
msgid "manager.setup.useEditorialReviewBoard"
msgstr "La presse fera appel à un comité de rédaction/d'évaluation."
-msgid "manager.setup.useImageLogo"
-msgstr "Logo de la presse"
-
-msgid "manager.setup.useImageLogoDescription"
-msgstr "Il est possible de télécharger le logo de la presse et de l'utiliser avec la version graphique ou textuelle du titre configuré ci-dessus."
-
msgid "manager.setup.useImageTitle"
msgstr "Image de titre"
+msgid "manager.setup.useStyleSheet"
+msgstr "Feuille de style de la presse"
+
msgid "manager.setup.useLayoutEditors"
-msgstr "Un rédacteur metteur en page sera nommé pour préparer les fichiers HTML, PDF, etc. pour la publication électronique."
+msgstr ""
+"Un rédacteur metteur en page sera nommé pour préparer les fichiers HTML, "
+"PDF, etc. pour la publication électronique."
msgid "manager.setup.useProofreaders"
-msgstr "Un lecteur d'épreuves sera nommé pour vérifier (avec les auteurs) les épreuves en placard avant la publication."
+msgstr ""
+"Un lecteur d'épreuves sera nommé pour vérifier (avec les auteurs) les "
+"épreuves en placard avant la publication."
msgid "manager.setup.userRegistration"
msgstr "Inscription des utilisateurs"
@@ -796,9 +1055,6 @@ msgstr "Texte du titre"
msgid "manager.setup.volumePerYear"
msgstr "Volumes par année"
-msgid "manager.setup.registerPressForIndexing"
-msgstr "Enregistrer une presse pour l'indexage (collecte de métadonnées)"
-
msgid "manager.setup.publicationFormat.code"
msgstr "Format"
@@ -812,19 +1068,30 @@ msgid "manager.setup.publicationFormat.physicalFormat"
msgstr "S'agit-il d'un format physique (non numérique)?"
msgid "manager.setup.publicationFormat.inUse"
-msgstr "Le format de cette publication est actuellement utilisé par une monographie de votre presse et ne peut donc pas être supprimé."
+msgstr ""
+"Le format de cette publication est actuellement utilisé par une monographie "
+"de votre presse et ne peut donc pas être supprimé."
msgid "manager.setup.newPublicationFormat"
msgstr "Nouveau format de publication"
msgid "manager.setup.newPublicationFormatDescription"
-msgstr "Pour créer un nouveau format de publication, veuillez remplir le formulaire ci-dessous et cliquer sur le bouton \"Créer\"."
+msgstr ""
+"Pour créer un nouveau format de publication, veuillez remplir le formulaire "
+"ci-dessous et cliquer sur le bouton \"Créer\"."
msgid "manager.setup.genresDescription"
-msgstr "Ces genres sont utilisés pour nommer les fichiers et présentés dans un menu déroulant lorsque les fichiers sont téléchargés. Les genres ## permettent à l'utilisateur d'associer le fichier au livre entier 99Z ou à un chapitre particulier par un chiffre (ex.: 02)."
+msgstr ""
+"Ces genres sont utilisés pour nommer les fichiers et présentés dans un menu "
+"déroulant lorsque les fichiers sont téléchargés. Les genres ## permettent à "
+"l'utilisateur d'associer le fichier au livre entier 99Z ou à un chapitre "
+"particulier par un chiffre (ex.: 02)."
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr ""
-msgid "manager.setup.reviewProcessEmailDescription"
-msgstr "Les rédacteurs en chef envoient les demandes d'évaluation aux évaluateurs par courriel ainsi que la soumission en pièce jointe. Les évaluateurs répondent aux rédacteurs en chef par courriel pour indiquer s'ils acceptent ou s'ils refusent l'invitation. Ils envoient également leur évaluation et leur recommandation par courriel. Les rédacteurs en chef saisiront les réponses des évaluateurs ainsi que l'évaluation et la recommandation sur la page d'évaluation de la soumission pour conserver un registre du processus d'évaluation."
+msgid "manager.setup.disableSubmissions.description"
+msgstr ""
msgid "manager.setup.genres"
msgstr "Genres"
@@ -833,7 +1100,9 @@ msgid "manager.setup.newGenre"
msgstr "Nouveau genre de monographie"
msgid "manager.setup.newGenreDescription"
-msgstr "Pour créer un nouveau genre, veuillez remplir le formulaire ci-dessous et cliquer le bouton \"Créer\"."
+msgstr ""
+"Pour créer un nouveau genre, veuillez remplir le formulaire ci-dessous et "
+"cliquer le bouton \"Créer\"."
msgid "manager.setup.deleteSelected"
msgstr "Supprimer la sélection"
@@ -845,7 +1114,13 @@ msgid "manager.setup.prospectus"
msgstr "Prospectus"
msgid "manager.setup.prospectusDescription"
-msgstr "Le prospectus est un document rédigé par la presse qui aide les auteurs à décrire les documents soumis de façon à ce que la presse puisse déterminer la valeur de la soumission. Un prospectus peut contenir plusieurs éléments, comme les débouchés commerciaux ou la valeur théorique. Dans tous les cas, la presse devrait rédiger un prospectus qui s'ajoutera à son agenda de publication."
+msgstr ""
+"Le prospectus est un document rédigé par la presse qui aide les auteurs à "
+"décrire les documents soumis de façon à ce que la presse puisse déterminer "
+"la valeur de la soumission. Un prospectus peut contenir plusieurs éléments, "
+"comme les débouchés commerciaux ou la valeur théorique. Dans tous les cas, "
+"la presse devrait rédiger un prospectus qui s'ajoutera à son agenda de "
+"publication."
msgid "manager.setup.submitToCategories"
msgstr "Accepter les soumissions par catégorie"
@@ -854,7 +1129,14 @@ msgid "manager.setup.submitToSeries"
msgstr "Accepter les soumissions de série"
msgid "manager.setup.issnDescription"
-msgstr "L'indice ISSN (International Standard Serial Number) est un nombre de huit chiffres qui identifie les publications périodiques en tant que telles, y compris les journaux électroniques. Il est géré par un réseau international de centres nationaux coordonnés par un centre international basé à Paris, et appuyé par l'Unesco et le gouvernement de la France. Pour obtenir un indice ISSN, vous devez consulter ce site Web. Ceci peut être fait à tout moment."
+msgstr ""
+"L'indice ISSN (International Standard Serial Number) est un nombre de huit "
+"chiffres qui identifie les publications périodiques en tant que telles, y "
+"compris les journaux électroniques. Il est géré par un réseau international "
+"de centres nationaux coordonnés par un centre international basé à Paris, et "
+"appuyé par l'Unesco et le gouvernement de la France. Pour obtenir un indice "
+"ISSN, vous devez consulter ce site Web. Ceci peut être fait à tout moment."
msgid "manager.setup.currentFormats"
msgstr "Formats actuels"
@@ -863,10 +1145,22 @@ msgid "manager.setup.categoriesAndSeries"
msgstr "Catégories et séries"
msgid "manager.setup.categories.description"
-msgstr "Vous pouvez créer une liste de catégories pour vous aider à organiser vos publications. Les catégories sont des groupements de livres par sujet, comme l'économie, la littérature, la poésie, etc. Les catégories peuvent être encastrées dans des \"catégories mères\". Par exemple, une catégorie mère Économie peut contenir les catégories microéconomie et macroéconomie. Les visiteurs pourront effectuer une recherche et naviguer le site de la presse par catégorie."
+msgstr ""
+"Vous pouvez créer une liste de catégories pour vous aider à organiser vos "
+"publications. Les catégories sont des groupements de livres par sujet, comme "
+"l'économie, la littérature, la poésie, etc. Les catégories peuvent être "
+"encastrées dans des \"catégories mères\". Par exemple, une catégorie mère "
+"Économie peut contenir les catégories microéconomie et macroéconomie. Les "
+"visiteurs pourront effectuer une recherche et naviguer le site de la presse "
+"par catégorie."
msgid "manager.setup.series.description"
-msgstr "Vous pouvez créer différentes séries pour vous aider à organiser vos publications. Une série est un ensemble de livres traitant du même thème ou sujet proposé par des individus, habituellement un ou deux membres du corps enseignant, qui superviseront la série. Les visiteurs peuvent effectuer une recherche ou naviguer le site par série."
+msgstr ""
+"Vous pouvez créer différentes séries pour vous aider à organiser vos "
+"publications. Une série est un ensemble de livres traitant du même thème ou "
+"sujet proposé par des individus, habituellement un ou deux membres du corps "
+"enseignant, qui superviseront la série. Les visiteurs peuvent effectuer une "
+"recherche ou naviguer le site par série."
msgid "manager.setup.reviewForms"
msgstr "Formulaires d'évaluation"
@@ -896,7 +1190,11 @@ msgid "manager.setup.editorialTeam"
msgstr "Équipe de rédaction"
msgid "manager.setup.editorialTeam.description"
-msgstr "Le bloc générique devrait contenir la liste des rédacteurs en chef, directeurs généraux et autres individus associés à la presse. Les renseignements saisis ici s'afficheront dans la section À propos de cette presse."
+msgstr ""
+"Le bloc générique devrait contenir la liste des rédacteurs en chef, "
+"directeurs généraux et autres individus associés à la presse. Les "
+"renseignements saisis ici s'afficheront dans la section À propos de cette "
+"presse."
msgid "manager.setup.files"
msgstr "Fichier"
@@ -905,112 +1203,724 @@ msgid "manager.setup.productionTemplates"
msgstr "Modèles de production"
msgid "manager.files.note"
-msgstr "Note: Le navigateur Fichiers est une fonctionnalité avancée qui permet de visionner et de manipuler directement les fichiers et les répertoires associés à la presse."
+msgstr ""
+"Note: Le navigateur Fichiers est une fonctionnalité avancée qui permet de "
+"visionner et de manipuler directement les fichiers et les répertoires "
+"associés à la presse."
msgid "manager.setup.copyrightNotice.sample"
msgstr ""
"Avis de droit d'auteur proposés par Creative Commons
\n"
"Politique proposée pour les presses offrant l'accès libre
\n"
-"Les auteurs dont les articles seront publiés par cette presse acceptent les conditions suivantes:\n"
+"Les auteurs dont les articles seront publiés par cette presse acceptent les "
+"conditions suivantes:\n"
"\n"
-"\t- Les auteurs conservent leur droit d'auteur et accordent le droit de première impression à la presse. Les articles seront simultanément sous une licence Creative Commons Attribution qui permet à des tierces parties de partager l'oeuvre d'un auteur en autant qu'elles mentionnent son nom, et sous une licence pour la première impression dans la presse en question.
\n"
-"\t- Les auteurs peuvent signer une entente contractuelle complémentaire distincte pour la distribution non exclusive de la version de leur oeuvre publiée par la presse (ex.: déposer l'oeuvre auprès d'un service d'archivage d'établissement ou la publier dans un livre), avec une attestation de sa première impression dans cette presse.
\n"
-"\t- On permet et on encourage les auteurs à publier leur article en ligne (ex.: dans un service d'archivage d'établissement ou sur leur site Web) avant et pendant le processus de soumission, car il pourrait en résulter des échanges productifs avec leurs pairs, et l'article pourrait être cité plus tôt et plus fréquemment lorsqu'il sera publié (voir Les effets positifs d'un libre accès).
\n"
+"\t- Les auteurs conservent leur droit d'auteur et accordent le droit de "
+"première impression à la presse. Les articles seront simultanément sous une "
+"licence Creative Commons Attribution qui permet à des tierces parties "
+"de partager l'oeuvre d'un auteur en autant qu'elles mentionnent son nom, et "
+"sous une licence pour la première impression dans la presse en question."
+"li>\n"
+"\t
- Les auteurs peuvent signer une entente contractuelle complémentaire "
+"distincte pour la distribution non exclusive de la version de leur oeuvre "
+"publiée par la presse (ex.: déposer l'oeuvre auprès d'un service d'archivage "
+"d'établissement ou la publier dans un livre), avec une attestation de sa "
+"première impression dans cette presse.
\n"
+"\t- On permet et on encourage les auteurs à publier leur article en ligne "
+"(ex.: dans un service d'archivage d'établissement ou sur leur site Web) "
+"avant et pendant le processus de soumission, car il pourrait en résulter des "
+"échanges productifs avec leurs pairs, et l'article pourrait être cité plus "
+"tôt et plus fréquemment lorsqu'il sera publié (voir Les effets positifs "
+"d'un libre accès).
\n"
"
\n"
"\n"
-"Politique proposée pour les presses dont le libre accès est différé
\n"
-"Les auteurs dont les articles seront publiés par cette presse acceptent les conditions suivantes:\n"
+"Politique proposée pour les presses dont le libre accès est différé"
+"h4>\n"
+"Les auteurs dont les articles seront publiés par cette presse acceptent les "
+"conditions suivantes:\n"
"\n"
-"\t- Les auteurs conservent leur droit d'auteur et accordent le droit de première impression à la presse. [SPÉCIFIER LA DURÉE] après la publication, les articles seront simultanément sous une licence Creative Commons Attribution qui permet à des tierces parties de partager l'oeuvre d'un auteur en autant qu'elles mentionnent son nom, et sous une licence pour la première impression dans la presse en question.
\n"
-"\t - Les auteurs peuvent signer une entente contractuelle complémentaire distincte pour la distribution non exclusive de la version de leur oeuvre publiée par la presse (ex.: déposer l'oeuvre auprès d'un service d'archivage d'établissement ou la publier dans un livre), avec une attestation de sa première impression dans cette presse.\n"
-"\t
- On permet et on encourage les auteurs à publier leur article en ligne (ex.: dans un service d'archivage d'établissement ou sur leur site Web) avant et pendant le processus de soumission, car il pourrait en résulter des échanges productifs avec leurs pairs, et l'article pourrait être cité plus tôt et plus fréquemment lorsqu'il sera publié (voir Les effets positifs d'un libre accès).
\n"
+"\t- Les auteurs conservent leur droit d'auteur et accordent le droit de "
+"première impression à la presse. [SPÉCIFIER LA DURÉE] après la publication, "
+"les articles seront simultanément sous une licence Creative Commons Attribution "
+" qui permet à des tierces parties de partager l'oeuvre d'un auteur en "
+"autant qu'elles mentionnent son nom, et sous une licence pour la première "
+"impression dans la presse en question.
\n"
+"\t - Les auteurs peuvent signer une entente contractuelle complémentaire "
+"distincte pour la distribution non exclusive de la version de leur oeuvre "
+"publiée par la presse (ex.: déposer l'oeuvre auprès d'un service d'archivage "
+"d'établissement ou la publier dans un livre), avec une attestation de sa "
+"première impression dans cette presse.\n"
+"\t
- On permet et on encourage les auteurs à publier leur article en ligne "
+"(ex.: dans un service d'archivage d'établissement ou sur leur site Web) "
+"avant et pendant le processus de soumission, car il pourrait en résulter des "
+"échanges productifs avec leurs pairs, et l'article pourrait être cité plus "
+"tôt et plus fréquemment lorsqu'il sera publié (voir Les effets "
+"positifs d'un libre accès).
\n"
"
"
msgid "manager.setup.basicEditorialStepsDescription"
msgstr ""
-"Étapes: Soumission en attente > évaluation de la soumission > révision de la soumission > table des matières.
\n"
-"Choisissez un modèle pour gérer ces aspects du processus éditorial. (Pour nommer un éditeur en chef et les rédacteurs de série, allez dans la rubrique Rédacteurs de Gestion de la presse.)"
+"Étapes: Soumission en attente > évaluation de la soumission > révision "
+"de la soumission > table des matières.
\n"
+"Choisissez un modèle pour gérer ces aspects du processus éditorial. (Pour "
+"nommer un éditeur en chef et les rédacteurs de série, allez dans la rubrique "
+"Rédacteurs de Gestion de la presse.)"
msgid "manager.setup.referenceLinkingDescription"
msgstr ""
-"
Pour permettre aux lecteurs de trouver les articles cités par l'auteur sur Internet, vous pouvez utiliser les options suivantes.
\n"
+"Pour permettre aux lecteurs de trouver les articles cités par l'auteur "
+"sur Internet, vous pouvez utiliser les options suivantes.
\n"
"\n"
"\n"
-"\t- Ajouter un outil de lecture
Le directeur de la presse peut ajouter \"Trouver les références\" aux outils de lecture qui accompagnent les articles publiés, ce qui permet aux lecteurs de faire un copier-coller du titre d'un article cité par l'auteur et d'effectuer une recherche dans les bases de données de recherche présélectionnées.
\n"
-"\t- Intégrer des liens dans les références
Le rédacteur metteur en page peut ajouter un lien vers les références disponibles en ligne à l'aide des instructions suivantes (qui peuvent être modifiées).
\n"
+"\t- Ajouter un outil de lecture
Le directeur de la "
+"presse peut ajouter \"Trouver les références\" aux outils de lecture qui "
+"accompagnent les articles publiés, ce qui permet aux lecteurs de faire un "
+"copier-coller du titre d'un article cité par l'auteur et d'effectuer une "
+"recherche dans les bases de données de recherche présélectionnées.
\n"
+"\t- Intégrer des liens dans les références
Le rédacteur "
+"metteur en page peut ajouter un lien vers les références disponibles en "
+"ligne à l'aide des instructions suivantes (qui peuvent être modifiées).
"
+"li>\n"
"
"
-msgid "manager.setup.logo"
-msgstr "Logo de la presse"
+msgid "manager.publication.library"
+msgstr "Bibliothèque de la presse"
-msgid "manager.setup.logo.altText"
-msgstr "Logo de la presse"
+msgid "manager.setup.resetPermissions"
+msgstr ""
-msgid "manager.setup.contextTitle"
-msgstr "Nom de la presse"
+msgid "manager.setup.resetPermissions.confirm"
+msgstr ""
-msgid "manager.series.restricted"
-msgstr "Restreint"
+msgid "manager.setup.resetPermissions.description"
+msgstr ""
-msgid "manager.statistics.reports.defaultReport.monographDownloads"
-msgstr "Téléchargement des fichiers des monographies"
+msgid "manager.setup.resetPermissions.success"
+msgstr ""
-msgid "manager.setup.homepageContent"
-msgstr "Contenu de la page d'accueil de la presse"
+msgid "grid.genres.title.short"
+msgstr ""
-msgid "manager.statistics.reports.defaultReport.monographAbstract"
-msgstr "Vues du résumé de la monographie"
+msgid "grid.genres.title"
+msgstr ""
-msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
-msgstr "Résumé et téléchargements de la monographie"
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr ""
+"Envoyer une copie à la principale personne-ressource telle qu'identifiée à "
+"l'étape 1, lors de la configuration."
-msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
-msgstr "Vues de la page d'accueil de la série"
+msgid "grid.series.pathAlphaNumeric"
+msgstr ""
-msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
-msgstr "Vues de la page d'accueil de la presse"
+msgid "grid.series.pathExists"
+msgstr ""
-msgid "manager.statistics.reports.filters.byContext.description"
-msgstr "Limiter les résultats par contexte (série et/ou monographie)."
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr ""
-msgid "manager.statistics.reports.filters.byObject.description"
-msgstr "Limiter les résultats selon le type d'objet (presse, série, monographie, type de fichier) et/ou selon une ou plusieurs identification d'objet."
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr ""
-msgid "manager.setup.editorialProcess3"
-msgstr "L'éditeur en chef est en charge des soumissions en attente, de la révision des soumissions et de la table des matières, tandis que les éditeurs de section sont en charge de l'examen des soumissions."
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr ""
-msgid "manager.setup.appearanceDescription"
-msgstr "Différentes composantes de l'apparence de la presse peuvent être configurées à partir de cette page, y compris des éléments de l'en-tête et du pied de page, le style et le thème de la presse, et la manière dont les listes de renseignements sont présentées aux utilisateurs."
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr ""
-msgid "manager.setup.homepageContentDescription"
-msgstr "La page d'accueil de la presse est constituée de liens de navigation par défaut. Vous pouvez ajouter du contenu à la page d'accueil à l'aide d'une ou plusieurs des options suivantes, qui apparaitront dans l'ordre montré à l'écran."
+msgid "grid.series.urlWillBe"
+msgstr ""
-msgid "manager.setup.layout"
-msgstr "Mise en page de la presse"
+msgid "stats.contextStats"
+msgstr ""
-msgid "manager.setup.internalReviewGuidelines"
-msgstr "Lignes directrices concernant l'examen interne"
+msgid "stats.context.tooltip.text"
+msgstr ""
-msgid "manager.setup.internalReviewGuidelinesDescription"
-msgstr "Tout comme dans le cas des lignes directrices concernant l'examen externe, ces instructions contiennent des renseignements qui permettront aux utilisateurs d'évaluer la soumission. Ces instructions s'adressent aux examinateurs internes, qui mènent généralement un processus d'examen en faisant appel aux examinateurs internes de cette presse."
+msgid "stats.context.tooltip.label"
+msgstr ""
-msgid "manager.setup.reviewOptions"
-msgstr "Options d'examen"
+msgid "stats.context.downloadReport.description"
+msgstr ""
-msgid "manager.setup.useStyleSheet"
-msgstr "Feuille de style de la presse"
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr ""
-msgid "manager.setup.registerForIndexing"
-msgstr "Inscription de la presse pour l'indexage (collecte de métadonnées)"
+msgid "stats.context.downloadReport.downloadContext"
+msgstr ""
-msgid "manager.publication.library"
-msgstr "Bibliothèque de la presse"
+msgid "stats.publications.downloadReport.description"
+msgstr ""
-msgid "manager.setup.registerForIndexingDescription"
+msgid "stats.publications.downloadReport.downloadSubmissions"
msgstr ""
-"Pour que le contenu de cette presse soit indexé dans un système de base de données de recherche distribué à l'échelle mondiale, inscrivez l'adresse URL de votre presse avec les métadonnées du récolteur du Public Knowledge Project (PKP). Cet outil recueille les métadonnées de chaque item indexé dans cette presse, permettant ainsi une recherche précise et collective parmi les sites de recherche inscrits au protocole Open Archives Initiative pour la cueillette des métadonnées.\n"
-"
\n"
-"\n"
-"Veuillez noter que si l'administrateur de votre site a déjà inscrit ce site auprès du récolteur PKP, votre presse sera indexée automatiquement et vous n'avez pas à inscrire votre presse.\n"
-"
\n"
-"Cliquez ici et entrez {$siteUrl} sous l'URL du site, et {$oaiUrl} sous la base URL pour les archives OAI ."
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr ""
+
+msgid "stats.publicationStats"
+msgstr ""
+
+msgid "stats.publications.details"
+msgstr ""
+
+msgid "stats.publications.none"
+msgstr ""
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr ""
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr ""
+
+msgid "stats.publications.countOfTotal"
+msgstr ""
+
+msgid "stats.publications.abstracts"
+msgstr ""
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr ""
+
+msgid "plugins.importexport.common.error.validation"
+msgstr ""
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr ""
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr ""
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr ""
+
+msgid ""
+"manager.setup.notifications.copySubmissionAckPrimaryContact.disabled."
+"description"
+msgstr ""
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr ""
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr ""
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr ""
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr ""
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr ""
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr ""
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr ""
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr ""
+
+msgid "mailable.validateEmailContext.name"
+msgstr ""
+
+msgid "mailable.validateEmailContext.description"
+msgstr ""
+
+msgid "doi.displayName"
+msgstr ""
+
+msgid "doi.manager.displayName"
+msgstr ""
+
+msgid "doi.description"
+msgstr ""
+
+msgid "doi.readerDisplayName"
+msgstr ""
+
+msgid "doi.manager.settings.description"
+msgstr ""
+
+msgid "doi.manager.settings.explainDois"
+msgstr ""
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr ""
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr ""
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr ""
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr ""
+
+msgid "doi.manager.settings.doiPrefix"
+msgstr ""
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr ""
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr ""
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr ""
+
+msgid "doi.manager.settings.doiReassign"
+msgstr ""
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr ""
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr ""
+
+msgid "doi.editor.doi"
+msgstr ""
+
+msgid "doi.editor.doi.description"
+msgstr ""
+
+msgid "doi.editor.doi.assignDoi"
+msgstr ""
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr ""
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr ""
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr ""
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr ""
+
+msgid "doi.editor.customSuffixMissing"
+msgstr ""
+
+msgid "doi.editor.missingParts"
+msgstr ""
+
+msgid "doi.editor.patternNotResolved"
+msgstr ""
+
+msgid "doi.editor.canBeAssigned"
+msgstr ""
+
+msgid "doi.editor.assigned"
+msgstr ""
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr ""
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr ""
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr ""
+
+msgid "doi.editor.assignDoi"
+msgstr ""
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr ""
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr ""
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr ""
+
+msgid "doi.editor.missingPrefix"
+msgstr ""
+
+msgid "doi.editor.preview.publication"
+msgstr ""
+
+msgid "doi.editor.preview.publication.none"
+msgstr ""
+
+msgid "doi.editor.preview.chapters"
+msgstr ""
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr ""
+
+msgid "doi.editor.preview.files"
+msgstr ""
+
+msgid "doi.editor.preview.objects"
+msgstr ""
+
+msgid "doi.manager.submissionDois"
+msgstr ""
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr ""
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr ""
+
+msgid "manager.institutions.noContext"
+msgstr ""
+
+msgid "manager.manageEmails.description"
+msgstr ""
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr ""
+
+msgid "mailable.indexRequest.name"
+msgstr ""
+
+msgid "mailable.indexComplete.name"
+msgstr ""
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr ""
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr ""
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+
+#~ msgid "manager.languages.languageInstructions"
+#~ msgstr ""
+#~ "Les utilisateurs peuvent utiliser différentes langues dans OMP. De plus, "
+#~ "OMP peut être multilingue: les utilisateurs peuvent basculer d'une langue "
+#~ "à l'autre sur chaque page et ils peuvent saisir les données dans "
+#~ "différentes langues.
Si une langue prise en charge par OMP "
+#~ "n'apparait dans la liste, demandez à l'administrateur du site d'installer "
+#~ "la langue à partir de l'interface d'administration du site. La "
+#~ "documentation d'OMP contient des instructions sur la prise en charge de "
+#~ "nouvelles langues."
+
+#~ msgid "manager.series.noSeriesEditors"
+#~ msgstr ""
+#~ "Aucun rédacteur en chef n'a été choisi pour cette série. Assignez ce rôle "
+#~ "à au moins un utilisateur en choisissant Gestion > Paramètres > "
+#~ "Utilisateurs & Rôles."
+
+#~ msgid "manager.series.noCategories"
+#~ msgstr ""
+#~ "Il n'y a pas encore de catégories. Si vous souhaitez assigner des "
+#~ "catégories à cette série, fermez ce modal et cliquez sur l'onglet "
+#~ "\"Catégories\", puis créez une catégorie."
+
+#~ msgid "manager.people.existingUserRequired"
+#~ msgstr "Vous devez choisir un utilisateur actuel."
+
+#~ msgid "settings.roles.gridDescription"
+#~ msgstr ""
+#~ "Les rôles représentent des groupes d'utilisateurs de la presse à qui l'on "
+#~ "a donné accès à différents niveaux d'autorisation et de flux de travaux "
+#~ "au sein de la presse. Il existe cinq niveaux d'autorisation: les "
+#~ "directeurs de la presse ont accès à tout le contenu de la presse (contenu "
+#~ "et paramètres); les rédacteurs en chef de la presse ont accès à tout le "
+#~ "contenu de leur série; les adjoints de presse ont accès à toutes les "
+#~ "monographies leur ayant été explicitement assignées par un rédacteur en "
+#~ "chef; les évaluateurs peuvent visionner et effectuer les évaluations leur "
+#~ "ayant été assignées; et les auteurs peuvent visionner et interagir avec "
+#~ "un nombre restreint de renseignements concernant leurs soumissions. De "
+#~ "plus, les tâches sont divisées en cinq étapes auxquelles les rôles "
+#~ "peuvent avoir accès:\n"
+#~ "Soumission, Évaluation interne, Évaluation externe, Rédaction et "
+#~ "Production."
+
+#~ msgid "manager.setup.addContributor"
+#~ msgstr "Ajouter un contributeur"
+
+#~ msgid "manager.setup.additionalContent"
+#~ msgstr "Contenu supplémentaire"
+
+#~ msgid "manager.setup.additionalContentDescription"
+#~ msgstr ""
+#~ "Ajouter le contenu suivant en utilisant le format texte/HTML. Il "
+#~ "s'affichera sous l'image de la page d'accueil, si une telle page a été "
+#~ "téléchargée."
+
+#~ msgid "manager.setup.alternateHeader"
+#~ msgstr "En-tête secondaire"
+
+#~ msgid "manager.setup.alternateHeaderDescription"
+#~ msgstr ""
+#~ "Au lieu d'un titre ou d'un logo, la version HTML de l'en-tête peut être "
+#~ "insérée dans la zone de texte ci-dessous. Laissez cette zone vide si vous "
+#~ "n'en avez pas besoin."
+
+#~ msgid "manager.setup.authorCopyrightNotice"
+#~ msgstr "Avis de droit d'auteur"
+
+#~ msgid "manager.setup.authorCopyrightNoticeAgree"
+#~ msgstr ""
+#~ "Le processus de soumission exige que les auteurs souscrivent à l'avis de "
+#~ "droit d'auteur."
+
+#~ msgid "manager.setup.authorCopyrightNotice.description"
+#~ msgstr ""
+#~ "L'avis de droit d'auteur saisi ci-dessous s'affichera dans À propos de "
+#~ "cette presse et dans les métadonnées de chaque article publié. Bien qu'il "
+#~ "en revienne à la presse d'établir la nature de son avis de droit "
+#~ "d'auteur, le Public Knowledge Project recommande d'utiliser la licence Creative Commons. À cette fin, on fournit un modèle suggérant la formulation de l'avis de droit d'auteur qui "
+#~ "peut être copié-collé dans l'espace ci-dessous par les presses qui (a) "
+#~ "offrent l'accès libre, (b), offrent l'accès libre différé, ou (c) "
+#~ "n'offrent pas l'accès libre."
+
+#~ msgid "manager.setup.authorGuidelines.description"
+#~ msgstr ""
+#~ "Énoncer les normes bibliographiques et d'édition que les auteurs doivent "
+#~ "utiliser lorsqu'ils soumettent un article à la presse (ex: manuel "
+#~ "d'édition de l'American Psychological Association, 5e édition, "
+#~ "2001). Il est souvent utile de fournir des exemples des styles de "
+#~ "citation couramment utilisés par les presses et les livres et qui doivent "
+#~ "être utilisés dans les soumissions."
+
+#~ msgid "manager.setup.contributor"
+#~ msgstr "Contributeur"
+
+#~ msgid "manager.setup.contributors"
+#~ msgstr "Sources de financement"
+
+#~ msgid "manager.setup.contributors.description"
+#~ msgstr ""
+#~ "Les noms des agences ou organismes qui fournissent une aide financière ou "
+#~ "en nature à la presse apparaitront dans la section À propos de cette "
+#~ "presse et pourraient être accompagnés d'un mot de remerciement."
+
+#~ msgid "manager.setup.doiPrefix"
+#~ msgstr "Préfixe DOI"
+
+#~ msgid "manager.setup.doiPrefixDescription"
+#~ msgstr ""
+#~ "Le préfixe DOI (Digital Object Identifier) est assigné par CrossRef sous le format "
+#~ "10.xxxx (ex.: 10.1234)."
+
+#~ msgid "manager.setup.emailSignatureDescription"
+#~ msgstr ""
+#~ "Les courriels distribués par le système au nom de la presse contiendront "
+#~ "le bloc-signature suivant à la fin du message. Le contenu des courriels "
+#~ "peut être modifié dans la section ci-dessous."
+
+#~ msgid "manager.setup.homepageImage"
+#~ msgstr "Image de la page d'accueil"
+
+#~ msgid "manager.setup.homepageImageDescription"
+#~ msgstr ""
+#~ "Ajouter un fichier image ou graphique au milieu de la page. Si vous "
+#~ "utilisez le modèle et CSS par défaut, l'image peut être d'une largeur "
+#~ "maximale de 750 px pour une configuration avec une barre des menus "
+#~ "verticale, ou de 540 px pour une configuration avec deux barres des menus "
+#~ "verticales. Si vous utilisez un modèle ou CSS personnalisé, ces valeurs "
+#~ "pourraient varier."
+
+#~ msgid "manager.setup.mailingAddress.description"
+#~ msgstr "L'emplacement physique et l'adresse postale de la presse."
+
+#~ msgid "manager.setup.notifications"
+#~ msgstr "Avis de soumission d'un auteur"
+
+#~ msgid "manager.setup.notifications.copySpecifiedAddress"
+#~ msgstr "Envoyer une copie à cette adresse courriel:"
+
+#~ msgid "manager.setup.notifications.description"
+#~ msgstr ""
+#~ "Lorsque le processus de soumission est terminé, les auteurs reçoivent "
+#~ "automatiquement un accusé de réception par courriel (qui peut être "
+#~ "visionné et modifié dans la section Courriels préparés). De plus, une "
+#~ "copie de l'accusé de réception peut être envoyée ainsi:"
+
+#~ msgid "manager.setup.openAccess"
+#~ msgstr "La presse fournit l'accès libre à son contenu."
+
+#~ msgid "manager.setup.openAccessPolicy"
+#~ msgstr "Politique de libre accès"
+
+#~ msgid "manager.setup.openAccessPolicy.description"
+#~ msgstr ""
+#~ "Si la presse permet aux lecteurs d'accéder immédiatement et librement à "
+#~ "tout le contenu qu'elle a publié, veuillez ajouter la Politique de libre "
+#~ "accès qui s'affichera dans la section À propos de cette presse, sous la "
+#~ "rubrique Politiques."
+
+#~ msgid "manager.setup.peerReview.description"
+#~ msgstr ""
+#~ "Présentez les grandes lignes de la politique et du processus d'évaluation "
+#~ "par les pairs pour les lecteurs et les auteurs, y compris le nombre "
+#~ "d'évaluateurs auquel on fait normalement appel pour évaluer une "
+#~ "soumission, les critères utilisés par les évaluateurs pour évaluer les "
+#~ "soumissions, les délais habituels pour mener les évaluations et les "
+#~ "principes de recrutement des évaluateurs. Ces renseignements "
+#~ "s'afficheront dans la section À propos de cette presse."
+
+#~ msgid "manager.setup.pageFooter"
+#~ msgstr "Bas de page de la presse"
+
+#~ msgid "manager.setup.pageFooterDescription"
+#~ msgstr ""
+#~ "Voici le bas de page de votre presse. Pour modifier ou mettre à jour le "
+#~ "bas de page, copiez-collez le code HTML dans la zone d'entrée de texte ci-"
+#~ "dessous. Vous pourriez par exemple ajouter une autre barre de navigation "
+#~ "ou un compteur. Ce bas de page apparaitra sur chaque page."
+
+#~ msgid "manager.setup.principalContact"
+#~ msgstr "Principale personne-ressource"
+
+#~ msgid "manager.setup.principalContactDescription"
+#~ msgstr ""
+#~ "Cet individu peut être rédacteur principal, rédacteur en chef, directeur "
+#~ "de la publication ou employé administratif, et son nom apparaitra sur la "
+#~ "page d'accueil de la presse dans la section Pour nous contacter, avec le "
+#~ "nom du responsable du soutien technique."
+
+#~ msgid "manager.setup.privacyStatement"
+#~ msgstr "Énoncé de confidentialité"
+
+#~ msgid "manager.setup.privacyStatement2"
+#~ msgstr "Énoncé de confidentialité"
+
+#~ msgid "manager.setup.privacyStatement.description"
+#~ msgstr ""
+#~ "Cet énoncé s'affichera sur la page À propos de cette presse, ainsi que "
+#~ "sur les pages d'inscription pour soumettre un article ou recevoir des "
+#~ "notifications. Voici un énoncé de confidentialité proposé, qui peut être "
+#~ "modifié en tout temps."
+
+#~ msgid "manager.setup.reviewOptions.noteOnModification"
+#~ msgstr ""
+#~ "Ces valeurs par défaut peuvent être modifiées pour toute les soumissions "
+#~ "tout au long du processus éditorial."
+
+#~ msgid "manager.setup.reviewOptions.reviewTime"
+#~ msgstr "Délai d'évaluation"
+
+#~ msgid "manager.setup.sponsors.description"
+#~ msgstr ""
+#~ "Les noms des organismes (ex.: associations universitaires, départements "
+#~ "universitaires, coopératives, etc.) qui parrainent la presse apparaitront "
+#~ "dans la section À propos de cette presse et peuvent être accompagnés "
+#~ "d'une note de remerciement."
+
+#~ msgid "manager.setup.technicalSupportContact"
+#~ msgstr "Support technique"
+
+#~ msgid "manager.setup.technicalSupportContactDescription"
+#~ msgstr ""
+#~ "Le nom de cette personne sera ajouté à la page Contactez-nous pour les "
+#~ "rédacteurs, auteurs et évaluateurs. Cette personne devrait bien connaitre "
+#~ "le système et être en mesure de travailler sous les angles respectifs de "
+#~ "tous les utilisateurs. Ce système exige peu de soutien technique, alors "
+#~ "il s'agit d'un poste à temps partiel. Par exemple, il est possible qu'à "
+#~ "l'occasion, les auteurs et les évaluateurs éprouvent des difficultés avec "
+#~ "les instructions ou les formats de fichiers, ou qu'il soit nécessaire de "
+#~ "s'assurer que la presse est sauvegardée régulièrement sur le serveur."
+
+#~ msgid "manager.setup.useImageLogo"
+#~ msgstr "Logo de la presse"
+
+#~ msgid "manager.setup.useImageLogoDescription"
+#~ msgstr ""
+#~ "Il est possible de télécharger le logo de la presse et de l'utiliser avec "
+#~ "la version graphique ou textuelle du titre configuré ci-dessus."
+
+#~ msgid "manager.setup.registerPressForIndexing"
+#~ msgstr "Enregistrer une presse pour l'indexage (collecte de métadonnées)"
+
+#~ msgid "manager.setup.logo"
+#~ msgstr "Logo de la presse"
+
+#~ msgid "manager.setup.logo.altText"
+#~ msgstr "Logo de la presse"
+
+#~ msgid "manager.setup.editorialProcess3"
+#~ msgstr ""
+#~ "L'éditeur en chef est en charge des soumissions en attente, de la "
+#~ "révision des soumissions et de la table des matières, tandis que les "
+#~ "éditeurs de section sont en charge de l'examen des soumissions."
+
+#~ msgid "manager.setup.internalReviewGuidelinesDescription"
+#~ msgstr ""
+#~ "Tout comme dans le cas des lignes directrices concernant l'examen "
+#~ "externe, ces instructions contiennent des renseignements qui permettront "
+#~ "aux utilisateurs d'évaluer la soumission. Ces instructions s'adressent "
+#~ "aux examinateurs internes, qui mènent généralement un processus d'examen "
+#~ "en faisant appel aux examinateurs internes de cette presse."
+
+#~ msgid "manager.setup.registerForIndexing"
+#~ msgstr "Inscription de la presse pour l'indexage (collecte de métadonnées)"
+
+#~ msgid "manager.setup.registerForIndexingDescription"
+#~ msgstr ""
+#~ "Pour que le contenu de cette presse soit indexé dans un système de base "
+#~ "de données de recherche distribué à l'échelle mondiale, inscrivez l'adresse "
+#~ "URL de votre presse avec les métadonnées du récolteur du Public Knowledge Project "
+#~ "(PKP). Cet outil recueille les métadonnées de chaque item indexé dans "
+#~ "cette presse, permettant ainsi une recherche précise et collective parmi "
+#~ "les sites de recherche inscrits au protocole "
+#~ "Open Archives Initiative pour la cueillette des métadonnées.\n"
+#~ "
\n"
+#~ "\n"
+#~ "Veuillez noter que si l'administrateur de votre site a déjà inscrit ce "
+#~ "site auprès du récolteur PKP, votre presse sera indexée automatiquement "
+#~ "et vous n'avez pas à inscrire votre presse.\n"
+#~ "
\n"
+#~ "Cliquez "
+#~ "ici et entrez {$siteUrl} sous "
+#~ "l'URL du site, et {$oaiUrl}"
+#~ "span> sous la base URL pour les archives OAI ."
diff --git a/locale/fr_CA/submission.po b/locale/fr_CA/submission.po
index 54ddaf5bf2c..df41b98baea 100644
--- a/locale/fr_CA/submission.po
+++ b/locale/fr_CA/submission.po
@@ -2,14 +2,20 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
+"PO-Revision-Date: 2019-09-30T06:23: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"
-"POT-Creation-Date: 2019-09-30T06:23:44-07:00\n"
-"PO-Revision-Date: 2019-09-30T06:23:44-07:00\n"
-"Language: \n"
+
+msgid "submission.upload.selectComponent"
+msgstr ""
+
+msgid "submission.title"
+msgstr "Titre du livre"
msgid "submission.select"
msgstr "Choisir une soumission"
@@ -21,7 +27,13 @@ msgid "submission.workflowType"
msgstr "Type de livre"
msgid "submission.workflowType.description"
-msgstr "Une monographie est un ouvrage écrit par un ou plusieurs auteurs. Un volume édité est un livre dont les chapitres ont été écrits par différents auteurs (les renseignements sur les chapitres sont ajoutés plus tard)."
+msgstr ""
+"Une monographie est un ouvrage écrit par un ou plusieurs auteurs. Un volume "
+"édité est un livre dont les chapitres ont été écrits par différents auteurs "
+"(les renseignements sur les chapitres sont ajoutés plus tard)."
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr ""
msgid "submission.workflowType.editedVolume"
msgstr "Volume édité"
@@ -29,6 +41,12 @@ msgstr "Volume édité"
msgid "submission.workflowType.authoredWork"
msgstr "Monographie"
+msgid "submission.workflowType.change"
+msgstr ""
+
+msgid "submission.editorName"
+msgstr ""
+
msgid "submission.monograph"
msgstr "Monographie"
@@ -38,6 +56,9 @@ msgstr "Prêt pour la production"
msgid "submission.fairCopy"
msgstr "Copie au net"
+msgid "submission.authorListSeparator"
+msgstr ""
+
msgid "submission.artwork.permissions"
msgstr "Permissions"
@@ -47,15 +68,15 @@ msgstr "Chapitre"
msgid "submission.chapters"
msgstr "Chapitres"
-msgid "submission.chaptersDescription"
-msgstr "Vous pouvez ajouter la liste des chapitres ici et assigner des contributeurs à la liste des contributeurs ci-dessus. Ces contributeurs auront accès au chapitre pendant différentes étapes du processus de publication."
-
msgid "submission.chapter.addChapter"
msgstr "Ajouter un chapitre"
msgid "submission.chapter.editChapter"
msgstr "Modifier un chapitre"
+msgid "submission.chapter.pages"
+msgstr ""
+
msgid "submission.copyedit"
msgstr "Réviser"
@@ -83,9 +104,6 @@ msgstr "En cours d'évaluation"
msgid "manuscript.submissions"
msgstr "Manuscrits soumis"
-msgid "submission.confirmSubmit"
-msgstr "Vous souhaitez soumettre ce manuscrit à la presse?"
-
msgid "submission.metadata"
msgstr "Métadonnées"
@@ -113,23 +131,17 @@ msgstr "Commencer une nouvelle soumission"
msgid "submission.submit.upload"
msgstr "Télécharger"
-msgid "submission.submit.upload.description"
-msgstr "Les fichiers téléchargés associés à cette soumision, y compris le manuscrit, le prospectus, la lettre de présentation, les illustrations, etc. Pour les volumes édités, ainsi que pour les monographies, téléchargez le manuscrit en un seul fichier, si possible."
-
-msgid "submission.submit.cancelSubmission"
-msgstr "Vous pouvez compléter cette soumission plus tard. Il suffit de sélectionner Soumissions actives à partir de la page Auteur."
-
-msgid "submission.submit.copyrightNoticeAgree"
-msgstr "J'accepte de respecter les conditions stipulées dans l'énonce concernant le droit d'auteur."
+msgid "author.volumeEditor"
+msgstr ""
-msgid "submission.submit.selectSeries"
-msgstr "Choisir une série..."
+msgid "author.isVolumeEditor"
+msgstr ""
msgid "submission.submit.seriesPosition"
msgstr "Position dans cette série (ex: livre 2 ou Volume 2)"
-msgid "submission.submit.form.localeRequired"
-msgstr "Veuillez choisir une langue pour la soumission."
+msgid "submission.submit.seriesPosition.description"
+msgstr ""
msgid "submission.submit.privacyStatement"
msgstr "Énoncé de confidentialité"
@@ -137,21 +149,6 @@ msgstr "Énoncé de confidentialité"
msgid "submission.submit.contributorRole"
msgstr "Rôle du contributeur"
-msgid "submission.submit.form.authorRequired"
-msgstr "Il faut ajouter au moins un auteur."
-
-msgid "submission.submit.form.authorRequiredFields"
-msgstr "Vous devez indiquer le prénom, le nom de famille et l'adresse courriel de chaque auteur."
-
-msgid "submission.submit.form.titleRequired"
-msgstr "Veuillez saisir le titre de votre monographie."
-
-msgid "submission.submit.form.abstractRequired"
-msgstr "Veuillez saisir un bref résumé de votre monographie."
-
-msgid "submission.submit.form.contributorRoleRequired"
-msgstr "Veuillez sélectionner le rôle du contributeur."
-
msgid "submission.submit.submissionFile"
msgstr "Fichier de soumission"
@@ -167,6 +164,9 @@ msgstr "Métadonnées"
msgid "submission.submit.finishingUp"
msgstr "Terminer"
+msgid "submission.submit.confirmation"
+msgstr ""
+
msgid "submission.submit.nextSteps"
msgstr "Prochaines étapes"
@@ -177,31 +177,24 @@ msgid "submission.submit.generalInformation"
msgstr "Renseignements généraux"
msgid "submission.submit.whatNext.description"
-msgstr "La presse a été informée de votre soumission et un accusé de réception vous a été envoyé par courriel. Lorsque le rédacteur en chef aura évalué votre soumission, il entrera en contact avec vous."
+msgstr ""
+"La presse a été informée de votre soumission et un accusé de réception vous "
+"a été envoyé par courriel. Lorsque le rédacteur en chef aura évalué votre "
+"soumission, il entrera en contact avec vous."
msgid "submission.submit.checklistErrors"
-msgstr "Veuillez lire et cocher les éléments sur votre liste de vérification. {$itemsRemaining} éléments n'ont pas été cochés."
+msgstr ""
+"Veuillez lire et cocher les éléments sur votre liste de vérification. "
+"{$itemsRemaining} éléments n'ont pas été cochés."
msgid "submission.submit.placement"
msgstr "Place de la soumission"
-msgid "submission.submit.placement.seriesDescription"
-msgstr "Si le livre pourrait aussi faire partie d'une série..."
-
-msgid "submission.submit.placement.seriesPositionDescription"
-msgstr "Les livres d'une série sont généralement conservés dans l'ordre inverse de celui dans lequel ils sont publiés. Ainsi, on montre que la série progresse et les articles les plus récents apparaissent au début."
-
msgid "submission.submit.userGroup"
msgstr "Soumettre selon mon rôle à titre de..."
-msgid "submission.submit.userGroupDescription"
-msgstr "S'il s'agit d'un volume édité, vous devriez choisir le rôle de rédacteur en chef du volume."
-
-msgid "submission.submit.titleAndSummary"
-msgstr "Titre et sommaire"
-
-msgid "submission.upload.selectBookElement"
-msgstr "Choisir un élément du livre"
+msgid "submission.submit.noContext"
+msgstr ""
msgid "grid.chapters.title"
msgstr "Chapitres"
@@ -209,8 +202,11 @@ msgstr "Chapitres"
msgid "grid.copyediting.deleteCopyeditorResponse"
msgstr "Supprimer le téléchargement du réviseur"
-msgid "publication.catalogEntry"
-msgstr "Catalogue"
+msgid "submission.complete"
+msgstr ""
+
+msgid "submission.incomplete"
+msgstr ""
msgid "submission.editCatalogEntry"
msgstr "Entrée"
@@ -218,15 +214,39 @@ msgstr "Entrée"
msgid "submission.catalogEntry.new"
msgstr "Nouvelle entrée de catalogue"
+msgid "submission.catalogEntry.add"
+msgstr ""
+
+msgid "submission.catalogEntry.select"
+msgstr ""
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr ""
+
msgid "submission.catalogEntry.confirm"
-msgstr "Créer une entrée de catalogue pour ce livre en fonction des métadonnées ci-dessous."
+msgstr ""
+"Créer une entrée de catalogue pour ce livre en fonction des métadonnées ci-"
+"dessous."
msgid "submission.catalogEntry.confirm.required"
-msgstr "Veuillez confirmer que la soumission est prête à être ajoutée au catalogue."
+msgstr ""
+"Veuillez confirmer que la soumission est prête à être ajoutée au catalogue."
msgid "submission.catalogEntry.isAvailable"
msgstr "Cette monographie est prête à être ajoutée au catalogue public."
+msgid "submission.catalogEntry.viewSubmission"
+msgstr ""
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr ""
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr ""
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr ""
+
msgid "submission.catalogEntry.monographMetadata"
msgstr "Monographie"
@@ -237,7 +257,8 @@ msgid "submission.catalogEntry.publicationMetadata"
msgstr "Format de publication"
msgid "submission.event.metadataPublished"
-msgstr "Les métadonnées de la monographie ont été approuvées pour la publication."
+msgstr ""
+"Les métadonnées de la monographie ont été approuvées pour la publication."
msgid "submission.event.metadataUnpublished"
msgstr "Les métadonnées de la monographie ne sont plus publiées."
@@ -246,19 +267,25 @@ msgid "submission.event.publicationFormatMadeAvailable"
msgstr "Le format de publication \"{$publicationFormatName}\" est disponible."
msgid "submission.event.publicationFormatMadeUnavailable"
-msgstr "Le format de publication \"{$publicationFormatName}\" n'est plus disponible."
+msgstr ""
+"Le format de publication \"{$publicationFormatName}\" n'est plus disponible."
msgid "submission.event.publicationFormatPublished"
-msgstr "Le format de publication \"{$publicationFormatName}\" a été approuvé pour publication."
+msgstr ""
+"Le format de publication \"{$publicationFormatName}\" a été approuvé pour "
+"publication."
msgid "submission.event.publicationFormatUnpublished"
-msgstr "Le format de publication \"{$publicationFormatName}\" n'est plus publié."
+msgstr ""
+"Le format de publication \"{$publicationFormatName}\" n'est plus publié."
msgid "submission.event.catalogMetadataUpdated"
msgstr "Les métadonnées du catalogue ont été mises à jour."
msgid "submission.event.publicationMetadataUpdated"
-msgstr "Les métadonnées du format de publication pour \"{$formatName}\" ont été mises à jour."
+msgstr ""
+"Les métadonnées du format de publication pour \"{$formatName}\" ont été "
+"mises à jour."
msgid "submission.event.publicationFormatCreated"
msgstr "Le format de publication \"{$formatName}\" a été créé."
@@ -266,14 +293,74 @@ msgstr "Le format de publication \"{$formatName}\" a été créé."
msgid "submission.event.publicationFormatRemoved"
msgstr "Le format de publication \"{$formatName}\" a été supprimé."
-msgid "submission.submit.title"
-msgstr "Soumettre une monographie"
+msgid "editor.submission.decision.sendExternalReview"
+msgstr ""
-msgid "submission.title"
-msgstr "Titre du livre"
+msgid "workflow.review.externalReview"
+msgstr ""
+
+msgid "submission.upload.fileContents"
+msgstr ""
+
+msgid "submission.dependentFiles"
+msgstr ""
+
+msgid "submission.metadataDescription"
+msgstr ""
+
+msgid "section.any"
+msgstr ""
+
+msgid "submission.list.monographs"
+msgstr ""
+
+msgid "submission.list.countMonographs"
+msgstr ""
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr ""
+
+msgid "submission.list.orderFeatures"
+msgstr ""
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+
+msgid "submission.list.saveFeatureOrder"
+msgstr ""
+
+msgid "submission.list.viewEntry"
+msgstr ""
+
+msgid "catalog.browseTitles"
+msgstr ""
+
+msgid "publication.catalogEntry"
+msgstr "Catalogue"
+
+msgid "publication.catalogEntry.success"
+msgstr ""
+
+msgid "publication.invalidSeries"
+msgstr ""
+
+msgid "publication.inactiveSeries"
+msgstr ""
+
+msgid "publication.required.issue"
+msgstr ""
+
+msgid "publication.publishedIn"
+msgstr ""
+
+msgid "publication.publish.confirmation"
+msgstr ""
-msgid "submission.submit.confirmExpedite"
-msgstr "Confirmer les métadonnées pour une soumission accélérée"
+msgid "publication.scheduledIn"
+msgstr ""
msgid "submission.publication"
msgstr "Publication"
@@ -375,5 +462,152 @@ msgstr "Renseignements de publication pour la version {$version}"
msgid "submission.queries.production"
msgstr "Discussions sur la production"
-msgid "submission.editorName"
-msgstr "{$editorName} (ed.)"
+msgid "publication.chapter.landingPage"
+msgstr ""
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+
+msgid "publication.publish.success"
+msgstr ""
+
+msgid "chapter.volume"
+msgstr ""
+
+msgid "submission.withoutChapter"
+msgstr ""
+
+msgid "submission.chapterCreated"
+msgstr ""
+
+msgid "chapter.pages"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+
+msgid "publication.chapter.licenseUrl"
+msgstr ""
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr ""
+
+msgid "submission.copyright.description"
+msgstr ""
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+
+msgid "submission.sectionNotFound"
+msgstr ""
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr ""
+
+msgid "submission.wizard.submitting.monograph"
+msgstr ""
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
+
+#~ msgid "submission.submit.upload.description"
+#~ msgstr ""
+#~ "Les fichiers téléchargés associés à cette soumision, y compris le "
+#~ "manuscrit, le prospectus, la lettre de présentation, les illustrations, "
+#~ "etc. Pour les volumes édités, ainsi que pour les monographies, "
+#~ "téléchargez le manuscrit en un seul fichier, si possible."
+
+#~ msgid "submission.submit.copyrightNoticeAgree"
+#~ msgstr ""
+#~ "J'accepte de respecter les conditions stipulées dans l'énonce concernant "
+#~ "le droit d'auteur."
+
+#~ msgid "submission.submit.placement.seriesDescription"
+#~ msgstr "Si le livre pourrait aussi faire partie d'une série..."
+
+#~ msgid "submission.submit.placement.seriesPositionDescription"
+#~ msgstr ""
+#~ "Les livres d'une série sont généralement conservés dans l'ordre inverse "
+#~ "de celui dans lequel ils sont publiés. Ainsi, on montre que la série "
+#~ "progresse et les articles les plus récents apparaissent au début."
+
+#~ msgid "submission.upload.selectBookElement"
+#~ msgstr "Choisir un élément du livre"
+
+#~ msgid "submission.submit.confirmExpedite"
+#~ msgstr "Confirmer les métadonnées pour une soumission accélérée"
diff --git a/locale/fr_FR/admin.po b/locale/fr_FR/admin.po
new file mode 100644
index 00000000000..10bb4b95440
--- /dev/null
+++ b/locale/fr_FR/admin.po
@@ -0,0 +1,211 @@
+# Weblate Admin , 2023.
+# Rudy Hahusseau , 2023.
+# Germán Huélamo Bautista , 2023, 2024.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2024-04-24 20:28+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
+"Language-Team: French "
+"\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 4.18.2\n"
+
+msgid "admin.hostedContexts"
+msgstr "Maisons d’édition hébergées"
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"NOTE!\n"
+"
Le système ne peut pas écraser automatiquement le fichier de "
+"configuration. Pour appliquer les modifications de configuration, vous devez "
+"ouvrir config.inc.php dans un éditeur de texte approprié et "
+"remplacer son contenu par le contenu de la zone de texte ci-dessous.
"
+
+msgid "admin.settings.config.success"
+msgstr "Les paramètres de configuration du site ont bien été mis à jour."
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"Les requêtes envoyées au site principal seront redirigées vers cette maison "
+"d’édition. Cela peut par exemple être utile si le site n’héberge qu’une "
+"seule maison d’édition."
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Sélectionnez tous les paramètres régionaux qui seront supportés sur le site. "
+"Les paramètres régionaux sélectionnés seront disponibles pour toutes les "
+"maisons d’édition installées sur le site et apparaîtront dans le menu de "
+"sélection de langue visible sur toutes les pages du site (lesquels peuvent "
+"être remplacés sur les pages d’une maison d’édition particulière). Si seul "
+"un paramètre régional est sélectionné, le menu de bascule de la langue n’"
+"apparaîtra pas et les maisons d’édition n’auront pas accès aux paramètres de "
+"langue étendus."
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+"Sélectionnez les maisons d’édition hébergées qui doivent être autorisées à "
+"effectuer des envois massifs de courriels. Lorsque cette fonctionnalité est "
+"activée, un·e gestionnaire peut envoyer un courriel à tous·tes les "
+"utilisateur·rice·s enregistrés auprès de sa maison d’édition. L’utilisation "
+"abusive de cette fonctionnalité pour envoyer des courriels non sollicités "
+"peut enfreindre les lois anti-spam dans certaines juridictions et entraîner "
+"le blocage des courriels envoyés depuis votre serveur en tant que courriers "
+"indésirables. Demandez un avis technique avant d’activer cette "
+"fonctionnalité et envisagez de consulter les responsables éditoriaux pour "
+"vous assurer qu’elle est utilisée de manière appropriée. D’autres "
+"restrictions de cette fonctionnalité peuvent être activées pour chaque "
+"maison d’édition en visitant son assistant de configuration dans la liste "
+"des Maisons d’édition hébergées."
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+"Sélectionnez le type de statistiques géographiques d’utilisation pouvant "
+"être collectées par les maisons d’édition sur ce site. Des statistiques "
+"géographiques plus détaillées peuvent augmenter considérablement la taille "
+"de votre base de données et, dans de rares cas, peuvent porter atteinte à l’"
+"anonymat de vos visiteurs. Chaque maison d’édition peut configurer ce "
+"paramètre différemment, mais une maison d’édition ne peut jamais collecter "
+"des enregistrements plus détaillés que ce qui est configuré ici. Par "
+"exemple, si le site ne prend en charge que le pays et la région, la maison d’"
+"édition peut sélectionner le pays et la région ou uniquement le pays. La "
+"maison d’édition ne pourra pas suivre le pays, la région et la ville."
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+"Rendre ou non les points de terminaison [endpoints] de l’API SUSHI "
+"accessibles publiquement pour toutes les maisons d’édition sur ce site. Si "
+"vous activez l’API publique, chaque maison d’édition peut remplacer ce "
+"paramètre pour rendre ses statistiques privées. Cependant, si vous "
+"désactivez l’API publique, les maisons d’édition ne peuvent pas rendre leur "
+"propre API publique."
+
+msgid "admin.settings.appearance.success"
+msgstr "Les paramètres d’apparence du site ont bien été mis à jour."
+
+msgid "admin.settings.info.success"
+msgstr "Les informations du site ont bien été mises à jour."
+
+msgid "admin.settings.redirect"
+msgstr "Redirection de la maison d’édition"
+
+msgid "admin.settings.noPressRedirect"
+msgstr "Ne pas rediriger"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr ""
+"Ceci sera la langue par défaut pour le site et les maisons d’édition "
+"hébergées."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "* Les paramètres régionaux marqués peuvent être incomplets."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"Voulez-vous vraiment désinstaller ce paramètre régional ? Cela pourrait "
+"affecter toutes les maisons d’édition hébergées qui l’utiliseraient "
+"actuellement."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Sélectionnez les autres paramètres régionaux que vous souhaitez installer "
+"sur ce système. Les paramètres régionaux doivent être installés avant de "
+"pouvoir être utilisés par les maisons d’édition hébergées. Consultez la "
+"documentation OMP pour plus d’informations sur l’ajout de support pour de "
+"nouvelles langues."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"Voulez-vous vraiment désactiver ce paramètre régional ? Cela pourrait "
+"affecter toutes les maisons d’édition hébergées qui l’utiliseraient "
+"actuellement."
+
+msgid "admin.systemVersion"
+msgstr "Version d’OMP"
+
+msgid "admin.systemConfiguration"
+msgstr "Configuration d’OMP"
+
+msgid "admin.presses.pressSettings"
+msgstr "Paramètres de la maison d’édition"
+
+msgid "admin.presses.noneCreated"
+msgstr "Aucune maison d’édition n’a été créée."
+
+msgid "admin.contexts.create"
+msgstr "Créer une maison d’édition"
+
+msgid "admin.contexts.form.titleRequired"
+msgstr "Un titre est requis."
+
+msgid "admin.contexts.form.pathRequired"
+msgstr "Un chemin est requis."
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+"Le chemin ne peut contenir que des caractères alphanumériques plus _ et -. "
+"Il doit commencer et se terminer par un caractère alphanumérique."
+
+msgid "admin.contexts.form.pathExists"
+msgstr "Le chemin choisi est déjà utilisé par une autre maison d’édition."
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr ""
+"Le paramètre régional principal doit être un de ceux pris en charge par la "
+"maison d’édition."
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} a bien été créé."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} a bien été modifié."
+
+msgid "admin.contexts.contextDescription"
+msgstr "Description de la maison d’édition"
+
+msgid "admin.presses.addPress"
+msgstr "Ajouter une maison d’édition"
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+"Un·e gestionnaire ne pourra pas effectuer d’envoi massif de courriels à l’un "
+"des rôles sélectionnés ci-dessous. Utilisez ce paramètre pour limiter les "
+"abus de la fonction de notification par courriel. Par exemple, il peut être "
+"plus sûr de désactiver l’envoi massif de courriels à des groupes "
+"d’utilisateur·rice·s qui n’ont pas consenti à recevoir de tels "
+"messages.
La fonction d’envoi massif de courriels peut être "
+"complètement désactivée pour cette maison d’édition dans Admin > Paramètres du site."
+
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
+"La fonctionnalité d’envoi massif de courriels a été désactivée pour cette "
+"maison d’édition. Activez cette fonctionnalité dans Admin > Paramètres du site."
+
+msgid "admin.siteManagement.description"
+msgstr ""
+"Ajouter, modifier ou supprimer des maisons d’édition de ce site et gérer les "
+"paramètres au niveau du site."
+
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr "L’ID du chapitre n’est pas un nombre entier"
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr "L’ID de la collection n’est pas un nombre entier"
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+"Activez les statistiques institutionnelles si vous souhaitez que les maisons "
+"d’édition de ce site puissent collecter des statistiques d’utilisation par "
+"établissement. Les maisons d’édition devront ajouter l’établissement et ses "
+"plages d’adresses IP afin d’utiliser cette fonctionnalité. L’activation des "
+"statistiques institutionnelles peut augmenter considérablement la taille de "
+"votre base de données."
+
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr ""
+"Utiliser ce site comme plateforme pour toutes les revues, tous les éditeurs."
diff --git a/locale/fr_FR/api.po b/locale/fr_FR/api.po
new file mode 100644
index 00000000000..642b8e830f9
--- /dev/null
+++ b/locale/fr_FR/api.po
@@ -0,0 +1,49 @@
+# Weblate Admin , 2023.
+# Rudy Hahusseau , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-06-24 08:49+0000\n"
+"Last-Translator: Rudy Hahusseau \n"
+"Language-Team: French \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 4.13.1\n"
+
+msgid "api.publications.403.submissionsDidNotMatch"
+msgstr ""
+"La publication que vous avez demandée ne fait pas partie de cette soumission."
+
+msgid "api.submissions.400.submissionIdsRequired"
+msgstr ""
+"Vous devez fournir un ou plusieurs identifiants de soumission à ajouter au "
+"catalogue."
+
+msgid "api.submissions.400.submissionsNotFound"
+msgstr ""
+"Une ou plusieurs soumissions que vous avez spécifiées n'ont pas pu être "
+"trouvées."
+
+msgid "api.submissions.400.wrongContext"
+msgstr "La soumission que vous avez demandée n'est pas dans cette presse."
+
+msgid "api.emails.403.disabled"
+msgstr ""
+"La fonctionnalité de notification par courriel n'a pas été activée pour "
+"cette presse."
+
+msgid "api.emailTemplates.403.notAllowedChangeContext"
+msgstr ""
+"Vous n'êtes pas autorisé à déplacer ce modèle d'e-mail vers une autre presse."
+
+msgid "api.publications.403.contextsDidNotMatch"
+msgstr ""
+"La publication que vous avez demandée ne fait pas partie de cette presse."
+
+msgid "api.submissions.403.cantChangeContext"
+msgstr "Vous ne pouvez pas changer la presse d'une soumission."
+
+msgid "api.submission.400.inactiveSection"
+msgstr "Cette section ne reçoit plus de soumissions."
diff --git a/locale/fr_FR/author.po b/locale/fr_FR/author.po
new file mode 100644
index 00000000000..55868b6ab7e
--- /dev/null
+++ b/locale/fr_FR/author.po
@@ -0,0 +1,21 @@
+# Weblate Admin , 2023.
+# Rudy Hahusseau , 2023.
+# Germán Huélamo Bautista , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-07-30 17:58+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
+"Language-Team: French \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 4.13.1\n"
+
+msgid "author.submit.notAccepting"
+msgstr "Cette maison d’édition n’accepte pas les soumissions pour le moment."
+
+msgid "author.submit"
+msgstr "Nouvelle soumission"
diff --git a/locale/fr_FR/default.po b/locale/fr_FR/default.po
new file mode 100644
index 00000000000..16709267612
--- /dev/null
+++ b/locale/fr_FR/default.po
@@ -0,0 +1,198 @@
+# Weblate Admin , 2023.
+# Rudy Hahusseau , 2023.
+# Germán Huélamo Bautista , 2023, 2024.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2024-07-25 17:06+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
+"Language-Team: French \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 4.18.2\n"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+"Les auteur·e·s sont invité·e·s à effectuer une soumission à cette maison "
+"d’édition. Les soumissions considérées comme adaptées seront envoyées pour "
+"évaluation par les pairs avant de déterminer si elles seront acceptées ou "
+"rejetées.
Avant de déposer une soumission, les auteur·e·s sont tenus d’"
+"obtenir l’autorisation de publier tout matériel inclus dans la soumission, "
+"tel que des photos, des documents et des ensembles de données. L'ensemble "
+"des auteur·e·s identifié·e·s dans la soumission doivent consentir à être "
+"identifié·e·s en tant qu’auteur·e·s. Le cas échéant, la recherche doit être "
+"approuvée par un comité d’éthique approprié conformément aux exigences "
+"légales du pays de l’étude.
Un·e éditeur·rice peut rejeter une "
+"proposition si elle ne répond pas aux normes minimales de qualité. Avant de "
+"soumettre une proposition, assurez-vous que le champ d’application et les "
+"grandes lignes de l’ouvrage sont structurés et articulés correctement. Le "
+"titre doit être concis et le résumé doit pouvoir se suffire à lui-même. Cela "
+"augmentera la probabilité que les évaluateur·rice·s acceptent d’évaluer l’"
+"ouvrage. Une fois que vous avez la certitude que votre soumission répond à "
+"ces critères, veuillez suivre la liste de contrôle ci-dessous pour préparer "
+"votre soumission.
"
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+"Toutes les soumissions doivent répondre aux exigences suivantes."
+"p>
- Cette soumission répond aux exigences décrites dans les Consignes aux auteur·e·s.
- Cette "
+"soumission n’a pas encore été publiée et n’est pas en cours d’examen par un "
+"autre éditeur.
- Toutes les références ont été vérifiées pour leur "
+"exactitude et leur exhaustivité.
- Tous les tableaux et figures ont "
+"été numérotés et nommés.
- Les permissions requises ont été obtenues "
+"pour publier toutes les photographies, ensembles de données et autres "
+"éléments fournis avec cette soumission.
"
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"Vous souhaitez soumettre une contribution à cette maison d’édition ? Nous "
+"vous recommandons de lire la page À propos de cette maison d’édition pour connaitre sa politique "
+"éditoriale ainsi que la page Consignes aux auteur·e·s. Les auteur·e·s "
+"doivent s’inscrire "
+"auprès de l’éditeur avant d’envoyer une soumission ou, s’ils sont déjà "
+"inscrits, simplement se connecter et "
+"débuter la procédure (en 5 étapes)."
+
+msgid "default.genres.bibliography"
+msgstr "Bibliographie"
+
+msgid "default.genres.manuscript"
+msgstr "Manuscrit de livre"
+
+msgid "default.genres.chapter"
+msgstr "Manuscrit de chapitre"
+
+msgid "default.genres.glossary"
+msgstr "Glossaire"
+
+msgid "default.genres.index"
+msgstr "Index"
+
+msgid "default.genres.preface"
+msgstr "Préface"
+
+msgid "default.genres.prospectus"
+msgstr "Plan"
+
+msgid "default.genres.table"
+msgstr "Tableau"
+
+msgid "default.genres.figure"
+msgstr "Figure"
+
+msgid "default.genres.photo"
+msgstr "Photographie"
+
+msgid "default.genres.illustration"
+msgstr "Illustration"
+
+msgid "default.genres.other"
+msgstr "Autre"
+
+msgid "default.groups.plural.manager"
+msgstr "Gestionnaires"
+
+msgid "default.groups.name.manager"
+msgstr "Gestionnaire"
+
+msgid "default.genres.appendix"
+msgstr "Annexes"
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Auteur·e du chapitre"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Auteur·e·s du chapitre"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "AC"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Directeur·rice d’ouvrage"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Directeur·rice·s d’ouvrage"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "DO"
+
+msgid "default.groups.abbrev.manager"
+msgstr "RP"
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"Les noms et adresses courriel saisis sur le site de cette maison d’"
+"édition seront utilisés exclusivement pour les fins convenues de celle-ci. "
+"Ils ne seront pas utilisés pour d’autres fins ou transmis à une tierce "
+"partie.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"Cette maison d’édition fournit l’accès libre immédiat à son contenu se "
+"basant sur le principe que rendre la recherche disponible au public "
+"gratuitement facilite un plus grand échange du savoir, à l’échelle de la "
+"planète."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"Nous encourageons les lecteur·rice·s à s’abonner au service de notification "
+"de cette maison d'édition. Utilisez le lien d’inscription situé en haut de la page d’accueil de "
+"cette maison d'édition. Cette inscription permet de recevoir par courriel la "
+"table des matières de chaque nouvelle publication de cette maison d'édition. "
+"Cette liste permet également à la maison d'édition de revendiquer un certain "
+"niveau de soutien ou de lectorat. Vous pouvez consulter la "
+"déclaration de confidentialité de la maison d'édition qui stipule que "
+"les noms et adresses courriel de ses lecteur·rice·s ne seront pas utilisés à "
+"d’autres fins."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Nous encourageons les personnels des bibliothèques de recherche à ajouter "
+"cet éditeur à la liste des ressources numériques de leurs bibliothèques. De "
+"plus, ce système de publication open source peut répondre aux besoins des "
+"bibliothèques souhaitant héberger une solution d’édition pour leurs "
+"chercheurs (voir Open Monograph Press)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Évaluateur·rice externe"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Évaluateur·rice·s externes"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "ÉvEx"
+
+msgid "default.groups.name.editor"
+msgstr "Responsable d'édition"
+
+msgid "default.groups.plural.editor"
+msgstr "Responsables d'édition"
+
+msgid "default.groups.abbrev.editor"
+msgstr "RE"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Responsable de collection"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Responsables de collection"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr "Responsable des abonnements"
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr "Responsables des abonnements"
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr "RespAB"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "EC"
diff --git a/locale/fr_FR/editor.po b/locale/fr_FR/editor.po
new file mode 100644
index 00000000000..62c4dce2d13
--- /dev/null
+++ b/locale/fr_FR/editor.po
@@ -0,0 +1,218 @@
+# Weblate Admin , 2023.
+# Germán Huélamo Bautista , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-09-07 16:58+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
+"Language-Team: French \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 4.13.1\n"
+
+msgid "editor.monograph.cancelReview"
+msgstr "Annuler la requête"
+
+msgid "editor.monograph.legend.submissionActionsDescription"
+msgstr "Actions et options globales de la soumission."
+
+msgid "editor.monograph.legend.itemActionsDescription"
+msgstr "Actions et options propres à un fichier individuel."
+
+msgid "editor.monograph.selectReviewerInstructions"
+msgstr ""
+"Choisissez un évaluateur·rice ci-dessus et cliquez sur le bouton « Choisir "
+"l’évaluateur·rice » pour continuer."
+
+msgid "editor.monograph.internalReviewDescription"
+msgstr ""
+"Vous entamez le processus d’évaluation interne de cette soumission. La liste "
+"des fichiers faisant partie de cette soumission est affichée ci-dessous. Ils "
+"peuvent être sélectionnés pour être révisés."
+
+msgid "editor.monograph.legend.participants"
+msgstr ""
+"Afficher et gérer les participants à cette soumission : auteur·e·s, "
+"responsables, designers, etc."
+
+msgid "editor.submission.introduction"
+msgstr ""
+"Lors de la soumission, l’éditeur ou l’éditrice, après avoir consulté les "
+"fichiers soumis, choisit l’action appropriée (qui inclut la notification à "
+"l’auteur·e) : Envoyer à évaluation interne (sélection des fichiers pour "
+"évaluation interne) ; Envoyer à évaluation externe (sélection des fichiers "
+"pour évaluation externe) ; Accepter la soumission (sélection des fichiers "
+"pour l’étape éditoriale) ; ou Refuser la soumission (archivage de la "
+"soumission)."
+
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+"Tous les fichiers qui ont déjà été téléchargés à n’importe quelle étape de "
+"la soumission peuvent être ajoutés à la liste de vérification des épreuves "
+"en cochant la case « Inclure » ci-dessous et en cliquant sur « Rechercher ». "
+"Tous les fichiers disponibles seront répertoriés et pourront être "
+"sélectionnés pour inclusion."
+
+msgid "editor.monograph.production.approvalAndPublishingDescription"
+msgstr ""
+"Différents formats de publication, tels que couverture rigide, couverture "
+"souple et format numérique, peuvent être téléchargés dans la section Formats "
+"de publication ci-dessous. Vous pouvez utiliser la grille des formats de "
+"publication suivante comme aide-mémoire pour savoir ce qu’il reste à faire "
+"pour publier un format de publication."
+
+msgid "editor.submissionArchive"
+msgstr "Archives des soumissions"
+
+msgid "editor.monograph.clearReview"
+msgstr "Supprimer l’évaluateur·rice"
+
+msgid "editor.monograph.enterRecommendation"
+msgstr "Saisir la recommandation"
+
+msgid "editor.monograph.enterReviewerRecommendation"
+msgstr "Saisir la recommendation de l’évaluateur·rice"
+
+msgid "editor.monograph.recommendation"
+msgstr "Recommandation"
+
+msgid "editor.monograph.replaceReviewer"
+msgstr "Remplacer l’évaluateur·rice"
+
+msgid "editor.monograph.editorToEnter"
+msgstr "Recommandations/commentaires de l’éditeur pour l’évaluateur·rice"
+
+msgid "editor.monograph.uploadReviewForReviewer"
+msgstr "Téléverser l’évaluation"
+
+msgid "editor.monograph.peerReviewOptions"
+msgstr "Options d’évaluation par les pairs"
+
+msgid "editor.monograph.selectProofreadingFiles"
+msgstr "Fichiers d’épreuves"
+
+msgid "editor.monograph.internalReview"
+msgstr "Procéder à l’évaluation interne"
+
+msgid "editor.monograph.externalReview"
+msgstr "Procéder à l’évaluation externe"
+
+msgid "editor.monograph.final.selectFinalDraftFiles"
+msgstr "Choisir les fichiers d’épreuves finales"
+
+msgid "editor.monograph.final.currentFiles"
+msgstr "Fichiers d’épreuves finales actuels"
+
+msgid "editor.monograph.copyediting.currentFiles"
+msgstr "Fichiers en cours"
+
+msgid "editor.monograph.copyediting.personalMessageToUser"
+msgstr "Message à l’utilisateur"
+
+msgid "editor.monograph.legend.submissionActions"
+msgstr "Actions de soumission"
+
+msgid "editor.monograph.legend.sectionActions"
+msgstr "Actions de section"
+
+msgid "editor.monograph.legend.sectionActionsDescription"
+msgstr ""
+"Les options associées à une section particulière, comme le téléchargement de "
+"fichiers ou l’ajout d’utilisateurs."
+
+msgid "editor.monograph.legend.itemActions"
+msgstr "Actions de l’élément"
+
+msgid "editor.monograph.legend.catalogEntry"
+msgstr ""
+"Visualiser et gérer l’entrée du catalogue de soumission, y compris les "
+"métadonnées et les formats de publication"
+
+msgid "editor.monograph.legend.bookInfo"
+msgstr ""
+"Visualiser et gérer les métadonnées, les notes, les notifications et l’"
+"historique des soumissions"
+
+msgid "editor.monograph.legend.add"
+msgstr "Téléverser un fichier dans la section"
+
+msgid "editor.monograph.legend.add_user"
+msgstr "Ajouter un utilisateur à la section"
+
+msgid "editor.monograph.legend.settings"
+msgstr ""
+"Afficher et accéder aux paramètres de l’élément, tels que les informations "
+"et les options de suppression"
+
+msgid "editor.monograph.legend.more_info"
+msgstr ""
+"Plus d’informations : notes sur les fichiers, options de notification et "
+"historique"
+
+msgid "editor.monograph.legend.notes_none"
+msgstr ""
+"Informations sur le fichier : notes, options de notification et historique ("
+"aucune note n’a encore été ajoutée)"
+
+msgid "editor.monograph.legend.notes"
+msgstr ""
+"Informations sur le fichier : notes, options de notification et historique ("
+"notes disponibles)"
+
+msgid "editor.monograph.legend.notes_new"
+msgstr ""
+"Informations sur le fichier : notes, options de notification et historique ("
+"nouvelles notes ajoutées depuis la dernière visite)"
+
+msgid "editor.monograph.legend.edit"
+msgstr "Modifier l’élément"
+
+msgid "editor.monograph.legend.delete"
+msgstr "Supprimer l’élément"
+
+msgid "editor.monograph.legend.complete"
+msgstr "Action terminée"
+
+msgid "editor.monograph.legend.in_progress"
+msgstr "Action en cours ou non encore terminée"
+
+msgid "editor.monograph.legend.uploaded"
+msgstr "Fichier téléchargé par le rôle dans le titre de la colonne de la grille"
+
+msgid "editor.monograph.editorial.fairCopy"
+msgstr "Copie au propre"
+
+msgid "editor.monograph.proofs"
+msgstr "Épreuves"
+
+msgid "editor.monograph.production.approvalAndPublishing"
+msgstr "Approbation et publication"
+
+msgid "editor.monograph.production.publicationFormatDescription"
+msgstr ""
+"Ajoutez les formats de publication (par exemple, numérique, livre de poche) "
+"pour lesquels le maquettiste prépare des épreuves pour relecture. Avant qu’"
+"un format ne soit rendu Disponible (c’est-à-dire publié), les "
+"Épreuves doivent être cochées comme approuvées et l’entrée de "
+"Catalogue pour le format doit être cochée comme publiée."
+
+msgid "editor.monograph.approvedProofs.edit"
+msgstr "Choisir les modalités de téléchargement"
+
+msgid "editor.monograph.approvedProofs.edit.linkTitle"
+msgstr "Choisir les modalités"
+
+msgid "editor.monograph.proof.addNote"
+msgstr "Ajouter une réponse"
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+"Le public identifié comme ’{$publicIdentifier}’ existe déjà pour un autre "
+"objet du même type. Veuillez choisir des identifiants uniques pour les "
+"objets du même type dans votre maison d’édition."
+
+msgid "editor.submissions.assignedTo"
+msgstr "Assigné à un·e éditeur·rice"
diff --git a/locale/fr_FR/emails.po b/locale/fr_FR/emails.po
new file mode 100644
index 00000000000..098c215d7ba
--- /dev/null
+++ b/locale/fr_FR/emails.po
@@ -0,0 +1,517 @@
+# Weblate Admin , 2023.
+# Germán Huélamo Bautista , 2023, 2024.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2024-07-30 15:56+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
+"Language-Team: French \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 4.18.2\n"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"Nous avons reçu une requête de réinitialisation de votre mot de passe pour "
+"le site Web {$siteTitle}.
\n"
+"
\n"
+"Si vous n’avez pas fait cette requête, veuillez ignorer ce courriel et votre "
+"mot de passe ne sera pas modifié. Si vous souhaitez modifier votre mot de "
+"passe, cliquez sur l’adresse URL ci-dessous.
\n"
+"
\n"
+"Modifier mon mot de passe : {$passwordResetUrl}
\n"
+"
\n"
+"{$siteContactName}"
+
+msgid "emails.passwordResetConfirm.subject"
+msgstr "Confirmation de la réinitialisation du mot de passe"
+
+msgid "emails.userRegister.subject"
+msgstr "Inscription à la maison d’édition"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"{$recipientName},
\n"
+"
\n"
+"Ce courriel contient votre nom d’utilisateur et votre mot de passe, qui sont "
+"nécessaires pour tout travail avec cette maison d’édition par le biais de "
+"son site web. Vous pouvez à tout moment me contacter pour demander à être "
+"retiré de la liste des utilisateur·rice·s.
\n"
+"
\n"
+"Nom d’utilisateur : {$recipientUsername}
\n"
+"Mot de passe : {$password}
\n"
+"
\n"
+"Merci,
\n"
+"{$signature}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"En raison de votre expertise, nous avons ajouté votre nom à notre base de "
+"données d’évaluateurs et d’évaluatrices pour {$contextName}. Cela ne vous "
+"oblige à rien, mais nous permet simplement de vous contacter si nous "
+"recevons une soumission que vous pourriez évaluer. Après avoir reçu une "
+"demande d’évaluation, vous aurez la possibilité de lire le titre et le "
+"résumé de la soumission et vous pourrez accepter ou refuser l’invitation. "
+"Vous pouvez également demander à tout moment que votre nom soit retiré de "
+"cette liste.
\n"
+"
\n"
+"Vous disposez d’un nom d’utilisateur et d’un mot de passe, qui sont utilisés "
+"dans toutes les échanges avec la maison d’édition via son site web. Il se "
+"peut que vous souhaitiez, par exemple, mettre à jour votre profil, y compris "
+"vos intérêts en matière d’évaluation.
\n"
+"
\n"
+"Nom d’utilisateur : {$recipientUsername}
\n"
+"Mot de passe : {$password}
\n"
+"
\n"
+"Merci,
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+"Cher·ère {$recipientName},
La soumission suivante vous a été "
+"assignée pour que vous la suiviez tout au long du processus éditorial :"
+"p>
{$submissionTitle}
{$authors}
Abstract
{$submissionAbstract}Si vous "
+"trouvez que la soumission est pertinente pour {$contextName}, veuillez l’"
+"envoyer à l’étape d’évaluation en sélectionnant « Envoyer pour évaluation "
+"interne », puis désignez des évaluateurs ou des évaluatrices en cliquant sur "
+"« Ajouter un évaluateur·rice ».
Si la soumission n’est pas appropriée "
+"pour cette maison d’édition, veuillez la refuser.
Merci d’avance."
+"p>
Bien à vous,
{$contextSignature}"
+
+msgid "emails.reviewRequest.body"
+msgstr ""
+"Cher·ère {$recipientName},
Nous estimons que vous seriez un·e "
+"excellent·e évaluateur·rice pour cette soumission à {$contextName}. Vous "
+"trouverez ci-dessous le titre et le résumé de la soumission. Nous espérons "
+"que vous envisagerez d’entreprendre cette tâche si importante pour nous."
+"p>
Si vous êtes disponible pour évaluer la soumission, la date limite pour "
+"compléter l’évaluation est le {$reviewDueDate}. Vous pouvez consulter la "
+"soumission, téléverser des fichiers et soumettre votre évaluation en vous "
+"connectant au site de cette maison d’édition et en suivant les étapes "
+"indiquées dans le lien ci-dessous.
{$submissionTitle}
Résumé
{$submissionAbstract}"
+"Veuillez accepter ou refuser cette "
+"évaluation avant le {$responseDueDate}.
Si vous avez des "
+"questions concernant la soumission ou la procédure d’évaluation, n’hésitez "
+"pas à nous contacter.
Nous vous remercions de prendre en considération "
+"cette demande. Votre aide est très appréciée.
Bien "
+"cordialement,
{$signature}"
+
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+"Cher·ère {$recipientName},
Nous vous remercions de votre évaluation "
+"de « {$submissionTitle} ». Les "
+"auteur·e·s ont pris en compte les commentaires des évaluations et ont "
+"maintenant soumis une version révisée de leur travail. Je vous écris pour "
+"savoir si vous pouvez procéder à une deuxième évaluation pour cette "
+"soumission.
Si vous êtes en mesure d’évaluer cette soumission, votre "
+"évaluation est attendue au plus tard le {$reviewDueDate}. Vous pouvez suivre les étapes d’évaluation pour "
+"consulter la soumission, téléverser des fichiers d’évaluation et soumettre "
+"vos commentaires d’évaluation.
{$submissionTitle}
Résumé
{$submissionAbstract}"
+"Veuillez accepter ou refuser l’"
+"évaluation avant le {$responseDueDate}.
N’hésitez pas à me "
+"contacter pour toute question concernant la soumission ou le processus "
+"d’évaluation.
Nous vous remercions de prendre en considération cette "
+"demande. Votre aide est très appréciée.
Bien "
+"cordialement,
{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr "Validez votre compte"
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Vous avez créé un compte avec {$contextName}, mais avant de pouvoir "
+"commencer à l’utiliser, vous devez valider votre compte de messagerie. Pour "
+"ce faire, il vous suffit de suivre le lien ci-dessous :
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Merci,
\n"
+"{$contextSignature}"
+
+msgid "emails.userValidateSite.subject"
+msgstr "Validez votre compte"
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Vous avez créé un compte avec {$siteTitle}, mais avant de pouvoir commencer "
+"à l’utiliser, vous devez valider votre compte e-mail. Pour ce faire, il vous "
+"suffit de suivre le lien ci-dessous :
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Merci,
\n"
+"{$siteSignature}"
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Inscription en tant qu’évaluateur·rice de {$contextName}"
+
+msgid "emails.editorAssign.subject"
+msgstr ""
+"Vous avez été désigné comme éditeur·rice pour une soumission à {$contextName}"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Demande d’évaluation d’un manuscrit"
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr "Demande d’évaluation d’une soumission évaluée"
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr "Demande d’évaluation d’un manuscrit"
+
+msgid "emails.indexComplete.body"
+msgstr ""
+"Cher·ère {$recipientName}:
\n"
+"
\n"
+"Les index du manuscrit « {$submissionTitle} » pour {$contextName} sont prêts "
+"et peuvent être révisés.
\n"
+"
\n"
+"Si vous avez questions, n’hésitez pas à me contacter.
\n"
+"
\n"
+"{$signatureFullName}"
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+"Cher·ère {$reviewerName},
\n"
+"Ceci n’est qu’un petit rappel de notre demande d’évaluation de la soumission "
+"« {$submissionTitle} » for {$contextName}. Nous espérions recevoir votre "
+"réponse pour le {$responseDueDate}, et ce courriel a été automatiquement "
+"généré et envoyé suite au passage de cette date.\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Veuillez vous connecter au site web de cette maison d’édition pour indiquer "
+"si vous pouvez procéder à l’évaluation ou non, ainsi que pour accéder à la "
+"soumission et pour enregistrer votre évaluation et votre recommandation.
\n"
+"
\n"
+"L’évaluation elle-même est attendue le {$reviewDueDate}.
\n"
+"
\n"
+"URL de la soumission : {$reviewAssignmentUrl}
\n"
+"
\n"
+"Nom d’utilisateur : {$recipientUsername}
\n"
+"
\n"
+"Merci de prendre en compte cette demande.
\n"
+"
\n"
+"
\n"
+"Cordialement,
\n"
+"{$contextSignature}
\n"
+
+msgid "emails.reviewRemind.body"
+msgstr ""
+"Cher·ère {$recipientName},
Ceci n’est qu’un petit rappel de notre "
+"demande d’évaluation de la soumission « {$submissionTitle} » pour "
+"{$contextName}. Nous attendions cette évaluation pour le {$reviewDueDate} et "
+"nous vous serions donc reconnaissants de bien vouloir nous l’envoyer dès qu’"
+"elle sera prête.
Vous pouvez vous "
+"connecter à notre site et suivre les étapes d’évaluation pour visualiser "
+"la soumission, téléverser des fichiers et soumettre vos commentaires "
+"d’évaluation.
Si vous avez besoin de reporter la date limite, veuillez "
+"nous contacter. Nous espérons avoir bientôt de vos nouvelles et vous "
+"remercions d’avance pour votre aide.
Bien cordialement,
{$signature}"
+
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+"Cher·ère {$recipientName}:
Ce courriel est un rappel automatique de "
+"la part de {$contextName} concernant notre demande d’évaluation de la "
+"soumission « {$submissionTitle} ».
L’évaluation était attendue pour le "
+"{$reviewDueDate}, nous vous prions donc de bien vouloir nous l’envoyer dès "
+"qu’elle sera prête.
Vous pouvez vous connecter à notre site et suivre les étapes d’évaluation pour "
+"visualiser la soumission, téléverser des fichiers et soumettre vos "
+"commentaires d’évaluation.
Si vous avez besoin de reporter la date "
+"limite, veuillez nous contacter. Nous espérons avoir bientôt de vos "
+"nouvelles et vous remercions d’avance pour votre aide.
Bien "
+"cordialement,
{$signature}"
+
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+"Cher·ère {$recipientName},
Nous avons le plaisir de vous informer "
+"que nous avons décidé d’accepter votre soumission sans autre évaluation. "
+"Après un examen attentif, nous avons constaté que votre soumission, « "
+"{$submissionTitle} », répond à nos attentes, voire les dépasse. "
+"{$contextName} se réjouit de publier votre travail et nous vous remercions d’"
+"avoir choisi cette maison d’édition.
Votre soumission sera bientôt "
+"publiée sur le site web de {$contextName} et nous vous invitons à l’inclure "
+"dans votre liste de publications. Nous sommes conscients du travail "
+"considérable que représente chaque soumisison réussie et nous tenons à vous "
+"féliciter d’avoir atteint ce stade.
Votre soumission va maintenant "
+"faire l’objet d’un processus de correction et de mise en forme afin de la "
+"préparer à la publication.
Vous recevrez d’autres instructions sous "
+"peu.
Si vous avez des questions, n’hésitez pas à nous contacter à "
+"partir de votre tableau de bord."
+"p>
Bien cordialement,
{$signature}"
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+"Cher·ère {$recipientName},
\n"
+"J’ai le plaisir de vous informer que nous avons décidé d’accepter votre "
+"soumission sans évaluation par les pairs. Votre soumission, "
+"{$submissionTitle}, répond à nos attentes et nous n’exigeons pas que les "
+"travaux de ce type fassent l’objet une évaluation par les pairs. Nous sommes "
+"ravis de publier votre texte dans {$contextName} et nous vous remercions d’"
+"avoir choisi notre maison d’édition pour publier votre travail.)
\n"
+"Votre soumission sera bientôt publiée sur le site de {$contextName} et "
+"vous pouvez l’inclure dans votre liste de publications. Nous sommes "
+"conscients du travail considérable que représente chaque soumission réussie "
+"et nous tenons à vous féliciter pour vos efforts.
\n"
+"Votre soumission sera alors soumise à un travail d’édition et de mise en "
+"forme afin de la préparer à la publication.
\n"
+"Vous recevrez prochainement des instructions à ce sujet.
\n"
+"Si vous avez des questions, veuillez me contacter depuis votre tableau de bord de soumissions.
\n"
+"Bien cordialement,
\n"
+"{$signature}
\n"
+
+msgid "emails.layoutRequest.body"
+msgstr ""
+"Cher·ère {$recipientName},
Une nouvelle soumission est prête à être "
+"mise en page :
{$submissionId} "
+"{$submissionTitle}
{$contextName}
- Cliquez sur l’URL de "
+"la soumission ci-dessus.
- Téléchargez les fichiers prêts pour la "
+"production et utilisez-les pour créer les épreuves selon les normes de la "
+"maison d’édition.
- Chargez les épreuves dans la section Formats de "
+"publication de la soumission.
- Utilisez les discussions de production "
+"pour informer l’éditeur·rice que les épreuves sont prêtes.
Si "
+"vous n’êtes pas en mesure d’entreprendre ce travail pour le moment ou si "
+"vous avez des questions, n’hésitez pas à me contacter. Je vous remercie de "
+"votre contribution à cette maison d’édition.
Bien "
+"cordialement,
{$signature}"
+
+msgid "emails.indexRequest.body"
+msgstr ""
+"Cher·ère {$recipientName},
\n"
+"
\n"
+"La soumission « {$submissionTitle} » à {$contextName} a maintenant besoin d’"
+"index créés en suivant ces étapes :
\n"
+"1. Cliquez sur l’URL de la soumission ci-dessous.
\n"
+"2. Connectez-vous à la maison d’édition et utilisez le fichier des épreuves "
+"de page pour créer les épreuves conformément aux normes de la maison d’"
+"édition.
\n"
+"3. Envoyez le courriel COMPLET au/à la responsable éditorial.
\n"
+"
\n"
+"{$contextName} URL : {$contextUrl}
\n"
+"URL de la soumission : {$submissionUrl}
\n"
+"Nom d’utilisateur : {$recipientUsername}
\n"
+"
\n"
+"Si vous n’êtes pas en mesure d’entreprendre ce travail pour le moment ou si "
+"vous avez des questions, n’hésitez pas à me contacter. Je vous remercie de "
+"votre contribution à cette maison d’édition.
\n"
+"
\n"
+"{$signature}"
+
+msgid "emails.revisedVersionNotify.body"
+msgstr ""
+"Cher·ère {$recipientName},
L’auteur·e a téléchargé des révisions "
+"pour la soumission {$authorsShort} — {$submissionTitle}.
En tant "
+"qu’éditeur·rice assigné·e, nous vous demandons de vous connecter, de consulter les révisions et prendre la décision d’"
+"accepter, de refuser ou de renvoyer la soumission pour une nouvel "
+"évaluation.
—
Ceci est un message automatisé de {$contextName}."
+
+msgid "emails.announcement.subject"
+msgstr "{$announcementTitle}"
+
+msgid "emails.editorAssignProduction.body"
+msgstr ""
+"Cher·ère {$recipientName},
La soumission suivante vous a été "
+"confiée pour que vous la suiviez tout au long de la phase de production."
+"p>
{$submissionTitle}
{$authors}
Résumé
{$submissionAbstract}Veuillez vous "
+"connecter pour voir la soumission. Lorsque "
+"les fichiers prêts pour production sont disponibles, chargez-les dans la "
+"section Publication > Formats de publication.
Merci "
+"d’avance.
Bien cordialement,
{$signature}"
+
+msgid "emails.announcement.body"
+msgstr ""
+"{$announcementTitle}
\n"
+"
\n"
+"{$announcementSummary}
\n"
+"
\n"
+"Visitez notre site pour consulter l’annonce "
+"complète."
+
+msgid "emails.editorAssignReview.body"
+msgstr ""
+"Cher·ère {$recipientName},
La soumission suivante vous a été "
+"assignée pour que vous la suiviez pendant l’étape d’évaluation.
{$submissionTitle}
{$authors}
Résumé
{$submissionAbstract}Veuillez vous "
+"connecter pour voir la soumission et pour "
+"désigner des évaluateur·rice·s qualifié.e.s. Vous pouvez assigner un·e "
+"évaluateur·rice en cliquant sur « Assigner un·e évaluateur·rice »."
+"p>
Merci d’avance.
Bien à vous,
{$signature}"
+
+msgid "emails.reviewCancel.subject"
+msgstr "Annulation de la demande d’évaluation"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"Cher·ère {$recipientName},
\n"
+"
\n"
+"Nous avons décidé d’annuler notre demande d’évaluation de la soumission « "
+"{$submissionTitle} » pour {$contextName}. Nous nous excusons pour la gêne "
+"occasionnée et espérons que nous pourrons faire appel à vous à l’avenir pour "
+"nous aider dans d’autres processus d’évaluation.
\n"
+"
\n"
+"Si vous avez des questions, n’hésitez pas à nous contacter."
+
+msgid "emails.reviewReinstate.subject"
+msgstr ""
+"Êtes-vous toujours disponible pour évaluer des textes pour {$contextName} ?"
+
+msgid "emails.reviewDecline.subject"
+msgstr "Refus d’évaluation"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"{$recipientName},
\n"
+"
\n"
+"Pour le moment, il m’est impossible d’évaluer la soumission intitulée « "
+"{$submissionTitle} » pour {$contextName}. Je vous remercie d’avoir pensé à "
+"moi. N’hésitez pas à communiquer avec moi pour un autre projet.
\n"
+"
\n"
+"{$senderName}"
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+"Cher·ère {$recipientName,
Nous avons récemment annulé notre demande "
+"d’évaluation d’une soumission, « {$submissionTitle} », pour {$contextName}. "
+"Néanmoins, nous avons renversé cette décision et nous espérons que vous "
+"serez toujours en mesure de procéder à l’évaluation.
Si vous pouvez "
+"contribuer à l’évaluation de cette soumission, veuillez vous connecter à notre site pour consulter la "
+"soumission, téléverser des fichiers et envoyer votre évaluation.
Si "
+"vous avez des questions, n’hésitez pas à me contacter.
Bien "
+"cordialement,
{$signature}"
+
+msgid "emails.reviewRemind.subject"
+msgstr "Rappel pour compléter l’évaluation"
+
+msgid "emails.editorDecisionAccept.subject"
+msgstr "Votre soumission pour {$contextName} a été acceptée"
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr "Votre soumission a été envoyée pour évaluation interne"
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+"Cher·ère {$recipientName},
J’ai le plaisir de vous informer que "
+"votre soumission, « {$submissionTitle} », a été transmise pour évaluation "
+"interne. Nous vous communiquerons le résultat de cette évaluation."
+"p>
Veuillez noter que l’envoi de la soumission pour évaluation interne ne "
+"garantit pas qu’elle sera publiée. Il se peut que nous vous demandions d’"
+"apporter des modifications ou de répondre à des questions soulevées lors de "
+"l’évaluation avant de prendre une décision finle.
Si vous avez des "
+"questions, veuillez me contacter à partir de votre tableau de bord de "
+"soumissions.
{$signature}
"
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr "Votre soumission a été envoyée pour édition"
+
+msgid "emails.layoutRequest.subject"
+msgstr ""
+"La soumission {$submissionId} est prête pour la production à "
+"{$contextAcronym}"
+
+msgid "emails.layoutComplete.subject"
+msgstr "Épreuves terminées"
+
+msgid "emails.layoutComplete.body"
+msgstr ""
+"Cher·ère {$recipientName},
Les épreuves pour la soumission suivante "
+"ont été préparées et sont prêtes pour la révision finale.
{$submissionTitle}
{$contextName}
Si vous "
+"avez des questions, n’hésitez pas à me contacter.
Bien "
+"cordialement,
{$senderName}
"
+
+msgid "emails.indexRequest.subject"
+msgstr "Demande d’indexation"
+
+msgid "emails.indexComplete.subject"
+msgstr "Épreuves d’indexation terminées"
+
+msgid "emails.emailLink.subject"
+msgstr "Manuscrit susceptible d’intéresser"
+
+msgid "emails.emailLink.body"
+msgstr ""
+"Nous avons pensé que « {$submissionTitle} », de {$authors}, publié dans le "
+"volume {$volume}, numéro {$number} ({$year}) de {$contextName} à « "
+"{$submissionUrl} » pourrait vous intéresser."
+
+msgid "emails.notifySubmission.subject"
+msgstr "Notification de soumission"
+
+msgid "emails.notifyFile.description"
+msgstr ""
+"Notification d’un·e utilisateur/trice envoyée à partir d’un centre d’"
+"information sur les fichiers"
+
+msgid "emails.notifyFile.body"
+msgstr ""
+"Vous avez un message de {$sender} concernant le fichier « {$fileName} » dans "
+"« {$submissionTitle} » ({$monographDetailsUrl}) :
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+"Vous avez reçu un message de {$sender} concernant « {$submissionTitle} » "
+"({$monographDetailsUrl}) :
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifySubmission.description"
+msgstr ""
+"Notification d’un·e utilisateur/trice envoyée à partir d’un centre d’"
+"information sur les soumissions."
+
+msgid "emails.notifyFile.subject"
+msgstr "Notification de soumission d’un fichier"
+
+msgid "emails.revisedVersionNotify.subject"
+msgstr "Version révisée chargée"
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr "Activité éditoriale pour {$month} {$year}"
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+"\n"
+"{$recipientName},
\n"
+"
\n"
+"Le rapport d’activité éditoriale pour {$month} {$year} est maintenant "
+"disponible. Les principales statistiques pour ce mois sont affichées ci-"
+"dessous.
\n"
+"\n"
+"\t- Nouvelles soumissions pour ce mois : {$newSubmissions}
\n"
+"\t- Soumissions refusées pour ce mois : {$declinedSubmissions}
\n"
+"\t- Soumissions acceptées pour ce mois : {$acceptedSubmissions}
\n"
+"\t- Nombre total de soumissions dans la plateforme : {$totalSubmissions} "
+"
\n"
+"
\n"
+"Connectez-vous au site de la maison d’édition pour voir davantage de tendances dans l’activité éditoriale ainsi que "
+"des statistiques relatives aux livres "
+"publiés. Le rapport complet des tendances de l’activité éditoriale de ce "
+"mois-ci est joint au présent envoi.
\n"
+"
\n"
+"Cordialement,
\n"
+"{$contextSignature}"
diff --git a/locale/fr_FR/locale.po b/locale/fr_FR/locale.po
new file mode 100644
index 00000000000..2cbc4843af3
--- /dev/null
+++ b/locale/fr_FR/locale.po
@@ -0,0 +1,1727 @@
+# Weblate Admin , 2023.
+# Germán Huélamo Bautista , 2023, 2024.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2024-05-31 17:17+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
+"Language-Team: French \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 4.18.2\n"
+
+msgid "common.payments"
+msgstr "Paiements"
+
+msgid "monograph.audience"
+msgstr "Public"
+
+msgid "monograph.audience.success"
+msgstr "Les détails du public ont été mis à jour."
+
+msgid "monograph.coverImage"
+msgstr "Image de la page de couverture"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Intervalle du public (de)"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Qualificatif de l’intervalle du public"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Intervalle du public (à)"
+
+msgid "submission.round"
+msgstr "Cycle {$round}"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "Détails sur le format de publication disponible : {$format}"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"Le·La maquettiste transfère ici les fichiers qui sont prêts pour "
+"publication. Utiliser Assigner un vérificateur pour identifier les "
+"auteur·e·s et les autres personnes qui reliront les épreuves et chargerons "
+"les fichiers corrigés pour approbation avant la publication."
+
+msgid "monograph.task.addNote"
+msgstr "Ajouter à la tâche"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "Ce format sera disponible sur un site web distinct"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "Non disponible"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Composition du produit"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Indicateur des retours"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Épreuve"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Approbation du format"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "Indiquer votre propre valeur pour la taille du fichier ?"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Poids"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Mesures techniques de protection numérique"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+"Inclure les métadonnées de ce format de publication dans l’entrée de "
+"catalogue de ce livre."
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"Approuver les métadonnées pour ce format. Les métadonnées peuvent être "
+"vérifiées dans le panneau d’édition de chaque format.
"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Rendre ce format disponible pour les lecteur·rice·s. Les "
+"fichiers téléchargeables et toute autre distribution apparaîtront dans l’"
+"entrée du catalogue du livre.
"
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "Un code de composition du produit doit être choisi."
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "Reste du monde ?"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"Une date est requise et la valeur de la date doit correspondre au format de "
+"date choisi."
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"Vous pouvez nommer un agent qui vous représentera dans ce territoire, mais "
+"cela n’est pas nécessaire."
+
+msgid "grid.action.manageSeries"
+msgstr "Configurer les collections de cette maison d’édition"
+
+msgid "user.role.editors"
+msgstr "Éditeur·rice·s"
+
+msgid "grid.action.approveProofs"
+msgstr "Voir la grille des épreuves"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Fichiers disponibles"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "A la une dans la collection"
+
+msgid "catalog.viewableFile.return"
+msgstr "Retournez pour voir les détails sur {$monographTitle}"
+
+msgid "common.homePageHeader.altText"
+msgstr "En-tête de la page d’accueil"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Collections"
+
+msgid "context.select"
+msgstr "Changer de maison d’édition :"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr "S’inscrire en tant qu’évaluateur·rice : l’inscription est désactivée."
+
+msgid "user.role.proofreader"
+msgstr "Correcteur·rice d’épreuves"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Catégories"
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "La monographie n’est pas marquée comme une nouveauté."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "Inclure les utilisateurs sans rôle dans cette maison d’édition."
+
+msgid "user.reviewerPrompt"
+msgstr ""
+"Seriez-vous volontaire pour évaluer des soumissions à cette maison d’édition "
+"?"
+
+msgid "user.register.noContexts"
+msgstr "Vous ne pouvez vous inscrire à aucune maison d’édition sur ce site."
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Cochez cette case si vous souhaitez que cette entrée pour les droits de "
+"vente s’applique à votre format de manière générale. Vous n’avez pas à "
+"choisir des pays et des régions dans ce cas."
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"L’image de couverture des livres sélectionnés est affichée en haut de la "
+"page d’accueil sous la forme d’un ensemble défilant. Cliquez sur « À la une »"
+", puis sur l’étoile pour ajouter un livre au carrousel ; cliquez sur le "
+"signe d’exclamation pour mettre une nouvelle parutionà la une ; faites "
+"glisser le livre pour le trier."
+
+msgid "catalog.manage.isFeatured"
+msgstr ""
+"Cette monographie est à la une. Retirer cette monographie de la sélection de "
+"titres à la une."
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"Note : Pour acheter des articles, vous devez d’abord vous connecter. En "
+"sélectionnant un article à acheter, vous serez dirigé vers la page de "
+"connexion. Tout article marqué d’une icône de libre accès peut être "
+"téléchargé gratuitement, sans avoir à se connecter."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"Oui, je souhaite être contacté(e) pour évaluer des soumissions à cette "
+"maison d’édition."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+"Cette monographie n’est pas une nouveauté. Faire de cette monographie une "
+"nouveauté."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "Le mot de passe que vous avez saisi n’est pas assez long."
+
+msgid "catalog.noTitlesNew"
+msgstr "Aucune nouveauté n’est disponible pour l’instant."
+
+msgid "catalog.foundTitleSearch"
+msgstr ""
+"Un titre correspondant à votre recherche « {$searchQuery} » a été trouvé."
+
+msgid "user.register.reviewerDescription"
+msgstr ""
+"Disposé à faire des évaluations par les pairs des soumissions au web site."
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"Oui, j’accepte que mes données soient collectées et stockées conformément à "
+"la déclaration de "
+"confidentialité de cette maison d’édition."
+
+msgid "monograph.audience.rangeExact"
+msgstr "Plage d’audience (exact)"
+
+msgid "monograph.languages"
+msgstr "Langues (anglais, français, espagnol)"
+
+msgid "monograph.publicationFormats"
+msgstr "Formats de publication"
+
+msgid "monograph.publicationFormat"
+msgstr "Format"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Informations sur cette monographie"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Formats :"
+
+msgid "monograph.type"
+msgstr "Type de soumission"
+
+msgid "submission.pageProofs"
+msgstr "Épreuves"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Accès libre"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Marque d’éditeur (nom commercial)"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Nombre de pages"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Textes préliminaires"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Parties annexes"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Détails du produit (n’est pas requis)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Identification du produit"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Prix"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "Un prix est requis."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Type de prix"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Pourcentage de remise, le cas échéant"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Disponibilité du produit"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Information numérique"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Dimensions physiques"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "Taille du fichier en Mo"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Hauteur"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Épaisseur"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Largeur"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "Pays de fabrication"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Région de distribution du produit"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Taux de taxation"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Type de taxation"
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Marchés et prix manquants."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Code d’identification manquant."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Champs de métadonnées manquants."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+"Le format de publication que vous avez choisi n’existe plus pour cette "
+"monographie.
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Ouvrir l’onglet du format de publication."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Format de publication"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "Un nom est requis."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "Un prix valide est requis."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Détails du format"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Format physique"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "URL du contenu hébergé à distance"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "Un code ISBN à 13 chiffres, tel que 978-951-98548-9-2."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "Un code ISBN à 10 chiffres, tel que 951-98548-9-4."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "Un identifiant de la monographie est requis."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Vous devez choisir un format de publication."
+
+msgid "grid.catalogEntry.availability"
+msgstr "Disponibilité"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Disponible"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr ""
+"Indiquer que les métadonnées de ce format n’ont pas été approuvées.
"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Disponibilité du format"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Ce format ne sera pas disponible pour les lecteur·rice·s. Les "
+"fichiers téléchargeables ou autres distributions n’apparaîtront plus dans l’"
+"entrée du catalogue du livre.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "L’entrée de catalogue n’a pas été approuvée."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "Format non disponible dans l’entrée du catalogue."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Épreuve non approuvée."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Accepté"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "En attente d’approbation"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "Pour les formats numériques, vous devez indiquer la taille du fichier."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "Un code de disponibilité du produit est requis."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Valeur du code"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "Type de code ONIX"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "Un code d’identification est requis."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "Une valeur est requise."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Droits de vente"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Valeur du code"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Type de droits de vente"
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr ""
+"Un type de vente « Reste du monde » a déjà été défini pour ce format de "
+"publication."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Pays"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Régions"
+
+msgid "grid.catalogEntry.included"
+msgstr "Inclus"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Exclus"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Territoires du marché"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Territoire"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Dates de publication"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Un rôle de représentant est requis."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "Un format de date est requis."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Date"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Rôle"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Format de date"
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Représentants"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Type de représentant"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Agents"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Fournisseurs"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Agent"
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Fournisseur"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Choisir un rôle :"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Rôle"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Nom"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Téléphone"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "Adresse de courriel"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Site Web"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "Identification du représentant"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Type d’identifiant du représentant (GLN recommandé)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"Vous n’avez pas à remplir la section suivante si vous offrez vos propres "
+"services à vos clients."
+
+msgid "grid.action.addRepresentative"
+msgstr "Ajouter un(e) représentant(e)"
+
+msgid "grid.action.editRepresentative"
+msgstr "Modifier ce(tte) représentant(e)"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Supprimer ce(tte) représentant(e)"
+
+msgid "spotlight"
+msgstr "À la une"
+
+msgid "spotlight.spotlights"
+msgstr "À la une"
+
+msgid "spotlight.noneExist"
+msgstr "Il n’y a pas de livres à la une actuellement."
+
+msgid "spotlight.title.homePage"
+msgstr "À la une"
+
+msgid "spotlight.author"
+msgstr "Auteur, "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Ouvrage à la une"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Page d’accueil"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Emplacement à la une"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Saisir le titre à la une (remplissage automatique)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Titre de l’ouvrage à la une"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Livre"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "Un élément est requis."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "Un titre à la une est requis."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Veuillez choisir un emplacement pour ce titre à la une."
+
+msgid "grid.action.editSpotlight"
+msgstr "Modifier les titres à la une"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Retirer un titre de la rubrique À la une"
+
+msgid "grid.action.addSpotlight"
+msgstr "Ajouter un titre à la rubrique À la une"
+
+msgid "manager.series.open"
+msgstr "Soumissions actives"
+
+msgid "manager.series.indexed"
+msgstr "Indexé"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Fichiers"
+
+msgid "grid.action.catalogEntry"
+msgstr "Voir le formulaire de saisie du catalogue"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "Le format apparait dans l’entrée de catalogue"
+
+msgid "grid.action.editFormat"
+msgstr "Modifier ce format"
+
+msgid "grid.action.deleteFormat"
+msgstr "Supprimer ce format"
+
+msgid "grid.action.addFormat"
+msgstr "Ajouter un format de publication"
+
+msgid "grid.action.approveProof"
+msgstr "Approuver l’épreuve afin qu’elle soit indexée et ajoutée au catalogue"
+
+msgid "grid.action.pageProofApproved"
+msgstr "Le fichier d’épreuves de mise en page est prêt à être publié"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Nouvelle entrée dans le catalogue"
+
+msgid "grid.action.publicCatalog"
+msgstr "Voir ce titre dans le catalogue"
+
+msgid "grid.action.feature"
+msgstr "Basculer l’affichage des caractéristiques"
+
+msgid "grid.action.featureMonograph"
+msgstr "Présenter ceci dans le carrousel du catalogue"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Marquer cette soumission comme « nouveauté »"
+
+msgid "grid.action.manageCategories"
+msgstr "Configurer les catégories pour cette maison d’édition"
+
+msgid "grid.action.addCode"
+msgstr "Ajouter un code"
+
+msgid "grid.action.editCode"
+msgstr "Modifier ce code"
+
+msgid "grid.action.deleteCode"
+msgstr "Supprimer ce code"
+
+msgid "grid.action.addRights"
+msgstr "Ajouter les droits de vente"
+
+msgid "grid.action.editRights"
+msgstr "Modifier ces droits"
+
+msgid "grid.action.deleteRights"
+msgstr "Supprimer ces droits"
+
+msgid "grid.action.addMarket"
+msgstr "Ajouter un marché"
+
+msgid "grid.action.editMarket"
+msgstr "Modifier ce marché"
+
+msgid "grid.action.deleteMarket"
+msgstr "Supprimer ce marché"
+
+msgid "grid.action.addDate"
+msgstr "Ajouter une date de publication"
+
+msgid "grid.action.editDate"
+msgstr "Modifier cette date"
+
+msgid "grid.action.deleteDate"
+msgstr "Supprimer cette date"
+
+msgid "grid.action.createContext"
+msgstr "Créer une nouvelle maison d’édition"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Afficher l’onglet du format de publication"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Consulter la page des communiqués de presse"
+
+msgid "grid.action.submissionEmail"
+msgstr "Cliquer pour lire ce courriel"
+
+msgid "grid.action.proofApproved"
+msgstr "Le format a été vérifié"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Approuver/refuser ce format"
+
+msgid "grid.action.formatAvailable"
+msgstr "Activer ou désactiver la disponibilité de ce format"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Ajouter une pièce jointe à l’évaluation"
+
+msgid "series.series"
+msgstr "Collections"
+
+msgid "series.featured.description"
+msgstr "Cette collection apparaîtra sur la page de navigation principale"
+
+msgid "series.path"
+msgstr "Chemin d’accès"
+
+msgid "catalog.manage"
+msgstr "Gestion du catalogue"
+
+msgid "catalog.manage.newReleases"
+msgstr "Nouveautés"
+
+msgid "catalog.manage.category"
+msgstr "Catégorie"
+
+msgid "catalog.manage.series"
+msgstr "Collection"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "Veuillez saisir un ISSN valide."
+
+msgid "catalog.manage.series.printIssn"
+msgstr "ISSN imprimé"
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "ISSN numérique"
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "L’ISSN numérique et l’ISSN imprimé ne doivent pas être identiques."
+
+msgid "catalog.selectSeries"
+msgstr "Sélectionner une collection"
+
+msgid "catalog.selectCategory"
+msgstr "Sélectionner une catégorie"
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Cliquez sur « A la une », puis sur l’étoile pour sélectionner un livre à la "
+"une dans cette catégorie ; faites glisser le livre pour le trier."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Cliquez sur « À la une », puis sur l’étoile pour sélectionner un livre à la "
+"une de cette collection ; glissez-déposez pour l’ordonner. Les collections "
+"sont identifiées par un ou plusieurs éditeur(s) et un titre de collection, "
+"au sein d’une catégorie ou indépendamment."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Carrousel"
+
+msgid "catalog.manage.newRelease"
+msgstr "Lancement"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Gérer la collection"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Gérer les catégories"
+
+msgid "catalog.manage.noMonographs"
+msgstr "Aucune monographie n’a été assignée."
+
+msgid "catalog.manage.featured"
+msgstr "À la une"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "À la une dans la catégorie"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "Monographie à la une."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "Monographie pas à la une."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "La monographie est marquée comme une nouveauté."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "Nouveauté"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "Nouveauté dans la catégorie"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "Nouveauté dans la collection"
+
+msgid "catalog.manage.nonOrderable"
+msgstr ""
+"Cette monographie ne peut être commandée tant qu’elle n’est pas publiée."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Recherche par titre ou par auteur·e"
+
+msgid "catalog.manage.isNotFeatured"
+msgstr ""
+"Cette monographie n’est pas à la une. Mettre cette monographie à la une."
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+"Cette monographie est une nouveauté. Faire que cette monographie ne soit pas "
+"une nouveauté."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr "Aucune soumission n’a été sélectionnée pour être ajoutée au catalogue."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "Une ou plusieurs soumissions n’ont pas pu être trouvées."
+
+msgid "catalog.manage.findSubmissions"
+msgstr "Trouver des monographies à ajouter au catalogue"
+
+msgid "catalog.noTitles"
+msgstr "Aucun titre n’a encore été publié."
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
+"Aucun titre correspondant à votre recherche pour « {$searchQuery} » n’a été "
+"trouvé."
+
+msgid "catalog.feature"
+msgstr "À la une"
+
+msgid "catalog.featured"
+msgstr "À la une"
+
+msgid "catalog.featuredBooks"
+msgstr "Livres à la une"
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+"{$number} titres correspondant à votre recherche « {$searchQuery} » ont été "
+"trouvés."
+
+msgid "catalog.category.heading"
+msgstr "Tous les livres"
+
+msgid "catalog.newReleases"
+msgstr "Nouveautés"
+
+msgid "catalog.dateAdded"
+msgstr "Ajouté le"
+
+msgid "catalog.publicationInfo"
+msgstr "Informations sur la publication"
+
+msgid "catalog.published"
+msgstr "Publié"
+
+msgid "catalog.forthcoming"
+msgstr "À paraître"
+
+msgid "catalog.categories"
+msgstr "Catégories"
+
+msgid "catalog.parentCategory"
+msgstr "Catégorie mère"
+
+msgid "catalog.category.subcategories"
+msgstr "Sous-catégories"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "À propos de : {$roleName}"
+
+msgid "catalog.sortBy"
+msgstr "Ordre des monographies"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "Choisissez comment commander les livres de cette collection."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr "Choisissez comment commander les livres de cette catégorie."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "Choisissez comment commander les livres dans le catalogue."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "Position des collections (inférieure d’abord)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "Position des collections (supérieure d’abord)"
+
+msgid "catalog.viewableFile.title"
+msgstr "{$type} vue du fichier {$title}"
+
+msgid "submission.search"
+msgstr "Recherche de livres"
+
+msgid "common.publication"
+msgstr "Monographie"
+
+msgid "common.publications"
+msgstr "Monographies"
+
+msgid "common.prefix"
+msgstr "Préfixe"
+
+msgid "common.preview"
+msgstr "Aperçu"
+
+msgid "common.feature"
+msgstr "À la une"
+
+msgid "common.searchCatalog"
+msgstr "Recherche dans le catalogue"
+
+msgid "common.moreInfo"
+msgstr "Plus d’information"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Veuillez remplir le formulaire dans son intégralité."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Veuillez choisir une option valide à partir de la liste."
+
+msgid "common.listbuilder.itemExists"
+msgstr "Vous ne pouvez pas ajouter le même élément deux fois."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "navigation.catalog"
+msgstr "Catalogue"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Politique en matière de conflits d’intérêts"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "Toutes les monographies"
+
+msgid "navigation.catalog.manage"
+msgstr "Gérer"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Administration"
+
+msgid "navigation.catalog.administration"
+msgstr "Administration du catalogue"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Collection"
+
+msgid "navigation.infoForAuthors"
+msgstr "Pour les auteur·e·s"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Pour les bibliothécaires"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Information pour les auteur·e·s"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Information pour les bibliothécaires"
+
+msgid "navigation.newReleases"
+msgstr "Nouveautés"
+
+msgid "navigation.published"
+msgstr "Publié"
+
+msgid "navigation.wizard"
+msgstr "Assistant"
+
+msgid "navigation.linksAndMedia"
+msgstr "Liens et réseaux sociaux"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Lien vers votre catalogue."
+
+msgid "navigation.skip.spotlights"
+msgstr "Passer aux titres à la une"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Lien vers une collection."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Catégorie"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Lien vers une catégorie."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "Nouveautés"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Lien vers vos nouvelles parutions."
+
+msgid "context.contexts"
+msgstr "Maisons d’édition"
+
+msgid "context.context"
+msgstr "Maison d’édition"
+
+msgid "context.current"
+msgstr "Maison d’édition actuelle :"
+
+msgid "user.authorization.representationNotFound"
+msgstr "Le format de publication demandé n’a pas été trouvé."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Soumettre une proposition"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr ""
+"Soumettre une monographie : l’enregistrement des auteur·e·s est actuellement "
+"désactivé."
+
+msgid "user.noRoles.regReviewer"
+msgstr "S’inscrire en tant qu’évaluateur·rice"
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Oui, demande du rôle {$userGroup}."
+
+msgid "user.register.contextsPrompt"
+msgstr "Auprès de quelles maisons d’édition souhaitez-vous vous enregistrer ?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Demander les rôles suivants."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"Si vous avez demandé à être évaluateur ou évaluatrice pour une maison d’"
+"édition, veuillez indiquer vos domaines d’intérêt."
+
+msgid "user.role.manager"
+msgstr "Gestionnaire"
+
+msgid "user.role.pressEditor"
+msgstr "Responsable d’édition"
+
+msgid "user.role.subEditor"
+msgstr "Responsable de collection"
+
+msgid "user.role.copyeditor"
+msgstr "Éditeur·rice"
+
+msgid "user.role.productionEditor"
+msgstr "Responsable de production"
+
+msgid "user.role.managers"
+msgstr "Gestionnaires"
+
+msgid "user.role.subEditors"
+msgstr "Responsables de collection"
+
+msgid "user.role.copyeditors"
+msgstr "Éditeur·rice·s"
+
+msgid "user.role.proofreaders"
+msgstr "Correcteurs/trices d’épreuves"
+
+msgid "user.role.productionEditors"
+msgstr "Responsables de production"
+
+msgid "user.register.selectContext"
+msgstr "Sélectionner une maison d’édition à laquelle vous enregistrer :"
+
+msgid "user.register.privacyStatement"
+msgstr "Déclaration de confidentialité"
+
+msgid "user.register.registrationDisabled"
+msgstr ""
+"Cette maison d’édition n’accepte pas pour l’instant d’inscriptions "
+"d’utilisateurs."
+
+msgid "user.register.readerDescription"
+msgstr "Notifié par courriel lors de la publication d’une monographie."
+
+msgid "user.register.authorDescription"
+msgstr "Possibilité de soumettre des éléments à la maison d’édition."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr ""
+"Disposé à faire des évaluations par les pairs des soumissions à la maison "
+"d’édition."
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+"Identifier les intérêts d’évaluation (questions de fond et méthodes de "
+"recherche) :"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Vous devez sélectionner au moins un rôle"
+
+msgid "site.noPresses"
+msgstr "Il n’y a pas de maison d’édition disponible."
+
+msgid "site.pressView"
+msgstr "Voir le site de l’éditeur"
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} ou {$viewSubmissions}."
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"Dans le cadre de ce processus, les auteur·e·s doivent vérifier que leur "
+"soumission est conforme aux directives suivantes. Les propositions qui ne "
+"les respectent pas peuvent être renvoyées à leurs auteur·e·s."
+
+msgid "about.aboutOMPPress"
+msgstr ""
+"Cette maison d’édition utilise Open Monograph Press {$ompVersion}, un "
+"logiciel de gestion et d’édition à code source libre développé, pris en "
+"charge et distribué librement par le Public Knowledge Project sous la "
+"license publique générale GNU. Visitez le site Web de PKP pour en apprendre plus sur l’application. Veuillez contacter la maison d’édition directement pour "
+"toute question sur les publications ou les soumissions."
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"Pour une prise en charge complète d’Unicode (UTF-8), sélectionner UTF-8 pour "
+"tous les paramètres de jeux de caractères. Veuillez noter que cette prise en "
+"charge exige actuellement un serveur de base de données MySQL >= 4.1.1 ou "
+"PostgreSQL >= 7.1. Veuillez aussi noter que la prise en charge complète d’"
+"Unicode exige PHP >= 4.3.0 compilé avec le soutien pour la bibliothèquembstring(activée "
+"par défaut dans les plus récentes installations PHP). Vous aurez peut-être "
+"des problèmes à utiliser les jeux de caractères étendus si votre serveur ne "
+"répond pas à ces exigences.\n"
+"
\n"
+"Actuellement, votre serveur prend en charge mbstring : "
+"{$supportsMBString}"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"La date d’échéance pour le cycle {$round} d’évaluation de la soumission "
+"{$submissionId} par {$reviewerName} a été établie à {$dueDate}."
+
+msgid "log.editor.restored"
+msgstr "La soumission {$submissionId} a été replacé en file d’attente."
+
+msgid "notification.removedPublicationDate"
+msgstr "La date de publication a été supprimée."
+
+msgid "about.aboutOMPSite"
+msgstr ""
+"Cette maison d’édition utilise Open Monograph Press {$ompVersion}, un "
+"logiciel de gestion et d’édition à code source libre développé, pris en "
+"charge et distribué librement par le Public Knowledge Project sous la "
+"license publique générale GNU. Visitez le site Web de PKP pour en apprendre plus sur l’application. Veuillez "
+"contacter directement le site pour toute question concernant ses maisons d’"
+"édition et les soumissions."
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"IMPORTANT!
\n"
+"L’installateur n’a pas pu écraser automatiquement le fichier de "
+"configuration. Avant de tenter d’utiliser le système, veuillez ouvrir "
+"config.inc.php dans un éditeur de texte approprié et remplacer son "
+"contenu par le contenu de la zone de texte ci-dessous.
"
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"{$editorName} a marqué le cycle {$round} d’évaluation pour la soumission "
+"{$submissionId} comme non considéré."
+
+msgid "log.proofread.assign"
+msgstr ""
+"{$assignerName} a assigné {$proofreaderName} à la correction d’épreuves de "
+"la soumission {$submissionId}."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Le format de publication a été supprimé."
+
+msgid "notification.removedSalesRights"
+msgstr "Les droits de vente ont été supprimés."
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. Les fichiers et répertoires suivants (et leur contenu) doivent être "
+"accessibles en écriture :
\n"
+"\t\t\n"
+"\t\t\t- config.inc.php est accessible en écriture (optionnel) : "
+"{$writable_config}
\n"
+"\t\t\t- public/ est accessible en écriture : "
+"{$writable_public}
\n"
+"\t\t\t- cache/ est accessible en écriture : {$writable_cache}
"
+"\n"
+"\t\t\t- cache/t_cache/ est accessible en écriture : "
+"{$writable_templates_cache}
\n"
+"\t\t\t- cache/t_compile/ est accessible en écriture : "
+"{$writable_templates_compile}
\n"
+"\t\t\t- cache/_db est accessible en écriture : "
+"{$writable_db_cache}
\n"
+"\t\t
\n"
+"\n"
+"\t\t2. Vous devez créer un répertoire pour conserver les fichiers "
+"téléchargés et il doit être accessible en écriture (voir « Paramètres du "
+"fichier » ci-dessous).
"
+
+msgid "installer.installationComplete"
+msgstr ""
+"L’installation de l’OMP s’est achevée avec succès.
\n"
+"Pour commencer à utiliser le système, connectez-"
+"vous avec le nom d’utilisateur et le mot de passe saisis à la page "
+"précédente.
\n"
+"Visitez notre forum "
+"communautaire ou inscrivez-vous à notre bulletin d’information pour les "
+"développeurs afin de recevoir des avis de sécurité et des mises à jour "
+"sur les prochaines versions, les nouveaux modules et les fonctionnalités "
+"prévues.
"
+
+msgid "notification.removedMarket"
+msgstr "Le marché a été supprimé."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Les métadonnées du catalogue ont été sauvegardées."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Une nouvelle monographie, « {$title} », a été soumise."
+
+msgid "notification.type.submissions"
+msgstr "Événements de soumission"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr ""
+"Une nouvelle monographie a été soumise et un·e éditeur·rice doit être "
+"assigné."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Cette soumission est en attente d’approbation dans l’outil d’entrée de "
+"catalogue avant d’apparaitre dans le catalogue public."
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"Les formats de fichiers peuvent être disponibles pour le téléchargement à "
+"partir du site web de la maison d’édition, en accès libre sans frais pour "
+"les lecteur·rice·s ou en vente directe (à l’aide d’un système de paiement en "
+"ligne, tel que configuré dans la section Distribution). Pour ce fichier, "
+"indiquez la base d’accès."
+
+msgid "search.results.orderBy.press"
+msgstr "Nom de la maison d’édition"
+
+msgid "installer.installationInstructions"
+msgstr ""
+"Merci d’avoir téléchargé Open Monograph Press {$version} "
+"du Public Knowledge Project. Avant de poursuivre, veuillez lire le fichier "
+"README inclus dans ce logiciel. Pour "
+"plus d’informations sur le Public Knowledge Project et ses projets "
+"logiciels, veuillez consulter le site web PKP. Si vous avez des rapports de bogues ou des "
+"demandes d’assistance technique concernant Open Monograph Press, consultez "
+"le forum "
+"d’assistance ou le système de rapport de bogues en ligne de PKP. Bien que "
+"le forum d’assistance soit la méthode de contact préférée, vous pouvez "
+"également envoyer un courriel à l’équipe à l’adresse pkp.contact@gmail.com.
"
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"La monographie ne sera pas répertoriée dans le catalogue tant qu’elle n’aura "
+"pas été publiée. Pour ajouter ce livre au catalogue, cliquez sur l’onglet "
+"Publication."
+
+msgid "payment.directSales.monograph.name"
+msgstr "Acheter la monographie ou télecharger le chapitre"
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"L’accès vous a été refusé car vous ne semblez pas être un évaluateur ou une "
+"évaluatrice désignée pour cette monographie."
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+"Cette transaction concerne l’achat d’un téléchargement direct d’une "
+"monographie ou d’un chapitre de monographie."
+
+msgid "user.authorization.seriesAssignment"
+msgstr ""
+"Vous essayez d’accéder à une monographie qui ne fait pas partie de votre "
+"collection."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"Accès refusé ! Le groupe d’utilisateurs sous lequel vous agissez "
+"actuellement n’a pas été assigné à cette étape du flux de travail. Veuillez "
+"vérifier les paramètres de votre maison d’édition."
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"OMP Version {$version}
\n"
+"\n"
+"Merci d’avoir téléchargé Open Monograph Press du Public "
+"Knowledge Project. Avant de procéder, veuillez lire les fichiers README et UPGRADE de ce logiciel. Pour de plus amples renseignements sur le "
+"Public Knowledge Project et ses projets de logiciels, veuillez consulter le "
+"site Web du PKP. Si "
+"vous rencontrez des bogues ou avez des questions d’ordre technique à poser à "
+"Open Monograph Press, consultez le forum ou consultez le système de rapport sur les bogues. "
+"Bien que le forum soit le mode préféré de communication, vous pouvez "
+"également envoyer un courriel à l’équipe au pkp.contact@gmail.com.
\n"
+"On recommande fortement que vous conserviez une copie de "
+"sauvegarde de votre base de données, de vos répertoires de fichiers et de "
+"votre répertoire d’installation OMP avant de continuer.
"
+
+msgid "about.pressContact"
+msgstr "Contacter l’éditeur"
+
+msgid "about.aboutContext"
+msgstr "À propos de la maison d’édition"
+
+msgid "about.editorialTeam"
+msgstr "Équipe éditoriale"
+
+msgid "about.editorialPolicies"
+msgstr "Politiques éditoriales"
+
+msgid "about.focusAndScope"
+msgstr "Énoncé de mission"
+
+msgid "about.seriesPolicies"
+msgstr "Politiques relatives aux collections et aux catégories"
+
+msgid "about.submissions"
+msgstr "Soumissions"
+
+msgid "about.onlineSubmissions"
+msgstr "Soumissions en ligne"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Se connecter"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Enregistrer"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr ""
+"{$login} à un compte existant ou {$register} un nouveau compte pour faire "
+"une soumission."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Faire une nouvelle soumission"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "Voir vos soumissions en attente"
+
+msgid "about.authorGuidelines"
+msgstr "Directives aux auteures et auteurs"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Liste de vérification de la soumission"
+
+msgid "about.copyrightNotice"
+msgstr "Mention de droit d’auteur"
+
+msgid "about.privacyStatement"
+msgstr "Déclaration de confidentialité"
+
+msgid "about.reviewPolicy"
+msgstr "Processus d’évaluation par les pairs"
+
+msgid "about.publicationFrequency"
+msgstr "Périodicité"
+
+msgid "about.openAccessPolicy"
+msgstr "Politiques sur le libre accès"
+
+msgid "about.pressSponsorship"
+msgstr "Parrainage de la maison d’édition"
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "Processus éditorial et d’édition d’OMP"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr ""
+"Plus d’informations sur le système de publication, la plate-forme et le flux "
+"de travail d’OMP/PKP."
+
+msgid "about.aboutSoftware"
+msgstr "À propos d’Open Monograph Press"
+
+msgid "help.searchReturnResults"
+msgstr "Retourner aux résultats de recherche"
+
+msgid "help.goToEditPage"
+msgstr "Ouvrir une nouvelle page pour modifier ces informations"
+
+msgid "installer.appInstallation"
+msgstr "Installation d’OMP"
+
+msgid "installer.ompUpgrade"
+msgstr "Mise à jour d’OMP"
+
+msgid "installer.installApplication"
+msgstr "Installer Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+"Si vous mettez à niveau une installation existante d’OMP, Cliquez ici ."
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Étapes de pré-installation"
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"Votre serveur permet actuellement le téléchargement de fichiers : "
+"{$allowFileUploads}"
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"Votre serveur permet actuellement le téléchargement de fichiers : "
+"{$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"La langue principale à utiliser dans ce système. Veuillez consulter la "
+"documentation d’OMP si vous êtes intéressé par la prise en charge de langues "
+"qui ne figurent pas dans cette liste."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Sélectionnez les langues supplémentaires à prendre en charge dans ce "
+"système. Ces langues seront disponibles pour les maisons d’édition hébergées "
+"sur le site. Des langues supplémentaires peuvent également être installées à "
+"tout moment à partir de l’interface d’administration du site. Les langues "
+"marquées d’un astérisque (*) peuvent être incomplètes."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Saisir le chemin d’accès complet à un répertoire existant dans lequel les "
+"fichiers téléchargés doivent être conservés. Ce répertoire ne doit pas être "
+"directement accessible par le web. Veuillez vous assurer que ce "
+"répertoire existe et qu’il est accessible en écriture avant l’installation"
+"strong>. Les noms de chemin Windows doivent utiliser des barres obliques, "
+"par exemple « C:/mypress/files »."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"OMP nécessite l’accès à une base de données SQL pour stocker ses données. "
+"Voir la configuration nécessaire ci-dessus pour une liste des base de "
+"données prises en charge. Dans les champs ci-dessus, fournir les paramètres "
+"à utiliser pour se connecter à la base de données."
+
+msgid "installer.upgradeApplication"
+msgstr "Mise à jour d’Open Monograph Press"
+
+msgid "installer.upgradeComplete"
+msgstr ""
+"La mise à jour d’OMP vers la version {$version} a été effectuée avec "
+"succès.
\n"
+"N’oubliez pas de remettre le paramètre « installed » dans votre fichier "
+"de configuration config.inc.php sur On.
\n"
+"Visitez notre forum "
+"communautaire ou inscrivez-vous à notre bulletin d’information pour les "
+"développeurs afin de recevoir des avis de sécurité et des mises à jour "
+"sur les prochaines versions, les nouveaux modules et les fonctionnalités "
+"prévues.
"
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"{$reviewerName} a refusé le cycle {$round} d’évaluation de la soumission "
+"{$submissionId}."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"{$reviewerName} a accepté le cycle {$round} d’évaluation de la soumission "
+"{$submissionId}."
+
+msgid "log.editor.decision"
+msgstr ""
+"Une décision de l’éditeur·rice ({$decision}) pour la monographie "
+"{$submissionId} a été enregistré par {$editorName}."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"Une recommendation de l’éditeur·rice ({$decision}) pour la monographie "
+"{$submissionId} a été enregistré par {$editorName}."
+
+msgid "log.editor.archived"
+msgstr "La soumission {$submissionId} a été archivée."
+
+msgid "log.editor.editorAssigned"
+msgstr ""
+"{$editorName} a été assigné comme éditeur·rice de la soumission "
+"{$submissionId}."
+
+msgid "log.proofread.complete"
+msgstr ""
+"{$proofreaderName} a soumis {$submissionId} pour sa planification au "
+"calendrier."
+
+msgid "log.imported"
+msgstr "{$userName} a importé la monographie {$submissionId}."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Un code d’identification a été ajouté."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Le code d’identification a été modifié."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Le code d’identification a été supprimé."
+
+msgid "notification.addedPublicationDate"
+msgstr "Une date de publication a été ajoutée."
+
+msgid "notification.editedPublicationDate"
+msgstr "La date de publication a été modifiée."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Le format de publication a été ajouté."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Le format de publication a été modifié."
+
+msgid "notification.addedSalesRights"
+msgstr "Des droits de vente ont été ajoutés."
+
+msgid "notification.editedSalesRights"
+msgstr "Les droits de vente ont été modifiés."
+
+msgid "notification.addedRepresentative"
+msgstr "Un représentant a été ajouté."
+
+msgid "notification.editedRepresentative"
+msgstr "Le représentant a été modifié."
+
+msgid "notification.removedRepresentative"
+msgstr "Le représentant a été supprimé."
+
+msgid "notification.addedMarket"
+msgstr "Un marché a été ajouté."
+
+msgid "notification.editedMarket"
+msgstr "Le marché a été modifié."
+
+msgid "notification.addedSpotlight"
+msgstr "Ajout à la rubrique « À la une »."
+
+msgid "notification.editedSpotlight"
+msgstr "Un titre à la une a été modifié."
+
+msgid "notification.removedSpotlight"
+msgstr "Un titre à la une a été supprimé."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Les métadonnées du format de publication ont été sauvegardées."
+
+msgid "notification.proofsApproved"
+msgstr "Épreuves approuvées."
+
+msgid "notification.removedSubmission"
+msgstr "La soumission a été supprimée."
+
+msgid "notification.type.editing"
+msgstr "Événements d’édition"
+
+msgid "notification.type.reviewing"
+msgstr "Événements d’évaluation"
+
+msgid "notification.type.site"
+msgstr "Événements du site"
+
+msgid "notification.type.public"
+msgstr "Annonces publiques"
+
+msgid "notification.type.copyeditorRequest"
+msgstr "On vous a demandé de réviser les corrections dans « {$file} »."
+
+msgid "notification.type.layouteditorRequest"
+msgstr ""
+"Vous avez été invité à réviser la mise en page pour le titre « {$title} »."
+
+msgid "notification.type.indexRequest"
+msgstr "Vous avez été invité à créer un index pour « {$title} »."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Le processus d’évaluation interne a commencé."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "En attente d’approbation."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "Aucun mode de paiement n’a été configuré."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"Il faut configurer un mode de paiement avant de définir les paramètres de "
+"commerce électronique."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Gestion du catalogue"
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+"La monographie a été approuvée. Veuillez consulter la page Marketing et "
+"Publication pour gérer ses détails dans le catalogue, en utilisant les liens "
+"ci-dessus."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+"L'accès vous a été refusé car il apparaît que vous n'êtes pas un évaluateur "
+"ou une évaluatrice valide pour cette monographie."
+
+msgid "user.authorization.monographAuthor"
+msgstr ""
+"L’accès vous a été refusé car vous ne semblez pas être l’auteur·e de cette "
+"monographie."
+
+msgid "user.authorization.monographFile"
+msgstr "L’accès au fichier de la monographie spécifiée vous a été refusé."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "Vous avez demandé une monographie non valide ou inexistante !"
+
+msgid "user.authorization.noContext"
+msgstr "Aucune maison d’édition correspondant à votre demande n’a été trouvée."
+
+msgid "notification.type.userComment"
+msgstr "Un·e lecteur·rice a fait un commentaire sur « $title} »."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr ""
+"Accès refusé ! Vous n’avez pas été assigné à cette étape du flux de travail."
+
+msgid "payment.directSales"
+msgstr "Télécharger à partir du site de la maison d’édition"
+
+msgid "payment.directSales.price"
+msgstr "Prix"
+
+msgid "payment.directSales.availability"
+msgstr "Disponibilité"
+
+msgid "payment.directSales.catalog"
+msgstr "Catalogue"
+
+msgid "payment.directSales.approved"
+msgstr "Approuvé"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Prix ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr ""
+"Les prix doivent être uniquement numériques. Ne pas inclure de symboles "
+"monétaires."
+
+msgid "payment.directSales.directSales"
+msgstr "Ventes directes"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Pas disponible"
+
+msgid "payment.directSales.notSet"
+msgstr "Non configuré"
+
+msgid "payment.directSales.openAccess"
+msgstr "Accès libre"
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Un prix numérique valide est requis."
+
+msgid "payment.directSales.purchase"
+msgstr "Achat ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Télécharger {$format}"
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+"Rechargement du fichier de correspondance de l’aide XML {$filename} à la "
+"recherche de {$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Livre"
+
+msgid "submission.pdf.download"
+msgstr "Télécharger ce document PDF"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Enregistrement auprès d’autres maisons d’édition"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "Masquer les autres maisons d’édition"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "Une soumission publiée non valide a été spécifiée."
+
+msgid "catalog.coverImageTitle"
+msgstr "Image de la page de couverture"
+
+msgid "grid.catalogEntry.chapters"
+msgstr "Chapitres"
+
+msgid "search.results.orderBy.article"
+msgstr "Titre de l’article"
+
+msgid "search.results.orderBy.author"
+msgstr "Auteur·e"
+
+msgid "search.results.orderBy.date"
+msgstr "Date de publication"
+
+msgid "search.results.orderBy.monograph"
+msgstr "Titre de la monographie"
+
+msgid "search.results.orderBy.popularityAll"
+msgstr "Popularité (global)"
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr "Popularité (dernier mois)"
+
+msgid "search.results.orderBy.relevance"
+msgstr "Pertinence"
+
+msgid "search.results.orderDir.asc"
+msgstr "Croissant"
+
+msgid "search.results.orderDir.desc"
+msgstr "Décroissant"
+
+msgid "section.section"
+msgstr "Collection"
+
+msgid "search.cli.rebuildIndex.indexing"
+msgstr "Indexation de « {$pressName} »"
+
+msgid "search.cli.rebuildIndex.unknownPress"
+msgstr ""
+"Le chemin d'accès à la maison d'édition « {$pressPath} » n'a pas pu être "
+"résolu en une maison d'édition."
+
+msgid "search.cli.rebuildIndex.indexingByPressNotSupported"
+msgstr ""
+"Cette fonctionnalité de recherche ne permet pas la réindexation par éditeur."
diff --git a/locale/fr_FR/manager.po b/locale/fr_FR/manager.po
new file mode 100644
index 00000000000..6536a2e1e16
--- /dev/null
+++ b/locale/fr_FR/manager.po
@@ -0,0 +1,1787 @@
+# Weblate Admin , 2023.
+# Rudy Hahusseau , 2023.
+# Germán Huélamo Bautista , 2023, 2024.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2024-05-31 17:17+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
+"Language-Team: French \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 4.18.2\n"
+
+msgid "manager.language.confirmDefaultSettingsOverwrite"
+msgstr ""
+"Ceci remplacera tous les éventuels paramètres régionaux de la maison d’"
+"édition précédemment spécifiés pour ce paramètre régional"
+
+msgid "manager.series.form.mustAllowPermission"
+msgstr ""
+"Assurez-vous qu’au moins une case a été cochée pour chaque tâche assignée au/"
+"à la responsable de collection."
+
+msgid "manager.languages.noneAvailable"
+msgstr ""
+"Désolé, aucune autre langue n’est disponible. Contactez l’administrateur du "
+"site si vous souhaitez ajouter d’autres langues à cette maison d’édition."
+
+msgid "manager.series.submissionsToThisSection"
+msgstr "Soumissions envoyées pour cette collection"
+
+msgid "manager.languages.primaryLocaleInstructions"
+msgstr "Cette langue sera la langue par défaut du site de la maison d’édition."
+
+msgid "manager.series.form.reviewFormId"
+msgstr ""
+"Merci de vérifier que vous avez choisi un formulaire d’évaluation valide."
+
+msgid "manager.series.submissionIndexing"
+msgstr "Ne sera pas inclus dans l’index de la maison d’édition"
+
+msgid "manager.series.editorRestriction"
+msgstr ""
+"Seuls les responsables éditoriaux et les responsables de collection peuvent "
+"soumettre de nouveaux éléments."
+
+msgid "manager.series.confirmDelete"
+msgstr "Voulez-vous vraiment supprimer définitivement cette collection ?"
+
+msgid "manager.series.indexed"
+msgstr "Indexé"
+
+msgid "manager.series.open"
+msgstr "Soumissions actives"
+
+msgid "manager.series.readingTools"
+msgstr "Outils de lecture"
+
+msgid "manager.series.submissionReview"
+msgstr "Ne sera pas évalué par les pairs"
+
+msgid "manager.series.abstractsNotRequired"
+msgstr "N’exige pas de résumé"
+
+msgid "manager.series.disableComments"
+msgstr "Désactiver les commentaires des lecteur·rice·s pour cette collection."
+
+msgid "manager.series.book"
+msgstr "Collection de livres"
+
+msgid "manager.series.create"
+msgstr "Créer une collection"
+
+msgid "manager.series.policy"
+msgstr "Description de la collection"
+
+msgid "manager.series.assigned"
+msgstr "Responsables pour cette collection"
+
+msgid "emailTemplate.variable.context.contextAcronym"
+msgstr "Initiales de la maison d’édition"
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr "L’adresse mail du contact principal de la maison d’édition"
+
+msgid "emailTemplate.variable.context.mailingAddress"
+msgstr "L’adresse postale de la maison d’édition"
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr "Nom du type de paiement"
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr "Montant dû"
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr "Monnaie du montant dû, par exemple EUR"
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr "Nom du site web lorsque plusieurs maisons d’édition sont hébergées"
+
+msgid "emailTemplate.variable.statisticsReportNotify.publicationStatsLink"
+msgstr "Le lien vers la page des statistiques sur les livres"
+
+msgid "mailable.validateEmailContext.name"
+msgstr "Valider l’e-mail (enregistrement auprès de la maison d’édition)"
+
+msgid "doi.displayName"
+msgstr "DOI"
+
+msgid "doi.manager.displayName"
+msgstr "DOI"
+
+msgid "doi.description"
+msgstr ""
+"Ce module permet d’attribuer des identifiants d’objets numériques (DOI) aux "
+"monographies, chapitres, formats de publication et fichiers dans OMP."
+
+msgid "doi.readerDisplayName"
+msgstr "DOI :"
+
+msgid "doi.manager.settings.description"
+msgstr ""
+"Veuillez configurer le module DOI afin de gérer et utiliser les DOI dans OMP "
+":"
+
+msgid "doi.manager.settings.explainDois"
+msgstr "Veuillez choisir les objets publiés auxquels seront attribués des DOI :"
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr "Monographies"
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr "Chapitres"
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr "Formats de publication"
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr "Fichiers"
+
+msgid "doi.manager.settings.doiPrefix"
+msgstr "Préfixe DOI"
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr "Le préfixe DOI est obligatoire et doit être sous la forme 10.xxxx."
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr ""
+"Par exemple, press%ppub%r pourrait créer un DOI tel que 10.1234/"
+"pressESPpub100"
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr "pour des livres"
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr "pour des chapitres"
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr "pour des formats de publication"
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr "pour des fichiers"
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr "Merci de saisir le modèle de suffixe DOI pour les livres."
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr "Merci de saisir le modèle de suffixe DOI pour les chapitres."
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr ""
+"Merci de saisir le modèle du suffixe DOI pour les formats de publication."
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr "Merci de saisir le modèle du suffixe DOI pour les fichiers."
+
+msgid "doi.manager.settings.doiReassign"
+msgstr "Réassigner les DOI"
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr "Voulez-vous supprimer l’ensemble des DOI existants ?"
+
+msgid "doi.editor.doi"
+msgstr "DOI"
+
+msgid "doi.editor.doi.description"
+msgstr "Le DOI doit commencer par {$prefix}."
+
+msgid "doi.editor.doi.assignDoi"
+msgstr "Attribuer"
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr "chapitre"
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr "format de publication"
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr "livre"
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr "fichier"
+
+msgid "doi.editor.customSuffixMissing"
+msgstr ""
+"Le DOI ne peut pas être attribué car le suffixe personnalisé est manquant."
+
+msgid "doi.editor.missingParts"
+msgstr ""
+"Vous ne pouvez pas générer un DOI parce qu’il manque des données dans une ou "
+"plusieurs parties du modèle de DOI."
+
+msgid "doi.editor.patternNotResolved"
+msgstr "Le DOI ne peut pas être attribué car il contient un modèle non résolu."
+
+msgid "doi.editor.canBeAssigned"
+msgstr ""
+"Ce que vous voyez est un aperçu du DOI. Cochez la case et enregistrez le "
+"formulaire pour attribuer le DOI."
+
+msgid "doi.editor.assigned"
+msgstr "Le DOI est attribué à cet objet : {$pubObjectType}."
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr ""
+"Le suffixe DOI attribué est déjà utilisé pour un autre élément publié. "
+"Veuillez entrer un suffixe DOI unique pour chaque élément."
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr "Supprimer"
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr "Voulez-vous vraiment supprimer le DOI existant ?"
+
+msgid "doi.editor.assignDoi"
+msgstr "Attribuer le DOI {$pubId} à cet objet de type {$pubObjectType}"
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr ""
+"Le DOI {$pubId} ne peut pas être attribué car il contient un modèle non "
+"résolu."
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr "Le DOI {$pubId} a été attribué."
+
+msgid "doi.editor.missingPrefix"
+msgstr "Le DOI doit commencer par {$doiPrefix}."
+
+msgid "doi.editor.preview.publication"
+msgstr "Le DOI pour cette publication sera {$doi}."
+
+msgid "doi.editor.preview.publication.none"
+msgstr "Un DOI n’a pas été attribué pour cette publication."
+
+msgid "doi.editor.preview.chapters"
+msgstr "Chapitre : {$title}"
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr "Format de publication : {$title}"
+
+msgid "doi.editor.preview.files"
+msgstr "Fichier : {$title}"
+
+msgid "doi.editor.preview.objects"
+msgstr "Élément"
+
+msgid "doi.manager.submissionDois"
+msgstr "DOI de livres"
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr ""
+"Ce courriel informe l’auteur·e que sa soumission est envoyée à l’étape d’"
+"évaluation interne."
+
+msgid "manager.institutions.noContext"
+msgstr "La maison d’édition de cet établissement n’a pas été trouvée."
+
+msgid "manager.manageEmails.description"
+msgstr ""
+"Modifier les messages envoyés dans les courriels de cette maison d’édition."
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr "Envoyer pour évaluation interne"
+
+msgid "mailable.indexRequest.name"
+msgstr "Index demandé"
+
+msgid "mailable.indexComplete.name"
+msgstr "Index complété"
+
+msgid "mailable.layoutComplete.name"
+msgstr "Épreuves terminées"
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr "Nouvelle version créée"
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr ""
+"Ce courriel informe automatiquement les éditeur·rice·s désigné·e·s lorsqu’"
+"une nouvelle version de la soumission a été créée."
+
+msgid "manager.series.unassigned"
+msgstr "Responsables de collection disponibles"
+
+msgid "manager.sections.alertDelete"
+msgstr ""
+"Avant de pouvoir supprimer cette collection, vous devez déplacer les "
+"soumissions associées à cette collection vers d’autres collections."
+
+msgid "manager.settings.publisher.identity.description"
+msgstr ""
+"Ces champs sont obligatoires pour publier des métadonnées ONIX valides."
+
+msgid "manager.people.allSiteUsers"
+msgstr "Inscrire un utilisateur à cette maison d’édition à partir de ce site"
+
+msgid "manager.series.form.abbrevRequired"
+msgstr "Un titre abrégé est requis pour cette collection."
+
+msgid "manager.payment.options.enablePayments"
+msgstr ""
+"Les paiements seront activés pour cette maison d’édition. Veuillez noter que "
+"les utilisateurs devront se connecter pour effectuer des paiements."
+
+msgid "manager.settings.publisherCodeType"
+msgstr "Type de code de la maison d’édition"
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr "Ce n’est pas un type de code éditeur valide."
+
+msgid "manager.people.confirmRemove"
+msgstr ""
+"Supprimer cet utilisateur de cette maison d’édition ? Cette action "
+"désinscrira l’utilisateur de tous les rôles dans cette maison d’édition."
+
+msgid "manager.setup.details.description"
+msgstr ""
+"Nom de la maison d’édition, contacts, commanditaires, et moteurs de "
+"recherche."
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr "Vues du résumé de la monographie"
+
+msgid "manager.people.mergeUsers.from.description"
+msgstr ""
+"Sélectionner un utilisateur à fusionner au compte d’un autre utilisateur ("
+"par ex. : lorsque quelqu’un possède deux comptes utilisateur). Le compte "
+"sélectionné en premier sera supprimé et ses soumissions, assignations, etc. "
+"seront affectées au second compte."
+
+msgid "manager.setup.contextAbout.description"
+msgstr ""
+"Veuillez inclure toute information sur votre maison d’édition susceptible d’"
+"intéresser les lecteur·rice·s, les auteur·e·s ou les évaluateur·rice·s. Il "
+"peut s’agir de votre politique de libre accès, de la portée et de l’objectif "
+"de la maison d’édition, de la divulgation des sponsors et de l’histoire de "
+"la maison d’édition."
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr "Afficher les livres à la une sur la page d’accueil"
+
+msgid "manager.tools.importExport"
+msgstr ""
+"Tous les outils associés spécifiquement à l’importation et à l’exportation "
+"des données (maisons d’édition, monographies, utilisateurs)"
+
+msgid "manager.people.syncUserDescription"
+msgstr ""
+"La synchronisation de l’inscription inscrira tous·tes les utilisateur·rice·s "
+"de la maison d’édition spécifiée dans cette maison d’édition, et le rôle qui "
+"leur avait été assigné dans la maison d’édition spécifiée leur sera attribué "
+"dans cette maison d’édition. Cette fonction permet de synchroniser un groupe "
+"d’utilisateurs communs (ex. : évaluateur·rice·s) parmi les différentes "
+"maisons d’édition."
+
+msgid "manager.setup.contextSummary"
+msgstr "Résumé de la maison d’édition"
+
+msgid "manager.setup.disciplineDescription"
+msgstr ""
+"Utile lorsque la maison d’édition va au-delà des limites de la discipline ou "
+"lorsque les auteur·e·s présentent des soumissions multidisciplinaires."
+
+msgid "manager.setup.enableDois.description"
+msgstr ""
+"Permettre l’attribution d’identificateurs d’objets numériques (DOI) aux "
+"travaux publiés par cette maison d’édition."
+
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr ""
+"Sélectionnez les types de travaux publiés par cette maison d’édition "
+"auxquels des DOI doivent être attribués. La plupart des maisons d’édition "
+"attribuent des DOI aux monographies/chapitres, mais il se peut que vous "
+"souhaitiez attribuer des DOI à tous les documents publiés."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr ""
+"Afin d’envoyer des courriels non livrés à une adresse de rebond, l"
+"’administrateur-trice du site Web doit activer l’option "
+"allow_envelope_sender
dans le fichier de configuration. Une "
+"configuration particulière du serveur pourrait être requise, tel qu’indiqué "
+"dans la documentation d’OMP."
+
+msgid "manager.people.confirmDisable"
+msgstr ""
+"Désactiver cet utilisateur ? Ceci empêchera l’utilisateur de se connecter au "
+"système.\n"
+"\n"
+"Vous pouvez éventuellement fournir à l’utilisateur une raison expliquant la "
+"désactivation de son compte."
+
+msgid "manager.setup.copyediting"
+msgstr "Éditeur·rice·s"
+
+msgid "manager.people.noAdministrativeRights"
+msgstr ""
+"Vous ne possédez pas les droits administratifs vous permettant de modifier "
+"cet utilisateur parce que :\n"
+"\t\t\n"
+"\t\t\t- L’utilisateur est un administrateur du site
\n"
+"\t\t\t- L’utilisateur est actif dans des maisons d’édition que vous ne "
+"gérez pas
\n"
+"\t\t
\n"
+"\tCette tâche doit être effectuée par un administrateur du site.\n"
+"\t"
+
+msgid "manager.setup.copyeditInstructionsDescription"
+msgstr ""
+"Les directives pour la correction d’épreuves seront mises à la disposition "
+"des éditeur·rice·s, auteur·e·s, maquettistes et responsables de collection à "
+"l’étape d’édition de la soumission. Vous trouverez ci-dessous un ensemble de "
+"directives par défaut en HTML, qui peuvent être modifiées ou remplacées par "
+"le·la gestionnaire en tout temps (en HTML ou texte brut)."
+
+msgid "manager.setup.enablePublicMonographId"
+msgstr ""
+"Des identifiants personnalisés seront utilisés pour identifier les éléments "
+"publiés."
+
+msgid "manager.setup.enablePublicGalleyId"
+msgstr ""
+"Des identifiants personnalisés seront utilisés pour identifier les épreuves ("
+"par exemple, les fichiers HTML ou PDF) des articles publiés."
+
+msgid "manager.setup.information.description"
+msgstr ""
+"De brèves descriptions de la maison d’édition à l’intention des "
+"bibliothécaires et des auteur·e·s et lecteur·rice·s potentiels. Elles sont "
+"disponibles dans la barre latérale du site lorsque le bloc d’information a "
+"été ajouté."
+
+msgid "manager.setup.focusAndScope.description"
+msgstr ""
+"Décrire aux auteur·e·s, aux lecteur·rice·s et aux bibliothécaires la gamme "
+"de monographies et d’autres documents que publie la maison d’édition."
+
+msgid "manager.setup.keyInfo.description"
+msgstr ""
+"Décrivez brièvement votre maison d’édition et identifiez les responsables "
+"éditoriaux, les éditeur·rice·s et les autres membres de l’équipe éditoriale."
+
+msgid "manager.setup.layoutInstructionsDescription"
+msgstr ""
+"Les instructions de mise en page peuvent être préparées pour la mise en "
+"forme des livres publiés dans la maison d’édition et être saisies ci-dessous "
+"en HTML ou en texte brut. Elles seront mises à la disposition du·de la "
+"maquettiste et du·de la responsable de collection sur la page d’édition de "
+"chaque soumission. Étant donné que chaque maison d’édition peut utiliser ses "
+"propres formats de fichiers, normes bibliographiques, feuilles de style, "
+"etc., aucun ensemble d’instructions par défaut n’est fourni."
+
+msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
+msgstr ""
+"OMP se conforme à l’Open Archives Initiative Protocol for Metadata Harvesting, qui "
+"constitue, à l’échelle mondiale, la nouvelle norme d’indexation des "
+"ressources numériques issues de la recherche. Les auteur·e·s utiliseront un "
+"modèle semblable pour fournir des métadonnées pour leur soumission. Le·La "
+"gestionnaire devra sélectionner les catégories pour l’indexation et "
+"présenter aux auteur·e·s et auteures des exemples pertinents afin de les "
+"aider à indexer leur travail."
+
+msgid "manager.setup.layoutTemplatesDescription"
+msgstr ""
+"Des modèles de chaque format standard publié par la maison d’édition (par "
+"exemple, monographie, critique de livre, etc.) peuvent être téléchargés dans "
+"la section Mise en page, dans tous les formats (par exemple, pdf, doc, etc.)"
+". Ils contiennent des annotations sur la police de caractères, la taille, "
+"les marges, etc. qui guideront les maquettistes et les correcteur·rice·s "
+"d’épreuves."
+
+msgid "manager.setup.management.description"
+msgstr ""
+"Accès et sécurité, planification, annonces, édition, mise en page et "
+"correction d’épreuves."
+
+msgid "manager.setup.notifyAllAuthorsOnDecision"
+msgstr ""
+"Lorsque vous utilisez l’option Notifier l’auteur, ajoutez les adresses "
+"électroniques de tous les coauteur·e·s pour les soumissions à auteur·e·s "
+"multiples, et pas seulement celle de l’utilisateur qui envoie la soumission."
+
+msgid "manager.setup.noUseProofreaders"
+msgstr ""
+"Le·La responsable éditorial ou de collection assigné·e à la soumission "
+"vérifiera les épreuves."
+
+msgid "manager.setup.aboutPress.description"
+msgstr ""
+"Veuillez inclure toute information sur votre maison d’édition susceptible d’"
+"intéresser les lecteur·rice·s, les auteur·e·s ou les évaluateur·rice·s. Il "
+"peut s’agir de votre politique de libre accès, de la portée et de l’objectif "
+"de la maison d’édition, de la notice sur les droits d’auteur, de la "
+"divulgation des sponsors et de l’histoire de la maison d’édition."
+
+msgid "manager.setup.proofingInstructionsDescription"
+msgstr ""
+"Les directives pour la correction d’épreuves seront mises à la disposition "
+"des correcteur·rice·s, auteur·e·s, maquettistes et responsables de "
+"collection à l’étape d’édition de la soumission. Vous trouverez ci-dessous "
+"un ensemble de directives par défaut en HTML, qui peuvent être modifiées ou "
+"remplacées par le·la gestionnaire en tout temps (en HTML ou texte brut)."
+
+msgid "manager.setup.policies.description"
+msgstr ""
+"Orientation, évaluation par les pairs, rubriques, confidentialité, sécurité "
+"et autres sujets connexes."
+
+msgid "manager.setup.pressHomepageContentDescription"
+msgstr ""
+"La page d’accueil de la maison d’édition est constituée par défaut de liens "
+"de navigation. Il est possible d’ajouter du contenu à la page d’accueil en "
+"utilisant une ou toutes les options suivantes, qui apparaîtront dans l’ordre "
+"indiqué."
+
+msgid "manager.setup.appearanceDescription"
+msgstr ""
+"Cette page permet de configurer différents éléments de l’apparence de la "
+"maison d’édition, notamment les éléments de l’en-tête et du pied de page, le "
+"style et le thème de la maison d’édition, ainsi que la manière dont les "
+"listes d’informations sont présentées aux utilisateurs."
+
+msgid "manager.setup.publicationScheduleDescription"
+msgstr ""
+"Les éléments de la publication peuvent être publiés collectivement, dans le "
+"cadre d’une monographie dotée de sa propre table des matières. Il est "
+"également possible de publier des articles individuels dès qu’ils sont "
+"prêts, en les ajoutant à la table des matières du volume « en cours ». Dans "
+"la section « À propos de la maison d’édition », veuillez fournir aux "
+"lecteur·rice·s une déclaration sur le système utilisé par la maison d’"
+"édition et sur la fréquence de publication prévue."
+
+msgid "manager.setup.reviewPolicy"
+msgstr "Politique d’évaluation"
+
+msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
+msgstr ""
+"Pour activer ces options, l’administrateur du site doit activer l’option "
+"scheduled_tasks dans le fichier de configuration OMP. Il pourrait s’"
+"avérer nécessaire d’intégrer d’autres configurations au serveur pour "
+"supporter cette fonctionnalité (qui n’est peut-être pas possible sur tous "
+"les serveurs), tel qu’indiqué dans les documents d’OMP."
+
+msgid "manager.setup.searchDescription.description"
+msgstr ""
+"Fournir une brève description de la maison d’édition (entre 50 et 300 "
+"caractères) que les moteurs de recherche peuvent afficher lorsqu’ils "
+"incluent la maison d’édition dans les résultats de la recherche."
+
+msgid "manager.setup.searchEngineIndexing.description"
+msgstr ""
+"Aider les moteurs de recherche comme Google à découvrir et à afficher votre "
+"site. Nous vous encourageons à envoyer votre plan de site (sitemap)."
+
+msgid "manager.setup.showGalleyLinksDescription"
+msgstr "Toujours afficher les liens des épreuves et indiquer l’accès restreint."
+
+msgid "manager.setup.stepsToPressSite"
+msgstr "Cinq étapes pour configurer le site Web d’une maison d’édition"
+
+msgid "manager.setup.typeExamples"
+msgstr ""
+"(par exemple : Enquête historique ; Quasi-expérimental ; Analyse littéraire ;"
+" Sondage/Entrevue)"
+
+msgid "manager.setup.useLayoutEditors"
+msgstr ""
+"Un.e maquettiste sera nommé.e pour préparer les fichiers HTML, PDF, etc. "
+"pour la publication électronique."
+
+msgid "manager.setup.subjectExamples"
+msgstr ""
+"(Par exemple : Photosynthèse ; Trous noirs ; Cartes en quadrichromie ; "
+"Théorème de Bayes)"
+
+msgid "manager.setup.publicationFormat.physicalFormat"
+msgstr "S’agit-il d’un format physique (non numérique) ?"
+
+msgid "manager.setup.newPublicationFormatDescription"
+msgstr ""
+"Pour créer un nouveau format de publication, veuillez remplir le formulaire "
+"ci-dessous et cliquer sur le bouton « Créer »."
+
+msgid "manager.setup.editorialTeam.description"
+msgstr ""
+"Liste des responsables éditoriaux et d’autres personnes associées à la "
+"maison d’édition."
+
+msgid "manager.setup.genresDescription"
+msgstr ""
+"Ces genres sont utilisés pour nommer les fichiers et présentés dans un menu "
+"déroulant lorsque les fichiers sont téléchargés. Les genres ## permettent à "
+"l’utilisateur d’associer le fichier au livre entier 99Z ou à un chapitre "
+"particulier par un chiffre (par exemple, 02)."
+
+msgid "manager.setup.prospectusDescription"
+msgstr ""
+"Le prospectus est un document rédigé par la maison d’édition qui aide les "
+"auteur·e·s à décrire les documents soumis de façon à ce que l’éditeur puisse "
+"déterminer la valeur de la soumission. Un prospectus peut contenir plusieurs "
+"éléments, comme les débouchés commerciaux ou la valeur théorique. Dans tous "
+"les cas, la maison d’édition devrait rédiger un prospectus qui s’ajoutera à "
+"son agenda de publication."
+
+msgid "manager.setup.copyrightNotice.sample"
+msgstr ""
+"Mentions de droit d’auteurs de Creative Commons proposés
\n"
+"1. Politique proposée pour les maisons d’édition qui offrent l’accès "
+"libre
\n"
+"Les auteur·e·s qui publient dans cette maison d’édition acceptent les termes "
+"suivants :\n"
+"\n"
+"\t- Les auteur·e·s conservent le droit d’auteur et accordent à la maison d’"
+"édition le droit de première publication, l’ouvrage étant alors disponible "
+"simultanément, sous la licence Licence d’attribution Creative "
+"Commons permettant à d’autres de partager l’ouvrage tout en "
+"reconnaissant la paternité et la publication initiale dans cette maison "
+"d’édition.
\n"
+"\t- Les auteur·e·s peuvent conclure des ententes contractuelles "
+"additionnelles et séparées pour la diffusion non exclusive de la version de "
+"l’ouvrage publiée par la maison d’édition (par ex., le dépôt institutionnel "
+"ou la publication dans un livre), accompagné d’une mention reconnaissant sa "
+"publication initiale dans cette maison d’édition.
\n"
+"\t- Les auteur·e·s ont le droit et sont encouragés à publier leur ouvrage "
+"en ligne (par ex., dans un dépôt institutionnel ou sur le site Web d’un "
+"établissement) avant et pendant le processus de soumission, car cela peut "
+"mener à des échanges fructueux ainsi qu’à un nombre plus important, plus "
+"rapidement, de références à l’ouvrage publié (Voir The Effect of Open "
+"Access).
\n"
+"
\n"
+"\n"
+"Politique suggérée aux maison d’édition offrant l’accès libre "
+"différé
\n"
+"Les auteurs publiant dans cette maison d’édition acceptent les termes "
+"suivants :\n"
+"\n"
+"\t- Les auteur·e·s détiennent le droit d’auteur et accordent à la maison d’"
+"édition le droit de première publication, avec l’ouvrage disponible "
+"simultanément [SPÉCIFIER LA PÉRIODE DE TEMPS] après publication, sous la "
+"licence Licence d’attribution Creative Commons qui permet à d’autres de "
+"partager l’ouvrage en reconnaissant la paternité et la publication initiale "
+"dans cette revue.
\n"
+"\t- Les auteur·e·s peuvent conclure des ententes contractuelles "
+"additionnelles et séparées pour la diffusion non exclusive de la version de "
+"l’ouvrage publiée par la maison d’édition (par ex., le dépôt institutionnel "
+"ou la publication dans un livre), accompagné d’une mention reconnaissant sa "
+"publication initiale dans cette maison d’édition.
\n"
+"\t- Les auteur·e·s ont le droit et sont encouragés à publier leur ouvrage "
+"en ligne (par ex., dans un dépôt institutionnel ou sur le site Web d’un "
+"établissement) avant et pendant le processus de soumission, car cela peut "
+"mener à des échanges fructueux ainsi qu’à un nombre plus important, plus "
+"rapidement, de références à l’ouvrage publié (Consulter The Effect of Open Access).
\n"
+"
"
+
+msgid "manager.setup.basicEditorialStepsDescription"
+msgstr ""
+"Étapes : Soumission en attente > Soumission en évaluation > Soumission "
+"en édition > Table des matières.
\n"
+"Choisissez un modèle pour gérer ces aspects du processus éditorial. Pour "
+"nommer un·e responsable éditorial et les responsables de collection, allez "
+"dans la rubrique Éditeurs dans Gestion de la maison d’édition."
+
+msgid "manager.setup.referenceLinkingDescription"
+msgstr ""
+"Afin de permettre aux lecteur·rice·s de repérer les versions en ligne de "
+"l’ouvrage cité par un·e auteur·e, les options suivantes sont disponibles.
"
+"\n"
+"\n"
+"\n"
+"\t- Ajouter un outil de lecture
Le·La responsable "
+"éditorial peut ajouter « Trouver des références » aux Outils de lecture "
+"accompagnant les articles publiés, pour permettre aux lecteur·rice·s d’"
+"insérer le titre d’une référence et de rechercher l’ouvrage cité dans des "
+"bases de données universitaires présélectionnées.
\n"
+"\t- Liens incorporés dans les références
Le·La "
+"maquettiste peut ajouter un lien à des références en ligne, en suivant les "
+"instructions suivantes (qui peuvent être modifiées).
\n"
+"
"
+
+msgid "manager.setup.disableUserRegistration"
+msgstr ""
+"Le·La gestionnaire inscrit tous·tes les utilisateur·rice·s, alors que les "
+"responsables éditoriaux et les responsables de collection ne peuvent "
+"inscrire que les évaluateur·rice·s."
+
+msgid "manager.setup.reviewOptions.automatedReminders"
+msgstr ""
+"Des rappels automatiques par courriel (disponibles dans les Courriels par "
+"défaut d’OMP) peuvent être envoyés aux évaluateur·rice·s à deux moments "
+"précis (à tout moment, le·la responsable éditorial peut également envoyer un "
+"courriel à l’évaluateur·rice directement)"
+
+msgid "manager.setup.categories.description"
+msgstr ""
+"Vous pouvez créer une liste de catégories pour vous aider à organiser vos "
+"publications. Les catégories sont des groupements de livres par sujet, comme "
+"l’économie, la littérature, la poésie, etc. Les catégories peuvent être "
+"encastrées dans des « catégories mères ». Par exemple, une catégorie mère "
+"Économie peut contenir les catégories microéconomie et macroéconomie. Les "
+"visiteurs pourront effectuer une recherche et naviguer le site de la maison "
+"d’édition par catégorie."
+
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr ""
+"Veuillez sélectionner la collection à laquelle vous souhaitez que cet "
+"élément de menu soit lié."
+
+msgid "stats.context.tooltip.text"
+msgstr ""
+"Nombre de visiteurs ayant consulté la page d’index de la maison d’édition et "
+"du catalogue."
+
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr ""
+"Le nombre de pages vues de l’index de la maison d’édition et du catalogue."
+
+msgid "stats.publications.downloadReport.description"
+msgstr ""
+"Téléchargez une feuille de calcul CSV/Excel contenant les statistiques d’"
+"utilisation des monographies correspondant aux paramètres suivants."
+
+msgid "mailable.statisticsReportNotify.description"
+msgstr ""
+"Ce courriel est envoyé automatiquement chaque mois aux responsables de la "
+"maison d’édition pour leur fournir un aperçu de l’intégrité du système."
+
+msgid "plugins.importexport.common.error.salesRightRequiresTerritory"
+msgstr ""
+"Un enregistrement de droit de vente a été ignoré parce qu’aucun pays ou "
+"région ne lui a été attribué."
+
+msgid "mailable.validateEmailContext.description"
+msgstr ""
+"Ce courriel est automatiquement envoyé à un nouvel utilisateur lors de son "
+"inscription sur le site lorsque les paramètres exigent la validation de l’"
+"adresse de courriel."
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr ""
+"Envoyer une copie de l’accusé de réception de la soumission au contact "
+"principal de la maison d’édition."
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr ""
+"Si vous modifiez votre configuration DOI, les DOI ayant déjà été assignés ne "
+"seront pas affectés. Une fois la configuration DOI sauvegardée, utilisez ce "
+"bouton pour effacer tous les DOI existants afin que les nouveaux paramètres "
+"puissent prendre effet à l’égard des objets existants."
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr ""
+"Ce courriel informe l’auteur·e que sa soumission est refusée, avant d’être "
+"envoyée pour évaluation, parce qu’elle ne remplit pas les conditions "
+"requises pour être publiée par la maison d’édition."
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+"Cet courriel est envoyé aux responsables éditoriaux lorsqu’une nouvelle "
+"soumission est faite et qu’aucun.e secrétaire d’édition n’est assigné·e."
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr ""
+"Saisissez un modèle de suffixe DOI personnalisé pour chaque type de "
+"publication. Le modèle de suffixe personnalisé peut utiliser les symboles "
+"suivants :
%p
pour les initiales de la maison "
+"d’édition
%m
pour l’identifiant de la "
+"monographie
%c
pour l’identifiant du chapitre
%f"
+"code> pour l’identifiant du format de publication
%s
pour l’"
+"identifiant du fichier
%x
pour un numéro "
+"personnalisé.
Attention, les suffixes personnalisés entraînent "
+"souvent des problèmes de génération et de dépôt des DOI. Lorsque vous "
+"utilisez un modèle de suffixe personnalisé, vérifiez soigneusement que les "
+"éditeurs peuvent générer des DOI et les déposer auprès d’une agence d’"
+"enregistrement telle que Crossref. "
+
+msgid "manager.series.seriesEditorInstructions"
+msgstr ""
+"Ajouter un·e responsable à cette collection à partir de la liste de "
+"responsables de collection. Une fois ajouté, indiquez si le·la responsable "
+"sera en charge de l’ÉVALUATION (évaluation par les pairs) et/ou du TRAVAIL "
+"ÉDITORIAL (révision, mise en page et correction d’épreuves) des soumissions "
+"de cette collection. Pour ajouter un·e responsable à la collection, il faut "
+"cliquer Responsables de collection dans "
+"la section Rôles des administrateurs de la maison d’édition."
+
+msgid "manager.series.hideAbout"
+msgstr ""
+"Omettre cette collection dans la rubrique « A propos de la maison d’édition "
+"»."
+
+msgid "manager.series.form.titleRequired"
+msgstr "Un titre est requis pour la collection."
+
+msgid "manager.series.noneCreated"
+msgstr "Aucune collection n’a été créée."
+
+msgid "manager.series.existingUsers"
+msgstr "Utilisateurs actuels"
+
+msgid "manager.series.seriesTitle"
+msgstr "Titre de la collection"
+
+msgid "manager.series.restricted"
+msgstr ""
+"Ne pas autoriser les auteur·e·s à soumettre directement leurs textes à cette "
+"collection."
+
+msgid "manager.payment.generalOptions"
+msgstr "Options générales"
+
+msgid "manager.payment.success"
+msgstr "Les paramètres de paiement ont été mis à jour."
+
+msgid "manager.settings"
+msgstr "Paramètres"
+
+msgid "manager.settings.pressSettings"
+msgstr "Paramètres de la maison d’édition"
+
+msgid "manager.settings.press"
+msgstr "Maison d’édition"
+
+msgid "manager.settings.publisher.identity"
+msgstr "Identité de la maison d’édition"
+
+msgid "manager.settings.publisher"
+msgstr "Marque de la maison d’édition"
+
+msgid "manager.settings.location"
+msgstr "Situation géographique"
+
+msgid "manager.settings.publisherCode"
+msgstr "Code de la maison d’édition"
+
+msgid "manager.settings.distributionDescription"
+msgstr ""
+"Tous les paramètres associés au processus de distribution (avis, indexage, "
+"archivage, paiement, outils de lecture)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr "Téléchargement des fichiers des monographies"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr "Résumé et téléchargements de la monographie"
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr "Vues de la page d’accueil de la collection"
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr "Vues de la page d’accueil de la maison d’édition"
+
+msgid "manager.tools"
+msgstr "Outils"
+
+msgid "manager.tools.statistics"
+msgstr ""
+"Outils permettant de générer des rapports relatifs aux statistiques d’"
+"utilisation (pages vues de l’index du catalogue, pages vues des résumés de "
+"monographies, téléchargements de fichiers de monographies)"
+
+msgid "manager.users.availableRoles"
+msgstr "Rôles disponibles"
+
+msgid "manager.users.currentRoles"
+msgstr "Rôles actuels"
+
+msgid "manager.users.selectRole"
+msgstr "Choisir un rôle"
+
+msgid "manager.people.allEnrolledUsers"
+msgstr "Utilisateurs inscrits à cette maison d’édition"
+
+msgid "manager.people.allPresses"
+msgstr "Toutes les maison d’édition"
+
+msgid "manager.people.allUsers"
+msgstr "Tous les utilisateurs inscrits"
+
+msgid "manager.people.enrollExistingUser"
+msgstr "Inscrire un utilisateur actuel"
+
+msgid "manager.people.enrollSyncPress"
+msgstr "Avec la maison d’édition"
+
+msgid "manager.people.mergeUsers.into.description"
+msgstr ""
+"Sélectionner un utilisateur à qui attribuer la paternité des textes, les "
+"assignations d’édition etc. de l’utilisateur précédent."
+
+msgid "manager.system"
+msgstr "Paramètres du système"
+
+msgid "manager.system.archiving"
+msgstr "Archivage"
+
+msgid "manager.system.reviewForms"
+msgstr "Formulaires d’évaluation"
+
+msgid "manager.system.readingTools"
+msgstr "Outils de lecture"
+
+msgid "manager.system.payments"
+msgstr "Paiements"
+
+msgid "user.authorization.pluginLevel"
+msgstr "Vous n’avez pas de droits suffisants pour gérer ce module."
+
+msgid "manager.pressManagement"
+msgstr "Administration de la maison d’édition"
+
+msgid "manager.setup"
+msgstr "Configuration"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Contenu"
+
+msgid "manager.setup.addAboutItem"
+msgstr "Ajouter un élément À propos"
+
+msgid "manager.setup.addChecklistItem"
+msgstr "Ajouter un élément à la liste de vérification"
+
+msgid "manager.setup.addItem"
+msgstr "Ajouter un élément"
+
+msgid "manager.setup.addItemtoAboutPress"
+msgstr "Ajouter un élément à afficher dans « À propos de la maison d’édition »"
+
+msgid "manager.setup.addNavItem"
+msgstr "Ajouter un élément"
+
+msgid "manager.setup.addSponsor"
+msgstr "Ajouter un commanditaire"
+
+msgid "manager.setup.announcements"
+msgstr "Annonces"
+
+msgid "manager.setup.announcements.success"
+msgstr "Les paramètres des annonces ont été mis à jour."
+
+msgid "manager.setup.announcementsDescription"
+msgstr ""
+"Des annonces peuvent être publiées pour informer les lecteur·rice·s de "
+"nouvelles et d’événements relatifs à la maison d’édition. Les annonces "
+"publiées apparaîtront sur la page des Annonces."
+
+msgid "manager.setup.announcementsIntroduction"
+msgstr "Informations complémentaires"
+
+msgid "manager.setup.announcementsIntroduction.description"
+msgstr ""
+"Saisissez toute information supplémentaire qui doit être affichée aux "
+"lecteur·rice·s sur la page Annonces."
+
+msgid "manager.setup.appearInAboutPress"
+msgstr "(À paraître dans « À propos de la maison d’édition ») "
+
+msgid "manager.setup.contextAbout"
+msgstr "À propos de la maison d’édition"
+
+msgid "manager.setup.copyeditInstructions"
+msgstr "Instructions d’édition"
+
+msgid "manager.setup.copyrightNotice"
+msgstr "Avis de droits d’auteur"
+
+msgid "manager.setup.coverage"
+msgstr "Couverture"
+
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr "Hauteur maximale de l’image de la couverture"
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr "Largeur maximale de l’image de la couverture"
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr ""
+"Les images seront réduites si elles dépassent cette taille, mais ne seront "
+"jamais agrandies ou étirées pour s’adapter à ces dimensions."
+
+msgid "manager.setup.customizingTheLook"
+msgstr "Étape 5. Personnaliser l’apparence"
+
+msgid "manager.setup.customTags"
+msgstr "Balises personnalisées"
+
+msgid "manager.setup.customTagsDescription"
+msgstr ""
+"Balises d’en-tête HTML personnalisées à insérer dans l’en-tête de chaque "
+"page (par exemple, balises META)."
+
+msgid "manager.setup.details"
+msgstr "Détails"
+
+msgid "manager.setup.discipline"
+msgstr "Discipline et sous-disciplines académiques"
+
+msgid "manager.setup.disciplineExamples"
+msgstr ""
+"(Par exemple : Histoire ; Éducation ; Sociologie ; Psychologie ; Études "
+"culturelles ; Droit)"
+
+msgid "manager.setup.disciplineProvideExamples"
+msgstr ""
+"Donner des exemples de disciplines académiques pertinentes pour cette maison "
+"d’édition"
+
+msgid "manager.setup.displayCurrentMonograph"
+msgstr "Ajouter le sommaire pour la monographie courante (si disponible)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr "Contenu de la page d’accueil"
+
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr "Livres à la une"
+
+msgid "manager.setup.displayInSpotlight"
+msgstr "Afficher les livres à la une sur la page d’accueil"
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr "À la une"
+
+msgid "manager.setup.displayNewReleases"
+msgstr "Afficher les nouvelles publications sur la page d’accueil"
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr "Nouveautés"
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr ""
+"Utiliser les modèles par défaut :
%p.%m pour des livres
%p.%m.c%c "
+"pour des chapitres
%p.%m.%f pour des formats de publication
%p.%m.%f.%s pour des fichiers."
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr "À l’étape de la correction d’épreuves"
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr "Format / {$format}"
+
+msgid "manager.setup.editorDecision"
+msgstr "Décision du·de la responsable éditorial"
+
+msgid "manager.setup.emailBounceAddress"
+msgstr "Adresse de courriel pour les messages non délivrés"
+
+msgid "manager.setup.emailBounceAddress.description"
+msgstr ""
+"Tout courriel non délivré entraînera un message d’erreur envoyé à cette "
+"adresse."
+
+msgid "manager.setup.emails"
+msgstr "Identification par courriel"
+
+msgid "manager.setup.emailSignature"
+msgstr "Signature"
+
+msgid "manager.setup.emailSignature.description"
+msgstr ""
+"Les courriers électroniques envoyés automatiquement au nom de la maison d’"
+"édition porteront la signature suivante."
+
+msgid "manager.setup.enableAnnouncements.enable"
+msgstr "Activer les annonces"
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr ""
+"Des annonces peuvent être publiées pour informer les lecteur·rice·s de "
+"nouvelles et d’événements. Les annonces publiées apparaîtront sur la page "
+"Annonces."
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr "Afficher sur la page d’accueil"
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr ""
+"Préciser combien d’annonces doivent être affichées sur la page d’accueil. "
+"Laissez ce champ vide pour n’en afficher aucune."
+
+msgid "manager.setup.enablePressInstructions"
+msgstr "Permettre à cette revue d’apparaître publiquement sur le site"
+
+msgid "manager.setup.enableUserRegistration"
+msgstr ""
+"Les utilisateurs et utilisatrices peuvent s’inscrire eux-mêmes et elles-"
+"mêmes à la maison d’édition."
+
+msgid "manager.setup.focusAndScope"
+msgstr "Mission de la maison d’édition"
+
+msgid "manager.setup.focusScopeDescription"
+msgstr "EXEMPLE DE DONNÉES HTML"
+
+msgid "manager.setup.forAuthorsToIndexTheirWork"
+msgstr "Aide aux auteur·e·s pour l’indexation de leur travail"
+
+msgid "manager.setup.form.contactEmailRequired"
+msgstr "L’adresse de courriel du contact principal est obligatoire."
+
+msgid "manager.setup.form.contactNameRequired"
+msgstr "Le nom du contact principal est obligatoire."
+
+msgid "manager.setup.form.supportEmailRequired"
+msgstr "Le courriel du soutien est obligatoire."
+
+msgid "manager.setup.form.supportNameRequired"
+msgstr "Le nom du soutien est obligatoire."
+
+msgid "manager.setup.generalInformation"
+msgstr "Information générale"
+
+msgid "manager.setup.gettingDownTheDetails"
+msgstr "Étape 1. Consignation des détails"
+
+msgid "manager.setup.guidelines"
+msgstr "Directives"
+
+msgid "manager.setup.preparingWorkflow"
+msgstr "Étape 3. Préparation du flux de travail"
+
+msgid "manager.setup.form.numReviewersPerSubmission"
+msgstr "Le nombre d’évaluateur·rice·s par soumission est requis."
+
+msgid "manager.setup.focusScope"
+msgstr "Objectif et portée"
+
+msgid "manager.setup.identity"
+msgstr "Identité de la maison d’édition"
+
+msgid "manager.setup.information"
+msgstr "Information"
+
+msgid "manager.setup.information.forAuthors"
+msgstr "Pour les auteur·e·s"
+
+msgid "manager.setup.information.forLibrarians"
+msgstr "Pour les bibliothécaires"
+
+msgid "manager.setup.information.forReaders"
+msgstr "Pour les lecteur·rice·s"
+
+msgid "manager.setup.information.success"
+msgstr ""
+"Les informations relatives à cette maison d’édition ont été mises à jour."
+
+msgid "manager.setup.institution"
+msgstr "Institution"
+
+msgid "manager.setup.itemsPerPage"
+msgstr "Éléments par page"
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr ""
+"Limiter le nombre d’éléments (par exemple : soumissions, utilisateurs ou "
+"utilisatrices, ou assignations) à afficher dans une liste avant d’afficher "
+"les éléments subséquents dans une autre page."
+
+msgid "manager.setup.keyInfo"
+msgstr "Renseignements de base"
+
+msgid "manager.setup.labelName"
+msgstr "Nom de l’étiquette"
+
+msgid "manager.setup.layoutAndGalleys"
+msgstr "Maquettistes"
+
+msgid "manager.setup.layoutInstructions"
+msgstr "Instructions de mise en page"
+
+msgid "manager.setup.layoutTemplates"
+msgstr "Modèles de mise en page"
+
+msgid "manager.setup.layoutTemplates.file"
+msgstr "Fichier modèle"
+
+msgid "manager.setup.layoutTemplates.title"
+msgstr "Titre"
+
+msgid "manager.setup.lists"
+msgstr "Listes"
+
+msgid "manager.setup.lists.success"
+msgstr "Les paramètres de liste ont été mis à jour."
+
+msgid "manager.setup.look"
+msgstr "Apparence"
+
+msgid "manager.setup.look.description"
+msgstr ""
+"En-tête de la page d’accueil, contenu, en-tête de la maison d’édition, pied "
+"de page, barre de navigation, et feuille de style."
+
+msgid "manager.setup.settings"
+msgstr "Paramètres"
+
+msgid "manager.setup.managementOfBasicEditorialSteps"
+msgstr "Gestion des étapes éditoriales de base"
+
+msgid "manager.setup.managingPublishingSetup"
+msgstr "Configuration de la gestion et de la publication"
+
+msgid "manager.setup.managingThePress"
+msgstr "Étape 4. Gestion des paramètres"
+
+msgid "manager.setup.masthead.success"
+msgstr "Les détails de l’en-tête de cette maison d’édition ont été mis à jour."
+
+msgid "manager.setup.noImageFileUploaded"
+msgstr "Aucun fichier d’image téléchargé."
+
+msgid "manager.setup.noStyleSheetUploaded"
+msgstr "Aucune feuille de style téléchargée."
+
+msgid "manager.setup.note"
+msgstr "Note"
+
+msgid "manager.setup.noUseCopyeditors"
+msgstr ""
+"La révision est effectuée par l'éditeur·rice ou le·la responsable de "
+"collection assigné·e à la soumission."
+
+msgid "manager.setup.noUseLayoutEditors"
+msgstr ""
+"Le·La responsable éditorial ou le·la responsable de collection assigné·e à "
+"la soumission préparera les fichiers HTML, PDF, etc."
+
+msgid "manager.setup.numPageLinks"
+msgstr "Liens"
+
+msgid "manager.setup.numPageLinks.description"
+msgstr ""
+"Limiter le nombre de liens à afficher sur les pages subséquentes dans une "
+"liste."
+
+msgid "manager.setup.onlineAccessManagement"
+msgstr "Accéder au contenu de la maison d’édition"
+
+msgid "manager.setup.onlineIssn"
+msgstr "ISSN en ligne"
+
+msgid "manager.setup.policies"
+msgstr "Politiques"
+
+msgid "manager.setup.privacyStatement.success"
+msgstr "La déclaration de confidentialité a été mise à jour."
+
+msgid "manager.setup.pressDescription"
+msgstr "Description de la maison d’édition"
+
+msgid "manager.setup.pressDescription.description"
+msgstr "Une brève description de votre maison d’édition."
+
+msgid "manager.setup.aboutPress"
+msgstr "À propos de la maison d’édition"
+
+msgid "manager.setup.pressArchiving"
+msgstr "Archivage de la maison d’édition"
+
+msgid "manager.setup.homepageContent"
+msgstr "Contenu de la page d’accueil de la maison d’édition"
+
+msgid "manager.setup.homepageContentDescription"
+msgstr ""
+"La page d’accueil de la maison d’édition est constituée par défaut de liens "
+"de navigation. Il est possible d’ajouter du contenu à la page d’accueil en "
+"utilisant une ou toutes les options suivantes, qui apparaîtront dans l’ordre "
+"indiqué."
+
+msgid "manager.setup.pressHomepageContent"
+msgstr "Contenu de la page d’accueil de la maison d’édition"
+
+msgid "manager.setup.contextInitials"
+msgstr "Initiales de la maison d’édition"
+
+msgid "manager.setup.selectCountry"
+msgstr ""
+"Sélectionnez le pays où est domiciliée cette maison d’édition, ou le pays "
+"correspondant à l’adresse postale de la maison d’édition ou de l’éditeur."
+
+msgid "manager.setup.layout"
+msgstr "Mise en page de la maison d’édition"
+
+msgid "manager.setup.pageHeader"
+msgstr "En-tête de la page de la maison d’édition"
+
+msgid "manager.setup.pressPolicies"
+msgstr "Étape 2. Politiques de la maison d’édition"
+
+msgid "manager.setup.pressSetup"
+msgstr "Paramètres de la maison d’édition"
+
+msgid "manager.setup.pressSetupUpdated"
+msgstr "La configuration de votre maison d’édition a été mise à jour."
+
+msgid "manager.setup.styleSheetInvalid"
+msgstr "Feuille de style non valide. Le format accepté est .css."
+
+msgid "manager.setup.pressTheme"
+msgstr "Thème de la maison d’édition"
+
+msgid "manager.setup.pressThumbnail"
+msgstr "Miniature de la maison d’édition"
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr ""
+"Un petit logo de la maison d’édition qui peut être utilisé dans les listes "
+"de maisons d’édition."
+
+msgid "manager.setup.contextTitle"
+msgstr "Nom de la maison d’édition"
+
+msgid "manager.setup.printIssn"
+msgstr "ISSN imprimé"
+
+msgid "manager.setup.proofingInstructions"
+msgstr "Directives pour la correction d’épreuves"
+
+msgid "manager.setup.proofreading"
+msgstr "Correcteurs/trices d’épreuves"
+
+msgid "manager.setup.provideRefLinkInstructions"
+msgstr "Fournir des instructions aux maquettistes."
+
+msgid "manager.setup.publisher"
+msgstr "Éditeur"
+
+msgid "manager.setup.publisherDescription"
+msgstr ""
+"Le nom de l’organisation qui gère la maison d’édition apparaitra dans la "
+"page À propos de cette maison d’édition ."
+
+msgid "manager.setup.referenceLinking"
+msgstr "Lien de référence"
+
+msgid "manager.setup.refLinkInstructions.description"
+msgstr "Instructions de mise en page pour les liens de référence"
+
+msgid "manager.setup.restrictMonographAccess"
+msgstr ""
+"Les utilisateurs doivent être inscrits et se connecter pour afficher le "
+"contenu en accès libre."
+
+msgid "manager.setup.restrictSiteAccess"
+msgstr ""
+"Les utilisateurs doivent être inscrits et se connecter pour afficher le site "
+"de la maison d’édition."
+
+msgid "manager.setup.reviewGuidelines"
+msgstr "Lignes directrices pour l’évaluation externe"
+
+msgid "manager.setup.reviewGuidelinesDescription"
+msgstr ""
+"Les lignes directrices pour l’évaluation fourniront aux évaluateur·rice·s "
+"les critères nécessaires pour déterminer si une soumission peut être publiée "
+"par la maison d’édition. Elles peuvent aussi contenir des instructions "
+"spéciales qui aideront l’évaluateur·rice à rédiger une évaluation efficace "
+"et utile. Lors de l’évaluation, les évaluateur·rice·s auront accès à deux "
+"zones d’entrée de texte, la première « pour l’auteur·e et le·la responsable "
+"éditorial » et la seconde « pour le·la responsable éditorial ». Ou bien, le "
+"responsable éditorial peut créer un formulaire d’évaluation dans la section "
+"Formulaires d’évaluation. Dans tous les cas, les responsables éditoriaux "
+"pourront, s’ils le désirent, joindre les évaluations à leur correspondance "
+"avec l’auteur."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr "Lignes directrices pour l’évaluation interne"
+
+msgid "manager.setup.reviewOptions"
+msgstr "Options d’évaluation"
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr "Restreindre l’accès aux fichiers"
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
+msgstr ""
+"Les évaluateur·rice·s auront accès au fichier de soumission uniquement s’ils "
+"acceptent de l’évaluer."
+
+msgid "manager.setup.reviewOptions.reviewerAccess"
+msgstr "Accès pour l’évaluateur·rice"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr "Activer l’accès en un clic pour l’évaluateur·rice"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr ""
+"Insérer un lien sécurisé dans l’invitation par courriel aux "
+"évaluateur·rice·s."
+
+msgid "manager.setup.reviewOptions.reviewerRatings"
+msgstr "Notation de l’évaluateur·rice"
+
+msgid "manager.setup.reviewOptions.reviewerReminders"
+msgstr "Rappels aux évaluateur·rice·s"
+
+msgid "manager.setup.reviewOptions.onQuality"
+msgstr ""
+"Les responsables éditoriaux noteront les évaluateur·rice·s sur une échelle "
+"qualitative de cinq points après chaque évaluation."
+
+msgid "manager.setup.searchEngineIndexing"
+msgstr "Indexation par les moteurs de recherche"
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr "Les paramètres d’indexation du moteur de recherche ont été mis à jour."
+
+msgid "manager.setup.sectionsDefaultSectionDescription"
+msgstr ""
+"(Si aucune section n’est ajoutée, les éléments seront ajoutés par défaut à "
+"la section Monographies.)"
+
+msgid "manager.setup.sectionsAndSectionEditors"
+msgstr "Sections et éditeur·rice·s de sections"
+
+msgid "manager.setup.securitySettings"
+msgstr "Paramètres d’accès et de sécurité"
+
+msgid "manager.setup.securitySettings.note"
+msgstr ""
+"D’autres options liées à l’accès et à la sécurité peuvent être configurées à "
+"partir de la page Accès et sécurité."
+
+msgid "manager.setup.selectEditorDescription"
+msgstr ""
+"Le·La responsable éditorial de la maison d’édition qui suivra le processus "
+"éditorial."
+
+msgid "manager.setup.selectSectionDescription"
+msgstr ""
+"La collection de la maison d’édition pour laquelle l’élément sera pris en "
+"considération."
+
+msgid "manager.setup.siteAccess.view"
+msgstr "Accès au site"
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr "Voir le contenu de la monographie"
+
+msgid "manager.setup.subjectKeywordTopic"
+msgstr "Mots-clés"
+
+msgid "manager.setup.subjectProvideExamples"
+msgstr ""
+"Donner des exemples de mots-clés ou de sujets comme guide pour les auteur·e·s"
+
+msgid "manager.setup.submissionGuidelines"
+msgstr "Directives pour la soumission"
+
+msgid "maganer.setup.submissionChecklistItemRequired"
+msgstr "L’élément de la liste de contrôle est obligatoire."
+
+msgid "manager.setup.workflow"
+msgstr "Flux des travaux"
+
+msgid "manager.setup.submissions.description"
+msgstr ""
+"Directives à l’intention des auteur·e·s, droits d’auteur et indexation (y "
+"compris l’enregistrement)."
+
+msgid "manager.setup.typeMethodApproach"
+msgstr "Type (méthode/approche)"
+
+msgid "manager.setup.typeProvideExamples"
+msgstr ""
+"Proposer des exemples pertinents de types de recherche, méthodes, et "
+"approches pertinents pour ce domaine"
+
+msgid "manager.setup.useCopyeditors"
+msgstr "Un·e éditeur·rice sera assigné·e à chaque soumission."
+
+msgid "manager.setup.useEditorialReviewBoard"
+msgstr "La maison d’édition aura recours à un comité éditorial/d’évaluation."
+
+msgid "manager.setup.useImageTitle"
+msgstr "Image du titre"
+
+msgid "manager.setup.useStyleSheet"
+msgstr "Feuille de style de la maison d’édition"
+
+msgid "manager.setup.useProofreaders"
+msgstr ""
+"Un·e correcteur·rice d’épreuves sera désigné·e pour vérifier (avec les "
+"auteur·e·s) les épreuves avant la publication."
+
+msgid "manager.setup.userRegistration"
+msgstr "Inscription de l’utilisateur"
+
+msgid "manager.setup.useTextTitle"
+msgstr "Texte du titre"
+
+msgid "manager.setup.volumePerYear"
+msgstr "Volumes par année"
+
+msgid "manager.setup.publicationFormat.code"
+msgstr "Format"
+
+msgid "manager.setup.publicationFormat.codeRequired"
+msgstr "Vous devez choisir un format."
+
+msgid "manager.setup.publicationFormat.nameRequired"
+msgstr "Vous devez nommer ce format."
+
+msgid "manager.setup.publicationFormat.inUse"
+msgstr ""
+"Le format de cette publication est actuellement utilisé par une monographie "
+"de votre maison d’édition et ne peut donc pas être supprimé."
+
+msgid "manager.setup.newPublicationFormat"
+msgstr "Nouveau format de publication"
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr ""
+"Cette maison d’édition n’accepte pas de soumissions actuellement. Visitez "
+"les paramètres du flux de travaux pour autoriser les soumissions."
+
+msgid "manager.setup.disableSubmissions.description"
+msgstr ""
+"Empêchez les utilisateurs de soumettre de nouvelles soumissions à la maison "
+"d’édition. Les soumissions peuvent être désactivées par collection dans la "
+"page de paramètres des collections."
+
+msgid "manager.setup.genres"
+msgstr "Genres"
+
+msgid "manager.setup.newGenre"
+msgstr "Nouveau genre de monographie"
+
+msgid "manager.setup.newGenreDescription"
+msgstr ""
+"Pour créer un nouveau genre, veuillez remplir le formulaire ci-dessous et "
+"cliquer le bouton « Créer »."
+
+msgid "manager.setup.deleteSelected"
+msgstr "Supprimer la sélection"
+
+msgid "manager.setup.restoreDefaults"
+msgstr "Rétablir les paramètres par défaut"
+
+msgid "manager.setup.prospectus"
+msgstr "Prospectus"
+
+msgid "manager.setup.submitToCategories"
+msgstr "Accepter les soumissions par catégorie"
+
+msgid "manager.setup.submitToSeries"
+msgstr "Accepter les soumissions par collection"
+
+msgid "manager.setup.issnDescription"
+msgstr ""
+"L’ISSN (International Standard Serial Number) est un numéro à huit chiffres "
+"qui identifie les publications périodiques, y compris les journaux "
+"numériques. Ce numéro peut être obtenu auprès du Centre international de l’ISSN."
+
+msgid "manager.setup.currentFormats"
+msgstr "Formats actuels"
+
+msgid "manager.setup.categoriesAndSeries"
+msgstr "Catégories et collections"
+
+msgid "manager.setup.series.description"
+msgstr ""
+"Vous pouvez créer autant de collections que vous le souhaitez pour organiser "
+"vos publications. Une collection représente un ensemble spécial de livres "
+"consacrés à un thème ou à des sujets que quelqu’un a proposé, généralement "
+"un ou deux membres de la faculté, et dont elle/il assure la supervision. Les "
+"visiteurs pourront rechercher et parcourir la maison d’édition par "
+"collection."
+
+msgid "manager.setup.reviewForms"
+msgstr "Formulaires d’évaluation"
+
+msgid "manager.setup.roleType"
+msgstr "Type de rôle"
+
+msgid "manager.setup.authorRoles"
+msgstr "Rôles de l’auteur·e"
+
+msgid "manager.setup.managerialRoles"
+msgstr "Rôles de gestion"
+
+msgid "manager.setup.availableRoles"
+msgstr "Rôles disponibles"
+
+msgid "manager.setup.currentRoles"
+msgstr "Rôles actuels"
+
+msgid "manager.setup.internalReviewRoles"
+msgstr "Rôles des évaluateur·rice·s internes"
+
+msgid "manager.setup.masthead"
+msgstr "Bloc générique"
+
+msgid "manager.setup.editorialTeam"
+msgstr "Équipe éditoriale"
+
+msgid "manager.setup.files"
+msgstr "Fichiers"
+
+msgid "manager.setup.productionTemplates"
+msgstr "Modèles de production"
+
+msgid "manager.files.note"
+msgstr ""
+"Note : L’explorateur de fichiers est une fonction avancée qui permet aux "
+"fichiers et aux répertoires associés à une maison d’édition d’être affichés "
+"et manipulés directement."
+
+msgid "manager.publication.library"
+msgstr "Bibliothèque de la maison d’édition"
+
+msgid "manager.setup.resetPermissions"
+msgstr "Réinitialiser les permissions sur les monographies"
+
+msgid "manager.setup.resetPermissions.confirm"
+msgstr ""
+"Êtes-vous sûr de vouloir réinitialiser les données relatives aux permissions "
+"déjà attachées aux monographies ?"
+
+msgid "manager.setup.resetPermissions.description"
+msgstr ""
+"Les informations relatives aux droits d’auteur et aux licences seront "
+"attachées de manière permanente au contenu publié, ce qui garantit que ces "
+"données ne changeront pas si la maison d’édition modifie ses politiques pour "
+"les nouvelles soumissions. Pour réinitialiser les informations relatives aux "
+"permissions stockées et déjà jointes au contenu publié, utilisez le bouton "
+"ci-dessous."
+
+msgid "manager.setup.resetPermissions.success"
+msgstr "Les permissions de la monographie ont été réinitialisées avec succès."
+
+msgid "grid.genres.title.short"
+msgstr "Éléments"
+
+msgid "grid.genres.title"
+msgstr "Éléments de la monographie"
+
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr ""
+"Envoyer une copie au contact principal, identifié dans les paramètres de la "
+"maison d’édition."
+
+msgid "grid.series.pathAlphaNumeric"
+msgstr ""
+"Le chemin d’accès de la collection ne peut contenir que des caractères "
+"alphanumériques."
+
+msgid "grid.series.pathExists"
+msgstr ""
+"Le chemin d’accès de la collection existe déjà. Veuillez entrer un chemin d’"
+"accès unique."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr "Sélectionner une collection"
+
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr "Sélectionner une catégorie"
+
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr ""
+"Veuillez sélectionner la catégorie à laquelle vous souhaitez que cet élément "
+"de menu soit lié."
+
+msgid "grid.series.urlWillBe"
+msgstr "L’URL de la collection sera la suivante : {$sampleUrl}"
+
+msgid "stats.contextStats"
+msgstr "Statistiques de la maison d’édition"
+
+msgid "stats.context.tooltip.label"
+msgstr "A propos des statistiques de la maison d’édition"
+
+msgid "stats.context.downloadReport.description"
+msgstr ""
+"Télécharger une feuille de calcul CSV/Excel avec les statistiques d’"
+"utilisation de cette maison d’édition correspondant aux paramètres suivants."
+
+msgid "stats.context.downloadReport.downloadContext"
+msgstr "Téléchargements de l’éditeur"
+
+msgid "stats.publications.downloadReport.downloadSubmissions"
+msgstr "Téléchargements de monographies"
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr ""
+"Le nombre de consultations de résumés et de téléchargements de fichiers pour "
+"chaque monographie."
+
+msgid "stats.publicationStats"
+msgstr "Statistiques de la monographie"
+
+msgid "stats.publications.details"
+msgstr "Détails de la monographie"
+
+msgid "stats.publications.none"
+msgstr ""
+"Aucune monographie n’a été trouvée avec des statistiques d’utilisation "
+"correspondant à ces paramètres."
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr "Nombre total de consultations du catalogue par date"
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr "Total des consultations de fichiers par date"
+
+msgid "stats.publications.countOfTotal"
+msgstr "{$count} de {$total} monographies"
+
+msgid "stats.publications.abstracts"
+msgstr "Entrées de catalogue"
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr "Aucun objet sélectionné."
+
+msgid "plugins.importexport.common.error.validation"
+msgstr "Impossible de convertir les objets sélectionnés."
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr "XML invalide :"
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr "Exporter les soumissions"
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.disabled.description"
+msgstr ""
+"Aucun contact principal n’a été défini pour cette maison d’édition. Vous "
+"pouvez le faire dans les paramètres de la maison "
+"d’édition."
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr "Les objets spécifiés sont introuvables."
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr "L’utilisateur spécifié, « {$userName} », n’existe pas."
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr "Le processus n’a pas réussi à analyser les formats de publication"
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr "Le processus n’a pas réussi à analyser les chapitres"
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr "Le nom de la maison d’édition"
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr "L’URL de la page d’accueil de la maison d’édition"
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr "Le nom du contact principal de la maison d’édition"
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr "La signature mail de la maison d’édition pour les mails automatiques"
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr ""
+"Le DOI ne peut pas être attribué car le suffixe personnalisé est manquant."
diff --git a/locale/fr_FR/submission.po b/locale/fr_FR/submission.po
new file mode 100644
index 00000000000..b7aed4fbb56
--- /dev/null
+++ b/locale/fr_FR/submission.po
@@ -0,0 +1,644 @@
+# Weblate Admin , 2023.
+# Germán Huélamo Bautista , 2023, 2024.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2024-05-31 17:17+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
+"Language-Team: French \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 4.18.2\n"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"Une monographie est un ouvrage entièrement rédigé par une ou plusieurs "
+"personnes. Un ouvrage collectif est composé de contributions rédigées par "
+"des personnes différentes (les détails de chaque contribution seront "
+"introduits plus tard)."
+
+msgid "submission.artwork.permissions"
+msgstr "Autorisations"
+
+msgid "submission.chapter.editChapter"
+msgstr "Modifier le chapitre"
+
+msgid "submission.supportingAgencies"
+msgstr "Organismes de soutien"
+
+msgid "author.volumeEditor"
+msgstr "Directeur·rice d’ouvrage"
+
+msgid "submission.submit.coverNote"
+msgstr "Note de présentation pour l’éditeur"
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "Le format de publication « {$formatName} » a été créé."
+
+msgid "submission.submit.seriesPosition.description"
+msgstr "Exemples : Livre 2, Volume 2"
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr "Envoyer à l’évaluation externe"
+
+msgid "submission.catalogEntry.new"
+msgstr "Nouvelle entrée de catalogue"
+
+msgid "submission.metadataDescription"
+msgstr ""
+"Ces spécifications sont basées sur le jeu de métadonnées Dublin Core, une "
+"norme internationale utilisée pour décrire du contenu éditorial."
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr ""
+"Vous devez sélectionner au moins une monographie à ajouter au catalogue."
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+"Glissez-déposez ou cliquez sur les boutons haut et bas pour modifier l’ordre "
+"des éléments dans {$title}."
+
+msgid "publication.version.details"
+msgstr "Renseignements de publication pour la version {$version}"
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+"Afficher ce chapitre sur sa propre page et créez un lien vers cette page à "
+"partir de la table des matières du livre."
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr ""
+"Tous les chapitres utiliseront la date de publication de la monographie."
+
+msgid "submission.license.description"
+msgstr ""
+"La licence sera automatiquement définie comme {$licenseName} lorsque ceci sera publié."
+
+msgid "publication.publish.confirmation"
+msgstr ""
+"Toutes les exigences de publication ont été remplies. Êtes-vous sûr de "
+"vouloir rendre publique cette entrée du catalogue ?"
+
+msgid "publication.event.versionScheduled"
+msgstr "Une nouvelle version a été programmée pour publication."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+"Le format de publication « {$publicationFormatName} » a été approuvé pour "
+"publication."
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+"Envoyer un message aux auteur·e·s pour leur faire savoir que cette "
+"soumission va être envoyée pour évaluation interne. Donner si possible aux "
+"auteur·e·s des indications sur la durée approximative du processus d’"
+"évaluation et sur la date à laquelle les éditeurs les recontacteront."
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+"Envoi d’un ouvrage collectif en "
+"{$language}."
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr "La soumission, « {$title} », a été renvoyée à l’étape d’évaluation."
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+"Envoyer un message aux auteur·e·s pour les faire savoir que leur soumission "
+"est renvoyée à l’étape d’évaluation. Expliquer les raisons de cette décision "
+"et informer l’auteur·e de ce qu’une évaluation supplémentaire va être faite."
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"La maison d’édition a été informée de votre soumission et vous a envoyé par "
+"courriel une confirmation à archiver. L’éditeur·rice vous contactera une "
+"fois que votre soumission aura été examinée."
+
+msgid "submission.submit.noContext"
+msgstr "La maison d’édition associée à cette soumission est introuvable."
+
+msgid "publication.scheduledIn"
+msgstr ""
+"Publication programmée dans le {$issueName}."
+
+msgid "publication.publish.requirements"
+msgstr ""
+"Les conditions suivantes doivent être remplies avant que ceci ne puisse être "
+"publié."
+
+msgid "submission.title"
+msgstr "Titre du livre"
+
+msgid "submission.select"
+msgstr "Choisir une soumission"
+
+msgid "submission.upload.selectComponent"
+msgstr "Choisir un composant"
+
+msgid "submission.synopsis"
+msgstr "Résumé"
+
+msgid "submission.workflowType"
+msgstr "Type de livre"
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr "Ouvrage collectif"
+
+msgid "submission.workflowType.editedVolume"
+msgstr "Ouvrage collectif."
+
+msgid "submission.workflowType.authoredWork"
+msgstr "Monographie."
+
+msgid "submission.workflowType.change"
+msgstr "Modifier"
+
+msgid "submission.editorName"
+msgstr "{$editorName} (éd.)"
+
+msgid "submission.monograph"
+msgstr "Monographie"
+
+msgid "submission.published"
+msgstr "Prêt pour la production"
+
+msgid "submission.fairCopy"
+msgstr "Copie au propre"
+
+msgid "submission.authorListSeparator"
+msgstr " ; "
+
+msgid "submission.chapter"
+msgstr "Chapitre"
+
+msgid "submission.chapters"
+msgstr "Chapitres"
+
+msgid "submission.chapter.addChapter"
+msgstr "Ajouter un chapitre"
+
+msgid "submission.chapter.pages"
+msgstr "Pages"
+
+msgid "submission.copyedit"
+msgstr "Réviser"
+
+msgid "submission.publicationFormats"
+msgstr "Formats de publication"
+
+msgid "submission.proofs"
+msgstr "Épreuves"
+
+msgid "submission.download"
+msgstr "Télécharger"
+
+msgid "submission.sharing"
+msgstr "Partager"
+
+msgid "manuscript.submission"
+msgstr "Manuscrit soumis"
+
+msgid "submission.round"
+msgstr "Cycle {$round}"
+
+msgid "manuscript.submissions"
+msgstr "Manuscrits soumis"
+
+msgid "submission.metadata"
+msgstr "Métadonnées"
+
+msgid "grid.action.addChapter"
+msgstr "Créer un nouveau chapitre"
+
+msgid "grid.action.editChapter"
+msgstr "Modifier ce chapitre"
+
+msgid "grid.action.deleteChapter"
+msgstr "Supprimer ce chapitre"
+
+msgid "submission.submit"
+msgstr "Commencer une nouvelle soumission"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Commencer une nouvelle soumission dans"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr "Nouvelle soumission"
+
+msgid "submissions.queuedReview"
+msgstr "En évaluation"
+
+msgid "author.isVolumeEditor"
+msgstr ""
+"Identifier ce contributeur ou cette contributrice comme responsable du "
+"volume."
+
+msgid "submission.submit.seriesPosition"
+msgstr "Position dans cette collection (ex : livre 2 ou Volume 2)"
+
+msgid "submission.submit.privacyStatement"
+msgstr "Déclaration de confidentialité"
+
+msgid "submission.submit.contributorRole"
+msgstr "Rôle du contributeur"
+
+msgid "submission.submit.prepare"
+msgstr "Préparer"
+
+msgid "submission.submit.catalog"
+msgstr "Catalogue"
+
+msgid "submission.submit.metadata"
+msgstr "Métadonnées"
+
+msgid "submission.submit.finishingUp"
+msgstr "Terminer"
+
+msgid "submission.submit.confirmation"
+msgstr "Confirmer"
+
+msgid "submission.submit.nextSteps"
+msgstr "Étapes suivantes"
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Veuillez lire et cocher les éléments de la liste de vérification de votre "
+"soumission. {$itemsRemaining} éléments n’ont pas été cochés."
+
+msgid "submission.submit.placement"
+msgstr "Placement de la soumission"
+
+msgid "submission.submit.upload"
+msgstr "Transférer"
+
+msgid "submission.submit.submissionFile"
+msgstr "Fichier de soumission"
+
+msgid "submission.submit.generalInformation"
+msgstr "Information générale"
+
+msgid "submission.submit.userGroup"
+msgstr "Soumettre en qualité de …"
+
+msgid "grid.chapters.title"
+msgstr "Chapitres"
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Supprimer le téléchargement de l'éditeur·rice"
+
+msgid "submission.editCatalogEntry"
+msgstr "Entrée"
+
+msgid "submission.catalogEntry.add"
+msgstr "Ajouter la sélection au catalogue"
+
+msgid "submission.catalogEntry.select"
+msgstr "Choisissez les monographies à ajouter au catalogue"
+
+msgid "submission.catalogEntry.confirm"
+msgstr "Ajouter ce livre au catalogue public"
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr ""
+"Veuillez confirmer que la soumission est prête à être ajoutée au catalogue."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr "Cette monographie est prête à être ajoutée au catalogue public."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr "Voir la soumission"
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr "Dates de publication"
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr "Chaque chapitre peut avoir sa propre date de publication."
+
+msgid "submission.complete"
+msgstr "Approuvé"
+
+msgid "submission.incomplete"
+msgstr "En attente d’approbation"
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Monographie"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Catalogue"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Format de publication"
+
+msgid "submission.event.metadataPublished"
+msgstr ""
+"Les métadonnées de la monographie ont été approuvées pour la publication."
+
+msgid "submission.event.metadataUnpublished"
+msgstr "Les métadonnées de la monographie ne sont plus publiées."
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr "Le format de publication « {$publicationFormatName} » est disponible."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr ""
+"Le format de publication « {$publicationFormatName} » n’est plus disponible."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr ""
+"Le format de publication « {$publicationFormatName} » n’est plus publié."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "Les métadonnées du catalogue ont été mises à jour."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr ""
+"Les métadonnées du format de publication « {$formatName} » ont été mises à "
+"jour."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "Le format de publication « {$formatName} » a été supprimé."
+
+msgid "workflow.review.externalReview"
+msgstr "Évaluation externe"
+
+msgid "submission.upload.fileContents"
+msgstr "Composant de soumission"
+
+msgid "submission.dependentFiles"
+msgstr "Fichiers dépendants"
+
+msgid "section.any"
+msgstr "Toute collection"
+
+msgid "submission.list.monographs"
+msgstr "Monographies"
+
+msgid "submission.list.countMonographs"
+msgstr "{$count} monographies"
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr "{$count} de {$total} monographies"
+
+msgid "submission.list.orderFeatures"
+msgstr "Trier les éléments"
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+"Glissez-déposez ou cliquez sur les boutons haut et bas pour modifier l’ordre "
+"des éléments de la page d’accueil."
+
+msgid "submission.list.saveFeatureOrder"
+msgstr "Enregistrer la commande"
+
+msgid "submission.list.viewEntry"
+msgstr "Voir l’entrée"
+
+msgid "catalog.browseTitles"
+msgstr "{$numTitles} titres"
+
+msgid "publication.catalogEntry"
+msgstr "Entrée de catalogue"
+
+msgid "publication.catalogEntry.success"
+msgstr "Les détails de l’entrée dans le catalogue ont été mis à jour."
+
+msgid "publication.inactiveSeries"
+msgstr "{$series} (inactive)"
+
+msgid "publication.invalidSeries"
+msgstr "Impossible de trouver la collection de cette publication."
+
+msgid "publication.required.issue"
+msgstr ""
+"La publication doit être assignée à un numéro avant de pouvoir être publiée."
+
+msgid "publication.publishedIn"
+msgstr "Publié dans le {$issueName}."
+
+msgid "submission.publication"
+msgstr "Publication"
+
+msgid "publication.status.published"
+msgstr "Publié"
+
+msgid "submission.status.scheduled"
+msgstr "Programmé"
+
+msgid "publication.status.unscheduled"
+msgstr "Non programmé"
+
+msgid "submission.publications"
+msgstr "Publications"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+"L’année de copyright sera fixée automatiquement lors de la publication dans "
+"un numéro."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+"L’année de copyright sera fixée automatiquement en fonction de la date de "
+"publication."
+
+msgid "publication.datePublished"
+msgstr "Date de publication"
+
+msgid "publication.editDisabled"
+msgstr "Cette version a été publiée et ne peut pas être modifiée."
+
+msgid "publication.event.published"
+msgstr "La soumission a été publiée."
+
+msgid "publication.event.scheduled"
+msgstr "La soumission a été programmée pour publication."
+
+msgid "publication.event.unpublished"
+msgstr "La soumission a été dépubliée."
+
+msgid "publication.event.versionPublished"
+msgstr "Une nouvelle version a été publiée."
+
+msgid "publication.event.versionUnpublished"
+msgstr "Une version a été dépubliée."
+
+msgid "publication.invalidSubmission"
+msgstr "La soumission pour cette publication n’a pas pu être trouvée."
+
+msgid "publication.publish"
+msgstr "Publier"
+
+msgid "publication.required.declined"
+msgstr "Une soumission refusée ne peut pas être publiée."
+
+msgid "publication.required.reviewStage"
+msgstr ""
+"La soumission doit passer par l’étape d’édition ou de production avant d’"
+"être publiée."
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+"Les droits d’auteur seront automatiquement attribués à {$copyright} lorsque "
+"ceci sera publié."
+
+msgid "submission.copyrightOther.description"
+msgstr ""
+"Attribuer à la partie suivante les droits d’auteur pour les soumissions "
+"publiées."
+
+msgid "publication.unpublish"
+msgstr "Dépublier"
+
+msgid "publication.unpublish.confirm"
+msgstr "Avez-vous la certitude de ne pas vouloir que ceci soit publié ?"
+
+msgid "publication.unschedule.confirm"
+msgstr ""
+"Avez-vous la certitude de ne pas vouloir programmer ceci pour publication ?"
+
+msgid "submission.queries.production"
+msgstr "Discussions sur la production"
+
+msgid "publication.chapter.landingPage"
+msgstr "Page du chapitre"
+
+msgid "publication.publish.success"
+msgstr "L’état de la publication a été modifié avec succès."
+
+msgid "chapter.volume"
+msgstr "Volume"
+
+msgid "submission.withoutChapter"
+msgstr "{$name} - Sans ce chapitre"
+
+msgid "submission.chapterCreated"
+msgstr " — Chapitre créé"
+
+msgid "chapter.pages"
+msgstr "Pages"
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr "Envoyer à l’évaluation interne"
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr "Cette soumission est prête à être envoyée pour évaluation interne."
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr "{$editorName} a envoyé cette soumission à l’étape d’évaluation interne."
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr "Envoyé pour évaluation interne"
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+"La soumission, « {$title} », a été envoyée à l'étape d'évaluation interne. "
+"Une notification a été envoyée à l'auteur·e, à moins que vous n'ayez choisi "
+"d'ignorer ce courriel."
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr ""
+"Sélectionnez les fichiers qui doivent être envoyés à l’étape d’évaluation "
+"interne."
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr "{$editorName} a envoyé cette soumission à l’étape d’évaluation externe."
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr "Envoyé pour évaluation externe"
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr ""
+"La soumission, « {$title} », a été renvoyée à l’étape d’évaluation externe."
+
+msgid "editor.submission.decision.backToReview"
+msgstr "Retour à l’évaluation"
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+"Revenir sur la décision d’accepter cette soumission et la renvoyer à l’étape "
+"d’évaluation."
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+"{$editorName} a annulé la décision d’accepter cette soumission et l’a "
+"renvoyée à l’étape d’évaluation."
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr "Renvoyer en évaluation"
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+"Envoyer un message aux auteur·e·s pour leur faire savoir que cette "
+"soumission va être envoyée pour évaluation externe. Donner si possible aux "
+"auteur·e·s des indications sur la durée approximative du processus d’"
+"évaluation et sur la date à laquelle les éditeurs les recontacteront."
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr "Sélectionnez les fichiers à envoyer à l’évaluation."
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr "Recommander l’envoi à évaluation externe"
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr ""
+"Recommander que cette soumission soit envoyée à l’étape d’évaluation externe."
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+"{$editorName} a recommandé que cette soumission soit envoyée à l’étape d’"
+"évaluation externe."
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+"Impossible de créer un DOI pour la soumission suivante : {$pubObjectTitle}. "
+"Elle n’existe pas dans l’environnement actuel de la maison d’édition."
+
+msgid "publication.chapter.licenseUrl"
+msgstr "URL de la licence"
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr "URL par défaut de la licence du chapitre"
+
+msgid "submission.copyright.description"
+msgstr ""
+"Veuillez lire et comprendre les termes du droit d’auteur pour les "
+"soumissions à cette maison d’édition."
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+"Vous n’êtes pas autorisé(e) à soumettre à cette maison d’édition parce que "
+"les auteur·e·s doivent être enregistré(e)s par l’équipe éditoriale. S’il s’"
+"agit selon vous d’une erreur, veuillez contacter {$name}."
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+"{$contextName} n’accepte pas de soumissions à la collection {$section}. Si "
+"vous avez besoin d’aide pour récupérer votre soumission, veuillez contacter "
+"{$name}."
+
+msgid "submission.sectionNotFound"
+msgstr "Impossible de trouver la collection de cette soumission."
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr ""
+"Seule l’équipe éditoriale est autorisée à soumettre dans cette collection."
+
+msgid "submission.wizard.submitting.monograph"
+msgstr "Envoi d’une monographie."
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+"Envoi d’une monographie en {$language}."
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr "Envoi d’un ouvrage collectif."
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
+"Veuillez fournir tous les chapitres de cette soumission. Si vous soumettez "
+"un ouvrage collectif, veillez à ce que chaque chapitre indique ses "
+"contributeurs et/ou contributrices."
diff --git a/locale/gd/author.po b/locale/gd/author.po
new file mode 100644
index 00000000000..f5924e07c73
--- /dev/null
+++ b/locale/gd/author.po
@@ -0,0 +1,19 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2020-11-16 20:31+0000\n"
+"Last-Translator: Michael Bauer \n"
+"Language-Team: Gaelic \n"
+"Language: gd_GB\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==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
+"(n > 2 && n < 20) ? 2 : 3;\n"
+"X-Generator: Weblate 3.9.1\n"
+
+msgid "author.submit.notAccepting"
+msgstr "Chan eil an clò seo a’ gabhail ri tagraidhean aig an àm seo."
+
+msgid "author.submit"
+msgstr ""
diff --git a/locale/gd/default.po b/locale/gd/default.po
new file mode 100644
index 00000000000..02fb14d7b2d
--- /dev/null
+++ b/locale/gd/default.po
@@ -0,0 +1,196 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2020-11-16 20:31+0000\n"
+"Last-Translator: Michael Bauer \n"
+"Language-Team: Gaelic \n"
+"Language: gd_GB\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==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
+"(n > 2 && n < 20) ? 2 : 3;\n"
+"X-Generator: Weblate 3.9.1\n"
+
+msgid "default.genres.appendix"
+msgstr "Eàrr-ràdh"
+
+msgid "default.genres.bibliography"
+msgstr "Leabhar-chlàr"
+
+msgid "default.genres.manuscript"
+msgstr "Sgrìobhainn leabhair"
+
+msgid "default.genres.chapter"
+msgstr "Sgrìobhainn caibideil"
+
+msgid "default.genres.glossary"
+msgstr "Briathrachan"
+
+msgid "default.genres.index"
+msgstr "Clàr-amais"
+
+msgid "default.genres.preface"
+msgstr "Ro-ràdh"
+
+msgid "default.genres.prospectus"
+msgstr "Prospectus"
+
+msgid "default.genres.table"
+msgstr "Clàr"
+
+msgid "default.genres.figure"
+msgstr "Figear"
+
+msgid "default.genres.photo"
+msgstr "Dealbh"
+
+msgid "default.genres.illustration"
+msgstr "Sgead-dhealbh"
+
+msgid "default.genres.other"
+msgstr "Eile"
+
+msgid "default.groups.name.manager"
+msgstr "Manaidsear clò"
+
+msgid "default.groups.plural.manager"
+msgstr "Manaidsearan clò"
+
+msgid "default.groups.abbrev.manager"
+msgstr "PM"
+
+msgid "default.groups.name.editor"
+msgstr "Deasaiche clò"
+
+msgid "default.groups.plural.editor"
+msgstr "Deasaichean clò"
+
+msgid "default.groups.abbrev.editor"
+msgstr "PE"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Deasaiche sreatha"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Deasaichean sreatha"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "AcqE"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Ùghdar caibideil"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Ùghdaran caibideil"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "CA"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Deasaiche mòr-thomaid"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Deasaichean mòr-thomaid"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "VE"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"Cha chleachdar na h-ainmean is seòlaidhean puist-d a chuirear a-steach "
+"air làrach a’ chlò seo ach airson amasan foillsichte an a’ chlò seo agus cha "
+"chuirear ri làimh pàrtaidh sam bith eile iad no airson adhbhar sam bith eile."
+"
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"Tha an clò seo a’ toirt cothrom fosgailte air an t-susbaint ann a chionn ’s "
+"gu bheil sinn dhen bheachd gun tig àrdachadh air eadar-mhalairt eòlais eadar-"
+"nàiseanta ma chuirear rannsachadh ri làimh a’ phobaill gun chuingeachadh."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"Mholamaid do leughadairean clàradh airson seirbheis brathan foillseachadh a’ "
+"chlò seo. Cleachd an ceangal Clàraich aig bàrr duilleag-dhachaigh a’ chlò. Ma nì an "
+"leughadair clàradh, gheibh iad clàr-innse gach monograf ùr a’ chlò air a’ "
+"phost-d. Ri linn sin, ’s urrainn dhan chlò tagradh gu bheil ìre de thaic no "
+"luchd-leughaidh aca. Faic poileasaidh prìobhaideachd a’ chlò a "
+"dhearbhas dha na leughadairean nach cleachd iad an ainmean is seòlaidhean "
+"puist-d airson adhbhar sam bith eile."
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"A bheil ùidh agad ann an com-pàirteachas sa chlò seo? Mholamaid dhut sùil a "
+"thoirt air an duilleag Mun chlò "
+"seo airson poileasaidh earrannan a’ chlò agus air an stiùireadh "
+"do dh’ùghdaran. Feumaidh ùghdaran clàradh aig a’ chlò mus cuir iad tagradh no, ma tha iad "
+"clàraichte mu thràth, faodaidh iad clàradh a-steach agus tòiseachadh air na còig ceuman a tha ri "
+"choileanadh."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Tha sinn a’ brosnachadh leabhar-lannaichean an clò seo a chur am measg iris-"
+"leabhraichean dealain na leabhar-lainn aca. A bharrachd air sin, faodaidh "
+"leabhar-lannan an siostam foillseachaidh a tha stèidhichte air còd fosgailte "
+"aig a’ chlò seo a chur air òstaireachd iad fhèin airson buill nan roinnean "
+"aca a tha an sàs deasachadh chlòthan (Open "
+"Monograph Press)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Lèirmheasaiche air an taobh a-muigh"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Lèirmheasaichean air an taobh a-muigh"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "ER"
+
+#~ msgid "default.contextSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "Tha an teacsa seo a’ leantainn nan riaghailtean san stiùireadh do dh’ùghdaran a thaobh stoidhle is leabhar-eòlais a "
+#~ "gheibhear fon earrann “Mun chlò”."
+
+#~ msgid "default.contextSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "Cha deach an tagradh fhoillseachadh roimhe agus chan eil e aig clò eile "
+#~ "airson beachdachadh (no chaidh mìneachadh a thoirt seachad sna beachdan "
+#~ "dhan deasaiche)."
+
+#~ msgid "default.contextSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "Tha am faidhle tagraidh san fhòrmat Microsoft Word, RTF no OpenDocument."
+
+#~ msgid "default.contextSettings.checklist.addressesLinked"
+#~ msgstr ""
+#~ "Far a bheil iad ri làimh, chaidh URLaichean airson nan reifreansan a "
+#~ "thoirt seachad."
+
+#~ msgid "default.contextSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "Tha an teacsa air beàrnadh singilte; a’ cleachdadh cruth-clò aig 12 "
+#~ "phuing; a’ cleachdadh clò Eadailteach seach fo-loidhnichean (ach ann an "
+#~ "seòlaidhean URL); agus tha gach dealbh, figear is clàr sna h-àitichean "
+#~ "iomchaidh san teacsa seach aig an deireadh."
diff --git a/locale/gd/locale.po b/locale/gd/locale.po
new file mode 100644
index 00000000000..0027c4b1476
--- /dev/null
+++ b/locale/gd/locale.po
@@ -0,0 +1,1724 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2020-11-18 20:49+0000\n"
+"Last-Translator: Michael Bauer \n"
+"Language-Team: Gaelic \n"
+"Language: gd_GB\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==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
+"(n > 2 && n < 20) ? 2 : 3;\n"
+"X-Generator: Weblate 3.9.1\n"
+
+msgid "common.payments"
+msgstr ""
+
+msgid "monograph.audience"
+msgstr "Luchd-leughaidh"
+
+msgid "monograph.audience.success"
+msgstr "Chaidh mion-fhiosrachadh nan ìrean leughaidh ùrachadh."
+
+msgid "monograph.coverImage"
+msgstr "Dealbh a’ chòmhdachaidh"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Adhbhar na h-ìre leughaidh"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Ìre leughaidh (agus nas àirde)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Ìre leughaidh (gu ruige)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "Ìre leughaidh (pongail)"
+
+msgid "monograph.languages"
+msgstr "Cànain (Beurla, Fraingis, Spàinntis)"
+
+msgid "monograph.publicationFormats"
+msgstr "Fòrmatan foillseachaidh"
+
+msgid "monograph.publicationFormat"
+msgstr "Fòrmat"
+
+msgid "monograph.publicationFormatDetails"
+msgstr ""
+"Mion-fhiosrachadh mun fhòrmatan an fhoillseachaidh a tha ri fhaighinn: "
+"{$format}"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Mion-fhiosrachadh mun mhonograf seo"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Fòrmatan:"
+
+msgid "monograph.type"
+msgstr "Seòrsa an tagraidh"
+
+msgid "submission.pageProofs"
+msgstr "Dearbhan dhuilleagan"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"Bidh deasaiche na co-dhealbhachd a’ luchdadh suas faidhlichean a tha deiseil "
+"airson foillseachadh an-seo. Cleachd +Iomruin airson ùghdaran agus "
+"daoine eile ainmeachadh a nì dearbh-leughadh air dearbhan nan duilleagan; "
+"thèid na faidhlichean dearbhte a luchdadh suas airson aontachadh mus tèid am "
+"foillseachadh."
+
+msgid "monograph.task.addNote"
+msgstr "Cuir ris an t-saothair"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Inntrigeadh fosgailte"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Fiosrachadh mun fhoillseachadh (Ainm a’ bhrannd/an fhoillsicheir)"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Cunntas nan duilleagan"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Stuthan a’ bheulaibh"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Stuthan a’ chùlaibh"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Co-chur a’ bhathair"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Mion-fhiosrachadh mun bhathar (chan eil seo riatanach)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Dearbh-aithneachadh a’ bhathair"
+
+msgid "monograph.publicationFormat.price"
+msgstr "A’ phrìs"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "Tha feum air prìs."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Seòrsa na prìse"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Ceudad an ìsleachaidh, ma bhios seo iomchaidh"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Faotainneachd a’ bhathair"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Tilleadh bathair"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Fiosrachadh digiteach"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Meud fiosaigeach"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "Meud an fhaidhle ann am Mbytes"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "A bheil thu airson meud faidhle a chur a-steach thu fhèin?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Àirde"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Tiughad"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Cudrom"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Leud"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "Dùthaich an t-saothrachaidh"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Dìon digiteach"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Roinn-dùthcha sgaoileadh a’ bhathair"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Reat na cìse"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Seòrsa na cìse"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+"Gabh a-staigh am meata-dàta airson an fhòrmait fhoillseachaidh seo ann an "
+"innteart catalog an leabhair seo."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Tha margaidean is prìsean a dhìth."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Tha còd dearbh-aithneachaidh a dhìth."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Tha cuid dhen mheata-dàta a dhìth."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+"Chan eil am fòrmat foillseachaidh a thagh thu ri làimh airson a’ "
+"mhonograf seo tuilleadh.
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Fosgail taba fòrmat an fhoillseachaidh."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Fòrmat foillseachaidh"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "Tha feum air ainm."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "Tha feum air prìs dhligheach."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Mion-fhiosrachadh mun fhòrmat"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Fòrmat fiosaigeach"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "Bidh am fòrmat seo ri làimh air làrach-lìn fa leth"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "URL de shusbaint air òstair cèin"
+
+msgid "grid.catalogEntry.isbn"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr ""
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "Tha feum air ID airson a’ mhonograf."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Feumaidh tu fòrmat foillseachaidh a thaghadh."
+
+msgid "grid.catalogEntry.availability"
+msgstr "Faotainneachd"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Ri fhaighinn"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "Chan eil seo ri làimh"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Dearbhadh"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Aonta an fhòrmait"
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"Thoir aonta dhan mheata-dàta airson an fhòrmait seo. Gabhaidh am meata-"
+"dàta a sgrùdadh on phanail deasachaidh airson gach fòrmat.
"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr "Nochd nach d’fhuair meata-dàta an fhòrmait seo aonta fhathast.
"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Faotainneachd an fhòrmait"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Cuir am fòrmat seo ri làimh leughadairean. Nochdaidh "
+"faidhlichean a bha ri luchdadh a-nuas agus sgaoilidhean eile ann an innteart "
+"catalog an leabhair.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Cha bhi am fòrmat seo ri làimh leughadairean. Cha nochd "
+"faidhlichean a bha ri luchdadh a-nuas no sgaoileadh sam bith eile ann an "
+"innteart catalog an leabhair tuilleadh.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "Cha d’fhuair innteart a’ chatalog aonta."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "Chan eil am fòrmat ann an innteart a’ chatalog."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Cha d’fhuair an dearbh aonta."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Air aontachadh"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "A’ feitheamh ri aonta"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "Tha feum air meud an fhaidhle mu choinneamh fhòrmatan digiteach."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "Tha feum air còd a dh’innseas a bheil am bathar ri fhaighinn."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "Feumaidh tu còd co-chur bathair a thaghadh."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Luach a’ chòd"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "Seòrsa de chòd ONIX"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "Tha feum air còd dearbh-aithneachaidh."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "Tha feum air luach."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Còraichean reic"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Luach a’ chòd"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Seòrsa de chòraichean reic"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "An còrr dhen t-saoghal?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Cuir cromag sa bhogsa seo airson innteart nan còraichean reic seo a "
+"chleachdadh anns gach suidheachadh dhan fhòrmat agad. Cha leigear a leas "
+"dùthchannan is roinnean-dùthcha a thaghadh ma nì thu sin."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr ""
+"Chaidh seòrsa de reicean ROW a shònrachadh dhan fhòrmat fhoillseachaidh seo "
+"mu thràth."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Dùthchannan"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Roinnean-dùthcha"
+
+msgid "grid.catalogEntry.included"
+msgstr "Ga ghabhail a-staigh"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Air dùnadh a-mach"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Ranntairean margaide"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Ranntair"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Chinn-là foillseachaidh"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Tha feum air dreuchd dhan neach-ionaid."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "Tha feum air fòrmat airson a’ chinn-là."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Ceann-là"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Dreuchd"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Fòrmat a’ chinn-là"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"Tha feum air ceann-là agus feumaidh luach a’ chinn-là a bhith a-rèir fòrmat "
+"a’ chinn-là a thagh thu."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Luchd-ionaid"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Seòrsa an neach-ionaid"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Àidseantan"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Solaraichean"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Àidseant"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"’S urrainn dhut àidseant ainmeachadh a bhios gad riochdachadh san ranntair "
+"seo. Chan eil seo riatanach."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Solaraiche"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Tagh dreuchd:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Dreuchd"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Ainm"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Fòn"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "Seòladh puist-d"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Làrach-lìn"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "ID an neach-ionaid"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Seòrsa ID an neach-ionaid (mholamaid GLN)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"Faodaidh tu an earrann a leanas fhàgail bàn ma bhios tu a’ solarachadh do "
+"sheirbheisean fhèin dha na custamairean agad."
+
+msgid "grid.action.addRepresentative"
+msgstr "Cuir neach-ionaid ris"
+
+msgid "grid.action.editRepresentative"
+msgstr "Deasaich an neach-ionaid seo"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Sguab an neach-ionaid seo às"
+
+msgid "spotlight"
+msgstr "Prosbaig"
+
+msgid "spotlight.spotlights"
+msgstr "Prosbaigean"
+
+msgid "spotlight.noneExist"
+msgstr "Chan eil prosbaig ann aig an àm seo."
+
+msgid "spotlight.title.homePage"
+msgstr "Fon phrosbaig"
+
+msgid "spotlight.author"
+msgstr "Ùghdar, "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Nì fon phrosbaig"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "An duilleag-dhachaigh"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Ionad na prosbaig"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Cuir a-steach tiotal airson na prosbaig (le fèin-choileanadh)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Tiotal na prosbaig"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Leabhar"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "Tha feum air nì."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "Tha feum air tiotal airson na prosbaig."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Tagh ionad dhan phrosbaig seo."
+
+msgid "grid.action.editSpotlight"
+msgstr "Deasaich a’ phrosbaig seo"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Sguab a’ phrosbaig seo às"
+
+msgid "grid.action.addSpotlight"
+msgstr "Cuir prosbaig ris"
+
+msgid "manager.series.open"
+msgstr "Tagraidhean fosgailte"
+
+msgid "manager.series.indexed"
+msgstr "Air inneacsadh"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Faidhlichean"
+
+msgid "grid.action.catalogEntry"
+msgstr "Seall foirm innteart a’ chatalog"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "Tha am fòrmat a’ nochdadh ann an innteart a’ chatalog"
+
+msgid "grid.action.editFormat"
+msgstr "Deasaich am fòrmat seo"
+
+msgid "grid.action.deleteFormat"
+msgstr "Sguab am fòrmat seo às"
+
+msgid "grid.action.addFormat"
+msgstr "Cuir fòrmat foillseachaidh ris"
+
+msgid "grid.action.approveProof"
+msgstr ""
+"Thoir aonta dhan dearbh a thaobh inneacsaidh agus airson a ghabhail a-staigh "
+"sa chatalog"
+
+msgid "grid.action.pageProofApproved"
+msgstr "Tha faidhle dearbhan nan duilleagan deiseil airson foillseachadh"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Innteart ùr sa chatalog"
+
+msgid "grid.action.publicCatalog"
+msgstr "Seall an nì seo sa chatalog"
+
+msgid "grid.action.feature"
+msgstr "Toglaich taisbeanadh nan gleus"
+
+msgid "grid.action.featureMonograph"
+msgstr "Nochd seo air timcheallan a’ chatalog"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Comharraich an tagradh seo mar “sgaoileadh ùr”"
+
+msgid "grid.action.manageCategories"
+msgstr "Rèitich an roinn-seòrsa seo dhan chlò seo"
+
+msgid "grid.action.manageSeries"
+msgstr "Rèitich an sreath seo dhan chlò seo"
+
+msgid "grid.action.addCode"
+msgstr "Cuir còd ris"
+
+msgid "grid.action.editCode"
+msgstr "Deasaich an còd seo"
+
+msgid "grid.action.deleteCode"
+msgstr "Sguab an còd seo às"
+
+msgid "grid.action.addRights"
+msgstr "Cuir còraichean reic ris"
+
+msgid "grid.action.editRights"
+msgstr "Deasaich na còraichean seo"
+
+msgid "grid.action.deleteRights"
+msgstr "Sguab na còraichean seo às"
+
+msgid "grid.action.addMarket"
+msgstr "Cuir margaid ris"
+
+msgid "grid.action.editMarket"
+msgstr "Deasaich a’ mhargaid seo"
+
+msgid "grid.action.deleteMarket"
+msgstr "Sguab a’ mhargaid seo às"
+
+msgid "grid.action.addDate"
+msgstr "Cuir ceann-là foillseachaidh ris"
+
+msgid "grid.action.editDate"
+msgstr "Deasaich an ceann-là seo"
+
+msgid "grid.action.deleteDate"
+msgstr "Sguab an ceann-là seo às"
+
+msgid "grid.action.createContext"
+msgstr "Cruthaich clò ùr"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Seall taba fòrmat an fhoillseachaidh"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Tadhail air duilleag fiosan-naidheachd a’ chlòtha"
+
+msgid "grid.action.submissionEmail"
+msgstr "Dèan briogadh airson am post-d seo a leughadh"
+
+msgid "grid.action.approveProofs"
+msgstr "Seall griod nan dearbhan"
+
+msgid "grid.action.proofApproved"
+msgstr "Chaidh am fòrmat a dhearbhadh"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Thoir aonta ris an fhòrmat seo no thoirt air falbh an t-aonta"
+
+msgid "grid.action.formatAvailable"
+msgstr "Toglaich faotainneachd an fhòrmat air is dheth"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Cuir ceanglachan ris an lèirmheas"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Faidhlichean a tha ri làimh"
+
+msgid "series.series"
+msgstr "Sreath"
+
+msgid "series.featured.description"
+msgstr "Nochdaidh an sreath seo sa phrìomh sheòladaireachd"
+
+msgid "series.path"
+msgstr "Slighe"
+
+msgid "catalog.manage"
+msgstr "Stiùireadh a’ chatalog"
+
+msgid "catalog.manage.newReleases"
+msgstr "Air ùr-fhoillseachadh"
+
+msgid "catalog.manage.category"
+msgstr "Roinn-seòrsa"
+
+msgid "catalog.manage.series"
+msgstr "Sreath"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "Cuir a-steach ISSN dligheach."
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr ""
+"Chan fhaod an ISSN clò-bhualaidh agus an ISSN air loidhne a bhith co-ionann."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "ISSN air loidhne"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "ISSN clò-bhualaidh"
+
+msgid "catalog.selectSeries"
+msgstr "Tagh sreath"
+
+msgid "catalog.selectCategory"
+msgstr "Tagh roinn-seòrsa"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"Nochdaidh dealbh còmhdachadh nan leabhraichean a thagh thu mu bhàrr na "
+"duilleige-dachaigh ann an seata as urrainnear sgroladh tromhpa. Briog air "
+"“Brosnaich” agus an uairsin air an rionnag airson leabhar a chur ris an "
+"timcheallan; briog air a’ chlisg-phuing airson a bhrosnachadh mar sgaoileadh "
+"ùr; dèan slaodadh is leigeil às airson an t-òrdugh atharrachadh."
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Briog air “Brosnaich” agus an uairsin air an rionnag airson leabhar "
+"brosnaichte a thaghadh dhan roinn-seòrsa seo; dèan slaodadh is leigeil às "
+"airson an t-òrdugh atharrachadh."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Briog air “Brosnaich” agus an uairsin air an rionnag airson leabhar "
+"brosnaichte a thaghadh dhan t-sreath seo; dèan slaodadh is leigeil às airson "
+"an t-òrdugh atharrachadh. Tha deasaiche(an) agus tiotal an t-sreatha co-"
+"cheangailte ri sreath, am broinn roinn-seòrsa no an neo-eisimeileachd."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "An timcheallan"
+
+msgid "catalog.manage.newRelease"
+msgstr "Sgaoil"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Stiùirich an sreath"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Stiùirich na roinnean-seòrsa"
+
+msgid "catalog.manage.noMonographs"
+msgstr "Chan eil monograf ann a chaidh iomruineadh."
+
+msgid "catalog.manage.featured"
+msgstr "Brosnaichte"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "Brosnaichte san roinn-seòrsa"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "Brosnaichte san t-sreath"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "’S e monograf brosnaichte a tha seo."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "Chan e monograf brosnaichte a tha seo."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "Chaidh am monograf a chomharradh mar sgaoileadh ùr."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "Cha deach am monograf a chomharradh mar sgaoileadh ùr."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "Air ùr-fhoillseachadh"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "Sgaoileadh ùr san roinn-seòrsa"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "Sgaoileadh ùr san t-sreath"
+
+msgid "catalog.manage.nonOrderable"
+msgstr ""
+"Chan urrainnear òrdan a chur airson a’ mhonograf seo gus am bi e na "
+"mhonograf brosnaichte."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Lorg a-rèir tiotail no ùghdair"
+
+msgid "catalog.manage.isFeatured"
+msgstr ""
+"’S e monograf brosnaichte a tha seo. Na brosnaich am monograf seo tuilleadh."
+
+msgid "catalog.manage.isNotFeatured"
+msgstr ""
+"Chan e monograf brosnaichte a tha seo. Dèan monograf brosnaichte dheth."
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+"’S e sgaoileadh ùr a tha sa mhonograf seo. Comharraich nach e sgaoileadh ùr "
+"a sa mhonograf seo."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+"Chan e sgaoileadh ùr a tha sa mhonograf seo. Dèan sgaoileadh ùr dhen "
+"mhonograf seo."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr ""
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr ""
+
+msgid "catalog.manage.findSubmissions"
+msgstr ""
+
+msgid "catalog.noTitles"
+msgstr "Cha deach tiotal sam bith fhoillseachadh fhathast."
+
+msgid "catalog.noTitlesNew"
+msgstr "Chan eil foillseachadh ùr sam bith ri fhaighinn aig an àm seo."
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
+"Cha deach tiotalan a lorg a fhreagair air na lorg thu ({$searchQuery})."
+
+msgid "catalog.feature"
+msgstr "Gleus"
+
+msgid "catalog.featured"
+msgstr "Brosnaichte"
+
+msgid "catalog.featuredBooks"
+msgstr "Leabhraichean brosnaichte"
+
+msgid "catalog.foundTitleSearch"
+msgstr "Chaidh aon tiotal a lorg a fhreagair air na lorg thu ({$searchQuery})."
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+"Chaidh tiotalan a lorg ({$number} dhiubh) a fhreagair air na lorg thu "
+"({$searchQuery})."
+
+msgid "catalog.category.heading"
+msgstr "A h-uile leabhar"
+
+msgid "catalog.newReleases"
+msgstr "Air ùr-fhoillseachadh"
+
+msgid "catalog.dateAdded"
+msgstr "Air a chur ris"
+
+msgid "catalog.publicationInfo"
+msgstr "Fiosrachadh mun fhoillseachadh"
+
+msgid "catalog.published"
+msgstr "Foillsichte"
+
+msgid "catalog.forthcoming"
+msgstr "Ri thighinn"
+
+msgid "catalog.categories"
+msgstr "Roinnean-seòrsa"
+
+msgid "catalog.parentCategory"
+msgstr "Roinn-seòrsa pàrant"
+
+msgid "catalog.category.subcategories"
+msgstr "Fo-roinnean-seòrsa"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "Mu dhèidhinn {$roleName}"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"Thoir an aire: Feumaidh tu clàradh a-steach an toiseach mus urrainn dhut "
+"rudan a cheannach. Ma thaghas tu rud airson a cheannach, thèid d’ ath-"
+"stiùireadh gu duilleag far an clàraich thu a-steach. Ma tha ìomhaigheag "
+"“Inntrigeadh fosgailte” ri rud, gabhaidh a luchdadh a-nuas saor ’s an-"
+"asgaidh gun fheum air clàradh a-steach."
+
+msgid "catalog.sortBy"
+msgstr "Òrdugh nam monograf"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "Tagh òrdugh dha na leabhraichean san t-sreath seo."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr "Tagh òrdugh dha na leabhraichean san roinn-seòrsa seo."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "Tagh òrdugh dha na leabhraichean sa chatalog."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "An t-ionad san t-sreath (feadhainn as ìsle an toiseach)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "An t-ionad san t-sreath (feadhainn as àirde an toiseach)"
+
+msgid "catalog.viewableFile.title"
+msgstr "Sealladh ({$type}) dhen fhaidhle {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "Till chun a’ mhion-fhiosrachaidh mu dhèidhinn {$monographTitle}"
+
+msgid "submission.search"
+msgstr "Lorg leabhar"
+
+msgid "common.publication"
+msgstr "Monograf"
+
+msgid "common.publications"
+msgstr "Monografaichean"
+
+msgid "common.prefix"
+msgstr "Ro-leasachan"
+
+msgid "common.preview"
+msgstr "Ro-shealladh"
+
+msgid "common.feature"
+msgstr "Gleus"
+
+msgid "common.searchCatalog"
+msgstr "Lorg sa chatalog"
+
+msgid "common.moreInfo"
+msgstr "Barrachd fiosrachaidh"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Lìon am foirm gu lèir."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Tagh roghainn dhligheach on liosta."
+
+msgid "common.listbuilder.itemExists"
+msgstr "Chan urrainn dhut an aon rud a chur ris dà thuras."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Bann-cinn na duilleige-dachaigh"
+
+msgid "navigation.catalog"
+msgstr "Catalog"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Am poileasaidh mu chòmhstri ùidhean"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "A h-uile monograf"
+
+msgid "navigation.catalog.manage"
+msgstr "Stiùirich"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Ball sgioba rianachd LibreOffice"
+
+msgid "navigation.catalog.administration"
+msgstr "Rianachd a’ chatalog"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Roinnean-seòrsa"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Sreath"
+
+msgid "navigation.infoForAuthors"
+msgstr "Do dh’ùghdaran"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Do leabhar-lannaichean"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Fiosrachadh do dh’ùghdaran"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Fiosrachadh do leabhar-lannaichean"
+
+msgid "navigation.newReleases"
+msgstr "Air ùr-fhoillseachadh"
+
+msgid "navigation.published"
+msgstr "Foillsichte"
+
+msgid "navigation.wizard"
+msgstr "An draoidh"
+
+msgid "navigation.linksAndMedia"
+msgstr "Ceanglaichean is meadhanan sòisealta"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Ceangail ris a’ chatalog agad."
+
+msgid "navigation.skip.spotlights"
+msgstr "Leum chun nam prosbaigean"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Sreath"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Ceangail ri sreath."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Roinn-seòrsa"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Ceangail ri roinn-seòrsa."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "Air ùr-fhoillseachadh"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Ceanglaichean ris na sgaoilidhean ùra agad."
+
+msgid "context.contexts"
+msgstr "Clòthan"
+
+msgid "context.context"
+msgstr "Brùth"
+
+msgid "context.current"
+msgstr "An clò làithreach:"
+
+msgid "context.select"
+msgstr "Geàrr leum gu clò eile:"
+
+msgid "user.authorization.representationNotFound"
+msgstr ""
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "Gabh a-staigh cleachdaichean aig nach eil dreuchd sa chlò seo."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Cuir moladh"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr "Cuir monograf: Tha clàradh ùghdaran à comas aig an àm seo."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Clàraich mar lèirmheasaiche"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+"Clàraich mar lèirmheasaiche: Tha clàradh lèirmheasaichean à comas aig an àm "
+"seo."
+
+msgid "user.reviewerPrompt"
+msgstr ""
+"A bheil ùidh agad ann a bhith a’ dèanamh lèirmheasan air tagraidhean dhan "
+"chlò seo?"
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Tha, iarr dreuchd {$userGroup}."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"Tha, tha mi ag iarraidh gun cuirear fios thugam ma bhios iarrtas ann airson "
+"lèirmheas tagraidh dhan chlò seo."
+
+msgid "user.register.contextsPrompt"
+msgstr "Dè na clòthan air an làrach seo bu toil leat clàradh aca?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Iarr na dreuchdan a leanas."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"Ma dh’iarr thu inbhe lèirmheasaiche airson clò sam bith, cuir a-steach na "
+"cuspairean sa bheil ùidh agad."
+
+msgid "user.role.manager"
+msgstr "Manaidsear a’ chlòtha"
+
+msgid "user.role.pressEditor"
+msgstr "Deasaiche a’ chlòtha"
+
+msgid "user.role.subEditor"
+msgstr "Deasaiche an t-sreatha"
+
+msgid "user.role.copyeditor"
+msgstr "Grinn-deasaiche"
+
+msgid "user.role.proofreader"
+msgstr "Dearbh-leughadair"
+
+msgid "user.role.productionEditor"
+msgstr "Deasaiche saothrachaidh"
+
+msgid "user.role.managers"
+msgstr "Manaidsearan a’ chlòtha"
+
+msgid "user.role.subEditors"
+msgstr "Deasaichean an t-sreatha"
+
+msgid "user.role.editors"
+msgstr "Deasaichean"
+
+msgid "user.role.copyeditors"
+msgstr "Grinn-deasaichean"
+
+msgid "user.role.proofreaders"
+msgstr "Dearbh-leughadairean"
+
+msgid "user.role.productionEditors"
+msgstr "Deasaichean saothrachaidh"
+
+msgid "user.register.selectContext"
+msgstr "Tagh clò airson clàradh aige:"
+
+msgid "user.register.noContexts"
+msgstr "Chan eil clò sam bith air an làrach seo as urrainn dhut clàradh aige."
+
+msgid "user.register.privacyStatement"
+msgstr "An aithris prìobhaideachd"
+
+msgid "user.register.registrationDisabled"
+msgstr "Chan eil an clò seo a’ clàradh chleachdaichean aig an àm seo."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "Chan eil am facal-faire a chuir thu a-steach fada gu leòr."
+
+msgid "user.register.readerDescription"
+msgstr "Gheibhear fios air a’ phost-d nuair a thèid monograf fhoillseachadh."
+
+msgid "user.register.authorDescription"
+msgstr "Comasach air nithean a chur dhan chlò."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "Deònach lèirmheas seise a dhèanamh air tagraidhean dhan chlò."
+
+msgid "user.register.reviewerDescription"
+msgstr "Deònach lèirmheas seise a dhèanamh air tagraidhean dhan làrach."
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+"Aithneachadh de dh’ùidhean lèirmheis (raointean chuspairean agus dòighean "
+"rannsachaidh):"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Feumaidh tu co-dhiù aon dreuchd a thaghadh"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"Tha, tha mi ag aontachadh gun tèid an dàta agam a chruinneachadh is a "
+"stòradh a rèir aithris "
+"prìobhaideachd a’ chlò seo."
+
+msgid "site.noPresses"
+msgstr "Chan eil clòth sam bith ri fhaighinn."
+
+msgid "site.pressView"
+msgstr "Seall làrach-lìn a’ chlòtha"
+
+msgid "about.pressContact"
+msgstr "Conaltradh leis a’ chlò"
+
+msgid "about.aboutContext"
+msgstr "Mun chlò"
+
+msgid "about.editorialTeam"
+msgstr "An sgioba deasachaidh"
+
+msgid "about.editorialPolicies"
+msgstr "Poileasaidhean deasachaidh"
+
+msgid "about.focusAndScope"
+msgstr "Fòcas is sgòp"
+
+msgid "about.seriesPolicies"
+msgstr "Poileasaidhean a thaobh shreathan is roinnean-seòrsa"
+
+msgid "about.submissions"
+msgstr "Tagraidhean"
+
+msgid "about.onlineSubmissions"
+msgstr "Tagraidhean air loidhne"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Clàraich a-steach"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Clàraich"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr "{$login} no {$register} a dhèanamh tagradh."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} no {$viewSubmissions}."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Dèan tagradh ùr"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "coimhead air na tagraidhean agad a tha ri dhèiligeadh"
+
+msgid "about.authorGuidelines"
+msgstr "Riaghailtean dha na h-ùghdaran"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Liosta-chromagan ullachadh an tagraidh"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"Mar phàirt dhen phròiseas tagraidh, bidh aig na h-ùghdaran cromag a chur ris "
+"na nithean a leanas air fad a dh’innse gu bheil an tagradh aca a’ gèilleadh "
+"ri gach aon dhiubh agus mur eil tagradh a’ gèilleadh ris na riaghailtean "
+"seo, dh’fhaoidte gun tèid a thilleadh dha na h-ùghdaran."
+
+msgid "about.copyrightNotice"
+msgstr "Brath na còrach-lethbhreac"
+
+msgid "about.privacyStatement"
+msgstr "An aithris prìobhaideachd"
+
+msgid "about.reviewPolicy"
+msgstr "Pròiseas nan lèirmheas le seise"
+
+msgid "about.publicationFrequency"
+msgstr "Tricead an fhoillseachaidh"
+
+msgid "about.openAccessPolicy"
+msgstr "Poileasaidh an inntrigidh fhosgailte"
+
+msgid "about.pressSponsorship"
+msgstr "Sponsaireachd a’ chlòtha"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr ""
+"Barrachd fiosrachaidh mu na siostaman foillseachaidh, mun ùrlar agus sruth-"
+"obrach le OMP/PKP."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "Pròiseas foillseachadh is deasachadh OMP"
+
+msgid "about.aboutSoftware"
+msgstr ""
+
+#, fuzzy
+msgid "about.aboutOMPPress"
+msgstr ""
+"Tha an clò seo a’ cleachdadh Open Monograph Press {$ompVersion}, bathar-bog "
+"le còd fosgailte airson stiùireadh chlòthan is foillseachadh, le taic a’ Public Knowledge Project agus ga sgaoileadh "
+"gu saor fo cheadachas coitcheann poblach GNU."
+
+#, fuzzy
+msgid "about.aboutOMPSite"
+msgstr ""
+"Tha an làrach seo a’ cleachdadh Open Monograph Press {$ompVersion}, bathar-"
+"bog le còd fosgailte airson stiùireadh clòthan is foillseachadh, le taic a’ "
+"Public Knowledge Project agus ga "
+"sgaoileadh gu saor fo cheadachas coitcheann poblach GNU."
+
+msgid "help.searchReturnResults"
+msgstr "Till gu toraidhean an luirg"
+
+msgid "help.goToEditPage"
+msgstr "Fosgail duilleag ùr gus am fiosrachadh seo a dheasachadh"
+
+msgid "installer.appInstallation"
+msgstr "Stàladh OMP"
+
+msgid "installer.ompUpgrade"
+msgstr "Àrdachadh OMP"
+
+msgid "installer.installApplication"
+msgstr "Stàlaich Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+
+#, fuzzy
+msgid "installer.installationInstructions"
+msgstr ""
+"\n"
+"Mòran taing airson Open Monograph Press {$version} aig "
+"a’ Public Knowledge Project a luchdadh a-nuas. Mus lean thu air adhart, "
+"leugh am faidhle README a tha ga "
+"ghabhail a-staigh leis a’ bhathar-bhog seo. Airson barrachd fiosrachaidh mun "
+"Public Knowledge Project agus na pròiseactan bathair-bhog aca, tadhail air "
+"làrach-lìn PKP. Ma tha "
+"thu airson aithris a dhèanamh aig buga no ma tha ceist agad mu Open "
+"Monograph Press, faic am fòram taice no tadhail air an t-siostam aig PKP airson aithris a dhèanamh aig "
+"bugaichean. Ge b’ fheàrr leinn cluinntinn o dhaoine slighe an fhòraim, "
+"’s urrainn dhut post-d a chur chun an sgioba cuideachd pkp.contact@gmail.com.
\n"
+"\n"
+"Àrdachadh
\n"
+"\n"
+"Ma tha thu ag àrdachadh stàladh làithreach de OMP, briog an-seo a leantainn air adhart.
"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Ceuman ro-stàlaidh"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. Feumaidh tu na faidhlichean is pasganan a leans (agus an t-susbaint "
+"annta) a dhèanamh so-sgrìobhte:
\n"
+"\n"
+"\t- Tha config.inc.php so-sgrìobhte (roghainneil): "
+"{$writable_config}\n"
+"
\n"
+"\t- Tha public/ so-sgrìobhte: {$writable_public}\n"
+"
\n"
+"\t- Tha cache/ so-sgrìobhte: {$writable_cache}\n"
+"
\n"
+"\t- Tha cache/t_cache/ so-sgrìobhte: {$writable_templates_cache}\n"
+"
\n"
+"\t- Tha cache/t_compile/ so-sgrìobhte: "
+"{$writable_templates_compile}\n"
+"
\n"
+"\t- Tha cache/_db so-sgrìobhte: {$writable_db_cache}\n"
+"
\n"
+"
\n"
+"\n"
+"2. Feumaidh tu pasgan a chruthachadh far an cumar na faidhlichean a thèid "
+"a luchdadh suas agus feumaidh e a bhith so-sgrìobhte (faic “Roghainnean "
+"faidhle” gu h-ìosal.
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"Tionndadh OMP {$version}
\n"
+"\n"
+"Mòran taing airson Open Monograph Press aig a’ Public "
+"Knowledge Project a luchdadh a-nuas. Mus lean thu air adhart, leugh na "
+"faidhlichean README agus UPGRADE a tha gan gabhail a-staigh leis a’ "
+"bhathar-bhog seo. Airson barrachd fiosrachaidh mun Public Knowledge Project "
+"agus na pròiseactan bathair-bhog aca, tadhail air làrach-lìn PKP. Ma tha thu airson aithris a "
+"dhèanamh aig buga no ma tha ceist agad mu Open Monograph Press, faic am fòram taice no "
+"tadhail air an t-siostam aig PKP airson aithris a dhèanamh aig bugaichean. Ge b’ fheàrr "
+"leinn cluinntinn o dhaoine slighe an fhòraim, ’s urrainn dhut post-d a chur "
+"chun an sgioba cuideachd aig pkp."
+"contact@gmail.com.
\n"
+"Mholamaid dhut gu mòr gun dèan thu lethbhreac-glèidhidh "
+"dhen stòr-dàta, pasgan nam faidhlichean agus pasgan stàladh OMP agad mus "
+"lean thu air adhart.
\n"
+"Ma tha thu a’ ruith sa mhodh sàbhailte PHP, dèan cinnteach gu bheil crìoch "
+"àrd aig steòrnadh max_execution_time san fhaidhle rèiteachaidh php.ini "
+"agad.\n"
+"Ma ruigear a’ chrìoch-ama seo no tè sam bith eile (m.e. an steòrnadh "
+"“Timeout” aig Apache) agus ma bhriseas sin a-steach air an àrdachadh, bidh "
+"agad ris a chur ceart de làimh.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"Airson làn-taic Unicode (UTF-8), tagh UTF-8 airson gach roghainn a thaobh "
+"nan seataichean charactaran. Thoir an aire gum feum an taic seo "
+"frithealaiche stòir-dhàta MySQL >= 4.1.1 no PostgreSQL >= 9.1.5 aig an àm "
+"seo. Thoir an aire cuideachd gum feum làn-taic Unicode leabhar-lann mbstring (rud a bhios "
+"an comas a ghnàth anns gach stàladh PHP o chionn greis). Dh’fhaoidte gum bi "
+"duilgheadasas agad le seataichean charactaran sònraichte mur eil am "
+"frithealaiche agad a’ coileanadh nan riatanasan seo.\n"
+"
\n"
+"Tha taic aig an fhrithealaiche agad ri mbstring: {$supportsMBString}"
+""
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"Tha am frithealaiche agad a’ ceadachadh luchdadh suas de dh’fhaidhlichean "
+"aig an àm seo: {$allowFileUploads}"
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"Tha am frithealaiche agad a’ ceadachadh luchdadh suas de dh’fhaidhlichean "
+"suas chun a’ mheud a leanas aig an àm seo: {$maxFileUploadSize}"
+"strong>"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"Am prìomh-chànan a chleachdas an siostam seo. Thoir sùil air an stiùireadh "
+"airson OMP ma tha cànan a dhìth ort nach fhaic thu an-seo."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Tagh na cànain eile a thèid a chleachdadh san t-siostam seo. Bidh na cànain "
+"seo ri làimh chlòthan aig am bi air òstaireachd air an làrach. Gabhaidh "
+"cànain a stàladh o eadar-aghaidh rianachd na làraich uair sam bith "
+"cuideachd. Dh’fhaoidte gu bheil sgeamaichean ionadail ris a bheil * gun "
+"choileanadh."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Cuir a-steach ainm slàn na slighe gu pasgan làithreach far an tèid na "
+"faidhlichean a chumail a thèid a luchdadh suas. Cha bu chòir dha a bhith na "
+"phasgan a ruigear calg-dhìreach on lìon. Dèan cinnteach gu bheil am "
+"pasgan seo ann agus gun gabh sgrìobhadh ann mus tòisich thu air an stàladh."
+"strong> Bu chòir do shlaisichean air adhart a bhith ann an ainmean slighean "
+"Windows, m.e. “C:/mypress/files”."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"Feumaidh OMP cothrom air stòr-dàta SQL far an cùm e an dàta aige. Faic "
+"riatanasan an t-siostaim gu h-àrd airson liosta nan stòr-dàta ris a bheil "
+"taic. Cuir na roghainnean a thèid a chleachdadh airson ceangal a dhèanamh "
+"ris an stòr-dàta sna raointean gu h-ìosal."
+
+msgid "installer.upgradeApplication"
+msgstr "Àrdaich Open Monograph Press"
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"CUDROMACH!
\n"
+"Cha b’ urrainn dhan stàlaichear sgrìobhadh thairis air an fhaidhle "
+"rèiteachaidh. Mus cleachd thu an siostam, fosgail config.inc.php "
+"ann an deasaiche teacsa iomchaidh agus cuir na tha san raon teacsa gu h-"
+"ìosal an àite na susbaint ann.
"
+
+#, fuzzy
+msgid "installer.installationComplete"
+msgstr ""
+"Chaidh OMP a stàladh.
\n"
+"Airson tòiseachadh air an siostam a chleachdadh, clàraich a-steach leis an ainm-chleachdaiche is facal-"
+"faire a chuir thu a-steach air an duilleag roimhpe.
\n"
+"Ma tha thu airson naidheachdan is ùrachaidhean fhaighinn, dèan "
+"clàradh aig http://pkp.sfu.ca/omp/register. Ma tha ceistean no beachdan "
+"agad mu dhèidhinn, tadhail air an fhòram taice.
"
+
+#, fuzzy
+msgid "installer.upgradeComplete"
+msgstr ""
+"Chaidh tionndadh {$version} de OMP a stàladh.
\n"
+"Na dìochuimhnich an roghainn “stàlaichte” a chur gu Air a-"
+"rithist san fhaidhle rèiteachaidh config.inc.php agad.
\n"
+"Mur eil thu air clàradh agus ma tha thu ag iarraidh naidheachdan is "
+"ùrachaidhean fhaighinn, dèan clàradh aig http://pkp.sfu.ca/omp/register."
+"strong> Ma tha ceistean no beachdan agad mu dhèidhinn, tadhail air an fhòram taice.
"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"Chaidh {$dueDate} a shuidheachadh le {$reviewerName} mar cheann-là "
+"lìbhrigidh airson lèirmheas cuairt {$round} dhen tagradh {$submissionId}."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"Dhiùlt {$userName} lèirmheas cuairt {$round} mu choinneamh tagradh "
+"{$submissionId}."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"Ghabh {$reviewerName} ri lèirmheas cuairt {$round} mu choinneamh tagraidh "
+"{$submissionId}."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"Chomharraich {$userName} gu bheil lèirmheas cuairt {$round} mu choinneamh "
+"tagradh {$submissionId} gun chnuasachadh."
+
+msgid "log.editor.decision"
+msgstr ""
+"Chaidh co-dhùnadh le deasaiche ({$decision}) mu choinneamh a’ mhonograf "
+"{$submissionId} a chlàradh le {$editorName}."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"Chaidh moladh le deasaiche ({$decision}) mu choinneamh a’ mhonograf "
+"{$submissionId} a chlàradh le {$editorName}."
+
+msgid "log.editor.archived"
+msgstr "Chaidh an tagradh {$submissionId} a chur dhan tasg-lann."
+
+msgid "log.editor.restored"
+msgstr "Chaidh an tagradh {$submissionId} aiseag dhan chiutha."
+
+msgid "log.editor.editorAssigned"
+msgstr ""
+"Chaidh {$editorName} iomruineadh dhan tagradh {$submissionId} mar dheasaiche."
+
+msgid "log.proofread.assign"
+msgstr ""
+"Dh’iomruin {$assignerName} {$proofreaderName} airson dearbh-leughadh a "
+"dhèanamh air an tagradh {$submissionId}."
+
+msgid "log.proofread.complete"
+msgstr "Chuir {$proofreaderName} {$submissionId} airson sgeidealachadh."
+
+msgid "log.imported"
+msgstr "Thug {$userName} a-steach am monograf {$submissionId}."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Chaidh an còd ID a chur ris."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Chaidh an còd ID a dheasachadh."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Chaidh an còd ID a thoirt air falbh."
+
+msgid "notification.addedPublicationDate"
+msgstr "Chaidh ceann-là an fhoillseachaidh a chur ris."
+
+msgid "notification.editedPublicationDate"
+msgstr "Chaidh ceann-là an fhoillseachaidh a dheasachadh."
+
+msgid "notification.removedPublicationDate"
+msgstr "Chaidh ceann-là an fhoillseachaidh a thoirt air falbh."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Chaidh fòrmat an fhoillseachaidh a chur ris."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Chaidh fòrmat an fhoillseachaidh a dheasachadh."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Chaidh fòrmat an fhoillseachaidh a thoirt air falbh."
+
+msgid "notification.addedSalesRights"
+msgstr "Chaidh na còraichean reic a chur ris."
+
+msgid "notification.editedSalesRights"
+msgstr "Chaidh na còraichean reic a dheasachadh."
+
+msgid "notification.removedSalesRights"
+msgstr "Chaidh na còraichean reic a thoirt air falbh."
+
+msgid "notification.addedRepresentative"
+msgstr "Chaidh an neach-ionaid a chur ris."
+
+msgid "notification.editedRepresentative"
+msgstr "Chaidh an neach-ionaid a dheasachadh."
+
+msgid "notification.removedRepresentative"
+msgstr "Chaidh an neach-ionaid a thoirt air falbh."
+
+msgid "notification.addedMarket"
+msgstr "Chaidh a’ mhargaid a chur ris."
+
+msgid "notification.editedMarket"
+msgstr "Chaidh a’ mhargaid a dheasachadh."
+
+msgid "notification.removedMarket"
+msgstr "Chaidh a’ mhargaid a thoirt air falbh."
+
+msgid "notification.addedSpotlight"
+msgstr "Chaidh prosbaig a chur ris."
+
+msgid "notification.editedSpotlight"
+msgstr "Chaidh a’ phrosbaig a dheasachadh."
+
+msgid "notification.removedSpotlight"
+msgstr "Chaidh a’ phrosbaig a thoirt air falbh."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Chaidh meata-dàta a’ chatalog a shàbhaladh."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Chaidh meata-dàta fòrmat an fhoillseachaidh a shàbhaladh."
+
+msgid "notification.proofsApproved"
+msgstr "Fhuair na dearbhan aonta."
+
+msgid "notification.removedSubmission"
+msgstr "Chaidh an tagradh a sguabadh às."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Chaidh monograf ùr, “{$title}”, a chur."
+
+msgid "notification.type.editing"
+msgstr "Tachartasan deasachaidh"
+
+msgid "notification.type.reviewing"
+msgstr "Lèirmheasadh thachartasan"
+
+msgid "notification.type.site"
+msgstr "Tachartasan na làraich"
+
+msgid "notification.type.submissions"
+msgstr "Tachartas tagraidh"
+
+msgid "notification.type.userComment"
+msgstr "Thug leughadair seachad beachd air “{$title}”."
+
+msgid "notification.type.public"
+msgstr "Fiosan-naidheachd poblach"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr "Chaidh monograf ùr a chur agus tha e feumach air deasaiche."
+
+msgid "notification.type.copyeditorRequest"
+msgstr ""
+"Chaidh iarraidh ort lèirmheas a dhèanamh air a’ ghrinn-deasachadh a rinneadh "
+"air “{$title}”."
+
+msgid "notification.type.layouteditorRequest"
+msgstr ""
+"Chaidh iarraidh ort lèirmheas a dhèanamh air a’ cho-dhealbhachd aig "
+"“{$title}”."
+
+msgid "notification.type.indexRequest"
+msgstr "Chaidh iarraidh ort clàr-amais a chruthachadh dha “{$title}”."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Thòisich an lèirmheas inntearnail."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Tha an tagradh seo a’ feitheamh ri aonta fhathast ann an inneal innteartan "
+"a’ chatalog agus nochdaidh e sa chatalog phoblach an uairsin."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "A’ feitheamh ri aonta."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"Cha nochd am monograf sa chatalog gus an deach fhoillseachadh. Airson an "
+"leabhar seo a chur ris a’ chatalog, briog air an taba “Foillseachadh”."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "Cha deach dòigh pàighidh a rèiteachadh."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"Feumaidh tu dòigh pàighidh a rèiteachadh mus urrainn dhut roghainnean "
+"malairt-d a shònrachadh."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Stiùireadh a’ chatalog"
+
+#, fuzzy
+msgid "notification.type.visitCatalog"
+msgstr ""
+"Fhuair am monograf aonta. Tadhail air a’ chatalog a stiùireadh mion-"
+"fhiosrachadh a’ chatalog leis na ceanglaichean gu h-àrd."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+"Chaidh inntrigeadh dha diùltadh ort oir chan eil coltas gu bheil thu nad "
+"lèirmheasaiche dligheach airson a’ mhonograf seo."
+
+msgid "user.authorization.monographAuthor"
+msgstr ""
+"Chaidh inntrigeadh dha diùltadh ort oir chan eil coltas gu bheil thu nad "
+"ùghdar a’ mhonograf seo."
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"Chaidh inntrigeadh dha diùltadh ort oir chan eil coltas nach deach d’ "
+"iomruineadh mar lèirmheasaiche airson a’ mhonograf seo."
+
+msgid "user.authorization.monographFile"
+msgstr ""
+"Chaidh inntrigeadh do dh’fhaidhle a’ mhonograf a dh’iarr thu diùltadh ort."
+
+msgid "user.authorization.invalidMonograph"
+msgstr ""
+"Chan eil am monograf dligheach no cha deach monograf sam bith iarraidh!"
+
+#, fuzzy
+msgid "user.authorization.noContext"
+msgstr "Chan eil clò sa cho-theacsa!"
+
+msgid "user.authorization.seriesAssignment"
+msgstr ""
+"Tha thu a’ feuchainn ri cothrom fhaighinn air monograf nach eil na phàirt "
+"dhen t-sreath agad-sa."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr ""
+"Chaidh inntrigeadh a dhiùltadh! Cha deach d’ iomruineadh do cheum seo an t-"
+"sruth-obrach."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"Chaidh inntrigeadh a dhiùltadh! Tha comas gnìomh agad ann am buidheann "
+"chleachdaichean nach deach iomruineadh do cheum seo an t-sruth-obrach. Thoir "
+"sùil air roghainnean a’ chlòtha agad."
+
+msgid "payment.directSales"
+msgstr "Luchdaich a-nuas o làrach-lìn a’ chlòtha"
+
+msgid "payment.directSales.price"
+msgstr "Prìs"
+
+msgid "payment.directSales.availability"
+msgstr "Faotainneachd"
+
+msgid "payment.directSales.catalog"
+msgstr "Catalog"
+
+msgid "payment.directSales.approved"
+msgstr "Air aontachadh"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "A’ phrìs ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr "Feumaidh prìs a bhith na àireamh. Na cuir ann samhla an airgeadra."
+
+msgid "payment.directSales.directSales"
+msgstr "Reicean dìreach"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Chan eil seo ri làimh"
+
+msgid "payment.directSales.notSet"
+msgstr "Cha deach a shuidheachadh"
+
+msgid "payment.directSales.openAccess"
+msgstr "Inntrigeadh fosgailte"
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"Gabhaidh fòrmatan faidhle a chur ri làimh airson luchdadh a-nuas o làrach-"
+"lìn a’ chlòtha slighe inntrigidh fhosgailte gun chosgais sam bith do "
+"leughadairean no slighe reicean dìreach (a’ cleachdadh làimhsichear pàighidh "
+"air loidhne mar a chaidh a rèiteachadh ann an roghainn an sgaoilidh). "
+"Sònraich an dòigh inntrigidh airson an fhaidhle seo."
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Tha feum air prìs mar àireamh dhligheach."
+
+msgid "payment.directSales.purchase"
+msgstr "Ceannaich {$format} ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Luchdaich a-nuas {$format}"
+
+msgid "payment.directSales.monograph.name"
+msgstr "Ceannaich monograf no luchdadh a-nuas de chaibideil"
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+"Bidh tu a’ ceannach luchdadh a-nuas dìreach de mhonograf no caibideil de "
+"mhonograf leis an tar-chur seo."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+"Chaidh faidhle mapadh XML na cobharach “{$filename}” ath-luchdadh an tòir "
+"{$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Leabhar"
+
+msgid "submission.pdf.download"
+msgstr "Luchdaich a-nuas am faidhle PDF seo"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Clàraich aig clòthan eile"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "Falaich na clòthan eile"
+
+msgid "submission.round"
+msgstr "Cuairt {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "Chaidh tagradh foillsichte mì-dhligheach a shònrachadh."
+
+msgid "catalog.coverImageTitle"
+msgstr "Dealbh a’ chòmhdachaidh"
+
+msgid "grid.catalogEntry.chapters"
+msgstr ""
+
+msgid "search.results.orderBy.article"
+msgstr ""
+
+msgid "search.results.orderBy.author"
+msgstr ""
+
+msgid "search.results.orderBy.date"
+msgstr ""
+
+msgid "search.results.orderBy.monograph"
+msgstr ""
+
+msgid "search.results.orderBy.press"
+msgstr ""
+
+msgid "search.results.orderBy.popularityAll"
+msgstr ""
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr ""
+
+msgid "search.results.orderBy.relevance"
+msgstr ""
+
+msgid "search.results.orderDir.asc"
+msgstr ""
+
+msgid "search.results.orderDir.desc"
+msgstr ""
+
+#~ msgid "debug.notes.currencyListLoad"
+#~ msgstr "Chaidh liosta nan airgeadra “{$filename}” on XML"
+
+msgid "section.section"
+msgstr "Sreath"
diff --git a/locale/gd/submission.po b/locale/gd/submission.po
new file mode 100644
index 00000000000..e8673b67c44
--- /dev/null
+++ b/locale/gd/submission.po
@@ -0,0 +1,583 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2020-11-17 02:12+0000\n"
+"Last-Translator: Michael Bauer \n"
+"Language-Team: Gaelic \n"
+"Language: gd_GB\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==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
+"(n > 2 && n < 20) ? 2 : 3;\n"
+"X-Generator: Weblate 3.9.1\n"
+
+msgid "submission.upload.selectComponent"
+msgstr "Tagh co-phàirt"
+
+msgid "submission.title"
+msgstr "Tiotal leabhair"
+
+msgid "submission.select"
+msgstr "Tagh tagradh"
+
+msgid "submission.synopsis"
+msgstr "Geàrr-chunntas"
+
+msgid "submission.workflowType"
+msgstr "Seòrsa an tagraidh"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"’S e obair a rinn co-dhiù aon ùghdar a tha ann am monograf. Tha ùghdar eile "
+"aig gach caibideil ann an iom-leabhar deasaichte (le mion-fhiosrachadh nan "
+"caibideilean gan cur a-steach rè ceann thall a’ phròiseis.)"
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr "Iom-leabhar deasaichte"
+
+msgid "submission.workflowType.editedVolume"
+msgstr ""
+"Iom-leabhar deasaichte: Thèid na h-ùghdaran a cho-cheangal ris a’ chaibideil "
+"aca fhèin."
+
+msgid "submission.workflowType.authoredWork"
+msgstr "Monograf: Thèid na h-ùghdaran a cho-cheangal ris an leabhar air fad."
+
+msgid "submission.workflowType.change"
+msgstr "Atharraich"
+
+msgid "submission.editorName"
+msgstr "{$editorName} (deas.)"
+
+msgid "submission.monograph"
+msgstr "Monograf"
+
+msgid "submission.published"
+msgstr "Deiseil airson saothrachadh"
+
+msgid "submission.fairCopy"
+msgstr "Lethbhreac grinn"
+
+msgid "submission.authorListSeparator"
+msgstr "; "
+
+msgid "submission.artwork.permissions"
+msgstr "Ceadan"
+
+msgid "submission.chapter"
+msgstr "Caibideil"
+
+msgid "submission.chapters"
+msgstr "Caibideilean"
+
+msgid "submission.chapter.addChapter"
+msgstr "Cuir caibideil ris"
+
+msgid "submission.chapter.editChapter"
+msgstr "Deasaich a’ chaibideil"
+
+msgid "submission.chapter.pages"
+msgstr "Duilleagan"
+
+msgid "submission.copyedit"
+msgstr "Grinn-deasachadh"
+
+msgid "submission.publicationFormats"
+msgstr "Fòrmatan foillseachaidh"
+
+msgid "submission.proofs"
+msgstr "Dearbhaidhean"
+
+msgid "submission.download"
+msgstr "Luchdaich a-nuas"
+
+msgid "submission.sharing"
+msgstr "Co-roinn seo"
+
+msgid "manuscript.submission"
+msgstr "Tagradh sgrìobhainn"
+
+msgid "submission.round"
+msgstr "Cuairt {$round}"
+
+msgid "submissions.queuedReview"
+msgstr "Fo lèirmheas"
+
+msgid "manuscript.submissions"
+msgstr "Tagraidhean sgrìobhainnean"
+
+msgid "submission.metadata"
+msgstr "Meata-dàta"
+
+msgid "submission.supportingAgencies"
+msgstr "Buidhnean a tha a’ cur taic ris"
+
+msgid "grid.action.addChapter"
+msgstr "Cruthaich caibideil ùr"
+
+msgid "grid.action.editChapter"
+msgstr "Deasaich a’ chaibideil seo"
+
+msgid "grid.action.deleteChapter"
+msgstr "Sguab a’ chaibideil seo às"
+
+msgid "submission.submit"
+msgstr "Tòisich air tagradh de leabhar ùr"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Tòisich air tagradh ùr ann an"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr "Tagradh ùr"
+
+msgid "submission.submit.upload"
+msgstr "Luchdaich an tagradh suas"
+
+msgid "author.volumeEditor"
+msgstr ""
+
+msgid "author.isVolumeEditor"
+msgstr "Comharraich an com-pàirtiche seo mar dheasaiche an iom-leabhair seo."
+
+msgid "submission.submit.seriesPosition"
+msgstr "Ionad san t-sreath"
+
+msgid "submission.submit.seriesPosition.description"
+msgstr "Mar eisimpleir: Leabhar 2, Iom-leabhar 2"
+
+msgid "submission.submit.privacyStatement"
+msgstr "An aithris prìobhaideachd"
+
+msgid "submission.submit.contributorRole"
+msgstr "Dreuchd neach-pàirteachaidh"
+
+msgid "submission.submit.submissionFile"
+msgstr "Faidhle tagraidh"
+
+msgid "submission.submit.prepare"
+msgstr "Ullaich"
+
+msgid "submission.submit.catalog"
+msgstr "Catalog"
+
+msgid "submission.submit.metadata"
+msgstr "Meata-dàta"
+
+msgid "submission.submit.finishingUp"
+msgstr "Ga chrìochnachadh"
+
+msgid "submission.submit.confirmation"
+msgstr "Dearbhadh"
+
+msgid "submission.submit.nextSteps"
+msgstr "Na h-ath-cheuman"
+
+msgid "submission.submit.coverNote"
+msgstr "Nòta còmhdachaidh dhan deasaiche"
+
+msgid "submission.submit.generalInformation"
+msgstr "Fiosrachadh coitcheann"
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"Chaidh fios mun tagradh agad a chur chun a’ chlòtha agus chaidh post-d a "
+"chur thugad a dhearbhas gun d’fhuair iad e. Turas a rinn an lèirmheasaiche "
+"lèirmheas air an tagradh, cuiridh iad fios thugad."
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Leugh na rudan air liosta-chromagan an tagraidh is cuir cromagan riutha. Tha "
+"uiread a nithean gun chromag fhathast: {$itemsRemaining}."
+
+msgid "submission.submit.placement"
+msgstr "Suidheachadh an tagraidh"
+
+msgid "submission.submit.userGroup"
+msgstr "Cuir e ’s mi nam dhreuchd a leanas…"
+
+msgid "submission.submit.noContext"
+msgstr "Cha b’ urrainn dhuinn clò an tagraidh seo a lorg."
+
+msgid "grid.chapters.title"
+msgstr "Caibideilean"
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Sguab às na luchdaich an grinn-deasaiche suas"
+
+msgid "submission.complete"
+msgstr "Air aontachadh"
+
+msgid "submission.incomplete"
+msgstr "A’ feitheamh ri aonta"
+
+msgid "submission.editCatalogEntry"
+msgstr "Innteart"
+
+msgid "submission.catalogEntry.new"
+msgstr "Cuir innteart ris"
+
+msgid "submission.catalogEntry.add"
+msgstr "Cuir na thagh thu ris a’ chatalog"
+
+msgid "submission.catalogEntry.select"
+msgstr "Tagh monografaichean airson an cur ris a’ chatalog"
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr ""
+"Feumaidh tu co-dhiù aon mhonograf a thaghadh airson a chur ris a’ chatalog."
+
+msgid "submission.catalogEntry.confirm"
+msgstr "Cuir an leabhar seo ris a’ chatalog phoblach"
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr "Dearbh gu bheil an tagradh deiseil airson a chur dhan chatalog."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr ""
+"Tha am monograf seo deiseil airson a ghabhail a-staigh sa chatalog phoblach."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr "Seall an tagradh"
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr "Chinn-là foillseachaidh"
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr "Cleachdaidh gach caibideil ceann-là foillseachadh a’ mhonograf."
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr "Faodaidh ceann-là foillseachaidh fa leth a bhith aig gach caibideil."
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Monograf"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Catalog"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Fòrmat foillseachaidh"
+
+msgid "submission.event.metadataPublished"
+msgstr "Fhuair meata-dàta a’ mhonograf aonta airson foillseachadh."
+
+msgid "submission.event.metadataUnpublished"
+msgstr "Chan eil meata-dàta a’ mhonograf ga fhoillseachadh tuilleadh."
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr ""
+"Chaidh am fòrmat foillseachaidh “{$publicationFormatName}” a chur ri làimh."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr ""
+"Chan eil am fòrmat foillseachaidh “{$publicationFormatName}” ri làimh "
+"tuilleadh."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+"Fhuair am fòrmat foillseachaidh “{$publicationFormatName}” aonta airson "
+"foillseachadh."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr ""
+"Chan eil am fòrmat foillseachaidh “{$publicationFormatName}” ga "
+"fhoillseachadh tuilleadh."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "Chaidh meata-dàta a’ chatalog ùrachadh."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr ""
+"Chaidh meata-dàta an fhòrmait fhoillseachaidh “{$formatName}” ùrachadh."
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "Chaidh am fòrmat foillseachaidh “{$formatName}” a chruthachadh."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "Chaidh am fòrmat foillseachaidh “{$formatName}” a thoirt air falbh."
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr "Cuir airson lèirmheas air an taobh a-muigh"
+
+msgid "workflow.review.externalReview"
+msgstr "Lèirmheas air an taobh a-muigh"
+
+msgid "submission.upload.fileContents"
+msgstr "Co-phàirt tagraidh"
+
+msgid "submission.dependentFiles"
+msgstr "Faidhlichean eisimeileach"
+
+msgid "submission.metadataDescription"
+msgstr ""
+"Tha na riatanasan seo stèidhichte air seata meata-dàta Dublin Core, stannard "
+"eadar-nàiseanta airson tuairisgeul a thoirt air susbaint clòtha."
+
+msgid "section.any"
+msgstr "Sreath sam bith"
+
+msgid "submission.list.monographs"
+msgstr "Monografaichean"
+
+msgid "submission.list.countMonographs"
+msgstr "Monografaichean ({$count})"
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr "{$count} dhe na monografaichean uile ({$total})"
+
+msgid "submission.list.orderFeatures"
+msgstr "Gleusan an òrduigh"
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+"Dèan slaodadh is leigeil às no thoir gnogag air na putanan suas is sìos "
+"airson òrdugh nan gleusan air an duilleag-dhachaigh atharrachadh."
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+"Dèan slaodadh is leigeil às no thoir gnogag air na putanan suas is sìos "
+"airson òrdugh nan gleusan ann an {$title} atharrachadh."
+
+msgid "submission.list.saveFeatureOrder"
+msgstr "An t-òrdugh sàbhalaidh"
+
+msgid "submission.list.viewEntry"
+msgstr ""
+
+msgid "catalog.browseTitles"
+msgstr "Tiotalan ({$numTitles})"
+
+msgid "publication.catalogEntry"
+msgstr "Innteart a’ chatalog"
+
+msgid "publication.catalogEntry.success"
+msgstr "Chaidh mion-fhiosrachadh an innteirt seo dhen chatalog ùrachadh."
+
+msgid "publication.invalidSeries"
+msgstr "Cha b’ urrainn dhuinn an sreath dhen fhoillseachadh seo a lorg."
+
+msgid "publication.inactiveSeries"
+msgstr ""
+
+msgid "publication.required.issue"
+msgstr ""
+"Feumar am foillseachadh iomruineadh do dh’iris mus gabh fhoillseachadh."
+
+msgid "publication.publishedIn"
+msgstr "Air fhoillseachadh ann an {$issueName}."
+
+msgid "publication.publish.confirmation"
+msgstr ""
+"Chaidh gach riatanas foillseachaidh a choileanadh. A bheil thu cinnteach gu "
+"bheil thu airson an t-innteart seo dhen chatalog a dhèanamh poblach?"
+
+msgid "publication.scheduledIn"
+msgstr ""
+"Gu bhith fhoillseachadh ann an {$issueName}."
+
+msgid "submission.publication"
+msgstr ""
+
+msgid "publication.status.published"
+msgstr ""
+
+msgid "submission.status.scheduled"
+msgstr ""
+
+msgid "publication.status.unscheduled"
+msgstr ""
+
+msgid "submission.publications"
+msgstr ""
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+
+msgid "publication.datePublished"
+msgstr ""
+
+msgid "publication.editDisabled"
+msgstr ""
+
+msgid "publication.event.published"
+msgstr ""
+
+msgid "publication.event.scheduled"
+msgstr ""
+
+msgid "publication.event.unpublished"
+msgstr ""
+
+msgid "publication.event.versionPublished"
+msgstr ""
+
+msgid "publication.event.versionScheduled"
+msgstr ""
+
+msgid "publication.event.versionUnpublished"
+msgstr ""
+
+msgid "publication.invalidSubmission"
+msgstr ""
+
+msgid "publication.publish"
+msgstr ""
+
+msgid "publication.publish.requirements"
+msgstr ""
+
+msgid "publication.required.declined"
+msgstr ""
+
+msgid "publication.required.reviewStage"
+msgstr ""
+
+msgid "submission.license.description"
+msgstr ""
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+
+msgid "submission.copyrightOther.description"
+msgstr ""
+
+msgid "publication.unpublish"
+msgstr ""
+
+msgid "publication.unpublish.confirm"
+msgstr ""
+
+msgid "publication.unschedule.confirm"
+msgstr ""
+
+msgid "publication.version.details"
+msgstr ""
+
+msgid "submission.queries.production"
+msgstr ""
+
+msgid "publication.chapter.landingPage"
+msgstr ""
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+
+msgid "publication.publish.success"
+msgstr ""
+
+msgid "chapter.volume"
+msgstr ""
+
+msgid "submission.withoutChapter"
+msgstr ""
+
+msgid "submission.chapterCreated"
+msgstr ""
+
+msgid "chapter.pages"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+
+msgid "publication.chapter.licenseUrl"
+msgstr ""
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr ""
+
+msgid "submission.copyright.description"
+msgstr ""
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+
+msgid "submission.sectionNotFound"
+msgstr ""
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr ""
+
+msgid "submission.wizard.submitting.monograph"
+msgstr ""
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
diff --git a/locale/gd_GB/author.po b/locale/gd_GB/author.po
deleted file mode 100644
index eec0a200925..00000000000
--- a/locale/gd_GB/author.po
+++ /dev/null
@@ -1,16 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2020-11-16 20:31+0000\n"
-"Last-Translator: Michael Bauer \n"
-"Language-Team: Gaelic \n"
-"Language: gd_GB\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==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
-"(n > 2 && n < 20) ? 2 : 3;\n"
-"X-Generator: Weblate 3.9.1\n"
-
-msgid "author.submit.notAccepting"
-msgstr "Chan eil an clò seo a’ gabhail ri tagraidhean aig an àm seo."
diff --git a/locale/gd_GB/default.po b/locale/gd_GB/default.po
deleted file mode 100644
index f76cd2b702a..00000000000
--- a/locale/gd_GB/default.po
+++ /dev/null
@@ -1,188 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2020-11-16 20:31+0000\n"
-"Last-Translator: Michael Bauer \n"
-"Language-Team: Gaelic \n"
-"Language: gd_GB\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==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
-"(n > 2 && n < 20) ? 2 : 3;\n"
-"X-Generator: Weblate 3.9.1\n"
-
-msgid "default.groups.abbrev.sectionEditor"
-msgstr "AcqE"
-
-msgid "default.genres.prospectus"
-msgstr "Prospectus"
-
-msgid "default.contextSettings.forLibrarians"
-msgstr ""
-"Tha sinn a’ brosnachadh leabhar-lannaichean an clò seo a chur am measg iris-"
-"leabhraichean dealain na leabhar-lainn aca. A bharrachd air sin, faodaidh "
-"leabhar-lannan an siostam foillseachaidh a tha stèidhichte air còd fosgailte "
-"aig a’ chlò seo a chur air òstaireachd iad fhèin airson buill nan roinnean "
-"aca a tha an sàs deasachadh chlòthan (Open "
-"Monograph Press)."
-
-msgid "default.contextSettings.forAuthors"
-msgstr ""
-"A bheil ùidh agad ann an com-pàirteachas sa chlò seo? Mholamaid dhut sùil a "
-"thoirt air an duilleag Mun chlò "
-"seo airson poileasaidh earrannan a’ chlò agus air an stiùireadh "
-"do dh’ùghdaran. Feumaidh ùghdaran clàradh aig a’ chlò mus cuir iad tagradh no, ma tha iad "
-"clàraichte mu thràth, faodaidh iad "
-"clàradh a-steach agus tòiseachadh air na còig ceuman a tha ri "
-"choileanadh."
-
-msgid "default.contextSettings.forReaders"
-msgstr ""
-"Mholamaid do leughadairean clàradh airson seirbheis brathan foillseachadh a’ "
-"chlò seo. Cleachd an ceangal Clàraich aig bàrr duilleag-dhachaigh a’ chlò. Ma nì an "
-"leughadair clàradh, gheibh iad clàr-innse gach monograf ùr a’ chlò air a’ "
-"phost-d. Ri linn sin, ’s urrainn dhan chlò tagradh gu bheil ìre de thaic no "
-"luchd-leughaidh aca. Faic poileasaidh prìobhaideachd a’ chlò a "
-"dhearbhas dha na leughadairean nach cleachd iad an ainmean is seòlaidhean "
-"puist-d airson adhbhar sam bith eile."
-
-msgid "default.contextSettings.emailSignature"
-msgstr ""
-"
\n"
-"________________________________________________________________________
"
-"\n"
-"{$ldelim}$contextName{$rdelim}"
-
-msgid "default.contextSettings.privacyStatement"
-msgstr ""
-"Cha chleachdar na h-ainmean is seòlaidhean puist-d a chuirear a-steach "
-"air làrach a’ chlò seo ach airson amasan foillsichte an a’ chlò seo agus cha "
-"chuirear ri làimh pàrtaidh sam bith eile iad no airson adhbhar sam bith "
-"eile.
"
-
-msgid "default.contextSettings.checklist.bibliographicRequirements"
-msgstr ""
-"Tha an teacsa seo a’ leantainn nan riaghailtean san stiùireadh do dh’ùghdaran a thaobh stoidhle is leabhar-eòlais a "
-"gheibhear fon earrann “Mun chlò”."
-
-msgid "default.genres.appendix"
-msgstr "Eàrr-ràdh"
-
-msgid "default.genres.bibliography"
-msgstr "Leabhar-chlàr"
-
-msgid "default.genres.manuscript"
-msgstr "Sgrìobhainn leabhair"
-
-msgid "default.genres.chapter"
-msgstr "Sgrìobhainn caibideil"
-
-msgid "default.genres.glossary"
-msgstr "Briathrachan"
-
-msgid "default.genres.index"
-msgstr "Clàr-amais"
-
-msgid "default.genres.preface"
-msgstr "Ro-ràdh"
-
-msgid "default.genres.table"
-msgstr "Clàr"
-
-msgid "default.genres.figure"
-msgstr "Figear"
-
-msgid "default.genres.photo"
-msgstr "Dealbh"
-
-msgid "default.genres.illustration"
-msgstr "Sgead-dhealbh"
-
-msgid "default.genres.other"
-msgstr "Eile"
-
-msgid "default.groups.name.manager"
-msgstr "Manaidsear clò"
-
-msgid "default.groups.plural.manager"
-msgstr "Manaidsearan clò"
-
-msgid "default.groups.abbrev.manager"
-msgstr "PM"
-
-msgid "default.groups.name.editor"
-msgstr "Deasaiche clò"
-
-msgid "default.groups.plural.editor"
-msgstr "Deasaichean clò"
-
-msgid "default.groups.abbrev.editor"
-msgstr "PE"
-
-msgid "default.groups.name.sectionEditor"
-msgstr "Deasaiche sreatha"
-
-msgid "default.groups.plural.sectionEditor"
-msgstr "Deasaichean sreatha"
-
-msgid "default.groups.name.chapterAuthor"
-msgstr "Ùghdar caibideil"
-
-msgid "default.groups.plural.chapterAuthor"
-msgstr "Ùghdaran caibideil"
-
-msgid "default.groups.abbrev.chapterAuthor"
-msgstr "CA"
-
-msgid "default.groups.name.volumeEditor"
-msgstr "Deasaiche mòr-thomaid"
-
-msgid "default.groups.plural.volumeEditor"
-msgstr "Deasaichean mòr-thomaid"
-
-msgid "default.groups.abbrev.volumeEditor"
-msgstr "VE"
-
-msgid "default.contextSettings.checklist.notPreviouslyPublished"
-msgstr ""
-"Cha deach an tagradh fhoillseachadh roimhe agus chan eil e aig clò eile "
-"airson beachdachadh (no chaidh mìneachadh a thoirt seachad sna beachdan dhan "
-"deasaiche)."
-
-msgid "default.contextSettings.checklist.fileFormat"
-msgstr ""
-"Tha am faidhle tagraidh san fhòrmat Microsoft Word, RTF no OpenDocument."
-
-msgid "default.contextSettings.checklist.addressesLinked"
-msgstr ""
-"Far a bheil iad ri làimh, chaidh URLaichean airson nan reifreansan a thoirt "
-"seachad."
-
-msgid "default.contextSettings.checklist.submissionAppearance"
-msgstr ""
-"Tha an teacsa air beàrnadh singilte; a’ cleachdadh cruth-clò aig 12 phuing; "
-"a’ cleachdadh clò Eadailteach seach fo-loidhnichean (ach ann an seòlaidhean "
-"URL); agus tha gach dealbh, figear is clàr sna h-àitichean iomchaidh san "
-"teacsa seach aig an deireadh."
-
-msgid "default.contextSettings.openAccessPolicy"
-msgstr ""
-"Tha an clò seo a’ toirt cothrom fosgailte air an t-susbaint ann a chionn ’s "
-"gu bheil sinn dhen bheachd gun tig àrdachadh air eadar-mhalairt eòlais eadar-"
-"nàiseanta ma chuirear rannsachadh ri làimh a’ phobaill gun chuingeachadh."
-
-msgid "default.groups.name.externalReviewer"
-msgstr "Lèirmheasaiche air an taobh a-muigh"
-
-msgid "default.groups.plural.externalReviewer"
-msgstr "Lèirmheasaichean air an taobh a-muigh"
-
-msgid "default.groups.abbrev.externalReviewer"
-msgstr "ER"
diff --git a/locale/gd_GB/locale.po b/locale/gd_GB/locale.po
deleted file mode 100644
index 9f5c830ab42..00000000000
--- a/locale/gd_GB/locale.po
+++ /dev/null
@@ -1,1658 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2020-11-18 20:49+0000\n"
-"Last-Translator: Michael Bauer \n"
-"Language-Team: Gaelic \n"
-"Language: gd_GB\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==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
-"(n > 2 && n < 20) ? 2 : 3;\n"
-"X-Generator: Weblate 3.9.1\n"
-
-msgid "submission.round"
-msgstr "Cuairt {$round}"
-
-msgid "payment.directSales.amount"
-msgstr "{$amount} ({$currency})"
-
-msgid "payment.directSales.catalog"
-msgstr "Catalog"
-
-msgid "installer.installationComplete"
-msgstr ""
-"Chaidh OMP a stàladh.
\n"
-"Airson tòiseachadh air an siostam a chleachdadh, "
-"clàraich a-steach leis an ainm-chleachdaiche is facal-faire a chuir thu "
-"a-steach air an duilleag roimhpe.
\n"
-"Ma tha thu airson naidheachdan is ùrachaidhean fhaighinn, dèan "
-"clàradh aig http://pkp.sfu.ca/omp/register. Ma tha ceistean no beachdan "
-"agad mu dhèidhinn, tadhail air an fhòram taice.
"
-
-msgid "navigation.catalog"
-msgstr "Catalog"
-
-msgid "common.software"
-msgstr "Open Monograph Press"
-
-msgid "installer.upgradeComplete"
-msgstr ""
-"Chaidh tionndadh {$version} de OMP a stàladh.
\n"
-"Na dìochuimhnich an roghainn “stàlaichte” a chur gu Air a-"
-"rithist san fhaidhle rèiteachaidh config.inc.php agad.
\n"
-"Mur eil thu air clàradh agus ma tha thu ag iarraidh naidheachdan is "
-"ùrachaidhean fhaighinn, dèan clàradh aig http://pkp.sfu.ca/omp/register."
-" Ma tha ceistean no beachdan agad mu dhèidhinn, tadhail air an fhòram taice.
"
-
-msgid "installer.overwriteConfigFileInstructions"
-msgstr ""
-"CUDROMACH!
\n"
-"Cha b’ urrainn dhan stàlaichear sgrìobhadh thairis air an fhaidhle "
-"rèiteachaidh. Mus cleachd thu an siostam, fosgail config.inc.php "
-"ann an deasaiche teacsa iomchaidh agus cuir na tha san raon teacsa gu h-"
-"ìosal an àite na susbaint ann.
"
-
-msgid "installer.filesDirInstructions"
-msgstr ""
-"Cuir a-steach ainm slàn na slighe gu pasgan làithreach far an tèid na "
-"faidhlichean a chumail a thèid a luchdadh suas. Cha bu chòir dha a bhith na "
-"phasgan a ruigear calg-dhìreach on lìon. Dèan cinnteach gu bheil am "
-"pasgan seo ann agus gun gabh sgrìobhadh ann mus tòisich thu air an "
-"stàladh. Bu chòir do shlaisichean air adhart a bhith ann an ainmean "
-"slighean Windows, m.e. “C:/mypress/files”."
-
-msgid "installer.maxFileUploadSize"
-msgstr ""
-"Tha am frithealaiche agad a’ ceadachadh luchdadh suas de dh’fhaidhlichean "
-"suas chun a’ mheud a leanas aig an àm seo: "
-"{$maxFileUploadSize}"
-
-msgid "installer.allowFileUploads"
-msgstr ""
-"Tha am frithealaiche agad a’ ceadachadh luchdadh suas de dh’fhaidhlichean "
-"aig an àm seo: {$allowFileUploads}"
-
-msgid "installer.localeSettingsInstructions"
-msgstr ""
-"Airson làn-taic Unicode (UTF-8), tagh UTF-8 airson gach roghainn a thaobh "
-"nan seataichean charactaran. Thoir an aire gum feum an taic seo "
-"frithealaiche stòir-dhàta MySQL >= 4.1.1 no PostgreSQL >= 9.1.5 aig an àm "
-"seo. Thoir an aire cuideachd gum feum làn-taic Unicode leabhar-lann mbstring (rud a bhios "
-"an comas a ghnàth anns gach stàladh PHP o chionn greis). Dh’fhaoidte gum bi "
-"duilgheadasas agad le seataichean charactaran sònraichte mur eil am "
-"frithealaiche agad a’ coileanadh nan riatanasan seo.\n"
-"
\n"
-"Tha taic aig an fhrithealaiche agad ri mbstring: "
-"{$supportsMBString}"
-
-msgid "installer.upgradeInstructions"
-msgstr ""
-"Tionndadh OMP {$version}
\n"
-"\n"
-"Mòran taing airson Open Monograph Press aig a’ Public "
-"Knowledge Project a luchdadh a-nuas. Mus lean thu air adhart, leugh na "
-"faidhlichean README agus UPGRADE a tha gan gabhail a-staigh leis a’ "
-"bhathar-bhog seo. Airson barrachd fiosrachaidh mun Public Knowledge Project "
-"agus na pròiseactan bathair-bhog aca, tadhail air làrach-lìn PKP. Ma tha thu airson aithris a "
-"dhèanamh aig buga no ma tha ceist agad mu Open Monograph Press, faic am fòram taice no "
-"tadhail air an t-siostam aig PKP airson aithris a dhèanamh aig bugaichean. Ge b’ fheàrr "
-"leinn cluinntinn o dhaoine slighe an fhòraim, ’s urrainn dhut post-d a chur "
-"chun an sgioba cuideachd aig pkp.contact@gmail.com.
\n"
-"Mholamaid dhut gu mòr gun dèan thu lethbhreac-glèidhidh "
-"dhen stòr-dàta, pasgan nam faidhlichean agus pasgan stàladh OMP agad mus "
-"lean thu air adhart.
\n"
-"Ma tha thu a’ ruith sa mhodh sàbhailte PHP, dèan cinnteach gu bheil crìoch "
-"àrd aig steòrnadh max_execution_time san fhaidhle rèiteachaidh php.ini agad."
-"\n"
-"Ma ruigear a’ chrìoch-ama seo no tè sam bith eile (m.e. an steòrnadh "
-"“Timeout” aig Apache) agus ma bhriseas sin a-steach air an àrdachadh, bidh "
-"agad ris a chur ceart de làimh.
"
-
-msgid "installer.preInstallationInstructions"
-msgstr ""
-"1. Feumaidh tu na faidhlichean is pasganan a leans (agus an t-susbaint "
-"annta) a dhèanamh so-sgrìobhte:
\n"
-"\n"
-"\t- Tha config.inc.php so-sgrìobhte (roghainneil): "
-"{$writable_config}\n"
-"
\n"
-"\t- Tha public/ so-sgrìobhte: {$writable_public}\n"
-"
\n"
-"\t- Tha cache/ so-sgrìobhte: {$writable_cache}\n"
-"
\n"
-"\t- Tha cache/t_cache/ so-sgrìobhte: {$writable_templates_cache}\n"
-"
\n"
-"\t- Tha cache/t_compile/ so-sgrìobhte: "
-"{$writable_templates_compile}\n"
-"
\n"
-"\t- Tha cache/_db so-sgrìobhte: {$writable_db_cache}\n"
-"
\n"
-"
\n"
-"\n"
-"2. Feumaidh tu pasgan a chruthachadh far an cumar na faidhlichean a thèid "
-"a luchdadh suas agus feumaidh e a bhith so-sgrìobhte (faic “Roghainnean "
-"faidhle” gu h-ìosal.
"
-
-msgid "series.featured.description"
-msgstr "Nochdaidh an sreath seo sa phrìomh sheòladaireachd"
-
-msgid "series.path"
-msgstr "Slighe"
-
-msgid "catalog.manage"
-msgstr "Stiùireadh a’ chatalog"
-
-msgid "catalog.manage.newReleases"
-msgstr "Air ùr-fhoillseachadh"
-
-msgid "catalog.manage.category"
-msgstr "Roinn-seòrsa"
-
-msgid "catalog.manage.series"
-msgstr "Sreath"
-
-msgid "catalog.manage.series.issn"
-msgstr "ISSN"
-
-msgid "catalog.manage.series.issn.validation"
-msgstr "Cuir a-steach ISSN dligheach."
-
-msgid "catalog.manage.series.issn.equalValidation"
-msgstr ""
-"Chan fhaod an ISSN clò-bhualaidh agus an ISSN air loidhne a bhith co-ionann."
-
-msgid "catalog.manage.series.onlineIssn"
-msgstr "ISSN air loidhne"
-
-msgid "catalog.manage.series.printIssn"
-msgstr "ISSN clò-bhualaidh"
-
-msgid "catalog.selectSeries"
-msgstr "Tagh sreath"
-
-msgid "catalog.selectCategory"
-msgstr "Tagh roinn-seòrsa"
-
-msgid "catalog.manage.homepageDescription"
-msgstr ""
-"Nochdaidh dealbh còmhdachadh nan leabhraichean a thagh thu mu bhàrr na "
-"duilleige-dachaigh ann an seata as urrainnear sgroladh tromhpa. Briog air "
-"“Brosnaich” agus an uairsin air an rionnag airson leabhar a chur ris an "
-"timcheallan; briog air a’ chlisg-phuing airson a bhrosnachadh mar sgaoileadh "
-"ùr; dèan slaodadh is leigeil às airson an t-òrdugh atharrachadh."
-
-msgid "catalog.manage.categoryDescription"
-msgstr ""
-"Briog air “Brosnaich” agus an uairsin air an rionnag airson leabhar "
-"brosnaichte a thaghadh dhan roinn-seòrsa seo; dèan slaodadh is leigeil às "
-"airson an t-òrdugh atharrachadh."
-
-msgid "catalog.manage.seriesDescription"
-msgstr ""
-"Briog air “Brosnaich” agus an uairsin air an rionnag airson leabhar "
-"brosnaichte a thaghadh dhan t-sreath seo; dèan slaodadh is leigeil às airson "
-"an t-òrdugh atharrachadh. Tha deasaiche(an) agus tiotal an t-sreatha co-"
-"cheangailte ri sreath, am broinn roinn-seòrsa no an neo-eisimeileachd."
-
-msgid "catalog.manage.placeIntoCarousel"
-msgstr "An timcheallan"
-
-msgid "catalog.manage.newRelease"
-msgstr "Sgaoil"
-
-msgid "catalog.manage.manageSeries"
-msgstr "Stiùirich an sreath"
-
-msgid "catalog.manage.manageCategories"
-msgstr "Stiùirich na roinnean-seòrsa"
-
-msgid "catalog.manage.noMonographs"
-msgstr "Chan eil monograf ann a chaidh iomruineadh."
-
-msgid "catalog.manage.featured"
-msgstr "Brosnaichte"
-
-msgid "catalog.manage.categoryFeatured"
-msgstr "Brosnaichte san roinn-seòrsa"
-
-msgid "catalog.manage.seriesFeatured"
-msgstr "Brosnaichte san t-sreath"
-
-msgid "catalog.manage.featuredSuccess"
-msgstr "’S e monograf brosnaichte a tha seo."
-
-msgid "catalog.manage.notFeaturedSuccess"
-msgstr "Chan e monograf brosnaichte a tha seo."
-
-msgid "catalog.manage.newReleaseSuccess"
-msgstr "Chaidh am monograf a chomharradh mar sgaoileadh ùr."
-
-msgid "catalog.manage.notNewReleaseSuccess"
-msgstr "Cha deach am monograf a chomharradh mar sgaoileadh ùr."
-
-msgid "catalog.manage.feature.newRelease"
-msgstr "Air ùr-fhoillseachadh"
-
-msgid "catalog.manage.feature.categoryNewRelease"
-msgstr "Sgaoileadh ùr san roinn-seòrsa"
-
-msgid "catalog.manage.feature.seriesNewRelease"
-msgstr "Sgaoileadh ùr san t-sreath"
-
-msgid "catalog.manage.nonOrderable"
-msgstr ""
-"Chan urrainnear òrdan a chur airson a’ mhonograf seo gus am bi e na "
-"mhonograf brosnaichte."
-
-msgid "catalog.manage.filter.searchByAuthorOrTitle"
-msgstr "Lorg a-rèir tiotail no ùghdair"
-
-msgid "catalog.manage.isFeatured"
-msgstr ""
-"’S e monograf brosnaichte a tha seo. Na brosnaich am monograf seo tuilleadh."
-
-msgid "catalog.manage.isNotFeatured"
-msgstr "Chan e monograf brosnaichte a tha seo. Dèan monograf brosnaichte dheth."
-
-msgid "catalog.manage.isNewRelease"
-msgstr ""
-"’S e sgaoileadh ùr a tha sa mhonograf seo. Comharraich nach e sgaoileadh ùr "
-"a sa mhonograf seo."
-
-msgid "catalog.manage.isNotNewRelease"
-msgstr ""
-"Chan e sgaoileadh ùr a tha sa mhonograf seo. Dèan sgaoileadh ùr dhen "
-"mhonograf seo."
-
-msgid "catalog.noTitles"
-msgstr "Cha deach tiotal sam bith fhoillseachadh fhathast."
-
-msgid "notification.type.reviewing"
-msgstr "Lèirmheasadh thachartasan"
-
-msgid "notification.type.site"
-msgstr "Tachartasan na làraich"
-
-msgid "notification.type.submissions"
-msgstr "Tachartas tagraidh"
-
-msgid "notification.type.userComment"
-msgstr "Thug leughadair seachad beachd air “{$title}”."
-
-msgid "notification.type.public"
-msgstr "Fiosan-naidheachd poblach"
-
-msgid "notification.type.editorAssignmentTask"
-msgstr "Chaidh monograf ùr a chur agus tha e feumach air deasaiche."
-
-msgid "notification.type.copyeditorRequest"
-msgstr ""
-"Chaidh iarraidh ort lèirmheas a dhèanamh air a’ ghrinn-deasachadh a rinneadh "
-"air “{$title}”."
-
-msgid "notification.type.layouteditorRequest"
-msgstr ""
-"Chaidh iarraidh ort lèirmheas a dhèanamh air a’ cho-dhealbhachd aig "
-"“{$title}”."
-
-msgid "notification.type.indexRequest"
-msgstr "Chaidh iarraidh ort clàr-amais a chruthachadh dha “{$title}”."
-
-msgid "notification.type.editorDecisionInternalReview"
-msgstr "Thòisich an lèirmheas inntearnail."
-
-msgid "notification.type.approveSubmission"
-msgstr ""
-"Tha an tagradh seo a’ feitheamh ri aonta fhathast ann an inneal innteartan a’"
-" chatalog agus nochdaidh e sa chatalog phoblach an uairsin."
-
-msgid "notification.type.approveSubmissionTitle"
-msgstr "A’ feitheamh ri aonta."
-
-msgid "notification.type.formatNeedsApprovedSubmission"
-msgstr ""
-"Cha nochd am monograf sa chatalog gus an deach fhoillseachadh. Airson an "
-"leabhar seo a chur ris a’ chatalog, briog air an taba “Foillseachadh”."
-
-msgid "notification.type.configurePaymentMethod.title"
-msgstr "Cha deach dòigh pàighidh a rèiteachadh."
-
-msgid "notification.type.configurePaymentMethod"
-msgstr ""
-"Feumaidh tu dòigh pàighidh a rèiteachadh mus urrainn dhut roghainnean "
-"malairt-d a shònrachadh."
-
-msgid "notification.type.visitCatalogTitle"
-msgstr "Stiùireadh a’ chatalog"
-
-#, fuzzy
-msgid "notification.type.visitCatalog"
-msgstr ""
-"Fhuair am monograf aonta. Tadhail air a’ chatalog a stiùireadh mion-"
-"fhiosrachadh a’ chatalog leis na ceanglaichean gu h-àrd."
-
-msgid "user.authorization.invalidReviewAssignment"
-msgstr ""
-"Chaidh inntrigeadh dha diùltadh ort oir chan eil coltas gu bheil thu nad "
-"lèirmheasaiche dligheach airson a’ mhonograf seo."
-
-msgid "user.authorization.monographAuthor"
-msgstr ""
-"Chaidh inntrigeadh dha diùltadh ort oir chan eil coltas gu bheil thu nad "
-"ùghdar a’ mhonograf seo."
-
-msgid "user.authorization.monographReviewer"
-msgstr ""
-"Chaidh inntrigeadh dha diùltadh ort oir chan eil coltas nach deach d’ "
-"iomruineadh mar lèirmheasaiche airson a’ mhonograf seo."
-
-msgid "user.authorization.monographFile"
-msgstr ""
-"Chaidh inntrigeadh do dh’fhaidhle a’ mhonograf a dh’iarr thu diùltadh ort."
-
-msgid "user.authorization.invalidMonograph"
-msgstr "Chan eil am monograf dligheach no cha deach monograf sam bith iarraidh!"
-
-msgid "user.authorization.noContext"
-msgstr "Chan eil clò sa cho-theacsa!"
-
-msgid "user.authorization.seriesAssignment"
-msgstr ""
-"Tha thu a’ feuchainn ri cothrom fhaighinn air monograf nach eil na phàirt "
-"dhen t-sreath agad-sa."
-
-msgid "user.authorization.workflowStageAssignmentMissing"
-msgstr ""
-"Chaidh inntrigeadh a dhiùltadh! Cha deach d’ iomruineadh do cheum seo an t"
-"-sruth-obrach."
-
-msgid "user.authorization.workflowStageSettingMissing"
-msgstr ""
-"Chaidh inntrigeadh a dhiùltadh! Tha comas gnìomh agad ann am buidheann "
-"chleachdaichean nach deach iomruineadh do cheum seo an t-sruth-obrach. Thoir "
-"sùil air roghainnean a’ chlòtha agad."
-
-msgid "payment.directSales"
-msgstr "Luchdaich a-nuas o làrach-lìn a’ chlòtha"
-
-msgid "payment.directSales.price"
-msgstr "Prìs"
-
-msgid "payment.directSales.availability"
-msgstr "Faotainneachd"
-
-msgid "payment.directSales.approved"
-msgstr "Air aontachadh"
-
-msgid "payment.directSales.priceCurrency"
-msgstr "A’ phrìs ({$currency})"
-
-msgid "monograph.publicationFormat.productRegion"
-msgstr "Roinn-dùthcha sgaoileadh a’ bhathair"
-
-msgid "monograph.publicationFormat.taxRate"
-msgstr "Reat na cìse"
-
-msgid "monograph.publicationFormat.taxType"
-msgstr "Seòrsa na cìse"
-
-msgid "monograph.publicationFormat.isApproved"
-msgstr ""
-"Gabh a-staigh am meata-dàta airson an fhòrmait fhoillseachaidh seo ann an "
-"innteart catalog an leabhair seo."
-
-msgid "monograph.publicationFormat.noMarketsAssigned"
-msgstr "Tha margaidean is prìsean a dhìth."
-
-msgid "monograph.publicationFormat.noCodesAssigned"
-msgstr "Tha còd dearbh-aithneachaidh a dhìth."
-
-msgid "monograph.publicationFormat.missingONIXFields"
-msgstr "Tha cuid dhen mheata-dàta a dhìth."
-
-msgid "monograph.publicationFormat.openTab"
-msgstr "Fosgail taba fòrmat an fhoillseachaidh."
-
-msgid "grid.catalogEntry.publicationFormatType"
-msgstr "Fòrmat foillseachaidh"
-
-msgid "grid.catalogEntry.nameRequired"
-msgstr "Tha feum air ainm."
-
-msgid "grid.catalogEntry.validPriceRequired"
-msgstr "Tha feum air prìs dhligheach."
-
-msgid "grid.catalogEntry.publicationFormatDetails"
-msgstr "Mion-fhiosrachadh mun fhòrmat"
-
-msgid "grid.catalogEntry.physicalFormat"
-msgstr "Fòrmat fiosaigeach"
-
-msgid "grid.catalogEntry.remotelyHostedContent"
-msgstr "Bidh am fòrmat seo ri làimh air làrach-lìn fa leth"
-
-msgid "grid.catalogEntry.remoteURL"
-msgstr "URL de shusbaint air òstair cèin"
-
-msgid "grid.catalogEntry.monographRequired"
-msgstr "Tha feum air ID airson a’ mhonograf."
-
-msgid "grid.catalogEntry.publicationFormatRequired"
-msgstr "Feumaidh tu fòrmat foillseachaidh a thaghadh."
-
-msgid "grid.catalogEntry.availability"
-msgstr "Faotainneachd"
-
-msgid "grid.catalogEntry.isAvailable"
-msgstr "Ri fhaighinn"
-
-msgid "grid.catalogEntry.isNotAvailable"
-msgstr "Chan eil seo ri làimh"
-
-msgid "grid.catalogEntry.proof"
-msgstr "Dearbhadh"
-
-msgid "grid.catalogEntry.approvedRepresentation.title"
-msgstr "Aonta an fhòrmait"
-
-msgid "grid.catalogEntry.availableRepresentation.title"
-msgstr "Faotainneachd an fhòrmait"
-
-msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
-msgstr "Cha d’fhuair innteart a’ chatalog aonta."
-
-msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
-msgstr "Chan eil am fòrmat ann an innteart a’ chatalog."
-
-msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
-msgstr "Cha d’fhuair an dearbh aonta."
-
-msgid "grid.catalogEntry.availableRepresentation.approved"
-msgstr "Air aontachadh"
-
-msgid "grid.catalogEntry.availableRepresentation.notApproved"
-msgstr "A’ feitheamh ri aonta"
-
-msgid "grid.catalogEntry.fileSizeRequired"
-msgstr "Tha feum air meud an fhaidhle mu choinneamh fhòrmatan digiteach."
-
-msgid "grid.catalogEntry.productAvailabilityRequired"
-msgstr "Tha feum air còd a dh’innseas a bheil am bathar ri fhaighinn."
-
-msgid "grid.catalogEntry.productCompositionRequired"
-msgstr "Feumaidh tu còd co-chur bathair a thaghadh."
-
-msgid "grid.catalogEntry.identificationCodeValue"
-msgstr "Luach a’ chòd"
-
-msgid "grid.catalogEntry.identificationCodeType"
-msgstr "Seòrsa de chòd ONIX"
-
-msgid "grid.catalogEntry.codeRequired"
-msgstr "Tha feum air còd dearbh-aithneachaidh."
-
-msgid "grid.catalogEntry.valueRequired"
-msgstr "Tha feum air luach."
-
-msgid "grid.catalogEntry.salesRights"
-msgstr "Còraichean reic"
-
-msgid "grid.catalogEntry.salesRightsValue"
-msgstr "Luach a’ chòd"
-
-msgid "grid.catalogEntry.salesRightsType"
-msgstr "Seòrsa de chòraichean reic"
-
-msgid "grid.catalogEntry.salesRightsROW"
-msgstr "An còrr dhen t-saoghal?"
-
-msgid "grid.catalogEntry.salesRightsROW.tip"
-msgstr ""
-"Cuir cromag sa bhogsa seo airson innteart nan còraichean reic seo a "
-"chleachdadh anns gach suidheachadh dhan fhòrmat agad. Cha leigear a leas "
-"dùthchannan is roinnean-dùthcha a thaghadh ma nì thu sin."
-
-msgid "grid.catalogEntry.oneROWPerFormat"
-msgstr ""
-"Chaidh seòrsa de reicean ROW a shònrachadh dhan fhòrmat fhoillseachaidh seo "
-"mu thràth."
-
-msgid "grid.catalogEntry.countries"
-msgstr "Dùthchannan"
-
-msgid "grid.catalogEntry.regions"
-msgstr "Roinnean-dùthcha"
-
-msgid "grid.catalogEntry.included"
-msgstr "Ga ghabhail a-staigh"
-
-msgid "grid.catalogEntry.excluded"
-msgstr "Air dùnadh a-mach"
-
-msgid "grid.catalogEntry.markets"
-msgstr "Ranntairean margaide"
-
-msgid "grid.catalogEntry.marketTerritory"
-msgstr "Ranntair"
-
-msgid "grid.catalogEntry.publicationDates"
-msgstr "Chinn-là foillseachaidh"
-
-msgid "grid.catalogEntry.roleRequired"
-msgstr "Tha feum air dreuchd dhan neach-ionaid."
-
-msgid "grid.catalogEntry.dateFormatRequired"
-msgstr "Tha feum air fòrmat airson a’ chinn-là."
-
-msgid "grid.catalogEntry.dateValue"
-msgstr "Ceann-là"
-
-msgid "grid.catalogEntry.dateRole"
-msgstr "Dreuchd"
-
-msgid "grid.catalogEntry.dateFormat"
-msgstr "Fòrmat a’ chinn-là"
-
-msgid "grid.catalogEntry.dateRequired"
-msgstr ""
-"Tha feum air ceann-là agus feumaidh luach a’ chinn-là a bhith a-rèir fòrmat "
-"a’ chinn-là a thagh thu."
-
-msgid "grid.catalogEntry.representatives"
-msgstr "Luchd-ionaid"
-
-msgid "grid.catalogEntry.representativeType"
-msgstr "Seòrsa an neach-ionaid"
-
-msgid "grid.catalogEntry.agentsCategory"
-msgstr "Àidseantan"
-
-msgid "grid.catalogEntry.suppliersCategory"
-msgstr "Solaraichean"
-
-msgid "grid.catalogEntry.agent"
-msgstr "Àidseant"
-
-msgid "grid.catalogEntry.agentTip"
-msgstr ""
-"’S urrainn dhut àidseant ainmeachadh a bhios gad riochdachadh san ranntair "
-"seo. Chan eil seo riatanach."
-
-msgid "grid.catalogEntry.supplier"
-msgstr "Solaraiche"
-
-msgid "grid.catalogEntry.representativeRoleChoice"
-msgstr "Tagh dreuchd:"
-
-msgid "grid.catalogEntry.representativeRole"
-msgstr "Dreuchd"
-
-msgid "grid.catalogEntry.representativeName"
-msgstr "Ainm"
-
-msgid "grid.catalogEntry.representativePhone"
-msgstr "Fòn"
-
-msgid "grid.catalogEntry.representativeEmail"
-msgstr "Seòladh puist-d"
-
-msgid "grid.catalogEntry.representativeWebsite"
-msgstr "Làrach-lìn"
-
-msgid "grid.catalogEntry.representativeIdValue"
-msgstr "ID an neach-ionaid"
-
-msgid "grid.catalogEntry.representativeIdType"
-msgstr "Seòrsa ID an neach-ionaid (mholamaid GLN)"
-
-msgid "grid.catalogEntry.representativesDescription"
-msgstr ""
-"Faodaidh tu an earrann a leanas fhàgail bàn ma bhios tu a’ solarachadh do "
-"sheirbheisean fhèin dha na custamairean agad."
-
-msgid "grid.action.addRepresentative"
-msgstr "Cuir neach-ionaid ris"
-
-msgid "grid.action.editRepresentative"
-msgstr "Deasaich an neach-ionaid seo"
-
-msgid "grid.action.deleteRepresentative"
-msgstr "Sguab an neach-ionaid seo às"
-
-msgid "spotlight"
-msgstr "Prosbaig"
-
-msgid "spotlight.spotlights"
-msgstr "Prosbaigean"
-
-msgid "spotlight.noneExist"
-msgstr "Chan eil prosbaig ann aig an àm seo."
-
-msgid "spotlight.title.homePage"
-msgstr "Fon phrosbaig"
-
-msgid "spotlight.author"
-msgstr "Ùghdar, "
-
-msgid "grid.content.spotlights.spotlightItemTitle"
-msgstr "Nì fon phrosbaig"
-
-msgid "grid.content.spotlights.category.homepage"
-msgstr "An duilleag-dhachaigh"
-
-msgid "grid.content.spotlights.form.location"
-msgstr "Ionad na prosbaig"
-
-msgid "grid.content.spotlights.form.item"
-msgstr "Cuir a-steach tiotal airson na prosbaig (le fèin-choileanadh)"
-
-msgid "grid.content.spotlights.form.title"
-msgstr "Tiotal na prosbaig"
-
-msgid "grid.content.spotlights.form.type.book"
-msgstr "Leabhar"
-
-msgid "grid.content.spotlights.itemRequired"
-msgstr "Tha feum air nì."
-
-msgid "grid.content.spotlights.titleRequired"
-msgstr "Tha feum air tiotal airson na prosbaig."
-
-msgid "grid.content.spotlights.locationRequired"
-msgstr "Tagh ionad dhan phrosbaig seo."
-
-msgid "grid.action.editSpotlight"
-msgstr "Deasaich a’ phrosbaig seo"
-
-msgid "grid.action.deleteSpotlight"
-msgstr "Sguab a’ phrosbaig seo às"
-
-msgid "grid.action.addSpotlight"
-msgstr "Cuir prosbaig ris"
-
-msgid "manager.series.open"
-msgstr "Tagraidhean fosgailte"
-
-msgid "manager.series.indexed"
-msgstr "Air inneacsadh"
-
-msgid "grid.libraryFiles.column.files"
-msgstr "Faidhlichean"
-
-msgid "grid.action.catalogEntry"
-msgstr "Seall foirm innteart a’ chatalog"
-
-msgid "grid.action.formatInCatalogEntry"
-msgstr "Tha am fòrmat a’ nochdadh ann an innteart a’ chatalog"
-
-msgid "grid.action.editFormat"
-msgstr "Deasaich am fòrmat seo"
-
-msgid "grid.action.deleteFormat"
-msgstr "Sguab am fòrmat seo às"
-
-msgid "grid.action.addFormat"
-msgstr "Cuir fòrmat foillseachaidh ris"
-
-msgid "grid.action.approveProof"
-msgstr ""
-"Thoir aonta dhan dearbh a thaobh inneacsaidh agus airson a ghabhail a-staigh "
-"sa chatalog"
-
-msgid "grid.action.pageProofApproved"
-msgstr "Tha faidhle dearbhan nan duilleagan deiseil airson foillseachadh"
-
-msgid "grid.action.addAnnouncement"
-msgstr "Cuir fios-naidheachd ris"
-
-msgid "grid.action.newCatalogEntry"
-msgstr "Innteart ùr sa chatalog"
-
-msgid "grid.action.publicCatalog"
-msgstr "Seall an nì seo sa chatalog"
-
-msgid "grid.action.feature"
-msgstr "Toglaich taisbeanadh nan gleus"
-
-msgid "grid.action.featureMonograph"
-msgstr "Nochd seo air timcheallan a’ chatalog"
-
-msgid "grid.action.releaseMonograph"
-msgstr "Comharraich an tagradh seo mar “sgaoileadh ùr”"
-
-msgid "grid.action.manageCategories"
-msgstr "Rèitich an roinn-seòrsa seo dhan chlò seo"
-
-msgid "grid.action.manageSeries"
-msgstr "Rèitich an sreath seo dhan chlò seo"
-
-msgid "grid.action.addCode"
-msgstr "Cuir còd ris"
-
-msgid "grid.action.editCode"
-msgstr "Deasaich an còd seo"
-
-msgid "grid.action.deleteCode"
-msgstr "Sguab an còd seo às"
-
-msgid "grid.action.addRights"
-msgstr "Cuir còraichean reic ris"
-
-msgid "grid.action.editRights"
-msgstr "Deasaich na còraichean seo"
-
-msgid "grid.action.deleteRights"
-msgstr "Sguab na còraichean seo às"
-
-msgid "grid.action.addMarket"
-msgstr "Cuir margaid ris"
-
-msgid "grid.action.editMarket"
-msgstr "Deasaich a’ mhargaid seo"
-
-msgid "grid.action.deleteMarket"
-msgstr "Sguab a’ mhargaid seo às"
-
-msgid "grid.action.addDate"
-msgstr "Cuir ceann-là foillseachaidh ris"
-
-msgid "catalog.noTitlesNew"
-msgstr "Chan eil foillseachadh ùr sam bith ri fhaighinn aig an àm seo."
-
-msgid "catalog.noTitlesSearch"
-msgstr "Cha deach tiotalan a lorg a fhreagair air na lorg thu ({$searchQuery})."
-
-msgid "catalog.feature"
-msgstr "Gleus"
-
-msgid "catalog.featured"
-msgstr "Brosnaichte"
-
-msgid "catalog.featuredBooks"
-msgstr "Leabhraichean brosnaichte"
-
-msgid "catalog.foundTitleSearch"
-msgstr "Chaidh aon tiotal a lorg a fhreagair air na lorg thu ({$searchQuery})."
-
-msgid "catalog.foundTitlesSearch"
-msgstr ""
-"Chaidh tiotalan a lorg ({$number} dhiubh) a fhreagair air na lorg thu "
-"({$searchQuery})."
-
-msgid "catalog.category.heading"
-msgstr "A h-uile leabhar"
-
-msgid "catalog.newReleases"
-msgstr "Air ùr-fhoillseachadh"
-
-msgid "catalog.dateAdded"
-msgstr "Air a chur ris"
-
-msgid "catalog.publicationInfo"
-msgstr "Fiosrachadh mun fhoillseachadh"
-
-msgid "catalog.published"
-msgstr "Foillsichte"
-
-msgid "catalog.forthcoming"
-msgstr "Ri thighinn"
-
-msgid "catalog.categories"
-msgstr "Roinnean-seòrsa"
-
-msgid "catalog.parentCategory"
-msgstr "Roinn-seòrsa pàrant"
-
-msgid "catalog.category.subcategories"
-msgstr "Fo-roinnean-seòrsa"
-
-msgid "catalog.aboutTheAuthor"
-msgstr "Mu dhèidhinn {$roleName}"
-
-msgid "catalog.loginRequiredForPayment"
-msgstr ""
-"Thoir an aire: Feumaidh tu clàradh a-steach an toiseach mus urrainn dhut "
-"rudan a cheannach. Ma thaghas tu rud airson a cheannach, thèid d’ ath-"
-"stiùireadh gu duilleag far an clàraich thu a-steach. Ma tha ìomhaigheag “"
-"Inntrigeadh fosgailte” ri rud, gabhaidh a luchdadh a-nuas saor ’s an-asgaidh "
-"gun fheum air clàradh a-steach."
-
-msgid "catalog.sortBy"
-msgstr "Òrdugh nam monograf"
-
-msgid "catalog.sortBy.seriesDescription"
-msgstr "Tagh òrdugh dha na leabhraichean san t-sreath seo."
-
-msgid "catalog.sortBy.categoryDescription"
-msgstr "Tagh òrdugh dha na leabhraichean san roinn-seòrsa seo."
-
-msgid "catalog.sortBy.catalogDescription"
-msgstr "Tagh òrdugh dha na leabhraichean sa chatalog."
-
-msgid "catalog.sortBy.seriesPositionAsc"
-msgstr "An t-ionad san t-sreath (feadhainn as ìsle an toiseach)"
-
-msgid "catalog.sortBy.seriesPositionDesc"
-msgstr "An t-ionad san t-sreath (feadhainn as àirde an toiseach)"
-
-msgid "catalog.viewableFile.title"
-msgstr "Sealladh ({$type}) dhen fhaidhle {$title}"
-
-msgid "catalog.viewableFile.return"
-msgstr "Till chun a’ mhion-fhiosrachaidh mu dhèidhinn {$monographTitle}"
-
-msgid "submission.search"
-msgstr "Lorg leabhar"
-
-msgid "common.publication"
-msgstr "Monograf"
-
-msgid "common.publications"
-msgstr "Monografaichean"
-
-msgid "common.prefix"
-msgstr "Ro-leasachan"
-
-msgid "common.preview"
-msgstr "Ro-shealladh"
-
-msgid "common.feature"
-msgstr "Gleus"
-
-msgid "common.searchCatalog"
-msgstr "Lorg sa chatalog"
-
-msgid "common.moreInfo"
-msgstr "Barrachd fiosrachaidh"
-
-msgid "common.listbuilder.completeForm"
-msgstr "Lìon am foirm gu lèir."
-
-msgid "common.listbuilder.selectValidOption"
-msgstr "Tagh roghainn dhligheach on liosta."
-
-msgid "common.listbuilder.itemExists"
-msgstr "Chan urrainn dhut an aon rud a chur ris dà thuras."
-
-msgid "common.omp"
-msgstr "OMP"
-
-msgid "common.homePageHeader.altText"
-msgstr "Bann-cinn na duilleige-dachaigh"
-
-msgid "navigation.competingInterestPolicy"
-msgstr "Am poileasaidh mu chòmhstri ùidhean"
-
-msgid "navigation.catalog.allMonographs"
-msgstr "A h-uile monograf"
-
-msgid "navigation.catalog.manage"
-msgstr "Stiùirich"
-
-msgid "navigation.catalog.administration.short"
-msgstr "Ball sgioba rianachd LibreOffice"
-
-msgid "navigation.catalog.administration"
-msgstr "Rianachd a’ chatalog"
-
-msgid "navigation.catalog.administration.categories"
-msgstr "Roinnean-seòrsa"
-
-msgid "navigation.catalog.administration.series"
-msgstr "Sreath"
-
-msgid "navigation.infoForAuthors"
-msgstr "Do dh’ùghdaran"
-
-msgid "navigation.infoForLibrarians"
-msgstr "Do leabhar-lannaichean"
-
-msgid "navigation.infoForAuthors.long"
-msgstr "Fiosrachadh do dh’ùghdaran"
-
-msgid "navigation.infoForLibrarians.long"
-msgstr "Fiosrachadh do leabhar-lannaichean"
-
-msgid "navigation.newReleases"
-msgstr "Air ùr-fhoillseachadh"
-
-msgid "navigation.published"
-msgstr "Foillsichte"
-
-msgid "navigation.wizard"
-msgstr "An draoidh"
-
-msgid "navigation.linksAndMedia"
-msgstr "Ceanglaichean is meadhanan sòisealta"
-
-msgid "navigation.navigationMenus.catalog.description"
-msgstr "Ceangail ris a’ chatalog agad."
-
-msgid "navigation.skip.spotlights"
-msgstr "Leum chun nam prosbaigean"
-
-msgid "navigation.navigationMenus.series.generic"
-msgstr "Sreath"
-
-msgid "navigation.navigationMenus.series.description"
-msgstr "Ceangail ri sreath."
-
-msgid "navigation.navigationMenus.category.generic"
-msgstr "Roinn-seòrsa"
-
-msgid "navigation.navigationMenus.category.description"
-msgstr "Ceangail ri roinn-seòrsa."
-
-msgid "navigation.navigationMenus.newRelease"
-msgstr "Air ùr-fhoillseachadh"
-
-msgid "navigation.navigationMenus.newRelease.description"
-msgstr "Ceanglaichean ris na sgaoilidhean ùra agad."
-
-msgid "context.contexts"
-msgstr "Clòthan"
-
-msgid "context.context"
-msgstr "Brùth"
-
-msgid "context.current"
-msgstr "An clò làithreach:"
-
-msgid "context.select"
-msgstr "Geàrr leum gu clò eile:"
-
-msgid "user.noRoles.selectUsersWithoutRoles"
-msgstr "Gabh a-staigh cleachdaichean aig nach eil dreuchd sa chlò seo."
-
-msgid "user.noRoles.submitMonograph"
-msgstr "Cuir moladh"
-
-msgid "user.noRoles.submitMonographRegClosed"
-msgstr "Cuir monograf: Tha clàradh ùghdaran à comas aig an àm seo."
-
-msgid "user.noRoles.regReviewer"
-msgstr "Clàraich mar lèirmheasaiche"
-
-msgid "user.noRoles.regReviewerClosed"
-msgstr ""
-"Clàraich mar lèirmheasaiche: Tha clàradh lèirmheasaichean à comas aig an àm "
-"seo."
-
-msgid "user.reviewerPrompt"
-msgstr ""
-"A bheil ùidh agad ann a bhith a’ dèanamh lèirmheasan air tagraidhean dhan "
-"chlò seo?"
-
-msgid "user.reviewerPrompt.userGroup"
-msgstr "Tha, iarr dreuchd {$userGroup}."
-
-msgid "user.reviewerPrompt.optin"
-msgstr ""
-"Tha, tha mi ag iarraidh gun cuirear fios thugam ma bhios iarrtas ann airson "
-"lèirmheas tagraidh dhan chlò seo."
-
-msgid "user.register.contextsPrompt"
-msgstr "Dè na clòthan air an làrach seo bu toil leat clàradh aca?"
-
-msgid "user.register.otherContextRoles"
-msgstr "Iarr na dreuchdan a leanas."
-
-msgid "user.register.noContextReviewerInterests"
-msgstr ""
-"Ma dh’iarr thu inbhe lèirmheasaiche airson clò sam bith, cuir a-steach na "
-"cuspairean sa bheil ùidh agad."
-
-msgid "user.role.manager"
-msgstr "Manaidsear a’ chlòtha"
-
-msgid "user.role.pressEditor"
-msgstr "Deasaiche a’ chlòtha"
-
-msgid "user.role.subEditor"
-msgstr "Deasaiche an t-sreatha"
-
-msgid "user.role.copyeditor"
-msgstr "Grinn-deasaiche"
-
-msgid "user.role.proofreader"
-msgstr "Dearbh-leughadair"
-
-msgid "user.role.productionEditor"
-msgstr "Deasaiche saothrachaidh"
-
-msgid "user.role.managers"
-msgstr "Manaidsearan a’ chlòtha"
-
-msgid "user.role.subEditors"
-msgstr "Deasaichean an t-sreatha"
-
-msgid "user.role.editors"
-msgstr "Deasaichean"
-
-msgid "user.role.copyeditors"
-msgstr "Grinn-deasaichean"
-
-msgid "user.role.proofreaders"
-msgstr "Dearbh-leughadairean"
-
-msgid "user.role.productionEditors"
-msgstr "Deasaichean saothrachaidh"
-
-msgid "user.register.selectContext"
-msgstr "Tagh clò airson clàradh aige:"
-
-msgid "user.register.noContexts"
-msgstr "Chan eil clò sam bith air an làrach seo as urrainn dhut clàradh aige."
-
-msgid "user.register.privacyStatement"
-msgstr "An aithris prìobhaideachd"
-
-msgid "user.register.registrationDisabled"
-msgstr "Chan eil an clò seo a’ clàradh chleachdaichean aig an àm seo."
-
-msgid "user.register.form.passwordLengthTooShort"
-msgstr "Chan eil am facal-faire a chuir thu a-steach fada gu leòr."
-
-msgid "user.register.readerDescription"
-msgstr "Gheibhear fios air a’ phost-d nuair a thèid monograf fhoillseachadh."
-
-msgid "user.register.authorDescription"
-msgstr "Comasach air nithean a chur dhan chlò."
-
-msgid "user.register.reviewerDescriptionNoInterests"
-msgstr "Deònach lèirmheas seise a dhèanamh air tagraidhean dhan chlò."
-
-msgid "user.register.reviewerDescription"
-msgstr "Deònach lèirmheas seise a dhèanamh air tagraidhean dhan làrach."
-
-msgid "user.register.reviewerInterests"
-msgstr ""
-"Aithneachadh de dh’ùidhean lèirmheis (raointean chuspairean agus dòighean "
-"rannsachaidh):"
-
-msgid "user.register.form.userGroupRequired"
-msgstr "Feumaidh tu co-dhiù aon dreuchd a thaghadh"
-
-msgid "site.noPresses"
-msgstr "Chan eil clòth sam bith ri fhaighinn."
-
-msgid "site.pressView"
-msgstr "Seall làrach-lìn a’ chlòtha"
-
-msgid "about.pressContact"
-msgstr "Conaltradh leis a’ chlò"
-
-msgid "about.aboutContext"
-msgstr "Mun chlò"
-
-msgid "about.editorialTeam"
-msgstr "An sgioba deasachaidh"
-
-msgid "about.editorialPolicies"
-msgstr "Poileasaidhean deasachaidh"
-
-msgid "about.focusAndScope"
-msgstr "Fòcas is sgòp"
-
-msgid "about.seriesPolicies"
-msgstr "Poileasaidhean a thaobh shreathan is roinnean-seòrsa"
-
-msgid "about.submissions"
-msgstr "Tagraidhean"
-
-msgid "about.onlineSubmissions"
-msgstr "Tagraidhean air loidhne"
-
-msgid "about.onlineSubmissions.login"
-msgstr "Clàraich a-steach"
-
-msgid "about.onlineSubmissions.register"
-msgstr "Clàraich"
-
-msgid "about.onlineSubmissions.registrationRequired"
-msgstr "{$login} no {$register} a dhèanamh tagradh."
-
-msgid "about.onlineSubmissions.submissionActions"
-msgstr "{$newSubmission} no {$viewSubmissions}."
-
-msgid "about.onlineSubmissions.newSubmission"
-msgstr "Dèan tagradh ùr"
-
-msgid "about.onlineSubmissions.viewSubmissions"
-msgstr "coimhead air na tagraidhean agad a tha ri dhèiligeadh"
-
-msgid "about.authorGuidelines"
-msgstr "Riaghailtean dha na h-ùghdaran"
-
-msgid "about.submissionPreparationChecklist"
-msgstr "Liosta-chromagan ullachadh an tagraidh"
-
-msgid "about.submissionPreparationChecklist.description"
-msgstr ""
-"Mar phàirt dhen phròiseas tagraidh, bidh aig na h-ùghdaran cromag a chur ris "
-"na nithean a leanas air fad a dh’innse gu bheil an tagradh aca a’ gèilleadh "
-"ri gach aon dhiubh agus mur eil tagradh a’ gèilleadh ris na riaghailtean "
-"seo, dh’fhaoidte gun tèid a thilleadh dha na h-ùghdaran."
-
-msgid "about.copyrightNotice"
-msgstr "Brath na còrach-lethbhreac"
-
-msgid "about.privacyStatement"
-msgstr "An aithris prìobhaideachd"
-
-msgid "about.reviewPolicy"
-msgstr "Pròiseas nan lèirmheas le seise"
-
-msgid "about.publicationFrequency"
-msgstr "Tricead an fhoillseachaidh"
-
-msgid "about.openAccessPolicy"
-msgstr "Poileasaidh an inntrigidh fhosgailte"
-
-msgid "about.pressSponsorship"
-msgstr "Sponsaireachd a’ chlòtha"
-
-msgid "about.aboutThisPublishingSystem"
-msgstr ""
-"Barrachd fiosrachaidh mu na siostaman foillseachaidh, mun ùrlar agus sruth-"
-"obrach le OMP/PKP."
-
-msgid "about.aboutThisPublishingSystem.altText"
-msgstr "Pròiseas foillseachadh is deasachadh OMP"
-
-msgid "help.searchReturnResults"
-msgstr "Till gu toraidhean an luirg"
-
-msgid "help.goToEditPage"
-msgstr "Fosgail duilleag ùr gus am fiosrachadh seo a dheasachadh"
-
-msgid "installer.appInstallation"
-msgstr "Stàladh OMP"
-
-msgid "installer.ompUpgrade"
-msgstr "Àrdachadh OMP"
-
-msgid "installer.installApplication"
-msgstr "Stàlaich Open Monograph Press"
-
-msgid "installer.preInstallationInstructionsTitle"
-msgstr "Ceuman ro-stàlaidh"
-
-msgid "installer.localeInstructions"
-msgstr ""
-"Am prìomh-chànan a chleachdas an siostam seo. Thoir sùil air an stiùireadh "
-"airson OMP ma tha cànan a dhìth ort nach fhaic thu an-seo."
-
-msgid "installer.additionalLocalesInstructions"
-msgstr ""
-"Tagh na cànain eile a thèid a chleachdadh san t-siostam seo. Bidh na cànain "
-"seo ri làimh chlòthan aig am bi air òstaireachd air an làrach. Gabhaidh "
-"cànain a stàladh o eadar-aghaidh rianachd na làraich uair sam bith "
-"cuideachd. Dh’fhaoidte gu bheil sgeamaichean ionadail ris a bheil * gun "
-"choileanadh."
-
-msgid "installer.databaseSettingsInstructions"
-msgstr ""
-"Feumaidh OMP cothrom air stòr-dàta SQL far an cùm e an dàta aige. Faic "
-"riatanasan an t-siostaim gu h-àrd airson liosta nan stòr-dàta ris a bheil "
-"taic. Cuir na roghainnean a thèid a chleachdadh airson ceangal a dhèanamh "
-"ris an stòr-dàta sna raointean gu h-ìosal."
-
-msgid "installer.upgradeApplication"
-msgstr "Àrdaich Open Monograph Press"
-
-msgid "log.review.reviewDueDateSet"
-msgstr ""
-"Chaidh {$dueDate} a shuidheachadh le {$reviewerName} mar cheann-là "
-"lìbhrigidh airson lèirmheas cuairt {$round} dhen tagradh {$submissionId}."
-
-msgid "log.review.reviewDeclined"
-msgstr ""
-"Dhiùlt {$userName} lèirmheas cuairt {$round} mu choinneamh tagradh "
-"{$submissionId}."
-
-msgid "log.review.reviewAccepted"
-msgstr ""
-"Ghabh {$reviewerName} ri lèirmheas cuairt {$round} mu choinneamh tagraidh "
-"{$submissionId}."
-
-msgid "log.review.reviewUnconsidered"
-msgstr ""
-"Chomharraich {$userName} gu bheil lèirmheas cuairt {$round} mu choinneamh "
-"tagradh {$submissionId} gun chnuasachadh."
-
-msgid "log.editor.decision"
-msgstr ""
-"Chaidh co-dhùnadh le deasaiche ({$decision}) mu choinneamh a’ mhonograf "
-"{$submissionId} a chlàradh le {$editorName}."
-
-msgid "log.editor.recommendation"
-msgstr ""
-"Chaidh moladh le deasaiche ({$decision}) mu choinneamh a’ mhonograf "
-"{$submissionId} a chlàradh le {$editorName}."
-
-msgid "log.editor.archived"
-msgstr "Chaidh an tagradh {$submissionId} a chur dhan tasg-lann."
-
-msgid "log.editor.restored"
-msgstr "Chaidh an tagradh {$submissionId} aiseag dhan chiutha."
-
-msgid "log.editor.editorAssigned"
-msgstr ""
-"Chaidh {$editorName} iomruineadh dhan tagradh {$submissionId} mar dheasaiche."
-
-msgid "log.proofread.assign"
-msgstr ""
-"Dh’iomruin {$assignerName} {$proofreaderName} airson dearbh-leughadh a "
-"dhèanamh air an tagradh {$submissionId}."
-
-msgid "log.proofread.complete"
-msgstr "Chuir {$proofreaderName} {$submissionId} airson sgeidealachadh."
-
-msgid "log.imported"
-msgstr "Thug {$userName} a-steach am monograf {$submissionId}."
-
-msgid "notification.addedIdentificationCode"
-msgstr "Chaidh an còd ID a chur ris."
-
-msgid "notification.editedIdentificationCode"
-msgstr "Chaidh an còd ID a dheasachadh."
-
-#, fuzzy
-msgid "installer.installationInstructions"
-msgstr ""
-"\n"
-"Mòran taing airson Open Monograph Press {$version} aig a’"
-" Public Knowledge Project a luchdadh a-nuas. Mus lean thu air adhart, leugh "
-"am faidhle README a tha ga ghabhail a-"
-"staigh leis a’ bhathar-bhog seo. Airson barrachd fiosrachaidh mun Public "
-"Knowledge Project agus na pròiseactan bathair-bhog aca, tadhail air làrach-lìn PKP. Ma tha thu "
-"airson aithris a dhèanamh aig buga no ma tha ceist agad mu Open Monograph "
-"Press, faic am fòram "
-"taice no tadhail air an t-siostam aig PKP airson aithris a dhèanamh aig "
-"bugaichean. Ge b’ fheàrr leinn cluinntinn o dhaoine slighe an fhòraim, ’"
-"s urrainn dhut post-d a chur chun an sgioba cuideachd pkp.contact@gmail.com.
\n"
-"\n"
-"Àrdachadh
\n"
-"\n"
-"Ma tha thu ag àrdachadh stàladh làithreach de OMP, briog an-seo a leantainn air adhart.
"
-
-#, fuzzy
-msgid "about.aboutOMPSite"
-msgstr ""
-"Tha an làrach seo a’ cleachdadh Open Monograph Press {$ompVersion}, bathar-"
-"bog le còd fosgailte airson stiùireadh clòthan is foillseachadh, le taic a’ <"
-"a href=\"http://pkp.sfu.ca/\">Public Knowledge Project agus ga "
-"sgaoileadh gu saor fo cheadachas coitcheann poblach GNU."
-
-#, fuzzy
-msgid "about.aboutOMPPress"
-msgstr ""
-"Tha an clò seo a’ cleachdadh Open Monograph Press {$ompVersion}, bathar-bog "
-"le còd fosgailte airson stiùireadh chlòthan is foillseachadh, le taic a’ Public Knowledge Project agus ga sgaoileadh "
-"gu saor fo cheadachas coitcheann poblach GNU."
-
-msgid "user.register.form.privacyConsentThisContext"
-msgstr ""
-"Tha, tha mi ag aontachadh gun tèid an dàta agam a chruinneachadh is a "
-"stòradh a rèir aithris "
-"prìobhaideachd a’ chlò seo."
-
-msgid "grid.catalogEntry.availableRepresentation.removeMessage"
-msgstr ""
-"Cha bhi am fòrmat seo ri làimh leughadairean. Cha nochd "
-"faidhlichean a bha ri luchdadh a-nuas no sgaoileadh sam bith eile ann an "
-"innteart catalog an leabhair tuilleadh.
"
-
-msgid "grid.catalogEntry.availableRepresentation.message"
-msgstr ""
-"Cuir am fòrmat seo ri làimh leughadairean. Nochdaidh "
-"faidhlichean a bha ri luchdadh a-nuas agus sgaoilidhean eile ann an innteart "
-"catalog an leabhair.
"
-
-msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
-msgstr "Nochd nach d’fhuair meata-dàta an fhòrmait seo aonta fhathast.
"
-
-msgid "grid.catalogEntry.approvedRepresentation.message"
-msgstr ""
-"Thoir aonta dhan mheata-dàta airson an fhòrmait seo. Gabhaidh am meata-"
-"dàta a sgrùdadh on phanail deasachaidh airson gach fòrmat.
"
-
-msgid "monograph.publicationFormat.formatDoesNotExist"
-msgstr ""
-"Chan eil am fòrmat foillseachaidh a thagh thu ri làimh airson a’ "
-"mhonograf seo tuilleadh.
"
-
-msgid "monograph.proofReadingDescription"
-msgstr ""
-"Bidh deasaiche na co-dhealbhachd a’ luchdadh suas faidhlichean a tha deiseil "
-"airson foillseachadh an-seo. Cleachd +Iomruin airson ùghdaran agus "
-"daoine eile ainmeachadh a nì dearbh-leughadh air dearbhan nan duilleagan; "
-"thèid na faidhlichean dearbhte a luchdadh suas airson aontachadh mus tèid am "
-"foillseachadh."
-
-msgid "monograph.audience"
-msgstr "Luchd-leughaidh"
-
-msgid "monograph.audience.success"
-msgstr "Chaidh mion-fhiosrachadh nan ìrean leughaidh ùrachadh."
-
-msgid "monograph.coverImage"
-msgstr "Dealbh a’ chòmhdachaidh"
-
-msgid "monograph.audience.rangeQualifier"
-msgstr "Adhbhar na h-ìre leughaidh"
-
-msgid "monograph.audience.rangeFrom"
-msgstr "Ìre leughaidh (agus nas àirde)"
-
-msgid "monograph.audience.rangeTo"
-msgstr "Ìre leughaidh (gu ruige)"
-
-msgid "monograph.audience.rangeExact"
-msgstr "Ìre leughaidh (pongail)"
-
-msgid "monograph.languages"
-msgstr "Cànain (Beurla, Fraingis, Spàinntis)"
-
-msgid "monograph.publicationFormats"
-msgstr "Fòrmatan foillseachaidh"
-
-msgid "monograph.publicationFormat"
-msgstr "Fòrmat"
-
-msgid "monograph.publicationFormatDetails"
-msgstr ""
-"Mion-fhiosrachadh mun fhòrmatan an fhoillseachaidh a tha ri fhaighinn: "
-"{$format}"
-
-msgid "monograph.miscellaneousDetails"
-msgstr "Mion-fhiosrachadh mun mhonograf seo"
-
-msgid "monograph.carousel.publicationFormats"
-msgstr "Fòrmatan:"
-
-msgid "monograph.type"
-msgstr "Seòrsa an tagraidh"
-
-msgid "submission.pageProofs"
-msgstr "Dearbhan dhuilleagan"
-
-msgid "monograph.task.addNote"
-msgstr "Cuir ris an t-saothair"
-
-msgid "monograph.accessLogoOpen.altText"
-msgstr "Inntrigeadh fosgailte"
-
-msgid "monograph.publicationFormat.imprint"
-msgstr "Fiosrachadh mun fhoillseachadh (Ainm a’ bhrannd/an fhoillsicheir)"
-
-msgid "monograph.publicationFormat.pageCounts"
-msgstr "Cunntas nan duilleagan"
-
-msgid "monograph.publicationFormat.frontMatterCount"
-msgstr "Stuthan a’ bheulaibh"
-
-msgid "monograph.publicationFormat.backMatterCount"
-msgstr "Stuthan a’ chùlaibh"
-
-msgid "monograph.publicationFormat.productComposition"
-msgstr "Co-chur a’ bhathair"
-
-msgid "monograph.publicationFormat.productFormDetailCode"
-msgstr "Mion-fhiosrachadh mun bhathar (chan eil seo riatanach)"
-
-msgid "monograph.publicationFormat.productIdentifierType"
-msgstr "Dearbh-aithneachadh a’ bhathair"
-
-msgid "monograph.publicationFormat.price"
-msgstr "A’ phrìs"
-
-msgid "monograph.publicationFormat.priceRequired"
-msgstr "Tha feum air prìs."
-
-msgid "monograph.publicationFormat.priceType"
-msgstr "Seòrsa na prìse"
-
-msgid "monograph.publicationFormat.discountAmount"
-msgstr "Ceudad an ìsleachaidh, ma bhios seo iomchaidh"
-
-msgid "monograph.publicationFormat.productAvailability"
-msgstr "Faotainneachd a’ bhathair"
-
-msgid "monograph.publicationFormat.returnInformation"
-msgstr "Tilleadh bathair"
-
-msgid "monograph.publicationFormat.digitalInformation"
-msgstr "Fiosrachadh digiteach"
-
-msgid "monograph.publicationFormat.productDimensions"
-msgstr "Meud fiosaigeach"
-
-msgid "monograph.publicationFormat.productDimensionsSeparator"
-msgstr " x "
-
-msgid "monograph.publicationFormat.productFileSize"
-msgstr "Meud an fhaidhle ann am Mbytes"
-
-msgid "monograph.publicationFormat.productFileSize.override"
-msgstr "A bheil thu airson meud faidhle a chur a-steach thu fhèin?"
-
-msgid "monograph.publicationFormat.productHeight"
-msgstr "Àirde"
-
-msgid "monograph.publicationFormat.productThickness"
-msgstr "Tiughad"
-
-msgid "monograph.publicationFormat.productWeight"
-msgstr "Cudrom"
-
-msgid "monograph.publicationFormat.productWidth"
-msgstr "Leud"
-
-msgid "monograph.publicationFormat.countryOfManufacture"
-msgstr "Dùthaich an t-saothrachaidh"
-
-msgid "monograph.publicationFormat.technicalProtection"
-msgstr "Dìon digiteach"
-
-msgid "grid.action.editDate"
-msgstr "Deasaich an ceann-là seo"
-
-msgid "grid.action.deleteDate"
-msgstr "Sguab an ceann-là seo às"
-
-msgid "grid.action.createContext"
-msgstr "Cruthaich clò ùr"
-
-msgid "grid.action.publicationFormatTab"
-msgstr "Seall taba fòrmat an fhoillseachaidh"
-
-msgid "grid.action.moreAnnouncements"
-msgstr "Tadhail air duilleag fiosan-naidheachd a’ chlòtha"
-
-msgid "grid.action.submissionEmail"
-msgstr "Dèan briogadh airson am post-d seo a leughadh"
-
-msgid "grid.action.approveProofs"
-msgstr "Seall griod nan dearbhan"
-
-msgid "grid.action.proofApproved"
-msgstr "Chaidh am fòrmat a dhearbhadh"
-
-msgid "grid.action.availableRepresentation"
-msgstr "Thoir aonta ris an fhòrmat seo no thoirt air falbh an t-aonta"
-
-msgid "grid.action.formatAvailable"
-msgstr "Toglaich faotainneachd an fhòrmat air is dheth"
-
-msgid "grid.reviewAttachments.add"
-msgstr "Cuir ceanglachan ris an lèirmheas"
-
-msgid "grid.reviewAttachments.availableFiles"
-msgstr "Faidhlichean a tha ri làimh"
-
-msgid "submissionGroup.assignedSubEditors"
-msgstr "Deasaichean iomruinte"
-
-msgid "series.series"
-msgstr "Sreath"
-
-msgid "notification.removedIdentificationCode"
-msgstr "Chaidh an còd ID a thoirt air falbh."
-
-msgid "notification.addedPublicationDate"
-msgstr "Chaidh ceann-là an fhoillseachaidh a chur ris."
-
-msgid "notification.editedPublicationDate"
-msgstr "Chaidh ceann-là an fhoillseachaidh a dheasachadh."
-
-msgid "notification.removedPublicationDate"
-msgstr "Chaidh ceann-là an fhoillseachaidh a thoirt air falbh."
-
-msgid "notification.addedPublicationFormat"
-msgstr "Chaidh fòrmat an fhoillseachaidh a chur ris."
-
-msgid "notification.editedPublicationFormat"
-msgstr "Chaidh fòrmat an fhoillseachaidh a dheasachadh."
-
-msgid "notification.removedPublicationFormat"
-msgstr "Chaidh fòrmat an fhoillseachaidh a thoirt air falbh."
-
-msgid "notification.addedSalesRights"
-msgstr "Chaidh na còraichean reic a chur ris."
-
-msgid "notification.editedSalesRights"
-msgstr "Chaidh na còraichean reic a dheasachadh."
-
-msgid "notification.removedSalesRights"
-msgstr "Chaidh na còraichean reic a thoirt air falbh."
-
-msgid "notification.addedRepresentative"
-msgstr "Chaidh an neach-ionaid a chur ris."
-
-msgid "notification.editedRepresentative"
-msgstr "Chaidh an neach-ionaid a dheasachadh."
-
-msgid "notification.removedRepresentative"
-msgstr "Chaidh an neach-ionaid a thoirt air falbh."
-
-msgid "notification.addedMarket"
-msgstr "Chaidh a’ mhargaid a chur ris."
-
-msgid "notification.editedMarket"
-msgstr "Chaidh a’ mhargaid a dheasachadh."
-
-msgid "notification.removedMarket"
-msgstr "Chaidh a’ mhargaid a thoirt air falbh."
-
-msgid "notification.addedSpotlight"
-msgstr "Chaidh prosbaig a chur ris."
-
-msgid "notification.editedSpotlight"
-msgstr "Chaidh a’ phrosbaig a dheasachadh."
-
-msgid "notification.removedSpotlight"
-msgstr "Chaidh a’ phrosbaig a thoirt air falbh."
-
-msgid "notification.savedCatalogMetadata"
-msgstr "Chaidh meata-dàta a’ chatalog a shàbhaladh."
-
-msgid "notification.savedPublicationFormatMetadata"
-msgstr "Chaidh meata-dàta fòrmat an fhoillseachaidh a shàbhaladh."
-
-msgid "notification.proofsApproved"
-msgstr "Fhuair na dearbhan aonta."
-
-msgid "notification.removedSubmission"
-msgstr "Chaidh an tagradh a sguabadh às."
-
-msgid "notification.type.submissionSubmitted"
-msgstr "Chaidh monograf ùr, “{$title}”, a chur."
-
-msgid "notification.type.editing"
-msgstr "Tachartasan deasachaidh"
-
-msgid "payment.directSales.numericOnly"
-msgstr "Feumaidh prìs a bhith na àireamh. Na cuir ann samhla an airgeadra."
-
-msgid "payment.directSales.directSales"
-msgstr "Reicean dìreach"
-
-msgid "payment.directSales.notAvailable"
-msgstr "Chan eil seo ri làimh"
-
-msgid "payment.directSales.notSet"
-msgstr "Cha deach a shuidheachadh"
-
-msgid "payment.directSales.openAccess"
-msgstr "Inntrigeadh fosgailte"
-
-msgid "payment.directSales.price.description"
-msgstr ""
-"Gabhaidh fòrmatan faidhle a chur ri làimh airson luchdadh a-nuas o làrach-"
-"lìn a’ chlòtha slighe inntrigidh fhosgailte gun chosgais sam bith do "
-"leughadairean no slighe reicean dìreach (a’ cleachdadh làimhsichear pàighidh "
-"air loidhne mar a chaidh a rèiteachadh ann an roghainn an sgaoilidh). "
-"Sònraich an dòigh inntrigidh airson an fhaidhle seo."
-
-msgid "payment.directSales.validPriceRequired"
-msgstr "Tha feum air prìs mar àireamh dhligheach."
-
-msgid "payment.directSales.purchase"
-msgstr "Ceannaich {$format} ({$amount} {$currency})"
-
-msgid "payment.directSales.download"
-msgstr "Luchdaich a-nuas {$format}"
-
-msgid "payment.directSales.monograph.name"
-msgstr "Ceannaich monograf no luchdadh a-nuas de chaibideil"
-
-msgid "payment.directSales.monograph.description"
-msgstr ""
-"Bidh tu a’ ceannach luchdadh a-nuas dìreach de mhonograf no caibideil de "
-"mhonograf leis an tar-chur seo."
-
-msgid "debug.notes.currencyListLoad"
-msgstr "Chaidh liosta nan airgeadra “{$filename}” on XML"
-
-msgid "debug.notes.helpMappingLoad"
-msgstr ""
-"Chaidh faidhle mapadh XML na cobharach “{$filename}” ath-luchdadh an tòir "
-"{$id}."
-
-msgid "rt.metadata.pkp.dctype"
-msgstr "Leabhar"
-
-msgid "submission.pdf.download"
-msgstr "Luchdaich a-nuas am faidhle PDF seo"
-
-msgid "user.profile.form.showOtherContexts"
-msgstr "Clàraich aig clòthan eile"
-
-msgid "user.profile.form.hideOtherContexts"
-msgstr "Falaich na clòthan eile"
-
-msgid "user.authorization.invalidPublishedSubmission"
-msgstr "Chaidh tagradh foillsichte mì-dhligheach a shònrachadh."
-
-msgid "catalog.coverImageTitle"
-msgstr "Dealbh a’ chòmhdachaidh"
diff --git a/locale/gd_GB/submission.po b/locale/gd_GB/submission.po
deleted file mode 100644
index c95fdad3064..00000000000
--- a/locale/gd_GB/submission.po
+++ /dev/null
@@ -1,417 +0,0 @@
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2020-11-17 02:12+0000\n"
-"Last-Translator: Michael Bauer \n"
-"Language-Team: Gaelic \n"
-"Language: gd_GB\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==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
-"(n > 2 && n < 20) ? 2 : 3;\n"
-"X-Generator: Weblate 3.9.1\n"
-
-msgid "submission.round"
-msgstr "Cuairt {$round}"
-
-msgid "submission.catalogEntry.catalogMetadata"
-msgstr "Catalog"
-
-msgid "submission.submit.catalog"
-msgstr "Catalog"
-
-msgid "submission.authorListSeparator"
-msgstr "; "
-
-msgid "submission.submit.title"
-msgstr "Cuir monograf"
-
-msgid "submission.upload.selectComponent"
-msgstr "Tagh co-phàirt"
-
-msgid "submission.title"
-msgstr "Tiotal leabhair"
-
-msgid "submission.select"
-msgstr "Tagh tagradh"
-
-msgid "submission.synopsis"
-msgstr "Geàrr-chunntas"
-
-msgid "submission.workflowType"
-msgstr "Seòrsa an tagraidh"
-
-msgid "submission.workflowType.description"
-msgstr ""
-"’S e obair a rinn co-dhiù aon ùghdar a tha ann am monograf. Tha ùghdar eile "
-"aig gach caibideil ann an iom-leabhar deasaichte (le mion-fhiosrachadh nan "
-"caibideilean gan cur a-steach rè ceann thall a’ phròiseis.)"
-
-msgid "submission.workflowType.editedVolume.label"
-msgstr "Iom-leabhar deasaichte"
-
-msgid "submission.workflowType.editedVolume"
-msgstr ""
-"Iom-leabhar deasaichte: Thèid na h-ùghdaran a cho-cheangal ris a’ chaibideil "
-"aca fhèin."
-
-msgid "submission.workflowType.authoredWork"
-msgstr "Monograf: Thèid na h-ùghdaran a cho-cheangal ris an leabhar air fad."
-
-msgid "submission.workflowType.change"
-msgstr "Atharraich"
-
-msgid "submission.editorName"
-msgstr "{$editorName} (deas.)"
-
-msgid "submission.monograph"
-msgstr "Monograf"
-
-msgid "submission.published"
-msgstr "Deiseil airson saothrachadh"
-
-msgid "submission.fairCopy"
-msgstr "Lethbhreac grinn"
-
-msgid "submission.artwork.permissions"
-msgstr "Ceadan"
-
-msgid "submission.chapter"
-msgstr "Caibideil"
-
-msgid "submission.chapters"
-msgstr "Caibideilean"
-
-msgid "submission.chaptersDescription"
-msgstr ""
-"’S urrainn dhut liosta dhe na caibideilean a dhèanamh an-seo agus luchd-"
-"pàirteachaidh iomruineadh on liosta gu h-àrd. ’S urrainn dhan luchd-"
-"phàirteachaidh cothrom fhaighinn air a’ chaibideil rè ceumannan a’ phròiseis "
-"fhoillseachaidh."
-
-msgid "submission.chapter.addChapter"
-msgstr "Cuir caibideil ris"
-
-msgid "submission.chapter.editChapter"
-msgstr "Deasaich a’ chaibideil"
-
-msgid "submission.chapter.pages"
-msgstr "Duilleagan"
-
-msgid "submission.copyedit"
-msgstr "Grinn-deasachadh"
-
-msgid "submission.publicationFormats"
-msgstr "Fòrmatan foillseachaidh"
-
-msgid "submission.proofs"
-msgstr "Dearbhaidhean"
-
-msgid "submission.download"
-msgstr "Luchdaich a-nuas"
-
-msgid "submission.sharing"
-msgstr "Co-roinn seo"
-
-msgid "manuscript.submission"
-msgstr "Tagradh sgrìobhainn"
-
-msgid "submissions.queuedReview"
-msgstr "Fo lèirmheas"
-
-msgid "manuscript.submissions"
-msgstr "Tagraidhean sgrìobhainnean"
-
-msgid "submission.confirmSubmit"
-msgstr ""
-"A bheil thu cinnteach gu bheil thu airson an sgrìobhainn seo a chur dhan "
-"chlò?"
-
-msgid "submission.metadata"
-msgstr "Meata-dàta"
-
-msgid "submission.supportingAgencies"
-msgstr "Buidhnean a tha a’ cur taic ris"
-
-msgid "grid.action.addChapter"
-msgstr "Cruthaich caibideil ùr"
-
-msgid "grid.action.editChapter"
-msgstr "Deasaich a’ chaibideil seo"
-
-msgid "grid.action.deleteChapter"
-msgstr "Sguab a’ chaibideil seo às"
-
-msgid "submission.submit"
-msgstr "Tòisich air tagradh de leabhar ùr"
-
-msgid "submission.submit.newSubmissionMultiple"
-msgstr "Tòisich air tagradh ùr ann an"
-
-msgid "submission.submit.newSubmissionSingle"
-msgstr "Tagradh ùr"
-
-msgid "submission.submit.upload"
-msgstr "Luchdaich an tagradh suas"
-
-msgid "submission.submit.cancelSubmission"
-msgstr ""
-"’S urrainn dhut an tagradh seo a choileanadh uaireigin eile le bhith a’ "
-"taghadh “Tagraidhean gnìomhach” o dhachaigh an ùghdair."
-
-msgid "submission.submit.selectSeries"
-msgstr "Tagh sreath (roghainneil)"
-
-msgid "author.isVolumeEditor"
-msgstr "Comharraich an com-pàirtiche seo mar dheasaiche an iom-leabhair seo."
-
-msgid "author.submit.seriesRequired"
-msgstr "Tha feum air sreath dligheach."
-
-msgid "submission.submit.seriesPosition"
-msgstr "Ionad san t-sreath"
-
-msgid "submission.submit.seriesPosition.description"
-msgstr "Mar eisimpleir: Leabhar 2, Iom-leabhar 2"
-
-msgid "submission.submit.form.localeRequired"
-msgstr "Tagh cànan an tagraidh."
-
-msgid "submission.submit.privacyStatement"
-msgstr "An aithris prìobhaideachd"
-
-msgid "submission.submit.contributorRole"
-msgstr "Dreuchd neach-pàirteachaidh"
-
-msgid "submission.submit.form.authorRequired"
-msgstr "Tha feum air co-dhiù aon ùghdar."
-
-msgid "submission.submit.form.authorRequiredFields"
-msgstr "Tha ainm, sloinneadh is post-d gach ùghdar riatanach."
-
-msgid "submission.submit.form.titleRequired"
-msgstr "Cuir a-steach tiotal a’ mhonograf seo."
-
-msgid "submission.submit.form.abstractRequired"
-msgstr "Cuir a-steach geàrr-chunntas air a’ mhonograf agad."
-
-msgid "submission.submit.form.contributorRoleRequired"
-msgstr "Tagh dreuchd neach-pàirteachaidh."
-
-msgid "submission.submit.submissionFile"
-msgstr "Faidhle tagraidh"
-
-msgid "submission.submit.prepare"
-msgstr "Ullaich"
-
-msgid "submission.submit.metadata"
-msgstr "Meata-dàta"
-
-msgid "submission.submit.finishingUp"
-msgstr "Ga chrìochnachadh"
-
-msgid "submission.submit.confirmation"
-msgstr "Dearbhadh"
-
-msgid "submission.submit.nextSteps"
-msgstr "Na h-ath-cheuman"
-
-msgid "submission.submit.coverNote"
-msgstr "Nòta còmhdachaidh dhan deasaiche"
-
-msgid "submission.submit.generalInformation"
-msgstr "Fiosrachadh coitcheann"
-
-msgid "submission.submit.whatNext.description"
-msgstr ""
-"Chaidh fios mun tagradh agad a chur chun a’ chlòtha agus chaidh post-d a "
-"chur thugad a dhearbhas gun d’fhuair iad e. Turas a rinn an lèirmheasaiche "
-"lèirmheas air an tagradh, cuiridh iad fios thugad."
-
-msgid "submission.submit.checklistErrors"
-msgstr ""
-"Leugh na rudan air liosta-chromagan an tagraidh is cuir cromagan riutha. Tha "
-"uiread a nithean gun chromag fhathast: {$itemsRemaining}."
-
-msgid "submission.submit.placement"
-msgstr "Suidheachadh an tagraidh"
-
-msgid "submission.submit.userGroup"
-msgstr "Cuir e ’s mi nam dhreuchd a leanas…"
-
-msgid "submission.submit.userGroupDescription"
-msgstr ""
-"Ma tha thu a’ cur iom-leabhar deasaichte, bu chòir dhut dreuchd deasaiche "
-"iom-leabhair a thaghadh."
-
-msgid "submission.submit.noContext"
-msgstr "Cha b’ urrainn dhuinn clò an tagraidh seo a lorg."
-
-msgid "grid.chapters.title"
-msgstr "Caibideilean"
-
-msgid "grid.copyediting.deleteCopyeditorResponse"
-msgstr "Sguab às na luchdaich an grinn-deasaiche suas"
-
-msgid "submission.complete"
-msgstr "Air aontachadh"
-
-msgid "submission.incomplete"
-msgstr "A’ feitheamh ri aonta"
-
-msgid "submission.editCatalogEntry"
-msgstr "Innteart"
-
-msgid "submission.catalogEntry.new"
-msgstr "Cuir innteart ris"
-
-msgid "submission.catalogEntry.add"
-msgstr "Cuir na thagh thu ris a’ chatalog"
-
-msgid "submission.catalogEntry.select"
-msgstr "Tagh monografaichean airson an cur ris a’ chatalog"
-
-msgid "submission.catalogEntry.selectionMissing"
-msgstr ""
-"Feumaidh tu co-dhiù aon mhonograf a thaghadh airson a chur ris a’ chatalog."
-
-msgid "submission.catalogEntry.confirm"
-msgstr "Cuir an leabhar seo ris a’ chatalog phoblach"
-
-msgid "submission.catalogEntry.confirm.required"
-msgstr "Dearbh gu bheil an tagradh deiseil airson a chur dhan chatalog."
-
-msgid "submission.catalogEntry.isAvailable"
-msgstr ""
-"Tha am monograf seo deiseil airson a ghabhail a-staigh sa chatalog phoblach."
-
-msgid "submission.catalogEntry.viewSubmission"
-msgstr "Seall an tagradh"
-
-msgid "submission.catalogEntry.chapterPublicationDates"
-msgstr "Chinn-là foillseachaidh"
-
-msgid "submission.catalogEntry.disableChapterPublicationDates"
-msgstr "Cleachdaidh gach caibideil ceann-là foillseachadh a’ mhonograf."
-
-msgid "submission.catalogEntry.enableChapterPublicationDates"
-msgstr "Faodaidh ceann-là foillseachaidh fa leth a bhith aig gach caibideil."
-
-msgid "submission.catalogEntry.monographMetadata"
-msgstr "Monograf"
-
-msgid "submission.catalogEntry.publicationMetadata"
-msgstr "Fòrmat foillseachaidh"
-
-msgid "submission.event.metadataPublished"
-msgstr "Fhuair meata-dàta a’ mhonograf aonta airson foillseachadh."
-
-msgid "submission.event.metadataUnpublished"
-msgstr "Chan eil meata-dàta a’ mhonograf ga fhoillseachadh tuilleadh."
-
-msgid "submission.event.publicationFormatMadeAvailable"
-msgstr ""
-"Chaidh am fòrmat foillseachaidh “{$publicationFormatName}” a chur ri làimh."
-
-msgid "submission.event.publicationFormatMadeUnavailable"
-msgstr ""
-"Chan eil am fòrmat foillseachaidh “{$publicationFormatName}” ri làimh "
-"tuilleadh."
-
-msgid "submission.event.publicationFormatPublished"
-msgstr ""
-"Fhuair am fòrmat foillseachaidh “{$publicationFormatName}” aonta airson "
-"foillseachadh."
-
-msgid "submission.event.publicationFormatUnpublished"
-msgstr ""
-"Chan eil am fòrmat foillseachaidh “{$publicationFormatName}” ga "
-"fhoillseachadh tuilleadh."
-
-msgid "submission.event.catalogMetadataUpdated"
-msgstr "Chaidh meata-dàta a’ chatalog ùrachadh."
-
-msgid "submission.event.publicationMetadataUpdated"
-msgstr "Chaidh meata-dàta an fhòrmait fhoillseachaidh “{$formatName}” ùrachadh."
-
-msgid "submission.event.publicationFormatCreated"
-msgstr "Chaidh am fòrmat foillseachaidh “{$formatName}” a chruthachadh."
-
-msgid "submission.event.publicationFormatRemoved"
-msgstr "Chaidh am fòrmat foillseachaidh “{$formatName}” a thoirt air falbh."
-
-msgid "submission.submit.titleAndSummary"
-msgstr "An tiotal is geàrr-chunntas"
-
-msgid "editor.submission.decision.sendExternalReview"
-msgstr "Cuir airson lèirmheas air an taobh a-muigh"
-
-msgid "workflow.review.externalReview"
-msgstr "Lèirmheas air an taobh a-muigh"
-
-msgid "submission.upload.fileContents"
-msgstr "Co-phàirt tagraidh"
-
-msgid "submission.dependentFiles"
-msgstr "Faidhlichean eisimeileach"
-
-msgid "submission.metadataDescription"
-msgstr ""
-"Tha na riatanasan seo stèidhichte air seata meata-dàta Dublin Core, stannard "
-"eadar-nàiseanta airson tuairisgeul a thoirt air susbaint clòtha."
-
-msgid "section.any"
-msgstr "Sreath sam bith"
-
-msgid "submission.list.monographs"
-msgstr "Monografaichean"
-
-msgid "submission.list.countMonographs"
-msgstr "Monografaichean ({$count})"
-
-msgid "submission.list.itemsOfTotalMonographs"
-msgstr "{$count} dhe na monografaichean uile ({$total})"
-
-msgid "submission.list.orderFeatures"
-msgstr "Gleusan an òrduigh"
-
-msgid "submission.list.orderingFeatures"
-msgstr ""
-"Dèan slaodadh is leigeil às no thoir gnogag air na putanan suas is sìos "
-"airson òrdugh nan gleusan air an duilleag-dhachaigh atharrachadh."
-
-msgid "submission.list.orderingFeaturesSection"
-msgstr ""
-"Dèan slaodadh is leigeil às no thoir gnogag air na putanan suas is sìos "
-"airson òrdugh nan gleusan ann an {$title} atharrachadh."
-
-msgid "submission.list.saveFeatureOrder"
-msgstr "An t-òrdugh sàbhalaidh"
-
-msgid "catalog.browseTitles"
-msgstr "Tiotalan ({$numTitles})"
-
-msgid "publication.catalogEntry"
-msgstr "Innteart a’ chatalog"
-
-msgid "publication.catalogEntry.success"
-msgstr "Chaidh mion-fhiosrachadh an innteirt seo dhen chatalog ùrachadh."
-
-msgid "publication.invalidSeries"
-msgstr "Cha b’ urrainn dhuinn an sreath dhen fhoillseachadh seo a lorg."
-
-msgid "publication.required.issue"
-msgstr "Feumar am foillseachadh iomruineadh do dh’iris mus gabh fhoillseachadh."
-
-msgid "publication.publishedIn"
-msgstr "Air fhoillseachadh ann an {$issueName}."
-
-msgid "publication.publish.confirmation"
-msgstr ""
-"Chaidh gach riatanas foillseachaidh a choileanadh. A bheil thu cinnteach gu "
-"bheil thu airson an t-innteart seo dhen chatalog a dhèanamh poblach?"
-
-msgid "publication.scheduledIn"
-msgstr ""
-"Gu bhith fhoillseachadh ann an {$issueName}."
diff --git a/locale/gl/admin.po b/locale/gl/admin.po
new file mode 100644
index 00000000000..6c9a4a5c1bc
--- /dev/null
+++ b/locale/gl/admin.po
@@ -0,0 +1,174 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-02-17 03:04+0000\n"
+"Last-Translator: Anonymous \n"
+"Language-Team: Galician "
+"\n"
+"Language: gl\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 "admin.hostedContexts"
+msgstr "Editoriais aloxadas"
+
+msgid "admin.settings.appearance.success"
+msgstr "A configuración do aspecto do sitio actualizouse correctamente."
+
+msgid "admin.settings.config.success"
+msgstr "A configuración do sitio actualizouse correctamente."
+
+msgid "admin.settings.info.success"
+msgstr "A información do sitio actualizouse con éxito."
+
+msgid "admin.settings.redirect"
+msgstr "Redirección das editoriais"
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"As solicitudes da páxina principal redirixiranse a esta editorial. Isto pode "
+"ser útil se o sitio só aloxa unha editorial, por exemplo."
+
+msgid "admin.settings.noPressRedirect"
+msgstr "Non redirixir"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr ""
+"Este será o idioma predeterminado para o sitio e as editoriais aloxadas."
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Seleccione todas as configuracións locais que admite no sitio. As "
+"configuracións seleccionadas estarán dispoñibles para o seu uso en todas as "
+"editoriais aloxadas e tamén aparecerán no menú de selección de idioma que "
+"figura en cada páxina (que se pode anular nas páxinas específicas da "
+"editorial). Se non se seleccionan varias configuracións locais, o menú de "
+"alternancia de idioma non aparecerá e os axustes de idioma estendidos non "
+"estarán dispoñibles para as editoriais."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "* Os idiomas marcados poden estar incompletos."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"Seguro que queres desinstalar este idioma? Isto pode afectar as editoriais "
+"aloxadas que empregan actualmente o idioma."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Seleccione calquera idioma para instalar soporte neste sistema. Os idiomas "
+"deben instalarse antes de que poidan ser empregados polas editoriais "
+"aloxadas. Consulte a documentación OMP para obter información sobre como "
+"engadir soporte para novos idiomas."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"Seguro que queres desactivar este idioma? Isto pode afectar as editoriais "
+"aloxadas que o empregan actualmente."
+
+msgid "admin.systemVersion"
+msgstr "Versión OMP"
+
+msgid "admin.systemConfiguration"
+msgstr "Configuración OMP"
+
+msgid "admin.presses.pressSettings"
+msgstr "Axustes da editorial"
+
+msgid "admin.presses.noneCreated"
+msgstr "Non se creou ningunha editorial."
+
+msgid "admin.contexts.create"
+msgstr "Crear editorial"
+
+msgid "admin.contexts.form.titleRequired"
+msgstr "É necesario un título."
+
+msgid "admin.contexts.form.pathRequired"
+msgstr "É necesaria unha ruta."
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+"A ruta só pode incluír letras, números, guións e guións baixos. Debe comezar "
+"e rematar cunha letra ou número."
+
+msgid "admin.contexts.form.pathExists"
+msgstr "A ruta seleccionada xa está a ser usada por outra editorial."
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr "O idioma principal debe ser un dos idiomas compatibles coa editorial."
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} creouse correctamente."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} modificouse correctamente."
+
+msgid "admin.contexts.contextDescription"
+msgstr "Detalles da editorial"
+
+msgid "admin.presses.addPress"
+msgstr "Engadir editorial"
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"NOTA!
\n"
+" O sistema non puido sobrescribir o arquivo de configuración. Para "
+"aplicar os cambios da configuración debe abrir config.inc.php nun "
+"editor de texto axeitado e substituír o seu contido polo contido do campo de "
+"texto a continuación.
"
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+"Seleccione as editoriais aloxadas ás que se debería permitir enviar correos "
+"electrónicos masivos. Cando esta función estea habilitada, un xestor "
+"editorial poderá enviar un correo electrónico a todos os usuarios "
+"rexistrados na súa editorial.
O uso indebido desta función para "
+"enviar correos electrónicos non solicitados pode violar as leis anti-spam "
+"nalgunhas xurisdicións e os correos electrónicos poden quedar bloqueados "
+"como spam. Busque asesoramento técnico antes de habilitar esta función e "
+"considere a posibilidade de consultar cos xestores da editorial para "
+"asegurarse de que se usa adecuadamente.
Pódense activar máis "
+"restricións nesta función para cada editorial visitando o seu asistente de "
+"configuración na lista de Editoriais "
+"aloxadas."
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+"Un xestor editorial non poderá enviar correos electrónicos masivos a ningún "
+"dos roles seleccionados a continuación. Use esta configuración para limitar "
+"o abuso da función de notificación por correo electrónico. Por exemplo, pode "
+"ser máis seguro deshabilitar os correos electrónicos masivos para lectores, "
+"autores ou outros grandes grupos de usuarios que non consentiron recibir "
+"tales correos electrónicos.
A función de correo electrónico masivo "
+"pode deshabilitarse completamente para esta editorial en Administrador > Configuración do sitio."
+
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
+"A función de correo electrónico masivo desactivouse para esta editorial. "
+"Habilita esta función en Administrador > "
+"Configuración do sitio."
+
+msgid "admin.siteManagement.description"
+msgstr ""
+
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr ""
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr ""
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr ""
diff --git a/locale/gl/api.po b/locale/gl/api.po
new file mode 100644
index 00000000000..822e7b70262
--- /dev/null
+++ b/locale/gl/api.po
@@ -0,0 +1,45 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2021-02-16 19:22+0000\n"
+"Last-Translator: Real Academia Galega \n"
+"Language-Team: Galician \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 "api.submissions.400.submissionIdsRequired"
+msgstr ""
+"Debes proporcionar un ou máis identificadores de envío para engadilos ao "
+"catálogo."
+
+msgid "api.submissions.400.submissionsNotFound"
+msgstr "Non se puido atopar un ou máis dos envíos que especificaches."
+
+msgid "api.submissions.400.wrongContext"
+msgstr ""
+
+msgid "api.emails.403.disabled"
+msgstr ""
+"A notificación por correo electrónico non está habilitada para esta "
+"editorial."
+
+msgid "api.emailTemplates.403.notAllowedChangeContext"
+msgstr ""
+"Non tes permiso para mover este modelo de correo electrónico a outra "
+"editorial."
+
+msgid "api.publications.403.contextsDidNotMatch"
+msgstr "A publicación que solicitaches non forma parte desta editorial."
+
+msgid "api.publications.403.submissionsDidNotMatch"
+msgstr "A publicación que solicitaches non forma parte deste envío."
+
+msgid "api.submissions.403.cantChangeContext"
+msgstr "Non podes cambiar a editorial dun envío."
+
+msgid "api.submission.400.inactiveSection"
+msgstr ""
diff --git a/locale/gl/author.po b/locale/gl/author.po
new file mode 100644
index 00000000000..f20af002283
--- /dev/null
+++ b/locale/gl/author.po
@@ -0,0 +1,18 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2021-02-16 19:22+0000\n"
+"Last-Translator: Real Academia Galega \n"
+"Language-Team: Galician \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 "author.submit.notAccepting"
+msgstr "Esta editorial non acepta envíos neste momento."
+
+msgid "author.submit"
+msgstr ""
diff --git a/locale/gl/default.po b/locale/gl/default.po
new file mode 100644
index 00000000000..95ccce044ae
--- /dev/null
+++ b/locale/gl/default.po
@@ -0,0 +1,198 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2021-02-16 19:23+0000\n"
+"Last-Translator: Real Academia Galega \n"
+"Language-Team: Galician \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 "default.genres.appendix"
+msgstr "Apéndice"
+
+msgid "default.genres.bibliography"
+msgstr "Bibliografía"
+
+msgid "default.genres.manuscript"
+msgstr "Manuscrito do libro"
+
+msgid "default.genres.chapter"
+msgstr "Manuscrito de capítulo"
+
+msgid "default.genres.glossary"
+msgstr "Glosario"
+
+msgid "default.genres.index"
+msgstr "Índice"
+
+msgid "default.genres.preface"
+msgstr "Prefacio"
+
+msgid "default.genres.prospectus"
+msgstr "Folleto"
+
+msgid "default.genres.table"
+msgstr "Táboa"
+
+msgid "default.genres.figure"
+msgstr "Figura"
+
+msgid "default.genres.photo"
+msgstr "Foto"
+
+msgid "default.genres.illustration"
+msgstr "Ilustración"
+
+msgid "default.genres.other"
+msgstr "Outros"
+
+msgid "default.groups.name.manager"
+msgstr "Xefe/a editorial"
+
+msgid "default.groups.plural.manager"
+msgstr "Xefes/as editoriais"
+
+msgid "default.groups.abbrev.manager"
+msgstr "JE"
+
+msgid "default.groups.name.editor"
+msgstr "Editor/a"
+
+msgid "default.groups.plural.editor"
+msgstr "Editores/as"
+
+msgid "default.groups.abbrev.editor"
+msgstr "Ed"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Editor/a da serie"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Editores/as da serie"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "ES"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Autor/a de capítulo"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Autores/as de capítulo"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "AC"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Editor/a de volume"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Editores/as de volume"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "EV"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"Os nomes e enderezos de correo electrónico inseridos nesta editorial "
+"utilizaranse exclusivamente para os fins indicados e non estarán dispoñibles "
+"para ningún outro propósito nin para terceiras partes.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"Esta editorial fornece acceso aberto inmediato ao seu contido seguindo o "
+"principio de que facer que a investigación estea dispoñible gratuitamente "
+"para o público apoia un maior intercambio global de coñecemento."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"Animamos aos lectores a rexistrarse no servizo de notificación desta "
+"editorial. Use a ligazón Rexistrarse na parte superior da páxina de inicio. Este rexistro "
+"permitirá que o lector reciba por correo electrónico a táboa de contidos "
+"para cada nova monografía da editorial. Vexa a Declaración de "
+"privacidade que garante aos lectores que o seu nome e enderezo de correo "
+"electrónico non se usarán para outros fins."
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"Estás interesado/a en facer un envío a esta editorial? Recomendámoslle que "
+"revise a páxina Acerca da "
+"editorial para ver as políticas da editorial e as Directrices aos autores/"
+"as. Os autores/as precisan rexistrarse na editorial antes de facer un envío ou, se xa "
+"están rexistrados, poden simplemente iniciar sesión e comezar o proceso de 5 pasos."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Animamos aos bibliotecarios/as a que listen esta editorial nos seus "
+"catálogos de recursos electrónicos. Ademais, este sistema de publicación de "
+"código aberto é adecuado para bibliotecas que queiran aloxar editoriais para "
+"os membros que están implicados en procesos de edición e publicación "
+"(consulte Open Monograph Press )."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Revisor/a externo"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Revisores/as externos"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "RE"
+
+#~ msgid "default.contextSettings.emailSignature"
+#~ msgstr ""
+#~ "
\n"
+#~ "________________________________________________________________________
\n"
+#~ "{$ldelim}$contextName{$rdelim}"
+#~ "a>"
+
+#~ msgid "default.contextSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "O texto adhírese aos requirimentos estilísticos e bibliográficos "
+#~ "descritos nas Directrices aos autores"
+#~ "a>, que se atopan en Sobre a Editorial."
+
+#~ msgid "default.contextSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "O texto está formatado con interliñado simple, usa unha fonte de 12 "
+#~ "puntos, emprega cursiva, en lugar de subliñado (excepto con enderezos "
+#~ "URL), e todas as ilustracións, figuras e táboas colócanse dentro do texto "
+#~ "nos puntos apropiados en lugar de ao final."
+
+#~ msgid "default.contextSettings.checklist.addressesLinked"
+#~ msgstr "Cando estean dispoñibles proporcionáronse URL para as referencias."
+
+#~ msgid "default.contextSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "O arquivo de envío está en formato de ficheiro Microsoft Word, RTF ou "
+#~ "OpenDocument."
+
+#~ msgid "default.contextSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "O envío non se publicou previamente e non está noutra editora para a súa "
+#~ "consideración (ou se proporcionou unha explicación en Comentarios ao "
+#~ "editor)."
diff --git a/locale/gl/editor.po b/locale/gl/editor.po
new file mode 100644
index 00000000000..0b1c0585eeb
--- /dev/null
+++ b/locale/gl/editor.po
@@ -0,0 +1,209 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2021-02-17 09:58+0000\n"
+"Last-Translator: Real Academia Galega \n"
+"Language-Team: Galician \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 "editor.submissionArchive"
+msgstr "Arquivo de envíos"
+
+msgid "editor.monograph.cancelReview"
+msgstr "Cancelar solicitude"
+
+msgid "editor.monograph.clearReview"
+msgstr "Eliminar revisor/a"
+
+msgid "editor.monograph.enterRecommendation"
+msgstr "Inserir recomendación"
+
+msgid "editor.monograph.enterReviewerRecommendation"
+msgstr "Inserir a recomendación do revisor/a"
+
+msgid "editor.monograph.recommendation"
+msgstr "Recomendación"
+
+msgid "editor.monograph.selectReviewerInstructions"
+msgstr ""
+"Seleccione un revisor/a na lista e prema no botón \"Seleccionar revisor\" "
+"para continuar."
+
+msgid "editor.monograph.replaceReviewer"
+msgstr "Substituir revisor/a"
+
+msgid "editor.monograph.editorToEnter"
+msgstr "Recomendacións/comentarios do editor/a para o revisor/a"
+
+msgid "editor.monograph.uploadReviewForReviewer"
+msgstr "Cargar revisión"
+
+msgid "editor.monograph.peerReviewOptions"
+msgstr "Opcións de evaluación por pares"
+
+msgid "editor.monograph.selectProofreadingFiles"
+msgstr "Corrección de arquivos"
+
+msgid "editor.monograph.internalReview"
+msgstr "Iniciar revisión interna"
+
+msgid "editor.monograph.internalReviewDescription"
+msgstr ""
+"Seleccione abaixo os arquivos para envialos á fase de revisión interna."
+
+msgid "editor.monograph.externalReview"
+msgstr "Iniciar revisión externa"
+
+msgid "editor.monograph.final.selectFinalDraftFiles"
+msgstr "Seleccionar os arquivos do borrador final"
+
+msgid "editor.monograph.final.currentFiles"
+msgstr "Arquivos actuais do borrador final"
+
+msgid "editor.monograph.copyediting.currentFiles"
+msgstr "Arquivos actuais"
+
+msgid "editor.monograph.copyediting.personalMessageToUser"
+msgstr "Mensaxe ao usuario"
+
+msgid "editor.monograph.legend.submissionActions"
+msgstr "Accións de envío"
+
+msgid "editor.monograph.legend.submissionActionsDescription"
+msgstr "Opcións e accións xerais do envío."
+
+msgid "editor.monograph.legend.sectionActions"
+msgstr "Accións da sección"
+
+msgid "editor.monograph.legend.sectionActionsDescription"
+msgstr ""
+"Opcións específicas dunha sección determinada, por exemplo, cargar arquivos "
+"ou engadir usuarios."
+
+msgid "editor.monograph.legend.itemActions"
+msgstr "Accións de elemento"
+
+msgid "editor.monograph.legend.itemActionsDescription"
+msgstr "Accións e opcións específicas dun arquivo individual."
+
+msgid "editor.monograph.legend.catalogEntry"
+msgstr ""
+"Ver e xestionar a entrada do envío no catálogo, incluídos os metadatos e os "
+"formatos de publicación"
+
+msgid "editor.monograph.legend.bookInfo"
+msgstr "Ver e xestionar metadatos, notas, notificacións e historial do envío"
+
+msgid "editor.monograph.legend.participants"
+msgstr ""
+"Ver e xestionar os participantes deste envío: autores/as, editores/as, "
+"deseñadores/as e outros/as"
+
+msgid "editor.monograph.legend.add"
+msgstr "Cargar un arquivo á sección"
+
+msgid "editor.monograph.legend.add_user"
+msgstr "Engadir un usuario/a á sección"
+
+msgid "editor.monograph.legend.settings"
+msgstr ""
+"Ver e acceder á configuración do elemento, como información e opcións de "
+"eliminación"
+
+msgid "editor.monograph.legend.more_info"
+msgstr ""
+"Máis información: notas de arquivos, opcións de notificación e historial"
+
+msgid "editor.monograph.legend.notes_none"
+msgstr ""
+"Información do arquivo: notas, opcións de notificación e historial (aínda "
+"non se engadiron notas)"
+
+msgid "editor.monograph.legend.notes"
+msgstr ""
+"Información do arquivo: notas, opcións de notificación e historial (as notas "
+"están dispoñibles)"
+
+msgid "editor.monograph.legend.notes_new"
+msgstr ""
+"Información do arquivo: notas, opcións de notificación e historial (novas "
+"notas engadidas dende a última visita)"
+
+msgid "editor.monograph.legend.edit"
+msgstr "Editar elemento"
+
+msgid "editor.monograph.legend.delete"
+msgstr "Eliminar elemento"
+
+msgid "editor.monograph.legend.in_progress"
+msgstr "Acción en curso ou aínda non finalizada"
+
+msgid "editor.monograph.legend.complete"
+msgstr "Acción completa"
+
+msgid "editor.monograph.legend.uploaded"
+msgstr "Arquivo cargado polo rol no título da columna da grade"
+
+msgid "editor.submission.introduction"
+msgstr ""
+"No envío, o editor/a, despois de consultar os arquivos enviados, selecciona "
+"a acción axeitada (que inclúe a notificación ao autor): Enviar a revisión "
+"interna (implica a selección dos arquivos para a revisión interna); Enviar a "
+"revisión externa (implica a selección dos arquivos para revisión externa); "
+"Aceptar envío (implica a selección dos arquivos para a fase editorial); ou "
+"Rexeitar o envío (arquivado do envío)."
+
+msgid "editor.monograph.editorial.fairCopy"
+msgstr "Copia limpa"
+
+msgid "editor.monograph.proofs"
+msgstr "Probas"
+
+msgid "editor.monograph.production.approvalAndPublishing"
+msgstr "Aprobación e publicación"
+
+msgid "editor.monograph.production.approvalAndPublishingDescription"
+msgstr ""
+"Diferentes formatos de publicación, como a tapa dura, a tapa branda e a "
+"dixital, pódense cargar na sección Formatos de publicación. Podes usar a "
+"grade de formatos de publicación como lista de verificación do que aínda hai "
+"que facer para publicar un formato."
+
+msgid "editor.monograph.production.publicationFormatDescription"
+msgstr ""
+"Engade formatos de publicación (por exemplo, dixitais, en rústica) para os "
+"que o maquetador/a prepara probas de páxina para a corrección. As "
+"Probas deben ser verificadas e aprobadas e a entrada no "
+"Catálogo para o formato debe ser marcada como publicada na entrada "
+"do catálogo do libro, antes de que se poida facer Dispoñible un "
+"formato (é dicir, publicado)."
+
+msgid "editor.monograph.approvedProofs.edit"
+msgstr "Establecer as condicións para a descarga"
+
+msgid "editor.monograph.approvedProofs.edit.linkTitle"
+msgstr "Establecer condicións"
+
+msgid "editor.monograph.proof.addNote"
+msgstr "Engadir resposta"
+
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+"Calquera arquivo que xa se cargou a calquera fase do envío pódese engadir á "
+"lista de arquivos de proba marcando a caixa de verificación \"Engadir\" e "
+"facendo clic en \"Buscar\": listaranse todos os arquivos dispoñibles e "
+"pódense incluir."
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+"O identificador público \"{$publicIdentifier}\" xa existe para outro obxecto "
+"do mesmo tipo. Escolla identificadores únicos para os obxectos do mesmo tipo "
+"na súa editorial."
+
+msgid "editor.submissions.assignedTo"
+msgstr "Asignado ao editor/a"
diff --git a/locale/gl/emails.po b/locale/gl/emails.po
new file mode 100644
index 00000000000..1e379a32850
--- /dev/null
+++ b/locale/gl/emails.po
@@ -0,0 +1,366 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2021-03-09 16:08+0000\n"
+"Last-Translator: Real Academia Galega \n"
+"Language-Team: Galician \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 "emails.passwordResetConfirm.subject"
+msgstr "Confirmación de restablecemento do contrasinal"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"Recibimos unha solicitude para restablecer o seu contrasinal no sitio web de "
+"{$siteTitle}.
\n"
+"
\n"
+"Se non enviou esta solicitude, ignore este correo electrónico e o seu "
+"contrasinal non se cambiará. Se desexa restablecer o seu contrasinal, faga "
+"clic no seguinte URL.
\n"
+"
\n"
+"Restablecer o meu contrasinal: {$passwordResetUrl}
\n"
+"
\n"
+"{$siteContactName}"
+
+msgid "emails.passwordReset.subject"
+msgstr ""
+
+msgid "emails.passwordReset.body"
+msgstr ""
+
+msgid "emails.userRegister.subject"
+msgstr "Rexistro na editorial"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Rexistrouse como usuario/a con {$contextName}. Incluímos o seu nome de "
+"usuario e contrasinal neste correo electrónico, que son necesarios para todo "
+"o traballo con esta editorial a través do seu sitio web. En calquera "
+"momento, pode solicitar que se elimine da lista de usuarios contactando "
+"comigo.
\n"
+"
\n"
+"Nome de usuario: {$recipientUsername}
\n"
+"Contrasinal: {$password}
\n"
+"
\n"
+"Grazas,
\n"
+"{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr ""
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+
+msgid "emails.userValidateSite.subject"
+msgstr ""
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Rexistro como revisor/a en {$contextName}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"Á vista da túa experiencia, tomámonos a liberdade de rexistrar o teu nome na "
+"base de datos de revisores para {$contextName}. Isto non implica ningun "
+"compromiso pola súa parte, senón que simplemente nos permite achegarnos "
+"cunha presentación para eventualmente revisala. Ao ser convidado a revisar, "
+"terá a oportunidade de ver o título e resumo do traballo en cuestión e "
+"sempre estará en condicións de aceptar ou rexeitar a invitación. Podes "
+"solicitar en calquera momento que se elimine o teu nome desta lista de "
+"revisores.
\n"
+"
\n"
+"Proporcionámoslle un nome de usuario e un contrasinal, que se usan en todas "
+"as interaccións coa publicación a través do seu sitio web. Pode que desexe, "
+"por exemplo, actualizar o seu perfil, incluídos os seus intereses de "
+"revisión.
\n"
+"
\n"
+"Nome de usuario: {$recipientUsername}
\n"
+"Contrasinal: {$password}
\n"
+"
\n"
+"Grazas,
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.subject"
+msgstr "Tarefa editorial"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"O envío, " {$submissionTitle}, " a {$contextName} asignóuselle "
+"como Editor para levar a cabo o proceso editorial completo.
\n"
+"
\n"
+"URL do envío: {$submissionUrl}
\n"
+"Nome de usuario: {$recipientUsername}
\n"
+"
\n"
+"Grazas,"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Solicitude de revisión do manuscrito"
+
+#, fuzzy
+msgid "emails.reviewRequest.body"
+msgstr ""
+"Estimado {$recipientName},
\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Inicie sesión no sitio web da publicación antes do {$responseDueDate} para "
+"indicar se realizará ou non a revisión, así como para acceder ó envío e "
+"rexistrar a súa revisión e recomendación.
\n"
+"
\n"
+"Prazo de envío da revisión {$reviewDueDate}.
\n"
+"
\n"
+"URL do envío: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Nome de usuario: {$recipientUsername}
\n"
+"
\n"
+"Grazas por considerar esta solicitude.
\n"
+"
\n"
+"
\n"
+"Atentamente,
\n"
+"{$signature}
\n"
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr ""
+
+#, fuzzy
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr "Solicitude de revisión do manuscrito"
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+"Estimado {$recipientName},
\n"
+"Só un recordatorio da nosa solicitude de revisión do envío, ""
+"{$submissionTitle}" para {$contextName}. Esperabamos ter a túa resposta "
+"antes do {$responseDueDate}, e este correo electrónico xerouse e enviouse "
+"automaticamente co paso desa data.\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Inicie sesión no sitio web de publicación para indicar se realizará ou non a "
+"revisión, así como para acceder á presentación e rexistrar a súa revisión e "
+"recomendación.
\n"
+"
\n"
+"O prazo de envío da revisión é {$reviewDueDate}.
\n"
+"
\n"
+"URL do envío: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Nome de usuario: {$recipientUsername}
\n"
+"
\n"
+"Grazas por considerar esta solicitude.
\n"
+"
\n"
+"
\n"
+"Atentamente,
\n"
+"{$contextSignature}
\n"
+
+msgid "emails.reviewCancel.subject"
+msgstr "Solicitude de revisión cancelada"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Neste momento decidimos cancelar a nosa solicitude para que revises o envío, "
+""{$submissionTitle}" para {$contextName}. Desculpa as molestias "
+"que isto poida causarte e esperamos que poidamos chamarte para que poidas "
+"axudar noutro proceso de revisión no futuro.
\n"
+"
\n"
+"Se tes algunha dúbida, ponte en contacto con nos."
+
+#, fuzzy
+msgid "emails.reviewReinstate.body"
+msgstr "Solicitude de revisión restablecida"
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Queremos restablecer a solicitude para que revises o envío, ""
+"{$submissionTitle}" para {$contextName}. Agardamos que poidas axudar no "
+"proceso de revisión desta publicación.
\n"
+"
\n"
+"Se tes algunha dúbida, ponte en contacto con nos."
+
+msgid "emails.reviewDecline.subject"
+msgstr "Non dispoñibel para revisar"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Temo que neste momento non podo revisar o envío "{$submissionTitle}"
+"" para {$contextName}. Grazas por pensar en min e noutra ocasión non "
+"dubides en chamarme.
\n"
+"
\n"
+"{$senderName}"
+
+#, fuzzy
+msgid "emails.reviewRemind.subject"
+msgstr "Recordatorio de revisión do envío"
+
+#, fuzzy
+msgid "emails.reviewRemind.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Só un recordatorio da solicitude de revisión do envío ""
+"{$submissionTitle}" para {$contextName}. Agardabamos recibir esta "
+"revisión antes do {$reviewDueDate} e estaríamos encantados de recibila en "
+"canto poida preparala.
\n"
+"
\n"
+"Se non ten o seu nome de usuario e contrasinal para o sitio web, pode usar "
+"esta ligazón para restablecer o seu contrasinal (que logo se lle enviará por "
+"correo electrónico xunto co seu nome de usuario). {$passwordLostUrl}
\n"
+"
\n"
+"URL do envío: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Nome de usuario: {$recipientUsername}
\n"
+"
\n"
+"Confirme a súa capacidade para completar esta contribución ao traballo da "
+"editorial. Ficamos a espera do seu contacto..
\n"
+"
\n"
+"{$signature}"
+
+#, fuzzy
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Só un recordatorio da solicitude de revisión do envío ""
+"{$submissionTitle}" para {$contextName}. Agardabamos recibir esta "
+"revisión antes do {$reviewDueDate}, e este correo electrónico xerouse e "
+"enviouse automaticamente co paso desa data. Aínda estaremos encantados de "
+"recibilo en canto o teña preparado.
\n"
+"
\n"
+"Se non ten o seu nome de usuario e contrasinal para o sitio web, pode usar "
+"esta ligazón para restablecer o seu contrasinal (que logo se lle enviará por "
+"correo electrónico xunto co seu nome de usuario). {$passwordLostUrl}
\n"
+"
\n"
+"URL do envío: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Nome de usuario: {$recipientUsername}
\n"
+"
\n"
+"Confirme a súa capacidade para completar esta contribución ao traballo da "
+"editorial. Ficamos a espera do seu contacto.
\n"
+"
\n"
+"{$contextSignature}"
+
+msgid "emails.editorDecisionAccept.subject"
+msgstr ""
+
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr ""
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr ""
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+
+msgid "emails.layoutRequest.subject"
+msgstr ""
+
+#, fuzzy
+msgid "emails.layoutRequest.body"
+msgstr ""
+
+msgid "emails.layoutComplete.subject"
+msgstr ""
+
+#, fuzzy
+msgid "emails.layoutComplete.body"
+msgstr ""
+
+msgid "emails.indexRequest.subject"
+msgstr ""
+
+msgid "emails.indexRequest.body"
+msgstr ""
+
+msgid "emails.indexComplete.subject"
+msgstr ""
+
+msgid "emails.indexComplete.body"
+msgstr ""
+
+msgid "emails.emailLink.subject"
+msgstr ""
+
+msgid "emails.emailLink.body"
+msgstr ""
+
+msgid "emails.emailLink.description"
+msgstr ""
+
+msgid "emails.notifySubmission.subject"
+msgstr ""
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+
+msgid "emails.notifySubmission.description"
+msgstr ""
+
+msgid "emails.notifyFile.subject"
+msgstr ""
+
+msgid "emails.notifyFile.body"
+msgstr ""
+
+msgid "emails.notifyFile.description"
+msgstr ""
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr ""
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+
+msgid "emails.announcement.subject"
+msgstr ""
+
+msgid "emails.announcement.body"
+msgstr ""
+
+#~ msgid "emails.userValidate.description"
+#~ msgstr ""
+#~ "Este correo electrónico envíase a un usuario/a recentemente rexistrado/a "
+#~ "para darlle a benvida ao sistema e fornecerlle do seu nome de usuario e "
+#~ "contrasinal."
+
+#~ msgid "emails.userValidate.body"
+#~ msgstr ""
+#~ "{$recipientName}
\n"
+#~ "
\n"
+#~ "Creaches unha conta con {$contextName}. Antes de comezar a usala debes "
+#~ "validar a túa conta de correo electrónico. Para iso, só tes que seguir a "
+#~ "seguinte ligazón:
\n"
+#~ "
\n"
+#~ "{$activateUrl}
\n"
+#~ "
\n"
+#~ "Grazas,
\n"
+#~ "{$signature}"
+
+#~ msgid "emails.userValidate.subject"
+#~ msgstr "Validar a túa conta"
diff --git a/locale/gl/locale.po b/locale/gl/locale.po
new file mode 100644
index 00000000000..55cf06578b0
--- /dev/null
+++ b/locale/gl/locale.po
@@ -0,0 +1,1671 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2021-06-10 11:45+0000\n"
+"Last-Translator: Real Academia Galega \n"
+"Language-Team: Galician \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 "common.payments"
+msgstr "Pagamentos"
+
+msgid "monograph.audience"
+msgstr "Público"
+
+msgid "monograph.audience.success"
+msgstr "Actualizáronse os detalles do público."
+
+msgid "monograph.coverImage"
+msgstr "Imaxe da portada"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Cualificador de rango de público"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Rango de público (desde)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Rango de público (ata)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "Rango de público (exacto)"
+
+msgid "monograph.languages"
+msgstr "Idiomas (castelán, inglés, francés)"
+
+msgid "monograph.publicationFormats"
+msgstr "Formatos de publicación"
+
+msgid "monograph.publicationFormat"
+msgstr "Formato"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "Detalles sobre o formato de publicación dispoñible: {$format}"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Detalles sobre esta monografía"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Formatos:"
+
+msgid "monograph.type"
+msgstr "Tipo de envío"
+
+msgid "submission.pageProofs"
+msgstr "Galeradas"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"O maquetador/a carga aquí os arquivos listos para a produción que se "
+"prepararon para a súa publicación. Use + Asignar para designar os "
+"autores/as e outras persoas para corrixir as probas das galeragas, cos "
+"arquivos corrixidos cargados para a súa aprobación antes da publicación."
+
+msgid "monograph.task.addNote"
+msgstr "Engadir á tarefa"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Acceso aberto"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Imprimir (nome comercial)"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Número de páxinas"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Limiar"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Epílogo"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Composición do produto"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Detalle do produto (opcional)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Identificación do produto"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Prezo"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "É necesario un prezo."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Tipo de prezo"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Porcentaxe de desconto, se procede"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Dispoñibilidade do produto"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Indicador de devolución"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Información dixital"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Dimensións físicas"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "Tamaño do arquivo en Mbytes"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "Introduces o teu propio valor do tamaño do arquivo?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Altura"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Grosor"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Peso"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Ancho"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "País de fabricación"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Protección técnica dixital"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Rexión de distribución do produto"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Taxa impositiva"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Tipo de taxa"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+"Inclúa os metadatos deste formato de publicación na entrada do catálogo "
+"deste libro."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Faltan mercados e prezos."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Falta un código de identificación."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Faltan algúns campos de metadatos."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+"O formato de publicación que escolleu para esta monografía xa non existe. "
+"
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Abrir a lapela do formato de publicación."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Formato de publicación"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "É necesario un nome."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "É necesario un prezo válido."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Detalles do formato"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Formato físico"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "Este formato estará dispoñible nun sitio web aparte"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "URL do contido aloxado remotamente"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "Código ISBN con 13 díxitos, por exemplo 978-84-17807-84-2."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "Código ISBN con 10 díxitos, por exemplo 84-17807-84-2."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "É necesario un ID da monografía."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Debe escoller un formato de publicación."
+
+msgid "grid.catalogEntry.availability"
+msgstr "Dispoñibilidade"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Dispoñibel"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "Non dispoñibel"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Proba"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Aprobación do formato"
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"Aprobe os metadatos deste formato. Os metadatos pódense comprobar no "
+"panel Editar para cada formato.
"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr "Indicar que os metadatos deste formato non foron aprobados.
"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Dispoñibilidade do formato"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Este formato estará agora dispoñible para os lectores. Os "
+"arquivos descargables e calquera outra distribución aparecerán na entrada do "
+"catálogo do libro.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Este formato non estará dispoñible para os lectores. Os arquivos "
+"descargables ou outras distribucións xa non aparecerán na entrada do "
+"catálogo do libro.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "Entrada do catálogo non aprobada."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "O formato non está dispoñibel na entrada do catálogo."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Proba non aceptada."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Aprobado"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "Esperando aprobación"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "Requírese un tamaño de arquivo para formatos dixitais."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "É necesario un código de dispoñibilidade do produto."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "Debe elixirse un código de composición do produto."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Valor do código"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "Tipo de código ONIX"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "É necesario un código de identificación."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "É necesario un valor."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Dereitos de venda"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Valor do código"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Tipo de dereitos de venda"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "Resto do mundo?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Marque a opción para usar esta entrada de Dereitos de Venda como regra xeral "
+"para o formato. Non é preciso escoller países e rexións neste caso."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr ""
+"Xa hai un tipo de venda RdM (Resto do mundo) definido para este formato de "
+"publicación."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Países"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Rexións"
+
+msgid "grid.catalogEntry.included"
+msgstr "Incluidos"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Excluidos"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Territorios de mercado"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Territorio"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Datas de publicación"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Requírese un rol de representante."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "É necesario un formato de data."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Data"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Rol"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Formato de data"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"É necesaria unha data e o valor da data debe coincidir co formato de data "
+"escollido."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Representantes"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Tipo de representante"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Axentes"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Provedores"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Axente"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"Podes asignar un axente para representarte no territorio definido. Non é "
+"obrigatorio."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Provedor"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Elixir un rol:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Rol"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Nome"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Teléfono"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "Enderezo de correo electrónico"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Páxina web"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "ID do representante"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Tipo de ID do representante (recoméndase GLN)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"Podes deixar a seguinte sección baleira se forneces os teus propios servizos "
+"aos teus clientes."
+
+msgid "grid.action.addRepresentative"
+msgstr "Engadir representante"
+
+msgid "grid.action.editRepresentative"
+msgstr "Editar este representante"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Borrar este representante"
+
+msgid "spotlight"
+msgstr "Destaque"
+
+msgid "spotlight.spotlights"
+msgstr "Destaques"
+
+msgid "spotlight.noneExist"
+msgstr "Non existen destaques."
+
+msgid "spotlight.title.homePage"
+msgstr "En destaque"
+
+msgid "spotlight.author"
+msgstr "Autor, "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Elemento destacado"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Páxina de inicio"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Ubicación dos destaques"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Inserir título do destaque (autocompletar)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Título do destaque"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Libro"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "É necesario un elemento."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "É necesario un título do destaque."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Elixe unha ubicación para este destaque."
+
+msgid "grid.action.editSpotlight"
+msgstr "Editar este destaque"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Borrar este destaque"
+
+msgid "grid.action.addSpotlight"
+msgstr "Engadir destaque"
+
+msgid "manager.series.open"
+msgstr "Envíos abertos"
+
+msgid "manager.series.indexed"
+msgstr "Indexado"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Arquivos"
+
+msgid "grid.action.catalogEntry"
+msgstr "Ver o formulario de entrada do catálogo"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "O formato aparece no catálogo"
+
+msgid "grid.action.editFormat"
+msgstr "Editar este formato"
+
+msgid "grid.action.deleteFormat"
+msgstr "Borrar este formato"
+
+msgid "grid.action.addFormat"
+msgstr "Engadir formato de publicación"
+
+msgid "grid.action.approveProof"
+msgstr "Aceptar a proba de indexación e inclusión no catálogo"
+
+msgid "grid.action.pageProofApproved"
+msgstr "O ficheiro de galeradas está listo para a súa publicación"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Nova entrada no catálogo"
+
+msgid "grid.action.publicCatalog"
+msgstr "Ver este elemento no catalogo"
+
+msgid "grid.action.feature"
+msgstr "Alternar a función de visualización"
+
+msgid "grid.action.featureMonograph"
+msgstr "Destacar no carrusel do catálogo"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Marcar este envío como \"Novidade\""
+
+msgid "grid.action.manageCategories"
+msgstr "Configurar categorías para a editorial"
+
+msgid "grid.action.manageSeries"
+msgstr "Configurar categorías para esta editorial"
+
+msgid "grid.action.addCode"
+msgstr "Engadir código"
+
+msgid "grid.action.editCode"
+msgstr "Editar código"
+
+msgid "grid.action.deleteCode"
+msgstr "Borrar código"
+
+msgid "grid.action.addRights"
+msgstr "Engadir dereitos de venda"
+
+msgid "grid.action.editRights"
+msgstr "Editar dereitos"
+
+msgid "grid.action.deleteRights"
+msgstr "Borrar estes dereitos"
+
+msgid "grid.action.addMarket"
+msgstr "Engadir mercado"
+
+msgid "grid.action.editMarket"
+msgstr "Editar mercado"
+
+msgid "grid.action.deleteMarket"
+msgstr "Borrar este mercado"
+
+msgid "grid.action.addDate"
+msgstr "Engadir data de publicación"
+
+msgid "grid.action.editDate"
+msgstr "Editar data"
+
+msgid "grid.action.deleteDate"
+msgstr "Borrar esta data"
+
+msgid "grid.action.createContext"
+msgstr "Crear unha nova editorial"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Mostrar a lapela de formato de publicación"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Ir á páxina de avisos da editora"
+
+msgid "grid.action.submissionEmail"
+msgstr "Fai clic para ler este correo electrónico"
+
+msgid "grid.action.approveProofs"
+msgstr "Ver a grella das probas"
+
+msgid "grid.action.proofApproved"
+msgstr "O formato foi probado"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Aceptar/rexeitar este formato"
+
+msgid "grid.action.formatAvailable"
+msgstr "Activa e desactiva a dispoñibilidade deste formato"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Engadir arquivo á revisión"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Arquivos dispoñibeis"
+
+msgid "series.series"
+msgstr "Colección"
+
+msgid "series.featured.description"
+msgstr "Esta colección aparecerá no menú principal"
+
+msgid "series.path"
+msgstr "Ruta"
+
+msgid "catalog.manage"
+msgstr "Xestión do catálogo"
+
+msgid "catalog.manage.newReleases"
+msgstr "Novidades"
+
+msgid "catalog.manage.category"
+msgstr "Categorías"
+
+msgid "catalog.manage.series"
+msgstr "Colección"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "Insira un ISSN válido."
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "O ISSN en liña e o de impresión non debe ser o mesmo."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "ISSN en liña"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "ISSN de impresión"
+
+msgid "catalog.selectSeries"
+msgstr "Seleccionar colección"
+
+msgid "catalog.selectCategory"
+msgstr "Seleccionar categoría"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"A imaxe de portada dos libros seleccionados aparece cara á parte superior da "
+"páxina de inicio como un conxunto desprazable. Fai clic en \"Destacar\" e "
+"despois na estrela para engadir un libro ao carrusel; fai clic no signo de "
+"exclamación para destacalo como unha novidade e arrastre e solte para "
+"ordenalo."
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Fai clic en \"Destacar\" e logo na estrela para destacar un libro desta "
+"categoría; arrastra e solta para ordenar."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Fai clic en \"Destacar\" e despois na estrela para destacar un libro desta "
+"colección; arrastra e solta para ordenalo. As coleccións identifícanse cun "
+"editor/a e un título da colección, dentro dunha categoría ou de forma "
+"independente."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Carrusel"
+
+msgid "catalog.manage.newRelease"
+msgstr "Publicación"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Xestionar coleccións"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Xestionar categorías"
+
+msgid "catalog.manage.noMonographs"
+msgstr "Non hai monografías asignadas."
+
+msgid "catalog.manage.featured"
+msgstr "Destaque"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "Destaque na categoría"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "Destaque na colección"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "Monografía destacada."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "Monografía non destacada."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "Monografía marcada como novidade."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "Monografía desmarcada como novidade."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "Novidade"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "Novidade na categoría"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "Novidade na colección"
+
+msgid "catalog.manage.nonOrderable"
+msgstr "Esta monografía non se pode solicitar ata que sexa publicada."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Buscar por título ou autor"
+
+msgid "catalog.manage.isFeatured"
+msgstr "Esta monografía é un destaque. Facer que non o sexa."
+
+msgid "catalog.manage.isNotFeatured"
+msgstr "Esta monografía non é un destaque. Facer que o sexa."
+
+msgid "catalog.manage.isNewRelease"
+msgstr "Esta monografía é unha novidade. Facer que non o sexa."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr "Esta monografía non é unha novidade. Facer que o sexa."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr "Non se seleccionou ningún envío para engadir ao catálogo."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "Non se puido atopar un ou máis envíos."
+
+msgid "catalog.manage.findSubmissions"
+msgstr "Atopar monografías para engadilas ao catálogo"
+
+msgid "catalog.noTitles"
+msgstr "Aínda non se publicaron títulos."
+
+msgid "catalog.noTitlesNew"
+msgstr "Non hai novidades dispoñibles neste momento."
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
+"Non se atoparon títulos que coincidan coa túa procura \"{$searchQuery}\"."
+
+msgid "catalog.feature"
+msgstr "Destacar"
+
+msgid "catalog.featured"
+msgstr "Destaque"
+
+msgid "catalog.featuredBooks"
+msgstr "Libros destacados"
+
+msgid "catalog.foundTitleSearch"
+msgstr "Atopouse un título que coincide coa túa procura \"{$searchQuery}\"."
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+"Atopáronse {$number} títulos que coinciden coa túa procura "
+"\"{$searchQuery}\"."
+
+msgid "catalog.category.heading"
+msgstr "Todos os libros"
+
+msgid "catalog.newReleases"
+msgstr "Novidades"
+
+msgid "catalog.dateAdded"
+msgstr "Engadido"
+
+msgid "catalog.publicationInfo"
+msgstr "Información da publicación"
+
+msgid "catalog.published"
+msgstr "Publicado"
+
+msgid "catalog.forthcoming"
+msgstr "Próximamente"
+
+msgid "catalog.categories"
+msgstr "Categorías"
+
+msgid "catalog.parentCategory"
+msgstr "Categoría pai"
+
+msgid "catalog.category.subcategories"
+msgstr "Subcategorías"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "Acerca de {$roleName}"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"Ten en conta que: para mercar artigos, primeiro terás que iniciar sesión. Se "
+"selecciona un elemento para mercar, dirixirase á páxina de inicio de sesión. "
+"Calquera elemento marcado cunha icona de acceso aberto pódese descargar de "
+"balde sen iniciar sesión."
+
+msgid "catalog.sortBy"
+msgstr "Orden das monografías"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "Escolle como ordenar os libros destas coleccións."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr "Escolle como ordenar os libros desta categoría."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "Escolle como ordenar os libros no catálogo."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "Posición das coleccións (menores primeiro)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "Posición das coleccións (maiores primeiro)"
+
+msgid "catalog.viewableFile.title"
+msgstr "{$type} vista do arquivo {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "Volver para ver detalles sobre {$monographTitle}"
+
+msgid "submission.search"
+msgstr "Procura de libros"
+
+msgid "common.publication"
+msgstr "Monografía"
+
+msgid "common.publications"
+msgstr "Monografías"
+
+msgid "common.prefix"
+msgstr "Prefixo"
+
+msgid "common.preview"
+msgstr "Previsualizar"
+
+msgid "common.feature"
+msgstr "Destacar"
+
+msgid "common.searchCatalog"
+msgstr "Buscar no catálogo"
+
+msgid "common.moreInfo"
+msgstr "Máis información"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Encha o formulario completamente."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Seleccione unha opción válida da lista."
+
+msgid "common.listbuilder.itemExists"
+msgstr "Non podes engadir o mesmo elemento dúas veces."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Cabeceira da páxina de inicio"
+
+msgid "navigation.catalog"
+msgstr "Catálogo"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Política de conflito de intereses"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "Todas as monografías"
+
+msgid "navigation.catalog.manage"
+msgstr "Administrar"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Administración"
+
+msgid "navigation.catalog.administration"
+msgstr "Administración do catálogo"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Categorías"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Coleccións"
+
+msgid "navigation.infoForAuthors"
+msgstr "Para os autores/as"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Para os bibliotecarios/as"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Información para autores/as"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Información para bibliotecarios/as"
+
+msgid "navigation.newReleases"
+msgstr "Novidades"
+
+msgid "navigation.published"
+msgstr "Publicado"
+
+msgid "navigation.wizard"
+msgstr "Asistente"
+
+msgid "navigation.linksAndMedia"
+msgstr "Ligazóns e Redes Sociais"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Ligazón ao seu catálogo."
+
+msgid "navigation.skip.spotlights"
+msgstr "Ir aos destaques"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Coleccións"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Ligazón as coleccións."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Categoría"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Ligazón a unha categoría."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "Novidades"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Ligazón ás Novidades."
+
+msgid "context.contexts"
+msgstr "Editoriais"
+
+msgid "context.context"
+msgstr "Editorial"
+
+msgid "context.current"
+msgstr "Editorial actual:"
+
+msgid "context.select"
+msgstr "Cambiar a outra editorial:"
+
+msgid "user.authorization.representationNotFound"
+msgstr "Non se puido atopar o formato de publicación solicitado."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "Inclúe usuarios sen roles nesta editorial."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Enviar unha proposta"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr ""
+"Enviar unha monografía: o rexistro de autores/as está desactivado "
+"actualmente."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Rexistrarse como revisor"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+"Rexistrarse como revisor/a: o rexistro de revisores/as está desactivado "
+"actualmente."
+
+msgid "user.reviewerPrompt"
+msgstr "Estarías disposto/a a revisar os envíos a esta editorial?"
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Sí, solicitar o rol de {$userGroup}."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"Si, gustaríame que me contactasen con solicitudes de revisión de envíos a "
+"esta editorial."
+
+msgid "user.register.contextsPrompt"
+msgstr "Con que editorial deste sitio desexa rexistrarse?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Solicita os seguintes roles."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"Se solicitaches ser revisor dalgunha editorial, introduce os teus temas de "
+"interés."
+
+msgid "user.role.manager"
+msgstr "Xestor editorial"
+
+msgid "user.role.pressEditor"
+msgstr "Editor"
+
+msgid "user.role.subEditor"
+msgstr "Editor/a da colección"
+
+msgid "user.role.copyeditor"
+msgstr "Corrector/a"
+
+msgid "user.role.proofreader"
+msgstr "Corrector/a de probas"
+
+msgid "user.role.productionEditor"
+msgstr "Editor/a de produción"
+
+msgid "user.role.managers"
+msgstr "Xestores/as editoriais"
+
+msgid "user.role.subEditors"
+msgstr "Editores/as da colección"
+
+msgid "user.role.editors"
+msgstr "Editores/as"
+
+msgid "user.role.copyeditors"
+msgstr "Correctores/as"
+
+msgid "user.role.proofreaders"
+msgstr "Correctores/as de probas"
+
+msgid "user.role.productionEditors"
+msgstr "Editores/as de produción"
+
+msgid "user.register.selectContext"
+msgstr "Seleccione unha editorial na que rexistrarse:"
+
+msgid "user.register.noContexts"
+msgstr "Non hai ningunha editorial coa que poida rexistrarse neste sitio."
+
+msgid "user.register.privacyStatement"
+msgstr "Declaración de privacidade"
+
+msgid "user.register.registrationDisabled"
+msgstr "Esta editorial actualmente non acepta rexistros de usuarios."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "O contrasinal que introduciches non é o suficientemente longo."
+
+msgid "user.register.readerDescription"
+msgstr "Notificado por correo electrónico na publicación dunha monografía."
+
+msgid "user.register.authorDescription"
+msgstr "Permitido o envío de elementos á editorial."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "Dispoñibel para realizar revisións por pares dos envíos á editorial."
+
+msgid "user.register.reviewerDescription"
+msgstr "Dispoñibel para realizar revisións por pares dos envíos á páxina."
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+"Identificar os intereses de revisión (áreas sustantivas e métodos de "
+"investigación):"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Debe seleccionar polo menos un rol"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"Si, estou de acordo en que os meus datos sexan recollidos e almacenados "
+"segundo a declaración de "
+"privacidade desta editorial."
+
+msgid "site.noPresses"
+msgstr "Non hai editoriais dispoñibeis."
+
+msgid "site.pressView"
+msgstr "Ver a página web da editorial"
+
+msgid "about.pressContact"
+msgstr "Contacto da editorial"
+
+msgid "about.aboutContext"
+msgstr "Sobre a editorial"
+
+msgid "about.editorialTeam"
+msgstr "Equipo editorial"
+
+msgid "about.editorialPolicies"
+msgstr "Políticas editoriais"
+
+msgid "about.focusAndScope"
+msgstr "Orientación e ámbito da actividade"
+
+msgid "about.seriesPolicies"
+msgstr "Políticas de categorías e coleccións"
+
+msgid "about.submissions"
+msgstr "Propostas"
+
+msgid "about.onlineSubmissions"
+msgstr "Envíos en liña"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Inicio de sesión"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Rexistrar"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr "{$login} ou {$register} para facer un envío."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} o {$viewSubmissions}."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Facer un novo envío"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "Ver os seus envíos pendentes"
+
+msgid "about.authorGuidelines"
+msgstr "Directrices para autores/as"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Lista de verificación de envíos"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"Como parte do proceso de envío, os autores están obrigados a comprobar o "
+"cumprimento do seu envío con todos os seguintes elementos, e os envíos que "
+"non cumpran estas directrices poden devolverse aos autores."
+
+msgid "about.copyrightNotice"
+msgstr "Aviso de dereitos de autor/a"
+
+msgid "about.privacyStatement"
+msgstr "Declaración de privacidade"
+
+msgid "about.reviewPolicy"
+msgstr "Proceso de revisión por pares"
+
+msgid "about.publicationFrequency"
+msgstr "Periodicidade da publicación"
+
+msgid "about.openAccessPolicy"
+msgstr "Política de acceso aberto"
+
+msgid "about.pressSponsorship"
+msgstr "Patrocinio da editorial"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr ""
+"Máis información sobre o sistema de publicación, a plataforma e o fluxo de "
+"traballo de OMP/PKP."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "Proceso editorial e de publicación de OMP"
+
+msgid "about.aboutSoftware"
+msgstr "Acerca de Open Monograph Press"
+
+msgid "about.aboutOMPPress"
+msgstr ""
+"Esta editorial usa OMP {$ompVersion}, que é un software de xestión e "
+"publicación de código aberto, soportado e distribuído libremente polo Public "
+"Knowledge Project baixo a licenza pública xeral GNU. Visita o sitio web de "
+"PKP para obter máis información sobre o "
+"software. póñase en contacto directamente coa "
+"editorial para preguntas sobre a editorial ou os envíos á mesma."
+
+msgid "about.aboutOMPSite"
+msgstr ""
+"Este sitio usa OMP {$ompVersion}, que é un software de xestión e publicación "
+"de código aberto, soportado e distribuído polo Public Knowledge Project "
+"baixo a Licenza pública xeral de GNU. Visita o sitio web de PKP para obter máis información sobre o software."
+
+msgid "help.searchReturnResults"
+msgstr "Volver a Procura de resultados"
+
+msgid "help.goToEditPage"
+msgstr "Abre unha nova páxina para editar esta información"
+
+msgid "installer.appInstallation"
+msgstr "Instalación de OMP"
+
+msgid "installer.ompUpgrade"
+msgstr "Actualización de OMP"
+
+msgid "installer.installApplication"
+msgstr "Instalar Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+"Se está a actualizar unha instalación existente de OMP, faga clic aquí para continuar."
+
+msgid "installer.installationInstructions"
+msgstr ""
+"\n"
+"Grazas por descargar Open Monograph Press {$version} do "
+"Public Knowledge Project. Antes de continuar, lea o arquivo README incluído neste software. Para obter "
+"máis información sobre o Public Knowledge Project e os seus proxectos, "
+"visite o sitio web de PKP"
+"a>. Se tes informes de erros ou consultas de asistencia técnica sobre Open "
+"Monograph Press, consulta o foro de asistencia ou visita o sistema de notificación de erros. Aínda "
+"que o foro de asistencia é o método de contacto preferido, tamén podes "
+"enviar un correo electrónico ao equipo en pkp.contact@gmail.com.
\n"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Antes da instalación"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. Os seguintes arquivos e cartafoles (e o seu contido) deben ser "
+"editables:
\n"
+"\n"
+"\t- config.inc.php é editable (opcional): {$writable_config}"
+"li>\n"
+"\t
- public/ é editable: {$writable_public}
\n"
+"\t- cache/ é editable: {$writable_cache}
\n"
+"\t- cache/t_cache/ é editable: {$writable_templates_cache}
\n"
+"\t- cache/t_compile/ é editable: {$writable_templates_compile}"
+"li>\n"
+"\t
- cache/_db é editable: {$writable_db_cache}
\n"
+"
\n"
+"\n"
+"2. Débese crear un cartafol para almacenar os archivos cargados e debe "
+"ser editable (consulte \"Configuracións de arquivo\" a continuación).
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"Versión OMP {$version}
\n"
+"\n"
+"Grazas por descargar Open Monograph Press do Public Knowledge "
+"Project. Antes de continuar, lea os README e ACTUALIZAR incluídos "
+"con este software. Para obter máis información sobre o PKP e os seus "
+"proxectos visite o sitio "
+"web de PKP. Se tes informes de erros ou consultas de asistencia técnica "
+"sobre OMP, consulta o foro de asistencia ou visita < a href = \"http://pkp.sfu.ca/bugzilla/"
+"\" target = \"_blank\">sistema de notificación de erros
. Aínda que o "
+"foro de asistencia é o método de contacto preferido, tamén podes enviar un "
+"correo electrónico ao equipo en pkp."
+"contact@gmail.com.\n"
+"É moi recomendable facer unha copia de seguridade da túa "
+"base de datos, cartafol de arquivos e o cartafol de instalación de OMP antes "
+"de continuar.
\n"
+"Se estás executando o Modo seguro de PHP, asegúrate de que a directiva "
+"max_execution_time no arquivo de configuración php.ini ten un límite alto. "
+"Se se alcanza este ou calquera outro límite de tempo (por exemplo, a "
+"directiva \"Tempo de espera\" de Apache) e se interrompe o proceso de "
+"actualización, requirirase dunha intervención manual.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"Para obter soporte completo de Unicode (UTF-8), seleccione UTF-8 para todos "
+"os axustes do conxunto de caracteres. Teña en conta que este soporte require "
+"actualmente un servidor de base de datos MySQL> = 4.1.1 ou PostgreSQL> = "
+"9.1.5. Ten en conta tamén que o soporte completo de Unicode require a "
+"biblioteca mbstring (habilitada por defecto nas instalacións máis recentes de "
+"PHP). Pode que teña problemas ao usar conxuntos de caracteres estendidos se "
+"o servidor non cumpre estes requisitos.\n"
+"
\n"
+"O seu servidor admite actualmente mbstring: {$supportsMBString}"
+"strong>"
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"O seu servidor actualmente permite a carga de arquivos: "
+"{$allowFileUploads}"
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"Actualmente o seu servidor permite un tamaño máximo de arquivos para cargar "
+"de: {$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"A lingua principal que se empregará neste sistema. Consulte a documentación "
+"do OMP se está interesado no soporte para idiomas non mencionados aquí."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Seleccione calquera idioma adicional que admita neste sistema. Estes idiomas "
+"estarán dispoñibles para o seu uso nas editoriais aloxadas no sitio. Tamén "
+"se poden instalar idiomas adicionais en calquera momento desde a interface "
+"de administración do sitio. Os idiomas marcados con * poden estar "
+"incompletos."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Introduza a ruta completa a un cartafol existente onde se gardarán os "
+"arquivos cargados. Este cartafol non debería ser accesible directamente "
+"dende a web. Asegúrese de que este cartafol existe e se pode "
+"escribir nel antes da instalación. Os nomes das rutas de Windows "
+"deben empregar barras directas, por exemplo. \"C:/mypress/files\"."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"OMP require acceso a unha base de datos SQL para almacenar os seus datos. "
+"Vexa os requisitos do sistema para obter unha lista de bases de datos "
+"compatibles. Nos campos de abaixo, indique a configuración que se usará para "
+"conectarse á base de datos."
+
+msgid "installer.upgradeApplication"
+msgstr "Actualizar Open Monograph Press"
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"IMPORTANTE!
\n"
+"O instalador non puido sobrescribir automaticamente o arquivo de "
+"configuración. Antes de intentar usar o sistema, abra config.inc.php"
+"tt> nun editor de texto plano e substitúa o seu contido polo contido do "
+"campo de texto seguinte.
"
+
+#, fuzzy
+msgid "installer.installationComplete"
+msgstr ""
+"A instalación de OMP completouse correctamente.
\n"
+"Para comezar a usar o sistema inicia sesión "
+"co nome de usuario e o contrasinal introducidos na páxina anterior.
\n"
+"Se desexas recibir novas e actualizacións rexístrate en http://pkp.sfu .ca/omp/"
+"register. Se tes preguntas ou comentarios, visita o foro de asistencia.
"
+
+#, fuzzy
+msgid "installer.upgradeComplete"
+msgstr ""
+"A actualización de OMP á versión {$version} completouse correctamente."
+"p>\n"
+"
Non esquezas establecer a configuración \"instalada\" no ficheiro de "
+"configuración config.inc.php de novo en Activado.
\n"
+"Se aínda non te rexistraches e desexas recibir novas e actualizacións, "
+"rexístrate en http://pkp.sfu.ca/omp/register. Se tes preguntas ou "
+"comentarios, visita o foro de asistencia.
"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"A data límite da rolda {$round} de revisión do envío {$submissionId} por "
+"{$reviewerName} estableceuse en {$dueDate}."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"{$reviewerName} rexeitou a revisión da rolda {$round} para o envío "
+"{$submissionId}."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"{$reviewerName} aceptou a revisión da rolda {$round} para o envío "
+"{$submissionId}."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"{$editorName} marcou a rolda {$round} de revisión do envío {$submissionId} "
+"como non considerada."
+
+msgid "log.editor.decision"
+msgstr ""
+"{$editorName} rexistrou unha decisión ({$decision}) para a monografía "
+"{$submissionId}."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"{$editorName} rexistrou unha recomendación ({$decision}) para a monografía "
+"{$submissionId}."
+
+msgid "log.editor.archived"
+msgstr "Arquivouse o envío {$submissionId}."
+
+msgid "log.editor.restored"
+msgstr "O envío {$submissionId} restaurouse á cola."
+
+msgid "log.editor.editorAssigned"
+msgstr "{$editorName} asignouse como editor/a ao envío {$submissionId}."
+
+msgid "log.proofread.assign"
+msgstr ""
+"{$assignerName} asignou a {$proofreaderName} á revisión do envío "
+"{$submissionId}."
+
+msgid "log.proofread.complete"
+msgstr "{$proofreaderName} enviou {$submissionId} para a súa programación."
+
+msgid "log.imported"
+msgstr "{$userName} importou a monografía {$submissionId}."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Engadido Código de Identifiación."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Código de Identificación editado."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Código de identificación eliminado."
+
+msgid "notification.addedPublicationDate"
+msgstr "Engadida data de publicación."
+
+msgid "notification.editedPublicationDate"
+msgstr "Data de publicación editada."
+
+msgid "notification.removedPublicationDate"
+msgstr "Eliminada data de publicación."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Engadido formato de publicación."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Formato de publicación editado."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Eliminado formato de publicación."
+
+msgid "notification.addedSalesRights"
+msgstr "Engadidos dereitos de venda."
+
+msgid "notification.editedSalesRights"
+msgstr "Dereitos de venda editados."
+
+msgid "notification.removedSalesRights"
+msgstr "Eliminados dereitos de venda."
+
+msgid "notification.addedRepresentative"
+msgstr "Engadido representante."
+
+msgid "notification.editedRepresentative"
+msgstr "Representante editado."
+
+msgid "notification.removedRepresentative"
+msgstr "Representante eliminado."
+
+msgid "notification.addedMarket"
+msgstr "Engadido mercado."
+
+msgid "notification.editedMarket"
+msgstr "Mercado editado."
+
+msgid "notification.removedMarket"
+msgstr "Mercado eliminado."
+
+msgid "notification.addedSpotlight"
+msgstr "Engadido destaque."
+
+msgid "notification.editedSpotlight"
+msgstr "Destaque editado."
+
+msgid "notification.removedSpotlight"
+msgstr "Destaque eliminado."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Catálogo de metadatos gardado."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Gardáronse os metadatos do formato de publicación."
+
+msgid "notification.proofsApproved"
+msgstr "Galeradas aprobadas."
+
+msgid "notification.removedSubmission"
+msgstr "Proposta eliminada."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Enviouse unha nova monografía, \"{$title}\"."
+
+msgid "notification.type.editing"
+msgstr "Editar eventos"
+
+msgid "notification.type.reviewing"
+msgstr "Revisando eventos"
+
+msgid "notification.type.site"
+msgstr "Eventos do sitio Web"
+
+msgid "notification.type.submissions"
+msgstr "Eventos do envío"
+
+msgid "notification.type.userComment"
+msgstr "Un lector/a fixo un comentario sobre \"{$title}\"."
+
+msgid "notification.type.public"
+msgstr "Anuncios públicos"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr "Enviouse unha nova monografía á que hai que asignar un editor/a."
+
+msgid "notification.type.copyeditorRequest"
+msgstr "Pedíronche que revises as correccións de \"{$file}\"."
+
+msgid "notification.type.layouteditorRequest"
+msgstr "Pedíronche que revises os deseños de \"{$title}\"."
+
+msgid "notification.type.indexRequest"
+msgstr "Pedíronche que crees un índice para \"{$title}\"."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Comezou o proceso de revisión interna."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Este envío está pendente de aprobación na ferramenta de Entrada de catálogo "
+"antes de que apareza no catálogo público."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "Agardando a aprobación."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"A monografía non figurará no catálogo ata que non se publique. Para engadir "
+"este libro ao catálogo, fai clic na lapela Publicación."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "Non se configurou ningunha forma de pagamento."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"Para poder definir a configuración do comercio electrónico é necesario "
+"configurar unha forma de pagamento."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Xestión do catálogo"
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+"A monografía foi aprobada. Visita o catálogo para xestionar os detalles "
+"usando as ligazóns que aparecen enriba."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+"Rexeitóuselle o acceso porque non parece ser un revisor válido para esta "
+"monografía."
+
+msgid "user.authorization.monographAuthor"
+msgstr "Rexeitóuselle o acceso porque non parece ser o autor desta monografía."
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"Denegóuselle o acceso porque non parece ser un revisor asignado a esta "
+"monografía."
+
+msgid "user.authorization.monographFile"
+msgstr "Rexeitóuselle o acceso ao arquivo da monografía especificado."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "Monografía non válida ou non se solicitou ningunha!"
+
+#, fuzzy
+msgid "user.authorization.noContext"
+msgstr "Non hai editorial no contexto!"
+
+msgid "user.authorization.seriesAssignment"
+msgstr ""
+"Estás intentando acceder a unha monografía que non forma parte da túa "
+"colección."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr "Acceso denegado! Non foi asignado a esta etapa do fluxo de traballo."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"Acceso denegado! O grupo de usuarios no que está actualmente non foi "
+"asignado a esta etapa do fluxo de traballo. Comprobe a configuración da "
+"editorial."
+
+msgid "payment.directSales"
+msgstr "Descargar do sitio web de editorial"
+
+msgid "payment.directSales.price"
+msgstr "Prezo"
+
+msgid "payment.directSales.availability"
+msgstr "Dispoñibilidade"
+
+msgid "payment.directSales.catalog"
+msgstr "Catálogo"
+
+msgid "payment.directSales.approved"
+msgstr "Aprobado"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Prezo ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr "Os prezos deben ser só numéricos. Non inclúa símbolos de moeda."
+
+msgid "payment.directSales.directSales"
+msgstr "Vendas directas"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Non dispoñibel"
+
+msgid "payment.directSales.notSet"
+msgstr "Non configurado"
+
+msgid "payment.directSales.openAccess"
+msgstr "Acceso aberto"
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"Os formatos do arquivo pódense facer dispoñibles para a descarga desde o "
+"sitio web da editorial mediante acceso aberto sen custo para os lectores ou "
+"vendas directas (mediante un proceso de pagamentos en liña, tal e como está "
+"configurado en Distribución). Para este arquivo indique a base de acceso."
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Precísase un prezo numérico válido."
+
+msgid "payment.directSales.purchase"
+msgstr "Compra {$format} ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Descargar {$format}"
+
+msgid "payment.directSales.monograph.name"
+msgstr "Comprar monografía ou descargar capítulo"
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+"Esta transacción é para a compra dunha descarga directa dunha única "
+"monografía ou dun capítulo dunha monografía."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+"Volveuse cargar o arquivo {$filename} de mapeado da axuda XML na procura de "
+"{$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Libro"
+
+msgid "submission.pdf.download"
+msgstr "Descargar o arquivo PDF"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Rexistrar noutras editoriais"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "Ocultar outras editoriais"
+
+msgid "submission.round"
+msgstr "Rolda {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "Especificouse un envío publicado non válido."
+
+msgid "catalog.coverImageTitle"
+msgstr "Imaxe da capa"
+
+msgid "grid.catalogEntry.chapters"
+msgstr ""
+
+msgid "search.results.orderBy.article"
+msgstr ""
+
+msgid "search.results.orderBy.author"
+msgstr ""
+
+msgid "search.results.orderBy.date"
+msgstr ""
+
+msgid "search.results.orderBy.monograph"
+msgstr ""
+
+msgid "search.results.orderBy.press"
+msgstr ""
+
+msgid "search.results.orderBy.popularityAll"
+msgstr ""
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr ""
+
+msgid "search.results.orderBy.relevance"
+msgstr ""
+
+msgid "search.results.orderDir.asc"
+msgstr ""
+
+msgid "search.results.orderDir.desc"
+msgstr ""
+
+msgid "section.section"
+msgstr "Colección"
diff --git a/locale/gl/manager.po b/locale/gl/manager.po
new file mode 100644
index 00000000000..de9ee0656ea
--- /dev/null
+++ b/locale/gl/manager.po
@@ -0,0 +1,1675 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2021-06-19 08:03+0000\n"
+"Last-Translator: Real Academia Galega \n"
+"Language-Team: Galician \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 "manager.language.confirmDefaultSettingsOverwrite"
+msgstr ""
+"Isto substituirá calquera configuración específica de esta editorial para "
+"este idioma"
+
+msgid "manager.languages.noneAvailable"
+msgstr ""
+"Non hai idiomas adicionais dispoñibles. Póñase en contacto co administrador/"
+"a do sitio se desexa empregar idiomas adicionais con esta editorial."
+
+msgid "manager.languages.primaryLocaleInstructions"
+msgstr "Este será o idioma predeterminado para o sitio da editorial."
+
+msgid "manager.series.form.mustAllowPermission"
+msgstr ""
+"Asegúrese de que está marcada polo menos unha caixa de verificación para "
+"cada tarefa do Editor de Coleccións."
+
+msgid "manager.series.form.reviewFormId"
+msgstr "Asegúrese de que escolleu un formulario de revisión válido."
+
+msgid "manager.series.submissionIndexing"
+msgstr "Non se incluirá na indexación da editorial"
+
+msgid "manager.series.editorRestriction"
+msgstr "Só os Editores/as e os Editores/as de Coleccións poden enviar artigos."
+
+msgid "manager.series.confirmDelete"
+msgstr "Seguro que queres eliminar permanentemente esta colección?"
+
+msgid "manager.series.indexed"
+msgstr "Indexado"
+
+msgid "manager.series.open"
+msgstr "Envíos abertos"
+
+msgid "manager.series.readingTools"
+msgstr "Ferramentas de lectura"
+
+msgid "manager.series.submissionReview"
+msgstr "Non será revisado por pares"
+
+msgid "manager.series.submissionsToThisSection"
+msgstr "Envíos feitos a esta colección"
+
+msgid "manager.series.abstractsNotRequired"
+msgstr "Non se precisan resumos"
+
+msgid "manager.series.disableComments"
+msgstr "Desactiva os comentarios dos lectores/as desta colección."
+
+msgid "manager.series.book"
+msgstr "Coleccións de libros"
+
+msgid "manager.series.create"
+msgstr "Crear colección"
+
+msgid "manager.series.policy"
+msgstr "Descrición da colección"
+
+msgid "manager.series.assigned"
+msgstr "Editores desta colección"
+
+msgid "manager.series.seriesEditorInstructions"
+msgstr ""
+"Engade un editor/a de colección a esta serie dos Editores/as de Colección "
+"dispoñibles. Unha vez engadido, designe se o Editor/a da colección "
+"supervisará a REVISIÓN (revisión por pares) e/ou a EDICIÓN (redacción, "
+"maquetación e corrección de probas) dos envíos a esta colección. Os editores/"
+"as de colección créanse facendo clic en Editores de Coleccións en Roles na xestión de "
+"editorial."
+
+msgid "manager.series.hideAbout"
+msgstr "Omite esta colección na páxina Sobre a editorial."
+
+msgid "manager.series.unassigned"
+msgstr "Editores de Coleccións dispoñibeis"
+
+msgid "manager.series.form.abbrevRequired"
+msgstr "É necesario un título abreviado para a colección."
+
+msgid "manager.series.form.titleRequired"
+msgstr "É necesario un título para a colección."
+
+msgid "manager.series.noneCreated"
+msgstr "Non se creou ningunha colección."
+
+msgid "manager.series.existingUsers"
+msgstr "Usuarios existentes"
+
+msgid "manager.series.seriesTitle"
+msgstr "Título da colección"
+
+msgid "manager.series.restricted"
+msgstr "Non permitir aos autores enviar directamente a esta colección."
+
+msgid "manager.payment.generalOptions"
+msgstr "Opcións xerais"
+
+msgid "manager.payment.options.enablePayments"
+msgstr ""
+"Os pagamentos habilitaranse para esta editorial. Ten en conta que os "
+"usuarios terán que iniciar sesión para realizar pagamentos."
+
+msgid "manager.payment.success"
+msgstr "Actualizáronse as opcións de pagamento."
+
+msgid "manager.settings"
+msgstr "Configuraciones"
+
+msgid "manager.settings.pressSettings"
+msgstr "Configuraciones da editorial"
+
+msgid "manager.settings.press"
+msgstr "Editorial"
+
+msgid "manager.settings.publisher.identity"
+msgstr "Identidade da editorial"
+
+msgid "manager.settings.publisher.identity.description"
+msgstr ""
+"Estes campos son necesarios para publicar metadatos ONIX válidos."
+
+msgid "manager.settings.publisher"
+msgstr "Nome da Editorial"
+
+msgid "manager.settings.location"
+msgstr "Localización xeográfica"
+
+msgid "manager.settings.publisherCode"
+msgstr "Código da Editorial"
+
+msgid "manager.settings.publisherCodeType"
+msgstr "Tipo de código da editorial"
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr "Este non é un tipo de código editorial válido."
+
+msgid "manager.settings.distributionDescription"
+msgstr ""
+"Todas as opcións específicas do proceso de distribución (notificación, "
+"indexación, arquivo, pago, ferramentas de lectura)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr "Descargar o arquivo da monografía"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr "Visualizacións da páxina do resumo da monografía"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr "Resumo e descargas da monografía"
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr "Visualizacións da páxina principal da colección"
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr "Visualizacións da páxina principal da editorial"
+
+msgid "manager.tools"
+msgstr "Ferramentas"
+
+msgid "manager.tools.importExport"
+msgstr ""
+"Todas as ferramentas específicas para importar e exportar datos "
+"(publicacións, monografías, usuarios)"
+
+msgid "manager.tools.statistics"
+msgstr ""
+"Ferramentas para xerar informes relacionados coas estatísticas de uso "
+"(visualizacións da páxina indice de catálogo, visualizacións da páxina do "
+"resumo de monografía, descargas do arquivo da monografía)"
+
+msgid "manager.users.availableRoles"
+msgstr "Roles dispoñibeis"
+
+msgid "manager.users.currentRoles"
+msgstr "Roles actuais"
+
+msgid "manager.users.selectRole"
+msgstr "Seleccionar rol"
+
+msgid "manager.people.allEnrolledUsers"
+msgstr "Usuarios/as inscritos/as nesta editorial"
+
+msgid "manager.people.allPresses"
+msgstr "Todas as editoriais"
+
+msgid "manager.people.allSiteUsers"
+msgstr "Inscriba un usuario deste sitio nesta editorial"
+
+msgid "manager.people.allUsers"
+msgstr "Todos os usuarios inscritos"
+
+msgid "manager.people.confirmRemove"
+msgstr ""
+"Queres eliminar este usuario/a desta publicación? Esta acción cancelará a "
+"inscrición do usuario/a de todos os roles na publicación."
+
+msgid "manager.people.enrollExistingUser"
+msgstr "Inscribir un usuario existente"
+
+msgid "manager.people.enrollSyncPress"
+msgstr "Con editorial"
+
+msgid "manager.people.mergeUsers.from.description"
+msgstr ""
+"Selecciona un usuario para fusionalo noutra conta de usuario (por exemplo, "
+"se alguén ten dúas contas). Eliminarase a conta seleccionada primeiro e os "
+"seus envíos, tarefas, etc. atribuiranse á segunda conta."
+
+msgid "manager.people.mergeUsers.into.description"
+msgstr ""
+"Seleccione un usuario ao que atribuirlle as autorías do usuario anterior, as "
+"tarefas de edición, etc."
+
+msgid "manager.people.syncUserDescription"
+msgstr ""
+"A sincronización da inscrición atribuirá a todos os usuarios/as inscritos "
+"nun rol específico na publicación no mesmo rol nesta publicación. Esta "
+"función permite sincronizar un conxunto común de usuarios (por exemplo, "
+"revisores) entre publicacións."
+
+msgid "manager.people.confirmDisable"
+msgstr ""
+"Deshabilitar ao usuario/a? Isto evitará que o usuario inicie sesión no "
+"sistema.\n"
+"\n"
+"Opcionalmente, pode proporcionarlle ao usuario unha razón para desactivar a "
+"súa conta."
+
+msgid "manager.people.noAdministrativeRights"
+msgstr ""
+"Non tes dereitos administrativos sobre este usuario/a. Isto pode ser "
+"porque:\n"
+"\t\t\n"
+"\t\t\t- O usuario/a é administrador do sitio
\n"
+"\t\t\t- O usuario/a está activo en publicacións que ti non xestionas
\n"
+"\t\t
\n"
+"\tEsta tarefa debe ser realizada por un administrador do sitio.\n"
+"\t"
+
+msgid "manager.system"
+msgstr "Configuración do sistema"
+
+msgid "manager.system.archiving"
+msgstr "Arquivado"
+
+msgid "manager.system.reviewForms"
+msgstr "Formularios de revisión"
+
+msgid "manager.system.readingTools"
+msgstr "Ferramentas de lectura"
+
+msgid "manager.system.payments"
+msgstr "Pagamentos"
+
+msgid "user.authorization.pluginLevel"
+msgstr "Non tes privilexios suficientes para xestionar este complemento."
+
+msgid "manager.pressManagement"
+msgstr "Administración da editorial"
+
+msgid "manager.setup"
+msgstr "Configuración"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Contido"
+
+msgid "manager.setup.addAboutItem"
+msgstr "Engadir un elemento \"Acerca de\""
+
+msgid "manager.setup.addChecklistItem"
+msgstr "Engadir un elemento \"Lista de verificación\""
+
+msgid "manager.setup.addItem"
+msgstr "Engadir elemento"
+
+msgid "manager.setup.addItemtoAboutPress"
+msgstr "Engadir elemento para aparecer en \"Acerca da editorial\""
+
+msgid "manager.setup.addNavItem"
+msgstr "Engadir elemento"
+
+msgid "manager.setup.addSponsor"
+msgstr "Engadir patrocinador"
+
+msgid "manager.setup.announcements"
+msgstr "Anuncios"
+
+msgid "manager.setup.announcements.success"
+msgstr "Actualizáronse os axustes dos anuncios."
+
+msgid "manager.setup.announcementsDescription"
+msgstr ""
+"Pódense publicar anuncios para informar aos lectores de noticias e eventos "
+"da editorial. Os anuncios publicados aparecerán na páxina de anuncios."
+
+msgid "manager.setup.announcementsIntroduction"
+msgstr "Información adicional"
+
+msgid "manager.setup.announcementsIntroduction.description"
+msgstr ""
+"Introduza calquera información adicional que debe mostrarse aos lectores na "
+"páxina de anuncios."
+
+msgid "manager.setup.appearInAboutPress"
+msgstr "(Para aparecer en Acerca da editorial) "
+
+msgid "manager.setup.contextAbout"
+msgstr "Acerca da publicación"
+
+msgid "manager.setup.contextAbout.description"
+msgstr ""
+"Inclúa calquera información sobre a editorial que poida interesar aos "
+"lectores/as, autores/as ou revisores/as. Isto podería incluír a súa política "
+"de acceso aberto, o enfoque e alcance da mesma, a divulgación do patrocinio "
+"e a historia da editorial."
+
+msgid "manager.setup.contextSummary"
+msgstr "Resumo da publicación"
+
+msgid "manager.setup.copyediting"
+msgstr "Correctores/as"
+
+msgid "manager.setup.copyeditInstructions"
+msgstr "Instrucións para a corrección dos orixinais"
+
+msgid "manager.setup.copyeditInstructionsDescription"
+msgstr ""
+"As instrucións de corrección estarán dispoñibles para correctores/as, "
+"autores/as e editores/as de seccións na fase de edición do envío. A "
+"continuación móstrase un conxunto predeterminado de instrucións en HTML, que "
+"pode ser modificado ou substituído polo xefe editorial en calquera momento "
+"(en HTML ou texto plano)."
+
+msgid "manager.setup.copyrightNotice"
+msgstr "Aviso de dereitos de autor"
+
+msgid "manager.setup.coverage"
+msgstr "Cobertura"
+
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr "Altura máxima da imaxe da capa"
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr "Ancho máximo da imaxe da capa"
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr ""
+"As imaxes reduciranse cando sexan maiores que este tamaño, pero nunca serán "
+"ampliadas ou estiradas para axustalas a estas dimensións."
+
+msgid "manager.setup.customizingTheLook"
+msgstr "Paso 5. Personalización do aspecto"
+
+msgid "manager.setup.customTags"
+msgstr "Etiquetas personalizadas"
+
+msgid "manager.setup.customTagsDescription"
+msgstr ""
+"Etiquetas de cabeceira HTML personalizadas que se inserirán na cabeceira de "
+"cada páxina (por exemplo, etiquetas META)."
+
+msgid "manager.setup.details"
+msgstr "Detalles"
+
+msgid "manager.setup.details.description"
+msgstr "Nome da editorial, contactos, patrocinadores e motores de busca."
+
+msgid "manager.setup.disableUserRegistration"
+msgstr ""
+"O xestor/a editorial rexistrará todas as contas de usuario/a. Os editores/as "
+"ou os editores/as de sección poden rexistrar aos revisores/as."
+
+msgid "manager.setup.discipline"
+msgstr "Disciplina académica e subdisciplinas"
+
+msgid "manager.setup.disciplineDescription"
+msgstr ""
+"Útil cando a editorial traspasa os límites dunha disciplinaria e/ou os "
+"autores/as envían elementos multidisciplinares."
+
+msgid "manager.setup.disciplineExamples"
+msgstr ""
+"(P.ex., historia; educación; socioloxía; psicoloxía; estudos culturais; "
+"dereito)"
+
+msgid "manager.setup.disciplineProvideExamples"
+msgstr ""
+"Proporcione exemplos de disciplinas académicas relevantes para esta editorial"
+
+msgid "manager.setup.displayCurrentMonograph"
+msgstr "Engade a táboa de contidos da monografía actual (se está dispoñibel)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr "Contido da páxina de inicio"
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr "Mostrar libros destacados na páxina de inicio"
+
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr "Libros destacados"
+
+msgid "manager.setup.displayInSpotlight"
+msgstr "Mostrar libros no destaque na páxina de inicio"
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr "Destaque"
+
+msgid "manager.setup.displayNewReleases"
+msgstr "Mostrar novidades na páxina de inicio"
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr "Novidades"
+
+msgid "manager.setup.enableDois.description"
+msgstr ""
+
+#, fuzzy
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr "Escolla os elementos aos que se deben asignar o DOI."
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr ""
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr ""
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr ""
+
+msgid "manager.setup.editorDecision"
+msgstr "Decisión do editor/a"
+
+msgid "manager.setup.emailBounceAddress"
+msgstr "Remitente"
+
+msgid "manager.setup.emailBounceAddress.description"
+msgstr ""
+"Calquera correo electrónico que non se poida entregar enviará unha mensaxe "
+"de erro a este enderezo."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr ""
+"Para enviar os correos electrónicos que non puideron entregarse a un "
+"enderezo de rebote, o administrador do sitio debe habilitar a opción "
+"allow_envelope_sender
no arquivo de configuración do sitio. "
+"Pode ser necesaria a configuración do servidor, como se indica na "
+"documentación de OMP."
+
+msgid "manager.setup.emails"
+msgstr "Identificación de correo electrónico"
+
+msgid "manager.setup.emailSignature"
+msgstr "Sinatura"
+
+#, fuzzy
+msgid "manager.setup.emailSignature.description"
+msgstr ""
+"Os correos electrónicos predefinidos que o sistema envíe en nome da "
+"editorial engadirán ao final a seguinte sinatura."
+
+msgid "manager.setup.enableAnnouncements.enable"
+msgstr "Habilitar avisos"
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr ""
+"Pódense publicar avisos para informar aos lectores de novas e eventos. Os "
+"anuncios publicados aparecerán na páxina de avisos."
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr "Amosar na páxina principal"
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr ""
+"Cantos anuncios se amosan na páxina de inicio. Deixa isto baleiro para non "
+"mostrar ningún."
+
+msgid "manager.setup.enablePressInstructions"
+msgstr "Permite que esta editorial apareza publicamente no sitio"
+
+msgid "manager.setup.enablePublicMonographId"
+msgstr ""
+"Usaranse identificadores personalizados para identificar os elementos "
+"publicados."
+
+msgid "manager.setup.enablePublicGalleyId"
+msgstr ""
+"Usaranse identificadores personalizados para identificar as galeradas (por "
+"exemplo, arquivos HTML ou PDF) dos elementos publicados."
+
+msgid "manager.setup.enableUserRegistration"
+msgstr "Os visitantes poden rexistrar unha conta de usuario coa editorial."
+
+msgid "manager.setup.focusAndScope"
+msgstr "Enfoque e alcance da editorial"
+
+msgid "manager.setup.focusAndScope.description"
+msgstr ""
+"Describa aos autores, lectores e bibliotecarios a temática das monografías e "
+"outros elementos que publicará a editorial."
+
+msgid "manager.setup.focusScope"
+msgstr "Enfoque e alcance"
+
+msgid "manager.setup.focusScopeDescription"
+msgstr "EXEMPLO DE DATOS HTML"
+
+msgid "manager.setup.forAuthorsToIndexTheirWork"
+msgstr "Para que os autores indexen o seu traballo"
+
+msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
+msgstr ""
+"OMP adhírese ao protocolo Open Archives Initiative para a recolección de metadatos, que "
+"é o estándar emerxente para proporcionar acceso ben indexado a recursos "
+"electrónicos de investigación a escala mundial. Os autores utilizarán un "
+"modelo similar para proporcionar metadatos para o seu envío. O xefe/a "
+"editorial debería seleccionar as categorías para indexar, e presentar aos "
+"autores exemplos relevantes para axudalos a indexar o seu traballo, "
+"separando os termos cun punto e coma (por exemplo, term1; term2). As "
+"entradas deben introducirse como exemplos usando \"P. ex.\" ou \"Por exemplo"
+"\"."
+
+msgid "manager.setup.form.contactEmailRequired"
+msgstr "É necesario o correo electrónico do contacto principal."
+
+msgid "manager.setup.form.contactNameRequired"
+msgstr "O nome do contacto principal é obrigatorio."
+
+msgid "manager.setup.form.numReviewersPerSubmission"
+msgstr "É necesario o número de revisores por envío."
+
+msgid "manager.setup.form.supportEmailRequired"
+msgstr "É necesario un correo electrónico de soporte técnico."
+
+msgid "manager.setup.form.supportNameRequired"
+msgstr "É obrigatorio o nome do soporte técnico."
+
+msgid "manager.setup.generalInformation"
+msgstr "Información xeral"
+
+msgid "manager.setup.gettingDownTheDetails"
+msgstr "Paso 1. Detalles"
+
+msgid "manager.setup.guidelines"
+msgstr "Directrices"
+
+msgid "manager.setup.preparingWorkflow"
+msgstr "Paso 3. Preparando o fluxo de traballo"
+
+msgid "manager.setup.identity"
+msgstr "Identidade da editorial"
+
+msgid "manager.setup.information"
+msgstr "Información"
+
+msgid "manager.setup.information.description"
+msgstr ""
+"Breves descricións da editorial para bibliotecarios e futuros autores e "
+"lectores. Están dispoñibles na barra lateral do sitio na sección de "
+"\"Información\"."
+
+msgid "manager.setup.information.forAuthors"
+msgstr "Para autores/as"
+
+msgid "manager.setup.information.forLibrarians"
+msgstr "Para bibliotecarios/as"
+
+msgid "manager.setup.information.forReaders"
+msgstr "Para lectores/as"
+
+msgid "manager.setup.information.success"
+msgstr "A información desta editorial actualizouse."
+
+msgid "manager.setup.institution"
+msgstr "Institución"
+
+msgid "manager.setup.itemsPerPage"
+msgstr "Elementos por páxina"
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr ""
+"Limita o número de elementos (por exemplo, envíos, usuarios ou tarefas de "
+"edición) para mostrar nunha lista antes de amosar os elementos posteriores "
+"noutra páxina."
+
+msgid "manager.setup.keyInfo"
+msgstr "Información clave"
+
+msgid "manager.setup.keyInfo.description"
+msgstr ""
+"Ofrece unha breve descrición da túa editorial e identifica aos membros do "
+"teu equipo editorial."
+
+msgid "manager.setup.labelName"
+msgstr "Nome da etiqueta"
+
+msgid "manager.setup.layoutAndGalleys"
+msgstr "Maquetadores"
+
+msgid "manager.setup.layoutInstructions"
+msgstr "Instrucións de maquetación"
+
+msgid "manager.setup.layoutInstructionsDescription"
+msgstr ""
+"As instrucións de maquetación pódense preparar para o formato dos elementos "
+"publicados na editorial e introducirse a continuación en HTML ou texto "
+"plano. Estarán dispoñibles para o maquetador e o editor de sección na páxina "
+"de edición de cada envío. (Como cada editorial pode empregar os seus propios "
+"formatos de arquivo, estándares bibliográficos, follas de estilo, etc., non "
+"se fornece un conxunto de instrucións predeterminado.)"
+
+msgid "manager.setup.layoutTemplates"
+msgstr "Modelos de maquetación"
+
+msgid "manager.setup.layoutTemplatesDescription"
+msgstr ""
+"Os modelos pódense cargar para que aparezan na maquetación para cada un dos "
+"formatos estándar publicados na editorial (por exemplo, monografía, revisión "
+"de libros, etc.) empregando calquera formato de arquivo (por exemplo, pdf, "
+"doc, etc.) con anotacións engadidas especificando a fonte, o tamaño , "
+"marxes, etc. para servir de guía para os maquetadores/as e correctores/as de "
+"probas."
+
+msgid "manager.setup.layoutTemplates.file"
+msgstr "Arquivo de modelo"
+
+msgid "manager.setup.layoutTemplates.title"
+msgstr "Título"
+
+msgid "manager.setup.lists"
+msgstr "Listas"
+
+msgid "manager.setup.lists.success"
+msgstr "A configuración da lista actualizouse."
+
+msgid "manager.setup.look"
+msgstr "Visualización"
+
+msgid "manager.setup.look.description"
+msgstr ""
+"Cabeceira da páxina de inicio, contido, cabeceira da editorial, pé de "
+"páxina, barra de navegación e folla de estilo."
+
+msgid "manager.setup.settings"
+msgstr "Configuración"
+
+msgid "manager.setup.management.description"
+msgstr ""
+"Acceso e seguridade, programación, anuncios, corrección, maquetación e "
+"corrección de probas."
+
+msgid "manager.setup.managementOfBasicEditorialSteps"
+msgstr "Xestión dos pasos editoriais básicos"
+
+msgid "manager.setup.managingPublishingSetup"
+msgstr "Configuración da administración e publicación"
+
+msgid "manager.setup.managingThePress"
+msgstr "Paso 4. Administración da configuración"
+
+msgid "manager.setup.masthead.success"
+msgstr "Actualizáronse os detalles da cabeceira desta editorial."
+
+msgid "manager.setup.noImageFileUploaded"
+msgstr "Non se cargou ningún arquivo de imaxe."
+
+msgid "manager.setup.noStyleSheetUploaded"
+msgstr "Non se cargou ningunha folla de estilo."
+
+msgid "manager.setup.note"
+msgstr "Nota"
+
+msgid "manager.setup.notifyAllAuthorsOnDecision"
+msgstr ""
+"Ao usar o correo electrónico de Notificación ao autor, inclúe os enderezos "
+"de correo electrónico de todos os coautores, non só o do usuario que fai o "
+"envío."
+
+msgid "manager.setup.noUseCopyeditors"
+msgstr ""
+"A corrección dos orixinais correrá a cargo dun editor/a ou editor/a de "
+"sección asignado ao envío."
+
+msgid "manager.setup.noUseLayoutEditors"
+msgstr ""
+"Un editor/a ou editor/a de sección asignado ao envío preparará os ficheiros "
+"HTML, PDF, etc."
+
+msgid "manager.setup.noUseProofreaders"
+msgstr ""
+"Un editor/a ou un editor/a de sección asignado ao envío comprobará as "
+"galeradas."
+
+msgid "manager.setup.numPageLinks"
+msgstr "Ligazóns da páxina"
+
+msgid "manager.setup.numPageLinks.description"
+msgstr ""
+"Limitar o número de ligazóns que se amosarán nas páxinas sucesivas dunha "
+"lista."
+
+msgid "manager.setup.onlineAccessManagement"
+msgstr "Acceso ao contido da editorial"
+
+msgid "manager.setup.onlineIssn"
+msgstr "ISSN en liña"
+
+msgid "manager.setup.policies"
+msgstr "Políticas"
+
+msgid "manager.setup.policies.description"
+msgstr ""
+"Obxecto da publicación, proceso de revisión por pares, seccións, "
+"privacidade, seguridade e outros."
+
+msgid "manager.setup.privacyStatement.success"
+msgstr "A declaración de privacidade actualizouse."
+
+msgid "manager.setup.appearanceDescription"
+msgstr ""
+"Desde esta páxina pódense configurar varios compoñentes do aspecto da "
+"editorial, incluídos os elementos da cabeceira e pé de páxina, o estilo e o "
+"tema e como se presentan as listas de información aos usuarios/as."
+
+msgid "manager.setup.pressDescription"
+msgstr "Descrición da editorial"
+
+msgid "manager.setup.pressDescription.description"
+msgstr "Unha breve descrición da súa editorial."
+
+msgid "manager.setup.aboutPress"
+msgstr "Sobre a editorial"
+
+msgid "manager.setup.aboutPress.description"
+msgstr ""
+"Inclúe calquera información sobre a túa editorial que poida interesar aos "
+"lectores/as, autores/as ou revisores/as. Isto podería incluír a política de "
+"acceso aberto, a temática e o alcance da editorial, o aviso de copyright, a "
+"divulgación de patrocinios, o historial e unha declaración de privacidade."
+
+msgid "manager.setup.pressArchiving"
+msgstr "Arquivamento da publicación"
+
+msgid "manager.setup.homepageContent"
+msgstr "Contido de páxina de inicio da editorial"
+
+msgid "manager.setup.homepageContentDescription"
+msgstr ""
+"A páxina de inicio de editorial consiste de forma predeterminada en ligazóns "
+"de navegación. Pódese engadir contido adicional á páxina de inicio usando "
+"unha ou todas as seguintes opcións, que aparecerán na orde mostrada."
+
+msgid "manager.setup.pressHomepageContent"
+msgstr "Contido de páxina de inicio da editorial"
+
+msgid "manager.setup.pressHomepageContentDescription"
+msgstr ""
+"A páxina de inicio de editorial consiste de forma predeterminada en ligazóns "
+"de navegación. Pódese engadir contido adicional á páxina de inicio usando "
+"unha ou todas as seguintes opcións, que aparecerán na orde mostrada."
+
+msgid "manager.setup.contextInitials"
+msgstr "Sigla da editorial"
+
+msgid "manager.setup.selectCountry"
+msgstr ""
+"Selecione o país onde está a editorial ou o país do enderezo da "
+"correspondencia."
+
+msgid "manager.setup.layout"
+msgstr "Maquetación da publicación"
+
+msgid "manager.setup.pageHeader"
+msgstr "Cabeceira da páxina da publicación"
+
+msgid "manager.setup.pageHeaderDescription"
+msgstr ""
+
+msgid "manager.setup.pressPolicies"
+msgstr "Paso 2. Políticas da editorial"
+
+msgid "manager.setup.pressSetup"
+msgstr "Configuración"
+
+msgid "manager.setup.pressSetupUpdated"
+msgstr "A configuración da editorial actualizouse."
+
+msgid "manager.setup.styleSheetInvalid"
+msgstr "Formato de folla de estilo non válido. O formato aceptado é .css."
+
+msgid "manager.setup.pressTheme"
+msgstr "Tema"
+
+msgid "manager.setup.pressThumbnail"
+msgstr "Miniatura da editorial"
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr ""
+"Un pequeno logotipo ou representación da editorial que se pode empregar nas "
+"listaxes de editoriais."
+
+msgid "manager.setup.contextTitle"
+msgstr "Nome da editorial"
+
+msgid "manager.setup.printIssn"
+msgstr "ISSN de impresión"
+
+msgid "manager.setup.proofingInstructions"
+msgstr "Instrucións de corrección de probas"
+
+msgid "manager.setup.proofingInstructionsDescription"
+msgstr ""
+"As instrucións de corrección de probas estarán dispoñibles para correctores/"
+"as, autores/as, editores/as na etapa de edición do envío. A continuación "
+"móstrase un conxunto predeterminado de instrucións en HTML, que pode ser "
+"editado ou substituído polo xefe/a editorial en calquera momento (en HTML ou "
+"texto plano)."
+
+msgid "manager.setup.proofreading"
+msgstr "Correctores de probas"
+
+msgid "manager.setup.provideRefLinkInstructions"
+msgstr "Proporcione instrucións aos maquetadores."
+
+msgid "manager.setup.publicationScheduleDescription"
+msgstr ""
+"Os elementos da publicación pódense publicar colectivamente, como parte "
+"dunha monografía coa súa propia táboa de contidos. Como alternativa, pódense "
+"publicar elementos individuais en canto estean listos engadíndoos á táboa de "
+"contidos do volume \"actual\". Proporcione aos lectores, en Acerca da "
+"editorial, unha declaración sobre o sistema que empregará esta prensa e a "
+"súa frecuencia de publicación prevista."
+
+msgid "manager.setup.publisher"
+msgstr "Editor"
+
+msgid "manager.setup.publisherDescription"
+msgstr ""
+"O nome da organización que publica aparecerá na páxina Acerca da editorial."
+
+msgid "manager.setup.referenceLinking"
+msgstr "Ligazóns de referencia"
+
+msgid "manager.setup.refLinkInstructions.description"
+msgstr "Instrucións de maquetación para as ligazóns de referencia"
+
+msgid "manager.setup.restrictMonographAccess"
+msgstr ""
+"Os usuarios/as deben estar rexistrados e iniciar sesión para ver o contido "
+"de acceso aberto."
+
+msgid "manager.setup.restrictSiteAccess"
+msgstr ""
+"Os usuarios deben estar rexistrados e iniciar sesión para ver o sitio da "
+"editorial."
+
+msgid "manager.setup.reviewGuidelines"
+msgstr "Directrices de revisión externa"
+
+msgid "manager.setup.reviewGuidelinesDescription"
+msgstr ""
+"Proporcione aos revisores/as externos/as criterios para xulgar a idoneidade "
+"dun envío para a súa publicación, que poden incluír instrucións para "
+"preparar unha revisión eficaz e útil. Os revisores/as terán a oportunidade "
+"de proporcionar comentarios destinados ao autor/a e ao editor/a, así como "
+"comentarios separados só para o editor/a."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr "Directrices de revisión interna"
+
+msgid "manager.setup.reviewOptions"
+msgstr "Opcións de revisión"
+
+msgid "manager.setup.reviewOptions.automatedReminders"
+msgstr "Recordatorios de correo electrónico automatizados"
+
+msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
+msgstr ""
+"Para activar estas opcións, o administrador/a do sitio debe habilitar a "
+"opción scheduled_tasks no arquivo de configuración de OMP. É "
+"posible que sexa necesaria unha configuración no servidor para soportar esta "
+"funcionalidade (que pode non ser posible en todos os servidores), como se "
+"indica na documentación OMP."
+
+msgid "manager.setup.reviewOptions.onQuality"
+msgstr ""
+"Despois de cada revisión os editores/as valorarán aos revisores/as nunha "
+"escala de cinco puntos."
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr "Restrinxir o acceso ao arquivo"
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
+msgstr ""
+"Os revisores/as só terán acceso ao arquivo de envío despois de acordar "
+"revisalo."
+
+msgid "manager.setup.reviewOptions.reviewerAccess"
+msgstr "Acceso para os revisores/as"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr "Acceso do revisor/a cun clic"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
+msgstr ""
+"Aos revisores/as pódeselles enviar unha ligazón segura na invitación por "
+"correo electrónico, que lles permitirá acceder á revisión sen iniciar "
+"sesión. Para acceder a outras páxinas, é necesario que inicien sesión."
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr ""
+"Inclúe unha ligazón segura na invitación por correo electrónico aos "
+"revisores/as."
+
+msgid "manager.setup.reviewOptions.reviewerRatings"
+msgstr "Calificación dos revisores/as"
+
+msgid "manager.setup.reviewOptions.reviewerReminders"
+msgstr "Recordatorios para os revisores/as"
+
+msgid "manager.setup.reviewPolicy"
+msgstr "Política de evaluación"
+
+msgid "manager.setup.searchDescription.description"
+msgstr ""
+"Proporcione unha breve descrición (50-300 caracteres) da editorial que os "
+"motores de busca poden mostrar ao listar a nos resultados da busca."
+
+msgid "manager.setup.searchEngineIndexing"
+msgstr "Indexación nos motores de busca"
+
+msgid "manager.setup.searchEngineIndexing.description"
+msgstr ""
+"Axude aos motores de busca como Google a descubrir e amosar o seu sitio. "
+"Animámosche a enviar o teu mapa "
+"do sitio."
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr "A configuración da indexación do motor de busca actualizouse."
+
+msgid "manager.setup.sectionsAndSectionEditors"
+msgstr "Seccións e editores/as de sección"
+
+msgid "manager.setup.sectionsDefaultSectionDescription"
+msgstr ""
+"(Se non se engaden seccións, os elementos envíanse á sección Monografías por "
+"defecto.)"
+
+msgid "manager.setup.sectionsDescription"
+msgstr ""
+"Para crear ou modificar seccións da editorial (por exemplo, monografías, "
+"comentarios de libros, etc.), vaia a Administración de seccións.
Os autores/as que envíen elementos designarán..."
+
+msgid "manager.setup.securitySettings"
+msgstr "Configuración de acceso e seguridade"
+
+msgid "manager.setup.securitySettings.note"
+msgstr ""
+"Outras opcións relacionadas coa seguridade e o acceso pódense configurar "
+"desde a páxina Acceso e seguridade."
+
+msgid "manager.setup.selectEditorDescription"
+msgstr "O editor/a o verá a través do proceso editorial."
+
+msgid "manager.setup.selectSectionDescription"
+msgstr "A sección da publicación para a que se considerará o elemento."
+
+msgid "manager.setup.showGalleyLinksDescription"
+msgstr ""
+"Amosa sempre as ligazóns das galeradas e indica que o acceso é restrinxido."
+
+msgid "manager.setup.siteAccess.view"
+msgstr "Acceso ao sitio"
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr "Ver o contido da monografía"
+
+msgid "manager.setup.stepsToPressSite"
+msgstr "Cinco pasos para crear o sitio web da editorial"
+
+msgid "manager.setup.subjectExamples"
+msgstr ""
+"(Por exemplo, fotosíntese; buratos negros; Teorema de los cuatro colores; "
+"Teorema de Bayes)"
+
+msgid "manager.setup.subjectKeywordTopic"
+msgstr "Palabras clave"
+
+msgid "manager.setup.subjectProvideExamples"
+msgstr ""
+"Proporcione exemplos de palabras clave ou temas como guía para os autores/as"
+
+msgid "manager.setup.submissionGuidelines"
+msgstr "Directrices para o envío"
+
+msgid "maganer.setup.submissionChecklistItemRequired"
+msgstr "O elemento da lista de verificación é necesario."
+
+msgid "manager.setup.workflow"
+msgstr "Fluxo de traballo"
+
+msgid "manager.setup.submissions.description"
+msgstr ""
+"Directrices para o autor/a, dereitos de autor/a e indexación (incluído o "
+"rexistro)."
+
+msgid "manager.setup.typeExamples"
+msgstr ""
+"(Por exemplo, investigación histórica; case-experimental; análise literaria; "
+"enquisa/entrevista)"
+
+msgid "manager.setup.typeMethodApproach"
+msgstr "Tipo (método/enfoque)"
+
+msgid "manager.setup.typeProvideExamples"
+msgstr ""
+"Proporcione exemplos de tipos, métodos e enfoques de investigación "
+"relevantes para este campo"
+
+msgid "manager.setup.useCopyeditors"
+msgstr "Asignarase un corrector/a para traballar con cada envío."
+
+msgid "manager.setup.useEditorialReviewBoard"
+msgstr "A editorial empregará un consello editorial/de revisión."
+
+msgid "manager.setup.useImageTitle"
+msgstr "Imaxe do título"
+
+msgid "manager.setup.useStyleSheet"
+msgstr "Folla de estilo da editorial"
+
+msgid "manager.setup.useLayoutEditors"
+msgstr ""
+"Asignarase un maquetador para preparar os arquivos HTML, PDF, etc. para a "
+"publicación electrónica."
+
+msgid "manager.setup.useProofreaders"
+msgstr ""
+"Asignarase un corrector/a de probas para comprobar (xunto cos autores/as) as "
+"galeradas antes da publicación."
+
+msgid "manager.setup.userRegistration"
+msgstr "Rexistro de usuarios/as"
+
+msgid "manager.setup.useTextTitle"
+msgstr "Título"
+
+msgid "manager.setup.volumePerYear"
+msgstr "Volumes por ano"
+
+msgid "manager.setup.publicationFormat.code"
+msgstr "Formato"
+
+msgid "manager.setup.publicationFormat.codeRequired"
+msgstr "Debe escollerse un formato."
+
+msgid "manager.setup.publicationFormat.nameRequired"
+msgstr "Debe asignar un nome a este formato."
+
+msgid "manager.setup.publicationFormat.physicalFormat"
+msgstr "É este un formato físico (non dixital)?"
+
+msgid "manager.setup.publicationFormat.inUse"
+msgstr ""
+"Debido a que este formato de publicación está a ser usado actualmente por "
+"unha monografía na súa editorial, non se pode eliminar."
+
+msgid "manager.setup.newPublicationFormat"
+msgstr "Novo formato de publicación"
+
+msgid "manager.setup.newPublicationFormatDescription"
+msgstr ""
+"Para crear un novo formato de publicación, enche o seguinte formulario e "
+"preme no botón \"Crear\"."
+
+msgid "manager.setup.genresDescription"
+msgstr ""
+"Estes xéneros úsanse con fins de nomeamento de arquivos e preséntanse nun "
+"menú despregable ao cargarlos. Os xéneros designados ## permiten ao usuario "
+"asociar o arquivo con todo o libro 99Z ou cun capítulo concreto por número "
+"(por exemplo, 02)."
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr ""
+"Esta editorial non acepta envíos neste momento. Visita a configuración do "
+"fluxo de traballo para permitir envíos."
+
+msgid "manager.setup.disableSubmissions.description"
+msgstr ""
+"Evitar que os usuarios envíen novos artigos á editorial. Os envíos pódense "
+"desactivar para cada serie editorial na páxina de configuración de series editoriais."
+
+msgid "manager.setup.genres"
+msgstr "Xéneros"
+
+msgid "manager.setup.newGenre"
+msgstr "Novo xénero de monografía"
+
+msgid "manager.setup.newGenreDescription"
+msgstr ""
+"Para crear un novo xénero, enche o seguinte formulario e preme no botón "
+"\"Crear\"."
+
+msgid "manager.setup.deleteSelected"
+msgstr "Eliminar selección"
+
+msgid "manager.setup.restoreDefaults"
+msgstr "Restaurar a configuración por defecto"
+
+msgid "manager.setup.prospectus"
+msgstr "Guía do folleto"
+
+msgid "manager.setup.prospectusDescription"
+msgstr ""
+"O folleto guía é un documento preparado pola editorial que axuda ao autor/a "
+"a describir os materiais enviados de xeito que permite a unha editorial "
+"determinar o valor do envío. Un folleto pode incluír moitos elementos, desde "
+"o potencial de mercado ata o valor teórico; en calquera caso, unha editorial "
+"debería crear un folleto guía que complemente a súa axenda de publicación."
+
+msgid "manager.setup.submitToCategories"
+msgstr "Permitir envíos por categoría"
+
+msgid "manager.setup.submitToSeries"
+msgstr "Permitir envíos a coleccións"
+
+msgid "manager.setup.issnDescription"
+msgstr ""
+"O ISSN (International Standard Serial Number) é un número de oito díxitos "
+"que identifica publicacións incluíndo series electrónicas. Pódese obter un "
+"número no ISSN "
+"International Center."
+
+msgid "manager.setup.currentFormats"
+msgstr "Formatos actuais"
+
+msgid "manager.setup.categoriesAndSeries"
+msgstr "Categorías e Coleccións"
+
+msgid "manager.setup.categories.description"
+msgstr ""
+"Podes crear unha lista de categorías para axudarche a organizar as túas "
+"publicacións. As categorías son agrupacións de libros segundo a materia, por "
+"exemplo Economía, Literatura, Poesía, etcétera. As categorías pódense anidar "
+"dentro de categorías \"pais\": por exemplo, unha categoría principal de "
+"Economía pode incluír categorías individuais de Microeconomía e "
+"Macroeconomía. Os visitantes poderán buscar e navegar pola editorial por "
+"categoría."
+
+msgid "manager.setup.series.description"
+msgstr ""
+"Podes crear calquera número de coleccións para axudarche a organizar as túas "
+"publicacións. Unha colección representa un conxunto especial de libros "
+"dedicados a un tema ou temas. Os visitantes poderán buscar e navegar pola "
+"editorial por coleccións."
+
+msgid "manager.setup.reviewForms"
+msgstr "Formularios de revisión"
+
+msgid "manager.setup.roleType"
+msgstr "Tipo de rol"
+
+msgid "manager.setup.authorRoles"
+msgstr "Roles de autor/a"
+
+msgid "manager.setup.managerialRoles"
+msgstr "Roles administrativos"
+
+msgid "manager.setup.availableRoles"
+msgstr "Roles dispoñibeis"
+
+msgid "manager.setup.currentRoles"
+msgstr "Roles actuais"
+
+msgid "manager.setup.internalReviewRoles"
+msgstr "Roles de revisión interna"
+
+msgid "manager.setup.masthead"
+msgstr "Cabeceira"
+
+msgid "manager.setup.editorialTeam"
+msgstr "Equipo editorial"
+
+msgid "manager.setup.editorialTeam.description"
+msgstr ""
+"Lista de editores/as, directores/as e outras persoas asociadas á editorial."
+
+msgid "manager.setup.files"
+msgstr "Arquivos"
+
+msgid "manager.setup.productionTemplates"
+msgstr "Modelos de produción"
+
+msgid "manager.files.note"
+msgstr ""
+"Nota: O explorador de arquivos é unha función avanzada que permite ver e "
+"manipular directamente os arquivos e cartafoles asociados a unha editorial."
+
+msgid "manager.setup.copyrightNotice.sample"
+msgstr ""
+"Avisos de dereitos de autor de Creative Commons
\n"
+"Política para publicacións que ofrecen acceso aberto
\n"
+"Os autores/as que publican nesta editorial aceptan os seguintes termos:\n"
+"\n"
+"\t- Os autores/as conservan os dereitos de autor e outorgan á editorial o "
+"dereito á primeira publicación do traballo baixo unha licenza de "
+"recoñecemento Creative Commons que permite a outros compartir a obra cun "
+"recoñecemento da autoría da obra e a publicación inicial nesta prensa.
\n"
+"\t- Os autores/as poden subscribir series contractuais adicionais "
+"separadas para a distribución non exclusiva da versión da obra publicada "
+"pola editorial (por exemplo, publicala nun repositorio institucional ou "
+"publicala nun libro), cun recoñecemento da inicial publicación nesta "
+"editorial.
\n"
+"\t- Permíteselles aos autores/as a publicar o seu traballo en liña (por "
+"exemplo, en repositorios institucionais ou no seu sitio web) antes e durante "
+"o proceso de envío, xa que pode levar a intercambios produtivos, así como "
+"unha maior citación dos traballos publicados (Ver O efecto do acceso "
+"aberto).
\n"
+"
\n"
+"\n"
+"Política para editoriais que ofrecen un acceso aberto adiado
\n"
+"Os autores/as que publican con esta editorial aceptan os seguintes termos:\n"
+"\n"
+"\t- Os autores/as conservan os dereitos de autor e outorgan á editorial o "
+"dereito á primeira publicación do traballo [ESPECIFICAR O PERÍODO DE TEMPO] "
+"despois da publicación baixo Licenza Creative Commons "
+"Attribution que permite a outras persoas compartir a obra cun "
+"recoñecemento da autoría e publicación inicial nesta editorial.
\n"
+"\t - Os autores/as poden subscribir series contractuais adicionais "
+"separadas para a distribución non exclusiva da versión da obra publicada "
+"pola editorial (por exemplo, publicala nun repositorio institucional ou "
+"publicala nun libro), cun recoñecemento da súa inicial publicación nesta "
+"editorial.
\n"
+"\t - Permíteselles aos autores/as a publicar o seu traballo en liña (por "
+"exemplo, en repositorios institucionais ou no seu sitio web) antes e durante "
+"o proceso de envío, xa que pode levar a intercambios produtivos, así como "
+"unha maior citación dos traballos publicados (Ver O efecto do acceso "
+"aberto).
\n"
+"
"
+
+msgid "manager.setup.basicEditorialStepsDescription"
+msgstr ""
+"Pasos: Cola de envío > Revisión de envíos > Edición de envíos > "
+"Táboa de contidos.
\n"
+"Seleccione un modelo para tratar estes aspectos do proceso editorial. (Para "
+"designar un editor/a de xestión ou editores/as de series, vaia a Editores en "
+"Xestión da editorial.)"
+
+msgid "manager.setup.referenceLinkingDescription"
+msgstr ""
+"Para permitir aos lectores localizar versións en liña da obra citada por "
+"un autor, están dispoñibles as seguintes opcións.
\n"
+"\n"
+"\n"
+"\t- Engadir unha ferramenta de lectura
O xefe/a "
+"editorial pode engadir \"Buscar referencias\" ás ferramentas de lectura que "
+"acompañan os elementos publicados, o que permite aos lectores/as pegar o "
+"título dunha referencia e buscar en bases de datos académicas "
+"preseleccionadas o traballo citado.
\n"
+"\t- Inserir ligazóns nas referencias
O maquetador/a "
+"pode engadir unha ligazón ás referencias que se poden atopar en liña "
+"empregando as seguintes instrucións (que se poden editar).
\n"
+"
"
+
+msgid "manager.publication.library"
+msgstr "Biblioteca da publicación"
+
+msgid "manager.setup.resetPermissions"
+msgstr "Reiniciar os permisos da monografía"
+
+msgid "manager.setup.resetPermissions.confirm"
+msgstr ""
+"Seguro/a que desexas restablecer os datos de permisos xa asociados ás "
+"monografías?"
+
+msgid "manager.setup.resetPermissions.description"
+msgstr ""
+"A declaración de dereitos de autor e a información da licenza xuntaranse "
+"permanentemente ao contido publicado, asegurando que estes datos non "
+"cambiarán no caso de que a editorial cambie as políticas para os novos "
+"envíos. Para restablecer a información de permisos almacenados xa unida ao "
+"contido publicado, use o botón seguinte."
+
+msgid "manager.setup.resetPermissions.success"
+msgstr "Restablecéronse correctamente os permisos da monografía."
+
+msgid "grid.genres.title.short"
+msgstr "Compoñentes"
+
+msgid "grid.genres.title"
+msgstr "Compoñentes da monografía"
+
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr ""
+"Envíe unha copia ao contacto principal, identificado na Configuración da "
+"editorial."
+
+msgid "grid.series.pathAlphaNumeric"
+msgstr "A ruta da serie debe consistir só en letras e números."
+
+msgid "grid.series.pathExists"
+msgstr "A ruta da serie xa existe. Insira unha ruta única."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr "Seleccionar Series"
+
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr "Seleccione a serie á que desexa ligar este elemento do menú."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr "Seleccionar Categoría"
+
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr "Seleccione a categoría á que desexa ligar este elemento do menú."
+
+msgid "grid.series.urlWillBe"
+msgstr "O URL da serie será: {$sampleUrl}"
+
+msgid "stats.contextStats"
+msgstr ""
+
+msgid "stats.context.tooltip.text"
+msgstr ""
+
+msgid "stats.context.tooltip.label"
+msgstr ""
+
+msgid "stats.context.downloadReport.description"
+msgstr ""
+
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr ""
+
+msgid "stats.context.downloadReport.downloadContext"
+msgstr ""
+
+msgid "stats.publications.downloadReport.description"
+msgstr ""
+
+msgid "stats.publications.downloadReport.downloadSubmissions"
+msgstr ""
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr ""
+
+msgid "stats.publicationStats"
+msgstr "Estatísticas da monografía"
+
+msgid "stats.publications.details"
+msgstr "Detalles da monografía"
+
+msgid "stats.publications.none"
+msgstr ""
+"Non se atoparon monografías con estatísticas de uso que coincidan con estes "
+"parámetros."
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr "Vistas totais do catálogo por data"
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr "Total de visualizacións de arquivos por data"
+
+msgid "stats.publications.countOfTotal"
+msgstr "{$count} de {$total} monografías"
+
+msgid "stats.publications.abstracts"
+msgstr "Entradas do catálogo"
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr "Non hai obxectos seleccionados."
+
+msgid "plugins.importexport.common.error.validation"
+msgstr "Non se puideron converter os obxectos seleccionados."
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr "XML non válido:"
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr "Exportar envíos"
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr ""
+"Envia unha cópia do correo electrónico de confirmación do envío ao contacto "
+"principal desta editorial."
+
+msgid ""
+"manager.setup.notifications.copySubmissionAckPrimaryContact.disabled."
+"description"
+msgstr ""
+"Ningún contacto principal foi definido para esta editorial. Vostede pode "
+"inserir o contacto principal na configuración da "
+"editorial."
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr "Non se atoparon os obxectos especificados."
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr "O usuario \"{$userName}\" non existe."
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr "O proceso fallou ao analizar os formatos de publicación"
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr "O proceso fallou ao analizar capítulos"
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr ""
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr ""
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr ""
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr ""
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr ""
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr ""
+
+msgid "mailable.validateEmailContext.name"
+msgstr ""
+
+msgid "mailable.validateEmailContext.description"
+msgstr ""
+
+msgid "doi.displayName"
+msgstr "Identificador de obxecto dixital (DOI)"
+
+msgid "doi.manager.displayName"
+msgstr ""
+
+msgid "doi.description"
+msgstr ""
+"Este complemento permite a asignación dos DOI a monografías, capítulos, "
+"formatos de publicación e arquivos en OMP."
+
+msgid "doi.readerDisplayName"
+msgstr "DOI:"
+
+msgid "doi.manager.settings.description"
+msgstr ""
+"Configure o complemento DOI para poder xestionar e usar os DOIs en OMP:"
+
+msgid "doi.manager.settings.explainDois"
+msgstr "Seleccione os obxectos publicados que terán asignado DOI:"
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr "Monografías"
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr "Capítulos"
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr "Formatos de publicación"
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr "Arquivos"
+
+msgid "doi.manager.settings.doiPrefix"
+msgstr "Prefixo DOI"
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr "O prefixo DOI é obrigatorio e debe ter a forma 10.xxxx."
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr ""
+"Use o patrón que se introduce a continuación para xerar sufixos DOI. Use %p "
+"para as iniciais de prensa, %m para o id da monografía, %c para o id do "
+"capítulo, %f para o ID do formato de publicación, %s para o ID do arquivo e "
+"%x para \"Identificador personalizado\"."
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr ""
+"Por exemplo, press%ppub%r podería crear un DOI como 10.1234/pressESPpub100"
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr "para monografías"
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr "para capítulos"
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr "para formatos de publicación"
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr "para arquivos"
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr "Insira o padrón do sufixo DOI para as monografías."
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr "Insira o padrón do sufixo DOI para os capítulos."
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr "Insira o padrón do sufixo DOI para os formatos de publicación."
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr "Insira o padrón do sufixo DOI para os arquivos."
+
+msgid "doi.manager.settings.doiReassign"
+msgstr "Asignar os DOI de novo"
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr ""
+"Se cambia a configuración do DOI, os DOI xa asignados non se verán "
+"afectados. Unha vez gardada a configuración do DOI, use este botón para "
+"borrar todos os DOIs existentes para que a nova configuración teña efecto en "
+"todos os obxectos existentes."
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr "Estás seguro/a de que desexas eliminar todos os DOIs existentes?"
+
+msgid "doi.editor.doi"
+msgstr "Identificador de obxecto dixital (DOI)"
+
+msgid "doi.editor.doi.description"
+msgstr "O DOI debe comezar con {$prefix}."
+
+msgid "doi.editor.doi.assignDoi"
+msgstr "Asignar"
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr "monografía"
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr "capítulo"
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr "formato de publicación"
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr "arquivo"
+
+msgid "doi.editor.customSuffixMissing"
+msgstr "Non se pode asignar o DOI porque falta o sufixo personalizado."
+
+msgid "doi.editor.missingParts"
+msgstr ""
+"Non podes xerar un DOI porque faltan datos nunha ou máis partes do padrón "
+"DOI."
+
+msgid "doi.editor.patternNotResolved"
+msgstr "Non se pode asignar o DOI porque contén un padrón sen resolver."
+
+msgid "doi.editor.canBeAssigned"
+msgstr ""
+"O que ves é unha vista previa do DOI. Marque a caixa de verificación e garde "
+"o formulario para asignar o DOI."
+
+msgid "doi.editor.assigned"
+msgstr "O DOI é asignado a este {$pubObjectType}."
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr ""
+"O sufixo DOI indicado xa está en uso en outro elemento publicado. Insira un "
+"sufixo DOI único para cada elemento."
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr "Limpar"
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr "Estás seguro/a de que desexas eliminar o DOI existente?"
+
+msgid "doi.editor.assignDoi"
+msgstr "Asignar o DOI {$pubId} a este {$pubObjectType}"
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr "Non se pode asignar o DOI porque falta o sufixo personalizado."
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr ""
+"Non se pode asignar o DOI {$pubId} porque contén un padrón sen resolver."
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr "Asignouse o DOI {$pubId}."
+
+msgid "doi.editor.missingPrefix"
+msgstr "O DOI debe comezar con {$doiPrefix}."
+
+msgid "doi.editor.preview.publication"
+msgstr "O DOI desta publicación será {$doi}."
+
+msgid "doi.editor.preview.publication.none"
+msgstr "Non se asignou un DOI a esta publicación."
+
+msgid "doi.editor.preview.chapters"
+msgstr "Capítulo: {$title}"
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr "Formato de publicación: {$title}"
+
+msgid "doi.editor.preview.files"
+msgstr "Arquivo: {$title}"
+
+msgid "doi.editor.preview.objects"
+msgstr "Elemento"
+
+msgid "doi.manager.submissionDois"
+msgstr ""
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr ""
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr ""
+
+msgid "manager.institutions.noContext"
+msgstr ""
+
+msgid "manager.manageEmails.description"
+msgstr ""
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr ""
+
+msgid "mailable.indexRequest.name"
+msgstr ""
+
+msgid "mailable.indexComplete.name"
+msgstr ""
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr ""
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr ""
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+
+#~ msgid "manager.setup.doiPrefixDescription"
+#~ msgstr ""
+#~ "O prefixo DOI (Digital Object Identifier) está asignado por CrossRef e ten o "
+#~ "formato 10.xxxx (por exemplo, 10.1234)."
+
+#~ msgid "manager.setup.doiPrefix"
+#~ msgstr "Prefixo DOI"
diff --git a/locale/gl/submission.po b/locale/gl/submission.po
new file mode 100644
index 00000000000..f9e5d1aeb5b
--- /dev/null
+++ b/locale/gl/submission.po
@@ -0,0 +1,586 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2021-02-20 17:54+0000\n"
+"Last-Translator: Real Academia Galega \n"
+"Language-Team: Galician \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 "submission.upload.selectComponent"
+msgstr "Seleccionar compoñente"
+
+msgid "submission.title"
+msgstr "Título do libro"
+
+msgid "submission.select"
+msgstr "Seleccionar proposta"
+
+msgid "submission.synopsis"
+msgstr "Resumo"
+
+msgid "submission.workflowType"
+msgstr "Tipo de fluxo de traballo editorial"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"Unha monografía é unha obra creada integramente por un ou máis autores. Unha "
+"obra colectiva ten diferentes autores para cada capítulo (os detalles do "
+"capítulo introducense máis adiante neste proceso)."
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr "Obra colectiva"
+
+msgid "submission.workflowType.editedVolume"
+msgstr "Obra colectiva: os autores están asociados ao seu propio capítulo."
+
+msgid "submission.workflowType.authoredWork"
+msgstr "Monografía: os autores están asociados ao libro completo."
+
+msgid "submission.workflowType.change"
+msgstr "Cambiar"
+
+msgid "submission.editorName"
+msgstr "{$editorName} (ed)"
+
+msgid "submission.monograph"
+msgstr "Monografía"
+
+msgid "submission.published"
+msgstr "Preparado para a produción"
+
+msgid "submission.fairCopy"
+msgstr "Copia limpa"
+
+msgid "submission.authorListSeparator"
+msgstr "; "
+
+msgid "submission.artwork.permissions"
+msgstr "Permisos"
+
+msgid "submission.chapter"
+msgstr "Capítulo"
+
+msgid "submission.chapters"
+msgstr "Capítulos"
+
+msgid "submission.chapter.addChapter"
+msgstr "Engadir capítulo"
+
+msgid "submission.chapter.editChapter"
+msgstr "Editar capítulo"
+
+msgid "submission.chapter.pages"
+msgstr "Páxinas"
+
+msgid "submission.copyedit"
+msgstr "Corrixir o estilo"
+
+msgid "submission.publicationFormats"
+msgstr "Formatos de publicación"
+
+msgid "submission.proofs"
+msgstr "Probas"
+
+msgid "submission.download"
+msgstr "Descargar"
+
+msgid "submission.sharing"
+msgstr "Compartir"
+
+msgid "manuscript.submission"
+msgstr "Proposta de manuscrito"
+
+msgid "submission.round"
+msgstr "Rolda {$round}"
+
+msgid "submissions.queuedReview"
+msgstr "En revisión"
+
+msgid "manuscript.submissions"
+msgstr "Envíos de manuscritos"
+
+msgid "submission.metadata"
+msgstr "Metadatos"
+
+msgid "submission.supportingAgencies"
+msgstr "Axencias de apoio"
+
+msgid "grid.action.addChapter"
+msgstr "Crear un novo capítulo"
+
+msgid "grid.action.editChapter"
+msgstr "Editar este capítulo"
+
+msgid "grid.action.deleteChapter"
+msgstr "Eliminar este capítulo"
+
+msgid "submission.submit"
+msgstr "Comezar o envío dun novo libro"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Comezar un novo envío a"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr "Novo envío"
+
+msgid "submission.submit.upload"
+msgstr "Cargar"
+
+msgid "author.volumeEditor"
+msgstr ""
+
+msgid "author.isVolumeEditor"
+msgstr "Identificar a este colaborador/a como editor/a deste volume."
+
+msgid "submission.submit.seriesPosition"
+msgstr "Posición na serie"
+
+msgid "submission.submit.seriesPosition.description"
+msgstr "Exemplos: libro 2, volumen 2"
+
+msgid "submission.submit.privacyStatement"
+msgstr "Declaración de privacidade"
+
+msgid "submission.submit.contributorRole"
+msgstr "Rol de colaborador"
+
+msgid "submission.submit.submissionFile"
+msgstr "Arquivo do envío"
+
+msgid "submission.submit.prepare"
+msgstr "Preparar"
+
+msgid "submission.submit.catalog"
+msgstr "Catálogo"
+
+msgid "submission.submit.metadata"
+msgstr "Metadatos"
+
+msgid "submission.submit.finishingUp"
+msgstr "Rematar"
+
+msgid "submission.submit.confirmation"
+msgstr "Confirmación"
+
+msgid "submission.submit.nextSteps"
+msgstr "Seguintes pasos"
+
+msgid "submission.submit.coverNote"
+msgstr "Nota para o Editor"
+
+msgid "submission.submit.generalInformation"
+msgstr "Información xeral"
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"A editorial recibiu unha notificación do teu envío e recibiches por correo "
+"electrónico unha confirmación dos teus rexistros. Unha vez que o editor/a "
+"revise o envío, porase en contacto convosco."
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Lea e marque os elementos da lista de verificación do envío. Quedan "
+"{$itemsRemaining} elementos sen marcar."
+
+msgid "submission.submit.placement"
+msgstr "Colocación do envío"
+
+msgid "submission.submit.userGroup"
+msgstr "Enviar no meu rol de..."
+
+msgid "submission.submit.noContext"
+msgstr "Non se puido atopar a editorial deste envío."
+
+msgid "grid.chapters.title"
+msgstr "Capítulos"
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Eliminar o arquivo do corrector"
+
+msgid "submission.complete"
+msgstr "Aprobado"
+
+msgid "submission.incomplete"
+msgstr "Esperando aprobación"
+
+msgid "submission.editCatalogEntry"
+msgstr "Rexistro"
+
+msgid "submission.catalogEntry.new"
+msgstr "Nova entrada no catálogo"
+
+msgid "submission.catalogEntry.add"
+msgstr "Engadir os seleccionados ao catálogo"
+
+msgid "submission.catalogEntry.select"
+msgstr "Seleccione as monografías a engadir ao catálogo"
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr "Debes seleccionar polo menos unha monografía para engadir ao catálogo."
+
+msgid "submission.catalogEntry.confirm"
+msgstr "Engade este libro ao catálogo público"
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr "Confirma que o envío está listo para colocarse no catálogo."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr "Esta monografía está lista para ser incluída no catálogo público."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr "Ver envío"
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr "Datas de publicación"
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr "Todos os capítulos utilizarán a data de publicación da monografía."
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr "Cada capítulo pode ter a súa propia data de publicación."
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Monografía"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Catálogo"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Formato de publicación"
+
+msgid "submission.event.metadataPublished"
+msgstr "Os metadatos da monografía están aprobados para a súa publicación."
+
+msgid "submission.event.metadataUnpublished"
+msgstr "Os metadatos da monografía xa non están publicados."
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr "O formato de publicación \"{$publicationFormatName}\" está dispoñible."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr ""
+"O formato de publicación \"{$publicationFormatName}\" xa non está dispoñible."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+"O formato de publicación \"{$publicationFormatName}\" está aprobado para a "
+"súa publicación."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr ""
+"O formato de publicación \"{$publicationFormatName}\" xa non está publicado."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "Actualizáronse os metadatos do catálogo."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr ""
+"Actualizáronse os metadatos do formato de publicación \"{$formatName}\"."
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "Creouse o formato de publicación \"{$formatName}\"."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "Eliminouse o formato de publicación \"{$formatName}\"."
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr "Enviar para revisión externa"
+
+msgid "workflow.review.externalReview"
+msgstr "Revisión externa"
+
+msgid "submission.upload.fileContents"
+msgstr "Compoñente do envío"
+
+msgid "submission.dependentFiles"
+msgstr "Arquivos dependentes"
+
+msgid "submission.metadataDescription"
+msgstr ""
+"Estas especificacións están baseadas no conxunto de metadatos Dublin Core, "
+"un estándar internacional usado para describir o contido editorial."
+
+msgid "section.any"
+msgstr "Calquera serie"
+
+msgid "submission.list.monographs"
+msgstr "Monografías"
+
+msgid "submission.list.countMonographs"
+msgstr "{$count} monografías"
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr "{$count} de {$total} monografías"
+
+msgid "submission.list.orderFeatures"
+msgstr "Ordenar elementos"
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+"Arrastra e solta ou prema os botóns arriba e abaixo para cambiar a orde dos "
+"elementoss na páxina de inicio."
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+"Arrastra e solta ou prema os botóns arriba e abaixo para cambiar a orde dos "
+"elementos no {$title}."
+
+msgid "submission.list.saveFeatureOrder"
+msgstr "Gardar la orde"
+
+msgid "submission.list.viewEntry"
+msgstr "Ver entrada"
+
+msgid "catalog.browseTitles"
+msgstr "{$numTitles} títulos"
+
+msgid "publication.catalogEntry"
+msgstr "Catálogo"
+
+msgid "publication.catalogEntry.success"
+msgstr "Actualizáronse os detalles da entrada do catálogo."
+
+msgid "publication.invalidSeries"
+msgstr "Non se puido atopar a serie desta publicación."
+
+msgid "publication.inactiveSeries"
+msgstr "{$series} (Inactivo)"
+
+msgid "publication.required.issue"
+msgstr ""
+"A publicación debe asignarse a un número antes de que poida ser publicada."
+
+msgid "publication.publishedIn"
+msgstr "Publicado en {$issueName}."
+
+msgid "publication.publish.confirmation"
+msgstr ""
+"Cumpríronse todos os requisitos de publicación. Seguro que queres facer "
+"pública esta entrada no catálogo?"
+
+msgid "publication.scheduledIn"
+msgstr ""
+"Programado para a súa publicación en {$issueName}"
+"a>."
+
+msgid "submission.publication"
+msgstr "Publicación"
+
+msgid "publication.status.published"
+msgstr "Publicado"
+
+msgid "submission.status.scheduled"
+msgstr "Programado"
+
+msgid "publication.status.unscheduled"
+msgstr "Desprogramado"
+
+msgid "submission.publications"
+msgstr "Publicacións"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+"O ano dos dereitos de autor establecerase automaticamente cando se publique "
+"nun número."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+"O ano do copyright establecerase automaticamente en función da data de "
+"publicación."
+
+msgid "publication.datePublished"
+msgstr "Data de publicación"
+
+msgid "publication.editDisabled"
+msgstr "Esta versión publicouse e non se pode editar."
+
+msgid "publication.event.published"
+msgstr "O envío publicouse."
+
+msgid "publication.event.scheduled"
+msgstr "O envío programouse para a súa publicación."
+
+msgid "publication.event.unpublished"
+msgstr "O envio retirouse da publicación."
+
+msgid "publication.event.versionPublished"
+msgstr "Publicouse unha nova versión."
+
+msgid "publication.event.versionScheduled"
+msgstr "Unha nova versión foi programada para a sua spublicación."
+
+msgid "publication.event.versionUnpublished"
+msgstr "Eliminouse unha versión da publicación."
+
+msgid "publication.invalidSubmission"
+msgstr "Non se puido atopar o envío desta publicación."
+
+msgid "publication.publish"
+msgstr "Publicar"
+
+msgid "publication.publish.requirements"
+msgstr "Para poder publicar isto débense cumprir os seguintes requisitos."
+
+msgid "publication.required.declined"
+msgstr "Non se pode publicar un envío rexeitado."
+
+msgid "publication.required.reviewStage"
+msgstr ""
+"O envío debe estar nas fases de corrección ou produción antes de que poida "
+"ser publicado."
+
+msgid "submission.license.description"
+msgstr ""
+"A licenza establecerase automaticamente en {$licenseName} cando se publique."
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+"Os dereitos de autor asignaranse automaticamente a {$copyright} cando se "
+"publique."
+
+msgid "submission.copyrightOther.description"
+msgstr "Asignar dereitos de autor para os envíos publicados á seguinte parte."
+
+msgid "publication.unpublish"
+msgstr "Retirar da publicación"
+
+msgid "publication.unpublish.confirm"
+msgstr "Seguro/a que non queres que se publique?"
+
+msgid "publication.unschedule.confirm"
+msgstr "Seguro/a que non queres que isto se programe para a súa publicación?"
+
+msgid "publication.version.details"
+msgstr "Detalles da publicación da versión {$version}"
+
+msgid "submission.queries.production"
+msgstr "Debates de producción"
+
+msgid "publication.chapter.landingPage"
+msgstr ""
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+
+msgid "publication.publish.success"
+msgstr ""
+
+msgid "chapter.volume"
+msgstr ""
+
+msgid "submission.withoutChapter"
+msgstr ""
+
+msgid "submission.chapterCreated"
+msgstr ""
+
+msgid "chapter.pages"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+
+msgid "publication.chapter.licenseUrl"
+msgstr ""
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr ""
+
+msgid "submission.copyright.description"
+msgstr ""
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+
+msgid "submission.sectionNotFound"
+msgstr ""
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr ""
+
+msgid "submission.wizard.submitting.monograph"
+msgstr ""
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
diff --git a/locale/hr/admin.po b/locale/hr/admin.po
new file mode 100644
index 00000000000..58a3e379958
--- /dev/null
+++ b/locale/hr/admin.po
@@ -0,0 +1,192 @@
+# Boris Badurina , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-02-23 08:15+0000\n"
+"Last-Translator: Boris Badurina \n"
+"Language-Team: Croatian "
+"\n"
+"Language: hr\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 "admin.hostedContexts"
+msgstr "Mediji"
+
+msgid "admin.settings.appearance.success"
+msgstr "Postavke izgleda stranice uspješno su ažurirane."
+
+msgid "admin.settings.config.success"
+msgstr "Postavke konfiguracije stranice uspješno su ažurirane."
+
+msgid "admin.settings.redirect"
+msgstr "Preusmjeravanje na nakladnika"
+
+msgid "admin.siteManagement.description"
+msgstr ""
+"Dodajte, uredite ili uklonite medije s ove stranice i upravljajte postavkama "
+"na cijeloj stranici."
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+"Učiniti SUSHI API krajnje točke javno dostupne za sve medije na ovoj "
+"stranici ili ne. Ako omogućite javni API, svaki medij može nadjačati ovu "
+"postavku kako bi njegova statistika postala privatnom. Međutim, ako "
+"onemogućite javni API, mediji ne mogu učiniti svoj API javnim."
+
+msgid "admin.settings.info.success"
+msgstr "Podaci o stranici uspješno su ažurirani."
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"Zahtjevi za glavnu stranicu bit će preusmjereni na ovog nakladnika. Ovo može "
+"biti korisno ako web mjesto, na primjer, samo jednog nakladnika ugošćuje."
+
+msgid "admin.settings.noPressRedirect"
+msgstr "Ne preusmjeravati"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr "Ovo će biti zadani jezik za stranicu i sve ugošćene nakladnike."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "* Označene lokacije mogu biti nepotpune."
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Odaberite sve lokalne postavke za podršku na web mjestu. Odabrane postavke "
+"bit će dostupne za korištenje svim medijima koji se nalaze na stranici, a "
+"također će se pojaviti u izborniku za odabir jezika koji će se pojaviti na "
+"svakoj stranici web-mjesta (što se može nadjačati na stranicama specifičnim "
+"za medije). Ako nije odabrano više jezika, izbornik za prebacivanje jezika "
+"neće se pojaviti, a proširene jezične postavke neće biti dostupne medijima."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"Jeste li sigurni da želite deinstalirati ove lokalne postavke? To može "
+"utjecati na bilo koji medij koji trenutno koristi ove postavke."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Odaberite sve dodatne lokalne postavke za instaliranje podrške u ovom "
+"sustavu. Lokacije moraju biti instalirane prije nego što ih mogu koristiti "
+"mediji. Pogledajte OMP dokumentaciju za informacije o dodavanju podrške za "
+"nove jezike."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"Jeste li sigurni da želite onemogućiti ove lokalne postavke? To može "
+"utjecati na bilo koji medij koji trenutno koristi lokalne postavke."
+
+msgid "admin.systemVersion"
+msgstr "OMP verzija"
+
+msgid "admin.systemConfiguration"
+msgstr "OMP konfiguracija"
+
+msgid "admin.presses.pressSettings"
+msgstr "Postavke za medije"
+
+msgid "admin.presses.noneCreated"
+msgstr "Nisu još stvoreni mediji."
+
+msgid "admin.contexts.create"
+msgstr "Stvori medij"
+
+msgid "admin.contexts.form.titleRequired"
+msgstr "Potreban je naslov."
+
+msgid "admin.contexts.form.pathRequired"
+msgstr "Potrebna je putanja."
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+"Putanja može sadržavati samo slova, brojeve i znakove _ i -. Mora započeti i "
+"završiti slovom ili brojem."
+
+msgid "admin.contexts.form.pathExists"
+msgstr "Odabranu putanju već koristi drugi medij."
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr ""
+"Primarne lokalne postavke moraju biti jedne od podržanih lokalnih postavki."
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} uspješno je kreiran."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} uspješno je uređen."
+
+msgid "admin.contexts.contextDescription"
+msgstr "Opis medija"
+
+msgid "admin.presses.addPress"
+msgstr "Dodaj medij"
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"NAPOMENA!\n"
+"
Sustav nije mogao automatski prebrisati konfiguracijsku datoteku. Da "
+"biste primijenili svoje konfiguracijske promjene, morate otvoriti config."
+"inc.php u odgovarajućem uređivaču teksta i zamijeniti njegov sadržaj "
+"sadržajem tekstualnog polja ispod.
"
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+"Odaberite medije kojima bi se trebalo dopustiti skupno slanje e-pošte. Kada "
+"je ova značajka omogućena, upravitelj medija moći će poslati e-poštu svim "
+"korisnicima koji su registrirani u njihovom mediju.
Zlouporaba ove "
+"značajke za slanje neželjene e-pošte može kršiti zakone protiv neželjene "
+"pošte u nekim jurisdikcijama i može rezultirati da je e-pošta vašeg "
+"poslužitelja blokirana kao neželjena pošta. Zatražite tehnički savjet prije "
+"nego što omogućite ovu značajku i razmislite o savjetovanju s voditeljima "
+"medija kako biste osigurali da se koristi na odgovarajući "
+"način.
Daljnja ograničenja ove značajke mogu se omogućiti za svaki "
+"medij posjetom čarobnjaka za postavke na popisu Mediji."
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+"Voditelj medija neće moći slati skupne poruke e-pošte nijednoj od dolje "
+"odabranih uloga. Koristite ovu postavku za ograničavanje zlouporabe značajke "
+"obavijesti e-poštom. Na primjer, možda bi bilo sigurnije onemogućiti skupnu "
+"e-poštu čitateljima, autorima ili drugim velikim grupama korisnika koji nisu "
+"pristali primati takve e-poruke.
Značajka skupne e-pošte može se "
+"potpuno onemogućiti za ovaj medij u Administrator > Postavke web-mjesta."
+
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
+"Značajka skupne e-pošte onemogućena je za ovaj medij. Omogućite ovu značajku "
+"u Administrator > Postavke web-mjesta."
+
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr "Poglavlje ID nije cijeli broj"
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr "Serija ID nije cijeli broj"
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+"Odaberite vrstu zemljopisne statistike korištenja koju mogu prikupiti mediji "
+"na ovoj stranici. Detaljnija geografska statistika može značajno povećati "
+"veličinu vaše baze podataka i u nekim rijetkim slučajevima može potkopati "
+"anonimnost vaših posjetitelja. Svaki medij može drugačije konfigurirati ovu "
+"postavku, ali medij nikada ne može prikupiti detaljnije zapise od onih koji "
+"su ovdje konfigurirani. Na primjer, ako stranica podržava samo zemlju i "
+"regiju, medij može odabrati zemlju i regiju ili samo zemlju. Medij neće moći "
+"pratiti državu, regiju i grad."
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+"Omogućite institucionalnu statistiku ako želite da mediji na ovoj stranici "
+"mogu prikupljati statistiku korištenja po instituciji. Mediji će morati "
+"dodati ustanovu i njezine IP raspone kako bi koristili ovu značajku. "
+"Omogućavanje institucionalne statistike može značajno povećati veličinu vaše "
+"baze podataka."
+
+#, fuzzy
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr "Koristite stranicu kao platformu za sve časopise."
diff --git a/locale/hr/api.po b/locale/hr/api.po
new file mode 100644
index 00000000000..6c8653333f6
--- /dev/null
+++ b/locale/hr/api.po
@@ -0,0 +1,40 @@
+# Boris Badurina , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-02-23 07:58+0000\n"
+"Last-Translator: Boris Badurina \n"
+"Language-Team: Croatian \n"
+"Language: hr\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 "api.emails.403.disabled"
+msgstr "Notifikacija e-poštom nije umogućena za ovu nakladu."
+
+msgid "api.submissions.400.submissionIdsRequired"
+msgstr "Treba osigurati barem jednu prijavu za unos u katalog."
+
+msgid "api.submissions.400.submissionsNotFound"
+msgstr "Jedna ili više odabranih prijava koje ne mogu biti pronađene."
+
+msgid "api.submissions.400.wrongContext"
+msgstr "Prijava koju ste zatražili nije ovdje."
+
+msgid "api.emailTemplates.403.notAllowedChangeContext"
+msgstr "Nemate dozvolu prebacivanja obrasca e-pošte u druge naklade."
+
+msgid "api.publications.403.contextsDidNotMatch"
+msgstr "Publikacija koju ste zatražili nije dio ove naklade."
+
+msgid "api.publications.403.submissionsDidNotMatch"
+msgstr "Publikacija koju ste zatražili nije dio ove prijave."
+
+msgid "api.submissions.403.cantChangeContext"
+msgstr "Ne možete promijeniti nakladu prijave."
+
+msgid "api.submission.400.inactiveSection"
+msgstr "Ova sekcija više ne prima prijave."
diff --git a/locale/hr/author.po b/locale/hr/author.po
new file mode 100644
index 00000000000..7c7da855d07
--- /dev/null
+++ b/locale/hr/author.po
@@ -0,0 +1,21 @@
+# Melita Aleksa Varga , 2023.
+# Sara Rapp , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-01-14 11:02+0000\n"
+"Last-Translator: Sara Rapp \n"
+"Language-Team: Croatian \n"
+"Language: hr\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 "author.submit.notAccepting"
+msgstr "Ovaj tisak trenutno ne prihvaća prijave."
+
+msgid "author.submit"
+msgstr "Novi rukopis"
diff --git a/locale/hr/default.po b/locale/hr/default.po
new file mode 100644
index 00000000000..d5fd12ab03c
--- /dev/null
+++ b/locale/hr/default.po
@@ -0,0 +1,187 @@
+# Karla Zapalac , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-01-28 18:48+0000\n"
+"Last-Translator: Karla Zapalac \n"
+"Language-Team: Croatian \n"
+"Language: hr\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 "default.genres.appendix"
+msgstr "Prilog"
+
+msgid "default.genres.bibliography"
+msgstr "Literatura"
+
+msgid "default.genres.manuscript"
+msgstr "Rukopis knjige"
+
+msgid "default.genres.chapter"
+msgstr "Rukopis poglavlja"
+
+msgid "default.genres.glossary"
+msgstr "Glosar"
+
+msgid "default.genres.index"
+msgstr "Registar"
+
+msgid "default.genres.preface"
+msgstr "Predgovor"
+
+msgid "default.genres.prospectus"
+msgstr "Skica"
+
+msgid "default.genres.table"
+msgstr "Tablica"
+
+msgid "default.genres.figure"
+msgstr "Grafička ilustracija"
+
+msgid "default.genres.photo"
+msgstr "Slika"
+
+msgid "default.genres.illustration"
+msgstr "Ilustracija"
+
+msgid "default.genres.other"
+msgstr "Drugo"
+
+msgid "default.groups.name.manager"
+msgstr "Voditelj/ica izdavaštva"
+
+msgid "default.groups.plural.manager"
+msgstr "Voditelji/ce izdavaštva"
+
+msgid "default.groups.abbrev.manager"
+msgstr "VI"
+
+msgid "default.groups.name.editor"
+msgstr "Urednik/ca"
+
+msgid "default.groups.plural.editor"
+msgstr "Urednici/e"
+
+msgid "default.groups.abbrev.editor"
+msgstr "Ur."
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Urednik/ca serije"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Urednici/e serije"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "US"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr "Upravitelj/ica pretplata"
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr "Upravitelji/ce pretplata"
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr "UprPret"
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Autor/ica poglavlja"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Autori/ce poglavlja"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "AP"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Urednik/ca zbornika"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Urednici/e zbornika"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "UZ"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+"Autori su pozvani napraviti podnesak svojih radova za ovaj tisak. Oni "
+"podnesci za koje se smatra da su prikladni bit će poslani na recenziju kod "
+"kolega prije nego što se utvrdi hoće li biti prihvaćeni ili odbijeni."
+"p>
Prije podnošenja podneska, autori su odgovorni za dobivanje dopuštenja "
+"za objavljivanje bilo kojeg materijala uključenog u podnesak, npr. kao što "
+"su fotografije, dokumenti i skupovi podataka. Svi autori navedeni u podnesku "
+"moraju pristati biti identificirani kao autori. Gdje je prikladno, "
+"istraživanje bi trebalo odobriti odgovarajuće etičko povjerenstvo u skladu "
+"sa pravnim zahtjevima zemlje u kojoj se studija provodi.
Urednik može "
+"odbiti podnesak ako ne zadovoljava minimalne standarde kvalitete. Prije "
+"podnošenja, molimo provjerite jesu li opseg i nacrt knjige pravilno "
+"strukturirani i artikulirani. Naslov bi trebao biti sažet, a sažetak bi "
+"trebao biti samostalan. To će povećati vjerojatnost da recenzenti pristanu "
+"recenzirati knjigu. Kada budete mislili da vaš podnesak zadovoljava ovaj "
+"standard, molimo slijedite kontrolni popis u nastavku da biste pripremili "
+"svoj podnesak.
"
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+"Svi podnesci moraju ispunjavati sljedeće zahtjeve.
- Ovaj "
+"podnesak ispunjava zahtjeve navedene u Smjernicama za autore.
- Ovaj "
+"podnesak nije prethodno objavljen, niti je pred drugim tiskom na razmatranju."
+"
- Sve reference su provjerene radi točnosti i potpunosti.
- Sve "
+"tablice i brojevi su numerirani i označeni.
- Dobijeno je dopuštenje "
+"za objavljivanje svih fotografija, skupova podataka i drugih materijala koji "
+"su priloženi u ovom podnesku.
"
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"Imena i adrese e-pošte unesene na ovoj web-stranici koristit će se samo u "
+"navedene svrhe i neće se prosljeđivati trećim stranama.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"Ovaj izdavač nudi besplatan pristup (Open Access) svom sadržaju, u skladu s "
+"osnovnom pretpostavkom da besplatna javna dostupnost istraživanja koristi "
+"svjetskoj razmjeni znanja."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"Želite li biti u tijeku s novostima naše izdavačke kuće? Kao registrirani/a "
+"čitatelj/ica sadržaj svake novoobjavljene monografije dobit ćete na e-poštu. "
+"Da biste se prijavili za ovu uslugu, slijedite vezu Registracija u gornjem desnom kutu "
+"početne stranice. Naravno, uvjeravamo vas da se vaše ime i adresa e-pošte "
+"neće koristiti u druge svrhe (pogledajte Pravila o privatnosti."
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"Zainnteresirani ste uručiti nam rukopis? Onda bismo Vas htjeli uputiti na "
+"stranicu O nama. Ondje ćete "
+"pronaći smjernice izdavača. Također pogledajte Smjernice za autore/ice"
+"a>. Autori/ce se moraju registrirati prije slanja knjige ili antologijskog priloga. Ako ste "
+"već registrirani, možete se prijaviti"
+"a> i slijediti pet \"koraka za uručivanje\"."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Potičemo akademske knjižničare/ke da ovog izdavača uključe u digitalni "
+"inventar svoje knjižnice. Knjižnice također mogu koristiti ovaj otvoreni "
+"publikacijski sustav izdavanja za ugošćavanje izdavača u čiji su rad "
+"uključeni njihovi istraživači/ce (pogledajte Open Monograph Press)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Vanjski/a recenzent/ica"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Vanjski/e recenzenti/ce"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "VR"
diff --git a/locale/hr/editor.po b/locale/hr/editor.po
new file mode 100644
index 00000000000..7cca5cde7be
--- /dev/null
+++ b/locale/hr/editor.po
@@ -0,0 +1,213 @@
+# paola , 2022.
+# Melita Aleksa Varga , 2023.
+# Maja Jurić , 2023.
+# Karla Zapalac , 2023.
+# Boris Badurina , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-02-23 08:15+0000\n"
+"Last-Translator: Boris Badurina \n"
+"Language-Team: Croatian "
+"\n"
+"Language: hr\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 "editor.submissionArchive"
+msgstr "Arhiva rukopisa"
+
+msgid "editor.monograph.cancelReview"
+msgstr "Odbaci upit"
+
+msgid "editor.monograph.clearReview"
+msgstr "Obriši recenzenta/icu"
+
+msgid "editor.monograph.enterRecommendation"
+msgstr "Unesi prijedlog"
+
+msgid "editor.monograph.enterReviewerRecommendation"
+msgstr "Unesi prijedlog recenzenta/ice"
+
+msgid "editor.monograph.recommendation"
+msgstr "Prijedlog"
+
+msgid "editor.monograph.selectReviewerInstructions"
+msgstr ""
+"Odaberi recenzenta/icu iznad i pritisni gumb 'Odaberi recenzenta/icu' za "
+"nastavak."
+
+msgid "editor.monograph.replaceReviewer"
+msgstr "Zamijeni recenzenta/icu"
+
+msgid "editor.monograph.editorToEnter"
+msgstr "Urednici/e unosi/e prijedloge/komentare za recenzenta/icu"
+
+msgid "editor.monograph.uploadReviewForReviewer"
+msgstr "Učitaj recenziju"
+
+msgid "editor.monograph.peerReviewOptions"
+msgstr "Opcije stručnog mišljenja"
+
+msgid "editor.monograph.selectProofreadingFiles"
+msgstr "Datoteke za lekturu"
+
+msgid "editor.monograph.internalReview"
+msgstr "Pokreni interni pregled"
+
+msgid "editor.monograph.internalReviewDescription"
+msgstr ""
+"Započinjete postupak internog pregleda. Odaberi datoteke, koje su dio "
+"predanog rukopisa, u nastavku da biste ih poslali u fazu pregleda."
+
+msgid "editor.monograph.externalReview"
+msgstr "Započni vanjski pregled"
+
+msgid "editor.monograph.final.selectFinalDraftFiles"
+msgstr "Odaberi konačne verzije"
+
+msgid "editor.monograph.final.currentFiles"
+msgstr "Trenutne konačne verzije"
+
+msgid "editor.monograph.copyediting.currentFiles"
+msgstr "Trenutne datoteke"
+
+msgid "editor.monograph.copyediting.personalMessageToUser"
+msgstr "Poruka korisniku/ci"
+
+msgid "editor.monograph.legend.submissionActions"
+msgstr "Radnje za podnošenje"
+
+msgid "editor.monograph.legend.submissionActionsDescription"
+msgstr "Za vrijeme podnošenja moguće radnje i opcije."
+
+msgid "editor.monograph.legend.sectionActions"
+msgstr "Radnje odlomka"
+
+msgid "editor.monograph.legend.sectionActionsDescription"
+msgstr ""
+"Za specifične opcije određenog odjeljka , npr. učitavanje datoteka ili "
+"dodavanje korisnika/ca."
+
+msgid "editor.monograph.legend.itemActions"
+msgstr "Radnje vezane uz naziv"
+
+msgid "editor.monograph.legend.itemActionsDescription"
+msgstr "Specifične radnje i opcije za individualnu datoteku."
+
+msgid "editor.monograph.legend.catalogEntry"
+msgstr ""
+"Pogledaj i upravljaj kataloškim unosom (uključujući metapodatke i formate)"
+
+msgid "editor.monograph.legend.bookInfo"
+msgstr ""
+"Pogledaj i upravljaj metapodacima, bilješkama, obavijestima i povijesti za "
+"unos"
+
+msgid "editor.monograph.legend.participants"
+msgstr ""
+"Pogledaj i upravljaj onima koji su uključeni u uređivanje rukopisa, kao npr. "
+"autori/ce, urednici/e, dizajneri/ce"
+
+msgid "editor.monograph.legend.add"
+msgstr "Učitaj datoteku u ovom odjeljku"
+
+msgid "editor.monograph.legend.add_user"
+msgstr "Dodaj korisnika ovom odjeljku"
+
+msgid "editor.monograph.legend.settings"
+msgstr ""
+"Pogledaj i pristupi postavkama kao što su postavke informacije i brisanja"
+
+msgid "editor.monograph.legend.more_info"
+msgstr "Više informacija: bilješke o datotekama, opcije obavijesti i povijest"
+
+msgid "editor.monograph.legend.notes_none"
+msgstr ""
+"Podaci o datoteci: bilješke, opcije obavijesti i povijest (još nisu dodane "
+"nikakve bilješke)"
+
+msgid "editor.monograph.legend.notes"
+msgstr ""
+"Informacije o datoteci: bilješke, opcije obavijesti i povijest (bilješke "
+"postoje)"
+
+msgid "editor.monograph.legend.notes_new"
+msgstr ""
+"Podaci o datoteci: bilješke, opcije obavijesti i povijest (komentari su "
+"dodani od posljednjeg posjeta)"
+
+msgid "editor.monograph.legend.edit"
+msgstr "Uredi stavku"
+
+msgid "editor.monograph.legend.delete"
+msgstr "Izbriši stavku"
+
+msgid "editor.monograph.legend.in_progress"
+msgstr "Radnja se još provodi ili još nije dovršena"
+
+msgid "editor.monograph.legend.complete"
+msgstr "Radnja je izvršena"
+
+msgid "editor.monograph.legend.uploaded"
+msgstr "Datoteku je učitala funkcija navedena u naslovu stupca"
+
+msgid "editor.submission.introduction"
+msgstr ""
+"U fazi predaje, odgovorni/a izdavač/ica nakon pregleda predanih rukopisa (o "
+"čemu je autor/ica uvijek obaviješten/a) određuje odgovarajuću radnju: "
+"poslati na interni pregled (tada je potrebno odabrati datoteke namijenjene "
+"internom pregledu); poslati na vanjski pregled (tada je potrebno odabrati "
+"datoteke namijenjene vanjskom pregledu); prihvatiti unos (tada je potrebno "
+"odabrati datoteke za uređivanje) ili odbiti unos (bit će arhiviran)."
+
+msgid "editor.monograph.editorial.fairCopy"
+msgstr "Odobrena je verzija rukopisa spremna"
+
+msgid "editor.monograph.proofs"
+msgstr "Ispis namjenjen lekturi"
+
+msgid "editor.monograph.production.approvalAndPublishing"
+msgstr "Odobrenje i publikacija"
+
+msgid "editor.monograph.production.approvalAndPublishingDescription"
+msgstr ""
+"Različiti formati kao što su tvrdi uvez, meki uvez i digitalni formati mogu "
+"se učitati pod 'Formati' u nastavku. Tablicu formata možete koristiti kao "
+"popis za provjeru što još treba učiniti za objavljivanje u odabranom formatu."
+
+msgid "editor.monograph.production.publicationFormatDescription"
+msgstr ""
+"Dodajte formate (npr. digitalni, meki uvez) za koje urednik treba napraviti "
+"ispis za lekturu. Datoteke za provjeru moraju biti označene kao "
+"\"prihvaćene\", a metapodaci uključeni u katalog i odobreni za "
+"objavljivanje kako bi se knjiga prikazala kao dostupna (to znači "
+"'objavljeno')."
+
+msgid "editor.monograph.approvedProofs.edit"
+msgstr "Uvjeti preuzimanja"
+
+msgid "editor.monograph.approvedProofs.edit.linkTitle"
+msgstr "Postavi uvjete"
+
+msgid "editor.monograph.proof.addNote"
+msgstr "Dodaj odgovor"
+
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+"Sve datoteke koje su već učitane u bilo kojoj fazi podnošenja mogu se dodati "
+"na popis za ispis u svrhu lekture označavanjem potvrdnog kvadratića za "
+"uključivanje u nastavku, a zatim klikom na pretraživanje: prikazat će se sve "
+"dostupne datoteke i moći će se odabrati da ih se uključi u popis."
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+"Public identifier '{$publicIdentifier}' već postoji za drugi objekt iste "
+"vrste. Odaberite jedinstvene identifikatore za objekte iste vrste unutar "
+"svoje izdavačke kuće."
+
+msgid "editor.submissions.assignedTo"
+msgstr "Dodijeljeno uredniku/ci"
diff --git a/locale/hr/emails.po b/locale/hr/emails.po
new file mode 100644
index 00000000000..e05124370fa
--- /dev/null
+++ b/locale/hr/emails.po
@@ -0,0 +1,525 @@
+# Melita Aleksa Varga , 2023.
+# Sara Rapp , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-01-27 17:48+0000\n"
+"Last-Translator: Sara Rapp \n"
+"Language-Team: Croatian \n"
+"Language: hr\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 "emails.passwordResetConfirm.subject"
+msgstr "Potvrda ponovnog postavljanja lozinke"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"Primili smo zahtjev za ponovno postavljanje Vaše lozinke za web mjesto "
+"{$siteTitle}.
\n"
+"
\n"
+"Ako niste podnijeli ovaj zahtjev, zanemarite ovu e-poštu i vaša lozinka neće "
+"biti promijenjena. Ako želite poništiti lozinku, kliknite na donji URL.
\n"
+"
\n"
+"Poništi moju lozinku: {$passwordResetUrl}
\n"
+"
\n"
+"{$siteContactName}"
+
+msgid "emails.passwordReset.subject"
+msgstr ""
+
+msgid "emails.passwordReset.body"
+msgstr ""
+
+msgid "emails.userRegister.subject"
+msgstr "Registracija"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Sada ste registrirani kao korisnik s {$contextName}. U ovu e-poruku "
+"uključili smo Vaše korisničko ime i lozinku, koji su potrebni za sav rad s "
+"ovim medijem putem njegove web stranice. U svakom trenutku možete zatražiti "
+"brisanje s popisa korisnika tako da me kontaktirate.
\n"
+"
\n"
+"Korisničko ime: {$recipientUsername}
\n"
+"Lozinka: {$password}
\n"
+"
\n"
+"Hvala,
\n"
+"{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr "Potvrdite svoj račun"
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Napravili ste račun s {$contextName}, ali prije nego što ga počnete "
+"koristiti, morate potvrditi svoj račun e-pošte. Da biste to učinili, "
+"jednostavno slijedite poveznicu u nastavku:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Hvala,
\n"
+"{$contextSignature}"
+
+msgid "emails.userValidateSite.subject"
+msgstr "Potvrdite svoj račun"
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Napravili ste račun na {$siteTitle}, ali prije nego što ga počnete "
+"koristiti, morate potvrditi svoj račun e-pošte. Da biste to učinili, "
+"jednostavno slijedite poveznicu u nastavku:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Hvala,
\n"
+"{$siteSignature}"
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Registriranje kao ocjenjivač s {$contextName}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"U svjetlu vaše stručnosti, uzeli smo si tu slobodu registrirati Vaše ime u "
+"bazi podataka ocjenjivača za {$contextName}. To ne podrazumijeva bilo kakav "
+"oblik obveze s Vaše strane, već nam jednostavno omogućuje da Vam pristupimo "
+"s podneskom na mogući pregled. Kada budete pozvani na recenziju, imat ćete "
+"priliku vidjeti naslov i sažetak dotičnog rada i uvijek ćete biti u poziciji "
+"prihvatiti ili odbiti poziv. Također možete zatražiti u bilo kojem trenutku "
+"da se Vaše ime ukloni s ovog popisa ocjenjivača.
\n"
+"
\n"
+"Dajemo Vam korisničko ime i lozinku, koji se koriste u svim interakcijama s "
+"medijima putem web stranice. Možda biste željeli, na primjer, ažurirati svoj "
+"profil, uključujući svoje interese za pregled.
\n"
+"
\n"
+"Korisničko ime: {$recipientUsername}
\n"
+"Lozinka: {$password}
\n"
+"
\n"
+"Hvala,
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.subject"
+msgstr "Dodijeljeni ste kao urednik na podnesku za {$contextName}"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+"Poštovani {$recipientName},
Sljedeći podnesak dodijeljen Vam je da "
+"ga pregledate kroz urednički postupak.
{ $submissionTitle}
{$authors}"
+"p>
Sažetak
{$submissionAbstract}Ako smatrate da je podnesak "
+"relevantan za {$contextName}, proslijedite podnesak u fazu pregleda odabirom "
+"\"Pošalji na interni pregled\", a zatim dodijelite ocjenjivače klikom na "
+"\"Dodaj ocjenjivača\".
Ako podnesak nije prikladan za ovaj medij, "
+"odbijte predaju.
Unaprijed hvala.
Lijep pozdrav,"
+"p>{$contextSignature}"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Zahtjev za recenziju rukopisa"
+
+#, fuzzy
+msgid "emails.reviewRequest.body"
+msgstr ""
+"Poštovani {$recipientName},
\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Prijavite se na web stranicu za medij do {$responseDueDate} kako biste "
+"naznačili hoćete li pristupiti recenziji ili ne, kao i kako biste pristupili "
+"podnesku i zabilježili svoju recenziju i preporuku.
\n"
+"
\n"
+"Rok za sam pregled je {$reviewDueDate}.
\n"
+"
\n"
+"URL prijave: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Korisničko ime: {$recipientUsername}
\n"
+"
\n"
+"Hvala što ste razmotrili ovaj zahtjev.
\n"
+"
\n"
+"
\n"
+"S poštovanjem,
\n"
+"{$signature}
\n"
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr "Zahtjev za pregled revidiranog podneska"
+
+#, fuzzy
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+"
Dragi {$recipientName},
Hvala Vam na recenziji {$submissionTitle}. Autori su razmotrili "
+"povratne informacije ocjenjivača i sada su poslali revidiranu verziju svog "
+"rada. Pišem kako bih Vas pitao biste li proveli drugi krug recenzije za ovaj "
+"podnesak. {$contextName}.
Ako ste u mogućnosti pregledati ovaj "
+"podnesak, rok za pregled je {$reviewDueDate}. Možete slijediti korake pregleda da biste pregledali "
+"podnesak, prenijeli datoteke pregleda i poslali svoje komentare na pregled."
+"
{$submissionTitle}"
+"p>
Sažetak
{$submissionAbstract}Prihvatite ili odbijte recenziju do "
+"{$responseDueDate}.
Molim slobodno me kontaktirajte sa svim pitanjima "
+"o podnošenju ili postupku pregleda.
Hvala Vam što ćete razmotriti ovaj "
+"zahtjev. Cijeni se Vaša pomoć.
Lijep pozdrav,
{$signature}"
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr "Zahtjev za recenziju rukopisa"
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+"Poštovani {$recipientName},
\n"
+"Samo blagi podsjetnik na naš zahtjev za Vaš pregled podneska, ""
+"{$submissionTitle}," za {$contextName}. Nadali smo se da ćemo dobiti "
+"Vaš odgovor do {$responseDueDate}, a ova poruka e-pošte automatski je "
+"generirana i poslana nakon što je datum prošao.\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Prijavite se na web stranicu kako biste naznačili hoćete li pristupiti "
+"recenziji ili ne, kao i kako biste pristupili podnesku i zabilježili svoju "
+"recenziju i preporuku.
\n"
+"
\n"
+"Rok za sam pregled je {$reviewDueDate}.
\n"
+"
\n"
+"URL prijave: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Korisničko ime: {$recipientUsername}
\n"
+"
\n"
+"Hvala što ćete razmotriti ovaj zahtjev.
\n"
+"
\n"
+"
\n"
+"S poštovanjem,
\n"
+"{$contextSignature}
\n"
+
+msgid "emails.reviewCancel.subject"
+msgstr "Zahtjev za pregled je otkazan"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Odlučili smo u ovom trenutku poništiti naš zahtjev da pregledate podnesak, "
+""{$submissionTitle}," za {$contextName}. Ispričavamo se zbog "
+"neugodnosti koje bi Vam ovo moglo prouzročiti i nadamo se da ćemo Vas u "
+"budućnosti moći pozvati da nam pomognete u ovom postupku pregleda.
\n"
+"
\n"
+"Ako imate pitanja, slobodno me kontaktirajte."
+
+#, fuzzy
+msgid "emails.reviewReinstate.body"
+msgstr "Zahtjev za pregled ponovno postavljen"
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Željeli bismo ponovno postaviti naš zahtjev da pregledate podnesak, ""
+"{$submissionTitle}," za {$contextName}. Nadamo se da ćete moći pomoći u "
+"procesu pregleda medija.
\n"
+"
\n"
+"Ako imate pitanja, slobodno me kontaktirajte."
+
+msgid "emails.reviewDecline.subject"
+msgstr "Nemogućnost pregleda"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"Urednik(i):
\n"
+"
\n"
+"Bojim se da u ovom trenutku ne mogu pregledati podnesak, ""
+"{$submissionTitle}," za {$contextName}. Hvala vam što mislite na mene, "
+"a neki drugi put slobodno me nazovite.
\n"
+"
\n"
+"{$senderName}"
+
+#, fuzzy
+msgid "emails.reviewRemind.subject"
+msgstr "Podsjetnik za pregled podneska"
+
+#, fuzzy
+msgid "emails.reviewRemind.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Samo blagi podsjetnik na naš zahtjev za Vaš pregled podneska, ""
+"{$submissionTitle}," za {$contextName}. Nadali smo se da ćemo ovu "
+"recenziju dobiti do {$reviewDueDate} i bilo bi nam drago primiti je čim je "
+"budete mogli pripremiti.
\n"
+"
\n"
+"Ako nemate svoje korisničko ime i zaporku za web stranicu, možete koristiti "
+"ovu poveznicu za ponovno postavljanje zaporke (koja će Vam biti poslana e-"
+"poštom zajedno s vašim korisničkim imenom). {$passwordLostUrl}
\n"
+"
\n"
+"URL prijave: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Korisničko ime: {$recipientUsername}
\n"
+"
\n"
+"Molimo potvrdite svoju mogućnost dovršavanja ovog vitalnog doprinosa radu "
+"medija. Veselim se Vašem odgovoru.
\n"
+"
\n"
+"{$signature}"
+
+#, fuzzy
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Samo blagi podsjetnik na naš zahtjev za Vaš pregled podneska, ""
+"{$submissionTitle}," za {$contextName}. Nadali smo se da ćemo ovu "
+"recenziju imati do {$reviewDueDate}, a ova e-poruka automatski je generirana "
+"i poslana nakon što je taj datum prošao. Bilo bi nam drago primiti ga čim ga "
+"budete mogli pripremiti.
\n"
+"
\n"
+"Ako nemate svoje korisničko ime i zaporku za web stranicu, možete koristiti "
+"ovu poveznicu za ponovno postavljanje zaporke (koja će Vam biti poslana e-"
+"poštom zajedno s Vašim korisničkim imenom). {$passwordLostUrl}
\n"
+"
\n"
+"URL prijave: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Korisničko ime: {$recipientUsername}
\n"
+"
\n"
+"Molimo potvrdite svoju mogućnost dovršavanja ovog vitalnog doprinosa radu "
+"medija. Veselim se Vašem odgovoru.
\n"
+"
\n"
+"{$contextSignature}"
+
+msgid "emails.editorDecisionAccept.subject"
+msgstr "Vaš podnesak prihvaćen je za {$contextName}"
+
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+"Poštovani {$recipientName},
Zadovoljstvo mi je obavijestiti Vas da "
+"smo odlučili prihvatiti Vaš podnesak bez daljnjih izmjena. Nakon pažljivog "
+"pregleda, utvrdili smo da Vaš podnesak, {$submissionTitle}, ispunjava ili "
+"premašuje naša očekivanja. Uzbuđeni smo što možemo objaviti Vaš članak u "
+"{$contextName} i zahvaljujemo Vam što ste odabrali naš medij kao mjesto za "
+"svoj rad.
Vaš će podnesak uskoro biti objavljen na web mjestu za medij "
+"za {$contextName} i slobodno ga uključite u svoj popis publikacija. "
+"Prepoznajemo naporan rad koji je uložen u svaki uspješni podnesak i želimo "
+"Vam čestitati na dostizanju ove faze.
Vaš će podnesak sada biti "
+"podvrgnut uređivanju kopije i oblikovanju kako bi se pripremio za "
+"objavljivanje.
Uskoro ćete dobiti daljnje upute.
Ako imate "
+"pitanja, kontaktirajte me sa svoje nadzorne ploče za slanje.
Lijep "
+"pozdrav,
{$signature}"
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr "Vaš je podnesak poslan na interni pregled"
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+"Poštovani {$recipientName},
sa zadovoljstvom Vas mogu obavijestiti "
+"da je urednik pregledao Vaš podnesak, {$submissionTitle}, i odlučio ga "
+"poslati na interni pregled. Javit ćemo Vam se s povratnim informacijama "
+"ocjenjivača i informacijama o sljedećim koracima.
Imajte na umu da "
+"slanje podneska na interni pregled ne jamči da će biti objavljen. Razmotrit "
+"ćemo preporuke ocjenjivača prije nego što odlučimo prihvatiti podnesak za "
+"objavljivanje. Od Vas se može tražiti da izvršite izmjene i odgovorite na "
+"komentare ocjenjivača prije donošenja konačne odluke.
Ako imate bilo "
+"kakvih pitanja, kontaktirajte me s nadzorne ploče za slanje.
{ $potpis}"
+"
"
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr "Vaš je podnesak poslan na uređivanje"
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+"Poštovani {$recipientName},
\n"
+"zadovoljstvo mi je obavijestiti Vas da smo odlučili prihvatiti Vaš "
+"podnesak bez pregleda. Utvrdili smo da Vaš podnesak, {$submissionTitle}, "
+"ispunjava naša očekivanja i ne zahtijevamo da se rad ove vrste podvrgne "
+"stručnoj recenziji. Uzbuđeni smo što možemo objaviti Vaš članak u "
+"{$contextName} i zahvaljujemo Vam što ste odabrali naš medij kao mjesto za "
+"svoj rad.
\n"
+"Vaš će podnesak uskoro biti objavljen na stranici za {$contextName} pa ga "
+"slobodno uključite u svoj popis publikacija. Prepoznajemo naporan rad koji "
+"je uložen u svaki uspješan podnesak i želimo Vam čestitati na vašem trudu."
+"p>\n"
+"
Vaš će podnesak sada biti podvrgnut uređivanju kopije i oblikovanju kako "
+"bi se pripremio za objavljivanje.
\n"
+"Uskoro ćete dobiti daljnje upute.
\n"
+"Ako imate pitanja, kontaktirajte me sa svoje nadzorne ploče za slanje.
\n"
+"Lijep pozdrav,
\n"
+"{$signature}
\n"
+
+msgid "emails.layoutRequest.subject"
+msgstr ""
+"Podnesak {$submissionId} spreman je za proizvodnju na {$contextAcronym}"
+
+#, fuzzy
+msgid "emails.layoutRequest.body"
+msgstr ""
+"Poštovani {$recipientName},
novi podnesak spreman je za uređivanje "
+"izgleda:
{$submissionId} "
+"{$submissionTitle }
{$contextName}
- 1. Kliknite gornji "
+"URL za slanje.
- 2. Preuzmite datoteke spremne za proizvodnju i "
+"upotrijebite ih za izradu galija u skladu sa standardima medija.
- 3. "
+"Učitajte galije u odjeljak Formati publikacije podneska.
- 4. "
+"Upotrijebite Rasprave o proizvodnji da biste obavijestili urednika da su "
+"kuhinje spremne.
Ako trenutno niste u mogućnosti obaviti ovaj "
+"posao ili imate bilo kakvih pitanja, kontaktirajte me. Hvala Vam na "
+"doprinosu ovom mediju.
Lijep pozdrav,
{$signature}"
+
+msgid "emails.layoutComplete.subject"
+msgstr "Galije dovršene"
+
+#, fuzzy
+msgid "emails.layoutComplete.body"
+msgstr ""
+"Poštovani {$recipientName},
Galije su sada pripremljene za sljedeću "
+"predaju i spremne su za konačni pregled.
{ $submissionTitle}
{$contextName}
Ako "
+"imate pitanja, kontaktirajte me.
Lijep pozdrav,
{ $senderName}"
+"p>"
+
+msgid "emails.indexRequest.subject"
+msgstr "Zahtijevanje indeksa"
+
+msgid "emails.indexRequest.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Podnesak "{$submissionTitle}" za {$contextName} sada treba indekse "
+"kreirane slijedeći ove korake.
\n"
+"1. Kliknite donji URL za podnošenje.
\n"
+"2. Prijavite se u medij i upotrijebite datoteku s probnim stranicama za "
+"izradu galija u skladu s medijskim standardima.
\n"
+"3. Pošaljite POTPUNI e-mail uredniku.
\n"
+"
\n"
+"{$contextName} URL: {$contextUrl}
\n"
+"URL prijave: {$submissionUrl}
\n"
+"Korisničko ime: {$recipientUsername}
\n"
+"
\n"
+"Ako trenutno niste u mogućnosti obaviti ovaj posao ili imate bilo kakvih "
+"pitanja, kontaktirajte me. Hvala Vam na doprinosu ovom mediju.
\n"
+"
\n"
+"{$signature}"
+
+msgid "emails.indexComplete.subject"
+msgstr "Indeks dovršen"
+
+msgid "emails.indexComplete.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Sada su pripremljeni indeksi za rukopis, "{$submissionTitle}," za "
+"{$contextName} i spremni su za lekturu.
\n"
+"
\n"
+"Ako imate pitanja, slobodno me kontaktirajte.
\n"
+"
\n"
+"{$signatureFullName}"
+
+msgid "emails.emailLink.subject"
+msgstr "Rukopis od mogućeg interesa"
+
+msgid "emails.emailLink.body"
+msgstr ""
+"Mislio sam da bi Vas moglo zanimati "{$submissionTitle}" autora "
+"{$authors} objavljeno u svesku {$volume}, br. {$number} ({$year}) od "
+"{$contextName} na "{$submissionUrl}"."
+
+msgid "emails.emailLink.description"
+msgstr ""
+"Ovaj predložak e-pošte daje registriranom čitatelju mogućnost slanja "
+"informacija o monografiji nekome tko bi mogao biti zainteresiran. Dostupan "
+"je putem alata za čitanje i mora ga omogućiti urednik medija na stranici za "
+"administraciju alata za čitanje."
+
+msgid "emails.notifySubmission.subject"
+msgstr "Obavijest o podnesku"
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+"Imate poruku od {$sender} u svezi s "{$submissionTitle}" "
+"({$monographDetailsUrl}):
\n"
+"
\n"
+"{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifySubmission.description"
+msgstr ""
+"Obavijest od korisnika poslana iz modalnog informacijskog centra za podneske."
+
+msgid "emails.notifyFile.subject"
+msgstr "Obavijest o podnešenoj datoteci"
+
+msgid "emails.notifyFile.body"
+msgstr ""
+"Imate poruku od {$sender} u svezi s datotekom "{$fileName}" u "
+""{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"
\n"
+"{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifyFile.description"
+msgstr ""
+"Obavijest od korisnika poslana iz modalnog centra za informacije o datotekama"
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr "Urednička aktivnost za {$month}, {$year}"
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+"\n"
+"{$recipientName},
\n"
+"
\n"
+"Vaše izvješće o stanju medija za {$month}, {$year} sada je dostupno. Vaša "
+"ključna statistika za ovaj mjesec je ispod.
\n"
+"
\n"
+"- Novi podnesci ovog mjeseca: {$newSubmissions}
\n"
+"- Odbijeni podnesci ovog mjeseca: {$declinedSubmissions}
\n"
+"- Prihvaćeni podnesci ovog mjeseca: {$acceptedSubmissions}
\n"
+"- Ukupan broj podnesaka u sustavu: {$totalSubmissions}
\n"
+"
\n"
+"Prijavite se u medij kako biste vidjeli detaljnije uredničke trendove i statistiku objavljenih knjiga. Potpuni "
+"primjerak ovomjesečnih uređivačkih trendova nalazi se u prilogu.
\n"
+"
\n"
+"S poštovanjem,
\n"
+"{$contextSignature}"
+
+msgid "emails.announcement.subject"
+msgstr "{$announcementTitle}"
+
+msgid "emails.announcement.body"
+msgstr ""
+"{$announcementTitle}
\n"
+"
\n"
+"{$announcementSummary}
\n"
+"
\n"
+"Posjetite našu web stranicu kako biste pročitali cjelovitu najavu."
+
+msgid "emails.editorAssignReview.body"
+msgstr ""
+"Dragi {$recipientName},
Sljedeći podnesak dodijeljen Vam je kako "
+"bi prošao kroz fazu pregleda.
{ $submissionTitle}
{$authors}"
+"p>
Sažetak
{$submissionAbstract}Molimo prijavite se na pogledajte podnesak i dodijelite "
+"kvalificirane ocjenjivače. Možete dodijeliti ocjenjivača klikom na "
+"\"Dodaj ocjenjivača\".
Unaprijed zahvaljujemo.
Lijep pozdrav,"
+"
{$signature}"
+
+msgid "emails.editorAssignProduction.body"
+msgstr ""
+"Dragi {$recipientName},
Sljedeći podnesak dodijeljen Vam je da "
+"ga pregledate kroz fazu proizvodnje.
{ $submissionTitle}
{$authors}"
+"p>
Sažetak
{$submissionAbstract}Molimo prijavite se na pogledajte podnesak. Kada datoteke spremne "
+"za proizvodnju budu dostupne, prenesite ih u odjeljku Publikacije "
+"> Formati publikacija.
Unaprijed zahvaljujemo.
Lijep "
+"pozdrav,
{$signature}"
diff --git a/locale/hr/locale.po b/locale/hr/locale.po
new file mode 100644
index 00000000000..2a489ebce14
--- /dev/null
+++ b/locale/hr/locale.po
@@ -0,0 +1,1627 @@
+# Boris Badurina , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-02-23 08:15+0000\n"
+"Last-Translator: Boris Badurina \n"
+"Language-Team: Croatian "
+"\n"
+"Language: hr\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 "monograph.publicationFormat.frontMatterCount"
+msgstr "Naslovna stranica"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Odjavnica"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Sastav proizvoda"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Podaci o proizvodu (nije potrebno)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Šifra proizvoda"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Cijena"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "Cijena je obavezna."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Tip cijene"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Posto popusta, ako ga ima"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Dostupnost"
+
+msgid "grid.catalogEntry.availability"
+msgstr "Dostupnost"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Dostupno"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "Nije dostupno"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Dokaz"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Odobrenje formata"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Dostupnost formata"
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Uvjeti prodaje"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Vrijednost koda"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Uvjeti prodaje"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "Ostatak svijeta?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Označite ovaj kvadratić kako biste koristili ovaj unos o prodajnim pravima "
+"kao sveobuhvatni za vaš format. U ovom slučaju ne morate birati zemlje i "
+"regije."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Zemlje"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Agent"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Unesite istaknuti naslov (automatsko dovršavanje)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Ime središta pažnje"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Knjiga"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "Potreban je predmet."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "Potrebno je ime središta pažnje."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Molimo odaberite mjesto za ovo središte pažnje."
+
+msgid "grid.action.editSpotlight"
+msgstr "Uredi ovo središte pažnje"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Izbriši ovo središte pažnje"
+
+msgid "grid.action.addSpotlight"
+msgstr "Dodaj središte pažnje"
+
+msgid "manager.series.open"
+msgstr "Otvorene prijave"
+
+msgid "catalog.featuredBooks"
+msgstr "Istaknute knjige"
+
+msgid "catalog.foundTitleSearch"
+msgstr ""
+"Pronađen je jedan naslov koji odgovara vašoj pretrazi za \"{$searchQuery}\"."
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+"Pronađeno je {$number} naslova koji odgovaraju vašoj pretrazi za \""
+"{$searchQuery}\"."
+
+msgid "submission.search"
+msgstr "Pretraživanje knjiga"
+
+msgid "navigation.published"
+msgstr "Objavljeno"
+
+msgid "navigation.wizard"
+msgstr "Čarobnjak"
+
+msgid "navigation.linksAndMedia"
+msgstr "Društvene mreže"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Poveznica na katalog."
+
+msgid "navigation.skip.spotlights"
+msgstr "Prijeđi na središta pažnje"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Nizovi"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Link na niz."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Kategorija"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Poveži sa kategorijom."
+
+msgid "context.current"
+msgstr "Trenutni tisak:"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr "Pošaljite monografiju: Registracija autora trenutno je onemogućena."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Registriraj se kao recenzent"
+
+msgid "user.reviewerPrompt"
+msgstr "Biste li bili voljni pregledati prijave za ovaj tisak?"
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Unesite punu putanju do postojećeg direktorija u kojem će se čuvati učitane "
+"datoteke. Ovaj direktorij ne bi trebao biti izravno dostupan webu. "
+"Uvjerite se da ovaj direktorij postoji i da je u njega moguće pisati "
+"prije instalacije. Windows nazivi putanja trebaju koristiti kose "
+"crte, npr. \"C:/mypress/files\"."
+
+msgid "installer.upgradeApplication"
+msgstr "Nadogradi Open Monograph Press"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Nije dostupno"
+
+msgid "search.results.orderDir.desc"
+msgstr "Silazni"
+
+msgid "common.payments"
+msgstr "Plaćanja"
+
+msgid "monograph.audience"
+msgstr "Ciljna skupina"
+
+msgid "monograph.audience.success"
+msgstr "Podaci o ciljnoj skupini su ažurirani."
+
+msgid "monograph.coverImage"
+msgstr "Naslovna fotografija"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Osnova za sužavanje ciljne skupine"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Razina obrazovanja (od)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Razina obrazovanja (do)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "(Točan) raspon ciljne publike"
+
+msgid "monograph.languages"
+msgstr "Jezici (engleski, francuski, španjolski)"
+
+msgid "monograph.publicationFormats"
+msgstr "Formati izdanja"
+
+msgid "monograph.publicationFormat"
+msgstr "Format"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "Pojedinosti o dostupnom formatu publikacije: {$format}"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Podaci o monografiji"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Formati:"
+
+msgid "monograph.type"
+msgstr "Tip prijave"
+
+msgid "submission.pageProofs"
+msgstr "Korektura"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"Uređivač izgleda učitava datoteke spremne za proizvodnju koje su "
+"pripremljene za objavljivanje ovdje. Upotrijebite +Assign za "
+"određivanje autora i drugih za lektoriranje stranica, s ispravljenim "
+"datotekama učitanim na odobrenje prije objavljivanja."
+
+msgid "monograph.task.addNote"
+msgstr "Dodaj u zadatke"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Otvori Access"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Impresum (ime robne marke/izdavača)"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Broj stranica"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Povratni indikator"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Digitalne informacije"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Dimenzije"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "Veličina datoteke u MB"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "Želite li unijeti vlastitu veličinu datoteke?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Visina"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Debljina"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Težina"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Širina"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "Zemlja proizvodnje"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Digitalna tehnička zaštita"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Regija distribucije proizvoda"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Porezna stopa"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Vrsta poreza"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+"Uključite metapodatke za ovaj format publikacije u kataloški unos za ovu "
+"knjigu."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Nedostaju informacije o tržištu i cijenama."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Nedostaje identifikacijski kod."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Neka polja metapodataka nisu popunjena."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+"Format publikacije koji ste odabrali više ne postoji za ovu "
+"monografiju.
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Otvorite karticu formata publikacije."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Format"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "Potrebno je ime."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "Potrebna je valjana ponuda."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Više informacija za ovaj format"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Fizički format"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "Ovaj će format biti dostupan na zasebnoj web stranici"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "URL udaljenog sadržaja"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "13-znamenkasti ISBN kod, npr. 978-951-98548-9-2."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "10-znamenkasti ISBN kod, npr. 951-98548-9-4."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "Za monografiju je potreban identifikator."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Mora se odabrati format objave."
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"Odobrite metapodatke za ovaj format. Metapodatke je moguće provjeriti na "
+"ploči za uređivanje za svaki format.
"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr "Naznačite da metapodaci za ovaj format nisu odobreni.
"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Učinite ovaj format dostupnim čitateljima. Datoteke za "
+"preuzimanje i sve druge distribucije pojavit će se u kataloškom unosu "
+"knjige.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Ovaj format neće biti dostupan čitateljima. Sve datoteke za "
+"preuzimanje ili druge distribucije više se neće pojavljivati u kataloškom "
+"unosu knjige.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "Kataloški unos nije prihvaćen."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "Format nije u kataloškom unosu."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Dokaz nije odobren."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Prihvaćeno"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "Čeka se odobrenje"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "Za digitalne formate potrebna je veličina datoteke."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "Molimo naznačite dostupnost proizvoda."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "Odaberite šifru sastava proizvoda."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Vrijednost"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "Vrsta ONIX koda"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "Potreban je kôd."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "Molimo unesite vrijednost."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr "Već postoji tip prodaje ROW definiran za ovaj format publikacije."
+
+msgid "grid.catalogEntry.regions"
+msgstr "Regije"
+
+msgid "grid.catalogEntry.included"
+msgstr "Obuhvaćeno"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Isključen"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Tržišni teritorij"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Teritorij"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Datum objave"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Potrebna je reprezentativna uloga."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "Unesite format datuma."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Datum"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Datum se odnosi na..."
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Oblik datuma"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"Datum je obavezan i vrijednost datuma mora odgovarati odabranom formatu "
+"datuma."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Prodajni partner"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Reprezentativni tip"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Predstavnici"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Davatelj usluga"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"Možete dodijeliti agenta da vas predstavlja na ovom definiranom području. "
+"Nije potrebno."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Davatelj usluga"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Odaberite funkciju:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Funkcija"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Ime"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Telefon"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "Email adresa"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Web stranica"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "Identifikacijski broj tvrtke"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Vrsta ID-a predstavnika (preporučuje se GLN)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"Sljedeći odjeljak možete ostaviti praznim ako svojim klijentima pružate "
+"vlastite usluge."
+
+msgid "grid.action.addRepresentative"
+msgstr "Dodaj predstavnika"
+
+msgid "grid.action.editRepresentative"
+msgstr "Uredite ovog predstavnika"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Izbriši ovog predstavnika"
+
+msgid "spotlight"
+msgstr "Središte pažnje"
+
+msgid "spotlight.spotlights"
+msgstr "Središta pažnje"
+
+msgid "spotlight.noneExist"
+msgstr "Trenutno nema središta pažnje."
+
+msgid "spotlight.title.homePage"
+msgstr "U središtu pažnje"
+
+msgid "spotlight.author"
+msgstr "Autor, "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Predmet središta pažnje"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Početna stranica"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Mjesto središta pažnje"
+
+msgid "manager.series.indexed"
+msgstr "Indeksirano"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Datoteke"
+
+msgid "grid.action.catalogEntry"
+msgstr "Pogledajte obrazac za unos u katalog"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "Format se pojavljuje u kataloškom unosu"
+
+msgid "grid.action.editFormat"
+msgstr "Uredite ovaj format"
+
+msgid "grid.action.deleteFormat"
+msgstr "Izbriši ovaj format"
+
+msgid "grid.action.addFormat"
+msgstr "Dodaj format publikacije"
+
+msgid "grid.action.approveProof"
+msgstr "Odobri dokaz za indeksiranje i uvrštavanje u katalog"
+
+msgid "grid.action.pageProofApproved"
+msgstr "Datoteka za provjeru stranice spremna je za objavljivanje"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Novi unos u katalog"
+
+msgid "grid.action.publicCatalog"
+msgstr "Pogledajte ovaj predmet u katalogu"
+
+msgid "grid.action.feature"
+msgstr "Uključi/isključi prikaz značajki"
+
+msgid "grid.action.featureMonograph"
+msgstr "Istaknite ovo na kataloškom vrtuljku"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Označi ovu prijavu kao 'novo izdanje'"
+
+msgid "grid.action.manageCategories"
+msgstr "Konfigurirajte kategorije za ovaj tisak"
+
+msgid "grid.action.manageSeries"
+msgstr "Konfigurirajte seriju za ovaj tisak"
+
+msgid "grid.action.addCode"
+msgstr "Dodaj kod"
+
+msgid "grid.action.editCode"
+msgstr "Uredi kod"
+
+msgid "grid.action.deleteCode"
+msgstr "Izbriši kod"
+
+msgid "grid.action.addRights"
+msgstr "Dodaj prava prodaje"
+
+msgid "grid.action.editRights"
+msgstr "Uredi ova prava"
+
+msgid "grid.action.deleteRights"
+msgstr "Izbriši ova prava"
+
+msgid "grid.action.addMarket"
+msgstr "Dodaj tržište"
+
+msgid "grid.action.editMarket"
+msgstr "Uredi ovo tržište"
+
+msgid "grid.action.deleteMarket"
+msgstr "Izbriši ovo tržište"
+
+msgid "grid.action.addDate"
+msgstr "Dodaj datum objave"
+
+msgid "grid.action.editDate"
+msgstr "Uredi ovaj datum"
+
+msgid "grid.action.deleteDate"
+msgstr "Izbriši ovaj datum"
+
+msgid "grid.action.createContext"
+msgstr "Stvori novi tisak"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Prikaži karticu formata publikacije"
+
+msgid "grid.action.approveProofs"
+msgstr "Pogledaj tablicu s dokazima"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Idi na stranicu s najavama za tisak"
+
+msgid "grid.action.proofApproved"
+msgstr "Format je provjeren"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Odobravanje/odbijanje ovog formata"
+
+msgid "grid.action.formatAvailable"
+msgstr "Uključi/isključi dostupnost ovog formata"
+
+msgid "grid.action.submissionEmail"
+msgstr "Kliknite da biste pročitali ovu e-poruku"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Dodaj privitak recenziji"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Dostupne datoteke"
+
+msgid "series.series"
+msgstr "Nizovi"
+
+msgid "series.featured.description"
+msgstr "Ovaj niz će se pojaviti na glavnoj navigaciji"
+
+msgid "series.path"
+msgstr "Putanja"
+
+msgid "catalog.manage"
+msgstr "Uređivanje kataloga"
+
+msgid "catalog.manage.newReleases"
+msgstr "Nova izdanja"
+
+msgid "catalog.manage.category"
+msgstr "Kategorija"
+
+msgid "catalog.manage.series"
+msgstr "Nizovi"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "Unesite važeći ISSN."
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "Online i print ISSN ne smiju biti isti."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "Online ISSN"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "Print ISSN"
+
+msgid "catalog.selectSeries"
+msgstr "Odaberi niz"
+
+msgid "catalog.selectCategory"
+msgstr "Odaberi kategoriju"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"Slika naslovnice odabranih knjiga pojavljuje se prema vrhu početne stranice "
+"kao set koji se može pomicati. Pritisnite 'Feature', zatim zvjezdicu za "
+"dodavanje knjige na vrtuljak; kliknite na uskličnik da biste ga prikazali "
+"kao novo izdanje; povucite i ispustite kako biste naručili."
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Pritisnite 'Feature', zatim zvjezdicu za odabir istaknute knjige za ovu "
+"kategoriju; povucite i ispustite kako biste naručili."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Pritisnite 'Feature', zatim zvjezdicu za odabir istaknute knjige za ovaj niz;"
+" povucite i ispustite kako biste naručili. Nizovi su identificirani "
+"urednikom(ima) i naslovom niza, unutar kategorije ili neovisno."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Vrtuljak"
+
+msgid "catalog.manage.newRelease"
+msgstr "Nova izdanja"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Upravljaj nizovima"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Upravljaj kategorijama"
+
+msgid "catalog.manage.noMonographs"
+msgstr "Nema dodijeljenih monografija."
+
+msgid "catalog.manage.featured"
+msgstr "Istaknuto"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "Istaknuto u kategoriji"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "Istaknuto u nizu"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "Istaknuta je monografija."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "Monografija nije istaknuta."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "Monografija je označena kao novo izdanje."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "Monografija nije označena kao novo izdanje."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "Novo izdanje"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "Novo izdanje u kategoriji"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "Novo izdanje u nizu"
+
+msgid "catalog.manage.nonOrderable"
+msgstr "Ovu monografiju nije moguće naručiti dok ne bude istaknuta."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Pretraži po naslovu ili autoru"
+
+msgid "catalog.manage.isFeatured"
+msgstr "Ova monografija je istaknuta. Neka se ova monografija ne prikazuje."
+
+msgid "catalog.manage.isNotFeatured"
+msgstr "Ova monografija nije predstavljena. Učinite ovu monografiju istaknutom."
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+"Ova monografija je novo izdanje. Neka ova monografija ne bude novo izdanje."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+"Ova monografija nije novo izdanje. Neka ova monografija bude novo izdanje."
+
+msgid "catalog.feature"
+msgstr "Istakni"
+
+msgid "catalog.featured"
+msgstr "Istaknuto"
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr "Nije odabrana nijedna prijava za dodavanje u katalog."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "Jednu ili više prijava nije bilo moguće pronaći."
+
+msgid "catalog.manage.findSubmissions"
+msgstr "Pronađite monografije koje želite dodati u katalog"
+
+msgid "catalog.noTitles"
+msgstr "Nema objavljenih naslova."
+
+msgid "catalog.noTitlesNew"
+msgstr "Trenutno nema novih objavljenih naslova."
+
+msgid "catalog.noTitlesSearch"
+msgstr "Nema pronađenih naslova za traženo pretraživanje - \"{$searchQuery}\"."
+
+msgid "catalog.category.heading"
+msgstr "Sve knjige"
+
+msgid "catalog.newReleases"
+msgstr "Nova izdanja"
+
+msgid "catalog.dateAdded"
+msgstr "Dodano"
+
+msgid "catalog.publicationInfo"
+msgstr "Informacije o publikaciji"
+
+msgid "catalog.published"
+msgstr "Objavljeno"
+
+msgid "catalog.forthcoming"
+msgstr "Nadolazeće"
+
+msgid "catalog.categories"
+msgstr "Kategorije"
+
+msgid "catalog.parentCategory"
+msgstr "Nadređena kategorija"
+
+msgid "catalog.category.subcategories"
+msgstr "Potkategorije"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "O ulozi {$roleName}"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"Napomena: Da biste kupili artikle, morate se prvo prijaviti. Odabir artikla "
+"za kupnju preusmjerit će vas na stranicu za prijavu. Sve stavke označene "
+"ikonom otvorenog pristupa mogu se preuzeti besplatno, bez prijave."
+
+msgid "catalog.sortBy"
+msgstr "Redoslijed monografija"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "Odaberite kako naručiti knjige iz ovog niza."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr "Odaberite kako naručiti knjige u ovoj kategoriji."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "Odaberite način naručivanja knjiga u katalogu."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "Pozicija niza (najniža prva)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "Pozicija u nizu (najviši prvi)"
+
+msgid "catalog.viewableFile.title"
+msgstr "{$type} prikaz datoteke {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "Povratak na pregled pojedinosti o {$monographTitle}"
+
+msgid "common.publication"
+msgstr "Monografija"
+
+msgid "common.publications"
+msgstr "Monografije"
+
+msgid "common.prefix"
+msgstr "Prefiks"
+
+msgid "common.preview"
+msgstr "Pregled"
+
+msgid "common.feature"
+msgstr "Značajka"
+
+msgid "common.searchCatalog"
+msgstr "Pretraži katalog"
+
+msgid "common.moreInfo"
+msgstr "Više informacija"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Molimo ispunite obrazac do kraja."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Molimo odaberite valjanu opciju s popisa."
+
+msgid "common.listbuilder.itemExists"
+msgstr "Ne možete dodati isti predmet dva puta."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Zaglavlje početne stranice"
+
+msgid "navigation.catalog"
+msgstr "Katalog"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Politika konkurentskih interesa"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "Sve monografije"
+
+msgid "navigation.catalog.manage"
+msgstr "Upravljaj"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Administracija"
+
+msgid "navigation.catalog.administration"
+msgstr "Administracija kataloga"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Kategorije"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Nizovi"
+
+msgid "navigation.infoForAuthors"
+msgstr "Za autore"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Za knjižničare"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Informacije za autore"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Informacije za knjižničare"
+
+msgid "navigation.newReleases"
+msgstr "Nova izdanja"
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "Nova izdanja"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Poveži sa svojim novim izdanjima."
+
+msgid "context.contexts"
+msgstr "Tiskovi"
+
+msgid "context.context"
+msgstr "Tisak"
+
+msgid "context.select"
+msgstr "Prijeđi na drugi tisak:"
+
+msgid "user.authorization.representationNotFound"
+msgstr "Traženi format publikacije nije pronađen."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "Uključite korisnike bez uloga u ovaj tisak."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Pošalji prijedlog"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+"Registriraj se kao recenzent: registracija recenzenta trenutno je "
+"onemogućena."
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Da, zatraži ulogu {$userGroup}."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"Da, želio/la bih da me se kontaktira sa zahtjevima za pregled prijava za "
+"ovaj tisak."
+
+msgid "user.register.contextsPrompt"
+msgstr "Putem kojeg tiska na ovoj stranici biste se željeli registrirati?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Zatražite sljedeće uloge."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"Ako ste zatražili da budete recenzent za bilo koji tisak, unesite svoje "
+"interese."
+
+msgid "user.role.manager"
+msgstr "Menadžer tiska"
+
+msgid "user.role.pressEditor"
+msgstr "Urednik tiska"
+
+msgid "user.role.subEditor"
+msgstr "Urednik niza"
+
+msgid "user.role.copyeditor"
+msgstr "Uređivač"
+
+msgid "user.role.proofreader"
+msgstr "Korektor"
+
+msgid "user.role.productionEditor"
+msgstr "Urednik produkcije"
+
+msgid "user.role.managers"
+msgstr "Menadžeri tiska"
+
+msgid "user.role.subEditors"
+msgstr "Urednici niza"
+
+msgid "user.role.editors"
+msgstr "Urednici"
+
+msgid "user.role.copyeditors"
+msgstr "Uređivači"
+
+msgid "user.role.proofreaders"
+msgstr "Korektori"
+
+msgid "user.role.productionEditors"
+msgstr "Urednici produkcije"
+
+msgid "user.register.selectContext"
+msgstr "Odaberite tisak za registraciju:"
+
+msgid "user.register.noContexts"
+msgstr "Nema tiskova putem kojih se možete registrirati na ovoj stranici."
+
+msgid "user.register.privacyStatement"
+msgstr "Izjava o privatnosti"
+
+msgid "user.register.registrationDisabled"
+msgstr "Ovaj tisak trenutno ne prihvaća registracije korisnika."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "Lozinka koju ste unijeli nije dovoljno duga."
+
+msgid "user.register.readerDescription"
+msgstr "Obavijest e-poštom o izdavanju monografije."
+
+msgid "user.register.authorDescription"
+msgstr "Sposobnost slanja predmeta u tisak."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "Spremni izvršiti recenziju prijava za tisak."
+
+msgid "user.register.reviewerDescription"
+msgstr "Spremni izvršiti recenziju prijava na stranici."
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+"Identificirajte recenzentske interese (sadržajna područja i metode "
+"istraživanja):"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Morate odabrati barem jednu ulogu"
+
+msgid "about.onlineSubmissions"
+msgstr "Online prijave"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Login"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"Da, slažem se da se moji podaci prikupljaju i pohranjuju u skladu s izjavom o privatnosti ovog tiska."
+
+msgid "site.noPresses"
+msgstr "Nema dostupnih tisaka."
+
+msgid "site.pressView"
+msgstr "Pogledajte web stranicu tiska"
+
+msgid "about.pressContact"
+msgstr "Kontakt"
+
+msgid "about.aboutContext"
+msgstr "O nakladi"
+
+msgid "about.editorialTeam"
+msgstr "Uredništvo"
+
+msgid "about.editorialPolicies"
+msgstr "Urednička politika"
+
+msgid "about.focusAndScope"
+msgstr "Fokus i opseg"
+
+msgid "about.seriesPolicies"
+msgstr "Pravila nizova i kategorija"
+
+msgid "about.submissions"
+msgstr "Prijave"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Prijava"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr "{$login} ili {$register} za prijavu."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} ili {$viewSubmissions}."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Napravi novu prijavu"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "pogledajte svoje prijave na čekanju"
+
+msgid "about.authorGuidelines"
+msgstr "Upute za autore"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Kontrolni popis za pripremu prijava"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"Kao dio procesa prijava, autori moraju provjeriti usklađenost svoje prijave "
+"sa svim sljedećim predmetima, a prijave se mogu vratiti autorima koji se ne "
+"pridržavaju ovih smjernica."
+
+msgid "about.copyrightNotice"
+msgstr "Obavijest o autorskim pravima"
+
+msgid "about.privacyStatement"
+msgstr "Izjava o privatnosti"
+
+msgid "about.reviewPolicy"
+msgstr "Proces recenzije"
+
+msgid "about.publicationFrequency"
+msgstr "Učestalost objavljivanja"
+
+msgid "about.openAccessPolicy"
+msgstr "Politika otvorenog pristupa"
+
+msgid "about.pressSponsorship"
+msgstr "Sponzorstvo tiska"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr "Više informacija o sustavu izdavaštva, platformi i tijeku rada OMP/PKP."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "OMP uređivački i izdavački proces"
+
+msgid "about.aboutSoftware"
+msgstr "O Open Monograph Press-u"
+
+msgid "about.aboutOMPPress"
+msgstr ""
+"Ovaj tisak koristi Open Monograph Press {$ompVersion}, koji je softver "
+"otvorenog koda za upravljanje tiskom i izdavaštvo koji je razvio, podržava i "
+"besplatno distribuira Public Knowledge Project pod GNU General Public "
+"License. Posjetite web stranicu PKP-a kako biste saznali više o softveru. Molimo Vas "
+"kontaktirajte medije izravno s pitanjima o tisku i prijavama za tisak."
+
+msgid "about.aboutOMPSite"
+msgstr ""
+"Ovaj tisak koristi Open Monograph Press {$ompVersion}, koji je softver "
+"otvorenog koda za upravljanje tiskom i izdavaštvo koji je razvio, podržava i "
+"besplatno distribuira Public Knowledge Project pod GNU General Public "
+"License. Posjetite web stranicu PKP-a kako biste saznali više o softveru. Kontaktirajte stranicu izravno s "
+"pitanjima o njezinim tiskovnim izdanjima i prijavama za tisak."
+
+msgid "help.searchReturnResults"
+msgstr "Povratak na rezultate pretraživanja"
+
+msgid "help.goToEditPage"
+msgstr "Otvorite novu stranicu za uređivanje ovih informacija"
+
+msgid "installer.appInstallation"
+msgstr "OMP instalacija"
+
+msgid "installer.ompUpgrade"
+msgstr "OMP nadogradnja"
+
+msgid "installer.installApplication"
+msgstr "Instaliraj Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+"Ako nadograđujete postojeću instalaciju OMP-a, kliknite ovdje za nastavak."
+
+msgid "installer.installationInstructions"
+msgstr ""
+"Hvala što ste preuzeli Open Monograph Press {$version} "
+"projekta Public Knowledge Project. Prije nastavka pročitajte datoteku README koja je uključena u ovaj "
+"softver. Za više informacija o Projektu javnog znanja i njegovim softverskim "
+"projektima posjetite web-"
+"mjesto PKP-a. Ako imate izvješća o greškama ili upite o tehničkoj "
+"podršci za Open Monograph Press, pogledajte forum za podršku ili posjetite PKP-ov online < "
+"href=\"https://github.com/pkp/pkp-lib/issues/\" target=\"_blank\">sustav za "
+"prijavu grešaka. Iako je forum za podršku preferirani način "
+"kontaktiranja, timu također možete poslati e-poruku na pkp.contact@gmail.com.
"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Koraci prije instalacije"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. Sljedeće datoteke i direktoriji (i njihov sadržaj) moraju biti "
+"omogućeni za pisanje:
\n"
+"\n"
+"- config.inc.php može se pisati (izborno): {$writable_config}
"
+"\n"
+"- public/ može se pisati: {$writable_public}
\n"
+"U - cache/ se može pisati: {$writable_cache}
\n"
+"- cache/t_cache/ može se pisati: {$writable_templates_cache}
"
+"\n"
+"- cache/t_compile/ može se pisati: "
+"{$writable_templates_compile}
\n"
+"- cache/_db može se pisati: {$writable_db_cache}
\n"
+"
\n"
+"\n"
+"2. Imenik za pohranjivanje učitanih datoteka mora biti kreiran i u njega "
+"moguće pisati (vidi \"Postavke datoteke\" u nastavku).
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"OMP verzija {$version}
\n"
+"\n"
+"Hvala što ste preuzeli Open Monograph Press Public "
+"Knowledge Project. Prije nego nastavite, pročitajte README i NADOGRADNJU datoteke uključene u ovaj softver. Za više informacija o "
+"Projektu javnog znanja i njegovim softverskim projektima posjetite web-mjesto PKP-a. Ako imate "
+"izvješća o greškama ili upite o tehničkoj podršci za Open Monograph Press, "
+"pogledajte forum za "
+"podršku ili posjetite PKP-ov online < href=\"https://github.com/pkp/"
+"pkp-lib/issues\" target=\"_blank\">sustav za prijavu grešaka. Iako je "
+"forum za podršku preferirani način kontaktiranja, timu također možete "
+"poslati e-poruku na pkp."
+"contact@gmail.com.
\n"
+"Snažno se preporučuje da napravite sigurnosnu kopiju "
+"svoje baze podataka, direktorija datoteka i OMP instalacijskog direktorija "
+"prije nastavka.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"Za potpunu Unicode podršku PHP mora biti kompajliran s podrškom za "
+"biblioteku mbstring (omogućena prema zadanim postavkama u najnovijim PHP "
+"instalacijama ). Mogući su problemi s korištenjem proširenih skupova znakova "
+"ako vaš poslužitelj ne ispunjava ove zahtjeve.\n"
+"
\n"
+"Vaš poslužitelj trenutno podržava mbstring: "
+"{$supportsMBString}"
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"Vaš poslužitelj trenutno dopušta učitavanje datoteka: "
+"{$allowFileUploads}"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"Rok za pregled kruga {$round} prijave {$submissionId} od strane "
+"{$reviewerName} postavljen je na {$dueDate}."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"{$reviewerName} je odbio krug {$round} recenzije za prijavu {$submissionId}."
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"Vaš poslužitelj trenutno dopušta maksimalnu veličinu datoteke za učitavanje "
+"od: {$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"Primarni jezik koji se koristi za ovaj sustav. Molimo pogledajte OMP "
+"dokumentaciju ako ste zainteresirani za podršku za jezike koji nisu ovdje "
+"navedeni."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Odaberite dodatne jezike za podršku u ovom sustavu. Ti će jezici biti "
+"dostupni za korištenje u tiskovnim medijima koji se nalaze na stranici. "
+"Dodatni jezici također se mogu instalirati u bilo kojem trenutku iz "
+"administrativnog sučelja stranice. Lokacije označene * mogu biti nepotpune."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"OMP zahtijeva pristup SQL bazi podataka za pohranu svojih podataka. "
+"Pogledajte gornje sistemske zahtjeve za popis podržanih baza podataka. U "
+"donjim poljima unesite postavke koje će se koristiti za povezivanje s bazom "
+"podataka."
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"VAŽNO!
\n"
+"Instalacijski program nije mogao automatski prebrisati konfiguracijsku "
+"datoteku. Prije nego pokušate koristiti sustav, otvorite config.inc.php"
+"tt> u odgovarajućem uređivaču teksta i zamijenite njegov sadržaj sadržajem "
+"tekstualnog polja ispod.
"
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"{$reviewerName} je prihvatio krug {$round} recenziju za prijavu "
+"{$submissionId}."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"{$editorName} je označio krug {$round} recenzije za prijavu {$submissionId} "
+"kao nerazmotrenu."
+
+msgid "log.editor.decision"
+msgstr ""
+"Odluku urednika ({$decision}) za monografiju {$submissionId} zabilježio je "
+"{$editorName}."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"Preporuku urednika ({$decision}) za monografiju {$submissionId} zabilježio "
+"je {$editorName}."
+
+msgid "log.editor.archived"
+msgstr "Prijava {$submissionId} je arhivirana."
+
+msgid "log.editor.restored"
+msgstr "Prijava {$submissionId} je vraćena u red čekanja."
+
+msgid "log.editor.editorAssigned"
+msgstr "{$editorName} je određen kao urednik prijave {$submissionId}."
+
+msgid "log.proofread.assign"
+msgstr ""
+"{$assignerName} je dodijelio {$proofreaderName} da lektorira prijavu "
+"{$submissionId}."
+
+msgid "log.proofread.complete"
+msgstr "{$proofreaderName} je prijavio/la {$submissionId} na zakazivanje."
+
+msgid "log.imported"
+msgstr "{$userName} je prenio/la monografiju {$submissionId}."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Dodan identifikacijski kod."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Uređen identifikacijski kod."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Uklonjen identifikacijski kod."
+
+msgid "notification.addedPublicationDate"
+msgstr "Dodan datum objave."
+
+msgid "notification.editedPublicationDate"
+msgstr "Uređen datum objave."
+
+msgid "notification.removedPublicationDate"
+msgstr "Uklonjen datum objave."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Dodan format publikacije."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Uređen format publikacije."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Uklonjen format publikacije."
+
+msgid "notification.addedSalesRights"
+msgstr "Dodana prava prodaje."
+
+msgid "notification.editedSalesRights"
+msgstr "Uređena prava prodaje."
+
+msgid "notification.removedSalesRights"
+msgstr "Uklonjena prava prodaje."
+
+msgid "notification.addedRepresentative"
+msgstr "Dodan predstavnik."
+
+msgid "notification.editedRepresentative"
+msgstr "Uređen predstavnik."
+
+msgid "notification.removedRepresentative"
+msgstr "Uklonjen predstavnik."
+
+msgid "notification.addedMarket"
+msgstr "Dodano tržište."
+
+msgid "notification.editedMarket"
+msgstr "Uređeno tržište."
+
+msgid "notification.removedMarket"
+msgstr "Uklonjeno tržište."
+
+msgid "notification.addedSpotlight"
+msgstr "Dodano središte pažnje."
+
+msgid "notification.editedSpotlight"
+msgstr "Uređeno središte pažnje."
+
+msgid "notification.removedSpotlight"
+msgstr "Uklonjeno središte pažnje."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Metapodaci kataloga spremljeni."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Metapodaci formata publikacije spremljeni."
+
+msgid "notification.proofsApproved"
+msgstr "Dokazi odobreni."
+
+msgid "notification.removedSubmission"
+msgstr "Prijave uklonjene."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Nova monografija \"{$title}\" je predana."
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+"Monografija je odobrena. Posjetite Marketing and Publication kako biste "
+"upravljali pojedinostima kataloga, koristeći veze iznad."
+
+msgid "notification.type.editing"
+msgstr "Uređivanje događaja"
+
+msgid "notification.type.reviewing"
+msgstr "Pregledavanje događaja"
+
+msgid "notification.type.site"
+msgstr "Događaji na stranici"
+
+msgid "notification.type.submissions"
+msgstr "Događaji prijava"
+
+msgid "notification.type.userComment"
+msgstr "Čitatelj je komentirao \"{$title}\"."
+
+msgid "notification.type.public"
+msgstr "Javne objave"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr "Prijavljena je nova monografija kojoj je potrebno odrediti urednika."
+
+msgid "notification.type.copyeditorRequest"
+msgstr "Zamoljeni ste da pregledate kopije za \"{$file}\"."
+
+msgid "notification.type.layouteditorRequest"
+msgstr "Zamoljeni ste da pregledate izglede za \"{$title}\"."
+
+msgid "notification.type.indexRequest"
+msgstr "Zamoljeni ste da izradite indeks za \"{$title}\"."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Započet je postupak interne provjere."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Ova prijava trenutno čeka odobrenje u alatu za unos kataloga prije nego što "
+"se pojavi u javnom katalogu."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "Čeka odobrenje."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"Monografija neće biti uvrštena u katalog do objave. Za dodavanje ove knjige "
+"u katalog kliknite na karticu Publikacije."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "Nijedan način plaćanja još nije konfiguriran."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"Prije definiranja postavki e-trgovine potreban je konfigurirani način "
+"plaćanja."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Upravljanje katalogom"
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr "Pristup vam je odbijen jer niste važeći recenzent za ovu monografiju."
+
+msgid "user.authorization.monographAuthor"
+msgstr "Pristup vam je odbijen jer se niste autor ove monografije."
+
+msgid "user.authorization.monographReviewer"
+msgstr "Pristup vam je odbijen jer niste dodijeljeni recenzent ove monografije."
+
+msgid "user.authorization.monographFile"
+msgstr "Odbijen vam je pristup navedenoj datoteci monografije."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "Nevažeća monografija ili monografija nije tražena!"
+
+msgid "user.authorization.noContext"
+msgstr "Nije pronađen nijedan tisak koji odgovara vašem zahtjevu."
+
+msgid "user.authorization.seriesAssignment"
+msgstr "Pokušavate pristupiti monografiji koja nije dio vašeg niza."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr "Pristup odbijen! Niste dodijeljeni ovoj fazi tijeka rada."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"Pristup odbijen! Grupa korisnika pod kojom trenutno djelujete nije "
+"dodijeljena ovoj fazi tijeka rada. Provjerite postavke tiska."
+
+msgid "payment.directSales"
+msgstr "Preuzmite s web stranice izdavača"
+
+msgid "payment.directSales.price"
+msgstr "Cijena"
+
+msgid "payment.directSales.availability"
+msgstr "Dostupnost"
+
+msgid "payment.directSales.catalog"
+msgstr "Katalog"
+
+msgid "payment.directSales.approved"
+msgstr "Prihvaćeno"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Cijena ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr "Cijene trebaju biti samo numeričke. Nemojte uključivati simbole valuta."
+
+msgid "payment.directSales.directSales"
+msgstr "Izravna prodaja"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notSet"
+msgstr "Nije postavljeno"
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Unesite valjanu cijenu (kao broj)."
+
+msgid "payment.directSales.purchase"
+msgstr "Kupi {$format} ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Preuzmi {$format}"
+
+msgid "payment.directSales.openAccess"
+msgstr "Otvori Access"
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"Formati datoteka mogu biti dostupni za preuzimanje s web stranice za tisak "
+"putem otvorenog pristupa bez troškova za čitatelje ili izravne prodaje ("
+"koristeći online procesor plaćanja, kako je konfigurirano u Distribuciji). "
+"Za ovu datoteku navedite osnovu pristupa."
+
+msgid "payment.directSales.monograph.name"
+msgstr "Kupi monografiju ili preuzmi poglavlje"
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+"Ova se transakcija odnosi na kupnju izravnog preuzimanja jedne monografije "
+"ili monografskog poglavlja."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+"Ponovno učitana XML datoteka za mapiranje pomoći {$filename} u potrazi za "
+"{$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Knjiga"
+
+msgid "submission.pdf.download"
+msgstr "Preuzmi PDF"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Prikaži druge izdavače"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "Sakrij druge izdavače"
+
+msgid "submission.round"
+msgstr "Krug {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "Naveden je nevažeća objavljena prijava."
+
+msgid "catalog.coverImageTitle"
+msgstr "Naslovna fotografija"
+
+msgid "grid.catalogEntry.chapters"
+msgstr "Poglavlje"
+
+msgid "search.results.orderBy.article"
+msgstr "Naslov članka"
+
+msgid "search.results.orderBy.author"
+msgstr "Autor/ica"
+
+msgid "search.results.orderBy.date"
+msgstr "Datum objavljivanja"
+
+msgid "search.results.orderBy.monograph"
+msgstr "Naslov monografije"
+
+msgid "search.results.orderBy.press"
+msgstr "Naslov tiska"
+
+msgid "search.results.orderBy.popularityAll"
+msgstr "Popularnost (sva vremena)"
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr "Popularnost (prošli mjesec)"
+
+msgid "search.results.orderBy.relevance"
+msgstr "Relevantnost"
+
+msgid "search.results.orderDir.asc"
+msgstr "Uzlazni"
+
+msgid "section.section"
+msgstr "Nizovi"
diff --git a/locale/hr/manager.po b/locale/hr/manager.po
new file mode 100644
index 00000000000..0217064ec46
--- /dev/null
+++ b/locale/hr/manager.po
@@ -0,0 +1,1682 @@
+# Boris Badurina , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-03-03 16:22+0000\n"
+"Last-Translator: Boris Badurina \n"
+"Language-Team: Croatian \n"
+"Language: hr\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 "manager.settings"
+msgstr "Postavke"
+
+msgid "manager.users.currentRoles"
+msgstr "Trenutne funkcije"
+
+msgid "manager.users.selectRole"
+msgstr "Odaberite funkciju"
+
+msgid "manager.setup.copyeditInstructions"
+msgstr "Smjernice za korekturu"
+
+msgid "manager.setup.copyeditInstructionsDescription"
+msgstr ""
+"Smjernice za korekturu dostupne su urednicima, autorima i urednicima rubrika "
+"u fazi 'redakcijske obrade'. Na dnu stranice nalazi se skup zadanih HTML "
+"unaprijed postavljenih postavki. Upravitelj izdavanja može ih promijeniti "
+"ili zamijeniti u bilo kojem trenutku (u HTML-u ili u običnom tekstu)."
+
+msgid "manager.setup.copyrightNotice"
+msgstr "Obavijest o autorskim pravima"
+
+msgid "manager.setup.details.description"
+msgstr "Ime izdavača, kontakt osoba, sponzori i tražilice."
+
+msgid "manager.setup.disableUserRegistration"
+msgstr ""
+"Direktori izdavača registriraju sve korisnike. Zajedno s urednicima i "
+"urednicima rubrika, oni jedini mogu prijaviti recenzente."
+
+msgid "manager.setup.discipline"
+msgstr "Znanstvene discipline i poddiscipline"
+
+msgid "manager.setup.disciplineDescription"
+msgstr ""
+"Ovo je korisno kada izdavač prelazi granice discipline i/ili autori predaju "
+"interdisciplinarne radove."
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr "Prikaži istaknute knjige na početnoj stranici"
+
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr "Istaknute knjige"
+
+msgid "manager.setup.emailSignature"
+msgstr "Potpis"
+
+msgid "manager.setup.emailSignature.description"
+msgstr ""
+"E-pošta poslana automatski u ime izdavača imat će dodan sljedeći potpis."
+
+msgid "manager.setup.enableAnnouncements.enable"
+msgstr "Omogući obavijesti"
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr ""
+"Obavijesti se mogu objavljivati kako bi se čitatelji informirali o novostima "
+"i događajima. Objavljene obavijesti pojavit će se na stranici Obavijesti."
+
+msgid "manager.setup.form.contactNameRequired"
+msgstr "Ime primarnog kontakta je obavezno."
+
+msgid "manager.setup.form.numReviewersPerSubmission"
+msgstr "Molimo navedite broj recenzenata po rukopisu."
+
+msgid "manager.setup.form.supportEmailRequired"
+msgstr "E-pošta podrške je obavezna."
+
+msgid "manager.setup.form.supportNameRequired"
+msgstr "Ime podrške je obavezno."
+
+msgid "manager.setup.generalInformation"
+msgstr "Opće informacije"
+
+msgid "manager.setup.gettingDownTheDetails"
+msgstr "1. korak: upoznajte se sa sustavom"
+
+msgid "manager.setup.guidelines"
+msgstr "Smjernice"
+
+msgid "manager.setup.preparingWorkflow"
+msgstr "3. korak: priprema radnog tijeka"
+
+msgid "manager.setup.identity"
+msgstr "Identitet izdavača"
+
+msgid "manager.setup.information"
+msgstr "Informacije"
+
+msgid "manager.setup.information.forAuthors"
+msgstr "Za autore"
+
+msgid "manager.setup.information.forLibrarians"
+msgstr "Za knjižničare"
+
+msgid "manager.setup.keyInfo"
+msgstr "Glavne informacije"
+
+msgid "manager.setup.keyInfo.description"
+msgstr ""
+"Uključite kratak opis svog izdavača i identificirajte urednike, upravne "
+"direktore i druge članove uredničkog tima."
+
+msgid "manager.setup.labelName"
+msgstr "Naziv oznake"
+
+msgid "manager.setup.layoutAndGalleys"
+msgstr "Urednici layouta"
+
+msgid "manager.setup.management.description"
+msgstr ""
+"Pristup i sigurnost, zakazivanje rokova, najave, uređivanje, layout i "
+"lektura."
+
+msgid "manager.setup.managementOfBasicEditorialSteps"
+msgstr "Upravljanje osnovnim redakcijskim koracima"
+
+msgid "manager.setup.managingPublishingSetup"
+msgstr "Postavljanje administrativnog i objavljivačkog postupka"
+
+msgid "manager.setup.managingThePress"
+msgstr "4. korak: Upravljanje postavkama"
+
+msgid "manager.setup.noImageFileUploaded"
+msgstr "Nije učitana nijedna slika."
+
+msgid "manager.setup.pageHeader"
+msgstr "Zaglavlje stranice"
+
+msgid "manager.setup.pressPolicies"
+msgstr "2. korak: smjernice za izdavače"
+
+msgid "manager.setup.pressSetup"
+msgstr "Postavke izdavača"
+
+msgid "manager.setup.pressSetupUpdated"
+msgstr "Postavke izdavača su ažurirane"
+
+msgid "manager.setup.styleSheetInvalid"
+msgstr "Nevažeći format stilova. Prihvaćeni format je .css."
+
+msgid "manager.setup.pressTheme"
+msgstr "Tema izdavača"
+
+msgid "manager.setup.pressThumbnail"
+msgstr "Thumbnail izdavača"
+
+msgid "manager.setup.pageHeaderDescription"
+msgstr "Opis zaglavlja stranice"
+
+msgid "manager.setup.proofingInstructionsDescription"
+msgstr ""
+"Smjernice za ispravke dostupne su lektorima, autorima, urednicima layouta i "
+"izdavačima rubrika u fazi 'uredničke obrade'. Ispod su standardne smjernice "
+"u HTML-u koje voditelj izdavaštva može uređivati ili mijenjati (u HTML-u ili "
+"običnom tekstu)."
+
+msgid "manager.setup.proofreading"
+msgstr "Lektori"
+
+msgid "manager.setup.provideRefLinkInstructions"
+msgstr "Urednicima layouta pružite upute."
+
+msgid "manager.setup.reviewOptions"
+msgstr "Opcije recenzije"
+
+msgid "manager.setup.reviewOptions.automatedReminders"
+msgstr "Automatski podsjetnici putem e-pošte"
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr "Ograničenje pristupa datoteci"
+
+msgid "manager.setup.useTextTitle"
+msgstr "Naslov"
+
+msgid "manager.setup.issnDescription"
+msgstr ""
+"ISSN (International Standard Serial Number) je osmeroznamenkasti broj koji "
+"identificira periodične publikacije uključujući elektroničke serijske "
+"publikacije. Broj se može dobiti u ISSN Međunarodnom centru."
+
+msgid "manager.setup.currentFormats"
+msgstr "Trenutni formati"
+
+msgid "manager.setup.categoriesAndSeries"
+msgstr "Kategorije i serije"
+
+msgid "manager.setup.series.description"
+msgstr ""
+"Možete stvoriti bilo koji broj serija kako biste organizirali svoje "
+"publikacije. Serija predstavlja poseban skup knjiga posvećen temi ili temama "
+"koje je netko predložio, obično jedan ili dva akademika, koji ih zatim "
+"nadzire. Posjetitelji će moći pretraživati i pregledavati tisak po serijama."
+
+msgid "manager.setup.reviewForms"
+msgstr "Recenzijski obrasci"
+
+msgid "stats.publicationStats"
+msgstr "Statistika monografije"
+
+msgid "stats.publications.abstracts"
+msgstr "Unosi u katalog"
+
+msgid "emailTemplate.variable.context.mailingAddress"
+msgstr "Adresa e-pošte naklade"
+
+msgid "emailTemplate.variable.statisticsReportNotify.publicationStatsLink"
+msgstr "Poveznica na stranicu statistike za knjigu"
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr "Poglavlja"
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr "Formati publikacije"
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr "Datoteke"
+
+msgid "mailable.indexRequest.name"
+msgstr "Indeks zatražen"
+
+msgid "mailable.indexComplete.name"
+msgstr "Indeks završen"
+
+msgid "manager.language.confirmDefaultSettingsOverwrite"
+msgstr ""
+"Ovo zamjenjuje sve prethodno napravljene prilagodbe za ove regionalne "
+"postavke"
+
+msgid "manager.languages.noneAvailable"
+msgstr ""
+"Nažalost, drugi jezici nisu dostupni. Obratite se svom administratoru "
+"stranice ako želite koristiti dodatne jezike."
+
+msgid "manager.languages.primaryLocaleInstructions"
+msgstr "Ovaj jezik će biti zadani jezik za web stranicu izdavača."
+
+msgid "manager.series.form.mustAllowPermission"
+msgstr ""
+"Provjerite je li barem jedno polje za označavanje kvačicom označeno za svaki "
+"zadatak urednika serije."
+
+msgid "manager.series.form.reviewFormId"
+msgstr "Provjerite jeste li odabrali važeći obrazac za pregled."
+
+msgid "manager.series.submissionIndexing"
+msgstr "Neće biti uključeno u indeksiranje"
+
+msgid "manager.series.editorRestriction"
+msgstr "Naslove mogu slati samo urednici i urednici serijala."
+
+msgid "manager.series.confirmDelete"
+msgstr "Jeste li sigurni da želite trajno izbrisati ovu seriju?"
+
+msgid "manager.series.indexed"
+msgstr "Indeksirano"
+
+msgid "manager.series.open"
+msgstr "Otvorene prijave"
+
+msgid "manager.series.readingTools"
+msgstr "Alati za čitanje"
+
+msgid "manager.series.submissionReview"
+msgstr "Nema recenzije"
+
+msgid "manager.series.submissionsToThisSection"
+msgstr "Rukopisi predani u ovoj seriji"
+
+msgid "manager.series.abstractsNotRequired"
+msgstr "Sažeci nisu potrebni"
+
+msgid "manager.series.disableComments"
+msgstr "Onemogući komentare čitatelja za ovu seriju."
+
+msgid "manager.series.book"
+msgstr "Serija knjiga"
+
+msgid "manager.series.create"
+msgstr "Stvori seriju"
+
+msgid "manager.series.policy"
+msgstr "Opis serije"
+
+msgid "manager.series.assigned"
+msgstr "Urednici ove serije"
+
+msgid "manager.series.seriesEditorInstructions"
+msgstr ""
+"Dodajte urednika serije s popisa dostupnih urednika serije. Zatim odredite "
+"treba li urednik serije koordinirati postupak recenziranja i preuzeti "
+"uređivanje (uređivanje, raspored i lekturu) rukopisa u ovoj seriji ili samo "
+"jedno od dva područja odgovornosti. Ako želite stvoriti novog urednika "
+"serije, idite na \"Administracija\" > \"Postavke i funkcije\" na \"Funkcije\""
+" i kliknite na Uređivači serije ."
+
+msgid "manager.series.hideAbout"
+msgstr "Ne prikazujte ovu seriju pod \"O nama\"."
+
+msgid "manager.series.unassigned"
+msgstr "Dostupni urednici serije"
+
+msgid "manager.series.form.abbrevRequired"
+msgstr "Za seriju je potreban skraćeni naslov."
+
+msgid "manager.series.form.titleRequired"
+msgstr "Za seriju je potreban naslov."
+
+msgid "manager.series.noneCreated"
+msgstr "Nijedna serija nije stvorena."
+
+msgid "manager.series.existingUsers"
+msgstr "Postojeći korisnici"
+
+msgid "manager.series.seriesTitle"
+msgstr "Naslov serije"
+
+msgid "manager.series.restricted"
+msgstr "Nemojte dopustiti autorima da se izravno prijave za ovu seriju."
+
+msgid "manager.payment.generalOptions"
+msgstr "Opće postavke"
+
+msgid "manager.payment.options.enablePayments"
+msgstr ""
+"Plaćanja će biti omogućena za ovog izdavača. Imajte na umu da se korisnici "
+"moraju prijaviti za plaćanje."
+
+msgid "manager.payment.success"
+msgstr "Postavke plaćanja su ažurirane."
+
+msgid "manager.settings.pressSettings"
+msgstr "Postavke izdavača"
+
+msgid "manager.settings.press"
+msgstr "Izdavač"
+
+msgid "manager.settings.publisher.identity"
+msgstr "Identitet izdavača"
+
+msgid "manager.settings.publisher.identity.description"
+msgstr ""
+"Iako ova polja nisu inherentno potrebna za korištenje OMP-a, potrebna su za "
+"generiranje valjanih ONIX metapodataka. Uključite ih ako želite koristiti ONIX "
+"funkcionalnost."
+
+msgid "manager.settings.publisher"
+msgstr "Ime izdavača"
+
+msgid "manager.settings.location"
+msgstr "Mjesto"
+
+msgid "manager.settings.publisherCode"
+msgstr "Kod izdavača"
+
+msgid "manager.settings.publisherCodeType"
+msgstr "Vrsta koda izdavača"
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr "Ovo nije ispravna vrsta koda izdavača."
+
+msgid "manager.settings.distributionDescription"
+msgstr ""
+"Postavke koje utječu na distribuciju (obavijest, indeksiranje, arhiviranje, "
+"plaćanje, alati za čitanje)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr "Preuzimanje datoteka monografije"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr "Prikaz stranice sa sažetkom monografije"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr "Sažetak monografije i preuzimanja"
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr "Pregledi glavne stranice serije"
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr "Pregledi glavne stranice izdavača"
+
+msgid "manager.tools"
+msgstr "Alati"
+
+msgid "manager.tools.importExport"
+msgstr ""
+"Svi alati specifični za uvoz i izvoz podataka (izdavači, monografije, "
+"korisnici)"
+
+msgid "manager.tools.statistics"
+msgstr ""
+"Alati za generiranje izvješća vezanih uz statistiku korištenja (prikaz "
+"stranice indeksa kataloga, prikaz stranice sa sažetkom monografije, "
+"preuzimanje datoteka monografije)"
+
+msgid "manager.users.availableRoles"
+msgstr "Dostupne funkcije"
+
+msgid "manager.people.allEnrolledUsers"
+msgstr "Korisnici registrirani kod ovog izdavača"
+
+msgid "manager.people.allPresses"
+msgstr "Svi izdavači"
+
+msgid "manager.people.allSiteUsers"
+msgstr "Registrirajte korisnika ove web stranice za ovog izdavača"
+
+msgid "manager.people.allUsers"
+msgstr "Svi registrirani korisnici"
+
+msgid "manager.people.confirmRemove"
+msgstr ""
+"Jeste li sigurni da želite ukloniti ovog korisnika iz ovog izdavača? Ova "
+"radnja uklanja osobu iz svih uloga koje su joj dodijeljene."
+
+msgid "manager.people.enrollExistingUser"
+msgstr "Unesite postojećeg korisnika"
+
+msgid "manager.people.enrollSyncPress"
+msgstr "Kod izdavača"
+
+msgid "manager.people.mergeUsers.from.description"
+msgstr ""
+"Odaberite korisnika čiji se podaci trebaju spojiti s drugim računom (npr. "
+"ako netko ima dva računa). Prvi odabrani račun bit će izbrisan, njegovi "
+"doprinosi, zadaci itd. bit će pripisani drugom računu."
+
+msgid "manager.people.mergeUsers.into.description"
+msgstr ""
+"Odaberite korisnički račun na koji želite prenijeti postojeća autorstva, "
+"zadatke i sl."
+
+msgid "manager.people.syncUserDescription"
+msgstr ""
+"Ovom sinkronizacijom svi korisnici koji su registrirani u određenoj funkciji "
+"kod određenog izdavača također su registrirani u istoj funkciji kod ovog "
+"izdavača. To omogućuje sinkronizaciju zajedničke korisničke grupe (npr. "
+"recenzenti) između izdavača."
+
+msgid "manager.people.confirmDisable"
+msgstr ""
+"Želite li deaktivirati ovog korisnika? Korisnik se tada više neće moći "
+"prijaviti.\n"
+"\n"
+"Korisniku možete reći razlog za deaktivaciju računa (nije obavezno)."
+
+msgid "manager.people.noAdministrativeRights"
+msgstr ""
+"Nemate administrativna prava za ovaj korisnički račun. Razlog tome može biti "
+"sljedeći:\n"
+"\n"
+"- korisnik je administrator stranice
\n"
+"- korisnik je aktivan u izdavaču kojim ne upravljate
\n"
+"
\n"
+"Ovaj zadatak mora izvršiti administrator web stranice.\n"
+"\t"
+
+msgid "manager.system"
+msgstr "Postavke sustava"
+
+msgid "manager.system.archiving"
+msgstr "Arhivirati"
+
+msgid "manager.system.reviewForms"
+msgstr "Obrasci recenzije"
+
+msgid "manager.system.readingTools"
+msgstr "Alati za čitanje"
+
+msgid "manager.system.payments"
+msgstr "Način plaćanja"
+
+msgid "user.authorization.pluginLevel"
+msgstr "Nemate dovoljno ovlasti za upravljanje ovim dodatkom."
+
+msgid "manager.pressManagement"
+msgstr "Izdavačka uprava"
+
+msgid "manager.setup"
+msgstr "Postavke"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Sadržaj"
+
+msgid "manager.setup.addAboutItem"
+msgstr "Dodajte stavku \"O nama\""
+
+msgid "manager.setup.addChecklistItem"
+msgstr "Dodajte stavku \"kontrolna lista\""
+
+msgid "manager.setup.addItem"
+msgstr "Dodaj stavku"
+
+msgid "manager.setup.addItemtoAboutPress"
+msgstr "Dodajte stavku koja se pojavljuje pod \"O nama\""
+
+msgid "manager.setup.addNavItem"
+msgstr "Dodaj stavku"
+
+msgid "manager.setup.addSponsor"
+msgstr "Dodajte sponzorsku organizaciju"
+
+msgid "manager.setup.announcements"
+msgstr "Obavijesti"
+
+msgid "manager.setup.announcements.success"
+msgstr "Postavke obavijesti su ažurirane."
+
+msgid "manager.setup.announcementsDescription"
+msgstr ""
+"Uz pomoć obavijesti možete informirati čitatelje o novostima i skrenuti "
+"pozornost na događanja izdavača. Obavijesti se pojavljuju na stranici "
+"\"Obavijesti\"."
+
+msgid "manager.setup.announcementsIntroduction"
+msgstr "Dodatne informacije"
+
+msgid "manager.setup.announcementsIntroduction.description"
+msgstr ""
+"Unesite sve dodatne informacije koje bi trebale biti prikazane čitateljima "
+"na stranici s obavijestima."
+
+msgid "manager.setup.appearInAboutPress"
+msgstr "(Pojavljuje se u 'O nama') "
+
+msgid "manager.setup.contextAbout"
+msgstr "O nama"
+
+msgid "manager.setup.contextAbout.description"
+msgstr ""
+"Uključite sve informacije o svom izdavaču koje bi mogle zanimati čitatelje, "
+"autore ili recenzente. To može uključivati vašu politiku otvorenog pristupa, "
+"fokus i doseg izdavača, sponzore i povijest vašeg izdavača."
+
+msgid "manager.setup.contextSummary"
+msgstr "Opis izdavača"
+
+msgid "manager.setup.copyediting"
+msgstr "Urednici"
+
+msgid "manager.setup.coverage"
+msgstr "Opseg sadržaja"
+
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr "Maksimalna visina naslovne slike"
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr "Maksimalna širina naslovne slike"
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr ""
+"Slike će biti smanjene ako su veće od dopuštenih. Nikada se ne povećavaju "
+"ili rastežu kako bi odgovarale dimenzijama."
+
+msgid "manager.setup.customizingTheLook"
+msgstr "Korak 5. Prilagodite Look & Fell"
+
+msgid "manager.setup.customTags"
+msgstr "Prilagođene oznake"
+
+msgid "manager.setup.customTagsDescription"
+msgstr ""
+"Prilagođene HTML oznake zaglavlja umetnute u zaglavlje svake stranice (npr. "
+"meta oznake)."
+
+msgid "manager.setup.details"
+msgstr "Detalji"
+
+msgid "manager.setup.disciplineExamples"
+msgstr ""
+"(npr. povijest; obrazovna znanost; sociologija; psihologija; kulturalni "
+"studiji; pravo)"
+
+msgid "manager.setup.disciplineProvideExamples"
+msgstr "Navedite primjere relevantnih akademskih disciplina vaše izdavačke kuće"
+
+msgid "manager.setup.displayCurrentMonograph"
+msgstr "Uključite sadržaj sadašnje monografije (ako je dostupan)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr "Sadržaj početne stranice"
+
+msgid "manager.setup.displayInSpotlight"
+msgstr "Prikažite knjige na početnoj stranici tako da budu u centru pažnje"
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr "Centar pažnje"
+
+msgid "manager.setup.displayNewReleases"
+msgstr "Prikaži nova izdanja na početnoj stranici"
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr "Nova izdanja"
+
+msgid "manager.setup.enableDois.description"
+msgstr ""
+"Dodijelite identifikatore digitalnih objekata (DOI) monografijama, "
+"poglavljima, formatima publikacija i datotekama."
+
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr ""
+"Odaberite vrste radova koje je objavio ovaj izdavač kojima treba dodijeliti "
+"DOI. Većina izdavača dodjeljuje DOI monografijama/poglavljima, ali možda "
+"ćete htjeti dodijeliti DOI svim objavljenim stavkama."
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr ""
+"Koristite standardne obrasce.
%p.%m za monografije
%p.%m.c%c za "
+"poglavlja
%p.%m.%f za formate publikacija
%p. %m.%f.%s za datoteke."
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr "U koraku \"Uređivanje\""
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr "Format / {$format}"
+
+msgid "manager.setup.editorDecision"
+msgstr "Odluka urednika"
+
+msgid "manager.setup.emailBounceAddress"
+msgstr "Adresa e-pošte za povratne poruke (bounce poruke)"
+
+msgid "manager.setup.emailBounceAddress.description"
+msgstr ""
+"Svaka e-pošta koja se ne može isporučiti rezultirat će slanjem poruke o "
+"pogrešci na tu adresu e-pošte."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr ""
+"Za slanje e-pošte koja se ne može isporučiti na adresu za odbijanje, "
+"administrator treba omogućiti opciju allow_envelope_sender
u "
+"konfiguracijskoj datoteci web-mjesta. Možda će biti potrebna konfiguracija "
+"poslužitelja, kao što je navedeno u OMP dokumentaciji."
+
+msgid "manager.setup.emails"
+msgstr "Identifikacija e-pošte"
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr "Prikaži na naslovnoj stranici"
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr ""
+"Koliko se obavijesti pojavljuje na početnoj stranici. Ostavite polje prazno "
+"da se obavijesti ne prikazuju."
+
+msgid "manager.setup.enablePressInstructions"
+msgstr "Odobrite ovom izdavaču javno pojavljivanje na web stranici"
+
+msgid "manager.setup.enablePublicMonographId"
+msgstr ""
+"Prilagođeni identifikatori koriste se za identifikaciju objavljenih naslova."
+
+msgid "manager.setup.enablePublicGalleyId"
+msgstr ""
+"Prilagođeni identifikatori koriste se za identifikaciju oznaka (npr. HTML "
+"ili PDF datoteka) za objavljene sveske."
+
+msgid "manager.setup.enableUserRegistration"
+msgstr "Korisnici se mogu registrirati kod izdavača."
+
+msgid "manager.setup.focusAndScope"
+msgstr "Profil izdavača"
+
+msgid "manager.setup.focusAndScope.description"
+msgstr ""
+"Uključite kratku prezentaciju o izdavaču(dostupnu na web stranici pod 'O "
+"nama') dajući autorima, čitateljima i knjižničarima predodžbu o rasponu "
+"monografija i drugih izdavačkih proizvoda koje će izdavač objaviti."
+
+msgid "manager.setup.focusScope"
+msgstr "Profil izdavača"
+
+msgid "manager.setup.focusScopeDescription"
+msgstr "PRIMJER HTML PODATAKA"
+
+msgid "manager.setup.forAuthorsToIndexTheirWork"
+msgstr "Za autore kako bi indeksirali svoj rad"
+
+msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
+msgstr ""
+"OMP se pridržava Open Archives Initiative protokola za prikupljanje metapodataka, koji "
+"je standard u nastajanju za pružanje dobro indeksiranog pristupa "
+"elektroničkim istraživačkih resursa na globalnoj razini. Autori će koristiti "
+"odgovarajući predložak za pružanje metapodataka za svoj rukopis. Voditelj "
+"izdavaštva trebao bi odabrati kategorije za indeksiranje i pokazati primjere "
+"autorima kako bi im pomogao indeksirati svoja djela; pojmovi kategorije "
+"međusobno su odvojeni točkom i zarezom (na primjer: pojam 1; pojam 2). Unose "
+"treba uvoditi kao primjere korištenjem \"Npr.\" ili \"Na primjer\"."
+
+msgid "manager.setup.form.contactEmailRequired"
+msgstr "E-mail adresa glavne kontakt osobe je obavezna."
+
+msgid "manager.setup.information.description"
+msgstr ""
+"Ovi kratki opisi izdavača, namijenjeni knjižničarima, zainteresiranim "
+"autorima i čitateljima, pojavljuju se na bočnoj traci pod \"Informacije\"."
+
+msgid "manager.setup.information.forReaders"
+msgstr "Za čitatelje"
+
+msgid "manager.setup.information.success"
+msgstr "Podaci o ovom izdavaču su ažurirani."
+
+msgid "manager.setup.institution"
+msgstr "Institucija"
+
+msgid "manager.setup.itemsPerPage"
+msgstr "Stavke po stranici"
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr ""
+"Ograničite broj stavki (npr. podnesaka, korisnika ili zadataka za uređivanje)"
+" koje se pojavljuju na popisu prije nego što se dodatne stavke pojave na "
+"sljedećoj stranici."
+
+msgid "manager.setup.layoutInstructions"
+msgstr "Smjernice za layout"
+
+msgid "manager.setup.layoutInstructionsDescription"
+msgstr ""
+"Za oblikovanje publikacija mogu se izraditi smjernice za layout i uključiti "
+"u nastavku u HTML-u ili običnom tekstu. Oni će biti dostupni uredniku "
+"layouta i uređivaču odjeljka na stranici za uređivanje svakog rukopisa.("
+"Budući da svaki izdavač može koristiti vlastite formate datoteka, "
+"bibliografske standarde, stilske listove itd., nisu navedene standardne "
+"smjernice za izgled.)"
+
+msgid "manager.setup.layoutTemplates"
+msgstr "Predlošci layouta"
+
+msgid "manager.setup.layoutTemplatesDescription"
+msgstr ""
+"Predlošci se mogu učitati kako bi se pojavili u Layoutu za svaki od "
+"standardnih formata izdavača (npr. monografija, recenzija knjige itd.) "
+"koristeći bilo koji format datoteke (npr. pdf, doc itd.) s dodanim "
+"komentarima koji određuju font, veličinu , margine itd. koji će poslužiti "
+"kao vodič za urednike layouta i lektore."
+
+msgid "manager.setup.layoutTemplates.file"
+msgstr "Datoteka predloška"
+
+msgid "manager.setup.layoutTemplates.title"
+msgstr "Naslov"
+
+msgid "manager.setup.lists"
+msgstr "Popis"
+
+msgid "manager.setup.lists.success"
+msgstr "Postavke popisa uspješno su ažurirane."
+
+msgid "manager.setup.look"
+msgstr "Izgled"
+
+msgid "manager.setup.look.description"
+msgstr ""
+"Zaglavlje naslovne, sadržaj, zaglavlje publikacije, podnožje, navigacijska "
+"traka i stilska tablica."
+
+msgid "manager.setup.settings"
+msgstr "Postavke"
+
+msgid "manager.setup.masthead.success"
+msgstr "Detalji o impresumu za ovog izdavača ažurirani su."
+
+msgid "manager.setup.noStyleSheetUploaded"
+msgstr "Nije učitana nijedna lista stilova."
+
+msgid "manager.setup.note"
+msgstr "Bilješka"
+
+msgid "manager.setup.notifyAllAuthorsOnDecision"
+msgstr ""
+"Ako je rukopis zajednički napisalo nekoliko autora, molimo uključite e-mail "
+"adrese svih autora u e-poruku s obavijesti autoru, a ne samo onu osobe koja "
+"je predala rukopis."
+
+msgid "manager.setup.noUseCopyeditors"
+msgstr "Uređivanje je odgovornost urednika ili urednika rubrike."
+
+msgid "manager.setup.noUseLayoutEditors"
+msgstr ""
+"Urednik ili urednik rubrike koji je prijavljen pripremit će HTML, PDF, itd. "
+"datoteke."
+
+msgid "manager.setup.noUseProofreaders"
+msgstr "Urednik ili urednik rubrika dodijeljen rukopisu pregledava galije."
+
+msgid "manager.setup.numPageLinks"
+msgstr "Poveznice"
+
+msgid "manager.setup.numPageLinks.description"
+msgstr ""
+"Ograničite broj prikazanih poveznica koje vode na daljnje stranice na popisu."
+
+msgid "manager.setup.onlineAccessManagement"
+msgstr "Pristup sadržaju izdavača"
+
+msgid "manager.setup.onlineIssn"
+msgstr "Online ISSN"
+
+msgid "manager.setup.policies"
+msgstr "Politike"
+
+msgid "manager.setup.policies.description"
+msgstr ""
+"Fokus, stručni pregled, rubrike, privatnost, sigurnost i dodatne informacije "
+"o stavkama."
+
+msgid "manager.setup.privacyStatement.success"
+msgstr "Izjava o privatnosti je ažurirana."
+
+msgid "manager.setup.appearanceDescription"
+msgstr ""
+"S ove stranice mogu se konfigurirati različite komponente izgleda za tisak, "
+"uključujući elemente zaglavlja i podnožja, stil i temu izdavača te način na "
+"koji se popisi informacija predstavljaju korisnicima."
+
+msgid "manager.setup.pressDescription"
+msgstr "Opis izdavača"
+
+msgid "manager.setup.pressDescription.description"
+msgstr "Kratak opis vašeg izdavača."
+
+msgid "manager.setup.aboutPress"
+msgstr "O izdavaču"
+
+msgid "manager.setup.aboutPress.description"
+msgstr ""
+"Uključite sve informacije o svojoj publikaciji koje bi mogle biti zanimljive "
+"čitateljima, autorima ili recenzentima. To može uključivati vašu politiku "
+"otvorenog pristupa, fokus i opseg tiska, obavijest o autorskim pravima, "
+"otkrivanje sponzorstva, povijest tiska i izjavu o privatnosti."
+
+msgid "manager.setup.pressArchiving"
+msgstr "Arhiviranje"
+
+msgid "manager.setup.homepageContent"
+msgstr "Sadržaj"
+
+msgid "manager.setup.homepageContentDescription"
+msgstr ""
+"Početna stranica izdavača prema zadanim se postavkama sastoji od poveznica "
+"za navigaciju. Dodatni sadržaj može se dodati na početnu stranicu pomoću "
+"jedne ili više sljedećih opcija. Pojavljuju se na početnoj stranici "
+"redoslijedom kojim su navedeni na ovoj stranici."
+
+msgid "manager.setup.pressHomepageContent"
+msgstr "Sadržaj"
+
+msgid "manager.setup.pressHomepageContentDescription"
+msgstr ""
+"Početna stranica izdavača prema zadanim se postavkama sastoji od poveznica "
+"za navigaciju. Dodatni sadržaj može se dodati na početnu stranicu pomoću "
+"jedne ili više sljedećih opcija. Pojavljuju se na početnoj stranici "
+"redoslijedom kojim su navedeni na ovoj stranici."
+
+msgid "manager.setup.contextInitials"
+msgstr "Inicijali izdavača"
+
+msgid "manager.setup.selectCountry"
+msgstr ""
+"Odaberite ili državu u kojoj se izdavač nalazi, zemlju izdavača ili adresu e-"
+"pošte izdavača."
+
+msgid "manager.setup.layout"
+msgstr "Layout izdavača"
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr "Mali logo izdavača koji se može koristiti u popisima nakladnika."
+
+msgid "manager.setup.contextTitle"
+msgstr "Ime izdavača"
+
+msgid "manager.setup.printIssn"
+msgstr "ISSN tiskanog izdanja"
+
+msgid "manager.setup.proofingInstructions"
+msgstr "Smjernice za ispravak"
+
+msgid "manager.setup.publicationScheduleDescription"
+msgstr ""
+"Članci se mogu objavljivati zajedno, kao dijelovi monografije, sa svojim "
+"sadržajem. Međutim, moguće ih je objaviti i pojedinačno dodavanjem članaka u "
+"sadržaj \"trenutačnog\" sveska. Pod 'O nama', obavijestite svoje čitatelje o "
+"postupku koji će izdavač koristiti i koliko često će se nove publikacije "
+"pojavljivati."
+
+msgid "manager.setup.publisher"
+msgstr "Izdavač"
+
+msgid "manager.setup.publisherDescription"
+msgstr "Naziv organizacije koja vodi izdavaštvo pojavljuje se pod 'O nama'."
+
+msgid "manager.setup.referenceLinking"
+msgstr ""
+"Povezivanje referenci (povezivanje citata iz literature s cjelovitim "
+"elektroničkim tekstovima)"
+
+msgid "manager.setup.refLinkInstructions.description"
+msgstr "Smjernice layouta za povezivanje referenci"
+
+msgid "manager.setup.restrictMonographAccess"
+msgstr ""
+"Za pregled sadržaja otvorenog pristupa korisnici moraju biti registrirani i "
+"prijavljeni."
+
+msgid "manager.setup.restrictSiteAccess"
+msgstr ""
+"Korisnici moraju biti registrirani i prijavljeni za pregled web stranice "
+"izdavača."
+
+msgid "manager.setup.reviewGuidelines"
+msgstr "Smjernice za vanjsku recenziju"
+
+msgid "manager.setup.reviewGuidelinesDescription"
+msgstr ""
+"Smjernice za vanjsku recenziju pružaju vanjskim recenzentima kriterije koje "
+"mogu koristiti za procjenu prikladnosti dostavljenog rukopisa. Smjernice "
+"također mogu sadržavati detaljne upute o tome kako napraviti uspješnu i "
+"smislenu recenziju. Prilikom izrade recenzije, recenzentima se prikazuju dva "
+"otvorena tekstualna okvira, prvi za recenzije koje se upućuju \"autoru i "
+"uredniku\", drugi za recenzije koje se upućuju samo \"urednicima\". "
+"Alternativno, voditelj izdavaštva može kreirati vlastite obrasce za procjenu "
+"pod \"Obrascima za procjenu\". U svim slučajevima, međutim, urednici uvijek "
+"imaju mogućnost uključiti recenzije u svoju korespondenciju s autorom."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr "Smjernice za internu recenziju"
+
+msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
+msgstr ""
+"Kako biste aktivirali ove opcije, administrator stranice mora aktivirati "
+"scheduled_tasks opciju u OMP konfiguracijskoj datoteci. Ovo može "
+"zahtijevati dodatnu konfiguraciju poslužitelja (koja ne mora biti moguća na "
+"svim poslužiteljima), na način naveden u OMP dokumentaciji."
+
+msgid "manager.setup.reviewOptions.onQuality"
+msgstr ""
+"Urednici će nakon svake recenzije procjenjivati kvalitetu rada i suradnje "
+"pojedinih recenzenata ocjenom između 1 i 5."
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
+msgstr ""
+"Recenzenti će imati pristup podnesenoj datoteci tek nakon što pristanu na "
+"recenziju datoteke."
+
+msgid "manager.setup.reviewOptions.reviewerAccess"
+msgstr "Pristup za recenzente"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr "Pristup recenziji preko poveznice"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr "Dodajte sigurnu poveznicu u e-mail pozivu recenzentima."
+
+msgid "manager.setup.reviewOptions.reviewerRatings"
+msgstr "Ocjena rada recenzenata"
+
+msgid "manager.setup.reviewOptions.reviewerReminders"
+msgstr "Podsjetnici za recenzente"
+
+msgid "manager.setup.reviewPolicy"
+msgstr "Recenzijska politika"
+
+msgid "manager.setup.searchDescription.description"
+msgstr ""
+"Kratki opis (50-300 znakova) tiska kojeg će tražilice prikazati u "
+"rezultatima pretraživanja."
+
+msgid "manager.setup.searchEngineIndexing"
+msgstr "Indeksiranje pretraživanja"
+
+msgid "manager.setup.searchEngineIndexing.description"
+msgstr ""
+"Kako bi olakšali pronalaženje ove stranice pomoću mrežnih tražilica, "
+"priložite svoj sitemap."
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr "Postavke indeksa tražilice su ažurirane."
+
+msgid "manager.setup.sectionsAndSectionEditors"
+msgstr "Rubrike i rubrika urednika"
+
+msgid "manager.setup.sectionsDefaultSectionDescription"
+msgstr ""
+"(Ako rubrike nisu dodane, stavke će biti dodane standardnoj rubrici "
+"\"monografije\".)"
+
+msgid "manager.setup.securitySettings"
+msgstr "Postavke pristupa i sigurnosti"
+
+msgid "manager.setup.securitySettings.note"
+msgstr ""
+"Ostale opcije vezane uz sigurnost i pristup mogu se konfigurirati na "
+"stranici Pristup i sigurnost."
+
+msgid "manager.setup.selectEditorDescription"
+msgstr "Urednik tiska koji će ga pregledati tokom uređivačkog procesa."
+
+msgid "manager.setup.selectSectionDescription"
+msgstr "Rubrika tiska čija će se stavka razmatrati."
+
+msgid "manager.setup.showGalleyLinksDescription"
+msgstr ""
+"Uvijek prikaži poveznicu na pun tekst priloga, uz naznaku ograničenja "
+"pristupa."
+
+msgid "manager.setup.siteAccess.view"
+msgstr "Pristup stranici"
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr "Pregled sadržaja monografije"
+
+msgid "manager.setup.stepsToPressSite"
+msgstr "Postavljanje web stranice izdavača u pet koraka"
+
+msgid "manager.setup.subjectExamples"
+msgstr "(Npr. fotosinteza; crne rupe; mirovinska reforma; Bayesova teorija)"
+
+msgid "manager.setup.subjectKeywordTopic"
+msgstr "Ključne riječi"
+
+msgid "manager.setup.useCopyeditors"
+msgstr "Urednik tiskovnih izdanja bit će dodijeljen za rad sa svakom prijavom."
+
+msgid "manager.setup.subjectProvideExamples"
+msgstr ""
+"Navedite primjere ključnih riječi ili tema koji će služiti kao vodič autorima"
+
+msgid "manager.setup.submissionGuidelines"
+msgstr "Smjernice za prijave"
+
+msgid "maganer.setup.submissionChecklistItemRequired"
+msgstr "Potrebno je označiti stavku s popisa."
+
+msgid "manager.setup.workflow"
+msgstr "Radni proces"
+
+msgid "manager.setup.submissions.description"
+msgstr ""
+"Smjernice za autore, autorska prava i indeksiranje (uključujući "
+"registraciju)."
+
+msgid "manager.setup.typeExamples"
+msgstr ""
+"(Npr. povijesno istraživanje; prirodni eksperiment; književna analiza; "
+"anketa/intervju)"
+
+msgid "manager.setup.typeMethodApproach"
+msgstr "Tip (Metoda/Pristup)"
+
+msgid "manager.setup.typeProvideExamples"
+msgstr ""
+"Navedite primjere tipova istraživanja, istraživačkih metoda i pristupa "
+"relevantne za područje ovog tiska"
+
+msgid "manager.setup.useEditorialReviewBoard"
+msgstr "Izdavač će koristiti uredništvo/recenzente."
+
+msgid "manager.setup.useImageTitle"
+msgstr "Slika naslova"
+
+msgid "manager.setup.useStyleSheet"
+msgstr "Tiskovni predložak"
+
+msgid "manager.setup.useLayoutEditors"
+msgstr ""
+"Grafičkom uredniku bit će dodijeljen zadatak pripreme HTML, PDF itd. "
+"datoteka za elektroničku publikaciju."
+
+msgid "manager.setup.useProofreaders"
+msgstr ""
+"Prije same publikacije lektoru će biti dodijeljen zadatak provjere (zajedno "
+"s autorima) oglednog primjerka."
+
+msgid "manager.setup.userRegistration"
+msgstr "Registracija korisnika"
+
+msgid "manager.setup.volumePerYear"
+msgstr "Broj svezaka po godini"
+
+msgid "manager.setup.publicationFormat.code"
+msgstr "Format"
+
+msgid "manager.setup.publicationFormat.codeRequired"
+msgstr "Potrebno je odabrati format."
+
+msgid "manager.setup.publicationFormat.nameRequired"
+msgstr "Potrebno je dodijeliti naziv ovom formatu."
+
+msgid "manager.setup.publicationFormat.physicalFormat"
+msgstr "Je li ovo fizički (nedigitalni) format?"
+
+msgid "manager.setup.publicationFormat.inUse"
+msgstr ""
+"Budući da se ovaj format publikacije trenutno koristi kod monografije u "
+"Vašem tisku, ne može se izbrisati."
+
+msgid "manager.setup.newPublicationFormat"
+msgstr "Novi format publikacije"
+
+msgid "manager.setup.newPublicationFormatDescription"
+msgstr ""
+"Za izradu novog formata publikacije, ispunite donji obrazac i kliknite gumb "
+"\"Stvori\"."
+
+msgid "manager.setup.genresDescription"
+msgstr ""
+"Ovi se žanrovi koriste za imenovanje datoteka i prikazani su u padajućem "
+"izborniku pri učitavanju datoteka. Žanrovi označeni s ## dopuštaju korisniku "
+"da poveže datoteku ili s cijelom knjigom 99Z ili s određenim poglavljem "
+"prema broju (npr. 02)."
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr ""
+"Ovaj tisak trenutno ne prihvaća prijave. Posjetite postavke radnog procesa "
+"kako biste dopustili prijave."
+
+msgid "manager.setup.disableSubmissions.description"
+msgstr ""
+"Spriječite korisnike da šalju nove članke izdavaču. Prijave se mogu "
+"onemogućiti za pojedine serije tiska na stranici za postavke serija tiska ."
+
+msgid "manager.setup.genres"
+msgstr "Žanrovi"
+
+msgid "manager.setup.newGenre"
+msgstr "Novi žanr monografije"
+
+msgid "manager.setup.newGenreDescription"
+msgstr ""
+"Za izradu novog žanra, ispunite donji obrazac i kliknite gumb \"Stvori\"."
+
+msgid "manager.setup.deleteSelected"
+msgstr "Izbriši odabrano"
+
+msgid "manager.setup.restoreDefaults"
+msgstr "Vrati zadane postavke"
+
+msgid "manager.setup.prospectus"
+msgstr "Prospekt"
+
+msgid "manager.setup.prospectusDescription"
+msgstr ""
+"Prospekt je dokument pripremljen za izdavača koji pomaže autoru opisati "
+"predane materijale na način koji omogućuje izdavaču da odredi vrijednost "
+"predanog materijala. Prospekt može uključivati mnogo stavki - od "
+"marketinškog potencijala do teorijske vrijednosti; u svakom slučaju, izdavač "
+"bi trebao izraditi prospekt koji odgovara njihovoj izdavačkoj agendi."
+
+msgid "manager.setup.submitToCategories"
+msgstr "Dozvoli prijave kategorija"
+
+msgid "manager.setup.submitToSeries"
+msgstr "Dozvoli prijave serija"
+
+msgid "manager.setup.categories.description"
+msgstr ""
+"Možete izraditi popis kategorija kako biste lakše organizirali svoje "
+"publikacije. Kategorije su skupine knjiga grupirane prema predmetu, na "
+"primjer Ekonomija; Književnost; Poezija; i tako dalje. Kategorije mogu "
+"pripadati \"nadređenim\" kategorijama: na primjer, nadređena kategorija "
+"Ekonomija može uključivati pojedinačne kategorije Mikroekonomija i "
+"Makroekonomija. Posjetitelji će moći pretraživati i pregledavati tisak po "
+"kategorijama."
+
+msgid "manager.setup.roleType"
+msgstr "Tip funkcije"
+
+msgid "manager.setup.authorRoles"
+msgstr "Funkcije autora"
+
+msgid "manager.setup.managerialRoles"
+msgstr "Menadžerske funkcije"
+
+msgid "manager.setup.availableRoles"
+msgstr "Dostupne funkcije"
+
+msgid "manager.setup.currentRoles"
+msgstr "Trenutne funkcije"
+
+msgid "manager.setup.internalReviewRoles"
+msgstr "Funkcije interne recenzije"
+
+msgid "manager.setup.masthead"
+msgstr "Impresum"
+
+msgid "manager.setup.editorialTeam"
+msgstr "Uredništvo"
+
+msgid "manager.setup.editorialTeam.description"
+msgstr ""
+"Popis urednika, izvršnih direktora i drugih osoba povezanih s izdavačem."
+
+msgid "manager.setup.files"
+msgstr "Datoteke"
+
+msgid "manager.setup.productionTemplates"
+msgstr "Proizvodni predlošci"
+
+msgid "manager.files.note"
+msgstr ""
+"Napomena: Preglednik datoteka napredna je značajka koja omogućuje izravan "
+"pregled i upravljanje datotekama i direktorijima povezanima s izdavačem."
+
+msgid "manager.setup.copyrightNotice.sample"
+msgstr ""
+"Predložene obavijesti o autorskim pravima Creative Commons
\n"
+"Predložena pravila za izdavače koji nude otvoreni pristup
\n"
+"Autori koji objavljuju putem ovog izdavača suglasni su sa sljedećim uvjetima:"
+"\n"
+"\n"
+"- Autori zadržavaju autorska prava i daju izdavaču pravo prvog "
+"objavljivanja rada i licenciraju ga Creative Commons imenovanje "
+"licencom koja omogućuje drugima dijeljenje rada uz uvjet navođenja "
+"autorstva i izvornog objavljivanja u ovom tisku.
\n"
+"- Autori mogu izraditi zasebne, ugovorne aranžmane za neekskluzivnu "
+"distribuciju rada objavljenog u tisku (npr. postavljanje u institucionalni "
+"repozitorij ili objavljivanje u knjizi), uz navođenje da je rad izvorno "
+"objavljen u ovom tisku.
\n"
+"- Autorima je dozvoljeno i potiču se da postave objavljeni rad online ("
+"npr. u institucionalnom repozitoriju ili na svojim mrežnim stranicama) prije "
+"i tijekom postupka prijave, s obzirom da takav postupak može voditi "
+"produktivnoj razmjeni ideja, te ranijoj i većoj citiranosti objavljenog rada "
+"(Pogledajte Učinak otvorenog pristupa)"
+".
\n"
+"
\n"
+"\n"
+"Prijedlog za izdavače koji omogućuju odgođeni otvoren pristup
\n"
+"Autori koji objavljuju putem ovog izdavača suglasni su sa sljedećim uvjetima:"
+"\n"
+"\n"
+"- Autori zadržavaju autorska prava i pružaju izdavaču pravo prvog "
+"objavljivanja, pri čemu će rad [NAVEDITE VREMENSKI PERIOD] po objavljivanju "
+"biti podložan licenci Creative Commons imenovanje licenca koja "
+"omogućuje drugima da dijele rad uz uvijet navođenja autorstva i izvornog "
+"objavljivanja u ovom tisku.
\n"
+"- Autori mogu izraditi zasebne, ugovorne aranžmane za neekskluzivnu "
+"distribuciju rada objavljenog u tisku (npr. postavljanje u institucionalni "
+"repozitorij ili objavljivanje u knjizi), uz navođenje da je rad izvorno "
+"objavljen u ovom tisku.
\n"
+"- Autorima je dozvoljeno i potiču se da postave objavljeni rad online ("
+"npr. u institucionalnom repozitoriju ili na svojim mrežnim stranicama) prije "
+"i tijekom postupka prijave, s obzirom da takav postupak može voditi "
+"produktivnoj razmjeni ideja, te ranijoj i većoj citiranosti objavljenog rada "
+"(Pogledajte Učinak otvorenog pristupa)"
+".
\n"
+"
"
+
+msgid "manager.setup.basicEditorialStepsDescription"
+msgstr ""
+"Koraci: Red čekanja za prijavu > Recenzija prijava > Uređivanje "
+"prijava > Sadržaj.
\n"
+"Odaberite model za upravljanje ovim aspektima uređivačkog procesa. (Da biste "
+"odredili glavnog urednika i urednike serije, idite na Urednici u Upravljanje "
+"tiskom.)"
+
+msgid "manager.setup.referenceLinkingDescription"
+msgstr ""
+"Kako bi čitatelji lakše pristupili mrežno dostupnim inačicama referenci "
+"koje navode autori priloga objavljenih u tisku, moguće je učiniti "
+"sljedeće:
\n"
+"\n"
+"\n"
+"\t- Dodaj alate za čitanje
Glavni urednik može dodati "
+"\"Traženje referenci\" alatima za čitanje koji su pridruženi objavljenim "
+"prilozima. Ovo omogućava čitateljima da zalijepe naslov reference i potraže "
+"ih u određenim bazama.
\n"
+"\t- Uključi poveznice u popis literature
Grafički "
+"urednik može dodati poveznice u reference čiji se sadržaj može pronaći "
+"online. Pri tome se treba ravnati prema sljedećim naputcima (koji se mogu "
+"urediti).
\n"
+"
"
+
+msgid "manager.publication.library"
+msgstr "Knjižnica tiska"
+
+msgid "manager.setup.resetPermissions"
+msgstr "Resetiraj dopuštenja za monografiju"
+
+msgid "manager.setup.resetPermissions.confirm"
+msgstr ""
+"Jeste li sigurni da želite resetirati podatke o dopuštenjima koji su već "
+"primijenjeni na monografijama?"
+
+msgid "manager.setup.resetPermissions.description"
+msgstr ""
+"Izjava o autorskim pravima i podaci o licenci bit će trajno priloženi "
+"objavljenom sadržaju, čime se osigurava da se ti podaci neće promijeniti u "
+"slučaju da izdavač promijeni pravila za nove prijave. Za resetiranje "
+"informacija o pohranjenim dozvolama koje su već priložene objavljenom "
+"sadržaju, upotrijebite gumb u nastavku."
+
+msgid "manager.setup.resetPermissions.success"
+msgstr "Dozvole za monografiju uspješno su resetirane."
+
+msgid "grid.genres.title.short"
+msgstr "Sastavnice"
+
+msgid "grid.genres.title"
+msgstr "Sastavnice monografije"
+
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr "Pošalji kopiju primarnom kontaktu identificiranom u Postavkama tiska."
+
+msgid "grid.series.pathAlphaNumeric"
+msgstr "Putanja serije mora se sastojati samo od slova i brojeva."
+
+msgid "grid.series.pathExists"
+msgstr "Putanja serije već postoji. Unesite novu putanju."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr "Odaberi seriju"
+
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr "Odaberite seriju s kojom želite povezati ovu stavku izbornika."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr "Odaberi kategoriju"
+
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr "Odaberite kategoriju s kojom želite povezati ovu stavku izbornika."
+
+msgid "grid.series.urlWillBe"
+msgstr "URL serije je: {$sampleUrl}"
+
+msgid "stats.contextStats"
+msgstr "Statistika izdavača"
+
+msgid "stats.context.tooltip.text"
+msgstr ""
+"Broj posjetitelja koji su pregledali indeksnu stranicu izdavača i kataloga."
+
+msgid "stats.context.tooltip.label"
+msgstr "O statistici izdavača"
+
+msgid "stats.context.downloadReport.description"
+msgstr ""
+"Preuzmite CSV/Excel spreadsheet sa statističkim podacima o korištenju za "
+"ovaj tisak koji odgovaraju sljedećim parametrima."
+
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr "Broj pregleda stranice indeksa tiska i kataloga."
+
+msgid "stats.context.downloadReport.downloadContext"
+msgstr "Preuzmi tisak"
+
+msgid "stats.publications.downloadReport.description"
+msgstr ""
+"Preuzmite CSV/Excel spreadsheet sa statističkim podacima o monografijama "
+"koji odgovaraju sljedećim parametrima."
+
+msgid "stats.publications.downloadReport.downloadSubmissions"
+msgstr "Preuzmi monografije"
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr "Broj pregleda sažetaka i preuzimanja datoteka za svaku monografiju."
+
+msgid "stats.publications.details"
+msgstr "Detalji o monografiji"
+
+msgid "stats.publications.none"
+msgstr ""
+"Nisu pronađene monografije sa statističkim podacima o korištenju koje "
+"odgovaraju ovim parametrima."
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr "Ukupni broj pregleda kataloga po datumu"
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr "Ukupni broj pregleda datoteke po datumu"
+
+msgid "stats.publications.countOfTotal"
+msgstr "{$count} od {$total} monografija"
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr "Nijedna stavka nije odabrana."
+
+msgid "plugins.importexport.common.error.validation"
+msgstr "Nemoguće konvertirati odabrane stavke."
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr "Neispravan XML:"
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr "Eksport prijava"
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr ""
+"Pošaljite kopiju o potvrdi prijave putem e-pošte primarnom kontaktu za ovog "
+"izdavača."
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.disabled.description"
+msgstr ""
+"Za ovog izdavača nije definiran primarni kontakt. Možete unijeti primarni "
+"kontakt u postavkama tiska."
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr "Navedene stavke nisu pronađene."
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr "Navedeni korisnik, \"{$userName}\", ne postoji."
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr "Proces nije uspio analizirati formate publikacije"
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr "Proces nije uspio analizirati poglavlja"
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr "Naziv izdavača"
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr "URL naslovne stranice izdavača"
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr "Naziv primarnog kontakta za izdavača"
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr "Potpis izdavača putem e-pošte za automatiziranu e-poštu"
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr "Adresa e-pošte primarnog kontakta za izdavača"
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr "Naziv vrste plaćanja"
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr "Iznos plaćanja"
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr "Valuta iznosa plaćanja, poput USD"
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr "Naziv web stranice kada je hostirano više od jednog izdavača"
+
+msgid "doi.displayName"
+msgstr "DOI"
+
+msgid "mailable.validateEmailContext.name"
+msgstr "Potvrda e-pošte (registracija izdavača)"
+
+msgid "mailable.validateEmailContext.description"
+msgstr ""
+"Ova se e-pošta automatski šalje novom korisniku prilikom registriracije "
+"preko izdavača kada postavke zahtijevaju potvrdu adrese e-pošte."
+
+msgid "doi.manager.displayName"
+msgstr "DOI"
+
+msgid "doi.description"
+msgstr ""
+"Ovaj dodatak omogućuje dodjelu Digitalnih identifikatora objekata "
+"monografijama, poglavljima, formatima publikacije i datotekama u OMP-u."
+
+msgid "doi.readerDisplayName"
+msgstr "DOI:"
+
+msgid "doi.manager.settings.description"
+msgstr ""
+"Konfigurirajte DOI dodatak kako biste mogli koristiti DOI i upravljati njime "
+"u OMP-u:"
+
+msgid "doi.manager.settings.explainDois"
+msgstr ""
+"Odaberite objekte za publikaciju kojima će biti dodijeljen Digitalni "
+"identifikator objekta (DOI):"
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr "Monografije"
+
+msgid "doi.manager.settings.doiPrefix"
+msgstr "DOI Prefiks"
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr "DOI prefiks je obavezan i mora biti u obliku 10.xxxx."
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr ""
+"Unesite prilagođeni uzorak sufiksa za svaku vrstu publikacije. Prilagođeni "
+"uzorak sufiksa može koristiti sljedeće simbole za generiranje sufiksa:"
+"
%p
Inicijali izdavača
%m
ID "
+"monografije
%c
ID poglavlja
%f
ID formata "
+"publikacije
%s
ID datoteke
%x
Prilagođeni "
+"identifikator
Pripazite jer prilagođeni uzorci sufiksa često dovode "
+"do problema pri generiranju i pohrani DOI-ja. Kada koristite prilagođeni "
+"uzorak sufiksa, pažljivo provjerite mogu li urednici generirati DOI i "
+"pohraniti ih agenciji za registraciju poput Crossref-a. "
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr "Na primjer, press%ppub%r može stvoriti DOI poput 10.1234/pressESPub100"
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr "za monografije"
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr "za poglavlja"
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr "za formate publikacije"
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr "za datoteke"
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr "Unesite DOI uzorak sufiksa za monografije."
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr "Unesite DOI uzorak sufiksa za poglavlja."
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr "Unesite DOI uzorak sufiksa za formate publikacije."
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr "Unesite DOI uzorak sufiksa za datoteke."
+
+msgid "doi.manager.settings.doiReassign"
+msgstr "Ponovno dodijeli DOI"
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr ""
+"Ako promijenite konfiguraciju DOI-ja, to neće utjecati na DOI-je koji su već "
+"dodijeljeni. Nakon što je DOI konfiguracija spremljena, koristite ovaj gumb "
+"za brisanje svih postojećih DOI-ja tako da se nove postavke mogu primijeniti "
+"na sve postojeće objekte."
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr "Jeste li sigurni da želite izbrisati sve postojeće DOI-je?"
+
+msgid "doi.editor.doi"
+msgstr "DOI"
+
+msgid "doi.editor.doi.description"
+msgstr "DOI mora započinjati s {$prefix}."
+
+msgid "doi.editor.doi.assignDoi"
+msgstr "Dodijeli"
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr "monografiju"
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr "poglavlje"
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr "format publikacije"
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr "datoteku"
+
+msgid "doi.editor.customSuffixMissing"
+msgstr "DOI nije moguće dodijeliti jer nedostaje prilagođeni sufiks."
+
+msgid "doi.editor.missingParts"
+msgstr ""
+"DOI nije moguće generirati jer jednom ili više dijelova DOI uzorka nedostaju "
+"podaci."
+
+msgid "doi.editor.patternNotResolved"
+msgstr "DOI nije moguće dodijeliti jer sadrži nedovršeni uzorak."
+
+msgid "doi.editor.canBeAssigned"
+msgstr ""
+"Ovo je pregled DOI-a. Označite kućicu i spremite obrazac kako biste "
+"dodijelili DOI."
+
+msgid "doi.editor.assigned"
+msgstr "DOI je dodijeljen ovom {$pubObjectType}."
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr ""
+"Navedeni se DOI sufiks već koristi za drugu objavljenu stavku. Unesite novi "
+"DOI sufiks za svaku stavku."
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr "Izbriši"
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr "Jeste li sigurni da želite izbrisati postojeći DOI?"
+
+msgid "doi.editor.assignDoi"
+msgstr "Dodijelite DOI {$pubId} ovom {$pubObjectType}"
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr "DOI nije moguće dodijeliti jer nedostaje prilagođeni sufiks."
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr "DOI {$pubId} nije moguće dodijeliti jer sadrži nedovršeni uzorak."
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr "DOI {$pubId} je dodijeljen."
+
+msgid "doi.editor.missingPrefix"
+msgstr "DOI mora započinjati s {$doiPrefix}."
+
+msgid "doi.editor.preview.publication"
+msgstr "DOI za ovu publikaciju je {$doi}."
+
+msgid "doi.editor.preview.publication.none"
+msgstr "Ovoj publikaciji nije dodijeljen DOI."
+
+msgid "doi.editor.preview.chapters"
+msgstr "Poglavlje: {$title}"
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr "Format publikacije: {$title}"
+
+msgid "doi.editor.preview.files"
+msgstr "Datoteka: {$title}"
+
+msgid "doi.editor.preview.objects"
+msgstr "Stavka"
+
+msgid "doi.manager.submissionDois"
+msgstr "DOI monografije"
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr ""
+"Ova e-poruka obavještava autora da je njegova prijava u procesu slanja u "
+"fazu interne recenzije."
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr ""
+"Ova poruka e-pošte obavještava autora da je njegova prijava odbijena, prije "
+"slanja za recenziju, jer prijava ne ispunjava uvjete za publikaciju kod "
+"izdavača."
+
+msgid "manager.institutions.noContext"
+msgstr "Tisak ove institucije nije pronađen."
+
+msgid "manager.manageEmails.description"
+msgstr "Uredite poruke poslane u e-pošti ovog izdavača."
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr "Poslano za internu recenziju"
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr "Nova verzija stvorena"
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr ""
+"Ova e-poruka automatski obavještava dodijeljene urednike kada je izrađena "
+"nova verzija prijave."
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+"Ova e-poruka šalje se voditeljima izdavača kada se podnese nova prijava i "
+"nisu dodijeljeni urednici."
+
+msgid "mailable.statisticsReportNotify.description"
+msgstr ""
+"Ova pošta se automatski šalje jednom mjesečno urednicima i menadžerima "
+"naklada s pregledom sistemskih podataka."
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
+msgstr ""
+"Recenzentima se e-poštom može poslati sigurni link kojim će se prijaviti u "
+"sustav."
diff --git a/locale/hr/submission.po b/locale/hr/submission.po
new file mode 100644
index 00000000000..f7b5b81c117
--- /dev/null
+++ b/locale/hr/submission.po
@@ -0,0 +1,612 @@
+# Boris Badurina , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-06-04 08:49+0000\n"
+"Last-Translator: Boris Badurina \n"
+"Language-Team: Croatian \n"
+"Language: hr\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 "submission.upload.selectComponent"
+msgstr "Odaberi komponentu"
+
+msgid "submission.select"
+msgstr "Odaberi prijavu"
+
+msgid "submission.title"
+msgstr "Naslov knjige"
+
+msgid "submission.synopsis"
+msgstr "Sažetak"
+
+msgid "submission.workflowType"
+msgstr "Vrsta prijave"
+
+msgid "submission.editorName"
+msgstr "{$editorName} (ur.)"
+
+msgid "submission.monograph"
+msgstr "Monografija"
+
+msgid "submission.authorListSeparator"
+msgstr "; "
+
+msgid "submission.chapter"
+msgstr "Poglavlje"
+
+msgid "submission.chapters"
+msgstr "Poglavlja"
+
+msgid "submission.chapter.pages"
+msgstr "Stranice"
+
+msgid "manuscript.submission"
+msgstr "Prijava rukopisa"
+
+msgid "manuscript.submissions"
+msgstr "Prijave rukopisa"
+
+msgid "submission.metadata"
+msgstr "Metapodaci"
+
+msgid "submission.chapter.editChapter"
+msgstr "Uredi ovo poglavlje"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Započni novu prijavu u"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr "Nova prijava"
+
+msgid "submission.supportingAgencies"
+msgstr "Tijela koja podupiru izdanje"
+
+msgid "grid.action.addChapter"
+msgstr "Stvori novo poglavlje"
+
+msgid "grid.action.editChapter"
+msgstr "Uredi ovo poglavlje"
+
+msgid "grid.action.deleteChapter"
+msgstr "Obriši ovo poglavlje"
+
+msgid "submission.submit"
+msgstr "Započni novu prijavu knjige"
+
+msgid "submission.submit.catalog"
+msgstr "Katalog"
+
+msgid "submission.submit.metadata"
+msgstr "Metapodaci"
+
+msgid "submission.submit.confirmation"
+msgstr "Potvrda"
+
+msgid "submission.submit.nextSteps"
+msgstr "Sljedeći koraci"
+
+msgid "submission.submit.generalInformation"
+msgstr "Opće informacije"
+
+msgid "submission.submit.contributorRole"
+msgstr "Uloga suradnika"
+
+msgid "submission.submit.submissionFile"
+msgstr "Datoteka za podnošenje"
+
+msgid "submission.submit.prepare"
+msgstr "Pripremiti"
+
+msgid "submission.submit.finishingUp"
+msgstr "Dovršavanje"
+
+msgid "submission.submit.coverNote"
+msgstr "Napomena uredniku na naslovnici"
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"Tisak je obaviješten o vašem podnesku i e-poštom vam je poslana potvrda za "
+"vašu evidenciju. Nakon što urednik pregleda podnesak, kontaktirat će vas."
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Pročitajte i označite stavke na kontrolnom popisu za predaju. Ima "
+"{$itemsRemaining} stavki koje su ostale neoznačene."
+
+msgid "grid.chapters.title"
+msgstr "Poglavlja"
+
+msgid "submission.complete"
+msgstr "Odobreno"
+
+msgid "submission.editCatalogEntry"
+msgstr "Unos"
+
+msgid "submission.catalogEntry.new"
+msgstr "Dodaj unos"
+
+msgid "submission.submit.placement"
+msgstr "Podnošenje plasmana"
+
+msgid "submission.incomplete"
+msgstr "Čeka odobrenje"
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Monografija"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Katalog"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Format publikacije"
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr "Datumi objavljivanja"
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr "Format publikacije \"{$publicationFormatName}\" je dostupan."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr "Format publikacije \"{$publicationFormatName}\" više nije dostupan."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr "Format objave \"{$publicationFormatName}\" odobren je za objavljivanje."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr "Format publikacije \"{$publicationFormatName}\" više nije objavljen."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "Metapodaci kataloga su ažurirani."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "Format publikacije \"{$formatName}\" je uklonjen."
+
+msgid "submission.list.countMonographs"
+msgstr "{$count} monografija"
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr "{$count} od {$total} monografija"
+
+msgid "section.any"
+msgstr "Bilo koja serija"
+
+msgid "publication.status.published"
+msgstr "Objavljeno"
+
+msgid "publication.datePublished"
+msgstr "Datum objave"
+
+msgid "submission.list.saveFeatureOrder"
+msgstr "Spremi narudžbu"
+
+msgid "submission.list.viewEntry"
+msgstr "Pregledajte unos"
+
+msgid "publication.event.unpublished"
+msgstr "Podnesak nije objavljen."
+
+msgid "publication.unpublish"
+msgstr "Poništi objavu"
+
+msgid "chapter.volume"
+msgstr "Svezak"
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr "Odaberite datoteke koje treba poslati u fazu pregleda."
+
+msgid "publication.chapter.licenseUrl"
+msgstr "URL licence"
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+"Slanje uređenog sveska na {$language}."
+
+msgid "submission.workflowType.change"
+msgstr "Promjeni"
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr "Zbornik"
+
+msgid "submission.chapter.addChapter"
+msgstr "Stvori novo poglavlje"
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr "Svako poglavlje može imati svoj datum objavljivanja."
+
+msgid "workflow.review.externalReview"
+msgstr "Vanjski pregled"
+
+msgid "submission.list.monographs"
+msgstr "Monografije"
+
+msgid "publication.publishedIn"
+msgstr "Objavljeno u {$issueName}."
+
+msgid "publication.publish"
+msgstr "Objaviti"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"Monografija je djelo koje je u cijelosti napisao jedan ili više autora. U "
+"zborniku svako poglavlje ima različite autore (podaci o poglavljima unose se "
+"kasnije tijekom postupka)"
+
+msgid "submission.workflowType.editedVolume"
+msgstr "Zbornik: autori su povezani sa svojim zasebnim poglavljima."
+
+msgid "submission.workflowType.authoredWork"
+msgstr "Monografija: autori su povezani s knjigom kao cjelinom."
+
+msgid "submission.published"
+msgstr "Spremno za objavu"
+
+msgid "submission.fairCopy"
+msgstr "Finalna kopija"
+
+msgid "submission.artwork.permissions"
+msgstr "Dopuštenja"
+
+msgid "submission.copyedit"
+msgstr "Uređivanje"
+
+msgid "submission.publicationFormats"
+msgstr "Formati izdanja"
+
+msgid "submission.proofs"
+msgstr "Inačice"
+
+msgid "submission.download"
+msgstr "Preuzmi"
+
+msgid "submission.sharing"
+msgstr "Podijeli"
+
+msgid "submissions.queuedReview"
+msgstr "U postupku recenzije"
+
+msgid "submission.submit.upload"
+msgstr "Učitaj prijavu"
+
+msgid "author.volumeEditor"
+msgstr "Urednik sveska"
+
+msgid "author.isVolumeEditor"
+msgstr "Označi ovog autora kao urednika sveska."
+
+msgid "submission.submit.seriesPosition"
+msgstr "Položaj serije"
+
+msgid "submission.round"
+msgstr "Krug {$round}"
+
+msgid "submission.submit.seriesPosition.description"
+msgstr "Primjeri: 2. knjiga, 2. svezak"
+
+msgid "submission.submit.privacyStatement"
+msgstr "Izjava o privatnosti"
+
+msgid "submission.submit.userGroup"
+msgstr "Podnesi u moju svrhu kao..."
+
+msgid "submission.submit.noContext"
+msgstr "Tisak ovog podneska nije pronađen."
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Izbriši prenesene podatke s Copyeditora"
+
+msgid "submission.catalogEntry.add"
+msgstr "Dodaj odabrano u katalog"
+
+msgid "submission.catalogEntry.select"
+msgstr "Odaberite monografije koje želite dodati u katalog"
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr "Morate odabrati barem jednu monografiju koju želite dodati u katalog."
+
+msgid "submission.catalogEntry.confirm"
+msgstr "Dodajte ovu knjigu u javni katalog"
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr "Molimo potvrdite da je podnesak spreman za stavljanje u katalog."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr "Ova je monografija spremna za uvrštavanje u javni katalog."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr "Pregledaj podnesak"
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr "Sva će poglavlja koristiti datum izdanja monografije."
+
+msgid "submission.event.metadataPublished"
+msgstr "Metapodaci monografije odobreni su za tisak."
+
+msgid "submission.event.metadataUnpublished"
+msgstr "Metapodaci monografije više se ne objavljuju."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr "Ažurirani su metapodaci formata publikacije za \"{$formatName}\"."
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "Izrađen je format publikacije \"{$formatName}\"."
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr "Pošaljite na vanjski pregled"
+
+msgid "submission.upload.fileContents"
+msgstr "Komponenta podnošenja"
+
+msgid "submission.dependentFiles"
+msgstr "Zavisne datoteke"
+
+msgid "submission.metadataDescription"
+msgstr ""
+"Ove se specifikacije temelje na skupu metapodataka Dublin Core, međunarodnom "
+"standardu koji se koristi za opisivanje sadržaja medija."
+
+msgid "submission.list.orderFeatures"
+msgstr "Značajke narudžbe"
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+"Povucite i ispustite ili dodirnite gumbe gore i dolje za promjenu "
+"redoslijeda značajki na početnoj stranici."
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+"Povucite i ispustite ili dodirnite gumbe gore i dolje da biste promijenili "
+"redoslijed značajki u {$title}."
+
+msgid "catalog.browseTitles"
+msgstr "{$numTitles} Naslova"
+
+msgid "publication.catalogEntry"
+msgstr "Unos u katalog"
+
+msgid "publication.catalogEntry.success"
+msgstr "Podaci o unosu u katalog su ažurirani."
+
+msgid "publication.invalidSeries"
+msgstr "Niz za ovu publikaciju nije moguće pronaći."
+
+msgid "publication.inactiveSeries"
+msgstr "{$series} (neaktivno)"
+
+msgid "publication.required.issue"
+msgstr ""
+"Publikacija mora biti dodijeljena broju prije nego što se može objaviti."
+
+msgid "publication.publish.confirmation"
+msgstr ""
+"Svi uvjeti za objavu su ispunjeni. Jeste li sigurni da ovaj unos u katalogu "
+"želite učiniti javnim?"
+
+msgid "publication.scheduledIn"
+msgstr "Zakazano za objavljivanje u {$issueName}."
+
+msgid "submission.publication"
+msgstr "Objavljivanje"
+
+msgid "submission.status.scheduled"
+msgstr "Zakazano"
+
+msgid "publication.status.unscheduled"
+msgstr "Neplanirano"
+
+msgid "submission.publications"
+msgstr "Publikacije"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+"Godina autorskih prava bit će postavljena automatski kada se ovo objavi u "
+"izdanju."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+"Godina autorskih prava bit će postavljena automatski na temelju datuma "
+"objavljivanja."
+
+msgid "publication.editDisabled"
+msgstr "Ova verzija je objavljena i ne može se uređivati."
+
+msgid "publication.event.published"
+msgstr "Podnesak je objavljen."
+
+msgid "publication.event.scheduled"
+msgstr "Podnesak je bio zakazan za objavu."
+
+msgid "publication.event.versionPublished"
+msgstr "Objavljena je nova verzija."
+
+msgid "publication.event.versionScheduled"
+msgstr "Zakazano je objavljivanje nove verzije."
+
+msgid "publication.event.versionUnpublished"
+msgstr "Verzija je uklonjena iz objave."
+
+msgid "publication.invalidSubmission"
+msgstr "Podnesak za ovu publikaciju nije moguće pronaći."
+
+msgid "publication.publish.requirements"
+msgstr ""
+"Sljedeći zahtjevi moraju biti ispunjeni prije nego što se ovo može objaviti."
+
+msgid "publication.required.declined"
+msgstr "Odbijeni podnesak ne može se objaviti."
+
+msgid "publication.required.reviewStage"
+msgstr ""
+"Podnesak mora biti u fazi uređivanja ili produkcije prije nego što se može "
+"objaviti."
+
+msgid "submission.license.description"
+msgstr ""
+"Licenca će se automatski postaviti na {$licenseName} kada ovo bude objavljeno."
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+"Autorska prava bit će automatski dodijeljena {$copyright} kada se ovo objavi."
+
+msgid "submission.copyrightOther.description"
+msgstr "Dodijelite autorska prava za objavljene podneske sljedećoj strani."
+
+msgid "publication.unpublish.confirm"
+msgstr "Jeste li sigurni da ne želite ovo objaviti?"
+
+msgid "publication.unschedule.confirm"
+msgstr "Jeste li sigurni da ne želite ovo zakazati za objavu?"
+
+msgid "publication.version.details"
+msgstr "Pojedinosti o publikaciji za verziju {$version}"
+
+msgid "submission.queries.production"
+msgstr "Rasprave o proizvodnji"
+
+msgid "publication.chapter.landingPage"
+msgstr "Stranica poglavlja"
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+"Pokažite ovo poglavlje na vlastitoj stranici i povežite se na tu stranicu iz "
+"sadržaja knjige."
+
+msgid "publication.publish.success"
+msgstr "Status publikacije uspješno je promijenjen."
+
+msgid "submission.withoutChapter"
+msgstr "{$name} — Bez ovog poglavlja"
+
+msgid "submission.chapterCreated"
+msgstr " — Poglavlje stvoreno"
+
+msgid "chapter.pages"
+msgstr "Stranice"
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr "Pošaljite na interni pregled"
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr "Ovaj je podnesak spreman za slanje na interni pregled."
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr "{$editorName} je poslao ovaj podnesak u fazu internog pregleda."
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr "Poslano na interni pregled"
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+"Podnesak, {$title}, poslan je u fazu internog pregleda. Autor je "
+"obaviješten, osim ako niste odlučili preskočiti taj e-mail."
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+"Pošaljite e-mail autorima kako biste ih obavijestili da će ovaj podnesak "
+"biti poslan na interni pregled. Ako je moguće, dajte autorima neke naznake o "
+"tome koliko bi dugo mogao trajati proces internog pregleda i kada bi trebali "
+"očekivati da će se ponovno čuti s urednicima."
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr "Odaberite datoteke koje treba poslati u fazu internog pregleda."
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr "{$editorName} je poslao ovaj podnesak u fazu vanjskog pregleda."
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr "Poslano na vanjski pregled"
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr "Podnesak, {$title}, poslan je u fazu vanjskog pregleda."
+
+msgid "editor.submission.decision.backToReview"
+msgstr "Natrag na pregled"
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+"Vratite odluku o prihvaćanju ovog podneska i pošaljite ga natrag u fazu "
+"pregleda."
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+"{$editorName} poništio je odluku o prihvaćanju ovog podneska i vratio ga u "
+"fazu pregleda."
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr "Poslano natrag na pregled"
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr "Podnesak, {$title}, poslan je natrag u fazu pregleda."
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+"Pošaljite e-mail autorima da ih obavijestite da se njihov podnesak vraća u "
+"fazu pregleda. Objasnite zašto je donesena ovakva odluka i obavijestite "
+"autora o tome koja će se daljnja revizija poduzeti."
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+"Pošaljite e-mail autorima kako biste ih obavijestili da će ovaj podnesak "
+"biti poslan na recenziju. Ako je moguće, dajte autorima neke naznake o tome "
+"koliko bi proces recenzije mogao trajati i kada bi trebali očekivati da će "
+"se ponovno čuti s urednicima."
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr "Preporuka Pošalji na vanjski pregled"
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr "Preporučamo da se ovaj podnesak pošalje u fazu vanjskog pregleda."
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+"{$editorName} je preporučio da se ovaj podnesak pošalje u fazu vanjske "
+"recenzije."
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+"Nije moguće izraditi DOI za sljedeći podnesak: {$pubObjectTitle}. Ne postoji "
+"u trenutnom kontekstu tiska."
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr "URL licence zadanih poglavlja"
+
+msgid "submission.copyright.description"
+msgstr "Molimo pročitajte uvjete autorskih prava za prijave za ovaj tisak."
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+"Ne smijete se prijaviti za ovaj tisak jer autori moraju biti prijavljeni od "
+"strane uredništva. Ako mislite da je ovo pogreška, kontaktirajte {$name}."
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+"{$contextName} ne prihvaća prijave za seriju {$section}. Ako vam je potrebna "
+"pomoć pri obnavljanju vašeg podneska, kontaktirajte {$name}."
+
+msgid "submission.sectionNotFound"
+msgstr "Serije za ovaj podnesak nije bilo moguće pronaći."
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr "Samo uredništvo može prijaviti ovu seriju."
+
+msgid "submission.wizard.submitting.monograph"
+msgstr "Slanje monografije."
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr "Slanje monografije na {$language}."
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr "Slanje uređenog sveska."
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
+"Navedite sva poglavlja ovog podneska. Ako šaljete uređeni svezak, provjerite "
+"jesu li u svakom poglavlju navedeni suradnici za to poglavlje."
diff --git a/locale/hr_HR/admin.po b/locale/hr_HR/admin.po
deleted file mode 100644
index 4f8f6e6dec5..00000000000
--- a/locale/hr_HR/admin.po
+++ /dev/null
@@ -1,2 +0,0 @@
-msgid ""
-msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit"
\ No newline at end of file
diff --git a/locale/hu/admin.po b/locale/hu/admin.po
new file mode 100644
index 00000000000..d0bd61662dc
--- /dev/null
+++ b/locale/hu/admin.po
@@ -0,0 +1,176 @@
+# Molnár Tamás , 2021.
+# Fülöp Tiffany , 2021, 2022.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-02-17 03:04+0000\n"
+"Last-Translator: Anonymous \n"
+"Language-Team: Hungarian "
+"\n"
+"Language: 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 4.13.1\n"
+
+msgid "admin.hostedContexts"
+msgstr "Tárolt kiadók"
+
+msgid "admin.settings.appearance.success"
+msgstr "A webhely megjelenítési beállításai sikeresen frissítve."
+
+msgid "admin.settings.config.success"
+msgstr "A webhely konfigurációs beállításai sikeresen frissítve."
+
+msgid "admin.settings.info.success"
+msgstr "A webhely információi sikeresen frissítve."
+
+msgid "admin.settings.redirect"
+msgstr "Kiadó átirányítás"
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"A főoldalra irányuló kérések át lesznek irányítva ehhez a kiadóhoz. Ez akkor "
+"hasznos például, ha a webhely csak egy kiadót szolgáltat."
+
+msgid "admin.settings.noPressRedirect"
+msgstr "Ne irányítsa át"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr ""
+"Ez lesz az alapértelmezett nyelv a webhely és az összes tárolt kiadó számára."
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Válassza ki az összes támogatott nyelvet a webhely számára. A kiválasztott "
+"nyelvek elérhetőek lesznek bármelyik tárolt kiadó számára, és a "
+"nyelvválasztó menüben is megjelennek minden oldalon (ez felülbírálható az "
+"egyes kiadók saját oldalain). Ha több nyelv nem lesz kiválasztva, akkor a "
+"nyelvválasztó menü nem jelenik meg és a kibővített nyelvi beállítások sem "
+"lesznek elérhetőek a kiadók számára."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "A *-gal jelölt fordítások befejezetlenek lehetnek."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"Biztos, hogy eltávolítja ezt a nyelvet? Ez hatással lesz az összes tárolt "
+"kiadóra, ahol használják ezt a nyelvet."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Válasszon ki további nyelveket telepítésre a rendszer számára. A nyelveket "
+"telepíteni kell, mielőtt a kiadók használhatnák őket. Lásd az OMP "
+"dokumentációt arról, hogy hogyan lehet új nyelveket telepíteni."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"Biztosan letiltja ezt a nyelvet? Ez hatással lehet azokra a kiadókra, akik "
+"használják ezt a nyelvet."
+
+msgid "admin.systemVersion"
+msgstr "OMP verzió"
+
+msgid "admin.systemConfiguration"
+msgstr "OMP konfiguráció"
+
+msgid "admin.presses.pressSettings"
+msgstr "Kiadó beállítások"
+
+msgid "admin.presses.noneCreated"
+msgstr "Nem lettek kiadók létrehozva."
+
+msgid "admin.contexts.create"
+msgstr "Kiadó létrehozása"
+
+msgid "admin.contexts.form.titleRequired"
+msgstr "Egy cím megadása szükséges."
+
+msgid "admin.contexts.form.pathRequired"
+msgstr "Egy útvonal megadása szükséges."
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+"Az útvonal csak betűket számokat, valamint _ és - karaktereket tartalmazhat. "
+"Betűvel vagy számmal kell kezdődnie és végződnie."
+
+msgid "admin.contexts.form.pathExists"
+msgstr "A megadott útvonalat már egy másik kiadó használja."
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr ""
+"Az elsődleges nyelvet a kiadó által támogatott nyelvek közül kell "
+"kiválasztani."
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} sikeresen létrehozva."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} sikeresen szerkesztve."
+
+msgid "admin.contexts.contextDescription"
+msgstr "Kiadó leírása"
+
+msgid "admin.presses.addPress"
+msgstr "Kiadó hozzáadása"
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"MEGJEGYZÉS!\n"
+"
A rendszer nem tudta automatikusan felülírni a konfigurációs fájlt. A "
+"konfigurációs módosítások alkalmazásához meg kell nyitnia a config.inc."
+"php egy megfelelő szövegszerkesztő programban, és cserélje le ennek "
+"tartalmát az alábbi szövegmező tartalmára.
"
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+"Válassza ki azokat a kiadókat, amelyeknek engedélyezni kell a tömeges e-"
+"mailek küldését. Ha ez a funkció engedélyezve van, a kiadó menedzser képes "
+"lesz e-mailt küldeni a kiadónál regisztrált összes felhasználónak.
A "
+"funkció kéretlen e-mailek küldésére való használata egyes joghatóságok "
+"spamellenes törvényeit sértheti, és a szerver e-mailjeit spamként "
+"blokkolhatják. Kérjen műszaki tanácsot, mielőtt engedélyezné ezt a funkciót, "
+"és fontolja meg a kiadó menedzserekkel való konzultációt a funkció megfelelő "
+"használatának biztosítása érdekében.
A funkció további korlátozásai "
+"minden egyes kiadó számára engedélyezhetők a Tárolt kiadók<> listában található beállításvarázslóval."
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+"A sajtómenedzser nem tud tömeges e-maileket küldeni az alább kiválasztott "
+"szerepkörök egyikének sem. Ezzel a beállítással korlátozhatja az e-mailes "
+"értesítési funkcióval való visszaélést. Biztonságosabb lehet például "
+"letiltani a tömeges e-maileket az olvasók, szerzők vagy más nagy "
+"felhasználói csoportok számára, amelyek nem járultak hozzá az ilyen e-mailek "
+"fogadásához.
A tömeges e-mailek funkció teljesen letiltható a "
+"szerkesztőség számára a Adminisztráció > "
+"Webhelybeállítások oldalon ."
+
+msgid "admin.settings.disableBulkEmailRoles.contextDisabled"
+msgstr ""
+"A tömeges e-mail küldési funkció le lett tiltva ennél a kiadónál. Itt lehet "
+"engedélyezni ezt a funkciót Adminisztráció > "
+"Webhelybeállítások ."
+
+msgid "admin.siteManagement.description"
+msgstr ""
+"Hozzáadhat, szerkeszthet vagy eltávolíthat kiadókat erről az oldalról, és "
+"kezelheti az egész honlapra vonatkozó beállításokat."
+
+msgid "admin.job.processLogFile.invalidLogEntry.chapterId"
+msgstr ""
+
+msgid "admin.job.processLogFile.invalidLogEntry.seriesId"
+msgstr ""
+
+msgid "admin.settings.statistics.geo.description"
+msgstr ""
+
+msgid "admin.settings.statistics.institutions.description"
+msgstr ""
+
+msgid "admin.settings.statistics.sushi.public.description"
+msgstr ""
+
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr ""
diff --git a/locale/hu/author.po b/locale/hu/author.po
new file mode 100644
index 00000000000..28d0fbfe7cc
--- /dev/null
+++ b/locale/hu/author.po
@@ -0,0 +1,20 @@
+# Molnár Tamás , 2021.
+# Fülöp Tiffany , 2021, 2022.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-02-16 11:26+0000\n"
+"Last-Translator: Fülöp Tiffany \n"
+"Language-Team: Hungarian \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 "author.submit.notAccepting"
+msgstr "Ez a kiadó jelenleg nem fogad el új beküldéseket."
+
+msgid "author.submit"
+msgstr "Új beküldés"
diff --git a/locale/hu/default.po b/locale/hu/default.po
new file mode 100644
index 00000000000..ba235e92e43
--- /dev/null
+++ b/locale/hu/default.po
@@ -0,0 +1,196 @@
+# Fülöp Tiffany , 2021, 2022.
+# Molnár Tamás , 2021.
+# Kiss Jázmin , 2021.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-03-26 13:56+0000\n"
+"Last-Translator: Fülöp Tiffany \n"
+"Language-Team: Hungarian \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 "default.genres.appendix"
+msgstr "Függelék"
+
+msgid "default.genres.bibliography"
+msgstr "Irodalomjegyzék"
+
+msgid "default.genres.manuscript"
+msgstr "Könyv kézirat"
+
+msgid "default.genres.chapter"
+msgstr "Fejezet kézirat"
+
+msgid "default.genres.glossary"
+msgstr "Szójegyzék"
+
+msgid "default.genres.index"
+msgstr "Index"
+
+msgid "default.genres.preface"
+msgstr "Előszó"
+
+msgid "default.genres.prospectus"
+msgstr "Tájékoztató"
+
+msgid "default.genres.table"
+msgstr "Táblázat"
+
+msgid "default.genres.figure"
+msgstr "Ábra"
+
+msgid "default.genres.photo"
+msgstr "Kép"
+
+msgid "default.genres.illustration"
+msgstr "Illusztráció"
+
+msgid "default.genres.other"
+msgstr "Egyéb"
+
+msgid "default.groups.name.manager"
+msgstr "Kiadó menedzser"
+
+msgid "default.groups.plural.manager"
+msgstr "Kiadó menedzserek"
+
+msgid "default.groups.abbrev.manager"
+msgstr "KM"
+
+msgid "default.groups.name.editor"
+msgstr "Kiadó szerkesztő"
+
+msgid "default.groups.plural.editor"
+msgstr "Kiadó szerkesztők"
+
+msgid "default.groups.abbrev.editor"
+msgstr "KSZ"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Sorozatszerkesztő"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Sorozatszerkesztők"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "SE"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr "Előfizetés menedzser"
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr "Előfizetés menedzserek"
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr "ElőfM"
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Fejezet szerző"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Fejezet szerzők"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "FSZ"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Kötetszerkesztő"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Kötetszerkesztők"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "KotetSZ"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"A kiadónál megadott nevek és email címek kizárólag a kiadó által "
+"megjelölt célokra kerülnek felhasználásra, és azok más célra vagy másik fél "
+"számára nem lesznek rendelkezésre bocsájtva.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"A kiadó azonnali nyílt hozzáférést biztosít tartalmaihoz, az az elv alapján, "
+"hogy a kutatások szabadon hozzáférhetővé tétele a nyilvánosság számára "
+"elősegíti a tudás nagyobb mértékű globális cseréjét."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"Arra biztatjuk olvasóinkat, hogy iratkozzanak fel a megjelenésről értesítő "
+"szolgáltatásra. Használják a kezdőoldal tetején található Regisztráció linket. A "
+"regisztráció eredményeként az olvasó e-mailben megkapja az új monográfiák "
+"tartalomjegyzéket. Ez a lista azt is lehetővé teszi a kiadó számára, hogy "
+"bizonyos szintű támogatást vagy olvasottságot igényeljen. Lásd az Adatvédelmi nyilatkozatot, ami biztosítja az olvasókat arról, hogy "
+"nevüket és e-mail címüket nem használják fel más célokra."
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"Érdeklődik a megjelentetés iránt ennél a kiadónál? Javasoljuk, hogy olvassa "
+"el a Kiadóról szóló oldalt, "
+"ahol a kiadó szabályzatát és a Szerzői útmutatót találja. A szerzőknek a "
+"beküldéshez regisztrálniuk kell, vagy ha már regisztráltak, egyszerűen bejelentkezhetnek és megkezdhetik az 5 "
+"lépéses beküldési folyamatot."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Arra biztatjuk a kutató könyvtárakat, hogy ezt a kiadót vegyék fel "
+"könyvtáruk elektronikus állományába. Mint ahogy ez a nyílt forráskódú "
+"publikációs rendszer alkalmas arra is, hogy a könyvtárak elérhetővé tegyék "
+"saját oktatóik számára azokat a kiadókat is, amelyekben szerkesztési "
+"munkákat vállalnak (lásd: Open Monograph "
+"Press)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Külső szakmai lektor"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Külső szakmai lektorok"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "KSZL"
+
+#~ msgid "default.contextSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "A szöveg betartja azokat a stilisztikai és bibliográfiai irányelveket, "
+#~ "amelyek a Szerzői útmutatóban "
+#~ "kerültek meghatározásra, és amelyek a Kiadóról menüpont alatt találhatóak."
+
+#~ msgid "default.contextSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "A szöveg szimpla sorközzel, 12 pontos betűmérettel és dőlt betűkkel lett "
+#~ "szerkesztve, aláhúzások alkalmazása nélkül (kivéve az URL címek "
+#~ "esetében), és az összes illusztráció, ábra és táblázat a szöveg megfelelő "
+#~ "pontjain került elhelyezésre, nem pedig a szöveg végén található."
+
+#~ msgid "default.contextSettings.checklist.addressesLinked"
+#~ msgstr ""
+#~ "Ahol rendelkezésre áll, ott a hivatkozások URL címe is megadásra került."
+
+#~ msgid "default.contextSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "A beküldött fájl Miscrosoft Word, RTF vagy OpenDocument fájl formátumban "
+#~ "van."
+
+#~ msgid "default.contextSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "A beküldött anyag korábban nem került publikálásra és jelenleg sem áll "
+#~ "elbírálás alatt más kiadónál (vagy ezzel kapcsolatban magyarázatot "
+#~ "mellékel a megjegyzéseknél a szerkesztőnek)."
diff --git a/locale/hu/editor.po b/locale/hu/editor.po
new file mode 100644
index 00000000000..47a84e8e058
--- /dev/null
+++ b/locale/hu/editor.po
@@ -0,0 +1,216 @@
+# Fülöp Tiffany , 2021, 2022.
+# Molnár Tamás , 2021.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-03-28 19:24+0000\n"
+"Last-Translator: Fülöp Tiffany \n"
+"Language-Team: Hungarian \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 "editor.submissionArchive"
+msgstr "Archivált beküldések"
+
+msgid "editor.monograph.cancelReview"
+msgstr "Felkérés megszakítása"
+
+msgid "editor.monograph.clearReview"
+msgstr "Szakmai lektor törlése"
+
+msgid "editor.monograph.enterRecommendation"
+msgstr "Ajánlás megadása"
+
+msgid "editor.monograph.enterReviewerRecommendation"
+msgstr "Adjon meg szakmai lektori ajánlást"
+
+msgid "editor.monograph.recommendation"
+msgstr "Ajánlás"
+
+msgid "editor.monograph.selectReviewerInstructions"
+msgstr ""
+"Válasszon a fenti szakmai lektorok közül, majd a folytatáshoz nyomja meg a "
+"\"Szakmai lektor kiválasztása\" gombot."
+
+msgid "editor.monograph.replaceReviewer"
+msgstr "Szakmai lektor cseréje"
+
+msgid "editor.monograph.editorToEnter"
+msgstr "A szerkesztő javaslatot/hozzászólást írhat a bírálónak"
+
+msgid "editor.monograph.uploadReviewForReviewer"
+msgstr "Szakmai bírálat feltöltése"
+
+msgid "editor.monograph.peerReviewOptions"
+msgstr "Szakmai értékelés lehetőségek"
+
+msgid "editor.monograph.selectProofreadingFiles"
+msgstr "Korrektúra fájlok"
+
+msgid "editor.monograph.internalReview"
+msgstr "Belső szakmai lektorálás indítása"
+
+msgid "editor.monograph.internalReviewDescription"
+msgstr ""
+"Válassza ki lentről azokat a fájlokat, amiket a belső szakmai lektorálási "
+"szakaszba továbbküld."
+
+msgid "editor.monograph.externalReview"
+msgstr "Külső szakmai lektorálás indítása"
+
+msgid "editor.monograph.final.selectFinalDraftFiles"
+msgstr "Végleges kézirat fájlok kiválasztása"
+
+msgid "editor.monograph.final.currentFiles"
+msgstr "Jelenlegi végleges kézirat fájlok"
+
+msgid "editor.monograph.copyediting.currentFiles"
+msgstr "Jelenlegi fájlok"
+
+msgid "editor.monograph.copyediting.personalMessageToUser"
+msgstr "Üzenet a felhasználónak"
+
+msgid "editor.monograph.legend.submissionActions"
+msgstr "Beküldési műveletek"
+
+msgid "editor.monograph.legend.submissionActionsDescription"
+msgstr "Általános beküldési műveletek és lehetőségek."
+
+msgid "editor.monograph.legend.sectionActions"
+msgstr "Szakasz műveletek"
+
+msgid "editor.monograph.legend.sectionActionsDescription"
+msgstr ""
+"Egy adott szakaszhoz tartozó lehetőségek, például fájlok feltöltése vagy "
+"felhasználók hozzáadása."
+
+msgid "editor.monograph.legend.itemActions"
+msgstr "Tételműveletek"
+
+msgid "editor.monograph.legend.itemActionsDescription"
+msgstr "Az egyes fájlokkal kapcsolatos műveletek és lehetőségek."
+
+msgid "editor.monograph.legend.catalogEntry"
+msgstr ""
+"Megtekintheti és kezelheti a beküldés katalógus tételét, beleértve a "
+"metaadatokat és a közzétételi formátumokat"
+
+msgid "editor.monograph.legend.bookInfo"
+msgstr ""
+"Megtekintheti és kezelheti a beküldött anyag metaadatait, jegyzeteit, "
+"értesítéseit és előzményeit"
+
+msgid "editor.monograph.legend.participants"
+msgstr ""
+"Megtekintheti és kezelheti a beküldött anyag résztvevőit: szerzőket, "
+"szerkesztőket, tervezőket és egyebeket"
+
+msgid "editor.monograph.legend.add"
+msgstr "Fájl feltöltése a szakaszba"
+
+msgid "editor.monograph.legend.add_user"
+msgstr "Felhasználó hozzáadása a szakaszhoz"
+
+msgid "editor.monograph.legend.settings"
+msgstr ""
+"Megtekintheti és elérheti a tételbeállításokat, például az információt és a "
+"törlési lehetőségeket"
+
+msgid "editor.monograph.legend.more_info"
+msgstr ""
+"További információ: fájljegyzetek, értesítési lehetőségek és előzmények"
+
+msgid "editor.monograph.legend.notes_none"
+msgstr ""
+"Fájlinformáció: jegyzetek, értesítési lehetőségek és előzmények (Még "
+"nincsenek jegyzetek hozzáadva)"
+
+msgid "editor.monograph.legend.notes"
+msgstr ""
+"Fájlinformáció: jegyzetek, értesítési lehetőségek és előzmények "
+"(Rendelkezésre állnak jegyzetek)"
+
+msgid "editor.monograph.legend.notes_new"
+msgstr ""
+"Fájlinformáció: jegyzetek, értesítési lehetőségek és előzmények (Új "
+"megjegyzések hozzáadva az utolsó látogatás óta)"
+
+msgid "editor.monograph.legend.edit"
+msgstr "Tétel szerkesztése"
+
+msgid "editor.monograph.legend.delete"
+msgstr "Tétel törlése"
+
+msgid "editor.monograph.legend.in_progress"
+msgstr "A művelet folyamatban van, vagy még nem fejeződött be"
+
+msgid "editor.monograph.legend.complete"
+msgstr "A művelet befejeződött"
+
+msgid "editor.monograph.legend.uploaded"
+msgstr "Fájl feltöltve a táblázat oszlop címében megjelölt szerep alapján"
+
+msgid "editor.submission.introduction"
+msgstr ""
+"A Beküldés szakaszban a szerkesztő a benyújtott fájlokkal való konzultációt "
+"követően kiválasztja a megfelelő műveletet (amely magában foglalja a szerző "
+"értesítését is): Küldés Belső szakmai lektorálásra (magában foglalja a "
+"fájlok kiválasztását a Belső szakmai lektoráláshoz); Küldés Külső szakmai "
+"lektorálásra (magában foglalja a fájlok kiválasztását a Külső szakmai "
+"lektoráláshoz); Beküldött anyag elfogadása (magában foglalja a fájlok "
+"kiválasztását a Szerkesztési szakaszhoz); vagy a Beküldött anyag "
+"visszautasítását (archiválás)."
+
+msgid "editor.monograph.editorial.fairCopy"
+msgstr "Tisztázat"
+
+msgid "editor.monograph.proofs"
+msgstr "Kefelenyomatok"
+
+msgid "editor.monograph.production.approvalAndPublishing"
+msgstr "Jóváhagyás és Közzététel"
+
+msgid "editor.monograph.production.approvalAndPublishingDescription"
+msgstr ""
+"Különböző kiadványformátumok, mint például keménytáblás, puhafedeles és "
+"digitális tölthetőek fel az alábbi Kiadványformátumok részben. Az alábbi "
+"kiadványformátumok felületet használhatja ellenőrző listaként ahhoz, hogy "
+"mit kell még tennie a kiadványformátum közzétételéhez."
+
+msgid "editor.monograph.production.publicationFormatDescription"
+msgstr ""
+"Adjon hozzá olyan kiadványformátumokat (pl.: digitális, papírkötésű), "
+"amelyekhez a tördelőszerkesztő elkészíti a kefelenyomatokat a "
+"korrektúrázáshoz. A Kefelenyomatokat ellenőrizni kell, hogy "
+"jóváhagyottak-e, és a Katalógus tétel formátumát is ellenőrizni "
+"kell a könyv katalógus tételében, mielőtt a formátum Elérhetővé "
+"válna (azaz közzétételre kerülne)."
+
+msgid "editor.monograph.approvedProofs.edit"
+msgstr "Letöltési feltételek beállítása"
+
+msgid "editor.monograph.approvedProofs.edit.linkTitle"
+msgstr "Feltételek beállítása"
+
+msgid "editor.monograph.proof.addNote"
+msgstr "Válasz hozzáadása"
+
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+"Bármelyik fájlt, amit már feltöltöttek a munkafolyamat valamelyik "
+"szakaszában hozzá lehet adni a Kefelenyomat fájlok listájához, ha bejelöli "
+"az alábbi jelölőnégyzetet, és rákattint a Keresés gombra: az összes "
+"rendelkezésre álló fájl megjelenik és kiválasztható a felvételhez."
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+"A '{$publicIdentifier}' nyilvános azonosító már létezik egy másik azonos "
+"típusú objektumhoz rendelve. Kérjük, válasszon egyedi azonosítókat az azonos "
+"típusú objektumokhoz."
+
+msgid "editor.submissions.assignedTo"
+msgstr "Szerkesztőhöz rendelve"
diff --git a/locale/hu/emails.po b/locale/hu/emails.po
new file mode 100644
index 00000000000..e5ce70c5651
--- /dev/null
+++ b/locale/hu/emails.po
@@ -0,0 +1,529 @@
+# Fülöp Tiffany , 2021, 2022.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-03-29 22:43+0000\n"
+"Last-Translator: Fülöp Tiffany \n"
+"Language-Team: Hungarian \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 "emails.passwordResetConfirm.subject"
+msgstr "Jelszó visszaállítás megerősítése"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"A jelszava visszaállításával kapcsolatban kaptunk egy kérést a(z) "
+"{$siteTitle} oldaltól.
\n"
+"
\n"
+"Ha nem Ön küldte, akkor hagyja figyelmen kívül ezt a levelet és a jelszava "
+"nem fog megváltozni. Ha szeretné visszaállítani a jelszavát, kattintson az "
+"alábbi URL-re.
\n"
+"
\n"
+"Jelszavam visszaállítása: {$passwordResetUrl}
\n"
+"
\n"
+"{$siteContactName}"
+
+msgid "emails.passwordReset.subject"
+msgstr ""
+
+msgid "emails.passwordReset.body"
+msgstr ""
+
+msgid "emails.userRegister.subject"
+msgstr "Regisztráció a kiadónál"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Ön mostantól a(z) {$contextName} felhasználójaként van regisztrálva. Ez a "
+"levél tartalmazza a felhasználónevét és jelszavát, amelyre a kiadónál "
+"végzett összes munkafolyamatnál szüksége lesz az oldalon. Bármikor "
+"eltávolíttathatja magát a felhasználói listáról, ha kapcsolatba lép velünk."
+"
\n"
+"
\n"
+"Felhasználónév: {$recipientUsername}
\n"
+"Jelszó: {$password}
\n"
+"
\n"
+"Köszönettel,
\n"
+"{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr "Fiók megerősítése"
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Létrehozott egy fiókot a(z) {$contextName} névvel, de mielőtt használni "
+"kezdené szükség van az e-mail fiókjának megerősítésére. Ehhez kövesse az "
+"alábbi linket:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Köszönettel,
\n"
+"{$contextSignature}"
+
+msgid "emails.userValidateSite.subject"
+msgstr "Fiók megerősítése"
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Létrehozott egy fiókot a(z) {$siteTitle} oldalnál, de mielőtt elkezdené "
+"használni meg kell erősítenie az e-mail fiókját. Ehhez kövesse az alábbi "
+"linket:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Köszönettel,
\n"
+"{$siteSignature}"
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Regisztráció szakmai lektorként az adott oldalnál: {$contextName}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"A szakértelmének fényében vettük a bátorságot és regisztráltuk a nevét a "
+"szakmai lektor névlistára a(z) {$contextName} oldalnál. Ez nem von maga után "
+"semmilyen kötelezettségvállalást az Ön részéről, hanem egyszerűen lehetővé "
+"teszi számunkra, hogy szakmai lektorálási felkéréssel keressük meg Önt. Ha "
+"szakmai lektorálási felkérés érkezik az Ön számára, akkor lehetősége van "
+"megnézni a kérdéses beadvány címét és absztraktját, és minden esetben "
+"lehetősége lesz arra, hogy elfogadja vagy elutasítsa a felkérést. Továbbá "
+"bármikor kérheti, hogy távolítsuk el a nevét a szakmai lektor névlistáról."
+"
\n"
+"
\n"
+"Készítettünk Önnek egy felhasználónevet és jelszót, amelyet a kiadó "
+"oldalánál végzett valamennyi munkafolyamatnál használhat. Ha akarja, például "
+"frissítheti a profilját, beleértve a szakterületeit is.
\n"
+"
\n"
+"Felhasználónév: {$recipientUsername}
\n"
+"Jelszó: {$password}
\n"
+"
\n"
+"Köszönettel,
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.subject"
+msgstr "Szerkesztői hozzárendelés"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"A benyújtott "{$submissionTitle}" című kézirat a(z) {$contextName} "
+"oldalnál Önhöz lett hozzárendelve, hogy szerkesztőként vigye végig a "
+"szerkesztési munkafolyamatot.
\n"
+"
\n"
+"Kézirat URL: {$submissionUrl}
\n"
+"Felhasználónév: {$recipientUsername}
\n"
+"
\n"
+"Köszönettel,"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Kézirat szakmai lektorálásnak kérése"
+
+#, fuzzy
+msgid "emails.reviewRequest.body"
+msgstr ""
+"Tisztelt {$recipientName}!
\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Kérjük, jelentkezzen be a kiadó honlapjára {$ responseDueDate} -ig, hogy "
+"jelezze, vállalja -e a szakmai lektorálást vagy sem, valamint, hogy "
+"hozzáférjen a beküldött anyaghoz, és rögzítse lektori véleményét és "
+"javaslatait.
\n"
+"
\n"
+"A szakmai lektorálás elküldésének határideje: {$reviewDueDate}.
\n"
+"
\n"
+"Kézirat URL: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Felhasználónév: {$recipientUsername}
\n"
+"
\n"
+"Köszönjük, hogy fontolóra veszi kérésünket.
\n"
+"
\n"
+"
\n"
+"Üdvözlettel,
\n"
+"{$signature}
\n"
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr ""
+
+#, fuzzy
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr "Kézirat szakmai lektorálásának kérése"
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+"Tisztelt {$recipientName}!
\n"
+"Szeretnénk emlékeztetni, hogy várjuk Öntől a(z) "{$submissionTitle},"
+"" kézirattal kapcsolatos lektori véleményét a(z) {$contextName} "
+"oldalánál. Reméljük, hogy végezni tud a megadott {$responseDueDate} "
+"határidőig. Ez az email automatikusan generálódik és a határidő lejártakor "
+"kerül küldésre.\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"Kérjük, jelentkezzen be az oldalra és jelezze, hogy tudja-e vállalni a "
+"szakmai lektorálást vagy sem, itt a kézirathoz is hozzáfér és a lektori "
+"véleményét és javaslatait is rögzítheti.
\n"
+"
\n"
+"A bírálat határideje {$reviewDueDate}.
\n"
+"
\n"
+"Kézirat URL: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Felhasználónév: {$recipientUsername}
\n"
+"
\n"
+"Köszönjük, hogy foglalkozik kérésünkkel.
\n"
+"
\n"
+"
\n"
+"Üdvözlettel,
\n"
+"{$contextSignature}
\n"
+
+msgid "emails.reviewCancel.subject"
+msgstr "Szakmai lektorálási felkérés törölve"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"Tisztelt {$recipientName}!
\n"
+"
\n"
+"Úgy döntöttünk, hogy töröljük felkérését a(z) "{$submissionTitle},"
+"" című kézirat szakmai lektorálásra a(z) {$contextName} oldalánál. "
+"Elnézést kérünk az esetleges kellemetlenségekért, és bízunk benne, hogy a "
+"jövőben fogunk együtt dolgozni a szakmai lektorálás munkafolyamatában.
\n"
+"
\n"
+"Ha bármilyen kérdése van, nyugodtan keressen meg."
+
+#, fuzzy
+msgid "emails.reviewReinstate.body"
+msgstr "Szakmai lektorálási felkérés újraindítása"
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+"Tisztelt {$recipientName}!
\n"
+"
\n"
+"Szeretnénk ismételten kérni, hogy készítse el a "{$submissionTitle},"
+"" című kézirat szakmai lektorálását a(z) {$contextName} oldalnál. "
+"Reméljük, hogy segíteni tud majd a beküldött anyag szakmai lektorálási "
+"munkafolyamatában.
\n"
+"
\n"
+"Ha bármilyen kérdése van nyugodtan forduljon hozzánk."
+
+msgid "emails.reviewDecline.subject"
+msgstr "Szakmai lektorálási feladat elutasítása"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"Szerkesztők()nek:
\n"
+"
\n"
+"Sajnálom, de jelenleg nem tudom elvállalni a "{$submissionTitle}," "
+"című kézirat szakmai lektorálását a(z) {$contextName} oldalnál. Köszönöm, "
+"hogy gondoltak rám, kérem, más alkalommal keressenek meg bátran.
\n"
+"
\n"
+"{$senderName}"
+
+#, fuzzy
+msgid "emails.reviewRemind.subject"
+msgstr "Szakmai lektorálási emlékeztető"
+
+#, fuzzy
+msgid "emails.reviewRemind.body"
+msgstr ""
+"Tisztelt {$recipientName}!
\n"
+"
\n"
+"Ez egy emlékeztető a(z) \"{$submissionTitle},\" című anyag szakmai "
+"lektorálási munkájával kapcsolatban a(z) {$contextName} oldaltól. Reméljük, "
+"hogy a megadott {$reviewDueDate} határidőig el tud készülni a szakmai "
+"lektorálással, örömmel fogadjuk, amint elkészül vele.
\n"
+"
\n"
+"Ha nincs meg a felhasználóneve és jelszava az oldalhoz, akkor az alábbi "
+"linket használhatja a jelszava visszaállítására (amelyet e-mailben fog "
+"megkapni a felhasználónevével együtt). {$passwordLostUrl}
\n"
+"
\n"
+"Kézirat URL: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Felhasználónév: {$recipientUsername}
\n"
+"
\n"
+"Kérjük, erősítse meg, hogy tudja vállalni ezt a fontos munkát a részünkre. "
+"Várjuk a válaszát.
\n"
+"
\n"
+"{$signature}"
+
+#, fuzzy
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+"Tisztelt {$recipientName}!
\n"
+"
\n"
+"Ez egy emlékeztető a(z) \"{$submissionTitle},\" című kézirat szakmai "
+"lektorálásával kapcsolatban a(z) {$contextName} oldaltól. Reméljük, hogy a "
+"megadott {$reviewDueDate} határidőig el tud készülni a szakmai "
+"lektorálással, örömmel fogadjuk, amint elküldi azt.
\n"
+"
\n"
+"Ha nincs felhasználóneve és jelszava az oldalhoz, akkor az alábbi linket "
+"használhatja a jelszó visszaállítására (amelyet e-mailben fog megkapni a "
+"felhasználónevével együtt). {$passwordLostUrl}
\n"
+"
\n"
+"Kézirat URL: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Felhasználónév: {$recipientUsername}
\n"
+"
\n"
+"Kérjük, erősítse meg, hogy tudja vállalni ezt a fontos munkát a részünkre. "
+"Várjuk a válaszát.
\n"
+"
\n"
+"{$contextSignature}"
+
+msgid "emails.editorDecisionAccept.subject"
+msgstr "A beküldött anyag elfogadásra került a(z) {$contextName} oldalnál"
+
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+"Tisztelt {$recipientName}!
\n"
+"Örömmel értesítjük, hogy úgy döntöttünk további felülvizsgálat nélkül "
+"elfogadjuk beküldött anyagát. A szakmai lektorálást követően úgy találtuk, "
+"hogy a kézirat ({$submissionTitle}) megfelelt vagy felülmúlta elvárásainkat. "
+"Örömmel jelentjük meg beküldött anyagát a(z) {$contextName} oldalán, és "
+"köszönjük, hogy kiadónkat választotta munkája megjelentetésének helyszínéül."
+"
\n"
+"Beküldött anyagát hamarosan közzétesszük a(z) {$contextName} kiadó "
+"honlapján, amit így már felvehet a publikációs listájára. Elismerjük azt a "
+"kemény munkát, ami egy sikeres megjelentetéshez vezet és szeretnénk "
+"gratulálni ehhez.
\n"
+"A továbbiak során beküldött anyaga keresztülmegy az olvasószerkesztés és "
+"a formázás folyamatán, ami előkészíti a közzétételre.
Hamarosan "
+"megkapja a további utasításokat.
Ha bármilyen kérdése van nyugodtan "
+"forduljon hozzánk a beküldött anyag "
+"felületén keresztül.
>Üdvözlettel:
{$signature}"
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr "A beküldött anyag belső szakmai lektorálásra lett küldve"
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+"Tisztelt {$recipientName},
Örömmel értesítjük, hogy egy szerkesztő "
+"átnézte a {$submissionTitle} című kéziratát, és továbbküldte azt belső "
+"szakmai lektorálásra. Nemsokára jelentkezni fogunk a szakmai lektorok "
+"visszajelzéseivel és a következő lépésekkel kapcsolatos információkkal."
+"p>
Kérjük, vegye figyelembe, hogy a beküldött anyag belső szakmai "
+"lektorálásra való továbbküldése nem garantálja annak megjelentetését. "
+"Mérlegelni fogjuk a szakmai lektorok ajánlásait mielőtt döntést hozunk a "
+"beküldött anyag közzétételre való elfogadásáról. Előfordulhat, hogy a "
+"végleges döntés meghozatala előtt felkérjük, hogy végezzen módosításokat és "
+"válaszoljon a szakmai lektorok észrevételeire.
Ha bármilyen kérdése "
+"van nyugodtan forduljon hozzánk a beküldött anyag felületén keresztül."
+"p>
Üdvözlettel, {$signature}
"
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr "A beküldött anyag olvasószerkesztésre lett küldve"
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+"Tisztelt {$recipientName}!
\n"
+"Örömmel értesítjük, hogy úgy döntöttünk szakmai lektorálás nélkül "
+"elfogadjuk beadványát. Úgy találtuk, hogy az Ön beadványa "
+"({$submissionTitle}) megfelel az elvárásainknak, és az ilyen típusú "
+"munkáknak nem kell szakmai lektoráláson keresztül menniük. Örülünk, hogy "
+"a(z) {$contextName} oldalán tehetjük közzé munkáját, és köszönjük, hogy "
+"kiadónkat választotta munkája megjelentetésének helyszínéül.
\n"
+"Beküldött anyagát hamarosan közzétesszük a(z) {$contextName} kiadó "
+"oldalán, amit így már felvehet a publikációs listájára. Elismerjük azt a "
+"kemény munkát, ami egy sikeres megjelentetéshez vezet és szeretnénk "
+"gratulálni ehhez.
\n"
+"A továbbiak során beküldött anyaga keresztülmegy az olvasószerkesztés és "
+"a formázás folyamatán, ami előkészíti a közzétételre.
\n"
+"Hamarosan megkapja a további utasításokat.
\n"
+"Ha bármilyen kérdése van nyugodtan forduljon hozzánk a beküldött anyag felületén keresztül.
\n"
+" >Üdvözlettel:
\n"
+"{$signature}
\n"
+
+msgid "emails.layoutRequest.subject"
+msgstr ""
+"A {$submissionId} beküldött anyag készen áll az előállításra "
+"{$contextAcronym}"
+
+#, fuzzy
+msgid "emails.layoutRequest.body"
+msgstr ""
+"Tisztelt {$recipientName}!
Egy új beküldött anyag készen áll a "
+"tördelőszerkesztésre:
{$submissionId} "
+"{$submissionTitle}
{$contextName}
- 1. Kattintson a "
+"beküldött anyag fent található URL linkjére.
- 2. Töltse le a "
+"Megjelentetésre előkészített fájlokat, és használja őket a kefelenyomatok "
+"létrehozásához a kiadó szabványainak megfelelően.
- 3. Töltse fel a "
+"kefelenyomatokat a beküldött anyag Kiadványformátumok részébe.
- 4. A "
+"Megjelentetéssel kapcsolatos megbeszélések segítségével értesítse a "
+"szerkesztőt, hogy a kefelenyomatok készen állnak.
Ha jelenleg "
+"nem tudja elvégezni ezt a munkát, vagy bármilyen kérdése van forduljon "
+"hozzánk bizalommal. Köszönjük a kiadónak végzett munkáját.
Üdvözlettel:"
+"
{$signature}"
+
+msgid "emails.layoutComplete.subject"
+msgstr "Kefelenyomatok elkészültek"
+
+#, fuzzy
+msgid "emails.layoutComplete.body"
+msgstr ""
+"Tisztelt {$recipientName}!
A kefelenyomatok elkészültek a következő "
+"beküldött anyaghoz és készen állnak az utolsó átnézésre.
{$submissionTitle}
{$contextName}
Ha "
+"bármilyen kérdése van nyugodtan forduljon hozzánk.
Üdvözlettel,"
+"p>
{$senderName}
"
+
+msgid "emails.indexRequest.subject"
+msgstr "Index kérése"
+
+msgid "emails.indexRequest.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"A(z) {$contextName} oldal "{$submissionTitle}" című beküldött "
+"anyagához most indexeket kell létrehozni az alábbi lépésekkel.
\n"
+"1. Kattintson a beküldött anyag alább látható URL linkjére.
\n"
+"2. Jelentkezzen be és használja a kefelenyomat fájljait, hogy létrehozza az "
+"anyag megfelelő formátumát a kiadó szabványainak megfelelően.
\n"
+"3. Küldje el a Befejezés e-mailt a szerkesztőnek.
\n"
+"
\n"
+"{$contextName} URL: {$contextUrl}
\n"
+"Beküldött anyag URL: {$submissionUrl}
\n"
+"Felhasználónév: {$recipientUsername}
\n"
+"
\n"
+"Ha jelenleg nem tudja elkészíteni a munkát, vagy kérdése van nyugodtan "
+"forduljon hozzánk. Köszönjük a kiadónak végzett munkáját.
\n"
+"
\n"
+"{$signature}"
+
+msgid "emails.indexComplete.subject"
+msgstr "Index formátumok létrehozva"
+
+msgid "emails.indexComplete.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"A(z) {$contextName} oldal "{$submissionTitle}," című kéziratához "
+"elkészültek az indexek, és a beküldött anyag készen áll a korrektúrázásra."
+"
\n"
+"
\n"
+"Ha bármi kérdése van nyugodtan forduljon hozzánk.
\n"
+"
\n"
+"{$signatureFullName}"
+
+msgid "emails.emailLink.subject"
+msgstr "Lehetséges érdeklődésre számot tartó kézirat"
+
+msgid "emails.emailLink.body"
+msgstr ""
+"Úgy gondoltuk érdekelheti az alábbi megjelentett mű: {$authors}: ""
+"{$submissionTitle}" ({$volume} kötet, {$number} szám ({$year})) - "
+"{$contextName} URL: "{$submissionUrl}"."
+
+msgid "emails.emailLink.description"
+msgstr ""
+"Ez az e-mail sablon lehetőséget biztosít a regisztrált olvasónak arra, hogy "
+"egy kiadványról információt küldjön valakinek, akit az érdekelhet. Az "
+"Olvasási eszközökön keresztül érhető el, és a Kiadó menedzsernek kell "
+"engedélyeznie az Olvasási eszközök adminisztrációs oldalán."
+
+msgid "emails.notifySubmission.subject"
+msgstr "Értesítés beküldött anyagról"
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+"Önnek üzenetet küldött {$sender} az alábbi beküldött anyagot illetően: ""
+"{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifySubmission.description"
+msgstr ""
+"Értesítés egy felhasználótól, amit a beküldött anyag információs központból "
+"küldött."
+
+msgid "emails.notifyFile.subject"
+msgstr "Értesítés beküldött anyag fájlról"
+
+msgid "emails.notifyFile.body"
+msgstr ""
+"Önnek üzenetet küldött {$sender} az alábbi fájllal kapcsolatban ""
+"{$fileName}" , "{$submissionTitle}" ({$monographDetailsUrl}):"
+"
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifyFile.description"
+msgstr ""
+"Értesítés egy felhasználótól, amit a beküldött anyag fájlinformációs "
+"központból küldött"
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr "Szerkesztői tevékenység {$month}, {$year}"
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+"\n"
+"Tisztelt {$recipientName}!
\n"
+"
\n"
+"Az oldal egészségének állapotjelentése {$month}, {$year} elérhető. Ennek a "
+"hónapnak a legfontosabb statisztikái az alábbiakban találhatók.
\n"
+"\n"
+"\t- Új beküldött anyagok ebben a hónapban: {$newSubmissions}
\n"
+"\t- Visszautasított anyagok ebben a hónapban: {$declinedSubmissions}
\n"
+"\t- Elfogadott anyagok ebben a hónapban: {$acceptedSubmissions}
\n"
+"\t- A rendszerben található összes beküldött anyag: {$totalSubmissions}"
+"li>\n"
+"
\n"
+"Jelentkezzen be az oldalra a további részletekért, hogy megtekinthesse a szerkesztői trendek és a megjelentetett könyvek statisztikáit. Az e "
+"havi szerkesztői trendek teljes másolatát mellékeljük.
\n"
+"
\n"
+"Üdvözlettel,
\n"
+"{$contextSignature}"
+
+msgid "emails.announcement.subject"
+msgstr "{$announcementTitle}"
+
+msgid "emails.announcement.body"
+msgstr ""
+"{$announcementTitle}
\n"
+"
\n"
+"{$announcementSummary}
\n"
+"
\n"
+"Látogassa meg oldalunkat, hogy elolvashassa a a teljes értesítést."
+
+#~ msgid "emails.userValidate.description"
+#~ msgstr ""
+#~ "Ez az email az újonnan regisztrált felhasználóknak kerül kiküldésre "
+#~ "üdvözlésként, és biztosítja őket a felhasználónevük, jelszavuk "
+#~ "nyilvántartásba vételéről."
+
+#~ msgid "emails.userValidate.body"
+#~ msgstr ""
+#~ "{$recipientName}
\n"
+#~ "
\n"
+#~ "Ön létrehozott egy fiókot itt: {$contextName}, de mielőtt használni "
+#~ "kezdené, érvényesítenie kell az email fiókját. Ehhez egyszerűen kövesse "
+#~ "az alábbi linket:
\n"
+#~ "
\n"
+#~ "{$activateUrl}
\n"
+#~ "
\n"
+#~ "Köszönettel,
\n"
+#~ "{$signature}"
+
+#~ msgid "emails.userValidate.subject"
+#~ msgstr "A fiókja érvényesítése"
diff --git a/locale/hu/locale.po b/locale/hu/locale.po
new file mode 100644
index 00000000000..9c009612655
--- /dev/null
+++ b/locale/hu/locale.po
@@ -0,0 +1,1694 @@
+# Fülöp Tiffany , 2021, 2022.
+# Szabolcs Hoczopan , 2021.
+# Kiss Jázmin , 2021.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-04-13 12:15+0000\n"
+"Last-Translator: Fülöp Tiffany \n"
+"Language-Team: Hungarian \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 "common.payments"
+msgstr "Fizetések"
+
+msgid "monograph.audience"
+msgstr "Célközönség"
+
+msgid "monograph.audience.success"
+msgstr "A célközönség adatai frissültek."
+
+msgid "monograph.coverImage"
+msgstr "Borítókép"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Célközönség körének választója"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Célközönség köre (-tól)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Célközönség köre (-ig)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "Célközönség köre (pontosan)"
+
+msgid "monograph.languages"
+msgstr "Nyelvek (Angol, Francia, Spanyol)"
+
+msgid "monograph.publicationFormats"
+msgstr "Kiadványformátumok"
+
+msgid "monograph.publicationFormat"
+msgstr "Formátum"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "Részletek a rendelkezésre álló kiadványformátumról: {$format}"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Részletek a kiadványról"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Formátumok:"
+
+msgid "monograph.type"
+msgstr "Beküldött anyag típusa"
+
+msgid "submission.pageProofs"
+msgstr "Kefelenyomatok oldala"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"A tördelőszerkesztő ide tölti fel a megjelentetésre előkészített fájlok, "
+"amik készek a közzétételre. A Hozzárendelés gomb segítségével "
+"kijelölheti a szerzőket és másokat, hogy korrektúrázzák a kefelenyomatokat, "
+"és a javított fájlokat a közzététel előtt jóváhagyásra feltöltsék."
+
+msgid "monograph.task.addNote"
+msgstr "Hozzáadás a feladathoz"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Nyílt hozzáférés"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Impresszum (márkanév)"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Oldalszám"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Előzékoldalak"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Hátoldalak"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Termék szerkezete"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Termék részletek (nem kötelező)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Termék azonosítás"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Ár"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "Az ár kötelező."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Ár típusa"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Kedvezmény százaléka, ha alkalmazható"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Termék elérhetősége"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Visszaküldhetőség mutatója"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Digitális információ"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Fizikai méretek"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "A fájl mérete MB-ban"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "Saját fájlméretet ad meg?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Magasság"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Vastagság"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Súly"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Szélesség"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "Előállítás országa"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Digitális technikai védelem"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Termékforgalmazási régió"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Adókulcs"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Adózás típusa"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+"A könyv katalógusbejegyzésében szerepeltetni kell az adott "
+"kiadványformátumra vonatkozó metaadatokat."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Hiányzó piacok és árak."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Hiányzik az azonosító kód."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Hiányzik néhány metaadatmező."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+" A kiválasztott kiadványformátum már nem létezik ehhez a kiadványhoz.
"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Nyissa meg a kiadványformátumok fület."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Kiadványformátum"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "Név megadása kötelező."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "Érvényes ár szükséges."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Formátum részletek"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Fizikai formátum"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "Ez a formátum egy külön weboldalon lesz elérhető"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "Távoli tárhely tartalmának URL címe"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "13 számjegyű ISBN-kód, például 978-951-98548-9-2."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "10 számjegyű ISBN-kód, például 951-98548-9-4."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "A kiadvány azonosító kötelező."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Ki kell választani a kiadványformátumot."
+
+msgid "grid.catalogEntry.availability"
+msgstr "Elérhetőség"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Elérhető"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "Nem elérhető"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Kefelenyomat"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Formátum jóváhagyása"
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"Hagyja jóvá a formátum metaadatait. A metaadatokat az egyes formátumok "
+"szerkesztési felületén lehet ellenőrizni.
"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr "Jelzi, hogy a formátum metaadatait nem hagyták jóvá.
"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Formátum elérhetősége"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Tegye ezt a formátumot elérhetővé az olvasók számára. A "
+"letölthető fájlok és minden más terjesztés megjelenik a könyv "
+"katalógustételében.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Ez a formátum nem lesz elérhető az olvasók számára. A letölthető "
+"fájlok vagy egyéb terjesztések többé nem jelennek meg a könyv "
+"katalógustételében.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "A katalógustételt nem hagyták jóvá."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "A formátum nincs benne a katalógustételben."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "A kefelenyomatot nem hagyták jóvá."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Jóváhagyva"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "Jóváhagyásra vár"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr "A digitális formátumokhoz fájlméret szükséges."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "A termék elérhetőségének kódja kötelező."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "A termék szerkezetének kódját ki kell választani."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Kód értéke"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "Onix kód típusa"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "Azonosító kód kötelező."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "Egy érték megadása kötelező."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Értékesítési jogok"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Kód értéke"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Értékesítési jogok típusa"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "Világ többi része?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Jelölje be ezt a négyzetet, ha ezt az értékesítési jog tételt kívánja "
+"használni a formátumhoz. Az országokat és régiókat ebben az esetben nem "
+"kell kiválasztani."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr "Ehhez a kiadványformátumhoz már létezik egy ROW értékesítési típus."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Országok"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Régiók"
+
+msgid "grid.catalogEntry.included"
+msgstr "Beletartozik"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Kizárva"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Piaci területek"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Terület"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Közzétételi dátumok"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Reprezentatív szerepkörre van szükség."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "A dátumformátum kötelező."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Dátum"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Típus"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Dátumformátum"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"A dátum megadása kötelező, és a dátum értékének meg kell felelnie a "
+"kiválasztott dátumformátumnak."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Képviselők"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Képviselő típusa"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Ügynökök"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Beszállítók"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Ügynök"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"Ön hozzárendelhet egy ügynököt, hogy képviselje Önt ezen a meghatározott "
+"területen. Ez nem kötelező."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Beszállító"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Válasszon szerepkört:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Szerepkör"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Név"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Telefon"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "E-mail cím"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Honlap"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "Képviselő azonosítója"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Képviselő azonosító típusa (ajánlott a GLN)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"A következő részt üresen hagyhatja, ha saját szolgáltatásokat nyújt "
+"ügyfeleinek."
+
+msgid "grid.action.addRepresentative"
+msgstr "Képviselő hozzáadása"
+
+msgid "grid.action.editRepresentative"
+msgstr "Képviselő szerkesztése"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Képviselő törlése"
+
+msgid "spotlight"
+msgstr "Kiemelt"
+
+msgid "spotlight.spotlights"
+msgstr "Kiemeltek"
+
+msgid "spotlight.noneExist"
+msgstr "Nincsenek aktuális kiemelések."
+
+msgid "spotlight.title.homePage"
+msgstr "Kiemeltek között"
+
+msgid "spotlight.author"
+msgstr "Szerző "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Kiemelt tétel"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Kezdőoldal"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Kiemelés helye"
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Adja meg a kiemelni kívánt címet (automatikus kitöltés)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Kiemelt címe"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Könyv"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "Egy tétel kötelező."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "A kiemelt elem címe kötelező."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Kérjük, válasszon egy helyet ennek a kiemelésnek."
+
+msgid "grid.action.editSpotlight"
+msgstr "Kiemelt elem szerkesztése"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Kiemelt elem törlése"
+
+msgid "grid.action.addSpotlight"
+msgstr "Kiemelt elem hozzáadása"
+
+msgid "manager.series.open"
+msgstr "Beküldések megnyitása"
+
+msgid "manager.series.indexed"
+msgstr "Indexelve"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Fájlok"
+
+msgid "grid.action.catalogEntry"
+msgstr "Katalógustétel űrlapjának megtekintése"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "A formátum megjelenik a katalógustételben"
+
+msgid "grid.action.editFormat"
+msgstr "Formátum szerkesztése"
+
+msgid "grid.action.deleteFormat"
+msgstr "Formátum törlése"
+
+msgid "grid.action.addFormat"
+msgstr "Kiadványformátum hozzáadása"
+
+msgid "grid.action.approveProof"
+msgstr ""
+"Jóváhagyja a kefelenyomatot indexelésre és a katalógusba való felvételre"
+
+msgid "grid.action.pageProofApproved"
+msgstr "Az oldal kefelenyomat fájljai készen állnak a közzétételre"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Új katalógustétel"
+
+msgid "grid.action.publicCatalog"
+msgstr "Tekintse meg az elemet a katalógusban"
+
+msgid "grid.action.feature"
+msgstr "Váltás a válogatás megjelenítésére"
+
+msgid "grid.action.featureMonograph"
+msgstr "Tegye bele a katalógus Válogatás blokkjába"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Jelölje meg ezt a beküldést mint \"új megjelenés\""
+
+msgid "grid.action.manageCategories"
+msgstr "Kategóriák megadása ehhez a kiadóhoz"
+
+msgid "grid.action.manageSeries"
+msgstr "Sorozatok megadása ehhez a kiadóhoz"
+
+msgid "grid.action.addCode"
+msgstr "Kód hozzáadása"
+
+msgid "grid.action.editCode"
+msgstr "Kód szerkesztése"
+
+msgid "grid.action.deleteCode"
+msgstr "Kód törlése"
+
+msgid "grid.action.addRights"
+msgstr "Értékesítési jogok hozzáadása"
+
+msgid "grid.action.editRights"
+msgstr "Ezeknek a jogoknak a szerkesztése"
+
+msgid "grid.action.deleteRights"
+msgstr "Ezeknek a jogoknak a törlése"
+
+msgid "grid.action.addMarket"
+msgstr "Piac hozzáadása"
+
+msgid "grid.action.editMarket"
+msgstr "Piac szerkesztése"
+
+msgid "grid.action.deleteMarket"
+msgstr "Piac törlése"
+
+msgid "grid.action.addDate"
+msgstr "Közzétételi dátum hozzáadása"
+
+msgid "grid.action.editDate"
+msgstr "Dátum szerkesztése"
+
+msgid "grid.action.deleteDate"
+msgstr "Dátum törlése"
+
+msgid "grid.action.createContext"
+msgstr "Új kiadó létrehozása"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Kiadványformátum fül megjelenítése"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Tovább a kiadó értesítések oldalára"
+
+msgid "grid.action.submissionEmail"
+msgstr "Kattintson az e-mail elolvasásához"
+
+msgid "grid.action.approveProofs"
+msgstr "A kiadványformátum felület megtekintése"
+
+msgid "grid.action.proofApproved"
+msgstr "Formátum korrektúrázva"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Jóváhagyja/elutasítja ezt a formátumot"
+
+msgid "grid.action.formatAvailable"
+msgstr "A formátum elérhetőségének be- és kikapcsolása"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Csatolmány hozzáadása a lektori véleményhez"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "Elérhető fájlok"
+
+msgid "series.series"
+msgstr "Sorozatok"
+
+msgid "series.featured.description"
+msgstr "Ez a sorozat a fő navigációban jelenik meg"
+
+msgid "series.path"
+msgstr "Elérési útvonal"
+
+msgid "catalog.manage"
+msgstr "Katalógus kezelése"
+
+msgid "catalog.manage.newReleases"
+msgstr "Új megjelenések"
+
+msgid "catalog.manage.category"
+msgstr "Kategória"
+
+msgid "catalog.manage.series"
+msgstr "Sorozatok"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "Kérjük, adjon meg egy érvényes ISSN-t."
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "Az online és a nyomtatott ISSN nem lehet azonos."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "Online ISSN"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "Nyomtatott ISSN"
+
+msgid "catalog.selectSeries"
+msgstr "Sorozat kiválasztása"
+
+msgid "catalog.selectCategory"
+msgstr "Kategória kiválasztása"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"A kiválasztott könyvek borítóképe a honlap tetején, görgethető elemként "
+"jelenik meg. Kattintson a \"Válogatásra\", majd a csillagra, ha egy könyvet "
+"szeretne hozzáadni a listás megjelenítéshez; kattintson a felkiáltójelre, ha "
+"új megjelenésként szeretné bemutatni; húzással sorba rendezheti őket."
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Kattintson a \"Válogatás\"-ra, majd a csillagra, hogy kiválasszon egy "
+"válogatásra szánt könyvet ebben a kategóriában; húzással sorba rendezheti "
+"őket."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Kattintson a \"Válogatás\"-ra , majd a csillagra, hogy kiválassza a sorozat "
+"Válogatásra szánt könyvét; húzással sorba rendezheti őket. A sorozatokat a "
+"szerkesztő(k) és a sorozat címe azonosítja egy kategórián belül vagy "
+"önállóan."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Listás megjelenítés"
+
+msgid "catalog.manage.newRelease"
+msgstr "Megjelenés"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Sorozatok kezelése"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Kategóriák kezelése"
+
+msgid "catalog.manage.noMonographs"
+msgstr "Nincsenek hozzárendelt kiadványok."
+
+msgid "catalog.manage.featured"
+msgstr "Válogatás"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "Válogatás a kategóriában"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "Válogatás a sorozatban"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "A kiadvány Válogatott lett."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "A kiadvány nem lett Válogatott."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "A kiadvány új megjelenésként van megjelölve."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "A kiadvány nincs új megjelenésként megjelölve."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "Új megjelenés"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "Új megjelenés a kategóriában"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "Új megjelenés a sorozatban"
+
+msgid "catalog.manage.nonOrderable"
+msgstr ""
+"Ez a kiadvány nem rendezhető sorrendbe, amíg Válogatottként van megjelölve."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Cím vagy szerző szerinti keresés"
+
+msgid "catalog.manage.isFeatured"
+msgstr ""
+"Ez a kiadvány Válogatottként van megjelölve. Vegye le a monográfiáról a "
+"Válogatott jelölőt."
+
+msgid "catalog.manage.isNotFeatured"
+msgstr ""
+"Ez a kiadvány nincs Válogatottként megjelölve. Tegye a monográfiára a "
+"Válogatott jelzőt."
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+"Ez a kiadvány új megjelenésként van megjelölve. Vegye le a monográfiáról az "
+"új megjelenés jelölőt."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+"Ez a kiadvány nincs új megjelenésként megjelölve. Tegye a kiadványra az új "
+"megjelenés jelölőt."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr ""
+"Egyetlen beküldött anyagot sem választottak ki a katalógusba való felvételre."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "Egy vagy több beküldött anyag nem található meg."
+
+msgid "catalog.manage.findSubmissions"
+msgstr "A katalógusba felvehető kiadványok kiválasztása"
+
+msgid "catalog.noTitles"
+msgstr "Még nem kerültek közzétételre címek."
+
+msgid "catalog.noTitlesNew"
+msgstr "Jelenleg nem állnak rendelkezésre új megjelenések."
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
+"Nem találhatóak olyan címek, amelyek megfelelnének a(z) \"{$ searchQuery}\" "
+"kifejezésre."
+
+msgid "catalog.feature"
+msgstr "Válogatás"
+
+msgid "catalog.featured"
+msgstr "Válogatott"
+
+msgid "catalog.featuredBooks"
+msgstr "Válogatott könyvek"
+
+msgid "catalog.foundTitleSearch"
+msgstr ""
+"Egy olyan címet találtunk, amely megfelel az Ön \"{$searchQuery}\" "
+"keresésének."
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+"{$number} olyan címet találtunk, amely megfelel a(z) \"{$searchQuery}\" "
+"keresésnek."
+
+msgid "catalog.category.heading"
+msgstr "Összes könyv"
+
+msgid "catalog.newReleases"
+msgstr "Új megjelenések"
+
+msgid "catalog.dateAdded"
+msgstr "Hozzáadva"
+
+msgid "catalog.publicationInfo"
+msgstr "Közzétételi információ"
+
+msgid "catalog.published"
+msgstr "Közzétett"
+
+msgid "catalog.forthcoming"
+msgstr "Megjelenés előtti"
+
+msgid "catalog.categories"
+msgstr "Kategóriák"
+
+msgid "catalog.parentCategory"
+msgstr "Szülő kategória"
+
+msgid "catalog.category.subcategories"
+msgstr "Alkategóriák"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "{$roleName}-ról/-ről"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"Kérjük, vegye figyelembe: Ahhoz, hogy termékeket vásárolhasson, először be "
+"kell jelentkeznie. A megvásárolni kívánt tétel kiválasztása a bejelentkezési "
+"oldalra irányítja Önt. Minden Nyílt Hozzáférés ikonnal jelölt tétel "
+"ingyenesen letölthető bejelentkezés nélkül."
+
+msgid "catalog.sortBy"
+msgstr "Kiadványok sorrendje"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "Válassza ki, hogyan legyenek sorba rendezve a sorozat könyveit."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr ""
+"Válassza ki, hogyan legyenek sorba rendezve a könyvek ebben a kategóriában."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "Válassza ki, hogyan legyenek sorba rendezve a könyvek a katalógusban."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "Sorozati pozíció (legalacsonyabb elöl)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "Sorozati pozíció (legmagasabb elöl)"
+
+msgid "catalog.viewableFile.title"
+msgstr "{$type} view of the file {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "Vissza a {$monographTitle} részleteinek megtekintéséhez"
+
+msgid "submission.search"
+msgstr "Könyv keresés"
+
+msgid "common.publication"
+msgstr "Kiadvány"
+
+msgid "common.publications"
+msgstr "Kiadványok"
+
+msgid "common.prefix"
+msgstr "Előtag"
+
+msgid "common.preview"
+msgstr "Előnézet"
+
+msgid "common.feature"
+msgstr "Válogatás"
+
+msgid "common.searchCatalog"
+msgstr "Keresés a katalógusban"
+
+msgid "common.moreInfo"
+msgstr "További információk"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Kérjük, töltse ki teljesen az űrlapot."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Kérjük, válasszon egy megfelelő opciót a listából."
+
+msgid "common.listbuilder.itemExists"
+msgstr "Ugyanazt az elemet nem adhatja hozzá kétszer."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Kezdőlap fejléc"
+
+msgid "navigation.catalog"
+msgstr "Katalógus"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Konkurens érdekek irányelve"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "Összes kiadvány"
+
+msgid "navigation.catalog.manage"
+msgstr "Kezelés"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Adminisztráció"
+
+msgid "navigation.catalog.administration"
+msgstr "Katalógus adminisztráció"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Kategóriák"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Sorozatok"
+
+msgid "navigation.infoForAuthors"
+msgstr "Szerzőknek"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Könyvtárosoknak"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Információ a szerzőknek"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Információ a könyvtárosoknak"
+
+msgid "navigation.newReleases"
+msgstr "Új megjelenések"
+
+msgid "navigation.published"
+msgstr "Közzétett"
+
+msgid "navigation.wizard"
+msgstr "Varázsló"
+
+msgid "navigation.linksAndMedia"
+msgstr "Linkek és közösségi média"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Link a katalógushoz."
+
+msgid "navigation.skip.spotlights"
+msgstr "Ugrás a kiemeltekhez"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Sorozat"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Link a sorozathoz."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Kategória"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Link a kategóriához."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "Új megjelenések"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Link az új megjelenésekhez."
+
+msgid "context.contexts"
+msgstr "Kiadók"
+
+msgid "context.context"
+msgstr "Kiadó"
+
+msgid "context.current"
+msgstr "Aktuális kiadó:"
+
+msgid "context.select"
+msgstr "Váltás egy másik kiadóra:"
+
+msgid "user.authorization.representationNotFound"
+msgstr "A kért kiadványformátum nem található."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "A szerepkörrel nem rendelkező felhasználók felvétele a kiadóhoz."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Javaslat beküldése"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr "Kiadvány beküldése: A szerzői regisztráció jelenleg le van tiltva."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Regisztráció szakmai lektorként"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+"Regisztráció szakmai lektorként: A szakmai lektori regisztráció jelenleg le "
+"van tiltva."
+
+msgid "user.reviewerPrompt"
+msgstr "Vállalná a kéziratok szakmai lektorálást ennél a kiadónál?"
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Igen, kéri a {$userGroup} szerepkört."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"Igen, szeretném, ha megkeresnének, hogy szakmailag lektoráljam a kiadóhoz "
+"beküldött kéziratokat."
+
+msgid "user.register.contextsPrompt"
+msgstr "Melyik kiadóknál szeretne regisztrálni ezen az oldalon?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Kéri az alábbi szerepköröket."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"Ha kérte, hogy valamelyik kiadó szakmai lektora legyen, kérjük, adja meg az "
+"érdeklődési körét."
+
+msgid "user.role.manager"
+msgstr "Kiadó menedzser"
+
+msgid "user.role.pressEditor"
+msgstr "Kiadó szerkesztő"
+
+msgid "user.role.subEditor"
+msgstr "Sorozatszerkesztő"
+
+msgid "user.role.copyeditor"
+msgstr "Olvasószerkesztő"
+
+msgid "user.role.proofreader"
+msgstr "Korrektor"
+
+msgid "user.role.productionEditor"
+msgstr "Előkészítés szerkesztő"
+
+msgid "user.role.managers"
+msgstr "Kiadó menedzserek"
+
+msgid "user.role.subEditors"
+msgstr "Sorozatszerkesztők"
+
+msgid "user.role.editors"
+msgstr "Szerkesztők"
+
+msgid "user.role.copyeditors"
+msgstr "Olvasószerkesztők"
+
+msgid "user.role.proofreaders"
+msgstr "Korrektorok"
+
+msgid "user.role.productionEditors"
+msgstr "Előkészítés szerkesztők"
+
+msgid "user.register.selectContext"
+msgstr "Válasszon ki egy kiadót a regisztrációhoz:"
+
+msgid "user.register.noContexts"
+msgstr "Ezen az oldalon nincs olyan kiadó, amelyhez regisztrálhatna."
+
+msgid "user.register.privacyStatement"
+msgstr "Adatvédelmi nyilatkozat"
+
+msgid "user.register.registrationDisabled"
+msgstr "Ez a kiadó jelenleg nem fogad felhasználói regisztrációkat."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "A megadott jelszó nem elég hosszú."
+
+msgid "user.register.readerDescription"
+msgstr "E -mailben értesítjük a kiadvány közzétételéről."
+
+msgid "user.register.authorDescription"
+msgstr "Küldhet be tételeket a kiadóhoz."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "Vállalja a kiadónak küldött kéziratok szakmai lektorálását."
+
+msgid "user.register.reviewerDescription"
+msgstr "Vállalja az oldalra beküldött kéziratok szakmai lektorálását."
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+"A szakmai lektorálási érdeklődési körök (tárgyi területek és kutatási "
+"módszerek) meghatározása:"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Legalább egy szerepkört ki kell választania"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"Igen, hozzájárulok ahhoz, hogy adataimat a kiadó az adatvédelmi nyilatkozatának "
+"megfelelően gyűjtse és tárolja."
+
+msgid "site.noPresses"
+msgstr "Nincsenek rendelkezésre álló kiadók."
+
+msgid "site.pressView"
+msgstr "Kiadó weboldalának megtekintése"
+
+msgid "about.pressContact"
+msgstr "Kiadó kapcsolat"
+
+msgid "about.aboutContext"
+msgstr "A kiadóról"
+
+msgid "about.editorialTeam"
+msgstr "Szerkesztőség"
+
+msgid "about.editorialPolicies"
+msgstr "Szerkesztési irányelvek"
+
+msgid "about.focusAndScope"
+msgstr "Fókusz és tudományterület"
+
+msgid "about.seriesPolicies"
+msgstr "Sorozat- és kategória irányelvek"
+
+msgid "about.submissions"
+msgstr "Beküldések"
+
+msgid "about.onlineSubmissions"
+msgstr "Online beküldések"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Bejelentkezés"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Regisztráció"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr "{$login} vagy {$register} szükséges a beküldéshez."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} vagy {$viewSubmissions}."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Új beküldés indítása"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "függőben lévő beküldések megtekintése"
+
+msgid "about.authorGuidelines"
+msgstr "Szerzői útmutatók"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "A beküldés előkészítésének ellenőrzőlistája"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"A beküldési folyamat részeként a szerzőknek be kell jelölniük, hogy a "
+"kéziratuk megfelel-e az alábbi pontoknak, és a kéziratok visszaküldhetők "
+"azoknak a szerzőknek, akik nem tartják be ezeket az irányelveket."
+
+msgid "about.copyrightNotice"
+msgstr "Szerzői jogi nyilatkozat"
+
+msgid "about.privacyStatement"
+msgstr "Adatvédelmi nyilatkozat"
+
+msgid "about.reviewPolicy"
+msgstr "Szakmai lektorálási folyamat"
+
+msgid "about.publicationFrequency"
+msgstr "Megjelenési gyakoriság"
+
+msgid "about.openAccessPolicy"
+msgstr "Nyílt hozzáférési irányelv"
+
+msgid "about.pressSponsorship"
+msgstr "Kiadó szponzoráció"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr ""
+"További információk az OMP/PKP kiadói rendszeréről, platformjáról és "
+"munkafolyamatáról."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "Az OMP szerkesztési és kiadási folyamata"
+
+msgid "about.aboutSoftware"
+msgstr "Az Open Monograph Pressről"
+
+msgid "about.aboutOMPPress"
+msgstr ""
+"Ez a kiadó az Open Monograph Press {$ompVersion} verzióját használja, amely "
+"a Public Knowledge Project által a GNU General Public License alatt "
+"kifejlesztett, támogatott és szabadon terjesztett nyílt forráskódú "
+"sajtómenedzsment és kiadói szoftver. Látogasson el a PKP weboldalára, ha többet szeretne megtudni a szoftverről. A "
+"kiadóval kapcsolatos kérdésekkel és a kéziratok beküldésével kapcsolatban "
+"kérjük, forduljon közvetlenül a kiadóhoz."
+
+msgid "about.aboutOMPSite"
+msgstr ""
+"Ez az oldal az Open Monograph Press {$ompVersion} verzióját használja, "
+"amely a Public Knowledge Project által a GNU General Public License alatt "
+"kifejlesztett, támogatott és szabadon terjesztett nyílt forráskódú kiadói "
+"menedzsment és kiadói szoftver. Látogasson el a PKP weboldalára, ha többet szeretne megtudni a szoftverről. A "
+"kiadókkal kapcsolatos kérdésekkel és a kéziratok beküldésével kapcsolatban "
+"kérjük, forduljon közvetlenül az oldalhoz."
+
+msgid "help.searchReturnResults"
+msgstr "Vissza a keresési eredményekhez"
+
+msgid "help.goToEditPage"
+msgstr "Új oldal megnyitása az információ szerkesztéséhez"
+
+msgid "installer.appInstallation"
+msgstr "OMP telepítés"
+
+msgid "installer.ompUpgrade"
+msgstr "OMP frissítés"
+
+msgid "installer.installApplication"
+msgstr "Open Monograph Press telepítése"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+"Ha az OMP meglévő telepítését frissíti kattintson "
+"ide a folytatáshoz."
+
+msgid "installer.installationInstructions"
+msgstr ""
+"\n"
+"Köszönjük, hogy letöltötte a Public Knowledge Project Open "
+"Monograph Press {$version} verziójú szoftverét. Mielőtt folytatná, "
+"kérjük, olvassa el a szoftverhez mellékelt README fájlt. A Public Knowledge Projectről és a "
+"szoftverprojektjeiről további információkat a PKP weboldalán talál. Ha hibabejelentése vagy "
+"technikai támogatási kérdése van az Open Monograph Press-szel kapcsolatban, "
+"keresse fel a támogatási fórumot, vagy látogasson el a PKP online hibabejelentő rendszerébe. Bár "
+"a támogatási fórum az előnyben részesített kapcsolattartási mód, a pkp.contact@gmail.com címre is küldhet "
+"e-mailt a csapatnak.
\n"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Telepítés előtti lépések"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. A következő fájlokat és könyvtárakat (és azok tartalmát) írhatóvá kell "
+"tenni:
\n"
+"\n"
+"\t- config.inc.php is writable (optional): {$writable_config}"
+"li>\n"
+"\t
- public/ is writable: {$writable_public}
\n"
+"\t- cache/ is writable: {$writable_cache}
\n"
+"\t- cache/t_cache/ is writable: {$writable_templates_cache}
\n"
+"\t- cache/t_compile/ is writable: {$writable_templates_compile}"
+"li>\n"
+"\t
- cache/_db is writable: {$writable_db_cache}
\n"
+"
\n"
+"\n"
+"2. A directory to store uploaded files must be created and made writable "
+"(see \"File Settings\" below).
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"OMP verzió {$version}
\n"
+"\n"
+"Köszönjük, hogy letöltötte a Public Knowledge Project Open "
+"Monograph Press szoftverét. Mielőtt folytatná, kérjük, olvassa el a "
+"szoftverhez mellékelt README és FRISSÍTÉS fájlt. A Public Knowledge "
+"Projectről és a szoftverprojektjeiről további információkat a PKP weboldalán talál. Ha "
+"hibabejelentése vagy technikai támogatási kérdése van az Open Monograph "
+"Press-szel kapcsolatban, keresse fel a támogatási fórumot, vagy látogasson el a PKP online hibabejelentő "
+"rendszerébe. Bár a támogatási fórum az előnyben részesített "
+"kapcsolattartási mód, a pkp."
+"contact@gmail.com címre is küldhet e-mailt a csapatnak.
\n"
+"A folytatás előtt erősen ajánlott biztonsági másolatot "
+"készíteni az adatbázisról, a fájlkönyvtárról és az OMP telepítési "
+"könyvtáráról.
\n"
+"If you are running in PHP Safe Mode, please ensure that the "
+"max_execution_time directive in your php.ini configuration file is set to a "
+"high limit. If this or any other time limit (e.g. Apache's \"Timeout\" "
+"directive) is reached and the upgrade process is interrupted, manual "
+"intervention will be required.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"A teljes Unicode (UTF-8) támogatáshoz válassza az UTF-8 beállítást az összes "
+"karakterkészlet beállításához. Vegye figyelembe, hogy ez a támogatás "
+"jelenleg MySQL >= 4.1.1 vagy PostgreSQL >= 9.1.5 verziójú adatbázis szervert "
+"igényel. Kérjük, vegye figyelembe azt is, hogy a teljes Unicode-támogatáshoz "
+"az mbstring "
+"könyvtár szükséges (a legújabb PHP-telepítésekben alapértelmezés szerint "
+"engedélyezve). Problémákat okozhat a kiterjesztett karakterkészletek "
+"használata, ha a szervere nem felel meg ezeknek a követelményeknek.\n"
+"
\n"
+"Az Ön szervere jelenleg támogatja az mbstringet: {$supportsMBString}"
+""
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"A szervere jelenleg engedélyezi a fájlfeltöltést: {$allowFileUploads}"
+""
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"A szervere jelenleg legfeljebb a következő fájlfeltöltési méretet "
+"engedélyezi: {$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"A rendszerhez használt elsődleges nyelv. Kérjük, olvassa el az OMP "
+"dokumentációját, ha az itt nem felsorolt nyelvek támogatása érdekli."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Válassza ki a rendszerben támogatni kívánt további nyelveket. Ezek a nyelvek "
+"a webhelyen elhelyezett kiadók számára lesznek elérhetők. További nyelvek "
+"bármikor telepíthetők a webhely adminisztrációs felületéről is. A *-gal "
+"jelölt nyelvek hiányosak lehetnek."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Adja meg egy meglévő könyvtár teljes elérési útvonalát, ahol a feltöltött "
+"fájlokat tárolni kívánja. Ez a könyvtár nem lehet közvetlenül elérhető az "
+"interneten. A telepítés előtt győződjön meg arról, hogy ez a "
+"könyvtár létezik és írható. A Windows elérési útvonalak neveiben "
+"perjelet kell használni, pl.: \"C:/mypress/files\"."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"Az OMP-nek szüksége van egy SQL-adatbázishoz való hozzáférésre az adatok "
+"tárolásához. A támogatott adatbázisok listáját lásd a fenti "
+"rendszerkövetelményeknél. Az alábbi mezőkben adja meg az adatbázishoz való "
+"csatlakozáshoz használandó beállításokat."
+
+msgid "installer.upgradeApplication"
+msgstr "Open Monograph Press frissítése"
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"FONTOS
\n"
+"A telepítő nem tudta automatikusan felülírni a konfigurációs fájlt. "
+"Mielőtt megpróbálná használni a rendszert, kérjük, nyissa meg a config."
+"inc.php fájlt egy megfelelő szövegszerkesztővel, és cserélje ki a "
+"tartalmát az alábbi szövegmező tartalmára.
"
+
+#, fuzzy
+msgid "installer.installationComplete"
+msgstr ""
+"Az OMP telepítése sikeresen befejeződött.
\n"
+"A rendszer használatának megkezdéséhez jelentkezzen be az előző oldalon megadott "
+"felhasználónévvel és jelszóval.
\n"
+"Ha híreket és frissítéseket szeretne kapni, kérjük, regisztráljon "
+"a http://pkp."
+"sfu.ca/omp/register oldalon. Ha kérdése vagy észrevétele van, "
+"kérjük, látogasson el a támogatási fórumra.
"
+
+#, fuzzy
+msgid "installer.upgradeComplete"
+msgstr ""
+"Az OMP frissítése a {$version} verzióra sikeresen befejeződött.
\n"
+"Ne felejtse el visszaállítani a config.inc.php konfigurációs fájlban az "
+"\"installed\" beállítást On-ra.
\n"
+"Ha még nem regisztrált és híreket és frissítéseket szeretne kapni, "
+"kérjük, regisztráljon a http://pkp.sfu.ca/omp/register oldalon. Ha "
+"kérdése vagy észrevétele van, kérjük, látogasson el a támogatási fórumra.
"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"A(z) {$reviewerName} által lektorálandó {$submissionId} számú kézirat "
+"{$round} körének lektorálási határideje megváltozott: {$dueDate}."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"{$reviewerName} elutasította a {$submissionId} számú kézirat {$round} "
+"körének szakmai lektorálását."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"{$reviewerName} elfogadta a {$submissionId} számú kézirat {$round} körének "
+"szakmai lektorálását."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"{$editorName} a(z) {$submissionId} számú kézirat szakmai "
+"lektorálásának{$round} körét figyelmen kívül hagyottként jelölte meg."
+
+msgid "log.editor.decision"
+msgstr ""
+"Egy szerkesztői döntés ({$decision}) került rögzítésre a {$submissionId} "
+"számú kiadványhoz {$editorName} szerkesztő által."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"Egy szerkesztői javaslat ({$decision}) került rögzítésre a {$submissionId} "
+"számú kiadványhoz {$editorName} szerkesztő által."
+
+msgid "log.editor.archived"
+msgstr "A {$submissionId} számú kéziratot archiválták."
+
+msgid "log.editor.restored"
+msgstr "A {$submissionId} számú kézirat visszakerült a várólistára."
+
+msgid "log.editor.editorAssigned"
+msgstr ""
+"{$editorName} lett hozzárendelve szerkesztőként a(z) {$submissionId} számú "
+"kézirathoz."
+
+msgid "log.proofread.assign"
+msgstr ""
+"{$assignerName} hozzárendelte {$proofreaderName} korrektort a(z) "
+"{$submissionId} számú kézirat korrektúrázására."
+
+msgid "log.proofread.complete"
+msgstr ""
+"{$proofreaderName} benyújtotta ütemezésre a(z) {$submissionId} számú "
+"kéziratot."
+
+msgid "log.imported"
+msgstr "{$userName} feltöltötte a(z) {$submissionId} számú kiadványt."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Azonosító kód hozzáadva."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Azonosító kód szerkesztve."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Azonosító kód eltávolítva."
+
+msgid "notification.addedPublicationDate"
+msgstr "Közzétételi dátum hozzáadva."
+
+msgid "notification.editedPublicationDate"
+msgstr "Közzétételi dátum szerkesztve."
+
+msgid "notification.removedPublicationDate"
+msgstr "Közzétételi dátum eltávolítva."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Kiadványformátum hozzáadva."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Kiadványformátum szerkesztve."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Kiadványformátum eltávolítva."
+
+msgid "notification.addedSalesRights"
+msgstr "Értékesítési jogok hozzáadva."
+
+msgid "notification.editedSalesRights"
+msgstr "Értékesítési jogok szerkesztve."
+
+msgid "notification.removedSalesRights"
+msgstr "Értékesítési jogok eltávolítva."
+
+msgid "notification.addedRepresentative"
+msgstr "Képviselő hozzáadva."
+
+msgid "notification.editedRepresentative"
+msgstr "Képviselő szerkesztve."
+
+msgid "notification.removedRepresentative"
+msgstr "Képviselő eltávolítva."
+
+msgid "notification.addedMarket"
+msgstr "Piac hozzáadva."
+
+msgid "notification.editedMarket"
+msgstr "Piac szerkesztve."
+
+msgid "notification.removedMarket"
+msgstr "Piac eltávolítva."
+
+msgid "notification.addedSpotlight"
+msgstr "Kiemelt hozzáadva."
+
+msgid "notification.editedSpotlight"
+msgstr "Kiemelt szerkesztve."
+
+msgid "notification.removedSpotlight"
+msgstr "Kiemelt eltávolítva."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Katalógus metaadatok mentve."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Kiadványformátum metaadatok mentve."
+
+msgid "notification.proofsApproved"
+msgstr "Kefelenyomatok jóváhagyva."
+
+msgid "notification.removedSubmission"
+msgstr "Beküldés törölve."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Új kiadványt küldtek be \"{$title},\" címmel."
+
+msgid "notification.type.editing"
+msgstr "Események szerkesztése"
+
+msgid "notification.type.reviewing"
+msgstr "Események áttekintése"
+
+msgid "notification.type.site"
+msgstr "Oldal Események"
+
+msgid "notification.type.submissions"
+msgstr "Beküldési események"
+
+msgid "notification.type.userComment"
+msgstr "Egy olvasó hozzászólt ehhez: \"{$cím}\"."
+
+msgid "notification.type.public"
+msgstr "Nyilvános értesítések"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr "Új kiadványt küldtek be, amelyhez szerkesztőt kell hozzárendelni."
+
+msgid "notification.type.copyeditorRequest"
+msgstr "Felkérték a(z) \"{$file}\" olvasószerkesztői átekintésére."
+
+msgid "notification.type.layouteditorRequest"
+msgstr "Felkérték a(z) \"{$cím}\" tördelőszerkesztői áttekintésére."
+
+msgid "notification.type.indexRequest"
+msgstr "Felkérték, hogy hozzon létre egy indexet a(z) \"{$cím}\" számára."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "A belső bírálati folyamat megkezdődött."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Ez a beküldött anyag jelenleg jóváhagyásra vár a Katalógustétel fülnél, "
+"mielőtt megjelenne a nyilvános katalógusban."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "Jóváhagyásra vár."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"A kiadvány nem kerül be a katalógusba, amíg nem kerül közzétételre. A könyv "
+"katalógusba való felvételéhez kattintson a Kiadvány fülre."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "Nincs beállítva fizetési mód."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"Az e-kereskedelmi beállítások meghatározása előtt szükség van fizetési mód "
+"beállítására."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Katalógus kezelése"
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+"A kötetet jóváhagyták. Kérjük, látogasson el a Marketing és Kiadvány fülre, "
+"ahol a fenti linkek segítségével kezelheti a katalógus adatait."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+"Öntől megtagadták a hozzáférést, mert úgy tűnik, hogy Ön nem rendelkezik "
+"szakmai lektori szerepkörrel ennél a kiadványnál."
+
+msgid "user.authorization.monographAuthor"
+msgstr ""
+"Öntől megtagadták a hozzáférést, mert úgy tűnik, hogy Ön nem szerzője ennek "
+"a kötetnek."
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"Öntől megtagadták a hozzáférést, mert úgy tűnik, hogy Ön nincs hozzárendelve "
+"a kiadványhoz szakmai lektorként."
+
+msgid "user.authorization.monographFile"
+msgstr "Öntől megtagadták a hozzáférést a megadott kiadvány fájljához."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "Érvénytelen vagy nincs a kért kiadvány!"
+
+msgid "user.authorization.noContext"
+msgstr "Nem található a kérésnek megfelelő kiadó."
+
+msgid "user.authorization.seriesAssignment"
+msgstr "Olyan kötethez próbál hozzáférni, amely nem része a sorozatának."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr ""
+"Hozzáférés megtagadva! Ön nem lett hozzárendelve ehhez a munkafolyamathoz."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"Hozzáférés megtagadva! Az Ön által használt felhasználói csoport nincs "
+"hozzárendelve ehhez a munkafolyamathoz. Kérjük, ellenőrizze a kiadó "
+"beállításait."
+
+msgid "payment.directSales"
+msgstr "Letöltés a kiadó honlapjáról"
+
+msgid "payment.directSales.price"
+msgstr "Ár"
+
+msgid "payment.directSales.availability"
+msgstr "Elérhetőség"
+
+msgid "payment.directSales.catalog"
+msgstr "Katalógus"
+
+msgid "payment.directSales.approved"
+msgstr "Jóváhagyva"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Ár ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr ""
+"Az árak csak számjegyek lehetnek. Ne tartalmazzon valuta szimbólumokat."
+
+msgid "payment.directSales.directSales"
+msgstr "Közvetlen értékesítés"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Nem elérhető"
+
+msgid "payment.directSales.notSet"
+msgstr "Nincs megadva"
+
+msgid "payment.directSales.openAccess"
+msgstr "Nyílt hozzáférés"
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"A fájlformátumok a kiadó honlapjáról elérhetővé tehetők letöltésre nyílt "
+"hozzáférésen keresztül az olvasók számára költségmentesen vagy közvetlen "
+"értékesítéssel (online fizetési folyamat segítségével, ahogy a Terjesztés "
+"oldalon került beállításra). Ezt a fájlt jelölje meg a hozzáférés alapján."
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Érvényes számszerű árat kell megadni."
+
+msgid "payment.directSales.purchase"
+msgstr "Vásárlás {$format} ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Letöltés {$format}"
+
+msgid "payment.directSales.monograph.name"
+msgstr "Vásárolt kötet vagy fejezet letöltése"
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+"Ez a tranzakció egy kiadvány vagy egy fejezet közvetlen letöltésének "
+"megvásárlására vonatkozik."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr "Reloaded XML help mapping file {$filename} in search of {$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Könyv"
+
+msgid "submission.pdf.download"
+msgstr "Töltse le ezt a PDF fájlt"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Regisztráció további kiadóknál"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "További kiadók elrejtése"
+
+msgid "submission.round"
+msgstr "Forduló {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "Érvénytelen közzétett beküldést adtak meg."
+
+msgid "catalog.coverImageTitle"
+msgstr "Borítókép"
+
+msgid "grid.catalogEntry.chapters"
+msgstr "Fejezetek"
+
+msgid "search.results.orderBy.article"
+msgstr "Cikk címe"
+
+msgid "search.results.orderBy.author"
+msgstr "Szerző"
+
+msgid "search.results.orderBy.date"
+msgstr "Közzététel dátuma"
+
+msgid "search.results.orderBy.monograph"
+msgstr "Kiadvány címe"
+
+msgid "search.results.orderBy.press"
+msgstr "Kiadó címe"
+
+msgid "search.results.orderBy.popularityAll"
+msgstr "Népszerűség (Mindenkori)"
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr "Népszerűség (Múlt hónap)"
+
+msgid "search.results.orderBy.relevance"
+msgstr "Relevancia"
+
+msgid "search.results.orderDir.asc"
+msgstr "Növekvő"
+
+msgid "search.results.orderDir.desc"
+msgstr "Csökkenő"
+
+msgid "section.section"
+msgstr "Sorozatok"
diff --git a/locale/hu/manager.po b/locale/hu/manager.po
new file mode 100644
index 00000000000..69dc4071ac9
--- /dev/null
+++ b/locale/hu/manager.po
@@ -0,0 +1,1705 @@
+# Kiss Jázmin , 2021.
+# Fülöp Tiffany , 2022.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-04-13 12:15+0000\n"
+"Last-Translator: Fülöp Tiffany \n"
+"Language-Team: Hungarian \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 "manager.language.confirmDefaultSettingsOverwrite"
+msgstr ""
+"Ez felváltja az ehhez a nyelvhez tartozó bármilyen nyelvspecifikus kiadói "
+"beállításokat"
+
+msgid "manager.languages.noneAvailable"
+msgstr ""
+"Sajnos nincsenek további elérhető nyelvek. Vegye fel a kapcsolatot az oldal "
+"üzemeltetőjével, amennyiben további nyelveket szeretne használni ennél a "
+"kiadónál."
+
+msgid "manager.languages.primaryLocaleInstructions"
+msgstr "Ez lesz a kiadó oldalának alapértelmezett nyelve."
+
+msgid "manager.series.form.mustAllowPermission"
+msgstr ""
+"Biztosodjon meg róla, hogy legalább egy jelölőnégyzet ki van pipálva minden "
+"Sorozatszerkesztői hozzárendelésnél."
+
+msgid "manager.series.form.reviewFormId"
+msgstr ""
+"Bizonyosodjon meg róla, hogy érvényes szakmai lektorálási űrlapot választott."
+
+msgid "manager.series.submissionIndexing"
+msgstr "Nem fog megjelenni a kiadó indexelésében"
+
+msgid "manager.series.editorRestriction"
+msgstr "Csak szerkesztők és sorozat szerkesztők által nyújthatóak be tételek."
+
+msgid "manager.series.confirmDelete"
+msgstr "Biztos benne, hogy véglegesen törölni szeretné ezt a sorozatot?"
+
+msgid "manager.series.indexed"
+msgstr "Indexelve"
+
+msgid "manager.series.open"
+msgstr "Beküldések megnyitása"
+
+msgid "manager.series.readingTools"
+msgstr "Olvasási eszközök"
+
+msgid "manager.series.submissionReview"
+msgstr "Nem lesz szakmailag lektorálva"
+
+msgid "manager.series.submissionsToThisSection"
+msgstr "Beküldések ehhez a sorozathoz"
+
+msgid "manager.series.abstractsNotRequired"
+msgstr "Az absztrakt nem kötelező"
+
+msgid "manager.series.disableComments"
+msgstr "Olvasói hozzászólások tiltása ehhez a sorozathoz."
+
+msgid "manager.series.book"
+msgstr "Könyvsorozat"
+
+msgid "manager.series.create"
+msgstr "Sorozat létrehozása"
+
+msgid "manager.series.policy"
+msgstr "Sorozat leírása"
+
+msgid "manager.series.assigned"
+msgstr "Sorozat szerkesztői"
+
+msgid "manager.series.seriesEditorInstructions"
+msgstr ""
+"Sorozatszerkesztő hozzáadása a sorozathoz az elérhető sorozatszerkesztők "
+"közül. A hozzáadást követően jelölje meg, hogy a sorozat szerkesztője "
+"felügyeli-e a sorozathoz beküldött kéziratok SZAKMAI LEKTORÁLÁST (szakértői "
+"értékelés) és/vagy SZERKESZTÉSÉT (olvasószerkesztés, tördelés és "
+"korrektúrázás). Sorozatszerkesztők létrehozásához kattintson a Sorozatszerkesztőkre a Kiadó beállítások alatt "
+"lévő Szerepkörök menüpontra."
+
+msgid "manager.series.hideAbout"
+msgstr "Hagyja ki ezt a sorozat a Kiadóról részből."
+
+msgid "manager.series.unassigned"
+msgstr "Elérhető Sorozatszerkesztők"
+
+msgid "manager.series.form.abbrevRequired"
+msgstr "Rövidített cím szükséges a sorozathoz."
+
+msgid "manager.series.form.titleRequired"
+msgstr "Cím szükséges a sorozathoz."
+
+msgid "manager.series.noneCreated"
+msgstr "Nem lett sorozat létrehozva."
+
+msgid "manager.series.existingUsers"
+msgstr "Meglévő felhasználók"
+
+msgid "manager.series.seriesTitle"
+msgstr "Sorozat cím"
+
+msgid "manager.series.restricted"
+msgstr ""
+"Ne engedélyezze, hogy a szerzők ehhez a sorozathoz közvetlenül küldjenek be "
+"anyagot."
+
+msgid "manager.payment.generalOptions"
+msgstr "Általános beállítások"
+
+msgid "manager.payment.options.enablePayments"
+msgstr ""
+"Engedélyezve lesznek a fizetések ennél a kiadóhoz. Vegye figyelembe, hogy a "
+"felhasználóknak a fizetéshez be kell jelentkezniük."
+
+msgid "manager.payment.success"
+msgstr "A fizetési beállítások frissítésre kerültek."
+
+msgid "manager.settings"
+msgstr "Beállítások"
+
+msgid "manager.settings.pressSettings"
+msgstr "Kiadó beállítások"
+
+msgid "manager.settings.press"
+msgstr "Kiadó"
+
+msgid "manager.settings.publisher.identity"
+msgstr "Kiadó azonosító"
+
+msgid "manager.settings.publisher.identity.description"
+msgstr ""
+"Ezek a mezők kötelezőek érvényes ONIX metaadatok közzétételéhez."
+
+msgid "manager.settings.publisher"
+msgstr "Kiadó neve"
+
+msgid "manager.settings.location"
+msgstr "Földrajzi hely"
+
+msgid "manager.settings.publisherCode"
+msgstr "Kiadó azonosító kód"
+
+msgid "manager.settings.publisherCodeType"
+msgstr "Kiadó azonosító kód típusa"
+
+msgid "manager.settings.publisherCodeType.invalid"
+msgstr "Ez nem egy érvényes kiadó azonosító kód típus."
+
+msgid "manager.settings.distributionDescription"
+msgstr ""
+"A terjesztési folyamatra vonatkozó összes beállítás (értesítés, indexelés, "
+"archiválás, fizetés, olvasási eszközök)."
+
+msgid "manager.statistics.reports.defaultReport.monographDownloads"
+msgstr "Kiadvány fájl letöltések"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstract"
+msgstr "Kiadvány absztrakt oldal megtekintések"
+
+msgid "manager.statistics.reports.defaultReport.monographAbstractAndDownloads"
+msgstr "Kiadvány absztrakt és letöltések"
+
+msgid "manager.statistics.reports.defaultReport.seriesIndexPageViews"
+msgstr "Sorozat főoldal megtekintések"
+
+msgid "manager.statistics.reports.defaultReport.pressIndexPageViews"
+msgstr "Kiadó főoldal megtekintések"
+
+msgid "manager.tools"
+msgstr "Eszközök"
+
+msgid "manager.tools.importExport"
+msgstr ""
+"Az adatok importálására és exportálására vonatkozó összes eszköz (kiadók, "
+"kiadványok, felhasználók)"
+
+msgid "manager.tools.statistics"
+msgstr ""
+"A felhasználási statisztikákra vonatkozó jelentések generálásra szolgáló "
+"eszközök (katalógus tartalomjegyzékének oldalmegtekintése, kiadvány "
+"absztraktoldalának megtekintése, kiadvány fájlletöltései)"
+
+msgid "manager.users.availableRoles"
+msgstr "Elérhető szerepkörök"
+
+msgid "manager.users.currentRoles"
+msgstr "Jelenlegi szerepkörök"
+
+msgid "manager.users.selectRole"
+msgstr "Szerepkör kiválasztása"
+
+msgid "manager.people.allEnrolledUsers"
+msgstr "Kiadóhoz regisztrált felhasználók"
+
+msgid "manager.people.allPresses"
+msgstr "Minden kiadó"
+
+msgid "manager.people.allSiteUsers"
+msgstr "Felhasználó regisztrációja az oldalról ehhez a kiadóhoz"
+
+msgid "manager.people.allUsers"
+msgstr "Összes regisztrált felhasználó"
+
+msgid "manager.people.confirmRemove"
+msgstr ""
+"Eltávolítja ezt a felhasználót a kiadótól? Ez a művelet megvonja a "
+"felhasználót a kiadóban betöltött összes szerepkörétől."
+
+msgid "manager.people.enrollExistingUser"
+msgstr "Létező felhasználó regisztrálása"
+
+msgid "manager.people.enrollSyncPress"
+msgstr "Kiadóval"
+
+msgid "manager.people.mergeUsers.from.description"
+msgstr ""
+"Válasszon ki egy felhasználót, hogy összevonja egy másik felhasználói "
+"fiókkal (pl.: ha egy valakinek két felhasználói fiókja van). Az elsőként "
+"kiválasztott fiók törölve lesz és a beküldései, hozzárendelései, stb. a "
+"második fiókhoz lesznek rendelve."
+
+msgid "manager.people.mergeUsers.into.description"
+msgstr ""
+"Válasszon ki egy felhasználót, akihez az előző felhasználó szerzőségeit, "
+"szerkesztői feladatait stb. társítja."
+
+msgid "manager.people.syncUserDescription"
+msgstr ""
+"A regisztráltak szinkronizációja az összes, adott kiadónál bizonyos "
+"szerepkört betöltött felhasználót hozzá fogja rendelni ehhez a kiadóhoz "
+"azonos szerepkörben. Ez a funkció egy megadott felhasználói körnek (Pl.: "
+"Szakmai lektorok) kiadók közötti szinkronizációját teszi lehetővé."
+
+msgid "manager.people.confirmDisable"
+msgstr ""
+"Tiltja a felhasználót? Ez megfogja akadályozni a felhasználót, hogy "
+"bejelentkezzen a rendszerbe.\n"
+"\n"
+"Opcionálisan küldhet indoklást a felhasználónak a tiltás okáról."
+
+msgid "manager.people.noAdministrativeRights"
+msgstr ""
+"Sajnos nincs adminisztrációs joga ehhez a felhasználóhoz. Ennek az oka "
+"lehet:\n"
+"\t\t\n"
+"\t\t\t- Ez a felhasználó az oldal adminisztrátora
\n"
+"\t\t\t- Ez a felhasználó olyan kiadóknál aktív, amiket nem Ön kezel
\n"
+"\t\t
\n"
+"Ez a feladat csak oldal adminisztrátorként végezhető el.\n"
+"\t"
+
+msgid "manager.system"
+msgstr "Rendszerbeállítások"
+
+msgid "manager.system.archiving"
+msgstr "Archiválás"
+
+msgid "manager.system.reviewForms"
+msgstr "Szakmai lektorálási űrlapok"
+
+msgid "manager.system.readingTools"
+msgstr "Olvasási eszközök"
+
+msgid "manager.system.payments"
+msgstr "Fizetések"
+
+msgid "user.authorization.pluginLevel"
+msgstr "Nincs megfelelő jogosultsága a bővítmény kezeléséhez."
+
+msgid "manager.pressManagement"
+msgstr "Kiadó kezelés"
+
+msgid "manager.setup"
+msgstr "Beállítás"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Tartalom"
+
+msgid "manager.setup.addAboutItem"
+msgstr "Kiadóról elem hozzáadása"
+
+msgid "manager.setup.addChecklistItem"
+msgstr "Ellenőrzőlista tétel hozzáadása"
+
+msgid "manager.setup.addItem"
+msgstr "Tétel hozzáadása"
+
+msgid "manager.setup.addItemtoAboutPress"
+msgstr "Tétel hozzáadása a \"Kiadóról\" részhez"
+
+msgid "manager.setup.addNavItem"
+msgstr "Tétel hozzáadása"
+
+msgid "manager.setup.addSponsor"
+msgstr "Támogató szervezet hozzáadása"
+
+msgid "manager.setup.announcements"
+msgstr "Értesítések"
+
+msgid "manager.setup.announcements.success"
+msgstr "Az értesítések beállításai frissítésre kerültek."
+
+msgid "manager.setup.announcementsDescription"
+msgstr ""
+"Értesítéseket lehet közzétenni az olvasók tájékoztatására a kiadó híreiről "
+"és eseményeiről. A közzétett értesítések az Értesítések oldalon fognak "
+"megjelenni."
+
+msgid "manager.setup.announcementsIntroduction"
+msgstr "További információ"
+
+msgid "manager.setup.announcementsIntroduction.description"
+msgstr ""
+"Adjon meg bármilyen további információt ami megjelenítésre kerül az olvasók "
+"számára az Értesítések oldalon."
+
+msgid "manager.setup.appearInAboutPress"
+msgstr "(Megjelenik a Kiadóról részben) "
+
+msgid "manager.setup.contextAbout"
+msgstr "Kiadóról"
+
+msgid "manager.setup.contextAbout.description"
+msgstr ""
+"Adjon meg bármilyen információt a kiadójáról, amely érdekelheti az "
+"olvasókat, szerzőket és szakmai lektorokat. Ez tartalmazhatja a nyílt "
+"hozzáférési irányelveket, a kiadó fókuszát és tudományterületeit, támogatói "
+"nyilatkozatot és a kiadó történetét."
+
+msgid "manager.setup.contextSummary"
+msgstr "Kiadó összefoglaló"
+
+msgid "manager.setup.copyediting"
+msgstr "Olvasószerkesztők"
+
+msgid "manager.setup.copyeditInstructions"
+msgstr "Olvasószerkesztési utasítások"
+
+msgid "manager.setup.copyeditInstructionsDescription"
+msgstr ""
+"Az olvasószerkesztési utasítások elérhetőek lesznek az olvasószerkesztők, "
+"szerzők és sorozatszerkesztők számára a beküldés szerkesztése munkafolyamat "
+"alatt. Alább található egy általános utasítás HTML-ben, amely a kiadó "
+"menedzser által bármikor módosítható vagy lecserélhető (HTML-ben vagy "
+"egyszerű szövegben)."
+
+msgid "manager.setup.copyrightNotice"
+msgstr "Szerzői jogi nyilatkozat"
+
+msgid "manager.setup.coverage"
+msgstr "Lefedettség"
+
+msgid "manager.setup.coverThumbnailsMaxHeight"
+msgstr "Borítókép maximum magassága"
+
+msgid "manager.setup.coverThumbnailsMaxWidth"
+msgstr "Borítókép maximum szélessége"
+
+msgid "manager.setup.coverThumbnailsMaxWidthHeight.description"
+msgstr ""
+"Az ennél nagyobb méretű képek kicsinyítve lesznek, de nem lesznek "
+"felnagyítva vagy megnyújtva a méretbeli illeszkedés érdekében."
+
+msgid "manager.setup.customizingTheLook"
+msgstr "5. lépés. A megjelenés testreszabása"
+
+msgid "manager.setup.customTags"
+msgstr "Egyedi címkék"
+
+msgid "manager.setup.customTagsDescription"
+msgstr ""
+"Egyedi HTML fejléc címkék kerülnek beillesztésre minden oldal fejlécébe "
+"(pl.: META címkék)."
+
+msgid "manager.setup.details"
+msgstr "Részletek"
+
+msgid "manager.setup.details.description"
+msgstr "Kiadó neve, kapcsolattartók, támogatók és keresőmotorok."
+
+msgid "manager.setup.disableUserRegistration"
+msgstr ""
+"A Kiadó menedzser fog minden felhasználói fiókot regisztrálni. Szerkesztők "
+"vagy Sorozatszerkesztők szakmai lektorok számára regisztrálhatnak "
+"felhasználói fiókot."
+
+msgid "manager.setup.discipline"
+msgstr "Tudományos szakterületek és alszakterületek"
+
+msgid "manager.setup.disciplineDescription"
+msgstr ""
+"Hasznos, amikor a kiadó szakterületi határokat keresztez és/vagy a szerzők "
+"multidiszciplináris elemeket küldenek be."
+
+msgid "manager.setup.disciplineExamples"
+msgstr ""
+"(Pl.: Történelem; Oktatás; Szociológia; Pszichológia; Kulturális "
+"tanulmányok; Jog)"
+
+msgid "manager.setup.disciplineProvideExamples"
+msgstr ""
+"Adjon meg példákat a kiadó szempontjából releváns tudományos szakterületekre"
+
+msgid "manager.setup.displayCurrentMonograph"
+msgstr ""
+"Tartalomjegyzék hozzáadása a jelenlegi kiadványhoz (amennyiben rendelkezésre "
+"áll)."
+
+msgid "manager.setup.displayOnHomepage"
+msgstr "Kezdőoldal tartalom"
+
+msgid "manager.setup.displayFeaturedBooks"
+msgstr "Válogatott könyvek megjelenítése a kezdőlapon"
+
+msgid "manager.setup.displayFeaturedBooks.label"
+msgstr "Válogatott könyvek"
+
+msgid "manager.setup.displayInSpotlight"
+msgstr "Kiemelt könyvek megjelenítése a kezdőlapon"
+
+msgid "manager.setup.displayInSpotlight.label"
+msgstr "Kiemelés"
+
+msgid "manager.setup.displayNewReleases"
+msgstr "Új megjelenések megjelenítése a kezdőlapon"
+
+msgid "manager.setup.displayNewReleases.label"
+msgstr "Új megjelenések"
+
+msgid "manager.setup.enableDois.description"
+msgstr ""
+"Digitális Objektum Azonosító (DOI) hozzárendelése a kiadványokhoz, "
+"fejezetekhez, kiadványformátumokhoz és fájlokhoz."
+
+#, fuzzy
+msgid "doi.manager.settings.doiObjectsRequired"
+msgstr ""
+"Válassza ki azokat a tételeket, amikhez DOI kerül hozzárendelésre. A legtöbb "
+"kiadó a DOI-t a kiadványokhoz/fejezetekhez rendeli, de előfordulhat, hogy az "
+"összes közzétett tételhez DOI-t kíván rendelni."
+
+msgid "doi.manager.settings.doiSuffixLegacy"
+msgstr ""
+"Alapértelmezett minták használata.
%p.%m for monographs
%p.%m.c%c "
+"for chapters
%p.%m.%f for publication formats
%p.%m.%f.%s for "
+"files."
+
+msgid "doi.manager.settings.doiCreationTime.copyedit"
+msgstr "Az olvasószerkesztési munkafolyamatnál"
+
+msgid "manager.dois.formatIdentifier.file"
+msgstr "Formátum / {$format}"
+
+msgid "manager.setup.editorDecision"
+msgstr "Szerkesztői döntés"
+
+msgid "manager.setup.emailBounceAddress"
+msgstr "Visszapattanó cím"
+
+msgid "manager.setup.emailBounceAddress.description"
+msgstr ""
+"Bármely nem kézbesíthető e-mail hibaüzenetet fog eredményezni ezen a címen."
+
+msgid "manager.setup.emailBounceAddress.disabled"
+msgstr ""
+"Amennyiben a sikertelenül kézbesített leveleket egy visszapattanó e-mail "
+"címre szeretné küldeni, az oldal adminisztrátornak engedélyezni kell a "
+"allow_envelope_sender
opciót az oldal konfigurációs fájljában. "
+"Ehhez szükség lehet az OMP dokumentációjában feltüntetett "
+"szerverkonfigurációra."
+
+msgid "manager.setup.emails"
+msgstr "E-mail azonosítás"
+
+msgid "manager.setup.emailSignature"
+msgstr "Aláírás"
+
+#, fuzzy
+msgid "manager.setup.emailSignature.description"
+msgstr ""
+"A rendszer által a kiadó nevében küldött automatikus e-mailek a következő "
+"aláírással lesznek ellátva."
+
+msgid "manager.setup.enableAnnouncements.enable"
+msgstr "Értesítések engedélyezése"
+
+msgid "manager.setup.enableAnnouncements.description"
+msgstr ""
+"Értesítéseket lehet közzétenni, hogy az olvasók tájékoztatva legyenek a "
+"kiadó híreiről és eseményeiről. A közzétett értesítések az Értesítések "
+"oldalon fognak megjelenni."
+
+msgid "manager.setup.numAnnouncementsHomepage"
+msgstr "Mejelenítés a kezdőlapon"
+
+msgid "manager.setup.numAnnouncementsHomepage.description"
+msgstr ""
+"Hány értesítés jelenjen meg a kezdőlapon. Amennyiben egy sem, hagyja ezt a "
+"részt üresen."
+
+msgid "manager.setup.enablePressInstructions"
+msgstr "Engedélyezze, hogy ez a kiadó nyilvánosan megjelenjen az oldalon"
+
+msgid "manager.setup.enablePublicMonographId"
+msgstr "Az egyedi azonosítók a közzétett tételek azonosítására szolgálnak."
+
+msgid "manager.setup.enablePublicGalleyId"
+msgstr ""
+"Az egyedi azonosítók a közzétett tételek formtumának (pl.: HTML vagy PDF "
+"fájlok) azonosítására szolgálnak."
+
+msgid "manager.setup.enableUserRegistration"
+msgstr "A látogatók felhasználói fiókot tudnak a kiadónál regisztrálni."
+
+msgid "manager.setup.focusAndScope"
+msgstr "A kiadó fókusza és tudományterületei"
+
+msgid "manager.setup.focusAndScope.description"
+msgstr ""
+"Ismertesse a szerzőkkel, olvasókkal és könyvtárosokkal a kiadványok és egyéb "
+"tételek körét, amelyeket a kiadó közzétett."
+
+msgid "manager.setup.focusScope"
+msgstr "Fókusz és tudományterület"
+
+msgid "manager.setup.focusScopeDescription"
+msgstr "PÉLDA HTML ADAT"
+
+msgid "manager.setup.forAuthorsToIndexTheirWork"
+msgstr "Szerzők számára a közleményük indexelésére"
+
+msgid "manager.setup.forAuthorsToIndexTheirWorkDescription"
+msgstr ""
+"Az OMP betartja a Open Archives Initiative (Nyílt archívumok kezdeményezése) Protocol "
+"for Metadata Harvesting protokollt, amely az elektronikus kutatási "
+"forrásokhoz való jól indexált hozzáférés globális szintű biztosításának "
+"kialakulóban lévő szabványa. A szerzők hasonló sablont használnak a "
+"beküldött anyaguk metaadatainak megadásához. A kiadó menedzsernek ki kell "
+"választania az indexálandó kategóriákat, és a szerzőknek releváns példákat "
+"kell bemutatnia, hogy segítse őket munkájuk indexálásában, a kifejezéseket "
+"pontosvesszővel elválasztva (pl.: kifejezés1; kifejezés2). A tételeket "
+"példaként kell feltüntetni az \"Pl.:\" vagy \"Például:\" használatával."
+
+msgid "manager.setup.form.contactEmailRequired"
+msgstr "Az elsődleges kapcsolattartó e-mail címe kötelező."
+
+msgid "manager.setup.form.contactNameRequired"
+msgstr "Az elsődleges kapcsolattartó neve kötelező."
+
+msgid "manager.setup.form.numReviewersPerSubmission"
+msgstr "A beküldésenkénti szakmai lektorok számának megadása kötelező."
+
+msgid "manager.setup.form.supportEmailRequired"
+msgstr "A támogatói e-mail cím megadása kötelező."
+
+msgid "manager.setup.form.supportNameRequired"
+msgstr "A támogató nevének magadása kötelező."
+
+msgid "manager.setup.generalInformation"
+msgstr "Általános információ"
+
+msgid "manager.setup.gettingDownTheDetails"
+msgstr "1. lépés: A részletek megismerése"
+
+msgid "manager.setup.guidelines"
+msgstr "Útmutatók"
+
+msgid "manager.setup.preparingWorkflow"
+msgstr "3. lépés. Munkafolyamat előkészítése"
+
+msgid "manager.setup.identity"
+msgstr "Kiadó azonosítása"
+
+msgid "manager.setup.information"
+msgstr "Információ"
+
+msgid "manager.setup.information.description"
+msgstr ""
+"Rövid leírás a kiadóról könyvtárosok, leendő szerzők és olvasók számára. Az "
+"oldalsávon lesz elérhető azután, hogy az Információ blokk hozzáadása "
+"megtörtént."
+
+msgid "manager.setup.information.forAuthors"
+msgstr "Szerzőknek"
+
+msgid "manager.setup.information.forLibrarians"
+msgstr "Könyvtásrosoknak"
+
+msgid "manager.setup.information.forReaders"
+msgstr "Olvasóknak"
+
+msgid "manager.setup.information.success"
+msgstr "A kiadóhoz tartozó információ frissítésre került."
+
+msgid "manager.setup.institution"
+msgstr "Intézmény"
+
+msgid "manager.setup.itemsPerPage"
+msgstr "Egy oldalon megjelenő tételek"
+
+msgid "manager.setup.itemsPerPage.description"
+msgstr ""
+"Korlátozza a listában megjelenítendő elemek (pl: beküldések, felhasználók, "
+"szerkesztői hozzárendelések) számát mielőtt egy másik oldalon megjelenítené "
+"a következő elemeket."
+
+msgid "manager.setup.keyInfo"
+msgstr "Kulcsinformáció"
+
+msgid "manager.setup.keyInfo.description"
+msgstr ""
+"Adjon meg egy rövid leírást a kiadóról és nevezze meg a szerkesztőket, "
+"ügyvezetőket és a szerkesztőség további tagjait."
+
+msgid "manager.setup.labelName"
+msgstr "Címke név"
+
+msgid "manager.setup.layoutAndGalleys"
+msgstr "Tördelőszerkesztők"
+
+msgid "manager.setup.layoutInstructions"
+msgstr "Tördelési utasítások"
+
+msgid "manager.setup.layoutInstructionsDescription"
+msgstr ""
+"A sajtóban megjelenő publikációs tételek formázásához szerkesztési "
+"utasításokat lehet készíteni, amelyeket az alábbiakban HTML-ben vagy "
+"egyszerű szövegben lehet megadni. A Szerkesztés oldalon a Tördelőszerkesztő "
+"és a Sorozatszerkesztő számára lesznek elérhetőek minden egyes beküldésnél. "
+"(Mivel minden kiadó saját fájl formátumot, bibliográfiai szabványokat, "
+"stíluslapokat, stb. alkalmaz, ezért nincs biztosítva alapértelmezett "
+"útmutató.)"
+
+msgid "manager.setup.layoutTemplates"
+msgstr "Tördelés sablonok"
+
+msgid "manager.setup.layoutTemplatesDescription"
+msgstr ""
+"Sablonok tölthetők fel, hogy megjelenjenek a Layout oldalon a sajtóban "
+"közzétett szabványos formátumok mindegyikéhez (pl: kiadvány, recenzió, "
+"stb.), bármilyen fájlformátumot használva (pl.: pdf, doc, stb.), a "
+"betűtípust, méretet, margókat stb. meghatározó megjegyzésekkel, amelyek "
+"útmutatóként szolgálnak a tördelőszerkesztők és a korrektorok számára."
+
+msgid "manager.setup.layoutTemplates.file"
+msgstr "Sablon fájl"
+
+msgid "manager.setup.layoutTemplates.title"
+msgstr "Cím"
+
+msgid "manager.setup.lists"
+msgstr "Listák"
+
+msgid "manager.setup.lists.success"
+msgstr "A lista beállítások frissítésre kerültek."
+
+msgid "manager.setup.look"
+msgstr "Megjelenés"
+
+msgid "manager.setup.look.description"
+msgstr ""
+"Kezdőlap fejléc, tartalom, kiadói fejléc, lábléc, navigációs sáv és "
+"stíluslap."
+
+msgid "manager.setup.settings"
+msgstr "Beállítások"
+
+msgid "manager.setup.management.description"
+msgstr ""
+"Hozzáférés és biztonság, ütemezés, értesítések, olvasószerkesztés, tördelés "
+"és korrektúrázás."
+
+msgid "manager.setup.managementOfBasicEditorialSteps"
+msgstr "Alap szerkesztői lépések kezelése"
+
+msgid "manager.setup.managingPublishingSetup"
+msgstr "Menedzsment és publikációs beállítások"
+
+msgid "manager.setup.managingThePress"
+msgstr "4. lépés. Beállítások kezelése"
+
+msgid "manager.setup.masthead.success"
+msgstr "A kiadó fejlécadatai frissítésre kerültek."
+
+msgid "manager.setup.noImageFileUploaded"
+msgstr "Nem került kép fájl feltöltésre."
+
+msgid "manager.setup.noStyleSheetUploaded"
+msgstr "Nem került stíluslap feltöltésre."
+
+msgid "manager.setup.note"
+msgstr "Jegyzet"
+
+msgid "manager.setup.notifyAllAuthorsOnDecision"
+msgstr ""
+"Amikor a Szerző Értesítése e-mailt használja, többszerzős beadványoknál "
+"adja meg az összes társszerző e-mail címét és ne csak a beküldő "
+"felhasználóét."
+
+msgid "manager.setup.noUseCopyeditors"
+msgstr ""
+"Az olvasószerkesztést a beküldéshez rendelet szerkesztő vagy "
+"sorozatszerkesztő fogja elvégezni."
+
+msgid "manager.setup.noUseLayoutEditors"
+msgstr ""
+"A beküldéshez rendelet szerkesztő vagy sorozatszerkesztő fogja elkészíteni a "
+"HTML, PDF, stb. fájlokat."
+
+msgid "manager.setup.noUseProofreaders"
+msgstr ""
+"A beküldéshez rendelt szerkesztő vagy sorozatszerkesztő fogja ellenőrizni a "
+"formátumokat."
+
+msgid "manager.setup.numPageLinks"
+msgstr "Oldal linkek"
+
+msgid "manager.setup.numPageLinks.description"
+msgstr "Korlátozza a listában a következő oldalakra mutató linkek számát."
+
+msgid "manager.setup.onlineAccessManagement"
+msgstr "Hozzáférés Kiadó tartalomhoz"
+
+msgid "manager.setup.onlineIssn"
+msgstr "Online ISSN"
+
+msgid "manager.setup.policies"
+msgstr "Irányelvek"
+
+msgid "manager.setup.policies.description"
+msgstr ""
+"Tudományterület, szakmai lektorálás, szakaszok, adatvédelem, biztonság és "
+"további tételek."
+
+msgid "manager.setup.privacyStatement.success"
+msgstr "Az adatvédelmi nyilatkozat frissítésre került."
+
+msgid "manager.setup.appearanceDescription"
+msgstr ""
+"A kiadó megjelenésének különböző alkotóelemeinek konfigurációjára van "
+"lehetőség ezen az oldalon, beleértve a fejléc és lábléc elemeket, kiadó "
+"stílusát és sablonját, valamit a tudnivalókat a felhasználók számára."
+
+msgid "manager.setup.pressDescription"
+msgstr "Kiadó összefolaló"
+
+msgid "manager.setup.pressDescription.description"
+msgstr "Rövid leírás a kiadóról."
+
+msgid "manager.setup.aboutPress"
+msgstr "A kiadóról"
+
+msgid "manager.setup.aboutPress.description"
+msgstr ""
+"Adjon meg bármilyen információt a kiadójáról, amely érdekelheti az "
+"olvasókat, szerzőket és szakmai lektorokat. Ez tartalmazhatja a nyílt "
+"hozzáférési irányelveket, a kiadó fókuszát és tudományterületeit, szerzői "
+"jogi nyilatkozatot, támogatói nyilatkozatot, a kiadó történetét és az "
+"adatvédelmi nyilatkozatot."
+
+msgid "manager.setup.pressArchiving"
+msgstr "Kiadó archiválás"
+
+msgid "manager.setup.homepageContent"
+msgstr "Kiadó kezdőoldal tartalom"
+
+msgid "manager.setup.homepageContentDescription"
+msgstr ""
+"A kiadó kezdőoldala alapértelemezetten tartalmazza a navigációs linkeket. "
+"További tartalom adható hozzá a kezdőoldalhoz a következő opciók "
+"valamelyikével, amely az adott sorrendeben fog megjelenni."
+
+msgid "manager.setup.pressHomepageContent"
+msgstr "Kiadó kezdőoldal tartalom"
+
+msgid "manager.setup.pressHomepageContentDescription"
+msgstr ""
+"A kiadó kezdőoldala alapértelemezetten tartalmazza a navigációs linkeket. "
+"További tartalom adható hozzá a kezdőoldalhoz a következő opciók "
+"valamelyikével, amely az adott sorrendeben fog megjelenni."
+
+msgid "manager.setup.contextInitials"
+msgstr "Kiadó kezdőbetűi"
+
+msgid "manager.setup.selectCountry"
+msgstr ""
+"Válasszon ki egy országot, ahol a kiadó található vagy a kiadó levelezési "
+"címének országát."
+
+msgid "manager.setup.layout"
+msgstr "Kiadó elrendezés"
+
+msgid "manager.setup.pageHeader"
+msgstr "Kiadó oldal fejléc"
+
+msgid "manager.setup.pageHeaderDescription"
+msgstr "Oldal fejléc leírás"
+
+msgid "manager.setup.pressPolicies"
+msgstr "2. lépés. Kiadói irányelvek"
+
+msgid "manager.setup.pressSetup"
+msgstr "Kiadó beállítások"
+
+msgid "manager.setup.pressSetupUpdated"
+msgstr "A kiadói beállítások frissítésre kerültek."
+
+msgid "manager.setup.styleSheetInvalid"
+msgstr "Érvénytelen stíluslap formátum. Az elfogadható formátum .css."
+
+msgid "manager.setup.pressTheme"
+msgstr "Kiadó sablon"
+
+msgid "manager.setup.pressThumbnail"
+msgstr "Kiadó bélyegképe"
+
+msgid "manager.setup.pressThumbnail.description"
+msgstr ""
+"A kiadók listájában megjelenítésre kerülő kis méretű logó vagy ábrázolás."
+
+msgid "manager.setup.contextTitle"
+msgstr "Kiadó név"
+
+msgid "manager.setup.printIssn"
+msgstr "Nyomtatott ISSN"
+
+msgid "manager.setup.proofingInstructions"
+msgstr "Korrektúrázási utasítások"
+
+msgid "manager.setup.proofingInstructionsDescription"
+msgstr ""
+"A korrektúrázási utasítások elérhetőek lesznek a korrektorok, szerzők, "
+"tördelőszerkesztők és sorozatszerkesztők számára a beküldés szerkesztés "
+"munkafolyamata alatt. Alább található egy általános utasítás HTML-ben, ami a "
+"kiadó menedzser által bármikor módosítható vagy lecserélhető (HTML-ben vagy "
+"egyszerű szövegben)."
+
+msgid "manager.setup.proofreading"
+msgstr "Korrektorok"
+
+msgid "manager.setup.provideRefLinkInstructions"
+msgstr "Adjon utasításokat a tördelőszerkesztőknek."
+
+msgid "manager.setup.publicationScheduleDescription"
+msgstr ""
+"Kiadói tételeket együttesen lehet közzétenni egy kiadvány részeként saját "
+"tartalomjegyzékkel. Továbbá egyedi tételek közzétételére is van lehetőség az "
+"elkészültükkel egy időben, az \"aktuális\" kötet tartalomjegyzékéhez való "
+"hozzáadásával. A Kiadóról szóló részben tájékoztassa az olvasókat a sajtó "
+"által használt rendszerről és a megjelenés várható gyakoriságáról."
+
+msgid "manager.setup.publisher"
+msgstr "Kiadó"
+
+msgid "manager.setup.publisherDescription"
+msgstr ""
+"A kiadót megjelentető szervezet neve a Kiadóról szóló résznél jelenik meg."
+
+msgid "manager.setup.referenceLinking"
+msgstr "Hivatkozás linkelés"
+
+msgid "manager.setup.refLinkInstructions.description"
+msgstr "Tördelési utasítások hivatkozások linkeléshez"
+
+msgid "manager.setup.restrictMonographAccess"
+msgstr ""
+"Felhasználói regisztráció és bejelentkezés szükséges a nyílt hozzáférésű "
+"tartalom megtekintéséhez."
+
+msgid "manager.setup.restrictSiteAccess"
+msgstr ""
+"Felhasználói regisztráció és bejelentkezés szükséges a kiadó oldalának "
+"megtekintéséhez."
+
+msgid "manager.setup.reviewGuidelines"
+msgstr "Külső szakmai lektorálási útmutatók"
+
+msgid "manager.setup.reviewGuidelinesDescription"
+msgstr ""
+"A beküldött anyagok kiadónál történő közzétételre való alkalmasságának "
+"megítéléséhez szükséges kritériumok megadása a külső bírálók számára, "
+"amelyek tartalmazhatnak utasításokat a hatékony és hasznos szakmai lektori "
+"vélemény elkészítéséhez. A szakmai lektoroknak lehetőségük lesz arra, hogy "
+"megjegyzéseket tegyenek a szerzőnek és a szerkesztőnek, valamint külön csak "
+"a szerkesztőnek is."
+
+msgid "manager.setup.internalReviewGuidelines"
+msgstr "Belső szakmai lektorálási útmutatók"
+
+msgid "manager.setup.reviewOptions"
+msgstr "Szakmai lektorálási lehetőségek"
+
+msgid "manager.setup.reviewOptions.automatedReminders"
+msgstr "Automatikus e-mail emlékeztetők"
+
+msgid "manager.setup.reviewOptions.automatedRemindersDisabled"
+msgstr ""
+"Ezeknek az opciók az aktiválásához az oldaladminisztrátornak engedélyeznie "
+"kell a scheduled_tasks opciót az OMP konfigurációs fájlban. További "
+"szerver konfiguráció lehet szükséges ennek a funkciónak a támogatásához "
+"(amely nem feltétlenül lehetséges minden szerveren), ahogy az az OMP "
+"dokumentációban is fel van tüntetve."
+
+msgid "manager.setup.reviewOptions.onQuality"
+msgstr ""
+"A szerkesztők értékelik a szakmai lektorokat egy ötpontos minősítő skálán "
+"minden szakmai lektorálás után."
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess"
+msgstr "Fájl hozzáférés korlátozása"
+
+msgid "manager.setup.reviewOptions.restrictReviewerFileAccess.description"
+msgstr ""
+"Szakmai lektorok csak azután férnek hozzá a beküldött anyag fájljához, "
+"miután beleegyeztek annak szakmai lektorálásába."
+
+msgid "manager.setup.reviewOptions.reviewerAccess"
+msgstr "Szakmai lektori hozzáférés"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled"
+msgstr "Egy-kattintásos szakmai lektorálási hozzáférés"
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.description"
+msgstr ""
+"Biztonsági link küldhető a szakmai lektorok részére a felkérő e-mailben, ami "
+"lehetővé teszi a bejelentkezés nélküli hozzáférést. Egyéb oldalakhoz való "
+"hozzáféréshez viszont szükséges a bejelentkezés."
+
+msgid "manager.setup.reviewOptions.reviewerAccessKeysEnabled.label"
+msgstr "Biztonsági link küldése szakmai lektoroknak a felkérő e-mailben."
+
+msgid "manager.setup.reviewOptions.reviewerRatings"
+msgstr "Szakmai lektor értékelése"
+
+msgid "manager.setup.reviewOptions.reviewerReminders"
+msgstr "Szakmai lektorálási emlékeztetők"
+
+msgid "manager.setup.reviewPolicy"
+msgstr "Szakmai lektorálási irányelvek"
+
+msgid "manager.setup.searchDescription.description"
+msgstr ""
+"Adjon meg egy rövid leírást (50-300 karakter) a kiadóról, amit a "
+"keresőmotorok megtudnak jeleníteni a találati listában."
+
+msgid "manager.setup.searchEngineIndexing"
+msgstr "Keresés indexelés"
+
+msgid "manager.setup.searchEngineIndexing.description"
+msgstr ""
+"Segítse, hogy a Google és hasonló keresőmotorok felfedezzék és listázzák az "
+"oldalát. Ajánlatos egy oldaltérkép feltöltése."
+
+msgid "manager.setup.searchEngineIndexing.success"
+msgstr "A keresőmotor indexelési beállítások frissítésre kerültek."
+
+msgid "manager.setup.sectionsAndSectionEditors"
+msgstr "Rovatok és Rovatszerkesztők"
+
+msgid "manager.setup.sectionsDefaultSectionDescription"
+msgstr ""
+"(Amennyiben nincsenek rovatok megadva, akkor a tételek alapértelmezetten a "
+"Monográfia rovathoz lesznek beküldve.)"
+
+msgid "manager.setup.sectionsDescription"
+msgstr ""
+"A kiadónál levő rovatok létrehozásához és módosításához (pl.: Monográfiák, "
+"Recenziók, stb.) lépjen az Rovatkezelőbe.
A szerzők a kiadóhoz "
+"való beküldéskor adják meg…"
+
+msgid "manager.setup.securitySettings"
+msgstr "Hozzáférési és biztonsági beállítások"
+
+msgid "manager.setup.securitySettings.note"
+msgstr ""
+"Egyéb biztonsággal és hozzáféréssel kapcsolatos lehetőségek a Hozzáférés és "
+"Biztonság oldalon konfigurálhatóak."
+
+msgid "manager.setup.selectEditorDescription"
+msgstr ""
+"A kiadó szerkesztője, aki a szerkesztési folyamatot fogja nyomon követni."
+
+msgid "manager.setup.selectSectionDescription"
+msgstr "A kiadó azon rovata, amihez a tétel tartozni fog."
+
+msgid "manager.setup.showGalleyLinksDescription"
+msgstr ""
+"Mindig mutassa a formátum linkeket és jelezze a korlátozott hozzáférést."
+
+msgid "manager.setup.siteAccess.view"
+msgstr "Oldal hozzáférés"
+
+msgid "manager.setup.siteAccess.viewContent"
+msgstr "Kiadvány tartalmának megtekintése"
+
+msgid "manager.setup.stepsToPressSite"
+msgstr "Öt lépéssel egy kiadói weboldalhoz"
+
+msgid "manager.setup.subjectExamples"
+msgstr "(Pl.: fotoszintézis; fekete lyukak, Négyszín-tétel; Bayes-tétel)"
+
+msgid "manager.setup.subjectKeywordTopic"
+msgstr "Kulcsszavak"
+
+msgid "manager.setup.subjectProvideExamples"
+msgstr "Adjon meg útmutatóként a szerzőknek kulcsszavakat és témákat"
+
+msgid "manager.setup.submissionGuidelines"
+msgstr "Beküldési útmutatók"
+
+msgid "maganer.setup.submissionChecklistItemRequired"
+msgstr "Tétel hozzáadása szükséges az ellenőrző listához."
+
+msgid "manager.setup.workflow"
+msgstr "Munkafolyamat"
+
+msgid "manager.setup.submissions.description"
+msgstr ""
+"Szerzői útmutatók, szerzői jog és indexelés (beleértve a regisztrációt)."
+
+msgid "manager.setup.typeExamples"
+msgstr ""
+"(Pl.: történenelmtudomány; kvázi-kísérleti; irodalomkritika; felmérés/"
+"interjú)"
+
+msgid "manager.setup.typeMethodApproach"
+msgstr "Típus (módszer/megközelítés)"
+
+msgid "manager.setup.typeProvideExamples"
+msgstr ""
+"Adjon meg példákat ehhez a területhez releváns kutatástípusokról, "
+"módszerekről és megközelítésekről"
+
+msgid "manager.setup.useCopyeditors"
+msgstr "Minden beküldéshez egy olvasószerkesztő kerül hozzárendelésre."
+
+msgid "manager.setup.useEditorialReviewBoard"
+msgstr "A kiadó szerkesztői/szakmai lektori bizottságot alkalmaz."
+
+msgid "manager.setup.useImageTitle"
+msgstr "Címkép"
+
+msgid "manager.setup.useStyleSheet"
+msgstr "Kiadói stíluslap"
+
+msgid "manager.setup.useLayoutEditors"
+msgstr ""
+"A HTML, PDF stb. fájlok elektronikus közzétételre való előkészítésére egy "
+"tördelőszerkesztő kerül hozzárendelésre."
+
+msgid "manager.setup.useProofreaders"
+msgstr ""
+"Közzététel előtt egy korrektor kerül hozzárendelésre, hogy ellenőrzze (a "
+"szerzőkkel együtt) a formátumokat."
+
+msgid "manager.setup.userRegistration"
+msgstr "Felhasználó regisztráció"
+
+msgid "manager.setup.useTextTitle"
+msgstr "Cím szövege"
+
+msgid "manager.setup.volumePerYear"
+msgstr "Kötetek évenként"
+
+msgid "manager.setup.publicationFormat.code"
+msgstr "Formátum"
+
+msgid "manager.setup.publicationFormat.codeRequired"
+msgstr "Egy formátum kiválasztása kötelező."
+
+msgid "manager.setup.publicationFormat.nameRequired"
+msgstr "Adjon meg nevet ehhez a formátumhoz."
+
+msgid "manager.setup.publicationFormat.physicalFormat"
+msgstr "Ez egy fizikai (nem digitális) formátum?"
+
+msgid "manager.setup.publicationFormat.inUse"
+msgstr ""
+"A törlés nem lehetséges, mivel ezt a kiadványformátumot egy, a kiadónál "
+"elérhető kiadvány használja."
+
+msgid "manager.setup.newPublicationFormat"
+msgstr "Új kiadványformátum"
+
+msgid "manager.setup.newPublicationFormatDescription"
+msgstr ""
+"Új kiadványformátum létrehozásához töltse ki az alábbi űrlapot és kattintson "
+"a 'Létrehozás' gombra."
+
+msgid "manager.setup.genresDescription"
+msgstr ""
+"Ezek a típusok fájl elnevezésre használhatóak és a lenyíló menüben jelennek "
+"meg a fájlok feltöltésekor. A ## jelű műfajok lehetővé teszik a felhasználó "
+"számára, hogy a fájlt vagy az egész 99Z könyvhöz, vagy egy adott fejezethez "
+"kapcsolja számmal (pl. 02)."
+
+msgid "manager.setup.disableSubmissions.notAccepting"
+msgstr ""
+"Ez a kiadó most nem fogad el új kéziratokat. Látogasson el a munkafolyamat "
+"beállításokhoz, hogy engedélyezze a kéziratok beküldését."
+
+msgid "manager.setup.disableSubmissions.description"
+msgstr ""
+"Megakadályozza a felhasználókat , hogy új cikkeket küldjenek be a kiadóhoz. "
+"Beküldések tiltása egyes kiadói sorozatokhoz a kiadói "
+"sorozatok beállítási oldalán kezdeményezhető."
+
+msgid "manager.setup.genres"
+msgstr "Típusok"
+
+msgid "manager.setup.newGenre"
+msgstr "Új kiadvány típus"
+
+msgid "manager.setup.newGenreDescription"
+msgstr ""
+"Új típus létrehozásához töltse ki az alábbi űrlapot és kattintson a "
+"'Létrehozás' gombra."
+
+msgid "manager.setup.deleteSelected"
+msgstr "Kijelöltek törlése"
+
+msgid "manager.setup.restoreDefaults"
+msgstr "Alapértelmezett beállítások visszaállítása"
+
+msgid "manager.setup.prospectus"
+msgstr "Tájékoztató útmutató"
+
+msgid "manager.setup.prospectusDescription"
+msgstr ""
+"A tájékoztató útmutató egy kiadó által elkészített dokumentum, ami a szerzőt "
+"segíti a beküldött anyagok leírásában, annak érdekében, hogy a kiadó "
+"megtudja becsülni a beküldött anyag értékét. A tájékoztató különböző "
+"tételeket tartalmazhat - a piacképességtől kezdve az eszmei értékig; "
+"mindenesetre a kiadónak olyan tájékoztatót kell összeállítania, ami tükrözi "
+"a kiadó irányelveit."
+
+msgid "manager.setup.submitToCategories"
+msgstr "Kategória beküldések engedélyezése"
+
+msgid "manager.setup.submitToSeries"
+msgstr "Sorozat beküldések engedélyezése"
+
+msgid "manager.setup.issnDescription"
+msgstr ""
+"Az ISSN (International Standard Serial Number: Időszaki kiadványok "
+"szabványos egyedi azonosítója) egy nyolc számjegyből álló kód, amely "
+"lehetővé teszi az fizikai és digitális időszaki kiadványok azonosítását. Az "
+"ISSN szám a ISSN "
+"International Centre weboldalán igényelhető."
+
+msgid "manager.setup.currentFormats"
+msgstr "Jelenlegi formátumok"
+
+msgid "manager.setup.categoriesAndSeries"
+msgstr "Kategóriák és Sorozatok"
+
+msgid "manager.setup.categories.description"
+msgstr ""
+"Lehetőség van kategória listák létrehozására, aminek segítségével "
+"rendszerezhetőek a kiadványok. A kategóriák tárgykörüknek megfelelően "
+"csoportosítják a könyveket, például: gazdaság; irodalom; költészet; stb. "
+"Alkategóriák beilleszthetők főkategóriák alá, például: a gazdaság "
+"főkategória magába foglalhatja a mikroökonómia és a makroökonómia "
+"alkategóriákat. A látogatók kategóriák szerint kereshetik és böngészhetik a "
+"kiadó anyagát."
+
+msgid "manager.setup.series.description"
+msgstr ""
+"Tetszőleges számú sorozatot lehet létrehozni a kiadványok rendezéséhez. A "
+"sorozat könyveknek egy olyan különleges csoportját jelenti, amely egy "
+"tárgynak vagy témáknak szentelt könyveket tartalmaz, amelyeket valaki - "
+"általában egy vagy két oktató - javasolt, majd felügyel. A látogatók "
+"sorozatonként kereshetnek és böngészhetnek a kiadó művei között."
+
+msgid "manager.setup.reviewForms"
+msgstr "Szakmai lektorálási űrlapok"
+
+msgid "manager.setup.roleType"
+msgstr "Szerepkör típus"
+
+msgid "manager.setup.authorRoles"
+msgstr "Szerző szerepkörök"
+
+msgid "manager.setup.managerialRoles"
+msgstr "Irányítói szerepkörök"
+
+msgid "manager.setup.availableRoles"
+msgstr "Elérhető szerepkörök"
+
+msgid "manager.setup.currentRoles"
+msgstr "Jelenlegi szerepkörök"
+
+msgid "manager.setup.internalReviewRoles"
+msgstr "Belső szakmai lektorálási szerepkörök"
+
+msgid "manager.setup.masthead"
+msgstr "Fejléc"
+
+msgid "manager.setup.editorialTeam"
+msgstr "Szerkesztőség"
+
+msgid "manager.setup.editorialTeam.description"
+msgstr ""
+"A kiadóhoz tartozó szerkesztők, ügyvezető igazgatók, és további személyek "
+"listája."
+
+msgid "manager.setup.files"
+msgstr "Fájlok"
+
+msgid "manager.setup.productionTemplates"
+msgstr "Előkészítési sablonok"
+
+msgid "manager.files.note"
+msgstr ""
+"Megjegyzés: A Fájl Böngésző egy haladó funkció, amely lehetővé teszi "
+"kiadóhoz tartozó fájlok és mappák közvetlen megtekintését és módosítását."
+
+msgid "manager.setup.copyrightNotice.sample"
+msgstr ""
+"Javasolt Creative Commons szerzői jogi megjegyzések
\n"
+"A nyílt hozzáférést kínáló kiadókra vonatkozó javasolt irányelvek
\n"
+"Azok a szerzők, akik ennél a kiadónál jelentetik meg kiadványaikat, "
+"elfogadják az alábbi feltételeket:\n"
+"\n"
+"- A szerzők megtartják a szerzői jogokat, és a sajtónak adják az első "
+"közzététel jogát, a művet egyidejűleg Creative Commons Attribution License"
+"a> licenc alatt áll, amely lehetővé teszi mások számára a munka megosztását "
+"a munka szerzőségének és a sajtóban történő első közzétételének "
+"feltüntetésével.
\n"
+"- A szerzők külön, további szerződéses sorozatot köthetnek a műnek a sajtó "
+"által közzétett változatának nem kizárólagos terjesztésére (pl. a mű "
+"intézményi adattárba való beküldésére vagy könyvben való közzétételére), a "
+"műnek a sajtóban való első közzétételének feltüntetésével.
\n"
+"- A szerzőknek megengedett és javasolt, hogy munkájukat a beküldési "
+"folyamat előtt és alatt online közzétegyék (pl. intézményi adattárakban vagy "
+"a saját honlapjukon), mivel ez produktív eszmecseréhez, valamint a közzétett "
+"munkák minnél előbbi és nagyobb mértékű idézettségéhez vezethet (lásd A "
+"nyílt hozzáférés hatása).
\n"
+"
\n"
+"\n"
+"A késleltetett nyílt hozzáférést kínáló kiadókra vonatkozó javasolt "
+"irányelvek
\n"
+"Azok a szerzők, akik ennél a kiadónál jelentetik meg kiadványaikat, "
+"elfogadják az alábbi feltételeket:\n"
+"\n"
+"- A szerzők megtartják a szerzői jogokat, és a sajtónak adják az első "
+"közzététel jogát, a művet a megjelenés után [SPECIFY PERIOD OF TIME]-val/"
+"vel később Creative Commons Attribution License licenc alá helyezik, "
+"amely lehetővé teszi mások számára a mű megosztását a mű szerzőségének és a "
+"sajtóban történő első közzétételének feltüntetésével.
\n"
+"- A szerzők külön, további szerződéses sorozatot köthetnek a műnek a sajtó "
+"által közzétett változatának nem kizárólagos terjesztésére (pl. a mű "
+"intézményi adattárba való beküldésére vagy könyvben való közzétételére), a "
+"műnek a sajtóban való első közzétételének feltüntetésével.
\n"
+"- A szerzőknek megengedett és javasolt, hogy munkájukat a beküldési "
+"folyamat előtt és alatt online közzétegyék (pl. intézményi adattárakban vagy "
+"a saját honlapjukon), mivel ez produktív eszmecseréhez, valamint a közzétett "
+"munkák minnél előbbi és nagyobb mértékű idézettségéhez vezethet (lásd A "
+"nyílt hozzáférés hatása).
\n"
+"
"
+
+msgid "manager.setup.basicEditorialStepsDescription"
+msgstr ""
+"Lépések: Kézirat várólista> Kézirat szakmai lektorálás> Kézirat "
+"szerkesztés > Tartalomjegyzék.
\n"
+"Válasszon modellt a szerkesztési folyamat ezen aspektusainak kezelésére. (A "
+"vezető szerkesztő és a sorozatszerkesztők kijelöléséhez menjen a Kiadó "
+"menedzsment beállításokban található Szerkesztők menüponthoz.)"
+
+msgid "manager.setup.referenceLinkingDescription"
+msgstr ""
+"Annak érdekében, hogy az olvasók a szerző által idézett műveket online "
+"formában felkeressék, a következő opciók állnak rendelkezésre.
\n"
+"\n"
+"\n"
+"\t- Olvasási eszközök létrehozása
A Kiadó menedzser a "
+"közzétett tételhez hozzáadhat \"Hivatkozások keresése\" linket az Olvasási "
+"eszközökben, amely lehetővé teszi a hivatkozás címének beillesztését és "
+"keresését előre meghatározott tudományos adatbázisokban.
\n"
+"\t- Linkek beágyazása a hivatkozásokhoz
A "
+"tördelőszerkesztő linkeket adhat meg az online elérhető hivatkozásokhoz az "
+"alábbi utasítások nyomán (amelyek szerkeszthetőek).
\n"
+"
"
+
+msgid "manager.publication.library"
+msgstr "Kiadói könyvtár"
+
+msgid "manager.setup.resetPermissions"
+msgstr "Kiadvány engedélyinek visszaállítása"
+
+msgid "manager.setup.resetPermissions.confirm"
+msgstr ""
+"Biztos benne, hogy vissza akarja állítani a kiadványhoz tartozó engedélyeket?"
+
+msgid "manager.setup.resetPermissions.description"
+msgstr ""
+"Szerzői jogi nyilatkozat és engedély információ a véglegesen publikált "
+"tartalomhoz lesz csatolva, biztosítva, hogy ez az adat változatlan marad "
+"abban az esetben is, ha a kiadói irányelvek az új beküldésekre vonatkozóan "
+"megváltoznak. A már publikált tartalomra vonatkozó engedélyek "
+"visszaállításához használja az alábbi gombot."
+
+msgid "manager.setup.resetPermissions.success"
+msgstr "Kiadvány engedélyek sikeresen visszaállítva."
+
+msgid "grid.genres.title.short"
+msgstr "Alkotóelemek"
+
+msgid "grid.genres.title"
+msgstr "Kiadvány alkotóelemei"
+
+msgid "manager.setup.notifications.copyPrimaryContact"
+msgstr ""
+"Másolat küldése a Kiadó beállításokban megnevezett elsődleges "
+"kapcsolattartónak."
+
+msgid "grid.series.pathAlphaNumeric"
+msgstr "A sorozat elérési útvonala csak betűket és számokat tartalmazhat."
+
+msgid "grid.series.pathExists"
+msgstr ""
+"A sorozat elérési útvonal már létezik. Adjon meg egy egyedi elérési "
+"útvonalat."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.series"
+msgstr "Sorozat kiválasztása"
+
+msgid "manager.navigationMenus.form.navigationMenuItemSeriesMessage"
+msgstr "Válassza ki a sorozatot, amelyhez ezt a menü elemet szeretné csatolni."
+
+msgid "manager.navigationMenus.form.navigationMenuItem.category"
+msgstr "Kategória kiválasztása"
+
+msgid "manager.navigationMenus.form.navigationMenuItemCategoryMessage"
+msgstr ""
+"Válassza ki azt a kategóriát, amelyhez ezt a menü elemet szeretné csatolni."
+
+msgid "grid.series.urlWillBe"
+msgstr "A sorozat URL-je: {$sampleUrl}"
+
+msgid "stats.contextStats"
+msgstr ""
+
+msgid "stats.context.tooltip.text"
+msgstr ""
+
+msgid "stats.context.tooltip.label"
+msgstr ""
+
+msgid "stats.context.downloadReport.description"
+msgstr ""
+
+msgid "stats.context.downloadReport.downloadContext.description"
+msgstr ""
+
+msgid "stats.context.downloadReport.downloadContext"
+msgstr ""
+
+msgid "stats.publications.downloadReport.description"
+msgstr ""
+
+msgid "stats.publications.downloadReport.downloadSubmissions"
+msgstr ""
+
+msgid "stats.publications.downloadReport.downloadSubmissions.description"
+msgstr ""
+
+msgid "stats.publicationStats"
+msgstr "Kiadvány statisztika"
+
+msgid "stats.publications.details"
+msgstr "Kiadvány részletei"
+
+msgid "stats.publications.none"
+msgstr ""
+"Nem található kiadvány a megadott paramétereknek megfelelő használati "
+"statisztikákkal."
+
+msgid "stats.publications.totalAbstractViews.timelineInterval"
+msgstr "Dátum szerinti összes katalógus megtekintés"
+
+msgid "stats.publications.totalGalleyViews.timelineInterval"
+msgstr "Dátum szerinti összes fájl megtekintés"
+
+msgid "stats.publications.countOfTotal"
+msgstr "{$total} / {$count} kiadvány"
+
+msgid "stats.publications.abstracts"
+msgstr "Katalógustételek"
+
+msgid "plugins.importexport.common.error.noObjectsSelected"
+msgstr "Nincsenek kiválasztott elemek."
+
+msgid "plugins.importexport.common.error.validation"
+msgstr "A kiválasztott elemeket nem lehetett konvertálni."
+
+msgid "plugins.importexport.common.invalidXML"
+msgstr "Érvénytelen XML:"
+
+msgid "plugins.importexport.native.exportSubmissions"
+msgstr "Bküldések exportálása"
+
+msgid "manager.setup.notifications.copySubmissionAckPrimaryContact.description"
+msgstr ""
+"Másolat küldése a a beküldést visszaigazoló e-mailről a kiadó elsődleges "
+"kapcsolattartójának."
+
+msgid ""
+"manager.setup.notifications.copySubmissionAckPrimaryContact.disabled."
+"description"
+msgstr ""
+"Nincs elsődleges kapcsolattartó meghatározva ehhez a kiadóhoz. Elsődleges "
+"kapcsolattartót megadnia kiadói beállításokban lehet."
+
+msgid "plugins.importexport.common.error.unknownObjects"
+msgstr "A megadott elem nem található."
+
+msgid "plugins.importexport.native.error.unknownUser"
+msgstr "A megadott \"{$userName}\" felhasználó, nem létezik."
+
+msgid "plugins.importexport.publicationformat.exportFailed"
+msgstr "A kiadványformátum elemzése sikertelen volt"
+
+msgid "plugins.importexport.chapter.exportFailed"
+msgstr "A fejezetek elemzése sikertelen volt"
+
+msgid "emailTemplate.variable.context.contextName"
+msgstr "A kiadó neve"
+
+msgid "emailTemplate.variable.context.contextUrl"
+msgstr "A kiadó kezdőoldalára vezető URL"
+
+msgid "emailTemplate.variable.context.contactName"
+msgstr "A kiadó elsődleges kapcsolattartójának neve"
+
+msgid "emailTemplate.variable.context.contextSignature"
+msgstr "A kiadó aláírása automatikusan kiküldött e-mailekben"
+
+msgid "emailTemplate.variable.context.contactEmail"
+msgstr "A kiadó elsődleges kapcsolattartójának e-mail címe"
+
+msgid "emailTemplate.variable.queuedPayment.itemName"
+msgstr "A fizetési mód neve"
+
+msgid "emailTemplate.variable.queuedPayment.itemCost"
+msgstr "Fizetendő összeg"
+
+msgid "emailTemplate.variable.queuedPayment.itemCurrencyCode"
+msgstr "A fizetendő összeg pénzneme, például USD"
+
+msgid "emailTemplate.variable.site.siteTitle"
+msgstr "Weboldal neve, amennyiben több, mint egy kiadót is szolgáltatva van"
+
+msgid "mailable.validateEmailContext.name"
+msgstr "Email megerősítése (Kiadó regisztráció)"
+
+msgid "mailable.validateEmailContext.description"
+msgstr ""
+"Ez az email automatikusan kerül kiküldésre az újonnan regisztrált "
+"felhasználónak, amikor a beállítások miatt kötelező az e-mail fiók "
+"hitelesítése."
+
+msgid "doi.displayName"
+msgstr "DOI"
+
+msgid "doi.manager.displayName"
+msgstr "DOI-k"
+
+msgid "doi.description"
+msgstr ""
+"Ez a bővítmény lehetővé teszi a Digitális Objektumazonosítók (DOI) "
+"hozzárendelését kiadványokhoz, fejezetekhez, kiadványformátumokhoz és "
+"fájlokhoz az OMP-ben."
+
+msgid "doi.readerDisplayName"
+msgstr "DOI:"
+
+msgid "doi.manager.settings.description"
+msgstr ""
+"Kérjük, konfigurálja a DOI bővítményt, hogy képes legyen DOI-kat kezelni és "
+"használni az OMP-ben:"
+
+msgid "doi.manager.settings.explainDois"
+msgstr ""
+"Kérjük, válassza ki azokat a publikálandó elemeket, amelyekhez digitális "
+"objektumazonosítót (DOI) rendelnek:"
+
+msgid "doi.manager.settings.enablePublicationDoi"
+msgstr "Kiadványok"
+
+msgid "doi.manager.settings.enableChapterDoi"
+msgstr "Fejezetek"
+
+msgid "doi.manager.settings.enableRepresentationDoi"
+msgstr "Kiadványformátumok"
+
+msgid "doi.manager.settings.enableSubmissionFileDoi"
+msgstr "Fájlok"
+
+#, fuzzy
+msgid "doi.manager.settings.doiPrefix"
+msgstr "DOI előtag"
+
+msgid "doi.manager.settings.doiPrefixPattern"
+msgstr "A DOI előtag kötelező, és 10.xxxx formátumúnak kell lennie."
+
+msgid "doi.manager.settings.doiSuffixPattern"
+msgstr ""
+"A DOI utótagok létrehozásához használja az alábbiakban megadott mintát. "
+"Használja a %p-t a kiadó (press) kezdőbetűihez, a %m-t a kiadvány "
+"(monograph) azonosítójához, a %c-t a fejezet (chapter) azonosítójához, a %f-"
+"t a kiadványformátum ( publication format) azonosítójához, a %s-t a fájl "
+"(file) azonosítójához és a %x-t az \"Egyéni azonosítóhoz\" (Custom "
+"Identifier)."
+
+msgid "doi.manager.settings.doiSuffixPattern.example"
+msgstr ""
+"Például a press%ppub%r olyan DOI-t hozhat létre mint 10.1234/pressESPppub100"
+
+msgid "doi.manager.settings.doiSuffixPattern.submissions"
+msgstr "kiadványoknak"
+
+msgid "doi.manager.settings.doiSuffixPattern.chapters"
+msgstr "fejezeteknek"
+
+msgid "doi.manager.settings.doiSuffixPattern.representations"
+msgstr "kiadványformátumoknak"
+
+msgid "doi.manager.settings.doiSuffixPattern.files"
+msgstr "fájloknak"
+
+msgid "doi.manager.settings.doiPublicationSuffixPatternRequired"
+msgstr "Adja meg a kiadványok DOI utótag mintáját."
+
+msgid "doi.manager.settings.doiChapterSuffixPatternRequired"
+msgstr "Adja meg a fejezetek DOI utótag mintáját."
+
+msgid "doi.manager.settings.doiRepresentationSuffixPatternRequired"
+msgstr "Adja meg a kiadványformátumok DOI utótag mintáját."
+
+msgid "doi.manager.settings.doiSubmissionFileSuffixPatternRequired"
+msgstr "Adja meg a fájlok DOI utótag mintáját."
+
+msgid "doi.manager.settings.doiReassign"
+msgstr "DOI-k újbóli hozzárendelése"
+
+msgid "doi.manager.settings.doiReassign.description"
+msgstr ""
+"Ha módosítja a DOI konfigurációt a már hozzárendelt DOI-kat ez nem fogja "
+"érinteni. A DOI-konfiguráció mentése után ezzel a gombbal törölheti az "
+"összes meglévő DOI-t, hogy az új beállítások az összes meglévő elemnél "
+"érvénybe lépjenek."
+
+msgid "doi.manager.settings.doiReassign.confirm"
+msgstr "Biztos, hogy az összes meglévő DOI-t törölni kívánja?"
+
+msgid "doi.editor.doi"
+msgstr "DOI"
+
+msgid "doi.editor.doi.description"
+msgstr "A DOI-nak ezzel kell kezdődnie: {$prefix}."
+
+msgid "doi.editor.doi.assignDoi"
+msgstr "Hozzárendelés"
+
+msgid "doi.editor.doiObjectTypeSubmission"
+msgstr "kiadvány"
+
+msgid "doi.editor.doiObjectTypeChapter"
+msgstr "fejezet"
+
+msgid "doi.editor.doiObjectTypeRepresentation"
+msgstr "kiadványformátum"
+
+msgid "doi.editor.doiObjectTypeSubmissionFile"
+msgstr "fájl"
+
+msgid "doi.editor.customSuffixMissing"
+msgstr "A DOI nem rendelhető hozzá, mert az egyéni utótag hiányzik."
+
+msgid "doi.editor.missingParts"
+msgstr ""
+"Nem tudja létrehozni a DOI-t, mert a DOI mintájából egy vagy több rész "
+"hiányzik."
+
+msgid "doi.editor.patternNotResolved"
+msgstr "A DOI nem rendelhető hozzá, mert feloldatlan mintát tartalmaz."
+
+msgid "doi.editor.canBeAssigned"
+msgstr ""
+"Amit lát, az a DOI előnézete. A DOI hozzárendeléséhez jelölje be a "
+"jelölőnégyzetet és mentse el az űrlapot."
+
+msgid "doi.editor.assigned"
+msgstr "A DOI-t ehhez a(z) {$pubObjectType} elemhez rendelték."
+
+msgid "doi.editor.doiSuffixCustomIdentifierNotUnique"
+msgstr ""
+"Az adott DOI utótag már használatban van egy másik közzétett elemnél. "
+"Kérjük, egyedi DOI utótagot adjon hozzá minden egyes tételhez."
+
+msgid "doi.editor.clearObjectsDoi"
+msgstr "Törlés"
+
+msgid "doi.editor.clearObjectsDoi.confirm"
+msgstr "Biztos, hogy törölni kívánja a meglévő DOI-t?"
+
+msgid "doi.editor.assignDoi"
+msgstr "A DOI {$pubId} hozzárendelése ehhez a(z) {$pubObjectType} elemhez"
+
+msgid "doi.editor.assignDoi.emptySuffix"
+msgstr "A DOI nem rendelhető hozzá, mert az egyéni utótag hiányzik."
+
+msgid "doi.editor.assignDoi.pattern"
+msgstr ""
+"A DOI {$pubId} nem rendelhető hozzá, mert feloldatlan mintát tartalmaz."
+
+msgid "doi.editor.assignDoi.assigned"
+msgstr "A {$pubId} DOI kiosztásra került."
+
+msgid "doi.editor.missingPrefix"
+msgstr "A DOI-nak ezzel kell kezdődnie: {$doiPrefix}."
+
+msgid "doi.editor.preview.publication"
+msgstr "A kiadvány DOI-ja lesz: {$doi}."
+
+msgid "doi.editor.preview.publication.none"
+msgstr "Ehhez a kiadványhoz nem rendeltek DOI-t."
+
+msgid "doi.editor.preview.chapters"
+msgstr "Fejezet: {$title}"
+
+msgid "doi.editor.preview.publicationFormats"
+msgstr "Kiadványformátum: {$title}"
+
+msgid "doi.editor.preview.files"
+msgstr "Fájl: {$title}"
+
+msgid "doi.editor.preview.objects"
+msgstr "Elem"
+
+msgid "doi.manager.submissionDois"
+msgstr "Kiadvány DOI-k"
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.description"
+msgstr ""
+"Ez az e-mail értesíti a szerzőt arról, hogy beküldött anyagát továbbküldték "
+"a belső szakmai lektorálási munkafolyamatba."
+
+msgid "mailable.decision.initialDecline.notifyAuthor.description"
+msgstr ""
+"Ez az e-mail arról értesíti a szerzőt, hogy a beküldött anyagát elutasítják "
+"már a szakmai lektorálásra küldés előtt, mert az nem felel meg a kiadó "
+"közzétételhez szükséges követelményeinek."
+
+msgid "manager.institutions.noContext"
+msgstr ""
+
+msgid "manager.manageEmails.description"
+msgstr ""
+
+msgid "mailable.decision.sendInternalReview.notifyAuthor.name"
+msgstr "Belső szakmai lektorálásra küldés"
+
+msgid "mailable.indexRequest.name"
+msgstr ""
+
+msgid "mailable.indexComplete.name"
+msgstr ""
+
+msgid "mailable.publicationVersionNotify.name"
+msgstr ""
+
+msgid "mailable.publicationVersionNotify.description"
+msgstr ""
+
+msgid "mailable.submissionNeedsEditor.description"
+msgstr ""
+
+#~ msgid "manager.setup.doiPrefixDescription"
+#~ msgstr ""
+#~ "A DOI (Digital Object Identifier / digitális objektumazonosító) előtag a "
+#~ "CrossRef által "
+#~ "lesz hozzárendelve 10.xxxx (e.g. 10.1234) formátumban."
+
+#~ msgid "manager.setup.doiPrefix"
+#~ msgstr "DOI előtag"
diff --git a/locale/hu/submission.po b/locale/hu/submission.po
new file mode 100644
index 00000000000..547506cad61
--- /dev/null
+++ b/locale/hu/submission.po
@@ -0,0 +1,619 @@
+# Szabolcs Hoczopan , 2021.
+# Fülöp Tiffany , 2022.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-04-13 12:15+0000\n"
+"Last-Translator: Fülöp Tiffany \n"
+"Language-Team: Hungarian \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 "submission.upload.selectComponent"
+msgstr "Alkotóelem kiválasztása"
+
+msgid "submission.title"
+msgstr "Könyv címe"
+
+msgid "submission.select"
+msgstr "Beküldés kiválasztása"
+
+msgid "submission.synopsis"
+msgstr "Tartalom"
+
+msgid "submission.workflowType"
+msgstr "Beküldés típusa"
+
+msgid "submission.workflowType.description"
+msgstr ""
+"A monográfia olyan mű, amelyet teljes egészében egy vagy több szerző írt. A "
+"szerkesztett kötetben az egyes fejezetek szerzői különbözőek (a fejezetek "
+"adatai a folyamat során később kerülnek betöltésre)"
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr "Szerkesztett kötet"
+
+msgid "submission.workflowType.editedVolume"
+msgstr "Szerkesztett kötet: A szerzők saját fejezetükhöz vannak rendelve."
+
+msgid "submission.workflowType.authoredWork"
+msgstr "Monográfia: A szerzők a könyv egészéhez vannak rendelve."
+
+msgid "submission.workflowType.change"
+msgstr "Változtatás"
+
+msgid "submission.editorName"
+msgstr "{$editorName} (ed)"
+
+msgid "submission.monograph"
+msgstr "Monográfia"
+
+msgid "submission.published"
+msgstr "Megjelentetésre kész"
+
+msgid "submission.fairCopy"
+msgstr "Tisztázat"
+
+msgid "submission.authorListSeparator"
+msgstr "; "
+
+msgid "submission.artwork.permissions"
+msgstr "Engedélyek"
+
+msgid "submission.chapter"
+msgstr "Fejezet"
+
+msgid "submission.chapters"
+msgstr "Fejezetek"
+
+msgid "submission.chapter.addChapter"
+msgstr "Fejezet hozzáadása"
+
+msgid "submission.chapter.editChapter"
+msgstr "Fejezet szerkesztése"
+
+msgid "submission.chapter.pages"
+msgstr "Oldalak"
+
+msgid "submission.copyedit"
+msgstr "Olvasószerkesztés"
+
+msgid "submission.publicationFormats"
+msgstr "Kiadványformátumok"
+
+msgid "submission.proofs"
+msgstr "Kefelenyomatok"
+
+msgid "submission.download"
+msgstr "Letöltés"
+
+msgid "submission.sharing"
+msgstr "Megosztás"
+
+msgid "manuscript.submission"
+msgstr "Kézirat beküldés"
+
+msgid "submission.round"
+msgstr "Forduló {$round}"
+
+msgid "submissions.queuedReview"
+msgstr "Szakmai lektorálás alatt"
+
+msgid "manuscript.submissions"
+msgstr "Kézirat beküldések"
+
+msgid "submission.metadata"
+msgstr "Mataadat"
+
+msgid "submission.supportingAgencies"
+msgstr "Támogató szervezetek"
+
+msgid "grid.action.addChapter"
+msgstr "Új fejezet létrehozása"
+
+msgid "grid.action.editChapter"
+msgstr "Fejezet szerkesztése"
+
+msgid "grid.action.deleteChapter"
+msgstr "Fejezet törlése"
+
+msgid "submission.submit"
+msgstr "Új könyv beküldése"
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr "Új beküldés indítása"
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr "Új beküldés"
+
+msgid "submission.submit.upload"
+msgstr "Beküldés feltöltése"
+
+msgid "author.volumeEditor"
+msgstr ""
+
+msgid "author.isVolumeEditor"
+msgstr "Ez a közreműködő a kötet szerkesztője."
+
+msgid "submission.submit.seriesPosition"
+msgstr "Sorozati pozíció"
+
+msgid "submission.submit.seriesPosition.description"
+msgstr "Példa: 2. könyv, 2. kötet"
+
+msgid "submission.submit.privacyStatement"
+msgstr "Adatvédelmi nyilatkozat"
+
+msgid "submission.submit.contributorRole"
+msgstr "Közreműködő szerepköre"
+
+msgid "submission.submit.submissionFile"
+msgstr "Beküldés fájl"
+
+msgid "submission.submit.prepare"
+msgstr "Előkészítés"
+
+msgid "submission.submit.catalog"
+msgstr "Katalógus"
+
+msgid "submission.submit.metadata"
+msgstr "Metaadat"
+
+msgid "submission.submit.finishingUp"
+msgstr "Befejezés"
+
+msgid "submission.submit.confirmation"
+msgstr "Megerősítés"
+
+msgid "submission.submit.nextSteps"
+msgstr "Következő lépések"
+
+msgid "submission.submit.coverNote"
+msgstr "Üzenet a szerkesztőnek"
+
+msgid "submission.submit.generalInformation"
+msgstr "Általános információ"
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+"A szerkesztőséget értesítettük a beküldésről és e-mailben visszaigazolást "
+"küldtünk Önnek. Amint a szerkesztő átnézte a beküldését, felveszi Önnel a "
+"kapcsolatot."
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+"Kérjük, olvassa el és jelölje be a beküldés ellenőrzőlistájának elemeit. "
+"Vannak még {$itemsRemaining} elfogadás nélküli elemek."
+
+msgid "submission.submit.placement"
+msgstr "A benyújtás elhelyezése"
+
+msgid "submission.submit.userGroup"
+msgstr "Szerepköröm a beküldött anyagban..."
+
+msgid "submission.submit.noContext"
+msgstr "Ennek a beküldésnek a kiadója nem található."
+
+msgid "grid.chapters.title"
+msgstr "Fejezetek"
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr "Olvasószerkesztő feltöltésének törlése"
+
+msgid "submission.complete"
+msgstr "Jóváhagyva"
+
+msgid "submission.incomplete"
+msgstr "Jóváhagyásra vár"
+
+msgid "submission.editCatalogEntry"
+msgstr "Tétel"
+
+msgid "submission.catalogEntry.new"
+msgstr "Tétel hozzáadása"
+
+msgid "submission.catalogEntry.add"
+msgstr "A kiválasztott elem hozzáadása a katalógushoz"
+
+msgid "submission.catalogEntry.select"
+msgstr "Válassza ki a katalógushoz adandó kiadványt"
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr "Legalább egy kiadványt ki kell választania hozzáadásra a katalógushoz."
+
+msgid "submission.catalogEntry.confirm"
+msgstr "Könyv hozzáadása a nyilvános katalógushoz"
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr ""
+"Kérjük, erősítse meg, hogy a beküldött anyag készen áll a katalógusba való "
+"felvételre."
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr "A kiadvány készen áll a nyilvános katalógusba való felvételre."
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr "Beküldés megtekintése"
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr "Közzétételi dátumok"
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr "Minden fejezet a kiadvány megjelenési dátumát fogja használni."
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr "Minden fejezetnek lehet saját megjelenési dátuma."
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr "Kiadvány"
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr "Katalógus"
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr "Kiadványformátum"
+
+msgid "submission.event.metadataPublished"
+msgstr "A kiadvány metaadatai jóvá vannak hagyva közzétételre."
+
+msgid "submission.event.metadataUnpublished"
+msgstr "A kiadvány metaadatait nincsenek tovább közzétéve."
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr "A \"{$publicationFormatName}\" kiadványformátum elérhetővé válik."
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr "A \"{$publicationFormatName}\" kiadványformátum már nem elérhető."
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+"A \"{$publicationFormatName}\" kiadványformátumot jóváhagyták közzétételre ."
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr ""
+"A \"{$publicationFormatName}\" kiadványformátum már nincs tovább közzétéve."
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr "A katalógus metaadatai frissítésre kerültek."
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr ""
+"A(z) \"{$formatName}\" kiadványformátum metaadatai frissítésre kerültek."
+
+msgid "submission.event.publicationFormatCreated"
+msgstr "Létrejött a(z) \"{$formatName}\" kiadványformátum."
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr "A(z) \"{$formatName}\" kiadványformátum eltávolításra került."
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr "Külső szakmai lektorálásra küldés"
+
+msgid "workflow.review.externalReview"
+msgstr "Külső szakmai lektorálás"
+
+msgid "submission.upload.fileContents"
+msgstr "Beküldési összetevők"
+
+msgid "submission.dependentFiles"
+msgstr "Függőben lévő fájlok"
+
+msgid "submission.metadataDescription"
+msgstr ""
+"Ezek a specifikációk a Dublin Core metaadatkészleten alapulnak, amely a "
+"tartalom feltárására használt nemzetközi szabvány."
+
+msgid "section.any"
+msgstr "Bármely sorozat"
+
+msgid "submission.list.monographs"
+msgstr "Kiadványok"
+
+msgid "submission.list.countMonographs"
+msgstr "{$count} kiadvány"
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr "{$count} / {$total} kiadvány"
+
+msgid "submission.list.orderFeatures"
+msgstr "Rendezési opciók"
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+"Húzással vagy a felfelé és lefelé gombokra kattintva megváltoztathatja a "
+"sorrendet a kezdőlapon."
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+"A(z) {$title} belül húzással vagy a felfelé és lefelé gombokra kattintva "
+"megváltoztathatja a sorrendet."
+
+msgid "submission.list.saveFeatureOrder"
+msgstr "Sorrend mentése"
+
+msgid "submission.list.viewEntry"
+msgstr "Tétel megtekintése"
+
+msgid "catalog.browseTitles"
+msgstr "{$numTitles} cím"
+
+msgid "publication.catalogEntry"
+msgstr "Katalógustétel"
+
+msgid "publication.catalogEntry.success"
+msgstr "A katalógustétel részletei frissítésre kerültek."
+
+msgid "publication.invalidSeries"
+msgstr "A sorozatot ehhez a kiadványhoz nem sikerült megtalálni."
+
+msgid "publication.inactiveSeries"
+msgstr "{$series} (Inaktív)"
+
+msgid "publication.required.issue"
+msgstr "A kiadványt egy kötethez kell rendelni, mielőtt közzétehető lenne."
+
+msgid "publication.publishedIn"
+msgstr "Közzétéve a {$issueName} kötetben."
+
+msgid "publication.publish.confirmation"
+msgstr ""
+"Minden publikációs elvárásnak megfelelt. Biztos, hogy nyilvánossá kívánja "
+"tenni ezt a katalógusbejegyzést?"
+
+msgid "publication.scheduledIn"
+msgstr "Megjelenik a {$issueName} kötetben."
+
+msgid "submission.publication"
+msgstr "Kiadvány"
+
+msgid "publication.status.published"
+msgstr "Közzétéve"
+
+msgid "submission.status.scheduled"
+msgstr "Ütemezett"
+
+msgid "publication.status.unscheduled"
+msgstr "Nem ütemezett"
+
+msgid "submission.publications"
+msgstr "Kiadványok"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+"A szerzői jog éve automatikusan beállításra kerül a megjelenést követően."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+"A szerzői jog éve automatikusan beállításra kerül a közzététel dátuma "
+"alapján."
+
+msgid "publication.datePublished"
+msgstr "Közzététel dátuma"
+
+msgid "publication.editDisabled"
+msgstr "Ez a verzió már nem szerkeszthető, mert közzé van téve."
+
+msgid "publication.event.published"
+msgstr "A beküldött anyag közzétételre került."
+
+msgid "publication.event.scheduled"
+msgstr "A beküldött anyag közzétételre ütemezve."
+
+msgid "publication.event.unpublished"
+msgstr "A beküldött anyag közzétételét visszavonták."
+
+msgid "publication.event.versionPublished"
+msgstr "Egy új verzió került közzétételre."
+
+msgid "publication.event.versionScheduled"
+msgstr "Egy új verzió került ütemezésre a kiadványhoz."
+
+msgid "publication.event.versionUnpublished"
+msgstr "Ez a verzió törölve lett a kiadványból."
+
+msgid "publication.invalidSubmission"
+msgstr "Erre a kiadványra vonatkozó beküldést nem található."
+
+msgid "publication.publish"
+msgstr "Közzététel"
+
+msgid "publication.publish.requirements"
+msgstr "A közzétételhez a következő követelményeknek kell megfelelni."
+
+msgid "publication.required.declined"
+msgstr "Az elutasított beküldést nem lehet közzétenni."
+
+msgid "publication.required.reviewStage"
+msgstr ""
+"A beküldött anyagnak az Olvasószerkesztés vagy Előkészítés szakaszában kell "
+"lennie a közzétételhez."
+
+msgid "submission.license.description"
+msgstr ""
+"A licenc automatikusan a {$licenseName} -ra/-re kerül beállításra, amikor ez "
+"közzétételre kerül."
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+"A szerzői jog közzétételkor automatikusan hozzárendelésre kerül: "
+"{$copyright}."
+
+msgid "submission.copyrightOther.description"
+msgstr "A közzétett beküldések szerzői jogait a következő félre ruházza át."
+
+msgid "publication.unpublish"
+msgstr "Közzététel visszavonása"
+
+msgid "publication.unpublish.confirm"
+msgstr "Biztos benne, hogy vissza akarja vonni a közzétételt?"
+
+msgid "publication.unschedule.confirm"
+msgstr ""
+"Biztos benne, hogy vissza akarja vonni az ütemezését ennek a kiadványnak?"
+
+msgid "publication.version.details"
+msgstr "A {$verzió} verzió kiadvány adatai"
+
+msgid "submission.queries.production"
+msgstr "Előkészítéssel kapcsolatos megbeszélések"
+
+msgid "publication.chapter.landingPage"
+msgstr "Fejezet oldalszám"
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+"Ezt a fejezetet egy saját oldalon jelenítse meg, és hivatkozzon erre az "
+"oldalra a könyv tartalomjegyzékéből."
+
+msgid "publication.publish.success"
+msgstr "Közzététel státusza sikeresen megváltozott."
+
+msgid "chapter.volume"
+msgstr "Kötet"
+
+msgid "submission.withoutChapter"
+msgstr "{$name} — Ez a fejezet nélkül"
+
+msgid "submission.chapterCreated"
+msgstr " — Fejezet létrehozva"
+
+msgid "chapter.pages"
+msgstr "Oldalak"
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr "Belső szakmai lektorálásra küldés"
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr ""
+"Ez a beküldés készen áll a belső szakmai lektorálásra való továbbküldéshez."
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr ""
+"{$editorName} továbbküldte ezt a beküldött anyagot a belső szakmai "
+"lektorálási szakaszba."
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr "Belső szakmai lektorálásra továbbküldve"
+
+#, fuzzy
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+"A {$title} című beküldést továbbküldték a belső szakmai lektorálási "
+"szakaszba."
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+"Küldjön egy e-mailt a szerzőknek, hogy tudassa velük, hogy a beküldött "
+"anyagot belső szakmai lektorálásra küldik. Ha lehetséges, tájékoztassa a "
+"szerzőket arról, hogy mennyi ideig tarthat a belső szakmai lektorálás "
+"folyamat, és mikorra várhatják, hogy a szerkesztők ismét jelentkeznek."
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr "Válassza ki a belső szakmai lektorálási szakaszba küldendő fájlokat."
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr ""
+"{$editorName} továbbküldte ezt a beküldést a külső szakmai lektorálási "
+"szakaszba."
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr "Külső szakmai lektorálásra továbbküldve"
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr ""
+"A {$title} című beküldést továbbküldték a külső szakmai lektorálási "
+"szakaszba."
+
+msgid "editor.submission.decision.backToReview"
+msgstr "Vissza szakmai lektorálásra"
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+"Vonja vissza a beküldött anyag elfogadásáról szóló döntést, és küldje vissza "
+"a szakmai lektorálás szakaszba."
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+"{$editorName} visszavonta a beküldött anyag elfogadásáról szóló döntést, és "
+"visszaküldte azt a szakmai lektorálás szakaszba."
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr "Vissza küldve szakmai lektorálásra"
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr ""
+"A(z) {$title} című beküldést visszaküldték a szakmai lektorálás szakaszba."
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+"Küldjön egy e-mailt a szerzőknek, hogy tudassa velük, hogy a beadványukat "
+"visszaküldik a szakmai lektorálás szakaszba. Adjanak magyarázatot arra, hogy "
+"miért született ez a döntés, és tájékoztassák a szerzőt arról, hogy milyen "
+"további szakmai lektorálásra kerül sor."
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+"Küldjön egy e-mailt a szerzőknek, hogy tudassa velük, hogy a beadványukat "
+"továbbítják a szakmai lektorálás szakaszba. Ha lehetséges, tájékoztassák a "
+"szerzőket arról, hogy mennyi ideig tarthat a szakértői véleményezési "
+"folyamat, és mikorra várhatják, hogy a szerkesztők ismét jelentkeznek."
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr "Válassza ki a szakmai lektorálás szakaszba küldendő fájlokat."
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr "Javaslat külső szakmai lektorálásra küldéshez"
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr ""
+"Javasolja, hogy ezt a beküldést küldjék a külső szakmai lektorálási "
+"szakaszba."
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+"{$editorName} javasolta, hogy ezt a beküldést küldjék el a külső bírálati "
+"szakaszba."
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+
+msgid "publication.chapter.licenseUrl"
+msgstr ""
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr ""
+
+msgid "submission.copyright.description"
+msgstr ""
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+
+msgid "submission.sectionNotFound"
+msgstr ""
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr ""
+
+msgid "submission.wizard.submitting.monograph"
+msgstr ""
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
diff --git a/locale/id/default.po b/locale/id/default.po
new file mode 100644
index 00000000000..8e8caff3a23
--- /dev/null
+++ b/locale/id/default.po
@@ -0,0 +1,129 @@
+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 "default.genres.appendix"
+msgstr ""
+
+msgid "default.genres.bibliography"
+msgstr ""
+
+msgid "default.genres.manuscript"
+msgstr ""
+
+msgid "default.genres.chapter"
+msgstr ""
+
+msgid "default.genres.glossary"
+msgstr ""
+
+msgid "default.genres.index"
+msgstr ""
+
+msgid "default.genres.preface"
+msgstr ""
+
+msgid "default.genres.prospectus"
+msgstr ""
+
+msgid "default.genres.table"
+msgstr ""
+
+msgid "default.genres.figure"
+msgstr ""
+
+msgid "default.genres.photo"
+msgstr ""
+
+msgid "default.genres.illustration"
+msgstr ""
+
+msgid "default.genres.other"
+msgstr ""
+
+msgid "default.groups.name.manager"
+msgstr ""
+
+msgid "default.groups.plural.manager"
+msgstr ""
+
+msgid "default.groups.abbrev.manager"
+msgstr ""
+
+msgid "default.groups.name.editor"
+msgstr ""
+
+msgid "default.groups.plural.editor"
+msgstr ""
+
+msgid "default.groups.abbrev.editor"
+msgstr ""
+
+msgid "default.groups.name.sectionEditor"
+msgstr ""
+
+msgid "default.groups.plural.sectionEditor"
+msgstr ""
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr ""
+
+msgid "default.groups.name.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr ""
+
+msgid "default.groups.name.chapterAuthor"
+msgstr ""
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr ""
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr ""
+
+msgid "default.groups.name.volumeEditor"
+msgstr ""
+
+msgid "default.groups.plural.volumeEditor"
+msgstr ""
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr ""
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+
+msgid "default.groups.name.externalReviewer"
+msgstr ""
+
+msgid "default.groups.plural.externalReviewer"
+msgstr ""
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr ""
diff --git a/locale/id/locale.po b/locale/id/locale.po
new file mode 100644
index 00000000000..be8daeeb2be
--- /dev/null
+++ b/locale/id/locale.po
@@ -0,0 +1,1455 @@
+# elpinowindy , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-08-02 17:58+0000\n"
+"Last-Translator: elpinowindy \n"
+"Language-Team: Indonesian \n"
+"Language: 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.13.1\n"
+
+msgid "common.payments"
+msgstr ""
+
+msgid "monograph.audience"
+msgstr ""
+
+msgid "monograph.audience.success"
+msgstr ""
+
+msgid "monograph.coverImage"
+msgstr ""
+
+msgid "monograph.audience.rangeQualifier"
+msgstr ""
+
+msgid "monograph.audience.rangeFrom"
+msgstr ""
+
+msgid "monograph.audience.rangeTo"
+msgstr ""
+
+msgid "monograph.audience.rangeExact"
+msgstr ""
+
+msgid "monograph.languages"
+msgstr ""
+
+msgid "monograph.publicationFormats"
+msgstr ""
+
+msgid "monograph.publicationFormat"
+msgstr ""
+
+msgid "monograph.publicationFormatDetails"
+msgstr ""
+
+msgid "monograph.miscellaneousDetails"
+msgstr ""
+
+msgid "monograph.carousel.publicationFormats"
+msgstr ""
+
+msgid "monograph.type"
+msgstr ""
+
+msgid "submission.pageProofs"
+msgstr ""
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+
+msgid "monograph.task.addNote"
+msgstr ""
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr ""
+
+msgid "monograph.publicationFormat.imprint"
+msgstr ""
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr ""
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr ""
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr ""
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr ""
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr ""
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr ""
+
+msgid "monograph.publicationFormat.price"
+msgstr ""
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr ""
+
+msgid "monograph.publicationFormat.priceType"
+msgstr ""
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr ""
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr ""
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr ""
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr ""
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr ""
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr ""
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr ""
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr ""
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr ""
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr ""
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr ""
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr ""
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr ""
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr ""
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr ""
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr ""
+
+msgid "monograph.publicationFormat.taxType"
+msgstr ""
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr ""
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr ""
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr ""
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+
+msgid "monograph.publicationFormat.openTab"
+msgstr ""
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr ""
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr ""
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr ""
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr ""
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr ""
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr ""
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.availability"
+msgstr ""
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr ""
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr ""
+
+msgid "grid.catalogEntry.proof"
+msgstr ""
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr ""
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr ""
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr ""
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr ""
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr ""
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.salesRights"
+msgstr ""
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr ""
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr ""
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr ""
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr ""
+
+msgid "grid.catalogEntry.countries"
+msgstr ""
+
+msgid "grid.catalogEntry.regions"
+msgstr ""
+
+msgid "grid.catalogEntry.included"
+msgstr ""
+
+msgid "grid.catalogEntry.excluded"
+msgstr ""
+
+msgid "grid.catalogEntry.markets"
+msgstr ""
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr ""
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr ""
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.dateValue"
+msgstr ""
+
+msgid "grid.catalogEntry.dateRole"
+msgstr ""
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr ""
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+
+msgid "grid.catalogEntry.representatives"
+msgstr ""
+
+msgid "grid.catalogEntry.representativeType"
+msgstr ""
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr ""
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr ""
+
+msgid "grid.catalogEntry.agent"
+msgstr ""
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+
+msgid "grid.catalogEntry.supplier"
+msgstr ""
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr ""
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr ""
+
+msgid "grid.catalogEntry.representativeName"
+msgstr ""
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr ""
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr ""
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr ""
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr ""
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr ""
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+
+msgid "grid.action.addRepresentative"
+msgstr ""
+
+msgid "grid.action.editRepresentative"
+msgstr ""
+
+msgid "grid.action.deleteRepresentative"
+msgstr ""
+
+msgid "spotlight"
+msgstr ""
+
+msgid "spotlight.spotlights"
+msgstr ""
+
+msgid "spotlight.noneExist"
+msgstr ""
+
+msgid "spotlight.title.homePage"
+msgstr ""
+
+msgid "spotlight.author"
+msgstr ""
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr ""
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr ""
+
+msgid "grid.content.spotlights.form.location"
+msgstr ""
+
+msgid "grid.content.spotlights.form.item"
+msgstr ""
+
+msgid "grid.content.spotlights.form.title"
+msgstr ""
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr ""
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr ""
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr ""
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr ""
+
+msgid "grid.action.editSpotlight"
+msgstr ""
+
+msgid "grid.action.deleteSpotlight"
+msgstr ""
+
+msgid "grid.action.addSpotlight"
+msgstr ""
+
+msgid "manager.series.open"
+msgstr ""
+
+msgid "manager.series.indexed"
+msgstr ""
+
+msgid "grid.libraryFiles.column.files"
+msgstr ""
+
+msgid "grid.action.catalogEntry"
+msgstr ""
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr ""
+
+msgid "grid.action.editFormat"
+msgstr ""
+
+msgid "grid.action.deleteFormat"
+msgstr ""
+
+msgid "grid.action.addFormat"
+msgstr ""
+
+msgid "grid.action.approveProof"
+msgstr ""
+
+msgid "grid.action.pageProofApproved"
+msgstr ""
+
+msgid "grid.action.newCatalogEntry"
+msgstr ""
+
+msgid "grid.action.publicCatalog"
+msgstr ""
+
+msgid "grid.action.feature"
+msgstr ""
+
+msgid "grid.action.featureMonograph"
+msgstr ""
+
+msgid "grid.action.releaseMonograph"
+msgstr ""
+
+msgid "grid.action.manageCategories"
+msgstr ""
+
+msgid "grid.action.manageSeries"
+msgstr ""
+
+msgid "grid.action.addCode"
+msgstr ""
+
+msgid "grid.action.editCode"
+msgstr ""
+
+msgid "grid.action.deleteCode"
+msgstr ""
+
+msgid "grid.action.addRights"
+msgstr ""
+
+msgid "grid.action.editRights"
+msgstr ""
+
+msgid "grid.action.deleteRights"
+msgstr ""
+
+msgid "grid.action.addMarket"
+msgstr ""
+
+msgid "grid.action.editMarket"
+msgstr ""
+
+msgid "grid.action.deleteMarket"
+msgstr ""
+
+msgid "grid.action.addDate"
+msgstr ""
+
+msgid "grid.action.editDate"
+msgstr ""
+
+msgid "grid.action.deleteDate"
+msgstr ""
+
+msgid "grid.action.createContext"
+msgstr ""
+
+msgid "grid.action.publicationFormatTab"
+msgstr ""
+
+msgid "grid.action.moreAnnouncements"
+msgstr ""
+
+msgid "grid.action.submissionEmail"
+msgstr ""
+
+msgid "grid.action.approveProofs"
+msgstr ""
+
+msgid "grid.action.proofApproved"
+msgstr ""
+
+msgid "grid.action.availableRepresentation"
+msgstr ""
+
+msgid "grid.action.formatAvailable"
+msgstr ""
+
+msgid "grid.reviewAttachments.add"
+msgstr ""
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr ""
+
+msgid "series.series"
+msgstr ""
+
+msgid "series.featured.description"
+msgstr ""
+
+msgid "series.path"
+msgstr ""
+
+msgid "catalog.manage"
+msgstr ""
+
+msgid "catalog.manage.newReleases"
+msgstr ""
+
+msgid "catalog.manage.category"
+msgstr ""
+
+msgid "catalog.manage.series"
+msgstr ""
+
+msgid "catalog.manage.series.issn"
+msgstr ""
+
+msgid "catalog.manage.series.issn.validation"
+msgstr ""
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr ""
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr ""
+
+msgid "catalog.manage.series.printIssn"
+msgstr ""
+
+msgid "catalog.selectSeries"
+msgstr ""
+
+msgid "catalog.selectCategory"
+msgstr ""
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr ""
+
+msgid "catalog.manage.newRelease"
+msgstr ""
+
+msgid "catalog.manage.manageSeries"
+msgstr ""
+
+msgid "catalog.manage.manageCategories"
+msgstr ""
+
+msgid "catalog.manage.noMonographs"
+msgstr ""
+
+msgid "catalog.manage.featured"
+msgstr ""
+
+msgid "catalog.manage.categoryFeatured"
+msgstr ""
+
+msgid "catalog.manage.seriesFeatured"
+msgstr ""
+
+msgid "catalog.manage.featuredSuccess"
+msgstr ""
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr ""
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr ""
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr ""
+
+msgid "catalog.manage.feature.newRelease"
+msgstr ""
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr ""
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr ""
+
+msgid "catalog.manage.nonOrderable"
+msgstr ""
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr ""
+
+msgid "catalog.manage.isFeatured"
+msgstr ""
+
+msgid "catalog.manage.isNotFeatured"
+msgstr ""
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr ""
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr ""
+
+msgid "catalog.manage.findSubmissions"
+msgstr ""
+
+msgid "catalog.noTitles"
+msgstr ""
+
+msgid "catalog.noTitlesNew"
+msgstr ""
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
+
+msgid "catalog.feature"
+msgstr ""
+
+msgid "catalog.featured"
+msgstr ""
+
+msgid "catalog.featuredBooks"
+msgstr ""
+
+msgid "catalog.foundTitleSearch"
+msgstr ""
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+
+msgid "catalog.category.heading"
+msgstr ""
+
+msgid "catalog.newReleases"
+msgstr ""
+
+msgid "catalog.dateAdded"
+msgstr ""
+
+msgid "catalog.publicationInfo"
+msgstr ""
+
+msgid "catalog.published"
+msgstr ""
+
+msgid "catalog.forthcoming"
+msgstr ""
+
+msgid "catalog.categories"
+msgstr ""
+
+msgid "catalog.parentCategory"
+msgstr ""
+
+msgid "catalog.category.subcategories"
+msgstr ""
+
+msgid "catalog.aboutTheAuthor"
+msgstr ""
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+
+msgid "catalog.sortBy"
+msgstr ""
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr ""
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr ""
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr ""
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr ""
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr ""
+
+msgid "catalog.viewableFile.title"
+msgstr ""
+
+msgid "catalog.viewableFile.return"
+msgstr ""
+
+msgid "submission.search"
+msgstr ""
+
+msgid "common.publication"
+msgstr ""
+
+msgid "common.publications"
+msgstr ""
+
+msgid "common.prefix"
+msgstr ""
+
+msgid "common.preview"
+msgstr ""
+
+msgid "common.feature"
+msgstr ""
+
+msgid "common.searchCatalog"
+msgstr ""
+
+msgid "common.moreInfo"
+msgstr ""
+
+msgid "common.listbuilder.completeForm"
+msgstr ""
+
+msgid "common.listbuilder.selectValidOption"
+msgstr ""
+
+msgid "common.listbuilder.itemExists"
+msgstr ""
+
+msgid "common.software"
+msgstr ""
+
+msgid "common.omp"
+msgstr ""
+
+msgid "common.homePageHeader.altText"
+msgstr ""
+
+msgid "navigation.catalog"
+msgstr ""
+
+msgid "navigation.competingInterestPolicy"
+msgstr ""
+
+msgid "navigation.catalog.allMonographs"
+msgstr ""
+
+msgid "navigation.catalog.manage"
+msgstr ""
+
+msgid "navigation.catalog.administration.short"
+msgstr ""
+
+msgid "navigation.catalog.administration"
+msgstr ""
+
+msgid "navigation.catalog.administration.categories"
+msgstr ""
+
+msgid "navigation.catalog.administration.series"
+msgstr ""
+
+msgid "navigation.infoForAuthors"
+msgstr ""
+
+msgid "navigation.infoForLibrarians"
+msgstr ""
+
+msgid "navigation.infoForAuthors.long"
+msgstr ""
+
+msgid "navigation.infoForLibrarians.long"
+msgstr ""
+
+msgid "navigation.newReleases"
+msgstr ""
+
+msgid "navigation.published"
+msgstr ""
+
+msgid "navigation.wizard"
+msgstr ""
+
+msgid "navigation.linksAndMedia"
+msgstr ""
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr ""
+
+msgid "navigation.skip.spotlights"
+msgstr ""
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr ""
+
+msgid "navigation.navigationMenus.series.description"
+msgstr ""
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr ""
+
+msgid "navigation.navigationMenus.category.description"
+msgstr ""
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr ""
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr ""
+
+msgid "context.contexts"
+msgstr ""
+
+msgid "context.context"
+msgstr "Penerbit"
+
+msgid "context.current"
+msgstr ""
+
+msgid "context.select"
+msgstr ""
+
+msgid "user.authorization.representationNotFound"
+msgstr ""
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr ""
+
+msgid "user.noRoles.submitMonograph"
+msgstr ""
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr ""
+
+msgid "user.noRoles.regReviewer"
+msgstr ""
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+
+msgid "user.reviewerPrompt"
+msgstr ""
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr ""
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+
+msgid "user.register.contextsPrompt"
+msgstr ""
+
+msgid "user.register.otherContextRoles"
+msgstr ""
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+
+msgid "user.role.manager"
+msgstr ""
+
+msgid "user.role.pressEditor"
+msgstr ""
+
+msgid "user.role.subEditor"
+msgstr ""
+
+msgid "user.role.copyeditor"
+msgstr ""
+
+msgid "user.role.proofreader"
+msgstr ""
+
+msgid "user.role.productionEditor"
+msgstr ""
+
+msgid "user.role.managers"
+msgstr ""
+
+msgid "user.role.subEditors"
+msgstr ""
+
+msgid "user.role.editors"
+msgstr ""
+
+msgid "user.role.copyeditors"
+msgstr ""
+
+msgid "user.role.proofreaders"
+msgstr ""
+
+msgid "user.role.productionEditors"
+msgstr ""
+
+msgid "user.register.selectContext"
+msgstr ""
+
+msgid "user.register.noContexts"
+msgstr ""
+
+msgid "user.register.privacyStatement"
+msgstr ""
+
+msgid "user.register.registrationDisabled"
+msgstr ""
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr ""
+
+msgid "user.register.readerDescription"
+msgstr ""
+
+msgid "user.register.authorDescription"
+msgstr ""
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr ""
+
+msgid "user.register.reviewerDescription"
+msgstr ""
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+
+msgid "user.register.form.userGroupRequired"
+msgstr ""
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+
+msgid "site.noPresses"
+msgstr ""
+
+msgid "site.pressView"
+msgstr ""
+
+msgid "about.pressContact"
+msgstr ""
+
+msgid "about.aboutContext"
+msgstr ""
+
+msgid "about.editorialTeam"
+msgstr ""
+
+msgid "about.editorialPolicies"
+msgstr ""
+
+msgid "about.focusAndScope"
+msgstr ""
+
+msgid "about.seriesPolicies"
+msgstr ""
+
+msgid "about.submissions"
+msgstr ""
+
+msgid "about.onlineSubmissions"
+msgstr ""
+
+msgid "about.onlineSubmissions.login"
+msgstr ""
+
+msgid "about.onlineSubmissions.register"
+msgstr ""
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr ""
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr ""
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr ""
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr ""
+
+msgid "about.authorGuidelines"
+msgstr ""
+
+msgid "about.submissionPreparationChecklist"
+msgstr ""
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+
+msgid "about.copyrightNotice"
+msgstr ""
+
+msgid "about.privacyStatement"
+msgstr ""
+
+msgid "about.reviewPolicy"
+msgstr ""
+
+msgid "about.publicationFrequency"
+msgstr ""
+
+msgid "about.openAccessPolicy"
+msgstr ""
+
+msgid "about.pressSponsorship"
+msgstr ""
+
+msgid "about.aboutThisPublishingSystem"
+msgstr ""
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr ""
+
+msgid "about.aboutSoftware"
+msgstr ""
+
+msgid "about.aboutOMPPress"
+msgstr ""
+
+msgid "about.aboutOMPSite"
+msgstr ""
+
+msgid "help.searchReturnResults"
+msgstr ""
+
+msgid "help.goToEditPage"
+msgstr ""
+
+msgid "installer.appInstallation"
+msgstr ""
+
+msgid "installer.ompUpgrade"
+msgstr ""
+
+msgid "installer.installApplication"
+msgstr ""
+
+msgid "installer.updatingInstructions"
+msgstr ""
+
+msgid "installer.installationInstructions"
+msgstr ""
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr ""
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+
+msgid "installer.allowFileUploads"
+msgstr ""
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+
+msgid "installer.localeInstructions"
+msgstr ""
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+
+msgid "installer.upgradeApplication"
+msgstr ""
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+
+#, fuzzy
+msgid "installer.installationComplete"
+msgstr ""
+
+#, fuzzy
+msgid "installer.upgradeComplete"
+msgstr ""
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+
+msgid "log.editor.decision"
+msgstr ""
+
+msgid "log.editor.recommendation"
+msgstr ""
+
+msgid "log.editor.archived"
+msgstr ""
+
+msgid "log.editor.restored"
+msgstr ""
+
+msgid "log.editor.editorAssigned"
+msgstr ""
+
+msgid "log.proofread.assign"
+msgstr ""
+
+msgid "log.proofread.complete"
+msgstr ""
+
+msgid "log.imported"
+msgstr ""
+
+msgid "notification.addedIdentificationCode"
+msgstr ""
+
+msgid "notification.editedIdentificationCode"
+msgstr ""
+
+msgid "notification.removedIdentificationCode"
+msgstr ""
+
+msgid "notification.addedPublicationDate"
+msgstr ""
+
+msgid "notification.editedPublicationDate"
+msgstr ""
+
+msgid "notification.removedPublicationDate"
+msgstr ""
+
+msgid "notification.addedPublicationFormat"
+msgstr ""
+
+msgid "notification.editedPublicationFormat"
+msgstr ""
+
+msgid "notification.removedPublicationFormat"
+msgstr ""
+
+msgid "notification.addedSalesRights"
+msgstr ""
+
+msgid "notification.editedSalesRights"
+msgstr ""
+
+msgid "notification.removedSalesRights"
+msgstr ""
+
+msgid "notification.addedRepresentative"
+msgstr ""
+
+msgid "notification.editedRepresentative"
+msgstr ""
+
+msgid "notification.removedRepresentative"
+msgstr ""
+
+msgid "notification.addedMarket"
+msgstr ""
+
+msgid "notification.editedMarket"
+msgstr ""
+
+msgid "notification.removedMarket"
+msgstr ""
+
+msgid "notification.addedSpotlight"
+msgstr ""
+
+msgid "notification.editedSpotlight"
+msgstr ""
+
+msgid "notification.removedSpotlight"
+msgstr ""
+
+msgid "notification.savedCatalogMetadata"
+msgstr ""
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr ""
+
+msgid "notification.proofsApproved"
+msgstr ""
+
+msgid "notification.removedSubmission"
+msgstr ""
+
+msgid "notification.type.submissionSubmitted"
+msgstr ""
+
+msgid "notification.type.editing"
+msgstr ""
+
+msgid "notification.type.reviewing"
+msgstr ""
+
+msgid "notification.type.site"
+msgstr ""
+
+msgid "notification.type.submissions"
+msgstr ""
+
+msgid "notification.type.userComment"
+msgstr ""
+
+msgid "notification.type.public"
+msgstr ""
+
+msgid "notification.type.editorAssignmentTask"
+msgstr ""
+
+msgid "notification.type.copyeditorRequest"
+msgstr ""
+
+msgid "notification.type.layouteditorRequest"
+msgstr ""
+
+msgid "notification.type.indexRequest"
+msgstr ""
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr ""
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr ""
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr ""
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+
+msgid "notification.type.visitCatalogTitle"
+msgstr ""
+
+msgid "notification.type.visitCatalog"
+msgstr ""
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr ""
+
+msgid "user.authorization.monographAuthor"
+msgstr ""
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+
+msgid "user.authorization.monographFile"
+msgstr ""
+
+msgid "user.authorization.invalidMonograph"
+msgstr ""
+
+msgid "user.authorization.noContext"
+msgstr ""
+
+msgid "user.authorization.seriesAssignment"
+msgstr ""
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr ""
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+
+msgid "payment.directSales"
+msgstr ""
+
+msgid "payment.directSales.price"
+msgstr ""
+
+msgid "payment.directSales.availability"
+msgstr ""
+
+msgid "payment.directSales.catalog"
+msgstr ""
+
+msgid "payment.directSales.approved"
+msgstr ""
+
+msgid "payment.directSales.priceCurrency"
+msgstr ""
+
+msgid "payment.directSales.numericOnly"
+msgstr ""
+
+msgid "payment.directSales.directSales"
+msgstr ""
+
+msgid "payment.directSales.amount"
+msgstr ""
+
+msgid "payment.directSales.notAvailable"
+msgstr ""
+
+msgid "payment.directSales.notSet"
+msgstr ""
+
+msgid "payment.directSales.openAccess"
+msgstr ""
+
+msgid "payment.directSales.price.description"
+msgstr ""
+
+msgid "payment.directSales.validPriceRequired"
+msgstr ""
+
+msgid "payment.directSales.purchase"
+msgstr ""
+
+msgid "payment.directSales.download"
+msgstr ""
+
+msgid "payment.directSales.monograph.name"
+msgstr ""
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+
+msgid "rt.metadata.pkp.dctype"
+msgstr ""
+
+msgid "submission.pdf.download"
+msgstr ""
+
+msgid "user.profile.form.showOtherContexts"
+msgstr ""
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr ""
+
+msgid "submission.round"
+msgstr ""
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr ""
+
+msgid "catalog.coverImageTitle"
+msgstr ""
+
+msgid "grid.catalogEntry.chapters"
+msgstr ""
+
+msgid "search.results.orderBy.article"
+msgstr ""
+
+msgid "search.results.orderBy.author"
+msgstr ""
+
+msgid "search.results.orderBy.date"
+msgstr ""
+
+msgid "search.results.orderBy.monograph"
+msgstr ""
+
+msgid "search.results.orderBy.press"
+msgstr ""
+
+msgid "search.results.orderBy.popularityAll"
+msgstr ""
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr ""
+
+msgid "search.results.orderBy.relevance"
+msgstr ""
+
+msgid "search.results.orderDir.asc"
+msgstr ""
+
+msgid "search.results.orderDir.desc"
+msgstr ""
+
+msgid "section.section"
+msgstr ""
diff --git a/locale/id/manager.po b/locale/id/manager.po
new file mode 100644
index 00000000000..683e5af04b3
--- /dev/null
+++ b/locale/id/manager.po
@@ -0,0 +1,42 @@
+# elpinowindy , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-08-02 17:58+0000\n"
+"Last-Translator: elpinowindy \n"
+"Language-Team: Indonesian \n"
+"Language: 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.13.1\n"
+
+msgid "manager.system.readingTools"
+msgstr "Alat Baca"
+
+msgid "manager.setup.announcements"
+msgstr "Pengumuman"
+
+msgid "manager.setup.announcements.success"
+msgstr "Pengaturan pengumuman telah diperbarui."
+
+msgid "manager.system.payments"
+msgstr "Pembayaran"
+
+msgid "manager.pressManagement"
+msgstr "Manajemen Penerbitan"
+
+msgid "manager.setup.aboutItemContent"
+msgstr "Konten"
+
+msgid "manager.setup.information.forReaders"
+msgstr "Untuk Pembaca"
+
+msgid "manager.setup.information.description"
+msgstr ""
+"Deskripsi singkat penerbit untuk pustakawan dan calon penulis dan pembaca. "
+"Ini tersedia di bilah sisi situs jika blok Informasi telah ditambahkan."
+
+msgid "manager.system.reviewForms"
+msgstr "Form Tinjauan"
diff --git a/locale/id/submission.po b/locale/id/submission.po
new file mode 100644
index 00000000000..b95e54279c9
--- /dev/null
+++ b/locale/id/submission.po
@@ -0,0 +1,548 @@
+msgid "submission.upload.selectComponent"
+msgstr ""
+
+msgid "submission.title"
+msgstr ""
+
+msgid "submission.select"
+msgstr ""
+
+msgid "submission.synopsis"
+msgstr ""
+
+msgid "submission.workflowType"
+msgstr ""
+
+msgid "submission.workflowType.description"
+msgstr ""
+
+msgid "submission.workflowType.editedVolume.label"
+msgstr ""
+
+msgid "submission.workflowType.editedVolume"
+msgstr ""
+
+msgid "submission.workflowType.authoredWork"
+msgstr ""
+
+msgid "submission.workflowType.change"
+msgstr ""
+
+msgid "submission.editorName"
+msgstr ""
+
+msgid "submission.monograph"
+msgstr ""
+
+msgid "submission.published"
+msgstr ""
+
+msgid "submission.fairCopy"
+msgstr ""
+
+msgid "submission.authorListSeparator"
+msgstr ""
+
+msgid "submission.artwork.permissions"
+msgstr ""
+
+msgid "submission.chapter"
+msgstr ""
+
+msgid "submission.chapters"
+msgstr ""
+
+msgid "submission.chapter.addChapter"
+msgstr ""
+
+msgid "submission.chapter.editChapter"
+msgstr ""
+
+msgid "submission.chapter.pages"
+msgstr ""
+
+msgid "submission.copyedit"
+msgstr ""
+
+msgid "submission.publicationFormats"
+msgstr ""
+
+msgid "submission.proofs"
+msgstr ""
+
+msgid "submission.download"
+msgstr ""
+
+msgid "submission.sharing"
+msgstr ""
+
+msgid "manuscript.submission"
+msgstr ""
+
+msgid "submission.round"
+msgstr ""
+
+msgid "submissions.queuedReview"
+msgstr ""
+
+msgid "manuscript.submissions"
+msgstr ""
+
+msgid "submission.metadata"
+msgstr ""
+
+msgid "submission.supportingAgencies"
+msgstr ""
+
+msgid "grid.action.addChapter"
+msgstr ""
+
+msgid "grid.action.editChapter"
+msgstr ""
+
+msgid "grid.action.deleteChapter"
+msgstr ""
+
+msgid "submission.submit"
+msgstr ""
+
+msgid "submission.submit.newSubmissionMultiple"
+msgstr ""
+
+msgid "submission.submit.newSubmissionSingle"
+msgstr ""
+
+msgid "submission.submit.upload"
+msgstr ""
+
+msgid "author.volumeEditor"
+msgstr ""
+
+msgid "author.isVolumeEditor"
+msgstr ""
+
+msgid "submission.submit.seriesPosition"
+msgstr ""
+
+msgid "submission.submit.seriesPosition.description"
+msgstr ""
+
+msgid "submission.submit.privacyStatement"
+msgstr ""
+
+msgid "submission.submit.contributorRole"
+msgstr ""
+
+msgid "submission.submit.submissionFile"
+msgstr ""
+
+msgid "submission.submit.prepare"
+msgstr ""
+
+msgid "submission.submit.catalog"
+msgstr ""
+
+msgid "submission.submit.metadata"
+msgstr ""
+
+msgid "submission.submit.finishingUp"
+msgstr ""
+
+msgid "submission.submit.confirmation"
+msgstr ""
+
+msgid "submission.submit.nextSteps"
+msgstr ""
+
+msgid "submission.submit.coverNote"
+msgstr ""
+
+msgid "submission.submit.generalInformation"
+msgstr ""
+
+msgid "submission.submit.whatNext.description"
+msgstr ""
+
+msgid "submission.submit.checklistErrors"
+msgstr ""
+
+msgid "submission.submit.placement"
+msgstr ""
+
+msgid "submission.submit.userGroup"
+msgstr ""
+
+msgid "submission.submit.noContext"
+msgstr ""
+
+msgid "grid.chapters.title"
+msgstr ""
+
+msgid "grid.copyediting.deleteCopyeditorResponse"
+msgstr ""
+
+msgid "submission.complete"
+msgstr ""
+
+msgid "submission.incomplete"
+msgstr ""
+
+msgid "submission.editCatalogEntry"
+msgstr ""
+
+msgid "submission.catalogEntry.new"
+msgstr ""
+
+msgid "submission.catalogEntry.add"
+msgstr ""
+
+msgid "submission.catalogEntry.select"
+msgstr ""
+
+msgid "submission.catalogEntry.selectionMissing"
+msgstr ""
+
+msgid "submission.catalogEntry.confirm"
+msgstr ""
+
+msgid "submission.catalogEntry.confirm.required"
+msgstr ""
+
+msgid "submission.catalogEntry.isAvailable"
+msgstr ""
+
+msgid "submission.catalogEntry.viewSubmission"
+msgstr ""
+
+msgid "submission.catalogEntry.chapterPublicationDates"
+msgstr ""
+
+msgid "submission.catalogEntry.disableChapterPublicationDates"
+msgstr ""
+
+msgid "submission.catalogEntry.enableChapterPublicationDates"
+msgstr ""
+
+msgid "submission.catalogEntry.monographMetadata"
+msgstr ""
+
+msgid "submission.catalogEntry.catalogMetadata"
+msgstr ""
+
+msgid "submission.catalogEntry.publicationMetadata"
+msgstr ""
+
+msgid "submission.event.metadataPublished"
+msgstr ""
+
+msgid "submission.event.metadataUnpublished"
+msgstr ""
+
+msgid "submission.event.publicationFormatMadeAvailable"
+msgstr ""
+
+msgid "submission.event.publicationFormatMadeUnavailable"
+msgstr ""
+
+msgid "submission.event.publicationFormatPublished"
+msgstr ""
+
+msgid "submission.event.publicationFormatUnpublished"
+msgstr ""
+
+msgid "submission.event.catalogMetadataUpdated"
+msgstr ""
+
+msgid "submission.event.publicationMetadataUpdated"
+msgstr ""
+
+msgid "submission.event.publicationFormatCreated"
+msgstr ""
+
+msgid "submission.event.publicationFormatRemoved"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview"
+msgstr ""
+
+msgid "workflow.review.externalReview"
+msgstr ""
+
+msgid "submission.upload.fileContents"
+msgstr ""
+
+msgid "submission.dependentFiles"
+msgstr ""
+
+msgid "submission.metadataDescription"
+msgstr ""
+
+msgid "section.any"
+msgstr ""
+
+msgid "submission.list.monographs"
+msgstr ""
+
+msgid "submission.list.countMonographs"
+msgstr ""
+
+msgid "submission.list.itemsOfTotalMonographs"
+msgstr ""
+
+msgid "submission.list.orderFeatures"
+msgstr ""
+
+msgid "submission.list.orderingFeatures"
+msgstr ""
+
+msgid "submission.list.orderingFeaturesSection"
+msgstr ""
+
+msgid "submission.list.saveFeatureOrder"
+msgstr ""
+
+msgid "submission.list.viewEntry"
+msgstr ""
+
+msgid "catalog.browseTitles"
+msgstr ""
+
+msgid "publication.catalogEntry"
+msgstr ""
+
+msgid "publication.catalogEntry.success"
+msgstr ""
+
+msgid "publication.invalidSeries"
+msgstr ""
+
+msgid "publication.inactiveSeries"
+msgstr ""
+
+msgid "publication.required.issue"
+msgstr ""
+
+msgid "publication.publishedIn"
+msgstr ""
+
+msgid "publication.publish.confirmation"
+msgstr ""
+
+msgid "publication.scheduledIn"
+msgstr ""
+
+msgid "submission.publication"
+msgstr "Publikasi"
+
+msgid "publication.status.published"
+msgstr "Diterbitkan"
+
+msgid "submission.status.scheduled"
+msgstr "Dijadwalkan"
+
+msgid "publication.status.unscheduled"
+msgstr "Tidak dijadwalkan"
+
+msgid "submission.publications"
+msgstr "Publikasi"
+
+msgid "publication.copyrightYearBasis.issueDescription"
+msgstr ""
+"Tahunhak cipta akan ditetapkan secara otomatis jika naskah ini diterbitkan "
+"pada satu nomor terbitan."
+
+msgid "publication.copyrightYearBasis.submissionDescription"
+msgstr ""
+"Tahunhak cipta akan ditetapkan secara otomatis berdasarkan tanggal publikasi."
+
+msgid "publication.datePublished"
+msgstr "Tanggal DIterbitkan"
+
+msgid "publication.editDisabled"
+msgstr "Versi ini telah diterbitkan dan tidak dapat disunting."
+
+msgid "publication.event.published"
+msgstr "Naskah telah diterbitkan."
+
+msgid "publication.event.scheduled"
+msgstr "Naskah telah dijadwalkan untuk terbit."
+
+msgid "publication.event.unpublished"
+msgstr "Naskah tidak diterbitkan."
+
+msgid "publication.event.versionPublished"
+msgstr "Versi baru telah diterbitkan."
+
+msgid "publication.event.versionScheduled"
+msgstr "Versi baru telah dijadwalkan untuk terbit."
+
+msgid "publication.event.versionUnpublished"
+msgstr "Sebuah versi dihapus dari publikasi."
+
+msgid "publication.invalidSubmission"
+msgstr "Naskah publikasi ini tidak dapat ditemukan."
+
+msgid "publication.publish"
+msgstr "Terbitkan"
+
+msgid "publication.publish.requirements"
+msgstr "Persyaratan berikut harus dipenuhi sebelum naskah diterbitkan."
+
+msgid "publication.required.declined"
+msgstr "Naskah yang ditolak tidak bisa diterbitkan."
+
+msgid "publication.required.reviewStage"
+msgstr ""
+"Naskah harus melewati tahap Copyediting atau Produksi sebelum dapat "
+"diterbitkan."
+
+msgid "submission.license.description"
+msgstr ""
+"Lisensi akan ditetapkan otomatis pada {$licenseName} ketika naskah ini diterbitkan."
+
+msgid "submission.copyrightHolder.description"
+msgstr ""
+"Hak cipta akan ditentukan secara otomatis pada {$copyright} ketika naskah "
+"ini diterbitkan."
+
+msgid "submission.copyrightOther.description"
+msgstr "Gunakan hak cipta untuk naskah terbitan pada pihak berikut."
+
+msgid "publication.unpublish"
+msgstr "Tidak diterbitkan"
+
+msgid "publication.unpublish.confirm"
+msgstr "Yakin tidak ingin menerbitkan naskah ini?"
+
+msgid "publication.unschedule.confirm"
+msgstr "Yakin tidak ingin menjadwalkan naskah ini untuk diterbitkan?"
+
+msgid "publication.version.details"
+msgstr "PRincian publikasi naskah versi {$version}"
+
+msgid "submission.queries.production"
+msgstr "Diskusi Produksi"
+
+msgid "publication.chapter.landingPage"
+msgstr ""
+
+msgid "publication.chapter.hasLandingPage"
+msgstr ""
+
+msgid "publication.publish.success"
+msgstr ""
+
+msgid "chapter.volume"
+msgstr ""
+
+msgid "submission.withoutChapter"
+msgstr ""
+
+msgid "submission.chapterCreated"
+msgstr ""
+
+msgid "chapter.pages"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.sendInternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.internalReview"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.log"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.completed.description"
+msgstr ""
+
+msgid "editor.submission.decision.backToReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.sendExternalReview.notifyAuthorsDescription"
+msgstr ""
+
+msgid "editor.submission.decision.promoteFiles.externalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.description"
+msgstr ""
+
+msgid "editor.submission.recommend.sendExternalReview.log"
+msgstr ""
+
+msgid "doi.submission.incorrectContext"
+msgstr ""
+
+msgid "publication.chapter.licenseUrl"
+msgstr ""
+
+msgid "publication.chapterDefaultLicenseURL"
+msgstr ""
+
+msgid "submission.copyright.description"
+msgstr ""
+
+msgid "submission.wizard.notAllowed.description"
+msgstr ""
+
+msgid "submission.wizard.sectionClosed.message"
+msgstr ""
+
+msgid "submission.sectionNotFound"
+msgstr ""
+
+msgid "submission.sectionRestrictedToEditors"
+msgstr ""
+
+msgid "submission.wizard.submitting.monograph"
+msgstr ""
+
+msgid "submission.wizard.submitting.monographInLanguage"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolume"
+msgstr ""
+
+msgid "submission.wizard.submitting.editedVolumeInLanguage"
+msgstr ""
+
+msgid "submission.wizard.chapters.description"
+msgstr ""
diff --git a/locale/id_ID/default.po b/locale/id_ID/default.po
deleted file mode 100644
index 4f8f6e6dec5..00000000000
--- a/locale/id_ID/default.po
+++ /dev/null
@@ -1,2 +0,0 @@
-msgid ""
-msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit"
\ No newline at end of file
diff --git a/locale/id_ID/locale.po b/locale/id_ID/locale.po
deleted file mode 100644
index 4f8f6e6dec5..00000000000
--- a/locale/id_ID/locale.po
+++ /dev/null
@@ -1,2 +0,0 @@
-msgid ""
-msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit"
\ No newline at end of file
diff --git a/locale/id_ID/submission.po b/locale/id_ID/submission.po
deleted file mode 100644
index 06e025c8530..00000000000
--- a/locale/id_ID/submission.po
+++ /dev/null
@@ -1,93 +0,0 @@
-msgid "submission.publication"
-msgstr "Publikasi"
-
-msgid "publication.status.published"
-msgstr "Diterbitkan"
-
-msgid "submission.status.scheduled"
-msgstr "Dijadwalkan"
-
-msgid "publication.status.unscheduled"
-msgstr "Tidak dijadwalkan"
-
-msgid "submission.publications"
-msgstr "Publikasi"
-
-msgid "publication.copyrightYearBasis.issueDescription"
-msgstr ""
-"Tahunhak cipta akan ditetapkan secara otomatis jika naskah ini diterbitkan "
-"pada satu nomor terbitan."
-
-msgid "publication.copyrightYearBasis.submissionDescription"
-msgstr ""
-"Tahunhak cipta akan ditetapkan secara otomatis berdasarkan tanggal publikasi."
-
-msgid "publication.datePublished"
-msgstr "Tanggal DIterbitkan"
-
-msgid "publication.editDisabled"
-msgstr "Versi ini telah diterbitkan dan tidak dapat disunting."
-
-msgid "publication.event.published"
-msgstr "Naskah telah diterbitkan."
-
-msgid "publication.event.scheduled"
-msgstr "Naskah telah dijadwalkan untuk terbit."
-
-msgid "publication.event.unpublished"
-msgstr "Naskah tidak diterbitkan."
-
-msgid "publication.event.versionPublished"
-msgstr "Versi baru telah diterbitkan."
-
-msgid "publication.event.versionScheduled"
-msgstr "Versi baru telah dijadwalkan untuk terbit."
-
-msgid "publication.event.versionUnpublished"
-msgstr "Sebuah versi dihapus dari publikasi."
-
-msgid "publication.invalidSubmission"
-msgstr "Naskah publikasi ini tidak dapat ditemukan."
-
-msgid "publication.publish"
-msgstr "Terbitkan"
-
-msgid "publication.publish.requirements"
-msgstr "Persyaratan berikut harus dipenuhi sebelum naskah diterbitkan."
-
-msgid "publication.required.declined"
-msgstr "Naskah yang ditolak tidak bisa diterbitkan."
-
-msgid "publication.required.reviewStage"
-msgstr ""
-"Naskah harus melewati tahap Copyediting atau Produksi sebelum dapat "
-"diterbitkan."
-
-msgid "submission.license.description"
-msgstr ""
-"Lisensi akan ditetapkan otomatis pada {$licenseName} ketika naskah ini diterbitkan."
-
-msgid "submission.copyrightHolder.description"
-msgstr ""
-"Hak cipta akan ditentukan secara otomatis pada {$copyright} ketika naskah "
-"ini diterbitkan."
-
-msgid "submission.copyrightOther.description"
-msgstr "Gunakan hak cipta untuk naskah terbitan pada pihak berikut."
-
-msgid "publication.unpublish"
-msgstr "Tidak diterbitkan"
-
-msgid "publication.unpublish.confirm"
-msgstr "Yakin tidak ingin menerbitkan naskah ini?"
-
-msgid "publication.unschedule.confirm"
-msgstr "Yakin tidak ingin menjadwalkan naskah ini untuk diterbitkan?"
-
-msgid "publication.version.details"
-msgstr "PRincian publikasi naskah versi {$version}"
-
-msgid "submission.queries.production"
-msgstr "Diskusi Produksi"
-
diff --git a/locale/it_IT/ONIX_BookProduct_CodeLists.xsd b/locale/it/ONIX_BookProduct_CodeLists.xsd
similarity index 100%
rename from locale/it_IT/ONIX_BookProduct_CodeLists.xsd
rename to locale/it/ONIX_BookProduct_CodeLists.xsd
diff --git a/locale/it/admin.po b/locale/it/admin.po
new file mode 100644
index 00000000000..322061f3960
--- /dev/null
+++ b/locale/it/admin.po
@@ -0,0 +1,147 @@
+# Michele Tutone , 2023.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2023-04-05 08:48+0000\n"
+"Last-Translator: Michele Tutone \n"
+"Language-Team: Italian \n"
+"Language: 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 4.13.1\n"
+
+msgid "admin.hostedContexts"
+msgstr "Press registrate"
+
+msgid "admin.settings.appearance.success"
+msgstr ""
+"Le impostazioni di visualizzazione del sito sono state aggiornate con "
+"successo."
+
+msgid "admin.settings.config.success"
+msgstr "Le impostazioni del sito sono state aggiornate con successo."
+
+msgid "admin.settings.info.success"
+msgstr "Le informazioni del sito sono state aggiornate con successo."
+
+msgid "admin.settings.redirect"
+msgstr "Redirect"
+
+msgid "admin.settings.noPressRedirect"
+msgstr "Nessun redirect"
+
+msgid "admin.languages.primaryLocaleInstructions"
+msgstr "Questa sarà la lingua di default del sito e di ogni press installata."
+
+msgid "admin.locale.maybeIncomplete"
+msgstr "* Le lingue contrassegnate potrebbero essere incomplete."
+
+msgid "admin.languages.confirmUninstall"
+msgstr ""
+"Sei sicuro di voler disinstallare questa lingua? Questa scelta si "
+"ripercuoterà su tutte le press che stanno attualmente usando questa lingua."
+
+msgid "admin.languages.installNewLocalesInstructions"
+msgstr ""
+"Installa tutte le lingue che vuoi siano supportate dal sistema. Le lingue "
+"devono essere installate prima di poterle usare. Consulta la documentazione "
+"di OMP per informazioni sull'aggiunta di nuove lingue non ancora supportate."
+
+msgid "admin.languages.confirmDisable"
+msgstr ""
+"Sei sicuro di voler disabilitare questa lingua? Questa scelta si "
+"ripercuoterà su tutte le press che stanno attualmente usando questa lingua."
+
+msgid "admin.systemVersion"
+msgstr "Versione di OMP"
+
+msgid "admin.systemConfiguration"
+msgstr "Configurazione di OMP"
+
+msgid "admin.presses.noneCreated"
+msgstr "Nessuna press è stata creata."
+
+msgid "admin.contexts.create"
+msgstr "Crea una press"
+
+msgid "admin.contexts.form.pathRequired"
+msgstr "È obbligatorio un path."
+
+msgid "admin.contexts.form.pathExists"
+msgstr "Il path selezionato è già in uso da un'altra press."
+
+msgid "admin.contexts.form.primaryLocaleNotSupported"
+msgstr "La lingua principale dev'essere tra quelle supportate dalla press."
+
+msgid "admin.contexts.form.create.success"
+msgstr "{$name} è stato creato con successo."
+
+msgid "admin.contexts.form.edit.success"
+msgstr "{$name} è stato modificato con successo."
+
+msgid "admin.contexts.contextDescription"
+msgstr "Descrizione della press"
+
+msgid "admin.presses.addPress"
+msgstr "Aggiungi una press"
+
+msgid "admin.settings.disableBulkEmailRoles.description"
+msgstr ""
+"Il press manager non sarà abilitato all'invio massivo delle email per i "
+"ruoli qui selezionati. Usa questa impostazione per limitare il possibile "
+"abuso della funzione. Ad esempio può essere più sicuro disabilitare gli "
+"invii massivi ai lettori, autori o altri gruppi di utenze che non hanno dato "
+"il consenso a ricevere comunicazioni.
L'invio massivo di email può "
+"essere disabilitato del tutto per questa press da Amministratore> Impostazioni del sito."
+
+msgid "admin.settings.redirectInstructions"
+msgstr ""
+"Il sito principale reindirizzerà a questa press. Può essere utile se sul "
+"sito è installata un'unica press, ad esempio."
+
+msgid "admin.presses.pressSettings"
+msgstr "Impostazioni della press"
+
+msgid "admin.languages.supportedLocalesInstructions"
+msgstr ""
+"Seleziona le lingue che vuoi siano disponibili per l'intero sito. Le lingue "
+"selezionate saranno disponibili per tutte le press installate sul sito e "
+"appariranno in un menu su ogni pagina del sito (le impostazioni della "
+"singola press possono modificare questo comportamento). Se qui si seleziona "
+"una sola lingua, il menu di scelta non apparirà e le impostazioni relative "
+"alle lingue delle singole press non saranno modificabili."
+
+msgid "admin.contexts.form.titleRequired"
+msgstr "È obbligatorio un titolo."
+
+msgid "admin.contexts.form.pathAlphaNumeric"
+msgstr ""
+"Il path può includere solo lettere, numeri e i caratteri _ e -. È "
+"obbligatorio che inizi e finisca con una lettera o numero."
+
+msgid "admin.overwriteConfigFileInstructions"
+msgstr ""
+"NOTE!
\n"
+"Il sistema non può sovrascrivere automaticamente il file di "
+"configurazione. Per applicare le modifiche apri config.inc.php in "
+"un text editor e sostituisci il suo contenuto con il testo che trovi qui di "
+"seguito.
"
+
+msgid "admin.settings.enableBulkEmails.description"
+msgstr ""
+"Seleziona le press che dovranno essere abilitati ad invii massivi di email. "
+"Quando questa funzione è abilitata, il press manager potrà inviare email a "
+"tutti gli utenti registrati della rivista.
Un abuso di questa "
+"funzione con l'invio di email non richieste potrebbe costituire violazione "
+"delle normative sulla privacy in alcuni paesi e riflettersi con il blocco "
+"del servizio. Prima di abilitare questa funzione si suggerisce un'accurata "
+"valutazione e definizione del suo uso appropriato.
Ulteriori "
+"restrizioni di questa funzione possono essere abilitate per ciascuna rivista "
+"nella configurazione iniziale (setting wizard) nella sezione Press registrate."
+
+#, fuzzy
+msgid "admin.settings.statistics.sushiPlatform.isSiteSushiPlatform"
+msgstr "Indica il sito come piattaforma per tutte le riviste."
diff --git a/locale/it/api.po b/locale/it/api.po
new file mode 100644
index 00000000000..867b1f51a1a
--- /dev/null
+++ b/locale/it/api.po
@@ -0,0 +1,45 @@
+# Fulvio Delle Donne , 2022.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-08-09 10:00+0000\n"
+"Last-Translator: Fulvio Delle Donne \n"
+"Language-Team: Italian \n"
+"Language: 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 4.13.1\n"
+
+msgid "api.submissions.400.submissionIdsRequired"
+msgstr ""
+"È necessario fornire uno o più ID di invio per essere aggiunti al catalogo."
+
+msgid "api.submissions.400.submissionsNotFound"
+msgstr "Non è stato possibile trovare una o più proposte specificate."
+
+msgid "api.submissions.400.wrongContext"
+msgstr "La proposta cercata non è presente in questa Casa Editrice."
+
+msgid "api.emails.403.disabled"
+msgstr ""
+"La funzione di notifica via email non è stata attivata per questa Casa "
+"Editrice."
+
+msgid "api.emailTemplates.403.notAllowedChangeContext"
+msgstr ""
+"Non sei autorizzato a spostare questo modello di email in un'altra Casa "
+"Editrice."
+
+msgid "api.publications.403.contextsDidNotMatch"
+msgstr ""
+"La pubblicazione che hai cercato non è disponibile in questa Casa Editrice."
+
+msgid "api.publications.403.submissionsDidNotMatch"
+msgstr "La pubblicazione che hai cercato non è in questa proposta."
+
+msgid "api.submissions.403.cantChangeContext"
+msgstr "Non è possibile modificare la Casa Editrice di una proposta."
+
+msgid "api.submission.400.inactiveSection"
+msgstr ""
diff --git a/locale/it/author.po b/locale/it/author.po
new file mode 100644
index 00000000000..83f32f91c17
--- /dev/null
+++ b/locale/it/author.po
@@ -0,0 +1,19 @@
+# Fulvio Delle Donne , 2022.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-08-08 04:51+0000\n"
+"Last-Translator: Fulvio Delle Donne \n"
+"Language-Team: Italian "
+"\n"
+"Language: 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 4.13.1\n"
+
+msgid "author.submit.notAccepting"
+msgstr "Questa Casa editrice al momento non accetta proposte."
+
+msgid "author.submit"
+msgstr "Nuova proposta"
diff --git a/locale/it/default.po b/locale/it/default.po
new file mode 100644
index 00000000000..b96f62284c5
--- /dev/null
+++ b/locale/it/default.po
@@ -0,0 +1,306 @@
+# Fulvio Delle Donne , 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-01-22T20:59:47+00:00\n"
+"PO-Revision-Date: 2022-08-08 09:16+0000\n"
+"Last-Translator: Fulvio Delle Donne \n"
+"Language-Team: Italian \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 4.13.1\n"
+
+msgid "default.genres.appendix"
+msgstr "Appendice"
+
+msgid "default.genres.bibliography"
+msgstr "Bibliografia"
+
+msgid "default.genres.manuscript"
+msgstr "Manoscritto del libro"
+
+msgid "default.genres.chapter"
+msgstr "Manoscritto del capitolo"
+
+msgid "default.genres.glossary"
+msgstr "Glossario"
+
+msgid "default.genres.index"
+msgstr "Indice"
+
+msgid "default.genres.preface"
+msgstr "Prefazione"
+
+msgid "default.genres.prospectus"
+msgstr "Prospetto"
+
+msgid "default.genres.table"
+msgstr "Tabella"
+
+msgid "default.genres.figure"
+msgstr "Figura"
+
+msgid "default.genres.photo"
+msgstr "Foto"
+
+msgid "default.genres.illustration"
+msgstr "Illustrazione"
+
+msgid "default.genres.other"
+msgstr "Altro"
+
+msgid "default.groups.name.manager"
+msgstr "Press manager"
+
+msgid "default.groups.plural.manager"
+msgstr "Manager della Casa Editrice"
+
+msgid "default.groups.abbrev.manager"
+msgstr "PM"
+
+msgid "default.groups.name.editor"
+msgstr "Press editor"
+
+msgid "default.groups.plural.editor"
+msgstr "Editori della Casa Editrice"
+
+msgid "default.groups.abbrev.editor"
+msgstr "PE"
+
+msgid "default.groups.name.sectionEditor"
+msgstr "Editor di collana"
+
+msgid "default.groups.plural.sectionEditor"
+msgstr "Editor di collana"
+
+msgid "default.groups.abbrev.sectionEditor"
+msgstr "EC"
+
+msgid "default.groups.name.subscriptionManager"
+msgstr "Gestore degli abbonamenti"
+
+msgid "default.groups.plural.subscriptionManager"
+msgstr "Gestori degli abbonamenti"
+
+msgid "default.groups.abbrev.subscriptionManager"
+msgstr "AbbM"
+
+msgid "default.groups.name.chapterAuthor"
+msgstr "Autore di un capitolo"
+
+msgid "default.groups.plural.chapterAuthor"
+msgstr "Autori di un capitolo"
+
+msgid "default.groups.abbrev.chapterAuthor"
+msgstr "CA"
+
+msgid "default.groups.name.volumeEditor"
+msgstr "Curatore del Libro"
+
+msgid "default.groups.plural.volumeEditor"
+msgstr "Curatori del Libro"
+
+msgid "default.groups.abbrev.volumeEditor"
+msgstr "VE"
+
+msgid "default.contextSettings.authorGuidelines"
+msgstr ""
+
+msgid "default.contextSettings.checklist"
+msgstr ""
+
+msgid "default.contextSettings.privacyStatement"
+msgstr ""
+"I nomi e gli indirizzi di posta elettronica indicati nel sito di questa "
+"casa editrice saranno usati esclusivamente per gli scopi dichiarati di della "
+"stessa e non saranno resi disponibili per nessun altro scopo o a nessun "
+"altro soggetto.
"
+
+msgid "default.contextSettings.openAccessPolicy"
+msgstr ""
+"Questa casa editrice realizza l'accesso aperto immediato ai suoi contenuti "
+"basato sul principio che rendere la ricerca liberamente disponibile supporta "
+"lo scambio globale delle conoscenze."
+
+msgid "default.contextSettings.forReaders"
+msgstr ""
+"I lettori sono invitati a registrarsi al servizio di notifica dei contenuti "
+"pubblicati di questa casa editrice. Usa il link Registrazione nella home page della casa "
+"editrice. Questa registrazione permetterà al lettore di ricevere per email "
+"il sommario di ogni nuovo libro della casa editrice. Questo permette anche "
+"alla casa editrice di ottenere un certo livello di supporto o di lettori. "
+"Vedi la Dichiarazione sulla Privacy che assicura "
+"i lettori che i loro nomi e indirizzi mail non saranno usati per scopi "
+"diversi."
+
+msgid "default.contextSettings.forAuthors"
+msgstr ""
+"Interessato a inviare una proposta a questa casa editrice? Raccomandiamo di "
+"verificare la pagina Informazioni sulla casa editrice per le politiche di sezione della "
+"casa editrice e la pagina Linee guida per gli autori. Gli autori "
+"devono registrarsi "
+"alla casa editrice prima di inviare una proposta, o se già registrati "
+"possono semplicemente fare il login "
+"e iniziare la procedura in 5 passaggi."
+
+msgid "default.contextSettings.forLibrarians"
+msgstr ""
+"Invitiamo le bibliotecarie e i bibliotecari a prendere in considerazione "
+"questa casa editrice per i fondi di case editrici digitali delle loro "
+"biblioteche. Inoltre, questo sistema di pubblicazione open source si presta "
+"ad essere offerto da parte delle biblioteche ai ricercatori per l'edizione "
+"delle loro pubblicazioni (vedi Open "
+"Monograph Press)."
+
+msgid "default.groups.name.externalReviewer"
+msgstr "Revisore esterno"
+
+msgid "default.groups.plural.externalReviewer"
+msgstr "Revisori esterni"
+
+msgid "default.groups.abbrev.externalReviewer"
+msgstr "RE"
+
+#~ msgid "default.groups.name.author"
+#~ msgstr "Autore"
+
+#~ msgid "default.groups.plural.author"
+#~ msgstr "Autori"
+
+#~ msgid "default.groups.name.seriesEditor"
+#~ msgstr "Series editor"
+
+#~ msgid "default.groups.plural.seriesEditor"
+#~ msgstr "Series editors"
+
+#~ msgid "default.groups.abbrev.seriesEditor"
+#~ msgstr "AcqE"
+
+#~ msgid "default.pressSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "Il documento sottomesso non è stato precedentemente pubblicato, né è "
+#~ "stato sottoposto ad altro editore (oppure vedi il chiarimento dato in "
+#~ "Commenti dall'Editore)."
+
+#~ msgid "default.pressSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "Il file del documento sottomesso è nei formati Microsoft Word, RTF, "
+#~ "OpenDocument o WordPerfect."
+
+#~ msgid "default.pressSettings.checklist.addressesLinked"
+#~ msgstr ""
+#~ "Qualora disponibili, sono state fornite le URL per la consultazione."
+
+#~ msgid "default.pressSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "Il testo è pubblicato a interlinea singola; utilizza un font di 12 punti; "
+#~ "impiega il carattere corsivo anziché sottolineare (a parte gli indirizzi "
+#~ "URL); tutte le illustrazioni, le figure e le tabelle sono posizionate "
+#~ "all'interno del testo nei punti appropriati e non messi alla fine del "
+#~ "testo."
+
+#~ msgid "default.pressSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "Il testo è conforme ai requisiti stilistici e bibliografici dichiarati "
+#~ "nelle Linee guida per "
+#~ "l'Autore, che si trovano nella rubrica A proposito di questa edizione."
+
+#~ msgid "default.pressSettings.privacyStatement"
+#~ msgstr ""
+#~ "I nomi e gli indirizzi email inseriti in questo sito editoriale verranno "
+#~ "utilizzati esclusivamente per gli scopi dichiarati e non saranno "
+#~ "utilizzati per altri scopi o trasmessi a terzi.."
+
+#~ msgid "default.pressSettings.openAccessPolicy"
+#~ msgstr ""
+#~ "Tutti i contenuti presenti su questo sito sono ad accesso aperto, in base "
+#~ "al principio che la ricerca deve essere liberamente disponibile in modo "
+#~ "da favorire lo scambio di conoscenze su scala mondiale."
+
+#~ msgid "default.pressSettings.emailHeader"
+#~ msgstr ""
+#~ "Questo messaggio è stato inviato a nome di {$pressName}.\r\n"
+#~ "________________________________________________________________________"
+#~ "\r\n"
+
+#~ msgid "default.pressSettings.emailSignature"
+#~ msgstr ""
+#~ "\r\n"
+#~ "________________________________________________________________________"
+#~ "\r\n"
+#~ "{$pressName}\r\n"
+#~ "{$indexUrl}/{$pressPath}\r\n"
+
+#~ msgid "default.pressSettings.forReaders"
+#~ msgstr ""
+#~ "Invitiamo i lettori a iscriversi al servizio di notifiche di questo sito. "
+#~ "Per far ciò occorre utilizzare il link Registrati che si trova nella parte superiore della "
+#~ "homepage. La registrazione consentirà a chi lo desidera di ricevere via "
+#~ "email l'Indice di ogni nuova monografia pubblicata sul sito. Nello stesso "
+#~ "tempo, questo elenco consentirà al nostro sito di conoscere il numero dei "
+#~ "propri lettori. Leggi la Dichiarazione sulla privacy che "
+#~ "assicura i lettori sul fatto che il loro nome e l'indirizzo e-mail non "
+#~ "saranno utilizzati per altri scopi."
+
+#~ msgid "default.pressSettings.forAuthors"
+#~ msgstr ""
+#~ "Sei un docente del nostro Ateneo e vuoi inviare un tuo lavoro a "
+#~ "fedOAPress? Si raccomanda di rileggere la pagina Informazioni sul Sito per vedere le politiche "
+#~ "del nostro Sito e di leggere la pagina Linee Guida per gli Autori. Gli "
+#~ "autori devono registrarsi sul sito prima di inviare i propri lavori, o se già "
+#~ "registrati possono semplicemente accedere e iniziare il processo di immissione in 5 fasi.."
+
+#~ msgid "default.pressSettings.forLibrarians"
+#~ msgstr ""
+#~ "Incoraggiamo i bibliotecari di ricerca ad inserire questa Press nella "
+#~ "lista delle risorse elettroniche possedute dalla biblioteca. Inoltre, "
+#~ "questo sistema di pubblicazione open source, oltre che conveniente, può "
+#~ "essere utilizzato da docenti e ricercatori anche per le pubblicazioni di "
+#~ "cui hanno la curatela (vedi Open "
+#~ "Monograph Press)."
+
+#~ msgid "default.contextSettings.checklist.bibliographicRequirements"
+#~ msgstr ""
+#~ "Il testo aderisce alle richieste stilistiche e bibliografiche riassunte "
+#~ "nelle linee guida per "
+#~ "l'autore, che si trovano nella pagina di informazioni sulla casa "
+#~ "editrice."
+
+#~ msgid "default.contextSettings.checklist.submissionAppearance"
+#~ msgstr ""
+#~ "Il testo ha spaziatura singola; usa un font 12 punti ; impiega il corsivo "
+#~ "invece della sottolineatura (eccetto per gli indirizzi URL); e tutte le "
+#~ "illustrazioni, figure, e tabelle sono posizionate all'interno del testo "
+#~ "nei punti appropriati, piuttosto che alla fine."
+
+#~ msgid "default.contextSettings.checklist.addressesLinked"
+#~ msgstr ""
+#~ "Dove possibile, per le citazioni bibliografiche sono stati indicati gli "
+#~ "URL."
+
+#~ msgid "default.contextSettings.checklist.fileFormat"
+#~ msgstr ""
+#~ "Il file della proposta è in formato Microsoft Word, RTF, o OpenDocument."
+
+#~ msgid "default.contextSettings.checklist.notPreviouslyPublished"
+#~ msgstr ""
+#~ "La proposta non è stata precedentemente pubblicata, né presentata a "
+#~ "un'altra casa editrice (oppure si fornisce una spiegazione in Commenti "
+#~ "per l'Editor)."
diff --git a/locale/it/editor.po b/locale/it/editor.po
new file mode 100644
index 00000000000..6a7df4c45a3
--- /dev/null
+++ b/locale/it/editor.po
@@ -0,0 +1,286 @@
+# Fulvio Delle Donne , 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-01-22T20:59:56+00:00\n"
+"PO-Revision-Date: 2022-08-08 09:16+0000\n"
+"Last-Translator: Fulvio Delle Donne \n"
+"Language-Team: Italian \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 4.13.1\n"
+
+msgid "editor.submissionArchive"
+msgstr "Archivio delle proposte"
+
+msgid "editor.monograph.cancelReview"
+msgstr "Annulla la richiesta"
+
+msgid "editor.monograph.clearReview"
+msgstr "Cancella il revisore"
+
+msgid "editor.monograph.enterRecommendation"
+msgstr "Inserisci raccomandazione"
+
+msgid "editor.monograph.enterReviewerRecommendation"
+msgstr "Inserisci raccomandazione del revisore"
+
+msgid "editor.monograph.recommendation"
+msgstr "Raccomandazione"
+
+msgid "editor.monograph.selectReviewerInstructions"
+msgstr ""
+"Seleziona un revisore qui in alto e poi clicca su \"Scegli un revisore\" per "
+"continuare."
+
+msgid "editor.monograph.replaceReviewer"
+msgstr "Sostituire il revisore"
+
+msgid "editor.monograph.editorToEnter"
+msgstr ""
+"L'Editore deve inserire la sua raccomandazione o i suoi commenti per il "
+"revisore"
+
+msgid "editor.monograph.uploadReviewForReviewer"
+msgstr "Carica la revisione"
+
+msgid "editor.monograph.peerReviewOptions"
+msgstr "Opzioni per la Peer Review"
+
+msgid "editor.monograph.selectProofreadingFiles"
+msgstr "File per la correzione delle bozze"
+
+msgid "editor.monograph.internalReview"
+msgstr "Procedere alla revisione interna"
+
+msgid "editor.monograph.internalReviewDescription"
+msgstr ""
+"Selezionare i file qui sotto per mandarli alla fase di revisione interna."
+
+msgid "editor.monograph.externalReview"
+msgstr "Procedere alla valutazione esterna"
+
+msgid "editor.monograph.final.selectFinalDraftFiles"
+msgstr "Selezionare il file per la bozza finale"
+
+msgid "editor.monograph.final.currentFiles"
+msgstr "File corrente per la bozza finale"
+
+msgid "editor.monograph.copyediting.currentFiles"
+msgstr "File correnti"
+
+msgid "editor.monograph.copyediting.personalMessageToUser"
+msgstr "Messaggio all'utente"
+
+msgid "editor.monograph.legend.submissionActions"
+msgstr "Azioni per la proposta"
+
+msgid "editor.monograph.legend.submissionActionsDescription"
+msgstr "Azioni e opzioni complessive per la proposta."
+
+msgid "editor.monograph.legend.sectionActions"
+msgstr "Azioni per la sezione"
+
+msgid "editor.monograph.legend.sectionActionsDescription"
+msgstr ""
+"Opzioni particolari per una certa sezione, come ad esempio caricamento di "
+"file o aggiunta di utenti."
+
+msgid "editor.monograph.legend.itemActions"
+msgstr "Azioni per i documenti"
+
+msgid "editor.monograph.legend.itemActionsDescription"
+msgstr "Azioni e opzioni particolari per un singolo file."
+
+msgid "editor.monograph.legend.catalogEntry"
+msgstr ""
+"Visualizzare e gestire il caricamento del record, inclusi i metadati e i "
+"formati di pubblicazione"
+
+msgid "editor.monograph.legend.bookInfo"
+msgstr ""
+"Visualizzare e gestire i metadati, le note, gli avvisi e lo storico del "
+"caricamento"
+
+msgid "editor.monograph.legend.participants"
+msgstr ""
+"Visualizzare e gestire tutti gli attori coinvolti nel caricamento: autori, "
+"editori, designer e altri"
+
+msgid "editor.monograph.legend.add"
+msgstr "Caricare un file nella sezione"
+
+msgid "editor.monograph.legend.add_user"
+msgstr "Aggiungere un utente alla sezione"
+
+msgid "editor.monograph.legend.settings"
+msgstr ""
+"Visualizzare e accedere ai parametri del documento, come le opzioni relative "
+"alle informazioni e alla cancellazione"
+
+msgid "editor.monograph.legend.more_info"
+msgstr ""
+"Informazioni supplementari: note sui file, opzioni per le notifiche e storico"
+
+msgid "editor.monograph.legend.notes_none"
+msgstr ""
+"Informazioni sul file: note, opzioni per le notifiche e storico (al momento "
+"non ci sono note)"
+
+msgid "editor.monograph.legend.notes"
+msgstr ""
+"Informazioni sul file: note, opzioni per le notifiche e storico (note "
+"disponibili)"
+
+msgid "editor.monograph.legend.notes_new"
+msgstr ""
+"Informazioni sul file: note, opzioni per le notifiche e storico (dopo "
+"l'ultima visita sono state aggiunte nuove note)"
+
+msgid "editor.monograph.legend.edit"
+msgstr "Modifica il documento"
+
+msgid "editor.monograph.legend.delete"
+msgstr "Cancella il documento"
+
+msgid "editor.monograph.legend.in_progress"
+msgstr "Azione in corso oppure non ancora completata"
+
+msgid "editor.monograph.legend.complete"
+msgstr "Azione completata"
+
+msgid "editor.monograph.legend.uploaded"
+msgstr ""
+"File caricato per il ruolo corrispondente per il titolo della colonna della "
+"griglia"
+
+msgid "editor.submission.introduction"
+msgstr ""
+"Al momento del caricamento, l'Editore, dopo aver consultato i file proposti, "
+"sceglie l'azione appropriata (che comprende l'invio di una notifica "
+"all'autore). Tra queste: Invia per una verifica interna (comporta la "
+"selezione dei file per una revisione interna); Invia per una verifica "
+"esterna (comporta la selezione dei file per una revisione esterna); Accetta "
+"il file proposto (comporta la selezione dei file per la fase editoriale); o "
+"Rifiuta il file proposto (archiviazione del file proposto)."
+
+msgid "editor.monograph.editorial.fairCopy"
+msgstr "Bella copia"
+
+msgid "editor.monograph.proofs"
+msgstr "Bozze"
+
+msgid "editor.monograph.production.approvalAndPublishing"
+msgstr "Approvazione e pubblicazione"
+
+msgid "editor.monograph.production.approvalAndPublishingDescription"
+msgstr ""
+"I libri possono essere pubblicati in diversi formati (copertina rigida, "
+"brossura e digitale), possono essere caricati nella sezione Formati di "
+"pubblicazione che segue. È possibile utilizzare la griglia dei formati di "
+"pubblicazione qui sotto come una lista di controllo per ciò che deve ancora "
+"essere fatto."
+
+msgid "editor.monograph.production.publicationFormatDescription"
+msgstr ""
+"Aggiungi i formati di pubblicazione (ad esempio, digitale, brossura) per i "
+"quali l'Editore di layout prepara le bozze per la correzione. Occorre "
+"indicare che le Bozze sono state approvate e si deve controllare la "
+"voce di Catalogo per il formato in questione, per indicare che "
+"questa voce è stata aggiunta alla voce di catalogo del libro, prima che il "
+"formato possa essere reso Disponibile (cioè pubblicato)."
+
+msgid "editor.monograph.approvedProofs.edit"
+msgstr "Scegliere le modalità per il download"
+
+msgid "editor.monograph.approvedProofs.edit.linkTitle"
+msgstr "Scegliere le modalità"
+
+msgid "editor.monograph.proof.addNote"
+msgstr "Aggiungi una risposta"
+
+msgid "editor.submission.proof.manageProofFilesDescription"
+msgstr ""
+"Tutti i file che sono già stati caricati in tutte le fasi della proposta "
+"possono essere aggiunti all'elenco dei File di bozza spuntando Includi e "
+"cliccando su Cerca: tutti i file disponibili saranno elencati e potranno "
+"essere inclusi."
+
+msgid "editor.publicIdentificationExistsForTheSameType"
+msgstr ""
+"L'identificativo pubblico '{$publicIdentifier}' esiste già per un altro "
+"oggetto dello stesso tipo. Si prega di scegliere identificativi univoci per "
+"gli oggetti della casa editrice dello stesso tipo."
+
+msgid "editor.submissions.assignedTo"
+msgstr "Assegnato a un Editore"
+
+#~ msgid "editor.pressSignoff"
+#~ msgstr "Sessione terminata"
+
+#~ msgid "editor.submission.selectedReviewer"
+#~ msgstr "Recensore selezionato"
+
+#~ msgid "editor.submissions.lastAssigned"
+#~ msgstr "Il più recente"
+
+#~ msgid "editor.submission.editorial.finalDraftDescription"
+#~ msgstr ""
+#~ "Per i \"volumi editi\", i cui capitoli sono cioè stati scritti da autori "
+#~ "diversi, possono essere caricati tanti file quanti sono i capitoli in "
+#~ "vista del copyediting. Questi file saranno in seguito esaminati dagli "
+#~ "autori dei capitoli, dopo il caricamento dei file successivi al "
+#~ "copyediting in Copyediting."
+
+#~ msgid "editor.monograph.editorial.fairCopyDescription"
+#~ msgstr ""
+#~ "Il copyeditor carica una copia corretta del file per la successiva "
+#~ "revisione dell'editor, prima che si passi in Produzione."
+
+#~ msgid "editor.submission.production.introduction"
+#~ msgstr ""
+#~ "Al momento dell'entrata in Produzione, l'editor seleziona il tipo di "
+#~ "formato (ad esempio, digitale, brossura, ecc) in Formati di pubblicazione, per i quali il layout "
+#~ "editor preparerà i file da pubblicare sulla base dei file destinati alla "
+#~ "pubblicazione. I file da pubblicare sono caricati per ogni tipo di "
+#~ "formato in Pagine di prova, dove "
+#~ "poi saranno sottosposte a revisione. Il libro è reso disponibile "
+#~ "(cioè pubblicato) per ognuno dei formati in Formati di pubblicazione, dopo che le prove sono state "
+#~ "verificate e approvate, e si indica che la voce di catalogo è stata "
+#~ "inclusa nella voce di catalogo del libro."
+
+#~ msgid "editor.submission.production.productionReadyFilesDescription"
+#~ msgstr ""
+#~ "Il layout editor prepara questi file per ogni formato di pubblicazione e "
+#~ "poi li carica nelle corrispondenti "
+#~ "Pagina di prova span> per la correzione."
+
+#~ msgid "editor.internalReview.introduction"
+#~ msgstr ""
+#~ "Durante la fase di valutazione interna, l'editor assegna revisori interni "
+#~ "ai file sottomessi e prende in considerazione le loro recensioni, prima "
+#~ "di scegliere l'azione appropriata (che determina l'invio di una notifica "
+#~ "all'autore): Da rivedere (le revisioni saranno esaminate dal solo "
+#~ "editor); Da ricaricare per la revisione (sarà avviato un nuovo giro di "
+#~ "revisioni); Inviare ad un revisore esterno (comporta la scelta dei file "
+#~ "da inviare al revisore esterno); Accettare il file sottomesso (occorre "
+#~ "scegliere i file che saranno inviati per la fase editoriale); o infine "
+#~ "Rifiuta il file sottomesso (archiviazione del file sottomesso)."
+
+#~ msgid "editor.externalReview.introduction"
+#~ msgstr ""
+#~ "Durante la fase di valutazione esterna, l'editor sceglie dei revisori "
+#~ "esterni alla Press per i file sottomessi e prende in considerazione i "
+#~ "loro commenti, prima di scegliere l'azione appropriata (che determina "
+#~ "l'invio di una notifica all'autore): Da rivedere (le revisioni saranno "
+#~ "esaminate dal solo editor); Da ricaricare per la revisione (sarà avviato "
+#~ "un nuovo giro di revisioni); Accettare il file sottomesso (occorre "
+#~ "scegliere i file che saranno inviati per la fase editoriale); o infine "
+#~ "Rifiuta il file sottomesso (archiviazione del file sottomesso)."
diff --git a/locale/it/emails.po b/locale/it/emails.po
new file mode 100644
index 00000000000..20b9eab3b18
--- /dev/null
+++ b/locale/it/emails.po
@@ -0,0 +1,554 @@
+# Fulvio Delle Donne , 2022.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2022-08-08 07:50+0000\n"
+"Last-Translator: Fulvio Delle Donne \n"
+"Language-Team: Italian \n"
+"Language: 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 4.13.1\n"
+
+msgid "emails.passwordResetConfirm.subject"
+msgstr "Conferma della reimpostazione della password"
+
+msgid "emails.passwordResetConfirm.body"
+msgstr ""
+"Abbiamo ricevuto una richiesta di reimpostazione della password per il sito "
+"web {$siteTitle}.
\n"
+"
\n"
+"Se non hai fatto questa richiesta, ignora questa mail e la tua password non "
+"verrà modificata. Se desideri reimpostare la password, fa' clic sull'URL "
+"sottostante.
\n"
+"
\n"
+"Reimposta la password: {$passwordResetUrl}
\n"
+"
\n"
+"{$signature}"
+
+msgid "emails.passwordReset.subject"
+msgstr ""
+
+msgid "emails.passwordReset.body"
+msgstr ""
+
+msgid "emails.userRegister.subject"
+msgstr "Registrazione alla Casa Editrice"
+
+msgid "emails.userRegister.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Sei stato registrato come utente di {$contextName}. In questa e-mail abbiamo "
+"incluso il suo nome utente e la sua password, necessari per lavorare con "
+"questa Casa Editrice attraverso il suo sito web. In qualsiasi momento, "
+"potete chiedere di essere rimossi dall'elenco degli utenti contattandoci."
+"
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"Password: {$password}
\n"
+"
\n"
+"Grazie,
\n"
+"{$signature}"
+
+msgid "emails.userValidateContext.subject"
+msgstr "Verifica il tuo Account"
+
+msgid "emails.userValidateContext.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"È stato creato un account con {$contextName}, ma prima di iniziare a "
+"utilizzarlo è necessario convalidare il proprio account e-mail. Per farlo, "
+"basta seguire il link sottostante:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Grazie,
\n"
+"{$contextSignature}"
+
+msgid "emails.userValidateSite.subject"
+msgstr "Convalida il tuo account"
+
+msgid "emails.userValidateSite.body"
+msgstr ""
+"{$recipientName}
\n"
+"
\n"
+"Hai creato un account con {$siteTitle}, ma prima di poter iniziare a usarlo, "
+"devi convalidare il tuo account e-mail. Per farlo, basta seguire il link "
+"sottostante:
\n"
+"
\n"
+"{$activateUrl}
\n"
+"
\n"
+"Grazie,
\n"
+"{$siteSignature}"
+
+msgid "emails.reviewerRegister.subject"
+msgstr "Registrazione come Revisore con {$contextName}"
+
+msgid "emails.reviewerRegister.body"
+msgstr ""
+"In considerazione della sua competenza, ci siamo presi la libertà di "
+"registrare il suo nome nel database dei revisori per {$contextName}. Questo "
+"non comporta alcun tipo di impegno da parte sua, ma ci permette "
+"semplicemente di contattarla per una proposta da sottoporre a revisione. "
+"Quando sarà invitato a fare una revisione, avrà la possibilità di vedere il "
+"titolo e l'abstract del prodotto in questione e sarà sempre in grado di "
+"accettare o rifiutare l'invito. Potrà inoltre chiedere in qualsiasi momento "
+"che il suo nome venga rimosso dall'elenco dei revisori.
\n"
+"
\n"
+"Le forniamo un nome utente e una password da utilizzare in tutte le "
+"interazioni con la Casa editrice attraverso il suo sito web. Potrebbe "
+"desiderare, ad esempio, aggiornare il suo profilo, compresi i suoi ambiti di "
+"interesse per le revisioni.
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"Password: {$password}
\n"
+"
\n"
+"Grazie,
\n"
+"{$signature}"
+
+msgid "emails.editorAssign.subject"
+msgstr "Incarico redazionale"
+
+msgid "emails.editorAssign.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"La proposta, "{$submissionTitle}," a {$contextName} ti è stato "
+"assegnato per seguire il processo editoriale nel tuo ruolo di redattore.
\n"
+"
\n"
+"URL della proposta: {$submissionUrl}
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"Grazie,"
+
+msgid "emails.reviewRequest.subject"
+msgstr "Richiesta di revisione di un manoscritto"
+
+#, fuzzy
+msgid "emails.reviewRequest.body"
+msgstr ""
+"Gentile {$recipientName},
\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"la preghiamo di collegarsi al sito web della Casa Editrice entro "
+"{$responseDueDate} per indicare se intende intraprendere o meno la "
+"revisione, nonché per accedere alla proposta e registrare la propria "
+"revisione e raccomandazione.
\n"
+"
\n"
+"La fine della revisione è prevista per il {$reviewDueDate}.
\n"
+"
\n"
+"URL della proposta: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"Grazie di aver preso in considerazione questa richiesta.
\n"
+"
\n"
+"
\n"
+"Cordialmente,
\n"
+"{$signature}
\n"
+
+msgid "emails.reviewRequestSubsequent.subject"
+msgstr ""
+
+#, fuzzy
+msgid "emails.reviewRequestSubsequent.body"
+msgstr ""
+
+msgid "emails.reviewResponseOverdueAuto.subject"
+msgstr "Richiesta di revisione di un manoscritto"
+
+msgid "emails.reviewResponseOverdueAuto.body"
+msgstr ""
+"Gentile {$recipientName},
\n"
+"le scriviamo solo per ricordare la nostra richiesta di revisione della "
+"proposta, "{$submissionTitle}," per la {$contextName}. Speravamo "
+"di ricevere la vostra risposta entro il {$responseDueDate}, e questa e-mail "
+"è stata generata e inviata automaticamente allo scadere di tale data.\n"
+"
\n"
+"{$messageToReviewer}
\n"
+"
\n"
+"La preghiamo di collegarsi al sito web della Casa Editrice per indicare se "
+"si intende effettuare o meno la revisione, nonché per accedere alla proposta "
+"e registrare la propria revisione e raccomandazione.
\n"
+"
\n"
+"La revisione va fatta entro il {$reviewDueDate}.
\n"
+"
\n"
+"URL della proposta: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"Grazie di aver preso in considerazione questa richiesta.
\n"
+"
\n"
+"
\n"
+"Cordialmente,
\n"
+"{$contextSignature}
\n"
+
+msgid "emails.reviewCancel.subject"
+msgstr "Richiesta di revisione cancellata"
+
+msgid "emails.reviewCancel.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"A questo punto abbiamo deciso di annullare la nostra richiesta di revisione "
+"della proposta, "{$submissionTitle}," per {$contextName}. Ci "
+"scusiamo per gli eventuali disagi causati da questa decisione e ci auguriamo "
+"di poterle chiedere aiuto per un prossimo processo di revisione.
\n"
+"
\n"
+"Per qualsiasi domanda, ci contatti."
+
+#, fuzzy
+msgid "emails.reviewReinstate.body"
+msgstr "Richiesta di revisione ripristinata"
+
+msgid "emails.reviewReinstate.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Desideriamo rinnovare la nostra richiesta di revisione della proposta, ""
+"{$submissionTitle}," per la {$contextName}. Ci auguriamo che lei sia in "
+"grado di aiutarci nel processo di revisione.
\n"
+"
\n"
+"Se ha domande, ci contatti."
+
+msgid "emails.reviewDecline.subject"
+msgstr "Non disponibile a fare da revisore"
+
+msgid "emails.reviewDecline.body"
+msgstr ""
+"Gent.mi,
\n"
+"
\n"
+"Temo che in questo momento non mi sia possibile esaminare la proposta, ""
+"{$submissionTitle}," per {$contextName}. Grazie di aver pensato a me e "
+"mi rendo disponibile per un'altra volta.
\n"
+"
\n"
+"{$senderName}"
+
+#, fuzzy
+msgid "emails.reviewRemind.subject"
+msgstr "Promemoria per la revisione della proposta"
+
+#, fuzzy
+msgid "emails.reviewRemind.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Le ricordiamo la nostra richiesta di revisione della proposta, ""
+"{$submissionTitle}," per {$contextName}. Speravamo di ricevere la "
+"revisione entro il {$reviewDueDate}, e saremmo lieti di riceverla non appena "
+"sarà in grado di prepararla.
\n"
+"
\n"
+"Se non si dispone del nome utente e della password per il sito web, è "
+"possibile utilizzare questo link per reimpostare la password (che verrà "
+"inviata per e-mail insieme al nome utente). {$passwordLostUrl}
\n"
+"
\n"
+"URL della proposta: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"La preghiamo di confermare la sua disponibilità a portare a termine questo "
+"incarico, tanto importante per la nostra Casa Editrice. Grazie.
\n"
+"
\n"
+"{$signature}"
+
+#, fuzzy
+msgid "emails.reviewRemindAuto.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Le ricordiamo la nostra richiesta di revisione della proposta, ""
+"{$submissionTitle}," per {$contextName}. Speravamo di ricevere la "
+"revisione entro il {$reviewDueDate}, e questa email è stata generata e "
+"inviata automaticamente una volta trascorsa tale data. Saremmo comunque "
+"lieti di riceverla non appena sarà in grado di prepararla.
\n"
+"
\n"
+"Se non si dispone del nome utente e della password per il sito web, è "
+"possibile utilizzare questo link per reimpostare la password (che verrà "
+"inviata per e-mail insieme al nome utente). {$passwordLostUrl}
\n"
+"
\n"
+"URL della proposta: {$reviewAssignmentUrl}
\n"
+"
\n"
+"Username: {$recipientUsername}
\n"
+"
\n"
+"La preghiamo di confermare la sua disponibilità a portare a termine questo "
+"contributo fondamentale per il lavoro della Casa Editrice. Grazie.
\n"
+"
\n"
+"{$contextSignature}"
+
+msgid "emails.editorDecisionAccept.subject"
+msgstr "La sua proposta è stata accettata da {$contextName}"
+
+msgid "emails.editorDecisionAccept.body"
+msgstr ""
+"Gentile {$recipientName},
siamo lieti di informarla che abbiamo "
+"deciso di accettare il suo lavoro senza ulteriori modifiche. Dopo un'attenta "
+"revisione, abbiamo trovato la sua proposta, {$submissionTitle}, in grado di "
+"soddisfare o superare le nostre aspettative. Siamo entusiasti di pubblicare "
+"il suo lavoro in {$nomeContesto} e la ringraziamo per aver scelto la nostra "
+"Casa Editrice come sede per il suo lavoro.
Il suo lavoro sarà presto "
+"pubblicato sul sito della Casa Editrice {$nomeContesto} e la invitiamo a "
+"includerlo nel suo elenco di pubblicazioni. Riconosciamo il duro lavoro che "
+"viene svolto per ogni proposta di successo e vogliamo congratularci con lei "
+"per aver raggiunto questa fase.
La sua proposta sarà ora sottoposta a "
+"copy editing e formattazione per prepararla alla pubblicazione."
+"p>
Riceverà a breve ulteriori istruzioni.
Se ha domande, mi contatti "
+"dal suo pannello di proposta."
+"p>
Cordiali saluti,
{$signature}"
+
+msgid "emails.editorDecisionSendToInternal.subject"
+msgstr "La sua richiesta è stata inviata alla revisione interna"
+
+msgid "emails.editorDecisionSendToInternal.body"
+msgstr ""
+"Gentile {$recipientName},
Siamo lieti di informarla che un "
+"redattore ha esaminato il suo contributo, {$submissionTitle}, e ha deciso di "
+"inviarlo alla revisione interna. Riceverà un feedback da parte dei revisori "
+"e informazioni sui passaggi successivi.
Tenga presente che l'invio "
+"dell'invio alla revisione interna non garantisce che verrà pubblicato. "
+"Prenderemo in considerazione le raccomandazioni dei revisori prima di "
+"decidere di accettare la proposta per la pubblicazione. Le potrebbe essere "
+"chiesto di apportare modifiche e di rispondere ai commenti dei revisori "
+"prima che venga presa una decisione finale.
In caso di domande, mi "
+"contatti dal pannello della proposta.
{ $signature}
"
+
+msgid "emails.editorDecisionSkipReview.subject"
+msgstr "La sua ichiesta è stata inviata al copyediting"
+
+msgid "emails.editorDecisionSkipReview.body"
+msgstr ""
+"Gentile {$recipientName},
\n"
+"siamo lieti di informarla che abbiamo deciso di accettare il suo "
+"contributo senza revisione tra pari. Abbiamo riscontrato che la sua "
+"proposta, {$submissionTitle}, soddisfa le nostre aspettative e non "
+"richiediamo che lavori di questo tipo siano sottoposti a revisione tra pari. "
+"Siamo entusiasti di pubblicare il tuo contributo in {$contextName} e la "
+"ringraziamo per aver scelto la nostra Casa Editrice come sede per il suo "
+"lavoro.
\n"
+"Il suo contributo sarà presto pubblicato sul sito della Casa Editrice per "
+"{$contextName} ed è libero di includerlo nel suo elenco delle pubblicazioni. "
+"Riconosciamo il duro lavoro necessario per ogni proposta di successo e "
+"vogliamo congratularci con lei per i suoi sforzi.
\n"
+"Il suo contributo verrà ora sottoposto a revisione redazionale per "
+"prepararlo alla pubblicazione.
\n"
+"Riceverà a breve ulteriori istruzioni.
\n"
+"Se ha domande, mi contatti dal suo pannello di proposta.
\n"
+"Cordiali saluti,
\n"
+"{$signature}
\n"
+
+msgid "emails.layoutRequest.subject"
+msgstr ""
+"La proposta {$submissionId} è pronta per la produzione presso "
+"{$contextAcronym}"
+
+#, fuzzy
+msgid "emails.layoutRequest.body"
+msgstr ""
+"Gentile {$recipientName},
una nuova proposta è pronta per la "
+"modifica del layout:
{$submissionId} "
+"{$submissionTitle }
{$contextName}
- 1. Fa' clic sull'URL "
+"di invio sopra.
- 2. Scarica i file pronto per la produzione e "
+"utilizzalo per organizzare il materiale secondo gli standard previsti."
+"li>
- 3. Carica il materiale nella sezione Formati di pubblicazione "
+"dell'invio.
- 4. Usa le discussioni di produzione per notificare "
+"all'editore che il materiale è pronto.
Se non sei in grado di "
+"intraprendere questo lavoro in questo momento o hai domande, contattami. "
+"Grazie per il tuo contributo.
Cordiali saluti,
{$signature}"
+
+msgid "emails.layoutComplete.subject"
+msgstr "Materiale completato"
+
+#, fuzzy
+msgid "emails.layoutComplete.body"
+msgstr ""
+"Gentile {$recipientName},
il materiale è stato predisposto ed è "
+"pronto per la revisione finale.
{ $submissionTitle}
{$contextName}
Se "
+"hai domande, contattami.
Cordiali saluti,
{ $senderName}
"
+
+msgid "emails.indexRequest.subject"
+msgstr "Indice delle richieste"
+
+msgid "emails.indexRequest.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"la proposta "{$submissionTitle}" a {$contextName} ora necessita di "
+"indici creati seguendo questi passaggi.
\n"
+"1. Fare clic sull'URL di invio di seguito.
\n"
+"2. Accedi alla Casa Editrice e usa il file Bozze per organizzare il "
+"materiale secondo gli standard di stampa.
\n"
+"3. Invia l'e-mail COMPLETA all'editore.
\n"
+"
\n"
+"URL di {$contextName}: {$contextUrl}
\n"
+"URL di invio: {$submissionUrl}
\n"
+"Nome utente: {$recipientUsername}
\n"
+"
\n"
+"Se non sei in grado di intraprendere questo lavoro in questo momento o hai "
+"domande, contattami. Grazie per il tuo contributo.
\n"
+"
\n"
+"{$signature}"
+
+msgid "emails.indexComplete.subject"
+msgstr "Indice completato"
+
+msgid "emails.indexComplete.body"
+msgstr ""
+"{$recipientName}:
\n"
+"
\n"
+"Gli indici sono stati ora preparati per il manoscritto, ""
+"{$submissionTitle}," presentato a {$contextName} e sono pronti per la "
+"correzione di bozze.
\n"
+"
\n"
+"In caso di domande, contattami.
\n"
+"
\n"
+"{$signatureFullName}"
+
+msgid "emails.emailLink.subject"
+msgstr "Manoscritto di possibile interesse"
+
+msgid "emails.emailLink.body"
+msgstr ""
+"Ho pensato che potrebbe interessarti vedere "{$submissionTitle}" "
+"di {$authors} pubblicato nel volume {$volume}, n. {$number} ({$year}) di "
+"{$contextName} in "{$submissionUrl}"."
+
+msgid "emails.emailLink.description"
+msgstr ""
+"Questo modello di email offre a un lettore registrato la possibilità di "
+"inviare informazioni su una monografia a qualcuno che potrebbe essere "
+"interessato. È disponibile tramite gli Strumenti di lettura e deve essere "
+"abilitato dall'Amministratore della Casa Editrice nella pagina di gestione "
+"degli Strumenti di lettura."
+
+msgid "emails.notifySubmission.subject"
+msgstr "Notifica di proposta"
+
+msgid "emails.notifySubmission.body"
+msgstr ""
+"Hai un nuovo messaggio da {$sender} in relazione a "{$submissionTitle}"
+"" ({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifySubmission.description"
+msgstr "Una notifica da parte di un utente."
+
+msgid "emails.notifyFile.subject"
+msgstr "Notifica di invio di un file"
+
+msgid "emails.notifyFile.body"
+msgstr ""
+"Hai un messaggio da {$sender} sul file "{$fileName}" in ""
+"{$submissionTitle}" ({$monographDetailsUrl}):
\n"
+"
\n"
+"\t\t{$message}
\n"
+"
\n"
+"\t\t"
+
+msgid "emails.notifyFile.description"
+msgstr "Notifica inviata da un utente"
+
+msgid "emails.statisticsReportNotification.subject"
+msgstr "Attività editoriale per {$month}, {$year}"
+
+msgid "emails.statisticsReportNotification.body"
+msgstr ""
+"\n"
+"{$name},
\n"
+"
\n"
+"Il rapporto sulla Casa Editrice per il {$month}, {$year} è ora disponibile. "
+"Le statistiche principali di questo mese sono riportate di seguito.
\n"
+"\n"
+"\t- Nuove proposte questo mese: {$newSubmissions}
\n"
+"\t- Proposte rifiutate questo mese: {$declinedSubmissions}
\n"
+"\t- Proposte accettate questo mese:: {$acceptedSubmissions}
\n"
+"\t- Totale proposte: {$totalSubmissions}
\n"
+"
\n"
+"Accedere alla Casa Editrice per visualizzare in modo più dettagliato l'andamento editoriale e le statistiche dei libri pubblicati. In "
+"allegato è disponibile una copia completa dell'andamento editoriale di "
+"questo mese.
\n"
+"
\n"
+"Cordialmente,
\n"
+"{$signature}"
+
+msgid "emails.announcement.subject"
+msgstr "{$announcementTitle}"
+
+msgid "emails.announcement.body"
+msgstr ""
+"{$announcementTitle}
\n"
+"
\n"
+"{$announcementSummary}
\n"
+"
\n"
+"Visita il nostro sito web per leggere l'avviso completo."
+
+#~ msgid "emails.passwordResetConfirm.description"
+#~ msgstr ""
+#~ "Questa email viene inviata a un utente registrato quando segnala di aver "
+#~ "dimenticato la password o di non riuscire ad accedere. Fornisce un URL da "
+#~ "seguire per reimpostare la password."
+
+#~ msgid "emails.passwordReset.description"
+#~ msgstr ""
+#~ "Questo messaggio di posta elettronica viene inviato a un utente "
+#~ "registrato quando la reimpostazione della password è avvenuta con "
+#~ "successo, seguendo la procedura descritta nel messaggio di posta "
+#~ "elettronica PASSWORD_RESET_CONFIRM."
+
+#~ msgid "emails.userRegister.description"
+#~ msgstr ""
+#~ "Questa e-mail viene inviata a un utente appena registrato per dargli il "
+#~ "benvenuto nel sistema e fornirgli la registrazione del suo nome utente e "
+#~ "della sua password."
+
+#~ msgid "emails.reviewerRegister.description"
+#~ msgstr ""
+#~ "Questa email viene inviata a un revisore appena registrato per dargli il "
+#~ "benvenuto nel sistema e fornirgli una registrazione del suo nome utente e "
+#~ "della sua password."
+
+#~ msgid "emails.submissionAckNotAuthor.description"
+#~ msgstr ""
+#~ "Questa e-mail, se abilitata, viene inviata automaticamente agli altri "
+#~ "autori che non sono utenti di OMP specificati durante il processo di "
+#~ "invio."
+
+#~ msgid "emails.layoutRequest.description"
+#~ msgstr ""
+#~ "Questo messaggio di posta elettronica, inviato da un Editore al "
+#~ "responsabile del layout, notifica che gli è stato assegnato il compito di "
+#~ "modificare il layout di un invio. Fornisce informazioni sull'invio e su "
+#~ "come accedervi."
+
+#~ msgid "emails.layoutComplete.description"
+#~ msgstr ""
+#~ "Questa email inviata dall'Editore di Layout all'Editore di Collana "
+#~ "notifica il completamento del processo di impaginazione."
+
+#~ msgid "emails.statisticsReportNotification.description"
+#~ msgstr ""
+#~ "Questa email viene inviata automaticamente ogni mese agli Editori e ai "
+#~ "responsabili della Casa Editrice per fornire loro una panoramica sullo "
+#~ "stato di salute del sistema."
+
+#~ msgid "emails.announcement.description"
+#~ msgstr "Questa e-mail viene inviata quando viene creato un nuovo avviso."
+
+#~ msgid "emails.editorAssign.description"
+#~ msgstr ""
+#~ "Questa email di notifica a un Editore di Collana cui è assegnato il "
+#~ "compito di supervisionare una proposta nel processo di editing. Fornisce "
+#~ "informazioni sulla proposta e sulle modalità di accesso al sito della "
+#~ "Casa Editrice."
diff --git a/locale/it/locale.po b/locale/it/locale.po
new file mode 100644
index 00000000000..d3c368e7612
--- /dev/null
+++ b/locale/it/locale.po
@@ -0,0 +1,1910 @@
+# Fulvio Delle Donne , 2022.
+# Stefan Schneider , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-01-22T21:00:04+00:00\n"
+"PO-Revision-Date: 2023-05-17 05:52+0000\n"
+"Last-Translator: Stefan Schneider \n"
+"Language-Team: Italian "
+"\n"
+"Language: 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 4.13.1\n"
+
+msgid "common.payments"
+msgstr "Pagamenti"
+
+msgid "monograph.audience"
+msgstr "Tipo di lettore"
+
+msgid "monograph.audience.success"
+msgstr "I dettagli della audience sono stati aggiornati."
+
+msgid "monograph.coverImage"
+msgstr "Immagine di copertina"
+
+msgid "monograph.audience.rangeQualifier"
+msgstr "Qualificatore della varietà di lettori"
+
+msgid "monograph.audience.rangeFrom"
+msgstr "Varietà di lettori (da)"
+
+msgid "monograph.audience.rangeTo"
+msgstr "Varietà di lettori (a)"
+
+msgid "monograph.audience.rangeExact"
+msgstr "Varietà di lettori (esatta)"
+
+msgid "monograph.languages"
+msgstr "Lingue (Inglese, Francese, Spagnolo)"
+
+msgid "monograph.publicationFormats"
+msgstr "Formati di pubblicazione"
+
+msgid "monograph.publicationFormat"
+msgstr "Formato"
+
+msgid "monograph.publicationFormatDetails"
+msgstr "Dettagli sul formato di pubblicazione disponibile: {$format}"
+
+msgid "monograph.miscellaneousDetails"
+msgstr "Dettagli su questo libro"
+
+msgid "monograph.carousel.publicationFormats"
+msgstr "Formati:"
+
+msgid "monograph.type"
+msgstr "Tipologia di immissione"
+
+msgid "submission.pageProofs"
+msgstr "Bozze"
+
+msgid "monograph.proofReadingDescription"
+msgstr ""
+"Il layout editor carica qui i file pronti per la pubblicazione. Usa "
+"+Assegna per designare gli autori e gli altri correttori che dovranno "
+"rileggere le bozze. Una volta corrette, le bozze devono essere nuovamente "
+"caricate per l'approvazione definitiva alla pubblicazione."
+
+msgid "monograph.task.addNote"
+msgstr "Aggiungi ai compiti"
+
+msgid "monograph.accessLogoOpen.altText"
+msgstr "Accesso aperto"
+
+msgid "monograph.publicationFormat.imprint"
+msgstr "Marchio editoriale"
+
+msgid "monograph.publicationFormat.pageCounts"
+msgstr "Numero di pagine"
+
+msgid "monograph.publicationFormat.frontMatterCount"
+msgstr "Pagine iniziali"
+
+msgid "monograph.publicationFormat.backMatterCount"
+msgstr "Appendici"
+
+msgid "monograph.publicationFormat.productComposition"
+msgstr "Composizione del prodotto"
+
+msgid "monograph.publicationFormat.productFormDetailCode"
+msgstr "Dettagli del prodotto (non obbligatori)"
+
+msgid "monograph.publicationFormat.productIdentifierType"
+msgstr "Identificazione del prodotto"
+
+msgid "monograph.publicationFormat.price"
+msgstr "Prezzo"
+
+msgid "monograph.publicationFormat.priceRequired"
+msgstr "Stabilire il prezzo."
+
+msgid "monograph.publicationFormat.priceType"
+msgstr "Tipo di prezzo"
+
+msgid "monograph.publicationFormat.discountAmount"
+msgstr "Percentuale di sconto, se applicabile"
+
+msgid "monograph.publicationFormat.productAvailability"
+msgstr "Disponibilità del prodotto"
+
+msgid "monograph.publicationFormat.returnInformation"
+msgstr "Indicatore di restituzione"
+
+msgid "monograph.publicationFormat.digitalInformation"
+msgstr "Informazione digitale"
+
+msgid "monograph.publicationFormat.productDimensions"
+msgstr "Dimensioni fisiche"
+
+msgid "monograph.publicationFormat.productDimensionsSeparator"
+msgstr " x "
+
+msgid "monograph.publicationFormat.productFileSize"
+msgstr "Dimensione del file Size in Megabyte"
+
+msgid "monograph.publicationFormat.productFileSize.override"
+msgstr "Vuoi inserire un valore personalizzato per le dimensioni del tuo file?"
+
+msgid "monograph.publicationFormat.productHeight"
+msgstr "Altezza"
+
+msgid "monograph.publicationFormat.productThickness"
+msgstr "Spessore"
+
+msgid "monograph.publicationFormat.productWeight"
+msgstr "Peso"
+
+msgid "monograph.publicationFormat.productWidth"
+msgstr "Larghezza"
+
+msgid "monograph.publicationFormat.countryOfManufacture"
+msgstr "Paese di pubblicazione"
+
+msgid "monograph.publicationFormat.technicalProtection"
+msgstr "Misure tecniche per la protezione digitale"
+
+msgid "monograph.publicationFormat.productRegion"
+msgstr "Regione di distribuzione del prodotto"
+
+msgid "monograph.publicationFormat.taxRate"
+msgstr "Tariffa di tassazione"
+
+msgid "monograph.publicationFormat.taxType"
+msgstr "Tipo di tassazione"
+
+msgid "monograph.publicationFormat.isApproved"
+msgstr ""
+"Includere i metadati di questo formato di pubblicazione nel record di per "
+"questo libro."
+
+msgid "monograph.publicationFormat.noMarketsAssigned"
+msgstr "Mercati e prezzi mancanti."
+
+msgid "monograph.publicationFormat.noCodesAssigned"
+msgstr "Codice identificativo mancante."
+
+msgid "monograph.publicationFormat.missingONIXFields"
+msgstr "Mancano alcuni campi di metadati."
+
+msgid "monograph.publicationFormat.formatDoesNotExist"
+msgstr ""
+"Il formato di pubblicazione scelto per questa monografia non esiste più."
+"p>"
+
+msgid "monograph.publicationFormat.openTab"
+msgstr "Apri la tab per il formato di pubblicazione."
+
+msgid "grid.catalogEntry.publicationFormatType"
+msgstr "Formato di pubblicazione"
+
+msgid "grid.catalogEntry.nameRequired"
+msgstr "Scegliere un nome."
+
+msgid "grid.catalogEntry.validPriceRequired"
+msgstr "Indicare un prezzo valido."
+
+msgid "grid.catalogEntry.publicationFormatDetails"
+msgstr "Dettagli del formato"
+
+msgid "grid.catalogEntry.physicalFormat"
+msgstr "Formato fisico"
+
+msgid "grid.catalogEntry.remotelyHostedContent"
+msgstr "Questo formato sarà disponibile in un sito web a parte"
+
+msgid "grid.catalogEntry.remoteURL"
+msgstr "URL del contenuto remoto"
+
+msgid "grid.catalogEntry.isbn"
+msgstr "ISBN"
+
+msgid "grid.catalogEntry.isbn13.description"
+msgstr "Un codice ISBN a 13 caratteri, come 978-951-98548-9-2."
+
+msgid "grid.catalogEntry.isbn10.description"
+msgstr "Un codice ISBN a 10 caratteri, come 951-98548-9-4."
+
+msgid "grid.catalogEntry.monographRequired"
+msgstr "Occorre assegnare un ID alla monografia."
+
+msgid "grid.catalogEntry.publicationFormatRequired"
+msgstr "Occorre scegliere un formato di pubblicazione."
+
+msgid "grid.catalogEntry.availability"
+msgstr "Disponibilità"
+
+msgid "grid.catalogEntry.isAvailable"
+msgstr "Disponibile"
+
+msgid "grid.catalogEntry.isNotAvailable"
+msgstr "Non disponibile"
+
+msgid "grid.catalogEntry.proof"
+msgstr "Prova"
+
+msgid "grid.catalogEntry.approvedRepresentation.title"
+msgstr "Accettazione del formato"
+
+msgid "grid.catalogEntry.approvedRepresentation.message"
+msgstr ""
+"
Approvare i metadati per questo formato. I metadati possono essere "
+"verificati nel pannello Modifica di ciascun formato.
"
+
+msgid "grid.catalogEntry.approvedRepresentation.removeMessage"
+msgstr ""
+"Indicare che i metadati per questo formato non sono stati approvati.
"
+
+msgid "grid.catalogEntry.availableRepresentation.title"
+msgstr "Disponibilità del formato"
+
+msgid "grid.catalogEntry.availableRepresentation.message"
+msgstr ""
+"Rendere questo formato disponibile ai lettori. I file "
+"scaricabili e ogni altra distribuzione appariranno nella scheda di catalogo "
+"del libro.
"
+
+msgid "grid.catalogEntry.availableRepresentation.removeMessage"
+msgstr ""
+"Questo formato non sarà dispobile per i lettori. I file "
+"scaricabili e ogni altra distribuzione non appariranno nella scheda di "
+"catalogo del libro.
"
+
+msgid "grid.catalogEntry.availableRepresentation.catalogNotApprovedWarning"
+msgstr "Scheda del catalogo non approvata."
+
+msgid "grid.catalogEntry.availableRepresentation.notApprovedWarning"
+msgstr "Formato non disponibile nella scheda del catalogo."
+
+msgid "grid.catalogEntry.availableRepresentation.proofNotApproved"
+msgstr "Bozza non approvata."
+
+msgid "grid.catalogEntry.availableRepresentation.approved"
+msgstr "Approvato"
+
+msgid "grid.catalogEntry.availableRepresentation.notApproved"
+msgstr "In attesa di approvazione"
+
+msgid "grid.catalogEntry.fileSizeRequired"
+msgstr ""
+"Occorre indicare la dimensione del file per i formati digitali richiesti."
+
+msgid "grid.catalogEntry.productAvailabilityRequired"
+msgstr "Occorre indicare il codice di disponibilità del prodotto."
+
+msgid "grid.catalogEntry.productCompositionRequired"
+msgstr "Occorre scegliere un codice di composizione del prodotto."
+
+msgid "grid.catalogEntry.identificationCodeValue"
+msgstr "Valore del codice"
+
+msgid "grid.catalogEntry.identificationCodeType"
+msgstr "Tipo di codice ONIX"
+
+msgid "grid.catalogEntry.codeRequired"
+msgstr "È obbligatorio un codice."
+
+msgid "grid.catalogEntry.valueRequired"
+msgstr "È obbligatorio inserire un valore."
+
+msgid "grid.catalogEntry.salesRights"
+msgstr "Diritti di vendita"
+
+msgid "grid.catalogEntry.salesRightsValue"
+msgstr "Valore del codice"
+
+msgid "grid.catalogEntry.salesRightsType"
+msgstr "Tipi di diritti di vendita"
+
+msgid "grid.catalogEntry.salesRightsROW"
+msgstr "Resto del mondo?"
+
+msgid "grid.catalogEntry.salesRightsROW.tip"
+msgstr ""
+"Seleziona questa casella per utilizzare questi Diritti di vendita se pensi "
+"che si applicano al tuo formato in modo onnicomprensivo. In questo caso non "
+"occorre scegliere i paesi e le regioni."
+
+msgid "grid.catalogEntry.oneROWPerFormat"
+msgstr ""
+"Esiste già un tipo di vendita ROW definito per questo formato di "
+"pubblicazione."
+
+msgid "grid.catalogEntry.countries"
+msgstr "Nazioni"
+
+msgid "grid.catalogEntry.regions"
+msgstr "Regioni"
+
+msgid "grid.catalogEntry.included"
+msgstr "Incluso"
+
+msgid "grid.catalogEntry.excluded"
+msgstr "Escluso"
+
+msgid "grid.catalogEntry.markets"
+msgstr "Territori del mercato"
+
+msgid "grid.catalogEntry.marketTerritory"
+msgstr "Territori"
+
+msgid "grid.catalogEntry.publicationDates"
+msgstr "Date di pubblicazione"
+
+msgid "grid.catalogEntry.roleRequired"
+msgstr "Occorre indicare un ruolo di rappresentanza."
+
+msgid "grid.catalogEntry.dateFormatRequired"
+msgstr "Occorre indicare un formato di data."
+
+msgid "grid.catalogEntry.dateValue"
+msgstr "Data"
+
+msgid "grid.catalogEntry.dateRole"
+msgstr "Ruolo"
+
+msgid "grid.catalogEntry.dateFormat"
+msgstr "Formato di data"
+
+msgid "grid.catalogEntry.dateRequired"
+msgstr ""
+"Occorre indicare una data e il valore della data deve corrispondere al "
+"formato di data prescelto."
+
+msgid "grid.catalogEntry.representatives"
+msgstr "Rappresentanti"
+
+msgid "grid.catalogEntry.representativeType"
+msgstr "Tipo di rappresentati"
+
+msgid "grid.catalogEntry.agentsCategory"
+msgstr "Agenti"
+
+msgid "grid.catalogEntry.suppliersCategory"
+msgstr "Fornitori"
+
+msgid "grid.catalogEntry.agent"
+msgstr "Agente"
+
+msgid "grid.catalogEntry.agentTip"
+msgstr ""
+"È possibile assegnare un agente che vi rappresenti in questo territorio, ma "
+"non è indispensabile."
+
+msgid "grid.catalogEntry.supplier"
+msgstr "Fornitore"
+
+msgid "grid.catalogEntry.representativeRoleChoice"
+msgstr "Scegliere un ruolo:"
+
+msgid "grid.catalogEntry.representativeRole"
+msgstr "Ruolo"
+
+msgid "grid.catalogEntry.representativeName"
+msgstr "Nome"
+
+msgid "grid.catalogEntry.representativePhone"
+msgstr "Telefono"
+
+msgid "grid.catalogEntry.representativeEmail"
+msgstr "Indirizzo email"
+
+msgid "grid.catalogEntry.representativeWebsite"
+msgstr "Sito web"
+
+msgid "grid.catalogEntry.representativeIdValue"
+msgstr "ID del rappresentante"
+
+msgid "grid.catalogEntry.representativeIdType"
+msgstr "Tipo di ID del rappresentante (si raccomanda GLN)"
+
+msgid "grid.catalogEntry.representativesDescription"
+msgstr ""
+"È possibile lasciare la seguente sezione vuota se si forniscono i propri "
+"servizi ai clienti."
+
+msgid "grid.action.addRepresentative"
+msgstr "Aggiunge un rappresentante"
+
+msgid "grid.action.editRepresentative"
+msgstr "Edita il rappresentante"
+
+msgid "grid.action.deleteRepresentative"
+msgstr "Cancella il rappresentante"
+
+msgid "spotlight"
+msgstr "In evidenza"
+
+msgid "spotlight.spotlights"
+msgstr "In evidenza"
+
+msgid "spotlight.noneExist"
+msgstr "Non ci sono libri in evidenza."
+
+msgid "spotlight.title.homePage"
+msgstr "In evidenza"
+
+msgid "spotlight.author"
+msgstr "Autore, "
+
+msgid "grid.content.spotlights.spotlightItemTitle"
+msgstr "Volume in evidenza"
+
+msgid "grid.content.spotlights.category.homepage"
+msgstr "Homepage"
+
+msgid "grid.content.spotlights.form.location"
+msgstr "Collocazione per \"In evidenza\""
+
+msgid "grid.content.spotlights.form.item"
+msgstr "Inserisci il titolo messo In evidenza (autocompletamento)"
+
+msgid "grid.content.spotlights.form.title"
+msgstr "Titolo In evidenza"
+
+msgid "grid.content.spotlights.form.type.book"
+msgstr "Libro"
+
+msgid "grid.content.spotlights.itemRequired"
+msgstr "Occorre indicare un libro."
+
+msgid "grid.content.spotlights.titleRequired"
+msgstr "Occorre indicare un titolo In evidenza."
+
+msgid "grid.content.spotlights.locationRequired"
+msgstr "Per favore, scegli un posto per questo libro In evidenza."
+
+msgid "grid.action.editSpotlight"
+msgstr "Edita questo volume In evidenza"
+
+msgid "grid.action.deleteSpotlight"
+msgstr "Cancella questo volume In evidenza"
+
+msgid "grid.action.addSpotlight"
+msgstr "Aggiungi \"In evidenza\""
+
+msgid "manager.series.open"
+msgstr "Proposte libere"
+
+msgid "manager.series.indexed"
+msgstr "Indicizzato"
+
+msgid "grid.libraryFiles.column.files"
+msgstr "Files"
+
+msgid "grid.action.catalogEntry"
+msgstr "Visualizza il form di immissione nel catalogo"
+
+msgid "grid.action.formatInCatalogEntry"
+msgstr "Il formato appare all'inizio del catalogo"
+
+msgid "grid.action.editFormat"
+msgstr "Edita questo formato"
+
+msgid "grid.action.deleteFormat"
+msgstr "Cancella questo formato"
+
+msgid "grid.action.addFormat"
+msgstr "Aggiungi il formato di pubblicazione"
+
+msgid "grid.action.approveProof"
+msgstr ""
+"Dai la tua approvazione perché la prova possa essere indicizzata e inclusa "
+"nel Catalogo"
+
+msgid "grid.action.pageProofApproved"
+msgstr ""
+"Il file per le prove della messa in pagina è pronto per la pubblicazione"
+
+msgid "grid.action.newCatalogEntry"
+msgstr "Nuovo ingresso nel Catalogo"
+
+msgid "grid.action.publicCatalog"
+msgstr "Visualizza questo titolo nel Catalogo"
+
+msgid "grid.action.feature"
+msgstr "Cambia la visualizzazione delle caratteristiche"
+
+msgid "grid.action.featureMonograph"
+msgstr "Metti nel carosello del Catalogo"
+
+msgid "grid.action.releaseMonograph"
+msgstr "Segna questa immissione come 'novità'"
+
+msgid "grid.action.manageCategories"
+msgstr "Configura le categorie per questa Press"
+
+msgid "grid.action.manageSeries"
+msgstr "Configura le collane per questa Press"
+
+msgid "grid.action.addCode"
+msgstr "Aggiungi Codice"
+
+msgid "grid.action.editCode"
+msgstr "Modifica il codice"
+
+msgid "grid.action.deleteCode"
+msgstr "Cancella il Codice"
+
+msgid "grid.action.addRights"
+msgstr "Aggiungi i diritti di vendita"
+
+msgid "grid.action.editRights"
+msgstr "Modifica i diritti"
+
+msgid "grid.action.deleteRights"
+msgstr "Cancella i diritti"
+
+msgid "grid.action.addMarket"
+msgstr "Aggiungi un Mercato"
+
+msgid "grid.action.editMarket"
+msgstr "Modifica il Mercato"
+
+msgid "grid.action.deleteMarket"
+msgstr "Cancella il Mercato"
+
+msgid "grid.action.addDate"
+msgstr "Aggiungi una data di pubblicazione"
+
+msgid "grid.action.editDate"
+msgstr "Modifica la data"
+
+msgid "grid.action.deleteDate"
+msgstr "Cancella la data"
+
+msgid "grid.action.createContext"
+msgstr "Crea una nuova Press"
+
+msgid "grid.action.publicationFormatTab"
+msgstr "Mostra la tab per il formato di pubblicazione"
+
+msgid "grid.action.moreAnnouncements"
+msgstr "Vai alla pagina degli annunci"
+
+msgid "grid.action.submissionEmail"
+msgstr "Clicca per leggere questa email"
+
+msgid "grid.action.approveProofs"
+msgstr "Visualizza la griglia delle prove"
+
+msgid "grid.action.proofApproved"
+msgstr "Il format è stato approvato"
+
+msgid "grid.action.availableRepresentation"
+msgstr "Approva/Respingi questo formato"
+
+msgid "grid.action.formatAvailable"
+msgstr "Il formato è disponibile e pubblicato"
+
+msgid "grid.reviewAttachments.add"
+msgstr "Aggiungi un allegato alla recensione"
+
+msgid "grid.reviewAttachments.availableFiles"
+msgstr "File disponibili"
+
+msgid "series.series"
+msgstr "Collana"
+
+msgid "series.featured.description"
+msgstr "Queste collane appariranno nel menu di navigazione principale"
+
+msgid "series.path"
+msgstr "Percorso"
+
+msgid "catalog.manage"
+msgstr "Gestione del Catalogo"
+
+msgid "catalog.manage.newReleases"
+msgstr "In primo piano"
+
+msgid "catalog.manage.category"
+msgstr "Categorie"
+
+msgid "catalog.manage.series"
+msgstr "Collane"
+
+msgid "catalog.manage.series.issn"
+msgstr "ISSN"
+
+msgid "catalog.manage.series.issn.validation"
+msgstr "indicare un ISSN valido."
+
+msgid "catalog.manage.series.issn.equalValidation"
+msgstr "Online e print ISSN non devono essere identici."
+
+msgid "catalog.manage.series.onlineIssn"
+msgstr "Online ISSN"
+
+msgid "catalog.manage.series.printIssn"
+msgstr "ISSN"
+
+msgid "catalog.selectSeries"
+msgstr "Scegli una collana"
+
+msgid "catalog.selectCategory"
+msgstr "Scegli una categoria"
+
+msgid "catalog.manage.homepageDescription"
+msgstr ""
+"L'immagine di copertina dei libri selezionati appare nella parte superiore "
+"della home page come un insieme scorrevole. Clicca su 'Funzione' e poi sulla "
+"stella per aggiungere un libro al carosello; clicca sul punto esclamativo "
+"per inserire il libro tra le novità; trascina e rilascia per stabilire un "
+"nuovo ordine tra i volumi."
+
+msgid "catalog.manage.categoryDescription"
+msgstr ""
+"Clicca su 'Funzione' e poi sulla stella per scegliere un libro in evidenza "
+"per questa categoria; trascina e rilascia per ordinare."
+
+msgid "catalog.manage.seriesDescription"
+msgstr ""
+"Clicca su 'Funzione' e poi sulla stella per scegliere un libro in evidenza "
+"per questa collana; trascina e rilascia per ordinare. Le collane vengonon "
+"identificate con il nome del curatore e con il titolo della collana, "
+"all'interno o meno di una categoria."
+
+msgid "catalog.manage.placeIntoCarousel"
+msgstr "Carosello"
+
+msgid "catalog.manage.newRelease"
+msgstr "Pubblicazione"
+
+msgid "catalog.manage.manageSeries"
+msgstr "Gestione della collana"
+
+msgid "catalog.manage.manageCategories"
+msgstr "Gestione delle categorie"
+
+msgid "catalog.manage.noMonographs"
+msgstr "Non ci sono Monografie assegnate."
+
+msgid "catalog.manage.featured"
+msgstr "In Evidenza"
+
+msgid "catalog.manage.categoryFeatured"
+msgstr "In evidenza"
+
+msgid "catalog.manage.seriesFeatured"
+msgstr "Nelle collane"
+
+msgid "catalog.manage.featuredSuccess"
+msgstr "Libro messo in evidenza."
+
+msgid "catalog.manage.notFeaturedSuccess"
+msgstr "Libro non messo in evidenza."
+
+msgid "catalog.manage.newReleaseSuccess"
+msgstr "Libro selezionato come nuova uscita."
+
+msgid "catalog.manage.notNewReleaseSuccess"
+msgstr "Libro deselezionato come nuova uscita."
+
+msgid "catalog.manage.feature.newRelease"
+msgstr "Nuova uscita"
+
+msgid "catalog.manage.feature.categoryNewRelease"
+msgstr "Nuova uscita nella categoria"
+
+msgid "catalog.manage.feature.seriesNewRelease"
+msgstr "Nuova uscita nelle collane"
+
+msgid "catalog.manage.nonOrderable"
+msgstr ""
+"Questa monografia non è ordinabile prima di essere stata messa in evidenza."
+
+msgid "catalog.manage.filter.searchByAuthorOrTitle"
+msgstr "Cerca per titolo o autore"
+
+msgid "catalog.manage.isFeatured"
+msgstr "Questo libro è in evidenza. Rendere questo libro non in evidenza."
+
+msgid "catalog.manage.isNotFeatured"
+msgstr "Questo libro non è in evidenza. Rendere questo libro in evidenza."
+
+msgid "catalog.manage.isNewRelease"
+msgstr ""
+"Questo libro è una nuova uscita. Togliere questo libro dalle nuove uscite."
+
+msgid "catalog.manage.isNotNewRelease"
+msgstr ""
+"Questo libro non è una nuova uscita. Rendere questo libro una nuova uscita."
+
+msgid "catalog.manage.noSubmissionsSelected"
+msgstr "Nessuna proposta è stata selezionata per essere aggiunta al catalogo."
+
+msgid "catalog.manage.submissionsNotFound"
+msgstr "Una o più proposte non sono state trovate."
+
+msgid "catalog.manage.findSubmissions"
+msgstr "Trova libri da aggiungere al catalogo"
+
+msgid "catalog.noTitles"
+msgstr "Nessun libro è stato ancora pubblicato."
+
+msgid "catalog.noTitlesNew"
+msgstr "Nessuna nuova uscita è disponibile al momento."
+
+msgid "catalog.noTitlesSearch"
+msgstr ""
+"Non sono stati trovati titoli corrispondenti alla ricerca per "
+"\"{$searchQuery}\"."
+
+msgid "catalog.feature"
+msgstr "Caratteristiche"
+
+msgid "catalog.featured"
+msgstr "In evidenza"
+
+msgid "catalog.featuredBooks"
+msgstr "Libri in evidenza"
+
+msgid "catalog.foundTitleSearch"
+msgstr ""
+"E' stato trovato un titolo corrispondente alla ricerca: \"{$searchQuery}\"."
+
+msgid "catalog.foundTitlesSearch"
+msgstr ""
+"Sono stati trovati {$number} titoli corrispondenti alla ricerca: "
+"\"{$searchQuery}\"."
+
+msgid "catalog.category.heading"
+msgstr "Tutti i volumi"
+
+msgid "catalog.newReleases"
+msgstr "Nuove pubblicazioni"
+
+msgid "catalog.dateAdded"
+msgstr "Aggiunto il {$dateAdded}"
+
+msgid "catalog.publicationInfo"
+msgstr "Informazioni sulla pubblicazione"
+
+msgid "catalog.published"
+msgstr "Pubblicato"
+
+msgid "catalog.forthcoming"
+msgstr "Uscite future"
+
+msgid "catalog.categories"
+msgstr "Categorie"
+
+msgid "catalog.parentCategory"
+msgstr "Categoria madre"
+
+msgid "catalog.category.subcategories"
+msgstr "Sottocategorie"
+
+msgid "catalog.aboutTheAuthor"
+msgstr "Su {$roleName}"
+
+msgid "catalog.loginRequiredForPayment"
+msgstr ""
+"Da notare: per l'acquisto di documenti, è necessario effettuare prima il "
+"login. Selezionando il documento da acquistare sarete indirizzati alla "
+"pagina di login. Tutti i documenti segnati con un'icona Open Access possono "
+"essere scaricati gratuitamente, senza effettuare il login."
+
+msgid "catalog.sortBy"
+msgstr "Ordinamento dei libri"
+
+msgid "catalog.sortBy.seriesDescription"
+msgstr "Scegli come ordinare i libri in questa collana."
+
+msgid "catalog.sortBy.categoryDescription"
+msgstr "Scegli come ordinare i libri in questa categoria."
+
+msgid "catalog.sortBy.catalogDescription"
+msgstr "Scegli come ordinare i libri in questo catalogo."
+
+msgid "catalog.sortBy.seriesPositionAsc"
+msgstr "Posizione delle collane (la più bassa in cima)"
+
+msgid "catalog.sortBy.seriesPositionDesc"
+msgstr "Posizione delle collane (la più alta in cima)"
+
+msgid "catalog.viewableFile.title"
+msgstr "{$type} visualizzazione del file {$title}"
+
+msgid "catalog.viewableFile.return"
+msgstr "Torna a visualizzare i dettagli di {$monographTitle}"
+
+msgid "submission.search"
+msgstr "Ricerca di libri"
+
+msgid "common.publication"
+msgstr "Libro"
+
+msgid "common.publications"
+msgstr "Libri"
+
+msgid "common.prefix"
+msgstr "Prefisso"
+
+msgid "common.preview"
+msgstr "Anteprima"
+
+msgid "common.feature"
+msgstr "In evidenza"
+
+msgid "common.searchCatalog"
+msgstr "Cerca nel Catalogo"
+
+msgid "common.moreInfo"
+msgstr "Informazioni aggiuntive"
+
+msgid "common.listbuilder.completeForm"
+msgstr "Per favore, riempi tutto il formulario."
+
+msgid "common.listbuilder.selectValidOption"
+msgstr "Per favore, scegli dalla lista una opzione valida."
+
+msgid "common.listbuilder.itemExists"
+msgstr "Non è possibile aggiungere due volte lo stesso elemento."
+
+msgid "common.software"
+msgstr "Open Monograph Press"
+
+msgid "common.omp"
+msgstr "OMP"
+
+msgid "common.homePageHeader.altText"
+msgstr "Testata della Homepage Header"
+
+msgid "navigation.catalog"
+msgstr "Catalogo"
+
+msgid "navigation.competingInterestPolicy"
+msgstr "Polcy per il conflitto di interessi"
+
+msgid "navigation.catalog.allMonographs"
+msgstr "Tutti i libri"
+
+msgid "navigation.catalog.manage"
+msgstr "Gestione"
+
+msgid "navigation.catalog.administration.short"
+msgstr "Amministrazione"
+
+msgid "navigation.catalog.administration"
+msgstr "Gestione del Catalogo"
+
+msgid "navigation.catalog.administration.categories"
+msgstr "Categorie"
+
+msgid "navigation.catalog.administration.series"
+msgstr "Collane"
+
+msgid "navigation.infoForAuthors"
+msgstr "Per Autori"
+
+msgid "navigation.infoForLibrarians"
+msgstr "Per Bibliotecari"
+
+msgid "navigation.infoForAuthors.long"
+msgstr "Informazioni per gli Autori"
+
+msgid "navigation.infoForLibrarians.long"
+msgstr "Informazioni per bibliotecari"
+
+msgid "navigation.newReleases"
+msgstr "Nuove pubblicazioni"
+
+msgid "navigation.published"
+msgstr "Pubblicato"
+
+msgid "navigation.wizard"
+msgstr "Procedura guidata"
+
+msgid "navigation.linksAndMedia"
+msgstr "Link ai Social Media"
+
+msgid "navigation.navigationMenus.catalog.description"
+msgstr "Link al tuo catalogo."
+
+msgid "navigation.skip.spotlights"
+msgstr "Passare ai libri in evidenza"
+
+msgid "navigation.navigationMenus.series.generic"
+msgstr "Collane"
+
+msgid "navigation.navigationMenus.series.description"
+msgstr "Link a una collana."
+
+msgid "navigation.navigationMenus.category.generic"
+msgstr "Categoria"
+
+msgid "navigation.navigationMenus.category.description"
+msgstr "Link a una categoria."
+
+msgid "navigation.navigationMenus.newRelease"
+msgstr "Nuove uscite"
+
+msgid "navigation.navigationMenus.newRelease.description"
+msgstr "Link alle tue nuove uscite."
+
+msgid "context.contexts"
+msgstr "case editrici"
+
+msgid "context.context"
+msgstr "Casa editrice"
+
+msgid "context.current"
+msgstr "Casa editrice corrente:"
+
+msgid "context.select"
+msgstr "Seleziona una casa editrice:"
+
+msgid "user.authorization.representationNotFound"
+msgstr "Il formato di pubblicazione richiesto non è stato trovato."
+
+msgid "user.noRoles.selectUsersWithoutRoles"
+msgstr "Aggiungi utenti senza ruoli in questa Press."
+
+msgid "user.noRoles.submitMonograph"
+msgstr "Fai una proposta"
+
+msgid "user.noRoles.submitMonographRegClosed"
+msgstr ""
+"Carica una Monografia: la registrazione di un Autore non è al momento attiva."
+
+msgid "user.noRoles.regReviewer"
+msgstr "Registrati come Reviewer"
+
+msgid "user.noRoles.regReviewerClosed"
+msgstr ""
+"Registrati come Reviewer: la registrazione di un Reviewer non è al momento "
+"attiva."
+
+msgid "user.reviewerPrompt"
+msgstr ""
+"Saresti disposto a fare la revisione delle proposte di questa casa editrice?"
+
+msgid "user.reviewerPrompt.userGroup"
+msgstr "Si, richiedere il ruolo di {$userGroup}."
+
+msgid "user.reviewerPrompt.optin"
+msgstr ""
+"Si, mi piacerebbe che mi contattassero per fare la revisione delle proposte "
+"di questa casa editrice."
+
+msgid "user.register.contextsPrompt"
+msgstr "A quali case editrici di questo sito le piacerebbe registrarsi?"
+
+msgid "user.register.otherContextRoles"
+msgstr "Richiedere i ruoli seguenti."
+
+msgid "user.register.noContextReviewerInterests"
+msgstr ""
+"Se hai chiesto di essere revisore di una casa editrice, inserisci i soggetti "
+"di interesse."
+
+msgid "user.role.manager"
+msgstr "Press manager"
+
+msgid "user.role.pressEditor"
+msgstr "Press editor"
+
+msgid "user.role.subEditor"
+msgstr "Editor di collana"
+
+msgid "user.role.copyeditor"
+msgstr "Redattore"
+
+msgid "user.role.proofreader"
+msgstr "Correttore di bozze"
+
+msgid "user.role.productionEditor"
+msgstr "Editor di produzione"
+
+msgid "user.role.managers"
+msgstr "Press managers"
+
+msgid "user.role.subEditors"
+msgstr "Editors di collana"
+
+msgid "user.role.editors"
+msgstr "Editori"
+
+msgid "user.role.copyeditors"
+msgstr "Redattori"
+
+msgid "user.role.proofreaders"
+msgstr "Correttori di bozze"
+
+msgid "user.role.productionEditors"
+msgstr "Editor di produzione"
+
+msgid "user.register.selectContext"
+msgstr "Scegli a quale casa editrice registrarti:"
+
+msgid "user.register.noContexts"
+msgstr "Non puoi registrarti presso nessuna Press ospitata su questo sito."
+
+msgid "user.register.privacyStatement"
+msgstr "Informativa sulla privacy"
+
+msgid "user.register.registrationDisabled"
+msgstr "Le registrazioni sono sospese."
+
+msgid "user.register.form.passwordLengthTooShort"
+msgstr "La password inserita non è abbastanza lunga."
+
+msgid "user.register.readerDescription"
+msgstr "Notifica per mezzo di email sulla pubblicazione di una monografia."
+
+msgid "user.register.authorDescription"
+msgstr "È possibile sottomettere documenti alla Press."
+
+msgid "user.register.reviewerDescriptionNoInterests"
+msgstr "Disponibile alla peer review per i documenti sottomessi alla Press."
+
+msgid "user.register.reviewerDescription"
+msgstr "Disponibile alla peer review per i documenti sottomessi al Sito."
+
+msgid "user.register.reviewerInterests"
+msgstr ""
+"Identifica i campi di tuo interesse per la peer review (aree e metodi di "
+"ricerca):"
+
+msgid "user.register.form.userGroupRequired"
+msgstr "Devi scegliere almeno un ruolo"
+
+msgid "user.register.form.privacyConsentThisContext"
+msgstr ""
+"Sì, accetto che i miei dati vengano raccolti e registrati in accordo con la "
+"dichiarazione sulla privacy "
+"della Casa Editrice."
+
+msgid "site.noPresses"
+msgstr "Non ci sono case editrici disponibili."
+
+msgid "site.pressView"
+msgstr "Consulta il sito web della Press"
+
+msgid "about.pressContact"
+msgstr "Per contattare la Press"
+
+msgid "about.aboutContext"
+msgstr "Informazioni"
+
+msgid "about.editorialTeam"
+msgstr "Comitato di redazione"
+
+msgid "about.editorialPolicies"
+msgstr "Policies redazionali"
+
+msgid "about.focusAndScope"
+msgstr "Focus e ambito"
+
+msgid "about.seriesPolicies"
+msgstr "Policies concernenti le collane e le categorie"
+
+msgid "about.submissions"
+msgstr "Proposte di pubblicazione"
+
+msgid "about.onlineSubmissions"
+msgstr "Inserimenti online"
+
+msgid "about.onlineSubmissions.login"
+msgstr "Vai al Login"
+
+msgid "about.onlineSubmissions.register"
+msgstr "Registra"
+
+msgid "about.onlineSubmissions.registrationRequired"
+msgstr ""
+"È necessario autenticarsi per proporre testi per la pubblicazione e seguirne "
+"il successivo iter. {$loginUrl} un account esistente o {$register} uno nuovo."
+
+msgid "about.onlineSubmissions.submissionActions"
+msgstr "{$newSubmission} o {$viewSubmissions}."
+
+msgid "about.onlineSubmissions.newSubmission"
+msgstr "Proponi un testo per la pubblicazione"
+
+msgid "about.onlineSubmissions.viewSubmissions"
+msgstr "verifica lo stato della tua proposta"
+
+msgid "about.authorGuidelines"
+msgstr "Linee Guida per gli Autori"
+
+msgid "about.submissionPreparationChecklist"
+msgstr "Controlli per gli autori"
+
+msgid "about.submissionPreparationChecklist.description"
+msgstr ""
+"Gli autori, prima di caricare sulla piattaforma i loro contributi, sono "
+"tenuti a verificare che essi rispettino i criteri elencati di seguito. I "
+"testi che non dovessero tenerne conto saranno restituiti agli autori."
+
+msgid "about.copyrightNotice"
+msgstr "Avviso di Copyright"
+
+msgid "about.privacyStatement"
+msgstr "Informativa sulla privacy"
+
+msgid "about.reviewPolicy"
+msgstr "Processo di Peer Review"
+
+msgid "about.publicationFrequency"
+msgstr "Frequenza di pubblicazione"
+
+msgid "about.openAccessPolicy"
+msgstr "Policy sull'Open Access"
+
+msgid "about.pressSponsorship"
+msgstr "Sponsorship per questa casa editrice"
+
+msgid "about.aboutThisPublishingSystem"
+msgstr ""
+"maggiori informazioni sul sistema di pubblicazione, la piattaforma e il "
+"flusso di lavoro di OMP/PKP."
+
+msgid "about.aboutThisPublishingSystem.altText"
+msgstr "Processo editoriale di OMP"
+
+msgid "about.aboutSoftware"
+msgstr "Su Open Monograph Press"
+
+msgid "about.aboutOMPPress"
+msgstr ""
+"Questa casa editrice usa Open Monograph Press {$ompVersion}, che è un "
+"software open source per la gestione dei processi editoriali sviluppato, "
+"supportato e distribuito gratuitamente dal Public Knowledge Project con "
+"Licenza pubblica GNU. Visita il sito di PKP learn more about the software. Si prega di contattare la casa editrice direttamente per domande e "
+"proposte di pubblicazione."
+
+msgid "about.aboutOMPSite"
+msgstr ""
+"Questa Casa Editrice usa Open Monograph Press {$ompVersion}, che è un "
+"software open source per la gestione dei processi editoriali, sviluppato, "
+"supportato e distribuito gratuitamente dalla Public Knowledge Project con Licenza pubblica GNU."
+
+msgid "help.searchReturnResults"
+msgstr "Torna ai Risultati della ricerca"
+
+msgid "help.goToEditPage"
+msgstr "Apri una nuova pagina per modificare questa informazione"
+
+msgid "installer.appInstallation"
+msgstr "Installazione di OMP"
+
+msgid "installer.ompUpgrade"
+msgstr "Aggiornamento di OMP"
+
+msgid "installer.installApplication"
+msgstr "Installa Open Monograph Press"
+
+msgid "installer.updatingInstructions"
+msgstr ""
+"Se stai aggiornando una installazione esistente di OMP, fai click qui per procedere."
+
+msgid "installer.installationInstructions"
+msgstr ""
+"Grazie per aver scaricato Open Monograph Press {$version}"
+"strong> del Public Knowledge Project. Prima di continuare, leggi il file README incluso in questo software. "
+"Per maggiori informazioni sul Public Knowledge Project e i suoi progetti di "
+"software, per favore visita il sito web PKP. Se ti imbatti in bug oppure vuoi porre quesiti "
+"tecnici su Open Monograph Press, vai sul forum di supporto oppure visita il sistema di bug reporting "
+"online di PKP. Benché il forum di supporto sia il modo preferito per questo "
+"tipo di contatti, puoi anche inviare una email al team usando questo "
+"indirizzo: pkp.contact@gmail.com"
+"a>.
"
+
+msgid "installer.preInstallationInstructionsTitle"
+msgstr "Passaggi per la pre-Installazione"
+
+msgid "installer.preInstallationInstructions"
+msgstr ""
+"1. I file e le cartelle seguenti (ed i loro contenuti) devono essere "
+"scrivibili:
\n"
+"\n"
+"\t- config.inc.php è scrivibile (opzionale): {$writable_config}"
+"li>\n"
+"\t
- public/ è scrivibile: {$writable_public}
\n"
+"\t- cache/ è scrivibile: {$writable_cache}
\n"
+"\t- cache/t_cache/ è scrivibile: {$writable_templates_cache}"
+"li>\n"
+"\t
- cache/t_compile/ è scrivibile: {$writable_templates_compile}"
+"li>\n"
+"\t
- cache/_db è scrivibile: {$writable_db_cache}
\n"
+"
\n"
+"\n"
+"2. Deve essere creata e resa scrivibile una cartella per conservare i "
+"file caricati (vedi \"Impostazioni dei File\" sotto).
"
+
+msgid "installer.upgradeInstructions"
+msgstr ""
+"Versione OMP {$version}
\n"
+"\n"
+"Grazie per aver scaricato Open Monograph Press del "
+"Public Knowledge Project. Prima di continuare, leggi i file README e UPGRADE inclusi in questo software. Per maggiori informazioni sul "
+"Public Knowledge Project e i suoi progetti di software, per favore visita il "
+"sito di PKP. Se ti "
+"imbatti in bug oppure vuoi porre quesiti tecnici su Open Monograph Press, "
+"vai al forum di "
+"supporto o visita il sistema di bug reporting sul sito di PKP. Benché il "
+"forum di supporto sia il modo preferito per questo tipo di contatti, puoi "
+"anche inviare una email al team usando questo indirizzo: pkp.contact@gmail.com.
\n"
+"È fortemente raccomandato che tu esegua il backup del "
+"database, delle cartelle e della cartella di installazione di OMP prima di "
+"procedere.
"
+
+msgid "installer.localeSettingsInstructions"
+msgstr ""
+"Per un supporto completo a Unicode il PHP richiede la library mbstring (attiva di "
+"default nelle più recenti installazioni PHP). È possibile che si abbiano "
+"problemi nell'uso di set di caratteri estesi se il server non supporta "
+"queste richieste.\n"
+"
\n"
+"Il server supporta al momento mbstring: {$supportsMBString}"
+
+msgid "installer.allowFileUploads"
+msgstr ""
+"Il server consente al momento di caricare i file: {$allowFileUploads}"
+""
+
+msgid "installer.maxFileUploadSize"
+msgstr ""
+"Il server consente al momento di caricare un file le cui dimensioni massime "
+"sono: {$maxFileUploadSize}"
+
+msgid "installer.localeInstructions"
+msgstr ""
+"La lingua principale da utilizzare per questo sistema. Per favore, consulta "
+"la documentazione OMP se sei interessato al supporto di lingue non elencate."
+
+msgid "installer.additionalLocalesInstructions"
+msgstr ""
+"Selezionare altre lingue aggiuntive da supportare in questo sistema. Queste "
+"lingue saranno disponibili per l'uso dalle Ppress ospitate sul sito. Altre "
+"lingue possono essere installate in qualsiasi momento dall'interfaccia di "
+"amministrazione del sito. I parametri contrassegnati con un * possono essere "
+"incompleti.."
+
+msgid "installer.filesDirInstructions"
+msgstr ""
+"Inserisci il percorso completo per la cartella in cui vuoi che vengano "
+"salvati i file scaricati. Questa cartella non dovrebbe essere direttamente "
+"accessibile via web. Per favore, prima dell'installazione assicurati "
+"che la cartella esista e sia scrivibile. I nomi dei percorsi "
+"Windows dovrebbero usare i forward slashes, per esempio \"C:/mypress/files\"."
+
+msgid "installer.databaseSettingsInstructions"
+msgstr ""
+"OMP richiede l'accesso ad un database SQL per conservare i suoi dati. Vedi i "
+"requisiti di sistema sopra indicati per avere la lista dei database "
+"supportati. Nei campi che seguono, fornisci i parametri necessari per la "
+"connessione al database."
+
+msgid "installer.upgradeApplication"
+msgstr "Aggiorna Open Monograph Press"
+
+msgid "installer.overwriteConfigFileInstructions"
+msgstr ""
+"IMPORTANTE!
\n"
+"Il programma di installazione potrebbe non riuscire a sovrascrivere il "
+"file di configurazione. Prima di tentare di utilizzare il sistema, apri il "
+"file config.inc.php con un editor testuale e sostituisci il "
+"contenuto con il contenuto sottostante.
"
+
+#, fuzzy
+msgid "installer.installationComplete"
+msgstr ""
+"L'installazione di OMP è stata completata con successo.
\n"
+"Per iniziare a utilizzare il sistema, effettua il "
+"login con il nome utente e la password inseriti nella pagina precedente."
+"
\n"
+"Se vuoi ricevere notizie e aggiornamenti, per favore registrati "
+"a https://pkp.sfu.ca/developer-newsletter. Se hai "
+"domande o commenti da fare, per favore visita il forum di supporto.
"
+
+#, fuzzy
+msgid "installer.upgradeComplete"
+msgstr ""
+"L'aggiornamento di OMP alla versione {$version} è stato completato con "
+"successo.
\n"
+"Nel file di configurazione config.inc.php non dimenticare di "
+"impostare su On il parametro \"installato\"
\n"
+" Se non ti sei già registrato e desideri ricevere news e aggiornamenti, "
+"per favore registrati a https://lists."
+"publicknowledgeproject.org/lists/. Se hai domande o commenti, "
+"per favore visita il forum di supporto.
"
+
+msgid "log.review.reviewDueDateSet"
+msgstr ""
+"La data di scadenza per il round {$round} di revisione della proposta "
+"{$submissionId} da parte di {$reviewerName} è stata impostata a {$dueDate}."
+
+msgid "log.review.reviewDeclined"
+msgstr ""
+"{$reviewerName} ha rifiutato il round {$round} di revisione per la proposta "
+"{$submissionId}."
+
+msgid "log.review.reviewAccepted"
+msgstr ""
+"{$reviewerName} ha accettato il round {$round} di revisione della proposta "
+"{$submissionId}."
+
+msgid "log.review.reviewUnconsidered"
+msgstr ""
+"{$editorName} ha indicato il round {$round} della revisione per la proposta "
+"{$submissionId} come non considerato."
+
+msgid "log.editor.decision"
+msgstr ""
+"Una decisione editoriale ({$decision}) per il libro {$submissionId} è stata "
+"registrata da {$editorName}."
+
+msgid "log.editor.recommendation"
+msgstr ""
+"Una raccomandazione editoriale ({$decision}) per il libro {$submissionId} è "
+"stata registrata da {$editorName}."
+
+msgid "log.editor.archived"
+msgstr "La proposta {$submissionId} è stata archiviata."
+
+msgid "log.editor.restored"
+msgstr "La proposta {$submissionId} è stata rimessa in coda."
+
+msgid "log.editor.editorAssigned"
+msgstr ""
+"{$editorName} è stato assegnato come editor della proposta {$submissionId}."
+
+msgid "log.proofread.assign"
+msgstr ""
+"{$assignerName} ha assegnato {$proofreaderName} come correttore di bozze "
+"della proposta {$submissionId}."
+
+msgid "log.proofread.complete"
+msgstr ""
+"{$proofreaderName} ha inviato la proposta {$submissionId} in produzione."
+
+msgid "log.imported"
+msgstr "{$userName} ha importato il libro {$submissionId}."
+
+msgid "notification.addedIdentificationCode"
+msgstr "Codice di identificazione aggiunto."
+
+msgid "notification.editedIdentificationCode"
+msgstr "Codice di identificazione modificato."
+
+msgid "notification.removedIdentificationCode"
+msgstr "Codice di identificazione rimosso."
+
+msgid "notification.addedPublicationDate"
+msgstr "Data di pubblicazione aggiunta."
+
+msgid "notification.editedPublicationDate"
+msgstr "Data di pubblicazione modificata."
+
+msgid "notification.removedPublicationDate"
+msgstr "Data di pubblicazione rimossa."
+
+msgid "notification.addedPublicationFormat"
+msgstr "Formato di pubblicazione aggiunto."
+
+msgid "notification.editedPublicationFormat"
+msgstr "Formato di pubblicazione modificato."
+
+msgid "notification.removedPublicationFormat"
+msgstr "Formato di pubblicazione rimosso."
+
+msgid "notification.addedSalesRights"
+msgstr "Diritti di vendita aggiunti."
+
+msgid "notification.editedSalesRights"
+msgstr "Diritti di vendita modificati."
+
+msgid "notification.removedSalesRights"
+msgstr "Diritti di vendita rimossi."
+
+msgid "notification.addedRepresentative"
+msgstr "Rappresentante aggiunto."
+
+msgid "notification.editedRepresentative"
+msgstr "Rappresentante modificato."
+
+msgid "notification.removedRepresentative"
+msgstr "Rappresentante rimosso."
+
+msgid "notification.addedMarket"
+msgstr "Mercato aggiunto."
+
+msgid "notification.editedMarket"
+msgstr "Mercato modificato."
+
+msgid "notification.removedMarket"
+msgstr "Mercato rimosso."
+
+msgid "notification.addedSpotlight"
+msgstr "Spotlight aggiunto."
+
+msgid "notification.editedSpotlight"
+msgstr "Spotlight modificato."
+
+msgid "notification.removedSpotlight"
+msgstr "Spotlight rimosso."
+
+msgid "notification.savedCatalogMetadata"
+msgstr "Metadati del Catalogo salvati."
+
+msgid "notification.savedPublicationFormatMetadata"
+msgstr "Metadati del formato di pubblicazione salavti."
+
+msgid "notification.proofsApproved"
+msgstr "Bozze approvate."
+
+msgid "notification.removedSubmission"
+msgstr "Proposta cancellata."
+
+msgid "notification.type.submissionSubmitted"
+msgstr "Una nuova monografia, \"{$title},\" è stata proposta."
+
+msgid "notification.type.editing"
+msgstr "Modifica eventi"
+
+msgid "notification.type.reviewing"
+msgstr "Revisione di Eventi"
+
+msgid "notification.type.site"
+msgstr "Eventi del Sito"
+
+msgid "notification.type.submissions"
+msgstr "Eventi per la Proposta"
+
+msgid "notification.type.userComment"
+msgstr "Un lettore ha lasciato un commento su \"{$title}\"."
+
+msgid "notification.type.public"
+msgstr "Avvisi pubblici"
+
+msgid "notification.type.editorAssignmentTask"
+msgstr ""
+"È stata proposta una nuova Monografia, a cui occorre assegnare un editor."
+
+msgid "notification.type.copyeditorRequest"
+msgstr "Sei stato sollecitato a fare il copyediting per \"{$file}\"."
+
+msgid "notification.type.layouteditorRequest"
+msgstr "Sei stato sollecitato a rivedere il layout per \"{$title}\"."
+
+msgid "notification.type.indexRequest"
+msgstr "Sei stato sollecitato a creare un indice per \"{$title}\"."
+
+msgid "notification.type.editorDecisionInternalReview"
+msgstr "Processo di valutazione interno cominciato."
+
+msgid "notification.type.approveSubmission"
+msgstr ""
+"Questa proposta è in attesa di approvazione all'interno del tool \"Catalogo "
+"Entry\", prima che apparirà nel Catalogo pubblico."
+
+msgid "notification.type.approveSubmissionTitle"
+msgstr "In attesa di approvazione."
+
+msgid "notification.type.formatNeedsApprovedSubmission"
+msgstr ""
+"I metadati per la voce di catalogo devono essere approvati prima che il "
+"formato di pubblicazione venga incluso nel catalogo. Per approvare i "
+"metadati del catalogo, clicca sulla scheda Monografia sopra."
+
+msgid "notification.type.configurePaymentMethod.title"
+msgstr "Nessun metodo di pagamento configurato."
+
+msgid "notification.type.configurePaymentMethod"
+msgstr ""
+"È necessario definire una modalità di pagamento prima di definire i "
+"parametri del commercio elettronico."
+
+msgid "notification.type.visitCatalogTitle"
+msgstr "Gestione del Catalogo"
+
+#, fuzzy
+msgid "notification.type.visitCatalog"
+msgstr ""
+"La monografia è stata approvata. Per favore, visita il Catalogo per gestire "
+"i dettagli, usando il link qui sopra."
+
+msgid "user.authorization.invalidReviewAssignment"
+msgstr "Non puoi accedere perché non sei un revisore di questa monografia."
+
+msgid "user.authorization.monographAuthor"
+msgstr "Non puoi accedere perché non sei l'autore di questa monografia."
+
+msgid "user.authorization.monographReviewer"
+msgstr ""
+"Non puoi accedere perché non sei uno dei revisori assegnati a questa "
+"monografia."
+
+msgid "user.authorization.monographFile"
+msgstr "Non puoi accedere al file associato alla monografia."
+
+msgid "user.authorization.invalidMonograph"
+msgstr "Hai richiesto una Monografia non valida o inesistente!"
+
+msgid "user.authorization.noContext"
+msgstr "Nessuna Casa Editrice trovata."
+
+msgid "user.authorization.seriesAssignment"
+msgstr ""
+"Stai cercando di accedere ad una monografia che non fa parte di questa "
+"collana."
+
+msgid "user.authorization.workflowStageAssignmentMissing"
+msgstr ""
+"Accesso negato! Non sei stato assegnato a questo stadio del flusso di lavoro."
+
+msgid "user.authorization.workflowStageSettingMissing"
+msgstr ""
+"Accesso negato! Il gruppo di utenti a cui appartieni non è stato assegnato a "
+"questo stadio del flusso di lavoro. Per favore, verifica le tue "
+"impostazioni ."
+
+msgid "payment.directSales"
+msgstr "Scarica dal sito web della Press"
+
+msgid "payment.directSales.price"
+msgstr "Prezzo"
+
+msgid "payment.directSales.availability"
+msgstr "Disponibilità"
+
+msgid "payment.directSales.catalog"
+msgstr "Catalogo"
+
+msgid "payment.directSales.approved"
+msgstr "Approvato"
+
+msgid "payment.directSales.priceCurrency"
+msgstr "Prezzo ({$currency})"
+
+msgid "payment.directSales.numericOnly"
+msgstr "I prezzi devono essere solo numeri. Non includere simboli di valuta."
+
+msgid "payment.directSales.directSales"
+msgstr "Vendita diretta"
+
+msgid "payment.directSales.amount"
+msgstr "{$amount} ({$currency})"
+
+msgid "payment.directSales.notAvailable"
+msgstr "Non disponibile"
+
+msgid "payment.directSales.notSet"
+msgstr "Non stabilito"
+
+msgid "payment.directSales.openAccess"
+msgstr "Accesso Aperto"
+
+msgid "payment.directSales.price.description"
+msgstr ""
+"I formati di file possono essere resi disponibili per il download dal sito "
+"web della Press in modalità Open Access, a costo zero per i lettori, oppure "
+"messi in vendita diretta (utilizzando una modalità di pagamento online, come "
+"configurato in Distribuzione). Per questo file indicare la base di accesso."
+
+msgid "payment.directSales.validPriceRequired"
+msgstr "Occorre indicare un numero valido per il prezzo."
+
+msgid "payment.directSales.purchase"
+msgstr "Acquista ({$amount} {$currency})"
+
+msgid "payment.directSales.download"
+msgstr "Scarica"
+
+msgid "payment.directSales.monograph.name"
+msgstr "Acquista la monografia o scarica un capitolo"
+
+msgid "payment.directSales.monograph.description"
+msgstr ""
+"Questa operazione è per l'acquisto del download di una singola monografia o "
+"capitolo di monografia."
+
+msgid "debug.notes.helpMappingLoad"
+msgstr ""
+"L'XML help mapping file {$filename} è stato ricaricato durante la ricerca di "
+"{$id}."
+
+msgid "rt.metadata.pkp.dctype"
+msgstr "Libro"
+
+msgid "submission.pdf.download"
+msgstr "Scarica questo file PDF"
+
+msgid "user.profile.form.showOtherContexts"
+msgstr "Registrarsi con altre case editrici"
+
+msgid "user.profile.form.hideOtherContexts"
+msgstr "Nascondere altre case editrici"
+
+msgid "submission.round"
+msgstr "Round {$round}"
+
+msgid "user.authorization.invalidPublishedSubmission"
+msgstr "E' stata specificata una proposta pubblicata non valida."
+
+msgid "catalog.coverImageTitle"
+msgstr "Immagine di copertina"
+
+msgid "grid.catalogEntry.chapters"
+msgstr "Capitoli"
+
+msgid "search.results.orderBy.article"
+msgstr "Titolo dell'articolo"
+
+msgid "search.results.orderBy.author"
+msgstr "Autore"
+
+msgid "search.results.orderBy.date"
+msgstr "Data di pubblicazione"
+
+msgid "search.results.orderBy.monograph"
+msgstr "Titolo della monografia"
+
+msgid "search.results.orderBy.press"
+msgstr "Nome della Casa Editrice"
+
+msgid "search.results.orderBy.popularityAll"
+msgstr "Popolarità (di sempre)"
+
+msgid "search.results.orderBy.popularityMonth"
+msgstr "Popolarità (ultimo mese)"
+
+msgid "search.results.orderBy.relevance"
+msgstr "Rilevanza"
+
+msgid "search.results.orderDir.asc"
+msgstr "In ascesa"
+
+msgid "search.results.orderDir.desc"
+msgstr "In discesa"
+
+#~ msgid "monograph.coverImage.uploadInstructions"
+#~ msgstr ""
+#~ "Accertarsi che l'altezza dell'immagine non sia più del 150% della sua "
+#~ "larghezza, altrimenti il carosello non riuscirà a mostrare la copertina "
+#~ "nella sua interezza."
+
+#~ msgid "monograph.currentCoverImage"
+#~ msgstr "Immagine corrente"
+
+#~ msgid "monograph.publicationFormat.formatMetadata"
+#~ msgstr "Formato dei metadati"
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.title"
+#~ msgstr "Approvazione del formato"
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.message"
+#~ msgstr ""
+#~ "Questo formato sarà disponibile per i lettori, attraverso i "
+#~ "file scaricabili che appariranno accanto al record del libro e/o "
+#~ "attraverso ulteriori azioni intraprese dal sito per distribuire il libro."
+#~ "
"
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.removeMessage"
+#~ msgstr ""
+#~ "Questo formato non sarà più disponibile em> per i lettori, "
+#~ "attraverso i file scaricabili che appariranno accanto al record del libro "
+#~ "e/o attraverso ulteriori azioni intraprese dal sito per distribuire il "
+#~ "libro.
"
+
+#~ msgid ""
+#~ "grid.catalogEntry.availablePublicationFormat.catalogNotApprovedWarning"
+#~ msgstr "Record di catalogo non approvato."
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.notApprovedWarning"
+#~ msgstr "Questo formato non è disponibile nel record."
+
+#~ msgid "grid.catalogEntry.availablePublicationFormat.proofNotApproved"
+#~ msgstr "Bozza non approvata."
+
+#~ msgid "grid.catalogEntry.representativeFax"
+#~ msgstr "Fax"
+
+#~ msgid "grid.content.spotlights.category.sidebar"
+#~ msgstr "Sidebar"
+
+#~ msgid "grid.action.editApprovedProof"
+#~ msgstr "Modifica questa prova già approvata"
+
+#~ msgid "series.featured"
+#~ msgstr "In primo piano"
+
+#~ msgid "grid.category.categories"
+#~ msgstr "Categorie"
+
+#~ msgid "grid.category.add"
+#~ msgstr "Aggiungi una categoria"
+
+#~ msgid "grid.category.edit"
+#~ msgstr "Modifica la categoria"
+
+#~ msgid "grid.category.name"
+#~ msgstr "Nome"
+
+#~ msgid "grid.category.path"
+#~ msgstr "Percorso"
+
+#~ msgid "grid.category.urlWillBe"
+#~ msgstr "L'indirizzo URL della categoria sarà {$sampleUrl}"
+
+#~ msgid "grid.series.urlWillBe"
+#~ msgstr ""
+#~ "L'indirizzo URL della collana sarà {$sampleUrl}. Il 'Percorso' consiste "
+#~ "in una stringa di caratteri usati per identificare in modo univoco una "
+#~ "collana."
+
+#~ msgid "grid.category.pathAlphaNumeric"
+#~ msgstr "Il percorso per la categoria può contenere solo lettere e numeri."
+
+#~ msgid "grid.category.pathExists"
+#~ msgstr ""
+#~ "Il percorso per la categoria già esiste. Per favore, inserisci un "
+#~ "percorso unico."
+
+#~ msgid "grid.category.description"
+#~ msgstr "Descrizione"
+
+#~ msgid "grid.category.parentCategory"
+#~ msgstr "Categoria principale"
+
+#~ msgid "grid.category.removeText"
+#~ msgstr "Sei sicuro di voler rimuovere questa categoria?"
+
+#~ msgid "grid.category.nameRequired"
+#~ msgstr "Per favore, inserisci il nome di una categoria."
+
+#~ msgid "grid.category.categoryDetails"
+#~ msgstr "Dettagli della categoria"
+
+#~ msgid "catalog.manage.managementIntroduction"
+#~ msgstr ""
+#~ "Benvenuto nella pagina di gestione del Catalogo. A partire da questa "
+#~ "pagina è possibile pubblicare le novità del catalogo \"In primo piano\", "
+#~ "rivedere econfigurare la lista delle \"novità\", rivedere e disporre i "
+#~ "libri per Categorie e Serie."
+
+#~ msgid "catalog.manage.entryDescription"
+#~ msgstr ""
+#~ "Per inserire un libro nel catalogo, seleziona la scheda Monografia e "
+#~ "compila le informazioni necessarie. Le informazioni per ciascuno dei "
+#~ "formati del libro possono essere incluse nella voce di catalogo "
+#~ "selezionando la scheda per il formato. Le specifiche che riguardano i "
+#~ "metadati sono basate su ONIX for Books, che è uno standard internazionale "
+#~ "utilizzato dall'industria editoriale per la comunicazione delle "
+#~ "informazioni sui prodotti."
+
+#~ msgid "catalog.manage.spotlightDescription"
+#~ msgstr ""
+#~ "Sulla homepage possono essere visualizzati tre spotlights (per es. Libri "
+#~ "sotto i riflettori), che riportano titolo, copertina e testo."
+
+#~ msgid "catalog.browseTitles"
+#~ msgstr "Consulta {$numTitles} Titoli"
+
+#~ msgid "catalog.allBooks"
+#~ msgstr "Tutti i libri"
+
+#~ msgid "catalog.relatedCategories"
+#~ msgstr "Categorie collegate"
+
+#~ msgid "catalog.noBioInfo"
+#~ msgstr "Non è disponibile al momento nessuna biografia."
+
+#~ msgid "common.plusMore"
+#~ msgstr "+ Più"
+
+#~ msgid "common.catalogInformation"
+#~ msgstr ""
+#~ "Non è necessario completare le informazioni nel catalogo quando il "
+#~ "documento viene caricato per la prima volta, eccetto il titolo e di un "
+#~ "abstract."
+
+#~ msgid "common.prefixAndTitle.tip"
+#~ msgstr ""
+#~ "Se il libro comincia con un articolo, \"Un/Uno/Una\" o \"Il/Lo/La/I/Gli/Le"
+#~ "\" (o per qualsiasi parola non debba essere presa in considerazione per "
+#~ "l'ordine alfabetico) inserisce la parola in Prefisso."
+
+#~ msgid "common.openMonographPress"
+#~ msgstr "Open Monograph Press"
+
+#~ msgid "press.presses"
+#~ msgstr "Presses"
+
+#~ msgid "press.path"
+#~ msgstr "Percorso"
+
+#~ msgid "user.register.completeForm"
+#~ msgstr "Riempi questo formulario per registrarti presso questa Press."
+
+#~ msgid "user.register.alreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Clicca qui se sei già registrato in una "
+#~ "Press su questo sito."
+
+#~ msgid "user.register.notAlreadyRegisteredOtherContext"
+#~ msgstr ""
+#~ "Clicca qui se non sei già "
+#~ "registrato in una Press su questo sito."
+
+#~ msgid "user.register.loginToRegister"
+#~ msgstr ""
+#~ "Inserisci la tua username e password corrente per registrarti con questa "
+#~ "Press."
+
+#~ msgid "about.aboutThePress"
+#~ msgstr "Caratteri di SHARE Press"
+
+#~ msgid "about.contributors"
+#~ msgstr "Fonti di finanziamento"
+
+#~ msgid "about.onlineSubmissions.registration"
+#~ msgstr "Vai alla Registrazione"
+
+#~ msgid "about.onlineSubmissions.haveAccount"
+#~ msgstr "Hai già una Username/Password per {$pressTitle}?"
+
+#~ msgid "about.onlineSubmissions.needAccount"
+#~ msgstr "Hai bisogno di una Username/Password?"
+
+#~ msgid "installer.ompInstallation"
+#~ msgstr "Installazione di OMP"
+
+#~ msgid "notification.mailListDescription"
+#~ msgstr ""
+#~ "Inserisci il tuo indirizzo email per ricevere le notifiche appena nuovi "
+#~ "contenuti vengono aggiunti alla Press."
+
+#~ msgid "notification.notificationsPublicDescription"
+#~ msgstr ""
+#~ "Questa pagina include gli aggiornamenti associati a questa Press, come le "
+#~ "nuove monografie o le nuove collane. Puoi ricevere le notifiche degli "
+#~ "aggiornamenti sottoscrivendo i feed RSS (cliccando sull'immagine a "
+#~ "destra), oppure attraverso la email."
+
+#~ msgid "notification.removedFooterLink"
+#~ msgstr "Link a piè di pagina rimosso."
+
+#~ msgid "notification.type.roundStatusTitle"
+#~ msgstr "Status del Round {$round}"
+
+#~ msgid "notification.type.metadataModified"
+#~ msgstr "I metadati di \"{$title}\" sono stati modificati."
+
+#~ msgid "notification.type.reviewerComment"
+#~ msgstr "Un revisore ha lasciato un commento su \"{$title}\"."
+
+#~ msgid "plugins.categories.viewableFiles"
+#~ msgstr "Plugin per i file pubblicati"
+
+#~ msgid "submissionGroup.assignedSubEditors"
+#~ msgstr "Editor assegnati"
+
+msgid "section.section"
+msgstr "Collana"
diff --git a/locale/it/submission.po b/locale/it/submission.po
new file mode 100644
index 00000000000..aa69597bbc4
--- /dev/null
+++ b/locale/it/submission.po
@@ -0,0 +1,685 @@
+# Alfredo Cosco , 2021.
+# Stefano Bolelli Gallevi , 2022.
+# Fulvio Delle Donne , 2022.
+# Michele Tutone , 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-01-22T21:00:19+00:00\n"
+"PO-Revision-Date: 2023-04-05 08:48+0000\n"
+"Last-Translator: Michele Tutone \n"
+"Language-Team: Italian