diff --git a/.travis.yml b/.travis.yml index 403a10b770..901dee8186 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,44 @@ sudo: required dist: trusty + +env: + # Install the latest docker-compose version for ci testing. + # The default installation in travis is not compatible with the latest docker-compose file version. + COMPOSE_VERSION: 1.24.1 + # The ci step will test the dspace-angular code against DSpace REST. + # Direct that step to utilize a DSpace REST service that has been started in docker. + DSPACE_REST_HOST: localhost + DSPACE_REST_PORT: 8080 + DSPACE_REST_NAMESPACE: '/server/api' + DSPACE_REST_SSL: false + +before_install: + # Docker Compose Install + - curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose + - chmod +x docker-compose + - sudo mv docker-compose /usr/local/bin + +install: + # Start up DSpace 7 using the entities database dump + - docker-compose -f ./docker/docker-compose-travis.yml up -d + # Use the dspace-cli image to populate the assetstore. Trigger a discovery and oai update + - docker-compose -f ./docker/cli.yml -f ./docker/cli.assetstore.yml run --rm dspace-cli + - travis_retry yarn install + +before_script: + # The following line could be enabled to verify that the rest server is responding. + # Currently, "yarn run build" takes enough time to run to allow the service to be available + #- curl http://localhost:8080/ + +after_script: + - docker-compose -f ./docker/docker-compose-travis.yml down + addons: apt: sources: - google-chrome packages: + - dpkg - google-chrome-stable language: node_js @@ -18,9 +52,6 @@ cache: bundler_args: --retry 5 -install: - - travis_retry yarn install - script: # Use Chromium instead of Chrome. - export CHROME_BIN=chromium-browser diff --git a/README.md b/README.md index 1b3ed9b7cb..a9f2b0861b 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,11 @@ yarn run clean:prod yarn run clean:dist ``` +Running the application with Docker +----------------------------------- +See [Docker Runtime Options](docker/README.md) + + Testing ------- diff --git a/config/environment.test.js b/config/environment.test.js index 0652755bc7..6897e29aa7 100644 --- a/config/environment.test.js +++ b/config/environment.test.js @@ -1,5 +1,4 @@ +// This configuration is currently only being used for unit tests, end-to-end tests use environment.dev.ts module.exports = { - theme: { - name: 'default', - } + }; diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000000..f7b4b04848 --- /dev/null +++ b/docker/README.md @@ -0,0 +1,79 @@ +# Docker Compose files + +## docker directory +- docker-compose.yml + - Starts DSpace Angular with Docker Compose from the current branch. This file assumes that a DSpace 7 REST instance will also be started in Docker. +- docker-compose-rest.yml + - Runs a published instance of the DSpace 7 REST API - persists data in Docker volumes +- docker-compose-travis.yml + - Runs a published instance of the DSpace 7 REST API for CI testing. The database is re-populated from a SQL dump on each startup. +- cli.yml + - Docker compose file that provides a DSpace CLI container to work with a running DSpace REST container. +- cli.assetstore.yml + - Docker compose file that will download and install data into a DSpace REST assetstore. This script points to a default dataset that will be utilized for CI testing. +- environment.dev.js + - Environment file for running DSpace Angular in Docker +- local.cfg + - Environment file for running the DSpace 7 REST API in Docker. + + +## To refresh / pull DSpace images from Dockerhub +``` +docker-compose -f docker/docker-compose.yml pull +``` + +## To build DSpace images using code in your branch +``` +docker-compose -f docker/docker-compose.yml build +``` + +## To start DSpace (REST and Angular) from your branch + +``` +docker-compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml up -d +``` + +## Run DSpace REST and DSpace Angular from local branches. +_The system will be started in 2 steps. Each step shares the same docker network._ + +From DSpace/DSpace (build as needed) +``` +docker-compose -p d7 up -d +``` + +From DSpace/DSpace-angular +``` +docker-compose -p d7 -f docker/docker-compose.yml up -d +``` + +## Ingest test data from AIPDIR + +Create an administrator +``` +docker-compose -p d7 -f docker/cli.yml run --rm dspace-cli create-administrator -e test@test.edu -f admin -l user -p admin -c en +``` + +Load content from AIP files +``` +docker-compose -p d7 -f docker/cli.yml -f ./docker/cli.ingest.yml run --rm dspace-cli +``` + +## Alternative Ingest - Use Entities dataset +_Delete your docker volumes or use a unique project (-p) name_ + +Start DSpace with Database Content from a database dump +``` +docker-compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml -f docker/db.entities.yml up -d +``` + +Load assetstore content and trigger a re-index of the repository +``` +docker-compose -p d7 -f docker/cli.yml -f docker/cli.assetstore.yml run --rm dspace-cli +``` + +## End to end testing of the rest api (runs in travis). +_In this instance, only the REST api runs in Docker using the Entities dataset. Travis will perform CI testing of Angular using Node to drive the tests._ + +``` +docker-compose -p d7ci -f docker/docker-compose-travis.yml up -d +``` diff --git a/docker/cli.assetstore.yml b/docker/cli.assetstore.yml new file mode 100644 index 0000000000..075c494a6c --- /dev/null +++ b/docker/cli.assetstore.yml @@ -0,0 +1,23 @@ +version: "3.7" + +networks: + dspacenet: + +services: + dspace-cli: + networks: + dspacenet: {} + environment: + - LOADASSETS=https://www.dropbox.com/s/zv7lj8j2lp3egjs/assetstore.tar.gz?dl=1 + entrypoint: + - /bin/bash + - '-c' + - | + if [ ! -z $${LOADASSETS} ] + then + curl $${LOADASSETS} -L -s --output /tmp/assetstore.tar.gz + cd /dspace + tar xvfz /tmp/assetstore.tar.gz + fi + + /dspace/bin/dspace index-discovery diff --git a/docker/cli.ingest.yml b/docker/cli.ingest.yml new file mode 100644 index 0000000000..f5ec7eb90d --- /dev/null +++ b/docker/cli.ingest.yml @@ -0,0 +1,32 @@ +# +# The contents of this file are subject to the license and copyright +# detailed in the LICENSE and NOTICE files at the root of the source +# tree and available online at +# +# http://www.dspace.org/license/ +# + +version: "3.7" + +services: + dspace-cli: + environment: + - AIPZIP=https://github.com/DSpace-Labs/AIP-Files/raw/master/dogAndReport.zip + - ADMIN_EMAIL=test@test.edu + - AIPDIR=/tmp/aip-dir + entrypoint: + - /bin/bash + - '-c' + - | + rm -rf $${AIPDIR} + mkdir $${AIPDIR} /dspace/upload + cd $${AIPDIR} + pwd + curl $${AIPZIP} -L -s --output aip.zip + unzip aip.zip + cd $${AIPDIR} + + /dspace/bin/dspace packager -r -a -t AIP -e $${ADMIN_EMAIL} -f -u SITE*.zip + /dspace/bin/dspace database update-sequences + + /dspace/bin/dspace index-discovery diff --git a/docker/cli.yml b/docker/cli.yml new file mode 100644 index 0000000000..ea5e3e0595 --- /dev/null +++ b/docker/cli.yml @@ -0,0 +1,22 @@ +version: "3.7" + +services: + dspace-cli: + image: "${DOCKER_OWNER:-dspace}/dspace-cli:${DSPACE_VER:-dspace-7_x}" + container_name: dspace-cli + #environment: + volumes: + - "assetstore:/dspace/assetstore" + - "./local.cfg:/dspace/config/local.cfg" + entrypoint: /dspace/bin/dspace + command: help + networks: + - dspacenet + tty: true + stdin_open: true + +volumes: + assetstore: + +networks: + dspacenet: diff --git a/docker/db.entities.yml b/docker/db.entities.yml new file mode 100644 index 0000000000..91d96bd72b --- /dev/null +++ b/docker/db.entities.yml @@ -0,0 +1,16 @@ +# +# The contents of this file are subject to the license and copyright +# detailed in the LICENSE and NOTICE files at the root of the source +# tree and available online at +# +# http://www.dspace.org/license/ +# + +version: "3.7" + +services: + dspacedb: + image: dspace/dspace-postgres-pgcrypto:loadsql + environment: + # Double underbars in env names will be replaced with periods for apache commons + - LOADSQL=https://www.dropbox.com/s/xh3ack0vg0922p2/configurable-entities-2019-05-08.sql?dl=1 diff --git a/docker/docker-compose-rest.yml b/docker/docker-compose-rest.yml new file mode 100644 index 0000000000..222557bc81 --- /dev/null +++ b/docker/docker-compose-rest.yml @@ -0,0 +1,59 @@ +networks: + dspacenet: +services: + dspace: + container_name: dspace + depends_on: + - dspacedb + image: dspace/dspace:dspace-7_x-jdk8-test + networks: + dspacenet: + ports: + - published: 8080 + target: 8080 + stdin_open: true + tty: true + volumes: + - assetstore:/dspace/assetstore + - "./local.cfg:/dspace/config/local.cfg" + # Ensure that the database is ready before starting tomcat + entrypoint: + - /bin/bash + - '-c' + - | + /dspace/bin/dspace database migrate + catalina.sh run + dspacedb: + container_name: dspacedb + image: dspace/dspace-postgres-pgcrypto + environment: + PGDATA: /pgdata + networks: + dspacenet: + stdin_open: true + tty: true + volumes: + - pgdata:/pgdata + dspacesolr: + container_name: dspacesolr + image: dspace/dspace-solr + networks: + dspacenet: + ports: + - published: 8983 + target: 8983 + stdin_open: true + tty: true + volumes: + - solr_authority:/opt/solr/server/solr/authority/data + - solr_oai:/opt/solr/server/solr/oai/data + - solr_search:/opt/solr/server/solr/search/data + - solr_statistics:/opt/solr/server/solr/statistics/data +version: '3.7' +volumes: + assetstore: + pgdata: + solr_authority: + solr_oai: + solr_search: + solr_statistics: diff --git a/docker/docker-compose-travis.yml b/docker/docker-compose-travis.yml new file mode 100644 index 0000000000..6ca44e4e47 --- /dev/null +++ b/docker/docker-compose-travis.yml @@ -0,0 +1,53 @@ +networks: + dspacenet: +services: + dspace: + container_name: dspace + depends_on: + - dspacedb + image: dspace/dspace:dspace-7_x-jdk8-test + networks: + dspacenet: + ports: + - published: 8080 + target: 8080 + stdin_open: true + tty: true + volumes: + - assetstore:/dspace/assetstore + - "./local.cfg:/dspace/config/local.cfg" + dspacedb: + container_name: dspacedb + environment: + LOADSQL: https://www.dropbox.com/s/xh3ack0vg0922p2/configurable-entities-2019-05-08.sql?dl=1 + PGDATA: /pgdata + image: dspace/dspace-postgres-pgcrypto:loadsql + networks: + dspacenet: + stdin_open: true + tty: true + volumes: + - pgdata:/pgdata + dspacesolr: + container_name: dspacesolr + image: dspace/dspace-solr + networks: + dspacenet: + ports: + - published: 8983 + target: 8983 + stdin_open: true + tty: true + volumes: + - solr_authority:/opt/solr/server/solr/authority/data + - solr_oai:/opt/solr/server/solr/oai/data + - solr_search:/opt/solr/server/solr/search/data + - solr_statistics:/opt/solr/server/solr/statistics/data +version: '3.7' +volumes: + assetstore: + pgdata: + solr_authority: + solr_oai: + solr_search: + solr_statistics: diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000000..23f0615a1f --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,26 @@ +version: '3.7' +networks: + dspacenet: +services: + dspace-angular: + container_name: dspace-angular + environment: + DSPACE_HOST: dspace-angular + DSPACE_NAMESPACE: / + DSPACE_PORT: '3000' + DSPACE_SSL: "false" + image: dspace/dspace-angular:latest + build: + context: .. + dockerfile: Dockerfile + networks: + dspacenet: + ports: + - published: 3000 + target: 3000 + - published: 9876 + target: 9876 + stdin_open: true + tty: true + volumes: + - ./environment.dev.js:/app/config/environment.dev.js diff --git a/docker/environment.dev.js b/docker/environment.dev.js new file mode 100644 index 0000000000..f88506012f --- /dev/null +++ b/docker/environment.dev.js @@ -0,0 +1,16 @@ +/* + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree and available online at + * + * http://www.dspace.org/license/ + */ +module.exports = { + rest: { + ssl: false, + host: 'localhost', + port: 8080, + // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript + nameSpace: '/server/api' + } +}; diff --git a/docker/local.cfg b/docker/local.cfg new file mode 100644 index 0000000000..6692b13658 --- /dev/null +++ b/docker/local.cfg @@ -0,0 +1,6 @@ +dspace.dir=/dspace +db.url=jdbc:postgresql://dspacedb:5432/dspace +dspace.hostname=dspace +dspace.baseUrl=http://localhost:8080 +dspace.name=DSpace Started with Docker Compose +solr.server=http://dspacesolr:8983/solr diff --git a/package.json b/package.json index 7916379039..66cc55087f 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,9 @@ "engines": { "node": "8.* || >= 10.*" }, + "resolutions": { + "set-value": ">= 2.0.1" + }, "scripts": { "global": "npm install -g @angular/cli marked node-gyp nodemon node-nightly npm-check-updates npm-run-all rimraf typescript ts-node typedoc webpack webpack-bundle-analyzer pm2 rollup", "clean:coverage": "rimraf coverage", @@ -22,10 +25,10 @@ "clean:prod": "yarn run clean:coverage && yarn run clean:doc && yarn run clean:dist && yarn run clean:log && yarn run clean:json && yarn run clean:bld", "clean": "yarn run clean:prod && yarn run clean:node", "prebuild": "yarn run clean:bld && yarn run clean:dist", - "prebuild:aot": "yarn run prebuild", + "prebuild:ci": "yarn run prebuild", "prebuild:prod": "yarn run prebuild", "build": "node ./scripts/webpack.js --progress --mode development", - "build:aot": "yarn run syncbuilddir && node ./scripts/webpack.js --env.aot --env.server --mode development && node ./scripts/webpack.js --env.aot --env.client --mode development", + "build:ci": "yarn run syncbuilddir && node ./scripts/webpack.js --env.aot --env.server --mode development && node ./scripts/webpack.js --env.aot --env.client --mode development", "build:prod": "yarn run syncbuilddir && node ./scripts/webpack.js --env.aot --env.server --mode production && node ./scripts/webpack.js --env.aot --env.client --mode production", "postbuild:prod": "yarn run rollup", "rollup": "rollup -c rollup.config.js", @@ -51,10 +54,13 @@ "debug:server": "node-nightly --inspect --debug-brk dist/server.js", "debug:build": "node-nightly --inspect --debug-brk node_modules/webpack/bin/webpack.js --mode development", "debug:build:prod": "node-nightly --inspect --debug-brk node_modules/webpack/bin/webpack.js --env.aot --env.client --env.server --mode production", - "ci": "yarn run lint && yarn run build:aot && yarn run test:headless", + "ci": "yarn run lint && yarn run build:ci && yarn run test:headless && npm-run-all -p -r server e2e", "protractor": "node node_modules/protractor/bin/protractor", "pree2e": "yarn run webdriver:update", "e2e": "yarn run protractor", + "pretest": "yarn run clean:bld", + "pretest:headless": "yarn run pretest", + "pretest:watch": "yarn run pretest", "test": "karma start --single-run", "test:headless": "karma start --single-run --browsers ChromeHeadless", "test:watch": "karma start --no-single-run --auto-watch", @@ -109,6 +115,7 @@ "https": "1.0.0", "js-cookie": "2.2.0", "js.clone": "0.0.3", + "json5": "^2.1.0", "jsonschema": "1.2.2", "jwt-decode": "^2.2.0", "methods": "1.1.2", @@ -154,6 +161,7 @@ "@types/hammerjs": "2.0.35", "@types/jasmine": "^2.8.6", "@types/js-cookie": "2.1.0", + "@types/json5": "^0.0.30", "@types/lodash": "^4.14.110", "@types/memory-cache": "0.2.0", "@types/mime": "2.0.0", diff --git a/resources/i18n/cs.json b/resources/i18n/cs.json5 similarity index 97% rename from resources/i18n/cs.json rename to resources/i18n/cs.json5 index d658030b6b..bd4363409b 100644 --- a/resources/i18n/cs.json +++ b/resources/i18n/cs.json5 @@ -2,6 +2,7 @@ "404.help": "Nepodařilo se najít stránku, kterou hledáte. Je možné, že stránka byla přesunuta nebo smazána. Pomocí tlačítka níže můžete přejít na domovskou stránku. ", "404.link.home-page": "Přejít na domovskou stránku", "404.page-not-found": "stránka nenalezena", + "admin.registries.bitstream-formats.description": "Tento seznam formátů souborů poskytuje informace o známých formátech a o úrovni jejich podpory.", "admin.registries.bitstream-formats.formats.no-items": "Žádné formáty souborů.", "admin.registries.bitstream-formats.formats.table.internal": "interní", @@ -13,29 +14,36 @@ "admin.registries.bitstream-formats.formats.table.supportLevel.head": "Úroveň podpory", "admin.registries.bitstream-formats.head": "Registr formátů souborů", "admin.registries.bitstream-formats.title": "DSpace Angular :: Registr formátů souborů", - "admin.registries.metadata.description": "Registr metadat je seznam všech metadatových polí dostupných v repozitáři. Tyto pole mohou být rozdělena do více schémat. DSpace však vyžaduje použití schématu kvalifikový Dublin Core.", + + "admin.registries.metadata.description": "Registr metadat je seznam všech metadatových polí dostupných v repozitáři. Tyto pole mohou být rozdělena do více schémat. DSpace však vyžaduje použití schématu Kvalifikovaný Dublin Core.", "admin.registries.metadata.head": "Registr metadat", "admin.registries.metadata.schemas.no-items": "Žádná schémata metadat.", "admin.registries.metadata.schemas.table.id": "ID", "admin.registries.metadata.schemas.table.name": "Název", "admin.registries.metadata.schemas.table.namespace": "Jmenný prostor", "admin.registries.metadata.title": "DSpace Angular :: Registr metadat", + "admin.registries.schema.description": "Toto je schéma metadat pro „{{namespace}}“.", "admin.registries.schema.fields.head": "Pole schématu metadat", "admin.registries.schema.fields.no-items": "Žádná metadatová pole.", "admin.registries.schema.fields.table.field": "Pole", "admin.registries.schema.fields.table.scopenote": "Poznámka o rozsahu", - "admin.registries.schema.head": "Metadata Schema", + "admin.registries.schema.head": "Schéma metadat", "admin.registries.schema.title": "DSpace Angular :: Registr schémat metadat", + "auth.errors.invalid-user": "Neplatná e-mailová adresa nebo heslo.", "auth.messages.expired": "Vaše relace vypršela. Prosím, znova se přihlaste.", + "browse.title": "Prohlížíte {{ collection }} dle {{ field }} {{ value }}", + "collection.page.browse.recent.head": "Poslední příspěvky", "collection.page.license": "Licence", "collection.page.news": "Novinky", + "community.page.license": "Licence", "community.page.news": "Novinky", "community.sub-collection-list.head": "Kolekce v této komunitě", + "error.browse-by": "Chyba během stahování záznamů", "error.collection": "Chyba během stahování kolekce", "error.community": "Chyba během stahování komunity", @@ -48,9 +56,11 @@ "error.top-level-communities": "Chyba během stahování komunit nejvyšší úrovně", "error.validation.license.notgranted": "Pro dokončení zaslání Musíte udělit licenci. Pokud v tuto chvíli tuto licenci nemůžete udělit, můžete svou práci uložit a později se k svému příspěveku vrátit nebo jej smazat.", "error.validation.pattern": "Tento vstup je omezen dle vzoru: {{ pattern }}.", + "footer.copyright": "copyright © 2002-{{ year }}", "footer.link.dspace": "software DSpace", "footer.link.duraspace": "DuraSpace", + "form.cancel": "Zrušit", "form.first-name": "Křestní jméno", "form.group-collapse": "Sbalit", @@ -64,11 +74,13 @@ "form.remove": "Smazat", "form.search": "Hledat", "form.submit": "Odeslat", + "home.description": "", "home.title": "DSpace Angular :: Domů", "home.top-level-communities.head": "Komunity v DSpace", "home.top-level-communities.help": "Vybráním komunity můžete prohlížet její kolekce.", - "item.page.abstract": "Abstract", + + "item.page.abstract": "Abstrakt", "item.page.author": "Autor", "item.page.collections": "Kolekce", "item.page.date": "Datum", @@ -81,6 +93,7 @@ "item.page.link.full": "Úplný záznam", "item.page.link.simple": "Minimální záznam", "item.page.uri": "URI", + "loading.browse-by": "Načítají se záznamy...", "loading.collection": "Načítá se kolekce...", "loading.community": "Načítá se komunita...", @@ -91,6 +104,7 @@ "loading.search-results": "Načítají se výsledky hledání...", "loading.sub-collections": "Načítají se subkolekce...", "loading.top-level-communities": "Načítají se komunity nejvyšší úrovně...", + "login.form.email": "E-mailová adresa", "login.form.forgot-password": "Zapomněli jste své heslo?", "login.form.header": "Prosím, přihlaste se do DSpace", @@ -98,22 +112,29 @@ "login.form.password": "Heslo", "login.form.submit": "Přihlásit se", "login.title": "Přihlásit se", + "logout.form.header": "Odhlásit se z DSpace", "logout.form.submit": "Odhlásit se", "logout.title": "Odhlásit se", + "nav.home": "Domů", "nav.login": "Přihlásit se", "nav.logout": "Odhlásit se", + "pagination.results-per-page": "Výsledků na stránku", "pagination.showing.detail": "{{ range }} z {{ total }}", "pagination.showing.label": "Zobrazují se záznamy ", "pagination.sort-direction": "Seřazení", + "search.description": "", + "search.title": "DSpace Angular :: Hledat", + "search.filters.applied.f.author": "Autor", "search.filters.applied.f.dateIssued.max": "Do data", "search.filters.applied.f.dateIssued.min": "Od data", "search.filters.applied.f.has_content_in_original_bundle": "Má soubory", "search.filters.applied.f.subject": "Předmět", + "search.filters.filter.author.head": "Autor", "search.filters.filter.author.placeholder": "Jméno autora", "search.filters.filter.dateIssued.head": "Datum", @@ -126,12 +147,16 @@ "search.filters.filter.show-more": "Zobrazit více", "search.filters.filter.subject.head": "Předmět", "search.filters.filter.subject.placeholder": "Předmět", + "search.filters.head": "Filtry", "search.filters.reset": "Obnovit filtry", + "search.form.search": "Hledat", "search.form.search_dspace": "Hledat v DSpace", + "search.results.head": "Výsledky hledání", "search.results.no-results": "Nebyli nalezeny žádné výsledky", + "search.sidebar.close": "Zpět na výsledky", "search.sidebar.filters.title": "Filtry", "search.sidebar.open": "Vyhledávací nástroje", @@ -139,11 +164,13 @@ "search.sidebar.settings.rpp": "Výsledků na stránku", "search.sidebar.settings.sort-by": "Řadit dle", "search.sidebar.settings.title": "Nastavení", - "search.title": "DSpace Angular :: Hledat", + "search.view-switch.show-grid": "Zobrazit mřížku", "search.view-switch.show-list": "Zobrazit seznam", + "sorting.dc.title.ASC": "Název vzestupně", "sorting.dc.title.DESC": "Název sestupně", "sorting.score.DESC": "Relevance", - "title": "DSpace" + + "title": "DSpace", } diff --git a/resources/i18n/de.json b/resources/i18n/de.json5 similarity index 99% rename from resources/i18n/de.json rename to resources/i18n/de.json5 index d184e7d091..29e3073592 100644 --- a/resources/i18n/de.json +++ b/resources/i18n/de.json5 @@ -2,6 +2,7 @@ "404.help": "Die Seite, die Sie aufrufen wollten, konnte nicht gefunden werden. Sie könnte verschoben oder gelöscht worden sein. Mit dem Link unten kommen Sie zurück zur Startseite. ", "404.link.home-page": "Zurück zur Startseite", "404.page-not-found": "Seite nicht gefunden", + "admin.registries.bitstream-formats.description": "Diese Liste enhtält die in diesem Repositorium zulässigen Dateiformate und den jeweiligen Unterstützungsgrad.", "admin.registries.bitstream-formats.formats.no-items": "Es gibt keine Formate in dieser Referenzliste.", "admin.registries.bitstream-formats.formats.table.internal": "intern", @@ -13,6 +14,7 @@ "admin.registries.bitstream-formats.formats.table.supportLevel.head": "Unterstützungsgrad", "admin.registries.bitstream-formats.head": "Referenzliste der Dateiformate", "admin.registries.bitstream-formats.title": "DSpace Angular :: Referenzliste der Dateiformate", + "admin.registries.metadata.description": "Die Metadatenreferenzliste beinhaltet alle Metadatenfelder, die zur Verfügung stehen. Die Felder können in unterschiedlichen Schemata enthalten sein. Nichtsdestotrotz benötigt DSpace mindestens qualifiziertes Dublin Core.", "admin.registries.metadata.head": "Metadatenreferenzliste", "admin.registries.metadata.schemas.no-items": "Es gbit keine Metadatenschemata.", @@ -20,6 +22,7 @@ "admin.registries.metadata.schemas.table.name": "Name", "admin.registries.metadata.schemas.table.namespace": "Namensraum", "admin.registries.metadata.title": "DSpace Angular :: Metadatenreferenzliste", + "admin.registries.schema.description": "Dies ist das Metadatenschema für \"{{namespace}}\".", "admin.registries.schema.fields.head": "Felder in diesem Schema", "admin.registries.schema.fields.no-items": "Es gibt keine Felder in diesem Schema.", @@ -27,15 +30,19 @@ "admin.registries.schema.fields.table.scopenote": "Gültigkeitsbereich", "admin.registries.schema.head": "Metadatenschemata", "admin.registries.schema.title": "DSpace Angular :: Referenzliste der Metadatenschemata", + "auth.errors.invalid-user": "Ungültige E-Mail-Adresse oder Passwort.", "auth.messages.expired": "Ihre Sitzung ist abgelaufen, bitte melden Sie sich erneut an.", + "browse.title": "Anzeige {{ collection }} nach {{ field }} {{ value }}", "collection.page.browse.recent.head": "Aktuellste Veröffentlichungen", "collection.page.license": "Lizenz", "collection.page.news": "Neuigkeiten", + "community.page.license": "Lizenz", "community.page.news": "Neuigkeiten", "community.sub-collection-list.head": "Sammlungen in diesem Bereich", + "error.browse-by": "Fehler beim Laden der Ressourcen", "error.collection": "Fehler beim Laden der Sammlung.", "error.community": "Fehler beim Laden des Bereiches.", @@ -48,9 +55,11 @@ "error.top-level-communities": "Fehler beim Laden der Hauptbereiche.", "error.validation.license.notgranted": "Sie müssen der Lizenz zustimmen, um die Ressource einzureichen. Wenn dies zur Zeit nicht geht, können Sie die Einreichung speichern und später wiederaufnehmen oder löschen.", "error.validation.pattern": "Die Eingabe kann nur folgendes Muster haben: {{ pattern }}.", + "footer.copyright": "Copyright © 2002-{{ year }}", "footer.link.dspace": "DSpace Software", "footer.link.duraspace": "DuraSpace", + "form.cancel": "Abbrechen", "form.first-name": "Vorname", "form.group-collapse": "Weniger", @@ -64,10 +73,12 @@ "form.remove": "Löschen", "form.search": "Suchen", "form.submit": "Los", + "home.description": "", "home.title": "DSpace Angular :: Startseite", "home.top-level-communities.head": "Bereiche in DSpace", "home.top-level-communities.help": "Wählen Sie einen Bereich, um seine Sammlungen einzusehen.", + "item.page.abstract": "Kurzfassung", "item.page.author": "Autor", "item.page.collections": "Sammlungen", @@ -81,6 +92,7 @@ "item.page.link.full": "Vollanzeige", "item.page.link.simple": "Kurzanzeige", "item.page.uri": "URI", + "loading.browse-by": "Die Ressourcen werden geladen ...", "loading.collection": "Die Sammlung wird geladen ...", "loading.community": "Der Bereich wird geladen ...", @@ -91,6 +103,7 @@ "loading.search-results": "Die Suchergebnisse werden geladen ...", "loading.sub-collections": "Die untergeordneten Sammlungen werden geladen ...", "loading.top-level-communities": "Die Hauptbereiche werden geladen ...", + "login.form.email": "E-Mail-Adresse", "login.form.forgot-password": "Haben Sie Ihr Passwort vergessen?", "login.form.header": "Bitte Loggen Sie sich ein.", @@ -98,22 +111,29 @@ "login.form.password": "Passwort", "login.form.submit": "Einloggen", "login.title": "Einloggen", + "logout.form.header": "Ausloggen aus DSpace", "logout.form.submit": "Ausloggen", "logout.title": "Ausloggen", + "nav.home": "Zur Startseite", "nav.login": "Anmelden", "nav.logout": "Abmelden", + "pagination.results-per-page": "Ergebnisse pro Seite", "pagination.showing.detail": "{{ range }} bis {{ total }}", "pagination.showing.label": "Anzeige der Treffer ", "pagination.sort-direction": "Sortiermöglichkeiten", + "search.description": "", + "search.title": "DSpace Angular :: Suche", + "search.filters.applied.f.author": "Autor", "search.filters.applied.f.dateIssued.max": "Enddatum", "search.filters.applied.f.dateIssued.min": "Anfangsdatum", "search.filters.applied.f.has_content_in_original_bundle": "Besitzt Dateien", "search.filters.applied.f.subject": "Thema", + "search.filters.filter.author.head": "Autor", "search.filters.filter.author.placeholder": "Autor", "search.filters.filter.dateIssued.head": "Datum", @@ -126,12 +146,16 @@ "search.filters.filter.show-more": "Zeige mehr", "search.filters.filter.subject.head": "Schlagwort", "search.filters.filter.subject.placeholder": "Schlagwort", + "search.filters.head": "Filter", "search.filters.reset": "Filter zurücksetzen", + "search.form.search": "Suche", "search.form.search_dspace": "DSpace durchsuchen", + "search.results.head": "Suchergebnisse", "search.results.no-results": "Zu dieser Suche gibt es keine Treffer.", + "search.sidebar.close": "Zurück zu den Ergebnissen", "search.sidebar.filters.title": "Filter", "search.sidebar.open": "Suchwerkzeuge", @@ -139,11 +163,13 @@ "search.sidebar.settings.rpp": "Treffer pro Seite", "search.sidebar.settings.sort-by": "Sortiere nach", "search.sidebar.settings.title": "Einstellungen", - "search.title": "DSpace Angular :: Suche", + "search.view-switch.show-grid": "Zeige als Raster", "search.view-switch.show-list": "Zeige als Liste", + "sorting.dc.title.ASC": "Titel aufsteigend", "sorting.dc.title.DESC": "Titel absteigend", "sorting.score.DESC": "Relevanz", - "title": "DSpace" + + "title": "DSpace", } diff --git a/resources/i18n/en.json b/resources/i18n/en.json5 similarity index 97% rename from resources/i18n/en.json rename to resources/i18n/en.json5 index 7b8f8fb774..3cdb8f2494 100644 --- a/resources/i18n/en.json +++ b/resources/i18n/en.json5 @@ -2,6 +2,7 @@ "404.help": "We can't find the page you're looking for. The page may have been moved or deleted. You can use the button below to get back to the home page. ", "404.link.home-page": "Take me to the home page", "404.page-not-found": "page not found", + "admin.registries.bitstream-formats.create.failure.content": "An error occurred while creating the new bitstream format.", "admin.registries.bitstream-formats.create.failure.head": "Failure", "admin.registries.bitstream-formats.create.head": "Create Bitstream format", @@ -44,6 +45,7 @@ "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Unknown", "admin.registries.bitstream-formats.table.supportLevel.head": "Support Level", "admin.registries.bitstream-formats.title": "DSpace Angular :: Bitstream Format Registry", + "admin.registries.metadata.description": "The metadata registry maintains a list of all metadata fields available in the repository. These fields may be divided amongst multiple schemas. However, DSpace requires the qualified Dublin Core schema.", "admin.registries.metadata.form.create": "Create metadata schema", "admin.registries.metadata.form.edit": "Edit metadata schema", @@ -56,6 +58,7 @@ "admin.registries.metadata.schemas.table.name": "Name", "admin.registries.metadata.schemas.table.namespace": "Namespace", "admin.registries.metadata.title": "DSpace Angular :: Metadata Registry", + "admin.registries.schema.description": "This is the metadata schema for \"{{namespace}}\".", "admin.registries.schema.fields.head": "Schema metadata fields", "admin.registries.schema.fields.no-items": "No metadata fields to show.", @@ -80,8 +83,10 @@ "admin.registries.schema.notification.success": "Success", "admin.registries.schema.return": "Return", "admin.registries.schema.title": "DSpace Angular :: Metadata Schema Registry", + "auth.errors.invalid-user": "Invalid email address or password.", "auth.messages.expired": "Your session has expired. Please log in again.", + "browse.comcol.by.author": "By Author", "browse.comcol.by.dateissued": "By Issue Date", "browse.comcol.by.subject": "By Subject", @@ -112,7 +117,9 @@ "browse.startsWith.type_date": "Or type in a date (year-month):", "browse.startsWith.type_text": "Or enter first few letters:", "browse.title": "Browsing {{ collection }} by {{ field }} {{ value }}", + "chips.remove": "Remove chip", + "collection.create.head": "Create a Collection", "collection.create.sub-head": "Create a Collection for Community {{ parent }}", "collection.delete.cancel": "Cancel", @@ -135,6 +142,7 @@ "collection.page.browse.recent.empty": "No items to show", "collection.page.license": "License", "collection.page.news": "News", + "community.create.head": "Create a Community", "community.create.sub-head": "Create a Sub-Community for Community {{ parent }}", "community.delete.cancel": "Cancel", @@ -155,6 +163,7 @@ "community.page.news": "News", "community.sub-collection-list.head": "Collections of this Community", "community.sub-community-list.head": "Communities of this Community", + "dso-selector.create.collection.head": "New collection", "dso-selector.create.community.head": "New community", "dso-selector.create.community.sub-level": "Create a new community in", @@ -165,6 +174,7 @@ "dso-selector.edit.item.head": "Edit item", "dso-selector.no-results": "No {{ type }} found", "dso-selector.placeholder": "Search for a {{ type }}", + "error.browse-by": "Error fetching items", "error.collection": "Error fetching collection", "error.community": "Error fetching community", @@ -179,9 +189,11 @@ "error.top-level-communities": "Error fetching top-level communities", "error.validation.license.notgranted": "You must grant this license to complete your submission. If you are unable to grant this license at this time you may save your work and return later or remove the submission.", "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", + "footer.copyright": "copyright © 2002-{{ year }}", "footer.link.dspace": "DSpace software", "footer.link.duraspace": "DuraSpace", + "form.cancel": "Cancel", "form.clear": "Clear", "form.clear-help": "Click here to remove the selected value", @@ -203,10 +215,12 @@ "form.search": "Search", "form.search-help": "Click here to looking for an existing correspondence", "form.submit": "Submit", + "home.description": "", "home.title": "DSpace Angular :: Home", "home.top-level-communities.head": "Communities in DSpace", "home.top-level-communities.help": "Select a community to browse its collections.", + "item.edit.delete.cancel": "Cancel", "item.edit.delete.confirm": "Delete", "item.edit.delete.description": "Are you sure this item should be completely deleted? Caution: At present, no tombstone would be left.", @@ -214,6 +228,7 @@ "item.edit.delete.header": "Delete item: {{ id }}", "item.edit.delete.success": "The item has been deleted", "item.edit.head": "Edit Item", + "item.edit.metadata.add-button": "Add", "item.edit.metadata.discard-button": "Discard", "item.edit.metadata.edit.buttons.edit": "Edit", @@ -235,27 +250,44 @@ "item.edit.metadata.notifications.saved.title": "Metadata saved", "item.edit.metadata.reinstate-button": "Undo", "item.edit.metadata.save-button": "Save", + "item.edit.modify.overview.field": "Field", "item.edit.modify.overview.language": "Language", "item.edit.modify.overview.value": "Value", + + "item.edit.move.cancel": "Cancel", + "item.edit.move.description": "Select the collection you wish to move this item to. To narrow down the list of displayed collections, you can enter a search query in the box.", + "item.edit.move.error": "An error occured when attempting to move the item", + "item.edit.move.head": "Move item: {{id}}", + "item.edit.move.inheritpolicies.checkbox": "Inherit policies", + "item.edit.move.inheritpolicies.description": "Inherit the default policies of the destination collection", + "item.edit.move.move": "Move", + "item.edit.move.processing": "Moving...", + "item.edit.move.search.placeholder": "Enter a search query to look for collections", + "item.edit.move.success": "The item has been moved succesfully", + "item.edit.move.title": "Move item", + "item.edit.private.cancel": "Cancel", "item.edit.private.confirm": "Make it Private", "item.edit.private.description": "Are you sure this item should be made private in the archive?", "item.edit.private.error": "An error occurred while making the item private", "item.edit.private.header": "Make item private: {{ id }}", "item.edit.private.success": "The item is now private", + "item.edit.public.cancel": "Cancel", "item.edit.public.confirm": "Make it Public", "item.edit.public.description": "Are you sure this item should be made public in the archive?", "item.edit.public.error": "An error occurred while making the item public", "item.edit.public.header": "Make item public: {{ id }}", "item.edit.public.success": "The item is now public", + "item.edit.reinstate.cancel": "Cancel", "item.edit.reinstate.confirm": "Reinstate", "item.edit.reinstate.description": "Are you sure this item should be reinstated to the archive?", "item.edit.reinstate.error": "An error occurred while reinstating the item", "item.edit.reinstate.header": "Reinstate item: {{ id }}", "item.edit.reinstate.success": "The item was reinstated successfully", + "item.edit.relationships.discard-button": "Discard", "item.edit.relationships.edit.buttons.remove": "Remove", "item.edit.relationships.edit.buttons.undo": "Undo changes", @@ -268,6 +300,7 @@ "item.edit.relationships.notifications.saved.title": "Relationships saved", "item.edit.relationships.reinstate-button": "Undo", "item.edit.relationships.save-button": "Save", + "item.edit.tabs.bitstreams.head": "Item Bitstreams", "item.edit.tabs.bitstreams.title": "Item Edit - Bitstreams", "item.edit.tabs.curate.head": "Curate", @@ -301,12 +334,14 @@ "item.edit.tabs.status.title": "Item Edit - Status", "item.edit.tabs.view.head": "View Item", "item.edit.tabs.view.title": "Item Edit - View", + "item.edit.withdraw.cancel": "Cancel", "item.edit.withdraw.confirm": "Withdraw", "item.edit.withdraw.description": "Are you sure this item should be withdrawn from the archive?", "item.edit.withdraw.error": "An error occurred while withdrawing the item", "item.edit.withdraw.header": "Withdraw item: {{ id }}", "item.edit.withdraw.success": "The item was withdrawn successfully", + "item.page.abstract": "Abstract", "item.page.author": "Authors", "item.page.citation": "Citation", @@ -326,10 +361,12 @@ "item.page.related-items.view-less": "View less", "item.page.subject": "Keywords", "item.page.uri": "URI", + "item.select.confirm": "Confirm selected", "item.select.table.author": "Author", "item.select.table.collection": "Collection", "item.select.table.title": "Title", + "journal.listelement.badge": "Journal", "journal.page.description": "Description", "journal.page.editor": "Editor-in-Chief", @@ -338,6 +375,7 @@ "journal.page.titleprefix": "Journal: ", "journal.search.results.head": "Journal Search Results", "journal.search.title": "DSpace Angular :: Journal Search", + "journalissue.listelement.badge": "Journal Issue", "journalissue.page.description": "Description", "journalissue.page.issuedate": "Issue Date", @@ -346,11 +384,13 @@ "journalissue.page.keyword": "Keywords", "journalissue.page.number": "Number", "journalissue.page.titleprefix": "Journal Issue: ", + "journalvolume.listelement.badge": "Journal Volume", "journalvolume.page.description": "Description", "journalvolume.page.issuedate": "Issue Date", "journalvolume.page.titleprefix": "Journal Volume: ", "journalvolume.page.volume": "Volume", + "loading.browse-by": "Loading items...", "loading.browse-by-page": "Loading page...", "loading.collection": "Loading collection...", @@ -364,6 +404,7 @@ "loading.sub-collections": "Loading sub-collections...", "loading.sub-communities": "Loading sub-communities...", "loading.top-level-communities": "Loading top-level communities...", + "login.form.email": "Email address", "login.form.forgot-password": "Have you forgotten your password?", "login.form.header": "Please log in to DSpace", @@ -371,15 +412,19 @@ "login.form.password": "Password", "login.form.submit": "Log in", "login.title": "Login", + "logout.form.header": "Log out from DSpace", "logout.form.submit": "Log out", "logout.title": "Logout", + "menu.header.admin": "Admin", "menu.header.image.logo": "Repository logo", + "menu.section.access_control": "Access Control", "menu.section.access_control_authorizations": "Authorizations", "menu.section.access_control_groups": "Groups", "menu.section.access_control_people": "People", + "menu.section.browse_community": "This Community", "menu.section.browse_community_by_author": "By Author", "menu.section.browse_community_by_issue_date": "By Issue Date", @@ -390,21 +435,26 @@ "menu.section.browse_global_by_subject": "By Subject", "menu.section.browse_global_by_title": "By Title", "menu.section.browse_global_communities_and_collections": "Communities & Collections", + "menu.section.control_panel": "Control Panel", "menu.section.curation_task": "Curation Task", + "menu.section.edit": "Edit", "menu.section.edit_collection": "Collection", "menu.section.edit_community": "Community", "menu.section.edit_item": "Item", + "menu.section.export": "Export", "menu.section.export_collection": "Collection", "menu.section.export_community": "Community", "menu.section.export_item": "Item", "menu.section.export_metadata": "Metadata", + "menu.section.find": "Find", "menu.section.find_items": "Items", "menu.section.find_private_items": "Private Items", "menu.section.find_withdrawn_items": "Withdrawn Items", + "menu.section.icon.access_control": "Access Control menu section", "menu.section.icon.control_panel": "Control Panel menu section", "menu.section.icon.curation_task": "Curation Task menu section", @@ -417,20 +467,27 @@ "menu.section.icon.registries": "Registries menu section", "menu.section.icon.statistics_task": "Statistics Task menu section", "menu.section.icon.unpin": "Unpin sidebar", + "menu.section.import": "Import", "menu.section.import_batch": "Batch Import (ZIP)", "menu.section.import_metadata": "Metadata", + "menu.section.new": "New", "menu.section.new_collection": "Collection", "menu.section.new_community": "Community", "menu.section.new_item": "Item", "menu.section.new_item_version": "Item Version", + "menu.section.pin": "Pin sidebar", + "menu.section.unpin": "Unpin sidebar", + "menu.section.registries": "Registries", "menu.section.registries_format": "Format", "menu.section.registries_metadata": "Metadata", + "menu.section.statistics": "Statistics", "menu.section.statistics_task": "Statistics Task", + "menu.section.toggle.access_control": "Toggle Access Control section", "menu.section.toggle.control_panel": "Toggle Control Panel section", "menu.section.toggle.curation_task": "Toggle Curation Task section", @@ -441,7 +498,7 @@ "menu.section.toggle.new": "Toggle New section", "menu.section.toggle.registries": "Toggle Registries section", "menu.section.toggle.statistics_task": "Toggle Statistics Task section", - "menu.section.unpin": "Unpin sidebar", + "mydspace.description": "", "mydspace.general.text-here": "HERE", "mydspace.messages.controller-help": "Select this option to send a message to item's submitter.", @@ -479,6 +536,7 @@ "mydspace.upload.upload-multiple-successful": "{{qty}} new workspace items created.", "mydspace.upload.upload-successful": "New workspace item created. Click {{here}} for edit it.", "mydspace.view-btn": "View", + "nav.browse.header": "All of DSpace", "nav.community-browse.header": "By Community", "nav.language": "Language switch", @@ -487,6 +545,7 @@ "nav.mydspace": "MyDSpace", "nav.search": "Search", "nav.statistics.header": "Statistics", + "orgunit.listelement.badge": "Organizational Unit", "orgunit.page.city": "City", "orgunit.page.country": "Country", @@ -494,10 +553,12 @@ "orgunit.page.description": "Description", "orgunit.page.id": "ID", "orgunit.page.titleprefix": "Organizational Unit: ", + "pagination.results-per-page": "Results Per Page", "pagination.showing.detail": "{{ range }} of {{ total }}", "pagination.showing.label": "Now showing ", "pagination.sort-direction": "Sort Options", + "person.listelement.badge": "Person", "person.page.birthdate": "Birth Date", "person.page.email": "Email Address", @@ -510,6 +571,7 @@ "person.page.titleprefix": "Person: ", "person.search.results.head": "Person Search Results", "person.search.title": "DSpace Angular :: Person Search", + "project.listelement.badge": "Research Project", "project.page.contributor": "Contributors", "project.page.description": "Description", @@ -519,6 +581,7 @@ "project.page.keyword": "Keywords", "project.page.status": "Status", "project.page.titleprefix": "Research Project: ", + "publication.listelement.badge": "Publication", "publication.page.description": "Description", "publication.page.journal-issn": "Journal ISSN", @@ -528,6 +591,7 @@ "publication.page.volume-title": "Volume Title", "publication.search.results.head": "Publication Search Results", "publication.search.title": "DSpace Angular :: Publication Search", + "relationships.isAuthorOf": "Authors", "relationships.isIssueOf": "Journal Issues", "relationships.isJournalIssueOf": "Journal Issue", @@ -540,7 +604,11 @@ "relationships.isSingleJournalOf": "Journal", "relationships.isSingleVolumeOf": "Journal Volume", "relationships.isVolumeOf": "Journal Volumes", + "search.description": "", + "search.switch-configuration.title": "Show", + "search.title": "DSpace Angular :: Search", + "search.filters.applied.f.author": "Author", "search.filters.applied.f.dateIssued.max": "End date", "search.filters.applied.f.dateIssued.min": "Start date", @@ -551,6 +619,7 @@ "search.filters.applied.f.namedresourcetype": "Status", "search.filters.applied.f.subject": "Subject", "search.filters.applied.f.submitter": "Submitter", + "search.filters.filter.author.head": "Author", "search.filters.filter.author.placeholder": "Author name", "search.filters.filter.birthDate.head": "Birth Date", @@ -595,14 +664,18 @@ "search.filters.filter.subject.placeholder": "Subject", "search.filters.filter.submitter.head": "Submitter", "search.filters.filter.submitter.placeholder": "Submitter", + "search.filters.head": "Filters", "search.filters.reset": "Reset filters", + "search.form.search": "Search", "search.form.search_dspace": "Search DSpace", "search.form.search_mydspace": "Search MyDSpace", + "search.results.head": "Search Results", "search.results.no-results": "Your search returned no results. Having trouble finding what you're looking for? Try putting", "search.results.no-results-link": "quotes around it", + "search.sidebar.close": "Back to results", "search.sidebar.filters.title": "Filters", "search.sidebar.open": "Search Tools", @@ -610,14 +683,15 @@ "search.sidebar.settings.rpp": "Results per page", "search.sidebar.settings.sort-by": "Sort By", "search.sidebar.settings.title": "Settings", - "search.switch-configuration.title": "Show", - "search.title": "DSpace Angular :: Search", + "search.view-switch.show-detail": "Show detail", "search.view-switch.show-grid": "Show as grid", "search.view-switch.show-list": "Show as list", + "sorting.dc.title.ASC": "Title Ascending", "sorting.dc.title.DESC": "Title Descending", "sorting.score.DESC": "Relevance", + "submission.edit.title": "Edit Submission", "submission.general.cannot_submit": "You have not the privilege to make a new submission.", "submission.general.deposit": "Deposit", @@ -628,7 +702,7 @@ "submission.general.discard.submit": "Discard", "submission.general.save": "Save", "submission.general.save-later": "Save for later", - "submission.mydspace": {}, + "submission.sections.general.add-more": "Add more", "submission.sections.general.collection": "Collection", "submission.sections.general.deposit_error_notice": "There was an issue when submitting the item, please try again later.", @@ -643,6 +717,7 @@ "submission.sections.general.save_success_notice": "Submission saved successfully.", "submission.sections.general.search-collection": "Search for a collection", "submission.sections.general.sections_not_valid": "There are incomplete sections.", + "submission.sections.submit.progressbar.cclicense": "Creative commons license", "submission.sections.submit.progressbar.describe.recycle": "Recycle", "submission.sections.submit.progressbar.describe.stepcustom": "Describe", @@ -651,6 +726,7 @@ "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates", "submission.sections.submit.progressbar.license": "Deposit license", "submission.sections.submit.progressbar.upload": "Upload files", + "submission.sections.upload.delete.confirm.cancel": "Cancel", "submission.sections.upload.delete.confirm.info": "This operation can't be undone. Are you sure?", "submission.sections.upload.delete.confirm.submit": "Yes, I'm sure", @@ -674,13 +750,16 @@ "submission.sections.upload.undo": "Cancel", "submission.sections.upload.upload-failed": "Upload failed", "submission.sections.upload.upload-successful": "Upload successful", + "submission.submit.title": "Submission", + "submission.workflow.generic.delete": "Delete", "submission.workflow.generic.delete-help": "If you would to discard this item, select \"Delete\". You will then be asked to confirm it.", "submission.workflow.generic.edit": "Edit", "submission.workflow.generic.edit-help": "Select this option to change the item's metadata.", "submission.workflow.generic.view": "View", "submission.workflow.generic.view-help": "Select this option to view the item's metadata.", + "submission.workflow.tasks.claimed.approve": "Approve", "submission.workflow.tasks.claimed.approve_help": "If you have reviewed the item and it is suitable for inclusion in the collection, select \"Approve\".", "submission.workflow.tasks.claimed.edit": "Edit", @@ -693,18 +772,22 @@ "submission.workflow.tasks.claimed.reject_help": "If you have reviewed the item and found it is not suitable for inclusion in the collection, select \"Reject\". You will then be asked to enter a message indicating why the item is unsuitable, and whether the submitter should change something and resubmit.", "submission.workflow.tasks.claimed.return": "Return to pool", "submission.workflow.tasks.claimed.return_help": "Return the task to the pool so that another user may perform the task.", + "submission.workflow.tasks.generic.error": "Error occurred during operation...", "submission.workflow.tasks.generic.processing": "Processing...", "submission.workflow.tasks.generic.submitter": "Submitter", "submission.workflow.tasks.generic.success": "Operation successful", + "submission.workflow.tasks.pool.claim": "Claim", "submission.workflow.tasks.pool.claim_help": "Assign this task to yourself.", "submission.workflow.tasks.pool.hide-detail": "Hide detail", "submission.workflow.tasks.pool.show-detail": "Show detail", + "title": "DSpace", + "uploader.browse": "browse", "uploader.drag-message": "Drag & Drop your files here", "uploader.or": ", or", "uploader.processing": "Processing", - "uploader.queue-lenght": "Queue length" -} \ No newline at end of file + "uploader.queue-length": "Queue length", +} diff --git a/resources/i18n/nl.json b/resources/i18n/nl.json5 similarity index 99% rename from resources/i18n/nl.json rename to resources/i18n/nl.json5 index da12ff0518..a195e13e01 100644 --- a/resources/i18n/nl.json +++ b/resources/i18n/nl.json5 @@ -2,6 +2,7 @@ "404.help": "De pagina die u zoekt kan niet gevonden worden. De pagina werd mogelijk verplaatst of verwijderd. U kan onderstaande knop gebruiken om terug naar de homepagina te gaan. ", "404.link.home-page": "Terug naar de homepagina", "404.page-not-found": "Pagina niet gevonden", + "admin.registries.bitstream-formats.description": "Deze lijst van Bitstream formaten biedt informatie over de formaten die in deze repository zijn toegelaten en op welke manier ze ondersteund worden. De term Bitstream wordt in DSpace gebruikt om een bestand aan te duiden dat samen met metadata onderdeel uitmaakt van een item. De naam bitstream duidt op het feit dat het bestand achterliggend wordt opgeslaan zonder bestandsextensie.", "admin.registries.bitstream-formats.formats.no-items": "Er kunnen geen bitstreamformaten getoond worden.", "admin.registries.bitstream-formats.formats.table.internal": "intern", @@ -13,6 +14,7 @@ "admin.registries.bitstream-formats.formats.table.supportLevel.head": "Ondersteuning", "admin.registries.bitstream-formats.head": "Bitstream Formaat Register", "admin.registries.bitstream-formats.title": "DSpace Angular :: Bitstream Formaat Register", + "admin.registries.metadata.description": "Het metadataregister omvat de lijst van alle metadatavelden die beschikbaar zijn in het systeem. Deze velden kunnen verspreid zijn over verschillende metadataschema's. Het qualified Dublin Core schema (dc) is een verplicht schema en kan niet worden verwijderd.", "admin.registries.metadata.head": "Metadata Register", "admin.registries.metadata.schemas.no-items": "Er kunnen geen metadataschema's getoond worden.", @@ -20,6 +22,7 @@ "admin.registries.metadata.schemas.table.name": "Naam", "admin.registries.metadata.schemas.table.namespace": "Naamruimte", "admin.registries.metadata.title": "DSpace Angular :: Metadata Register", + "admin.registries.schema.description": "Dit is het metadataschema voor \"{{namespace}}\".", "admin.registries.schema.fields.head": "Schema metadatavelden", "admin.registries.schema.fields.no-items": "Er kunnen geen metadatavelden getoond worden.", @@ -27,15 +30,20 @@ "admin.registries.schema.fields.table.scopenote": "Opmerking over bereik", "admin.registries.schema.head": "Metadata Schema", "admin.registries.schema.title": "DSpace Angular :: Metadata Schema Register", + "auth.errors.invalid-user": "Ongeldig e-mailadres of wachtwoord.", "auth.messages.expired": "Uw sessie is vervallen. Gelieve opnieuw aan te melden.", + "browse.title": "Verken {{ collection }} volgens {{ field }} {{ value }}", + "collection.page.browse.recent.head": "Recent toegevoegd", "collection.page.license": "Licentie", "collection.page.news": "Nieuws", + "community.page.license": "Licentie", "community.page.news": "Nieuws", "community.sub-collection-list.head": "Collecties in deze Community", + "error.browse-by": "Fout bij het ophalen van items", "error.collection": "Fout bij het ophalen van een collectie", "error.community": "Fout bij het ophalen van een community", @@ -48,9 +56,11 @@ "error.top-level-communities": "Fout bij het inladen van communities op het hoogste niveau", "error.validation.license.notgranted": "U moet de invoerlicentie goedkeuren om de invoer af te werken. Indien u deze licentie momenteel niet kan of mag goedkeuren, kan u uw werk opslaan en de invoer later afwerken. U kunt dit nieuwe item ook verwijderen indien u niet voldoet aan de vereisten van de invoerlicentie.", "error.validation.pattern": "Deze invoer is niet toegelaten volgens dit patroon: {{ pattern }}.", + "footer.copyright": "copyright © 2002-{{ year }}", "footer.link.dspace": "DSpace software", "footer.link.duraspace": "DuraSpace", + "form.cancel": "Annuleer", "form.first-name": "Voornaam", "form.group-collapse": "Inklappen", @@ -64,10 +74,12 @@ "form.remove": "Verwijder", "form.search": "Zoek", "form.submit": "Verstuur", + "home.description": "", "home.title": "DSpace Angular :: Home", "home.top-level-communities.head": "Communities in DSpace", "home.top-level-communities.help": "Selecteer een community om diens collecties te verkennen.", + "item.page.abstract": "Abstract", "item.page.author": "Auteur", "item.page.collections": "Collecties", @@ -81,6 +93,7 @@ "item.page.link.full": "Volledige itemweergave", "item.page.link.simple": "Eenvoudige itemweergave", "item.page.uri": "URI", + "loading.browse-by": "Items worden ingeladen...", "loading.collection": "Collectie wordt ingeladen...", "loading.community": "Community wordt ingeladen...", @@ -91,6 +104,7 @@ "loading.search-results": "Zoekresultaten worden ingeladen...", "loading.sub-collections": "De sub-collecties worden ingeladen...", "loading.top-level-communities": "Inladen van de Communities op het hoogste niveau...", + "login.form.email": "Email adres", "login.form.forgot-password": "Bent u uw wachtwoord vergeten?", "login.form.header": "Gelieve in te loggen in DSpace", @@ -98,17 +112,23 @@ "login.form.password": "Wachtwoord", "login.form.submit": "Aanmelden", "login.title": "Aanmelden", + "logout.form.header": "Afmelden in DSpace", "logout.form.submit": "Afmelden", "logout.title": "Afmelden", + "nav.home": "Home", "nav.login": "Log In", "nav.logout": "Log Uit", + "pagination.results-per-page": "Resultaten per pagina", "pagination.showing.detail": "{{ range }} van {{ total }}", "pagination.showing.label": "Resultaten ", "pagination.sort-direction": "Sorteermogelijkheden", + "search.description": "", + "search.title": "DSpace Angular :: Zoek", + "search.filters.applied.f.author": "Auteur", "search.filters.applied.f.dateIssued.max": "Einddatum", "search.filters.applied.f.dateIssued.min": "Startdatum", @@ -126,12 +146,16 @@ "search.filters.filter.show-more": "Toon meer", "search.filters.filter.subject.head": "Onderwerp", "search.filters.filter.subject.placeholder": "Onderwerp", + "search.filters.head": "Filters", "search.filters.reset": "Filters verwijderen", + "search.form.search": "Zoek", "search.form.search_dspace": "Zoek in DSpace", + "search.results.head": "Zoekresultaten", "search.results.no-results": "Er waren geen resultaten voor deze zoekopdracht", + "search.sidebar.close": "Terug naar de resultaten", "search.sidebar.filters.title": "Filters", "search.sidebar.open": "Zoek Tools", @@ -139,11 +163,13 @@ "search.sidebar.settings.rpp": "Resultaten per pagina", "search.sidebar.settings.sort-by": "Sorteer volgens", "search.sidebar.settings.title": "Instellingen", - "search.title": "DSpace Angular :: Zoek", + "search.view-switch.show-grid": "Toon in raster", "search.view-switch.show-list": "Toon als lijst", + "sorting.dc.title.ASC": "Oplopend op titel", "sorting.dc.title.DESC": "Aflopend op titel", "sorting.score.DESC": "Relevantie", - "title": "DSpace" + + "title": "DSpace", } diff --git a/src/app/+collection-page/create-collection-page/create-collection-page.component.spec.ts b/src/app/+collection-page/create-collection-page/create-collection-page.component.spec.ts index 29350a83e0..e223b11c65 100644 --- a/src/app/+collection-page/create-collection-page/create-collection-page.component.spec.ts +++ b/src/app/+collection-page/create-collection-page/create-collection-page.component.spec.ts @@ -4,7 +4,7 @@ import { TranslateModule } from '@ngx-translate/core'; import { CommonModule } from '@angular/common'; import { RouterTestingModule } from '@angular/router/testing'; import { NO_ERRORS_SCHEMA } from '@angular/core'; -import { RouteService } from '../../shared/services/route.service'; +import { RouteService } from '../../core/services/route.service'; import { SharedModule } from '../../shared/shared.module'; import { CollectionDataService } from '../../core/data/collection-data.service'; import { of as observableOf } from 'rxjs'; diff --git a/src/app/+collection-page/create-collection-page/create-collection-page.component.ts b/src/app/+collection-page/create-collection-page/create-collection-page.component.ts index 94229b4932..2cab36d285 100644 --- a/src/app/+collection-page/create-collection-page/create-collection-page.component.ts +++ b/src/app/+collection-page/create-collection-page/create-collection-page.component.ts @@ -1,6 +1,6 @@ import { Component } from '@angular/core'; import { CommunityDataService } from '../../core/data/community-data.service'; -import { RouteService } from '../../shared/services/route.service'; +import { RouteService } from '../../core/services/route.service'; import { Router } from '@angular/router'; import { CreateComColPageComponent } from '../../shared/comcol-forms/create-comcol-page/create-comcol-page.component'; import { Collection } from '../../core/shared/collection.model'; diff --git a/src/app/+community-page/create-community-page/create-community-page.component.spec.ts b/src/app/+community-page/create-community-page/create-community-page.component.spec.ts index dba15dbe88..dead5a5c3b 100644 --- a/src/app/+community-page/create-community-page/create-community-page.component.spec.ts +++ b/src/app/+community-page/create-community-page/create-community-page.component.spec.ts @@ -4,7 +4,7 @@ import { TranslateModule } from '@ngx-translate/core'; import { CommonModule } from '@angular/common'; import { RouterTestingModule } from '@angular/router/testing'; import { NO_ERRORS_SCHEMA } from '@angular/core'; -import { RouteService } from '../../shared/services/route.service'; +import { RouteService } from '../../core/services/route.service'; import { SharedModule } from '../../shared/shared.module'; import { CollectionDataService } from '../../core/data/collection-data.service'; import { of as observableOf } from 'rxjs'; diff --git a/src/app/+community-page/create-community-page/create-community-page.component.ts b/src/app/+community-page/create-community-page/create-community-page.component.ts index 828d8338af..fd5f18442a 100644 --- a/src/app/+community-page/create-community-page/create-community-page.component.ts +++ b/src/app/+community-page/create-community-page/create-community-page.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { Community } from '../../core/shared/community.model'; import { CommunityDataService } from '../../core/data/community-data.service'; -import { RouteService } from '../../shared/services/route.service'; +import { RouteService } from '../../core/services/route.service'; import { Router } from '@angular/router'; import { CreateComColPageComponent } from '../../shared/comcol-forms/create-comcol-page/create-comcol-page.component'; diff --git a/src/app/+community-page/delete-community-page/delete-community-page.component.spec.ts b/src/app/+community-page/delete-community-page/delete-community-page.component.spec.ts index f18c4fb1f1..c23df93976 100644 --- a/src/app/+community-page/delete-community-page/delete-community-page.component.spec.ts +++ b/src/app/+community-page/delete-community-page/delete-community-page.component.spec.ts @@ -4,7 +4,7 @@ import { TranslateModule } from '@ngx-translate/core'; import { CommonModule } from '@angular/common'; import { RouterTestingModule } from '@angular/router/testing'; import { NO_ERRORS_SCHEMA } from '@angular/core'; -import { RouteService } from '../../shared/services/route.service'; +import { RouteService } from '../../core/services/route.service'; import { SharedModule } from '../../shared/shared.module'; import { of as observableOf } from 'rxjs'; import { NotificationsService } from '../../shared/notifications/notifications.service'; diff --git a/src/app/+item-page/edit-item-page/edit-item-page.module.ts b/src/app/+item-page/edit-item-page/edit-item-page.module.ts index 1542d12ce5..236388109e 100644 --- a/src/app/+item-page/edit-item-page/edit-item-page.module.ts +++ b/src/app/+item-page/edit-item-page/edit-item-page.module.ts @@ -18,6 +18,7 @@ import { ItemBitstreamsComponent } from './item-bitstreams/item-bitstreams.compo import { ItemRelationshipsComponent } from './item-relationships/item-relationships.component'; import { EditRelationshipComponent } from './item-relationships/edit-relationship/edit-relationship.component'; import { EditRelationshipListComponent } from './item-relationships/edit-relationship-list/edit-relationship-list.component'; +import { ItemMoveComponent } from './item-move/item-move.component'; /** * Module that contains all components related to the Edit Item page administrator functionality @@ -44,7 +45,8 @@ import { EditRelationshipListComponent } from './item-relationships/edit-relatio ItemBitstreamsComponent, EditInPlaceFieldComponent, EditRelationshipComponent, - EditRelationshipListComponent + EditRelationshipListComponent, + ItemMoveComponent, ] }) export class EditItemPageModule { diff --git a/src/app/+item-page/edit-item-page/edit-item-page.routing.module.ts b/src/app/+item-page/edit-item-page/edit-item-page.routing.module.ts index f298f7df39..65e2a36fd1 100644 --- a/src/app/+item-page/edit-item-page/edit-item-page.routing.module.ts +++ b/src/app/+item-page/edit-item-page/edit-item-page.routing.module.ts @@ -10,6 +10,7 @@ import { ItemDeleteComponent } from './item-delete/item-delete.component'; import { ItemStatusComponent } from './item-status/item-status.component'; import { ItemMetadataComponent } from './item-metadata/item-metadata.component'; import { ItemBitstreamsComponent } from './item-bitstreams/item-bitstreams.component'; +import { ItemMoveComponent } from './item-move/item-move.component'; import { ItemRelationshipsComponent } from './item-relationships/item-relationships.component'; const ITEM_EDIT_WITHDRAW_PATH = 'withdraw'; @@ -17,6 +18,7 @@ const ITEM_EDIT_REINSTATE_PATH = 'reinstate'; const ITEM_EDIT_PRIVATE_PATH = 'private'; const ITEM_EDIT_PUBLIC_PATH = 'public'; const ITEM_EDIT_DELETE_PATH = 'delete'; +const ITEM_EDIT_MOVE_PATH = 'move'; /** * Routing module that handles the routing for the Edit Item page administrator functionality @@ -104,6 +106,14 @@ const ITEM_EDIT_DELETE_PATH = 'delete'; resolve: { item: ItemPageResolver } + }, + { + path: ITEM_EDIT_MOVE_PATH, + component: ItemMoveComponent, + data: { title: 'item.edit.move.title' }, + resolve: { + item: ItemPageResolver + } }]) ], providers: [ diff --git a/src/app/+item-page/edit-item-page/item-metadata/edit-in-place-field/edit-in-place-field.component.html b/src/app/+item-page/edit-item-page/item-metadata/edit-in-place-field/edit-in-place-field.component.html index e9c5de95ca..e8ffc28920 100644 --- a/src/app/+item-page/edit-item-page/item-metadata/edit-in-place-field/edit-in-place-field.component.html +++ b/src/app/+item-page/edit-item-page/item-metadata/edit-in-place-field/edit-in-place-field.component.html @@ -4,7 +4,7 @@ {{metadata?.key?.split('.').join('.')}}
{{'item.edit.move.description' | translate}}
++ + +
++ {{'item.edit.move.inheritpolicies.description' | translate}} +
+