diff --git a/config/environment.default.js b/config/environment.default.js index 1ea9787a55..f8d2784291 100644 --- a/config/environment.default.js +++ b/config/environment.default.js @@ -145,6 +145,14 @@ module.exports = { code: 'pt', label: 'Português', active: true, + }, { + code: 'fr', + label: 'Français', + active: true, + }, { + code: 'lv', + label: 'Latviešu', + active: true, }], // Browse-By Pages browseBy: { diff --git a/resources/i18n/de.json5 b/resources/i18n/de.json5 index ade65d7052..563e6f9232 100644 --- a/resources/i18n/de.json5 +++ b/resources/i18n/de.json5 @@ -1,1605 +1,2922 @@ { + // "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.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": "Take me to the home page", "404.link.home-page": "Zurück zur Startseite", + // "404.page-not-found": "page not found", "404.page-not-found": "Seite nicht gefunden", + + // "admin.registries.bitstream-formats.create.failure.content": "An error occurred while creating the new bitstream format.", "admin.registries.bitstream-formats.create.failure.content": "Ein Fehler ist beim Anlegen eines neuen Dateiformates aufgetreten.", + // "admin.registries.bitstream-formats.create.failure.head": "Failure", "admin.registries.bitstream-formats.create.failure.head": "Fehler", + // "admin.registries.bitstream-formats.create.head": "Create Bitstream format", "admin.registries.bitstream-formats.create.head": "Neues Dateiformat anlegen", + // "admin.registries.bitstream-formats.create.new": "Add a new bitstream format", "admin.registries.bitstream-formats.create.new": "Ein neues Dateiformat hinzufügen", + // "admin.registries.bitstream-formats.create.success.content": "The new bitstream format was successfully created.", "admin.registries.bitstream-formats.create.success.content": "Das neue Dateiformat wurde erfolgreich angelegt.", + // "admin.registries.bitstream-formats.create.success.head": "Success", "admin.registries.bitstream-formats.create.success.head": "Erfolg", + // "admin.registries.bitstream-formats.delete.failure.amount": "Failed to remove {{ amount }} format(s)", - "admin.registries.bitstream-formats.delete.failure.amount": "{{ amount }} Format(1) konnte(n) nicht gelöscht werden", + "admin.registries.bitstream-formats.delete.failure.amount": "{{ amount }} Format(e) konnte(n) nicht gelöscht werden", + // "admin.registries.bitstream-formats.delete.failure.head": "Failure", "admin.registries.bitstream-formats.delete.failure.head": "Fehler", + // "admin.registries.bitstream-formats.delete.success.amount": "Successfully removed {{ amount }} format(s)", "admin.registries.bitstream-formats.delete.success.amount": "{{ amount }} Format(e) erfolgreich gelöscht", + // "admin.registries.bitstream-formats.delete.success.head": "Success", "admin.registries.bitstream-formats.delete.success.head": "Erfolg", + // "admin.registries.bitstream-formats.description": "This list of bitstream formats provides information about known formats and their support level.", "admin.registries.bitstream-formats.description": "Die Liste der Dateiformate enthält Informationen über bekannte Formate und deren Unterstützungsgrad.", + // "admin.registries.bitstream-formats.edit.description.hint": "", "admin.registries.bitstream-formats.edit.description.hint": "", + // "admin.registries.bitstream-formats.edit.description.label": "Description", "admin.registries.bitstream-formats.edit.description.label": "Beschreibung", + // "admin.registries.bitstream-formats.edit.extensions.hint": "Extensions are file extensions that are used to automatically identify the format of uploaded files. You can enter several extensions for each format.", "admin.registries.bitstream-formats.edit.extensions.hint": "Extensionen sind Dateieindungen, welche zur Identifizierung der Formate von hochgeladenen Dateien dienen. Sie können mehrere Endungen pro Format angeben.", + // "admin.registries.bitstream-formats.edit.extensions.label": "File extensions", "admin.registries.bitstream-formats.edit.extensions.label": "Dateiendungen", + // "admin.registries.bitstream-formats.edit.extensions.placeholder": "Enter a file extenstion without the dot", "admin.registries.bitstream-formats.edit.extensions.placeholder": "Geben Sie die Endung ohne Punkt ein", + // "admin.registries.bitstream-formats.edit.failure.content": "An error occurred while editing the bitstream format.", "admin.registries.bitstream-formats.edit.failure.content": "Ein Fehler ist beim Editieren des Dateiformates", + // "admin.registries.bitstream-formats.edit.failure.head": "Failure", "admin.registries.bitstream-formats.edit.failure.head": "Fehler", + // "admin.registries.bitstream-formats.edit.head": "Bitstream format: {{ format }}", "admin.registries.bitstream-formats.edit.head": "Dateiformat: {{ format }}", + // "admin.registries.bitstream-formats.edit.internal.hint": "Formats marked as internal are hidden from the user, and used for administrative purposes.", - "admin.registries.bitstream-formats.edit.internal.hint": "Dateiformate, die als intern gekennzeichnit sind, dienen administrativen Zwecken und bleiben dem Endnutzer verborgen.", + "admin.registries.bitstream-formats.edit.internal.hint": "Dateiformate, die als intern gekennzeichnet sind, dienen administrativen Zwecken und bleiben dem Endnutzer verborgen.", + // "admin.registries.bitstream-formats.edit.internal.label": "Internal", "admin.registries.bitstream-formats.edit.internal.label": "Intern", + // "admin.registries.bitstream-formats.edit.mimetype.hint": "The MIME type associated with this format, does not have to be unique.", "admin.registries.bitstream-formats.edit.mimetype.hint": "Der MIME Typ dieses Formates. Er muss nicht einzigartig sein.", + // "admin.registries.bitstream-formats.edit.mimetype.label": "MIME Type", "admin.registries.bitstream-formats.edit.mimetype.label": "MIME Typ", + // "admin.registries.bitstream-formats.edit.shortDescription.hint": "A unique name for this format, (e.g. Microsoft Word XP or Microsoft Word 2000)", "admin.registries.bitstream-formats.edit.shortDescription.hint": "Ein eindeutiger Name für dieses Format, (z.B. Microsoft Word XP oder Microsoft Word 2000)", + // "admin.registries.bitstream-formats.edit.shortDescription.label": "Name", "admin.registries.bitstream-formats.edit.shortDescription.label": "Name", + // "admin.registries.bitstream-formats.edit.success.content": "The bitstream format was successfully edited.", "admin.registries.bitstream-formats.edit.success.content": "Das Dateiformat wurde erfolgreich bearbeitet.", + // "admin.registries.bitstream-formats.edit.success.head": "Success", "admin.registries.bitstream-formats.edit.success.head": "Erfolg", + // "admin.registries.bitstream-formats.edit.supportLevel.hint": "The level of support your institution pledges for this format.", "admin.registries.bitstream-formats.edit.supportLevel.hint": "Der Unterstützungsgrad den Ihre Einrichtung für dieses Format anbietet.", + // "admin.registries.bitstream-formats.edit.supportLevel.label": "Support level", "admin.registries.bitstream-formats.edit.supportLevel.label": "Unterstützungsgrad", + // "admin.registries.bitstream-formats.head": "Bitstream Format Registry", "admin.registries.bitstream-formats.head": "Referenzliste der Dateiformate", + // "admin.registries.bitstream-formats.no-items": "No bitstream formats to show.", "admin.registries.bitstream-formats.no-items": "Es gibt keine Dateiformate in der Referenzliste.", + // "admin.registries.bitstream-formats.table.delete": "Delete selected", "admin.registries.bitstream-formats.table.delete": "Auswahl löschen", + // "admin.registries.bitstream-formats.table.deselect-all": "Deselect all", "admin.registries.bitstream-formats.table.deselect-all": "Alle abwählen", + // "admin.registries.bitstream-formats.table.internal": "internal", "admin.registries.bitstream-formats.table.internal": "intern", + // "admin.registries.bitstream-formats.table.mimetype": "MIME Type", "admin.registries.bitstream-formats.table.mimetype": "MIME Typ", + // "admin.registries.bitstream-formats.table.name": "Name", "admin.registries.bitstream-formats.table.name": "Name", + // "admin.registries.bitstream-formats.table.return": "Return", "admin.registries.bitstream-formats.table.return": "Zurück", + // "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Known", "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Bekannt", + // "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Supported", "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Unterstützt", + // "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Unknown", "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Unbekannt", + // "admin.registries.bitstream-formats.table.supportLevel.head": "Support Level", "admin.registries.bitstream-formats.table.supportLevel.head": "Unterstützungsgrad", + // "admin.registries.bitstream-formats.title": "DSpace Angular :: Bitstream Format Registry", "admin.registries.bitstream-formats.title": "DSpace Angular :: Referenzliste der Dateiformate", + + + // "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.description": "In der Referenzliste der Metadaten sind alle Metadatenfelder aufgeführt, die in diesem Repositorium zur Verfügung stehen. Diese Felder können auf verschiedene Schemata aufgeteilt sein. Für DSpace ist das Dublin Core Schema auf jeden Fall erforderlich.", + // "admin.registries.metadata.form.create": "Create metadata schema", "admin.registries.metadata.form.create": "Metadatenschema anlegen", + // "admin.registries.metadata.form.edit": "Edit metadata schema", "admin.registries.metadata.form.edit": "Metadatenschema bearbeiten", + // "admin.registries.metadata.form.name": "Name", "admin.registries.metadata.form.name": "Name", + // "admin.registries.metadata.form.namespace": "Namespace", "admin.registries.metadata.form.namespace": "Namensraum", + // "admin.registries.metadata.head": "Metadata Registry", "admin.registries.metadata.head": "Metadatenreferenzliste", + // "admin.registries.metadata.schemas.no-items": "No metadata schemas to show.", "admin.registries.metadata.schemas.no-items": "Es gibt keinen Metadatenschemata in der Referenzliste.", + // "admin.registries.metadata.schemas.table.delete": "Delete selected", "admin.registries.metadata.schemas.table.delete": "Ausgewählte löschen", + // "admin.registries.metadata.schemas.table.id": "ID", "admin.registries.metadata.schemas.table.id": "ID", + // "admin.registries.metadata.schemas.table.name": "Name", "admin.registries.metadata.schemas.table.name": "Name", + // "admin.registries.metadata.schemas.table.namespace": "Namespace", "admin.registries.metadata.schemas.table.namespace": "Namensraum", + // "admin.registries.metadata.title": "DSpace Angular :: Metadata Registry", "admin.registries.metadata.title": "DSpace Angular :: Metadatenreferenzliste", + + + // "admin.registries.schema.description": "This is the metadata schema for \"{{namespace}}\".", "admin.registries.schema.description": "Dies ist das Metadatenschema für den Namensraum \"{{namespace}}\".", + // "admin.registries.schema.fields.head": "Schema metadata fields", "admin.registries.schema.fields.head": "Im Schema enthaltene Metadatenfelder", + // "admin.registries.schema.fields.no-items": "No metadata fields to show.", "admin.registries.schema.fields.no-items": "Es gibt keine Metadatenfelder in diesem Schema.", + // "admin.registries.schema.fields.table.delete": "Delete selected", "admin.registries.schema.fields.table.delete": "Ausgewähltes löschen", + // "admin.registries.schema.fields.table.field": "Field", "admin.registries.schema.fields.table.field": "Feld", + // "admin.registries.schema.fields.table.scopenote": "Scope Note", "admin.registries.schema.fields.table.scopenote": "Gültigkeitsbereich", + // "admin.registries.schema.form.create": "Create metadata field", "admin.registries.schema.form.create": "Metadatenfeld anlegen", + // "admin.registries.schema.form.edit": "Edit metadata field", "admin.registries.schema.form.edit": "Metadatenfeld bearbeiten", + // "admin.registries.schema.form.element": "Element", "admin.registries.schema.form.element": "Element", + // "admin.registries.schema.form.qualifier": "Qualifier", "admin.registries.schema.form.qualifier": "Qualifizierer", + // "admin.registries.schema.form.scopenote": "Scope Note", "admin.registries.schema.form.scopenote": "Geltungsbereich", + // "admin.registries.schema.head": "Metadata Schema", "admin.registries.schema.head": "Metadatenschema", + // "admin.registries.schema.notification.created": "Successfully created metadata schema \"{{prefix}}\"", "admin.registries.schema.notification.created": "\"{{prefix}}\" wurde erfolgreich angelegt.", + // "admin.registries.schema.notification.deleted.failure": "Failed to delete {{amount}} metadata schemas", "admin.registries.schema.notification.deleted.failure": "{{amount}} Metadatenschema(ta) konnte(n) nicht gelöscht werden", + // "admin.registries.schema.notification.deleted.success": "Successfully deleted {{amount}} metadata schemas", "admin.registries.schema.notification.deleted.success": "{{amount}} Metadatenschema(ta) wurde(n) gelöscht.", + // "admin.registries.schema.notification.edited": "Successfully edited metadata schema \"{{prefix}}\"", "admin.registries.schema.notification.edited": "Das Schema \"{{prefix}}\" wurde erfolgreich bearbeitet.", + // "admin.registries.schema.notification.failure": "Error", "admin.registries.schema.notification.failure": "Fehler", + // "admin.registries.schema.notification.field.created": "Successfully created metadata field \"{{field}}\"", "admin.registries.schema.notification.field.created": "Das Feld \"{{field}}\" wurde erfolgreich angelegt.", + // "admin.registries.schema.notification.field.deleted.failure": "Failed to delete {{amount}} metadata fields", "admin.registries.schema.notification.field.deleted.failure": "{{amount}} Metadatenfeld(er) konnte(n) nicht gelöscht werden.", + // "admin.registries.schema.notification.field.deleted.success": "Successfully deleted {{amount}} metadata fields", "admin.registries.schema.notification.field.deleted.success": "{{amount}} Metadatenfeld(er) wurde(n) erfolgreich gelöscht.", + // "admin.registries.schema.notification.field.edited": "Successfully edited metadata field \"{{field}}\"", "admin.registries.schema.notification.field.edited": "Das Feld \"{{field}}\" wurde erfolgreich bearbeitet.", + // "admin.registries.schema.notification.success": "Success", "admin.registries.schema.notification.success": "Erfolg", + // "admin.registries.schema.return": "Return", "admin.registries.schema.return": "Zurück", + // "admin.registries.schema.title": "DSpace Angular :: Metadata Schema Registry", "admin.registries.schema.title": "DSpace Angular :: Referenzliste der Metadatenschemata", + + + // "auth.errors.invalid-user": "Invalid email address or password.", "auth.errors.invalid-user": "Password oder E-Mail-Adresse ungültig.", + // "auth.messages.expired": "Your session has expired. Please log in again.", "auth.messages.expired": "Ihre Sitzung ist abgelaufen, bitte loggen Sie sich erneut ein.", + + // "browse.comcol.by.author": "By Author", "browse.comcol.by.author": "Nach Autor/in", + // "browse.comcol.by.dateissued": "By Issue Date", "browse.comcol.by.dateissued": "Nach Erscheinungsjahr", + // "browse.comcol.by.subject": "By Subject", "browse.comcol.by.subject": "Nach Schlagwort", + // "browse.comcol.by.title": "By Title", "browse.comcol.by.title": "Nach Titel", + // "browse.comcol.head": "Browse", "browse.comcol.head": "Listen", + // "browse.empty": "No items to show.", "browse.empty": "Es gibt keine Dokumente, die angezeigt werden können.", + // "browse.metadata.author": "Author", "browse.metadata.author": "Autor/in", + // "browse.metadata.dateissued": "Issue Date", "browse.metadata.dateissued": "Erscheinungsdatum", + // "browse.metadata.subject": "Subject", "browse.metadata.subject": "Schlagwort", + // "browse.metadata.title": "Title", "browse.metadata.title": "Titel", + + // "browse.metadata.author.breadcrumbs": "Browse by Author", + "browse.metadata.author.breadcrumbs": "Auflistung nach Autor(in)", + + // "browse.metadata.dateissued.breadcrumbs": "Browse by Date", + "browse.metadata.dateissued.breadcrumbs": "Auflistung nach Datum", + + // "browse.metadata.subject.breadcrumbs": "Browse by Subject", + "browse.metadata.subject.breadcrumbs": "Auflistung nach Schlagwort", + + // "browse.metadata.title.breadcrumbs": "Browse by Title", + "browse.metadata.title.breadcrumbs": "Auflistung nach Titel", + // "browse.startsWith.choose_start": "(Choose start)", "browse.startsWith.choose_start": "(Startpunkt wählen)", + // "browse.startsWith.choose_year": "(Choose year)", "browse.startsWith.choose_year": "(Zeitpunkt wählen)", + // "browse.startsWith.jump": "Jump to a point in the index:", "browse.startsWith.jump": "Zu einem Punkt im Index springen:", + // "browse.startsWith.months.april": "April", "browse.startsWith.months.april": "April", + // "browse.startsWith.months.august": "August", "browse.startsWith.months.august": "August", + // "browse.startsWith.months.december": "December", "browse.startsWith.months.december": "Dezember", + // "browse.startsWith.months.february": "February", "browse.startsWith.months.february": "Februar", + // "browse.startsWith.months.january": "January", "browse.startsWith.months.january": "Januar", + // "browse.startsWith.months.july": "July", "browse.startsWith.months.july": "Juli", + // "browse.startsWith.months.june": "June", "browse.startsWith.months.june": "Juni", + // "browse.startsWith.months.march": "March", "browse.startsWith.months.march": "März", + // "browse.startsWith.months.may": "May", "browse.startsWith.months.may": "Mai", + // "browse.startsWith.months.none": "(Choose month)", "browse.startsWith.months.none": "(Monat auswählen)", + // "browse.startsWith.months.november": "November", "browse.startsWith.months.november": "November", + // "browse.startsWith.months.october": "October", "browse.startsWith.months.october": "Oktober", + // "browse.startsWith.months.september": "September", "browse.startsWith.months.september": "September", + // "browse.startsWith.submit": "Go", "browse.startsWith.submit": "Los", + // "browse.startsWith.type_date": "Or type in a date (year-month):", "browse.startsWith.type_date": "Oder geben Sie ein Datum ein:", + // "browse.startsWith.type_text": "Or enter first few letters:", "browse.startsWith.type_text": "Oder geben Sie die ersten Buchstaben ein:", + // "browse.title": "Browsing {{ collection }} by {{ field }} {{ value }}", "browse.title": "Auflistung von {{ collection }} nach {{ field }} {{ value }}", - // "chips.remove": "Remove chip", + + // "chips.remove": "Remove chip", "chips.remove": "Teil löschen", + + // "collection.create.head": "Create a Collection", "collection.create.head": "Eine Sammlung anlegen", + + // "collection.create.notifications.success": "Successfully created the Collection", + "collection.create.notifications.success": "Sammlung erfolgreich angelegt", + // "collection.create.sub-head": "Create a Collection for Community {{ parent }}", "collection.create.sub-head": "Eine Sammlung in dem Bereich {{ parent }} anlegen", + // "collection.delete.cancel": "Cancel", "collection.delete.cancel": "Abbrechen", + // "collection.delete.confirm": "Confirm", "collection.delete.confirm": "Bestätigen", + // "collection.delete.head": "Delete Collection", "collection.delete.head": "Sammlung löschen", + // "collection.delete.notification.fail": "Collection could not be deleted", "collection.delete.notification.fail": "Die Sammlung konnte nicht gelöscht werden.", + // "collection.delete.notification.success": "Successfully deleted collection", "collection.delete.notification.success": "Die Sammlung wurde erfolgreich gelöscht", + // "collection.delete.text": "Are you sure you want to delete collection \"{{ dso }}\"", "collection.delete.text": "Sind Sie sicher, dass Sie die Sammlung \"{{ dso }}\" löschen wollen?", + + // "collection.edit.delete": "Delete this collection", "collection.edit.delete": "Diese Sammlung löschen", + // "collection.edit.head": "Edit Collection", "collection.edit.head": "Sammlung bearbeiten", + // "collection.edit.breadcrumbs": "Edit Collection", + "collection.edit.breadcrumbs": "Sammlung bearbeiten", + + + // "collection.edit.item-mapper.cancel": "Cancel", "collection.edit.item-mapper.cancel": "Abbrechen", + // "collection.edit.item-mapper.collection": "Collection: \"{{name}}\"", "collection.edit.item-mapper.collection": "Sammlung: \"{{name}}\"", + // "collection.edit.item-mapper.confirm": "Map selected items", "collection.edit.item-mapper.confirm": "Ausgewählte Ressourcen spiegeln", + // "collection.edit.item-mapper.description": "This is the item mapper tool that allows collection administrators to map items from other collections into this collection. You can search for items from other collections and map them, or browse the list of currently mapped items.", "collection.edit.item-mapper.description": "Sammlungsadministratoren haben die Möglichkeit Ressourcen von einer Sammlung in eine andere zu spiegeln. Man kann nach Ressourcen in anderen Sammlungen suchen und diese spiegeln oder sich eine Liste der gespiegelten Ressourcen anzeigen lassen.", + // "collection.edit.item-mapper.head": "Item Mapper - Map Items from Other Collections", "collection.edit.item-mapper.head": "Ressourcen Spiegeln - Spiegelt Ressourcen aus anderen Sammlungen", + // "collection.edit.item-mapper.no-search": "Please enter a query to search", "collection.edit.item-mapper.no-search": "Bitte geben Sie eine Suchanfrage ein.", + // "collection.edit.item-mapper.notifications.map.error.content": "Errors occurred for mapping of {{amount}} items.", "collection.edit.item-mapper.notifications.map.error.content": "Beim Spiegeln von {{amount}} Ressource(n) ist ein Fehler aufgetreten.", + // "collection.edit.item-mapper.notifications.map.error.head": "Mapping errors", "collection.edit.item-mapper.notifications.map.error.head": "Fehler beim Spiegeln", + // "collection.edit.item-mapper.notifications.map.success.content": "Successfully mapped {{amount}} items.", "collection.edit.item-mapper.notifications.map.success.content": "{{amount}} Ressource(n) erfolgreich gespiegelt.", + // "collection.edit.item-mapper.notifications.map.success.head": "Mapping completed", "collection.edit.item-mapper.notifications.map.success.head": "Spiegelung abgeschlossen", + // "collection.edit.item-mapper.notifications.unmap.error.content": "Errors occurred for removing the mappings of {{amount}} items.", "collection.edit.item-mapper.notifications.unmap.error.content": "Beim Spiegeln von {{amount}} Ressource(n) ist ein Fehler aufgetreten.", + // "collection.edit.item-mapper.notifications.unmap.error.head": "Remove mapping errors", "collection.edit.item-mapper.notifications.unmap.error.head": "Spiegeln Entfernen Fehler", + // "collection.edit.item-mapper.notifications.unmap.success.content": "Successfully removed the mappings of {{amount}} items.", "collection.edit.item-mapper.notifications.unmap.success.content": "{{amount}} Spiegelung(en) wurde(n) entfernt.", + // "collection.edit.item-mapper.notifications.unmap.success.head": "Remove mapping completed", "collection.edit.item-mapper.notifications.unmap.success.head": "Spiegelung entfernen abgeschlossen", + // "collection.edit.item-mapper.remove": "Remove selected item mappings", "collection.edit.item-mapper.remove": "Spiegelung der gewählten Ressourcen entfernen.", + // "collection.edit.item-mapper.tabs.browse": "Browse mapped items", "collection.edit.item-mapper.tabs.browse": "Gespiegelte Ressourcen auflisten", + // "collection.edit.item-mapper.tabs.map": "Map new items", "collection.edit.item-mapper.tabs.map": "Neue Ressourcen spiegeln", + + + // "collection.edit.logo.label": "Collection logo", + "collection.edit.logo.label": "Sammlungslogo", + + // "collection.edit.logo.notifications.add.error": "Uploading Collection logo failed. Please verify the content before retrying.", + "collection.edit.logo.notifications.add.error": "Hochladen des Sammlungslogos fehlgeschlagen. Bitte überprüfen Sie den Inhalt, bevor Sie es nochmal versuchen.", + + // "collection.edit.logo.notifications.add.success": "Upload Collection logo successful.", + "collection.edit.logo.notifications.add.success": "Sammlungslogo erfolgreich hochgeladen.", + + // "collection.edit.logo.notifications.delete.success.title": "Logo deleted", + "collection.edit.logo.notifications.delete.success.title": "Logo gelöscht", + + // "collection.edit.logo.notifications.delete.success.content": "Successfully deleted the collection's logo", + "collection.edit.logo.notifications.delete.success.content": "Logo der Sammlung erfolgreich gelöscht", + + // "collection.edit.logo.notifications.delete.error.title": "Error deleting logo", + "collection.edit.logo.notifications.delete.error.title": "Fehler beim Löschen des Logos", + + // "collection.edit.logo.upload": "Drop a Collection Logo to upload", + "collection.edit.logo.upload": "Ziehen Sie ein Logo herüber, um es hochzuladen", + + + + // "collection.edit.notifications.success": "Successfully edited the Collection", + "collection.edit.notifications.success": "Sammlung erfolgreich bearbeitet", + + // "collection.edit.return": "Return", + "collection.edit.return": "Zurück", + + + + // "collection.edit.tabs.curate.head": "Curate", + "collection.edit.tabs.curate.head": "Datenpflege", + + // "collection.edit.tabs.curate.title": "Collection Edit - Curate", + "collection.edit.tabs.curate.title": "Sammlung bearbeiten - Datenpflege", + + // "collection.edit.tabs.metadata.head": "Edit Metadata", + "collection.edit.tabs.metadata.head": "Metadaten bearbeiten", + + // "collection.edit.tabs.metadata.title": "Collection Edit - Metadata", + "collection.edit.tabs.metadata.title": "Sammlung bearbeiten - Metadaten", + + // "collection.edit.tabs.roles.head": "Assign Roles", + "collection.edit.tabs.roles.head": "Rollen zuweisen", + + // "collection.edit.tabs.roles.title": "Collection Edit - Roles", + "collection.edit.tabs.roles.title": "Sammlung bearbeiten - Rollen", + + // "collection.edit.tabs.source.external": "This collection harvests its content from an external source", + "collection.edit.tabs.source.external": "Diese Sammlung bezieht ihre Inhalte aus einer externen Quelle", + + // "collection.edit.tabs.source.form.errors.oaiSource.required": "You must provide a set id of the target collection.", + "collection.edit.tabs.source.form.errors.oaiSource.required": "Sie müssen die OAI-Set-Id der Zielsammlung angeben.", + + // "collection.edit.tabs.source.form.harvestType": "Content being harvested", + "collection.edit.tabs.source.form.harvestType": "Der Inhalt wird automatisch bezogen", + + // "collection.edit.tabs.source.form.head": "Configure an external source", + "collection.edit.tabs.source.form.head": "Externe Quelle konfigurieren", + + // "collection.edit.tabs.source.form.metadataConfigId": "Metadata Format", + "collection.edit.tabs.source.form.metadataConfigId": "Metadatenformat", + + // "collection.edit.tabs.source.form.oaiSetId": "OAI specific set id", + "collection.edit.tabs.source.form.oaiSetId": "OAI spezifische Set-ID", + + // "collection.edit.tabs.source.form.oaiSource": "OAI Provider", + "collection.edit.tabs.source.form.oaiSource": "OAI Anbieter", + + // "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Harvest metadata and bitstreams (requires ORE support)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Bezieht Metadaten und Dateien (ORE-Schnittstelle erforderlich)", + + // "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Harvest metadata and references to bitstreams (requires ORE support)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Bezieht Metadaten und Referenzen auf Dateien (ORE-Schnittstelle erforderlich))", + + // "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Harvest metadata only", + "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Nur Metadaten beziehen", + + // "collection.edit.tabs.source.head": "Content Source", + "collection.edit.tabs.source.head": "Herkunft des Inhalts", + + // "collection.edit.tabs.source.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + "collection.edit.tabs.source.notifications.discarded.content": "Die Änderungen wurden verworfen. Um die Änderungen wieder einzusetzen klicken Sie auf den 'Rückgängig' Knopf", + + // "collection.edit.tabs.source.notifications.discarded.title": "Changed discarded", + "collection.edit.tabs.source.notifications.discarded.title": "Änderungen verworfen", + + // "collection.edit.tabs.source.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", + "collection.edit.tabs.source.notifications.invalid.content": "Ihre Änderungen wurden nicht gespeichert. Stellen Sie sicher, dass alle Felder gültig sind bevor Sie speichern.", + + // "collection.edit.tabs.source.notifications.invalid.title": "Metadata invalid", + "collection.edit.tabs.source.notifications.invalid.title": "Metadaten ungültig", + + // "collection.edit.tabs.source.notifications.saved.content": "Your changes to this collection's content source were saved.", + "collection.edit.tabs.source.notifications.saved.content": "Ihre Änderunge bezüglich der Quelle für den Inhalt der Sammlung wurden gespeichert.", + + // "collection.edit.tabs.source.notifications.saved.title": "Content Source saved", + "collection.edit.tabs.source.notifications.saved.title": "Bezugsquelle für den Inhalt gespeichert", + + // "collection.edit.tabs.source.title": "Collection Edit - Content Source", + "collection.edit.tabs.source.title": "Sammlung bearbeiten - Bezugsquelle für den Inhalt", + + + // "collection.form.abstract": "Short Description", "collection.form.abstract": "Kurzbeschreibung", + // "collection.form.description": "Introductory text (HTML)", "collection.form.description": "Einleitender Text (HTML)", + // "collection.form.errors.title.required": "Please enter a collection name", "collection.form.errors.title.required": "Bitte geben Sie einen Namen für die Sammlung ein.", + // "collection.form.license": "License", "collection.form.license": "Lizenzbestimmung", + // "collection.form.provenance": "Provenance", "collection.form.provenance": "Herkunft", + // "collection.form.rights": "Copyright text (HTML)", "collection.form.rights": "Copyright Text (HTML)", + // "collection.form.tableofcontents": "News (HTML)", "collection.form.tableofcontents": "Neuigkeiten (HTML)", + // "collection.form.title": "Name", "collection.form.title": "Name", + + // "collection.page.browse.recent.head": "Recent Submissions", "collection.page.browse.recent.head": "Neueste Veröffentlichungen", + // "collection.page.browse.recent.empty": "No items to show", "collection.page.browse.recent.empty": "Es gibt keine Ressourcen zum Anzeigen", + // "collection.page.handle": "Permanent URI for this collection", "collection.page.handle": "Dauerhafte URI für die Sammlung", + // "collection.page.license": "License", "collection.page.license": "Lizenz", + // "collection.page.news": "News", "collection.page.news": "Neuigkeiten", + + // "collection.select.confirm": "Confirm selected", "collection.select.confirm": "Auswahl bestätigen", + // "collection.select.empty": "No collections to show", "collection.select.empty": "Es gibt keine Sammlungen, die angezeigt werden können", + // "collection.select.table.title": "Title", "collection.select.table.title": "Titel", + + + // "collection.source.update.notifications.error.content": "The provided settings have been tested and didn't work.", + "collection.source.update.notifications.error.content": "Die angegebenen Einstellen wurden getestet und haben nicht funktioniert.", + + // "collection.source.update.notifications.error.title": "Server Error", + "collection.source.update.notifications.error.title": "Serverfehler", + + + + // "communityList.tabTitle": "DSpace - Community List", + "communityList.tabTitle": "DSpace - Bereichsliste", + + // "communityList.title": "List of Communities", + "communityList.title": "Liste der Bereiche", + + // "communityList.showMore": "Show More", + "communityList.showMore": "Mehr anzeigen", + + + // "community.create.head": "Create a Community", "community.create.head": "Sammlung anlegen", + + // "community.create.notifications.success": "Successfully created the Community", + "community.create.notifications.success": "Bereich erfolgreich angelegt", + // "community.create.sub-head": "Create a Sub-Community for Community {{ parent }}", "community.create.sub-head": "Teilbeirech im Bereich {{ parent }} anlegen", + // "community.delete.cancel": "Cancel", "community.delete.cancel": "Abbrechen", + // "community.delete.confirm": "Confirm", "community.delete.confirm": "Bestätigen", + // "community.delete.head": "Delete Community", "community.delete.head": "Bereich Löschen", + // "community.delete.notification.fail": "Community could not be deleted", - "community.delete.notification.fail": "Der Bereich konnte nicht gelöscht werden.", + "community.delete.notification.fail": "Der Bereich konnte nicht gelöscht werden.", + // "community.delete.notification.success": "Successfully deleted community", "community.delete.notification.success": "Der Bereich wurde erfolgreich gelöscht.", + // "community.delete.text": "Are you sure you want to delete community \"{{ dso }}\"", "community.delete.text": "Sind Sie sicher, dass Sie den Bereich \"{{ dso }}\" löschen möchten?", + // "community.edit.delete": "Delete this community", "community.edit.delete": "Diesen Bereich löschen", + // "community.edit.head": "Edit Community", "community.edit.head": "Bereich bearbeiten", + + // "community.edit.breadcrumbs": "Edit Community", + "community.edit.breadcrumbs": "Bereich bearbeiten", + + + // "community.edit.logo.label": "Community logo", + "community.edit.logo.label": "Bereichslogo", + + // "community.edit.logo.notifications.add.error": "Uploading Community logo failed. Please verify the content before retrying.", + "community.edit.logo.notifications.add.error": "Hochladen des Bereichslogos fehlgeschlagen. Bitte überprüfen Sie den Inhalt bevor Sie es noch einmal versuchen.", + + // "community.edit.logo.notifications.add.success": "Upload Community logo successful.", + "community.edit.logo.notifications.add.success": "Hochladen des Bereichslogos erfolgreich.", + + // "community.edit.logo.notifications.delete.success.title": "Logo deleted", + "community.edit.logo.notifications.delete.success.title": "Logo gelöscht", + + // "community.edit.logo.notifications.delete.success.content": "Successfully deleted the community's logo", + "community.edit.logo.notifications.delete.success.content": "Das Bereichslogo wurde erfolgreich gelöscht", + + // "community.edit.logo.notifications.delete.error.title": "Error deleting logo", + "community.edit.logo.notifications.delete.error.title": "Fehler beim Löschen des Logos", + + // "community.edit.logo.upload": "Drop a Community Logo to upload", + "community.edit.logo.upload": "Ziehen Sie ein Bereichslogo herüber, um es hochzuladen", + + + + // "community.edit.notifications.success": "Successfully edited the Community", + "community.edit.notifications.success": "Bereich erfolgreich bearbeitet", + + // "community.edit.return": "Return", + "community.edit.return": "Zurück", + + + + // "community.edit.tabs.curate.head": "Curate", + "community.edit.tabs.curate.head": "Datenpflege", + + // "community.edit.tabs.curate.title": "Community Edit - Curate", + "community.edit.tabs.curate.title": "Bereich bearbeiten - Datenpflege", + + // "community.edit.tabs.metadata.head": "Edit Metadata", + "community.edit.tabs.metadata.head": "Metadaten bearbeiten", + + // "community.edit.tabs.metadata.title": "Community Edit - Metadata", + "community.edit.tabs.metadata.title": "Bereich bearbeiten - Metadaten", + + // "community.edit.tabs.roles.head": "Assign Roles", + "community.edit.tabs.roles.head": "Rollen zuordnen", + + // "community.edit.tabs.roles.title": "Community Edit - Roles", + "community.edit.tabs.roles.title": "Bereich bearbeiten - Rollen", + + + // "community.form.abstract": "Short Description", "community.form.abstract": "Kurzbeschreibung", + // "community.form.description": "Introductory text (HTML)", "community.form.description": "Einleitender Text (HTML)", + // "community.form.errors.title.required": "Please enter a community name", "community.form.errors.title.required": "Bitte geben Sie einen Namen für den Bereich ein.", + // "community.form.rights": "Copyright text (HTML)", "community.form.rights": "Copyrighterklärung (HTML)", + // "community.form.tableofcontents": "News (HTML)", "community.form.tableofcontents": "Neuigkeiten (HTML)", + // "community.form.title": "Name", "community.form.title": "Name", + // "community.page.handle": "Permanent URI for this community", "community.page.handle": "Dauerhafte URI für den Bereich", + // "community.page.license": "License", "community.page.license": "Lizenz", + // "community.page.news": "News", "community.page.news": "Neuigkeiten", + // "community.all-lists.head": "Subcommunities and Collections", "community.all-lists.head": "Teilbereiche in diesem Bereich", + // "community.sub-collection-list.head": "Collections of this Community", "community.sub-collection-list.head": "Sammlungen in diesem Bereich", + // "community.sub-community-list.head": "Communities of this Community", "community.sub-community-list.head": "Teilbereiche in diesem Bereich", + + // "dso-selector.create.collection.head": "New collection", "dso-selector.create.collection.head": "Neue Sammlung", + // "dso-selector.create.community.head": "New community", "dso-selector.create.community.head": "Neuer Bereich", + // "dso-selector.create.community.sub-level": "Create a new community in", "dso-selector.create.community.sub-level": "Einen neuen Bereich anlegen in", + // "dso-selector.create.community.top-level": "Create a new top-level community", "dso-selector.create.community.top-level": "Einen neuen Bereich auf oberster Ebene anlgen", + // "dso-selector.create.item.head": "New item", "dso-selector.create.item.head": "Neue Ressource", + // "dso-selector.edit.collection.head": "Edit collection", "dso-selector.edit.collection.head": "Sammlung bearbeiten", + // "dso-selector.edit.community.head": "Edit community", "dso-selector.edit.community.head": "Bereich bearbeiten", + // "dso-selector.edit.item.head": "Edit item", "dso-selector.edit.item.head": "Ressource bearbeiten", + // "dso-selector.no-results": "No {{ type }} found", "dso-selector.no-results": "Kein(e) {{ type }} gefunden", + // "dso-selector.placeholder": "Search for a {{ type }}", "dso-selector.placeholder": "Suche nach {{ type }}", + + // "error.browse-by": "Error fetching items", "error.browse-by": "Fehler beim Laden der Ressourcen", + // "error.collection": "Error fetching collection", "error.collection": "Fehler beim Laden der Sammlung", + // "error.collections": "Error fetching collections", "error.collections": "Fehler beim Laden der Sammlungen", + // "error.community": "Error fetching community", "error.community": "Fehler beim Laden des Bereichs", + // "error.identifier": "No item found for the identifier", "error.identifier": "Zu dieser Kennung wurde keine Ressource gefunden", + // "error.default": "Error", "error.default": "Fehler", + // "error.item": "Error fetching item", "error.item": "Fehler beim Laden der Ressource", + // "error.items": "Error fetching items", - "error.items": "Fejöer beim Laden der Ressorucen", + "error.items": "Fejöer beim Laden der Ressourcen", + // "error.objects": "Error fetching objects", "error.objects": "Fehler beim Laden der Objekte", + // "error.recent-submissions": "Error fetching recent submissions", "error.recent-submissions": "Fehler beim Laden der aktuellsten Veröffentlichungen", + // "error.search-results": "Error fetching search results", - "error.search-results": "Fehler beim Laden der Suchergebenisse", + "error.search-results": "Fehler beim Laden der Suchergebnisse", + // "error.sub-collections": "Error fetching sub-collections", "error.sub-collections": "Fehler beim Laden der Teilsammlungen", + // "error.sub-communities": "Error fetching sub-communities", "error.sub-communities": "Fehler beim Laden der Teilbereiche", + // "error.submission.sections.init-form-error": "An error occurred during section initialize, please check your input-form configuration. Details are below :

", "error.submission.sections.init-form-error": "Ein Fehler ist bei der Initialisierung der Eingabemaske aufgetreten. Bitte Überprüfen Sie die Konfiguration Ihrer Eingabemaske. Details s.u.

", + // "error.top-level-communities": "Error fetching top-level communities", "error.top-level-communities": "Hauptbereich konnte nicht geladen werden", + // "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.license.notgranted": "Um die Veröffentlichung abzuschließen, müssen Sie die Lizenzbedingungen akzeptieren. Wenn Sie zur Zeit dazu nicht in der Lage sind, können Sie Ihre Arbeit sichern und später dazu zurückgkehren, um zuzustimmen oder die Einreichung zu löschen.", + // "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", "error.validation.pattern": "Die Eingabe hat dem folgenden Muster zu entsprechen: {{ pattern }}.", + // "error.validation.filerequired": "The file upload is mandatory", + "error.validation.filerequired": "Das Hochladen einer Datei ist erforderlich.", + + + // "footer.copyright": "copyright © 2002-{{ year }}", "footer.copyright": "Copyright © 2002-{{ year }}", + // "footer.link.dspace": "DSpace software", - "footer.link.dspace": "DSpace software", + "footer.link.dspace": "DSpace Software", + // "footer.link.duraspace": "DuraSpace", "footer.link.duraspace": "DuraSpace", + + // "form.add": "Add", + "form.add": "Hinzufügen", + + // "form.add-help": "Click here to add the current entry and to add another one", + "form.add-help": "Klicken Sie hier, um den aktuellen Eintrag und einen weiteren hinzuzufügen", + // "form.cancel": "Cancel", "form.cancel": "Abbrechen", + // "form.clear": "Clear", "form.clear": "Eingaben löschen", + // "form.clear-help": "Click here to remove the selected value", "form.clear-help": "Klicken Sie hier, um den ausgewählten Wert zu entfernen", + // "form.edit": "Edit", "form.edit": "Bearbeiten", + // "form.edit-help": "Click here to edit the selected value", "form.edit-help": "Klicken Sie hier, um den ausgwählten Wert zu bearbeiten", + // "form.first-name": "First name", "form.first-name": "Vorname", + // "form.group-collapse": "Collapse", "form.group-collapse": "Zusammenklappen", + // "form.group-collapse-help": "Click here to collapse", "form.group-collapse-help": "Zum Zusammenfalten bitte hier klicken", + // "form.group-expand": "Expand", "form.group-expand": "Auffalten", + // "form.group-expand-help": "Click here to expand and add more elements", "form.group-expand-help": "Zum Ausklappten und Hinzufügen von mehr Elementen, klicken Sie hier", + // "form.last-name": "Last name", "form.last-name": "Nachname", + // "form.loading": "Loading...", "form.loading": "Am Laden ...", + + // "form.lookup": "Lookup", + "form.lookup": "Nachschlagen", + + // "form.lookup-help": "Click here to look up an existing relation", + "form.lookup-help": "Klicken Sie hier, um eine bestehende Beziehung nachzuschlagen", + // "form.no-results": "No results found", "form.no-results": "Keine Ergebnisse gefunden", + // "form.no-value": "No value entered", "form.no-value": "Kein Wert eingegeben", + // "form.other-information": {}, "form.other-information": {}, + // "form.remove": "Remove", "form.remove": "Entfernen", + // "form.save": "Save", "form.save": "Speichern", + // "form.save-help": "Save changes", "form.save-help": "Änderungen speichern", + // "form.search": "Search", "form.search": "Suche", + // "form.search-help": "Click here to looking for an existing correspondence", "form.search-help": "Klicken Sie hier, um eine Übereinstimmung zu suchen", + // "form.submit": "Submit", "form.submit": "Abschicken", + + // "home.description": "", "home.description": "", + // "home.title": "DSpace Angular :: Home", "home.title": "DSpace Angular :: Startseite", + // "home.top-level-communities.head": "Communities in DSpace", "home.top-level-communities.head": "Hauptbereiche in DSpace", + // "home.top-level-communities.help": "Select a community to browse its collections.", "home.top-level-communities.help": "Wählen Sie einen Bereiche, um dessen Inhalt anzusehen.", + + // "item.edit.delete.cancel": "Cancel", "item.edit.delete.cancel": "Abbrechen", + // "item.edit.delete.confirm": "Delete", "item.edit.delete.confirm": "Löschen", + // "item.edit.delete.description": "Are you sure this item should be completely deleted? Caution: At present, no tombstone would be left.", "item.edit.delete.description": "Sind Sie sicher, dass diese Ressource komplett gelöscht werden soll. Warnung: Zur Zeit wird kein Grabstein hinterlassen", + // "item.edit.delete.error": "An error occurred while deleting the item", "item.edit.delete.error": "Beim Löschen der Ressource ist ein Fehler aufgetreten", + // "item.edit.delete.header": "Delete item: {{ id }}", "item.edit.delete.header": "Löschen der Ressource: {{ id }}", + // "item.edit.delete.success": "The item has been deleted", "item.edit.delete.success": "Die Ressource wurde gelöscht", + // "item.edit.head": "Edit Item", "item.edit.head": "Ressource bearbeiten", + // "item.edit.breadcrumbs": "Edit Item", + "item.edit.breadcrumbs": "Ressource bearbeiten", + + + // "item.edit.item-mapper.buttons.add": "Map item to selected collections", "item.edit.item-mapper.buttons.add": "Ressource in die gewählte(n) Sammlung(en) spiegeln", + // "item.edit.item-mapper.buttons.remove": "Remove item's mapping for selected collections", "item.edit.item-mapper.buttons.remove": "Spiegelung der Ressource aus der/den gewählten Sammlung(en) entfernen", + // "item.edit.item-mapper.cancel": "Cancel", "item.edit.item-mapper.cancel": "Abbrechen", + // "item.edit.item-mapper.description": "This is the item mapper tool that allows administrators to map this item to other collections. You can search for collections and map them, or browse the list of collections the item is currently mapped to.", "item.edit.item-mapper.description": "Sammlungsadministratoren haben die Möglichkeit Ressourcen von einer Sammlung in eine andere zu spiegeln. Man kann nach Ressourcen in anderen Sammlungen suchen und diese spiegeln oder sich eine Liste der gespiegelten Ressourcen anzeigen lassen.", + // "item.edit.item-mapper.head": "Item Mapper - Map Item to Collections", "item.edit.item-mapper.head": "Ressourcen Spiegeln - Spiegelt eine Resource in andere Sammlungen", + // "item.edit.item-mapper.item": "Item: \"{{name}}\"", "item.edit.item-mapper.item": "Ressource: \"{{name}}\"", + // "item.edit.item-mapper.no-search": "Please enter a query to search", "item.edit.item-mapper.no-search": "Bitte geben Sie einen Suchbegriff ein", + // "item.edit.item-mapper.notifications.add.error.content": "Errors occurred for mapping of item to {{amount}} collections.", "item.edit.item-mapper.notifications.add.error.content": "Beim Spiegeln der Resource in {{amount}} Sammlung(en) ist ein Fehler aufgetreten.", + // "item.edit.item-mapper.notifications.add.error.head": "Mapping errors", "item.edit.item-mapper.notifications.add.error.head": "Fehler beim Spiegeln", + // "item.edit.item-mapper.notifications.add.success.content": "Successfully mapped item to {{amount}} collections.", "item.edit.item-mapper.notifications.add.success.content": "Ressource erfolgreich in {{amount}} Sammlung(en) gespiegelt.", + // "item.edit.item-mapper.notifications.add.success.head": "Mapping completed", "item.edit.item-mapper.notifications.add.success.head": "Spiegeln abgeschlossen", + // "item.edit.item-mapper.notifications.remove.error.content": "Errors occurred for the removal of the mapping to {{amount}} collections.", "item.edit.item-mapper.notifications.remove.error.content": "Beim Entfernen der Spiegelung in {{amount}} Sammlung(en) ist ein Fehler aufgetreten.", + // "item.edit.item-mapper.notifications.remove.error.head": "Removal of mapping errors", "item.edit.item-mapper.notifications.remove.error.head": "Fehler beim Entfernen von gespiegelten Ressourcen", + // "item.edit.item-mapper.notifications.remove.success.content": "Successfully removed mapping of item to {{amount}} collections.", "item.edit.item-mapper.notifications.remove.success.content": "Spiegelung der Ressource aus {{amount}} Sammlung(en) erfolgreich.", + // "item.edit.item-mapper.notifications.remove.success.head": "Removal of mapping completed", "item.edit.item-mapper.notifications.remove.success.head": "Entfernen der Spiegelung abgeschlossen", + // "item.edit.item-mapper.tabs.browse": "Browse mapped collections", "item.edit.item-mapper.tabs.browse": "Gespiegelte Sammlungen anzeigen", + // "item.edit.item-mapper.tabs.map": "Map new collections", "item.edit.item-mapper.tabs.map": "Neue Sammlungen spiegeln", + + // "item.edit.metadata.add-button": "Add", "item.edit.metadata.add-button": "Hinzufügen", + // "item.edit.metadata.discard-button": "Discard", "item.edit.metadata.discard-button": "Verwerfen", + // "item.edit.metadata.edit.buttons.edit": "Edit", "item.edit.metadata.edit.buttons.edit": "Bearbeiten", + // "item.edit.metadata.edit.buttons.remove": "Remove", "item.edit.metadata.edit.buttons.remove": "Entfernen", + // "item.edit.metadata.edit.buttons.undo": "Undo changes", "item.edit.metadata.edit.buttons.undo": "Änderungen rückgängig machen", + // "item.edit.metadata.edit.buttons.unedit": "Stop editing", "item.edit.metadata.edit.buttons.unedit": "Bearbeitung beenden", + // "item.edit.metadata.headers.edit": "Edit", "item.edit.metadata.headers.edit": "Bearbeiten", + // "item.edit.metadata.headers.field": "Field", "item.edit.metadata.headers.field": "Feld", + // "item.edit.metadata.headers.language": "Lang", "item.edit.metadata.headers.language": "Sprache", + // "item.edit.metadata.headers.value": "Value", "item.edit.metadata.headers.value": "Wert", + // "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", "item.edit.metadata.metadatafield.invalid": "Bitte wählen Sie ein gültiges Metadatenfeld", + // "item.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", "item.edit.metadata.notifications.discarded.content": "Ihre Änderungen wurden verworfen. Um diese wieder anzuwenden, klicken Sie auf den 'Rückgängig machen' Knopf", + // "item.edit.metadata.notifications.discarded.title": "Changed discarded", "item.edit.metadata.notifications.discarded.title": "Änderungen verworfen", + // "item.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", "item.edit.metadata.notifications.invalid.content": "Ihre Änderungen wurden nicht gespeichert. Stellen Sie sicher, dass alle Felder gültig sind, bevor Sie Abspeichern.", + // "item.edit.metadata.notifications.invalid.title": "Metadata invalid", "item.edit.metadata.notifications.invalid.title": "Metadaten ungültig", + // "item.edit.metadata.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", "item.edit.metadata.notifications.outdated.content": "Die Ressource, an der Sie gerade arbeiten, wurde von einem anderen Benutzer geändert. Ihre aktuellen Änderungen werden nicht angewandt, um Konflikte zu vermeiden.", + // "item.edit.metadata.notifications.outdated.title": "Changed outdated", "item.edit.metadata.notifications.outdated.title": "Änderung veraltet", + // "item.edit.metadata.notifications.saved.content": "Your changes to this item's metadata were saved.", "item.edit.metadata.notifications.saved.content": "Ihre Änderungen an den Metadaten der Ressource wurden gespeichert.", + // "item.edit.metadata.notifications.saved.title": "Metadata saved", "item.edit.metadata.notifications.saved.title": "Metadaten gespeichert", + // "item.edit.metadata.reinstate-button": "Undo", "item.edit.metadata.reinstate-button": "Rückgängig machen", + // "item.edit.metadata.save-button": "Save", "item.edit.metadata.save-button": "Speichern", + + // "item.edit.modify.overview.field": "Field", "item.edit.modify.overview.field": "Feld", + // "item.edit.modify.overview.language": "Language", "item.edit.modify.overview.language": "Sprache", + // "item.edit.modify.overview.value": "Value", "item.edit.modify.overview.value": "Wert", + + // "item.edit.move.cancel": "Cancel", "item.edit.move.cancel": "Abbrechen", + // "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.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 occurred when attempting to move the item", "item.edit.move.error": "Ein Fehler ist beim Verschieben der Ressource aufgetreten", + // "item.edit.move.head": "Move item: {{id}}", "item.edit.move.head": "Ressource verschieben: {{id}}", + // "item.edit.move.inheritpolicies.checkbox": "Inherit policies", "item.edit.move.inheritpolicies.checkbox": "Rechte erben", + // "item.edit.move.inheritpolicies.description": "Inherit the default policies of the destination collection", "item.edit.move.inheritpolicies.description": "Standardrechte der Zielsammlung erben", + // "item.edit.move.move": "Move", "item.edit.move.move": "Verschieben", + // "item.edit.move.processing": "Moving...", "item.edit.move.processing": "Verschieben...", + // "item.edit.move.search.placeholder": "Enter a search query to look for collections", "item.edit.move.search.placeholder": "Geben Sie einen Begriff ein, um nach Sammlungen zu suchen", + // "item.edit.move.success": "The item has been moved successfully", "item.edit.move.success": "Die Ressource wurde erfolgreich verschoben", + // "item.edit.move.title": "Move item", "item.edit.move.title": "Ressource verschieben", + + // "item.edit.private.cancel": "Cancel", "item.edit.private.cancel": "Abbrechen", + // "item.edit.private.confirm": "Make it Private", "item.edit.private.confirm": "Privat machen", + // "item.edit.private.description": "Are you sure this item should be made private in the archive?", "item.edit.private.description": "Wollen Sie diese Ressource als privat markieren.", + // "item.edit.private.error": "An error occurred while making the item private", "item.edit.private.error": "Ein Fehler ist aufgetreten bei dem Versuch, die Ressource privat zu machen", + // "item.edit.private.header": "Make item private: {{ id }}", "item.edit.private.header": "Ressource: {{ id }} privat machen", + // "item.edit.private.success": "The item is now private", "item.edit.private.success": "Diese Ressource ist nun privat", + + // "item.edit.public.cancel": "Cancel", "item.edit.public.cancel": "Abbrechen", + // "item.edit.public.confirm": "Make it Public", "item.edit.public.confirm": "Öffentlich machen", + // "item.edit.public.description": "Are you sure this item should be made public in the archive?", "item.edit.public.description": "Sind Sie sicher, dasss diese Ressource im Repositorium öffentlich gemacht werden soll?", + // "item.edit.public.error": "An error occurred while making the item public", "item.edit.public.error": "Ein Fehler ist aufgetreten, als die Ressource öffentlich gemacht werden sollte.", + // "item.edit.public.header": "Make item public: {{ id }}", "item.edit.public.header": "Ressource: {{ id }} öffentlich machen", + // "item.edit.public.success": "The item is now public", "item.edit.public.success": "Die Ressource ist nun öffentlich", + + // "item.edit.reinstate.cancel": "Cancel", "item.edit.reinstate.cancel": "Abbrechen", + // "item.edit.reinstate.confirm": "Reinstate", "item.edit.reinstate.confirm": "Reinstantiieren", + // "item.edit.reinstate.description": "Are you sure this item should be reinstated to the archive?", "item.edit.reinstate.description": "Sind Sie sicher, dass die Ressource reinstantiiert werden soll?", + // "item.edit.reinstate.error": "An error occurred while reinstating the item", "item.edit.reinstate.error": "Ein Fehler ist bei der Reinstantiierung der Ressource aufgetreten.", + // "item.edit.reinstate.header": "Reinstate item: {{ id }}", "item.edit.reinstate.header": "Ressource: {{ id }} reinstantiieren", + // "item.edit.reinstate.success": "The item was reinstated successfully", "item.edit.reinstate.success": "Die Ressource wurde erfolgreich reinstantiiert", + + // "item.edit.relationships.discard-button": "Discard", "item.edit.relationships.discard-button": "Abbrechen", + // "item.edit.relationships.edit.buttons.remove": "Remove", "item.edit.relationships.edit.buttons.remove": "Entfernen", + // "item.edit.relationships.edit.buttons.undo": "Undo changes", "item.edit.relationships.edit.buttons.undo": "Rückgängig machen", + // "item.edit.relationships.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", "item.edit.relationships.notifications.discarded.content": "Ihre Änderungen wurden verworfen. Um sie dennoch anzuwenden klicken Sie auf den 'Rückgängig machen' Knopf", + // "item.edit.relationships.notifications.discarded.title": "Changes discarded", "item.edit.relationships.notifications.discarded.title": "Änderungen verworfen", + // "item.edit.relationships.notifications.failed.title": "Error deleting relationship", "item.edit.relationships.notifications.failed.title": "Fehler beim Löschen der Beziehung", + // "item.edit.relationships.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", "item.edit.relationships.notifications.outdated.content": "Die Ressource, die Sie gerade bearbeiten, wurde von einem anderen Benutzer geändert. Ihre aktuellen Änderungen werden verworfen, um Konflikte zu vermeiden.", + // "item.edit.relationships.notifications.outdated.title": "Changes outdated", "item.edit.relationships.notifications.outdated.title": "Änderungen veraltet", + // "item.edit.relationships.notifications.saved.content": "Your changes to this item's relationships were saved.", "item.edit.relationships.notifications.saved.content": "Ihre Änderungen an den Beziehungen der Ressource wurden gespeichert.", + // "item.edit.relationships.notifications.saved.title": "Relationships saved", "item.edit.relationships.notifications.saved.title": "Beziehungen gespeichert", + // "item.edit.relationships.reinstate-button": "Undo", "item.edit.relationships.reinstate-button": "Rückgängig machen", + // "item.edit.relationships.save-button": "Save", "item.edit.relationships.save-button": "Speichern", + + // "item.edit.tabs.bitstreams.head": "Item Bitstreams", "item.edit.tabs.bitstreams.head": "Dateien zur Ressource", + // "item.edit.tabs.bitstreams.title": "Item Edit - Bitstreams", "item.edit.tabs.bitstreams.title": "Ressource bearbeiten - Dateien", + // "item.edit.tabs.curate.head": "Curate", "item.edit.tabs.curate.head": "Pflegen", + // "item.edit.tabs.curate.title": "Item Edit - Curate", "item.edit.tabs.curate.title": "Ressource bearbeiten - Pflegen", + // "item.edit.tabs.metadata.head": "Item Metadata", "item.edit.tabs.metadata.head": "Metadaten", + // "item.edit.tabs.metadata.title": "Item Edit - Metadata", "item.edit.tabs.metadata.title": "Ressource bearbeiten - Metadaten", + // "item.edit.tabs.relationships.head": "Item Relationships", "item.edit.tabs.relationships.head": "Relationen der Ressource", + // "item.edit.tabs.relationships.title": "Item Edit - Relationships", "item.edit.tabs.relationships.title": "Ressource bearbeiten - Relationen", + // "item.edit.tabs.status.buttons.authorizations.button": "Authorizations...", "item.edit.tabs.status.buttons.authorizations.button": "Rechte...", + // "item.edit.tabs.status.buttons.authorizations.label": "Edit item's authorization policies", "item.edit.tabs.status.buttons.authorizations.label": "Rechte der Ressource bearbeiten", + // "item.edit.tabs.status.buttons.delete.button": "Permanently delete", "item.edit.tabs.status.buttons.delete.button": "Endgültig löschen", + // "item.edit.tabs.status.buttons.delete.label": "Completely expunge item", "item.edit.tabs.status.buttons.delete.label": "Unwiderruflich löschen", + // "item.edit.tabs.status.buttons.mappedCollections.button": "Mapped collections", "item.edit.tabs.status.buttons.mappedCollections.button": "Gespiegelte Sammlungen", + // "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections", "item.edit.tabs.status.buttons.mappedCollections.label": "Gespiegelte Sammlungen bearbeiten", + // "item.edit.tabs.status.buttons.move.button": "Move...", "item.edit.tabs.status.buttons.move.button": "Verschieben...", + // "item.edit.tabs.status.buttons.move.label": "Move item to another collection", "item.edit.tabs.status.buttons.move.label": "Ressource in eine andere Sammlung verschieben", + // "item.edit.tabs.status.buttons.private.button": "Make it private...", "item.edit.tabs.status.buttons.private.button": "Privat machen...", + // "item.edit.tabs.status.buttons.private.label": "Make item private", - "item.edit.tabs.status.buttons.private.label": "Ressoruce privat machen", + "item.edit.tabs.status.buttons.private.label": "Ressource privat machen", + // "item.edit.tabs.status.buttons.public.button": "Make it public...", "item.edit.tabs.status.buttons.public.button": "Öffentlich machen...", + // "item.edit.tabs.status.buttons.public.label": "Make item public", "item.edit.tabs.status.buttons.public.label": "Ressource öffentlich machen", + // "item.edit.tabs.status.buttons.reinstate.button": "Reinstate...", "item.edit.tabs.status.buttons.reinstate.button": "Reinstantiieren...", + // "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository", "item.edit.tabs.status.buttons.reinstate.label": "Ressource wieder ins Repositorium einsetzen", + // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...", "item.edit.tabs.status.buttons.withdraw.button": "Zurückziehen...", + // "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository", "item.edit.tabs.status.buttons.withdraw.label": "Ressource aus dem Repositorium zurückziehen", + // "item.edit.tabs.status.description": "Welcome to the item management page. From here you can withdraw, reinstate, move or delete the item. You may also update or add new metadata / bitstreams on the other tabs.", "item.edit.tabs.status.description": "Ressource bearbeiten. Von hier können Sie Ressourcen zurückziehen, wiedereinsetzen, verschieben oder Löschen. Des weiteren können die Metadaten und die zugehörigen Dateien bearbeitet werden.", + // "item.edit.tabs.status.head": "Item Status", "item.edit.tabs.status.head": "Status der Ressource", + // "item.edit.tabs.status.labels.handle": "Handle", "item.edit.tabs.status.labels.handle": "Handle", + // "item.edit.tabs.status.labels.id": "Item Internal ID", "item.edit.tabs.status.labels.id": "Interne ID der Ressource", + // "item.edit.tabs.status.labels.itemPage": "Item Page", "item.edit.tabs.status.labels.itemPage": "Startseite der Ressource", + // "item.edit.tabs.status.labels.lastModified": "Last Modified", "item.edit.tabs.status.labels.lastModified": "Zuletzt geändert", + // "item.edit.tabs.status.title": "Item Edit - Status", "item.edit.tabs.status.title": "Ressource Bearbeiten - Status", + // "item.edit.tabs.view.head": "View Item", "item.edit.tabs.view.head": "Ressource Ansehen", - // "item.edit.tabs.view.title": "Ressource bearbeiten - Ansicht", + + // "item.edit.tabs.view.title": "Item Edit - View", + "item.edit.tabs.view.title": "Ressource bearbeiten - Ansicht", + + // "item.edit.withdraw.cancel": "Cancel", "item.edit.withdraw.cancel": "Abbrechen", + // "item.edit.withdraw.confirm": "Withdraw", "item.edit.withdraw.confirm": "Zurückziehen", + // "item.edit.withdraw.description": "Are you sure this item should be withdrawn from the archive?", "item.edit.withdraw.description": "Sind Sie sicher, dass Sie diese Ressource aus dem Repositorium zurückziehen wollen?", + // "item.edit.withdraw.error": "An error occurred while withdrawing the item", "item.edit.withdraw.error": "Ein Fehler ist beim Zurückziehen der Ressource aufgetreten", + // "item.edit.withdraw.header": "Withdraw item: {{ id }}", "item.edit.withdraw.header": "Ressource: {{ id }} zurückziehen", + // "item.edit.withdraw.success": "The item was withdrawn successfully", "item.edit.withdraw.success": "Die Ressource wurde erfolgreich zurückgezogen", + + // "item.page.abstract": "Abstract", "item.page.abstract": "Zusammenfassung", + // "item.page.author": "Authors", "item.page.author": "AutorInnen", + // "item.page.citation": "Citation", "item.page.citation": "Zitierform", + // "item.page.collections": "Collections", "item.page.collections": "Sammlungen", + // "item.page.date": "Date", "item.page.date": "Datum", + // "item.page.files": "Files", "item.page.files": "Dateien", + // "item.page.filesection.description": "Description:", "item.page.filesection.description": "Beschreibung:", + // "item.page.filesection.download": "Download", "item.page.filesection.download": "Herunterladen", + // "item.page.filesection.format": "Format:", "item.page.filesection.format": "Format:", + // "item.page.filesection.name": "Name:", "item.page.filesection.name": "Name:", + // "item.page.filesection.size": "Size:", "item.page.filesection.size": "Größe:", + // "item.page.journal.search.title": "Articles in this journal", "item.page.journal.search.title": "Artikel in dieser Zeitschrift", + // "item.page.link.full": "Full item page", "item.page.link.full": "Komplettanzeige", + // "item.page.link.simple": "Simple item page", "item.page.link.simple": "Kurzanzeige", + // "item.page.person.search.title": "Articles by this author", "item.page.person.search.title": "Veröffentlichungen dieses/r Autor/in", - // "item.page.related-items.view-more": "View more", - "item.page.related-items.view-more": "Mehr anzeigen", - // "item.page.related-items.view-less": "View less", - "item.page.related-items.view-less": "Weniger anzeigen", + + // "item.page.related-items.view-more": "Show {{ amount }} more", + "item.page.related-items.view-more": "{{ amount }} mehr anzeigen", + + // "item.page.related-items.view-less": "Hide last {{ amount }}", + "item.page.related-items.view-less": "{{ amount }} weniger anzeigen", + + // "item.page.relationships.isAuthorOfPublication": "Publications", + "item.page.relationships.isAuthorOfPublication": "Veröffentichungen", + + // "item.page.relationships.isJournalOfPublication": "Publications", + "item.page.relationships.isJournalOfPublication": "Veröffentlichungen", + + // "item.page.relationships.isOrgUnitOfPerson": "Authors", + "item.page.relationships.isOrgUnitOfPerson": "AutorInnen", + + // "item.page.relationships.isOrgUnitOfProject": "Research Projects", + "item.page.relationships.isOrgUnitOfProject": "Forschungsprojekte", + // "item.page.subject": "Keywords", "item.page.subject": "Schlagwörter", + // "item.page.uri": "URI", "item.page.uri": "URI", + + // "item.select.confirm": "Confirm selected", "item.select.confirm": "Auswahl bestätigen", + // "item.select.empty": "No items to show", "item.select.empty": "Es gibt keine Ressourcen dazu", + // "item.select.table.author": "Author", "item.select.table.author": "Autor/in", + // "item.select.table.collection": "Collection", "item.select.table.collection": "Sammlung", + // "item.select.table.title": "Title", "item.select.table.title": "Titel", + + // "journal.listelement.badge": "Journal", "journal.listelement.badge": "Zeitschrift", + // "journal.page.description": "Description", "journal.page.description": "Beschreibung", + // "journal.page.editor": "Editor-in-Chief", "journal.page.editor": "Chefredakteur", + // "journal.page.issn": "ISSN", "journal.page.issn": "ISSN", + // "journal.page.publisher": "Publisher", "journal.page.publisher": "Verlag", + // "journal.page.titleprefix": "Journal: ", "journal.page.titleprefix": "Zeitschrift: ", + // "journal.search.results.head": "Journal Search Results", "journal.search.results.head": "Zeitschrift Suchergebenisse", + // "journal.search.title": "DSpace Angular :: Journal Search", "journal.search.title": "DSpace Angular :: Zeitschriftensuche", + + // "journalissue.listelement.badge": "Journal Issue", "journalissue.listelement.badge": "Zeitschriftenausgabe", + // "journalissue.page.description": "Description", "journalissue.page.description": "Beschreibeung", + // "journalissue.page.issuedate": "Issue Date", "journalissue.page.issuedate": "Erscheinungsdatum", + // "journalissue.page.journal-issn": "Journal ISSN", "journalissue.page.journal-issn": "ISSN der Zeitschrift", + // "journalissue.page.journal-title": "Journal Title", "journalissue.page.journal-title": "Titel der Zeitschrift", + // "journalissue.page.keyword": "Keywords", "journalissue.page.keyword": "Schlagwörter", + // "journalissue.page.number": "Number", "journalissue.page.number": "Zählung", + // "journalissue.page.titleprefix": "Journal Issue: ", "journalissue.page.titleprefix": "Zeitschriftenausgabe: ", + + // "journalvolume.listelement.badge": "Journal Volume", "journalvolume.listelement.badge": "Zeitschriftenband", + // "journalvolume.page.description": "Description", "journalvolume.page.description": "Beschreibung", + // "journalvolume.page.issuedate": "Issue Date", "journalvolume.page.issuedate": "Erscheinungsdatum", + // "journalvolume.page.titleprefix": "Journal Volume: ", "journalvolume.page.titleprefix": "Zeitschriftenband: ", + // "journalvolume.page.volume": "Volume", "journalvolume.page.volume": "Band", + + // "loading.browse-by": "Loading items...", "loading.browse-by": "Ressourcen am laden...", + // "loading.browse-by-page": "Loading page...", "loading.browse-by-page": "Seite am Laden...", + // "loading.collection": "Loading collection...", "loading.collection": "Sammlung am Laden...", + // "loading.collections": "Loading collections...", "loading.collections": "Sammlungen am Laden...", + + // "loading.content-source": "Loading content source...", + "loading.content-source": "Laden der Bezugsquelle...", + // "loading.community": "Loading community...", "loading.community": "Bereich am Laden...", + // "loading.default": "Loading...", "loading.default": "Am Laden...", + // "loading.item": "Loading item...", "loading.item": "Ressource am Laden...", + // "loading.items": "Loading items...", "loading.items": "Ressourcen am Laden...", + // "loading.mydspace-results": "Loading items...", "loading.mydspace-results": "Ressourcen am Laden...", + // "loading.objects": "Loading...", "loading.objects": "Am Laden...", + // "loading.recent-submissions": "Loading recent submissions...", "loading.recent-submissions": "Aktuellste Veröffentlichungen am Laden...", + // "loading.search-results": "Loading search results...", "loading.search-results": "Suchergebnisse am Laden...", + // "loading.sub-collections": "Loading sub-collections...", "loading.sub-collections": "Untersammlungen am Laden...", + // "loading.sub-communities": "Loading sub-communities...", "loading.sub-communities": "Teilbereiche am Laden...", + // "loading.top-level-communities": "Loading top-level communities...", "loading.top-level-communities": "Hauptbereiche am Laden...", + + // "login.form.email": "Email address", "login.form.email": "E-Mail-Adresse", + // "login.form.forgot-password": "Have you forgotten your password?", "login.form.forgot-password": "Haben Sie Ihr Passwort vergessen?", + // "login.form.header": "Please log in to DSpace", "login.form.header": "Bitte loggen Sie sich ein.", + // "login.form.new-user": "New user? Click here to register.", "login.form.new-user": "Neu hier? Klicken Sie hier, um sich zu registrieren.", + // "login.form.password": "Password", "login.form.password": "Passwort", + // "login.form.submit": "Log in", "login.form.submit": "Einloggen", + // "login.title": "Login", "login.title": "Einloggen", + // "login.breadcrumbs": "Login", + "login.breadcrumbs": "Einloggen", + + + // "logout.form.header": "Log out from DSpace", "logout.form.header": "Aus dem Repositorium abmelden", + // "logout.form.submit": "Log out", "logout.form.submit": "Abmelden", + // "logout.title": "Logout", "logout.title": "Abmelden", + + // "menu.header.admin": "Admin", "menu.header.admin": "Administration", + // "menu.header.image.logo": "Repository logo", "menu.header.image.logo": "Logo des Repositorium", + + // "menu.section.access_control": "Access Control", "menu.section.access_control": "Zugriffskontrolle", + // "menu.section.access_control_authorizations": "Authorizations", "menu.section.access_control_authorizations": "Rechte", + // "menu.section.access_control_groups": "Groups", "menu.section.access_control_groups": "Gruppen", + // "menu.section.access_control_people": "People", "menu.section.access_control_people": "Personen", + + // "menu.section.browse_community": "This Community", "menu.section.browse_community": "Dieser Bereich", + // "menu.section.browse_community_by_author": "By Author", "menu.section.browse_community_by_author": "Nach Autor/in", + // "menu.section.browse_community_by_issue_date": "By Issue Date", "menu.section.browse_community_by_issue_date": "Nach Erscheinungsdateum", + // "menu.section.browse_community_by_title": "By Title", "menu.section.browse_community_by_title": "Nach Titel", + // "menu.section.browse_global": "All of DSpace", "menu.section.browse_global": "Das gesamte Repositorium", + // "menu.section.browse_global_by_author": "By Author", "menu.section.browse_global_by_author": "Nach Autor/in", + // "menu.section.browse_global_by_dateissued": "By Issue Date", "menu.section.browse_global_by_dateissued": "Nach Erscheinungsjahr", + // "menu.section.browse_global_by_subject": "By Subject", "menu.section.browse_global_by_subject": "Nach Schlagwort", + // "menu.section.browse_global_by_title": "By Title", "menu.section.browse_global_by_title": "Nach Titel", + // "menu.section.browse_global_communities_and_collections": "Communities & Collections", "menu.section.browse_global_communities_and_collections": "Bereiche & Sammlungen", + + // "menu.section.control_panel": "Control Panel", "menu.section.control_panel": "Kontrollfeld", + // "menu.section.curation_task": "Curation Task", "menu.section.curation_task": "Datenpflegeroutinen", + + // "menu.section.edit": "Edit", "menu.section.edit": "Bearbeiten", + // "menu.section.edit_collection": "Collection", "menu.section.edit_collection": "Sammlung", + // "menu.section.edit_community": "Community", "menu.section.edit_community": "Bereich", + // "menu.section.edit_item": "Item", "menu.section.edit_item": "Ressource", + + // "menu.section.export": "Export", "menu.section.export": "Export", + // "menu.section.export_collection": "Collection", "menu.section.export_collection": "Sammlung", + // "menu.section.export_community": "Community", "menu.section.export_community": "Bereich", + // "menu.section.export_item": "Item", - "menu.section.export_item": "Ressoruce", + "menu.section.export_item": "Ressource", + // "menu.section.export_metadata": "Metadata", "menu.section.export_metadata": "Metadaten", + + // "menu.section.find": "Find", "menu.section.find": "Finden", + // "menu.section.find_items": "Items", "menu.section.find_items": "Ressourcen", + // "menu.section.find_private_items": "Private Items", "menu.section.find_private_items": "Private Ressourcen", + // "menu.section.find_withdrawn_items": "Withdrawn Items", "menu.section.find_withdrawn_items": "Zurückgezogene Ressourcen", + + // "menu.section.icon.access_control": "Access Control menu section", "menu.section.icon.access_control": "Menübereich Zugriffskontrolle", + // "menu.section.icon.control_panel": "Control Panel menu section", "menu.section.icon.control_panel": "Menübereich Kontrollfeld", + // "menu.section.icon.curation_task": "Curation Task menu section", "menu.section.icon.curation_task": "Menübereich Datepflegeroutinen", + // "menu.section.icon.edit": "Edit menu section", "menu.section.icon.edit": "Menübereich bearbeiten", + // "menu.section.icon.export": "Export menu section", "menu.section.icon.export": "Menübereich Export", + // "menu.section.icon.find": "Find menu section", "menu.section.icon.find": "Menübereich Suche", + // "menu.section.icon.import": "Import menu section", "menu.section.icon.import": "Menübereich Import", + // "menu.section.icon.new": "New menu section", "menu.section.icon.new": "Neuer Menübereich", + // "menu.section.icon.pin": "Pin sidebar", "menu.section.icon.pin": "Seitenleiste Anheften", + // "menu.section.icon.registries": "Registries menu section", "menu.section.icon.registries": "Menübereich Referenzlisten", + // "menu.section.icon.statistics_task": "Statistics Task menu section", "menu.section.icon.statistics_task": "Menübereich Statistikaufgaben", + // "menu.section.icon.unpin": "Unpin sidebar", "menu.section.icon.unpin": "Seitenbereich Loslösen", + + // "menu.section.import": "Import", "menu.section.import": "Import", + // "menu.section.import_batch": "Batch Import (ZIP)", "menu.section.import_batch": "Import (ZIP)", + // "menu.section.import_metadata": "Metadata", "menu.section.import_metadata": "Metadaten", + + // "menu.section.new": "New", "menu.section.new": "Neu", + // "menu.section.new_collection": "Collection", "menu.section.new_collection": "Sammlung", + // "menu.section.new_community": "Community", "menu.section.new_community": "Bereich", + // "menu.section.new_item": "Item", "menu.section.new_item": "Ressource", + // "menu.section.new_item_version": "Item Version", "menu.section.new_item_version": "Ressourcenversion", + + // "menu.section.pin": "Pin sidebar", "menu.section.pin": "Seitenleiste anheften", + // "menu.section.unpin": "Unpin sidebar", "menu.section.unpin": "Seitenleiste loslösen", + + // "menu.section.registries": "Registries", "menu.section.registries": "Referenzlisten", + // "menu.section.registries_format": "Format", "menu.section.registries_format": "Formate", + // "menu.section.registries_metadata": "Metadata", "menu.section.registries_metadata": "Metadaten", + + // "menu.section.statistics": "Statistics", "menu.section.statistics": "Statistiken", + // "menu.section.statistics_task": "Statistics Task", "menu.section.statistics_task": "Statistikaufgaben", + + // "menu.section.toggle.access_control": "Toggle Access Control section", "menu.section.toggle.access_control": "Bereich Zugriffskontrolle umschalten", + // "menu.section.toggle.control_panel": "Toggle Control Panel section", "menu.section.toggle.control_panel": "Bereich Kontrollfeld umschalten", + // "menu.section.toggle.curation_task": "Toggle Curation Task section", "menu.section.toggle.curation_task": "Bereich Datenpflegeroutinen umschalten", + // "menu.section.toggle.edit": "Toggle Edit section", "menu.section.toggle.edit": "Bereich Bearbeiten umschalten", + // "menu.section.toggle.export": "Toggle Export section", "menu.section.toggle.export": "Bereich Export umschalten", + // "menu.section.toggle.find": "Toggle Find section", "menu.section.toggle.find": "Bereich Suche umschalten", + // "menu.section.toggle.import": "Toggle Import section", "menu.section.toggle.import": "Bereich Import umschalten", + // "menu.section.toggle.new": "Toggle New section", "menu.section.toggle.new": "Neuen Bereich umschalten", + // "menu.section.toggle.registries": "Toggle Registries section", "menu.section.toggle.registries": "Bereich Referenzlisten umschalten", + // "menu.section.toggle.statistics_task": "Toggle Statistics Task section", "menu.section.toggle.statistics_task": "Bereich Statistikaufgaben umschalten", + + // "mydspace.description": "", "mydspace.description": "", + // "mydspace.general.text-here": "HERE", "mydspace.general.text-here": "Hier", + // "mydspace.messages.controller-help": "Select this option to send a message to item's submitter.", "mydspace.messages.controller-help": "Wählen Sie diese Option, um dem/derjenigen, die die Ressource eingereicht hat, eine Nachricht zu schicken.", + // "mydspace.messages.description-placeholder": "Insert your message here...", "mydspace.messages.description-placeholder": "Geben Sie Ihre Nachricht hier ein...", + // "mydspace.messages.hide-msg": "Hide message", "mydspace.messages.hide-msg": "Nachricht ausblenden", + // "mydspace.messages.mark-as-read": "Mark as read", "mydspace.messages.mark-as-read": "Als gelesen markieren", + // "mydspace.messages.mark-as-unread": "Mark as unread", "mydspace.messages.mark-as-unread": "Als ungelesen markieren", + // "mydspace.messages.no-content": "No content.", "mydspace.messages.no-content": "Kein Inhalt.", + // "mydspace.messages.no-messages": "No messages yet.", "mydspace.messages.no-messages": "Noch keine Nachrichten.", + // "mydspace.messages.send-btn": "Send", "mydspace.messages.send-btn": "Senden", + // "mydspace.messages.show-msg": "Show message", "mydspace.messages.show-msg": "Nachricht anzeigen", + // "mydspace.messages.subject-placeholder": "Subject...", "mydspace.messages.subject-placeholder": "Betreff...", + // "mydspace.messages.submitter-help": "Select this option to send a message to controller.", "mydspace.messages.submitter-help": "Wählen Sie diese Option, um dem Supervisor eine Nachricht zu schicken.", + // "mydspace.messages.title": "Messages", "mydspace.messages.title": "Nachrichten", + // "mydspace.messages.to": "To", "mydspace.messages.to": "An", + // "mydspace.new-submission": "New submission", "mydspace.new-submission": "Neue Veröffentlichung", + // "mydspace.results.head": "Your submissions", "mydspace.results.head": "Ihre Veröffentlichungen", + // "mydspace.results.no-abstract": "No Abstract", "mydspace.results.no-abstract": "Keine Zusammenfassung", + // "mydspace.results.no-authors": "No Authors", "mydspace.results.no-authors": "Keine AutorInnen", + // "mydspace.results.no-collections": "No Collections", "mydspace.results.no-collections": "Keine Sammlungen", + // "mydspace.results.no-date": "No Date", "mydspace.results.no-date": "Kein Datum", + // "mydspace.results.no-files": "No Files", "mydspace.results.no-files": "Keine Dateien", + // "mydspace.results.no-results": "There were no items to show", "mydspace.results.no-results": "Es gibt keine Ressourcen anzuzeigen", + // "mydspace.results.no-title": "No title", "mydspace.results.no-title": "Kein Titel", + // "mydspace.results.no-uri": "No Uri", "mydspace.results.no-uri": "Keine URI", + // "mydspace.show.workflow": "All tasks", "mydspace.show.workflow": "Alle Aufgaben", + // "mydspace.show.workspace": "Your Submissions", "mydspace.show.workspace": "Ihre Veröffentlichungen", + // "mydspace.status.archived": "Archived", "mydspace.status.archived": "Archiviert", + // "mydspace.status.validation": "Validation", "mydspace.status.validation": "Validierung", + // "mydspace.status.waiting-for-controller": "Waiting for controller", "mydspace.status.waiting-for-controller": "Warten auf die Überprüfung", + // "mydspace.status.workflow": "Workflow", "mydspace.status.workflow": "Geschäftsgang", + // "mydspace.status.workspace": "Workspace", "mydspace.status.workspace": "Arbeitsbereich", + // "mydspace.title": "MyDSpace", "mydspace.title": "Mein DSpace", + // "mydspace.upload.upload-failed": "Error creating new workspace. Please verify the content uploaded before retry.", "mydspace.upload.upload-failed": "Fehler beim Anlegen eines neuen Arbeitsbereiches. Bitte überprüfen Sie den Inhalt bevor Sie es nochmal versuchen.", + // "mydspace.upload.upload-multiple-successful": "{{qty}} new workspace items created.", "mydspace.upload.upload-multiple-successful": "{{qty}} neue(s) Arbeitsbereichressource(n) angelegt.", + // "mydspace.upload.upload-successful": "New workspace item created. Click {{here}} for edit it.", - "mydspace.upload.upload-successful": "Neue Arbeitsbereichressoruce angelegt. Klicken Sie hier {{here}}, um sie zu bearbeiten.", + "mydspace.upload.upload-successful": "Neue Arbeitsbereichressource angelegt. Klicken Sie hier {{here}}, um sie zu bearbeiten.", + // "mydspace.view-btn": "View", "mydspace.view-btn": "Anzeige", + + // "nav.browse.header": "All of DSpace", "nav.browse.header": "Das gesamte Repositorium", + // "nav.community-browse.header": "By Community", "nav.community-browse.header": "Nach Bereich", + // "nav.language": "Language switch", "nav.language": "Sprachumschalter", + // "nav.login": "Log In", "nav.login": "Einloggen", + // "nav.logout": "Log Out", "nav.logout": "Ausloggen", + // "nav.mydspace": "MyDSpace", "nav.mydspace": "Mein DSpace", + // "nav.search": "Search", "nav.search": "Suche", + // "nav.statistics.header": "Statistics", "nav.statistics.header": "Statistiken", + + // "orgunit.listelement.badge": "Organizational Unit", "orgunit.listelement.badge": "Organisationseinheit", + // "orgunit.page.city": "City", "orgunit.page.city": "Stadt", + // "orgunit.page.country": "Country", "orgunit.page.country": "Land", + // "orgunit.page.dateestablished": "Date established", "orgunit.page.dateestablished": "Ursprungsdatum", + // "orgunit.page.description": "Description", "orgunit.page.description": "Beschreibung", + // "orgunit.page.id": "ID", "orgunit.page.id": "ID", + // "orgunit.page.titleprefix": "Organizational Unit: ", "orgunit.page.titleprefix": "Organisationseinheit: ", + + // "pagination.results-per-page": "Results Per Page", "pagination.results-per-page": "Anzeige pro Seite", + // "pagination.showing.detail": "{{ range }} of {{ total }}", "pagination.showing.detail": "{{ range }} von {{ total }}", + // "pagination.showing.label": "Now showing ", "pagination.showing.label": "Gerade angezeigt ", + // "pagination.sort-direction": "Sort Options", "pagination.sort-direction": "Sortieroptionen", + + // "person.listelement.badge": "Person", "person.listelement.badge": "Person", + // "person.page.birthdate": "Birth Date", "person.page.birthdate": "Geburtsdatum", + // "person.page.email": "Email Address", "person.page.email": "E-Mail-Adresse", + // "person.page.firstname": "First Name", "person.page.firstname": "Vorname", + // "person.page.jobtitle": "Job Title", "person.page.jobtitle": "Berufsbeschreibung", + // "person.page.lastname": "Last Name", "person.page.lastname": "Nachname", + // "person.page.link.full": "Show all metadata", "person.page.link.full": "Alle Metadaten anzeigen", + // "person.page.orcid": "ORCID", "person.page.orcid": "ORCID", + // "person.page.staffid": "Staff ID", "person.page.staffid": "Personalnummer", + // "person.page.titleprefix": "Person: ", "person.page.titleprefix": "Person: ", + // "person.search.results.head": "Person Search Results", "person.search.results.head": "Ergebnisse der Personensuche", + // "person.search.title": "DSpace Angular :: Person Search", "person.search.title": "DSpace Angular :: Personensuche", + + // "project.listelement.badge": "Research Project", "project.listelement.badge": "Forschungsprojekt", + // "project.page.contributor": "Contributors", "project.page.contributor": "Beteiligte", + // "project.page.description": "Description", "project.page.description": "Beschreibung", + // "project.page.expectedcompletion": "Expected Completion", "project.page.expectedcompletion": "Erwartetes Abschlussdatum", + // "project.page.funder": "Funders", "project.page.funder": "Förderer", + // "project.page.id": "ID", "project.page.id": "ID", + // "project.page.keyword": "Keywords", "project.page.keyword": "Schlagwörter", + // "project.page.status": "Status", "project.page.status": "Status", + // "project.page.titleprefix": "Research Project: ", "project.page.titleprefix": "Forschungsvorhaben: ", + // "project.search.results.head": "Project Search Results", + "project.search.results.head": "Suchergebnisse für Projekte", + + + // "publication.listelement.badge": "Publication", "publication.listelement.badge": "Veröffentlichung", + // "publication.page.description": "Description", "publication.page.description": "Beschreibung", + // "publication.page.journal-issn": "Journal ISSN", "publication.page.journal-issn": "Zeitschrift ISSN", + // "publication.page.journal-title": "Journal Title", "publication.page.journal-title": "Zeitschriftentitel", + // "publication.page.publisher": "Publisher", "publication.page.publisher": "Verlag", + // "publication.page.titleprefix": "Publication: ", "publication.page.titleprefix": "Publikation: ", + // "publication.page.volume-title": "Volume Title", "publication.page.volume-title": "Bandtitel", + // "publication.search.results.head": "Publication Search Results", "publication.search.results.head": "Suchergebnisse Publikationen", + // "publication.search.title": "DSpace Angular :: Publication Search", "publication.search.title": "DSpace Angular :: Publikationssuche", + + // "relationships.isAuthorOf": "Authors", "relationships.isAuthorOf": "AutorInnen", + // "relationships.isIssueOf": "Journal Issues", "relationships.isIssueOf": "Zeitschriftenausgaben", + // "relationships.isJournalIssueOf": "Journal Issue", "relationships.isJournalIssueOf": "Zeitschriftenausgabe", + // "relationships.isJournalOf": "Journals", "relationships.isJournalOf": "Zeitschriften", + // "relationships.isOrgUnitOf": "Organizational Units", "relationships.isOrgUnitOf": "Organisationseinheiten", + // "relationships.isPersonOf": "Authors", "relationships.isPersonOf": "AutorInnen", + // "relationships.isProjectOf": "Research Projects", "relationships.isProjectOf": "Forschungsvorhaben", + // "relationships.isPublicationOf": "Publications", "relationships.isPublicationOf": "Publikationen", + // "relationships.isPublicationOfJournalIssue": "Articles", "relationships.isPublicationOfJournalIssue": "Artikel", + // "relationships.isSingleJournalOf": "Journal", "relationships.isSingleJournalOf": "Zeitschrift", + // "relationships.isSingleVolumeOf": "Journal Volume", "relationships.isSingleVolumeOf": "Zeitschriftenband", + // "relationships.isVolumeOf": "Journal Volumes", "relationships.isVolumeOf": "Zeitschriftenbände", + // "relationships.isContributorOf": "Contributors", + "relationships.isContributorOf": "Beteiligte", + + + // "search.description": "", "search.description": "", + // "search.switch-configuration.title": "Show", "search.switch-configuration.title": "Zeige", + // "search.title": "DSpace Angular :: Search", "search.title": "DSpace Angular :: Suche", + // "search.breadcrumbs": "Search", + "search.breadcrumbs": "Suche", + + // "search.filters.applied.f.author": "Author", "search.filters.applied.f.author": "AutorIn", + // "search.filters.applied.f.dateIssued.max": "End date", "search.filters.applied.f.dateIssued.max": "Enddatum", + // "search.filters.applied.f.dateIssued.min": "Start date", "search.filters.applied.f.dateIssued.min": "Anfangsdatum", + // "search.filters.applied.f.dateSubmitted": "Date submitted", "search.filters.applied.f.dateSubmitted": "Datum der Einreichung", + // "search.filters.applied.f.entityType": "Item Type", "search.filters.applied.f.entityType": "Art der Ressource", + // "search.filters.applied.f.has_content_in_original_bundle": "Has files", "search.filters.applied.f.has_content_in_original_bundle": "Hat Dateien", + // "search.filters.applied.f.itemtype": "Type", "search.filters.applied.f.itemtype": "Typ", + // "search.filters.applied.f.namedresourcetype": "Status", "search.filters.applied.f.namedresourcetype": "Status", + // "search.filters.applied.f.subject": "Subject", "search.filters.applied.f.subject": "Thema", + // "search.filters.applied.f.submitter": "Submitter", "search.filters.applied.f.submitter": "Einreichende(r)", + // "search.filters.applied.f.jobTitle": "Job Title", + "search.filters.applied.f.jobTitle": "Berufsbezeichnung", + // "search.filters.applied.f.birthDate.max": "End birth date", + "search.filters.applied.f.birthDate.max": "Ende Geburtsdatum", + // "search.filters.applied.f.birthDate.min": "Start birth date", + "search.filters.applied.f.birthDate.min": "Anfang Geburtsdatum", + + // "search.filters.filter.author.head": "Author", "search.filters.filter.author.head": "AutorIn", + // "search.filters.filter.author.placeholder": "Author name", "search.filters.filter.author.placeholder": "Name des/r AutorIn", + // "search.filters.filter.birthDate.head": "Birth Date", "search.filters.filter.birthDate.head": "Geburtsdatum", + // "search.filters.filter.birthDate.placeholder": "Birth Date", "search.filters.filter.birthDate.placeholder": "Geburtsdatum", + // "search.filters.filter.creativeDatePublished.head": "Date Published", "search.filters.filter.creativeDatePublished.head": "Erscheinungsdatum", + // "search.filters.filter.creativeDatePublished.placeholder": "Date Published", "search.filters.filter.creativeDatePublished.placeholder": "Erscheinungsdatum", + // "search.filters.filter.creativeWorkEditor.head": "Editor", "search.filters.filter.creativeWorkEditor.head": "Herausgeber", + // "search.filters.filter.creativeWorkEditor.placeholder": "Editor", "search.filters.filter.creativeWorkEditor.placeholder": "Herausgeber", + // "search.filters.filter.creativeWorkKeywords.head": "Subject", "search.filters.filter.creativeWorkKeywords.head": "Thema", + // "search.filters.filter.creativeWorkKeywords.placeholder": "Subject", "search.filters.filter.creativeWorkKeywords.placeholder": "Thema", + // "search.filters.filter.creativeWorkPublisher.head": "Publisher", "search.filters.filter.creativeWorkPublisher.head": "Verlag", + // "search.filters.filter.creativeWorkPublisher.placeholder": "Publisher", "search.filters.filter.creativeWorkPublisher.placeholder": "Verlag", + // "search.filters.filter.dateIssued.head": "Date", "search.filters.filter.dateIssued.head": "Datum", + // "search.filters.filter.dateIssued.max.placeholder": "Minimum Date", "search.filters.filter.dateIssued.max.placeholder": "Ältestes Datum", + // "search.filters.filter.dateIssued.min.placeholder": "Maximum Date", "search.filters.filter.dateIssued.min.placeholder": "Jüngstes Datum", + // "search.filters.filter.dateSubmitted.head": "Date submitted", "search.filters.filter.dateSubmitted.head": "Datum der Einreichung", + // "search.filters.filter.dateSubmitted.placeholder": "Date submitted", "search.filters.filter.dateSubmitted.placeholder": "Datum der Einreichung", + // "search.filters.filter.entityType.head": "Item Type", "search.filters.filter.entityType.head": "Art der Ressource", + // "search.filters.filter.entityType.placeholder": "Item Type", - "search.filters.filter.entityType.placeholder": "Art der Ressoruce", + "search.filters.filter.entityType.placeholder": "Art der Ressource", + // "search.filters.filter.has_content_in_original_bundle.head": "Has files", "search.filters.filter.has_content_in_original_bundle.head": "Enthält Dateien", + // "search.filters.filter.itemtype.head": "Type", "search.filters.filter.itemtype.head": "Typ", + // "search.filters.filter.itemtype.placeholder": "Type", "search.filters.filter.itemtype.placeholder": "Typ", + // "search.filters.filter.jobTitle.head": "Job Title", "search.filters.filter.jobTitle.head": "Berufsbezeichnung", + // "search.filters.filter.jobTitle.placeholder": "Job Title", "search.filters.filter.jobTitle.placeholder": "Berufsbezeichnung", + // "search.filters.filter.knowsLanguage.head": "Known language", "search.filters.filter.knowsLanguage.head": "Bekannte Sprache", + // "search.filters.filter.knowsLanguage.placeholder": "Known language", "search.filters.filter.knowsLanguage.placeholder": "Bekannte Sprache", + // "search.filters.filter.namedresourcetype.head": "Status", "search.filters.filter.namedresourcetype.head": "Status", + // "search.filters.filter.namedresourcetype.placeholder": "Status", "search.filters.filter.namedresourcetype.placeholder": "Status", + // "search.filters.filter.objectpeople.head": "People", "search.filters.filter.objectpeople.head": "Personen", + // "search.filters.filter.objectpeople.placeholder": "People", "search.filters.filter.objectpeople.placeholder": "Personen", + // "search.filters.filter.organizationAddressCountry.head": "Country", "search.filters.filter.organizationAddressCountry.head": "Land", + // "search.filters.filter.organizationAddressCountry.placeholder": "Country", "search.filters.filter.organizationAddressCountry.placeholder": "Land", + // "search.filters.filter.organizationAddressLocality.head": "City", "search.filters.filter.organizationAddressLocality.head": "Stadt", + // "search.filters.filter.organizationAddressLocality.placeholder": "City", "search.filters.filter.organizationAddressLocality.placeholder": "Stadt", + // "search.filters.filter.organizationFoundingDate.head": "Date Founded", "search.filters.filter.organizationFoundingDate.head": "Gründungsdatum", + // "search.filters.filter.organizationFoundingDate.placeholder": "Date Founded", "search.filters.filter.organizationFoundingDate.placeholder": "Gründungsdatum", + // "search.filters.filter.scope.head": "Scope", "search.filters.filter.scope.head": "Bereich", + // "search.filters.filter.scope.placeholder": "Scope filter", "search.filters.filter.scope.placeholder": "Bereichsfilter", + // "search.filters.filter.show-less": "Collapse", "search.filters.filter.show-less": "Zusammenklappen", + // "search.filters.filter.show-more": "Show more", "search.filters.filter.show-more": "Mehr anzeigen", + // "search.filters.filter.subject.head": "Subject", "search.filters.filter.subject.head": "Thema", + // "search.filters.filter.subject.placeholder": "Subject", "search.filters.filter.subject.placeholder": "Thema", + // "search.filters.filter.submitter.head": "Submitter", "search.filters.filter.submitter.head": "Einreichende(r)", + // "search.filters.filter.submitter.placeholder": "Submitter", "search.filters.filter.submitter.placeholder": "Einreichende(r)", + + // "search.filters.head": "Filters", "search.filters.head": "Filter", + // "search.filters.reset": "Reset filters", "search.filters.reset": "Filter zurücksetzen", + + // "search.form.search": "Search", "search.form.search": "Suche", + // "search.form.search_dspace": "Search DSpace", "search.form.search_dspace": "Suche in DSpace", + // "search.form.search_mydspace": "Search MyDSpace", "search.form.search_mydspace": "Suche im persönlichen Arbeitsbereich", + + // "search.results.head": "Search Results", "search.results.head": "Suchergebnisse", + // "search.results.no-results": "Your search returned no results. Having trouble finding what you're looking for? Try putting", "search.results.no-results": "Ihre Suche führte zu keinem Ergebnis. Versuchen Sie es mit ", + // "search.results.no-results-link": "quotes around it", "search.results.no-results-link": "Anführungszeichen", + // "search.results.empty": "Your search returned no results.", + "search.results.empty": "Ihre Suche führte zu keinem Ergebnis.", + + + // "search.sidebar.close": "Back to results", "search.sidebar.close": "Zurück zu den Ergebnissen", + // "search.sidebar.filters.title": "Filters", "search.sidebar.filters.title": "Filter", + // "search.sidebar.open": "Search Tools", "search.sidebar.open": "Suchwerkzeuge", + // "search.sidebar.results": "results", "search.sidebar.results": "Ergebnisse", + // "search.sidebar.settings.rpp": "Results per page", "search.sidebar.settings.rpp": "Ergebnisse pro Seite", + // "search.sidebar.settings.sort-by": "Sort By", "search.sidebar.settings.sort-by": "Sortieren nach", + // "search.sidebar.settings.title": "Settings", "search.sidebar.settings.title": "Einstellungen", + + // "search.view-switch.show-detail": "Show detail", "search.view-switch.show-detail": "Detailanzeige", + // "search.view-switch.show-grid": "Show as grid", "search.view-switch.show-grid": "Anzeige als Raster", + // "search.view-switch.show-list": "Show as list", "search.view-switch.show-list": "Anzeige als Liste", + + // "sorting.dc.title.ASC": "Title Ascending", "sorting.dc.title.ASC": "Titel aufsteigend", + // "sorting.dc.title.DESC": "Title Descending", "sorting.dc.title.DESC": "Titel absteigend", + // "sorting.score.DESC": "Relevance", "sorting.score.DESC": "Relevanz", + + // "submission.edit.title": "Edit Submission", "submission.edit.title": "Einreichung bearbeiten", + // "submission.general.cannot_submit": "You have not the privilege to make a new submission.", "submission.general.cannot_submit": "Sie verfügen nicht über die Rechte, eine neue Einreichung zu machen.", + // "submission.general.deposit": "Deposit", "submission.general.deposit": "Einreichen", + // "submission.general.discard.confirm.cancel": "Cancel", "submission.general.discard.confirm.cancel": "Abbrechen", + // "submission.general.discard.confirm.info": "This operation can't be undone. Are you sure?", "submission.general.discard.confirm.info": "Diese Aktion kann nicht rückgängig gemacht werden. Sind Sie sicher?", + // "submission.general.discard.confirm.submit": "Yes, I'm sure", "submission.general.discard.confirm.submit": "Ja, ich bin sicher", + // "submission.general.discard.confirm.title": "Discard submission", "submission.general.discard.confirm.title": "Einreichung verwerfen", + // "submission.general.discard.submit": "Discard", "submission.general.discard.submit": "Verwerfen", + // "submission.general.save": "Save", "submission.general.save": "Speichern", + // "submission.general.save-later": "Save for later", "submission.general.save-later": "Für später speichern", + + + // "submission.sections.describe.relationship-lookup.close": "Close", + "submission.sections.describe.relationship-lookup.close": "Schließen", + + // "submission.sections.describe.relationship-lookup.external-source.added": "Successfully added local entry to the selection", + "submission.sections.describe.relationship-lookup.external-source.added": "Der lokale Eintrage wurde erfolgreich zur Auswahl hinzugefügt.", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Author": "Import remote author", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Author": "AutorIn importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Import remote journal", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Zeitschrift importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Import remote journal issue", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Zeitschriftenausgabe importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Import remote journal volume", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Zeitschriftenband importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.title": "Import Remote Author", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.title": "AutorIn importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.added.local-entity": "Successfully added local author to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.added.local-entity": "Lokale/r Autor/in der Auswahl erfolgreich hinzugefügt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.added.new-entity": "Successfully imported and added external author to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.added.new-entity": "Externe/r Autor/in erfolgreich zur Auswahl hinzugefügt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Authority", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Referenz", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Import as a new local authority entry", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": " Als neuen lokalen Referenzwert importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Cancel", + "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Abbrechen", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Select a collection to import new entries to", + "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Wählen Sie eine Sammlung, um neue Einträge dorthin zu importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Entities", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Entitäten", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Import as a new local entity", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Als neue lokale Entität importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importing from LC Name", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Von LC Name importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcidV2": "Importing from ORCID", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcidV2": "Von ORCID importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importing from Sherpa Journal", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Von Sherpa Zeitschriften importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importing from Sherpa Publisher", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Von Sherpa Verlag importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Import", + "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Import", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Import Remote Journal", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Zeitschrift von externer Quelle importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "Successfully added local journal to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "Lokale Zeitschrift wurde erfolgreich zur Auswahl hinzugefügt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "Successfully imported and added external journal to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "Externe Zeitschrift wurde erfolgreich importiert und der Auswahl hinzugefügt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Import Remote Journal Issue", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Externe Zeitschriftenausgabe importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "Successfully added local journal issue to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "Lokale Zeitschriftenausgabe wurde erfolgreich zur Auswahl hinzugefügt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "Successfully imported and added external journal issue to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "Externe Zeitschriftenausgabe wurde erfolgreich importiert und zur Auswahl hinzugefügt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Import Remote Journal Volume", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Externen Zeitschriftenband importieren", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "Successfully added local journal volume to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "Der lokale Zeitschriftenband wurde erfolgreich zur Auswahl hinzugefügt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "Successfully imported and added external journal volume to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "Externer Zeitschriftenband wurde erfolgreich importiert und zur Auswahl hinzugefügt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Select a local match:", + "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Wählen Sie einen lokalen Treffer aus:", + + // "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Deselect all", + "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Alle abwählen", + + // "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Deselect page", + "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Seite abwählen", + + // "submission.sections.describe.relationship-lookup.search-tab.loading": "Loading...", + "submission.sections.describe.relationship-lookup.search-tab.loading": "Laden...", + + // "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Search query", + "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Suchanfrage", + + // "submission.sections.describe.relationship-lookup.search-tab.search": "Go", + "submission.sections.describe.relationship-lookup.search-tab.search": "Los", + + // "submission.sections.describe.relationship-lookup.search-tab.select-all": "Select all", + "submission.sections.describe.relationship-lookup.search-tab.select-all": "Alles auswählen", + + // "submission.sections.describe.relationship-lookup.search-tab.select-page": "Select page", + "submission.sections.describe.relationship-lookup.search-tab.select-page": "Seite auswählen", + + // "submission.sections.describe.relationship-lookup.selected": "Selected {{ size }} items", + "submission.sections.describe.relationship-lookup.selected": "{{ size }} Ressourcen ausgewählt", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Author": "Local Authors ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Author": "Lokale AutorInnen ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Local Journals ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Lokale Zeitschriften ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal Issue": "Local Journal Issues ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal Issue": "Lokale Zeitschriftenausgaben ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal Volume": "Local Journal Volumes ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal Volume": "Lokale Zeitschriftenbände ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa Journals ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa Zeitschriften ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa Publishers ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa Verlage ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcidV2": "ORCID ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcidV2": "ORCID ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "LC Names ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "LC Namen ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Funding Agency": "Search for Funding Agencies", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Funding Agency": "Suche nach Fördereinrichtung", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Funding": "Search for Funding", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Funding": "Suche nach Förderung", + + // "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Current Selection ({{ count }})", + "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Aktuelle Auswahl ({{ count }})", + + // "submission.sections.describe.relationship-lookup.title.Journal Issue": "Journal Issues", + "submission.sections.describe.relationship-lookup.title.Journal Issue": "Zeitschriftenausgaben", + + // "submission.sections.describe.relationship-lookup.title.Journal Volume": "Journal Volumes", + "submission.sections.describe.relationship-lookup.title.Journal Volume": "Zeitschriftenbände", + + // "submission.sections.describe.relationship-lookup.title.Journal": "Journals", + "submission.sections.describe.relationship-lookup.title.Journal": "Zeitschriften", + + // "submission.sections.describe.relationship-lookup.title.Author": "Authors", + "submission.sections.describe.relationship-lookup.title.Author": "AutorInnen", + + // "submission.sections.describe.relationship-lookup.title.Funding Agency": "Funding Agency", + "submission.sections.describe.relationship-lookup.title.Funding Agency": "Fördereinrichtung", + + // "submission.sections.describe.relationship-lookup.title.Funding": "Funding", + "submission.sections.describe.relationship-lookup.title.Funding": "Förderung", + + // "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Toggle dropdown", + "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Liste umschalten", + + // "submission.sections.describe.relationship-lookup.selection-tab.settings": "Settings", + "submission.sections.describe.relationship-lookup.selection-tab.settings": "Einstellungen", + + // "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Your selection is currently empty.", + "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Ihre Auswahl ist momentan leer.", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Author": "Selected Authors", + "submission.sections.describe.relationship-lookup.selection-tab.title.Author": "Augewählte AutorInnen", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Selected Journals", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Ausgewählte Zeitschriften", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Journal Volume": "Selected Journal Volume", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal Volume": "Ausgewählte Zeitschriftenbände", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Journal Issue": "Selected Issue", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal Issue": "Ausgewählte Zeitschriftenausgaben", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Suchergebnisse", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Suchergebnisse", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.orcidV2": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcidV2": "Suchergebnisse", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Suchergebnisse", + + // "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Would you like to save \"{{ value }}\" as a name variant for this person so you and others can reuse it for future submissions? If you don\'t you can still use it for this submission.", + "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Möchten Sie \"{{ value }}\" als Namesvariante für diese Person speichern? So können Sie und andere diese bei zukünftigen Veröffentlichungen verwenden. Wenn Sie das nicht tun, können Sie die Variante immer noch für diese Veröffentlichung verwenden.", + + // "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Save a new name variant", + "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Als Namensvariante speichern", + + // "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Use only for this submission", + "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Nur für diese Einreichung verwenden", + // "submission.sections.general.add-more": "Add more", "submission.sections.general.add-more": "Mehr Hinzufügen", + // "submission.sections.general.collection": "Collection", "submission.sections.general.collection": "Sammlung", + // "submission.sections.general.deposit_error_notice": "There was an issue when submitting the item, please try again later.", "submission.sections.general.deposit_error_notice": "Beim Einreichen der Ressoruce ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal.", + // "submission.sections.general.deposit_success_notice": "Submission deposited successfully.", "submission.sections.general.deposit_success_notice": "Veröffentlichung erfolgreich eingereicht", + // "submission.sections.general.discard_error_notice": "There was an issue when discarding the item, please try again later.", "submission.sections.general.discard_error_notice": "Beim Verwerfen der Einreichung ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal", + // "submission.sections.general.discard_success_notice": "Submission discarded successfully.", "submission.sections.general.discard_success_notice": "Einreichung erfolgreich verworfen.", + // "submission.sections.general.metadata-extracted": "New metadata have been extracted and added to the {{sectionId}} section.", "submission.sections.general.metadata-extracted": "Neue Metainformation wurden extrahier unt dem Bereich {{sectionId}} zugeordnet.", + // "submission.sections.general.metadata-extracted-new-section": "New {{sectionId}} section has been added to submission.", "submission.sections.general.metadata-extracted-new-section": "Neuer Bereich {{sectionId}} wurde zur Einreichung hinzugefügt.", + // "submission.sections.general.no-collection": "No collection found", "submission.sections.general.no-collection": "Keine Sammlung gefunden", + // "submission.sections.general.no-sections": "No options available", "submission.sections.general.no-sections": "Es stehen keine Optionen zur Verfügung", + // "submission.sections.general.save_error_notice": "There was an issue when saving the item, please try again later.", "submission.sections.general.save_error_notice": "Beim Speichern der Ressource ist ein Fehler aufgetreten, bitte versuchen Sie es später noch einmal.", + // "submission.sections.general.save_success_notice": "Submission saved successfully.", "submission.sections.general.save_success_notice": "Einreichung erfolgreich gespeichert.", + // "submission.sections.general.search-collection": "Search for a collection", "submission.sections.general.search-collection": "Suche nach einer Sammlung", + // "submission.sections.general.sections_not_valid": "There are incomplete sections.", "submission.sections.general.sections_not_valid": "Es gibt unvollständige Abschnitte.", + + // "submission.sections.submit.progressbar.cclicense": "Creative commons license", "submission.sections.submit.progressbar.cclicense": "Creative Commons Lizenz", + // "submission.sections.submit.progressbar.describe.recycle": "Recycle", "submission.sections.submit.progressbar.describe.recycle": "Wiederverwerten", + // "submission.sections.submit.progressbar.describe.stepcustom": "Describe", "submission.sections.submit.progressbar.describe.stepcustom": "Beschreiben", + // "submission.sections.submit.progressbar.describe.stepone": "Describe", "submission.sections.submit.progressbar.describe.stepone": "Beschreiben", + // "submission.sections.submit.progressbar.describe.steptwo": "Describe", "submission.sections.submit.progressbar.describe.steptwo": "Beschreiben", + // "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates", "submission.sections.submit.progressbar.detect-duplicate": "Mögliche Dubletten", + // "submission.sections.submit.progressbar.license": "Deposit license", "submission.sections.submit.progressbar.license": "Einreichlizenz", + // "submission.sections.submit.progressbar.upload": "Upload files", "submission.sections.submit.progressbar.upload": "Hochgeladene Dateien", + + // "submission.sections.upload.delete.confirm.cancel": "Cancel", "submission.sections.upload.delete.confirm.cancel": "Abbrechen", + // "submission.sections.upload.delete.confirm.info": "This operation can't be undone. Are you sure?", "submission.sections.upload.delete.confirm.info": "Diese Aktion kann nicht rückgängig gemacht werden. Sind Sie sicher?", + // "submission.sections.upload.delete.confirm.submit": "Yes, I'm sure", "submission.sections.upload.delete.confirm.submit": "Ja, ich bin sicher", + // "submission.sections.upload.delete.confirm.title": "Delete bitstream", "submission.sections.upload.delete.confirm.title": "Datei löschen", + // "submission.sections.upload.delete.submit": "Delete", "submission.sections.upload.delete.submit": "Löschen", + // "submission.sections.upload.drop-message": "Drop files to attach them to the item", "submission.sections.upload.drop-message": "Dateien herüberziehen, um sie der Ressource hinzuzufügen", + // "submission.sections.upload.form.access-condition-label": "Access condition type", "submission.sections.upload.form.access-condition-label": "Zugriffsbedingung Typ", + // "submission.sections.upload.form.date-required": "Date is required.", "submission.sections.upload.form.date-required": "Datum erforderlich.", + // "submission.sections.upload.form.from-label": "Access grant from", "submission.sections.upload.form.from-label": "Zugriff gewährt ab", + // "submission.sections.upload.form.from-placeholder": "From", "submission.sections.upload.form.from-placeholder": "Ab", + // "submission.sections.upload.form.group-label": "Group", "submission.sections.upload.form.group-label": "Gruppe", + // "submission.sections.upload.form.group-required": "Group is required.", "submission.sections.upload.form.group-required": "Gruppe ist erforderlich", + // "submission.sections.upload.form.until-label": "Access grant until", "submission.sections.upload.form.until-label": "Zugriff gewährt bis", + // "submission.sections.upload.form.until-placeholder": "Until", "submission.sections.upload.form.until-placeholder": "Bis", + // "submission.sections.upload.header.policy.default.nolist": "Uploaded files in the {{collectionName}} collection will be accessible according to the following group(s):", "submission.sections.upload.header.policy.default.nolist": "In diese Sammlung {{collectionName}} hochgeladene Dateien werden für folgende(n) Gruppe(n) zugänglich sein:", + // "submission.sections.upload.header.policy.default.withlist": "Please note that uploaded files in the {{collectionName}} collection will be accessible, in addition to what is explicitly decided for the single file, with the following group(s):", "submission.sections.upload.header.policy.default.withlist": "Bitte beachten Sie, dass in diese Sammlung {{collectionName}} hochgeladene Dateien zugüglich zu dem, was für einzelne Dateien entschieden wurde, für folgende Gruppe(n) zugänglich sein:", + // "submission.sections.upload.info": "Here you will find all the files currently in the item. You can update the file metadata and access conditions or upload additional files just dragging & dropping them everywhere in the page", "submission.sections.upload.info": "Hier finden Sie alle Dateien, die aktuell zur Ressource gehören. Sie können die Metadaten und Zugriffsrechte bearbeiten oder weitere Dateien hinzufügen, indem Sie sie einfach irgenwo auf diese Seite ziehen.", + // "submission.sections.upload.no-entry": "No", "submission.sections.upload.no-entry": "Kein Eintrag", + // "submission.sections.upload.no-file-uploaded": "No file uploaded yet.", "submission.sections.upload.no-file-uploaded": "Es wurde noch keine Datei hochgeladen", + // "submission.sections.upload.save-metadata": "Save metadata", "submission.sections.upload.save-metadata": "Metadaten speichern", + // "submission.sections.upload.undo": "Cancel", "submission.sections.upload.undo": "Abbrechen", + // "submission.sections.upload.upload-failed": "Upload failed", "submission.sections.upload.upload-failed": "Hochladen fehlgeschlagen", + // "submission.sections.upload.upload-successful": "Upload successful", "submission.sections.upload.upload-successful": "Hochladen erfolgreich", + + // "submission.submit.title": "Submission", "submission.submit.title": "Einreichung", + + // "submission.workflow.generic.delete": "Delete", "submission.workflow.generic.delete": "Löschen", + // "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.delete-help": "Wenn Sie die Ressource verwerfen möchten, Wählen Sie \"Löschen\". Sie werden dies noch einmal gefragt, um die Aktion zu bestätigen.", + // "submission.workflow.generic.edit": "Edit", "submission.workflow.generic.edit": "Bearbeiten", + // "submission.workflow.generic.edit-help": "Select this option to change the item's metadata.", "submission.workflow.generic.edit-help": "Wählen Sie diese Option, um die Metadaten der Ressource zu bearbeiten.", + // "submission.workflow.generic.view": "View", "submission.workflow.generic.view": "Anzeige", + // "submission.workflow.generic.view-help": "Select this option to view the item's metadata.", "submission.workflow.generic.view-help": "Wählen Sie diese Option, um die Metadaten der Ressourcen anzuzeigen", + + // "submission.workflow.tasks.claimed.approve": "Approve", "submission.workflow.tasks.claimed.approve": "Zustimmen", + // "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.approve_help": "Wenn Sie die Ressource begutachtet und die Aufnahme in die Sammlung befürworten, wählen Sie \"Zustimmen\".", + // "submission.workflow.tasks.claimed.edit": "Edit", "submission.workflow.tasks.claimed.edit": "Bearbeiten", + // "submission.workflow.tasks.claimed.edit_help": "Select this option to change the item's metadata.", "submission.workflow.tasks.claimed.edit_help": "Wählen Sie diese Option, um die Metadaten der Ressource zu bearbeiten.", + // "submission.workflow.tasks.claimed.reject.reason.info": "Please enter your reason for rejecting the submission into the box below, indicating whether the submitter may fix a problem and resubmit.", "submission.workflow.tasks.claimed.reject.reason.info": "Bitte geben Sie den Grund für die Ablehnung der eingereichten Ressource in das Feld unten ein. Bitte geben Sie an ob und wie der/die Einreichenden das Problem beheben und die Ressource erneut einreichen kann.", + // "submission.workflow.tasks.claimed.reject.reason.placeholder": "Describe the reason of reject", "submission.workflow.tasks.claimed.reject.reason.placeholder": "Beschreiben Sie den Grund für die Ablehnung", + // "submission.workflow.tasks.claimed.reject.reason.submit": "Reject item", "submission.workflow.tasks.claimed.reject.reason.submit": "Ressource Ablehnen", + // "submission.workflow.tasks.claimed.reject.reason.title": "Reason", "submission.workflow.tasks.claimed.reject.reason.title": "Grund", + // "submission.workflow.tasks.claimed.reject.submit": "Reject", "submission.workflow.tasks.claimed.reject.submit": "Ablehnen", + // "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.reject_help": "Wenn Sie die Ressource begutachte und als ungeeignet für die Aufnahme in die Sammlung befunden haben, wählen Sie \"Ablehnen\". Sie haben dann die Möglichkeit dem/der Einreichenden, den Grund für die Ablehnung zu erklären und ob es eine Möglichkeit gibt, durch entsprechenden Änderungen die Ressource erneut einzureichen.", + // "submission.workflow.tasks.claimed.return": "Return to pool", "submission.workflow.tasks.claimed.return": "Zurück in den gemeinsamen Aufgabenbereich", + // "submission.workflow.tasks.claimed.return_help": "Return the task to the pool so that another user may perform the task.", "submission.workflow.tasks.claimed.return_help": "Aufgabe in den gemeinsamen Aufgabenbereich überführen, so dass ein anderer Bearbeiter die Aufgabe übernehmen kann.", + + // "submission.workflow.tasks.generic.error": "Error occurred during operation...", "submission.workflow.tasks.generic.error": "Ein Fehler ist aufgetreten...", + // "submission.workflow.tasks.generic.processing": "Processing...", "submission.workflow.tasks.generic.processing": "Verarbeitung läuft...", + // "submission.workflow.tasks.generic.submitter": "Submitter", "submission.workflow.tasks.generic.submitter": "Einreichende(r)", + // "submission.workflow.tasks.generic.success": "Operation successful", "submission.workflow.tasks.generic.success": "Aktion erfolgreich", + + // "submission.workflow.tasks.pool.claim": "Claim", "submission.workflow.tasks.pool.claim": "Übernehmen", + // "submission.workflow.tasks.pool.claim_help": "Assign this task to yourself.", "submission.workflow.tasks.pool.claim_help": "Aufgabe übernehmen.", + // "submission.workflow.tasks.pool.hide-detail": "Hide detail", "submission.workflow.tasks.pool.hide-detail": "Details verbergen", + // "submission.workflow.tasks.pool.show-detail": "Show detail", - "submission.workflow.tasks.pool.show-detail": "Details anzeigen", + "submission.workflow.tasks.pool.show-detail": "Details anzeigen", + + // "title": "DSpace", "title": "DSpace", + + // "uploader.browse": "browse", "uploader.browse": "stöbern", + // "uploader.drag-message": "Drag & Drop your files here", "uploader.drag-message": "Ziehen Sie Ihre Dateien hierhin", + // "uploader.or": ", or", "uploader.or": " oder", + // "uploader.processing": "Processing", "uploader.processing": "Bearbeitung läuft", + // "uploader.queue-length": "Queue length", "uploader.queue-length": "Länge der Warteschleife", + + // "virtual-metadata.delete-item.info": "Select the types for which you want to save the virtual metadata as real metadata", + "virtual-metadata.delete-item.info": "Wählen Sie die Typen für die Sie die virtuellen Metadaten als reelle Metadaten speichern wollen", + + // "virtual-metadata.delete-item.modal-head": "The virtual metadata of this relation", + "virtual-metadata.delete-item.modal-head": "Virtuelle Metadaten dieser Relation", + + // "virtual-metadata.delete-relationship.modal-head": "Select the items for which you want to save the virtual metadata as real metadata", + "virtual-metadata.delete-relationship.modal-head": "Wählen Sie die Ressourcen für die Sie die virtuellen Metadaten als reelle Metadaten speichern wollen", + + + } diff --git a/resources/i18n/en.json5 b/resources/i18n/en.json5 index 1077ff9e15..9d38726c5b 100644 --- a/resources/i18n/en.json5 +++ b/resources/i18n/en.json5 @@ -176,12 +176,12 @@ "admin.access-control.epeople.search.head": "Search", - "admin.access-control.epeople.search.scope.name": "Name", - - "admin.access-control.epeople.search.scope.email": "E-mail (exact)", + "admin.access-control.epeople.button.see-all": "Browse All", "admin.access-control.epeople.search.scope.metadata": "Metadata", + "admin.access-control.epeople.search.scope.email": "E-mail (exact)", + "admin.access-control.epeople.search.button": "Search", "admin.access-control.epeople.button.add": "Add EPerson", @@ -190,13 +190,13 @@ "admin.access-control.epeople.table.name": "Name", - "admin.access-control.epeople.table.email": "E-mail", + "admin.access-control.epeople.table.email": "E-mail (exact)", "admin.access-control.epeople.table.edit": "Edit", - "item.access-control.epeople.table.edit.buttons.edit": "Edit", + "admin.access-control.epeople.table.edit.buttons.edit": "Edit \"{{name}}\"", - "item.access-control.epeople.table.edit.buttons.remove": "Remove", + "admin.access-control.epeople.table.edit.buttons.remove": "Delete \"{{name}}\"", "admin.access-control.epeople.no-items": "No EPeople to show.", @@ -228,12 +228,149 @@ "admin.access-control.epeople.form.notification.edited.failure": "Failed to edit EPerson \"{{name}}\"", + "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "Member of these groups:", + + "admin.access-control.epeople.form.table.id": "ID", + + "admin.access-control.epeople.form.table.name": "Name", + + "admin.access-control.epeople.form.memberOfNoGroups": "This EPerson is not a member of any groups", + + "admin.access-control.epeople.form.goToGroups": "Add to groups", + "admin.access-control.epeople.notification.deleted.failure": "Failed to delete EPerson: \"{{name}}\"", "admin.access-control.epeople.notification.deleted.success": "Successfully deleted EPerson: \"{{name}}\"", + "admin.access-control.groups.title": "DSpace Angular :: Groups", + + "admin.access-control.groups.head": "Groups", + + "admin.access-control.groups.button.add": "Add group", + + "admin.access-control.groups.search.head": "Search groups", + + "admin.access-control.groups.button.see-all": "Browse all", + + "admin.access-control.groups.search.button": "Search", + + "admin.access-control.groups.table.id": "ID", + + "admin.access-control.groups.table.name": "Name", + + "admin.access-control.groups.table.members": "Members", + + "admin.access-control.groups.table.comcol": "Community / Collection", + + "admin.access-control.groups.table.edit": "Edit", + + "admin.access-control.groups.table.edit.buttons.edit": "Edit \"{{name}}\"", + + "admin.access-control.groups.table.edit.buttons.remove": "Delete \"{{name}}\"", + + "admin.access-control.groups.no-items": "No groups found with this in their name or this as UUID", + + "admin.access-control.groups.notification.deleted.success": "Successfully deleted group \"{{name}}\"", + + "admin.access-control.groups.notification.deleted.failure": "Failed to delete group \"{{name}}\"", + + + "admin.access-control.groups.form.head.create": "Create group", + + "admin.access-control.groups.form.head.edit": "Edit group", + + "admin.access-control.groups.form.groupName": "Group name", + + "admin.access-control.groups.form.groupDescription": "Description", + + "admin.access-control.groups.form.notification.created.success": "Successfully created Group \"{{name}}\"", + + "admin.access-control.groups.form.notification.created.failure": "Failed to create Group \"{{name}}\"", + + "admin.access-control.groups.form.notification.created.failure.groupNameInUse": "Failed to create Group with name: \"{{name}}\", make sure the name is not already in use.", + + "admin.access-control.groups.form.members-list.head": "EPeople", + + "admin.access-control.groups.form.members-list.search.head": "Add EPeople", + + "admin.access-control.groups.form.members-list.button.see-all": "Browse All", + + "admin.access-control.groups.form.members-list.headMembers": "Current Members", + + "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadata", + + "admin.access-control.groups.form.members-list.search.scope.email": "E-mail (exact)", + + "admin.access-control.groups.form.members-list.search.button": "Search", + + "admin.access-control.groups.form.members-list.table.id": "ID", + + "admin.access-control.groups.form.members-list.table.name": "Name", + + "admin.access-control.groups.form.members-list.table.edit": "Remove / Add", + + "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "Remove member with name \"{{name}}\"", + + "admin.access-control.groups.form.members-list.notification.success.addMember": "Successfully added member: \"{{name}}\"", + + "admin.access-control.groups.form.members-list.notification.failure.addMember": "Failed to add member: \"{{name}}\"", + + "admin.access-control.groups.form.members-list.notification.success.deleteMember": "Successfully deleted member: \"{{name}}\"", + + "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "Failed to delete member: \"{{name}}\"", + + "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Add member with name \"{{name}}\"", + + "admin.access-control.groups.form.members-list.notification.failure.noActiveGroup": "No current active group, submit a name first.", + + "admin.access-control.groups.form.members-list.no-members-yet": "No members in group yet, search and add.", + + "admin.access-control.groups.form.members-list.no-items": "No EPeople found in that search", + + "admin.access-control.groups.form.subgroups-list.head": "Groups", + + "admin.access-control.groups.form.subgroups-list.search.head": "Add Subgroup", + + "admin.access-control.groups.form.subgroups-list.button.see-all": "Browse All", + + "admin.access-control.groups.form.subgroups-list.headSubgroups": "Current Subgroups", + + "admin.access-control.groups.form.subgroups-list.search.button": "Search", + + "admin.access-control.groups.form.subgroups-list.table.id": "ID", + + "admin.access-control.groups.form.subgroups-list.table.name": "Name", + + "admin.access-control.groups.form.subgroups-list.table.edit": "Remove / Add", + + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.remove": "Remove subgroup with name \"{{name}}\"", + + "admin.access-control.groups.form.subgroups-list.table.edit.buttons.add": "Add subgroup with name \"{{name}}\"", + + "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Current group", + + "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Successfully added subgroup: \"{{name}}\"", + + "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Failed to add subgroup: \"{{name}}\"", + + "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "Successfully deleted subgroup: \"{{name}}\"", + + "admin.access-control.groups.form.subgroups-list.notification.failure.deleteSubgroup": "Failed to delete subgroup: \"{{name}}\"", + + "admin.access-control.groups.form.subgroups-list.notification.failure.noActiveGroup": "No current active group, submit a name first.", + + "admin.access-control.groups.form.subgroups-list.notification.failure.subgroupToAddIsActiveGroup": "This is the current group, can't be added.", + + "admin.access-control.groups.form.subgroups-list.no-items": "No groups found with this in their name or this as UUID", + + "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "No subgroups in group yet.", + + "admin.access-control.groups.form.return": "Return to groups", + + + "admin.search.breadcrumbs": "Administrative Search", "admin.search.collection.edit": "Edit", @@ -624,6 +761,12 @@ "community.edit.tabs.roles.title": "Community Edit - Roles", + "community.edit.tabs.roles.none": "None", + + "community.edit.tabs.roles.admin.name": "Administrators", + + "community.edit.tabs.roles.admin.description": "Community administrators can create sub-communities or collections, and manage or assign management for those sub-communities or collections. In addition, they decide who can submit items to any sub-collections, edit item metadata (after submission), and add (map) existing items from other collections (subject to authorization).", + "community.form.abstract": "Short Description", @@ -2417,6 +2560,9 @@ "administrativeView.search.results.head": "Administrative Search", + "menu.section.admin_search": "Admin Search", + + "uploader.browse": "browse", diff --git a/resources/i18n/fr.json5 b/resources/i18n/fr.json5 index 398c57e6b2..68808a325c 100644 --- a/resources/i18n/fr.json5 +++ b/resources/i18n/fr.json5 @@ -1,3220 +1,1596 @@ { // "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. ", - // TODO New key - Add a translation - "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.help": "La page que vous recherchez n'a pas pu être localisée. Cette page pourrait avoir été déplacée ou supprimée. Vous pouvez utiliser le bouton ci-dessous pour revenir sur la page d'accueil.", // "404.link.home-page": "Take me to the home page", - // TODO New key - Add a translation - "404.link.home-page": "Take me to the home page", - + "404.link.home-page": "Retour sur la page d'accueil", // "404.page-not-found": "page not found", - // TODO New key - Add a translation - "404.page-not-found": "page not found", - - + "404.page-not-found": "Page introuvable", // "admin.registries.bitstream-formats.create.failure.content": "An error occurred while creating the new bitstream format.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.create.failure.content": "An error occurred while creating the new bitstream format.", - + "admin.registries.bitstream-formats.create.failure.content": "Une erreur s'est produite lors de l'ajout du nouveau format Bitstream.", // "admin.registries.bitstream-formats.create.failure.head": "Failure", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.create.failure.head": "Failure", - + "admin.registries.bitstream-formats.create.failure.head": "Erreur", // "admin.registries.bitstream-formats.create.head": "Create Bitstream format", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.create.head": "Create Bitstream format", - + "admin.registries.bitstream-formats.create.head": "Ajouter un format Bistream", // "admin.registries.bitstream-formats.create.new": "Add a new bitstream format", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.create.new": "Add a new bitstream format", - + "admin.registries.bitstream-formats.create.new": "Ajouter un format Bitstream", // "admin.registries.bitstream-formats.create.success.content": "The new bitstream format was successfully created.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.create.success.content": "The new bitstream format was successfully created.", - + "admin.registries.bitstream-formats.create.success.content": "Le nouveau format Bitstream a été ajouté avec succès.", // "admin.registries.bitstream-formats.create.success.head": "Success", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.create.success.head": "Success", - + "admin.registries.bitstream-formats.create.success.head": "Succès", // "admin.registries.bitstream-formats.delete.failure.amount": "Failed to remove {{ amount }} format(s)", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.delete.failure.amount": "Failed to remove {{ amount }} format(s)", - + "admin.registries.bitstream-formats.delete.failure.amount": "La suppression de {{ amount }} format(s) a échoué", // "admin.registries.bitstream-formats.delete.failure.head": "Failure", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.delete.failure.head": "Failure", - + "admin.registries.bitstream-formats.delete.failure.head": "Échec", // "admin.registries.bitstream-formats.delete.success.amount": "Successfully removed {{ amount }} format(s)", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.delete.success.amount": "Successfully removed {{ amount }} format(s)", - + "admin.registries.bitstream-formats.delete.success.amount": "{{ amount }} format(s) ajouté(s) avec succès", // "admin.registries.bitstream-formats.delete.success.head": "Success", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.delete.success.head": "Success", - + "admin.registries.bitstream-formats.delete.success.head": "Succès", // "admin.registries.bitstream-formats.description": "This list of bitstream formats provides information about known formats and their support level.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.description": "This list of bitstream formats provides information about known formats and their support level.", - + "admin.registries.bitstream-formats.description": "Cette liste des formats Bitstream contient les informations relatives aux formats connus et leur niveau de support.", // "admin.registries.bitstream-formats.edit.description.hint": "", - // TODO New key - Add a translation "admin.registries.bitstream-formats.edit.description.hint": "", - // "admin.registries.bitstream-formats.edit.description.label": "Description", - // TODO New key - Add a translation "admin.registries.bitstream-formats.edit.description.label": "Description", - // "admin.registries.bitstream-formats.edit.extensions.hint": "Extensions are file extensions that are used to automatically identify the format of uploaded files. You can enter several extensions for each format.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.extensions.hint": "Extensions are file extensions that are used to automatically identify the format of uploaded files. You can enter several extensions for each format.", - + "admin.registries.bitstream-formats.edit.extensions.hint": "Les extensions de fichier sont utilisées pour identifier le format des fichiers téléchargés. Plusieurs extensions peuvent être encodées pour chaque format.", // "admin.registries.bitstream-formats.edit.extensions.label": "File extensions", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.extensions.label": "File extensions", - + "admin.registries.bitstream-formats.edit.extensions.label": "Extensions de fichier", // "admin.registries.bitstream-formats.edit.extensions.placeholder": "Enter a file extenstion without the dot", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.extensions.placeholder": "Enter a file extenstion without the dot", - + "admin.registries.bitstream-formats.edit.extensions.placeholder": "Veuillez entrer l'extension de fichier sans point", // "admin.registries.bitstream-formats.edit.failure.content": "An error occurred while editing the bitstream format.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.failure.content": "An error occurred while editing the bitstream format.", - + "admin.registries.bitstream-formats.edit.failure.content": "Une erreur s'est produite lors de l'édition du format Bitstream.", // "admin.registries.bitstream-formats.edit.failure.head": "Failure", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.failure.head": "Failure", - + "admin.registries.bitstream-formats.edit.failure.head": "Échec", // "admin.registries.bitstream-formats.edit.head": "Bitstream format: {{ format }}", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.head": "Bitstream format: {{ format }}", - + "admin.registries.bitstream-formats.edit.head": "Format Bitstream: {{ format }}", // "admin.registries.bitstream-formats.edit.internal.hint": "Formats marked as internal are are hidden from the user, and used for administrative purposes.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.internal.hint": "Formats marked as internal are are hidden from the user, and used for administrative purposes.", - + "admin.registries.bitstream-formats.edit.internal.hint": "Les formats identifiés en tant que formats internes sont cachés pour l'utilisateur et utilisés uniquement à des fins administratives.", // "admin.registries.bitstream-formats.edit.internal.label": "Internal", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.internal.label": "Internal", - + "admin.registries.bitstream-formats.edit.internal.label": "Interne", // "admin.registries.bitstream-formats.edit.mimetype.hint": "The MIME type associated with this format, does not have to be unique.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.mimetype.hint": "The MIME type associated with this format, does not have to be unique.", - + "admin.registries.bitstream-formats.edit.mimetype.hint": "Le type MIME associé avec ce format ne doit pas nécessairement être unique.", // "admin.registries.bitstream-formats.edit.mimetype.label": "MIME Type", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.mimetype.label": "MIME Type", - + "admin.registries.bitstream-formats.edit.mimetype.label": "Type MIME", // "admin.registries.bitstream-formats.edit.shortDescription.hint": "A unique name for this format, (e.g. Microsoft Word XP or Microsoft Word 2000)", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.shortDescription.hint": "A unique name for this format, (e.g. Microsoft Word XP or Microsoft Word 2000)", - + "admin.registries.bitstream-formats.edit.shortDescription.hint": "Nom unique pour ce format (p. ex. Microsoft Word XP or Microsoft Word 2000)", // "admin.registries.bitstream-formats.edit.shortDescription.label": "Name", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.shortDescription.label": "Name", - + "admin.registries.bitstream-formats.edit.shortDescription.label": "Nom", // "admin.registries.bitstream-formats.edit.success.content": "The bitstream format was successfully edited.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.success.content": "The bitstream format was successfully edited.", - + "admin.registries.bitstream-formats.edit.success.content": "Le format Bitstream a été édité avec succès.", // "admin.registries.bitstream-formats.edit.success.head": "Success", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.success.head": "Success", - + "admin.registries.bitstream-formats.edit.success.head": "Succès", // "admin.registries.bitstream-formats.edit.supportLevel.hint": "The level of support your institution pledges for this format.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.supportLevel.hint": "The level of support your institution pledges for this format.", - + "admin.registries.bitstream-formats.edit.supportLevel.hint": "Le niveau de support auquel votre institution souscrit pour ce format.", // "admin.registries.bitstream-formats.edit.supportLevel.label": "Support level", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.edit.supportLevel.label": "Support level", - + "admin.registries.bitstream-formats.edit.supportLevel.label": "Niveau de support", // "admin.registries.bitstream-formats.head": "Bitstream Format Registry", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.head": "Bitstream Format Registry", - + "admin.registries.bitstream-formats.head": "Registre des formats Bitstream", // "admin.registries.bitstream-formats.no-items": "No bitstream formats to show.", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.no-items": "No bitstream formats to show.", - + "admin.registries.bitstream-formats.no-items": "Aucun format Bitstream disponible.", // "admin.registries.bitstream-formats.table.delete": "Delete selected", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.delete": "Delete selected", - + "admin.registries.bitstream-formats.table.delete": "Supprimer les éléments sélectionnés", // "admin.registries.bitstream-formats.table.deselect-all": "Deselect all", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.deselect-all": "Deselect all", - + "admin.registries.bitstream-formats.table.deselect-all": "Désélectionner tout", // "admin.registries.bitstream-formats.table.internal": "internal", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.internal": "internal", - + "admin.registries.bitstream-formats.table.internal": "interne", // "admin.registries.bitstream-formats.table.mimetype": "MIME Type", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.mimetype": "MIME Type", - + "admin.registries.bitstream-formats.table.mimetype": "Type MIME", // "admin.registries.bitstream-formats.table.name": "Name", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.name": "Name", - + "admin.registries.bitstream-formats.table.name": "Nom", // "admin.registries.bitstream-formats.table.return": "Return", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.return": "Return", - + "admin.registries.bitstream-formats.table.return": "Retour", // "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Known", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Known", - + "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Connu", // "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Supported", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Supported", - + "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Supporté", // "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Unknown", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Unknown", - + "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Inconnu", // "admin.registries.bitstream-formats.table.supportLevel.head": "Support Level", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.table.supportLevel.head": "Support Level", - + "admin.registries.bitstream-formats.table.supportLevel.head": "Niveau de support", // "admin.registries.bitstream-formats.title": "DSpace Angular :: Bitstream Format Registry", - // TODO New key - Add a translation - "admin.registries.bitstream-formats.title": "DSpace Angular :: Bitstream Format Registry", - - + "admin.registries.bitstream-formats.title": "DSpace Angular :: Registre des formats Bitstream", // "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.", - // TODO New key - Add a translation - "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.description": "Le registre de métadonnées présente une liste à jour de tous les champs de métadonnées disponibles dans le dépôt. Ces champs peuvent être répartis entre plusieurs schémas. Le schéma Dublin Core qualifié est toutefois requis dans DSpace.", // "admin.registries.metadata.form.create": "Create metadata schema", - // TODO New key - Add a translation - "admin.registries.metadata.form.create": "Create metadata schema", - + "admin.registries.metadata.form.create": "Ajouter un schéma de métadonnées", // "admin.registries.metadata.form.edit": "Edit metadata schema", - // TODO New key - Add a translation - "admin.registries.metadata.form.edit": "Edit metadata schema", - + "admin.registries.metadata.form.edit": "Éditer un schéma de métadonnées", // "admin.registries.metadata.form.name": "Name", - // TODO New key - Add a translation - "admin.registries.metadata.form.name": "Name", - + "admin.registries.metadata.form.name": "Nom", // "admin.registries.metadata.form.namespace": "Namespace", - // TODO New key - Add a translation - "admin.registries.metadata.form.namespace": "Namespace", - + "admin.registries.metadata.form.namespace": "Espace de nommage", // "admin.registries.metadata.head": "Metadata Registry", - // TODO New key - Add a translation - "admin.registries.metadata.head": "Metadata Registry", - + "admin.registries.metadata.head": "Registre de métadonnées", // "admin.registries.metadata.schemas.no-items": "No metadata schemas to show.", - // TODO New key - Add a translation - "admin.registries.metadata.schemas.no-items": "No metadata schemas to show.", - + "admin.registries.metadata.schemas.no-items": "Aucun schéma de métadonnées disponible.", // "admin.registries.metadata.schemas.table.delete": "Delete selected", - // TODO New key - Add a translation - "admin.registries.metadata.schemas.table.delete": "Delete selected", - + "admin.registries.metadata.schemas.table.delete": "Supprimer les éléments sélectionnés", // "admin.registries.metadata.schemas.table.id": "ID", - // TODO New key - Add a translation "admin.registries.metadata.schemas.table.id": "ID", - // "admin.registries.metadata.schemas.table.name": "Name", - // TODO New key - Add a translation - "admin.registries.metadata.schemas.table.name": "Name", - + "admin.registries.metadata.schemas.table.name": "Nom", // "admin.registries.metadata.schemas.table.namespace": "Namespace", - // TODO New key - Add a translation - "admin.registries.metadata.schemas.table.namespace": "Namespace", - + "admin.registries.metadata.schemas.table.namespace": "Espace de nommage", // "admin.registries.metadata.title": "DSpace Angular :: Metadata Registry", - // TODO New key - Add a translation - "admin.registries.metadata.title": "DSpace Angular :: Metadata Registry", - - - + "admin.registries.metadata.title": "DSpace Angular :: Registre de métadonnées", // "admin.registries.schema.description": "This is the metadata schema for \"{{namespace}}\".", - // TODO New key - Add a translation - "admin.registries.schema.description": "This is the metadata schema for \"{{namespace}}\".", - + "admin.registries.schema.description": "Ceci est le schéma de métadonnées correspondant à l'espace de nommage « {{namespace}} ».", // "admin.registries.schema.fields.head": "Schema metadata fields", - // TODO New key - Add a translation - "admin.registries.schema.fields.head": "Schema metadata fields", - + "admin.registries.schema.fields.head": "Champs de métadonnées du schéma", // "admin.registries.schema.fields.no-items": "No metadata fields to show.", - // TODO New key - Add a translation - "admin.registries.schema.fields.no-items": "No metadata fields to show.", - + "admin.registries.schema.fields.no-items": "Aucun champ de métadonnée disponible.", // "admin.registries.schema.fields.table.delete": "Delete selected", - // TODO New key - Add a translation - "admin.registries.schema.fields.table.delete": "Delete selected", - + "admin.registries.schema.fields.table.delete": "Supprimer les éléments sélectionnés", // "admin.registries.schema.fields.table.field": "Field", - // TODO New key - Add a translation - "admin.registries.schema.fields.table.field": "Field", - + "admin.registries.schema.fields.table.field": "Champ", // "admin.registries.schema.fields.table.scopenote": "Scope Note", - // TODO New key - Add a translation - "admin.registries.schema.fields.table.scopenote": "Scope Note", - + "admin.registries.schema.fields.table.scopenote": "Note d'application", // "admin.registries.schema.form.create": "Create metadata field", - // TODO New key - Add a translation - "admin.registries.schema.form.create": "Create metadata field", - + "admin.registries.schema.form.create": "Ajouter un champ de métadonnées", // "admin.registries.schema.form.edit": "Edit metadata field", - // TODO New key - Add a translation - "admin.registries.schema.form.edit": "Edit metadata field", - + "admin.registries.schema.form.edit": "Modifier champ de métadonnées", // "admin.registries.schema.form.element": "Element", - // TODO New key - Add a translation - "admin.registries.schema.form.element": "Element", - + "admin.registries.schema.form.element": "Élément", // "admin.registries.schema.form.qualifier": "Qualifier", - // TODO New key - Add a translation - "admin.registries.schema.form.qualifier": "Qualifier", - + "admin.registries.schema.form.qualifier": "Qualificatif", // "admin.registries.schema.form.scopenote": "Scope Note", - // TODO New key - Add a translation - "admin.registries.schema.form.scopenote": "Scope Note", - + "admin.registries.schema.form.scopenote": "Note d'application", // "admin.registries.schema.head": "Metadata Schema", - // TODO New key - Add a translation - "admin.registries.schema.head": "Metadata Schema", - + "admin.registries.schema.head": "Schéma de métadonnées", // "admin.registries.schema.notification.created": "Successfully created metadata schema \"{{prefix}}\"", - // TODO New key - Add a translation - "admin.registries.schema.notification.created": "Successfully created metadata schema \"{{prefix}}\"", - + "admin.registries.schema.notification.created": "Schéma de métadonnées « {{prefix}} » créé avec succès", // "admin.registries.schema.notification.deleted.failure": "Failed to delete {{amount}} metadata schemas", - // TODO New key - Add a translation - "admin.registries.schema.notification.deleted.failure": "Failed to delete {{amount}} metadata schemas", - + "admin.registries.schema.notification.deleted.failure": "Erreur lors de la suppression de {{amount}} schéma(s) de métadonnées", // "admin.registries.schema.notification.deleted.success": "Successfully deleted {{amount}} metadata schemas", - // TODO New key - Add a translation - "admin.registries.schema.notification.deleted.success": "Successfully deleted {{amount}} metadata schemas", - + "admin.registries.schema.notification.deleted.success": "{{amount}} schéma(s) de métadonnées supprimé(s) avec succès", // "admin.registries.schema.notification.edited": "Successfully edited metadata schema \"{{prefix}}\"", - // TODO New key - Add a translation - "admin.registries.schema.notification.edited": "Successfully edited metadata schema \"{{prefix}}\"", - + "admin.registries.schema.notification.edited": "Schéma de métadonnées « {{prefix}} » édité avec succès", // "admin.registries.schema.notification.failure": "Error", - // TODO New key - Add a translation - "admin.registries.schema.notification.failure": "Error", - + "admin.registries.schema.notification.failure": "Erreur", // "admin.registries.schema.notification.field.created": "Successfully created metadata field \"{{field}}\"", - // TODO New key - Add a translation - "admin.registries.schema.notification.field.created": "Successfully created metadata field \"{{field}}\"", - + "admin.registries.schema.notification.field.created": "Champ de métadonnée « {{field}} » créé avec succès", // "admin.registries.schema.notification.field.deleted.failure": "Failed to delete {{amount}} metadata fields", - // TODO New key - Add a translation - "admin.registries.schema.notification.field.deleted.failure": "Failed to delete {{amount}} metadata fields", - + "admin.registries.schema.notification.field.deleted.failure": "Erreur lors de la suppression de {{amount}} champ(s) de métadonnées", // "admin.registries.schema.notification.field.deleted.success": "Successfully deleted {{amount}} metadata fields", - // TODO New key - Add a translation - "admin.registries.schema.notification.field.deleted.success": "Successfully deleted {{amount}} metadata fields", - + "admin.registries.schema.notification.field.deleted.success": "{{amount}} champ(s) de métadonnées supprimé(s) avec succès", // "admin.registries.schema.notification.field.edited": "Successfully edited metadata field \"{{field}}\"", - // TODO New key - Add a translation - "admin.registries.schema.notification.field.edited": "Successfully edited metadata field \"{{field}}\"", - + "admin.registries.schema.notification.field.edited": "Champ de métadonnée « {{field}} » édité avec succès", // "admin.registries.schema.notification.success": "Success", - // TODO New key - Add a translation - "admin.registries.schema.notification.success": "Success", - + "admin.registries.schema.notification.success": "Succès", // "admin.registries.schema.return": "Return", - // TODO New key - Add a translation - "admin.registries.schema.return": "Return", - + "admin.registries.schema.return": "Retour", // "admin.registries.schema.title": "DSpace Angular :: Metadata Schema Registry", - // TODO New key - Add a translation - "admin.registries.schema.title": "DSpace Angular :: Metadata Schema Registry", - - + "admin.registries.schema.title": "DSpace Angular :: Registre des schémas de métadonnées", // "auth.errors.invalid-user": "Invalid email address or password.", - // TODO New key - Add a translation - "auth.errors.invalid-user": "Invalid email address or password.", - + "auth.errors.invalid-user": "Adresse e-mail ou mot de passe non valide.", // "auth.messages.expired": "Your session has expired. Please log in again.", - // TODO New key - Add a translation - "auth.messages.expired": "Your session has expired. Please log in again.", - - + "auth.messages.expired": "Votre session a expiré. Veuillez vous reconnecter.", // "browse.comcol.by.author": "By Author", - // TODO New key - Add a translation - "browse.comcol.by.author": "By Author", - + "browse.comcol.by.author": "Auteur", // "browse.comcol.by.dateissued": "By Issue Date", - // TODO New key - Add a translation - "browse.comcol.by.dateissued": "By Issue Date", - + "browse.comcol.by.dateissued": "Date de publication", // "browse.comcol.by.subject": "By Subject", - // TODO New key - Add a translation - "browse.comcol.by.subject": "By Subject", - + "browse.comcol.by.subject": "Sujet", // "browse.comcol.by.title": "By Title", - // TODO New key - Add a translation - "browse.comcol.by.title": "By Title", - + "browse.comcol.by.title": "Titre", // "browse.comcol.head": "Browse", - // TODO New key - Add a translation - "browse.comcol.head": "Browse", - + "browse.comcol.head": "Parcourir par", // "browse.empty": "No items to show.", - // TODO New key - Add a translation - "browse.empty": "No items to show.", - + "browse.empty": "Aucun résultat.", // "browse.metadata.author": "Author", - // TODO New key - Add a translation - "browse.metadata.author": "Author", - + "browse.metadata.author": "Auteur", // "browse.metadata.dateissued": "Issue Date", - // TODO New key - Add a translation - "browse.metadata.dateissued": "Issue Date", - + "browse.metadata.dateissued": "Date de publication", // "browse.metadata.subject": "Subject", - // TODO New key - Add a translation - "browse.metadata.subject": "Subject", - + "browse.metadata.subject": "Sujet", // "browse.metadata.title": "Title", - // TODO New key - Add a translation - "browse.metadata.title": "Title", - + "browse.metadata.title": "Titre", // "browse.startsWith.choose_start": "(Choose start)", - // TODO New key - Add a translation - "browse.startsWith.choose_start": "(Choose start)", - + "browse.startsWith.choose_start": "(Choisir point de départ)", // "browse.startsWith.choose_year": "(Choose year)", - // TODO New key - Add a translation - "browse.startsWith.choose_year": "(Choose year)", - + "browse.startsWith.choose_year": "(Choisir l'année)", // "browse.startsWith.jump": "Jump to a point in the index:", - // TODO New key - Add a translation - "browse.startsWith.jump": "Jump to a point in the index:", - + "browse.startsWith.jump": "Aller directement à une entrée de l'index :", // "browse.startsWith.months.april": "April", - // TODO New key - Add a translation - "browse.startsWith.months.april": "April", - + "browse.startsWith.months.april": "Avril", // "browse.startsWith.months.august": "August", - // TODO New key - Add a translation - "browse.startsWith.months.august": "August", - + "browse.startsWith.months.august": "Août", // "browse.startsWith.months.december": "December", - // TODO New key - Add a translation - "browse.startsWith.months.december": "December", - + "browse.startsWith.months.december": "Décembre", // "browse.startsWith.months.february": "February", - // TODO New key - Add a translation - "browse.startsWith.months.february": "February", - + "browse.startsWith.months.february": "Février", // "browse.startsWith.months.january": "January", - // TODO New key - Add a translation - "browse.startsWith.months.january": "January", - + "browse.startsWith.months.january": "Janvier", // "browse.startsWith.months.july": "July", - // TODO New key - Add a translation - "browse.startsWith.months.july": "July", - + "browse.startsWith.months.july": "Juillet", // "browse.startsWith.months.june": "June", - // TODO New key - Add a translation - "browse.startsWith.months.june": "June", - + "browse.startsWith.months.june": "Juin", // "browse.startsWith.months.march": "March", - // TODO New key - Add a translation - "browse.startsWith.months.march": "March", - + "browse.startsWith.months.march": "Mars", // "browse.startsWith.months.may": "May", - // TODO New key - Add a translation - "browse.startsWith.months.may": "May", - + "browse.startsWith.months.may": "Mai", // "browse.startsWith.months.none": "(Choose month)", - // TODO New key - Add a translation - "browse.startsWith.months.none": "(Choose month)", - + "browse.startsWith.months.none": "(Choisir le mois)", // "browse.startsWith.months.november": "November", - // TODO New key - Add a translation - "browse.startsWith.months.november": "November", - + "browse.startsWith.months.november": "Novembre", // "browse.startsWith.months.october": "October", - // TODO New key - Add a translation - "browse.startsWith.months.october": "October", - + "browse.startsWith.months.october": "Octobre", // "browse.startsWith.months.september": "September", - // TODO New key - Add a translation - "browse.startsWith.months.september": "September", - + "browse.startsWith.months.september": "Septembre", // "browse.startsWith.submit": "Go", - // TODO New key - Add a translation - "browse.startsWith.submit": "Go", - + "browse.startsWith.submit": "Valider", // "browse.startsWith.type_date": "Or type in a date (year-month):", - // TODO New key - Add a translation - "browse.startsWith.type_date": "Or type in a date (year-month):", - + "browse.startsWith.type_date": "Ou saisir une date (année-mois) :", // "browse.startsWith.type_text": "Or enter first few letters:", - // TODO New key - Add a translation - "browse.startsWith.type_text": "Or enter first few letters:", - + "browse.startsWith.type_text": "Ou saisir les premières lettres :", // "browse.title": "Browsing {{ collection }} by {{ field }} {{ value }}", - // TODO New key - Add a translation - "browse.title": "Browsing {{ collection }} by {{ field }} {{ value }}", - - + "browse.title": "Parcourir {{ collection }} par {{ field }} {{ value }}", // "chips.remove": "Remove chip", - // TODO New key - Add a translation - "chips.remove": "Remove chip", - - + "chips.remove": "Supprimer fragment", // "collection.create.head": "Create a Collection", - // TODO New key - Add a translation - "collection.create.head": "Create a Collection", - + "collection.create.head": "Créer une Collection", // "collection.create.sub-head": "Create a Collection for Community {{ parent }}", - // TODO New key - Add a translation - "collection.create.sub-head": "Create a Collection for Community {{ parent }}", - + "collection.create.sub-head": "Créer une Collection au sein de la Communauté {{ parent }}", // "collection.delete.cancel": "Cancel", - // TODO New key - Add a translation - "collection.delete.cancel": "Cancel", - + "collection.delete.cancel": "Annuler", // "collection.delete.confirm": "Confirm", - // TODO New key - Add a translation - "collection.delete.confirm": "Confirm", - + "collection.delete.confirm": "Valider", // "collection.delete.head": "Delete Collection", - // TODO New key - Add a translation - "collection.delete.head": "Delete Collection", - + "collection.delete.head": "Supprimer Collection", // "collection.delete.notification.fail": "Collection could not be deleted", - // TODO New key - Add a translation - "collection.delete.notification.fail": "Collection could not be deleted", - + "collection.delete.notification.fail": "La Collection n'a pas pu être supprimée", // "collection.delete.notification.success": "Successfully deleted collection", - // TODO New key - Add a translation - "collection.delete.notification.success": "Successfully deleted collection", - + "collection.delete.notification.success": "Collection supprimée avec succès", // "collection.delete.text": "Are you sure you want to delete collection \"{{ dso }}\"", - // TODO New key - Add a translation - "collection.delete.text": "Are you sure you want to delete collection \"{{ dso }}\"", - - - + "collection.delete.text": "Êtes-vous certain de vouloir supprimer la Collection « {{ dso }} »", // "collection.edit.delete": "Delete this collection", - // TODO New key - Add a translation - "collection.edit.delete": "Delete this collection", - + "collection.edit.delete": "Supprimer cette Collection", // "collection.edit.head": "Edit Collection", - // TODO New key - Add a translation - "collection.edit.head": "Edit Collection", - - - + "collection.edit.head": "Éditer Collection", // "collection.edit.item-mapper.cancel": "Cancel", - // TODO New key - Add a translation - "collection.edit.item-mapper.cancel": "Cancel", - + "collection.edit.item-mapper.cancel": "Annuler", // "collection.edit.item-mapper.collection": "Collection: \"{{name}}\"", - // TODO New key - Add a translation - "collection.edit.item-mapper.collection": "Collection: \"{{name}}\"", - + "collection.edit.item-mapper.collection": "Collection : « {{name}} »", // "collection.edit.item-mapper.confirm": "Map selected items", - // TODO New key - Add a translation - "collection.edit.item-mapper.confirm": "Map selected items", - + "collection.edit.item-mapper.confirm": "Associer les Items sélectionnés", // "collection.edit.item-mapper.description": "This is the item mapper tool that allows collection administrators to map items from other collections into this collection. You can search for items from other collections and map them, or browse the list of currently mapped items.", - // TODO New key - Add a translation - "collection.edit.item-mapper.description": "This is the item mapper tool that allows collection administrators to map items from other collections into this collection. You can search for items from other collections and map them, or browse the list of currently mapped items.", - + "collection.edit.item-mapper.description": "L'Item Mapper permet aux administrateurs de Collection d'associer des Items provenant d'autres Collections dans cette Collection. Vous pouvez rechercher des Items d'autres Collections et les associer, ou consulter la liste des Items actuellement associés.", // "collection.edit.item-mapper.head": "Item Mapper - Map Items from Other Collections", - // TODO New key - Add a translation - "collection.edit.item-mapper.head": "Item Mapper - Map Items from Other Collections", - + "collection.edit.item-mapper.head": "Item Mapper - Associer des Items provenant d'autres Collections", // "collection.edit.item-mapper.no-search": "Please enter a query to search", - // TODO New key - Add a translation - "collection.edit.item-mapper.no-search": "Please enter a query to search", - + "collection.edit.item-mapper.no-search": "Veuillez entrer un élément à rechercher", // "collection.edit.item-mapper.notifications.map.error.content": "Errors occurred for mapping of {{amount}} items.", - // TODO New key - Add a translation - "collection.edit.item-mapper.notifications.map.error.content": "Errors occurred for mapping of {{amount}} items.", - + "collection.edit.item-mapper.notifications.map.error.content": "Des erreurs se sont produites lors de l'association de {{amount}} Item(s).", // "collection.edit.item-mapper.notifications.map.error.head": "Mapping errors", - // TODO New key - Add a translation - "collection.edit.item-mapper.notifications.map.error.head": "Mapping errors", - + "collection.edit.item-mapper.notifications.map.error.head": "Erreurs d'association", // "collection.edit.item-mapper.notifications.map.success.content": "Successfully mapped {{amount}} items.", - // TODO New key - Add a translation - "collection.edit.item-mapper.notifications.map.success.content": "Successfully mapped {{amount}} items.", - + "collection.edit.item-mapper.notifications.map.success.content": "{{amount}} Item(s) associé(s) avec succès.", // "collection.edit.item-mapper.notifications.map.success.head": "Mapping completed", - // TODO New key - Add a translation - "collection.edit.item-mapper.notifications.map.success.head": "Mapping completed", - + "collection.edit.item-mapper.notifications.map.success.head": "Association terminée", // "collection.edit.item-mapper.notifications.unmap.error.content": "Errors occurred for removing the mappings of {{amount}} items.", - // TODO New key - Add a translation - "collection.edit.item-mapper.notifications.unmap.error.content": "Errors occurred for removing the mappings of {{amount}} items.", - + "collection.edit.item-mapper.notifications.unmap.error.content": "Des erreurs se sont produites lors de la suppression de l'association de {{amount}} Item(s).", // "collection.edit.item-mapper.notifications.unmap.error.head": "Remove mapping errors", - // TODO New key - Add a translation - "collection.edit.item-mapper.notifications.unmap.error.head": "Remove mapping errors", - + "collection.edit.item-mapper.notifications.unmap.error.head": "Erreurs de suppression d'association", // "collection.edit.item-mapper.notifications.unmap.success.content": "Successfully removed the mappings of {{amount}} items.", - // TODO New key - Add a translation - "collection.edit.item-mapper.notifications.unmap.success.content": "Successfully removed the mappings of {{amount}} items.", - + "collection.edit.item-mapper.notifications.unmap.success.content": "{{amount}} association(s) supprimée(s) avec succès.", // "collection.edit.item-mapper.notifications.unmap.success.head": "Remove mapping completed", - // TODO New key - Add a translation - "collection.edit.item-mapper.notifications.unmap.success.head": "Remove mapping completed", - + "collection.edit.item-mapper.notifications.unmap.success.head": "Suppression d'association terminée", // "collection.edit.item-mapper.remove": "Remove selected item mappings", - // TODO New key - Add a translation - "collection.edit.item-mapper.remove": "Remove selected item mappings", - + "collection.edit.item-mapper.remove": "Supprimer les associations sélectionnées", // "collection.edit.item-mapper.tabs.browse": "Browse mapped items", - // TODO New key - Add a translation - "collection.edit.item-mapper.tabs.browse": "Browse mapped items", - + "collection.edit.item-mapper.tabs.browse": "Parcourir les Items associés", // "collection.edit.item-mapper.tabs.map": "Map new items", - // TODO New key - Add a translation - "collection.edit.item-mapper.tabs.map": "Map new items", - - + "collection.edit.item-mapper.tabs.map": "Associer nouveaux Items", // "collection.form.abstract": "Short Description", - // TODO New key - Add a translation - "collection.form.abstract": "Short Description", - + "collection.form.abstract": "Description succincte", // "collection.form.description": "Introductory text (HTML)", - // TODO New key - Add a translation - "collection.form.description": "Introductory text (HTML)", - + "collection.form.description": "Texte d'introduction (HTML)", // "collection.form.errors.title.required": "Please enter a collection name", - // TODO New key - Add a translation - "collection.form.errors.title.required": "Please enter a collection name", - + "collection.form.errors.title.required": "Veuillez entrer un nom de Collection", // "collection.form.license": "License", - // TODO New key - Add a translation - "collection.form.license": "License", - + "collection.form.license": "Licence", // "collection.form.provenance": "Provenance", - // TODO New key - Add a translation "collection.form.provenance": "Provenance", - // "collection.form.rights": "Copyright text (HTML)", - // TODO New key - Add a translation - "collection.form.rights": "Copyright text (HTML)", - + "collection.form.rights": "Texte de copyright (HTML)", // "collection.form.tableofcontents": "News (HTML)", - // TODO New key - Add a translation - "collection.form.tableofcontents": "News (HTML)", - + "collection.form.tableofcontents": "Nouvelles (HTML)", // "collection.form.title": "Name", - // TODO New key - Add a translation - "collection.form.title": "Name", - - - + "collection.form.title": "Nom", // "collection.page.browse.recent.head": "Recent Submissions", - // TODO New key - Add a translation - "collection.page.browse.recent.head": "Recent Submissions", - + "collection.page.browse.recent.head": "Dépôts récents", // "collection.page.browse.recent.empty": "No items to show", - // TODO New key - Add a translation - "collection.page.browse.recent.empty": "No items to show", - + "collection.page.browse.recent.empty": "Aucun dépôt disponible", // "collection.page.handle": "Permanent URI for this collection", - // TODO New key - Add a translation - "collection.page.handle": "Permanent URI for this collection", - + "collection.page.handle": "URI permanent de cette Collection", // "collection.page.license": "License", - // TODO New key - Add a translation - "collection.page.license": "License", - + "collection.page.license": "Licence", // "collection.page.news": "News", - // TODO New key - Add a translation - "collection.page.news": "News", - - + "collection.page.news": "Nouvelles", // "collection.select.confirm": "Confirm selected", - // TODO New key - Add a translation - "collection.select.confirm": "Confirm selected", - + "collection.select.confirm": "Confirmer sélection", // "collection.select.empty": "No collections to show", - // TODO New key - Add a translation - "collection.select.empty": "No collections to show", - + "collection.select.empty": "Aucune Collection disponible", // "collection.select.table.title": "Title", - // TODO New key - Add a translation - "collection.select.table.title": "Title", - - + "collection.select.table.title": "Titre", // "community.create.head": "Create a Community", - // TODO New key - Add a translation - "community.create.head": "Create a Community", - + "community.create.head": "Créer une Communauté", // "community.create.sub-head": "Create a Sub-Community for Community {{ parent }}", - // TODO New key - Add a translation - "community.create.sub-head": "Create a Sub-Community for Community {{ parent }}", + "community.create.sub-head": "Créer une Sous-Communauté pour la Communauté {{ parent }}", // "community.delete.cancel": "Cancel", - // TODO New key - Add a translation - "community.delete.cancel": "Cancel", - + "community.delete.cancel": "Annuler", // "community.delete.confirm": "Confirm", - // TODO New key - Add a translation - "community.delete.confirm": "Confirm", - + "community.delete.confirm": "Confirmer", // "community.delete.head": "Delete Community", - // TODO New key - Add a translation - "community.delete.head": "Delete Community", - + "community.delete.head": "Supprimer Communauté", // "community.delete.notification.fail": "Community could not be deleted", - // TODO New key - Add a translation - "community.delete.notification.fail": "Community could not be deleted", - + "community.delete.notification.fail": "La Communauté n'a pas pu être supprimée", // "community.delete.notification.success": "Successfully deleted community", - // TODO New key - Add a translation - "community.delete.notification.success": "Successfully deleted community", - + "community.delete.notification.success": "La Communauté a été supprimée avec succès", // "community.delete.text": "Are you sure you want to delete community \"{{ dso }}\"", - // TODO New key - Add a translation - "community.delete.text": "Are you sure you want to delete community \"{{ dso }}\"", + "community.delete.text": "Êtes-vous sûr(e) de vouloir supprimer la Communauté « {{ dso }} »", // "community.edit.delete": "Delete this community", - // TODO New key - Add a translation - "community.edit.delete": "Delete this community", - + "community.edit.delete": "Supprimer cette Communauté", // "community.edit.head": "Edit Community", - // TODO New key - Add a translation - "community.edit.head": "Edit Community", + "community.edit.head": "Éditer Communauté", // "community.form.abstract": "Short Description", - // TODO New key - Add a translation - "community.form.abstract": "Short Description", - + "community.form.abstract": "Description succincte", // "community.form.description": "Introductory text (HTML)", - // TODO New key - Add a translation - "community.form.description": "Introductory text (HTML)", - + "community.form.description": "Texte d'introduction (HTML)", // "community.form.errors.title.required": "Please enter a community name", - // TODO New key - Add a translation - "community.form.errors.title.required": "Please enter a community name", - + "community.form.errors.title.required": "Veuillez entrer un nom de Communauté", // "community.form.rights": "Copyright text (HTML)", - // TODO New key - Add a translation - "community.form.rights": "Copyright text (HTML)", - + "community.form.rights": "Texte de copyright (HTML)", // "community.form.tableofcontents": "News (HTML)", - // TODO New key - Add a translation - "community.form.tableofcontents": "News (HTML)", - + "community.form.tableofcontents": "Nouvelles (HTML)", // "community.form.title": "Name", - // TODO New key - Add a translation - "community.form.title": "Name", + "community.form.title": "Nom", // "community.page.handle": "Permanent URI for this community", - // TODO New key - Add a translation - "community.page.handle": "Permanent URI for this community", - + "community.page.handle": "URI permanent de cette Communauté", // "community.page.license": "License", - // TODO New key - Add a translation - "community.page.license": "License", - + "community.page.license": "Licence", // "community.page.news": "News", - // TODO New key - Add a translation - "community.page.news": "News", + "community.page.news": "Nouvelles", // "community.all-lists.head": "Subcommunities and Collections", - // TODO New key - Add a translation - "community.all-lists.head": "Subcommunities and Collections", - + "community.all-lists.head": "Sous-Communautés et Collections", // "community.sub-collection-list.head": "Collections of this Community", - // TODO New key - Add a translation - "community.sub-collection-list.head": "Collections of this Community", - + "community.sub-collection-list.head": "Collections au sein de cette Communauté", // "community.sub-community-list.head": "Communities of this Community", - // TODO New key - Add a translation - "community.sub-community-list.head": "Communities of this Community", - - + "community.sub-community-list.head": "Sous-Communautés au sein de cette Communauté", // "dso-selector.create.collection.head": "New collection", - // TODO New key - Add a translation - "dso-selector.create.collection.head": "New collection", - + "dso-selector.create.collection.head": "Nouvelle Collection", // "dso-selector.create.community.head": "New community", - // TODO New key - Add a translation - "dso-selector.create.community.head": "New community", - + "dso-selector.create.community.head": "Nouvelle Communauté", // "dso-selector.create.community.sub-level": "Create a new community in", - // TODO New key - Add a translation - "dso-selector.create.community.sub-level": "Create a new community in", - + "dso-selector.create.community.sub-level": "Créer une nouvelle Communauté dans", // "dso-selector.create.community.top-level": "Create a new top-level community", - // TODO New key - Add a translation - "dso-selector.create.community.top-level": "Create a new top-level community", - + "dso-selector.create.community.top-level": "Créer une nouvelle Communauté de 1er niveau", // "dso-selector.create.item.head": "New item", - // TODO New key - Add a translation - "dso-selector.create.item.head": "New item", - + "dso-selector.create.item.head": "Nouvel Item", // "dso-selector.edit.collection.head": "Edit collection", - // TODO New key - Add a translation - "dso-selector.edit.collection.head": "Edit collection", - + "dso-selector.edit.collection.head": "Éditer Collection", // "dso-selector.edit.community.head": "Edit community", - // TODO New key - Add a translation - "dso-selector.edit.community.head": "Edit community", - + "dso-selector.edit.community.head": "Éditer Communauté", // "dso-selector.edit.item.head": "Edit item", - // TODO New key - Add a translation - "dso-selector.edit.item.head": "Edit item", + "dso-selector.edit.item.head": "Éditer Item", // "dso-selector.no-results": "No {{ type }} found", - // TODO New key - Add a translation - "dso-selector.no-results": "No {{ type }} found", - + "dso-selector.no-results": "Aucun {{ type }} trouvé", // "dso-selector.placeholder": "Search for a {{ type }}", - // TODO New key - Add a translation - "dso-selector.placeholder": "Search for a {{ type }}", - - + "dso-selector.placeholder": "Rechercher un(e) {{ type }}", // "error.browse-by": "Error fetching items", - // TODO New key - Add a translation - "error.browse-by": "Error fetching items", - + "error.browse-by": "Erreur lors de la récupération des Items", // "error.collection": "Error fetching collection", - // TODO New key - Add a translation - "error.collection": "Error fetching collection", - + "error.collection": "Erreur lors de la récupération de la Collection", // "error.collections": "Error fetching collections", - // TODO New key - Add a translation - "error.collections": "Error fetching collections", - + "error.collections": "Erreur lors de la récupération des Collections", // "error.community": "Error fetching community", - // TODO New key - Add a translation - "error.community": "Error fetching community", - + "error.community": "Erreur lors de la récupération de la Communauté", // "error.identifier": "No item found for the identifier", - // TODO New key - Add a translation - "error.identifier": "No item found for the identifier", - + "error.identifier": "Aucun objet correspondant à cet identifiant", // "error.default": "Error", - // TODO New key - Add a translation - "error.default": "Error", - + "error.default": "Erreur", // "error.item": "Error fetching item", - // TODO New key - Add a translation - "error.item": "Error fetching item", - + "error.item": "Erreur lors de la récupération de l'Item", // "error.items": "Error fetching items", - // TODO New key - Add a translation - "error.items": "Error fetching items", - + "error.items": "Erreur lors de la récupération des Items", // "error.objects": "Error fetching objects", - // TODO New key - Add a translation - "error.objects": "Error fetching objects", - + "error.objects": "Erreur lors de la récupération des Objets", // "error.recent-submissions": "Error fetching recent submissions", - // TODO New key - Add a translation - "error.recent-submissions": "Error fetching recent submissions", - + "error.recent-submissions": "Erreur lors de la récupération des dépôts récents", // "error.search-results": "Error fetching search results", - // TODO New key - Add a translation - "error.search-results": "Error fetching search results", - + "error.search-results": "Erreur lors de la récupération des résultats de recherche", // "error.sub-collections": "Error fetching sub-collections", - // TODO New key - Add a translation - "error.sub-collections": "Error fetching sub-collections", - + "error.sub-collections": "Erreur lors de la récupération des Sous-Collections", // "error.sub-communities": "Error fetching sub-communities", - // TODO New key - Add a translation - "error.sub-communities": "Error fetching sub-communities", - + "error.sub-communities": "Erreur lors de la récupération des Sous-Communautés", // "error.submission.sections.init-form-error": "An error occurred during section initialize, please check your input-form configuration. Details are below :

", - // TODO New key - Add a translation - "error.submission.sections.init-form-error": "An error occurred during section initialize, please check your input-form configuration. Details are below :

", - + "error.submission.sections.init-form-error": "Une erreur s'est produite dans la section d'initialisation, veuillez vérifier la configuration de votre formulaire de dépôt. Plus de détails disponibles ci-dessous :

", // "error.top-level-communities": "Error fetching top-level communities", - // TODO New key - Add a translation - "error.top-level-communities": "Error fetching top-level communities", - + "error.top-level-communities": "Erreur lors de la récupération des Communautés de 1er niveau", // "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.", - // TODO New key - Add a translation - "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.license.notgranted": "Vous devez accepter cette licence pour terminer votre dépôt. Si vous êtes dans l'incapacité d'accepter cette licence actuellement, vous pouvez sauvegarder votre dépôt et y revenir ultérieurement ou le supprimer.", // "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", - // TODO New key - Add a translation - "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", - - + "error.validation.pattern": "Cette entrée est invalide en vertu du pattern : {{ pattern }}.", // "footer.copyright": "copyright © 2002-{{ year }}", // TODO New key - Add a translation - "footer.copyright": "copyright © 2002-{{ year }}", - + "footer.copyright": "Copyright © 2002-{{ year }}", // "footer.link.dspace": "DSpace software", - // TODO New key - Add a translation "footer.link.dspace": "DSpace software", - // "footer.link.duraspace": "DuraSpace", - // TODO New key - Add a translation "footer.link.duraspace": "DuraSpace", - - // "form.cancel": "Cancel", - // TODO New key - Add a translation - "form.cancel": "Cancel", - + "form.cancel": "Annuler", // "form.clear": "Clear", - // TODO New key - Add a translation - "form.clear": "Clear", - + "form.clear": "Effacer", // "form.clear-help": "Click here to remove the selected value", - // TODO New key - Add a translation - "form.clear-help": "Click here to remove the selected value", - + "form.clear-help": "Cliquer ici pour supprimer la valeur sélectionnée", // "form.edit": "Edit", - // TODO New key - Add a translation - "form.edit": "Edit", - + "form.edit": "Éditer", // "form.edit-help": "Click here to edit the selected value", - // TODO New key - Add a translation - "form.edit-help": "Click here to edit the selected value", - + "form.edit-help": "Cliquer ici pour éditer la valeur sélectionnée", // "form.first-name": "First name", - // TODO New key - Add a translation - "form.first-name": "First name", - + "form.first-name": "Prénom", // "form.group-collapse": "Collapse", - // TODO New key - Add a translation - "form.group-collapse": "Collapse", - + "form.group-collapse": "Réduire", // "form.group-collapse-help": "Click here to collapse", - // TODO New key - Add a translation - "form.group-collapse-help": "Click here to collapse", - + "form.group-collapse-help": "Cliquer ici pour réduire", // "form.group-expand": "Expand", - // TODO New key - Add a translation - "form.group-expand": "Expand", - + "form.group-expand": "Développer", // "form.group-expand-help": "Click here to expand and add more elements", - // TODO New key - Add a translation - "form.group-expand-help": "Click here to expand and add more elements", - + "form.group-expand-help": "Cliquer ici pour développer et ajouter davantage d'éléments", // "form.last-name": "Last name", - // TODO New key - Add a translation - "form.last-name": "Last name", - + "form.last-name": "Nom", // "form.loading": "Loading...", - // TODO New key - Add a translation - "form.loading": "Loading...", - + "form.loading": "En cours de chargement...", // "form.no-results": "No results found", - // TODO New key - Add a translation - "form.no-results": "No results found", - + "form.no-results": "Aucun résultat disponible", // "form.no-value": "No value entered", - // TODO New key - Add a translation - "form.no-value": "No value entered", - + "form.no-value": "Aucune valeur entrée", // "form.other-information": {}, - // TODO New key - Add a translation "form.other-information": {}, - // "form.remove": "Remove", - // TODO New key - Add a translation - "form.remove": "Remove", - + "form.remove": "Supprimer", // "form.save": "Save", - // TODO New key - Add a translation - "form.save": "Save", - + "form.save": "Sauvegarder", // "form.save-help": "Save changes", - // TODO New key - Add a translation - "form.save-help": "Save changes", - + "form.save-help": "Sauvegarder changements", // "form.search": "Search", - // TODO New key - Add a translation - "form.search": "Search", - + "form.search": "Rechercher", // "form.search-help": "Click here to looking for an existing correspondence", - // TODO New key - Add a translation - "form.search-help": "Click here to looking for an existing correspondence", - + "form.search-help": "Cliquer ici pour rechercher une correspondance existante", // "form.submit": "Submit", - // TODO New key - Add a translation - "form.submit": "Submit", - - + "form.submit": "Déposer", // "home.description": "", - // TODO New key - Add a translation "home.description": "", - // "home.title": "DSpace Angular :: Home", - // TODO New key - Add a translation - "home.title": "DSpace Angular :: Home", - + "home.title": "DSpace Angular :: Home", // "home.top-level-communities.head": "Communities in DSpace", - // TODO New key - Add a translation - "home.top-level-communities.head": "Communities in DSpace", - + "home.top-level-communities.head": "Communautés DSpace", // "home.top-level-communities.help": "Select a community to browse its collections.", - // TODO New key - Add a translation - "home.top-level-communities.help": "Select a community to browse its collections.", - - + "home.top-level-communities.help": "Sélectionner une Communauté pour parcourir les Collections sous-jacentes.", // "item.edit.delete.cancel": "Cancel", - // TODO New key - Add a translation - "item.edit.delete.cancel": "Cancel", - + "item.edit.delete.cancel": "Annuler", // "item.edit.delete.confirm": "Delete", - // TODO New key - Add a translation - "item.edit.delete.confirm": "Delete", - + "item.edit.delete.confirm": "Supprimer", // "item.edit.delete.description": "Are you sure this item should be completely deleted? Caution: At present, no tombstone would be left.", - // TODO New key - Add a translation - "item.edit.delete.description": "Are you sure this item should be completely deleted? Caution: At present, no tombstone would be left.", - + "item.edit.delete.description": "Êtes-vous certain de vouloir complètement supprimer cet Item ? Attention, il n'y aura pas de retour en arrière possible.", // "item.edit.delete.error": "An error occurred while deleting the item", - // TODO New key - Add a translation - "item.edit.delete.error": "An error occurred while deleting the item", - + "item.edit.delete.error": "Une erreur s'est produite lors de la suppression de l'Item", // "item.edit.delete.header": "Delete item: {{ id }}", - // TODO New key - Add a translation - "item.edit.delete.header": "Delete item: {{ id }}", - + "item.edit.delete.header": "Supprimer Item : {{ id }}", // "item.edit.delete.success": "The item has been deleted", - // TODO New key - Add a translation - "item.edit.delete.success": "The item has been deleted", - + "item.edit.delete.success": "L'Item a été supprimé", // "item.edit.head": "Edit Item", - // TODO New key - Add a translation - "item.edit.head": "Edit Item", - - - + "item.edit.head": "Éditer Item", // "item.edit.item-mapper.buttons.add": "Map item to selected collections", - // TODO New key - Add a translation - "item.edit.item-mapper.buttons.add": "Map item to selected collections", - + "item.edit.item-mapper.buttons.add": "Associer Item aux Collections sélectionnées", // "item.edit.item-mapper.buttons.remove": "Remove item's mapping for selected collections", - // TODO New key - Add a translation - "item.edit.item-mapper.buttons.remove": "Remove item's mapping for selected collections", - + "item.edit.item-mapper.buttons.remove": "Supprimer l'association d'Item pour les Collections sélectionnées", // "item.edit.item-mapper.cancel": "Cancel", - // TODO New key - Add a translation - "item.edit.item-mapper.cancel": "Cancel", - + "item.edit.item-mapper.cancel": "Annuler", // "item.edit.item-mapper.description": "This is the item mapper tool that allows administrators to map this item to other collections. You can search for collections and map them, or browse the list of collections the item is currently mapped to.", - // TODO New key - Add a translation - "item.edit.item-mapper.description": "This is the item mapper tool that allows administrators to map this item to other collections. You can search for collections and map them, or browse the list of collections the item is currently mapped to.", - + "item.edit.item-mapper.description": "L'Item Mapper permet aux administrateurs de Collection d'associer des Items avec d'autres Collections. Vous pouvez rechercher des Collections et les associer ou parcourir la liste des Collections auxquelles l'Item est actuellement associé.", // "item.edit.item-mapper.head": "Item Mapper - Map Item to Collections", - // TODO New key - Add a translation - "item.edit.item-mapper.head": "Item Mapper - Map Item to Collections", - + "item.edit.item-mapper.head": "Item Mapper - Associer Item avec Collections", // "item.edit.item-mapper.item": "Item: \"{{name}}\"", - // TODO New key - Add a translation - "item.edit.item-mapper.item": "Item: \"{{name}}\"", - + "item.edit.item-mapper.item": "Item : « {{name}} »", // "item.edit.item-mapper.no-search": "Please enter a query to search", - // TODO New key - Add a translation - "item.edit.item-mapper.no-search": "Please enter a query to search", - + "item.edit.item-mapper.no-search": "Veuillez entrer un élément à rechercher", // "item.edit.item-mapper.notifications.add.error.content": "Errors occurred for mapping of item to {{amount}} collections.", - // TODO New key - Add a translation - "item.edit.item-mapper.notifications.add.error.content": "Errors occurred for mapping of item to {{amount}} collections.", - + "item.edit.item-mapper.notifications.add.error.content": "Des erreurs se sont produites à l'association de l'Item avec {{amount}} Collections.", // "item.edit.item-mapper.notifications.add.error.head": "Mapping errors", - // TODO New key - Add a translation - "item.edit.item-mapper.notifications.add.error.head": "Mapping errors", - + "item.edit.item-mapper.notifications.add.error.head": "Erreurs d'association", // "item.edit.item-mapper.notifications.add.success.content": "Successfully mapped item to {{amount}} collections.", - // TODO New key - Add a translation - "item.edit.item-mapper.notifications.add.success.content": "Successfully mapped item to {{amount}} collections.", - + "item.edit.item-mapper.notifications.add.success.content": "Item associé avec succès avec {{amount}} Collections.", // "item.edit.item-mapper.notifications.add.success.head": "Mapping completed", - // TODO New key - Add a translation - "item.edit.item-mapper.notifications.add.success.head": "Mapping completed", - + "item.edit.item-mapper.notifications.add.success.head": "Association terminée", // "item.edit.item-mapper.notifications.remove.error.content": "Errors occurred for the removal of the mapping to {{amount}} collections.", - // TODO New key - Add a translation - "item.edit.item-mapper.notifications.remove.error.content": "Errors occurred for the removal of the mapping to {{amount}} collections.", - + "item.edit.item-mapper.notifications.remove.error.content": "Des erreurs se sont produites à la suppression de l'association de {{amount}} Collections.", // "item.edit.item-mapper.notifications.remove.error.head": "Removal of mapping errors", - // TODO New key - Add a translation - "item.edit.item-mapper.notifications.remove.error.head": "Removal of mapping errors", - + "item.edit.item-mapper.notifications.remove.error.head": "Erreurs à la suppression d'association", // "item.edit.item-mapper.notifications.remove.success.content": "Successfully removed mapping of item to {{amount}} collections.", - // TODO New key - Add a translation - "item.edit.item-mapper.notifications.remove.success.content": "Successfully removed mapping of item to {{amount}} collections.", - + "item.edit.item-mapper.notifications.remove.success.content": "Association de l'item avec {{amount}} Collections supprimée avec succès.", // "item.edit.item-mapper.notifications.remove.success.head": "Removal of mapping completed", - // TODO New key - Add a translation - "item.edit.item-mapper.notifications.remove.success.head": "Removal of mapping completed", - + "item.edit.item-mapper.notifications.remove.success.head": "Suppression d'association terminée", // "item.edit.item-mapper.tabs.browse": "Browse mapped collections", - // TODO New key - Add a translation - "item.edit.item-mapper.tabs.browse": "Browse mapped collections", - + "item.edit.item-mapper.tabs.browse": "Parcourir Collections associées", // "item.edit.item-mapper.tabs.map": "Map new collections", - // TODO New key - Add a translation - "item.edit.item-mapper.tabs.map": "Map new collections", - - + "item.edit.item-mapper.tabs.map": "Associer nouvelles Collections", // "item.edit.metadata.add-button": "Add", - // TODO New key - Add a translation - "item.edit.metadata.add-button": "Add", - + "item.edit.metadata.add-button": "Ajouter", // "item.edit.metadata.discard-button": "Discard", - // TODO New key - Add a translation - "item.edit.metadata.discard-button": "Discard", - + "item.edit.metadata.discard-button": "Annuler", // "item.edit.metadata.edit.buttons.edit": "Edit", - // TODO New key - Add a translation - "item.edit.metadata.edit.buttons.edit": "Edit", - + "item.edit.metadata.edit.buttons.edit": "Éditer", // "item.edit.metadata.edit.buttons.remove": "Remove", - // TODO New key - Add a translation - "item.edit.metadata.edit.buttons.remove": "Remove", - + "item.edit.metadata.edit.buttons.remove": "Supprimer", // "item.edit.metadata.edit.buttons.undo": "Undo changes", - // TODO New key - Add a translation - "item.edit.metadata.edit.buttons.undo": "Undo changes", - + "item.edit.metadata.edit.buttons.undo": "Annuler changements", // "item.edit.metadata.edit.buttons.unedit": "Stop editing", - // TODO New key - Add a translation - "item.edit.metadata.edit.buttons.unedit": "Stop editing", - + "item.edit.metadata.edit.buttons.unedit": "Stopper l'édition", // "item.edit.metadata.headers.edit": "Edit", - // TODO New key - Add a translation - "item.edit.metadata.headers.edit": "Edit", - + "item.edit.metadata.headers.edit": "Éditer", // "item.edit.metadata.headers.field": "Field", - // TODO New key - Add a translation - "item.edit.metadata.headers.field": "Field", - + "item.edit.metadata.headers.field": "Champ", // "item.edit.metadata.headers.language": "Lang", - // TODO New key - Add a translation - "item.edit.metadata.headers.language": "Lang", - + "item.edit.metadata.headers.language": "Langue", // "item.edit.metadata.headers.value": "Value", - // TODO New key - Add a translation - "item.edit.metadata.headers.value": "Value", - + "item.edit.metadata.headers.value": "Valeur", // "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", - // TODO New key - Add a translation - "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", - + "item.edit.metadata.metadatafield.invalid": "Veuillez choisir un champ de métadonnée valide", // "item.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", - // TODO New key - Add a translation - "item.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", - + "item.edit.metadata.notifications.discarded.content": "Vos changements ont été annulés. Pour rétablir vos changements, cliquer sur le bouton 'Rétablir'", // "item.edit.metadata.notifications.discarded.title": "Changed discarded", - // TODO New key - Add a translation - "item.edit.metadata.notifications.discarded.title": "Changed discarded", - + "item.edit.metadata.notifications.discarded.title": "Changements annulés", // "item.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", - // TODO New key - Add a translation - "item.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", - + "item.edit.metadata.notifications.invalid.content": "Vos changements n'ont pas été sauvegardés. Veuillez vérifier que tous les champs sont valides avant de sauvegarder.", // "item.edit.metadata.notifications.invalid.title": "Metadata invalid", - // TODO New key - Add a translation - "item.edit.metadata.notifications.invalid.title": "Metadata invalid", - + "item.edit.metadata.notifications.invalid.title": "Métadonnée invalide", // "item.edit.metadata.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", - // TODO New key - Add a translation - "item.edit.metadata.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", - + "item.edit.metadata.notifications.outdated.content": "L'Item sur lequel vous êtes en train de travailler a été édité par un autre utilisateur. Vos changements en cours sont ignorés pour éviter des conflits", // "item.edit.metadata.notifications.outdated.title": "Changed outdated", - // TODO New key - Add a translation - "item.edit.metadata.notifications.outdated.title": "Changed outdated", - + "item.edit.metadata.notifications.outdated.title": "Changements obsolètes", // "item.edit.metadata.notifications.saved.content": "Your changes to this item's metadata were saved.", - // TODO New key - Add a translation - "item.edit.metadata.notifications.saved.content": "Your changes to this item's metadata were saved.", - + "item.edit.metadata.notifications.saved.content": "Vos modifications de métadonnées n'ont pas été sauvegardées.", // "item.edit.metadata.notifications.saved.title": "Metadata saved", - // TODO New key - Add a translation - "item.edit.metadata.notifications.saved.title": "Metadata saved", - + "item.edit.metadata.notifications.saved.title": "Métadonnée sauvegardée", // "item.edit.metadata.reinstate-button": "Undo", - // TODO New key - Add a translation - "item.edit.metadata.reinstate-button": "Undo", - + "item.edit.metadata.reinstate-button": "Rétablir", // "item.edit.metadata.save-button": "Save", - // TODO New key - Add a translation - "item.edit.metadata.save-button": "Save", - - + "item.edit.metadata.save-button": "Sauvegarder", // "item.edit.modify.overview.field": "Field", - // TODO New key - Add a translation - "item.edit.modify.overview.field": "Field", - + "item.edit.modify.overview.field": "Champ", // "item.edit.modify.overview.language": "Language", - // TODO New key - Add a translation - "item.edit.modify.overview.language": "Language", - + "item.edit.modify.overview.language": "Langue", // "item.edit.modify.overview.value": "Value", - // TODO New key - Add a translation - "item.edit.modify.overview.value": "Value", - - + "item.edit.modify.overview.value": "Valeur", // "item.edit.move.cancel": "Cancel", - // TODO New key - Add a translation - "item.edit.move.cancel": "Cancel", - + "item.edit.move.cancel": "Annuler", // "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.", - // TODO New key - Add a translation - "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.description": "Sélectionner la Collection dans laquelle vous souhaitez transférer l'Item. Pour limiter la liste de Collections affichées, vous pouvez utiliser le champ de recherche.", // "item.edit.move.error": "An error occured when attempting to move the item", - // TODO New key - Add a translation - "item.edit.move.error": "An error occured when attempting to move the item", - + "item.edit.move.error": "Une erreur s'est produite lors du transfert de l'Item", // "item.edit.move.head": "Move item: {{id}}", - // TODO New key - Add a translation - "item.edit.move.head": "Move item: {{id}}", - + "item.edit.move.head": "Transférer item : {{id}}", // "item.edit.move.inheritpolicies.checkbox": "Inherit policies", - // TODO New key - Add a translation - "item.edit.move.inheritpolicies.checkbox": "Inherit policies", - + "item.edit.move.inheritpolicies.checkbox": "Récupérer règles", // "item.edit.move.inheritpolicies.description": "Inherit the default policies of the destination collection", - // TODO New key - Add a translation - "item.edit.move.inheritpolicies.description": "Inherit the default policies of the destination collection", - + "item.edit.move.inheritpolicies.description": "Récupérer les règles par défaut de la Collection de destination", // "item.edit.move.move": "Move", - // TODO New key - Add a translation - "item.edit.move.move": "Move", - + "item.edit.move.move": "Transférer", // "item.edit.move.processing": "Moving...", - // TODO New key - Add a translation - "item.edit.move.processing": "Moving...", - + "item.edit.move.processing": "En cours de transfert...", // "item.edit.move.search.placeholder": "Enter a search query to look for collections", - // TODO New key - Add a translation - "item.edit.move.search.placeholder": "Enter a search query to look for collections", - + "item.edit.move.search.placeholder": "Rechercher Collection", // "item.edit.move.success": "The item has been moved succesfully", - // TODO New key - Add a translation - "item.edit.move.success": "The item has been moved succesfully", - + "item.edit.move.success": "L'Item a été transféré avec succès", // "item.edit.move.title": "Move item", - // TODO New key - Add a translation - "item.edit.move.title": "Move item", - - + "item.edit.move.title": "Transférer item", // "item.edit.private.cancel": "Cancel", - // TODO New key - Add a translation - "item.edit.private.cancel": "Cancel", - + "item.edit.private.cancel": "Annuler", // "item.edit.private.confirm": "Make it Private", - // TODO New key - Add a translation - "item.edit.private.confirm": "Make it Private", - + "item.edit.private.confirm": "Définir comme Privé", // "item.edit.private.description": "Are you sure this item should be made private in the archive?", - // TODO New key - Add a translation - "item.edit.private.description": "Are you sure this item should be made private in the archive?", - + "item.edit.private.description": "Êtes-vous certain de vouloir définir cet Item comme Privé ?", // "item.edit.private.error": "An error occurred while making the item private", - // TODO New key - Add a translation - "item.edit.private.error": "An error occurred while making the item private", - + "item.edit.private.error": "Une erreur s'est produite lors de la définition de l'Item en tant qu'Item Privé", // "item.edit.private.header": "Make item private: {{ id }}", - // TODO New key - Add a translation - "item.edit.private.header": "Make item private: {{ id }}", - + "item.edit.private.header": "Définir Item comme Privé : {{ id }}", // "item.edit.private.success": "The item is now private", - // TODO New key - Add a translation - "item.edit.private.success": "The item is now private", - - + "item.edit.private.success": "L'Item est désormais Privé", // "item.edit.public.cancel": "Cancel", - // TODO New key - Add a translation - "item.edit.public.cancel": "Cancel", - + "item.edit.public.cancel": "Annuler", // "item.edit.public.confirm": "Make it Public", - // TODO New key - Add a translation - "item.edit.public.confirm": "Make it Public", - + "item.edit.public.confirm": "Définir comme Public", // "item.edit.public.description": "Are you sure this item should be made public in the archive?", - // TODO New key - Add a translation - "item.edit.public.description": "Are you sure this item should be made public in the archive?", - + "item.edit.public.description": "Êtes-vous certain de vouloir définir cet Item comme Public ?", // "item.edit.public.error": "An error occurred while making the item public", - // TODO New key - Add a translation - "item.edit.public.error": "An error occurred while making the item public", - + "item.edit.public.error": "Une erreur s'est produite lors e la définition de l'Item en tant qu'Item Public", // "item.edit.public.header": "Make item public: {{ id }}", - // TODO New key - Add a translation - "item.edit.public.header": "Make item public: {{ id }}", - + "item.edit.public.header": "Définir Item comme Public : {{ id }}", // "item.edit.public.success": "The item is now public", - // TODO New key - Add a translation - "item.edit.public.success": "The item is now public", - - + "item.edit.public.success": "L'Item est désormais Public", // "item.edit.reinstate.cancel": "Cancel", - // TODO New key - Add a translation - "item.edit.reinstate.cancel": "Cancel", - + "item.edit.reinstate.cancel": "Annuler", // "item.edit.reinstate.confirm": "Reinstate", - // TODO New key - Add a translation - "item.edit.reinstate.confirm": "Reinstate", - + "item.edit.reinstate.confirm": "Réintégrer", // "item.edit.reinstate.description": "Are you sure this item should be reinstated to the archive?", - // TODO New key - Add a translation - "item.edit.reinstate.description": "Are you sure this item should be reinstated to the archive?", - + "item.edit.reinstate.description": "Êtes-vous certain de vouloir réintégrer cet Item ?", // "item.edit.reinstate.error": "An error occurred while reinstating the item", - // TODO New key - Add a translation - "item.edit.reinstate.error": "An error occurred while reinstating the item", - + "item.edit.reinstate.error": "Une erreur s'est produite lors de la réintégration de l'Item", // "item.edit.reinstate.header": "Reinstate item: {{ id }}", - // TODO New key - Add a translation - "item.edit.reinstate.header": "Reinstate item: {{ id }}", - + "item.edit.reinstate.header": "Réintégrer Item : {{ id }}", // "item.edit.reinstate.success": "The item was reinstated successfully", - // TODO New key - Add a translation - "item.edit.reinstate.success": "The item was reinstated successfully", - - + "item.edit.reinstate.success": "L'Item a été réintégré avec succès", // "item.edit.relationships.discard-button": "Discard", - // TODO New key - Add a translation - "item.edit.relationships.discard-button": "Discard", - + "item.edit.relationships.discard-button": "Annuler", // "item.edit.relationships.edit.buttons.remove": "Remove", - // TODO New key - Add a translation - "item.edit.relationships.edit.buttons.remove": "Remove", - + "item.edit.relationships.edit.buttons.remove": "Supprimer", // "item.edit.relationships.edit.buttons.undo": "Undo changes", - // TODO New key - Add a translation - "item.edit.relationships.edit.buttons.undo": "Undo changes", - + "item.edit.relationships.edit.buttons.undo": "Annuler changements", // "item.edit.relationships.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", - // TODO New key - Add a translation - "item.edit.relationships.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", - + "item.edit.relationships.notifications.discarded.content": "Vos changements ont été annulés. Pour rétablir vos changements, cliquer sur le bouton 'Rétablir'", // "item.edit.relationships.notifications.discarded.title": "Changes discarded", - // TODO New key - Add a translation - "item.edit.relationships.notifications.discarded.title": "Changes discarded", - + "item.edit.relationships.notifications.discarded.title": "Changements annulés", // "item.edit.relationships.notifications.failed.title": "Error deleting relationship", - // TODO New key - Add a translation - "item.edit.relationships.notifications.failed.title": "Error deleting relationship", - + "item.edit.relationships.notifications.failed.title": "Erreur lors de la suppression de la Relation", // "item.edit.relationships.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", - // TODO New key - Add a translation - "item.edit.relationships.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", - + "item.edit.relationships.notifications.outdated.content": "L'Item sur lequel vous êtes en train de travailler a été édité par un autre utilisateur. Vos changements en cours sont ignorés pour éviter des conflits.", // "item.edit.relationships.notifications.outdated.title": "Changes outdated", - // TODO New key - Add a translation - "item.edit.relationships.notifications.outdated.title": "Changes outdated", - + "item.edit.relationships.notifications.outdated.title": "Changements obsolètes", // "item.edit.relationships.notifications.saved.content": "Your changes to this item's relationships were saved.", - // TODO New key - Add a translation - "item.edit.relationships.notifications.saved.content": "Your changes to this item's relationships were saved.", - + "item.edit.relationships.notifications.saved.content": "Vos changements aux Relations de l'Item ont été sauvegardés.", // "item.edit.relationships.notifications.saved.title": "Relationships saved", - // TODO New key - Add a translation - "item.edit.relationships.notifications.saved.title": "Relationships saved", - + "item.edit.relationships.notifications.saved.title": "Relations sauvegardées", // "item.edit.relationships.reinstate-button": "Undo", - // TODO New key - Add a translation - "item.edit.relationships.reinstate-button": "Undo", - + "item.edit.relationships.reinstate-button": "Rétablir", // "item.edit.relationships.save-button": "Save", - // TODO New key - Add a translation - "item.edit.relationships.save-button": "Save", - - - + "item.edit.relationships.save-button": "Sauvegarder", // "item.edit.tabs.bitstreams.head": "Item Bitstreams", - // TODO New key - Add a translation - "item.edit.tabs.bitstreams.head": "Item Bitstreams", - + "item.edit.tabs.bitstreams.head": "Bitstreams de l'Item", // "item.edit.tabs.bitstreams.title": "Item Edit - Bitstreams", - // TODO New key - Add a translation - "item.edit.tabs.bitstreams.title": "Item Edit - Bitstreams", - + "item.edit.tabs.bitstreams.title": "Édition Item - Bitstreams", // "item.edit.tabs.curate.head": "Curate", - // TODO New key - Add a translation - "item.edit.tabs.curate.head": "Curate", - + "item.edit.tabs.curate.head": "Gestion de contenu", // "item.edit.tabs.curate.title": "Item Edit - Curate", - // TODO New key - Add a translation - "item.edit.tabs.curate.title": "Item Edit - Curate", - + "item.edit.tabs.curate.title": "Édition Item - Gestion de contenu", // "item.edit.tabs.metadata.head": "Item Metadata", - // TODO New key - Add a translation - "item.edit.tabs.metadata.head": "Item Metadata", - - // "item.edit.tabs.metadata.title": "Item Edit - Metadata", - // TODO New key - Add a translation - "item.edit.tabs.metadata.title": "Item Edit - Metadata", - + "item.edit.tabs.metadata.head": "Métadonnées de l'Item", + // "item.edit.tabs.metadata.title": "Item Edit - Metadata", + "item.edit.tabs.metadata.title": "Édition Item - Métadonnées", // "item.edit.tabs.relationships.head": "Item Relationships", - // TODO New key - Add a translation - "item.edit.tabs.relationships.head": "Item Relationships", - + "item.edit.tabs.relationships.head": "Relations de l'Item", // "item.edit.tabs.relationships.title": "Item Edit - Relationships", - // TODO New key - Add a translation - "item.edit.tabs.relationships.title": "Item Edit - Relationships", - + "item.edit.tabs.relationships.title": "Édition Item - Relations", // "item.edit.tabs.status.buttons.authorizations.button": "Authorizations...", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.authorizations.button": "Authorizations...", - + "item.edit.tabs.status.buttons.authorizations.button": "Accès...", // "item.edit.tabs.status.buttons.authorizations.label": "Edit item's authorization policies", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.authorizations.label": "Edit item's authorization policies", - + "item.edit.tabs.status.buttons.authorizations.label": "Éditer les règles d'accès de l'Item", // "item.edit.tabs.status.buttons.delete.button": "Permanently delete", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.delete.button": "Permanently delete", - + "item.edit.tabs.status.buttons.delete.button": "Supprimer définitivement", // "item.edit.tabs.status.buttons.delete.label": "Completely expunge item", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.delete.label": "Completely expunge item", - + "item.edit.tabs.status.buttons.delete.label": "Supprimer l'Item définitivement", // "item.edit.tabs.status.buttons.mappedCollections.button": "Mapped collections", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.mappedCollections.button": "Mapped collections", - + "item.edit.tabs.status.buttons.mappedCollections.button": "Collections associées", // "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections", - + "item.edit.tabs.status.buttons.mappedCollections.label": "Gérer les Collections associées", // "item.edit.tabs.status.buttons.move.button": "Move...", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.move.button": "Move...", - + "item.edit.tabs.status.buttons.move.button": "Transférer...", // "item.edit.tabs.status.buttons.move.label": "Move item to another collection", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.move.label": "Move item to another collection", - + "item.edit.tabs.status.buttons.move.label": "Transférer l'Item dans une autre Collection", // "item.edit.tabs.status.buttons.private.button": "Make it private...", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.private.button": "Make it private...", - + "item.edit.tabs.status.buttons.private.button": "Définir comme privé...", // "item.edit.tabs.status.buttons.private.label": "Make item private", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.private.label": "Make item private", - + "item.edit.tabs.status.buttons.private.label": "Définir l'Item en tant qu'Item Privé", // "item.edit.tabs.status.buttons.public.button": "Make it public...", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.public.button": "Make it public...", - + "item.edit.tabs.status.buttons.public.button": "Définir comme public...", // "item.edit.tabs.status.buttons.public.label": "Make item public", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.public.label": "Make item public", - + "item.edit.tabs.status.buttons.public.label": "Définir l'Item en tant qu'Item public", // "item.edit.tabs.status.buttons.reinstate.button": "Reinstate...", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.reinstate.button": "Reinstate...", - + "item.edit.tabs.status.buttons.reinstate.button": "Réintégrer...", // "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository", - + "item.edit.tabs.status.buttons.reinstate.label": "Réintégrer l'Item", // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...", - + "item.edit.tabs.status.buttons.withdraw.button": "Retirer...", // "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository", - // TODO New key - Add a translation - "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository", - + "item.edit.tabs.status.buttons.withdraw.label": "Retirer l'Item", // "item.edit.tabs.status.description": "Welcome to the item management page. From here you can withdraw, reinstate, move or delete the item. You may also update or add new metadata / bitstreams on the other tabs.", - // TODO New key - Add a translation - "item.edit.tabs.status.description": "Welcome to the item management page. From here you can withdraw, reinstate, move or delete the item. You may also update or add new metadata / bitstreams on the other tabs.", - + "item.edit.tabs.status.description": "Bienvenue sur la page de gestion de l'Item. D'ici, vous pouvez retirer, réintégrer, transférer ou supprimer l'Item. Dans les autres onglets, vous pouvez également mettre à jour, ajouter ou supprimer des métadonnées et/ou bitstreams.", // "item.edit.tabs.status.head": "Item Status", - // TODO New key - Add a translation - "item.edit.tabs.status.head": "Item Status", - + "item.edit.tabs.status.head": "Statut Item", // "item.edit.tabs.status.labels.handle": "Handle", - // TODO New key - Add a translation "item.edit.tabs.status.labels.handle": "Handle", - // "item.edit.tabs.status.labels.id": "Item Internal ID", - // TODO New key - Add a translation - "item.edit.tabs.status.labels.id": "Item Internal ID", - + "item.edit.tabs.status.labels.id": "Identifiant interne de l'Item", // "item.edit.tabs.status.labels.itemPage": "Item Page", - // TODO New key - Add a translation - "item.edit.tabs.status.labels.itemPage": "Item Page", - + "item.edit.tabs.status.labels.itemPage": "Page de l'Item", // "item.edit.tabs.status.labels.lastModified": "Last Modified", - // TODO New key - Add a translation - "item.edit.tabs.status.labels.lastModified": "Last Modified", - + "item.edit.tabs.status.labels.lastModified": "Date de dernière modification", // "item.edit.tabs.status.title": "Item Edit - Status", - // TODO New key - Add a translation - "item.edit.tabs.status.title": "Item Edit - Status", - + "item.edit.tabs.status.title": "Édition Item - Statut", // "item.edit.tabs.view.head": "View Item", - // TODO New key - Add a translation - "item.edit.tabs.view.head": "View Item", - + "item.edit.tabs.view.head": "Voir Item", // "item.edit.tabs.view.title": "Item Edit - View", - // TODO New key - Add a translation - "item.edit.tabs.view.title": "Item Edit - View", - - - + "item.edit.tabs.view.title": "Édition Item - View", // "item.edit.withdraw.cancel": "Cancel", - // TODO New key - Add a translation - "item.edit.withdraw.cancel": "Cancel", - + "item.edit.withdraw.cancel": "Annuler", // "item.edit.withdraw.confirm": "Withdraw", - // TODO New key - Add a translation - "item.edit.withdraw.confirm": "Withdraw", - + "item.edit.withdraw.confirm": "Retirer", // "item.edit.withdraw.description": "Are you sure this item should be withdrawn from the archive?", - // TODO New key - Add a translation - "item.edit.withdraw.description": "Are you sure this item should be withdrawn from the archive?", - + "item.edit.withdraw.description": "Êtes-vous certain que cet Item doit être retiré du dépôt ?", // "item.edit.withdraw.error": "An error occurred while withdrawing the item", - // TODO New key - Add a translation - "item.edit.withdraw.error": "An error occurred while withdrawing the item", - + "item.edit.withdraw.error": "Une erreur s'est produite lors du retrait de l'Item", // "item.edit.withdraw.header": "Withdraw item: {{ id }}", - // TODO New key - Add a translation - "item.edit.withdraw.header": "Withdraw item: {{ id }}", - + "item.edit.withdraw.header": "Retrait item : {{ id }}", // "item.edit.withdraw.success": "The item was withdrawn successfully", - // TODO New key - Add a translation - "item.edit.withdraw.success": "The item was withdrawn successfully", - - + "item.edit.withdraw.success": "L'Item a été retiré avec succès", // "item.page.abstract": "Abstract", - // TODO New key - Add a translation - "item.page.abstract": "Abstract", - + "item.page.abstract": "Résumé", // "item.page.author": "Authors", - // TODO New key - Add a translation - "item.page.author": "Authors", - + "item.page.author": "Auteurs", // "item.page.citation": "Citation", - // TODO New key - Add a translation "item.page.citation": "Citation", - // "item.page.collections": "Collections", - // TODO New key - Add a translation "item.page.collections": "Collections", - // "item.page.date": "Date", - // TODO New key - Add a translation "item.page.date": "Date", - // "item.page.files": "Files", - // TODO New key - Add a translation - "item.page.files": "Files", - + "item.page.files": "Fichiers", // "item.page.filesection.description": "Description:", - // TODO New key - Add a translation - "item.page.filesection.description": "Description:", - + "item.page.filesection.description": "Description :", // "item.page.filesection.download": "Download", - // TODO New key - Add a translation - "item.page.filesection.download": "Download", - + "item.page.filesection.download": "Télécharger", // "item.page.filesection.format": "Format:", - // TODO New key - Add a translation - "item.page.filesection.format": "Format:", - + "item.page.filesection.format": "Format :", // "item.page.filesection.name": "Name:", - // TODO New key - Add a translation - "item.page.filesection.name": "Name:", - + "item.page.filesection.name": "Nom :", // "item.page.filesection.size": "Size:", - // TODO New key - Add a translation - "item.page.filesection.size": "Size:", - + "item.page.filesection.size": "Taille :", // "item.page.journal.search.title": "Articles in this journal", - // TODO New key - Add a translation - "item.page.journal.search.title": "Articles in this journal", - + "item.page.journal.search.title": "Articles dans ce Périodique", // "item.page.link.full": "Full item page", - // TODO New key - Add a translation - "item.page.link.full": "Full item page", - + "item.page.link.full": "Notice complète", // "item.page.link.simple": "Simple item page", - // TODO New key - Add a translation - "item.page.link.simple": "Simple item page", - + "item.page.link.simple": "Notice simple", // "item.page.person.search.title": "Articles by this author", - // TODO New key - Add a translation - "item.page.person.search.title": "Articles by this author", - + "item.page.person.search.title": "Articles de cet auteur", // "item.page.related-items.view-more": "View more", - // TODO New key - Add a translation - "item.page.related-items.view-more": "View more", - + "item.page.related-items.view-more": "Plus de résultats", // "item.page.related-items.view-less": "View less", - // TODO New key - Add a translation - "item.page.related-items.view-less": "View less", - + "item.page.related-items.view-less": "Moins de résultats", // "item.page.subject": "Keywords", - // TODO New key - Add a translation - "item.page.subject": "Keywords", - + "item.page.subject": "Mots-clés", // "item.page.uri": "URI", - // TODO New key - Add a translation "item.page.uri": "URI", - - // "item.select.confirm": "Confirm selected", - // TODO New key - Add a translation - "item.select.confirm": "Confirm selected", - + "item.select.confirm": "Confirmer sélection", // "item.select.empty": "No items to show", - // TODO New key - Add a translation - "item.select.empty": "No items to show", - + "item.select.empty": "Aucun Item à afficher", // "item.select.table.author": "Author", - // TODO New key - Add a translation - "item.select.table.author": "Author", - + "item.select.table.author": "Auteur", // "item.select.table.collection": "Collection", - // TODO New key - Add a translation "item.select.table.collection": "Collection", - // "item.select.table.title": "Title", - // TODO New key - Add a translation - "item.select.table.title": "Title", - - + "item.select.table.title": "Titre", // "journal.listelement.badge": "Journal", - // TODO New key - Add a translation - "journal.listelement.badge": "Journal", - + "journal.listelement.badge": "Périodique", // "journal.page.description": "Description", - // TODO New key - Add a translation "journal.page.description": "Description", - // "journal.page.editor": "Editor-in-Chief", - // TODO New key - Add a translation - "journal.page.editor": "Editor-in-Chief", - + "journal.page.editor": "Rédacteur en chef", // "journal.page.issn": "ISSN", - // TODO New key - Add a translation "journal.page.issn": "ISSN", - // "journal.page.publisher": "Publisher", - // TODO New key - Add a translation - "journal.page.publisher": "Publisher", - + "journal.page.publisher": "Éditeur", // "journal.page.titleprefix": "Journal: ", - // TODO New key - Add a translation - "journal.page.titleprefix": "Journal: ", - + "journal.page.titleprefix": "Périodique : ", // "journal.search.results.head": "Journal Search Results", - // TODO New key - Add a translation - "journal.search.results.head": "Journal Search Results", - + "journal.search.results.head": "Résultats de recherche Périodique", // "journal.search.title": "DSpace Angular :: Journal Search", - // TODO New key - Add a translation - "journal.search.title": "DSpace Angular :: Journal Search", - - - + "journal.search.title": "DSpace Angular :: Recherche Périodique", // "journalissue.listelement.badge": "Journal Issue", - // TODO New key - Add a translation - "journalissue.listelement.badge": "Journal Issue", - + "journalissue.listelement.badge": "Numéro de Périodique", // "journalissue.page.description": "Description", - // TODO New key - Add a translation "journalissue.page.description": "Description", - // "journalissue.page.issuedate": "Issue Date", - // TODO New key - Add a translation - "journalissue.page.issuedate": "Issue Date", - + "journalissue.page.issuedate": "Date de publication", // "journalissue.page.journal-issn": "Journal ISSN", - // TODO New key - Add a translation - "journalissue.page.journal-issn": "Journal ISSN", - + "journalissue.page.journal-issn": "ISSN du Périodique", // "journalissue.page.journal-title": "Journal Title", - // TODO New key - Add a translation - "journalissue.page.journal-title": "Journal Title", - + "journalissue.page.journal-title": "Titre du Périodique", // "journalissue.page.keyword": "Keywords", - // TODO New key - Add a translation - "journalissue.page.keyword": "Keywords", - + "journalissue.page.keyword": "Mots-clés", // "journalissue.page.number": "Number", - // TODO New key - Add a translation - "journalissue.page.number": "Number", - + "journalissue.page.number": "Nombre", // "journalissue.page.titleprefix": "Journal Issue: ", - // TODO New key - Add a translation - "journalissue.page.titleprefix": "Journal Issue: ", - - - + "journalissue.page.titleprefix": "Numéro de Périodique : ", + // "journalvolume.listelement.badge": "Journal Volume", - // TODO New key - Add a translation - "journalvolume.listelement.badge": "Journal Volume", - + "journalvolume.listelement.badge": "Volume de Périodique", // "journalvolume.page.description": "Description", - // TODO New key - Add a translation "journalvolume.page.description": "Description", - // "journalvolume.page.issuedate": "Issue Date", - // TODO New key - Add a translation - "journalvolume.page.issuedate": "Issue Date", - + "journalvolume.page.issuedate": "Date de publication", // "journalvolume.page.titleprefix": "Journal Volume: ", - // TODO New key - Add a translation - "journalvolume.page.titleprefix": "Journal Volume: ", - + "journalvolume.page.titleprefix": "Volume de Périodique : ", // "journalvolume.page.volume": "Volume", - // TODO New key - Add a translation "journalvolume.page.volume": "Volume", - - // "loading.browse-by": "Loading items...", - // TODO New key - Add a translation - "loading.browse-by": "Loading items...", - + "loading.browse-by": "Items en cours de chargement...", // "loading.browse-by-page": "Loading page...", - // TODO New key - Add a translation - "loading.browse-by-page": "Loading page...", - + "loading.browse-by-page": "Page en cours de chargement...", // "loading.collection": "Loading collection...", - // TODO New key - Add a translation - "loading.collection": "Loading collection...", - + "loading.collection": "Collection en cours de chargement...", // "loading.collections": "Loading collections...", - // TODO New key - Add a translation - "loading.collections": "Loading collections...", - + "loading.collections": "Collections en cours de chargement...", // "loading.community": "Loading community...", - // TODO New key - Add a translation - "loading.community": "Loading community...", - + "loading.community": "Communauté en cours de chargement...", // "loading.default": "Loading...", - // TODO New key - Add a translation - "loading.default": "Loading...", - + "loading.default": "En cours de chargement...", // "loading.item": "Loading item...", - // TODO New key - Add a translation - "loading.item": "Loading item...", - + "loading.item": "Item en cours de chargement...", // "loading.items": "Loading items...", - // TODO New key - Add a translation - "loading.items": "Loading items...", - + "loading.items": "Items en cours de chargement...", // "loading.mydspace-results": "Loading items...", - // TODO New key - Add a translation - "loading.mydspace-results": "Loading items...", - + "loading.mydspace-results": "Items en cours de chargement...", // "loading.objects": "Loading...", - // TODO New key - Add a translation - "loading.objects": "Loading...", - + "loading.objects": "En cours de chargement...", // "loading.recent-submissions": "Loading recent submissions...", - // TODO New key - Add a translation - "loading.recent-submissions": "Loading recent submissions...", - + "loading.recent-submissions": "Dépôts récents en cours de chargement...", // "loading.search-results": "Loading search results...", - // TODO New key - Add a translation - "loading.search-results": "Loading search results...", - + "loading.search-results": "Résultats de recherche en cours de chargement...", // "loading.sub-collections": "Loading sub-collections...", - // TODO New key - Add a translation - "loading.sub-collections": "Loading sub-collections...", - + "loading.sub-collections": "Sous-Collections en cours de chargement...", // "loading.sub-communities": "Loading sub-communities...", - // TODO New key - Add a translation - "loading.sub-communities": "Loading sub-communities...", - + "loading.sub-communities": "Sous-Communautés en cours de chargement...", // "loading.top-level-communities": "Loading top-level communities...", - // TODO New key - Add a translation - "loading.top-level-communities": "Loading top-level communities...", - - + "loading.top-level-communities": "Communautés de 1er niveau en cours de chargement...", // "login.form.email": "Email address", - // TODO New key - Add a translation - "login.form.email": "Email address", - + "login.form.email": "Adresse e-mail", // "login.form.forgot-password": "Have you forgotten your password?", - // TODO New key - Add a translation - "login.form.forgot-password": "Have you forgotten your password?", - + "login.form.forgot-password": "Mot de passe oublié ?", // "login.form.header": "Please log in to DSpace", - // TODO New key - Add a translation - "login.form.header": "Please log in to DSpace", - + "login.form.header": "Se connecter sur DSpace", // "login.form.new-user": "New user? Click here to register.", - // TODO New key - Add a translation - "login.form.new-user": "New user? Click here to register.", - + "login.form.new-user": "Pas encore de compte ? Cliquez ici pour vous enregistrer.", // "login.form.password": "Password", - // TODO New key - Add a translation - "login.form.password": "Password", - + "login.form.password": "Mot de passe", // "login.form.submit": "Log in", - // TODO New key - Add a translation - "login.form.submit": "Log in", - + "login.form.submit": "Se connecter", // "login.title": "Login", - // TODO New key - Add a translation - "login.title": "Login", - - + "login.title": "Connection", // "logout.form.header": "Log out from DSpace", - // TODO New key - Add a translation - "logout.form.header": "Log out from DSpace", - + "logout.form.header": "Se déconnecter de DSpace", // "logout.form.submit": "Log out", - // TODO New key - Add a translation - "logout.form.submit": "Log out", - + "logout.form.submit": "Se déconnecter", // "logout.title": "Logout", - // TODO New key - Add a translation - "logout.title": "Logout", - - + "logout.title": "Déconnection", // "menu.header.admin": "Admin", - // TODO New key - Add a translation "menu.header.admin": "Admin", - // "menu.header.image.logo": "Repository logo", - // TODO New key - Add a translation - "menu.header.image.logo": "Repository logo", - - + "menu.header.image.logo": "Logo du site", // "menu.section.access_control": "Access Control", - // TODO New key - Add a translation - "menu.section.access_control": "Access Control", - + "menu.section.access_control": "Contrôle d'accès", // "menu.section.access_control_authorizations": "Authorizations", - // TODO New key - Add a translation - "menu.section.access_control_authorizations": "Authorizations", - + "menu.section.access_control_authorizations": "Autorisations", // "menu.section.access_control_groups": "Groups", - // TODO New key - Add a translation - "menu.section.access_control_groups": "Groups", - + "menu.section.access_control_groups": "Groupes d'utilisateurs", // "menu.section.access_control_people": "People", - // TODO New key - Add a translation - "menu.section.access_control_people": "People", - - - + "menu.section.access_control_people": "Utilisateurs", // "menu.section.browse_community": "This Community", - // TODO New key - Add a translation - "menu.section.browse_community": "This Community", - + "menu.section.browse_community": "Cette Communauté", // "menu.section.browse_community_by_author": "By Author", - // TODO New key - Add a translation - "menu.section.browse_community_by_author": "By Author", - + "menu.section.browse_community_by_author": "Auteur", // "menu.section.browse_community_by_issue_date": "By Issue Date", - // TODO New key - Add a translation - "menu.section.browse_community_by_issue_date": "By Issue Date", - + "menu.section.browse_community_by_issue_date": "Date de publication", // "menu.section.browse_community_by_title": "By Title", - // TODO New key - Add a translation - "menu.section.browse_community_by_title": "By Title", - + "menu.section.browse_community_by_title": "Titre", // "menu.section.browse_global": "All of DSpace", - // TODO New key - Add a translation - "menu.section.browse_global": "All of DSpace", - + "menu.section.browse_global": "Tout DSpace", // "menu.section.browse_global_by_author": "By Author", - // TODO New key - Add a translation - "menu.section.browse_global_by_author": "By Author", - + "menu.section.browse_global_by_author": "Auteur", // "menu.section.browse_global_by_dateissued": "By Issue Date", - // TODO New key - Add a translation - "menu.section.browse_global_by_dateissued": "By Issue Date", - + "menu.section.browse_global_by_dateissued": "Date de publication", // "menu.section.browse_global_by_subject": "By Subject", - // TODO New key - Add a translation - "menu.section.browse_global_by_subject": "By Subject", - + "menu.section.browse_global_by_subject": "Sujet", // "menu.section.browse_global_by_title": "By Title", - // TODO New key - Add a translation - "menu.section.browse_global_by_title": "By Title", - + "menu.section.browse_global_by_title": "Titre", // "menu.section.browse_global_communities_and_collections": "Communities & Collections", - // TODO New key - Add a translation - "menu.section.browse_global_communities_and_collections": "Communities & Collections", - - + "menu.section.browse_global_communities_and_collections": "Communautés & Collections", // "menu.section.control_panel": "Control Panel", - // TODO New key - Add a translation - "menu.section.control_panel": "Control Panel", - + "menu.section.control_panel": "Panneau de configuration", // "menu.section.curation_task": "Curation Task", - // TODO New key - Add a translation - "menu.section.curation_task": "Curation Task", - - + "menu.section.curation_task": "Tâches de Curation", // "menu.section.edit": "Edit", - // TODO New key - Add a translation - "menu.section.edit": "Edit", - + "menu.section.edit": "Éditer", // "menu.section.edit_collection": "Collection", - // TODO New key - Add a translation "menu.section.edit_collection": "Collection", - // "menu.section.edit_community": "Community", - // TODO New key - Add a translation - "menu.section.edit_community": "Community", - + "menu.section.edit_community": "Communauté", // "menu.section.edit_item": "Item", - // TODO New key - Add a translation "menu.section.edit_item": "Item", - - // "menu.section.export": "Export", - // TODO New key - Add a translation - "menu.section.export": "Export", - + "menu.section.export": "Exporter", // "menu.section.export_collection": "Collection", - // TODO New key - Add a translation "menu.section.export_collection": "Collection", - // "menu.section.export_community": "Community", - // TODO New key - Add a translation - "menu.section.export_community": "Community", - + "menu.section.export_community": "Communauté", // "menu.section.export_item": "Item", - // TODO New key - Add a translation "menu.section.export_item": "Item", - // "menu.section.export_metadata": "Metadata", - // TODO New key - Add a translation - "menu.section.export_metadata": "Metadata", - - + "menu.section.export_metadata": "Métadonnées", // "menu.section.find": "Find", - // TODO New key - Add a translation - "menu.section.find": "Find", - + "menu.section.find": "Rechercher", // "menu.section.find_items": "Items", - // TODO New key - Add a translation "menu.section.find_items": "Items", - // "menu.section.find_private_items": "Private Items", - // TODO New key - Add a translation - "menu.section.find_private_items": "Private Items", - + "menu.section.find_private_items": "Items Privés", // "menu.section.find_withdrawn_items": "Withdrawn Items", - // TODO New key - Add a translation - "menu.section.find_withdrawn_items": "Withdrawn Items", - - - + "menu.section.find_withdrawn_items": "Items Retirés", + + // These are the hints when hovering over the icons of the sidebar menu // "menu.section.icon.access_control": "Access Control menu section", - // TODO New key - Add a translation - "menu.section.icon.access_control": "Access Control menu section", - + "menu.section.icon.access_control": "Section du menu relative au contrôle d'accès", // "menu.section.icon.control_panel": "Control Panel menu section", - // TODO New key - Add a translation - "menu.section.icon.control_panel": "Control Panel menu section", - + "menu.section.icon.control_panel": "Section du menu relative au panneau de configuration", // "menu.section.icon.curation_task": "Curation Task menu section", - // TODO New key - Add a translation - "menu.section.icon.curation_task": "Curation Task menu section", - + "menu.section.icon.curation_task": "Section du menu relative aux tâches de Curation", // "menu.section.icon.edit": "Edit menu section", - // TODO New key - Add a translation - "menu.section.icon.edit": "Edit menu section", - + "menu.section.icon.edit": "Section du menu relative à l'édition", // "menu.section.icon.export": "Export menu section", - // TODO New key - Add a translation - "menu.section.icon.export": "Export menu section", - + "menu.section.icon.export": "Section du menu relative à l'export", // "menu.section.icon.find": "Find menu section", - // TODO New key - Add a translation - "menu.section.icon.find": "Find menu section", - + "menu.section.icon.find": "Section du menu relative à la recherche", // "menu.section.icon.import": "Import menu section", - // TODO New key - Add a translation - "menu.section.icon.import": "Import menu section", - + "menu.section.icon.import": "Section du menu relative à l'import", // "menu.section.icon.new": "New menu section", - // TODO New key - Add a translation - "menu.section.icon.new": "New menu section", - + "menu.section.icon.new": "Section du menu relative à l'ajout d'éléments", // "menu.section.icon.pin": "Pin sidebar", - // TODO New key - Add a translation - "menu.section.icon.pin": "Pin sidebar", - + "menu.section.icon.pin": "Epingler menu latéral", // "menu.section.icon.registries": "Registries menu section", - // TODO New key - Add a translation - "menu.section.icon.registries": "Registries menu section", - + "menu.section.icon.registries": "Section du menu relative aux Registres", // "menu.section.icon.statistics_task": "Statistics Task menu section", - // TODO New key - Add a translation - "menu.section.icon.statistics_task": "Statistics Task menu section", - + "menu.section.icon.statistics_task": "Section du menu relative aux tâches Statistiques", // "menu.section.icon.unpin": "Unpin sidebar", - // TODO New key - Add a translation - "menu.section.icon.unpin": "Unpin sidebar", - - + "menu.section.icon.unpin": "Libérer menu latéral", // "menu.section.import": "Import", - // TODO New key - Add a translation - "menu.section.import": "Import", - + "menu.section.import": "Importer", // "menu.section.import_batch": "Batch Import (ZIP)", // TODO New key - Add a translation - "menu.section.import_batch": "Batch Import (ZIP)", - + "menu.section.import_batch": "Import par lot (ZIP)", // "menu.section.import_metadata": "Metadata", - // TODO New key - Add a translation - "menu.section.import_metadata": "Metadata", - - + "menu.section.import_metadata": "Import de métadonnées", // "menu.section.new": "New", - // TODO New key - Add a translation - "menu.section.new": "New", - + "menu.section.new": "Créer", // "menu.section.new_collection": "Collection", - // TODO New key - Add a translation "menu.section.new_collection": "Collection", - // "menu.section.new_community": "Community", - // TODO New key - Add a translation - "menu.section.new_community": "Community", - + "menu.section.new_community": "Communauté", // "menu.section.new_item": "Item", - // TODO New key - Add a translation "menu.section.new_item": "Item", - // "menu.section.new_item_version": "Item Version", - // TODO New key - Add a translation - "menu.section.new_item_version": "Item Version", - - - + "menu.section.new_item_version": "Version", // "menu.section.pin": "Pin sidebar", - // TODO New key - Add a translation - "menu.section.pin": "Pin sidebar", - + "menu.section.pin": "Epingler menu latéral", // "menu.section.unpin": "Unpin sidebar", - // TODO New key - Add a translation - "menu.section.unpin": "Unpin sidebar", - - + "menu.section.unpin": "Libérer menu latéral", // "menu.section.registries": "Registries", - // TODO New key - Add a translation - "menu.section.registries": "Registries", - + "menu.section.registries": "Registres", // "menu.section.registries_format": "Format", - // TODO New key - Add a translation "menu.section.registries_format": "Format", - // "menu.section.registries_metadata": "Metadata", - // TODO New key - Add a translation - "menu.section.registries_metadata": "Metadata", - - + "menu.section.registries_metadata": "Métadonnées", // "menu.section.statistics": "Statistics", - // TODO New key - Add a translation - "menu.section.statistics": "Statistics", - + "menu.section.statistics": "Statistiques", // "menu.section.statistics_task": "Statistics Task", - // TODO New key - Add a translation - "menu.section.statistics_task": "Statistics Task", - - + "menu.section.statistics_task": "Tâche statistiques", // "menu.section.toggle.access_control": "Toggle Access Control section", - // TODO New key - Add a translation - "menu.section.toggle.access_control": "Toggle Access Control section", - + "menu.section.toggle.access_control": "Ouvrir/Fermer section Contrôle d'accès", // "menu.section.toggle.control_panel": "Toggle Control Panel section", - // TODO New key - Add a translation - "menu.section.toggle.control_panel": "Toggle Control Panel section", - + "menu.section.toggle.control_panel": "Ouvrir/Fermer section Panneau de configuration", // "menu.section.toggle.curation_task": "Toggle Curation Task section", - // TODO New key - Add a translation - "menu.section.toggle.curation_task": "Toggle Curation Task section", - + "menu.section.toggle.curation_task": "Ouvrir/Fermer section Tâche de Curation", // "menu.section.toggle.edit": "Toggle Edit section", - // TODO New key - Add a translation - "menu.section.toggle.edit": "Toggle Edit section", - + "menu.section.toggle.edit": "Ouvrir/Fermer section Éditer", // "menu.section.toggle.export": "Toggle Export section", - // TODO New key - Add a translation - "menu.section.toggle.export": "Toggle Export section", - + "menu.section.toggle.export": "Ouvrir/Fermer section Exporter", // "menu.section.toggle.find": "Toggle Find section", - // TODO New key - Add a translation - "menu.section.toggle.find": "Toggle Find section", - + "menu.section.toggle.find": "Ouvrir/Fermer section Rechercher", // "menu.section.toggle.import": "Toggle Import section", - // TODO New key - Add a translation - "menu.section.toggle.import": "Toggle Import section", - + "menu.section.toggle.import": "Ouvrir/Fermer section Importer", // "menu.section.toggle.new": "Toggle New section", - // TODO New key - Add a translation - "menu.section.toggle.new": "Toggle New section", - + "menu.section.toggle.new": "Ouvrir/Fermer section Créer", // "menu.section.toggle.registries": "Toggle Registries section", - // TODO New key - Add a translation - "menu.section.toggle.registries": "Toggle Registries section", - + "menu.section.toggle.registries": "Ouvrir/Fermer section Registres", // "menu.section.toggle.statistics_task": "Toggle Statistics Task section", - // TODO New key - Add a translation - "menu.section.toggle.statistics_task": "Toggle Statistics Task section", - - + "menu.section.toggle.statistics_task": "Ouvrir/Fermer section Tâche statistiques", // "mydspace.description": "", - // TODO New key - Add a translation "mydspace.description": "", - // "mydspace.general.text-here": "HERE", - // TODO New key - Add a translation - "mydspace.general.text-here": "HERE", - + "mydspace.general.text-here": "ICI", // "mydspace.messages.controller-help": "Select this option to send a message to item's submitter.", - // TODO New key - Add a translation - "mydspace.messages.controller-help": "Select this option to send a message to item's submitter.", - + "mydspace.messages.controller-help": "Sélectionner cette option pour envoyer un message au déposant.", // "mydspace.messages.description-placeholder": "Insert your message here...", - // TODO New key - Add a translation - "mydspace.messages.description-placeholder": "Insert your message here...", - + "mydspace.messages.description-placeholder": "Insérer votre message ici...", // "mydspace.messages.hide-msg": "Hide message", - // TODO New key - Add a translation - "mydspace.messages.hide-msg": "Hide message", - + "mydspace.messages.hide-msg": "Masquer message", // "mydspace.messages.mark-as-read": "Mark as read", - // TODO New key - Add a translation - "mydspace.messages.mark-as-read": "Mark as read", - + "mydspace.messages.mark-as-read": "Marquer comme lu", // "mydspace.messages.mark-as-unread": "Mark as unread", - // TODO New key - Add a translation - "mydspace.messages.mark-as-unread": "Mark as unread", - + "mydspace.messages.mark-as-unread": "Marquer comme non lu", // "mydspace.messages.no-content": "No content.", - // TODO New key - Add a translation - "mydspace.messages.no-content": "No content.", - + "mydspace.messages.no-content": "Aucun contenu.", // "mydspace.messages.no-messages": "No messages yet.", - // TODO New key - Add a translation - "mydspace.messages.no-messages": "No messages yet.", - + "mydspace.messages.no-messages": "Pas encore de messages.", // "mydspace.messages.send-btn": "Send", - // TODO New key - Add a translation - "mydspace.messages.send-btn": "Send", - + "mydspace.messages.send-btn": "Envoyer", // "mydspace.messages.show-msg": "Show message", - // TODO New key - Add a translation - "mydspace.messages.show-msg": "Show message", - + "mydspace.messages.show-msg": "Afficher message", // "mydspace.messages.subject-placeholder": "Subject...", - // TODO New key - Add a translation - "mydspace.messages.subject-placeholder": "Subject...", - + "mydspace.messages.subject-placeholder": "Objet...", // "mydspace.messages.submitter-help": "Select this option to send a message to controller.", - // TODO New key - Add a translation - "mydspace.messages.submitter-help": "Select this option to send a message to controller.", - + "mydspace.messages.submitter-help": "Sélectionner cette option pour envoyer un message au vérificateur.", // "mydspace.messages.title": "Messages", - // TODO New key - Add a translation "mydspace.messages.title": "Messages", - // "mydspace.messages.to": "To", - // TODO New key - Add a translation - "mydspace.messages.to": "To", - + "mydspace.messages.to": "À", // "mydspace.new-submission": "New submission", - // TODO New key - Add a translation - "mydspace.new-submission": "New submission", - + "mydspace.new-submission": "Nouveau dépôt", // "mydspace.results.head": "Your submissions", - // TODO New key - Add a translation - "mydspace.results.head": "Your submissions", - + "mydspace.results.head": "Vos dépôts", // "mydspace.results.no-abstract": "No Abstract", - // TODO New key - Add a translation - "mydspace.results.no-abstract": "No Abstract", - + "mydspace.results.no-abstract": "Aucun résumé", // "mydspace.results.no-authors": "No Authors", - // TODO New key - Add a translation - "mydspace.results.no-authors": "No Authors", - + "mydspace.results.no-authors": "Aucun auteur", // "mydspace.results.no-collections": "No Collections", - // TODO New key - Add a translation - "mydspace.results.no-collections": "No Collections", - + "mydspace.results.no-collections": "Aucune Collection", // "mydspace.results.no-date": "No Date", - // TODO New key - Add a translation - "mydspace.results.no-date": "No Date", - + "mydspace.results.no-date": "Aucune date", // "mydspace.results.no-files": "No Files", - // TODO New key - Add a translation - "mydspace.results.no-files": "No Files", - + "mydspace.results.no-files": "Aucun fichier", // "mydspace.results.no-results": "There were no items to show", - // TODO New key - Add a translation - "mydspace.results.no-results": "There were no items to show", - + "mydspace.results.no-results": "Aucun Item à afficher", // "mydspace.results.no-title": "No title", - // TODO New key - Add a translation - "mydspace.results.no-title": "No title", - + "mydspace.results.no-title": "Aucun titre", // "mydspace.results.no-uri": "No Uri", - // TODO New key - Add a translation - "mydspace.results.no-uri": "No Uri", - + "mydspace.results.no-uri": "Aucune URL", // "mydspace.show.workflow": "All tasks", - // TODO New key - Add a translation - "mydspace.show.workflow": "All tasks", - + "mydspace.show.workflow": "Tâches de validation", // "mydspace.show.workspace": "Your Submissions", - // TODO New key - Add a translation - "mydspace.show.workspace": "Your Submissions", - + "mydspace.show.workspace": "Vos dépôts", // "mydspace.status.archived": "Archived", - // TODO New key - Add a translation - "mydspace.status.archived": "Archived", - + "mydspace.status.archived": "Archivés", // "mydspace.status.validation": "Validation", - // TODO New key - Add a translation - "mydspace.status.validation": "Validation", - + "mydspace.status.validation": "En cours de validation", // "mydspace.status.waiting-for-controller": "Waiting for controller", - // TODO New key - Add a translation - "mydspace.status.waiting-for-controller": "Waiting for controller", - + "mydspace.status.waiting-for-controller": "En attente d'assignation", // "mydspace.status.workflow": "Workflow", - // TODO New key - Add a translation "mydspace.status.workflow": "Workflow", - // "mydspace.status.workspace": "Workspace", - // TODO New key - Add a translation "mydspace.status.workspace": "Workspace", - // "mydspace.title": "MyDSpace", - // TODO New key - Add a translation "mydspace.title": "MyDSpace", - // "mydspace.upload.upload-failed": "Error creating new workspace. Please verify the content uploaded before retry.", - // TODO New key - Add a translation - "mydspace.upload.upload-failed": "Error creating new workspace. Please verify the content uploaded before retry.", - + "mydspace.upload.upload-failed": "Erreur à la création du Workspace. Veuillez vérifier le contenu téléchargé avant de réessayer.", // "mydspace.upload.upload-multiple-successful": "{{qty}} new workspace items created.", - // TODO New key - Add a translation - "mydspace.upload.upload-multiple-successful": "{{qty}} new workspace items created.", - + "mydspace.upload.upload-multiple-successful": "{{qty}} nouveaux Items créés dans le Workspace.", // "mydspace.upload.upload-successful": "New workspace item created. Click {{here}} for edit it.", - // TODO New key - Add a translation - "mydspace.upload.upload-successful": "New workspace item created. Click {{here}} for edit it.", - + "mydspace.upload.upload-successful": "Nouvel item créé dans le Workspace. Cliquer {{here}} pour l'éditer.", // "mydspace.view-btn": "View", - // TODO New key - Add a translation - "mydspace.view-btn": "View", - - + "mydspace.view-btn": "Afficher", // "nav.browse.header": "All of DSpace", - // TODO New key - Add a translation - "nav.browse.header": "All of DSpace", - + "nav.browse.header": "Tout Dspace", // "nav.community-browse.header": "By Community", - // TODO New key - Add a translation - "nav.community-browse.header": "By Community", - + "nav.community-browse.header": "Par Communauté", // "nav.language": "Language switch", - // TODO New key - Add a translation - "nav.language": "Language switch", - + "nav.language": "Sélecteur de langue", // "nav.login": "Log In", - // TODO New key - Add a translation - "nav.login": "Log In", - + "nav.login": "Se connecter", // "nav.logout": "Log Out", - // TODO New key - Add a translation - "nav.logout": "Log Out", - + "nav.logout": "Se déconnecter", // "nav.mydspace": "MyDSpace", - // TODO New key - Add a translation "nav.mydspace": "MyDSpace", - // "nav.search": "Search", - // TODO New key - Add a translation - "nav.search": "Search", - + "nav.search": "Rechercher", // "nav.statistics.header": "Statistics", - // TODO New key - Add a translation - "nav.statistics.header": "Statistics", - - + "nav.statistics.header": "Statistiques", // "orgunit.listelement.badge": "Organizational Unit", - // TODO New key - Add a translation - "orgunit.listelement.badge": "Organizational Unit", - + "orgunit.listelement.badge": "Structure Organisationnelle", // "orgunit.page.city": "City", - // TODO New key - Add a translation - "orgunit.page.city": "City", - + "orgunit.page.city": "Ville", // "orgunit.page.country": "Country", - // TODO New key - Add a translation - "orgunit.page.country": "Country", - + "orgunit.page.country": "Pays", // "orgunit.page.dateestablished": "Date established", - // TODO New key - Add a translation - "orgunit.page.dateestablished": "Date established", - + "orgunit.page.dateestablished": "Date de fondation", // "orgunit.page.description": "Description", - // TODO New key - Add a translation "orgunit.page.description": "Description", - // "orgunit.page.id": "ID", - // TODO New key - Add a translation "orgunit.page.id": "ID", - // "orgunit.page.titleprefix": "Organizational Unit: ", - // TODO New key - Add a translation - "orgunit.page.titleprefix": "Organizational Unit: ", - - + "orgunit.page.titleprefix": "Structure Organisationnelle : ", // "pagination.results-per-page": "Results Per Page", - // TODO New key - Add a translation - "pagination.results-per-page": "Results Per Page", - + "pagination.results-per-page": "Résultats par page", // "pagination.showing.detail": "{{ range }} of {{ total }}", - // TODO New key - Add a translation - "pagination.showing.detail": "{{ range }} of {{ total }}", - + "pagination.showing.detail": "{{ range }} sur {{ total }}", // "pagination.showing.label": "Now showing ", - // TODO New key - Add a translation - "pagination.showing.label": "Now showing ", - + "pagination.showing.label": "Voici les éléments ", // "pagination.sort-direction": "Sort Options", - // TODO New key - Add a translation - "pagination.sort-direction": "Sort Options", - - + "pagination.sort-direction": "Options de tri", // "person.listelement.badge": "Person", - // TODO New key - Add a translation - "person.listelement.badge": "Person", - + "person.listelement.badge": "Personne", // "person.page.birthdate": "Birth Date", - // TODO New key - Add a translation - "person.page.birthdate": "Birth Date", - + "person.page.birthdate": "Date de naissance", // "person.page.email": "Email Address", - // TODO New key - Add a translation - "person.page.email": "Email Address", - + "person.page.email": "Adresse mail", // "person.page.firstname": "First Name", - // TODO New key - Add a translation - "person.page.firstname": "First Name", - + "person.page.firstname": "Prénom", // "person.page.jobtitle": "Job Title", - // TODO New key - Add a translation - "person.page.jobtitle": "Job Title", - + "person.page.jobtitle": "Fonction", // "person.page.lastname": "Last Name", - // TODO New key - Add a translation - "person.page.lastname": "Last Name", - + "person.page.lastname": "Nom de famille", // "person.page.link.full": "Show all metadata", - // TODO New key - Add a translation - "person.page.link.full": "Show all metadata", - + "person.page.link.full": "Afficher toutes les métadonnées", // "person.page.orcid": "ORCID", - // TODO New key - Add a translation "person.page.orcid": "ORCID", - // "person.page.staffid": "Staff ID", - // TODO New key - Add a translation "person.page.staffid": "Staff ID", - // "person.page.titleprefix": "Person: ", - // TODO New key - Add a translation - "person.page.titleprefix": "Person: ", - + "person.page.titleprefix": "Personne : ", // "person.search.results.head": "Person Search Results", - // TODO New key - Add a translation - "person.search.results.head": "Person Search Results", - + "person.search.results.head": "Résultats de recherche Personne", // "person.search.title": "DSpace Angular :: Person Search", - // TODO New key - Add a translation - "person.search.title": "DSpace Angular :: Person Search", - - + "person.search.title": "DSpace Angular :: Recherche Personne", // "project.listelement.badge": "Research Project", - // TODO New key - Add a translation - "project.listelement.badge": "Research Project", - + "project.listelement.badge": "Projet de recherche", // "project.page.contributor": "Contributors", - // TODO New key - Add a translation - "project.page.contributor": "Contributors", - + "project.page.contributor": "Contributeurs", // "project.page.description": "Description", - // TODO New key - Add a translation "project.page.description": "Description", - // "project.page.expectedcompletion": "Expected Completion", - // TODO New key - Add a translation - "project.page.expectedcompletion": "Expected Completion", - + "project.page.expectedcompletion": "Échéance prévue", // "project.page.funder": "Funders", - // TODO New key - Add a translation - "project.page.funder": "Funders", - + "project.page.funder": "Bailleurs de fonds", // "project.page.id": "ID", - // TODO New key - Add a translation "project.page.id": "ID", - // "project.page.keyword": "Keywords", - // TODO New key - Add a translation - "project.page.keyword": "Keywords", - + "project.page.keyword": "Mots-clés", // "project.page.status": "Status", - // TODO New key - Add a translation - "project.page.status": "Status", - + "project.page.status": "Statut", // "project.page.titleprefix": "Research Project: ", - // TODO New key - Add a translation - "project.page.titleprefix": "Research Project: ", - - + "project.page.titleprefix": "Projet de recherche : ", // "publication.listelement.badge": "Publication", - // TODO New key - Add a translation "publication.listelement.badge": "Publication", - // "publication.page.description": "Description", - // TODO New key - Add a translation "publication.page.description": "Description", - // "publication.page.journal-issn": "Journal ISSN", - // TODO New key - Add a translation - "publication.page.journal-issn": "Journal ISSN", - + "publication.page.journal-issn": "ISSN du Périodique", // "publication.page.journal-title": "Journal Title", - // TODO New key - Add a translation - "publication.page.journal-title": "Journal Title", - + "publication.page.journal-title": "Titre du Périodique", // "publication.page.publisher": "Publisher", - // TODO New key - Add a translation - "publication.page.publisher": "Publisher", - + "publication.page.publisher": "Éditeur", // "publication.page.titleprefix": "Publication: ", - // TODO New key - Add a translation - "publication.page.titleprefix": "Publication: ", - + "publication.page.titleprefix": "Publication : ", // "publication.page.volume-title": "Volume Title", - // TODO New key - Add a translation - "publication.page.volume-title": "Volume Title", - + "publication.page.volume-title": "Titre du volume", // "publication.search.results.head": "Publication Search Results", - // TODO New key - Add a translation - "publication.search.results.head": "Publication Search Results", - + "publication.search.results.head": "Résultats de recherche Publication", // "publication.search.title": "DSpace Angular :: Publication Search", - // TODO New key - Add a translation - "publication.search.title": "DSpace Angular :: Publication Search", - - + "publication.search.title": "DSpace Angular :: Recherche Publication", // "relationships.isAuthorOf": "Authors", - // TODO New key - Add a translation - "relationships.isAuthorOf": "Authors", - + "relationships.isAuthorOf": "Auteurs", // "relationships.isIssueOf": "Journal Issues", - // TODO New key - Add a translation - "relationships.isIssueOf": "Journal Issues", - + "relationships.isIssueOf": "Numéros de Périodique", // "relationships.isJournalIssueOf": "Journal Issue", - // TODO New key - Add a translation - "relationships.isJournalIssueOf": "Journal Issue", - + "relationships.isJournalIssueOf": "Numéro de Périodique", // "relationships.isJournalOf": "Journals", - // TODO New key - Add a translation - "relationships.isJournalOf": "Journals", - + "relationships.isJournalOf": "Périodiques", // "relationships.isOrgUnitOf": "Organizational Units", - // TODO New key - Add a translation - "relationships.isOrgUnitOf": "Organizational Units", - + "relationships.isOrgUnitOf": "Structure organisationnelle", // "relationships.isPersonOf": "Authors", - // TODO New key - Add a translation - "relationships.isPersonOf": "Authors", - + "relationships.isPersonOf": "Auteurs", // "relationships.isProjectOf": "Research Projects", - // TODO New key - Add a translation - "relationships.isProjectOf": "Research Projects", - + "relationships.isProjectOf": "Projets de recherche", // "relationships.isPublicationOf": "Publications", - // TODO New key - Add a translation "relationships.isPublicationOf": "Publications", - // "relationships.isPublicationOfJournalIssue": "Articles", - // TODO New key - Add a translation "relationships.isPublicationOfJournalIssue": "Articles", - // "relationships.isSingleJournalOf": "Journal", - // TODO New key - Add a translation - "relationships.isSingleJournalOf": "Journal", - + "relationships.isSingleJournalOf": "Périodique", // "relationships.isSingleVolumeOf": "Journal Volume", - // TODO New key - Add a translation - "relationships.isSingleVolumeOf": "Journal Volume", - + "relationships.isSingleVolumeOf": "Volume de Périodique", // "relationships.isVolumeOf": "Journal Volumes", - // TODO New key - Add a translation - "relationships.isVolumeOf": "Journal Volumes", - - + "relationships.isVolumeOf": "Volumes de Périodique", // "search.description": "", - // TODO New key - Add a translation "search.description": "", - // "search.switch-configuration.title": "Show", - // TODO New key - Add a translation - "search.switch-configuration.title": "Show", - + "search.switch-configuration.title": "Afficher", // "search.title": "DSpace Angular :: Search", - // TODO New key - Add a translation - "search.title": "DSpace Angular :: Search", - - - + "search.title": "DSpace Angular :: Recherche", // "search.filters.applied.f.author": "Author", - // TODO New key - Add a translation - "search.filters.applied.f.author": "Author", - - // "search.filters.applied.f.dateIssued.max": "End date", - // TODO New key - Add a translation - "search.filters.applied.f.dateIssued.max": "End date", - + "search.filters.applied.f.author": "Auteur", // "search.filters.applied.f.dateIssued.min": "Start date", - // TODO New key - Add a translation - "search.filters.applied.f.dateIssued.min": "Start date", - + "search.filters.applied.f.dateIssued.min": "Depuis", + // "search.filters.applied.f.dateIssued.max": "End date", + "search.filters.applied.f.dateIssued.max": "Jusque", // "search.filters.applied.f.dateSubmitted": "Date submitted", - // TODO New key - Add a translation - "search.filters.applied.f.dateSubmitted": "Date submitted", - + "search.filters.applied.f.dateSubmitted": "Date de dépôt", // "search.filters.applied.f.entityType": "Item Type", - // TODO New key - Add a translation - "search.filters.applied.f.entityType": "Item Type", - + "search.filters.applied.f.entityType": "Type d'Item", // "search.filters.applied.f.has_content_in_original_bundle": "Has files", - // TODO New key - Add a translation - "search.filters.applied.f.has_content_in_original_bundle": "Has files", - + "search.filters.applied.f.has_content_in_original_bundle": "Fichier(s) présent(s)", // "search.filters.applied.f.itemtype": "Type", - // TODO New key - Add a translation "search.filters.applied.f.itemtype": "Type", - // "search.filters.applied.f.namedresourcetype": "Status", - // TODO New key - Add a translation - "search.filters.applied.f.namedresourcetype": "Status", - + "search.filters.applied.f.namedresourcetype": "Statut", // "search.filters.applied.f.subject": "Subject", - // TODO New key - Add a translation - "search.filters.applied.f.subject": "Subject", - + "search.filters.applied.f.subject": "Sujet", // "search.filters.applied.f.submitter": "Submitter", - // TODO New key - Add a translation - "search.filters.applied.f.submitter": "Submitter", - - - + "search.filters.applied.f.submitter": "Déposant", // "search.filters.filter.author.head": "Author", - // TODO New key - Add a translation - "search.filters.filter.author.head": "Author", - + "search.filters.filter.author.head": "Auteur", // "search.filters.filter.author.placeholder": "Author name", - // TODO New key - Add a translation - "search.filters.filter.author.placeholder": "Author name", - + "search.filters.filter.author.placeholder": "Nom de l'auteur", // "search.filters.filter.birthDate.head": "Birth Date", - // TODO New key - Add a translation - "search.filters.filter.birthDate.head": "Birth Date", - + "search.filters.filter.birthDate.head": "Date de naissance", // "search.filters.filter.birthDate.placeholder": "Birth Date", - // TODO New key - Add a translation - "search.filters.filter.birthDate.placeholder": "Birth Date", - + "search.filters.filter.birthDate.placeholder": "Date de naissance", // "search.filters.filter.creativeDatePublished.head": "Date Published", - // TODO New key - Add a translation - "search.filters.filter.creativeDatePublished.head": "Date Published", - + "search.filters.filter.creativeDatePublished.head": "Date de publication", // "search.filters.filter.creativeDatePublished.placeholder": "Date Published", - // TODO New key - Add a translation - "search.filters.filter.creativeDatePublished.placeholder": "Date Published", - + "search.filters.filter.creativeDatePublished.placeholder": "Date de publication", // "search.filters.filter.creativeWorkEditor.head": "Editor", - // TODO New key - Add a translation - "search.filters.filter.creativeWorkEditor.head": "Editor", - + "search.filters.filter.creativeWorkEditor.head": "Rédacteur en chef", // "search.filters.filter.creativeWorkEditor.placeholder": "Editor", - // TODO New key - Add a translation - "search.filters.filter.creativeWorkEditor.placeholder": "Editor", - + "search.filters.filter.creativeWorkEditor.placeholder": "Rédacteur en chef", // "search.filters.filter.creativeWorkKeywords.head": "Subject", - // TODO New key - Add a translation - "search.filters.filter.creativeWorkKeywords.head": "Subject", - + "search.filters.filter.creativeWorkKeywords.head": "Sujet", // "search.filters.filter.creativeWorkKeywords.placeholder": "Subject", - // TODO New key - Add a translation - "search.filters.filter.creativeWorkKeywords.placeholder": "Subject", - + "search.filters.filter.creativeWorkKeywords.placeholder": "Sujet", // "search.filters.filter.creativeWorkPublisher.head": "Publisher", - // TODO New key - Add a translation - "search.filters.filter.creativeWorkPublisher.head": "Publisher", - + "search.filters.filter.creativeWorkPublisher.head": "Éditeur", // "search.filters.filter.creativeWorkPublisher.placeholder": "Publisher", - // TODO New key - Add a translation - "search.filters.filter.creativeWorkPublisher.placeholder": "Publisher", - + "search.filters.filter.creativeWorkPublisher.placeholder": "Éditeur", // "search.filters.filter.dateIssued.head": "Date", - // TODO New key - Add a translation "search.filters.filter.dateIssued.head": "Date", - // "search.filters.filter.dateIssued.max.placeholder": "Minimum Date", - // TODO New key - Add a translation - "search.filters.filter.dateIssued.max.placeholder": "Minimum Date", - + "search.filters.filter.dateIssued.max.placeholder": "Depuis", // "search.filters.filter.dateIssued.min.placeholder": "Maximum Date", - // TODO New key - Add a translation - "search.filters.filter.dateIssued.min.placeholder": "Maximum Date", - + "search.filters.filter.dateIssued.min.placeholder": "Jusque", // "search.filters.filter.dateSubmitted.head": "Date submitted", - // TODO New key - Add a translation - "search.filters.filter.dateSubmitted.head": "Date submitted", - + "search.filters.filter.dateSubmitted.head": "Date de dépôt", // "search.filters.filter.dateSubmitted.placeholder": "Date submitted", - // TODO New key - Add a translation - "search.filters.filter.dateSubmitted.placeholder": "Date submitted", - + "search.filters.filter.dateSubmitted.placeholder": "Date de dépôt", // "search.filters.filter.entityType.head": "Item Type", - // TODO New key - Add a translation - "search.filters.filter.entityType.head": "Item Type", - + "search.filters.filter.entityType.head": "Type d'Item", // "search.filters.filter.entityType.placeholder": "Item Type", - // TODO New key - Add a translation - "search.filters.filter.entityType.placeholder": "Item Type", - + "search.filters.filter.entityType.placeholder": "Type d'Item", // "search.filters.filter.has_content_in_original_bundle.head": "Has files", - // TODO New key - Add a translation - "search.filters.filter.has_content_in_original_bundle.head": "Has files", - + "search.filters.filter.has_content_in_original_bundle.head": "Fichier(s) présent(s)", // "search.filters.filter.itemtype.head": "Type", - // TODO New key - Add a translation "search.filters.filter.itemtype.head": "Type", - // "search.filters.filter.itemtype.placeholder": "Type", - // TODO New key - Add a translation "search.filters.filter.itemtype.placeholder": "Type", - // "search.filters.filter.jobTitle.head": "Job Title", - // TODO New key - Add a translation - "search.filters.filter.jobTitle.head": "Job Title", - + "search.filters.filter.jobTitle.head": "Fonction", // "search.filters.filter.jobTitle.placeholder": "Job Title", - // TODO New key - Add a translation - "search.filters.filter.jobTitle.placeholder": "Job Title", - + "search.filters.filter.jobTitle.placeholder": "Fonction", // "search.filters.filter.knowsLanguage.head": "Known language", - // TODO New key - Add a translation - "search.filters.filter.knowsLanguage.head": "Known language", - + "search.filters.filter.knowsLanguage.head": "Langue(s)", // "search.filters.filter.knowsLanguage.placeholder": "Known language", - // TODO New key - Add a translation - "search.filters.filter.knowsLanguage.placeholder": "Known language", - + "search.filters.filter.knowsLanguage.placeholder": "Langue(s)", // "search.filters.filter.namedresourcetype.head": "Status", - // TODO New key - Add a translation - "search.filters.filter.namedresourcetype.head": "Status", - + "search.filters.filter.namedresourcetype.head": "Statut", // "search.filters.filter.namedresourcetype.placeholder": "Status", - // TODO New key - Add a translation - "search.filters.filter.namedresourcetype.placeholder": "Status", - + "search.filters.filter.namedresourcetype.placeholder": "Statut", // "search.filters.filter.objectpeople.head": "People", - // TODO New key - Add a translation - "search.filters.filter.objectpeople.head": "People", - + "search.filters.filter.objectpeople.head": "Personne", // "search.filters.filter.objectpeople.placeholder": "People", - // TODO New key - Add a translation - "search.filters.filter.objectpeople.placeholder": "People", - + "search.filters.filter.objectpeople.placeholder": "Personne", // "search.filters.filter.organizationAddressCountry.head": "Country", - // TODO New key - Add a translation - "search.filters.filter.organizationAddressCountry.head": "Country", - + "search.filters.filter.organizationAddressCountry.head": "Pays", // "search.filters.filter.organizationAddressCountry.placeholder": "Country", - // TODO New key - Add a translation - "search.filters.filter.organizationAddressCountry.placeholder": "Country", - + "search.filters.filter.organizationAddressCountry.placeholder": "Pays", // "search.filters.filter.organizationAddressLocality.head": "City", - // TODO New key - Add a translation - "search.filters.filter.organizationAddressLocality.head": "City", - + "search.filters.filter.organizationAddressLocality.head": "Ville", // "search.filters.filter.organizationAddressLocality.placeholder": "City", - // TODO New key - Add a translation - "search.filters.filter.organizationAddressLocality.placeholder": "City", - + "search.filters.filter.organizationAddressLocality.placeholder": "Ville", // "search.filters.filter.organizationFoundingDate.head": "Date Founded", - // TODO New key - Add a translation - "search.filters.filter.organizationFoundingDate.head": "Date Founded", - + "search.filters.filter.organizationFoundingDate.head": "Date de fondation", // "search.filters.filter.organizationFoundingDate.placeholder": "Date Founded", - // TODO New key - Add a translation - "search.filters.filter.organizationFoundingDate.placeholder": "Date Founded", - + "search.filters.filter.organizationFoundingDate.placeholder": "Date de fondation", // "search.filters.filter.scope.head": "Scope", - // TODO New key - Add a translation "search.filters.filter.scope.head": "Scope", - // "search.filters.filter.scope.placeholder": "Scope filter", - // TODO New key - Add a translation - "search.filters.filter.scope.placeholder": "Scope filter", - + "search.filters.filter.scope.placeholder": "Scope", // "search.filters.filter.show-less": "Collapse", - // TODO New key - Add a translation - "search.filters.filter.show-less": "Collapse", - + "search.filters.filter.show-less": "Moins", // "search.filters.filter.show-more": "Show more", - // TODO New key - Add a translation - "search.filters.filter.show-more": "Show more", - + "search.filters.filter.show-more": "Plus", // "search.filters.filter.subject.head": "Subject", - // TODO New key - Add a translation - "search.filters.filter.subject.head": "Subject", - + "search.filters.filter.subject.head": "Sujet", // "search.filters.filter.subject.placeholder": "Subject", - // TODO New key - Add a translation - "search.filters.filter.subject.placeholder": "Subject", - + "search.filters.filter.subject.placeholder": "Sujet", // "search.filters.filter.submitter.head": "Submitter", - // TODO New key - Add a translation - "search.filters.filter.submitter.head": "Submitter", - + "search.filters.filter.submitter.head": "Déposant", // "search.filters.filter.submitter.placeholder": "Submitter", - // TODO New key - Add a translation - "search.filters.filter.submitter.placeholder": "Submitter", - - - + "search.filters.filter.submitter.placeholder": "Déposant", // "search.filters.head": "Filters", - // TODO New key - Add a translation - "search.filters.head": "Filters", - + "search.filters.head": "Filtres", // "search.filters.reset": "Reset filters", - // TODO New key - Add a translation - "search.filters.reset": "Reset filters", - - - + "search.filters.reset": "Réinitialiser filtres", // "search.form.search": "Search", - // TODO New key - Add a translation - "search.form.search": "Search", - + "search.form.search": "Recherche", // "search.form.search_dspace": "Search DSpace", - // TODO New key - Add a translation - "search.form.search_dspace": "Search DSpace", - + "search.form.search_dspace": "Recherche dans DSpace", // "search.form.search_mydspace": "Search MyDSpace", - // TODO New key - Add a translation - "search.form.search_mydspace": "Search MyDSpace", - - - + "search.form.search_mydspace": "Recherche dans MyDSpace", // "search.results.head": "Search Results", - // TODO New key - Add a translation - "search.results.head": "Search Results", - + "search.results.head": "Résultats de recherche", // "search.results.no-results": "Your search returned no results. Having trouble finding what you're looking for? Try putting", - // TODO New key - Add a translation - "search.results.no-results": "Your search returned no results. Having trouble finding what you're looking for? Try putting", - + "search.results.no-results": "Votre recherche n'a retourné aucun résultat. Vous n'arrivez pas à trouver ce que vous recherchez ? Essayez de mettre", // "search.results.no-results-link": "quotes around it", - // TODO New key - Add a translation - "search.results.no-results-link": "quotes around it", - - - + "search.results.no-results-link": "des guillemets avant et après les termes recherchés", // "search.sidebar.close": "Back to results", - // TODO New key - Add a translation - "search.sidebar.close": "Back to results", - + "search.sidebar.close": "Retour aux résultats", // "search.sidebar.filters.title": "Filters", - // TODO New key - Add a translation - "search.sidebar.filters.title": "Filters", - + "search.sidebar.filters.title": "Filtres", // "search.sidebar.open": "Search Tools", - // TODO New key - Add a translation - "search.sidebar.open": "Search Tools", - + "search.sidebar.open": "Outils de recherche", // "search.sidebar.results": "results", - // TODO New key - Add a translation - "search.sidebar.results": "results", - + "search.sidebar.results": "Résultats", // "search.sidebar.settings.rpp": "Results per page", - // TODO New key - Add a translation - "search.sidebar.settings.rpp": "Results per page", - + "search.sidebar.settings.rpp": "Résultats par page", // "search.sidebar.settings.sort-by": "Sort By", - // TODO New key - Add a translation - "search.sidebar.settings.sort-by": "Sort By", - + "search.sidebar.settings.sort-by": "Trier par", // "search.sidebar.settings.title": "Settings", - // TODO New key - Add a translation - "search.sidebar.settings.title": "Settings", - - - + "search.sidebar.settings.title": "Paramètres", // "search.view-switch.show-detail": "Show detail", - // TODO New key - Add a translation - "search.view-switch.show-detail": "Show detail", - + "search.view-switch.show-detail": "Afficher détail", // "search.view-switch.show-grid": "Show as grid", - // TODO New key - Add a translation - "search.view-switch.show-grid": "Show as grid", - + "search.view-switch.show-grid": "Affichage Grille", // "search.view-switch.show-list": "Show as list", - // TODO New key - Add a translation - "search.view-switch.show-list": "Show as list", - - - + "search.view-switch.show-list": "Affichage Liste", // "sorting.dc.title.ASC": "Title Ascending", - // TODO New key - Add a translation - "sorting.dc.title.ASC": "Title Ascending", - + "sorting.dc.title.ASC": "Titre croissant", // "sorting.dc.title.DESC": "Title Descending", - // TODO New key - Add a translation - "sorting.dc.title.DESC": "Title Descending", - + "sorting.dc.title.DESC": "Titre décroissant", // "sorting.score.DESC": "Relevance", - // TODO New key - Add a translation - "sorting.score.DESC": "Relevance", - - - + "sorting.score.DESC": "Pertinence", + // "submission.edit.title": "Edit Submission", - // TODO New key - Add a translation - "submission.edit.title": "Edit Submission", - + "submission.edit.title": "Éditer dépôt", // "submission.general.cannot_submit": "You have not the privilege to make a new submission.", - // TODO New key - Add a translation - "submission.general.cannot_submit": "You have not the privilege to make a new submission.", - + "submission.general.cannot_submit": "Vous n'avez pas les droits requis pour réaliser un nouveau dépôt.", // "submission.general.deposit": "Deposit", - // TODO New key - Add a translation - "submission.general.deposit": "Deposit", - + "submission.general.deposit": "Déposer", // "submission.general.discard.confirm.cancel": "Cancel", - // TODO New key - Add a translation - "submission.general.discard.confirm.cancel": "Cancel", - + "submission.general.discard.confirm.cancel": "Annuler", // "submission.general.discard.confirm.info": "This operation can't be undone. Are you sure?", - // TODO New key - Add a translation - "submission.general.discard.confirm.info": "This operation can't be undone. Are you sure?", - + "submission.general.discard.confirm.info": "L'annulation est irréversible, les données du dépôt en cours seront perdues. Êtes-vous sûr(e) ?", // "submission.general.discard.confirm.submit": "Yes, I'm sure", - // TODO New key - Add a translation - "submission.general.discard.confirm.submit": "Yes, I'm sure", - + "submission.general.discard.confirm.submit": "Oui, certain(e)", // "submission.general.discard.confirm.title": "Discard submission", - // TODO New key - Add a translation - "submission.general.discard.confirm.title": "Discard submission", - + "submission.general.discard.confirm.title": "Annuler dépôt", // "submission.general.discard.submit": "Discard", - // TODO New key - Add a translation - "submission.general.discard.submit": "Discard", - + "submission.general.discard.submit": "Annuler", // "submission.general.save": "Save", - // TODO New key - Add a translation - "submission.general.save": "Save", - + "submission.general.save": "Sauvegarder", // "submission.general.save-later": "Save for later", - // TODO New key - Add a translation - "submission.general.save-later": "Save for later", - - - + "submission.general.save-later": "Sauvegarder pour plus tard", // "submission.sections.general.add-more": "Add more", - // TODO New key - Add a translation - "submission.sections.general.add-more": "Add more", - + "submission.sections.general.add-more": "Ajouter section(s)", // "submission.sections.general.collection": "Collection", - // TODO New key - Add a translation "submission.sections.general.collection": "Collection", - // "submission.sections.general.deposit_error_notice": "There was an issue when submitting the item, please try again later.", - // TODO New key - Add a translation - "submission.sections.general.deposit_error_notice": "There was an issue when submitting the item, please try again later.", - + "submission.sections.general.deposit_error_notice": "Une erreur s'est produite lors du dépôt de l'Item, veuillez réessayer plus tard.", // "submission.sections.general.deposit_success_notice": "Submission deposited successfully.", - // TODO New key - Add a translation - "submission.sections.general.deposit_success_notice": "Submission deposited successfully.", - + "submission.sections.general.deposit_success_notice": "Dépôt réalisé avec succès.", // "submission.sections.general.discard_error_notice": "There was an issue when discarding the item, please try again later.", - // TODO New key - Add a translation - "submission.sections.general.discard_error_notice": "There was an issue when discarding the item, please try again later.", - + "submission.sections.general.discard_error_notice": "Une erreur s'est produite lors de la suppression du brouillon, veuillez réessayer plus tard.", // "submission.sections.general.discard_success_notice": "Submission discarded successfully.", - // TODO New key - Add a translation - "submission.sections.general.discard_success_notice": "Submission discarded successfully.", - + "submission.sections.general.discard_success_notice": "Brouillon supprimé avec succès.", // "submission.sections.general.metadata-extracted": "New metadata have been extracted and added to the {{sectionId}} section.", - // TODO New key - Add a translation - "submission.sections.general.metadata-extracted": "New metadata have been extracted and added to the {{sectionId}} section.", - + "submission.sections.general.metadata-extracted": "De nouvelles métadonnées ont été extraites et ajoutées à la section {{sectionId}}.", // "submission.sections.general.metadata-extracted-new-section": "New {{sectionId}} section has been added to submission.", - // TODO New key - Add a translation - "submission.sections.general.metadata-extracted-new-section": "New {{sectionId}} section has been added to submission.", - + "submission.sections.general.metadata-extracted-new-section": "Nouvelle section {{sectionId}} ajoutée au dépôt.", // "submission.sections.general.no-collection": "No collection found", - // TODO New key - Add a translation - "submission.sections.general.no-collection": "No collection found", - + "submission.sections.general.no-collection": "Aucune Collection disponible", // "submission.sections.general.no-sections": "No options available", - // TODO New key - Add a translation - "submission.sections.general.no-sections": "No options available", - + "submission.sections.general.no-sections": "Aucune option disponible", // "submission.sections.general.save_error_notice": "There was an issue when saving the item, please try again later.", - // TODO New key - Add a translation - "submission.sections.general.save_error_notice": "There was an issue when saving the item, please try again later.", - + "submission.sections.general.save_error_notice": "Une erreur s'est produite à la sauvegarde du dépôt, veuillez réessayer plus tard.", // "submission.sections.general.save_success_notice": "Submission saved successfully.", - // TODO New key - Add a translation - "submission.sections.general.save_success_notice": "Submission saved successfully.", - + "submission.sections.general.save_success_notice": "Dépôt sauvegardé avec succès.", // "submission.sections.general.search-collection": "Search for a collection", - // TODO New key - Add a translation - "submission.sections.general.search-collection": "Search for a collection", - + "submission.sections.general.search-collection": "Rechercher une Collection", // "submission.sections.general.sections_not_valid": "There are incomplete sections.", - // TODO New key - Add a translation - "submission.sections.general.sections_not_valid": "There are incomplete sections.", - - - + "submission.sections.general.sections_not_valid": "Section(s) incomplète(s).", // "submission.sections.submit.progressbar.cclicense": "Creative commons license", - // TODO New key - Add a translation - "submission.sections.submit.progressbar.cclicense": "Creative commons license", - + "submission.sections.submit.progressbar.cclicense": "Licence Creative Commons", // "submission.sections.submit.progressbar.describe.recycle": "Recycle", - // TODO New key - Add a translation - "submission.sections.submit.progressbar.describe.recycle": "Recycle", - + "submission.sections.submit.progressbar.describe.recycle": "Recycler", // "submission.sections.submit.progressbar.describe.stepcustom": "Describe", - // TODO New key - Add a translation - "submission.sections.submit.progressbar.describe.stepcustom": "Describe", - + "submission.sections.submit.progressbar.describe.stepcustom": "Décrire", // "submission.sections.submit.progressbar.describe.stepone": "Describe", - // TODO New key - Add a translation - "submission.sections.submit.progressbar.describe.stepone": "Describe", - + "submission.sections.submit.progressbar.describe.stepone": "Décrire", // "submission.sections.submit.progressbar.describe.steptwo": "Describe", - // TODO New key - Add a translation - "submission.sections.submit.progressbar.describe.steptwo": "Describe", - + "submission.sections.submit.progressbar.describe.steptwo": "Décrire", // "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates", - // TODO New key - Add a translation - "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates", - + "submission.sections.submit.progressbar.detect-duplicate": "Doublon(s) potentiel(s)", // "submission.sections.submit.progressbar.license": "Deposit license", - // TODO New key - Add a translation - "submission.sections.submit.progressbar.license": "Deposit license", - + "submission.sections.submit.progressbar.license": "Licence de dépôt", // "submission.sections.submit.progressbar.upload": "Upload files", - // TODO New key - Add a translation - "submission.sections.submit.progressbar.upload": "Upload files", - - - + "submission.sections.submit.progressbar.upload": "Uploader", // "submission.sections.upload.delete.confirm.cancel": "Cancel", - // TODO New key - Add a translation - "submission.sections.upload.delete.confirm.cancel": "Cancel", - + "submission.sections.upload.delete.confirm.cancel": "Annuler", // "submission.sections.upload.delete.confirm.info": "This operation can't be undone. Are you sure?", - // TODO New key - Add a translation - "submission.sections.upload.delete.confirm.info": "This operation can't be undone. Are you sure?", - + "submission.sections.upload.delete.confirm.info": "Cette opération est irréversible. Êtes-vous sûr(e) ?", // "submission.sections.upload.delete.confirm.submit": "Yes, I'm sure", - // TODO New key - Add a translation - "submission.sections.upload.delete.confirm.submit": "Yes, I'm sure", - + "submission.sections.upload.delete.confirm.submit": "Oui, certain(e)", // "submission.sections.upload.delete.confirm.title": "Delete bitstream", - // TODO New key - Add a translation - "submission.sections.upload.delete.confirm.title": "Delete bitstream", - + "submission.sections.upload.delete.confirm.title": "Supprimer Bitstream", // "submission.sections.upload.delete.submit": "Delete", - // TODO New key - Add a translation - "submission.sections.upload.delete.submit": "Delete", - + "submission.sections.upload.delete.submit": "Supprimer", // "submission.sections.upload.drop-message": "Drop files to attach them to the item", - // TODO New key - Add a translation - "submission.sections.upload.drop-message": "Drop files to attach them to the item", - + "submission.sections.upload.drop-message": "Déposer des fichiers pour les lier à l'Item", // "submission.sections.upload.form.access-condition-label": "Access condition type", - // TODO New key - Add a translation - "submission.sections.upload.form.access-condition-label": "Access condition type", - + "submission.sections.upload.form.access-condition-label": "Niveau d'accès", // "submission.sections.upload.form.date-required": "Date is required.", - // TODO New key - Add a translation - "submission.sections.upload.form.date-required": "Date is required.", - + "submission.sections.upload.form.date-required": "Date obligatoire.", // "submission.sections.upload.form.from-label": "Access grant from", - // TODO New key - Add a translation - "submission.sections.upload.form.from-label": "Access grant from", - + "submission.sections.upload.form.from-label": "Accès accordé depuis", // "submission.sections.upload.form.from-placeholder": "From", - // TODO New key - Add a translation - "submission.sections.upload.form.from-placeholder": "From", - + "submission.sections.upload.form.from-placeholder": "Depuis", // "submission.sections.upload.form.group-label": "Group", - // TODO New key - Add a translation - "submission.sections.upload.form.group-label": "Group", - + "submission.sections.upload.form.group-label": "Groupe", // "submission.sections.upload.form.group-required": "Group is required.", - // TODO New key - Add a translation - "submission.sections.upload.form.group-required": "Group is required.", - + "submission.sections.upload.form.group-required": "Groupe requis.", // "submission.sections.upload.form.until-label": "Access grant until", - // TODO New key - Add a translation - "submission.sections.upload.form.until-label": "Access grant until", - + "submission.sections.upload.form.until-label": "Accès accordé jusque", // "submission.sections.upload.form.until-placeholder": "Until", - // TODO New key - Add a translation - "submission.sections.upload.form.until-placeholder": "Until", - + "submission.sections.upload.form.until-placeholder": "Jusque", // "submission.sections.upload.header.policy.default.nolist": "Uploaded files in the {{collectionName}} collection will be accessible according to the following group(s):", - // TODO New key - Add a translation - "submission.sections.upload.header.policy.default.nolist": "Uploaded files in the {{collectionName}} collection will be accessible according to the following group(s):", - + "submission.sections.upload.header.policy.default.nolist": "Les fichiers uploadés dans la Collection {{collectionName}} seront accessibles au(x) groupe(s) suivant(s) :", // "submission.sections.upload.header.policy.default.withlist": "Please note that uploaded files in the {{collectionName}} collection will be accessible, in addition to what is explicitly decided for the single file, with the following group(s):", - // TODO New key - Add a translation - "submission.sections.upload.header.policy.default.withlist": "Please note that uploaded files in the {{collectionName}} collection will be accessible, in addition to what is explicitly decided for the single file, with the following group(s):", - + "submission.sections.upload.header.policy.default.withlist": "Veuillez noter que, en complément des accès spécifiquement accordés pour le fichier, les fichiers uploadés dans la Collection {{collectionName}} seront accessibles par défaut au(x) groupe(s) suivant(s) :", // "submission.sections.upload.info": "Here you will find all the files currently in the item. You can update the fle metadata and access conditions or upload additional files just dragging & dropping them everywhere in the page", - // TODO New key - Add a translation - "submission.sections.upload.info": "Here you will find all the files currently in the item. You can update the fle metadata and access conditions or upload additional files just dragging & dropping them everywhere in the page", - + "submission.sections.upload.info": "Vous trouverez ici tous les fichiers actuellement associés à l'Item. Vous pouvez éditer les métadonnés et les niveaux d'accès de ce(s) fichier(s) ou uploader des fichiers complémentaires simplement en les glissant n'importe où sur cette page", // "submission.sections.upload.no-entry": "No", - // TODO New key - Add a translation - "submission.sections.upload.no-entry": "No", - + "submission.sections.upload.no-entry": "Non", // "submission.sections.upload.no-file-uploaded": "No file uploaded yet.", - // TODO New key - Add a translation - "submission.sections.upload.no-file-uploaded": "No file uploaded yet.", - + "submission.sections.upload.no-file-uploaded": "Aucun fichier uploadé.", // "submission.sections.upload.save-metadata": "Save metadata", - // TODO New key - Add a translation - "submission.sections.upload.save-metadata": "Save metadata", - + "submission.sections.upload.save-metadata": "Sauvegarder métadonnées", // "submission.sections.upload.undo": "Cancel", - // TODO New key - Add a translation - "submission.sections.upload.undo": "Cancel", - + "submission.sections.upload.undo": "Annuler", // "submission.sections.upload.upload-failed": "Upload failed", - // TODO New key - Add a translation - "submission.sections.upload.upload-failed": "Upload failed", - + "submission.sections.upload.upload-failed": "Échec de l'upload", // "submission.sections.upload.upload-successful": "Upload successful", - // TODO New key - Add a translation - "submission.sections.upload.upload-successful": "Upload successful", - - - + "submission.sections.upload.upload-successful": "Upload réussi", // "submission.submit.title": "Submission", - // TODO New key - Add a translation - "submission.submit.title": "Submission", - - + "submission.submit.title": "Dépôt", // "submission.workflow.generic.delete": "Delete", - // TODO New key - Add a translation - "submission.workflow.generic.delete": "Delete", - + "submission.workflow.generic.delete": "Supprimer", // "submission.workflow.generic.delete-help": "If you would to discard this item, select \"Delete\". You will then be asked to confirm it.", - // TODO New key - Add a translation - "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.delete-help": "Si vous souhaitez supprimer cet Item, cliquez sur « Supprimer ». Une confirmation vous sera alors demandée.", // "submission.workflow.generic.edit": "Edit", - // TODO New key - Add a translation - "submission.workflow.generic.edit": "Edit", - + "submission.workflow.generic.edit": "Éditer", // "submission.workflow.generic.edit-help": "Select this option to change the item's metadata.", - // TODO New key - Add a translation - "submission.workflow.generic.edit-help": "Select this option to change the item's metadata.", - + "submission.workflow.generic.edit-help": "Sélectionner cette option pour modifier les métadonnées de l'Item.", // "submission.workflow.generic.view": "View", - // TODO New key - Add a translation - "submission.workflow.generic.view": "View", - + "submission.workflow.generic.view": "Afficher", // "submission.workflow.generic.view-help": "Select this option to view the item's metadata.", - // TODO New key - Add a translation - "submission.workflow.generic.view-help": "Select this option to view the item's metadata.", - - + "submission.workflow.generic.view-help": "Sélectionner cette option pour afficher les métadonnées de l'Item.", // "submission.workflow.tasks.claimed.approve": "Approve", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.approve": "Approve", - + "submission.workflow.tasks.claimed.approve": "Approuver", // "submission.workflow.tasks.claimed.approve_help": "If you have reviewed the item and it is suitable for inclusion in the collection, select \"Approve\".", - // TODO New key - Add a translation - "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.approve_help": "Si vous avez contrôlé cet Item et qu'il peut être ajouté à la Collection, sélectionner l'option « Approuver ».", // "submission.workflow.tasks.claimed.edit": "Edit", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.edit": "Edit", - + "submission.workflow.tasks.claimed.edit": "Éditer", // "submission.workflow.tasks.claimed.edit_help": "Select this option to change the item's metadata.", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.edit_help": "Select this option to change the item's metadata.", - + "submission.workflow.tasks.claimed.edit_help": "Sélectionner cette option pour modifier les métadonnées de l'Item.", // "submission.workflow.tasks.claimed.reject.reason.info": "Please enter your reason for rejecting the submission into the box below, indicating whether the submitter may fix a problem and resubmit.", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.reject.reason.info": "Please enter your reason for rejecting the submission into the box below, indicating whether the submitter may fix a problem and resubmit.", - + "submission.workflow.tasks.claimed.reject.reason.info": "Veuillez spécifier la raison pour laquelle ce dépôt est rejeté dans le champ ci-dessous, en indicant si le déposant peut résoudre un problème et redéposer ensuite.", // "submission.workflow.tasks.claimed.reject.reason.placeholder": "Describe the reason of reject", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.reject.reason.placeholder": "Describe the reason of reject", - + "submission.workflow.tasks.claimed.reject.reason.placeholder": "Décrire la raison du rejet", // "submission.workflow.tasks.claimed.reject.reason.submit": "Reject item", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.reject.reason.submit": "Reject item", - + "submission.workflow.tasks.claimed.reject.reason.submit": "Rejeter Item", // "submission.workflow.tasks.claimed.reject.reason.title": "Reason", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.reject.reason.title": "Reason", - + "submission.workflow.tasks.claimed.reject.reason.title": "Raison", // "submission.workflow.tasks.claimed.reject.submit": "Reject", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.reject.submit": "Reject", - + "submission.workflow.tasks.claimed.reject.submit": "Rejeter", // "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.", - // TODO New key - Add a translation - "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.reject_help": "Si vous avez contrôle cet Item et qu'il ne peut PAS être ajouté à la Collection, sélectionner l'option « Rejeter ». Il vous sera alors demandé d'indiquer la raison de ce rejet et si le déposant peut apporter une correction avant de redéposer.", // "submission.workflow.tasks.claimed.return": "Return to pool", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.return": "Return to pool", - + "submission.workflow.tasks.claimed.return": "Se désassigner", // "submission.workflow.tasks.claimed.return_help": "Return the task to the pool so that another user may perform the task.", - // TODO New key - Add a translation - "submission.workflow.tasks.claimed.return_help": "Return the task to the pool so that another user may perform the task.", - - - + "submission.workflow.tasks.claimed.return_help": "Renvoyer la tâche dans le pool de validation pour qu'un autre utilisateur puisse en prendre soin.", // "submission.workflow.tasks.generic.error": "Error occurred during operation...", - // TODO New key - Add a translation - "submission.workflow.tasks.generic.error": "Error occurred during operation...", - + "submission.workflow.tasks.generic.error": "Une erreur s'est produite au cours de l'opération...", // "submission.workflow.tasks.generic.processing": "Processing...", - // TODO New key - Add a translation - "submission.workflow.tasks.generic.processing": "Processing...", - + "submission.workflow.tasks.generic.processing": "En cours de traitement...", // "submission.workflow.tasks.generic.submitter": "Submitter", - // TODO New key - Add a translation - "submission.workflow.tasks.generic.submitter": "Submitter", - + "submission.workflow.tasks.generic.submitter": "Déposant", // "submission.workflow.tasks.generic.success": "Operation successful", - // TODO New key - Add a translation - "submission.workflow.tasks.generic.success": "Operation successful", - - - + "submission.workflow.tasks.generic.success": "Opération exécutée avec succès", // "submission.workflow.tasks.pool.claim": "Claim", - // TODO New key - Add a translation - "submission.workflow.tasks.pool.claim": "Claim", - + "submission.workflow.tasks.pool.claim": "Prendre en charge", // "submission.workflow.tasks.pool.claim_help": "Assign this task to yourself.", - // TODO New key - Add a translation - "submission.workflow.tasks.pool.claim_help": "Assign this task to yourself.", - + "submission.workflow.tasks.pool.claim_help": "Assigner cette tâche à votre propre utilisateur.", // "submission.workflow.tasks.pool.hide-detail": "Hide detail", - // TODO New key - Add a translation - "submission.workflow.tasks.pool.hide-detail": "Hide detail", - + "submission.workflow.tasks.pool.hide-detail": "Masquer détails", // "submission.workflow.tasks.pool.show-detail": "Show detail", - // TODO New key - Add a translation - "submission.workflow.tasks.pool.show-detail": "Show detail", - - + "submission.workflow.tasks.pool.show-detail": "Afficher détails", // "title": "DSpace", - // TODO New key - Add a translation "title": "DSpace", - - - - // "uploader.browse": "browse", - // TODO New key - Add a translation - "uploader.browse": "browse", - - // "uploader.drag-message": "Drag & Drop your files here", - // TODO New key - Add a translation - "uploader.drag-message": "Drag & Drop your files here", - - // "uploader.or": ", or", - // TODO New key - Add a translation - "uploader.or": ", or", - - // "uploader.processing": "Processing", - // TODO New key - Add a translation - "uploader.processing": "Processing", - - // "uploader.queue-length": "Queue length", - // TODO New key - Add a translation - "uploader.queue-length": "Queue length", - - - -} \ No newline at end of file + // "uploader.browse": "browse", + "uploader.browse": "parcourir", + // "uploader.drag-message": "Drag & Drop your files here", + "uploader.drag-message": "Glisser & Déposer vos fichiers ici", + // "uploader.or": ", or", + "uploader.or": ", ou", + // "uploader.processing": "Processing", + "uploader.processing": "En cours de traitement", + // "uploader.queue-length": "Queue length", + "uploader.queue-length": "Longueur de la file d'attente", + +} diff --git a/resources/i18n/lv.json5 b/resources/i18n/lv.json5 new file mode 100644 index 0000000000..6a564bf5bb --- /dev/null +++ b/resources/i18n/lv.json5 @@ -0,0 +1,3234 @@ +{ + + // "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.help": "Meklēto lapu nav iespējams atrast. Iespējams, lapa ir pārvietota vai izdzēsta. Lai atgrieztos sākumlapā, varat izmantot zemāk esošo pogu. ", + + // "404.link.home-page": "Take me to the home page", + "404.link.home-page": "Argriezties uz sākumu", + + // "404.page-not-found": "page not found", + "404.page-not-found": "lapa nav atrasta", + + + + // "admin.registries.bitstream-formats.create.failure.content": "An error occurred while creating the new bitstream format.", + "admin.registries.bitstream-formats.create.failure.content": "Veidojot jauno bitu straumes formātu, radās kļūda.", + + // "admin.registries.bitstream-formats.create.failure.head": "Failure", + "admin.registries.bitstream-formats.create.failure.head": "Kļūda", + + // "admin.registries.bitstream-formats.create.head": "Create Bitstream format", + "admin.registries.bitstream-formats.create.head": "Izveidot Bitu straumes formātu", + + // "admin.registries.bitstream-formats.create.new": "Add a new bitstream format", + "admin.registries.bitstream-formats.create.new": "Pievienot jaunu bitu straumes formātu", + + // "admin.registries.bitstream-formats.create.success.content": "The new bitstream format was successfully created.", + "admin.registries.bitstream-formats.create.success.content": "Jauns bitu straumes formāts tika veiksmīgi izveidots.", + + // "admin.registries.bitstream-formats.create.success.head": "Success", + "admin.registries.bitstream-formats.create.success.head": "Veiksmīgi izpildīts", + + // "admin.registries.bitstream-formats.delete.failure.amount": "Failed to remove {{ amount }} format(s)", + "admin.registries.bitstream-formats.delete.failure.amount": "Neizdevās dzēst {{ amount }} formātu(s)", + + // "admin.registries.bitstream-formats.delete.failure.head": "Failure", + "admin.registries.bitstream-formats.delete.failure.head": "Kļūda", + + // "admin.registries.bitstream-formats.delete.success.amount": "Successfully removed {{ amount }} format(s)", + "admin.registries.bitstream-formats.delete.success.amount": "Veiksmīgi dzēsti {{ amount }} formats(i)", + + // "admin.registries.bitstream-formats.delete.success.head": "Success", + "admin.registries.bitstream-formats.delete.success.head": "Veiksmīgi izpildīts", + + // "admin.registries.bitstream-formats.description": "This list of bitstream formats provides information about known formats and their support level.", + "admin.registries.bitstream-formats.description": "Šis bitu straumes formātu saraksts sniedz informāciju par zināmajiem formātiem un to atbalsta līmeni.", + + // "admin.registries.bitstream-formats.edit.description.hint": "", + "admin.registries.bitstream-formats.edit.description.hint": "", + + // "admin.registries.bitstream-formats.edit.description.label": "Description", + "admin.registries.bitstream-formats.edit.description.label": "Apraksts", + + // "admin.registries.bitstream-formats.edit.extensions.hint": "Extensions are file extensions that are used to automatically identify the format of uploaded files. You can enter several extensions for each format.", + "admin.registries.bitstream-formats.edit.extensions.hint": "Paplašinājumi ir failu paplašinājumi, kurus izmanto, lai automātiski identificētu augšupielādēto failu formātu. Katram formātam var ievadīt vairākus paplašinājumus.", + + // "admin.registries.bitstream-formats.edit.extensions.label": "File extensions", + "admin.registries.bitstream-formats.edit.extensions.label": "Faila paplašinājums", + + // "admin.registries.bitstream-formats.edit.extensions.placeholder": "Enter a file extenstion without the dot", + "admin.registries.bitstream-formats.edit.extensions.placeholder": "Ievadiet faila paplašinājumu bez punkta", + + // "admin.registries.bitstream-formats.edit.failure.content": "An error occurred while editing the bitstream format.", + "admin.registries.bitstream-formats.edit.failure.content": "Rediģējot bitu straumes formātu, radās kļūda.", + + // "admin.registries.bitstream-formats.edit.failure.head": "Failure", + "admin.registries.bitstream-formats.edit.failure.head": "Kļūda", + + // "admin.registries.bitstream-formats.edit.head": "Bitstream format: {{ format }}", + "admin.registries.bitstream-formats.edit.head": "Bitu straumes formāts: {{ format }}", + + // "admin.registries.bitstream-formats.edit.internal.hint": "Formats marked as internal are hidden from the user, and used for administrative purposes.", + "admin.registries.bitstream-formats.edit.internal.hint": "Formāti, kas atzīmēti kā iekšēji, tiek paslēpti no lietotāja un tiek izmantoti administratīviem mērķiem.", + + // "admin.registries.bitstream-formats.edit.internal.label": "Internal", + "admin.registries.bitstream-formats.edit.internal.label": "Iekšējais", + + // "admin.registries.bitstream-formats.edit.mimetype.hint": "The MIME type associated with this format, does not have to be unique.", + "admin.registries.bitstream-formats.edit.mimetype.hint": "MIME tipam, kas saistīts ar šo formātu, nav jābūt unikālam.", + + // "admin.registries.bitstream-formats.edit.mimetype.label": "MIME Type", + "admin.registries.bitstream-formats.edit.mimetype.label": "MIME Tips", + + // "admin.registries.bitstream-formats.edit.shortDescription.hint": "A unique name for this format, (e.g. Microsoft Word XP or Microsoft Word 2000)", + "admin.registries.bitstream-formats.edit.shortDescription.hint": "Šim formātam ir unikāls nosaukums, (piem. Microsoft Word XP or Microsoft Word 2000)", + + // "admin.registries.bitstream-formats.edit.shortDescription.label": "Name", + "admin.registries.bitstream-formats.edit.shortDescription.label": "Nosaukums", + + // "admin.registries.bitstream-formats.edit.success.content": "The bitstream format was successfully edited.", + "admin.registries.bitstream-formats.edit.success.content": "Bitu straumes formāts tika veiksmīgi rediģēts.", + + // "admin.registries.bitstream-formats.edit.success.head": "Success", + "admin.registries.bitstream-formats.edit.success.head": "Veiksmīgi izpildīts", + + // "admin.registries.bitstream-formats.edit.supportLevel.hint": "The level of support your institution pledges for this format.", + "admin.registries.bitstream-formats.edit.supportLevel.hint": "Atbalsta līmenis, ko jūsu iestāde apņemas nodrošināt šim formātam.", + + // "admin.registries.bitstream-formats.edit.supportLevel.label": "Support level", + "admin.registries.bitstream-formats.edit.supportLevel.label": "Atbalsta līmenis", + + // "admin.registries.bitstream-formats.head": "Bitstream Format Registry", + "admin.registries.bitstream-formats.head": "Bitu straumes Formatu Reģistrs", + + // "admin.registries.bitstream-formats.no-items": "No bitstream formats to show.", + "admin.registries.bitstream-formats.no-items": "Nav rādāmi bitu straumes formāti.", + + // "admin.registries.bitstream-formats.table.delete": "Delete selected", + "admin.registries.bitstream-formats.table.delete": "Dzēst atlasīto", + + // "admin.registries.bitstream-formats.table.deselect-all": "Deselect all", + "admin.registries.bitstream-formats.table.deselect-all": "Noņemt atlasi", + + // "admin.registries.bitstream-formats.table.internal": "internal", + "admin.registries.bitstream-formats.table.internal": "Iekšējais", + + // "admin.registries.bitstream-formats.table.mimetype": "MIME Type", + "admin.registries.bitstream-formats.table.mimetype": "MIME Tips", + + // "admin.registries.bitstream-formats.table.name": "Name", + "admin.registries.bitstream-formats.table.name": "Nosaukums", + + // "admin.registries.bitstream-formats.table.return": "Return", + "admin.registries.bitstream-formats.table.return": "Atgriezties", + + // "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Known", + "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Zināms", + + // "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Supported", + "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Atbalstīts", + + // "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Unknown", + "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Nezināms", + + // "admin.registries.bitstream-formats.table.supportLevel.head": "Support Level", + "admin.registries.bitstream-formats.table.supportLevel.head": "Atbalsta Līmenis", + + // "admin.registries.bitstream-formats.title": "DSpace Angular :: Bitstream Format Registry", + "admin.registries.bitstream-formats.title": "DSpace Angular :: Bitu straumes Formatu Reģistrs", + + + + // "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.description": "Metadatu reģistrā tiek uzturēts visu repozitorijā pieejamo metadatu lauku saraksts. Šos laukus var sadalīt starp vairākām shēmām. Tomēr DSpace ir nepieciešama kvalificēta Dublin Core shēma.", + + // "admin.registries.metadata.form.create": "Create metadata schema", + "admin.registries.metadata.form.create": "Izveidot metadatu shēmu", + + // "admin.registries.metadata.form.edit": "Edit metadata schema", + "admin.registries.metadata.form.edit": "Rediģēt metadatu shēmu", + + // "admin.registries.metadata.form.name": "Name", + "admin.registries.metadata.form.name": "Nosaukums", + + // "admin.registries.metadata.form.namespace": "Namespace", + "admin.registries.metadata.form.namespace": "Nosaukumvieta", + + // "admin.registries.metadata.head": "Metadata Registry", + "admin.registries.metadata.head": "Metadatu reģistrs", + + // "admin.registries.metadata.schemas.no-items": "No metadata schemas to show.", + "admin.registries.metadata.schemas.no-items": "Nav rādāmas metadatu shēmas.", + + // "admin.registries.metadata.schemas.table.delete": "Delete selected", + "admin.registries.metadata.schemas.table.delete": "Dzēst izvēlēto", + + // "admin.registries.metadata.schemas.table.id": "ID", + "admin.registries.metadata.schemas.table.id": "ID", + + // "admin.registries.metadata.schemas.table.name": "Name", + "admin.registries.metadata.schemas.table.name": "Nosaukums", + + // "admin.registries.metadata.schemas.table.namespace": "Namespace", + "admin.registries.metadata.schemas.table.namespace": "Nosaukumvieta", + + // "admin.registries.metadata.title": "DSpace Angular :: Metadata Registry", + "admin.registries.metadata.title": "DSpace Angular :: Metadatu Registry", + + + + // "admin.registries.schema.description": "This is the metadata schema for \"{{namespace}}\".", + "admin.registries.schema.description": "Metadu shēma priekš \"{{namespace}}\".", + + // "admin.registries.schema.fields.head": "Schema metadata fields", + "admin.registries.schema.fields.head": "Shēmas metadatu lauki", + + // "admin.registries.schema.fields.no-items": "No metadata fields to show.", + "admin.registries.schema.fields.no-items": "Nav pieejami metadatu lauki.", + + // "admin.registries.schema.fields.table.delete": "Delete selected", + "admin.registries.schema.fields.table.delete": "Dzēst izvēlēto", + + // "admin.registries.schema.fields.table.field": "Field", + "admin.registries.schema.fields.table.field": "Lauks", + + // "admin.registries.schema.fields.table.scopenote": "Scope Note", + "admin.registries.schema.fields.table.scopenote": "Jomas Piezīme", + + // "admin.registries.schema.form.create": "Create metadata field", + "admin.registries.schema.form.create": "Izveidot matadatu lauku", + + // "admin.registries.schema.form.edit": "Edit metadata field", + "admin.registries.schema.form.edit": "Rediģēt metadatu lauku", + + // "admin.registries.schema.form.element": "Element", + "admin.registries.schema.form.element": "Elements", + + // "admin.registries.schema.form.qualifier": "Qualifier", + "admin.registries.schema.form.qualifier": "Kvalifikācija", + + // "admin.registries.schema.form.scopenote": "Scope Note", + "admin.registries.schema.form.scopenote": "Jomas Piezīme", + + // "admin.registries.schema.head": "Metadata Schema", + "admin.registries.schema.head": "Metadatu Shēma", + + // "admin.registries.schema.notification.created": "Successfully created metadata schema \"{{prefix}}\"", + "admin.registries.schema.notification.created": "Veiksmīgi izveidota metadatu shēma \"{{prefix}}\"", + + // "admin.registries.schema.notification.deleted.failure": "Failed to delete {{amount}} metadata schemas", + "admin.registries.schema.notification.deleted.failure": "Neizdevās izdzēst {{amount}} metadatu shēmas", + + // "admin.registries.schema.notification.deleted.success": "Successfully deleted {{amount}} metadata schemas", + "admin.registries.schema.notification.deleted.success": "{{amount}} metadatu shēmas ir veiksmīgi izdzēstas", + + // "admin.registries.schema.notification.edited": "Successfully edited metadata schema \"{{prefix}}\"", + "admin.registries.schema.notification.edited": "Veiksmīgi rediģēta metadatu shēma \"{{prefix}}\"", + + // "admin.registries.schema.notification.failure": "Error", + "admin.registries.schema.notification.failure": "Kļūda", + + // "admin.registries.schema.notification.field.created": "Successfully created metadata field \"{{field}}\"", + "admin.registries.schema.notification.field.created": "Metadatu lauks ir veiksmīgi izveidots \"{{field}}\"", + + // "admin.registries.schema.notification.field.deleted.failure": "Failed to delete {{amount}} metadata fields", + "admin.registries.schema.notification.field.deleted.failure": "Neizdevās izdzēst {{amount}} metadatu laukus", + + // "admin.registries.schema.notification.field.deleted.success": "Successfully deleted {{amount}} metadata fields", + "admin.registries.schema.notification.field.deleted.success": "{{amount}} metadatu lauki ir veiksmīgi izdzēsti", + + // "admin.registries.schema.notification.field.edited": "Successfully edited metadata field \"{{field}}\"", + "admin.registries.schema.notification.field.edited": "Metadatu lauks ir veiksmīgi rediģēts \"{{field}}\"", + + // "admin.registries.schema.notification.success": "Success", + "admin.registries.schema.notification.success": "Veiksmīgi izpildīts", + + // "admin.registries.schema.return": "Return", + "admin.registries.schema.return": "Atgriezties", + + // "admin.registries.schema.title": "DSpace Angular :: Metadata Schema Registry", + "admin.registries.schema.title": "DSpace Angular :: Metadatu shēmas reģistrs", + + + + // "admin.access-control.epeople.title": "DSpace Angular :: EPeople", + "admin.access-control.epeople.title": "DSpace Angular :: EPersonas", + + // "admin.access-control.epeople.head": "EPeople", + "admin.access-control.epeople.head": "EPersonas", + + // "admin.access-control.epeople.search.head": "Search", + "admin.access-control.epeople.search.head": "Meklēt", + + // "admin.access-control.epeople.search.scope.name": "Name", + "admin.access-control.epeople.search.scope.name": "Vārds", + + // "admin.access-control.epeople.search.scope.email": "E-mail (exact)", + "admin.access-control.epeople.search.scope.email": "E-pasts (pilns)", + + // "admin.access-control.epeople.search.scope.metadata": "Metadata", + "admin.access-control.epeople.search.scope.metadata": "Metadati", + + // "admin.access-control.epeople.search.button": "Search", + "admin.access-control.epeople.search.button": "Meklēt", + + // "admin.access-control.epeople.button.add": "Add EPerson", + "admin.access-control.epeople.button.add": "Pievienot EPersonu", + + // "admin.access-control.epeople.table.id": "ID", + "admin.access-control.epeople.table.id": "ID", + + // "admin.access-control.epeople.table.name": "Name", + "admin.access-control.epeople.table.name": "Lietotājs", + + // "admin.access-control.epeople.table.email": "E-mail", + "admin.access-control.epeople.table.email": "E-pasts", + + // "admin.access-control.epeople.table.edit": "Edit", + "admin.access-control.epeople.table.edit": "Rediģēt", + + // "item.access-control.epeople.table.edit.buttons.edit": "Edit", + "item.access-control.epeople.table.edit.buttons.edit": "Rediģēt", + + // "item.access-control.epeople.table.edit.buttons.remove": "Remove", + "item.access-control.epeople.table.edit.buttons.remove": "Dzēst", + + // "admin.access-control.epeople.no-items": "No EPeople to show.", + "admin.access-control.epeople.no-items": "Nav pieejamas EPersonas.", + + // "admin.access-control.epeople.form.create": "Create EPerson", + "admin.access-control.epeople.form.create": "Izveidot EPersonu", + + // "admin.access-control.epeople.form.edit": "Edit EPerson", + "admin.access-control.epeople.form.edit": "Rediģēt EPersonu", + + // "admin.access-control.epeople.form.firstName": "First name", + "admin.access-control.epeople.form.firstName": "Vārds", + + // "admin.access-control.epeople.form.lastName": "Last name", + "admin.access-control.epeople.form.lastName": "Uzvārds", + + // "admin.access-control.epeople.form.email": "E-mail", + "admin.access-control.epeople.form.email": "E-pasts", + + // "admin.access-control.epeople.form.emailHint": "Must be valid e-mail address", + "admin.access-control.epeople.form.emailHint": "Jābūt derīgai e-pasta adresei", + + // "admin.access-control.epeople.form.canLogIn": "Can log in", + "admin.access-control.epeople.form.canLogIn": "Var pierakstīties", + + // "admin.access-control.epeople.form.requireCertificate": "Requires certificate", + "admin.access-control.epeople.form.requireCertificate": "Nepieciešams sertifikāts", + + // "admin.access-control.epeople.form.notification.created.success": "Successfully created EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.success": "Veiksmīgi izveidota EPersona \"{{name}}\"", + + // "admin.access-control.epeople.form.notification.created.failure": "Failed to create EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.created.failure": "Neizdevās izveidot EPersonu \"{{name}}\"", + + // "admin.access-control.epeople.form.notification.created.failure.emailInUse": "Failed to create EPerson \"{{name}}\", email \"{{email}}\" already in use.", + "admin.access-control.epeople.form.notification.created.failure.emailInUse": "Neizdevās izveidot EPersonu \"{{name}}\", e-pasts \"{{email}}\" jau tiek lietots.", + + // "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "Failed to edit EPerson \"{{name}}\", email \"{{email}}\" already in use.", + "admin.access-control.epeople.form.notification.edited.failure.emailInUse": "Neizdevās rediģēt EPersonu \"{{name}}\", e-pasts \"{{email}}\" jau tiek lietots.", + + // "admin.access-control.epeople.form.notification.edited.success": "Successfully edited EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.edited.success": "Veiksmīgi rediģēta EPersona \"{{name}}\"", + + // "admin.access-control.epeople.form.notification.edited.failure": "Failed to edit EPerson \"{{name}}\"", + "admin.access-control.epeople.form.notification.edited.failure": "Neizdevās rediģēt EPerosnu \"{{name}}\"", + + // "admin.access-control.epeople.notification.deleted.failure": "Failed to delete EPerson: \"{{name}}\"", + "admin.access-control.epeople.notification.deleted.failure": "Neizdevās dzēst EPersonu: \"{{name}}\"", + + // "admin.access-control.epeople.notification.deleted.success": "Successfully deleted EPerson: \"{{name}}\"", + "admin.access-control.epeople.notification.deleted.success": "Veiksmīgi dzēsta EPersona: \"{{name}}\"", + + + + // "admin.search.breadcrumbs": "Administrative Search", + "admin.search.breadcrumbs": "Administratīvā Meklēšana", + + // "admin.search.collection.edit": "Edit", + "admin.search.collection.edit": "Rediģēt", + + // "admin.search.community.edit": "Edit", + "admin.search.community.edit": "Rediģēt", + + // "admin.search.item.delete": "Delete", + "admin.search.item.delete": "Dzēst", + + // "admin.search.item.edit": "Edit", + "admin.search.item.edit": "Rediģēt", + + // "admin.search.item.make-private": "Make Private", + "admin.search.item.make-private": "Padarīt Privātu", + + // "admin.search.item.make-public": "Make Public", + "admin.search.item.make-public": "Padarīt Publisku", + + // "admin.search.item.move": "Move", + "admin.search.item.move": "Pārvietot", + + // "admin.search.item.private": "Private", + "admin.search.item.private": "Privāts", + + // "admin.search.item.reinstate": "Reinstate", + "admin.search.item.reinstate": "Atjaunot", + + // "admin.search.item.withdraw": "Withdraw", + "admin.search.item.withdraw": "Atsaukt", + + // "admin.search.item.withdrawn": "Withdrawn", + "admin.search.item.withdrawn": "Atsaukts", + + // "admin.search.title": "Administrative Search", + "admin.search.title": "Administratīvā Meklēšana", + + + + // "auth.errors.invalid-user": "Invalid email address or password.", + "auth.errors.invalid-user": "Nepareizs e-pasta adrese vai parole.", + + // "auth.messages.expired": "Your session has expired. Please log in again.", + "auth.messages.expired": "Jūsu sesija ir beigusies. Lūdzu pieslēdzieties vēlreiz", + + + + // "browse.comcol.by.author": "By Author", + "browse.comcol.by.author": "Pēc Autora", + + // "browse.comcol.by.dateissued": "By Issue Date", + "browse.comcol.by.dateissued": "Pēc Izdošanas Datuma", + + // "browse.comcol.by.subject": "By Subject", + "browse.comcol.by.subject": "Pēc Priekšmeta", + + // "browse.comcol.by.title": "By Title", + "browse.comcol.by.title": "Pēc Nosaukuma", + + // "browse.comcol.head": "Browse", + "browse.comcol.head": "Pārlūkot", + + // "browse.empty": "No items to show.", + "browse.empty": "Ieraksti nav atrasti.", + + // "browse.metadata.author": "Author", + "browse.metadata.author": "Autors", + + // "browse.metadata.dateissued": "Issue Date", + "browse.metadata.dateissued": "Izdošanas datums", + + // "browse.metadata.subject": "Subject", + "browse.metadata.subject": "Priekšmets", + + // "browse.metadata.title": "Title", + "browse.metadata.title": "Nosaukums", + + // "browse.metadata.author.breadcrumbs": "Browse by Author", + "browse.metadata.author.breadcrumbs": "Meklēt pēc Autora", + + // "browse.metadata.dateissued.breadcrumbs": "Browse by Date", + "browse.metadata.dateissued.breadcrumbs": "Meklēt pēc Datuma", + + // "browse.metadata.subject.breadcrumbs": "Browse by Subject", + "browse.metadata.subject.breadcrumbs": "Meklēt pēc Priekšmeta", + + // "browse.metadata.title.breadcrumbs": "Browse by Title", + "browse.metadata.title.breadcrumbs": "Meklēt pēc Nosaukuma", + + // "browse.startsWith.choose_start": "(Choose start)", + "browse.startsWith.choose_start": "(Izvēlieties sākumu)", + + // "browse.startsWith.choose_year": "(Choose year)", + "browse.startsWith.choose_year": "(Izvēlieties gadu)", + + // "browse.startsWith.jump": "Jump to a point in the index:", + "browse.startsWith.jump": "Pāriet uz punktu indeksā:", + + // "browse.startsWith.months.april": "April", + "browse.startsWith.months.april": "Aprīlis", + + // "browse.startsWith.months.august": "August", + "browse.startsWith.months.august": "Augusts", + + // "browse.startsWith.months.december": "December", + "browse.startsWith.months.december": "Decembris", + + // "browse.startsWith.months.february": "February", + "browse.startsWith.months.february": "Februāris", + + // "browse.startsWith.months.january": "January", + "browse.startsWith.months.january": "Janvāris", + + // "browse.startsWith.months.july": "July", + "browse.startsWith.months.july": "Jūlijs", + + // "browse.startsWith.months.june": "June", + "browse.startsWith.months.june": "Jūnijs", + + // "browse.startsWith.months.march": "March", + "browse.startsWith.months.march": "Marts", + + // "browse.startsWith.months.may": "May", + "browse.startsWith.months.may": "Maijs", + + // "browse.startsWith.months.none": "(Choose month)", + "browse.startsWith.months.none": "(Izvēlieties mēnesi)", + + // "browse.startsWith.months.november": "November", + "browse.startsWith.months.november": "Novembris", + + // "browse.startsWith.months.october": "October", + "browse.startsWith.months.october": "Oktobris", + + // "browse.startsWith.months.september": "September", + "browse.startsWith.months.september": "Septembris", + + // "browse.startsWith.submit": "Go", + "browse.startsWith.submit": "Izpildīt", + + // "browse.startsWith.type_date": "Or type in a date (year-month):", + "browse.startsWith.type_date": "Vai ievadiet datumu (gads-mēnesis):", + + // "browse.startsWith.type_text": "Or enter first few letters:", + "browse.startsWith.type_text": "Vai arī ievadiet pirmos burtus:", + + // "browse.title": "Browsing {{ collection }} by {{ field }} {{ value }}", + "browse.title": "Meklē {{ collection }} pēc {{ field }} {{ value }}", + + + // "chips.remove": "Remove chip", + "chips.remove": "Dzēst daļu", + + + + // "collection.create.head": "Create a Collection", + "collection.create.head": "Izveidot Kolekciju", + + // "collection.create.notifications.success": "Successfully created the Collection", + "collection.create.notifications.success": "Kolekcija tika veiksmīgi izveidota", + + // "collection.create.sub-head": "Create a Collection for Community {{ parent }}", + "collection.create.sub-head": "Izveidot Kolekciju priekš Kategorijas {{ parent }}", + + // "collection.delete.cancel": "Cancel", + "collection.delete.cancel": "Atcelt", + + // "collection.delete.confirm": "Confirm", + "collection.delete.confirm": "Apstiprināt", + + // "collection.delete.head": "Delete Collection", + "collection.delete.head": "Dzēst Kolekciju", + + // "collection.delete.notification.fail": "Collection could not be deleted", + "collection.delete.notification.fail": "Kolekciju nevar izdzēst", + + // "collection.delete.notification.success": "Successfully deleted collection", + "collection.delete.notification.success": "Kolekcija ir veiksmīgi izdzēsta", + + // "collection.delete.text": "Are you sure you want to delete collection \"{{ dso }}\"", + "collection.delete.text": "Vai esat pārliecināts, ka vēlaties izdzēst kolekciju \"{{ dso }}\"", + + + + // "collection.edit.delete": "Delete this collection", + "collection.edit.delete": "Dzēst šo kolekciju", + + // "collection.edit.head": "Edit Collection", + "collection.edit.head": "Rediģēt Kolekciju", + + // "collection.edit.breadcrumbs": "Edit Collection", + "collection.edit.breadcrumbs": "Rediģēt Kolekciju", + + + + // "collection.edit.item-mapper.cancel": "Cancel", + "collection.edit.item-mapper.cancel": "Atcelt", + + // "collection.edit.item-mapper.collection": "Collection: \"{{name}}\"", + "collection.edit.item-mapper.collection": "Kolekcija: \"{{name}}\"", + + // "collection.edit.item-mapper.confirm": "Map selected items", + "collection.edit.item-mapper.confirm": "Piesaistīt izvēlētos materiālus", + + // "collection.edit.item-mapper.description": "This is the item mapper tool that allows collection administrators to map items from other collections into this collection. You can search for items from other collections and map them, or browse the list of currently mapped items.", + "collection.edit.item-mapper.description": "Šis ir materiālu piesaistīšanas rīks, kas kolekciju administratoriem ļauj šajā kolekcijā piesaistīt citu kolekciju materiālus. Jūs varat meklēt materiālus no citām kolekcijām un piesaistīt tos vai pārlūkot pašlaik piesaistīto materiālu sarakstu.", + + // "collection.edit.item-mapper.head": "Item Mapper - Map Items from Other Collections", + "collection.edit.item-mapper.head": "Materiālu piesaistīšana - Materiālu piesaistīšana no citas kolekcijas", + + // "collection.edit.item-mapper.no-search": "Please enter a query to search", + "collection.edit.item-mapper.no-search": "Lūdzu ievadiet vaicājumu,lai meklētu", + + // "collection.edit.item-mapper.notifications.map.error.content": "Errors occurred for mapping of {{amount}} items.", + "collection.edit.item-mapper.notifications.map.error.content": "{{amount}} materiālu piesaistīšanā radās kļūdas.", + + // "collection.edit.item-mapper.notifications.map.error.head": "Mapping errors", + "collection.edit.item-mapper.notifications.map.error.head": "Piesaistīšanas kļūdas", + + // "collection.edit.item-mapper.notifications.map.success.content": "Successfully mapped {{amount}} items.", + "collection.edit.item-mapper.notifications.map.success.content": "Veiksmīgi piesaistīti {{amount}} materiāli.", + + // "collection.edit.item-mapper.notifications.map.success.head": "Mapping completed", + "collection.edit.item-mapper.notifications.map.success.head": "Piesaistīšana pabeigta", + + // "collection.edit.item-mapper.notifications.unmap.error.content": "Errors occurred for removing the mappings of {{amount}} items.", + "collection.edit.item-mapper.notifications.unmap.error.content": "Noņemot piesaistītos materiālus {{amount}}, radās kļūda.", + + // "collection.edit.item-mapper.notifications.unmap.error.head": "Remove mapping errors", + "collection.edit.item-mapper.notifications.unmap.error.head": "Dzēst piesaistes kļūdas", + + // "collection.edit.item-mapper.notifications.unmap.success.content": "Successfully removed the mappings of {{amount}} items.", + "collection.edit.item-mapper.notifications.unmap.success.content": "Veiksmīgi dzēsta piesaiste {{amount}} materiāliem.", + + // "collection.edit.item-mapper.notifications.unmap.success.head": "Remove mapping completed", + "collection.edit.item-mapper.notifications.unmap.success.head": "Piesaistes dzēšana izpildīta", + + // "collection.edit.item-mapper.remove": "Remove selected item mappings", + "collection.edit.item-mapper.remove": "Dzēst izvēlēto materiālu piesaistes", + + // "collection.edit.item-mapper.tabs.browse": "Browse mapped items", + "collection.edit.item-mapper.tabs.browse": "Pārlūkot piesaistītos materiālus", + + // "collection.edit.item-mapper.tabs.map": "Map new items", + "collection.edit.item-mapper.tabs.map": "Piesaistīt jaunus materiālus", + + + + // "collection.edit.logo.label": "Collection logo", + "collection.edit.logo.label": "Kolekcijas logotips", + + // "collection.edit.logo.notifications.add.error": "Uploading Collection logo failed. Please verify the content before retrying.", + "collection.edit.logo.notifications.add.error": "Kolekcijas logotipa augšupielāde neizdevās. Pirms mēģināt vēlreiz, lūdzu, pārbaudiet saturu.", + + // "collection.edit.logo.notifications.add.success": "Upload Collection logo successful.", + "collection.edit.logo.notifications.add.success": "Kolekcijas logotipa augšupielāde ir veiksmīga.", + + // "collection.edit.logo.notifications.delete.success.title": "Logo deleted", + "collection.edit.logo.notifications.delete.success.title": "Logotips dzēsts", + + // "collection.edit.logo.notifications.delete.success.content": "Successfully deleted the collection's logo", + "collection.edit.logo.notifications.delete.success.content": "Kolekcijas logotips ir veiksmīgi izdzēsts", + + // "collection.edit.logo.notifications.delete.error.title": "Error deleting logo", + "collection.edit.logo.notifications.delete.error.title": "Kļūda dzēšot logotopu", + + // "collection.edit.logo.upload": "Drop a Collection Logo to upload", + "collection.edit.logo.upload": "Ievietot Kolekcijas logotipu, lai augšupielādētu", + + + + // "collection.edit.notifications.success": "Successfully edited the Collection", + "collection.edit.notifications.success": "Kolekcija ir veiksmīgi rediģēta", + + // "collection.edit.return": "Return", + "collection.edit.return": "Atgriezties", + + + + // "collection.edit.tabs.curate.head": "Curate", + "collection.edit.tabs.curate.head": "Pārvaldīt", + + // "collection.edit.tabs.curate.title": "Collection Edit - Curate", + "collection.edit.tabs.curate.title": "Rediģēt kolekciju - Pārvaldība", + + // "collection.edit.tabs.metadata.head": "Edit Metadata", + "collection.edit.tabs.metadata.head": "Rediģēt Metadatus", + + // "collection.edit.tabs.metadata.title": "Collection Edit - Metadata", + "collection.edit.tabs.metadata.title": "Rediģēt Kolekciju - Metadati", + + // "collection.edit.tabs.roles.head": "Assign Roles", + "collection.edit.tabs.roles.head": "Piešķirt Lomu", + + // "collection.edit.tabs.roles.title": "Collection Edit - Roles", + "collection.edit.tabs.roles.title": "Rediģēt Kolekciju - Lomas", + + // "collection.edit.tabs.source.external": "This collection harvests its content from an external source", + "collection.edit.tabs.source.external": "Šīs kolekcijas saturs tiek iegūts no ārēja avota", + + // "collection.edit.tabs.source.form.errors.oaiSource.required": "You must provide a set id of the target collection.", + "collection.edit.tabs.source.form.errors.oaiSource.required": "Jums ir jānorāda noteikts id no mērķa kolekcijas", + + // "collection.edit.tabs.source.form.harvestType": "Content being harvested", + "collection.edit.tabs.source.form.harvestType": "Saturs tiek iegūts", + + // "collection.edit.tabs.source.form.head": "Configure an external source", + "collection.edit.tabs.source.form.head": "Konfigurēt ārējo avotu", + + // "collection.edit.tabs.source.form.metadataConfigId": "Metadata Format", + "collection.edit.tabs.source.form.metadataConfigId": "Matadatu formāts", + + // "collection.edit.tabs.source.form.oaiSetId": "OAI specific set id", + "collection.edit.tabs.source.form.oaiSetId": "OAI konkrētas kopas id", + + // "collection.edit.tabs.source.form.oaiSource": "OAI Provider", + "collection.edit.tabs.source.form.oaiSource": "OAI Sniedzējs", + + // "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Harvest metadata and bitstreams (requires ORE support)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_BITSTREAMS": "Ievākt metadatus un bitu straumes (nepieciešams ORE atbalsts)", + + // "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Harvest metadata and references to bitstreams (requires ORE support)", + "collection.edit.tabs.source.form.options.harvestType.METADATA_AND_REF": "Ievākt metadatus un atsauces uz bitu straumēm (requires ORE support)", + + // "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Harvest metadata only", + "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Iegūt tikai metadatus", + + // "collection.edit.tabs.source.head": "Content Source", + "collection.edit.tabs.source.head": "Satura Avots", + + // "collection.edit.tabs.source.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + "collection.edit.tabs.source.notifications.discarded.content": "Jūsu veiktās izmaiņas tika atmestas. Lai atjaunotu izmaiņas, noklikšķiniet uz pogas 'Atsaukt'", + + // "collection.edit.tabs.source.notifications.discarded.title": "Changed discarded", + "collection.edit.tabs.source.notifications.discarded.title": "Mainīts atmests", + + // "collection.edit.tabs.source.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", + "collection.edit.tabs.source.notifications.invalid.content": "Jūsu veiktās izmaiņas netika saglabātas. Pirms saglabāšanas, lūdzu, pārliecinieties, vai visi lauki ir derīgi.", + + // "collection.edit.tabs.source.notifications.invalid.title": "Metadata invalid", + "collection.edit.tabs.source.notifications.invalid.title": "Metadati nav derīgi", + + // "collection.edit.tabs.source.notifications.saved.content": "Your changes to this collection's content source were saved.", + "collection.edit.tabs.source.notifications.saved.content": "Jūsu veiktās izmaiņas šīs kolekcijas satura avotā tika saglabātas.", + + // "collection.edit.tabs.source.notifications.saved.title": "Content Source saved", + "collection.edit.tabs.source.notifications.saved.title": "Satura avots ir saglabāts", + + // "collection.edit.tabs.source.title": "Collection Edit - Content Source", + "collection.edit.tabs.source.title": "Rediģēt Kolekciju - Satura Avots", + + + + // "collection.form.abstract": "Short Description", + "collection.form.abstract": "Īss apraksts", + + // "collection.form.description": "Introductory text (HTML)", + "collection.form.description": "Ievadteksts (HTML)", + + // "collection.form.errors.title.required": "Please enter a collection name", + "collection.form.errors.title.required": "Lūdzu ievadiet kolekcijas nosaukumu", + + // "collection.form.license": "License", + "collection.form.license": "Licence", + + // "collection.form.provenance": "Provenance", + "collection.form.provenance": "Izcelsmes avots", + + // "collection.form.rights": "Copyright text (HTML)", + "collection.form.rights": "Autortiesību teksts (HTML)", + + // "collection.form.tableofcontents": "News (HTML)", + "collection.form.tableofcontents": "Jaunumi (HTML)", + + // "collection.form.title": "Name", + "collection.form.title": "Nosaukums", + + + + // "collection.page.browse.recent.head": "Recent Submissions", + "collection.page.browse.recent.head": "Nesenie iesniegumi", + + // "collection.page.browse.recent.empty": "No items to show", + "collection.page.browse.recent.empty": "Ieraksti nav atrasti", + + // "collection.page.handle": "Permanent URI for this collection", + "collection.page.handle": "Kolekcijas nemainīgs URI", + + // "collection.page.license": "License", + "collection.page.license": "Licence", + + // "collection.page.news": "News", + "collection.page.news": "Jaunumi", + + + + // "collection.select.confirm": "Confirm selected", + "collection.select.confirm": "Apsitprināt izvēlēto", + + // "collection.select.empty": "No collections to show", + "collection.select.empty": "Kolekcijas nav pieejamas", + + // "collection.select.table.title": "Title", + "collection.select.table.title": "Nosaukums", + + + + // "collection.source.update.notifications.error.content": "The provided settings have been tested and didn't work.", + "collection.source.update.notifications.error.content": "Norādītie iestatījumi ir pārbaudīti un nedarbojas.", + + // "collection.source.update.notifications.error.title": "Server Error", + "collection.source.update.notifications.error.title": "Servera Kļūda", + + + + // "communityList.tabTitle": "DSpace - Community List", + "communityList.tabTitle": "DSpace - Kategoriju Saraksts", + + // "communityList.title": "List of Communities", + "communityList.title": "Kategoriju saraksts", + + // "communityList.showMore": "Show More", + "communityList.showMore": "Rādīt Vairāk", + + + + // "community.create.head": "Create a Community", + "community.create.head": "Izveidot Kategoriju", + + // "community.create.notifications.success": "Successfully created the Community", + "community.create.notifications.success": "Kategorija tika veiksmīgi izveidota", + + // "community.create.sub-head": "Create a Sub-Community for Community {{ parent }}", + "community.create.sub-head": "Izveidot Apakškategorija priekš Kategorijas {{ parent }}", + + // "community.delete.cancel": "Cancel", + "community.delete.cancel": "Atcelt", + + // "community.delete.confirm": "Confirm", + "community.delete.confirm": "Apstiprināt", + + // "community.delete.head": "Delete Community", + "community.delete.head": "Dzēst Kategoriju", + + // "community.delete.notification.fail": "Community could not be deleted", + "community.delete.notification.fail": "Kategriju nav iespējams izdzēst", + + // "community.delete.notification.success": "Successfully deleted community", + "community.delete.notification.success": "Veiksmīgi izdzēsta kategorija", + + // "community.delete.text": "Are you sure you want to delete community \"{{ dso }}\"", + "community.delete.text": "Vai tiešām vēlaties dzēst kategoriju \"{{ dso }}\"", + + // "community.edit.delete": "Delete this community", + "community.edit.delete": "Dzēst šo kategoriju", + + // "community.edit.head": "Edit Community", + "community.edit.head": "Rediģēt Kategoriju", + + // "community.edit.breadcrumbs": "Edit Community", + "community.edit.breadcrumbs": "Rediģēt Kategoriju", + + + // "community.edit.logo.label": "Community logo", + "community.edit.logo.label": "Kategorijas logotips", + + // "community.edit.logo.notifications.add.error": "Uploading Community logo failed. Please verify the content before retrying.", + "community.edit.logo.notifications.add.error": "Kategorijas logotipa augšupielāde neizdevās. Pirms mēģināt vēlreiz, lūdzu, pārbaudiet saturu.", + + // "community.edit.logo.notifications.add.success": "Upload Community logo successful.", + "community.edit.logo.notifications.add.success": "Kategorijas logotipa augšupielāde ir veiksmīga.", + + // "community.edit.logo.notifications.delete.success.title": "Logo deleted", + "community.edit.logo.notifications.delete.success.title": "logotips ir izdzēsts", + + // "community.edit.logo.notifications.delete.success.content": "Successfully deleted the community's logo", + "community.edit.logo.notifications.delete.success.content": "Kategorijas logotips ir veiksmīgi izdzēsts", + + // "community.edit.logo.notifications.delete.error.title": "Error deleting logo", + "community.edit.logo.notifications.delete.error.title": "Izdzēšot logotipu, radās kļūda", + + // "community.edit.logo.upload": "Drop a Community Logo to upload", + "community.edit.logo.upload": "Ievietot Kategorijas logotipu, lai augšupielādētu", + + + + // "community.edit.notifications.success": "Successfully edited the Community", + "community.edit.notifications.success": "Kategorija tika veiksmīgi rediģēta", + + // "community.edit.return": "Return", + "community.edit.return": "Atgriezties", + + + + // "community.edit.tabs.curate.head": "Curate", + "community.edit.tabs.curate.head": "Pārvaldīt", + + // "community.edit.tabs.curate.title": "Community Edit - Curate", + "community.edit.tabs.curate.title": "Rdiģēt Kategoriju - Pārvaldība", + + // "community.edit.tabs.metadata.head": "Edit Metadata", + "community.edit.tabs.metadata.head": "Rediģēt Metadatus", + + // "community.edit.tabs.metadata.title": "Community Edit - Metadata", + "community.edit.tabs.metadata.title": "Rediģēt Kategoriju - Metadati", + + // "community.edit.tabs.roles.head": "Assign Roles", + "community.edit.tabs.roles.head": "Piešķirt Lomas", + + // "community.edit.tabs.roles.title": "Community Edit - Roles", + "community.edit.tabs.roles.title": "Rediģēt Kategorju - Lomas", + + + + // "community.form.abstract": "Short Description", + "community.form.abstract": "Īss apraksts", + + // "community.form.description": "Introductory text (HTML)", + "community.form.description": "Ievadteksts (HTML)", + + // "community.form.errors.title.required": "Please enter a community name", + "community.form.errors.title.required": "Lūdzu ievadiet kategorijas nosaukumu", + + // "community.form.rights": "Copyright text (HTML)", + "community.form.rights": "Autortiesību teksts (HTML)", + + // "community.form.tableofcontents": "News (HTML)", + "community.form.tableofcontents": "Jaunumi (HTML)", + + // "community.form.title": "Name", + "community.form.title": "Nosaukums", + + // "community.page.handle": "Permanent URI for this community", + "community.page.handle": "Kategorijas nemainīgs URI", + + // "community.page.license": "License", + "community.page.license": "Licence", + + // "community.page.news": "News", + "community.page.news": "Jaunumi", + + // "community.all-lists.head": "Subcommunities and Collections", + "community.all-lists.head": "Apakškategorijas un Kolekcijas", + + // "community.sub-collection-list.head": "Collections of this Community", + "community.sub-collection-list.head": "Kolekcijas no šīs kategorijas", + + // "community.sub-community-list.head": "Communities of this Community", + "community.sub-community-list.head": "Šīs kategorijas apakš-kategorijas", + + + + // "dso-selector.create.collection.head": "New collection", + "dso-selector.create.collection.head": "Jauna kolekcija", + + // "dso-selector.create.community.head": "New community", + "dso-selector.create.community.head": "Jauna kategorija", + + // "dso-selector.create.community.sub-level": "Create a new community in", + "dso-selector.create.community.sub-level": "Izveidot jaunu kategroiju iekš", + + // "dso-selector.create.community.top-level": "Create a new top-level community", + "dso-selector.create.community.top-level": "Izveidot jaunu augstākā līmeņa kategoriju", + + // "dso-selector.create.item.head": "New item", + "dso-selector.create.item.head": "Jauns materiāls", + + // "dso-selector.edit.collection.head": "Edit collection", + "dso-selector.edit.collection.head": "Rediģēt kolekciju", + + // "dso-selector.edit.community.head": "Edit community", + "dso-selector.edit.community.head": "Rediģēt kategoriju", + + // "dso-selector.edit.item.head": "Edit item", + "dso-selector.edit.item.head": "Rediģēt matriālu", + + // "dso-selector.no-results": "No {{ type }} found", + "dso-selector.no-results": "Nav atrasts {{ type }}", + + // "dso-selector.placeholder": "Search for a {{ type }}", + "dso-selector.placeholder": "Meklēt {{ type }}", + + + + // "error.browse-by": "Error fetching items", + "error.browse-by": "Materiālu ielasīšanas kļūda", + + // "error.collection": "Error fetching collection", + "error.collection": "Kolekciju ielasīšanas kļūda", + + // "error.collections": "Error fetching collections", + "error.collections": "Kolekciju ielasīšanas kļūda", + + // "error.community": "Error fetching community", + "error.community": "Kategorijas ielasīšanas kļūda", + + // "error.identifier": "No item found for the identifier", + "error.identifier": "Netika atrasti materiāli dotajam identifikatoram", + + // "error.default": "Error", + "error.default": "Kļūda", + + // "error.item": "Error fetching item", + "error.item": "Materiāla ielasīšanas kļūda", + + // "error.items": "Error fetching items", + "error.items": "Materiālu ielasīšanas kļūda", + + // "error.objects": "Error fetching objects", + "error.objects": "Objektu ielasīšanas kļūda", + + // "error.recent-submissions": "Error fetching recent submissions", + "error.recent-submissions": "Neseno iesniegumu ielasīšanas kļūda", + + // "error.search-results": "Error fetching search results", + "error.search-results": "Meklēšanas rezultātu ielasīšanas kļūda", + + // "error.sub-collections": "Error fetching sub-collections", + "error.sub-collections": "Kļūda ielasot apakškolekcijas", + + // "error.sub-communities": "Error fetching sub-communities", + "error.sub-communities": "Apakškategorijas ielasīšanas kļūda", + + // "error.submission.sections.init-form-error": "An error occurred during section initialize, please check your input-form configuration. Details are below :

", + "error.submission.sections.init-form-error": "Sadaļas inicializācijas laikā radās kļūda. Lūdzu, pārbaudiet ievades formas konfigurāciju. Sīkāka informācija ir sniegta zemāk :

", + + // "error.top-level-communities": "Error fetching top-level communities", + "error.top-level-communities": "Kļūda ielasot augstākā līmeņa kategorijas", + + // "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.license.notgranted": "Jums ir jānodrošina šī licence, lai pabeigtu iesniegšanu. Ja šobrīd nevarat piešķirt šo licenci, varat saglabāt savu darbu un atgriezties vēlāk vai noņemt iesniegšanu.", + + // "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", + "error.validation.pattern": "Šo ievadi ierobežo pašreizējais modelis: {{ pattern }}.", + + // "error.validation.filerequired": "The file upload is mandatory", + "error.validation.filerequired": "Faila augšupielāde ir obligāta", + + + + // "footer.copyright": "copyright © 2002-{{ year }}", + "footer.copyright": "copyright © 2002-{{ year }}", + + // "footer.link.dspace": "DSpace software", + "footer.link.dspace": "DSpace software", + + // "footer.link.duraspace": "DuraSpace", + "footer.link.duraspace": "DuraSpace", + + + // "form.add": "Add", + "form.add": "Pievienot", + + // "form.add-help": "Click here to add the current entry and to add another one", + "form.add-help": "Noklikšķiniet šeit, lai pievienotu tekošo elementu un lai pievienotu vēl vienu", + + // "form.cancel": "Cancel", + "form.cancel": "Atcelt", + + // "form.clear": "Clear", + "form.clear": "Notīrīt", + + // "form.clear-help": "Click here to remove the selected value", + "form.clear-help": "Noklikšķiniet šeit, lai dzēstu atlasīto vērtību", + + // "form.edit": "Edit", + "form.edit": "Rediģēt", + + // "form.edit-help": "Click here to edit the selected value", + "form.edit-help": "Noklikšķiniet šeit, lai rediģēt atlasīto vērtību", + + // "form.first-name": "First name", + "form.first-name": "Vārds", + + // "form.group-collapse": "Collapse", + "form.group-collapse": "Sakļaut", + + // "form.group-collapse-help": "Click here to collapse", + "form.group-collapse-help": "Noklikšķiniet šeit, lai sakļautu", + + // "form.group-expand": "Expand", + "form.group-expand": "Izvērst", + + // "form.group-expand-help": "Click here to expand and add more elements", + "form.group-expand-help": "Noklikšķiniet šeit, lai izvērstu un pievienotu citus elementus", + + // "form.last-name": "Last name", + "form.last-name": "Uzvārds", + + // "form.loading": "Loading...", + "form.loading": "Notiek ielāde...", + + // "form.lookup": "Lookup", + "form.lookup": "Atrast", + + // "form.lookup-help": "Click here to look up an existing relation", + "form.lookup-help": "Noklikšķiniet šeit, lai meklētu esošu saistību", + + // "form.no-results": "No results found", + "form.no-results": "Rezultāti netika atrasti", + + // "form.no-value": "No value entered", + "form.no-value": "Vērtība netika ievadīta", + + // "form.other-information": {}, + "form.other-information": {}, + + // "form.remove": "Remove", + "form.remove": "Dzēst", + + // "form.save": "Save", + "form.save": "Saglabāt", + + // "form.save-help": "Save changes", + "form.save-help": "Saglabāt izmaiņas", + + // "form.search": "Search", + "form.search": "Meklēt", + + // "form.search-help": "Click here to looking for an existing correspondence", + "form.search-help": "Noklikšķiniet šeit, lai meklētu esošu korespondenci", + + // "form.submit": "Submit", + "form.submit": "Iesniegt", + + + + // "home.description": "", + "home.description": "", + + // "home.title": "DSpace Angular :: Home", + "home.title": "DSpace Angular :: Sākums", + + // "home.top-level-communities.head": "Communities in DSpace", + "home.top-level-communities.head": "DSpace Kategorijas", + + // "home.top-level-communities.help": "Select a community to browse its collections.", + "home.top-level-communities.help": "Izvēlieties kategoriju, lai pārlūkotu tās kolekcijas.", + + + + // "item.edit.delete.cancel": "Cancel", + "item.edit.delete.cancel": "Atcelt", + + // "item.edit.delete.confirm": "Delete", + "item.edit.delete.confirm": "Dzēst", + + // "item.edit.delete.description": "Are you sure this item should be completely deleted? Caution: At present, no tombstone would be left.", + "item.edit.delete.description": "Vai esat drošs, ka pilnībā vēlaties izdzēst šo ierakstu? Uzmanību: Ieraksta kopija netiks saglabāta.", + + // "item.edit.delete.error": "An error occurred while deleting the item", + "item.edit.delete.error": "Radās kļūda dzēšot materiālus", + + // "item.edit.delete.header": "Delete item: {{ id }}", + "item.edit.delete.header": "Dzēst materiālu: {{ id }}", + + // "item.edit.delete.success": "The item has been deleted", + "item.edit.delete.success": "Materiāls ir izdzēsts", + + // "item.edit.head": "Edit Item", + "item.edit.head": "Rediģēt Materiālu", + + // "item.edit.breadcrumbs": "Edit Item", + "item.edit.breadcrumbs": "Rediģēt Materiālu", + + + + // "item.edit.item-mapper.buttons.add": "Map item to selected collections", + "item.edit.item-mapper.buttons.add": "Piesaistīt materiālu piesaistītajai kolekcijai", + + // "item.edit.item-mapper.buttons.remove": "Remove item's mapping for selected collections", + "item.edit.item-mapper.buttons.remove": "Dzēst materiālus izvēlētajai kolekcijai", + + // "item.edit.item-mapper.cancel": "Cancel", + "item.edit.item-mapper.cancel": "Atcelt", + + // "item.edit.item-mapper.description": "This is the item mapper tool that allows administrators to map this item to other collections. You can search for collections and map them, or browse the list of collections the item is currently mapped to.", + "item.edit.item-mapper.description": "Šis ir materiālu piesaistīšanas rīks, kas ļauj administratoriem piesaistīt šo materiālu citās kolekcijās. Jūs varat meklēt kolekcijas un piesaistīt tās vai pārlūkot kolekciju sarakstu, uz kuru materiāls pašlaik ir piesaistīts.", + + // "item.edit.item-mapper.head": "Item Mapper - Map Item to Collections", + "item.edit.item-mapper.head": "Materiāla piesaistīšana - Piesaistīt Materiālu Kolekcijai", + + // "item.edit.item-mapper.item": "Item: \"{{name}}\"", + "item.edit.item-mapper.item": "Materiāls: \"{{name}}\"", + + // "item.edit.item-mapper.no-search": "Please enter a query to search", + "item.edit.item-mapper.no-search": "Lūdzu ievadiet vaicājumu, lai meklētu", + + // "item.edit.item-mapper.notifications.add.error.content": "Errors occurred for mapping of item to {{amount}} collections.", + "item.edit.item-mapper.notifications.add.error.content": "Radās kļūda piesaistot materiālus {{amount}} kolekcijai.", + + // "item.edit.item-mapper.notifications.add.error.head": "Mapping errors", + "item.edit.item-mapper.notifications.add.error.head": "Piesaistīšanas kļūdas", + + // "item.edit.item-mapper.notifications.add.success.content": "Successfully mapped item to {{amount}} collections.", + "item.edit.item-mapper.notifications.add.success.content": "Veiksmīgi piesaistīto materiāli {{amount}} kolekcijai.", + + // "item.edit.item-mapper.notifications.add.success.head": "Mapping completed", + "item.edit.item-mapper.notifications.add.success.head": "Piesaistīšana pabeigta", + + // "item.edit.item-mapper.notifications.remove.error.content": "Errors occurred for the removal of the mapping to {{amount}} collections.", + "item.edit.item-mapper.notifications.remove.error.content": "Rādās kļūdas noņemot piesaistes {{amount}} kolekcijām.", + + // "item.edit.item-mapper.notifications.remove.error.head": "Removal of mapping errors", + "item.edit.item-mapper.notifications.remove.error.head": "Piesaistīšanas kļūdu noņemšana", + + // "item.edit.item-mapper.notifications.remove.success.content": "Successfully removed mapping of item to {{amount}} collections.", + "item.edit.item-mapper.notifications.remove.success.content": "Veiksmīgi noņemta materiālu piesaiste {{amount}} kolekcijās.", + + // "item.edit.item-mapper.notifications.remove.success.head": "Removal of mapping completed", + "item.edit.item-mapper.notifications.remove.success.head": "Piesaistes noņemšana ir pabeigta", + + // "item.edit.item-mapper.tabs.browse": "Browse mapped collections", + "item.edit.item-mapper.tabs.browse": "Pārlūkot piesaistīās kolekcijas", + + // "item.edit.item-mapper.tabs.map": "Map new collections", + "item.edit.item-mapper.tabs.map": "Piesaistīt jaunu kolekciju", + + + + // "item.edit.metadata.add-button": "Add", + "item.edit.metadata.add-button": "Pievienot", + + // "item.edit.metadata.discard-button": "Discard", + "item.edit.metadata.discard-button": "Atmest", + + // "item.edit.metadata.edit.buttons.edit": "Edit", + "item.edit.metadata.edit.buttons.edit": "Rediģēt", + + // "item.edit.metadata.edit.buttons.remove": "Remove", + "item.edit.metadata.edit.buttons.remove": "Dzēst", + + // "item.edit.metadata.edit.buttons.undo": "Undo changes", + "item.edit.metadata.edit.buttons.undo": "Atsaukt izmaiņas", + + // "item.edit.metadata.edit.buttons.unedit": "Stop editing", + "item.edit.metadata.edit.buttons.unedit": "Pārtraukt rediģēšanu", + + // "item.edit.metadata.headers.edit": "Edit", + "item.edit.metadata.headers.edit": "Rediģēt", + + // "item.edit.metadata.headers.field": "Field", + "item.edit.metadata.headers.field": "Lauks", + + // "item.edit.metadata.headers.language": "Lang", + "item.edit.metadata.headers.language": "Valoda", + + // "item.edit.metadata.headers.value": "Value", + "item.edit.metadata.headers.value": "Vērtība", + + // "item.edit.metadata.metadatafield.invalid": "Please choose a valid metadata field", + "item.edit.metadata.metadatafield.invalid": "Lūdzu, izvēlieties derīgu metadatu lauku", + + // "item.edit.metadata.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + "item.edit.metadata.notifications.discarded.content": "Jūsu veiktās izmaiņas tika atmestas. Lai atjaunotu izmaiņas, noklikšķiniet uz pogas 'Atsaukt'", + + // "item.edit.metadata.notifications.discarded.title": "Changed discarded", + "item.edit.metadata.notifications.discarded.title": "Mainīts atmests", + + // "item.edit.metadata.notifications.invalid.content": "Your changes were not saved. Please make sure all fields are valid before you save.", + "item.edit.metadata.notifications.invalid.content": "Jūsu veiktās izmaiņas netika saglabātas. Pirms saglabāšanas, lūdzu, pārliecinieties, vai visi lauki ir derīgi.", + + // "item.edit.metadata.notifications.invalid.title": "Metadata invalid", + "item.edit.metadata.notifications.invalid.title": "Metadati nav derīgi", + + // "item.edit.metadata.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", + "item.edit.metadata.notifications.outdated.content": "Materiāls, kurā pašlaik strādājat, ir mainījis cits lietotājs. Jūsu pašreizējās izmaiņas tiek atmestas, lai novērstu konfliktus", + + // "item.edit.metadata.notifications.outdated.title": "Changed outdated", + "item.edit.metadata.notifications.outdated.title": "Mainīts novecojis", + + // "item.edit.metadata.notifications.saved.content": "Your changes to this item's metadata were saved.", + "item.edit.metadata.notifications.saved.content": "Jūsu veiktās izmaiņas šī materiāla metadatos tika saglabātas.", + + // "item.edit.metadata.notifications.saved.title": "Metadata saved", + "item.edit.metadata.notifications.saved.title": "Metadati saglabāti", + + // "item.edit.metadata.reinstate-button": "Undo", + "item.edit.metadata.reinstate-button": "Atsaukt", + + // "item.edit.metadata.save-button": "Save", + "item.edit.metadata.save-button": "Saglabāt", + + + + // "item.edit.modify.overview.field": "Field", + "item.edit.modify.overview.field": "Lauks", + + // "item.edit.modify.overview.language": "Language", + "item.edit.modify.overview.language": "Valoda", + + // "item.edit.modify.overview.value": "Value", + "item.edit.modify.overview.value": "Vērtība", + + + + // "item.edit.move.cancel": "Cancel", + "item.edit.move.cancel": "Atcelt", + + // "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.description": "Atlasiet kolekciju, uz kuru vēlaties pārvietot šo materiālu. Lai sašaurinātu parādīto kolekciju sarakstu, lodziņā varat ievadīt meklēšanas vaicājumu.", + + // "item.edit.move.error": "An error occurred when attempting to move the item", + "item.edit.move.error": "Mēģinot pārvietot materiālu, radās kļūda", + + // "item.edit.move.head": "Move item: {{id}}", + "item.edit.move.head": "Pārvietot materiālu: {{id}}", + + // "item.edit.move.inheritpolicies.checkbox": "Inherit policies", + "item.edit.move.inheritpolicies.checkbox": "Mantot nosacījumus", + + // "item.edit.move.inheritpolicies.description": "Inherit the default policies of the destination collection", + "item.edit.move.inheritpolicies.description": "Mantot mērķa kolekcijas noklusējuma politikas", + + // "item.edit.move.move": "Move", + "item.edit.move.move": "Pārvietot", + + // "item.edit.move.processing": "Moving...", + "item.edit.move.processing": "Pārvieto...", + + // "item.edit.move.search.placeholder": "Enter a search query to look for collections", + "item.edit.move.search.placeholder": "Ievadiet meklēšanas vaicājumu, lai meklētu kolekcijas", + + // "item.edit.move.success": "The item has been moved successfully", + "item.edit.move.success": "Materiāls ir veiksmīgi pārvietots", + + // "item.edit.move.title": "Move item", + "item.edit.move.title": "Pārvietot materiālu", + + + + // "item.edit.private.cancel": "Cancel", + "item.edit.private.cancel": "Atcelt", + + // "item.edit.private.confirm": "Make it Private", + "item.edit.private.confirm": "Padarīt privātu", + + // "item.edit.private.description": "Are you sure this item should be made private in the archive?", + "item.edit.private.description": "Vai esat pārliecināts, ka šim materiālam arhīvā jābūt privātam?", + + // "item.edit.private.error": "An error occurred while making the item private", + "item.edit.private.error": "Padarot elementu privātu radās kļūda", + + // "item.edit.private.header": "Make item private: {{ id }}", + "item.edit.private.header": "Padarīt materiālu privātu: {{ id }}", + + // "item.edit.private.success": "The item is now private", + "item.edit.private.success": "Materiāls tagad ir privāts", + + + + // "item.edit.public.cancel": "Cancel", + "item.edit.public.cancel": "Atcelt", + + // "item.edit.public.confirm": "Make it Public", + "item.edit.public.confirm": "Padarīt Publisku", + + // "item.edit.public.description": "Are you sure this item should be made public in the archive?", + "item.edit.public.description": "Vai tiešām vēlaties šo vienumu publiskot arhīvā?", + + // "item.edit.public.error": "An error occurred while making the item public", + "item.edit.public.error": "Padarot elementu publisku radās kļūda", + + // "item.edit.public.header": "Make item public: {{ id }}", + "item.edit.public.header": "Padarīt materiālu publisku: {{ id }}", + + // "item.edit.public.success": "The item is now public", + "item.edit.public.success": "Materiāls tagad ir publisks", + + + + // "item.edit.reinstate.cancel": "Cancel", + "item.edit.reinstate.cancel": "Atcelt", + + // "item.edit.reinstate.confirm": "Reinstate", + "item.edit.reinstate.confirm": "Atjaunot", + + // "item.edit.reinstate.description": "Are you sure this item should be reinstated to the archive?", + "item.edit.reinstate.description": "Vai esat pārliecināts, ka šo materiālu nepieciešams atjaunot arhīvā?", + + // "item.edit.reinstate.error": "An error occurred while reinstating the item", + "item.edit.reinstate.error": "Atjaunot materiālu, radās kļūda", + + // "item.edit.reinstate.header": "Reinstate item: {{ id }}", + "item.edit.reinstate.header": "Atjaunot materiālu: {{ id }}", + + // "item.edit.reinstate.success": "The item was reinstated successfully", + "item.edit.reinstate.success": "Materiāls tika veiksmīgi atjaunots", + + + + // "item.edit.relationships.discard-button": "Discard", + "item.edit.relationships.discard-button": "Atcelt", + + // "item.edit.relationships.edit.buttons.remove": "Remove", + "item.edit.relationships.edit.buttons.remove": "Dzēst", + + // "item.edit.relationships.edit.buttons.undo": "Undo changes", + "item.edit.relationships.edit.buttons.undo": "Atsaukt izmaiņas", + + // "item.edit.relationships.notifications.discarded.content": "Your changes were discarded. To reinstate your changes click the 'Undo' button", + "item.edit.relationships.notifications.discarded.content": "Jūsu veiktās izmaiņas tika atmestas. Lai atjaunotu izmaiņas, noklikšķiniet uz pogas 'Atsaukt'", + + // "item.edit.relationships.notifications.discarded.title": "Changes discarded", + "item.edit.relationships.notifications.discarded.title": "Mainīts atmests", + + // "item.edit.relationships.notifications.failed.title": "Error deleting relationship", + "item.edit.relationships.notifications.failed.title": "Kļūda dzēšot saikni", + + // "item.edit.relationships.notifications.outdated.content": "The item you're currently working on has been changed by another user. Your current changes are discarded to prevent conflicts", + "item.edit.relationships.notifications.outdated.content": "Materiāls, kurā pašlaik strādājat, ir mainījis cits lietotājs. Jūsu pašreizējās izmaiņas tiek atmestas, lai novērstu konfliktus", + + // "item.edit.relationships.notifications.outdated.title": "Changes outdated", + "item.edit.relationships.notifications.outdated.title": "Novecojušas izmaiņas", + + // "item.edit.relationships.notifications.saved.content": "Your changes to this item's relationships were saved.", + "item.edit.relationships.notifications.saved.content": "Jūsu veiktās izmaiņas šī materiāla saiknēs tika saglabātas.", + + // "item.edit.relationships.notifications.saved.title": "Relationships saved", + "item.edit.relationships.notifications.saved.title": "Saiknes saglabātas", + + // "item.edit.relationships.reinstate-button": "Undo", + "item.edit.relationships.reinstate-button": "Atsaukt", + + // "item.edit.relationships.save-button": "Save", + "item.edit.relationships.save-button": "Saglabāt", + + + + // "item.edit.tabs.bitstreams.head": "Item Bitstreams", + "item.edit.tabs.bitstreams.head": "Materiālu Bitstreams", + + // "item.edit.tabs.bitstreams.title": "Item Edit - Bitstreams", + "item.edit.tabs.bitstreams.title": "Rediģēt Materiālu - Bitu straumes", + + // "item.edit.tabs.curate.head": "Curate", + "item.edit.tabs.curate.head": "Pārvaldīt", + + // "item.edit.tabs.curate.title": "Item Edit - Curate", + "item.edit.tabs.curate.title": "Rediģēt Materiālu - Pārvaldība", + + // "item.edit.tabs.metadata.head": "Item Metadata", + "item.edit.tabs.metadata.head": "Materiāla Metadati", + + // "item.edit.tabs.metadata.title": "Item Edit - Metadata", + "item.edit.tabs.metadata.title": "Rediģēt Materiālu - Metadati", + + // "item.edit.tabs.relationships.head": "Item Relationships", + "item.edit.tabs.relationships.head": "Materiāla Attiecības", + + // "item.edit.tabs.relationships.title": "Item Edit - Relationships", + "item.edit.tabs.relationships.title": "Rediģēt Materiālu - Attiecības", + + // "item.edit.tabs.status.buttons.authorizations.button": "Authorizations...", + "item.edit.tabs.status.buttons.authorizations.button": "Tiesības...", + + // "item.edit.tabs.status.buttons.authorizations.label": "Edit item's authorization policies", + "item.edit.tabs.status.buttons.authorizations.label": "Rediģēt materiāla tiesības", + + // "item.edit.tabs.status.buttons.delete.button": "Permanently delete", + "item.edit.tabs.status.buttons.delete.button": "Neatgriezeniski izdzēst", + + // "item.edit.tabs.status.buttons.delete.label": "Completely expunge item", + "item.edit.tabs.status.buttons.delete.label": "Pilnīgi izņemt materiālu", + + // "item.edit.tabs.status.buttons.mappedCollections.button": "Mapped collections", + "item.edit.tabs.status.buttons.mappedCollections.button": "Piesaistītās kolekcijas", + + // "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections", + "item.edit.tabs.status.buttons.mappedCollections.label": "Pārvaldīt piesaistītās kolekcijas", + + // "item.edit.tabs.status.buttons.move.button": "Move...", + "item.edit.tabs.status.buttons.move.button": "Pārvieto...", + + // "item.edit.tabs.status.buttons.move.label": "Move item to another collection", + "item.edit.tabs.status.buttons.move.label": "Pārvietot materiālu uz citu kolekciju", + + // "item.edit.tabs.status.buttons.private.button": "Make it private...", + "item.edit.tabs.status.buttons.private.button": "Padarīt to privātu...", + + // "item.edit.tabs.status.buttons.private.label": "Make item private", + "item.edit.tabs.status.buttons.private.label": "Padarīt materiālu privātu", + + // "item.edit.tabs.status.buttons.public.button": "Make it public...", + "item.edit.tabs.status.buttons.public.button": "Padarīt to publisku...", + + // "item.edit.tabs.status.buttons.public.label": "Make item public", + "item.edit.tabs.status.buttons.public.label": "Padarīt materiālu publisku", + + // "item.edit.tabs.status.buttons.reinstate.button": "Reinstate...", + "item.edit.tabs.status.buttons.reinstate.button": "Atjaunot...", + + // "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository", + "item.edit.tabs.status.buttons.reinstate.label": "Atjaunot materiālu repozitorijā", + + // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...", + "item.edit.tabs.status.buttons.withdraw.button": "Atsaukt...", + + // "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository", + "item.edit.tabs.status.buttons.withdraw.label": "Izņemiet materiālu no repozitorijas", + + // "item.edit.tabs.status.description": "Welcome to the item management page. From here you can withdraw, reinstate, move or delete the item. You may also update or add new metadata / bitstreams on the other tabs.", + "item.edit.tabs.status.description": "Laipni lūdzam vienumu pārvaldības lapā. Šeit jūs varat materiālu izņemt, atjaunot, pārvietot vai izdzēst. Citās cilnēs varat arī atjaunināt vai pievienot jaunus metadatus / bitu straumes.", + + // "item.edit.tabs.status.head": "Item Status", + "item.edit.tabs.status.head": "Materiāla Status", + + // "item.edit.tabs.status.labels.handle": "Handle", + "item.edit.tabs.status.labels.handle": "Apstrāde", + + // "item.edit.tabs.status.labels.id": "Item Internal ID", + "item.edit.tabs.status.labels.id": "Materiāla Iekšējais ID", + + // "item.edit.tabs.status.labels.itemPage": "Item Page", + "item.edit.tabs.status.labels.itemPage": "Materiāla Lapa", + + // "item.edit.tabs.status.labels.lastModified": "Last Modified", + "item.edit.tabs.status.labels.lastModified": "Pēdējo reizi modificēts", + + // "item.edit.tabs.status.title": "Item Edit - Status", + "item.edit.tabs.status.title": "Rediģēt Materiālu - Statuss", + + // "item.edit.tabs.versionhistory.head": "Version History", + "item.edit.tabs.versionhistory.head": "Versiju Vēsture", + + // "item.edit.tabs.versionhistory.title": "Item Edit - Version History", + "item.edit.tabs.versionhistory.title": "Rediģēt Materiālu - Versiju Vēsture", + + // "item.edit.tabs.versionhistory.under-construction": "Editing or adding new versions is not yet possible in this user interface.", + "item.edit.tabs.versionhistory.under-construction": "Šajā lietotāja saskarnē vēl nav iespējams ienākt vai pievienot jaunas versijas.", + + // "item.edit.tabs.view.head": "View Item", + "item.edit.tabs.view.head": "Skatīt Materiālu", + + // "item.edit.tabs.view.title": "Item Edit - View", + "item.edit.tabs.view.title": "Materiāla Rediģēšana - Skats", + + + + // "item.edit.withdraw.cancel": "Cancel", + "item.edit.withdraw.cancel": "Atcelt", + + // "item.edit.withdraw.confirm": "Withdraw", + "item.edit.withdraw.confirm": "Atsaukt", + + // "item.edit.withdraw.description": "Are you sure this item should be withdrawn from the archive?", + "item.edit.withdraw.description": "Vai esat pārliecināts, ka šo materiālu vajadzētu izņemt no arhīva?", + + // "item.edit.withdraw.error": "An error occurred while withdrawing the item", + "item.edit.withdraw.error": "Izņemot materiālu, radās kļūda", + + // "item.edit.withdraw.header": "Withdraw item: {{ id }}", + "item.edit.withdraw.header": "Izņemt materiālu: {{ id }}", + + // "item.edit.withdraw.success": "The item was withdrawn successfully", + "item.edit.withdraw.success": "Materiāls tika veiksmīgi izņemts", + + + + // "item.page.abstract": "Abstract", + "item.page.abstract": "Kopsavilkums", + + // "item.page.author": "Authors", + "item.page.author": "Autori", + + // "item.page.citation": "Citation", + "item.page.citation": "Citēšana", + + // "item.page.collections": "Collections", + "item.page.collections": "Kolekcijas", + + // "item.page.date": "Date", + "item.page.date": "Datums", + + // "item.page.files": "Files", + "item.page.files": "Faili", + + // "item.page.filesection.description": "Description:", + "item.page.filesection.description": "Apraksts:", + + // "item.page.filesection.download": "Download", + "item.page.filesection.download": "Lejupielādēt", + + // "item.page.filesection.format": "Format:", + "item.page.filesection.format": "Formāts:", + + // "item.page.filesection.name": "Name:", + "item.page.filesection.name": "Nosaukums:", + + // "item.page.filesection.size": "Size:", + "item.page.filesection.size": "Izmērs:", + + // "item.page.journal.search.title": "Articles in this journal", + "item.page.journal.search.title": "Raksti šajā žurnālā", + + // "item.page.link.full": "Full item page", + "item.page.link.full": "Pilna materiālu lapa", + + // "item.page.link.simple": "Simple item page", + "item.page.link.simple": "Vienkārša materiālu lapa", + + // "item.page.person.search.title": "Articles by this author", + "item.page.person.search.title": "Šī autora raksti", + + // "item.page.related-items.view-more": "Show {{ amount }} more", + "item.page.related-items.view-more": "Parādīt {{ amount }} vairāk", + + // "item.page.related-items.view-less": "Hide last {{ amount }}", + "item.page.related-items.view-less": "Paslēpt pēdējo {{ amount }}", + + // "item.page.relationships.isAuthorOfPublication": "Publications", + "item.page.relationships.isAuthorOfPublication": "Publikācijas", + + // "item.page.relationships.isJournalOfPublication": "Publications", + "item.page.relationships.isJournalOfPublication": "Publikācijas", + + // "item.page.relationships.isOrgUnitOfPerson": "Authors", + "item.page.relationships.isOrgUnitOfPerson": "Autori", + + // "item.page.relationships.isOrgUnitOfProject": "Research Projects", + "item.page.relationships.isOrgUnitOfProject": "Pētniecības projekti", + + // "item.page.subject": "Keywords", + "item.page.subject": "Atslēgas vārdi", + + // "item.page.uri": "URI", + "item.page.uri": "URI", + + + + // "item.select.confirm": "Confirm selected", + "item.select.confirm": "Apstiprināt izvēlētos", + + // "item.select.empty": "No items to show", + "item.select.empty": "Ieraksti nav atrasti", + + // "item.select.table.author": "Author", + "item.select.table.author": "Autors", + + // "item.select.table.collection": "Collection",Research Projects + "item.select.table.collection": "Kolekcija", + + // "item.select.table.title": "Title", + "item.select.table.title": "Nosaukums", + + + // "item.version.history.empty": "There are no other versions for this item yet.", + "item.version.history.empty": "Šim materiālam vēl nav citu versiju.", + + // "item.version.history.head": "Version History", + "item.version.history.head": "Versiju Vēsture", + + // "item.version.history.return": "Return", + "item.version.history.return": "Atgriezties", + + // "item.version.history.selected": "Selected version", + "item.version.history.selected": "Izvēlētā versija", + + // "item.version.history.table.version": "Version", + "item.version.history.table.version": "Versija", + + // "item.version.history.table.item": "Item", + "item.version.history.table.item": "Materiāls", + + // "item.version.history.table.editor": "Editor", + "item.version.history.table.editor": "Redaktors", + + // "item.version.history.table.date": "Date", + "item.version.history.table.date": "Datums", + + // "item.version.history.table.summary": "Summary", + "item.version.history.table.summary": "Kopsavilkums", + + + + // "item.version.notice": "This is not the latest version of this item. The latest version can be found here.", + "item.version.notice": "Šī nav jaunākā šī materiāla versija. Jaunāko versiju var atrast here.", + + + + // "journal.listelement.badge": "Journal", + "journal.listelement.badge": "Žurnāls", + + // "journal.page.description": "Description", + "journal.page.description": "Apraksts", + + // "journal.page.editor": "Editor-in-Chief", + "journal.page.editor": "Galvenais Radaktors", + + // "journal.page.issn": "ISSN", + "journal.page.issn": "ISSN", + + // "journal.page.publisher": "Publisher", + "journal.page.publisher": "Izdevējs", + + // "journal.page.titleprefix": "Journal: ", + "journal.page.titleprefix": "Žurnāls: ", + + // "journal.search.results.head": "Journal Search Results", + "journal.search.results.head": "Žurnālu meklēšanas rezultāti", + + // "journal.search.title": "DSpace Angular :: Journal Search", + "journal.search.title": "DSpace Angular :: Žurnālu Meklēšana", + + + + // "journalissue.listelement.badge": "Journal Issue", + "journalissue.listelement.badge": "Žurnāla izdevums", + + // "journalissue.page.description": "Description", + "journalissue.page.description": "Apraksts", + + // "journalissue.page.issuedate": "Issue Date", + "journalissue.page.issuedate": "Izdošanas Datums", + + // "journalissue.page.journal-issn": "Journal ISSN", + "journalissue.page.journal-issn": "Žurnāla ISSN", + + // "journalissue.page.journal-title": "Journal Title", + "journalissue.page.journal-title": "Žurnāla nosaukums", + + // "journalissue.page.keyword": "Keywords", + "journalissue.page.keyword": "Atslēgas vārdi", + + // "journalissue.page.number": "Number", + "journalissue.page.number": "Numurs", + + // "journalissue.page.titleprefix": "Journal Issue: ", + "journalissue.page.titleprefix": "Žurnāla izdevums: ", + + + + // "journalvolume.listelement.badge": "Journal Volume", + "journalvolume.listelement.badge": "Žurnāla sējums", + + // "journalvolume.page.description": "Description", + "journalvolume.page.description": "Apraksts", + + // "journalvolume.page.issuedate": "Issue Date", + "journalvolume.page.issuedate": "Izdošanas Datums", + + // "journalvolume.page.titleprefix": "Journal Volume: ", + "journalvolume.page.titleprefix": "Žurnāla sējums: ", + + // "journalvolume.page.volume": "Volume", + "journalvolume.page.volume": "Sējums", + + + + // "loading.browse-by": "Loading items...", + "loading.browse-by": "Notiek materiālu ielāde...", + + // "loading.browse-by-page": "Loading page...", + "loading.browse-by-page": "Notiek lapas ielāde...", + + // "loading.collection": "Loading collection...", + "loading.collection": "Notiek kolekcijas ielāde...", + + // "loading.collections": "Loading collections...", + "loading.collections": "Notiek kolekciju ielāde...", + + // "loading.content-source": "Loading content source...", + "loading.content-source": "Notiek satura avota ielāde...", + + // "loading.community": "Loading community...", + "loading.community": "Notiek kategoriju ielāde...", + + // "loading.default": "Loading...", + "loading.default": "Notiek ielāde...", + + // "loading.item": "Loading item...", + "loading.item": "Notiek materiāla ielāde...", + + // "loading.items": "Loading items...", + "loading.items": "Notiek materiālu ielāde...", + + // "loading.mydspace-results": "Loading items...", + "loading.mydspace-results": "Notiek materiālu ielāde..", + + // "loading.objects": "Loading...", + "loading.objects": "Notiek ielāde...", + + // "loading.recent-submissions": "Loading recent submissions...", + "loading.recent-submissions": "Notiek neseno iesniegumu ielāde...", + + // "loading.search-results": "Loading search results...", + "loading.search-results": "Notiek maklēšanas rezulātu ielāde...", + + // "loading.sub-collections": "Loading sub-collections...", + "loading.sub-collections": "Notiek apakškolekciju ielāde...", + + // "loading.sub-communities": "Loading sub-communities...", + "loading.sub-communities": "Notiek apakškategoriju ielāde...", + + // "loading.top-level-communities": "Loading top-level communities...", + "loading.top-level-communities": "Notiek augstākā līmeņa kategorju ielāde...", + + + + // "login.form.email": "Email address", + "login.form.email": "E-pasta adrese", + + // "login.form.forgot-password": "Have you forgotten your password?", + "login.form.forgot-password": "Vai esat aizmirsis paroli?", + + // "login.form.header": "Please log in to DSpace", + "login.form.header": "Lūdzu pieslēdzieties DSpace", + + // "login.form.new-user": "New user? Click here to register.", + "login.form.new-user": "Jauns lietotājs? Noklikšķiniet šeit, lai reģistrētos.", + + // "login.form.or-divider": "or", + "login.form.or-divider": "vai", + + // "login.form.password": "Password", + "login.form.password": "Parole", + + // "login.form.shibboleth": "Log in with Shibboleth", + "login.form.shibboleth": "Pieslēgties ar Shibboleth", + + // "login.form.submit": "Log in", + "login.form.submit": "Pieslēgties", + + // "login.title": "Login", + "login.title": "Pierakstīties", + + // "login.breadcrumbs": "Login", + "login.breadcrumbs": "Pierakstīties", + + + + // "logout.form.header": "Log out from DSpace", + "logout.form.header": "Izrakstīties no DSpace", + + // "logout.form.submit": "Log out", + "logout.form.submit": "Izrakstīties", + + // "logout.title": "Logout", + "logout.title": "Izrakstīties", + + + + // "menu.header.admin": "Admin", + "menu.header.admin": "Administrators", + + // "menu.header.image.logo": "Repository logo", + "menu.header.image.logo": "Repozitorijas logotips", + + + + // "menu.section.access_control": "Access Control", + "menu.section.access_control": "Piekļuves kontrole", + + // "menu.section.access_control_authorizations": "Authorizations", + "menu.section.access_control_authorizations": "Pilnvaras", + + // "menu.section.access_control_groups": "Groups", + "menu.section.access_control_groups": "Grupas", + + // "menu.section.access_control_people": "People", + "menu.section.access_control_people": "Personas", + + + + // "menu.section.admin_search": "Admin Search", + "menu.section.admin_search": "Administratora Meklēšana", + + + + // "menu.section.browse_community": "This Community", + "menu.section.browse_community": "Šī kategorija", + + // "menu.section.browse_community_by_author": "Pēc Autora", + "menu.section.browse_community_by_author": "Pēc Autora", + + // "menu.section.browse_community_by_issue_date": "By Issue Date", + "menu.section.browse_community_by_issue_date": "Pēc Izdošanas Datuma", + + // "menu.section.browse_community_by_title": "By Title", + "menu.section.browse_community_by_title": "Pēc Nosaukuma", + + // "menu.section.browse_global": "All of DSpace", + "menu.section.browse_global": "Viss no DSpace", + + // "menu.section.browse_global_by_author": "By Author", + "menu.section.browse_global_by_author": "Pēc Autora", + + // "menu.section.browse_global_by_dateissued": "By Issue Date", + "menu.section.browse_global_by_dateissued": "Pēc Izdošanas Datuma", + + // "menu.section.browse_global_by_subject": "By Subject", + "menu.section.browse_global_by_subject": "Pēc Priekšmeta", + + // "menu.section.browse_global_by_title": "By Title", + "menu.section.browse_global_by_title": "Pēc Nosaukuma", + + // "menu.section.browse_global_communities_and_collections": "Communities & Collections", + "menu.section.browse_global_communities_and_collections": "Kategorijas & Kolekcijas", + + + + // "menu.section.control_panel": "Control Panel", + "menu.section.control_panel": "Vadības Panelis", + + // "menu.section.curation_task": "Curation Task", + "menu.section.curation_task": "Kuratora Uzdevums", + + + + // "menu.section.edit": "Edit", + "menu.section.edit": "Rediģēt", + + // "menu.section.edit_collection": "Collection", + "menu.section.edit_collection": "Kolekcija", + + // "menu.section.edit_community": "Community", + "menu.section.edit_community": "Kategorija", + + // "menu.section.edit_item": "Item", + "menu.section.edit_item": "Materiāls", + + + + // "menu.section.export": "Export", + "menu.section.export": "Eksportēt", + + // "menu.section.export_collection": "Collection", + "menu.section.export_collection": "Kolekcija", + + // "menu.section.export_community": "Community", + "menu.section.export_community": "Kategorija", + + // "menu.section.export_item": "Item", + "menu.section.export_item": "Materiāls", + + // "menu.section.export_metadata": "Metadata", + "menu.section.export_metadata": "Metadati", + + + + // "menu.section.icon.access_control": "Access Control menu section", + "menu.section.icon.access_control": "Piekļuves kontroles izvēlnes sadaļa", + + // "menu.section.icon.admin_search": "Admin search menu section", + "menu.section.icon.admin_search": "Administratoru meklēšanas izvēlnes sadaļa", + + // "menu.section.icon.control_panel": "Control Panel menu section", + "menu.section.icon.control_panel": "Vadības paneļa izvēlnes sadaļa", + + // "menu.section.icon.curation_task": "Curation Task menu section", + "menu.section.icon.curation_task": "Kuratora uzdevumu izvēlnes sadaļa", + + // "menu.section.icon.edit": "Edit menu section", + "menu.section.icon.edit": "Labot izvēlnes sadaļu", + + // "menu.section.icon.export": "Export menu section", + "menu.section.icon.export": "Eksportēt izvēlnes sadaļu", + + // "menu.section.icon.find": "Find menu section", + "menu.section.icon.find": "Atrast izvēlnes sadaļu", + + // "menu.section.icon.import": "Import menu section", + "menu.section.icon.import": "Importēt izvēlnes sadaļa", + + // "menu.section.icon.new": "New menu section", + "menu.section.icon.new": "Jauna izvēlnes sadaļa", + + // "menu.section.icon.pin": "Pin sidebar", + "menu.section.icon.pin": "Piespraust sānjoslu", + + // "menu.section.icon.registries": "Registries menu section", + "menu.section.icon.registries": "Reģistru izvēlnes sadaļa", + + // "menu.section.icon.statistics_task": "Statistics Task menu section", + "menu.section.icon.statistics_task": "Statistkas uzdevumu izvēlnes sadaļa", + + // "menu.section.icon.unpin": "Unpin sidebar", + "menu.section.icon.unpin": "Atspraust sānjoslu", + + + + // "menu.section.import": "Import", + "menu.section.import": "Importēt", + + // "menu.section.import_batch": "Batch Import (ZIP)", + "menu.section.import_batch": "Importēt (ZIP)", + + // "menu.section.import_metadata": "Metadata", + "menu.section.import_metadata": "Metadati", + + + + // "menu.section.new": "New", + "menu.section.new": "Jauns", + + // "menu.section.new_collection": "Collection", + "menu.section.new_collection": "Kolkecija", + + // "menu.section.new_community": "Community", + "menu.section.new_community": "Kategorija", + + // "menu.section.new_item": "Item", + "menu.section.new_item": "Materiāls", + + // "menu.section.new_item_version": "Item Version", + "menu.section.new_item_version": "Materiāla Versija", + + + + // "menu.section.pin": "Pin sidebar", + "menu.section.pin": "Piespraust sānjoslu", + + // "menu.section.unpin": "Unpin sidebar", + "menu.section.unpin": "Atspraust sānjoslu", + + + + // "menu.section.registries": "Registries", + "menu.section.registries": "Reģistri", + + // "menu.section.registries_format": "Format", + "menu.section.registries_format": "Formāts", + + // "menu.section.registries_metadata": "Metadata", + "menu.section.registries_metadata": "Metadati", + + + + // "menu.section.statistics": "Statistics", + "menu.section.statistics": "Statistika", + + // "menu.section.statistics_task": "Statistics Task", + "menu.section.statistics_task": "Statistikas Uzdevumi", + + + + // "menu.section.toggle.access_control": "Toggle Access Control section", + "menu.section.toggle.access_control": "Pārslēgt Piekļuvas Kontronles sadaļu", + + // "menu.section.toggle.control_panel": "Toggle Control Panel section", + "menu.section.toggle.control_panel": "Pārslēgt Vadības Paneļa sadaļu", + + // "menu.section.toggle.curation_task": "Toggle Curation Task section", + "menu.section.toggle.curation_task": "Pārslēgt Kuratora Uzdevumu sadaļu", + + // "menu.section.toggle.edit": "Toggle Edit section", + "menu.section.toggle.edit": "Pārslēgt Rediģēt sadaļu", + + // "menu.section.toggle.export": "Toggle Export section", + "menu.section.toggle.export": "Pārslēgt Eksportēt sadaļu", + + // "menu.section.toggle.find": "Toggle Find section", + "menu.section.toggle.find": "Pārslēgt Meklēt sadaļu", + + // "menu.section.toggle.import": "Toggle Import section", + "menu.section.toggle.import": "Pārslēgt Importēt sadaļu", + + // "menu.section.toggle.new": "Toggle New section", + "menu.section.toggle.new": "Pārslēgt Jauns sadaļu", + + // "menu.section.toggle.registries": "Toggle Registries section", + "menu.section.toggle.registries": "Pārslēgt Reģistru sadaļu", + + // "menu.section.toggle.statistics_task": "Toggle Statistics Task section", + "menu.section.toggle.statistics_task": "Pārslēgt Statistikas Uzdevumu sadaļu", + + + + // "mydspace.description": "", + "mydspace.description": "", + + // "mydspace.general.text-here": "HERE", + "mydspace.general.text-here": "ŠEIT", + + // "mydspace.messages.controller-help": "Select this option to send a message to item's submitter.", + "mydspace.messages.controller-help": "Atlasiet šo opciju, lai nosūtītu materiāla objekta iesniedzējam.", + + // "mydspace.messages.description-placeholder": "Insert your message here...", + "mydspace.messages.description-placeholder": "Ievietojiet savu ziņojumu šeit ...", + + // "mydspace.messages.hide-msg": "Hide message", + "mydspace.messages.hide-msg": "Paslēpt ziņojumu", + + // "mydspace.messages.mark-as-read": "Mark as read", + "mydspace.messages.mark-as-read": "Atzīmēt kā lasītu", + + // "mydspace.messages.mark-as-unread": "Mark as unread", + "mydspace.messages.mark-as-unread": "Atzīmēt kā nelasītu", + + // "mydspace.messages.no-content": "No content.", + "mydspace.messages.no-content": "Nav satura.", + + // "mydspace.messages.no-messages": "No messages yet.", + "mydspace.messages.no-messages": "Nav paziņojumu.", + + // "mydspace.messages.send-btn": "Send", + "mydspace.messages.send-btn": "Sūtīt", + + // "mydspace.messages.show-msg": "Show message", + "mydspace.messages.show-msg": "Parādīt ziņu", + + // "mydspace.messages.subject-placeholder": "Subject...", + "mydspace.messages.subject-placeholder": "Priekšmets...", + + // "mydspace.messages.submitter-help": "Select this option to send a message to controller.", + "mydspace.messages.submitter-help": "Atlasiet šo opciju, lai nosūtītu ziņojumu kontrolierim.", + + // "mydspace.messages.title": "Messages", + "mydspace.messages.title": "Vēstules", + + // "mydspace.messages.to": "To", + "mydspace.messages.to": "Uz", + + // "mydspace.new-submission": "New submission", + "mydspace.new-submission": "Jauns iesniegums", + + // "mydspace.results.head": "Your submissions", + "mydspace.results.head": "Jūsu iesniegumi", + + // "mydspace.results.no-abstract": "No Abstract", + "mydspace.results.no-abstract": "Nav Kopsavilkums", + + // "mydspace.results.no-authors": "No Authors", + "mydspace.results.no-authors": "Nav Autoru", + + // "mydspace.results.no-collections": "No Collections", + "mydspace.results.no-collections": "Nav Kolekcijas", + + // "mydspace.results.no-date": "No Date", + "mydspace.results.no-date": "Nav Datuma", + + // "mydspace.results.no-files": "No Files", + "mydspace.results.no-files": "Nav Failu", + + // "mydspace.results.no-results": "There were no items to show", + "mydspace.results.no-results": "Nav materiālu, ko parādīt", + + // "mydspace.results.no-title": "No title", + "mydspace.results.no-title": "Nav Nosaukuma", + + // "mydspace.results.no-uri": "No Uri", + "mydspace.results.no-uri": "Nav Uri", + + // "mydspace.show.workflow": "All tasks", + "mydspace.show.workflow": "Visi uzdevumi", + + // "mydspace.show.workspace": "Your Submissions", + "mydspace.show.workspace": "Jūsu Iesniegumi", + + // "mydspace.status.archived": "Archived", + "mydspace.status.archived": "Arhivēts", + + // "mydspace.status.validation": "Validation", + "mydspace.status.validation": "Validācija", + + // "mydspace.status.waiting-for-controller": "Waiting for controller", + "mydspace.status.waiting-for-controller": "Gaida kontrolieri", + + // "mydspace.status.workflow": "Workflow", + "mydspace.status.workflow": "Darba plūsma", + + // "mydspace.status.workspace": "Workspace", + "mydspace.status.workspace": "Darbavieta", + + // "mydspace.title": "MyDSpace", + "mydspace.title": "Mans DSpace", + + // "mydspace.upload.upload-failed": "Error creating new workspace. Please verify the content uploaded before retry.", + "mydspace.upload.upload-failed": "Veidojot jaunu darbvietu, radās kļūda. Lūdzu pārbaudiet augšupielādēto saturu pirms mēģiniet vēlreiz.", + + // "mydspace.upload.upload-multiple-successful": "{{qty}} new workspace items created.", + "mydspace.upload.upload-multiple-successful": "{{qty}} izveidoti jauni darbvietas materiāli.", + + // "mydspace.upload.upload-successful": "New workspace item created. Click {{here}} for edit it.", + "mydspace.upload.upload-successful": "Ir izveidots jauns darbvietas materiāls. Noklikšķiniet {{here}}, lai to rediģētu.", + + // "mydspace.view-btn": "View", + "mydspace.view-btn": "Skatīt", + + + + // "nav.browse.header": "All of DSpace", + "nav.browse.header": "Viss no DSpace", + + // "nav.community-browse.header": "By Community", + "nav.community-browse.header": "Pēc Kategorijas", + + // "nav.language": "Language switch", + "nav.language": "Valodas maiņa", + + // "nav.login": "Log In", + "nav.login": "Pieslēgties", + + // "nav.logout": "Log Out", + "nav.logout": "Izrakstīties", + + // "nav.mydspace": "MyDSpace", + "nav.mydspace": "Mans DSpace", + + // "nav.profile": "Profile", + "nav.profile": "Profils", + + // "nav.search": "Search", + "nav.search": "Meklēt", + + // "nav.statistics.header": "Statistics", + "nav.statistics.header": "Statistika", + + + + // "orgunit.listelement.badge": "Organizational Unit", + "orgunit.listelement.badge": "Struktūrvienība", + + // "orgunit.page.city": "City", + "orgunit.page.city": "Pilsēta", + + // "orgunit.page.country": "Country", + "orgunit.page.country": "Valsts", + + // "orgunit.page.dateestablished": "Date established", + "orgunit.page.dateestablished": "Dibināšanas datums", + + // "orgunit.page.description": "Description", + "orgunit.page.description": "Apraksts", + + // "orgunit.page.id": "ID", + "orgunit.page.id": "ID", + + // "orgunit.page.titleprefix": "Organizational Unit: ", + "orgunit.page.titleprefix": "Struktūrvienība: ", + + + + // "pagination.results-per-page": "Results Per Page", + "pagination.results-per-page": "Rezultāti vienā lapā", + + // "pagination.showing.detail": "{{ range }} of {{ total }}", + "pagination.showing.detail": "{{ range }} no {{ total }}", + + // "pagination.showing.label": "Now showing ", + "pagination.showing.label": "Tagad rāda ", + + // "pagination.sort-direction": "Sort Options", + "pagination.sort-direction": "Kārtošanas iespējas", + + + + // "person.listelement.badge": "Person", + "person.listelement.badge": "Persona", + + // "person.page.birthdate": "Birth Date", + "person.page.birthdate": "Dzimšanas datums", + + // "person.page.email": "Email Address", + "person.page.email": "E-pasta adrese", + + // "person.page.firstname": "First Name", + "person.page.firstname": "Vārds", + + // "person.page.jobtitle": "Job Title", + "person.page.jobtitle": "Ieņemamais amats", + + // "person.page.lastname": "Last Name", + "person.page.lastname": "Uzvārds", + + // "person.page.link.full": "Show all metadata", + "person.page.link.full": "Parādīt visus metadatus", + + // "person.page.orcid": "ORCID", + "person.page.orcid": "ORCID", + + // "person.page.staffid": "Staff ID", + "person.page.staffid": "Personāla ID", + + // "person.page.titleprefix": "Person: ", + "person.page.titleprefix": "Persona: ", + + // "person.search.results.head": "Person Search Results", + "person.search.results.head": "Personas meklēšanas rezultāti", + + // "person.search.title": "DSpace Angular :: Person Search", + "person.search.title": "DSpace Angular :: Personas Meklēšana", + + + + // "profile.breadcrumbs": "Update Profile", + "profile.breadcrumbs": "Atjaunot Profilu", + + // "profile.card.identify": "Identify", + "profile.card.identify": "Identificēt", + + // "profile.card.security": "Security", + "profile.card.security": "Drošība", + + // "profile.form.submit": "Update Profile", + "profile.form.submit": "Atjaunot Profilu", + + // "profile.groups.head": "Authorization groups you belong to", + "profile.groups.head": "Autorizācijas grupas, kurām jūs piederat", + + // "profile.head": "Update Profile", + "profile.head": "Atjaunot Profilu", + + // "profile.metadata.form.error.firstname.required": "First Name is required", + "profile.metadata.form.error.firstname.required": "Vārds ir nepieciešams", + + // "profile.metadata.form.error.lastname.required": "Last Name is required", + "profile.metadata.form.error.lastname.required": "Uzvārds ir nepieciešams", + + // "profile.metadata.form.label.email": "Email Address", + "profile.metadata.form.label.email": "E-pasta adrese", + + // "profile.metadata.form.label.firstname": "First Name", + "profile.metadata.form.label.firstname": "Vārds", + + // "profile.metadata.form.label.language": "Language", + "profile.metadata.form.label.language": "Valoda", + + // "profile.metadata.form.label.lastname": "Last Name", + "profile.metadata.form.label.lastname": "Uzvārds", + + // "profile.metadata.form.label.phone": "Contact Telephone", + "profile.metadata.form.label.phone": "Kontakttālrunis", + + // "profile.metadata.form.notifications.success.content": "Your changes to the profile were saved.", + "profile.metadata.form.notifications.success.content": "Profila izmaiņas tika saglabātas.", + + // "profile.metadata.form.notifications.success.title": "Profile saved", + "profile.metadata.form.notifications.success.title": "Profils saglabāts", + + // "profile.notifications.warning.no-changes.content": "No changes were made to the Profile.", + "profile.notifications.warning.no-changes.content": "Profilā izmaiņas netika veiktas.", + + // "profile.notifications.warning.no-changes.title": "No changes", + "profile.notifications.warning.no-changes.title": "Bez izmaiņām", + + // "profile.security.form.error.matching-passwords": "The passwords do not match.", + "profile.security.form.error.matching-passwords": "Paroles nesakrīt.", + + // "profile.security.form.error.password-length": "The password should be at least 6 characters long.", + "profile.security.form.error.password-length": "Parolei jābūt vismaz 6 rakstzīmju garai.", + + // "profile.security.form.info": "Optionally, you can enter a new password in the box below, and confirm it by typing it again into the second box. It should be at least six characters long.", + "profile.security.form.info": "Pēc izvēles zemāk esošajā lodziņā varat ievadīt jaunu paroli un apstiprināt to, atkārtoti ierakstot to otrajā lodziņā. Tam jābūt vismaz sešu rakstzīmju garam.", + + // "profile.security.form.label.password": "Password", + "profile.security.form.label.password": "Parole", + + // "profile.security.form.label.passwordrepeat": "Retype to confirm", + "profile.security.form.label.passwordrepeat": "Atkārtojiet, lai apstiprinātu", + + // "profile.security.form.notifications.success.content": "Your changes to the password were saved.", + "profile.security.form.notifications.success.content": "Jūsu paroles izmaiņas tika saglabātas.", + + // "profile.security.form.notifications.success.title": "Password saved", + "profile.security.form.notifications.success.title": "Parole saglabāta", + + // "profile.security.form.notifications.error.title": "Error changing passwords", + "profile.security.form.notifications.error.title": "Kļūda mainot paroles", + + // "profile.security.form.notifications.error.not-long-enough": "The password has to be at least 6 characters long.", + "profile.security.form.notifications.error.not-long-enough": "Parolei jābūt vismaz 6 rakstzīmju garai.", + + // "profile.security.form.notifications.error.not-same": "The provided passwords are not the same.", + "profile.security.form.notifications.error.not-same": "Norādītās paroles nav vienādas.", + + // "profile.title": "Update Profile", + "profile.title": "Atjaunot profilu", + + + + // "project.listelement.badge": "Research Project", + "project.listelement.badge": "Izpētes projekts", + + // "project.page.contributor": "Contributors", + "project.page.contributor": "Līdzautori", + + // "project.page.description": "Description", + "project.page.description": "Apraksts", + + // "project.page.expectedcompletion": "Expected Completion", + "project.page.expectedcompletion": "Sagaidāmais pabeigšanas datums", + + // "project.page.funder": "Funders", + "project.page.funder": "Izveidotāji", + + // "project.page.id": "ID", + "project.page.id": "ID", + + // "project.page.keyword": "Keywords", + "project.page.keyword": "Atslēgas vārdi", + + // "project.page.status": "Status", + "project.page.status": "Status", + + // "project.page.titleprefix": "Research Project: ", + "project.page.titleprefix": "Izpētes projekts: ", + + // "project.search.results.head": "Project Search Results", + "project.search.results.head": "Projekta meklēšanas rezultāti", + + + + // "publication.listelement.badge": "Publication", + "publication.listelement.badge": "Publikācija", + + // "publication.page.description": "Description", + "publication.page.description": "Apraksts", + + // "publication.page.journal-issn": "Journal ISSN", + "publication.page.journal-issn": "Žurnāla ISSN", + + // "publication.page.journal-title": "Journal Title", + "publication.page.journal-title": "Žurnāla Nosaukums", + + // "publication.page.publisher": "Publisher", + "publication.page.publisher": "Izdevējs", + + // "publication.page.titleprefix": "Publication: ", + "publication.page.titleprefix": "Publikācija: ", + + // "publication.page.volume-title": "Volume Title", + "publication.page.volume-title": "Sējuma Nosaukums", + + // "publication.search.results.head": "Publication Search Results", + "publication.search.results.head": "Publikāciju meklēšanas rezultāti", + + // "publication.search.title": "DSpace Angular :: Publication Search", + "publication.search.title": "DSpace Angular :: Publikācijas meklēšana", + + + + // "relationships.isAuthorOf": "Authors", + "relationships.isAuthorOf": "Autori", + + // "relationships.isIssueOf": "Journal Issues", + "relationships.isIssueOf": "Žurnāla Izdevumi", + + // "relationships.isJournalIssueOf": "Journal Issue", + "relationships.isJournalIssueOf": "Žurnāla Izdevums", + + // "relationships.isJournalOf": "Journals", + "relationships.isJournalOf": "Žurnāli", + + // "relationships.isOrgUnitOf": "Organizational Units", + "relationships.isOrgUnitOf": "Struktūrvienības", + + // "relationships.isPersonOf": "Authors", + "relationships.isPersonOf": "Autori", + + // "relationships.isProjectOf": "Research Projects", + "relationships.isProjectOf": "Pētniecības Projekti", + + // "relationships.isPublicationOf": "Publications", + "relationships.isPublicationOf": "Publikācijas", + + // "relationships.isPublicationOfJournalIssue": "Articles", + "relationships.isPublicationOfJournalIssue": "Raksti", + + // "relationships.isSingleJournalOf": "Journal", + "relationships.isSingleJournalOf": "Žurnāls", + + // "relationships.isSingleVolumeOf": "Journal Volume", + "relationships.isSingleVolumeOf": "Žurnāla Sējums", + + // "relationships.isVolumeOf": "Journal Volumes", + "relationships.isVolumeOf": "Žurnāla Sējums", + + // "relationships.isContributorOf": "Contributors", + "relationships.isContributorOf": "Līdzautori", + + + + // "search.description": "", + "search.description": "", + + // "search.switch-configuration.title": "Show", + "search.switch-configuration.title": "Rādīt", + + // "search.title": "DSpace Angular :: Search", + "search.title": "DSpace Angular :: Meklēt", + + // "search.breadcrumbs": "Search", + "search.breadcrumbs": "Meklēt", + + + // "search.filters.applied.f.author": "Author", + "search.filters.applied.f.author": "Autors", + + // "search.filters.applied.f.dateIssued.max": "End date", + "search.filters.applied.f.dateIssued.max": "Beigu datums", + + // "search.filters.applied.f.dateIssued.min": "Start date", + "search.filters.applied.f.dateIssued.min": "Sākuma datums", + + // "search.filters.applied.f.dateSubmitted": "Date submitted", + "search.filters.applied.f.dateSubmitted": "Iesniegšanas datums", + + // "search.filters.applied.f.discoverable": "Private", + "search.filters.applied.f.discoverable": "Privāts", + + // "search.filters.applied.f.entityType": "Item Type", + "search.filters.applied.f.entityType": "Materiāla tips", + + // "search.filters.applied.f.has_content_in_original_bundle": "Has files", + "search.filters.applied.f.has_content_in_original_bundle": "Ir faili", + + // "search.filters.applied.f.itemtype": "Type", + "search.filters.applied.f.itemtype": "Tips", + + // "search.filters.applied.f.namedresourcetype": "Status", + "search.filters.applied.f.namedresourcetype": "Status", + + // "search.filters.applied.f.subject": "Subject", + "search.filters.applied.f.subject": "Priekšmets", + + // "search.filters.applied.f.submitter": "Submitter", + "search.filters.applied.f.submitter": "Iesniedzējs", + + // "search.filters.applied.f.jobTitle": "Job Title", + "search.filters.applied.f.jobTitle": "Ieņemamais Amats", + + // "search.filters.applied.f.birthDate.max": "End birth date", + "search.filters.applied.f.birthDate.max": "Dzimšanas beigu datums", + + // "search.filters.applied.f.birthDate.min": "Start birth date", + "search.filters.applied.f.birthDate.min": "Dzimšanas sākuma datums", + + // "search.filters.applied.f.withdrawn": "Withdrawn", + "search.filters.applied.f.withdrawn": "Atsaukts", + + + + // "search.filters.filter.author.head": "Author", + "search.filters.filter.author.head": "Autors", + + // "search.filters.filter.author.placeholder": "Author name", + "search.filters.filter.author.placeholder": "Autora vārds", + + // "search.filters.filter.birthDate.head": "Birth Date", + "search.filters.filter.birthDate.head": "Dzimšanas datums", + + // "search.filters.filter.birthDate.placeholder": "Birth Date", + "search.filters.filter.birthDate.placeholder": "Dzimšanas datums", + + // "search.filters.filter.creativeDatePublished.head": "Date Published", + "search.filters.filter.creativeDatePublished.head": "Publicēšanas datums", + + // "search.filters.filter.creativeDatePublished.placeholder": "Date Published", + "search.filters.filter.creativeDatePublished.placeholder": "Publicēšanas datums", + + // "search.filters.filter.creativeWorkEditor.head": "Editor", + "search.filters.filter.creativeWorkEditor.head": "Redaktors", + + // "search.filters.filter.creativeWorkEditor.placeholder": "Editor", + "search.filters.filter.creativeWorkEditor.placeholder": "Redaktors", + + // "search.filters.filter.creativeWorkKeywords.head": "Subject", + "search.filters.filter.creativeWorkKeywords.head": "Priekšmets", + + // "search.filters.filter.creativeWorkKeywords.placeholder": "Subject", + "search.filters.filter.creativeWorkKeywords.placeholder": "Priekšmets", + + // "search.filters.filter.creativeWorkPublisher.head": "Publisher", + "search.filters.filter.creativeWorkPublisher.head": "Izdevējs", + + // "search.filters.filter.creativeWorkPublisher.placeholder": "Publisher", + "search.filters.filter.creativeWorkPublisher.placeholder": "Izdevējs", + + // "search.filters.filter.dateIssued.head": "Date", + "search.filters.filter.dateIssued.head": "Datums", + + // "search.filters.filter.dateIssued.max.placeholder": "Minimum Date", + "search.filters.filter.dateIssued.max.placeholder": "Minimālais datums", + + // "search.filters.filter.dateIssued.min.placeholder": "Maximum Date", + "search.filters.filter.dateIssued.min.placeholder": "Maksimālais datums", + + // "search.filters.filter.dateSubmitted.head": "Date submitted", + "search.filters.filter.dateSubmitted.head": "Iesniegšanas datums", + + // "search.filters.filter.dateSubmitted.placeholder": "Date submitted", + "search.filters.filter.dateSubmitted.placeholder": "Iesniegšanas datums", + + // "search.filters.filter.discoverable.head": "Private", + "search.filters.filter.discoverable.head": "Privāts", + + // "search.filters.filter.withdrawn.head": "Withdrawn", + "search.filters.filter.withdrawn.head": "Atsaukts", + + // "search.filters.filter.entityType.head": "Item Type", + "search.filters.filter.entityType.head": "Materiāla tips", + + // "search.filters.filter.entityType.placeholder": "Item Type", + "search.filters.filter.entityType.placeholder": "Materiāla tips", + + // "search.filters.filter.has_content_in_original_bundle.head": "Has files", + "search.filters.filter.has_content_in_original_bundle.head": "Ir faili", + + // "search.filters.filter.itemtype.head": "Type", + "search.filters.filter.itemtype.head": "Tips", + + // "search.filters.filter.itemtype.placeholder": "Type", + "search.filters.filter.itemtype.placeholder": "Tips", + + // "search.filters.filter.jobTitle.head": "Job Title", + "search.filters.filter.jobTitle.head": "Ieņemamais Amats", + + // "search.filters.filter.jobTitle.placeholder": "Job Title", + "search.filters.filter.jobTitle.placeholder": "Ieņemamais Amats", + + // "search.filters.filter.knowsLanguage.head": "Known language", + "search.filters.filter.knowsLanguage.head": "Pārvalda valodu", + + // "search.filters.filter.knowsLanguage.placeholder": "Known language", + "search.filters.filter.knowsLanguage.placeholder": "Pārvalda valodu", + + // "search.filters.filter.namedresourcetype.head": "Status", + "search.filters.filter.namedresourcetype.head": "Status", + + // "search.filters.filter.namedresourcetype.placeholder": "Status", + "search.filters.filter.namedresourcetype.placeholder": "Status", + + // "search.filters.filter.objectpeople.head": "People", + "search.filters.filter.objectpeople.head": "Personas", + + // "search.filters.filter.objectpeople.placeholder": "People", + "search.filters.filter.objectpeople.placeholder": "Personas", + + // "search.filters.filter.organizationAddressCountry.head": "Country", + "search.filters.filter.organizationAddressCountry.head": "Valsts", + + // "search.filters.filter.organizationAddressCountry.placeholder": "Country", + "search.filters.filter.organizationAddressCountry.placeholder": "Valsts", + + // "search.filters.filter.organizationAddressLocality.head": "City", + "search.filters.filter.organizationAddressLocality.head": "Pilsēta", + + // "search.filters.filter.organizationAddressLocality.placeholder": "City", + "search.filters.filter.organizationAddressLocality.placeholder": "Pilsēta", + + // "search.filters.filter.organizationFoundingDate.head": "Date Founded", + "search.filters.filter.organizationFoundingDate.head": "Dibināšanas datums", + + // "search.filters.filter.organizationFoundingDate.placeholder": "Date Founded", + "search.filters.filter.organizationFoundingDate.placeholder": "Dibināšanas datums", + + // "search.filters.filter.scope.head": "Scope", + "search.filters.filter.scope.head": "Joma", + + // "search.filters.filter.scope.placeholder": "Scope filter", + "search.filters.filter.scope.placeholder": "Jomas filtrs", + + // "search.filters.filter.show-less": "Collapse", + "search.filters.filter.show-less": "Sakļaut", + + // "search.filters.filter.show-more": "Show more", + "search.filters.filter.show-more": "Rādīt vairāk", + + // "search.filters.filter.subject.head": "Subject", + "search.filters.filter.subject.head": "Priekšmets", + + // "search.filters.filter.subject.placeholder": "Subject", + "search.filters.filter.subject.placeholder": "Priekšmets", + + // "search.filters.filter.submitter.head": "Submitter", + "search.filters.filter.submitter.head": "Iesniedzējs", + + // "search.filters.filter.submitter.placeholder": "Submitter", + "search.filters.filter.submitter.placeholder": "Iesniedzējs", + + + + // "search.filters.entityType.JournalIssue": "Journal Issue", + "search.filters.entityType.JournalIssue": "Žurnāla Izdevums", + + // "search.filters.entityType.JournalVolume": "Journal Volume", + "search.filters.entityType.JournalVolume": "Žurnāla Sējum", + + // "search.filters.entityType.OrgUnit": "Organizational Unit", + "search.filters.entityType.OrgUnit": "Struktūrvienība", + + // "search.filters.has_content_in_original_bundle.true": "Yes", + "search.filters.has_content_in_original_bundle.true": "Jā", + + // "search.filters.has_content_in_original_bundle.false": "No", + "search.filters.has_content_in_original_bundle.false": "Nē", + + // "search.filters.discoverable.true": "No", + "search.filters.discoverable.true": "Nē", + + // "search.filters.discoverable.false": "Yes", + "search.filters.discoverable.false": "Jā", + + // "search.filters.withdrawn.true": "Yes", + "search.filters.withdrawn.true": "Jā", + + // "search.filters.withdrawn.false": "No", + "search.filters.withdrawn.false": "Nē", + + + // "search.filters.head": "Filters", + "search.filters.head": "Filtri", + + // "search.filters.reset": "Reset filters", + "search.filters.reset": "Atiestatīt filtrus", + + + + // "search.form.search": "Search", + "search.form.search": "Meklēt", + + // "search.form.search_dspace": "Search DSpace", + "search.form.search_dspace": "Meklēt DSpace", + + // "search.form.search_mydspace": "Search MyDSpace", + "search.form.search_mydspace": "Meklēt manā DSpace", + + + + // "search.results.head": "Search Results", + "search.results.head": "Meklēšanas rezultāti", + + // "search.results.no-results": "Your search returned no results. Having trouble finding what you're looking for? Try putting", + "search.results.no-results": "Rezultāti netika atrasti. Vai jums ir grūtības atrast meklēto? Mēģiniet ievietot", + + // "search.results.no-results-link": "quotes around it", + "search.results.no-results-link": "pēdiņas ap to", + + // "search.results.empty": "Your search returned no results.", + "search.results.empty": "Rezultāti netika atrasti.", + + + + // "search.sidebar.close": "Back to results", + "search.sidebar.close": "Atpakaļ pie rezultātiem", + + // "search.sidebar.filters.title": "Filters", + "search.sidebar.filters.title": "Filtri", + + // "search.sidebar.open": "Search Tools", + "search.sidebar.open": "Meklēšanas Rīki", + + // "search.sidebar.results": "results", + "search.sidebar.results": "rezultāti", + + // "search.sidebar.settings.rpp": "Results per page", + "search.sidebar.settings.rpp": "Rezultāti vienā lapā", + + // "search.sidebar.settings.sort-by": "Sort By", + "search.sidebar.settings.sort-by": "Kārtot Pēc", + + // "search.sidebar.settings.title": "Settings", + "search.sidebar.settings.title": "Iestatījumi", + + + + // "search.view-switch.show-detail": "Show detail", + "search.view-switch.show-detail": "Attēlot detaļas", + + // "search.view-switch.show-grid": "Show as grid", + "search.view-switch.show-grid": "Attēlot matricā", + + // "search.view-switch.show-list": "Show as list", + "search.view-switch.show-list": "Attēlot kā sarakstu", + + + + // "sorting.dc.title.ASC": "Title Ascending", + "sorting.dc.title.ASC": "Nosaukums augošā secībā", + + // "sorting.dc.title.DESC": "Title Descending", + "sorting.dc.title.DESC": "Nosaukums dilstošā secībā", + + // "sorting.score.DESC": "Relevance", + "sorting.score.DESC": "Atbilstība", + + + + // "submission.edit.title": "Edit Submission", + "submission.edit.title": "Rediģēt Iesniegumu", + + // "submission.general.cannot_submit": "You have not the privilege to make a new submission.", + "submission.general.cannot_submit": "Jums nav tiesību iesniegt jaunu iesniegumu.", + + // "submission.general.deposit": "Deposit", + "submission.general.deposit": "Ievietot", + + // "submission.general.discard.confirm.cancel": "Cancel", + "submission.general.discard.confirm.cancel": "Atcelt", + + // "submission.general.discard.confirm.info": "This operation can't be undone. Are you sure?", + "submission.general.discard.confirm.info": "Šo darbību nevar atsaukt. Vai tu esat pārliecināts?", + + // "submission.general.discard.confirm.submit": "Yes, I'm sure", + "submission.general.discard.confirm.submit": "Jā, esmu pārliecināts", + + // "submission.general.discard.confirm.title": "Discard submission", + "submission.general.discard.confirm.title": "Atcelt ievietošanu", + + // "submission.general.discard.submit": "Discard", + "submission.general.discard.submit": "Atcelt", + + // "submission.general.save": "Save", + "submission.general.save": "Saglabāt", + + // "submission.general.save-later": "Save for later", + "submission.general.save-later": "Saglabāt vēlākam", + + + + // "submission.sections.describe.relationship-lookup.close": "Close", + "submission.sections.describe.relationship-lookup.close": "Aizvērt", + + // "submission.sections.describe.relationship-lookup.external-source.added": "Successfully added local entry to the selection", + "submission.sections.describe.relationship-lookup.external-source.added": "Lokālais ieraksts veiksmigi pievienots izvēlei", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Author": "Import remote author", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Author": "Importēt attālinātu autoru", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Import remote journal", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal": "Importēt attālinātu žurnālu", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Import remote journal issue", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Issue": "Importēt attālināta žurnāla izdevumu", + + // "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Import remote journal volume", + "submission.sections.describe.relationship-lookup.external-source.import-button-title.Journal Volume": "Importēt attālinātā žurnāla sējumu", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.title": "Import Remote Author", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.title": "Importēt Attālinātu Autoru", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.added.local-entity": "Successfully added local author to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.added.local-entity": "Lokālais autors ir veiksmīgi pievienots atlasei", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.added.new-entity": "Successfully imported and added external author to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Author.added.new-entity": "Veiksmīgi importēts un pievienots ārējais autors atlasē", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Authority", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority": "Autoritāte", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Import as a new local authority entry", + "submission.sections.describe.relationship-lookup.external-source.import-modal.authority.new": "Importēt kā jaunu lokālās autoritātes ierakstu", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Cancel", + "submission.sections.describe.relationship-lookup.external-source.import-modal.cancel": "Atcelt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Select a collection to import new entries to", + "submission.sections.describe.relationship-lookup.external-source.import-modal.collection": "Atlasiet kolekciju, kurā importēt jaunus ierakstus", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Entities", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities": "Vienības", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Import as a new local entity", + "submission.sections.describe.relationship-lookup.external-source.import-modal.entities.new": "Importēt kā jaunu vietējo vienību", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importing from LC Name", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.lcname": "Importē no LC Nosaukuma", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcidV2": "Importing from ORCID", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.orcidV2": "Importē no ORCID", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importing from Sherpa Journal", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaJournal": "Importē no Sherpa Žurnāla", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importing from Sherpa Publisher", + "submission.sections.describe.relationship-lookup.external-source.import-modal.head.sherpaPublisher": "Importēt no Sherpa Izdevēja", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Import", + "submission.sections.describe.relationship-lookup.external-source.import-modal.import": "Importēt", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Import Remote Journal", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.title": "Importēt Attālinātu Žurnālu", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "Successfully added local journal to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.local-entity": "Lokālais žurnāls veiksmīgi pievienots izlasei", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "Successfully imported and added external journal to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal.added.new-entity": "Veiksmīgi importēts un pievienots ārējais žurnāls atlasē", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Import Remote Journal Issue", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.title": "Importēt Attālināta Žurnāla Izdevumu", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "Successfully added local journal issue to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.local-entity": "Lokālā žurnāla izdevums veiksmīgi pievienots izlasei", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "Successfully imported and added external journal issue to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Issue.added.new-entity": "Veiksmīgi importēts un atlasē pievienots ārēja žurnāla izdevums", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Import Remote Journal Volume", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.title": "Importēt Attālinātā Žurnāla Sējumu", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "Successfully added local journal volume to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.local-entity": "Lokālā žurnāla sējums veiksmīgi pievienots atlasē", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "Successfully imported and added external journal volume to the selection", + "submission.sections.describe.relationship-lookup.external-source.import-modal.Journal Volume.added.new-entity": "Veiksmīgi importēts un atlasē pievienots ārējā žurnāla sējums", + + // "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Select a local match:", + "submission.sections.describe.relationship-lookup.external-source.import-modal.select": "Atlasīt lokālo sakritību:", + + // "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Deselect all", + "submission.sections.describe.relationship-lookup.search-tab.deselect-all": "Atcelt izvēli", + + // "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Deselect page", + "submission.sections.describe.relationship-lookup.search-tab.deselect-page": "Atcelt izvēlēto lapu", + + // "submission.sections.describe.relationship-lookup.search-tab.loading": "Loading...", + "submission.sections.describe.relationship-lookup.search-tab.loading": "Notiek ielāde...", + + // "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Search query", + "submission.sections.describe.relationship-lookup.search-tab.placeholder": "Meklēšanas vaicājums", + + // "submission.sections.describe.relationship-lookup.search-tab.search": "Go", + "submission.sections.describe.relationship-lookup.search-tab.search": "Izpildīt", + + // "submission.sections.describe.relationship-lookup.search-tab.select-all": "Select all", + "submission.sections.describe.relationship-lookup.search-tab.select-all": "Izvēlēties visus", + + // "submission.sections.describe.relationship-lookup.search-tab.select-page": "Select page", + "submission.sections.describe.relationship-lookup.search-tab.select-page": "Izvēlēties lapu", + + // "submission.sections.describe.relationship-lookup.selected": "Selected {{ size }} items", + "submission.sections.describe.relationship-lookup.selected": "Izvēlētie {{ size }} materiāli", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Author": "Local Authors ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Author": "Vietējie Autori ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Local Journals ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal": "Vietējie Žurnāli ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal Issue": "Local Journal Issues ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal Issue": "Vietējie Žurnālu Izdevumi ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal Volume": "Local Journal Volumes ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Journal Volume": "Vietējie Žurnālu Sējumi ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa Journals ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaJournal": "Sherpa Žurnāli ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa Publishers ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.sherpaPublisher": "Sherpa Izdevēji ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcidV2": "ORCID ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.orcidV2": "ORCID ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "LC Names ({{ count }})", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.lcname": "LC Nosaukumi ({{ count }})", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Funding Agency": "Search for Funding Agencies", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Funding Agency": "Finansēšanas aģentūru meklēšana", + + // "submission.sections.describe.relationship-lookup.search-tab.tab-title.Funding": "Search for Funding", + "submission.sections.describe.relationship-lookup.search-tab.tab-title.Funding": "Finansējuma meklēšana", + + // "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Current Selection ({{ count }})", + "submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Pašreiz Izvēlēti ({{ count }})", + + // "submission.sections.describe.relationship-lookup.title.Journal Issue": "Journal Issues", + "submission.sections.describe.relationship-lookup.title.Journal Issue": "Žurnāla Izdevumi", + + // "submission.sections.describe.relationship-lookup.title.Journal Volume": "Journal Volumes", + "submission.sections.describe.relationship-lookup.title.Journal Volume": "Žurnāla Sējumi", + + // "submission.sections.describe.relationship-lookup.title.Journal": "Journals", + "submission.sections.describe.relationship-lookup.title.Journal": "Žurnāls", + + // "submission.sections.describe.relationship-lookup.title.Author": "Authors", + "submission.sections.describe.relationship-lookup.title.Author": "Autors", + + // "submission.sections.describe.relationship-lookup.title.Funding Agency": "Funding Agency", + "submission.sections.describe.relationship-lookup.title.Funding Agency": "Finansējošā aģēntūra", + + // "submission.sections.describe.relationship-lookup.title.Funding": "Funding", + "submission.sections.describe.relationship-lookup.title.Funding": "Finansējums", + + // "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Toggle dropdown", + "submission.sections.describe.relationship-lookup.search-tab.toggle-dropdown": "Pārslēgšanas nolaižamā izvēlne", + + // "submission.sections.describe.relationship-lookup.selection-tab.settings": "Settings", + "submission.sections.describe.relationship-lookup.selection-tab.settings": "Iestatījumi", + + // "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "Your selection is currently empty.", + "submission.sections.describe.relationship-lookup.selection-tab.no-selection": "ūsu atlase pašlaik ir tukša.", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Author": "Selected Authors", + "submission.sections.describe.relationship-lookup.selection-tab.title.Author": "Izvēlētais Autors", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Selected Journals", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal": "Izvēlētais Žurnāls", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Journal Volume": "Selected Journal Volume", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal Volume": "Izvēlētā Žurnāla sējums", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.Journal Issue": "Selected Issue", + "submission.sections.describe.relationship-lookup.selection-tab.title.Journal Issue": "Izvēlētais Izdevums", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Meklēšanas rezultāti", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Meklēšanas rezultāti", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.orcidV2": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.orcidV2": "Meklēšanas rezultāti", + + // "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Search Results", + "submission.sections.describe.relationship-lookup.selection-tab.title.lcname": "Meklēšanas rezultāti", + + // "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Would you like to save \"{{ value }}\" as a name variant for this person so you and others can reuse it for future submissions? If you don\'t you can still use it for this submission.", + "submission.sections.describe.relationship-lookup.name-variant.notification.content": "Vai vēlaties saglabāt \"{{ value }}\" kā vārda variantu šai personai, lai jūs un citi varētu to izmantot turpmākai iesniegšanai? Ja nē, jūs joprojām varat to izmantot šai iesniegšanai.", + + // "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Save a new name variant", + "submission.sections.describe.relationship-lookup.name-variant.notification.confirm": "Saglabājiet jauna nosaukuma variantu", + + // "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Use only for this submission", + "submission.sections.describe.relationship-lookup.name-variant.notification.decline": "Izmantojiet tikai pašreizējai iesniegšanai", + + // "submission.sections.general.add-more": "Add more", + "submission.sections.general.add-more": "Pievienot vēl", + + // "submission.sections.general.collection": "Collection", + "submission.sections.general.collection": "Kolekcija", + + // "submission.sections.general.deposit_error_notice": "There was an issue when submitting the item, please try again later.", + "submission.sections.general.deposit_error_notice": "Iesniedzot materiālu, radās problēma. Lūdzu, vēlāk mēģiniet vēlreiz.", + + // "submission.sections.general.deposit_success_notice": "Submission deposited successfully.", + "submission.sections.general.deposit_success_notice": "Iesniegums ir veiksmīgi iesniegts.", + + // "submission.sections.general.discard_error_notice": "There was an issue when discarding the item, please try again later.", + "submission.sections.general.discard_error_notice": "Izmetot vienumu, radās kļūda. Lūdzu, vēlāk mēģiniet vēlreiz", + + // "submission.sections.general.discard_success_notice": "Submission discarded successfully.", + "submission.sections.general.discard_success_notice": "Iesniegums atmests.", + + // "submission.sections.general.metadata-extracted": "New metadata have been extracted and added to the {{sectionId}} section.", + "submission.sections.general.metadata-extracted": "Jauni metadati ir iegūti un pievienoti {{sectionId}} sadaļā.", + + // "submission.sections.general.metadata-extracted-new-section": "New {{sectionId}} section has been added to submission.", + "submission.sections.general.metadata-extracted-new-section": "Jauna {{sectionId}} sadaļa ir pievienota iesniegšanai.", + + // "submission.sections.general.no-collection": "No collection found", + "submission.sections.general.no-collection": "Kolekcijas nav atrastas", + + // "submission.sections.general.no-sections": "No options available", + "submission.sections.general.no-sections": "Opcijas nav pieejamas", + + // "submission.sections.general.save_error_notice": "There was an issue when saving the item, please try again later.", + "submission.sections.general.save_error_notice": "Saglabājot materiālu, radās problēma. Lūdzu, vēlāk mēģiniet vēlreiz.", + + // "submission.sections.general.save_success_notice": "Submission saved successfully.", + "submission.sections.general.save_success_notice": "Iesniegums veiksmīgi saglabāts.", + + // "submission.sections.general.search-collection": "Search for a collection", + "submission.sections.general.search-collection": "Meklēt kolekciju", + + // "submission.sections.general.sections_not_valid": "There are incomplete sections.", + "submission.sections.general.sections_not_valid": "Ir nepilnīgas sadaļas.", + + + + // "submission.sections.submit.progressbar.cclicense": "Creative commons license", + "submission.sections.submit.progressbar.cclicense": "Creative commons licence", + + // "submission.sections.submit.progressbar.describe.recycle": "Recycle", + "submission.sections.submit.progressbar.describe.recycle": "Pārstrādāt", + + // "submission.sections.submit.progressbar.describe.stepcustom": "Describe", + "submission.sections.submit.progressbar.describe.stepcustom": "Aprakstiet", + + // "submission.sections.submit.progressbar.describe.stepone": "Describe", + "submission.sections.submit.progressbar.describe.stepone": "Aprakstiet", + + // "submission.sections.submit.progressbar.describe.steptwo": "Describe", + "submission.sections.submit.progressbar.describe.steptwo": "Aprakstiet", + + // "submission.sections.submit.progressbar.detect-duplicate": "Potential duplicates", + "submission.sections.submit.progressbar.detect-duplicate": "Potenciālie dublikāti", + + // "submission.sections.submit.progressbar.license": "Deposit license", + "submission.sections.submit.progressbar.license": "Ievietot licenci", + + // "submission.sections.submit.progressbar.upload": "Upload files", + "submission.sections.submit.progressbar.upload": "Augšupielādēt failus", + + + + // "submission.sections.upload.delete.confirm.cancel": "Cancel", + "submission.sections.upload.delete.confirm.cancel": "Atcelt", + + // "submission.sections.upload.delete.confirm.info": "This operation can't be undone. Are you sure?", + "submission.sections.upload.delete.confirm.info": "Šo darbību nevar atsaukt. Vai tu esi pārliecināts?", + + // "submission.sections.upload.delete.confirm.submit": "Yes, I'm sure", + "submission.sections.upload.delete.confirm.submit": "Jā, esmu pārliecināts", + + // "submission.sections.upload.delete.confirm.title": "Delete bitstream", + "submission.sections.upload.delete.confirm.title": "Dzēst bitu straumes", + + // "submission.sections.upload.delete.submit": "Delete", + "submission.sections.upload.delete.submit": "Dzēst", + + // "submission.sections.upload.drop-message": "Drop files to attach them to the item", + "submission.sections.upload.drop-message": "Ievietojiet failu, lai pievienotu materiālam", + + // "submission.sections.upload.form.access-condition-label": "Access condition type", + "submission.sections.upload.form.access-condition-label": "Piekļuves nosacījuma tips", + + // "submission.sections.upload.form.date-required": "Date is required.", + "submission.sections.upload.form.date-required": "Datums ir nepieciešams.", + + // "submission.sections.upload.form.from-label": "Access grant from", + "submission.sections.upload.form.from-label": "Iespēja izmantot no", + + // "submission.sections.upload.form.from-placeholder": "From", + "submission.sections.upload.form.from-placeholder": "No", + + // "submission.sections.upload.form.group-label": "Group", + "submission.sections.upload.form.group-label": "Grupa", + + // "submission.sections.upload.form.group-required": "Group is required.", + "submission.sections.upload.form.group-required": "Nepieciešama grupa.", + + // "submission.sections.upload.form.until-label": "Access grant until", + "submission.sections.upload.form.until-label": "Piekļuvas atļauja līdz", + + // "submission.sections.upload.form.until-placeholder": "Until", + "submission.sections.upload.form.until-placeholder": "Līdz", + + // "submission.sections.upload.header.policy.default.nolist": "Uploaded files in the {{collectionName}} collection will be accessible according to the following group(s):", + "submission.sections.upload.header.policy.default.nolist": "Augšupielādētie faili kolekcijā {{collectionName}} būs pieejami atbilstoši šīm grupām:", + + // "submission.sections.upload.header.policy.default.withlist": "Please note that uploaded files in the {{collectionName}} collection will be accessible, in addition to what is explicitly decided for the single file, with the following group(s):", + "submission.sections.upload.header.policy.default.withlist": "Lūdzu, ņemiet vērā, ka augšupielādētie faili kolekcijā {{collectionName}} būs pieejami papildus tam, kas ir skaidri noteikts par atsevišķu failu, ar šādām grupām:", + + // "submission.sections.upload.info": "Here you will find all the files currently in the item. You can update the file metadata and access conditions or upload additional files just dragging & dropping them everywhere in the page", + "submission.sections.upload.info": "Šeit atradīsit visus failus, kas pašlaik atrodas materiālā. Varat atjaunināt failu metadatus un piekļuves nosacījumus vai augšupielādēt papildu failus, vienkārši ievelkot un atstājot tos visur lapā", + + // "submission.sections.upload.no-entry": "No", + "submission.sections.upload.no-entry": "Nē", + + // "submission.sections.upload.no-file-uploaded": "No file uploaded yet.", + "submission.sections.upload.no-file-uploaded": "Vēl nav augšupielādēts neviens fails.", + + // "submission.sections.upload.save-metadata": "Save metadata", + "submission.sections.upload.save-metadata": "Saglabāt metadatus", + + // "submission.sections.upload.undo": "Cancel", + "submission.sections.upload.undo": "Atcelt", + + // "submission.sections.upload.upload-failed": "Upload failed", + "submission.sections.upload.upload-failed": "Augšupielāde neizdevās", + + // "submission.sections.upload.upload-successful": "Upload successful", + "submission.sections.upload.upload-successful": "Augšupielāde veiksmīga", + + + + // "submission.submit.title": "Submission", + "submission.submit.title": "Iesniegums", + + + + // "submission.workflow.generic.delete": "Delete", + "submission.workflow.generic.delete": "Dzēst", + + // "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.delete-help": "Ja vēlaties atmest šo materiālu izvēlieties \"Dzēst\". Pēc tam jums tiks lūgts to apstiprināt.", + + // "submission.workflow.generic.edit": "Edit", + "submission.workflow.generic.edit": "Rediģēt", + + // "submission.workflow.generic.edit-help": "Select this option to change the item's metadata.", + "submission.workflow.generic.edit-help": "Izvēlieties šo opciju, lai mainītu materiāla metadatus.", + + // "submission.workflow.generic.view": "View", + "submission.workflow.generic.view": "Skatīt", + + // "submission.workflow.generic.view-help": "Select this option to view the item's metadata.", + "submission.workflow.generic.view-help": "Izvēlieties šo opciju, lai skatītu materiāla metadatus.", + + + + // "submission.workflow.tasks.claimed.approve": "Approve", + "submission.workflow.tasks.claimed.approve": "Apstiprināt", + + // "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.approve_help": "Ja esat pārskatījis materiālu un tas ir piemērots iekļaušanai kolekcijā, atlasiet \"Apstiprināt\".", + + // "submission.workflow.tasks.claimed.edit": "Edit", + "submission.workflow.tasks.claimed.edit": "Rediģēt", + + // "submission.workflow.tasks.claimed.edit_help": "Select this option to change the item's metadata.", + "submission.workflow.tasks.claimed.edit_help": "Izvēlieties šo opciju, lai mainītu materiāla metadatus.", + + // "submission.workflow.tasks.claimed.reject.reason.info": "Please enter your reason for rejecting the submission into the box below, indicating whether the submitter may fix a problem and resubmit.", + "submission.workflow.tasks.claimed.reject.reason.info": "Lūdzu, zemāk esošajā lodziņā ievadiet iesnieguma noraidīšanas iemeslu, norādot, vai iesniedzējs var novērst problēmu un atkārtoti iesniegt.", + + // "submission.workflow.tasks.claimed.reject.reason.placeholder": "Describe the reason of reject", + "submission.workflow.tasks.claimed.reject.reason.placeholder": "Aprakstiet noraidījuma iemeslu", + + // "submission.workflow.tasks.claimed.reject.reason.submit": "Reject item", + "submission.workflow.tasks.claimed.reject.reason.submit": "Noraidīt materiālu", + + // "submission.workflow.tasks.claimed.reject.reason.title": "Reason", + "submission.workflow.tasks.claimed.reject.reason.title": "Iemesls", + + // "submission.workflow.tasks.claimed.reject.submit": "Reject", + "submission.workflow.tasks.claimed.reject.submit": "Noraidīt", + + // "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.reject_help": "Ja esat pārskatījis vienumu un secinājis, ka tas nav piemērots iekļaušanai kolekcijā, atlasiet \"Noraidīt\". Pēc tam jums tiks lūgts ievadīt ziņojumu, norādot, kāpēc materiāls nav piemērots, un vai iesniedzējam vajadzētu kaut ko mainīt un atkārtoti iesniegt.", + + // "submission.workflow.tasks.claimed.return": "Return to pool", + "submission.workflow.tasks.claimed.return": "Atgriezt kopnē", + + // "submission.workflow.tasks.claimed.return_help": "Return the task to the pool so that another user may perform the task.", + "submission.workflow.tasks.claimed.return_help": "Atgrieziet uzdevumu kopnē, lai uzdevumu varētu veikt cits lietotājs.", + + + + // "submission.workflow.tasks.generic.error": "Error occurred during operation...", + "submission.workflow.tasks.generic.error": "Apstrādes laikā radās kļūda...", + + // "submission.workflow.tasks.generic.processing": "Processing...", + "submission.workflow.tasks.generic.processing": "Apstrāde...", + + // "submission.workflow.tasks.generic.submitter": "Submitter", + "submission.workflow.tasks.generic.submitter": "Iesniedzējs", + + // "submission.workflow.tasks.generic.success": "Operation successful", + "submission.workflow.tasks.generic.success": "Darbībā veiksmīga", + + + + // "submission.workflow.tasks.pool.claim": "Claim", + "submission.workflow.tasks.pool.claim": "Apstrādāt", + + // "submission.workflow.tasks.pool.claim_help": "Assign this task to yourself.", + "submission.workflow.tasks.pool.claim_help": "Piešķirt šo uzdevumu sev.", + + // "submission.workflow.tasks.pool.hide-detail": "Hide detail", + "submission.workflow.tasks.pool.hide-detail": "Paslēpt detaļas", + + // "submission.workflow.tasks.pool.show-detail": "Show detail", + "submission.workflow.tasks.pool.show-detail": "Parādīt detaļas", + + + + // "title": "DSpace", + "title": "DSpace", + + + // "administrativeView.search.results.head": "Administrative Search", + "administrativeView.search.results.head": "Administratīvā meklēšana", + + + // "uploader.browse": "browse", + "uploader.browse": "pārlūkot", + + // "uploader.drag-message": "Drag & Drop your files here", + "uploader.drag-message": "Velciet failu šeit", + + // "uploader.or": ", or", + "uploader.or": ", vai", + + // "uploader.processing": "Processing", + "uploader.processing": "Datu apstrāde", + + // "uploader.queue-length": "Queue length", + "uploader.queue-length": "Rindas garums", + + // "virtual-metadata.delete-item.info": "Select the types for which you want to save the virtual metadata as real metadata", + "virtual-metadata.delete-item.info": "Izēlieties tipu, kam vēlaties saglabāt virtuālos metadatus kā reālus metadatus", + + // "virtual-metadata.delete-item.modal-head": "The virtual metadata of this relation", + "virtual-metadata.delete-item.modal-head": "Šīs saiknes virtuālie metadati", + + // "virtual-metadata.delete-relationship.modal-head": "Select the items for which you want to save the virtual metadata as real metadata", + "virtual-metadata.delete-relationship.modal-head": "Izēlieties materiālus, kam vēlaties saglabāt virtuālos metadatus kā reālus metadatus", + +} + diff --git a/src/app/+admin/admin-access-control/admin-access-control-routing.module.ts b/src/app/+admin/admin-access-control/admin-access-control-routing.module.ts index 83f67a770e..5af18c778f 100644 --- a/src/app/+admin/admin-access-control/admin-access-control-routing.module.ts +++ b/src/app/+admin/admin-access-control/admin-access-control-routing.module.ts @@ -1,11 +1,32 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { EPeopleRegistryComponent } from './epeople-registry/epeople-registry.component'; +import { GroupFormComponent } from './group-registry/group-form/group-form.component'; +import { GroupsRegistryComponent } from './group-registry/groups-registry.component'; +import { URLCombiner } from '../../core/url-combiner/url-combiner'; +import { getAccessControlModulePath } from '../admin-routing.module'; + +const GROUP_EDIT_PATH = 'groups'; + +export function getGroupEditPath(id: string) { + return new URLCombiner(getAccessControlModulePath(), GROUP_EDIT_PATH, id).toString(); +} @NgModule({ imports: [ RouterModule.forChild([ { path: 'epeople', component: EPeopleRegistryComponent, data: { title: 'admin.access-control.epeople.title' } }, + { path: GROUP_EDIT_PATH, component: GroupsRegistryComponent, data: { title: 'admin.access-control.groups.title' } }, + { + path: `${GROUP_EDIT_PATH}/:groupId`, + component: GroupFormComponent, + data: {title: 'admin.registries.schema.title'} + }, + { + path: `${GROUP_EDIT_PATH}/newGroup`, + component: GroupFormComponent, + data: {title: 'admin.registries.schema.title'} + }, ]) ] }) diff --git a/src/app/+admin/admin-access-control/admin-access-control.module.ts b/src/app/+admin/admin-access-control/admin-access-control.module.ts index 0c8573e135..8b8ad2a420 100644 --- a/src/app/+admin/admin-access-control/admin-access-control.module.ts +++ b/src/app/+admin/admin-access-control/admin-access-control.module.ts @@ -6,6 +6,10 @@ import { SharedModule } from '../../shared/shared.module'; import { AdminAccessControlRoutingModule } from './admin-access-control-routing.module'; import { EPeopleRegistryComponent } from './epeople-registry/epeople-registry.component'; import { EPersonFormComponent } from './epeople-registry/eperson-form/eperson-form.component'; +import { GroupFormComponent } from './group-registry/group-form/group-form.component'; +import { MembersListComponent } from './group-registry/group-form/members-list/members-list.component'; +import { SubgroupsListComponent } from './group-registry/group-form/subgroup-list/subgroups-list.component'; +import { GroupsRegistryComponent } from './group-registry/groups-registry.component'; @NgModule({ imports: [ @@ -17,7 +21,11 @@ import { EPersonFormComponent } from './epeople-registry/eperson-form/eperson-fo ], declarations: [ EPeopleRegistryComponent, - EPersonFormComponent + EPersonFormComponent, + GroupsRegistryComponent, + GroupFormComponent, + SubgroupsListComponent, + MembersListComponent ], entryComponents: [] }) diff --git a/src/app/+admin/admin-access-control/epeople-registry/epeople-registry.component.html b/src/app/+admin/admin-access-control/epeople-registry/epeople-registry.component.html index dd1e8bb62c..20593756c1 100644 --- a/src/app/+admin/admin-access-control/epeople-registry/epeople-registry.component.html +++ b/src/app/+admin/admin-access-control/epeople-registry/epeople-registry.component.html @@ -15,7 +15,10 @@ - +
+ + + +
+
+
+ + + + +
+
+
+ + + +
+ + + + + + + + + + + + + + + +
{{messagePrefix + '.table.id' | translate}}{{messagePrefix + '.table.name' | translate}}{{messagePrefix + '.table.edit' | translate}}
{{ePerson.id}}{{ePerson.name}} +
+ + + +
+
+
+ +
+ + + +

{{messagePrefix + '.headMembers' | translate}}

+ + + +
+ + + + + + + + + + + + + + + +
{{messagePrefix + '.table.id' | translate}}{{messagePrefix + '.table.name' | translate}}{{messagePrefix + '.table.edit' | translate}}
{{ePerson.id}}{{ePerson.name}} +
+ +
+
+
+ +
+ + + + diff --git a/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.spec.ts b/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.spec.ts new file mode 100644 index 0000000000..07fab49ca5 --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.spec.ts @@ -0,0 +1,241 @@ +import { CommonModule } from '@angular/common'; +import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, fakeAsync, flush, inject, TestBed, tick } from '@angular/core/testing'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { BrowserModule, By } from '@angular/platform-browser'; +import { Router } from '@angular/router'; +import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core'; +import { Observable } from 'rxjs/internal/Observable'; +import { RestResponse } from '../../../../../core/cache/response.models'; +import { PaginatedList } from '../../../../../core/data/paginated-list'; +import { RemoteData } from '../../../../../core/data/remote-data'; +import { EPersonDataService } from '../../../../../core/eperson/eperson-data.service'; +import { GroupDataService } from '../../../../../core/eperson/group-data.service'; +import { EPerson } from '../../../../../core/eperson/models/eperson.model'; +import { Group } from '../../../../../core/eperson/models/group.model'; +import { PageInfo } from '../../../../../core/shared/page-info.model'; +import { FormBuilderService } from '../../../../../shared/form/builder/form-builder.service'; +import { getMockFormBuilderService } from '../../../../../shared/mocks/mock-form-builder-service'; +import { MockRouter } from '../../../../../shared/mocks/mock-router'; +import { getMockTranslateService } from '../../../../../shared/mocks/mock-translate.service'; +import { NotificationsService } from '../../../../../shared/notifications/notifications.service'; +import { EPersonMock, EPersonMock2 } from '../../../../../shared/testing/eperson-mock'; +import { GroupMock, GroupMock2 } from '../../../../../shared/testing/group-mock'; +import { MockTranslateLoader } from '../../../../../shared/testing/mock-translate-loader'; +import { NotificationsServiceStub } from '../../../../../shared/testing/notifications-service-stub'; +import { of as observableOf } from 'rxjs'; +import { createSuccessfulRemoteDataObject$ } from '../../../../../shared/testing/utils'; +import { MembersListComponent } from './members-list.component'; + +describe('MembersListComponent', () => { + let component: MembersListComponent; + let fixture: ComponentFixture; + let translateService: TranslateService; + let builderService: FormBuilderService; + let ePersonDataServiceStub: any; + let groupsDataServiceStub: any; + let activeGroup; + let allEPersons; + let allGroups; + let epersonMembers; + let subgroupMembers; + + beforeEach(async(() => { + activeGroup = GroupMock; + epersonMembers = [EPersonMock2]; + subgroupMembers = [GroupMock2]; + allEPersons = [EPersonMock, EPersonMock2]; + allGroups = [GroupMock, GroupMock2]; + ePersonDataServiceStub = { + activeGroup: activeGroup, + epersonMembers: epersonMembers, + subgroupMembers: subgroupMembers, + findAllByHref(href: string): Observable>> { + return createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), groupsDataServiceStub.getEPersonMembers())) + }, + searchByScope(scope: string, query: string): Observable>> { + if (query === '') { + return createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), allEPersons)) + } + return createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])) + }, + clearEPersonRequests() { + // empty + }, + clearLinkRequests() { + // empty + }, + getEPeoplePageRouterLink(): string { + return '/admin/access-control/epeople'; + } + }; + groupsDataServiceStub = { + activeGroup: activeGroup, + epersonMembers: epersonMembers, + subgroupMembers: subgroupMembers, + allGroups: allGroups, + getActiveGroup(): Observable { + return observableOf(activeGroup); + }, + getEPersonMembers() { + return this.epersonMembers; + }, + searchGroups(query: string): Observable>> { + if (query === '') { + return createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), this.allGroups)) + } + return createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])) + }, + addMemberToGroup(parentGroup, eperson: EPerson): Observable { + this.epersonMembers = [...this.epersonMembers, eperson]; + return observableOf(new RestResponse(true, 200, 'Success')); + }, + clearGroupsRequests() { + // empty + }, + clearGroupLinkRequests() { + // empty + }, + getGroupEditPageRouterLink(group: Group): string { + return '/admin/access-control/groups/' + group.id; + }, + deleteMemberFromGroup(parentGroup, epersonToDelete: EPerson): Observable { + this.epersonMembers = this.epersonMembers.find((eperson: EPerson) => { + if (eperson.id !== epersonToDelete.id) { + return eperson; + } + }); + if (this.epersonMembers === undefined) { + this.epersonMembers = [] + } + return observableOf(new RestResponse(true, 200, 'Success')); + } + }; + builderService = getMockFormBuilderService(); + translateService = getMockTranslateService(); + TestBed.configureTestingModule({ + imports: [CommonModule, NgbModule, FormsModule, ReactiveFormsModule, BrowserModule, + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useClass: MockTranslateLoader + } + }), + ], + declarations: [MembersListComponent], + providers: [MembersListComponent, + { provide: EPersonDataService, useValue: ePersonDataServiceStub }, + { provide: GroupDataService, useValue: groupsDataServiceStub }, + { provide: NotificationsService, useValue: new NotificationsServiceStub() }, + { provide: FormBuilderService, useValue: builderService }, + { provide: Router, useValue: new MockRouter() }, + ], + schemas: [NO_ERRORS_SCHEMA] + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(MembersListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + afterEach(fakeAsync(() => { + fixture.destroy(); + flush(); + component = null; + })); + + it('should create MembersListComponent', inject([MembersListComponent], (comp: MembersListComponent) => { + expect(comp).toBeDefined(); + })); + + it('should show list of eperson members of current active group', () => { + const epersonIdsFound = fixture.debugElement.queryAll(By.css('#ePeopleMembersOfGroup tr td:first-child')); + expect(epersonIdsFound.length).toEqual(1); + epersonMembers.map((eperson: EPerson) => { + expect(epersonIdsFound.find((foundEl) => { + return (foundEl.nativeElement.textContent.trim() === eperson.uuid); + })).toBeTruthy(); + }); + }); + + describe('search', () => { + describe('when searching without query', () => { + let epersonsFound; + beforeEach(fakeAsync(() => { + component.search({ scope: 'metadata', query: '' }); + tick(); + fixture.detectChanges(); + epersonsFound = fixture.debugElement.queryAll(By.css('#epersonsSearch tbody tr')); + })); + + it('should display all epersons', () => { + expect(epersonsFound.length).toEqual(2); + }); + + describe('if eperson is already a eperson', () => { + it('should have delete button, else it should have add button', () => { + activeGroup.epersons.map((eperson: EPerson) => { + epersonsFound.map((foundEPersonRowElement) => { + if (foundEPersonRowElement.debugElement !== undefined) { + const epersonId = foundEPersonRowElement.debugElement.query(By.css('td:first-child')); + const addButton = foundEPersonRowElement.debugElement.query(By.css('td:last-child .fa-plus')); + const deleteButton = foundEPersonRowElement.debugElement.query(By.css('td:last-child .fa-trash-alt')); + if (epersonId.nativeElement.textContent === eperson.id) { + expect(addButton).toBeUndefined(); + expect(deleteButton).toBeDefined(); + } else { + expect(deleteButton).toBeUndefined(); + expect(addButton).toBeDefined(); + } + } + }) + }) + }); + }); + + describe('if first add button is pressed', () => { + beforeEach(fakeAsync(() => { + const addButton = fixture.debugElement.query(By.css('#epersonsSearch tbody .fa-plus')); + addButton.nativeElement.click(); + tick(); + fixture.detectChanges(); + })); + it('all groups in search member of selected group', () => { + epersonsFound = fixture.debugElement.queryAll(By.css('#epersonsSearch tbody tr')); + expect(epersonsFound.length).toEqual(2); + epersonsFound.map((foundEPersonRowElement) => { + if (foundEPersonRowElement.debugElement !== undefined) { + const addButton = foundEPersonRowElement.debugElement.query(By.css('td:last-child .fa-plus')); + const deleteButton = foundEPersonRowElement.debugElement.query(By.css('td:last-child .fa-trash-alt')); + expect(addButton).toBeUndefined(); + expect(deleteButton).toBeDefined(); + } + }) + }); + }); + + describe('if first delete button is pressed', () => { + beforeEach(fakeAsync(() => { + const addButton = fixture.debugElement.query(By.css('#epersonsSearch tbody .fa-trash-alt')); + addButton.nativeElement.click(); + tick(); + fixture.detectChanges(); + })); + it('first eperson in search delete button, because now member', () => { + epersonsFound = fixture.debugElement.queryAll(By.css('#epersonsSearch tbody tr')); + epersonsFound.map((foundEPersonRowElement) => { + if (foundEPersonRowElement.debugElement !== undefined) { + const addButton = foundEPersonRowElement.debugElement.query(By.css('td:last-child .fa-plus')); + const deleteButton = foundEPersonRowElement.debugElement.query(By.css('td:last-child .fa-trash-alt')); + expect(deleteButton).toBeUndefined(); + expect(addButton).toBeDefined(); + } + }) + }); + }); + }); + }); + +}); diff --git a/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.ts b/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.ts new file mode 100644 index 0000000000..b2e9ea75d6 --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/group-form/members-list/members-list.component.ts @@ -0,0 +1,247 @@ +import { Component, Input, OnDestroy, OnInit } from '@angular/core'; +import { FormBuilder } from '@angular/forms'; +import { Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { Observable, of as observableOf, Subscription } from 'rxjs'; +import { map, mergeMap, take } from 'rxjs/operators'; +import { RestResponse } from '../../../../../core/cache/response.models'; +import { PaginatedList } from '../../../../../core/data/paginated-list'; +import { RemoteData } from '../../../../../core/data/remote-data'; +import { EPersonDataService } from '../../../../../core/eperson/eperson-data.service'; +import { GroupDataService } from '../../../../../core/eperson/group-data.service'; +import { EPerson } from '../../../../../core/eperson/models/eperson.model'; +import { Group } from '../../../../../core/eperson/models/group.model'; +import { getRemoteDataPayload, getSucceededRemoteData } from '../../../../../core/shared/operators'; +import { hasValue } from '../../../../../shared/empty.util'; +import { NotificationsService } from '../../../../../shared/notifications/notifications.service'; +import { PaginationComponentOptions } from '../../../../../shared/pagination/pagination-component-options.model'; + +@Component({ + selector: 'ds-members-list', + templateUrl: './members-list.component.html' +}) +/** + * The list of members in the edit group page + */ +export class MembersListComponent implements OnInit, OnDestroy { + + @Input() + messagePrefix: string; + + /** + * EPeople being displayed in search result, initially all members, after search result of search + */ + ePeopleSearch: Observable>>; + /** + * List of EPeople members of currently active group being edited + */ + ePeopleMembersOfGroup: Observable>>; + + /** + * Pagination config used to display the list of EPeople that are result of EPeople search + */ + configSearch: PaginationComponentOptions = Object.assign(new PaginationComponentOptions(), { + id: 'search-members-list-pagination', + pageSize: 5, + currentPage: 1 + }); + /** + * Pagination config used to display the list of EPerson Membes of active group being edited + */ + config: PaginationComponentOptions = Object.assign(new PaginationComponentOptions(), { + id: 'members-list-pagination', + pageSize: 5, + currentPage: 1 + }); + + /** + * List of subscriptions + */ + subs: Subscription[] = []; + + // The search form + searchForm; + + // Current search in edit group - epeople search form + currentSearchQuery: string; + currentSearchScope: string; + + // Whether or not user has done a EPeople search yet + searchDone: boolean; + + // current active group being edited + groupBeingEdited: Group; + + constructor(private groupDataService: GroupDataService, + public ePersonDataService: EPersonDataService, + private translateService: TranslateService, + private notificationsService: NotificationsService, + private formBuilder: FormBuilder, + private router: Router) { + this.currentSearchQuery = ''; + this.currentSearchScope = 'metadata'; + } + + ngOnInit() { + this.searchForm = this.formBuilder.group(({ + scope: 'metadata', + query: '', + })); + this.subs.push(this.groupDataService.getActiveGroup().subscribe((activeGroup: Group) => { + if (activeGroup != null) { + this.groupBeingEdited = activeGroup; + this.forceUpdateEPeople(activeGroup); + } + })); + } + + /** + * Event triggered when the user changes page on search result + * @param event + */ + onPageChangeSearch(event) { + this.configSearch.currentPage = event; + this.search({ scope: this.currentSearchScope, query: this.currentSearchQuery }); + } + + /** + * Event triggered when the user changes page on EPerson embers of active group + * @param event + */ + onPageChange(event) { + this.ePeopleMembersOfGroup = this.ePersonDataService.findAllByHref(this.groupBeingEdited._links.epersons.href, { + currentPage: event, + elementsPerPage: this.config.pageSize + }) + } + + /** + * Deletes a given EPerson from the members list of the group currently being edited + * @param ePerson EPerson we want to delete as member from group that is currently being edited + */ + deleteMemberFromGroup(ePerson: EPerson) { + this.groupDataService.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { + if (activeGroup != null) { + const response = this.groupDataService.deleteMemberFromGroup(activeGroup, ePerson); + this.showNotifications('deleteMember', response, ePerson.name, activeGroup); + this.forceUpdateEPeople(activeGroup); + } else { + this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); + } + }); + } + + /** + * Adds a given EPerson to the members list of the group currently being edited + * @param ePerson EPerson we want to add as member to group that is currently being edited + */ + addMemberToGroup(ePerson: EPerson) { + this.groupDataService.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { + if (activeGroup != null) { + const response = this.groupDataService.addMemberToGroup(activeGroup, ePerson); + this.showNotifications('addMember', response, ePerson.name, activeGroup); + } else { + this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); + } + }); + this.forceUpdateEPeople(this.groupBeingEdited, ePerson); + } + + /** + * Whether or not the given ePerson is a member of the group currently being edited + * @param possibleMember EPerson that is a possible member (being tested) of the group currently being edited + */ + isMemberOfGroup(possibleMember: EPerson): Observable { + return this.groupDataService.getActiveGroup().pipe(take(1), + mergeMap((group: Group) => { + if (group != null) { + return this.ePersonDataService.findAllByHref(group._links.epersons.href, { + currentPage: 0, + elementsPerPage: Number.MAX_SAFE_INTEGER + }) + .pipe( + getSucceededRemoteData(), + getRemoteDataPayload(), + map((listEPeopleInGroup: PaginatedList) => listEPeopleInGroup.page.filter((ePersonInList: EPerson) => ePersonInList.id === possibleMember.id)), + map((epeople: EPerson[]) => epeople.length > 0)) + } else { + return observableOf(false); + } + })) + } + + /** + * Search in the EPeople by name, email or metadata + * @param data Contains scope and query param + */ + search(data: any) { + const query: string = data.query; + const scope: string = data.scope; + if (query != null && this.currentSearchQuery !== query && this.groupBeingEdited) { + this.router.navigateByUrl(this.groupDataService.getGroupEditPageRouterLink(this.groupBeingEdited)); + this.currentSearchQuery = query; + this.configSearch.currentPage = 1; + } + if (scope != null && this.currentSearchScope !== scope && this.groupBeingEdited) { + this.router.navigateByUrl(this.groupDataService.getGroupEditPageRouterLink(this.groupBeingEdited)); + this.currentSearchScope = scope; + this.configSearch.currentPage = 1; + } + this.searchDone = true; + this.ePeopleSearch = this.ePersonDataService.searchByScope(this.currentSearchScope, this.currentSearchQuery, { + currentPage: this.configSearch.currentPage, + elementsPerPage: this.configSearch.pageSize + }); + } + + /** + * Force-update the list of EPeople by first clearing the cache related to EPeople, then performing + * a new REST call + * @param activeGroup Group currently being edited + */ + public forceUpdateEPeople(activeGroup: Group, ePersonToUpdate?: EPerson) { + if (ePersonToUpdate != null) { + this.ePersonDataService.clearLinkRequests(ePersonToUpdate._links.groups.href); + } + this.ePersonDataService.clearLinkRequests(activeGroup._links.epersons.href); + this.router.navigateByUrl(this.groupDataService.getGroupEditPageRouterLink(activeGroup)); + this.ePeopleMembersOfGroup = this.ePersonDataService.findAllByHref(activeGroup._links.epersons.href, { + currentPage: this.configSearch.currentPage, + elementsPerPage: this.configSearch.pageSize + }) + } + + /** + * unsub all subscriptions + */ + ngOnDestroy(): void { + this.subs.filter((sub) => hasValue(sub)).forEach((sub) => sub.unsubscribe()); + } + + /** + * Shows a notification based on the success/failure of the request + * @param messageSuffix Suffix for message + * @param response RestResponse observable containing success/failure request + * @param nameObject Object request was about + * @param activeGroup Group currently being edited + */ + showNotifications(messageSuffix: string, response: Observable, nameObject: string, activeGroup: Group) { + response.pipe(take(1)).subscribe((restResponse: RestResponse) => { + if (restResponse.isSuccessful) { + this.notificationsService.success(this.translateService.get(this.messagePrefix + '.notification.success.' + messageSuffix, { name: nameObject })); + } else { + this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.' + messageSuffix, { name: nameObject })); + } + }) + } + + /** + * Reset all input-fields to be empty and search all search + */ + clearFormAndResetResult() { + this.searchForm.patchValue({ + query: '', + }); + this.search({ query: '' }); + } +} diff --git a/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html b/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html new file mode 100644 index 0000000000..9558b9da98 --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html @@ -0,0 +1,117 @@ + +

{{messagePrefix + '.head' | translate}}

+ + +
+
+
+ + + + +
+
+
+ + + +
+ + + + + + + + + + + + + + + +
{{messagePrefix + '.table.id' | translate}}{{messagePrefix + '.table.name' | translate}}{{messagePrefix + '.table.edit' | translate}}
{{group.id}}{{group.name}} +
+ + +

{{ messagePrefix + '.table.edit.currentGroup' | translate }}

+ + +
+
+
+
+ + + +

{{messagePrefix + '.headSubgroups' | translate}}

+ + + +
+ + + + + + + + + + + + + + + +
{{messagePrefix + '.table.id' | translate}}{{messagePrefix + '.table.name' | translate}}{{messagePrefix + '.table.edit' | translate}}
{{group.id}}{{group.name}} +
+ +
+
+
+
+ + + +
diff --git a/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts b/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts new file mode 100644 index 0000000000..4bd088b513 --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.spec.ts @@ -0,0 +1,208 @@ +import { CommonModule } from '@angular/common'; +import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, fakeAsync, flush, inject, TestBed, tick } from '@angular/core/testing'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { BrowserModule, By } from '@angular/platform-browser'; +import { Router } from '@angular/router'; +import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core'; +import { Observable } from 'rxjs/internal/Observable'; +import { RestResponse } from '../../../../../core/cache/response.models'; +import { PaginatedList } from '../../../../../core/data/paginated-list'; +import { RemoteData } from '../../../../../core/data/remote-data'; +import { GroupDataService } from '../../../../../core/eperson/group-data.service'; +import { Group } from '../../../../../core/eperson/models/group.model'; +import { PageInfo } from '../../../../../core/shared/page-info.model'; +import { FormBuilderService } from '../../../../../shared/form/builder/form-builder.service'; +import { getMockFormBuilderService } from '../../../../../shared/mocks/mock-form-builder-service'; +import { MockRouter } from '../../../../../shared/mocks/mock-router'; +import { getMockTranslateService } from '../../../../../shared/mocks/mock-translate.service'; +import { NotificationsService } from '../../../../../shared/notifications/notifications.service'; +import { GroupMock, GroupMock2 } from '../../../../../shared/testing/group-mock'; +import { MockTranslateLoader } from '../../../../../shared/testing/mock-translate-loader'; +import { NotificationsServiceStub } from '../../../../../shared/testing/notifications-service-stub'; +import { of as observableOf } from 'rxjs'; +import { createSuccessfulRemoteDataObject$ } from '../../../../../shared/testing/utils'; +import { SubgroupsListComponent } from './subgroups-list.component'; + +describe('SubgroupsListComponent', () => { + let component: SubgroupsListComponent; + let fixture: ComponentFixture; + let translateService: TranslateService; + let builderService: FormBuilderService; + let ePersonDataServiceStub: any; + let groupsDataServiceStub: any; + let activeGroup; + let subgroups; + let allGroups; + let routerStub; + + beforeEach(async(() => { + activeGroup = GroupMock; + subgroups = [GroupMock2]; + allGroups = [GroupMock, GroupMock2]; + ePersonDataServiceStub = {}; + groupsDataServiceStub = { + activeGroup: activeGroup, + subgroups: subgroups, + getActiveGroup(): Observable { + return observableOf(this.activeGroup); + }, + getSubgroups(): Group { + return this.activeGroup; + }, + findAllByHref(href: string): Observable>> { + return createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), this.subgroups)) + }, + getGroupEditPageRouterLink(group: Group): string { + return '/admin/access-control/groups/' + group.id; + }, + searchGroups(query: string): Observable>> { + if (query === '') { + return createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), allGroups)) + } + return createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])) + }, + addSubGroupToGroup(parentGroup, subgroup: Group): Observable { + this.subgroups = [...this.subgroups, subgroup]; + return observableOf(new RestResponse(true, 200, 'Success')); + }, + clearGroupsRequests() { + // empty + }, + clearGroupLinkRequests() { + // empty + }, + deleteSubGroupFromGroup(parentGroup, subgroup: Group): Observable { + this.subgroups = this.subgroups.find((group: Group) => { + if (group.id !== subgroup.id) { + return group; + } + }); + return observableOf(new RestResponse(true, 200, 'Success')); + } + }; + routerStub = new MockRouter(); + builderService = getMockFormBuilderService(); + translateService = getMockTranslateService(); + TestBed.configureTestingModule({ + imports: [CommonModule, NgbModule, FormsModule, ReactiveFormsModule, BrowserModule, + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useClass: MockTranslateLoader + } + }), + ], + declarations: [SubgroupsListComponent], + providers: [SubgroupsListComponent, + { provide: GroupDataService, useValue: groupsDataServiceStub }, + { provide: NotificationsService, useValue: new NotificationsServiceStub() }, + { provide: FormBuilderService, useValue: builderService }, + { provide: Router, useValue: routerStub }, + ], + schemas: [NO_ERRORS_SCHEMA] + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SubgroupsListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + afterEach(fakeAsync(() => { + fixture.destroy(); + flush(); + component = null; + })); + + it('should create SubgroupsListComponent', inject([SubgroupsListComponent], (comp: SubgroupsListComponent) => { + expect(comp).toBeDefined(); + })); + + it('should show list of subgroups of current active group', () => { + const groupIdsFound = fixture.debugElement.queryAll(By.css('#subgroupsOfGroup tr td:first-child')); + expect(groupIdsFound.length).toEqual(1); + activeGroup.subgroups.map((group: Group) => { + expect(groupIdsFound.find((foundEl) => { + return (foundEl.nativeElement.textContent.trim() === group.uuid); + })).toBeTruthy(); + }) + }); + + describe('if first group delete button is pressed', () => { + let groupsFound; + beforeEach(fakeAsync(() => { + const addButton = fixture.debugElement.query(By.css('#subgroupsOfGroup tbody .deleteButton')); + addButton.triggerEventHandler('click', { + preventDefault: () => {/**/ + } + }); + tick(); + fixture.detectChanges(); + })); + it('one less subgroup in list from 1 to 0 (of 2 total groups)', () => { + groupsFound = fixture.debugElement.queryAll(By.css('#subgroupsOfGroup tbody tr')); + expect(groupsFound.length).toEqual(0); + }); + }); + + describe('search', () => { + describe('when searching with empty query', () => { + let groupsFound; + beforeEach(fakeAsync(() => { + component.search({ query: '' }); + groupsFound = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr')); + })); + + it('should display all groups', () => { + fixture.detectChanges(); + groupsFound = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr')); + expect(groupsFound.length).toEqual(2); + groupsFound = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr')); + const groupIdsFound = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr td:first-child')); + allGroups.map((group: Group) => { + expect(groupIdsFound.find((foundEl) => { + return (foundEl.nativeElement.textContent.trim() === group.uuid); + })).toBeTruthy(); + }) + }); + + describe('if group is already a subgroup', () => { + it('should have delete button, else it should have add button', () => { + fixture.detectChanges(); + groupsFound = fixture.debugElement.queryAll(By.css('#groupsSearch tbody tr')); + const getSubgroups = groupsDataServiceStub.getSubgroups().subgroups; + if (getSubgroups !== undefined && getSubgroups.length > 0) { + groupsFound.map((foundGroupRowElement) => { + if (foundGroupRowElement.debugElement !== undefined) { + const addButton = foundGroupRowElement.debugElement.query(By.css('td:last-child .fa-plus')); + const deleteButton = foundGroupRowElement.debugElement.query(By.css('td:last-child .fa-trash-alt')); + expect(addButton).toBeUndefined(); + expect(deleteButton).toBeDefined(); + } + }) + } else { + getSubgroups.map((group: Group) => { + groupsFound.map((foundGroupRowElement) => { + if (foundGroupRowElement.debugElement !== undefined) { + const groupId = foundGroupRowElement.debugElement.query(By.css('td:first-child')); + const addButton = foundGroupRowElement.debugElement.query(By.css('td:last-child .fa-plus')); + const deleteButton = foundGroupRowElement.debugElement.query(By.css('td:last-child .fa-trash-alt')); + if (groupId.nativeElement.textContent === group.id) { + expect(addButton).toBeUndefined(); + expect(deleteButton).toBeDefined(); + } else { + expect(deleteButton).toBeUndefined(); + expect(addButton).toBeDefined(); + } + } + }) + }) + } + }); + }); + }); + }); + +}); diff --git a/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts b/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts new file mode 100644 index 0000000000..62927b74aa --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/group-form/subgroup-list/subgroups-list.component.ts @@ -0,0 +1,253 @@ +import { Component, Input, OnDestroy, OnInit } from '@angular/core'; +import { FormBuilder } from '@angular/forms'; +import { Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { Observable, of as observableOf, Subscription } from 'rxjs'; +import { map, mergeMap, take } from 'rxjs/operators'; +import { RestResponse } from '../../../../../core/cache/response.models'; +import { PaginatedList } from '../../../../../core/data/paginated-list'; +import { RemoteData } from '../../../../../core/data/remote-data'; +import { GroupDataService } from '../../../../../core/eperson/group-data.service'; +import { Group } from '../../../../../core/eperson/models/group.model'; +import { getRemoteDataPayload, getSucceededRemoteData } from '../../../../../core/shared/operators'; +import { hasValue } from '../../../../../shared/empty.util'; +import { NotificationsService } from '../../../../../shared/notifications/notifications.service'; +import { PaginationComponentOptions } from '../../../../../shared/pagination/pagination-component-options.model'; + +@Component({ + selector: 'ds-subgroups-list', + templateUrl: './subgroups-list.component.html' +}) +/** + * The list of subgroups in the edit group page + */ +export class SubgroupsListComponent implements OnInit, OnDestroy { + + @Input() + messagePrefix: string; + + /** + * Result of search groups, initially all groups + */ + groupsSearch: Observable>>; + /** + * List of all subgroups of group being edited + */ + subgroupsOfGroup: Observable>>; + + /** + * List of subscriptions + */ + subs: Subscription[] = []; + + /** + * Pagination config used to display the list of groups that are result of groups search + */ + configSearch: PaginationComponentOptions = Object.assign(new PaginationComponentOptions(), { + id: 'search-subgroups-list-pagination', + pageSize: 5, + currentPage: 1 + }); + /** + * Pagination config used to display the list of subgroups of currently active group being edited + */ + config: PaginationComponentOptions = Object.assign(new PaginationComponentOptions(), { + id: 'subgroups-list-pagination', + pageSize: 5, + currentPage: 1 + }); + + // The search form + searchForm; + + // Current search in edit group - groups search form + currentSearchQuery: string; + + // Whether or not user has done a Groups search yet + searchDone: boolean; + + // current active group being edited + groupBeingEdited: Group; + + constructor(public groupDataService: GroupDataService, + private translateService: TranslateService, + private notificationsService: NotificationsService, + private formBuilder: FormBuilder, + private router: Router) { + this.currentSearchQuery = ''; + } + + ngOnInit() { + this.searchForm = this.formBuilder.group(({ + query: '', + })); + this.subs.push(this.groupDataService.getActiveGroup().subscribe((activeGroup: Group) => { + if (activeGroup != null) { + this.groupBeingEdited = activeGroup; + this.forceUpdateGroups(activeGroup); + } + })); + } + + /** + * Event triggered when the user changes page on search result + * @param event + */ + onPageChangeSearch(event) { + this.configSearch.currentPage = event; + this.search({ query: this.currentSearchQuery }); + } + + /** + * Event triggered when the user changes page on subgroups of active group + * @param event + */ + onPageChange(event) { + this.subgroupsOfGroup = this.groupDataService.findAllByHref(this.groupBeingEdited._links.subgroups.href, { + currentPage: event, + elementsPerPage: this.config.pageSize + }); + } + + /** + * Whether or not the given group is a subgroup of the group currently being edited + * @param possibleSubgroup Group that is a possible subgroup (being tested) of the group currently being edited + */ + isSubgroupOfGroup(possibleSubgroup: Group): Observable { + return this.groupDataService.getActiveGroup().pipe(take(1), + mergeMap((activeGroup: Group) => { + if (activeGroup != null) { + if (activeGroup.uuid === possibleSubgroup.uuid) { + return observableOf(false); + } else { + return this.groupDataService.findAllByHref(activeGroup._links.subgroups.href, { + currentPage: 0, + elementsPerPage: Number.MAX_SAFE_INTEGER + }) + .pipe( + getSucceededRemoteData(), + getRemoteDataPayload(), + map((listTotalGroups: PaginatedList) => listTotalGroups.page.filter((groupInList: Group) => groupInList.id === possibleSubgroup.id)), + map((groups: Group[]) => groups.length > 0)) + } + } else { + return observableOf(false); + } + })); + } + + /** + * Whether or not the given group is the current group being edited + * @param group Group that is possibly the current group being edited + */ + isActiveGroup(group: Group): Observable { + return this.groupDataService.getActiveGroup().pipe(take(1), + mergeMap((activeGroup: Group) => { + if (activeGroup != null && activeGroup.uuid === group.uuid) { + return observableOf(true); + } + return observableOf(false); + })); + } + + /** + * Deletes given subgroup from the group currently being edited + * @param subgroup Group we want to delete from the subgroups of the group currently being edited + */ + deleteSubgroupFromGroup(subgroup: Group) { + this.groupDataService.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { + if (activeGroup != null) { + const response = this.groupDataService.deleteSubGroupFromGroup(activeGroup, subgroup); + this.showNotifications('deleteSubgroup', response, subgroup.name, activeGroup); + this.forceUpdateGroups(activeGroup); + } else { + this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); + } + }); + } + + /** + * Adds given subgroup to the group currently being edited + * @param subgroup Subgroup to add to group currently being edited + */ + addSubgroupToGroup(subgroup: Group) { + this.groupDataService.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { + if (activeGroup != null) { + if (activeGroup.uuid !== subgroup.uuid) { + const response = this.groupDataService.addSubGroupToGroup(activeGroup, subgroup); + this.showNotifications('addSubgroup', response, subgroup.name, activeGroup); + } else { + this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.subgroupToAddIsActiveGroup')); + } + } else { + this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.noActiveGroup')); + } + }); + this.forceUpdateGroups(this.groupBeingEdited); + } + + /** + * Search in the groups (searches by group name and by uuid exact match) + * @param data Contains query param + */ + search(data: any) { + const query: string = data.query; + if (query != null && this.currentSearchQuery !== query) { + this.router.navigateByUrl(this.groupDataService.getGroupEditPageRouterLink(this.groupBeingEdited)); + this.currentSearchQuery = query; + this.configSearch.currentPage = 1; + } + this.searchDone = true; + this.groupsSearch = this.groupDataService.searchGroups(this.currentSearchQuery, { + currentPage: this.configSearch.currentPage, + elementsPerPage: this.configSearch.pageSize + }); + } + + /** + * Force-update the list of groups by first clearing the cache of results of this active groups' subgroups, then performing a new REST call + * @param activeGroup Group currently being edited + */ + public forceUpdateGroups(activeGroup: Group) { + this.groupDataService.clearGroupLinkRequests(activeGroup._links.subgroups.href); + this.router.navigateByUrl(this.groupDataService.getGroupEditPageRouterLink(activeGroup)); + this.subgroupsOfGroup = this.groupDataService.findAllByHref(activeGroup._links.subgroups.href, { + currentPage: this.config.currentPage, + elementsPerPage: this.config.pageSize + }); + } + + /** + * unsub all subscriptions + */ + ngOnDestroy(): void { + this.subs.filter((sub) => hasValue(sub)).forEach((sub) => sub.unsubscribe()); + } + + /** + * Shows a notification based on the success/failure of the request + * @param messageSuffix Suffix for message + * @param response RestResponse observable containing success/failure request + * @param nameObject Object request was about + * @param activeGroup Group currently being edited + */ + showNotifications(messageSuffix: string, response: Observable, nameObject: string, activeGroup: Group) { + response.pipe(take(1)).subscribe((restResponse: RestResponse) => { + if (restResponse.isSuccessful) { + this.notificationsService.success(this.translateService.get(this.messagePrefix + '.notification.success.' + messageSuffix, { name: nameObject })); + } else { + this.notificationsService.error(this.translateService.get(this.messagePrefix + '.notification.failure.' + messageSuffix, { name: nameObject })); + } + }) + } + + /** + * Reset all input-fields to be empty and search all search + */ + clearFormAndResetResult() { + this.searchForm.patchValue({ + query: '', + }); + this.search({ query: '' }); + } +} diff --git a/src/app/+admin/admin-access-control/group-registry/group-registry.actions.ts b/src/app/+admin/admin-access-control/group-registry/group-registry.actions.ts new file mode 100644 index 0000000000..3a0f3bc5c5 --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/group-registry.actions.ts @@ -0,0 +1,49 @@ +import { Action } from '@ngrx/store'; +import { Group } from '../../../core/eperson/models/group.model'; +import { type } from '../../../shared/ngrx/type'; + +/** + * For each action type in an action group, make a simple + * enum object for all of this group's action types. + * + * The 'type' utility function coerces strings into string + * literal types and runs a simple check to guarantee all + * action types in the application are unique. + */ +export const GroupRegistryActionTypes = { + + EDIT_GROUP: type('dspace/epeople-registry/EDIT_GROUP'), + CANCEL_EDIT_GROUP: type('dspace/epeople-registry/CANCEL_EDIT_GROUP'), +}; + +/* tslint:disable:max-classes-per-file */ +/** + * Used to edit a Group in the Group registry + */ +export class GroupRegistryEditGroupAction implements Action { + type = GroupRegistryActionTypes.EDIT_GROUP; + + group: Group; + + constructor(group: Group) { + this.group = group; + } +} + +/** + * Used to cancel the editing of a Group in the Group registry + */ +export class GroupRegistryCancelGroupAction implements Action { + type = GroupRegistryActionTypes.CANCEL_EDIT_GROUP; +} + +/* tslint:enable:max-classes-per-file */ + +/** + * Export a type alias of all actions in this action group + * so that reducers can easily compose action types + * These are all the actions to perform on the EPeople registry state + */ +export type GroupRegistryAction + = GroupRegistryEditGroupAction + | GroupRegistryCancelGroupAction diff --git a/src/app/+admin/admin-access-control/group-registry/group-registry.reducers.spec.ts b/src/app/+admin/admin-access-control/group-registry/group-registry.reducers.spec.ts new file mode 100644 index 0000000000..6c9f9d327a --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/group-registry.reducers.spec.ts @@ -0,0 +1,54 @@ +import { GroupMock } from '../../../shared/testing/group-mock'; +import { GroupRegistryCancelGroupAction, GroupRegistryEditGroupAction } from './group-registry.actions'; +import { groupRegistryReducer, GroupRegistryState } from './group-registry.reducers'; + +const initialState: GroupRegistryState = { + editGroup: null, +}; + +const editState: GroupRegistryState = { + editGroup: GroupMock, +}; + +class NullAction extends GroupRegistryEditGroupAction { + type = null; + + constructor() { + super(undefined); + } +} + +describe('groupRegistryReducer', () => { + + it('should return the current state when no valid actions have been made', () => { + const state = initialState; + const action = new NullAction(); + const newState = groupRegistryReducer(state, action); + + expect(newState).toEqual(state); + }); + + it('should start with an initial state', () => { + const state = initialState; + const action = new NullAction(); + const initState = groupRegistryReducer(undefined, action); + + expect(initState).toEqual(state); + }); + + it('should update the current state to change the editGroup to a new group when GroupRegistryEditGroupAction is dispatched', () => { + const state = editState; + const action = new GroupRegistryEditGroupAction(GroupMock); + const newState = groupRegistryReducer(state, action); + + expect(newState.editGroup).toEqual(GroupMock); + }); + + it('should update the current state to remove the editGroup from the state when GroupRegistryCancelGroupAction is dispatched', () => { + const state = editState; + const action = new GroupRegistryCancelGroupAction(); + const newState = groupRegistryReducer(state, action); + + expect(newState.editGroup).toEqual(null); + }); +}); diff --git a/src/app/+admin/admin-access-control/group-registry/group-registry.reducers.ts b/src/app/+admin/admin-access-control/group-registry/group-registry.reducers.ts new file mode 100644 index 0000000000..eca6c282a7 --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/group-registry.reducers.ts @@ -0,0 +1,43 @@ +import { Group } from '../../../core/eperson/models/group.model'; +import { GroupRegistryAction, GroupRegistryActionTypes, GroupRegistryEditGroupAction } from './group-registry.actions'; + +/** + * The metadata registry state. + * @interface GroupRegistryState + */ +export interface GroupRegistryState { + editGroup: Group; +} + +/** + * The initial state. + */ +const initialState: GroupRegistryState = { + editGroup: null, +}; + +/** + * Reducer that handles GroupRegistryActions to modify Groups + * @param state The current GroupRegistryState + * @param action The GroupRegistryAction to perform on the state + */ +export function groupRegistryReducer(state = initialState, action: GroupRegistryAction): GroupRegistryState { + + switch (action.type) { + + case GroupRegistryActionTypes.EDIT_GROUP: { + return Object.assign({}, state, { + editGroup: (action as GroupRegistryEditGroupAction).group + }); + } + + case GroupRegistryActionTypes.CANCEL_EDIT_GROUP: { + return Object.assign({}, state, { + editGroup: null + }); + } + + default: + return state; + } +} diff --git a/src/app/+admin/admin-access-control/group-registry/groups-registry.component.html b/src/app/+admin/admin-access-control/group-registry/groups-registry.component.html new file mode 100644 index 0000000000..3bd7d7ac4f --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/groups-registry.component.html @@ -0,0 +1,84 @@ +
+
+
+ + + +
+ +
+ + +
+
+
+ + + + +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
{{messagePrefix + 'table.id' | translate}}{{messagePrefix + 'table.name' | translate}}{{messagePrefix + 'table.members' | translate}}{{messagePrefix + 'table.edit' | translate}}
{{group.id}}{{group.name}}{{(getMembers(group) | async)?.payload?.totalElements + (getSubgroups(group) | async)?.payload?.totalElements}} +
+ + +
+
+
+
+ + + +
+
+
diff --git a/src/app/+admin/admin-access-control/group-registry/groups-registry.component.spec.ts b/src/app/+admin/admin-access-control/group-registry/groups-registry.component.spec.ts new file mode 100644 index 0000000000..7dff4f9bd1 --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/groups-registry.component.spec.ts @@ -0,0 +1,139 @@ +import { CommonModule } from '@angular/common'; +import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, fakeAsync, inject, TestBed, tick } from '@angular/core/testing'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { BrowserModule, By } from '@angular/platform-browser'; +import { Router } from '@angular/router'; +import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; +import { Observable } from 'rxjs/internal/Observable'; +import { PaginatedList } from '../../../core/data/paginated-list'; +import { RemoteData } from '../../../core/data/remote-data'; +import { EPersonDataService } from '../../../core/eperson/eperson-data.service'; +import { GroupDataService } from '../../../core/eperson/group-data.service'; +import { EPerson } from '../../../core/eperson/models/eperson.model'; +import { Group } from '../../../core/eperson/models/group.model'; +import { RouteService } from '../../../core/services/route.service'; +import { PageInfo } from '../../../core/shared/page-info.model'; +import { MockRouter } from '../../../shared/mocks/mock-router'; +import { MockTranslateLoader } from '../../../shared/mocks/mock-translate-loader'; +import { NotificationsService } from '../../../shared/notifications/notifications.service'; +import { EPersonMock, EPersonMock2 } from '../../../shared/testing/eperson-mock'; +import { GroupMock, GroupMock2 } from '../../../shared/testing/group-mock'; +import { NotificationsServiceStub } from '../../../shared/testing/notifications-service-stub'; +import { routeServiceStub } from '../../../shared/testing/route-service-stub'; +import { createSuccessfulRemoteDataObject$ } from '../../../shared/testing/utils'; +import { GroupsRegistryComponent } from './groups-registry.component'; + +describe('GroupRegistryComponent', () => { + let component: GroupsRegistryComponent; + let fixture: ComponentFixture; + let ePersonDataServiceStub: any; + let groupsDataServiceStub: any; + + let mockGroups; + let mockEPeople; + + beforeEach(async(() => { + mockGroups = [GroupMock, GroupMock2]; + mockEPeople = [EPersonMock, EPersonMock2]; + ePersonDataServiceStub = { + findAllByHref(href: string): Observable>> { + switch (href) { + case 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/epersons': + return createSuccessfulRemoteDataObject$(new PaginatedList(null, [])); + case 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid/epersons': + return createSuccessfulRemoteDataObject$(new PaginatedList(null, [EPersonMock])); + default: + return createSuccessfulRemoteDataObject$(new PaginatedList(null, [])); + } + } + }; + groupsDataServiceStub = { + allGroups: mockGroups, + findAllByHref(href: string): Observable>> { + switch (href) { + case 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/groups': + return createSuccessfulRemoteDataObject$(new PaginatedList(null, [])); + case 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid/groups': + return createSuccessfulRemoteDataObject$(new PaginatedList(null, [GroupMock2])); + default: + return createSuccessfulRemoteDataObject$(new PaginatedList(null, [])); + } + }, + getGroupEditPageRouterLink(group: Group): string { + return '/admin/access-control/groups/' + group.id; + }, + getGroupRegistryRouterLink(): string { + return '/admin/access-control/groups'; + }, + searchGroups(query: string): Observable>> { + if (query === '') { + return createSuccessfulRemoteDataObject$(new PaginatedList(null, this.allGroups)); + } + const result = this.allGroups.find((group: Group) => { + return (group.id.includes(query)) + }); + return createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [result])); + } + }; + TestBed.configureTestingModule({ + imports: [CommonModule, NgbModule, FormsModule, ReactiveFormsModule, BrowserModule, + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useClass: MockTranslateLoader + } + }), + ], + declarations: [GroupsRegistryComponent], + providers: [GroupsRegistryComponent, + { provide: EPersonDataService, useValue: ePersonDataServiceStub }, + { provide: GroupDataService, useValue: groupsDataServiceStub }, + { provide: NotificationsService, useValue: new NotificationsServiceStub() }, + { provide: RouteService, useValue: routeServiceStub }, + { provide: Router, useValue: new MockRouter() }, + ], + schemas: [NO_ERRORS_SCHEMA] + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(GroupsRegistryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create GroupRegistryComponent', inject([GroupsRegistryComponent], (comp: GroupsRegistryComponent) => { + expect(comp).toBeDefined(); + })); + + it('should display list of groups', () => { + const groupIdsFound = fixture.debugElement.queryAll(By.css('#groups tr td:first-child')); + expect(groupIdsFound.length).toEqual(2); + mockGroups.map((group: Group) => { + expect(groupIdsFound.find((foundEl) => { + return (foundEl.nativeElement.textContent.trim() === group.uuid); + })).toBeTruthy(); + }) + }); + + describe('search', () => { + describe('when searching with query', () => { + let groupIdsFound; + beforeEach(fakeAsync(() => { + component.search({ query: GroupMock2.id }); + tick(); + fixture.detectChanges(); + groupIdsFound = fixture.debugElement.queryAll(By.css('#groups tr td:first-child')); + })); + + it('should display search result', () => { + expect(groupIdsFound.length).toEqual(1); + expect(groupIdsFound.find((foundEl) => { + return (foundEl.nativeElement.textContent.trim() === GroupMock2.uuid); + })).toBeTruthy(); + }); + }); + }); +}); diff --git a/src/app/+admin/admin-access-control/group-registry/groups-registry.component.ts b/src/app/+admin/admin-access-control/group-registry/groups-registry.component.ts new file mode 100644 index 0000000000..c8ab102d30 --- /dev/null +++ b/src/app/+admin/admin-access-control/group-registry/groups-registry.component.ts @@ -0,0 +1,154 @@ +import { Component, OnInit } from '@angular/core'; +import { FormBuilder } from '@angular/forms'; +import { Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { Observable } from 'rxjs'; +import { take } from 'rxjs/operators'; +import { PaginatedList } from '../../../core/data/paginated-list'; +import { RemoteData } from '../../../core/data/remote-data'; +import { EPersonDataService } from '../../../core/eperson/eperson-data.service'; +import { GroupDataService } from '../../../core/eperson/group-data.service'; +import { EPerson } from '../../../core/eperson/models/eperson.model'; +import { Group } from '../../../core/eperson/models/group.model'; +import { RouteService } from '../../../core/services/route.service'; +import { hasValue } from '../../../shared/empty.util'; +import { NotificationsService } from '../../../shared/notifications/notifications.service'; +import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model'; + +@Component({ + selector: 'ds-groups-registry', + templateUrl: './groups-registry.component.html', +}) +/** + * A component used for managing all existing groups within the repository. + * The admin can create, edit or delete groups here. + */ +export class GroupsRegistryComponent implements OnInit { + + messagePrefix = 'admin.access-control.groups.'; + + /** + * Pagination config used to display the list of groups + */ + config: PaginationComponentOptions = Object.assign(new PaginationComponentOptions(), { + id: 'groups-list-pagination', + pageSize: 5, + currentPage: 1 + }); + + /** + * A list of all the current groups within the repository or the result of the search + */ + groups: Observable>>; + + // The search form + searchForm; + + // Current search in groups registry + currentSearchQuery: string; + + constructor(private groupService: GroupDataService, + private ePersonDataService: EPersonDataService, + private translateService: TranslateService, + private notificationsService: NotificationsService, + private formBuilder: FormBuilder, + protected routeService: RouteService, + private router: Router) { + this.currentSearchQuery = ''; + this.searchForm = this.formBuilder.group(({ + query: this.currentSearchQuery, + })); + } + + ngOnInit() { + this.search({ query: this.currentSearchQuery }); + } + + /** + * Event triggered when the user changes page + * @param event + */ + onPageChange(event) { + this.config.currentPage = event; + this.search({ query: this.currentSearchQuery }) + } + + /** + * Search in the groups (searches by group name and by uuid exact match) + * @param data Contains query param + */ + search(data: any) { + const query: string = data.query; + if (query != null && this.currentSearchQuery !== query) { + this.router.navigateByUrl(this.groupService.getGroupRegistryRouterLink()); + this.currentSearchQuery = query; + this.config.currentPage = 1; + } + this.groups = this.groupService.searchGroups(this.currentSearchQuery.trim(), { + currentPage: this.config.currentPage, + elementsPerPage: this.config.pageSize + }); + } + + /** + * Delete Group + */ + deleteGroup(group: Group) { + // TODO (backend) + console.log('TODO implement editGroup', group); + this.notificationsService.error('TODO implement deleteGroup (not yet implemented in backend)'); + if (hasValue(group.id)) { + this.groupService.deleteGroup(group).pipe(take(1)).subscribe((success: boolean) => { + if (success) { + this.notificationsService.success(this.translateService.get(this.messagePrefix + 'notification.deleted.success', { name: group.name })); + this.forceUpdateGroup(); + } else { + this.notificationsService.error(this.translateService.get(this.messagePrefix + 'notification.deleted.failure', { name: group.name })); + } + }) + } + } + + /** + * Force-update the list of groups by first clearing the cache related to groups, then performing a new REST call + */ + public forceUpdateGroup() { + this.groupService.clearGroupsRequests(); + this.search({ query: this.currentSearchQuery }) + } + + /** + * Get the members (epersons embedded value of a group) + * @param group + */ + getMembers(group: Group): Observable>> { + return this.ePersonDataService.findAllByHref(group._links.epersons.href); + } + + /** + * Get the subgroups (groups embedded value of a group) + * @param group + */ + getSubgroups(group: Group): Observable>> { + return this.groupService.findAllByHref(group._links.subgroups.href); + } + + /** + * Reset all input-fields to be empty and search all search + */ + clearFormAndResetResult() { + this.searchForm.patchValue({ + query: '', + }); + this.search({ query: '' }); + } + + /** + * Extract optional UUID from a group name => To be resolved to community or collection with link + * (Or will be resolved in backend and added to group object, tbd) //TODO + * @param groupName + */ + getOptionalComColFromName(groupName: string): string { + return this.groupService.getUUIDFromString(groupName); + } +} diff --git a/src/app/+admin/admin-routing.module.ts b/src/app/+admin/admin-routing.module.ts index b4a68d692a..aa47c93102 100644 --- a/src/app/+admin/admin-routing.module.ts +++ b/src/app/+admin/admin-routing.module.ts @@ -1,9 +1,9 @@ -import { RouterModule } from '@angular/router'; import { NgModule } from '@angular/core'; -import { URLCombiner } from '../core/url-combiner/url-combiner'; +import { RouterModule } from '@angular/router'; import { getAdminModulePath } from '../app-routing.module'; import { AdminSearchPageComponent } from './admin-search-page/admin-search-page.component'; import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver'; +import { URLCombiner } from '../core/url-combiner/url-combiner'; const REGISTRIES_MODULE_PATH = 'registries'; const ACCESS_CONTROL_MODULE_PATH = 'access-control'; @@ -12,6 +12,10 @@ export function getRegistriesModulePath() { return new URLCombiner(getAdminModulePath(), REGISTRIES_MODULE_PATH).toString(); } +export function getAccessControlModulePath() { + return new URLCombiner(getAdminModulePath(), ACCESS_CONTROL_MODULE_PATH).toString(); +} + @NgModule({ imports: [ RouterModule.forChild([ @@ -28,8 +32,8 @@ export function getRegistriesModulePath() { resolve: { breadcrumb: I18nBreadcrumbResolver }, component: AdminSearchPageComponent, data: { title: 'admin.search.title', breadcrumbKey: 'admin.search' } - }, - ]) + } + ]), ] }) export class AdminRoutingModule { diff --git a/src/app/+admin/admin-sidebar/admin-sidebar.component.ts b/src/app/+admin/admin-sidebar/admin-sidebar.component.ts index e3f55b8e18..79aad4599d 100644 --- a/src/app/+admin/admin-sidebar/admin-sidebar.component.ts +++ b/src/app/+admin/admin-sidebar/admin-sidebar.component.ts @@ -336,7 +336,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.access_control_groups', - link: '' + link: '/admin/access-control/groups' } as LinkMenuItemModel, }, { diff --git a/src/app/+community-page/edit-community-page/community-roles/community-roles.component.html b/src/app/+community-page/edit-community-page/community-roles/community-roles.component.html index e69de29bb2..a2dffdadfe 100644 --- a/src/app/+community-page/edit-community-page/community-roles/community-roles.component.html +++ b/src/app/+community-page/edit-community-page/community-roles/community-roles.component.html @@ -0,0 +1,7 @@ + + diff --git a/src/app/+community-page/edit-community-page/community-roles/community-roles.component.spec.ts b/src/app/+community-page/edit-community-page/community-roles/community-roles.component.spec.ts new file mode 100644 index 0000000000..9849528c54 --- /dev/null +++ b/src/app/+community-page/edit-community-page/community-roles/community-roles.component.spec.ts @@ -0,0 +1,56 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { TranslateModule } from '@ngx-translate/core'; +import { ActivatedRoute } from '@angular/router'; +import { of as observableOf } from 'rxjs/internal/observable/of'; +import { DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { CommunityRolesComponent } from './community-roles.component'; +import { Community } from '../../../core/shared/community.model'; +import { By } from '@angular/platform-browser'; +import { RemoteData } from '../../../core/data/remote-data'; + +describe('CommunityRolesComponent', () => { + + let fixture: ComponentFixture; + let comp: CommunityRolesComponent; + let de: DebugElement; + + beforeEach(() => { + + const route = { + parent: { + data: observableOf({ + dso: new RemoteData( + false, + false, + true, + undefined, + new Community(), + ) + }) + } + }; + + TestBed.configureTestingModule({ + imports: [ + TranslateModule.forRoot(), + ], + declarations: [ + CommunityRolesComponent, + ], + providers: [ + { provide: ActivatedRoute, useValue: route }, + ], + schemas: [NO_ERRORS_SCHEMA] + }).compileComponents(); + + fixture = TestBed.createComponent(CommunityRolesComponent); + comp = fixture.componentInstance; + de = fixture.debugElement; + + fixture.detectChanges(); + }); + + it('should display a community admin role component', () => { + expect(de.query(By.css('ds-comcol-role.admin'))).toBeDefined(); + }); +}); diff --git a/src/app/+community-page/edit-community-page/community-roles/community-roles.component.ts b/src/app/+community-page/edit-community-page/community-roles/community-roles.component.ts index afa1fe14d1..edf6d50e62 100644 --- a/src/app/+community-page/edit-community-page/community-roles/community-roles.component.ts +++ b/src/app/+community-page/edit-community-page/community-roles/community-roles.component.ts @@ -1,4 +1,11 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { Observable } from 'rxjs'; +import { first, map } from 'rxjs/operators'; +import { Community } from '../../../core/shared/community.model'; +import { getRemoteDataPayload, getSucceededRemoteData } from '../../../core/shared/operators'; +import { ComcolRole } from '../../../shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role'; +import { RemoteData } from '../../../core/data/remote-data'; /** * Component for managing a community's roles @@ -7,6 +14,38 @@ import { Component } from '@angular/core'; selector: 'ds-community-roles', templateUrl: './community-roles.component.html', }) -export class CommunityRolesComponent { - /* TODO: Implement Community Edit - Roles */ +export class CommunityRolesComponent implements OnInit { + + dsoRD$: Observable>; + + /** + * The community to manage, as an observable. + */ + get community$(): Observable { + return this.dsoRD$.pipe( + getSucceededRemoteData(), + getRemoteDataPayload(), + ) + } + + /** + * The different roles for the community. + */ + getComcolRoles(): ComcolRole[] { + return [ + ComcolRole.ADMIN, + ]; + } + + constructor( + protected route: ActivatedRoute, + ) { + } + + ngOnInit(): void { + this.dsoRD$ = this.route.parent.data.pipe( + first(), + map((data) => data.dso), + ); + } } diff --git a/src/app/app.reducer.ts b/src/app/app.reducer.ts index a40005814a..e25ddcd44d 100644 --- a/src/app/app.reducer.ts +++ b/src/app/app.reducer.ts @@ -4,6 +4,10 @@ import { ePeopleRegistryReducer, EPeopleRegistryState } from './+admin/admin-access-control/epeople-registry/epeople-registry.reducers'; +import { + groupRegistryReducer, + GroupRegistryState +} from './+admin/admin-access-control/group-registry/group-registry.reducers'; import { metadataRegistryReducer, MetadataRegistryState @@ -47,6 +51,7 @@ export interface AppState { relationshipLists: NameVariantListsState; communityList: CommunityListState; epeopleRegistry: EPeopleRegistryState; + groupRegistry: GroupRegistryState; } export const appReducers: ActionReducerMap = { @@ -66,6 +71,7 @@ export const appReducers: ActionReducerMap = { relationshipLists: nameVariantReducer, communityList: CommunityListReducer, epeopleRegistry: ePeopleRegistryReducer, + groupRegistry: groupRegistryReducer, }; export const routerStateSelector = (state: AppState) => state.router; diff --git a/src/app/core/data/data.service.spec.ts b/src/app/core/data/data.service.spec.ts index c370be2b9e..f776dfea63 100644 --- a/src/app/core/data/data.service.spec.ts +++ b/src/app/core/data/data.service.spec.ts @@ -2,7 +2,6 @@ import { HttpClient } from '@angular/common/http'; import { Store } from '@ngrx/store'; import { compare, Operation } from 'fast-json-patch'; import { Observable, of as observableOf } from 'rxjs'; -import * as uuidv4 from 'uuid/v4'; import { NotificationsService } from '../../shared/notifications/notifications.service'; import { createSuccessfulRemoteDataObject$ } from '../../shared/testing/utils'; import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model'; diff --git a/src/app/core/data/request.service.spec.ts b/src/app/core/data/request.service.spec.ts index 017721fdf9..cfb3611fc6 100644 --- a/src/app/core/data/request.service.spec.ts +++ b/src/app/core/data/request.service.spec.ts @@ -22,6 +22,7 @@ import { } from './request.models'; import { RequestEntry } from './request.reducer'; import { RequestService } from './request.service'; +import { parseJsonSchemaToCommandDescription } from '@angular/cli/utilities/json-schema'; describe('RequestService', () => { let scheduler: TestScheduler; @@ -139,13 +140,21 @@ describe('RequestService', () => { describe('getByUUID', () => { describe('if the request with the specified UUID exists in the store', () => { beforeEach(() => { + let callCounter = 0; + const responses = [ + cold('a', { // A direct hit in the request cache + a: { + completed: true + } + }), + cold('b', { b: undefined }), // No hit in the index + cold('c', { c: undefined }) // So no mapped hit in the request cache + ]; selectSpy.and.callFake(() => { return () => { - return () => hot('a', { - a: { - completed: true - } - }); + const response = responses[callCounter]; + callCounter++; + return () => response; }; }); }); @@ -162,11 +171,19 @@ describe('RequestService', () => { }); }); - describe('if the request with the specified UUID doesn\'t exist in the store', () => { + describe(`if the request with the specified UUID doesn't exist in the store `, () => { beforeEach(() => { + let callCounter = 0; + const responses = [ + cold('a', { a: undefined }), // No direct hit in the request cache + cold('b', { b: undefined }), // No hit in the index + cold('c', { c: undefined }), // So no mapped hit in the request cache + ]; selectSpy.and.callFake(() => { return () => { - return () => hot('a', { a: undefined }); + const response = responses[callCounter]; + callCounter++; + return () => response; }; }); }); @@ -174,11 +191,43 @@ describe('RequestService', () => { it('should return an Observable of undefined', () => { const result = service.getByUUID(testUUID); - scheduler.expectObservable(result).toBe('b', { b: undefined }); + scheduler.expectObservable(result).toBe('a', { a: undefined }); }); }); - }); + describe(`if the request with the specified UUID wasn't sent, because it was already cached`, () => { + beforeEach(() => { + let callCounter = 0; + const responses = [ + cold('a', { a: undefined }), // No direct hit in the request cache with that UUID + cold('b', { b: 'otherRequestUUID' }), // A hit in the index, which returns the uuid of the cached request + cold('c', { // the call to retrieve the cached request using the UUID from the index + c: { + completed: true + } + }) + ]; + selectSpy.and.callFake(() => { + return () => { + const response = responses[callCounter]; + callCounter++; + return () => response; + }; + }); + }); + + it(`it should return the cached request`, () => { + const result = service.getByUUID(testUUID); + + scheduler.expectObservable(result).toBe('c', { + c: { + completed: true + } + }); + }); + }); + + }); describe('getByHref', () => { describe('when the request with the specified href exists in the store', () => { diff --git a/src/app/core/data/request.service.ts b/src/app/core/data/request.service.ts index 810b0721ae..105d84cf4a 100644 --- a/src/app/core/data/request.service.ts +++ b/src/app/core/data/request.service.ts @@ -2,10 +2,10 @@ import { Injectable } from '@angular/core'; import { HttpHeaders } from '@angular/common/http'; import { createSelector, MemoizedSelector, select, Store } from '@ngrx/store'; -import { Observable, race as observableRace } from 'rxjs'; -import { filter, map, mergeMap, take } from 'rxjs/operators'; +import { Observable, combineLatest as observableCombineLatest } from 'rxjs'; +import { filter, map, mergeMap, take, switchMap, startWith } from 'rxjs/operators'; import { cloneDeep, remove } from 'lodash'; -import { hasValue, isEmpty, isNotEmpty } from '../../shared/empty.util'; +import { hasValue, isEmpty, isNotEmpty, hasValueOperator } from '../../shared/empty.util'; import { CacheableObject } from '../cache/object-cache.reducer'; import { ObjectCacheService } from '../cache/object-cache.service'; import { CoreState } from '../core.reducers'; @@ -110,15 +110,19 @@ export class RequestService { * Retrieve a RequestEntry based on their uuid */ getByUUID(uuid: string): Observable { - return observableRace( - this.store.pipe(select(entryFromUUIDSelector(uuid))), + return observableCombineLatest([ + this.store.pipe( + select(entryFromUUIDSelector(uuid)) + ), this.store.pipe( select(originalRequestUUIDFromRequestUUIDSelector(uuid)), - mergeMap((originalUUID) => { - return this.store.pipe(select(entryFromUUIDSelector(originalUUID))) + switchMap((originalUUID) => { + return this.store.pipe(select(entryFromUUIDSelector(originalUUID))) }, - )) - ).pipe( + ), + ), + ]).pipe( + map((entries: RequestEntry[]) => entries.find((entry: RequestEntry) => hasValue(entry))), map((entry: RequestEntry) => { // Headers break after being retrieved from the store (because of lazy initialization) // Combining them with a new object fixes this issue @@ -137,7 +141,13 @@ export class RequestService { getByHref(href: string): Observable { return this.store.pipe( select(uuidFromHrefSelector(href)), - mergeMap((uuid: string) => this.getByUUID(uuid)) + mergeMap((uuid: string) => { + if (isNotEmpty(uuid)) { + return this.getByUUID(uuid); + } else { + return [undefined]; + } + }) ); } diff --git a/src/app/core/eperson/eperson-data.service.spec.ts b/src/app/core/eperson/eperson-data.service.spec.ts index f05a18bbd2..81055b806d 100644 --- a/src/app/core/eperson/eperson-data.service.spec.ts +++ b/src/app/core/eperson/eperson-data.service.spec.ts @@ -39,43 +39,15 @@ describe('EPersonDataService', () => { let requestService: RequestService; let scheduler: TestScheduler; - const epeople = [EPersonMock, EPersonMock2]; + let epeople; - const restEndpointURL = 'https://dspace.4science.it/dspace-spring-rest/api/eperson'; - const epersonsEndpoint = `${restEndpointURL}/epersons`; - let halService: any = new HALEndpointServiceStub(restEndpointURL); - const epeople$ = createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [epeople])); - const rdbService = getMockRemoteDataBuildServiceHrefMap(undefined, { 'https://dspace.4science.it/dspace-spring-rest/api/eperson/epersons': epeople$ }); - const objectCache = Object.assign({ - /* tslint:disable:no-empty */ - remove: () => { - }, - hasBySelfLinkObservable: () => observableOf(false) - /* tslint:enable:no-empty */ - }) as ObjectCacheService; + let restEndpointURL; + let epersonsEndpoint; + let halService: any; + let epeople$; + let rdbService; - TestBed.configureTestingModule({ - imports: [ - CommonModule, - StoreModule.forRoot({}), - TranslateModule.forRoot({ - loader: { - provide: TranslateLoader, - useClass: MockTranslateLoader - } - }), - ], - declarations: [], - providers: [], - schemas: [CUSTOM_ELEMENTS_SCHEMA] - }); - - const getRequestEntry$ = (successful: boolean) => { - return observableOf({ - completed: true, - response: { isSuccessful: successful, payload: epeople } as any - } as RequestEntry) - }; + let getRequestEntry$; function initTestService() { return new EPersonDataService( @@ -90,7 +62,39 @@ describe('EPersonDataService', () => { ); } + function init() { + getRequestEntry$ = (successful: boolean) => { + return observableOf({ + completed: true, + response: { isSuccessful: successful, payload: epeople } as any + } as RequestEntry) + }; + restEndpointURL = 'https://dspace.4science.it/dspace-spring-rest/api/eperson'; + epersonsEndpoint = `${restEndpointURL}/epersons`; + epeople = [EPersonMock, EPersonMock2]; + epeople$ = createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [epeople])); + rdbService = getMockRemoteDataBuildServiceHrefMap(undefined, { 'https://dspace.4science.it/dspace-spring-rest/api/eperson/epersons': epeople$ }); + halService = new HALEndpointServiceStub(restEndpointURL); + + TestBed.configureTestingModule({ + imports: [ + CommonModule, + StoreModule.forRoot({}), + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useClass: MockTranslateLoader + } + }), + ], + declarations: [], + providers: [], + schemas: [CUSTOM_ELEMENTS_SCHEMA] + }); + } + beforeEach(() => { + init(); requestService = getMockRequestService(getRequestEntry$(true)); store = new Store(undefined, undefined, undefined); service = initTestService(); diff --git a/src/app/core/eperson/eperson-data.service.ts b/src/app/core/eperson/eperson-data.service.ts index 99514144d2..86e53178a0 100644 --- a/src/app/core/eperson/eperson-data.service.ts +++ b/src/app/core/eperson/eperson-data.service.ts @@ -181,7 +181,7 @@ export class EPersonDataService extends DataService { } /** - * Method that clears a cached EPerson request and returns its REST url + * Method that clears a cached EPerson request */ public clearEPersonRequests(): void { this.getBrowseEndpoint().pipe(take(1)).subscribe((link: string) => { @@ -189,6 +189,13 @@ export class EPersonDataService extends DataService { }); } + /** + * Method that clears a link's requests in cache + */ + public clearLinkRequests(href: string): void { + this.requestService.removeByHrefSubstring(href); + } + /** * Method to retrieve the eperson that is currently being edited */ @@ -219,4 +226,27 @@ export class EPersonDataService extends DataService { return this.delete(ePerson.id); } + /** + * Change which ePerson is being edited and return the link for EPeople edit page + * @param ePerson New EPerson to edit + */ + public startEditingNewEPerson(ePerson: EPerson): string { + this.getActiveEPerson().pipe(take(1)).subscribe((activeEPerson: EPerson) => { + if (ePerson === activeEPerson) { + this.cancelEditEPerson(); + } else { + this.editEPerson(ePerson); + } + }); + return '/admin/access-control/epeople'; + } + + /** + * Get EPeople admin page + * @param ePerson New EPerson to edit + */ + public getEPeoplePageRouterLink(): string { + return '/admin/access-control/epeople'; + } + } diff --git a/src/app/core/eperson/group-data.service.spec.ts b/src/app/core/eperson/group-data.service.spec.ts new file mode 100644 index 0000000000..138cf547f2 --- /dev/null +++ b/src/app/core/eperson/group-data.service.spec.ts @@ -0,0 +1,198 @@ +import { CommonModule } from '@angular/common'; +import { HttpHeaders } from '@angular/common/http'; +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { TestBed } from '@angular/core/testing'; +import { Store, StoreModule } from '@ngrx/store'; +import { of as observableOf } from 'rxjs'; +import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; +import { compare, Operation } from 'fast-json-patch'; +import { + GroupRegistryCancelGroupAction, + GroupRegistryEditGroupAction +} from '../../+admin/admin-access-control/group-registry/group-registry.actions'; +import { getMockRemoteDataBuildServiceHrefMap } from '../../shared/mocks/mock-remote-data-build.service'; +import { getMockRequestService } from '../../shared/mocks/mock-request.service'; +import { MockTranslateLoader } from '../../shared/mocks/mock-translate-loader'; +import { EPersonMock, EPersonMock2 } from '../../shared/testing/eperson-mock'; +import { GroupMock, GroupMock2 } from '../../shared/testing/group-mock'; +import { HALEndpointServiceStub } from '../../shared/testing/hal-endpoint-service-stub'; +import { createSuccessfulRemoteDataObject$ } from '../../shared/testing/utils'; +import { SearchParam } from '../cache/models/search-param.model'; +import { CoreState } from '../core.reducers'; +import { ChangeAnalyzer } from '../data/change-analyzer'; +import { PaginatedList } from '../data/paginated-list'; +import { DeleteByIDRequest, DeleteRequest, FindListOptions, PostRequest } from '../data/request.models'; +import { RequestEntry } from '../data/request.reducer'; +import { RequestService } from '../data/request.service'; +import { HttpOptions } from '../dspace-rest-v2/dspace-rest-v2.service'; +import { Item } from '../shared/item.model'; +import { PageInfo } from '../shared/page-info.model'; +import { GroupDataService } from './group-data.service'; + +describe('GroupDataService', () => { + let service: GroupDataService; + let store: Store; + let requestService: RequestService; + + let restEndpointURL; + let groupsEndpoint; + let groups; + let groups$; + let halService; + let rdbService; + + let getRequestEntry$; + + function init() { + getRequestEntry$ = (successful: boolean) => { + return observableOf({ + completed: true, + response: { isSuccessful: successful, payload: groups } as any + } as RequestEntry) + }; + restEndpointURL = 'https://dspace.4science.it/dspace-spring-rest/api/eperson'; + groupsEndpoint = `${restEndpointURL}/groups`; + groups = [GroupMock, GroupMock2]; + groups$ = createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), groups)); + rdbService = getMockRemoteDataBuildServiceHrefMap(undefined, { 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups': groups$ }); + halService = new HALEndpointServiceStub(restEndpointURL); + TestBed.configureTestingModule({ + imports: [ + CommonModule, + StoreModule.forRoot({}), + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useClass: MockTranslateLoader + } + }), + ], + declarations: [], + providers: [], + schemas: [CUSTOM_ELEMENTS_SCHEMA] + }); + } + + function initTestService() { + return new GroupDataService( + new DummyChangeAnalyzer() as any, + null, + null, + requestService, + rdbService, + store, + null, + halService, + null, + ); + }; + + beforeEach(() => { + init(); + requestService = getMockRequestService(getRequestEntry$(true)); + store = new Store(undefined, undefined, undefined); + service = initTestService(); + spyOn(store, 'dispatch'); + }); + + describe('searchGroups', () => { + beforeEach(() => { + spyOn(service, 'searchBy'); + }); + + it('search with empty query', () => { + service.searchGroups(''); + const options = Object.assign(new FindListOptions(), { + searchParams: [Object.assign(new SearchParam('query', ''))] + }); + expect(service.searchBy).toHaveBeenCalledWith('byMetadata', options); + }); + + it('search with query', () => { + service.searchGroups('test'); + const options = Object.assign(new FindListOptions(), { + searchParams: [Object.assign(new SearchParam('query', 'test'))] + }); + expect(service.searchBy).toHaveBeenCalledWith('byMetadata', options); + }); + }); + + describe('deleteGroup', () => { + beforeEach(() => { + service.deleteGroup(GroupMock2).subscribe(); + }); + + it('should send DeleteRequest', () => { + const expected = new DeleteByIDRequest(requestService.generateRequestId(), groupsEndpoint + '/' + GroupMock2.uuid, GroupMock2.uuid); + expect(requestService.configure).toHaveBeenCalledWith(expected); + }); + }); + + describe('addSubGroupToGroup', () => { + beforeEach(() => { + service.addSubGroupToGroup(GroupMock, GroupMock2).subscribe(); + }); + it('should send PostRequest to eperson/groups/group-id/subgroups endpoint with new subgroup link in body', () => { + let headers = new HttpHeaders(); + const options: HttpOptions = Object.create({}); + headers = headers.append('Content-Type', 'text/uri-list'); + options.headers = headers; + const expected = new PostRequest(requestService.generateRequestId(), GroupMock.self + '/' + service.subgroupsEndpoint, GroupMock2.self, options); + expect(requestService.configure).toHaveBeenCalledWith(expected); + }); + }); + + describe('deleteSubGroupFromGroup', () => { + beforeEach(() => { + service.deleteSubGroupFromGroup(GroupMock, GroupMock2).subscribe(); + }); + it('should send DeleteRequest to eperson/groups/group-id/subgroups/group-id endpoint', () => { + const expected = new DeleteRequest(requestService.generateRequestId(), GroupMock.self + '/' + service.subgroupsEndpoint + '/' + GroupMock2.id); + expect(requestService.configure).toHaveBeenCalledWith(expected); + }); + }); + + describe('addMemberToGroup', () => { + beforeEach(() => { + service.addMemberToGroup(GroupMock, EPersonMock2).subscribe(); + }); + it('should send PostRequest to eperson/groups/group-id/epersons endpoint with new eperson member in body', () => { + let headers = new HttpHeaders(); + const options: HttpOptions = Object.create({}); + headers = headers.append('Content-Type', 'text/uri-list'); + options.headers = headers; + const expected = new PostRequest(requestService.generateRequestId(), GroupMock.self + '/' + service.ePersonsEndpoint, EPersonMock2.self, options); + expect(requestService.configure).toHaveBeenCalledWith(expected); + }); + }); + + describe('deleteMemberFromGroup', () => { + beforeEach(() => { + service.deleteMemberFromGroup(GroupMock, EPersonMock).subscribe(); + }); + it('should send DeleteRequest to eperson/groups/group-id/epersons/eperson-id endpoint', () => { + const expected = new DeleteRequest(requestService.generateRequestId(), GroupMock.self + '/' + service.ePersonsEndpoint + '/' + EPersonMock.id); + expect(requestService.configure).toHaveBeenCalledWith(expected); + }); + }); + + describe('editGroup', () => { + it('should dispatch a EDIT_GROUP action with the groupp to start editing', () => { + service.editGroup(GroupMock); + expect(store.dispatch).toHaveBeenCalledWith(new GroupRegistryEditGroupAction(GroupMock)); + }); + }); + + describe('cancelEditGroup', () => { + it('should dispatch a CANCEL_EDIT_GROUP action', () => { + service.cancelEditGroup(); + expect(store.dispatch).toHaveBeenCalledWith(new GroupRegistryCancelGroupAction()); + }); + }); +}); + +class DummyChangeAnalyzer implements ChangeAnalyzer { + diff(object1: Item, object2: Item): Operation[] { + return compare((object1 as any).metadata, (object2 as any).metadata); + } +} diff --git a/src/app/core/eperson/group-data.service.ts b/src/app/core/eperson/group-data.service.ts index 40bd2fa275..205bbb5c50 100644 --- a/src/app/core/eperson/group-data.service.ts +++ b/src/app/core/eperson/group-data.service.ts @@ -1,28 +1,52 @@ +import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { Store } from '@ngrx/store'; +import { createSelector, select, Store } from '@ngrx/store'; import { Observable } from 'rxjs'; -import { filter, map, take } from 'rxjs/operators'; +import { distinctUntilChanged, filter, map, switchMap, take, tap } from 'rxjs/operators'; +import { + GroupRegistryCancelGroupAction, + GroupRegistryEditGroupAction +} from '../../+admin/admin-access-control/group-registry/group-registry.actions'; +import { GroupRegistryState } from '../../+admin/admin-access-control/group-registry/group-registry.reducers'; +import { AppState } from '../../app.reducer'; +import { hasValue } from '../../shared/empty.util'; +import { NotificationsService } from '../../shared/notifications/notifications.service'; +import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model'; +import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service'; +import { RequestParam } from '../cache/models/request-param.model'; +import { ObjectCacheService } from '../cache/object-cache.service'; +import { RestResponse } from '../cache/response.models'; import { DataService } from '../data/data.service'; +import { DSOChangeAnalyzer } from '../data/dso-change-analyzer.service'; +import { PaginatedList } from '../data/paginated-list'; +import { RemoteData } from '../data/remote-data'; +import { + CreateRequest, + DeleteRequest, + FindListOptions, + FindListRequest, + PostRequest +} from '../data/request.models'; import { RequestService } from '../data/request.service'; -import { FindListOptions } from '../data/request.models'; +import { HttpOptions } from '../dspace-rest-v2/dspace-rest-v2.service'; import { HALEndpointService } from '../shared/hal-endpoint.service'; +import { configureRequest, getResponseFromEntry} from '../shared/operators'; +import { EPerson } from './models/eperson.model'; import { Group } from './models/group.model'; -import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service'; -import { CoreState } from '../core.reducers'; -import { ObjectCacheService } from '../cache/object-cache.service'; -import { RequestParam } from '../cache/models/request-param.model'; -import { RemoteData } from '../data/remote-data'; -import { PaginatedList } from '../data/paginated-list'; -import { NotificationsService } from '../../shared/notifications/notifications.service'; -import { DSOChangeAnalyzer } from '../data/dso-change-analyzer.service'; import { dataService } from '../cache/builders/build-decorators'; import { GROUP } from './models/group.resource-type'; +import { DSONameService } from '../breadcrumbs/dso-name.service'; +import { Community } from '../shared/community.model'; +import { Collection } from '../shared/collection.model'; +import { ComcolRole } from '../../shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role'; + +const groupRegistryStateSelector = (state: AppState) => state.groupRegistry; +const editGroupSelector = createSelector(groupRegistryStateSelector, (groupRegistryState: GroupRegistryState) => groupRegistryState.editGroup); /** - * Provides methods to retrieve eperson group resources. + * Provides methods to retrieve eperson group resources from the REST API & Group related CRUD actions. */ @Injectable({ providedIn: 'root' @@ -31,6 +55,8 @@ import { GROUP } from './models/group.resource-type'; export class GroupDataService extends DataService { protected linkPath = 'groups'; protected browseEndpoint = ''; + public ePersonsEndpoint = 'epersons'; + public subgroupsEndpoint = 'subgroups'; constructor( protected comparator: DSOChangeAnalyzer, @@ -38,13 +64,52 @@ export class GroupDataService extends DataService { protected notificationsService: NotificationsService, protected requestService: RequestService, protected rdbService: RemoteDataBuildService, - protected store: Store, + protected store: Store, protected objectCache: ObjectCacheService, - protected halService: HALEndpointService + protected halService: HALEndpointService, + protected nameService: DSONameService, ) { super(); } + /** + * Retrieves all groups + * @param pagination The pagination info used to retrieve the groups + */ + public getGroups(options: FindListOptions = {}, ...linksToFollow: Array>): Observable>> { + const hrefObs = this.getFindAllHref(options, this.linkPath, ...linksToFollow); + hrefObs.pipe( + filter((href: string) => hasValue(href)), + take(1)) + .subscribe((href: string) => { + const request = new FindListRequest(this.requestService.generateRequestId(), href, options); + this.requestService.configure(request); + }); + + return this.rdbService.buildList(hrefObs) as Observable>>; + } + + /** + * Returns a search result list of groups, with certain query (searches in group name and by exact uuid) + * Endpoint used: /eperson/groups/search/byMetadata?query=<:name> + * @param query search query param + * @param options + * @param linksToFollow + */ + public searchGroups(query: string, options?: FindListOptions, ...linksToFollow: Array>): Observable>> { + const searchParams = [new RequestParam('query', query)]; + let findListOptions = new FindListOptions(); + if (options) { + findListOptions = Object.assign(new FindListOptions(), options); + } + if (findListOptions.searchParams) { + findListOptions.searchParams = [...findListOptions.searchParams, ...searchParams]; + } else { + findListOptions.searchParams = searchParams; + } + return this.searchBy('byMetadata', findListOptions, ...linksToFollow); + } + /** * Check if the current user is member of to the indicated group * @@ -59,10 +124,263 @@ export class GroupDataService extends DataService { options.searchParams = [new RequestParam('groupName', groupName)]; return this.searchBy(searchHref, options).pipe( - filter((groups: RemoteData>) => !groups.isResponsePending), - take(1), - map((groups: RemoteData>) => groups.payload.totalElements > 0) - ); + filter((groups: RemoteData>) => !groups.isResponsePending), + take(1), + map((groups: RemoteData>) => groups.payload.totalElements > 0) + ); } + /** + * Method to delete a group + * @param id The group id to delete + */ + public deleteGroup(group: Group): Observable { + return this.delete(group.id); + } + + /** + * Create or Update a group + * If the group contains an id, it is assumed the eperson already exists and is updated instead + * @param group The group to create or update + */ + public createOrUpdateGroup(group: Group): Observable> { + const isUpdate = hasValue(group.id); + if (isUpdate) { + return this.updateGroup(group); + } else { + return this.create(group, null); + } + } + + /** + * // TODO + * @param {DSpaceObject} ePerson The given object + */ + updateGroup(group: Group): Observable> { + // TODO + return null; + } + + /** + * Adds given subgroup as a subgroup to the given active group + * @param activeGroup Group we want to add subgroup to + * @param subgroup Group we want to add as subgroup to activeGroup + */ + addSubGroupToGroup(activeGroup: Group, subgroup: Group): Observable { + const requestId = this.requestService.generateRequestId(); + const options: HttpOptions = Object.create({}); + let headers = new HttpHeaders(); + headers = headers.append('Content-Type', 'text/uri-list'); + options.headers = headers; + const postRequest = new PostRequest(requestId, activeGroup.self + '/' + this.subgroupsEndpoint, subgroup.self, options); + this.requestService.configure(postRequest); + + return this.fetchResponse(requestId); + } + + /** + * Deletes a given subgroup from the subgroups of the given active group + * @param activeGroup Group we want to delete subgroup from + * @param subgroup Subgroup we want to delete from activeGroup + */ + deleteSubGroupFromGroup(activeGroup: Group, subgroup: Group): Observable { + const requestId = this.requestService.generateRequestId(); + const deleteRequest = new DeleteRequest(requestId, activeGroup.self + '/' + this.subgroupsEndpoint + '/' + subgroup.id); + this.requestService.configure(deleteRequest); + + return this.fetchResponse(requestId); + } + + /** + * Adds given ePerson as member to given group + * @param activeGroup Group we want to add member to + * @param ePerson EPerson we want to add as member to given activeGroup + */ + addMemberToGroup(activeGroup: Group, ePerson: EPerson): Observable { + const requestId = this.requestService.generateRequestId(); + const options: HttpOptions = Object.create({}); + let headers = new HttpHeaders(); + headers = headers.append('Content-Type', 'text/uri-list'); + options.headers = headers; + const postRequest = new PostRequest(requestId, activeGroup.self + '/' + this.ePersonsEndpoint, ePerson.self, options); + this.requestService.configure(postRequest); + + return this.fetchResponse(requestId); + } + + /** + * Deletes a given ePerson from the members of the given active group + * @param activeGroup Group we want to delete member from + * @param ePerson EPerson we want to delete from members of given activeGroup + */ + deleteMemberFromGroup(activeGroup: Group, ePerson: EPerson): Observable { + const requestId = this.requestService.generateRequestId(); + const deleteRequest = new DeleteRequest(requestId, activeGroup.self + '/' + this.ePersonsEndpoint + '/' + ePerson.id); + this.requestService.configure(deleteRequest); + + return this.fetchResponse(requestId); + } + + /** + * Gets the restResponse from the requestService + * @param requestId + */ + protected fetchResponse(requestId: string): Observable { + return this.requestService.getByUUID(requestId).pipe( + getResponseFromEntry(), + map((response: RestResponse) => { + return response; + }) + ); + } + + /** + * Method to retrieve the group that is currently being edited + */ + public getActiveGroup(): Observable { + return this.store.pipe(select(editGroupSelector)) + } + + /** + * Method to cancel editing a group, dispatches a cancel group action + */ + public cancelEditGroup() { + this.store.dispatch(new GroupRegistryCancelGroupAction()); + } + + /** + * Method to set the group being edited, dispatches an edit group action + * @param group The group to edit + */ + public editGroup(group: Group) { + this.store.dispatch(new GroupRegistryEditGroupAction(group)); + } + + /** + * Method that clears a cached groups request + */ + public clearGroupsRequests(): void { + this.getBrowseEndpoint().pipe(take(1)).subscribe((link: string) => { + this.requestService.removeByHrefSubstring(link); + }); + } + + /** + * Method that clears a cached get subgroups of certain group request + */ + public clearGroupLinkRequests(href: string): void { + this.requestService.removeByHrefSubstring(href); + } + + public getGroupRegistryRouterLink(): string { + return '/admin/access-control/groups'; + } + + /** + * Change which group is being edited and return the link for the edit page of the new group being edited + * @param newGroup New group to edit + */ + public startEditingNewGroup(newGroup: Group): string { + this.getActiveGroup().pipe(take(1)).subscribe((activeGroup: Group) => { + if (newGroup === activeGroup) { + this.cancelEditGroup() + } else { + this.editGroup(newGroup) + } + }); + return this.getGroupEditPageRouterLinkWithID(newGroup.id) + } + + /** + * Get Edit page of group + * @param group Group we want edit page for + */ + public getGroupEditPageRouterLink(group: Group): string { + return this.getGroupEditPageRouterLinkWithID(group.id); + } + + /** + * Get Edit page of group + * @param groupID Group ID we want edit page for + */ + public getGroupEditPageRouterLinkWithID(groupId: string): string { + return '/admin/access-control/groups/' + groupId; + } + + /** + * Extract optional UUID from a string + * @param stringWithUUID String with possible UUID + */ + public getUUIDFromString(stringWithUUID: string): string { + let foundUUID = ''; + const uuidMatches = stringWithUUID.match(/[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/g); + if (uuidMatches != null) { + foundUUID = uuidMatches[0]; + } + return foundUUID; + } + + /** + * Create a group for a given role for a given community or collection. + * + * @param dso The community or collection for which to create a group + * @param comcolRole The role for which to create a group + */ + createComcolGroup(dso: Community|Collection, comcolRole: ComcolRole): Observable { + + const requestId = this.requestService.generateRequestId(); + const link = comcolRole.getEndpoint(dso); + const group = Object.assign(new Group(), { + metadata: { + 'dc.description': [ + { + value: `${this.nameService.getName(dso)} admin group`, + } + ], + }, + }); + + return this.halService.getEndpoint(link).pipe( + distinctUntilChanged(), + take(1), + map((endpoint: string) => + new CreateRequest( + requestId, + endpoint, + JSON.stringify(group), + ) + ), + configureRequest(this.requestService), + tap(() => this.requestService.removeByHrefSubstring(link)), + switchMap((restRequest) => this.requestService.getByUUID(restRequest.uuid)), + getResponseFromEntry(), + ); + } + + /** + * Delete the group for a given role for a given community or collection. + * + * @param dso The community or collection for which to delete the group + * @param comcolRole The role for which to delete the group + */ + deleteComcolGroup(dso: Community|Collection, comcolRole: ComcolRole): Observable { + + const requestId = this.requestService.generateRequestId(); + const link = comcolRole.getEndpoint(dso); + + return this.halService.getEndpoint(link).pipe( + distinctUntilChanged(), + take(1), + map((endpoint: string) => + new DeleteRequest( + requestId, + endpoint, + ) + ), + configureRequest(this.requestService), + tap(() => this.requestService.removeByHrefSubstring(link)), + switchMap((restRequest) => this.requestService.getByUUID(restRequest.uuid)), + getResponseFromEntry(), + ); + } } diff --git a/src/app/core/eperson/models/group.model.ts b/src/app/core/eperson/models/group.model.ts index 5d531800b8..e496babddc 100644 --- a/src/app/core/eperson/models/group.model.ts +++ b/src/app/core/eperson/models/group.model.ts @@ -6,6 +6,8 @@ import { RemoteData } from '../../data/remote-data'; import { DSpaceObject } from '../../shared/dspace-object.model'; import { HALLink } from '../../shared/hal-link.model'; +import { EPerson } from './eperson.model'; +import { EPERSON } from './eperson.resource-type'; import { GROUP } from './group.resource-type'; @typedObject @@ -13,6 +15,12 @@ import { GROUP } from './group.resource-type'; export class Group extends DSpaceObject { static type = GROUP; + /** + * A string representing the unique name of this Group + */ + @autoserialize + public name: string; + /** * A string representing the unique handle of this Group */ @@ -31,7 +39,8 @@ export class Group extends DSpaceObject { @deserialize _links: { self: HALLink; - groups: HALLink; + subgroups: HALLink; + epersons: HALLink; }; /** @@ -39,6 +48,13 @@ export class Group extends DSpaceObject { * Will be undefined unless the groups {@link HALLink} has been resolved. */ @link(GROUP, true) - public groups?: Observable>>; + public subgroups?: Observable>>; + + /** + * The list of EPeople in this group + * Will be undefined unless the epersons {@link HALLink} has been resolved. + */ + @link(EPERSON, true) + public epersons?: Observable>>; } diff --git a/src/app/core/shared/collection.model.ts b/src/app/core/shared/collection.model.ts index 2959de3906..b65ac252ef 100644 --- a/src/app/core/shared/collection.model.ts +++ b/src/app/core/shared/collection.model.ts @@ -15,6 +15,8 @@ import { RESOURCE_POLICY } from '../resource-policy/models/resource-policy.resou import { COMMUNITY } from './community.resource-type'; import { Community } from './community.model'; import { ChildHALResource } from './child-hal-resource.model'; +import { GROUP } from '../eperson/models/group.resource-type'; +import { Group } from '../eperson/models/group.model'; @typedObject @inheritSerialization(DSpaceObject) @@ -70,6 +72,12 @@ export class Collection extends DSpaceObject implements ChildHALResource { @link(COMMUNITY, false) parentCommunity?: Observable>; + /** + * The administrators group of this community. + */ + @link(GROUP) + adminGroup?: Observable>; + /** * The introductory text of this Collection * Corresponds to the metadata field dc.description diff --git a/src/app/core/shared/community.model.ts b/src/app/core/shared/community.model.ts index e18ec743e8..bdcda70e9b 100644 --- a/src/app/core/shared/community.model.ts +++ b/src/app/core/shared/community.model.ts @@ -3,6 +3,8 @@ import { Observable } from 'rxjs'; import { link, typedObject } from '../cache/builders/build-decorators'; import { PaginatedList } from '../data/paginated-list'; import { RemoteData } from '../data/remote-data'; +import { Group } from '../eperson/models/group.model'; +import { GROUP } from '../eperson/models/group.resource-type'; import { Bitstream } from './bitstream.model'; import { BITSTREAM } from './bitstream.resource-type'; import { Collection } from './collection.model'; @@ -32,6 +34,7 @@ export class Community extends DSpaceObject implements ChildHALResource { logo: HALLink; subcommunities: HALLink; parentCommunity: HALLink; + adminGroup: HALLink; self: HALLink; }; @@ -63,6 +66,12 @@ export class Community extends DSpaceObject implements ChildHALResource { @link(COMMUNITY, false) parentCommunity?: Observable>; + /** + * The administrators group of this community. + */ + @link(GROUP) + adminGroup?: Observable>; + /** * The introductory text of this Community * Corresponds to the metadata field dc.description diff --git a/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.html b/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.html new file mode 100644 index 0000000000..a50845889e --- /dev/null +++ b/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.html @@ -0,0 +1,42 @@ +
+ +
+ +
+ +
+

{{'community.edit.tabs.roles.' + comcolRole.name + '.name' | translate}}

+
+ + + +
+ {{'community.edit.tabs.roles.none' | translate}} +
+ + + {{group.name}} + + +
create +
+ +
delete +
+ +
+ +
+ +
+ {{'community.edit.tabs.roles.' + comcolRole.name + '.description' | translate}} +
+ +
+ +
diff --git a/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.scss b/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.spec.ts b/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.spec.ts new file mode 100644 index 0000000000..4750da34bb --- /dev/null +++ b/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.spec.ts @@ -0,0 +1,117 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComcolRoleComponent } from './comcol-role.component'; +import { GroupDataService } from '../../../../core/eperson/group-data.service'; +import { By } from '@angular/platform-browser'; +import { SharedModule } from '../../../shared.module'; +import { TranslateModule } from '@ngx-translate/core'; +import { ChangeDetectorRef, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { RequestService } from '../../../../core/data/request.service'; +import { LinkService } from '../../../../core/cache/builders/link.service'; +import { Community } from '../../../../core/shared/community.model'; +import { ComcolRole } from './comcol-role'; +import { of as observableOf } from 'rxjs/internal/observable/of'; +import { RemoteData } from '../../../../core/data/remote-data'; +import { Group } from '../../../../core/eperson/models/group.model'; +import { RouterTestingModule } from '@angular/router/testing'; + +describe('ComcolRoleComponent', () => { + + let fixture: ComponentFixture; + let comp: ComcolRoleComponent; + let de: DebugElement; + let groupService; + let linkService; + + beforeEach(() => { + + groupService = jasmine.createSpyObj('groupService', { + createComcolGroup: undefined, + deleteComcolGroup: undefined, + }); + + linkService = { + resolveLink: () => undefined, + }; + + TestBed.configureTestingModule({ + imports: [ + SharedModule, + RouterTestingModule.withRoutes([]), + TranslateModule.forRoot(), + ], + providers: [ + { provide: GroupDataService, useValue: groupService }, + { provide: LinkService, useValue: linkService }, + { provide: ChangeDetectorRef, useValue: {} }, + { provide: RequestService, useValue: {} }, + ], schemas: [ + NO_ERRORS_SCHEMA + ] + }).compileComponents(); + + fixture = TestBed.createComponent(ComcolRoleComponent); + comp = fixture.componentInstance; + de = fixture.debugElement; + + comp.comcolRole = new ComcolRole( + 'test name', + 'test link name', + ); + + comp.dso = new Community(); + + fixture.detectChanges(); + }); + + describe('when there is no group yet', () => { + + it('should have a create button but no delete button', () => { + expect(de.query(By.css('.btn.create'))).toBeDefined(); + expect(de.query(By.css('.btn.delete'))).toBeNull(); + }); + + describe('when the create button is pressed', () => { + + beforeEach(() => { + de.query(By.css('.btn.create')).nativeElement.click(); + }); + + it('should call the groupService create method', () => { + expect(groupService.createComcolGroup).toHaveBeenCalled(); + }); + }); + }); + + describe('when there is a group yet', () => { + + beforeEach(() => { + Object.assign(comp.dso, { + 'test link name': observableOf(new RemoteData( + false, + false, + true, + undefined, + new Group(), + )), + }); + + fixture.detectChanges(); + }); + + it('should have a delete button but no create button', () => { + expect(de.query(By.css('.btn.delete'))).toBeDefined(); + expect(de.query(By.css('.btn.create'))).toBeNull(); + }); + + describe('when the delete button is pressed', () => { + + beforeEach(() => { + de.query(By.css('.btn.delete')).nativeElement.click(); + }); + + it('should call the groupService delete method', () => { + expect(groupService.deleteComcolGroup).toHaveBeenCalled(); + }); + }); + }); +}); diff --git a/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.ts b/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.ts new file mode 100644 index 0000000000..044e2568e1 --- /dev/null +++ b/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.component.ts @@ -0,0 +1,94 @@ +import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; +import { Group } from '../../../../core/eperson/models/group.model'; +import { Community } from '../../../../core/shared/community.model'; +import { EMPTY, Observable } from 'rxjs'; +import { getGroupEditPath } from '../../../../+admin/admin-access-control/admin-access-control-routing.module'; +import { GroupDataService } from '../../../../core/eperson/group-data.service'; +import { Collection } from '../../../../core/shared/collection.model'; +import { map } from 'rxjs/operators'; +import { followLink } from '../../../utils/follow-link-config.model'; +import { LinkService } from '../../../../core/cache/builders/link.service'; +import { getRemoteDataPayload, getSucceededRemoteData } from '../../../../core/shared/operators'; +import { ComcolRole } from './comcol-role'; +import { RequestService } from '../../../../core/data/request.service'; + +/** + * Component for managing a community or collection role. + */ +@Component({ + selector: 'ds-comcol-role', + styleUrls: ['./comcol-role.component.scss'], + templateUrl: './comcol-role.component.html' +}) +export class ComcolRoleComponent implements OnInit { + + /** + * The community or collection to manage. + */ + @Input() + dso: Community|Collection; + + /** + * The role to manage + */ + @Input() + comcolRole: ComcolRole; + + constructor( + protected groupService: GroupDataService, + protected linkService: LinkService, + protected cdr: ChangeDetectorRef, + protected requestService: RequestService, + ) { + } + + /** + * The group for this role as an observable. + */ + get group$(): Observable { + + if (!this.dso[this.comcolRole.linkName]) { + return EMPTY; + } + + return this.dso[this.comcolRole.linkName].pipe( + getSucceededRemoteData(), + getRemoteDataPayload(), + ); + } + + /** + * The link to the group edit page as an observable. + */ + get editGroupLink$(): Observable { + return this.group$.pipe( + map((group) => getGroupEditPath(group.id)), + ); + } + + /** + * Create a group for this community or collection role. + */ + create() { + + this.groupService.createComcolGroup(this.dso, this.comcolRole) + .subscribe(() => { + this.linkService.resolveLink(this.dso, followLink(this.comcolRole.linkName)); + this.cdr.detectChanges(); + }); + } + + /** + * Delete the group for this community or collection role. + */ + delete() { + this.groupService.deleteComcolGroup(this.dso, this.comcolRole) + .subscribe(() => { + this.cdr.detectChanges(); + }) + } + + ngOnInit(): void { + this.linkService.resolveLink(this.dso, followLink(this.comcolRole.linkName)); + } +} diff --git a/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.ts b/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.ts new file mode 100644 index 0000000000..1c4412eaac --- /dev/null +++ b/src/app/shared/comcol-forms/edit-comcol-page/comcol-role/comcol-role.ts @@ -0,0 +1,45 @@ +import { Community } from '../../../../core/shared/community.model'; +import { Collection } from '../../../../core/shared/collection.model'; + +/** + * Class representing a community or collection role. + */ +export class ComcolRole { + + /** + * The admin role. + */ + public static ADMIN = new ComcolRole( + 'admin', + 'adminGroup', + ); + + /** + * @param name The name for this community or collection role. + * @param linkName The path linking to this community or collection role. + */ + constructor( + public name, + public linkName, + ) { + } + + /** + * Get the REST endpoint for managing this role for a given community or collection. + * @param dso + */ + public getEndpoint(dso: Community | Collection) { + + let linkPath; + switch (dso.type + '') { + case 'community': + linkPath = 'communities'; + break; + case 'collection': + linkPath = 'collections'; + break; + } + + return `${linkPath}/${dso.uuid}/${this.linkName}`; + } +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index d914e3d679..6c59ba9d93 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -9,6 +9,7 @@ import { NgbDatepickerModule, NgbModule, NgbTimepickerModule, NgbTypeaheadModule import { MissingTranslationHandler, TranslateModule } from '@ngx-translate/core'; import { NgxPaginationModule } from 'ngx-pagination'; +import { ComcolRoleComponent } from './comcol-forms/edit-comcol-page/comcol-role/comcol-role.component'; import { PublicationListElementComponent } from './object-list/item-list-element/item-types/publication/publication-list-element.component'; import { FileUploadModule } from 'ng2-file-upload'; @@ -258,6 +259,7 @@ const COMPONENTS = [ EditComColPageComponent, DeleteComColPageComponent, ComcolPageBrowseByComponent, + ComcolRoleComponent, DsDynamicFormComponent, DsDynamicFormControlContainerComponent, DsDynamicListComponent, diff --git a/src/app/shared/testing/eperson-mock.ts b/src/app/shared/testing/eperson-mock.ts index 81a5a48a2c..61cf9e8b33 100644 --- a/src/app/shared/testing/eperson-mock.ts +++ b/src/app/shared/testing/eperson-mock.ts @@ -3,7 +3,7 @@ import { GroupMock } from './group-mock'; export const EPersonMock: EPerson = Object.assign(new EPerson(), { handle: null, - groups: [], + groups: [GroupMock], netid: 'test@test.com', lastActive: '2018-05-14T12:25:42.411+0000', canLogIn: true, @@ -49,7 +49,7 @@ export const EPersonMock: EPerson = Object.assign(new EPerson(), { export const EPersonMock2: EPerson = Object.assign(new EPerson(), { handle: null, - groups: [GroupMock], + groups: [], netid: 'test2@test.com', lastActive: '2019-05-14T12:25:42.411+0000', canLogIn: false, diff --git a/src/app/shared/testing/group-mock.ts b/src/app/shared/testing/group-mock.ts index a0686bc6d0..23441e96dc 100644 --- a/src/app/shared/testing/group-mock.ts +++ b/src/app/shared/testing/group-mock.ts @@ -1,17 +1,40 @@ import { Group } from '../../core/eperson/models/group.model'; +import { EPersonMock } from './eperson-mock'; + +export const GroupMock2: Group = Object.assign(new Group(), { + handle: null, + subgroups: [], + epersons: [], + permanent: true, + selfRegistered: false, + _links: { + self: { + href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2', + }, + subgroups: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/subgroups' }, + epersons: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid2/epersons' } + }, + _name: 'testgroupname2', + id: 'testgroupid2', + uuid: 'testgroupid2', + type: 'group', +}); export const GroupMock: Group = Object.assign(new Group(), { - handle: null, - groups: [], - selfRegistered: false, - _links: { - self: { - href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid', + handle: null, + subgroups: [GroupMock2], + epersons: [EPersonMock], + selfRegistered: false, + permanent: false, + _links: { + self: { + href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid', + }, + subgroups: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid/subgroups' }, + epersons: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid/epersons' } }, - groups: { href: 'https://dspace.4science.it/dspace-spring-rest/api/eperson/groups/testgroupid/groups' } - }, - _name: 'testgroupname', - id: 'testgroupid', - uuid: 'testgroupid', - type: 'group', + _name: 'testgroupname', + id: 'testgroupid', + uuid: 'testgroupid', + type: 'group', }); diff --git a/src/app/submission/sections/upload/section-upload.component.ts b/src/app/submission/sections/upload/section-upload.component.ts index 0be249371c..e4db084b5d 100644 --- a/src/app/submission/sections/upload/section-upload.component.ts +++ b/src/app/submission/sections/upload/section-upload.component.ts @@ -203,7 +203,7 @@ export class SubmissionSectionUploadComponent extends SectionModelComponent { mapGroups$.push( this.groupService.findById(accessCondition.selectGroupUUID).pipe( find((rd: RemoteData) => !rd.isResponsePending && rd.hasSucceeded), - flatMap((group: RemoteData) => group.payload.groups), + flatMap((group: RemoteData) => group.payload.subgroups), find((rd: RemoteData>) => !rd.isResponsePending && rd.hasSucceeded), map((rd: RemoteData>) => ({ accessCondition: accessCondition.name,