From d852ca0816199e8af502e5a6a1e2e5a20f6eb9b0 Mon Sep 17 00:00:00 2001
From: Andrea Barbasso <´andrea.barbasso@4science.com´>
Date: Wed, 18 Jan 2023 09:58:33 +0100
Subject: [PATCH 1/7] CST-8165 show logo when browsing collections
---
.../browse-by-date-page.component.ts | 1 +
.../browse-by-metadata-page.component.html | 5 +++
.../browse-by-metadata-page.component.spec.ts | 7 ++++
.../browse-by-metadata-page.component.ts | 33 +++++++++++++++++--
.../browse-by-title-page.component.ts | 1 +
5 files changed, 45 insertions(+), 2 deletions(-)
diff --git a/src/app/browse-by/browse-by-date-page/browse-by-date-page.component.ts b/src/app/browse-by/browse-by-date-page/browse-by-date-page.component.ts
index c4a67349a5..ffa7e882af 100644
--- a/src/app/browse-by/browse-by-date-page/browse-by-date-page.component.ts
+++ b/src/app/browse-by/browse-by-date-page/browse-by-date-page.component.ts
@@ -65,6 +65,7 @@ export class BrowseByDatePageComponent extends BrowseByMetadataPageComponent {
const searchOptions = browseParamsToOptions(params, currentPage, currentSort, this.browseId, this.fetchThumbnails);
this.updatePageWithItems(searchOptions, this.value, undefined);
this.updateParent(params.scope);
+ this.updateLogo();
this.updateStartsWithOptions(this.browseId, metadataKeys, params.scope);
}));
}
diff --git a/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.html b/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.html
index 227fa8aa78..b68f498771 100644
--- a/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.html
+++ b/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.html
@@ -5,6 +5,11 @@
+
+
+ {
route.params = observableOf(paramsWithValue);
comp.ngOnInit();
+ comp.updateParent('fake-scope');
+ comp.updateLogo();
+ fixture.detectChanges();
});
it('should fetch items', () => {
@@ -151,6 +154,10 @@ describe('BrowseByMetadataPageComponent', () => {
expect(result.payload.page).toEqual(mockItems);
});
});
+
+ it('should fetch the logo', () => {
+ expect(comp.logo$).toBeTruthy();
+ });
});
describe('when calling browseParamsToOptions', () => {
diff --git a/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.ts b/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.ts
index 4cfe332da1..5de6c7d856 100644
--- a/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.ts
+++ b/src/app/browse-by/browse-by-metadata-page/browse-by-metadata-page.component.ts
@@ -15,7 +15,11 @@ import { DSpaceObjectDataService } from '../../core/data/dspace-object-data.serv
import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { StartsWithType } from '../../shared/starts-with/starts-with-decorator';
import { PaginationService } from '../../core/pagination/pagination.service';
-import { map } from 'rxjs/operators';
+import { filter, map, mergeMap } from 'rxjs/operators';
+import { followLink, FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
+import { Bitstream } from '../../core/shared/bitstream.model';
+import { Collection } from '../../core/shared/collection.model';
+import { Community } from '../../core/shared/community.model';
import { APP_CONFIG, AppConfig } from '../../../config/app-config.interface';
export const BBM_PAGINATION_ID = 'bbm';
@@ -48,6 +52,11 @@ export class BrowseByMetadataPageComponent implements OnInit, OnDestroy {
*/
parent$: Observable>;
+ /**
+ * The logo of the current Community or Collection
+ */
+ logo$: Observable>;
+
/**
* The pagination config used to display the values
*/
@@ -151,6 +160,7 @@ export class BrowseByMetadataPageComponent implements OnInit, OnDestroy {
this.updatePage(browseParamsToOptions(params, currentPage, currentSort, this.browseId, false));
}
this.updateParent(params.scope);
+ this.updateLogo();
}));
this.updateStartsWithTextOptions();
@@ -196,12 +206,31 @@ export class BrowseByMetadataPageComponent implements OnInit, OnDestroy {
*/
updateParent(scope: string) {
if (hasValue(scope)) {
- this.parent$ = this.dsoService.findById(scope).pipe(
+ const linksToFollow = () => {
+ return [followLink('logo')];
+ };
+ this.parent$ = this.dsoService.findById(scope,
+ true,
+ true,
+ ...linksToFollow() as FollowLinkConfig[]).pipe(
getFirstSucceededRemoteData()
);
}
}
+ /**
+ * Update the parent Community or Collection logo
+ */
+ updateLogo() {
+ if (hasValue(this.parent$)) {
+ this.logo$ = this.parent$.pipe(
+ map((rd: RemoteData) => rd.payload),
+ filter((collectionOrCommunity: Collection | Community) => hasValue(collectionOrCommunity.logo)),
+ mergeMap((collectionOrCommunity: Collection | Community) => collectionOrCommunity.logo)
+ );
+ }
+ }
+
/**
* Navigate to the previous page
*/
diff --git a/src/app/browse-by/browse-by-title-page/browse-by-title-page.component.ts b/src/app/browse-by/browse-by-title-page/browse-by-title-page.component.ts
index 5320d7bb48..3e9af2197c 100644
--- a/src/app/browse-by/browse-by-title-page/browse-by-title-page.component.ts
+++ b/src/app/browse-by/browse-by-title-page/browse-by-title-page.component.ts
@@ -49,6 +49,7 @@ export class BrowseByTitlePageComponent extends BrowseByMetadataPageComponent {
this.browseId = params.id || this.defaultBrowseId;
this.updatePageWithItems(browseParamsToOptions(params, currentPage, currentSort, this.browseId, this.fetchThumbnails), undefined, undefined);
this.updateParent(params.scope);
+ this.updateLogo();
}));
this.updateStartsWithTextOptions();
}
From 636b4f8a29e049460d07a9e66e1a4c21ebed6535 Mon Sep 17 00:00:00 2001
From: Toni Prieto
Date: Mon, 7 Nov 2022 22:08:36 +0100
Subject: [PATCH 2/7] Catalan translation
---
src/assets/i18n/ca.json5 | 7155 ++++++++++++++++++++++++++++++++++++++
1 file changed, 7155 insertions(+)
create mode 100644 src/assets/i18n/ca.json5
diff --git a/src/assets/i18n/ca.json5 b/src/assets/i18n/ca.json5
new file mode 100644
index 0000000000..24698baac0
--- /dev/null
+++ b/src/assets/i18n/ca.json5
@@ -0,0 +1,7155 @@
+{
+
+ // "401.help": "You're not authorized to access this page. You can use the button below to get back to the home page.",
+ "401.help": "No està autoritzat a accedir a aquesta pàgina. Podeu utilitzar el botó de sota per tornar a la pàgina inicial.",
+
+ // "401.link.home-page": "Take me to the home page",
+ "401.link.home-page": "Porta'm a la pàgina d'inici",
+
+ // "401.unauthorized": "unauthorized",
+ "401.unauthorized": "no autoritzat",
+
+
+
+ // "403.help": "You don't have permission to access this page. You can use the button below to get back to the home page.",
+ "403.help": "No teniu permisos per accedir a aquesta pàgina. Podeu utilitzar el botó de sota per tornar a la pàgina inicial.",
+
+ // "403.link.home-page": "Take me to the home page",
+ "403.link.home-page": "Porta'm a la pàgina d'inici",
+
+ // "403.forbidden": "forbidden",
+ "403.forbidden": "prohibit",
+
+ // "500.page-internal-server-error": "Service Unavailable",
+ "500.page-internal-server-error": "Servei no disponible",
+
+ // "500.help": "The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.",
+ "500.help": "No es pot atendre la vostra petició a causa de problemes de capacitat o manteniments programats del servidor. Intenteu-ho més endavant, si us plau.",
+
+ // "500.link.home-page": "Take me to the home page",
+ "500.link.home-page": "Porta'm a la pàgina d'inici",
+
+
+ // "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": "No podem trobar la pàgina que busqueu. La pàgina pot haver estat moguda o eliminada. Podeu utilitzar el botó de sota per tornar a la pàgina d'inici. ",
+
+ // "404.link.home-page": "Take me to the home page",
+ "404.link.home-page": "Porta'm a la pàgina d'inici",
+
+ // "404.page-not-found": "page not found",
+ "404.page-not-found": "pàgina no trobada",
+
+ // "error-page.description.401": "unauthorized",
+ "error-page.description.401": "no autoritzat",
+
+ // "error-page.description.403": "forbidden",
+ "error-page.description.403": "prohibit",
+
+ // "error-page.description.500": "Service Unavailable",
+ "error-page.description.500": "Servei no disponible",
+
+ // "error-page.description.404": "page not found",
+ "error-page.description.404": "pàgina no trobada",
+
+ // "error-page.orcid.generic-error": "An error occurred during login via ORCID. Make sure you have shared your ORCID account email address with DSpace. If the error persists, contact the administrator",
+ "error-page.orcid.generic-error": "S'ha produït un error al login via ORCID. Assegureu-vos que heu compartit el correu electrònic del vostre compte ORCID amb Dspace. Si l'error continua, contacteu amb l'administrador",
+
+ // "access-status.embargo.listelement.badge": "Embargo",
+ "access-status.embargo.listelement.badge": "Embargament",
+
+ // "access-status.metadata.only.listelement.badge": "Metadata only",
+ "access-status.metadata.only.listelement.badge": "Només Metadades",
+
+ // "access-status.open.access.listelement.badge": "Open Access",
+ "access-status.open.access.listelement.badge": "Accés Obert",
+
+ // "access-status.restricted.listelement.badge": "Restricted",
+ "access-status.restricted.listelement.badge": "Restringit",
+
+ // "access-status.unknown.listelement.badge": "Unknown",
+ "access-status.unknown.listelement.badge": "Desconegut",
+
+ // "admin.curation-tasks.breadcrumbs": "System curation tasks",
+ "admin.curation-tasks.breadcrumbs": "Tasques de curació del sistema",
+
+ // "admin.curation-tasks.title": "System curation tasks",
+ "admin.curation-tasks.title": "Tasques de curació del sistema",
+
+ // "admin.curation-tasks.header": "System curation tasks",
+ "admin.curation-tasks.header": "Tasques de curació del sistema",
+
+ // "admin.registries.bitstream-formats.breadcrumbs": "Format registry",
+ "admin.registries.bitstream-formats.breadcrumbs": "Registre de formats",
+
+ // "admin.registries.bitstream-formats.create.breadcrumbs": "Bitstream format",
+ "admin.registries.bitstream-formats.create.breadcrumbs": "Format del fitxer",
+
+ // "admin.registries.bitstream-formats.create.failure.content": "An error occurred while creating the new bitstream format.",
+ "admin.registries.bitstream-formats.create.failure.content": "S'ha produït un error en crear el nou format de fitxer.",
+
+ // "admin.registries.bitstream-formats.create.failure.head": "Failure",
+ "admin.registries.bitstream-formats.create.failure.head": "Fallada",
+
+ // "admin.registries.bitstream-formats.create.head": "Create Bitstream format",
+ "admin.registries.bitstream-formats.create.head": "Crear format de fitxer",
+
+ // "admin.registries.bitstream-formats.create.new": "Add a new bitstream format",
+ "admin.registries.bitstream-formats.create.new": "Afegir un nou format de fitxer",
+
+ // "admin.registries.bitstream-formats.create.success.content": "The new bitstream format was successfully created.",
+ "admin.registries.bitstream-formats.create.success.content": "El format de fitxer nou s'ha crear correctament.",
+
+ // "admin.registries.bitstream-formats.create.success.head": "Success",
+ "admin.registries.bitstream-formats.create.success.head": "Èxit",
+
+ // "admin.registries.bitstream-formats.delete.failure.amount": "Failed to remove {{ amount }} format(s)",
+ "admin.registries.bitstream-formats.delete.failure.amount": "Error en eliminar {{ amount }} format(s)",
+
+ // "admin.registries.bitstream-formats.delete.failure.head": "Failure",
+ "admin.registries.bitstream-formats.delete.failure.head": "Fallada",
+
+ // "admin.registries.bitstream-formats.delete.success.amount": "Successfully removed {{ amount }} format(s)",
+ "admin.registries.bitstream-formats.delete.success.amount": "S'han eliminat correctament {{ amount }} format(s)",
+
+ // "admin.registries.bitstream-formats.delete.success.head": "Success",
+ "admin.registries.bitstream-formats.delete.success.head": "Èxit",
+
+ // "admin.registries.bitstream-formats.description": "This list of bitstream formats provides information about known formats and their support level.",
+ "admin.registries.bitstream-formats.description": "Aquesta llista de formats de fitxer proporciona informació sobre formats coneguts i el nivell de suport.",
+
+ // "admin.registries.bitstream-formats.edit.breadcrumbs": "Bitstream format",
+ "admin.registries.bitstream-formats.edit.breadcrumbs": "Format del fitxer",
+
+ // "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": "Descripció",
+
+ // "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 fan referència a les extensions de fitxers que s'utilitzen per identificar automàticament el format dels fitxers carregats. Podeu introduir vàries extensions per a cada format.",
+
+ // "admin.registries.bitstream-formats.edit.extensions.label": "File extensions",
+ "admin.registries.bitstream-formats.edit.extensions.label": "Extensions de fitxer",
+
+ // "admin.registries.bitstream-formats.edit.extensions.placeholder": "Enter a file extension without the dot",
+ "admin.registries.bitstream-formats.edit.extensions.placeholder": "Introduïu una extensió de fitxer (sense el punt)",
+
+ // "admin.registries.bitstream-formats.edit.failure.content": "An error occurred while editing the bitstream format.",
+ "admin.registries.bitstream-formats.edit.failure.content": "S'ha produït un error en editar el format del fitxer.",
+
+ // "admin.registries.bitstream-formats.edit.failure.head": "Failure",
+ "admin.registries.bitstream-formats.edit.failure.head": "Fallada",
+
+ // "admin.registries.bitstream-formats.edit.head": "Bitstream format: {{ format }}",
+ "admin.registries.bitstream-formats.edit.head": "Format del fitxer: {{ 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": "Els formats marcats com a interns estan ocults a l'usuari i s'utilitzen amb finalitats administratives.",
+
+ // "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": "El tipus MIME associat amb aquest format no ha de ser únic.",
+
+ // "admin.registries.bitstream-formats.edit.mimetype.label": "MIME Type",
+ "admin.registries.bitstream-formats.edit.mimetype.label": "Tipus MIME",
+
+ // "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": "Un nom únic per a aquest format, (per exemple, Microsoft Word XP o Microsoft Word 2000)",
+
+ // "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.",
+ "admin.registries.bitstream-formats.edit.success.content": "El format del fitxer s'ha editat correctament.",
+
+ // "admin.registries.bitstream-formats.edit.success.head": "Success",
+ "admin.registries.bitstream-formats.edit.success.head": "Èxit",
+
+ // "admin.registries.bitstream-formats.edit.supportLevel.hint": "The level of support your institution pledges for this format.",
+ "admin.registries.bitstream-formats.edit.supportLevel.hint": "El nivell de suport que la seva institució promet per a aquest format.",
+
+ // "admin.registries.bitstream-formats.edit.supportLevel.label": "Support level",
+ "admin.registries.bitstream-formats.edit.supportLevel.label": "Nivell de suport",
+
+ // "admin.registries.bitstream-formats.head": "Bitstream Format Registry",
+ "admin.registries.bitstream-formats.head": "Registre de formats de fitxer",
+
+ // "admin.registries.bitstream-formats.no-items": "No bitstream formats to show.",
+ "admin.registries.bitstream-formats.no-items": "No hi ha formats de fitxer a mostrar.",
+
+ // "admin.registries.bitstream-formats.table.delete": "Delete selected",
+ "admin.registries.bitstream-formats.table.delete": "Eliminar seleccionat",
+
+ // "admin.registries.bitstream-formats.table.deselect-all": "Deselect all",
+ "admin.registries.bitstream-formats.table.deselect-all": "Deseleccionar tot",
+
+ // "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": "Tipus MIME",
+
+ // "admin.registries.bitstream-formats.table.name": "Name",
+ "admin.registries.bitstream-formats.table.name": "Nom",
+ // "admin.registries.bitstream-formats.table.id" : "ID",
+ "admin.registries.bitstream-formats.table.id" : "ID",
+
+ // "admin.registries.bitstream-formats.table.return": "Back",
+ "admin.registries.bitstream-formats.table.return": "Enrere",
+
+ // "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Known",
+ "admin.registries.bitstream-formats.table.supportLevel.KNOWN": "Conegut",
+
+ // "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Supported",
+ "admin.registries.bitstream-formats.table.supportLevel.SUPPORTED": "Suportat",
+
+ // "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Unknown",
+ "admin.registries.bitstream-formats.table.supportLevel.UNKNOWN": "Desconegut",
+
+ // "admin.registries.bitstream-formats.table.supportLevel.head": "Support Level",
+ "admin.registries.bitstream-formats.table.supportLevel.head": "Nivell de suport",
+
+ // "admin.registries.bitstream-formats.title": "Bitstream Format Registry",
+ "admin.registries.bitstream-formats.title": "Registre de format Fitxer",
+
+
+
+ // "admin.registries.metadata.breadcrumbs": "Metadata registry",
+ "admin.registries.metadata.breadcrumbs": "Registre de metadades",
+
+ // "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": "El registre de metadades manté una llista de tots els camps de metadades disponibles al dipòsit. Aquests camps poden estar dividits entre múltiples esquemes. No obstant això, DSpace requereix l'esquema qualificat de Dublin Core.",
+
+ // "admin.registries.metadata.form.create": "Create metadata schema",
+ "admin.registries.metadata.form.create": "Crear esquema de metadades",
+
+ // "admin.registries.metadata.form.edit": "Edit metadata schema",
+ "admin.registries.metadata.form.edit": "Editar esquema de metadades",
+
+ // "admin.registries.metadata.form.name": "Name",
+ "admin.registries.metadata.form.name": "Nom",
+
+ // "admin.registries.metadata.form.namespace": "Namespace",
+ "admin.registries.metadata.form.namespace": "Espai de noms",
+
+ // "admin.registries.metadata.head": "Metadata Registry",
+ "admin.registries.metadata.head": "Registre de metadades",
+
+ // "admin.registries.metadata.schemas.no-items": "No metadata schemas to show.",
+ "admin.registries.metadata.schemas.no-items": "No hi ha esquemes de metadades per mostrar.",
+
+ // "admin.registries.metadata.schemas.table.delete": "Delete selected",
+ "admin.registries.metadata.schemas.table.delete": "Eliminar seleccionat",
+
+ // "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": "Nom",
+
+ // "admin.registries.metadata.schemas.table.namespace": "Namespace",
+ "admin.registries.metadata.schemas.table.namespace": "Espai de noms",
+
+ // "admin.registries.metadata.title": "Metadata Registry",
+ "admin.registries.metadata.title": "Registre de metadades",
+
+
+
+ // "admin.registries.schema.breadcrumbs": "Metadata schema",
+ "admin.registries.schema.breadcrumbs": "Esquema de metadades",
+
+ // "admin.registries.schema.description": "This is the metadata schema for \"{{namespace}}\".",
+ "admin.registries.schema.description": "Aquest és l'esquema de metadades per a \"{{ namespace }}\".",
+
+ // "admin.registries.schema.fields.head": "Schema metadata fields",
+ "admin.registries.schema.fields.head": "Camps de metadades de l'esquema",
+
+ // "admin.registries.schema.fields.no-items": "No metadata fields to show.",
+ "admin.registries.schema.fields.no-items": "No hi ha camps de metadades per mostrar.",
+
+ // "admin.registries.schema.fields.table.delete": "Delete selected",
+ "admin.registries.schema.fields.table.delete": "Elimina seleccionat",
+
+ // "admin.registries.schema.fields.table.field": "Field",
+ "admin.registries.schema.fields.table.field": "Camp",
+ // "admin.registries.schema.fields.table.id" : "ID",
+ "admin.registries.schema.fields.table.id" : "ID",
+
+ // "admin.registries.schema.fields.table.scopenote": "Scope Note",
+ "admin.registries.schema.fields.table.scopenote": "Nota d'abast",
+
+ // "admin.registries.schema.form.create": "Create metadata field",
+ "admin.registries.schema.form.create": "Crear camp de metadades",
+
+ // "admin.registries.schema.form.edit": "Edit metadata field",
+ "admin.registries.schema.form.edit": "Editar camp de metadades",
+
+ // "admin.registries.schema.form.element": "Element",
+ "admin.registries.schema.form.element": "Element",
+
+ // "admin.registries.schema.form.qualifier": "Qualifier",
+ "admin.registries.schema.form.qualifier": "Qualificador",
+
+ // "admin.registries.schema.form.scopenote": "Scope Note",
+ "admin.registries.schema.form.scopenote": "Nota d'abast",
+
+ // "admin.registries.schema.head": "Metadata Schema",
+ "admin.registries.schema.head": "Esquema de metadades",
+
+ // "admin.registries.schema.notification.created": "Successfully created metadata schema \"{{prefix}}\"",
+ "admin.registries.schema.notification.created": "Esquema de metadades creat correctament \"{{ prefix }}\"",
+
+ // "admin.registries.schema.notification.deleted.failure": "Failed to delete {{amount}} metadata schemas",
+ "admin.registries.schema.notification.deleted.failure": "Error en eliminar {{ amount }} esquemes de metadades",
+
+ // "admin.registries.schema.notification.deleted.success": "Successfully deleted {{amount}} metadata schemas",
+ "admin.registries.schema.notification.deleted.success": "{{ amount }} esquemes de metadades eliminats correctament",
+
+ // "admin.registries.schema.notification.edited": "Successfully edited metadata schema \"{{prefix}}\"",
+ "admin.registries.schema.notification.edited": "Esquema de metadades editat correctament \"{{ prefix }}\"",
+
+ // "admin.registries.schema.notification.failure": "Error",
+ "admin.registries.schema.notification.failure": "Error",
+
+ // "admin.registries.schema.notification.field.created": "Successfully created metadata field \"{{field}}\"",
+ "admin.registries.schema.notification.field.created": "Camp de metadades creat correctament \"{{ field }}\"",
+
+ // "admin.registries.schema.notification.field.deleted.failure": "Failed to delete {{amount}} metadata fields",
+ "admin.registries.schema.notification.field.deleted.failure": "No s'han pogut esborrar {{ amount }} camps de metadades",
+
+ // "admin.registries.schema.notification.field.deleted.success": "Successfully deleted {{amount}} metadata fields",
+ "admin.registries.schema.notification.field.deleted.success": "{{ amount }} camps de metadades eliminats correctament",
+
+ // "admin.registries.schema.notification.field.edited": "Successfully edited metadata field \"{{field}}\"",
+ "admin.registries.schema.notification.field.edited": "Camp de metadades editat correctament \"{{ field }}\"",
+
+ // "admin.registries.schema.notification.success": "Success",
+ "admin.registries.schema.notification.success": "Èxit",
+
+ // "admin.registries.schema.return": "Back",
+ "admin.registries.schema.return": "Enrere",
+
+ // "admin.registries.schema.title": "Metadata Schema Registry",
+ "admin.registries.schema.title": "Registre d'esquemes de metadades",
+
+
+
+ // "admin.access-control.epeople.actions.delete": "Delete EPerson",
+ "admin.access-control.epeople.actions.delete": "Eliminar usuari",
+
+ // "admin.access-control.epeople.actions.impersonate": "Impersonate EPerson",
+ "admin.access-control.epeople.actions.impersonate": "Fer-se passar per usuari",
+
+ // "admin.access-control.epeople.actions.reset": "Reset password",
+ "admin.access-control.epeople.actions.reset": "Restablir la contrasenya",
+
+ // "admin.access-control.epeople.actions.stop-impersonating": "Stop impersonating EPerson",
+ "admin.access-control.epeople.actions.stop-impersonating": "Deixa de fer-se passar per usuari",
+
+ // "admin.access-control.epeople.breadcrumbs": "EPeople",
+ "admin.access-control.epeople.breadcrumbs": "Usuaris",
+
+ // "admin.access-control.epeople.title": "EPeople",
+ "admin.access-control.epeople.title": "Usuaris",
+
+ // "admin.access-control.epeople.head": "EPeople",
+ "admin.access-control.epeople.head": "Usuaris",
+
+ // "admin.access-control.epeople.search.head": "Search",
+ "admin.access-control.epeople.search.head": "Cerca",
+
+ // "admin.access-control.epeople.button.see-all": "Browse All",
+ "admin.access-control.epeople.button.see-all": "Examinar tot",
+
+ // "admin.access-control.epeople.search.scope.metadata": "Metadata",
+ "admin.access-control.epeople.search.scope.metadata": "Metadades",
+
+ // "admin.access-control.epeople.search.scope.email": "E-mail (exact)",
+ "admin.access-control.epeople.search.scope.email": "Correu electrònic (exacte)",
+
+ // "admin.access-control.epeople.search.button": "Search",
+ "admin.access-control.epeople.search.button": "Cerca",
+
+ // "admin.access-control.epeople.search.placeholder": "Search people...",
+ "admin.access-control.epeople.search.placeholder": "Cerca usuaris...",
+
+ // "admin.access-control.epeople.button.add": "Add EPerson",
+ "admin.access-control.epeople.button.add": "Afegir un usuari",
+
+ // "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": "Nom",
+
+ // "admin.access-control.epeople.table.email": "E-mail (exact)",
+ "admin.access-control.epeople.table.email": "Correu electrònic (exacte)",
+
+ // "admin.access-control.epeople.table.edit": "Edit",
+ "admin.access-control.epeople.table.edit": "Editar",
+
+ // "admin.access-control.epeople.table.edit.buttons.edit": "Edit \"{{name}}\"",
+ "admin.access-control.epeople.table.edit.buttons.edit": "Editar \"{{ name }}\"",
+
+ // "admin.access-control.epeople.table.edit.buttons.edit-disabled": "You are not authorized to edit this group",
+ "admin.access-control.epeople.table.edit.buttons.edit-disabled": "No teniu autorització per editar aquest grup.",
+
+ // "admin.access-control.epeople.table.edit.buttons.remove": "Delete \"{{name}}\"",
+ "admin.access-control.epeople.table.edit.buttons.remove": "Eliminar \"{{ name }}\"",
+
+ // "admin.access-control.epeople.no-items": "No EPeople to show.",
+ "admin.access-control.epeople.no-items": "No hi ha usuaris per mostrar.",
+
+ // "admin.access-control.epeople.form.create": "Create EPerson",
+ "admin.access-control.epeople.form.create": "Crear un usuari",
+
+ // "admin.access-control.epeople.form.edit": "Edit EPerson",
+ "admin.access-control.epeople.form.edit": "Editar usuari",
+
+ // "admin.access-control.epeople.form.firstName": "First name",
+ "admin.access-control.epeople.form.firstName": "Nom",
+
+ // "admin.access-control.epeople.form.lastName": "Last name",
+ "admin.access-control.epeople.form.lastName": "Cognoms",
+
+ // "admin.access-control.epeople.form.email": "E-mail",
+ "admin.access-control.epeople.form.email": "Correu electrònic",
+
+ // "admin.access-control.epeople.form.emailHint": "Must be valid e-mail address",
+ "admin.access-control.epeople.form.emailHint": "Ha de ser una adreça de correu electrònic vàlida",
+
+ // "admin.access-control.epeople.form.canLogIn": "Can log in",
+ "admin.access-control.epeople.form.canLogIn": "Pot iniciar sessió",
+
+ // "admin.access-control.epeople.form.requireCertificate": "Requires certificate",
+ "admin.access-control.epeople.form.requireCertificate": "Requereix certificat",
+
+ // "admin.access-control.epeople.form.return": "Back",
+ "admin.access-control.epeople.form.return": "Enrere",
+
+ // "admin.access-control.epeople.form.notification.created.success": "Successfully created EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.created.success": "Usuari \"{{ name }}\" creat correctament",
+
+ // "admin.access-control.epeople.form.notification.created.failure": "Failed to create EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.created.failure": "Error en crear usuari \"{{ 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": "Error creant usuari \"{{ name }}\", el correu electrònic \"{{ email }}\" ja està en ús.",
+
+ // "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": "Error editant usuari \"{{ name }}\", el correu electrònic \"{{ email }}\" ja està en ús.",
+
+ // "admin.access-control.epeople.form.notification.edited.success": "Successfully edited EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.edited.success": "Usuari \"{{ name }}\" editat correctament",
+
+ // "admin.access-control.epeople.form.notification.edited.failure": "Failed to edit EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.edited.failure": "Error editant usuari \"{{ name }}\"",
+
+ // "admin.access-control.epeople.form.notification.deleted.success": "Successfully deleted EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.deleted.success": "Usuari \"{{ name }}\" eliminat correctament",
+
+ // "admin.access-control.epeople.form.notification.deleted.failure": "Failed to delete EPerson \"{{name}}\"",
+ "admin.access-control.epeople.form.notification.deleted.failure": "No s'ha pogut esborrar l'usuari \"{{ name }}\"",
+
+ // "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "Member of these groups:",
+ "admin.access-control.epeople.form.groupsEPersonIsMemberOf": "Membre d'aquests grups:",
+
+ // "admin.access-control.epeople.form.table.id": "ID",
+ "admin.access-control.epeople.form.table.id": "ID",
+
+ // "admin.access-control.epeople.form.table.name": "Name",
+ "admin.access-control.epeople.form.table.name": "Nom",
+
+ // "admin.access-control.epeople.form.table.collectionOrCommunity": "Collection/Community",
+ "admin.access-control.epeople.form.table.collectionOrCommunity": "Col·lecció/Comunitat",
+
+ // "admin.access-control.epeople.form.memberOfNoGroups": "This EPerson is not a member of any groups",
+ "admin.access-control.epeople.form.memberOfNoGroups": "Aquest usuari no és membre de cap grup",
+
+ // "admin.access-control.epeople.form.goToGroups": "Add to groups",
+ "admin.access-control.epeople.form.goToGroups": "Afegir a grups",
+
+ // "admin.access-control.epeople.notification.deleted.failure": "Failed to delete EPerson: \"{{name}}\"",
+ "admin.access-control.epeople.notification.deleted.failure": "No s'ha pogut esborrar l'usuari: \"{{ name }}\"",
+
+ // "admin.access-control.epeople.notification.deleted.success": "Successfully deleted EPerson: \"{{name}}\"",
+ "admin.access-control.epeople.notification.deleted.success": "Usuari eliminat correctament: \"{{ name }}\"",
+
+
+
+ // "admin.access-control.groups.title": "Groups",
+ "admin.access-control.groups.title": "Grups",
+
+ // "admin.access-control.groups.breadcrumbs": "Groups",
+ "admin.access-control.groups.breadcrumbs": "Grups",
+
+ // "admin.access-control.groups.singleGroup.breadcrumbs": "Edit Group",
+ "admin.access-control.groups.singleGroup.breadcrumbs": "Editar grup",
+
+ // "admin.access-control.groups.title.singleGroup": "Edit Group",
+ "admin.access-control.groups.title.singleGroup": "Editar grup",
+
+ // "admin.access-control.groups.title.addGroup": "New Group",
+ "admin.access-control.groups.title.addGroup": "Nou grup",
+
+ // "admin.access-control.groups.addGroup.breadcrumbs": "New Group",
+ "admin.access-control.groups.addGroup.breadcrumbs": "Nou grup",
+
+ // "admin.access-control.groups.head": "Groups",
+ "admin.access-control.groups.head": "Grups",
+
+ // "admin.access-control.groups.button.add": "Add group",
+ "admin.access-control.groups.button.add": "Afegir grup",
+
+ // "admin.access-control.groups.search.head": "Search groups",
+ "admin.access-control.groups.search.head": "Cerca grups",
+
+ // "admin.access-control.groups.button.see-all": "Browse all",
+ "admin.access-control.groups.button.see-all": "Examinar-ho tot",
+
+ // "admin.access-control.groups.search.button": "Search",
+ "admin.access-control.groups.search.button": "Cerca",
+
+ // "admin.access-control.groups.search.placeholder": "Search groups...",
+ "admin.access-control.groups.search.placeholder": "Cerca grups...",
+
+ // "admin.access-control.groups.table.id": "ID",
+ "admin.access-control.groups.table.id": "ID",
+
+ // "admin.access-control.groups.table.name": "Name",
+ "admin.access-control.groups.table.name": "Nom",
+
+ // "admin.access-control.groups.table.collectionOrCommunity": "Collection/Community",
+ "admin.access-control.groups.table.collectionOrCommunity": "Col·lecció/Comunitat",
+
+ // "admin.access-control.groups.table.members": "Members",
+ "admin.access-control.groups.table.members": "Membres",
+
+ // "admin.access-control.groups.table.edit": "Edit",
+ "admin.access-control.groups.table.edit": "Editar",
+
+ // "admin.access-control.groups.table.edit.buttons.edit": "Edit \"{{name}}\"",
+ "admin.access-control.groups.table.edit.buttons.edit": "Editar \"{{ name }}\"",
+
+ // "admin.access-control.groups.table.edit.buttons.remove": "Delete \"{{name}}\"",
+ "admin.access-control.groups.table.edit.buttons.remove": "Eliminar \"{{ name }}\"",
+
+ // "admin.access-control.groups.no-items": "No groups found with this in their name or this as UUID",
+ "admin.access-control.groups.no-items": "No s'han trobat grups cercant al camp nom o al camp UUID",
+
+ // "admin.access-control.groups.notification.deleted.success": "Successfully deleted group \"{{name}}\"",
+ "admin.access-control.groups.notification.deleted.success": "El grup \"{{ name }}\" s'ha eliminat correctament",
+
+ // "admin.access-control.groups.notification.deleted.failure.title": "Failed to delete group \"{{name}}\"",
+ "admin.access-control.groups.notification.deleted.failure.title": "No s'ha pogut esborrar el grup \"{{ name }}\"",
+
+ // "admin.access-control.groups.notification.deleted.failure.content": "Cause: \"{{cause}}\"",
+ "admin.access-control.groups.notification.deleted.failure.content": "Causa: \"{{ cause }}\"",
+
+
+
+ // "admin.access-control.groups.form.alert.permanent": "This group is permanent, so it can't be edited or deleted. You can still add and remove group members using this page.",
+ "admin.access-control.groups.form.alert.permanent": "Aquest grup és permanent, per la qual cosa no es pot editar ni eliminar. Però podeu afegir i eliminar membres del grup utilitzant aquesta pàgina.",
+
+ // "admin.access-control.groups.form.alert.workflowGroup": "This group can’t be modified or deleted because it corresponds to a role in the submission and workflow process in the \"{{name}}\" {{comcol}}. You can delete it from the \"assign roles\" tab on the edit {{comcol}} page. You can still add and remove group members using this page.",
+ "admin.access-control.groups.form.alert.workflowGroup": "Aquest grup no pot ser modificat o eliminat perquè correspon a un rol en el procés d'entrada i revisió d'enviaments a {{ comcol }} \"{{ name }}\". Podeu eliminar-lo des de la pestanya \" assignar rols\" de la pàgina d'edició de la {{ comcol }}. Sí que podeu afegir i eliminar membres del grup utilitzant aquesta pàgina.",
+
+ // "admin.access-control.groups.form.head.create": "Create group",
+ "admin.access-control.groups.form.head.create": "Crear un grup",
+
+ // "admin.access-control.groups.form.head.edit": "Edit group",
+ "admin.access-control.groups.form.head.edit": "Editar grup",
+
+ // "admin.access-control.groups.form.groupName": "Group name",
+ "admin.access-control.groups.form.groupName": "Nom del grup",
+
+ // "admin.access-control.groups.form.groupCommunity": "Community or Collection",
+ "admin.access-control.groups.form.groupCommunity": "Comunitat o Col·lecció",
+
+ // "admin.access-control.groups.form.groupDescription": "Description",
+ "admin.access-control.groups.form.groupDescription": "Descripció",
+
+ // "admin.access-control.groups.form.notification.created.success": "Successfully created Group \"{{name}}\"",
+ "admin.access-control.groups.form.notification.created.success": "Grup creat amb èxit \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.notification.created.failure": "Failed to create Group \"{{name}}\"",
+ "admin.access-control.groups.form.notification.created.failure": "No s'ha pogut crear el grup \"{{ 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.notification.created.failure.groupNameInUse": "No s'ha pogut crear el grup amb el nom: \"{{ name }}\", assegureu-vos que el nom no estigui en ús.",
+
+ // "admin.access-control.groups.form.notification.edited.failure": "Failed to edit Group \"{{name}}\"",
+ "admin.access-control.groups.form.notification.edited.failure": "No s'ha pogut editar el grup \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "Name \"{{name}}\" already in use!",
+ "admin.access-control.groups.form.notification.edited.failure.groupNameInUse": "El nom \"{{ name }}\" ja està en ús!",
+
+ // "admin.access-control.groups.form.notification.edited.success": "Successfully edited Group \"{{name}}\"",
+ "admin.access-control.groups.form.notification.edited.success": "Grup \"{{ name }}\" editat correctament",
+
+ // "admin.access-control.groups.form.actions.delete": "Delete Group",
+ "admin.access-control.groups.form.actions.delete": "Eliminar grup",
+
+ // "admin.access-control.groups.form.delete-group.modal.header": "Delete Group \"{{ dsoName }}\"",
+ "admin.access-control.groups.form.delete-group.modal.header": "Eliminar grup \"{{ dsoName }}\"",
+
+ // "admin.access-control.groups.form.delete-group.modal.info": "Are you sure you want to delete Group \"{{ dsoName }}\"",
+ "admin.access-control.groups.form.delete-group.modal.info": "Esteu segur que voleu suprimir el grup \"{{ dsoName }}\"?",
+
+ // "admin.access-control.groups.form.delete-group.modal.cancel": "Cancel",
+ "admin.access-control.groups.form.delete-group.modal.cancel": "Cancel·lar",
+
+ // "admin.access-control.groups.form.delete-group.modal.confirm": "Delete",
+ "admin.access-control.groups.form.delete-group.modal.confirm": "Esborrar",
+
+ // "admin.access-control.groups.form.notification.deleted.success": "Successfully deleted group \"{{ name }}\"",
+ "admin.access-control.groups.form.notification.deleted.success": "El grup \"{{ name }}\" s'ha eliminat correctament",
+
+ // "admin.access-control.groups.form.notification.deleted.failure.title": "Failed to delete group \"{{ name }}\"",
+ "admin.access-control.groups.form.notification.deleted.failure.title": "No s'ha pogut esborrar el grup \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.notification.deleted.failure.content": "Cause: \"{{ cause }}\"",
+ "admin.access-control.groups.form.notification.deleted.failure.content": "Causa: \"{{ cause }}\"",
+
+ // "admin.access-control.groups.form.members-list.head": "EPeople",
+ "admin.access-control.groups.form.members-list.head": "Usuaris",
+
+ // "admin.access-control.groups.form.members-list.search.head": "Add EPeople",
+ "admin.access-control.groups.form.members-list.search.head": "Afegir usuaris",
+
+ // "admin.access-control.groups.form.members-list.button.see-all": "Browse All",
+ "admin.access-control.groups.form.members-list.button.see-all": "Examinar tot",
+
+ // "admin.access-control.groups.form.members-list.headMembers": "Current Members",
+ "admin.access-control.groups.form.members-list.headMembers": "Membres actuals",
+
+ // "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadata",
+ "admin.access-control.groups.form.members-list.search.scope.metadata": "Metadades",
+
+ // "admin.access-control.groups.form.members-list.search.scope.email": "E-mail (exact)",
+ "admin.access-control.groups.form.members-list.search.scope.email": "Correu electrònic (exacte)",
+
+ // "admin.access-control.groups.form.members-list.search.button": "Search",
+ "admin.access-control.groups.form.members-list.search.button": "Cerca",
+
+ // "admin.access-control.groups.form.members-list.table.id": "ID",
+ "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.name": "Nom",
+
+ // "admin.access-control.groups.form.members-list.table.identity": "Identity",
+ "admin.access-control.groups.form.members-list.table.identity": "Identitat",
+
+ // "admin.access-control.groups.form.members-list.table.email": "Email",
+ "admin.access-control.groups.form.members-list.table.email": "Correu electrònic",
+
+ // "admin.access-control.groups.form.members-list.table.netid": "NetID",
+ "admin.access-control.groups.form.members-list.table.netid": "NetID",
+
+ // "admin.access-control.groups.form.members-list.table.edit": "Remove / Add",
+ "admin.access-control.groups.form.members-list.table.edit": "Eliminar / Afegir",
+
+ // "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "Remove member with name \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.table.edit.buttons.remove": "Eliminar membre amb nom \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.members-list.notification.success.addMember": "Successfully added member: \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.notification.success.addMember": "Membre afegit amb èxit: \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.members-list.notification.failure.addMember": "Failed to add member: \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.notification.failure.addMember": "No s'ha pogut afegir el membre: \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.members-list.notification.success.deleteMember": "Successfully deleted member: \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.notification.success.deleteMember": "Membre eliminat correctament: \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "Failed to delete member: \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.notification.failure.deleteMember": "No s'ha pogut suprimir el membre: \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Add member with name \"{{name}}\"",
+ "admin.access-control.groups.form.members-list.table.edit.buttons.add": "Afegir membre amb nom \"{{ 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.notification.failure.noActiveGroup": "No hi ha un grup actiu actual, envieu primer un nom.",
+
+ // "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-members-yet": "Encara no hi ha membres al grup, cerqueu i afegiu.",
+
+ // "admin.access-control.groups.form.members-list.no-items": "No EPeople found in that search",
+ "admin.access-control.groups.form.members-list.no-items": "No s'han trobat usuaris en aquesta cerca",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.failure": "Something went wrong: \"{{cause}}\"",
+ "admin.access-control.groups.form.subgroups-list.notification.failure": "Alguna cosa ha sortir malament: \"{{ cause }}\"",
+
+ // "admin.access-control.groups.form.subgroups-list.head": "Groups",
+ "admin.access-control.groups.form.subgroups-list.head": "Grups",
+
+ // "admin.access-control.groups.form.subgroups-list.search.head": "Add Subgroup",
+ "admin.access-control.groups.form.subgroups-list.search.head": "Afegir subgrup",
+
+ // "admin.access-control.groups.form.subgroups-list.button.see-all": "Browse All",
+ "admin.access-control.groups.form.subgroups-list.button.see-all": "Examinar tot",
+
+ // "admin.access-control.groups.form.subgroups-list.headSubgroups": "Current Subgroups",
+ "admin.access-control.groups.form.subgroups-list.headSubgroups": "Subgrups actuals",
+
+ // "admin.access-control.groups.form.subgroups-list.search.button": "Search",
+ "admin.access-control.groups.form.subgroups-list.search.button": "Cerca",
+
+ // "admin.access-control.groups.form.subgroups-list.table.id": "ID",
+ "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.name": "Nom",
+
+ // "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Collection/Community",
+ "admin.access-control.groups.form.subgroups-list.table.collectionOrCommunity": "Col·lecció/Comunitat",
+
+ // "admin.access-control.groups.form.subgroups-list.table.edit": "Remove / Add",
+ "admin.access-control.groups.form.subgroups-list.table.edit": "Eliminar / Afegir",
+
+ // "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.remove": "Eliminar subgrup amb nom \"{{ 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.buttons.add": "Afegir subgrup amb el nom \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Current group",
+ "admin.access-control.groups.form.subgroups-list.table.edit.currentGroup": "Grup actual",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Successfully added subgroup: \"{{name}}\"",
+ "admin.access-control.groups.form.subgroups-list.notification.success.addSubgroup": "Subgrup afegit correctament: \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "Failed to add subgroup: \"{{name}}\"",
+ "admin.access-control.groups.form.subgroups-list.notification.failure.addSubgroup": "No s'ha pogut afegir el subgrup: \"{{ name }}\"",
+
+ // "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "Successfully deleted subgroup: \"{{name}}\"",
+ "admin.access-control.groups.form.subgroups-list.notification.success.deleteSubgroup": "Subgrup eliminat correctament: \"{{ 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.deleteSubgroup": "No s'ha pogut suprimir el subgrup: \"{{ 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.noActiveGroup": "No hi ha un grup actiu actual, envieu un nom primer.",
+
+ // "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.notification.failure.subgroupToAddIsActiveGroup": "Aquest és el grup actual, no es pot afegir.",
+
+ // "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-items": "No s'han trobat grups amb aquest text al nom o al UUID",
+
+ // "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "No subgroups in group yet.",
+ "admin.access-control.groups.form.subgroups-list.no-subgroups-yet": "Encara no hi ha subgrups al grup.",
+
+ // "admin.access-control.groups.form.return": "Back",
+ "admin.access-control.groups.form.return": "Enrere",
+
+
+
+ // "admin.search.breadcrumbs": "Administrative Search",
+ "admin.search.breadcrumbs": "Cerca administrativa",
+
+ // "admin.search.collection.edit": "Edit",
+ "admin.search.collection.edit": "Editar",
+
+ // "admin.search.community.edit": "Edit",
+ "admin.search.community.edit": "Editar",
+
+ // "admin.search.item.delete": "Delete",
+ "admin.search.item.delete": "Esborrar",
+
+ // "admin.search.item.edit": "Edit",
+ "admin.search.item.edit": "Editar",
+
+ // "admin.search.item.make-private": "Make non-discoverable",
+ "admin.search.item.make-private": "Fer-ho privat",
+
+ // "admin.search.item.make-public": "Make discoverable",
+ "admin.search.item.make-public": "Fer-ho públic",
+
+ // "admin.search.item.move": "Move",
+ "admin.search.item.move": "Moure",
+
+ // "admin.search.item.reinstate": "Reinstate",
+ "admin.search.item.reinstate": "Reintegrar",
+
+ // "admin.search.item.withdraw": "Withdraw",
+ "admin.search.item.withdraw": "Retira",
+
+ // "admin.search.title": "Administrative Search",
+ "admin.search.title": "Cerca administrativa",
+
+ // "administrativeView.search.results.head": "Administrative Search",
+ "administrativeView.search.results.head": "Cerca administrativa",
+
+
+
+
+ // "admin.workflow.breadcrumbs": "Administer Workflow",
+ "admin.workflow.breadcrumbs": "Administrar flux de treball",
+
+ // "admin.workflow.title": "Administer Workflow",
+ "admin.workflow.title": "Administrar flux de treball",
+
+ // "admin.workflow.item.workflow": "Workflow",
+ "admin.workflow.item.workflow": "Flux de treball",
+
+ // "admin.workflow.item.delete": "Delete",
+ "admin.workflow.item.delete": "Esborrar",
+
+ // "admin.workflow.item.send-back": "Send back",
+ "admin.workflow.item.send-back": "Tornar",
+
+
+
+ // "admin.metadata-import.breadcrumbs": "Import Metadata",
+ "admin.metadata-import.breadcrumbs": "Importa metadades",
+
+ // "admin.batch-import.breadcrumbs": "Import Batch",
+ "admin.batch-import.breadcrumbs": "Importació per lots",
+
+ // "admin.metadata-import.title": "Import Metadata",
+ "admin.metadata-import.title": "Importar metadades",
+
+ // "admin.batch-import.title": "Import Batch",
+ "admin.batch-import.title": "Importació per lots",
+
+ // "admin.metadata-import.page.header": "Import Metadata",
+ "admin.metadata-import.page.header": "Importa metadades",
+
+ // "admin.batch-import.page.header": "Import Batch",
+ "admin.batch-import.page.header": "Importació per lots",
+
+ // "admin.metadata-import.page.help": "You can drop or browse CSV files that contain batch metadata operations on files here",
+ "admin.metadata-import.page.help": "Podeu deixar anar o examinar fitxers CSV que contenen operacions de metadades per lots aquí",
+
+ // "admin.batch-import.page.help": "Select the Collection to import into. Then, drop or browse to a Simple Archive Format (SAF) zip file that includes the Items to import",
+ "admin.batch-import.page.help": "Seleccioneu la Col·lecció a la qual importar. Després, deixeu anar o busqueu el fitxer zip en format Simple Archive Format (SAF) que inclou els ítems a importar",
+
+ // "admin.metadata-import.page.dropMsg": "Drop a metadata CSV to import",
+ "admin.metadata-import.page.dropMsg": "Deixeu anar un CSV de metadades per importar",
+
+ // "admin.batch-import.page.dropMsg": "Drop a batch ZIP to import",
+ "admin.batch-import.page.dropMsg": "Deixeu anar un ZIP per lots per importar",
+
+ // "admin.metadata-import.page.dropMsgReplace": "Drop to replace the metadata CSV to import",
+ "admin.metadata-import.page.dropMsgReplace": "Deixa anar per reemplaçar el CSV de metadades a importar",
+
+ // "admin.batch-import.page.dropMsgReplace": "Drop to replace the batch ZIP to import",
+ "admin.batch-import.page.dropMsgReplace": "Deixa anar per reemplaçar el ZIP per lots a importar",
+
+ // "admin.metadata-import.page.button.return": "Back",
+ "admin.metadata-import.page.button.return": "Enrere",
+
+ // "admin.metadata-import.page.button.proceed": "Proceed",
+ "admin.metadata-import.page.button.proceed": "Continuar",
+
+ // "admin.metadata-import.page.button.select-collection": "Select Collection",
+ "admin.metadata-import.page.button.select-collection": "Selecciona la Col·lecció",
+
+ // "admin.metadata-import.page.error.addFile": "Select file first!",
+ "admin.metadata-import.page.error.addFile": "Seleccioneu el fitxer primer!",
+
+ // "admin.batch-import.page.error.addFile": "Select Zip file first!",
+ "admin.batch-import.page.error.addFile": "Seleccioneu el fitxer ZIP primer!",
+
+ // "admin.metadata-import.page.validateOnly": "Validate Only",
+ "admin.metadata-import.page.validateOnly": "Només Validar",
+
+ // "admin.metadata-import.page.validateOnly.hint": "When selected, the uploaded CSV will be validated. You will receive a report of detected changes, but no changes will be saved.",
+ "admin.metadata-import.page.validateOnly.hint": "En seleccionar, es validarà el CSV pujat. Rebreu un informe amb els canvis detectats, però no s'efectuaran aquests canvis.",
+
+ // "admin.batch-import.page.validateOnly.hint": "When selected, the uploaded ZIP will be validated. You will receive a report of detected changes, but no changes will be saved.",
+ "admin.batch-import.page.validateOnly.hint": "En seleccionar, es validarà el fitxer ZIP pujat. Rebreu un informe amb els canvis detectats, però no s'efectuaran aquests canvis.",
+
+ // "admin.batch-import.page.remove": "remove",
+ "admin.batch-import.page.remove": "eliminar",
+
+ // "auth.errors.invalid-user": "Invalid email address or password.",
+ "auth.errors.invalid-user": "Adreça de correu electrònic o contrasenya no vàlids.",
+
+ // "auth.messages.expired": "Your session has expired. Please log in again.",
+ "auth.messages.expired": "La vostra sessió ha caducat. Inicieu sessió de nou.",
+
+ // "auth.messages.token-refresh-failed": "Refreshing your session token failed. Please log in again.",
+ "auth.messages.token-refresh-failed": "No s'ha pogut actualitzar el token de la sessió. Inicieu sessió de nou.",
+
+
+
+ // "bitstream.download.page": "Now downloading {{bitstream}}..." ,
+ "bitstream.download.page": "Descarregant {{ bitstream }}...",
+
+ // "bitstream.download.page.back": "Back" ,
+ "bitstream.download.page.back": "Enrere",
+
+
+ // "bitstream.edit.authorizations.link": "Edit bitstream's Policies",
+ "bitstream.edit.authorizations.link": "Editar les polítiques del fitxer",
+
+ // "bitstream.edit.authorizations.title": "Edit bitstream's Policies",
+ "bitstream.edit.authorizations.title": "Editar les polítiques de fitxer",
+
+ // "bitstream.edit.return": "Back",
+ "bitstream.edit.return": "Enrere",
+
+ // "bitstream.edit.bitstream": "Bitstream: ",
+ "bitstream.edit.bitstream": "Arxiu: ",
+
+ // "bitstream.edit.form.description.hint": "Optionally, provide a brief description of the file, for example \"Main article\" or \"Experiment data readings\".",
+ "bitstream.edit.form.description.hint": "Opcionalment, proporcioneu una breu descripció del fitxer, per exemple \"Article principal\" o \"Lectures de dades de l'experiment\".",
+
+ // "bitstream.edit.form.description.label": "Description",
+ "bitstream.edit.form.description.label": "Descripció",
+
+ // "bitstream.edit.form.embargo.hint": "The first day from which access is allowed. This date cannot be modified on this form. To set an embargo date for a bitstream, go to the Item Status tab, click Authorizations..., create or edit the bitstream's READ policy, and set the Start Date as desired.",
+ "bitstream.edit.form.embargo.hint": "El primer dia a partir del qual es permet l'accés. Aquesta data no es pot modificar en aquest formulari. Per establir una data d'embargament per a un fitxer, aneu a la pestanya Estat de l'ítem , feu clic a Autoritzacions... , creeu o editeu la política READ del fitxer i configureu la Data d'inici com vulgueu.",
+
+ // "bitstream.edit.form.embargo.label": "Embargo until specific date",
+ "bitstream.edit.form.embargo.label": "Embargament fins a data concreta",
+
+ // "bitstream.edit.form.fileName.hint": "Change the filename for the bitstream. Note that this will change the display bitstream URL, but old links will still resolve as long as the sequence ID does not change.",
+ "bitstream.edit.form.fileName.hint": "Canvieu el nom del fitxer. Tingueu en compte que això canviarà l'URL de visualització del fitxer, però els enllaços antics continuaran resolent-se sempre que la ID de seqüència no canviï.",
+
+ // "bitstream.edit.form.fileName.label": "Filename",
+ "bitstream.edit.form.fileName.label": "Nom del fitxer",
+
+ // "bitstream.edit.form.newFormat.label": "Describe new format",
+ "bitstream.edit.form.newFormat.label": "Descriu el nou format",
+
+ // "bitstream.edit.form.newFormat.hint": "The application you used to create the file, and the version number (for example, \"ACMESoft SuperApp version 1.5\").",
+ "bitstream.edit.form.newFormat.hint": "L'aplicació que heu utilitzat per crear el fitxer i el número de versió (per exemple, \"ACMESoft SuperApp versió 1.5\").",
+
+ // "bitstream.edit.form.primaryBitstream.label": "Primary bitstream",
+ "bitstream.edit.form.primaryBitstream.label": "Fitxer principal",
+
+ // "bitstream.edit.form.selectedFormat.hint": "If the format is not in the above list, select \"format not in list\" above and describe it under \"Describe new format\".",
+ "bitstream.edit.form.selectedFormat.hint": "Si el format no és a la llista anterior, seleccioneu \"el format no és a la llista\" a dalt i descriviu-lo a \"Descriure el nou format\".",
+
+ // "bitstream.edit.form.selectedFormat.label": "Selected Format",
+ "bitstream.edit.form.selectedFormat.label": "Format seleccionat",
+
+ // "bitstream.edit.form.selectedFormat.unknown": "Format not in list",
+ "bitstream.edit.form.selectedFormat.unknown": "El format no és a la llista",
+
+ // "bitstream.edit.notifications.error.format.title": "An error occurred saving the bitstream's format",
+ "bitstream.edit.notifications.error.format.title": "S'ha produït un error en desar el format del fitxer.",
+
+ // "bitstream.edit.form.iiifLabel.label": "IIIF Label",
+ "bitstream.edit.form.iiifLabel.label": "Etiqueta IIIF",
+
+ // "bitstream.edit.form.iiifLabel.hint": "Canvas label for this image. If not provided default label will be used.",
+ "bitstream.edit.form.iiifLabel.hint": "Etiqueta Canvas per a aquesta imatge. Si no es proporciona, s'utilitzarà l'etiqueta per defecte.",
+
+ // "bitstream.edit.form.iiifToc.label": "IIIF Table of Contents",
+ "bitstream.edit.form.iiifToc.label": "Índex de l'IIIF",
+
+ // "bitstream.edit.form.iiifToc.hint": "Adding text here makes this the start of a new table of contents range.",
+ "bitstream.edit.form.iiifToc.hint": "Afegir text aquí crea un nou començament de l'índex.",
+
+ // "bitstream.edit.form.iiifWidth.label": "IIIF Canvas Width",
+ "bitstream.edit.form.iiifWidth.label": "Amplada del marc IIIF",
+
+ // "bitstream.edit.form.iiifWidth.hint": "The canvas width should usually match the image width.",
+ "bitstream.edit.form.iiifWidth.hint": "L'amplada del marc normalment hauria de coincidir amb l'amplada de la imatge.",
+
+ // "bitstream.edit.form.iiifHeight.label": "IIIF Canvas Height",
+ "bitstream.edit.form.iiifHeight.label": "Alçada del marc IIIF",
+
+ // "bitstream.edit.form.iiifHeight.hint": "The canvas height should usually match the image height.",
+ "bitstream.edit.form.iiifHeight.hint": "L'alçada del marc normalment hauria de coincidir amb l'alçada de la imatge",
+
+
+ // "bitstream.edit.notifications.saved.content": "Your changes to this bitstream were saved.",
+ "bitstream.edit.notifications.saved.content": "S'han desat els canvis en aquest fitxer.",
+
+ // "bitstream.edit.notifications.saved.title": "Bitstream saved",
+ "bitstream.edit.notifications.saved.title": "Fitxer desat",
+
+ // "bitstream.edit.title": "Edit bitstream",
+ "bitstream.edit.title": "Editar fitxer",
+
+ // "bitstream-request-a-copy.alert.canDownload1": "You already have access to this file. If you want to download the file, click ",
+ "bitstream-request-a-copy.alert.canDownload1": "Ja teniu accés al fitxer, si voleu descarregar-lo premeu ",
+
+ // "bitstream-request-a-copy.alert.canDownload2": "here",
+ "bitstream-request-a-copy.alert.canDownload2": "aquí",
+
+ // "bitstream-request-a-copy.header": "Request a copy of the file",
+ "bitstream-request-a-copy.header": "Sol·licitar una còpia del fitxer",
+
+ // "bitstream-request-a-copy.intro": "Enter the following information to request a copy for the following item: ",
+ "bitstream-request-a-copy.intro": "Introduïu la informació següent per sol·licitar una còpia del següent ítem: ",
+
+ // "bitstream-request-a-copy.intro.bitstream.one": "Requesting the following file: ",
+ "bitstream-request-a-copy.intro.bitstream.one": "Sol·licitant el fitxer següent: ",
+ // "bitstream-request-a-copy.intro.bitstream.all": "Requesting all files. ",
+ "bitstream-request-a-copy.intro.bitstream.all": "Sol·licitant tots els fitxers. ",
+
+ // "bitstream-request-a-copy.name.label": "Name *",
+ "bitstream-request-a-copy.name.label": "Nom *",
+
+ // "bitstream-request-a-copy.name.error": "The name is required",
+ "bitstream-request-a-copy.name.error": "Es requereix un nom",
+
+ // "bitstream-request-a-copy.email.label": "Your e-mail address *",
+ "bitstream-request-a-copy.email.label": "La vostra adreça de correu electrònic *",
+
+ // "bitstream-request-a-copy.email.hint": "This email address is used for sending the file.",
+ "bitstream-request-a-copy.email.hint": "S'enviarà el fitxer a aquesta adreça de correu electrònic.",
+
+ // "bitstream-request-a-copy.email.error": "Please enter a valid email address.",
+ "bitstream-request-a-copy.email.error": "Si us plau, introduïu una adreça de correu electrònic vàlida.",
+
+ // "bitstream-request-a-copy.allfiles.label": "Files",
+ "bitstream-request-a-copy.allfiles.label": "Fitxers",
+
+ // "bitstream-request-a-copy.files-all-false.label": "Only the requested file",
+ "bitstream-request-a-copy.files-all-false.label": "Només el fitxer indicat",
+
+ // "bitstream-request-a-copy.files-all-true.label": "All files (of this item) in restricted access",
+ "bitstream-request-a-copy.files-all-true.label": "Tots els fitxers (d'aquest ítem) en accés restringit",
+
+ // "bitstream-request-a-copy.message.label": "Message",
+ "bitstream-request-a-copy.message.label": "Missatge",
+
+ // "bitstream-request-a-copy.return": "Back",
+ "bitstream-request-a-copy.return": "Enrere",
+
+ // "bitstream-request-a-copy.submit": "Request copy",
+ "bitstream-request-a-copy.submit": "Sol·licitar còpia",
+
+ // "bitstream-request-a-copy.submit.success": "The item request was submitted successfully.",
+ "bitstream-request-a-copy.submit.success": "S'ha enviat la sol·licitud de còpia.",
+
+ // "bitstream-request-a-copy.submit.error": "Something went wrong with submitting the item request.",
+ "bitstream-request-a-copy.submit.error": "S'ha produït un error en l'enviament de la sol·licitud de còpia.",
+
+
+
+ // "browse.back.all-results": "All browse results",
+ "browse.back.all-results": "Tots els resultats de la cerca",
+
+ // "browse.comcol.by.author": "By Author",
+ "browse.comcol.by.author": "Per autor",
+
+ // "browse.comcol.by.dateissued": "By Issue Date",
+ "browse.comcol.by.dateissued": "Per data de publicació",
+
+ // "browse.comcol.by.subject": "By Subject",
+ "browse.comcol.by.subject": "Per matèria",
+
+ // "browse.comcol.by.title": "By Title",
+ "browse.comcol.by.title": "Per títol",
+
+ // "browse.comcol.head": "Browse",
+ "browse.comcol.head": "Examinar",
+
+ // "browse.empty": "No items to show.",
+ "browse.empty": "No hi ha ítems per mostrar.",
+
+ // "browse.metadata.author": "Author",
+ "browse.metadata.author": "Autor",
+
+ // "browse.metadata.dateissued": "Issue Date",
+ "browse.metadata.dateissued": "Data de publicació",
+
+ // "browse.metadata.subject": "Subject",
+ "browse.metadata.subject": "Matèria",
+
+ // "browse.metadata.title": "Title",
+ "browse.metadata.title": "Títol",
+
+ // "browse.metadata.author.breadcrumbs": "Browse by Author",
+ "browse.metadata.author.breadcrumbs": "Cerca per autor",
+
+ // "browse.metadata.dateissued.breadcrumbs": "Browse by Date",
+ "browse.metadata.dateissued.breadcrumbs": "Examinar per data",
+
+ // "browse.metadata.subject.breadcrumbs": "Browse by Subject",
+ "browse.metadata.subject.breadcrumbs": "Examinar per matèria",
+
+ // "browse.metadata.title.breadcrumbs": "Browse by Title",
+ "browse.metadata.title.breadcrumbs": "Examinar per títol",
+
+ // "pagination.next.button": "Next",
+ "pagination.next.button": "Següent",
+
+ // "pagination.previous.button": "Previous",
+ "pagination.previous.button": "Anterior",
+
+ // "pagination.next.button.disabled.tooltip": "No more pages of results",
+ "pagination.next.button.disabled.tooltip": "No hi ha més pàgines de resultats",
+
+ // "browse.startsWith": ", starting with {{ startsWith }}",
+ "browse.startsWith": ", començant per {{ startsWith }}",
+
+ // "browse.startsWith.choose_start": "(Choose start)",
+ "browse.startsWith.choose_start": "(Triar inici)",
+
+ // "browse.startsWith.choose_year": "(Choose year)",
+ "browse.startsWith.choose_year": "(Triar any)",
+
+ // "browse.startsWith.choose_year.label": "Choose the issue year",
+ "browse.startsWith.choose_year.label": "Trieu l'any de publicació",
+
+ // "browse.startsWith.jump": "Filter results by year or month",
+ "browse.startsWith.jump": "Filtrar resultats per any o per mes:",
+
+ // "browse.startsWith.months.april": "April",
+ "browse.startsWith.months.april": "abril",
+
+ // "browse.startsWith.months.august": "August",
+ "browse.startsWith.months.august": "agost",
+
+ // "browse.startsWith.months.december": "December",
+ "browse.startsWith.months.december": "desembre",
+
+ // "browse.startsWith.months.february": "February",
+ "browse.startsWith.months.february": "febrer",
+
+ // "browse.startsWith.months.january": "January",
+ "browse.startsWith.months.january": "gener",
+
+ // "browse.startsWith.months.july": "July",
+ "browse.startsWith.months.july": "juliol",
+
+ // "browse.startsWith.months.june": "June",
+ "browse.startsWith.months.june": "juny",
+
+ // "browse.startsWith.months.march": "March",
+ "browse.startsWith.months.march": "març",
+
+ // "browse.startsWith.months.may": "May",
+ "browse.startsWith.months.may": "maig",
+
+ // "browse.startsWith.months.none": "(Choose month)",
+ "browse.startsWith.months.none": "(Triar mes)",
+
+ // "browse.startsWith.months.none.label": "Choose the issue month",
+ "browse.startsWith.months.none.label": "Trieu el mes de publicació",
+
+ // "browse.startsWith.months.november": "November",
+ "browse.startsWith.months.november": "novembre",
+
+ // "browse.startsWith.months.october": "October",
+ "browse.startsWith.months.october": "octubre",
+
+ // "browse.startsWith.months.september": "September",
+ "browse.startsWith.months.september": "setembre",
+
+ // "browse.startsWith.submit": "Browse",
+ "browse.startsWith.submit": "Examinar",
+
+ // "browse.startsWith.type_date": "Filter results by date",
+ "browse.startsWith.type_date": "Resultats per data",
+
+ // "browse.startsWith.type_date.label": "Or type in a date (year-month) and click on the Browse button",
+ "browse.startsWith.type_date.label": "O escriviu una data (any-mes) i feu clic al botó Examinar",
+
+ // "browse.startsWith.type_text": "Filter results by typing the first few letters",
+ "browse.startsWith.type_text": "Seleccioneu resultats teclejant les primeres lletres",
+
+ // "browse.title": "Browsing {{ collection }} by {{ field }}{{ startsWith }} {{ value }}",
+ "browse.title": "Examinant {{ collection }} per {{ field }}{{ startsWith }} {{ value }}",
+
+ // "browse.title.page": "Browsing {{ collection }} by {{ field }} {{ value }}",
+ "browse.title.page": "Examinant {{ collection }} per {{ field }} {{ value }}",
+
+
+ // "chips.remove": "Remove chip",
+ "chips.remove": "Treu xip",
+
+
+
+ // "collection.create.head": "Create a Collection",
+ "collection.create.head": "Crear una col·lecció",
+
+ // "collection.create.notifications.success": "Successfully created the Collection",
+ "collection.create.notifications.success": "Col·lecció creada amb èxit",
+
+ // "collection.create.sub-head": "Create a Collection for Community {{ parent }}",
+ "collection.create.sub-head": "Crea una col·lecció per a la comunitat {{ parent }}",
+
+ // "collection.curate.header": "Curate Collection: {{collection}}",
+ "collection.curate.header": "Curar col·lecció: {{ collection }}",
+
+ // "collection.delete.cancel": "Cancel",
+ "collection.delete.cancel": "Cancel·lar",
+
+ // "collection.delete.confirm": "Confirm",
+ "collection.delete.confirm": "Confirmar",
+
+ // "collection.delete.processing": "Deleting",
+ "collection.delete.processing": "Eliminant",
+
+ // "collection.delete.head": "Delete Collection",
+ "collection.delete.head": "Eliminar col·lecció",
+
+ // "collection.delete.notification.fail": "Collection could not be deleted",
+ "collection.delete.notification.fail": "No s'ha pogut esborrar la col·lecció",
+
+ // "collection.delete.notification.success": "Successfully deleted collection",
+ "collection.delete.notification.success": "Col·lecció eliminada correctament",
+
+ // "collection.delete.text": "Are you sure you want to delete collection \"{{ dso }}\"",
+ "collection.delete.text": "Estàs segur que vols eliminar la col·lecció \"{{ dso }}\"?",
+
+
+
+ // "collection.edit.delete": "Delete this collection",
+ "collection.edit.delete": "Eliminar aquesta col·lecció",
+
+ // "collection.edit.head": "Edit Collection",
+ "collection.edit.head": "Editar col·lecció",
+
+ // "collection.edit.breadcrumbs": "Edit Collection",
+ "collection.edit.breadcrumbs": "Editar col·lecció",
+
+
+
+ // "collection.edit.tabs.mapper.head": "Item Mapper",
+ "collection.edit.tabs.mapper.head": "Mapeig d'ítems",
+
+ // "collection.edit.tabs.item-mapper.title": "Collection Edit - Item Mapper",
+ "collection.edit.tabs.item-mapper.title": "Editar col·lecció: mapeig d'ítems",
+
+ // "collection.edit.item-mapper.cancel": "Cancel",
+ "collection.edit.item-mapper.cancel": "Cancel·lar",
+
+ // "collection.edit.item-mapper.collection": "Collection: \"{{name}}\"",
+ "collection.edit.item-mapper.collection": "Col·lecció: \"{{ name }}\"",
+
+ // "collection.edit.item-mapper.confirm": "Map selected items",
+ "collection.edit.item-mapper.confirm": "Mapeja els ítems seleccionats",
+
+ // "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": "Aquesta és l'eina de mapatge d'ítems que permet als administradors de col·leccions assignar ítems d'altres col·leccions a aquesta col·lecció. Podeu cercar ítems d'altres col·leccions i mapejar-los, o explorar la llista d'ítems mapeats.",
+
+ // "collection.edit.item-mapper.head": "Item Mapper - Map Items from Other Collections",
+ "collection.edit.item-mapper.head": "Mapeig d'ítems: mapea ítems d'altres col·leccions",
+
+ // "collection.edit.item-mapper.no-search": "Please enter a query to search",
+ "collection.edit.item-mapper.no-search": "Introduïu una consulta per cercar",
+
+ // "collection.edit.item-mapper.notifications.map.error.content": "Errors occurred for mapping of {{amount}} items.",
+ "collection.edit.item-mapper.notifications.map.error.content": "S'han produït errors en l'assignació de {{ amount }} ítems.",
+
+ // "collection.edit.item-mapper.notifications.map.error.head": "Mapping errors",
+ "collection.edit.item-mapper.notifications.map.error.head": "Errors de mapatge",
+
+ // "collection.edit.item-mapper.notifications.map.success.content": "Successfully mapped {{amount}} items.",
+ "collection.edit.item-mapper.notifications.map.success.content": "{{ amount }} ítems mapejats correctament.",
+
+ // "collection.edit.item-mapper.notifications.map.success.head": "Mapping completed",
+ "collection.edit.item-mapper.notifications.map.success.head": "Mapeig completat",
+
+ // "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": "S'han produït errors en eliminar els mapeigs de {{ amount }} ítems.",
+
+ // "collection.edit.item-mapper.notifications.unmap.error.head": "Remove mapping errors",
+ "collection.edit.item-mapper.notifications.unmap.error.head": "Eliminar errors de mapatge",
+
+ // "collection.edit.item-mapper.notifications.unmap.success.content": "Successfully removed the mappings of {{amount}} items.",
+ "collection.edit.item-mapper.notifications.unmap.success.content": "S'han eliminat correctament els mapeigs de {{ amount }} ítems.",
+
+ // "collection.edit.item-mapper.notifications.unmap.success.head": "Remove mapping completed",
+ "collection.edit.item-mapper.notifications.unmap.success.head": "Finalitzada l'eliminació del mapatge",
+
+ // "collection.edit.item-mapper.remove": "Remove selected item mappings",
+ "collection.edit.item-mapper.remove": "Eliminar els mapeigs d'ítems seleccionats",
+
+ // "collection.edit.item-mapper.search-form.placeholder": "Search items...",
+ "collection.edit.item-mapper.search-form.placeholder": "Cerca els ítems...",
+
+ // "collection.edit.item-mapper.tabs.browse": "Browse mapped items",
+ "collection.edit.item-mapper.tabs.browse": "Examinar ítems mapejats",
+
+ // "collection.edit.item-mapper.tabs.map": "Map new items",
+ "collection.edit.item-mapper.tabs.map": "Assignar nous ítems",
+
+
+ // "collection.edit.logo.delete.title": "Delete logo",
+ "collection.edit.logo.delete.title": "Eliminar logo",
+
+ // "collection.edit.logo.delete-undo.title": "Undo delete",
+ "collection.edit.logo.delete-undo.title": "Desfer eliminació",
+
+ // "collection.edit.logo.label": "Collection logo",
+ "collection.edit.logo.label": "Logotip de la col·lecció",
+
+ // "collection.edit.logo.notifications.add.error": "Uploading Collection logo failed. Please verify the content before retrying.",
+ "collection.edit.logo.notifications.add.error": "Error en carregar el logotip de la col·lecció. Verifiqueu el contingut abans de tornar-ho a provar.",
+
+ // "collection.edit.logo.notifications.add.success": "Upload Collection logo successful.",
+ "collection.edit.logo.notifications.add.success": "Pujada correcta del logotip de la col·lecció.",
+
+ // "collection.edit.logo.notifications.delete.success.title": "Logo deleted",
+ "collection.edit.logo.notifications.delete.success.title": "Logotip eliminat",
+
+ // "collection.edit.logo.notifications.delete.success.content": "Successfully deleted the collection's logo",
+ "collection.edit.logo.notifications.delete.success.content": "S'ha eliminat correctament el logotip de la col·lecció.",
+
+ // "collection.edit.logo.notifications.delete.error.title": "Error deleting logo",
+ "collection.edit.logo.notifications.delete.error.title": "Error en eliminar el logotip",
+
+ // "collection.edit.logo.upload": "Drop a Collection Logo to upload",
+ "collection.edit.logo.upload": "Deixeu anar un logotip de col·lecció per carregar-lo",
+
+
+
+ // "collection.edit.notifications.success": "Successfully edited the Collection",
+ "collection.edit.notifications.success": "Col·lecció editada amb èxit",
+
+ // "collection.edit.return": "Back",
+ "collection.edit.return": "Enrere",
+
+
+
+ // "collection.edit.tabs.curate.head": "Curate",
+ "collection.edit.tabs.curate.head": "Curar",
+
+ // "collection.edit.tabs.curate.title": "Collection Edit - Curate",
+ "collection.edit.tabs.curate.title": "Edició de col·lecció - Curar",
+
+ // "collection.edit.tabs.authorizations.head": "Authorizations",
+ "collection.edit.tabs.authorizations.head": "Autoritzacions",
+
+ // "collection.edit.tabs.authorizations.title": "Collection Edit - Authorizations",
+ "collection.edit.tabs.authorizations.title": "Edició de col·lecció: autoritzacions",
+
+ // "collection.edit.item.authorizations.load-bundle-button": "Load more bundles",
+ "collection.edit.item.authorizations.load-bundle-button": "Carregar més paquets",
+
+ // "collection.edit.item.authorizations.load-more-button": "Load more",
+ "collection.edit.item.authorizations.load-more-button": "Carregar més",
+
+ // "collection.edit.item.authorizations.show-bitstreams-button": "Show bitstream policies for bundle",
+ "collection.edit.item.authorizations.show-bitstreams-button": "Mostrar les autoritzacions dels fitxers del paquet",
+
+ // "collection.edit.tabs.metadata.head": "Edit Metadata",
+ "collection.edit.tabs.metadata.head": "Editar metadades",
+
+ // "collection.edit.tabs.metadata.title": "Collection Edit - Metadata",
+ "collection.edit.tabs.metadata.title": "Edició de col·lecció: metadades",
+
+ // "collection.edit.tabs.roles.head": "Assign Roles",
+ "collection.edit.tabs.roles.head": "Assignar rols",
+
+ // "collection.edit.tabs.roles.title": "Collection Edit - Roles",
+ "collection.edit.tabs.roles.title": "Edició de col·lecció - Rols",
+
+ // "collection.edit.tabs.source.external": "This collection harvests its content from an external source",
+ "collection.edit.tabs.source.external": "Aquesta col·lecció recull el contingut d'una font externa",
+
+ // "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": "Heu de proporcionar el set-ID de la col·lecció de destinació.",
+
+ // "collection.edit.tabs.source.form.harvestType": "Content being harvested",
+ "collection.edit.tabs.source.form.harvestType": "Contingut que s'està recol·lectant",
+
+ // "collection.edit.tabs.source.form.head": "Configure an external source",
+ "collection.edit.tabs.source.form.head": "Configura una font externa",
+
+ // "collection.edit.tabs.source.form.metadataConfigId": "Metadata Format",
+ "collection.edit.tabs.source.form.metadataConfigId": "Format de metadades",
+
+ // "collection.edit.tabs.source.form.oaiSetId": "OAI specific set id",
+ "collection.edit.tabs.source.form.oaiSetId": "ID de set específic d'OAI",
+
+ // "collection.edit.tabs.source.form.oaiSource": "OAI Provider",
+ "collection.edit.tabs.source.form.oaiSource": "Proveïdor OAI",
+
+ // "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": "Recollir metadades i fitxers (requereix suport ORE)",
+
+ // "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": "Recollir metadades i referències a fitxers (requereix suport ORE)",
+
+ // "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Harvest metadata only",
+ "collection.edit.tabs.source.form.options.harvestType.METADATA_ONLY": "Recollir només metadades",
+
+ // "collection.edit.tabs.source.head": "Content Source",
+ "collection.edit.tabs.source.head": "Origen del contingut",
+
+ // "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": "Els teus canvis han sigut descartats. Per recuperar-los, premeu el botó 'Desfer'",
+
+ // "collection.edit.tabs.source.notifications.discarded.title": "Changes discarded",
+ "collection.edit.tabs.source.notifications.discarded.title": "Canvis descartats",
+
+ // "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": "Els canvis no s'han desat. Assegureu-vos que tots els camps siguin vàlids abans de desar.",
+
+ // "collection.edit.tabs.source.notifications.invalid.title": "Metadata invalid",
+ "collection.edit.tabs.source.notifications.invalid.title": "Metadades invàlides",
+
+ // "collection.edit.tabs.source.notifications.saved.content": "Your changes to this collection's content source were saved.",
+ "collection.edit.tabs.source.notifications.saved.content": "S'han desat els canvis a la font de contingut d'aquesta col·lecció.",
+
+ // "collection.edit.tabs.source.notifications.saved.title": "Content Source saved",
+ "collection.edit.tabs.source.notifications.saved.title": "Font de contingut desat",
+
+ // "collection.edit.tabs.source.title": "Collection Edit - Content Source",
+ "collection.edit.tabs.source.title": "Edició de col·lecció: font de contingut",
+
+
+
+ // "collection.edit.template.add-button": "Add",
+ "collection.edit.template.add-button": "Afegir",
+
+ // "collection.edit.template.breadcrumbs": "Item template",
+ "collection.edit.template.breadcrumbs": "Plantilla d'ítem",
+
+ // "collection.edit.template.cancel": "Cancel",
+ "collection.edit.template.cancel": "Cancel·lar",
+
+ // "collection.edit.template.delete-button": "Delete",
+ "collection.edit.template.delete-button": "Esborrar",
+
+ // "collection.edit.template.edit-button": "Edit",
+ "collection.edit.template.edit-button": "Editar",
+
+ // "collection.edit.template.error": "An error occurred retrieving the template item",
+ "collection.edit.template.error": "S'ha produït un error en recuperar la plantilla de l'ítem.",
+
+ // "collection.edit.template.head": "Edit Template Item for Collection \"{{ collection }}\"",
+ "collection.edit.template.head": "Editar plantilla de l'ítem per a la col·lecció \"{{ collection }}\"",
+
+ // "collection.edit.template.label": "Template item",
+ "collection.edit.template.label": "Plantilla d'ítem",
+
+ // "collection.edit.template.loading": "Loading template item...",
+ "collection.edit.template.loading": "Carregant plantilla d'ítem...",
+
+ // "collection.edit.template.notifications.delete.error": "Failed to delete the item template",
+ "collection.edit.template.notifications.delete.error": "No s'ha pogut suprimir la plantilla d'ítem.",
+
+ // "collection.edit.template.notifications.delete.success": "Successfully deleted the item template",
+ "collection.edit.template.notifications.delete.success": "S'ha eliminat correctament la plantilla d'ítem.",
+
+ // "collection.edit.template.title": "Edit Template Item",
+ "collection.edit.template.title": "Editar plantilla d'ítem",
+
+
+
+ // "collection.form.abstract": "Short Description",
+ "collection.form.abstract": "Breu descripció",
+
+ // "collection.form.description": "Introductory text (HTML)",
+ "collection.form.description": "Text introductori (HTML)",
+
+ // "collection.form.errors.title.required": "Please enter a collection name",
+ "collection.form.errors.title.required": "Introduïu un nom de col·lecció",
+
+ // "collection.form.license": "License",
+ "collection.form.license": "Llicència",
+
+ // "collection.form.provenance": "Provenance",
+ "collection.form.provenance": "Procedència",
+
+ // "collection.form.rights": "Copyright text (HTML)",
+ "collection.form.rights": "Text de copyright (HTML)",
+
+ // "collection.form.tableofcontents": "News (HTML)",
+ "collection.form.tableofcontents": "Notícies (HTML)",
+
+ // "collection.form.title": "Name",
+ "collection.form.title": "Nom",
+
+ // "collection.form.entityType": "Entity Type",
+ "collection.form.entityType": "Tipus d'Entitat",
+
+
+
+ // "collection.listelement.badge": "Collection",
+ "collection.listelement.badge": "Col·lecció",
+
+
+
+ // "collection.page.browse.recent.head": "Recent Submissions",
+ "collection.page.browse.recent.head": "Enviaments recents",
+
+ // "collection.page.browse.recent.empty": "No items to show",
+ "collection.page.browse.recent.empty": "No hi ha elements per mostrar",
+
+ // "collection.page.edit": "Edit this collection",
+ "collection.page.edit": "Editar aquesta col·lecció",
+
+ // "collection.page.handle": "Permanent URI for this collection",
+ "collection.page.handle": "URI permanent per a aquesta col·lecció",
+
+ // "collection.page.license": "License",
+ "collection.page.license": "Llicència",
+
+ // "collection.page.news": "News",
+ "collection.page.news": "Notícies",
+
+
+
+ // "collection.select.confirm": "Confirm selected",
+ "collection.select.confirm": "Confirmar selecció",
+
+ // "collection.select.empty": "No collections to show",
+ "collection.select.empty": "No hi ha col·leccions per mostrar",
+
+ // "collection.select.table.title": "Title",
+ "collection.select.table.title": "Títol",
+
+
+ // "collection.source.controls.head": "Harvest Controls",
+ "collection.source.controls.head": "Controls de recol·lecció",
+ // "collection.source.controls.test.submit.error": "Something went wrong with initiating the testing of the settings",
+ "collection.source.controls.test.submit.error": "Hi ha hagut errors en realitzar les proves de comprovació de la configuració",
+ // "collection.source.controls.test.failed": "The script to test the settings has failed",
+ "collection.source.controls.test.failed": "La prova de la configuració ha fallat",
+ // "collection.source.controls.test.completed": "The script to test the settings has successfully finished",
+ "collection.source.controls.test.completed": "L'script de prova de la configuració s'ha acabat correctament",
+ // "collection.source.controls.test.submit": "Test configuration",
+ "collection.source.controls.test.submit": "Proveu la configuració",
+ // "collection.source.controls.test.running": "Testing configuration...",
+ "collection.source.controls.test.running": "Provant la configuració...",
+ // "collection.source.controls.import.submit.success": "The import has been successfully initiated",
+ "collection.source.controls.import.submit.success": "La importació ha començat correctament",
+ // "collection.source.controls.import.submit.error": "Something went wrong with initiating the import",
+ "collection.source.controls.import.submit.error": "Hi ha hagut alguna errada en iniciar la importació",
+ // "collection.source.controls.import.submit": "Import now",
+ "collection.source.controls.import.submit": "Importa ara",
+ // "collection.source.controls.import.running": "Importing...",
+ "collection.source.controls.import.running": "Important...",
+ // "collection.source.controls.import.failed": "An error occurred during the import",
+ "collection.source.controls.import.failed": "S'ha produït un error durant la importació",
+ // "collection.source.controls.import.completed": "The import completed",
+ "collection.source.controls.import.completed": "La importació ha finalitzat",
+ // "collection.source.controls.reset.submit.success": "The reset and reimport has been successfully initiated",
+ "collection.source.controls.reset.submit.success": "La restauració i reimportació ha començat correctament",
+ // "collection.source.controls.reset.submit.error": "Something went wrong with initiating the reset and reimport",
+ "collection.source.controls.reset.submit.error": "S'ha produït un error en iniciar la restauració i reimportació",
+ // "collection.source.controls.reset.failed": "An error occurred during the reset and reimport",
+ "collection.source.controls.reset.failed": "S'ha produït un error en la restauració i reimportació",
+ // "collection.source.controls.reset.completed": "The reset and reimport completed",
+ "collection.source.controls.reset.completed": "Restauració i reimportació finalitzades",
+ // "collection.source.controls.reset.submit": "Reset and reimport",
+ "collection.source.controls.reset.submit": "Restauració i reimportació",
+ // "collection.source.controls.reset.running": "Resetting and reimporting...",
+ "collection.source.controls.reset.running": "Restaurant i reimportant...",
+ // "collection.source.controls.harvest.status": "Harvest status:",
+ "collection.source.controls.harvest.status": "Estat de la Recol·lecció:",
+ // "collection.source.controls.harvest.start": "Harvest start time:",
+ "collection.source.controls.harvest.start": "Inici de la recol·lecció:",
+ // "collection.source.controls.harvest.last": "Last time harvested:",
+ "collection.source.controls.harvest.last": "Data de la darrera recol·lecció:",
+ // "collection.source.controls.harvest.message": "Harvest info:",
+ "collection.source.controls.harvest.message": "Informació de recol·lecció:",
+ // "collection.source.controls.harvest.no-information": "N/A",
+ "collection.source.controls.harvest.no-information": "N/A",
+
+
+ // "collection.source.update.notifications.error.content": "The provided settings have been tested and didn't work.",
+ "collection.source.update.notifications.error.content": "La configuració proporcionada s'ha provat i no ha funcionat.",
+
+ // "collection.source.update.notifications.error.title": "Server Error",
+ "collection.source.update.notifications.error.title": "Error del servidor",
+
+
+
+ // "communityList.breadcrumbs": "Community List",
+ "communityList.breadcrumbs": "Llista de comunitats",
+
+ // "communityList.tabTitle": "Community List",
+ "communityList.tabTitle": "Llista de comunitats",
+
+ // "communityList.title": "List of Communities",
+ "communityList.title": "Llista de comunitats",
+
+ // "communityList.showMore": "Show More",
+ "communityList.showMore": "Mostrar més",
+
+
+
+ // "community.create.head": "Create a Community",
+ "community.create.head": "Crear una comunitat",
+
+ // "community.create.notifications.success": "Successfully created the Community",
+ "community.create.notifications.success": "Comunitat creada amb èxit",
+
+ // "community.create.sub-head": "Create a Sub-Community for Community {{ parent }}",
+ "community.create.sub-head": "Crear una subcomunitat per a la comunitat {{ parent }}",
+
+ // "community.curate.header": "Curate Community: {{community}}",
+ "community.curate.header": "Curar comunitat: {{ community }}",
+
+ // "community.delete.cancel": "Cancel",
+ "community.delete.cancel": "Cancel·lar",
+
+ // "community.delete.confirm": "Confirm",
+ "community.delete.confirm": "Confirmar",
+
+ // "community.delete.processing": "Deleting...",
+ "community.delete.processing": "Eliminant...",
+
+ // "community.delete.head": "Delete Community",
+ "community.delete.head": "Eliminar comunitat",
+
+ // "community.delete.notification.fail": "Community could not be deleted",
+ "community.delete.notification.fail": "No s'ha pogut eliminar la comunitat",
+
+ // "community.delete.notification.success": "Successfully deleted community",
+ "community.delete.notification.success": "Comunitat eliminada amb èxit",
+
+ // "community.delete.text": "Are you sure you want to delete community \"{{ dso }}\"",
+ "community.delete.text": "Esteu segur que voleu suprimir la comunitat \"{{ dso }}\"?",
+
+ // "community.edit.delete": "Delete this community",
+ "community.edit.delete": "Eliminar aquesta comunitat",
+
+ // "community.edit.head": "Edit Community",
+ "community.edit.head": "Editar comunitat",
+
+ // "community.edit.breadcrumbs": "Edit Community",
+ "community.edit.breadcrumbs": "Editar comunitat",
+
+
+ // "community.edit.logo.delete.title": "Delete logo",
+ "community.edit.logo.delete.title": "Eliminar logo",
+
+ // "community.edit.logo.delete-undo.title": "Undo delete",
+ "community.edit.logo.delete-undo.title": "Desfer eliminació",
+
+ // "community.edit.logo.label": "Community logo",
+ "community.edit.logo.label": "Logotip de la comunitat",
+
+ // "community.edit.logo.notifications.add.error": "Uploading Community logo failed. Please verify the content before retrying.",
+ "community.edit.logo.notifications.add.error": "Error en carregar el logotip de la comunitat. Verifiqueu el contingut abans de tornar-ho a provar.",
+
+ // "community.edit.logo.notifications.add.success": "Upload Community logo successful.",
+ "community.edit.logo.notifications.add.success": "Logotip de la comunitat pujat correctament.",
+
+ // "community.edit.logo.notifications.delete.success.title": "Logo deleted",
+ "community.edit.logo.notifications.delete.success.title": "Logotip eliminat",
+
+ // "community.edit.logo.notifications.delete.success.content": "Successfully deleted the community's logo",
+ "community.edit.logo.notifications.delete.success.content": "S'ha eliminat correctament el logotip de la comunitat.",
+
+ // "community.edit.logo.notifications.delete.error.title": "Error deleting logo",
+ "community.edit.logo.notifications.delete.error.title": "Error en eliminar el logotip",
+
+ // "community.edit.logo.upload": "Drop a Community Logo to upload",
+ "community.edit.logo.upload": "Deixeu anar un logotip de la comunitat per carregar",
+
+
+
+ // "community.edit.notifications.success": "Successfully edited the Community",
+ "community.edit.notifications.success": "Comunitat editada amb èxit",
+
+ // "community.edit.notifications.unauthorized": "You do not have privileges to make this change",
+ "community.edit.notifications.unauthorized": "No tens privilegis per fer aquest canvi",
+
+ // "community.edit.notifications.error": "An error occured while editing the Community",
+ "community.edit.notifications.error": "S'ha produït un error en editar la comunitat.",
+
+ // "community.edit.return": "Back",
+ "community.edit.return": "Enrere",
+
+
+
+ // "community.edit.tabs.curate.head": "Curate",
+ "community.edit.tabs.curate.head": "Curar",
+
+ // "community.edit.tabs.curate.title": "Community Edit - Curate",
+ "community.edit.tabs.curate.title": "Edició de la comunitat - Curar",
+
+ // "community.edit.tabs.metadata.head": "Edit Metadata",
+ "community.edit.tabs.metadata.head": "Editar metadades",
+
+ // "community.edit.tabs.metadata.title": "Community Edit - Metadata",
+ "community.edit.tabs.metadata.title": "Edició de la comunitat: metadades",
+
+ // "community.edit.tabs.roles.head": "Assign Roles",
+ "community.edit.tabs.roles.head": "Assignar rols",
+
+ // "community.edit.tabs.roles.title": "Community Edit - Roles",
+ "community.edit.tabs.roles.title": "Edició de la comunitat: funcions",
+
+ // "community.edit.tabs.authorizations.head": "Authorizations",
+ "community.edit.tabs.authorizations.head": "Autoritzacions",
+
+ // "community.edit.tabs.authorizations.title": "Community Edit - Authorizations",
+ "community.edit.tabs.authorizations.title": "Edició de la comunitat: autoritzacions",
+
+
+
+ // "community.listelement.badge": "Community",
+ "community.listelement.badge": "Comunitat",
+
+
+
+ // "comcol-role.edit.no-group": "None",
+ "comcol-role.edit.no-group": "Cap",
+
+ // "comcol-role.edit.create": "Create",
+ "comcol-role.edit.create": "Crear",
+
+ // "comcol-role.edit.create.error.title": "Failed to create a group for the '{{ role }}' role",
+ "comcol-role.edit.create.error.title": "Error en crear un grup per al rol '{{ role }}'",
+
+ // "comcol-role.edit.restrict": "Restrict",
+ "comcol-role.edit.restrict": "Restringir",
+
+ // "comcol-role.edit.delete": "Delete",
+ "comcol-role.edit.delete": "Esborrar",
+
+ // "comcol-role.edit.delete.error.title": "Failed to delete the '{{ role }}' role's group",
+ "comcol-role.edit.delete.error.title": "Error en esborrar el grup del rol '{{ role }}'",
+
+
+ // "comcol-role.edit.community-admin.name": "Administrators",
+ "comcol-role.edit.community-admin.name": "Administradors",
+
+ // "comcol-role.edit.collection-admin.name": "Administrators",
+ "comcol-role.edit.collection-admin.name": "Administradors",
+
+
+ // "comcol-role.edit.community-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).",
+ "comcol-role.edit.community-admin.description": "Els administradors de la comunitat poden crear subcomunitats o col·leccions i gestionar o assignar la gestió per a aquestes subcomunitats o col·leccions. A més, decideixen qui pot enviar ítems a les subcol·leccions, editar les metadades de l'ítem (un cop publicats) i afegir (mapejar) ítems existents d'altres col·leccions (subjecte a autorització).",
+
+ // "comcol-role.edit.collection-admin.description": "Collection administrators decide who can submit items to the collection, edit item metadata (after submission), and add (map) existing items from other collections to this collection (subject to authorization for that collection).",
+ "comcol-role.edit.collection-admin.description": "Els administradors de la col·lecció decideixen qui pot enviar ítems a la col·lecció, editar les metadades de l'ítem (un cop publicats) i afegir (mapejar) ítems existents d'altres col·leccions a aquesta col·lecció (subjecte a autorització).",
+
+
+ // "comcol-role.edit.submitters.name": "Submitters",
+ "comcol-role.edit.submitters.name": "Remitents",
+
+ // "comcol-role.edit.submitters.description": "The E-People and Groups that have permission to submit new items to this collection.",
+ "comcol-role.edit.submitters.description": "Els Usuaris i Grups que tenen permís per enviar nous ítems a aquesta col·lecció.",
+
+
+ // "comcol-role.edit.item_read.name": "Default item read access",
+ "comcol-role.edit.item_read.name": "Accés de lectura predeterminat de l'ítem",
+
+ // "comcol-role.edit.item_read.description": "E-People and Groups that can read new items submitted to this collection. Changes to this role are not retroactive. Existing items in the system will still be viewable by those who had read access at the time of their addition.",
+ "comcol-role.edit.item_read.description": "Usuaris i Grups que poden llegir nous ítems enviats a aquesta col·lecció. Els canvis en aquest rol no són retroactius. Els ítems existents al sistema encara seran visibles per a aquells que tenien accés de lectura en el moment de la seva addició.",
+
+ // "comcol-role.edit.item_read.anonymous-group": "Default read for incoming items is currently set to Anonymous.",
+ "comcol-role.edit.item_read.anonymous-group": "La lectura predeterminada per als ítems entrants està configurada actualment com a Anònim.",
+
+
+ // "comcol-role.edit.bitstream_read.name": "Default bitstream read access",
+ "comcol-role.edit.bitstream_read.name": "Accés de lectura per defecte de fitxers",
+
+ // "comcol-role.edit.bitstream_read.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).",
+ "comcol-role.edit.bitstream_read.description": "Els administradors de la comunitat poden crear subcomunitats o col·leccions i gestionar o assignar la gestió per a aquestes subcomunitats o col·leccions. A més, decideixen qui pot enviar ítems a les subcol·leccions, editar les metadades de l'ítem (un cop publicats) i afegir (mapejar) ítems existents d'altres col·leccions (subjecte a autorització).",
+
+ // "comcol-role.edit.bitstream_read.anonymous-group": "Default read for incoming bitstreams is currently set to Anonymous.",
+ "comcol-role.edit.bitstream_read.anonymous-group": "La lectura predeterminada per als fitxers entrants s'estableix actualment a Anònim.",
+
+
+ // "comcol-role.edit.editor.name": "Editors",
+ "comcol-role.edit.editor.name": "Editors",
+
+ // "comcol-role.edit.editor.description": "Editors are able to edit the metadata of incoming submissions, and then accept or reject them.",
+ "comcol-role.edit.editor.description": "Els editors poden editar les metadades dels enviaments entrants i després acceptar-los o rebutjar-los.",
+
+
+ // "comcol-role.edit.finaleditor.name": "Final editors",
+ "comcol-role.edit.finaleditor.name": "Editors finals",
+
+ // "comcol-role.edit.finaleditor.description": "Final editors are able to edit the metadata of incoming submissions, but will not be able to reject them.",
+ "comcol-role.edit.finaleditor.description": "Els editors finals poden editar les metadades dels enviaments entrants, però no els poden rebutjar.",
+
+
+ // "comcol-role.edit.reviewer.name": "Reviewers",
+ "comcol-role.edit.reviewer.name": "Revisors",
+
+ // "comcol-role.edit.reviewer.description": "Reviewers are able to accept or reject incoming submissions. However, they are not able to edit the submission's metadata.",
+ "comcol-role.edit.reviewer.description": "Els revisors poden acceptar o rebutjar enviaments entrants. No obstant això, no poden editar les metadades de l'enviament.",
+
+
+
+ // "community.form.abstract": "Short Description",
+ "community.form.abstract": "Breu descripció",
+
+ // "community.form.description": "Introductory text (HTML)",
+ "community.form.description": "Text introductori (HTML)",
+
+ // "community.form.errors.title.required": "Please enter a community name",
+ "community.form.errors.title.required": "Introduïu un nom de comunitat",
+
+ // "community.form.rights": "Copyright text (HTML)",
+ "community.form.rights": "Text de copyright (HTML)",
+
+ // "community.form.tableofcontents": "News (HTML)",
+ "community.form.tableofcontents": "Notícies (HTML)",
+
+ // "community.form.title": "Name",
+ "community.form.title": "Nom",
+
+ // "community.page.edit": "Edit this community",
+ "community.page.edit": "Editar aquesta comunitat",
+
+ // "community.page.handle": "Permanent URI for this community",
+ "community.page.handle": "URI permanent per a aquesta comunitat",
+
+ // "community.page.license": "License",
+ "community.page.license": "Llicència",
+
+ // "community.page.news": "News",
+ "community.page.news": "Notícies",
+
+ // "community.all-lists.head": "Subcommunities and Collections",
+ "community.all-lists.head": "Subcomunitats i col·leccions",
+
+ // "community.sub-collection-list.head": "Collections of this Community",
+ "community.sub-collection-list.head": "Col·leccions d'aquesta comunitat",
+
+ // "community.sub-community-list.head": "Communities of this Community",
+ "community.sub-community-list.head": "Comunitats d'aquesta comunitat",
+
+
+
+ // "cookies.consent.accept-all": "Accept all",
+ "cookies.consent.accept-all": "Acceptar tot",
+
+ // "cookies.consent.accept-selected": "Accept selected",
+ "cookies.consent.accept-selected": "Acceptar selecció",
+
+ // "cookies.consent.app.opt-out.description": "This app is loaded by default (but you can opt out)",
+ "cookies.consent.app.opt-out.description": "Aquesta aplicació es carrega per defecte (però podeu optar per sortir)",
+
+ // "cookies.consent.app.opt-out.title": "(opt-out)",
+ "cookies.consent.app.opt-out.title": "(optar per sortir)",
+
+ // "cookies.consent.app.purpose": "purpose",
+ "cookies.consent.app.purpose": "objectiu",
+
+ // "cookies.consent.app.required.description": "This application is always required",
+ "cookies.consent.app.required.description": "Aquesta aplicació sempre és necessària",
+
+ // "cookies.consent.app.required.title": "(always required)",
+ "cookies.consent.app.required.title": "(sempre requerit)",
+
+ // "cookies.consent.app.disable-all.description": "Use this switch to enable or disable all services.",
+ "cookies.consent.app.disable-all.description": "Utilitzeu aquest camp per activar o desactivar tots els serveis.",
+
+ // "cookies.consent.app.disable-all.title": "Enable or disable all services",
+ "cookies.consent.app.disable-all.title": "Activar o desactivar tots els serveis",
+
+ // "cookies.consent.update": "There were changes since your last visit, please update your consent.",
+ "cookies.consent.update": "Hi ha hagut canvis des de la darrera visita, si us plau, actualitzeu el vostre consentiment.",
+
+ // "cookies.consent.close": "Close",
+ "cookies.consent.close": "Tancar",
+
+ // "cookies.consent.decline": "Decline",
+ "cookies.consent.decline": "Declinar",
+
+ // "cookies.consent.ok": "That's ok",
+ "cookies.consent.ok": "D'acord",
+
+ // "cookies.consent.save": "Save",
+ "cookies.consent.save": "Guardar",
+
+ // "cookies.consent.content-notice.title": "Cookie Consent",
+ "cookies.consent.content-notice.title": "Cookie Consent",
+
+ // "cookies.consent.content-notice.description": "We collect and process your personal information for the following purposes: Authentication, Preferences, Acknowledgement and Statistics. To learn more, please read our {privacyPolicy}.",
+ "cookies.consent.content-notice.description": "Recopilem i processem la vostra informació personal amb les finalitats següents: Autenticació, Preferències, Reconeixement i Estadístiques. Per obtenir més informació, llegiu la nostra {privacyPolicy}.",
+
+ // "cookies.consent.content-notice.description.no-privacy": "We collect and process your personal information for the following purposes: Authentication, Preferences, Acknowledgement and Statistics.",
+ "cookies.consent.content-notice.description.no-privacy": "Recopilem i processem la vostra informació personal per als següents propòsits: Autenticació, Preferències, Reconeixement i Estadístiques.",
+
+ // "cookies.consent.content-notice.learnMore": "Customize",
+ "cookies.consent.content-notice.learnMore": "Personalitzar",
+
+ // "cookies.consent.content-modal.description": "Here you can see and customize the information that we collect about you.",
+ "cookies.consent.content-modal.description": "Aquí podeu veure i personalitzar la informació que recopilem sobre vostè.",
+
+ // "cookies.consent.content-modal.privacy-policy.name": "privacy policy",
+ "cookies.consent.content-modal.privacy-policy.name": "política de privacitat",
+
+ // "cookies.consent.content-modal.privacy-policy.text": "To learn more, please read our {privacyPolicy}.",
+ "cookies.consent.content-modal.privacy-policy.text": "Per a més informació, llegiu si us plau la nostra {privacyPolicy}.",
+
+ // "cookies.consent.content-modal.title": "Information that we collect",
+ "cookies.consent.content-modal.title": "Informació que recopilem",
+
+ // "cookies.consent.content-modal.services": "services",
+ "cookies.consent.content-modal.services": "serveis",
+
+ // "cookies.consent.content-modal.service": "service",
+ "cookies.consent.content-modal.service": "servei",
+
+ // "cookies.consent.app.title.authentication": "Authentication",
+ "cookies.consent.app.title.authentication": "Autenticació",
+
+ // "cookies.consent.app.description.authentication": "Required for signing you in",
+ "cookies.consent.app.description.authentication": "Requerit per iniciar sessió",
+
+
+ // "cookies.consent.app.title.preferences": "Preferences",
+ "cookies.consent.app.title.preferences": "Preferències",
+
+ // "cookies.consent.app.description.preferences": "Required for saving your preferences",
+ "cookies.consent.app.description.preferences": "Requerit per desar les vostres preferències",
+
+
+
+ // "cookies.consent.app.title.acknowledgement": "Acknowledgement",
+ "cookies.consent.app.title.acknowledgement": "Reconeixement",
+
+ // "cookies.consent.app.description.acknowledgement": "Required for saving your acknowledgements and consents",
+ "cookies.consent.app.description.acknowledgement": "Requerit per guardar els seus reconeixements i consentiments",
+
+
+
+ // "cookies.consent.app.title.google-analytics": "Google Analytics",
+ "cookies.consent.app.title.google-analytics": "Google Analytics",
+
+ // "cookies.consent.app.description.google-analytics": "Allows us to track statistical data",
+ "cookies.consent.app.description.google-analytics": "Ens permet rastrejar dades estadístiques",
+
+
+
+ // "cookies.consent.app.title.google-recaptcha": "Google reCaptcha",
+ "cookies.consent.app.title.google-recaptcha": "Google reCaptcha",
+
+ // "cookies.consent.app.description.google-recaptcha": "We use google reCAPTCHA service during registration and password recovery",
+ "cookies.consent.app.description.google-recaptcha": "Utilitzem el servei google reCAPTCHA durant el registre i la recuperació de contrasenya",
+
+
+ // "cookies.consent.purpose.functional": "Functional",
+ "cookies.consent.purpose.functional": "Funcional",
+
+ // "cookies.consent.purpose.statistical": "Statistical",
+ "cookies.consent.purpose.statistical": "Estadístic",
+
+ // "cookies.consent.purpose.registration-password-recovery": "Registration and Password recovery",
+ "cookies.consent.purpose.registration-password-recovery": "Registre i recuperació de contrasenya",
+
+ // "cookies.consent.purpose.sharing": "Sharing",
+ "cookies.consent.purpose.sharing": "Compartició",
+
+ // "curation-task.task.citationpage.label": "Generate Citation Page",
+ "curation-task.task.citationpage.label": "Generar pàgina de cita",
+
+ // "curation-task.task.checklinks.label": "Check Links in Metadata",
+ "curation-task.task.checklinks.label": "Comprovar enllaços a metadades",
+
+ // "curation-task.task.noop.label": "NOOP",
+ "curation-task.task.noop.label": "NOOP",
+
+ // "curation-task.task.profileformats.label": "Profile Bitstream Formats",
+ "curation-task.task.profileformats.label": "Perfil de formats de fitxer",
+
+ // "curation-task.task.requiredmetadata.label": "Check for Required Metadata",
+ "curation-task.task.requiredmetadata.label": "Comprovar les metadades obligatòries",
+
+ // "curation-task.task.translate.label": "Microsoft Translator",
+ "curation-task.task.translate.label": "Traductor de Microsoft",
+
+ // "curation-task.task.vscan.label": "Virus Scan",
+ "curation-task.task.vscan.label": "Comprovacio de virus",
+
+ // "curation-task.task.registerdoi.label": "Register DOI",
+ "curation-task.task.registerdoi.label": "Registrar DOI",
+
+
+
+ // "curation.form.task-select.label": "Task:",
+ "curation.form.task-select.label": "Tasca:",
+
+ // "curation.form.submit": "Start",
+ "curation.form.submit": "Iniciar",
+
+ // "curation.form.submit.success.head": "The curation task has been started successfully",
+ "curation.form.submit.success.head": "La tasca de curació s'ha iniciat amb èxit.",
+
+ // "curation.form.submit.success.content": "You will be redirected to the corresponding process page.",
+ "curation.form.submit.success.content": "Serà redirigit a la pàgina del procés corresponent.",
+
+ // "curation.form.submit.error.head": "Running the curation task failed",
+ "curation.form.submit.error.head": "Error en executar la tasca de curació",
+
+ // "curation.form.submit.error.content": "An error occured when trying to start the curation task.",
+ "curation.form.submit.error.content": "S'ha produït un error en intentar iniciar la tasca de curació.",
+
+ // "curation.form.submit.error.invalid-handle": "Couldn't determine the handle for this object",
+ "curation.form.submit.error.invalid-handle": "No s'ha pogut determinar l'handle d'aquest objecte",
+
+ // "curation.form.handle.label": "Handle:",
+ "curation.form.handle.label": "Handle:",
+
+ // "curation.form.handle.hint": "Hint: Enter [your-handle-prefix]/0 to run a task across entire site (not all tasks may support this capability)",
+ "curation.form.handle.hint": "Suggeriment: Introduïu [el-vostre-prefix-handle]/0 per executar una tasca en tota la instal·lació (no totes les tasques permeten aquesta opció)",
+
+
+
+ // "deny-request-copy.email.message": "Dear {{ recipientName }},\nIn response to your request I regret to inform you that it's not possible to send you a copy of the file(s) you have requested, concerning the document: \"{{ itemUrl }}\" ({{ itemName }}), of which I am an author.\n\nBest regards,\n{{ authorName }} <{{ authorEmail }}>",
+ "deny-request-copy.email.message": "Estimat {{ recipientName }},\nEn resposta a la vostra sol·licitud, lamento informar-vos que no és possible enviar-vos una còpia dels fitxers que heu sol·licitat, en relació amb el document: \"{{ itemUrl }}\" ({{ itemName }}), del qual sóc autor.\n\nSalutacions cordials,\n{{ authorName }} <{{ authorEmail }}>",
+
+ // "deny-request-copy.email.subject": "Request copy of document",
+ "deny-request-copy.email.subject": "Sol·licitar una còpia del document",
+
+ // "deny-request-copy.error": "An error occurred",
+ "deny-request-copy.error": "S'ha produit un error",
+
+ // "deny-request-copy.header": "Deny document copy request",
+ "deny-request-copy.header": "Denegar còpia del document",
+
+ // "deny-request-copy.intro": "This message will be sent to the applicant of the request",
+ "deny-request-copy.intro": "Aquest és el text que serà enviat al sol·licitant.",
+
+ // "deny-request-copy.success": "Successfully denied item request",
+ "deny-request-copy.success": "Sol·licitud de còpia de document denegada",
+
+
+
+ // "dso.name.untitled": "Untitled",
+ "dso.name.untitled": "Sense títol",
+
+
+
+ // "dso-selector.create.collection.head": "New collection",
+ "dso-selector.create.collection.head": "Nova col·lecció",
+
+ // "dso-selector.create.collection.sub-level": "Create a new collection in",
+ "dso-selector.create.collection.sub-level": "Crea una nova col·lecció a",
+
+ // "dso-selector.create.community.head": "New community",
+ "dso-selector.create.community.head": "Nova comunitat",
+
+ // "dso-selector.create.community.or-divider": "or",
+ "dso-selector.create.community.or-divider": "o",
+
+ // "dso-selector.create.community.sub-level": "Create a new community in",
+ "dso-selector.create.community.sub-level": "Crea una nova comunitat a",
+
+ // "dso-selector.create.community.top-level": "Create a new top-level community",
+ "dso-selector.create.community.top-level": "Crea una nova comunitat de primer nivell",
+
+ // "dso-selector.create.item.head": "New item",
+ "dso-selector.create.item.head": "Nou ítem",
+
+ // "dso-selector.create.item.sub-level": "Create a new item in",
+ "dso-selector.create.item.sub-level": "Crea un nou ítem a",
+
+ // "dso-selector.create.submission.head": "New submission",
+ "dso-selector.create.submission.head": "Nou enviament",
+
+ // "dso-selector.edit.collection.head": "Edit collection",
+ "dso-selector.edit.collection.head": "Editar col·lecció",
+
+ // "dso-selector.edit.community.head": "Edit community",
+ "dso-selector.edit.community.head": "Editar comunitat",
+
+ // "dso-selector.edit.item.head": "Edit item",
+ "dso-selector.edit.item.head": "Editar ítem",
+
+ // "dso-selector.error.title": "An error occurred searching for a {{ type }}",
+ "dso-selector.error.title": "S'ha produït un error en cercar un {{ type }}",
+
+ // "dso-selector.export-metadata.dspaceobject.head": "Export metadata from",
+ "dso-selector.export-metadata.dspaceobject.head": "Exportar metadades des de",
+
+ // "dso-selector.export-batch.dspaceobject.head": "Export Batch (ZIP) from",
+ "dso-selector.export-batch.dspaceobject.head": "Exportar fitxer per lots (ZIP) des de",
+
+ // "dso-selector.import-batch.dspaceobject.head": "Import batch from",
+ "dso-selector.import-batch.dspaceobject.head": "Importar fitxer per lots des de",
+
+ // "dso-selector.no-results": "No {{ type }} found",
+ "dso-selector.no-results": "No s'ha trobat {{ type }}",
+
+ // "dso-selector.placeholder": "Search for a {{ type }}",
+ "dso-selector.placeholder": "Cerca un/a {{ type }}",
+
+ // "dso-selector.select.collection.head": "Select a collection",
+ "dso-selector.select.collection.head": "Seleccionar una col·lecció",
+
+ // "dso-selector.set-scope.community.head": "Select a search scope",
+ "dso-selector.set-scope.community.head": "Seleccionar un àmbit de cerca",
+
+ // "dso-selector.set-scope.community.button": "Search all of DSpace",
+ "dso-selector.set-scope.community.button": "Cercar a tot DSpace",
+
+ // "dso-selector.set-scope.community.or-divider": "or",
+ "dso-selector.set-scope.community.or-divider": "o",
+
+ // "dso-selector.set-scope.community.input-header": "Search for a community or collection",
+ "dso-selector.set-scope.community.input-header": "Cerca una comunitat o una col·lecció",
+
+ // "dso-selector.claim.item.head": "Profile tips",
+ "dso-selector.claim.item.head": "Suggeriments de perfil",
+
+ // "dso-selector.claim.item.body": "These are existing profiles that may be related to you. If you recognize yourself in one of these profiles, select it and on the detail page, among the options, choose to claim it. Otherwise you can create a new profile from scratch using the button below.",
+ "dso-selector.claim.item.body": "Hi ha perfils que podrien estar relacionats amb vostè. Si es veu reflectit en un d'ells, seleccioneu-lo i a la pàgina de detalls, escolliu l'opció de reclamar-lo. Opcionalment, podeu crear un nou perfil des de zero amb el botó inferior.",
+
+ // "dso-selector.claim.item.not-mine-label": "None of these are mine",
+ "dso-selector.claim.item.not-mine-label": "Cap d'aquests és meu",
+
+ // "dso-selector.claim.item.create-from-scratch": "Create a new one",
+ "dso-selector.claim.item.create-from-scratch": "Crear-ne un de nou",
+
+ // "dso-selector.results-could-not-be-retrieved": "Something went wrong, please refresh again ↻",
+ "dso-selector.results-could-not-be-retrieved": "S'ha produït un error, si us plau, actualitzeu de nou ↻",
+
+ // "confirmation-modal.export-metadata.header": "Export metadata for {{ dsoName }}",
+ "confirmation-modal.export-metadata.header": "Exporta metadades per a {{ dsoName }}",
+
+ // "confirmation-modal.export-metadata.info": "Are you sure you want to export metadata for {{ dsoName }}",
+ "confirmation-modal.export-metadata.info": "Esteu segur que voleu exportar metadades per a {{ dsoName }}?",
+
+ // "confirmation-modal.export-metadata.cancel": "Cancel",
+ "confirmation-modal.export-metadata.cancel": "Cancel·lar",
+
+ // "confirmation-modal.export-metadata.confirm": "Export",
+ "confirmation-modal.export-metadata.confirm": "Exporta",
+
+ // "confirmation-modal.export-batch.header": "Export batch (ZIP) for {{ dsoName }}",
+ "confirmation-modal.export-batch.header": "Exportar fitxer per lots (ZIP) per a {{ dsoName }}",
+
+ // "confirmation-modal.export-batch.info": "Are you sure you want to export batch (ZIP) for {{ dsoName }}",
+ "confirmation-modal.export-batch.info": "Esteu segur que voleu exportar un fitxer per lots (ZIP) per a {{ dsoName }}?",
+
+ // "confirmation-modal.export-batch.cancel": "Cancel",
+ "confirmation-modal.export-batch.cancel": "Cancel·lar",
+
+ // "confirmation-modal.export-batch.confirm": "Export",
+ "confirmation-modal.export-batch.confirm": "Exportar",
+
+ // "confirmation-modal.delete-eperson.header": "Delete EPerson \"{{ dsoName }}\"",
+ "confirmation-modal.delete-eperson.header": "Esborrar usuari \"{{ dsoName }}\"",
+
+ // "confirmation-modal.delete-eperson.info": "Are you sure you want to delete EPerson \"{{ dsoName }}\"",
+ "confirmation-modal.delete-eperson.info": "Esteu segur que voleu eliminar l'usuari \"{{ dsoName }}\"?",
+
+ // "confirmation-modal.delete-eperson.cancel": "Cancel",
+ "confirmation-modal.delete-eperson.cancel": "Cancel·lar",
+
+ // "confirmation-modal.delete-eperson.confirm": "Delete",
+ "confirmation-modal.delete-eperson.confirm": "Esborrar",
+
+ // "confirmation-modal.delete-profile.header": "Delete Profile",
+ "confirmation-modal.delete-profile.header": "Esborrar Perfil",
+
+ // "confirmation-modal.delete-profile.info": "Are you sure you want to delete your profile",
+ "confirmation-modal.delete-profile.info": "Esteu segur que voleu suprimir el vostre perfil?",
+
+ // "confirmation-modal.delete-profile.cancel": "Cancel",
+ "confirmation-modal.delete-profile.cancel": "Cancel·lar",
+
+ // "confirmation-modal.delete-profile.confirm": "Delete",
+ "confirmation-modal.delete-profile.confirm": "Esborrar",
+
+
+ // "error.bitstream": "Error fetching bitstream",
+ "error.bitstream": "Error en obtenir el fitxer",
+
+ // "error.browse-by": "Error fetching items",
+ "error.browse-by": "Error en recuperar ítems",
+
+ // "error.collection": "Error fetching collection",
+ "error.collection": "Error en recuperar la col·lecció",
+
+ // "error.collections": "Error fetching collections",
+ "error.collections": "Error en recuperar col·leccions",
+
+ // "error.community": "Error fetching community",
+ "error.community": "Error en recuperar la comunitat",
+
+ // "error.identifier": "No item found for the identifier",
+ "error.identifier": "No s'ha trobat cap ítem amb aquest identificador",
+
+ // "error.default": "Error",
+ "error.default": "Error",
+
+ // "error.item": "Error fetching item",
+ "error.item": "Error en recuperar l'ítem",
+
+ // "error.items": "Error fetching items",
+ "error.items": "Error en recuperar ítems",
+
+ // "error.objects": "Error fetching objects",
+ "error.objects": "Error en recuperar objectes",
+
+ // "error.recent-submissions": "Error fetching recent submissions",
+ "error.recent-submissions": "Error en recuperar els enviaments recents",
+
+ // "error.search-results": "Error fetching search results",
+ "error.search-results": "Error en recuperar els resultats de cerca",
+
+ // "error.invalid-search-query": "Search query is not valid. Please check Solr query syntax best practices for further information about this error.",
+ "error.invalid-search-query": "La cerca no és vàlida. Reviseu a la sintaxi de cerques Solr per a més informació sobre aquest error.",
+
+ // "error.sub-collections": "Error fetching sub-collections",
+ "error.sub-collections": "Error en recuperar subcol·leccions",
+
+ // "error.sub-communities": "Error fetching sub-communities",
+ "error.sub-communities": "Error en recuperar subcomunitats",
+
+ // "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": "S'ha produït un error durant la inicialització de la secció. Comproveu la configuració del formulari d'entrada. Els detalls es mostren a continuació:
",
- "error.submission.sections.init-form-error": "Se produjo un error durante la inicialización de la sección, verifique la configuración de su formulario de entrada. Se dan detalles a continuación:",
+ "error.submission.sections.init-form-error": "Se produjo un error durante la inicialización de la sección, verifique la configuración de su formulario de entrada. Se dan detalles a continuación:
-
-
+
{{'item.edit.tabs.status.buttons.' + operation.operationKey + '.button' | translate}}
diff --git a/src/assets/i18n/ar.json5 b/src/assets/i18n/ar.json5
index 58c8c61eb5..24e6e14603 100644
--- a/src/assets/i18n/ar.json5
+++ b/src/assets/i18n/ar.json5
@@ -3246,9 +3246,9 @@
// TODO New key - Add a translation
"item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
// TODO New key - Add a translation
- "item.edit.tabs.status.buttons.move.button": "Move...",
+ "item.edit.tabs.status.buttons.move.button": "Mover éste ítem a una colección distinta",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
// TODO New key - Add a translation
@@ -3278,9 +3278,9 @@
// TODO New key - Add a translation
"item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
// TODO New key - Add a translation
- "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ "item.edit.tabs.status.buttons.withdraw.button": "Retirar éste ítem",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
// TODO New key - Add a translation
diff --git a/src/assets/i18n/bn.json5 b/src/assets/i18n/bn.json5
index 8020ee7a96..55ec1820dd 100644
--- a/src/assets/i18n/bn.json5
+++ b/src/assets/i18n/bn.json5
@@ -2908,7 +2908,7 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "ম্যাপড সংগ্রহ পরিচালনা করুন",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
"item.edit.tabs.status.buttons.move.button": "সরানো ...",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
@@ -2935,8 +2935,8 @@
// "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
"item.edit.tabs.status.buttons.unauthorized": "আপনি এই অ্যাকশন সঞ্চালন করার জন্য অনুমোদিত না",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "প্রত্যাহার ...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "এই আইটেম প্রত্যাহার করুন",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "সংগ্রহস্থল থেকে আইটেম প্রত্যাহার",
diff --git a/src/assets/i18n/cs.json5 b/src/assets/i18n/cs.json5
index 12b67e54e2..a04e89b2c3 100644
--- a/src/assets/i18n/cs.json5
+++ b/src/assets/i18n/cs.json5
@@ -3186,9 +3186,9 @@
// TODO New key - Add a translation
"item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
// TODO New key - Add a translation
- "item.edit.tabs.status.buttons.move.button": "Move...",
+ "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
// TODO New key - Add a translation
@@ -3218,9 +3218,9 @@
// TODO New key - Add a translation
"item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
// TODO New key - Add a translation
- "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
// TODO New key - Add a translation
diff --git a/src/assets/i18n/de.json5 b/src/assets/i18n/de.json5
index 80a6b5605a..c1979be6b6 100644
--- a/src/assets/i18n/de.json5
+++ b/src/assets/i18n/de.json5
@@ -2698,8 +2698,8 @@
// "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.button": "Move this Item to a different Collection",
+ "item.edit.tabs.status.buttons.move.button": "Verschieben Sie diesen Artikel in eine andere Sammlung",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
"item.edit.tabs.status.buttons.move.label": "Item in eine andere Sammlung verschieben",
@@ -2722,8 +2722,8 @@
// "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
"item.edit.tabs.status.buttons.reinstate.label": "Item im Repositorium wiederherstellen",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Zurückziehen...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "Ziehen Sie diesen Artikel zurück",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Item aus dem Repositorium zurückziehen",
diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5
index c66669a51f..f968ae2399 100644
--- a/src/assets/i18n/en.json5
+++ b/src/assets/i18n/en.json5
@@ -2140,7 +2140,7 @@
"item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
- "item.edit.tabs.status.buttons.move.button": "Move...",
+ "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
"item.edit.tabs.status.buttons.move.label": "Move item to another collection",
@@ -2158,7 +2158,7 @@
"item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
- "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
"item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
diff --git a/src/assets/i18n/es.json5 b/src/assets/i18n/es.json5
index 02169514c4..054f66febc 100644
--- a/src/assets/i18n/es.json5
+++ b/src/assets/i18n/es.json5
@@ -3077,8 +3077,8 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Administrar colecciones mapeadas",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
- "item.edit.tabs.status.buttons.move.button": "Mover...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
+ "item.edit.tabs.status.buttons.move.button": "Mover éste ítem a una colección diferente",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
"item.edit.tabs.status.buttons.move.label": "Mover ítem a otra colección",
@@ -3104,8 +3104,8 @@
// "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
"item.edit.tabs.status.buttons.unauthorized": "No estás autorizado para realizar esta acción.",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Retirar...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "Retirar éste ítem",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Retirar ítem del repositorio",
diff --git a/src/assets/i18n/fi.json5 b/src/assets/i18n/fi.json5
index 1ef67e2a48..2a077006cc 100644
--- a/src/assets/i18n/fi.json5
+++ b/src/assets/i18n/fi.json5
@@ -2470,8 +2470,8 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Hallinnoi liitettyjä kokoelmia",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
- "item.edit.tabs.status.buttons.move.button": "Siirrä...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
+ "item.edit.tabs.status.buttons.move.button": "Siirrä tämä kohde toiseen kokoelmaan",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
"item.edit.tabs.status.buttons.move.label": "Siirrä tietue toiseen kokoelmaan",
@@ -2494,8 +2494,8 @@
// "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
"item.edit.tabs.status.buttons.reinstate.label": "Palauta tietue arkistoon",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Poista käytöstä...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "poista tämä kohde",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Poista tietue käytöstä",
diff --git a/src/assets/i18n/fr.json5 b/src/assets/i18n/fr.json5
index fcfd70be70..381e13a743 100644
--- a/src/assets/i18n/fr.json5
+++ b/src/assets/i18n/fr.json5
@@ -2811,8 +2811,8 @@
// "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...",
- "item.edit.tabs.status.buttons.move.button": "Déplacer...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
+ "item.edit.tabs.status.buttons.move.button": "Déplacer cet élément vers une autre collection",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
"item.edit.tabs.status.buttons.move.label": "Déplacer l'Item dans une autre collection",
@@ -2838,8 +2838,8 @@
// "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
"item.edit.tabs.status.buttons.unauthorized": "Vous n'êtes pas autorisé à effectuer cette action",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Retirer...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "Retirer cet article",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Retirer l'Item du dépôt",
diff --git a/src/assets/i18n/gd.json5 b/src/assets/i18n/gd.json5
index e42bb239f2..083de54781 100644
--- a/src/assets/i18n/gd.json5
+++ b/src/assets/i18n/gd.json5
@@ -2892,8 +2892,8 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Manaids cruinneachaidhean mapaichte",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
- "item.edit.tabs.status.buttons.move.button": "Gluais...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
+ "item.edit.tabs.status.buttons.move.button": "Helyezze át ezt az elemet egy másik gyűjteménybe",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
"item.edit.tabs.status.buttons.move.label": "Gluais nì gu cruinneachadh eile",
@@ -2919,8 +2919,8 @@
// "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
"item.edit.tabs.status.buttons.unauthorized": "Chan eil cead agad an gnìomh seo a dhèanamh",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Thoir air falbh...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "Thoir air falbh",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Thoir nì air falbh bhon ionad-tasgaidh",
diff --git a/src/assets/i18n/hu.json5 b/src/assets/i18n/hu.json5
index 8231f79652..0e73e9dbae 100644
--- a/src/assets/i18n/hu.json5
+++ b/src/assets/i18n/hu.json5
@@ -2481,7 +2481,7 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Térképezett gyűjtemények szervezése",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
"item.edit.tabs.status.buttons.move.button": "Elmozdítás...",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
@@ -2505,8 +2505,8 @@
// "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
"item.edit.tabs.status.buttons.reinstate.label": "Tárgy visszaállítása az adattárba",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Visszavonás...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "Vedd vissza ezt az elemet",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Tárgy visszavonása az adattárból",
diff --git a/src/assets/i18n/ja.json5 b/src/assets/i18n/ja.json5
index 58c8c61eb5..71b32cf70b 100644
--- a/src/assets/i18n/ja.json5
+++ b/src/assets/i18n/ja.json5
@@ -3246,9 +3246,9 @@
// TODO New key - Add a translation
"item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
// TODO New key - Add a translation
- "item.edit.tabs.status.buttons.move.button": "Move...",
+ "item.edit.tabs.status.buttons.move.button": "Verplaats dit item naar een andere collectie",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
// TODO New key - Add a translation
@@ -3278,9 +3278,9 @@
// TODO New key - Add a translation
"item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
// TODO New key - Add a translation
- "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
// TODO New key - Add a translation
diff --git a/src/assets/i18n/kk.json5 b/src/assets/i18n/kk.json5
index 8e46ee73ce..b661ce21d3 100644
--- a/src/assets/i18n/kk.json5
+++ b/src/assets/i18n/kk.json5
@@ -3094,7 +3094,7 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Салыстырмалы коллекцияларды басқару",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
"item.edit.tabs.status.buttons.move.button": "Ысыру...",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
@@ -3121,11 +3121,11 @@
// "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
"item.edit.tabs.status.buttons.unauthorized": "Сіз бұл әрекетті орындауға құқығыңыз жоқ",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Шегінуге...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "бұл тармақты алып тастаңыз",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
- "item.edit.tabs.status.buttons.withdraw.label": "Қоймадан тауарды алып қою",
+ "item.edit.tabs.status.buttons.withdraw.label": "Бұл элементті алып тастаңыз",
// "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": "Тауарларды басқару бетіне қош келдіңіз. Осы жерден элементті алып тастауға, қалпына келтіруге, жылжытуға немесе жоюға болады. Басқа қойындыларда жаңа метадеректерді / бит ағындарын жаңартуға немесе қосуға болады.",
diff --git a/src/assets/i18n/lv.json5 b/src/assets/i18n/lv.json5
index 995d8175af..e00ad3517b 100644
--- a/src/assets/i18n/lv.json5
+++ b/src/assets/i18n/lv.json5
@@ -2672,7 +2672,7 @@
// "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": "Move this Item to a different Collection",
"item.edit.tabs.status.buttons.move.button": "Pārvieto...",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
@@ -2696,8 +2696,8 @@
// "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.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "Izņemiet šo vienumu",
// "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",
diff --git a/src/assets/i18n/nl.json5 b/src/assets/i18n/nl.json5
index fb66f769ae..b02e3a5276 100644
--- a/src/assets/i18n/nl.json5
+++ b/src/assets/i18n/nl.json5
@@ -2915,7 +2915,7 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Beheer gemapte collecties",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
"item.edit.tabs.status.buttons.move.button": "Verplaats ..",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
@@ -2939,8 +2939,8 @@
// "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
"item.edit.tabs.status.buttons.reinstate.label": "Zet het item terug in het repository",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Trek terug ...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "onttrek hierdie item",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Trek het item terug uit het repository",
diff --git a/src/assets/i18n/pt-BR.json5 b/src/assets/i18n/pt-BR.json5
index 77b06a6566..f68436d00b 100644
--- a/src/assets/i18n/pt-BR.json5
+++ b/src/assets/i18n/pt-BR.json5
@@ -2994,8 +2994,8 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Gerenciar coleções mapeadas",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
- "item.edit.tabs.status.buttons.move.button": "Mover...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
+ "item.edit.tabs.status.buttons.move.button": "Mova este item para uma coleção diferente",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
"item.edit.tabs.status.buttons.move.label": "Mover item para outra coleção",
@@ -3021,8 +3021,8 @@
// "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
"item.edit.tabs.status.buttons.unauthorized": "Você não está autorizado a realizar esta ação",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Retirar...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "retirar este item",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Retirar item do repositório",
diff --git a/src/assets/i18n/pt-PT.json5 b/src/assets/i18n/pt-PT.json5
index c0327c4b54..b277e866c0 100644
--- a/src/assets/i18n/pt-PT.json5
+++ b/src/assets/i18n/pt-PT.json5
@@ -2676,8 +2676,8 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Gerenciar coleções mapeadas",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
- "item.edit.tabs.status.buttons.move.button": "Mover...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
+ "item.edit.tabs.status.buttons.move.button": "Mova este item para uma coleção diferente",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
"item.edit.tabs.status.buttons.move.label": "Mover item para outra coleção",
@@ -2700,8 +2700,8 @@
// "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
"item.edit.tabs.status.buttons.reinstate.label": "Restabelecer item no repositório",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Retirar...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "retirar este item",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Retirar item do repositório",
diff --git a/src/assets/i18n/sv.json5 b/src/assets/i18n/sv.json5
index 86a6b045cc..d04b95e144 100644
--- a/src/assets/i18n/sv.json5
+++ b/src/assets/i18n/sv.json5
@@ -2936,8 +2936,8 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Hantera mappade samlingar",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
- "item.edit.tabs.status.buttons.move.button": "Flytta...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
+ "item.edit.tabs.status.buttons.move.button": "Flytta detta föremål till en annan samling",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
"item.edit.tabs.status.buttons.move.label": "Flytta post till en annan samling",
@@ -2963,8 +2963,8 @@
// "item.edit.tabs.status.buttons.unauthorized": "You're not authorized to perform this action",
"item.edit.tabs.status.buttons.unauthorized": "Du saknar behörighet att utföra detta",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Återkalla...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "dra tillbaka den här artikeln",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Återkalla post från arkivet",
diff --git a/src/assets/i18n/sw.json5 b/src/assets/i18n/sw.json5
index 58c8c61eb5..5e00b54599 100644
--- a/src/assets/i18n/sw.json5
+++ b/src/assets/i18n/sw.json5
@@ -3246,9 +3246,9 @@
// TODO New key - Add a translation
"item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
// TODO New key - Add a translation
- "item.edit.tabs.status.buttons.move.button": "Move...",
+ "item.edit.tabs.status.buttons.move.button": "Bu Öğeyi farklı bir Koleksiyona taşıyın",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
// TODO New key - Add a translation
@@ -3278,9 +3278,9 @@
// TODO New key - Add a translation
"item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
// TODO New key - Add a translation
- "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
+ "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
// TODO New key - Add a translation
diff --git a/src/assets/i18n/tr.json5 b/src/assets/i18n/tr.json5
index 8eb0ce7e19..fff02c5967 100644
--- a/src/assets/i18n/tr.json5
+++ b/src/assets/i18n/tr.json5
@@ -2472,7 +2472,7 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Eşlenen koleksiyonları yönetin",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
"item.edit.tabs.status.buttons.move.button": "Taşınıyor...",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
@@ -2496,8 +2496,8 @@
// "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
"item.edit.tabs.status.buttons.reinstate.label": "Öğeyi depoya geri yükle",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Çıkar...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "bu öğeyi geri çek",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Depodan öğeyi çıkar",
diff --git a/src/assets/i18n/uk.json5 b/src/assets/i18n/uk.json5
index b0413d9353..0ba5b0109a 100644
--- a/src/assets/i18n/uk.json5
+++ b/src/assets/i18n/uk.json5
@@ -2590,8 +2590,8 @@
// "item.edit.tabs.status.buttons.mappedCollections.label": "Manage mapped collections",
"item.edit.tabs.status.buttons.mappedCollections.label": "Керувати прив'язаними зібраннями",
- // "item.edit.tabs.status.buttons.move.button": "Move...",
- "item.edit.tabs.status.buttons.move.button": "Перемістити...",
+ // "item.edit.tabs.status.buttons.move.button": "Move this Item to a different Collection",
+ "item.edit.tabs.status.buttons.move.button": "Перемістити цей елемент до іншої колекції",
// "item.edit.tabs.status.buttons.move.label": "Move item to another collection",
"item.edit.tabs.status.buttons.move.label": "Перемістити документ до іншого зібрання",
@@ -2614,8 +2614,8 @@
// "item.edit.tabs.status.buttons.reinstate.label": "Reinstate item into the repository",
"item.edit.tabs.status.buttons.reinstate.label": "Відновити документ в репозиторій",
- // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw...",
- "item.edit.tabs.status.buttons.withdraw.button": "Вилучити...",
+ // "item.edit.tabs.status.buttons.withdraw.button": "Withdraw this item",
+ "item.edit.tabs.status.buttons.withdraw.button": "вилучити цей предмет",
// "item.edit.tabs.status.buttons.withdraw.label": "Withdraw item from the repository",
"item.edit.tabs.status.buttons.withdraw.label": "Вилучити документ з репозиторію",
From 4eb00d67c5823d037739e172e629d7d264fc4578 Mon Sep 17 00:00:00 2001
From: Art Lowel
Date: Tue, 31 Jan 2023 18:36:20 +0100
Subject: [PATCH 7/7] only check the first page of bitstreams when generating
the citation_pdf_url meta tag
---
.../core/metadata/metadata.service.spec.ts | 92 +++++++++++---
src/app/core/metadata/metadata.service.ts | 112 +++++++++---------
2 files changed, 127 insertions(+), 77 deletions(-)
diff --git a/src/app/core/metadata/metadata.service.spec.ts b/src/app/core/metadata/metadata.service.spec.ts
index 66d9b9921c..553b437d71 100644
--- a/src/app/core/metadata/metadata.service.spec.ts
+++ b/src/app/core/metadata/metadata.service.spec.ts
@@ -8,7 +8,12 @@ import { Observable, of as observableOf, of } from 'rxjs';
import { RemoteData } from '../data/remote-data';
import { Item } from '../shared/item.model';
-import { ItemMock, MockBitstream1, MockBitstream3 } from '../../shared/mocks/item.mock';
+import {
+ ItemMock,
+ MockBitstream1,
+ MockBitstream3,
+ MockBitstream2
+} from '../../shared/mocks/item.mock';
import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
import { PaginatedList } from '../data/paginated-list.model';
import { Bitstream } from '../shared/bitstream.model';
@@ -24,6 +29,7 @@ import { HardRedirectService } from '../services/hard-redirect.service';
import { getMockStore } from '@ngrx/store/testing';
import { AddMetaTagAction, ClearMetaTagAction } from './meta-tag.actions';
import { AuthorizationDataService } from '../data/feature-authorization/authorization-data.service';
+import { AppConfig } from '../../../config/app-config.interface';
describe('MetadataService', () => {
let metadataService: MetadataService;
@@ -44,6 +50,8 @@ describe('MetadataService', () => {
let router: Router;
let store;
+ let appConfig: AppConfig;
+
const initialState = { 'core': { metaTag: { tagsInUse: ['title', 'description'] }}};
@@ -86,6 +94,14 @@ describe('MetadataService', () => {
store = getMockStore({ initialState });
spyOn(store, 'dispatch');
+ appConfig = {
+ item: {
+ bitstream: {
+ pageSize: 5
+ }
+ }
+ } as any;
+
metadataService = new MetadataService(
router,
translateService,
@@ -98,6 +114,7 @@ describe('MetadataService', () => {
rootService,
store,
hardRedirectService,
+ appConfig,
authorizationService
);
});
@@ -358,29 +375,66 @@ describe('MetadataService', () => {
});
}));
- it('should link to first Bitstream with allowed format', fakeAsync(() => {
- const bitstreams = [MockBitstream3, MockBitstream3, MockBitstream1];
- (bundleDataService.findByItemAndName as jasmine.Spy).and.returnValue(mockBundleRD$(bitstreams));
- (bitstreamDataService.findListByHref as jasmine.Spy).and.returnValues(
- ...mockBitstreamPages$(bitstreams).map(bp => createSuccessfulRemoteDataObject$(bp)),
- );
+ describe(`when there's a bitstream with an allowed format on the first page`, () => {
+ let bitstreams;
- (metadataService as any).processRouteChange({
- data: {
- value: {
- dso: createSuccessfulRemoteDataObject(ItemMock),
+ beforeEach(() => {
+ bitstreams = [MockBitstream2, MockBitstream3, MockBitstream1];
+ (bundleDataService.findByItemAndName as jasmine.Spy).and.returnValue(mockBundleRD$(bitstreams));
+ (bitstreamDataService.findListByHref as jasmine.Spy).and.returnValues(
+ ...mockBitstreamPages$(bitstreams).map(bp => createSuccessfulRemoteDataObject$(bp)),
+ );
+ });
+
+ it('should link to first Bitstream with allowed format', fakeAsync(() => {
+ (metadataService as any).processRouteChange({
+ data: {
+ value: {
+ dso: createSuccessfulRemoteDataObject(ItemMock),
+ }
}
- }
- });
- tick();
- expect(meta.addTag).toHaveBeenCalledWith({
- name: 'citation_pdf_url',
- content: 'https://request.org/bitstreams/cf9b0c8e-a1eb-4b65-afd0-567366448713/download'
- });
- }));
+ });
+ tick();
+ expect(meta.addTag).toHaveBeenCalledWith({
+ name: 'citation_pdf_url',
+ content: 'https://request.org/bitstreams/99b00f3c-1cc6-4689-8158-91965bee6b28/download'
+ });
+ }));
+
+ });
+
});
});
+ describe(`when there's no bitstream with an allowed format on the first page`, () => {
+ let bitstreams;
+
+ beforeEach(() => {
+ bitstreams = [MockBitstream1, MockBitstream3, MockBitstream2];
+ (bundleDataService.findByItemAndName as jasmine.Spy).and.returnValue(mockBundleRD$(bitstreams));
+ (bitstreamDataService.findListByHref as jasmine.Spy).and.returnValues(
+ ...mockBitstreamPages$(bitstreams).map(bp => createSuccessfulRemoteDataObject$(bp)),
+ );
+ });
+
+ it(`shouldn't add a citation_pdf_url meta tag`, fakeAsync(() => {
+ (metadataService as any).processRouteChange({
+ data: {
+ value: {
+ dso: createSuccessfulRemoteDataObject(ItemMock),
+ }
+ }
+ });
+ tick();
+ expect(meta.addTag).not.toHaveBeenCalledWith({
+ name: 'citation_pdf_url',
+ content: 'https://request.org/bitstreams/99b00f3c-1cc6-4689-8158-91965bee6b28/download'
+ });
+ }));
+
+ });
+
+
describe('tagstore', () => {
beforeEach(fakeAsync(() => {
(metadataService as any).processRouteChange({
diff --git a/src/app/core/metadata/metadata.service.ts b/src/app/core/metadata/metadata.service.ts
index 9d5ee80bba..204c925e6b 100644
--- a/src/app/core/metadata/metadata.service.ts
+++ b/src/app/core/metadata/metadata.service.ts
@@ -1,14 +1,21 @@
-import { Injectable } from '@angular/core';
+import { Injectable, Inject } from '@angular/core';
import { Meta, MetaDefinition, Title } from '@angular/platform-browser';
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
-import { BehaviorSubject, combineLatest, EMPTY, Observable, of as observableOf } from 'rxjs';
-import { expand, filter, map, switchMap, take } from 'rxjs/operators';
+import {
+ BehaviorSubject,
+ combineLatest,
+ Observable,
+ of as observableOf,
+ concat as observableConcat,
+ EMPTY
+} from 'rxjs';
+import { filter, map, switchMap, take, mergeMap } from 'rxjs/operators';
-import { hasNoValue, hasValue } from '../../shared/empty.util';
+import { hasNoValue, hasValue, isNotEmpty } from '../../shared/empty.util';
import { DSONameService } from '../breadcrumbs/dso-name.service';
import { BitstreamDataService } from '../data/bitstream-data.service';
import { BitstreamFormatDataService } from '../data/bitstream-format-data.service';
@@ -37,6 +44,7 @@ import { coreSelector } from '../core.selectors';
import { CoreState } from '../core-state.model';
import { AuthorizationDataService } from '../data/feature-authorization/authorization-data.service';
import { getDownloadableBitstream } from '../shared/bitstream.operators';
+import { APP_CONFIG, AppConfig } from '../../../config/app-config.interface';
/**
* The base selector function to select the metaTag section in the store
@@ -87,6 +95,7 @@ export class MetadataService {
private rootService: RootDataService,
private store: Store,
private hardRedirectService: HardRedirectService,
+ @Inject(APP_CONFIG) private appConfig: AppConfig,
private authorizationService: AuthorizationDataService
) {
}
@@ -298,7 +307,13 @@ export class MetadataService {
true,
true,
followLink('primaryBitstream'),
- followLink('bitstreams', {}, followLink('format')),
+ followLink('bitstreams', {
+ findListOptions: {
+ // limit the number of bitstreams used to find the citation pdf url to the number
+ // shown by default on an item page
+ elementsPerPage: this.appConfig.item.bitstream.pageSize
+ }
+ }, followLink('format')),
).pipe(
getFirstSucceededRemoteDataPayload(),
switchMap((bundle: Bundle) =>
@@ -363,64 +378,45 @@ export class MetadataService {
}
/**
- * For Items with more than one Bitstream (and no primary Bitstream), link to the first Bitstream with a MIME type
+ * For Items with more than one Bitstream (and no primary Bitstream), link to the first Bitstream
+ * with a MIME type.
+ *
+ * Note this will only check the current page (page size determined item.bitstream.pageSize in the
+ * config) of bitstreams for performance reasons.
+ * See https://github.com/DSpace/DSpace/issues/8648 for more info
+ *
* included in {@linkcode CITATION_PDF_URL_MIMETYPES}
* @param bitstreamRd
* @private
*/
private getFirstAllowedFormatBitstreamLink(bitstreamRd: RemoteData>): Observable {
- return observableOf(bitstreamRd.payload).pipe(
- // Because there can be more than one page of bitstreams, this expand operator
- // will retrieve them in turn. Due to the take(1) at the bottom, it will only
- // retrieve pages until a match is found
- expand((paginatedList: PaginatedList) => {
- if (hasNoValue(paginatedList.next)) {
- // If there's no next page, stop.
- return EMPTY;
- } else {
- // Otherwise retrieve the next page
- return this.bitstreamDataService.findListByHref(
- paginatedList.next,
- undefined,
- true,
- true,
- followLink('format')
- ).pipe(
- getFirstCompletedRemoteData(),
- map((next: RemoteData>) => {
- if (hasValue(next.payload)) {
- return next.payload;
- } else {
- return EMPTY;
- }
- })
- );
- }
- }),
- // Return the array of bitstreams inside each paginated list
- map((paginatedList: PaginatedList) => paginatedList.page),
- // Emit the bitstreams in the list one at a time
- switchMap((bitstreams: Bitstream[]) => bitstreams),
- // Retrieve the format for each bitstream
- switchMap((bitstream: Bitstream) => bitstream.format.pipe(
- getFirstSucceededRemoteDataPayload(),
- // Keep the original bitstream, because it, not the format, is what we'll need
- // for the link at the end
- map((format: BitstreamFormat) => [bitstream, format])
- )),
- // Check if bitstream downloadable
- switchMap(([bitstream, format]: [Bitstream, BitstreamFormat]) => observableOf(bitstream).pipe(
- getDownloadableBitstream(this.authorizationService),
- map((bit: Bitstream) => [bit, format])
- )),
- // Filter out only pairs with whitelisted formats and non-null bitstreams, null from download check
- filter(([bitstream, format]: [Bitstream, BitstreamFormat]) =>
- hasValue(format) && hasValue(bitstream) && this.CITATION_PDF_URL_MIMETYPES.includes(format.mimetype)),
- // We only need 1
- take(1),
- // Emit the link of the match
- map(([bitstream, ]: [Bitstream, BitstreamFormat]) => getBitstreamDownloadRoute(bitstream))
- );
+ if (hasValue(bitstreamRd.payload) && isNotEmpty(bitstreamRd.payload.page)) {
+ // Retrieve the formats of all bitstreams in the page sequentially
+ return observableConcat(
+ ...bitstreamRd.payload.page.map((bitstream: Bitstream) => bitstream.format.pipe(
+ getFirstSucceededRemoteDataPayload(),
+ // Keep the original bitstream, because it, not the format, is what we'll need
+ // for the link at the end
+ map((format: BitstreamFormat) => [bitstream, format])
+ ))
+ ).pipe(
+ // Verify that the bitstream is downloadable
+ mergeMap(([bitstream, format]: [Bitstream, BitstreamFormat]) => observableOf(bitstream).pipe(
+ getDownloadableBitstream(this.authorizationService),
+ map((bit: Bitstream) => [bit, format])
+ )),
+ // Filter out only pairs with whitelisted formats and non-null bitstreams, null from download check
+ filter(([bitstream, format]: [Bitstream, BitstreamFormat]) =>
+ hasValue(format) && hasValue(bitstream) && this.CITATION_PDF_URL_MIMETYPES.includes(format.mimetype)),
+ // We only need 1
+ take(1),
+ // Emit the link of the match
+ // tap((v) => console.log('result', v)),
+ map(([bitstream, ]: [Bitstream, BitstreamFormat]) => getBitstreamDownloadRoute(bitstream))
+ );
+ } else {
+ return EMPTY;
+ }
}
/**